Blame
|
1 | # Context Diagram |
||||||
| 2 | ||||||||
| 3 | Hamilton College · Year 12 · 2026 |
|||||||
| 4 | ||||||||
| 5 | A context diagram is the **highest-level** view of your software system: one shape for the whole system, the external entities it talks to, and the named data flows between them. Nothing inside, nothing extra. It is the diagram that defines the **scope** of what you are building — and it is the foundation every later diagram (Level-1 DFD, use case) must stay consistent with. |
|||||||
| 6 | ||||||||
|
7 | > [!TIP] |
||||||
| 8 | > Your **C2-2 validation** asks you to **hand-draw** a context diagram, a Level-1 DFD, and a use case diagram under timed conditions. The context diagram is the simplest of the three — but the entities and flows you choose here lock in what the other two must show. Get this one right and the rest become much easier. |
|||||||
| 9 | ||||||||
|
10 | --- |
||||||
| 11 | ||||||||
| 12 | ## Watch first (≈5 min total) |
|||||||
| 13 | ||||||||
| 14 | {{Video|src=https://www.youtube.com/watch?v=PKWCogQ8v7U}} |
|||||||
| 15 | ||||||||
| 16 | *Mark O'Meara (Geelong High School) — 1½-min VCE-targeted revision. Frames the context diagram as a **Level 0 DFD** using the Yourdon-DeMarco notation you'll use in C2-2. Watch for: one circle in the middle, entities outside, no internals.* |
|||||||
| 17 | ||||||||
| 18 | {{Video|src=https://www.youtube.com/watch?v=fWNrc6GNK14}} |
|||||||
| 19 | ||||||||
| 20 | *Christopher Kalodikis (Maximum Education, HSC) — 3-min overview building the intuition. Watch for: the **purpose** (showing inputs/outputs at a glance), why every external entity must have at least one labelled flow, and what counts as "external".* |
|||||||
| 21 | ||||||||
| 22 | --- |
|||||||
| 23 | ||||||||
| 24 | ## Why a context diagram |
|||||||
| 25 | ||||||||
| 26 | Think of it as a **satellite view** of your software. You can see the system's outline and everything crossing its boundary, but not what's happening inside. |
|||||||
| 27 | ||||||||
| 28 | It does four jobs: |
|||||||
| 29 | ||||||||
| 30 | - **Defines scope** — what's part of your system, and what isn't |
|||||||
| 31 | - **Identifies stakeholders** — every external entity that interacts with the system |
|||||||
| 32 | - **Visualises data exchanges** — every input and output, named |
|||||||
| 33 | - **Anchors later diagrams** — your Level-1 DFD must show the same entities and flows |
|||||||
| 34 | ||||||||
|
35 | ::: info |
||||||
| 36 | **The diagnostic test.** If you can't draw a clean context diagram for your project, you don't yet know what you're building. Coming back to it after a week of design work usually reveals an entity you missed — that's a feature of the diagram, not a failure. |
|||||||
| 37 | ::: |
|||||||
|
38 | |||||||
| 39 | --- |
|||||||
| 40 | ||||||||
| 41 | ## The three elements |
|||||||
| 42 | ||||||||
| 43 | | Element | Symbol | Rules | |
|||||||
| 44 | |---|---|---| |
|||||||
| 45 | | **The system** | One circle (Yourdon-DeMarco) | Exactly **one** — the whole system. Named after the system itself (e.g. *Sales Order System*, *Library Loans*). | |
|||||||
| 46 | | **External entities** | Rectangles outside the circle | People, organisations, or other systems that interact with yours. Examples: *Customer*, *Administrator*, *Payment Gateway*, *Email Server*. | |
|||||||
| 47 | | **Data flows** | Labelled arrows | Every arrow names the **specific data** crossing the boundary. Direction shows whether data goes in or out. | |
|||||||
| 48 | ||||||||
|
49 | ::: warning |
||||||
| 50 | **What's *not* allowed on a context diagram** |
|||||||
|
51 | |||||||
| 52 | - More than one process circle (that's a DFD — see [Context Diagram vs Data Flow Diagram](Context%20Diagram%20vs%20Data%20Flow%20Diagram.md)) |
|||||||
| 53 | - Data stores (no parallel-line rectangles at this level) |
|||||||
| 54 | - Arrows between two entities (every flow must touch the system circle) |
|||||||
| 55 | ||||||||
|
56 | These rules are *strict*, not stylistic. Breaking any of them turns your context diagram into a different (and incorrect) artefact in the marker's eyes. |
||||||
| 57 | ::: |
|||||||
| 58 | ||||||||
|
59 | --- |
||||||
| 60 | ||||||||
| 61 | ## Worked example: Sales Order System |
|||||||
| 62 | ||||||||
|
63 | ```mermaid |
||||||
| 64 | flowchart LR |
|||||||
| 65 | M[Managers] |
|||||||
| 66 | E[Employees] |
|||||||
| 67 | C[Customers] |
|||||||
| 68 | S(("Sales Order<br/>System")) |
|||||||
| 69 | ||||||||
| 70 | M -->|New Employee| S |
|||||||
| 71 | S -->|Employee Lists| M |
|||||||
| 72 | S -->|Vendor & Product-vendors| M |
|||||||
| 73 | E -->|Updates Employee| S |
|||||||
| 74 | E -->|Product & Category| S |
|||||||
| 75 | C -->|Customer details| S |
|||||||
| 76 | C -->|Order & Order-line| S |
|||||||
| 77 | S -->|Order & Order-line| C |
|||||||
| 78 | S -->|Order Invoices| C |
|||||||
|
79 | ``` |
||||||
| 80 | ||||||||
| 81 | **Read it like this:** |
|||||||
| 82 | ||||||||
| 83 | - **The system** (centre): *Sales Order System* |
|||||||
| 84 | - **External entities**: *Managers*, *Employees*, *Customers* — all rectangles outside the circle |
|||||||
| 85 | - **Data flows**: |
|||||||
| 86 | - **Managers → System**: New Employee |
|||||||
| 87 | - **System → Managers**: Employee Lists, Vendor and Product-vendor info |
|||||||
| 88 | - **Employees → System**: Updates Employee, Product and Category |
|||||||
| 89 | - **Customers → System**: Customer details, Order and Order-line |
|||||||
| 90 | - **System → Customers**: Order Invoices |
|||||||
| 91 | ||||||||
|
92 | > [!IMPORTANT] |
||||||
| 93 | > Notice what is **not** shown: how the system stores employees, how it validates an order, how it produces an invoice. Those are internal — they belong on the Level-1 DFD, not here. *Restraint is the diagram's whole point.* |
|||||||
|
94 | |||||||
| 95 | --- |
|||||||
| 96 | ||||||||
| 97 | ## How to draw one |
|||||||
| 98 | ||||||||
| 99 | 1. **Name the system.** What are you building? That name goes inside the single circle. |
|||||||
| 100 | 2. **List external entities.** Who or what interacts directly with the system? Include only **direct** interactions — if Entity A only talks to Entity B (and never to your system), A doesn't belong here. |
|||||||
| 101 | 3. **Name every data flow.** Walk through each entity in turn: what specific data does it send in? What does the system send back? Use specific labels (*"payment details"*, not *"information"*). |
|||||||
| 102 | 4. **Check completeness.** Every entity should have at least one arrow connecting it to the system. Every arrow should be labelled. No entity should connect directly to another entity. |
|||||||
| 103 | ||||||||
|
104 | ::: success |
||||||
| 105 | **Quality check before you move on** |
|||||||
| 106 | ||||||||
| 107 | - Exactly **one** circle? ✓ |
|||||||
| 108 | - Every entity is a rectangle outside the circle? ✓ |
|||||||
| 109 | - Every arrow has a **specific** label (not *"data"* or *"info"*)? ✓ |
|||||||
| 110 | - No entity-to-entity arrows? ✓ |
|||||||
| 111 | - No data stores, no internal processes? ✓ |
|||||||
| 112 | ||||||||
| 113 | Five ticks → ready for your Level-1 DFD. |
|||||||
| 114 | ::: |
|||||||
| 115 | ||||||||
|
116 | --- |
||||||
| 117 | ||||||||
|
118 | ::: danger |
||||||
| 119 | **Most common mistakes** |
|||||||
|
120 | |||||||
|
121 | 1. **Drift toward a DFD** — adding a second circle (e.g. *"Verify User"*) inside the system. If there's more than one circle, it's no longer a context diagram. |
||||||
|
122 | 2. **Unlabelled arrows** — *"data"* or *"info"* is not a label. Name the actual data. |
||||||
| 123 | 3. **Entity-to-entity arrows** — every flow must touch the system. If two entities exchange data without your system involved, that exchange isn't on this diagram. |
|||||||
| 124 | 4. **Missing entities** — forgetting downstream systems (email server, payment gateway, reporting tool) that your system sends data to. |
|||||||
| 125 | 5. **Inventing detail** — showing data stores or internal logic. Save those for the Level-1 DFD. |
|||||||
|
126 | ::: |
||||||
|
127 | |||||||
| 128 | --- |
|||||||
| 129 | ||||||||
| 130 | ## Self-check |
|||||||
| 131 | ||||||||
|
132 | Test yourself before moving on. Answer in your head first, then click the spoiler to check. |
||||||
|
133 | |||||||
|
134 | **1.** Which of these is **not** a component of a context diagram? |
||||||
| 135 | *(a) process · (b) entity · (c) data flow · (d) data store* |
|||||||
|
136 | |||||||
|
137 | >! **(d) data store.** Data stores belong on the Level-1 DFD, not the context diagram. At Level 0 the whole system is a single black box — its internal storage is hidden. |
||||||
|
138 | |||||||
|
139 | **2.** In a context diagram, which statement is correct? |
||||||
| 140 | *(a) Entities can connect directly to other entities · (b) Data flows can only connect entities to the system process · (c) Multiple processes can be shown · (d) All flows must be unidirectional* |
|||||||
| 141 | ||||||||
| 142 | >! **(b) Data flows can only connect entities to the system process.** Every arrow must touch the system circle. Entity↔entity flows are never allowed; (c) describes a DFD, not a context diagram; (d) is false — a flow can be bidirectional if data moves both ways. |
|||||||
| 143 | ||||||||
| 144 | **3.** You're drawing a context diagram for a Library Management System. How should *"borrowing a book"* appear? |
|||||||
| 145 | *(a) An entity labelled "Borrowing" · (b) A process inside the system · (c) A data flow labelled "Book borrowing request" from Borrower to the system · (d) A rectangle showing the book collection* |
|||||||
| 146 | ||||||||
| 147 | >! **(c) A data flow labelled "Book borrowing request" from Borrower to the system.** Borrowing is an *action*, not an entity or a thing. On a context diagram, actions surface as labelled data flows. (b) would be a process — but the context diagram has only one process (the whole system). |
|||||||
|
148 | |||||||
| 149 | --- |
|||||||
| 150 | ||||||||
| 151 | ## See also |
|||||||
| 152 | ||||||||
| 153 | - [Context Diagram vs Data Flow Diagram](Context%20Diagram%20vs%20Data%20Flow%20Diagram.md) — when you move to Level 1, what changes and what stays the same |
|||||||
| 154 | - [What Is an Entity](What%20Is%20an%20Entity.md) — entities aren't only people; non-human systems count |
|||||||
| 155 | - [Excalidraw Diagram Starters](Excalidraw%20Diagram%20Starters.md) — pre-framed canvases for rehearsing all three diagrams under timed conditions |
|||||||
