Blame
|
1 | > **DRAFT** — under teacher review. |
||||||
| 2 | ||||||||
| 3 | # Hand-Drawing Cheat-Sheet |
|||||||
| 4 | ||||||||
| 5 | Hamilton College · Year 12 · 2026 |
|||||||
| 6 | ||||||||
| 7 | This page is your single reference for what every symbol should look like when drawn **by hand under timed conditions**. It does not re-teach concepts — it shows you the right shape, the wrong shape, and what gets crossed off by the marker. |
|||||||
| 8 | ||||||||
| 9 | > [!TIP] |
|||||||
| 10 | > **The C2-2 stake.** The validation runs for a full lesson (~50 min) under locked conditions: no internet, no AI, no Excalidraw, no notes, no reference sheets. You draw all three diagrams — Context Diagram, Level-1 DFD, Use Case Diagram — from memory, for your own project. Band 9–10 requires *no errors, no inconsistencies, no omissions* across all three. One wrong shape or one unlabelled arrow and you cap at 7–8. This cheat-sheet is for **home practice only** — you cannot bring it to the validation. |
|||||||
| 11 | ||||||||
| 12 | --- |
|||||||
| 13 | ||||||||
| 14 | ## Context Diagram — Symbol Reference |
|||||||
| 15 | ||||||||
| 16 | ### Shape key |
|||||||
| 17 | ||||||||
| 18 | | Symbol | What you draw | Rules | |
|||||||
| 19 | |---|---|---| |
|||||||
| 20 | | **System** | One circle in the centre, system name inside | Exactly **one** circle — the whole system is one shape | |
|||||||
| 21 | | **External entity** | Rectangle, role name inside | All entities **outside** the circle | |
|||||||
| 22 | | **Data flow** | Arrow with a label on the line | Every arrow must carry a **specific** data label | |
|||||||
| 23 | ||||||||
| 24 | ### Right vs Wrong — Context Diagram |
|||||||
| 25 | ||||||||
| 26 | | Element | Correct | Common error | |
|||||||
| 27 | |---|---|---| |
|||||||
| 28 | | System shape | Clean circle, labelled with the system name | An oval squashed sideways, or a rectangle — the system must be a **circle** | |
|||||||
| 29 | | Number of circles | Exactly one | Two circles (e.g. adding *"Verify User"* as a second circle) — that is a DFD, not a context diagram | |
|||||||
| 30 | | Entity shape | Rectangle clearly outside the system circle | Rectangle drawn inside the circle — entities are always **outside** | |
|||||||
| 31 | | Data flow label | *"Assignment submission form"* | *"data"* or *"info"* — these are not labels; name the actual data | |
|||||||
| 32 | | Entity–entity arrow | Not present — all flows touch the system circle | Arrow drawn directly between two entities, bypassing the system | |
|||||||
| 33 | | Data stores | Not present at context level | Double-line (data store shape) included — data stores do not exist at Level 0 | |
|||||||
| 34 | ||||||||
| 35 | ### Canonical shape — mermaid |
|||||||
| 36 | ||||||||
| 37 | ```mermaid |
|||||||
| 38 | flowchart LR |
|||||||
| 39 | E1[External Entity] |
|||||||
| 40 | E2[External Entity] |
|||||||
| 41 | S(("Your System\nName")) |
|||||||
| 42 | ||||||||
| 43 | E1 -->|specific data label| S |
|||||||
| 44 | S -->|specific data label| E2 |
|||||||
| 45 | E2 -->|specific data label| S |
|||||||
| 46 | ``` |
|||||||
| 47 | ||||||||
| 48 | ::: warning |
|||||||
| 49 | **Do NOT draw on a context diagram** |
|||||||
| 50 | ||||||||
| 51 | - A second circle (any internal process) |
|||||||
| 52 | - Data stores (double-line shapes) |
|||||||
| 53 | - Entity-to-entity arrows |
|||||||
| 54 | - Arrows without labels |
|||||||
| 55 | ::: |
|||||||
| 56 | ||||||||
| 57 | --- |
|||||||
| 58 | ||||||||
| 59 | ## Level-1 DFD — Symbol Reference |
|||||||
| 60 | ||||||||
| 61 | ### Shape key |
|||||||
| 62 | ||||||||
| 63 | | Symbol | What you draw | Rules | |
|||||||
| 64 | |---|---|---| |
|||||||
| 65 | | **Process** | Circle, numbered + verb-noun name inside | 3–6 circles; each needs ≥1 input AND ≥1 output | |
|||||||
| 66 | | **External entity** | Rectangle — same names as context diagram | Never connect to a data store directly | |
|||||||
| 67 | | **Data store** | Two parallel horizontal lines, name between them | At least one in AND one out flow; only connects to processes | |
|||||||
| 68 | | **Data flow** | Arrow with a label | Every arrow must be labelled with the specific data | |
|||||||
| 69 | ||||||||
| 70 | ### Right vs Wrong — Level-1 DFD |
|||||||
| 71 | ||||||||
| 72 | | Element | Correct | Common error | |
|||||||
| 73 | |---|---|---| |
|||||||
| 74 | | Process shape | Circle (round), with a number and verb-noun name | Oval so squashed it looks like a rectangle, or an actual rectangle — must be **clearly circular** | |
|||||||
| 75 | | Process label | *"1. Verify Login"* | No number, or a noun only (*"Login"*) — processes need a number and a verb-noun phrase | |
|||||||
| 76 | | Data store shape | **Two parallel horizontal lines** with a name between them | Plain rectangle without the second line — the double-line is what distinguishes a data store from an entity | |
|||||||
| 77 | | Data store connections | Only to/from processes | Arrow from entity directly to data store — illegal; data must flow **through a process** first | |
|||||||
| 78 | | Data store connections | Only to/from processes | Arrow from one data store to another — also illegal | |
|||||||
| 79 | | Data flow label | *"student login credentials"* | Unlabelled arrow — every arrow on a DFD must have a label | |
|||||||
| 80 | | Entity names | Exactly match the context diagram | *"User"* in the DFD vs *"Student"* in the context diagram — inconsistency costs marks | |
|||||||
| 81 | | Every process | At least one input AND one output | A circle with only outputs (or only inputs) — a process must transform data | |
|||||||
| 82 | ||||||||
| 83 | ### Canonical shape — mermaid |
|||||||
| 84 | ||||||||
| 85 | ```mermaid |
|||||||
| 86 | flowchart LR |
|||||||
| 87 | E[External Entity] |
|||||||
| 88 | P1(("1. Process\nName")) |
|||||||
| 89 | P2(("2. Process\nName")) |
|||||||
| 90 | DS[("Data Store")] |
|||||||
| 91 | ||||||||
| 92 | E -->|specific data| P1 |
|||||||
| 93 | P1 -->|stored data| DS |
|||||||
| 94 | DS -->|retrieved data| P2 |
|||||||
| 95 | P2 -->|output data| E |
|||||||
| 96 | ``` |
|||||||
| 97 | ||||||||
| 98 | ::: warning |
|||||||
| 99 | **Do NOT draw on a Level-1 DFD** |
|||||||
| 100 | ||||||||
| 101 | - Entity-to-data-store arrows (must go through a process) |
|||||||
| 102 | - Data-store-to-data-store arrows |
|||||||
| 103 | - A process with no input, or no output |
|||||||
| 104 | - Unlabelled arrows |
|||||||
| 105 | - Entity names that differ from your context diagram |
|||||||
| 106 | ::: |
|||||||
| 107 | ||||||||
| 108 | --- |
|||||||
| 109 | ||||||||
| 110 | ## Use Case Diagram — Symbol Reference |
|||||||
| 111 | ||||||||
| 112 | ### Shape key |
|||||||
| 113 | ||||||||
| 114 | | Symbol | What you draw | Rules | |
|||||||
| 115 | |---|---|---| |
|||||||
| 116 | | **Actor** | Stick figure, **outside** the rectangle, role name below | Role name (e.g. *Teacher*), not a personal name; non-human systems are actors too | |
|||||||
| 117 | | **Use case** | Oval, **inside** the system boundary rectangle | Verb-noun label: *"Submit Assignment"*, not *"Login Page"* | |
|||||||
| 118 | | **System boundary** | Rectangle labelled with the system name | All use cases inside; all actors outside | |
|||||||
| 119 | | **Association** | Solid line, actor ↔ use case | Every actor needs at least one | |
|||||||
| 120 | | **«include»** | Dashed arrow, arrow points TO the included use case | Triggered **always**; arrow: base → included | |
|||||||
| 121 | | **«extend»** | Dashed arrow, arrow points TO the base use case | Triggered **optionally**; arrow: extension → base | |
|||||||
| 122 | ||||||||
| 123 | ### Right vs Wrong — Use Case Diagram |
|||||||
| 124 | ||||||||
| 125 | | Element | Correct | Common error | |
|||||||
| 126 | |---|---|---| |
|||||||
| 127 | | System boundary shape | **Rectangle**, labelled with the system name | Oval or circle as the boundary — the system boundary must be a **rectangle** | |
|||||||
| 128 | | Actor position | Stick figure outside the rectangle | Stick figure drawn inside the rectangle — actors are **always external** | |
|||||||
| 129 | | Use case position | Oval inside the rectangle | Oval outside the rectangle — use cases describe **your** system's functions | |
|||||||
| 130 | | Use case label | *"Submit Quiz"* (verb-noun) | *"Quiz Submission Page"* or *"Database"* — labels must be action phrases | |
|||||||
| 131 | | Actor label | Role name: *"Teacher"* | Personal name: *"Mr Smith"* — use the **role**, not the person | |
|||||||
| 132 | | «include» arrow direction | Base use case → included use case | Arrow pointing the wrong way (included → base) — this is the most common mistake | |
|||||||
| 133 | | «extend» arrow direction | Extending use case → base use case | Arrow pointing the wrong way (base → extending) | |
|||||||
| 134 | | «include» / «extend» line style | **Dashed** line with the stereotype label | Solid line with no label — dashed + label is required | |
|||||||
| 135 | | Association line | **Solid** line | Dashed line for a plain association — save dashed for «include»/«extend» | |
|||||||
| 136 | ||||||||
| 137 | ### Canonical shape — mermaid |
|||||||
| 138 | ||||||||
| 139 | ```mermaid |
|||||||
| 140 | flowchart LR |
|||||||
| 141 | A1(["👤 Actor A"]) |
|||||||
| 142 | A2(["👤 Actor B"]) |
|||||||
| 143 | ||||||||
| 144 | subgraph SYS["Your System Name"] |
|||||||
| 145 | UC1(["Use Case 1"]) |
|||||||
| 146 | UC2(["Use Case 2"]) |
|||||||
| 147 | UC3(["Use Case 3"]) |
|||||||
| 148 | end |
|||||||
| 149 | ||||||||
| 150 | A1 --- UC1 |
|||||||
| 151 | A1 --- UC2 |
|||||||
| 152 | A2 --- UC3 |
|||||||
| 153 | UC1 -.->|«include»| UC3 |
|||||||
| 154 | UC2 -.->|«extend»| UC1 |
|||||||
| 155 | ``` |
|||||||
| 156 | ||||||||
| 157 | *(In a hand-drawn version, actors are traditional stick figures. The mermaid icons above are just a stand-in.)* |
|||||||
| 158 | ||||||||
| 159 | ::: warning |
|||||||
| 160 | **Do NOT draw on a Use Case Diagram** |
|||||||
| 161 | ||||||||
| 162 | - Actors inside the system boundary rectangle |
|||||||
| 163 | - A circle (oval) as the system boundary — boundary must be a **rectangle** |
|||||||
| 164 | - «include» / «extend» arrows on solid lines |
|||||||
| 165 | - «include» / «extend» arrows pointing the wrong direction |
|||||||
| 166 | - Use case labels that are nouns only (*"Login Page"*, *"Database"*) |
|||||||
| 167 | ::: |
|||||||
| 168 | ||||||||
| 169 | --- |
|||||||
| 170 | ||||||||
| 171 | ## Arrow Direction Memory Aid |
|||||||
| 172 | ||||||||
| 173 | The «include»/«extend» arrows trip up nearly everyone. One rule covers both: |
|||||||
| 174 | ||||||||
| 175 | > **The arrow always points toward the use case that is being *used* or *added to*.** |
|||||||
| 176 | ||||||||
| 177 | | Relationship | Who initiates | Arrow direction | Reads as | |
|||||||
| 178 | |---|---|---|---| |
|||||||
| 179 | | **«include»** | Base use case (it needs the other one) | Base → Included | *"Base use case uses Included"* | |
|||||||
| 180 | | **«extend»** | The optional extension | Extension → Base | *"Extension adds to Base"* | |
|||||||
| 181 | ||||||||
| 182 | Example: |
|||||||
| 183 | - *Submit Quiz* **includes** *Validate Answers* → arrow: Submit Quiz → Validate Answers |
|||||||
| 184 | - *Display Error* **extends** *Submit Quiz* → arrow: Display Error → Submit Quiz |
|||||||
| 185 | ||||||||
| 186 | --- |
|||||||
| 187 | ||||||||
| 188 | ## Before You Flip the Paper — Final Check |
|||||||
| 189 | ||||||||
| 190 | ::: success |
|||||||
| 191 | **Run through this list before you put your pen down.** |
|||||||
| 192 | ||||||||
| 193 | **Context Diagram** |
|||||||
| 194 | - [ ] Exactly one circle, labelled with the system name |
|||||||
| 195 | - [ ] All entities are rectangles, drawn outside the circle |
|||||||
| 196 | - [ ] Every arrow has a specific data label |
|||||||
| 197 | - [ ] No entity-to-entity arrows |
|||||||
| 198 | - [ ] No data stores, no internal circles |
|||||||
| 199 | ||||||||
| 200 | **Level-1 DFD** |
|||||||
| 201 | - [ ] 3–6 numbered processes (circles), each with a verb-noun label |
|||||||
| 202 | - [ ] Every process has at least one input AND one output arrow |
|||||||
| 203 | - [ ] At least one data store (two parallel lines, not a plain rectangle) |
|||||||
| 204 | - [ ] No entity-to-data-store arrows |
|||||||
| 205 | - [ ] No data-store-to-data-store arrows |
|||||||
| 206 | - [ ] Every arrow labelled |
|||||||
| 207 | - [ ] Entity names match the context diagram exactly |
|||||||
| 208 | ||||||||
| 209 | **Use Case Diagram** |
|||||||
| 210 | - [ ] System boundary is a rectangle, labelled with the system name |
|||||||
| 211 | - [ ] All actors (stick figures) are outside the rectangle |
|||||||
| 212 | - [ ] All use cases (ovals) are inside the rectangle |
|||||||
| 213 | - [ ] Actor labels are role names, not personal names |
|||||||
| 214 | - [ ] Every actor has at least one solid association line |
|||||||
| 215 | - [ ] At least one «include» (dashed, arrow to included use case) |
|||||||
| 216 | - [ ] At least one «extend» (dashed, arrow to base use case) |
|||||||
| 217 | - [ ] Arrow directions are correct for both «include» and «extend» |
|||||||
| 218 | ||||||||
| 219 | **Cross-diagram consistency** |
|||||||
| 220 | - [ ] Entity and actor names are identical across all three diagrams |
|||||||
| 221 | ::: |
|||||||
| 222 | ||||||||
| 223 | --- |
|||||||
| 224 | ||||||||
| 225 | ## Check Your Understanding |
|||||||
| 226 | ||||||||
| 227 | Answer in your head first, then click the spoiler to check. |
|||||||
| 228 | ||||||||
| 229 | **1.** You're drawing a context diagram by hand and you've just drawn a second circle labelled *"Verify Login"* next to the main system circle. What's wrong? |
|||||||
| 230 | ||||||||
| 231 | >! A context diagram has **exactly one circle** — the whole system. Adding a second circle (like *"Verify Login"*) turns it into a DFD. Cross out the second circle; *"Verify Login"* belongs on your Level-1 DFD as a numbered process. |
|||||||
| 232 | ||||||||
| 233 | **2.** On your Level-1 DFD, you draw a data store as a rectangle with no second line because you're drawing quickly. How will the marker read it? |
|||||||
| 234 | ||||||||
| 235 | >! As an **external entity** — a plain rectangle is the entity shape. Without the second parallel line, the marker cannot distinguish it from an entity. The double-line is not optional; it is the notation. Draw it even when rushed. |
|||||||
| 236 | ||||||||
| 237 | **3.** You draw «extend» as a dashed arrow pointing FROM the base use case TO the optional extension. What mark does this attract? |
|||||||
| 238 | ||||||||
| 239 | >! This is a **notation error**. «extend» arrows point FROM the extending use case TO the base. The wrong direction means the marker reads your diagram as saying the base use case triggers the extension — the opposite of «extend» semantics. At 9–10 this is a credited error; it caps you at 7–8 or below. |
|||||||
| 240 | ||||||||
| 241 | **4.** Your context diagram shows *"Student"* as an entity. On your DFD you've written *"User"* for what is clearly the same person. Is this a problem? |
|||||||
| 242 | ||||||||
| 243 | >! Yes — it is a **named inconsistency**. The 9–10 band requires *"no errors, inconsistencies or omissions"*. Entity names must match across all three diagrams. Change *"User"* to *"Student"* on the DFD (and the UCD). |
|||||||
| 244 | ||||||||
| 245 | --- |
|||||||
| 246 | ||||||||
| 247 | ## See also |
|||||||
| 248 | ||||||||
| 249 | - [Context Diagram](Context%20Diagram.md) — concepts, worked example, and notation rules |
|||||||
| 250 | - [Context Diagram vs Data Flow Diagram](Context%20Diagram%20vs%20Data%20Flow%20Diagram.md) — what can appear on each level |
|||||||
| 251 | - [Use Case Diagram](Use%20Case%20Diagram.md) — the four relationships and arrow-direction rules |
|||||||
| 252 | - [Excalidraw Diagram Starters](Excalidraw%20Diagram%20Starters.md) — skeleton canvases for pre-validation practice |
|||||||
| 253 | ||||||||
| 254 | --- |
|||||||
| 255 | ||||||||
| 256 | ← Back to [C02 Home](C02-home.md) · [VCE Software Development Hub](/sd/VCE%20Software%20Development%20Hub) |
|||||||
