> **DRAFT** — under teacher review. # IPO Charts — Process Means Steps, Not the Answer The Hamilton and Alexandra College · Year 12 · 2026 An IPO chart has three columns — **Input**, **Process**, **Output** — and you write one chart per process. The big idea in C05: **your DFD tells you what the charts are.** Every process in your data flow diagram becomes one IPO chart, and the data flowing in and out of it becomes the Input and Output columns. The trap that caps students at the 5–6 band is writing the Process column as an *outcome* instead of as *steps*. This page shows what that looks like, how your DFD feeds your charts, and a full worked example. --- ## The core rule > [!TIP] > **Process = the steps that turn input into output.** > If your Process cell could just as easily be your Output cell, it is wrong. The three columns do different jobs: - **Input** — the data entering the process. Read these straight off your DFD. - **Process** — the steps or calculations performed on those inputs: in general terms, *how* the input becomes the output. - **Output** — the data the process produces. Also read off your DFD. --- ## Video 1 — What is an IPO chart? **🎯 Watch for:** how every row pairs a piece of input with the processing that acts on it — and how the Process column always describes an *action*, never just a result. {{Video|src=https://www.youtube.com/watch?v=a10a11oxjrA}} > [!NOTE] > This video is from an AU teacher pitched at NSW HSC Software Design & Development. The IPO concept is identical to VCE — just note the course name is different. ### Check Your Understanding A login screen has an IPO chart. For each item, decide which column it belongs in — **Input**, **Process**, or **Output**: 1. The username and password typed in by the user. >| **Input** — data entering the process. 2. Compare the entered password with the stored password and set a valid/invalid flag. >| **Process** — a step performed on the input. 3. An "Access granted" or "Access denied" message on the screen. >| **Output** — the result the process produces. --- ## The big idea: from DFD to IPO Your data flow diagram already did the hard part. **Each process in the DFD becomes its own IPO chart:** - the **arrows flowing in** → the Input column - the **process** itself → the Process column (the steps) - the **arrows flowing out** → the Output column **🎯 Watch for:** how a single process from a DFD is turned into one IPO chart, with the data flows becoming the Input and Output rows. {{Video|src=https://www.youtube.com/watch?v=YMOP0GlWXOY}} Here is a DFD for a simple login system:  Each process in that diagram becomes one IPO chart. Start with the general shape: ### (template) Name of the process | Input | Process | Output | | :--- | :--- | :--- | | List the inputs as per the DFD | Explain, in general terms, how the processing/calculations convert the input to the output | List the outputs as per the DFD | Now the three real processes from the DFD above. ### DFD process: Get Input | Input | Process | Output | | :--- | :--- | :--- | | Two separate strings keyed in by the user. | Prompt the user for their username, then store the response in the `UserName` variable.<br><br>Prompt the user for their password, then store the response in the `UserPassword` variable. | Entered string written to `UserName`.<br><br>Entered string written to `UserPassword`. | ### DFD process: Initialise Stored Credentials | Input | Process | Output | | :--- | :--- | :--- | | *(none — the values are hardcoded)* | Write the hardcoded value into the `StoredUN` variable.<br><br>Write the hardcoded value into the `StoredPW` variable. | `StoredUN`<br><br>`StoredPW` | ### DFD process: Validate User | Input | Process | Output | | :--- | :--- | :--- | | `UserName`<br><br>`StoredUN`<br><br>`UserPassword`<br><br>`StoredPW` | Set a `bValid` boolean to False.<br><br>Compare `UserName` with `StoredUN`.<br><br>IF `UserName` = `StoredUN` THEN compare `UserPassword` with `StoredPW`.<br><br>IF those ALSO match THEN set `bValid` to True. | `bValid` | The Process column for *Validate User* lists the actual decision steps — not just "check the login". **That** is what scores in the upper bands. --- ## Wrong vs Right The same process, written two ways: | | Input | Process | Output | |---|---|---|---| | **❌ Wrong** | `UserName`, `StoredUN`, `UserPassword`, `StoredPW` | Check the login | `bValid` | | **✅ Right** | `UserName`, `StoredUN`, `UserPassword`, `StoredPW` | 1. Set `bValid` = False. 2. Compare `UserName` with `StoredUN`. 3. If equal, compare `UserPassword` with `StoredPW`. 4. If both match, set `bValid` = True. | `bValid` | - "Check the login" just restates the goal — it shows none of the logic. - The Right version shows each comparison and decision. A marker can only credit logic that is visible. --- ## Common mistakes ### Mistake 1: Process that copies the Output > ~~"Work out whether the login is valid."~~ That is the Output column repeated. Replace it with the numbered decision steps. ### Mistake 2: Missing the decision branches > ~~"Compare the username and password."~~ If there is an IF in the logic, the steps must show what happens on each branch — set the flag True only when *both* match. ### Mistake 3: Inputs not traced to the DFD Every input in an IPO chart should be a data flow you already drew in your DFD. An input that appears from nowhere is a consistency error the marker will notice. ### Mistake 4: One IPO chart for everything Write one chart per process. Each DFD process has its own inputs, logic and outputs — cramming them together makes the Process column vague by design. --- ## Check Your Understanding 1. Where do the Input and Output columns of an IPO chart come from? >| From your **DFD** — the data flowing into a process becomes the Input column, and the data flowing out becomes the Output column. The IPO chart details the process in between. 2. A student writes Process = "display the total price". What is wrong, and how should they fix it? >| "Display the total price" names the output, not the steps. Replace it with the operations: e.g. 1. Retrieve unit price and quantity. 2. Multiply them for the subtotal. 3. Add GST. 4. Display the result. The Process column must show the *how*. --- ## Credits - Login-system DFD — supplied for The Hamilton and Alexandra College SD course. --- ## See also - [VCAA Pseudocode — Not Python](/sd/C05/VCAA%20Pseudocode%20Not%20Python) — turn each IPO Process column into formal pseudocode - [Data Dictionary](/sd/C05/Data%20Dictionary) - [Sketch vs Mock-up](/sd/C05/Sketch%20vs%20Mock-up) ← Back to [C05 Home](/sd/C05/C05-home) · [VCE Software Development Hub](/sd/VCE%20Software%20Development%20Hub)
