Blame
|
1 | > **DRAFT** — under teacher review. |
||||||
| 2 | ||||||||
| 3 | # What Is an Entity? (It's Not Just a Person) |
|||||||
| 4 | ||||||||
| 5 | Hamilton College · Year 12 · 2026 |
|||||||
| 6 | ||||||||
| 7 | On context diagrams and data flow diagrams, students frequently draw only the humans they can think of — "Student", "Teacher" — and miss every external system their software talks to. Missing an entity is a rubric error at every level above 3–4, because the rubric rewards *"relationships between the existing system, entities and data flows"*. |
|||||||
| 8 | ||||||||
| 9 | --- |
|||||||
| 10 | ||||||||
| 11 | ## The VCAA definition |
|||||||
| 12 | ||||||||
| 13 | > **Entity** — the users or external systems that interact with the system being created. |
|||||||
| 14 | ||||||||
| 15 | Two words matter: **users** (human roles) and **external systems** (non-human). Both go on your context diagram as rectangles. |
|||||||
| 16 | ||||||||
| 17 | --- |
|||||||
| 18 | ||||||||
| 19 | ## Types of entity — with examples |
|||||||
| 20 | ||||||||
| 21 | | Type | What it is | VCE SAT examples | |
|||||||
| 22 | |---|---|---| |
|||||||
| 23 | | **Human user (primary)** | The person the software is primarily built for | Student, Teacher, Administrator | |
|||||||
| 24 | | **Human user (secondary)** | A person affected by the system's outputs | Parent, School Principal | |
|||||||
| 25 | | **External software system** | An API, platform, or service your system sends data to or receives data from | Google Calendar API, Payment Gateway, Email Server | |
|||||||
| 26 | | **External data source** | A data feed or file system outside your application boundary | School database, CSV import, Government open data | |
|||||||
| 27 | ||||||||
| 28 | --- |
|||||||
| 29 | ||||||||
| 30 | ## A quick test: is it an entity? |
|||||||
| 31 | ||||||||
| 32 | Ask three questions: |
|||||||
| 33 | 1. Does it send data **into** my system, or receive data **out** of it? |
|||||||
| 34 | 2. Is it **outside** the boundary of the software I am building? |
|||||||
| 35 | 3. Is it a **distinct role or system** (not an internal component of my software)? |
|||||||
| 36 | ||||||||
| 37 | If all three answers are "yes" — it is an entity. Add it to your diagram. |
|||||||
| 38 | ||||||||
| 39 | If it is *inside* your system (e.g. a function you are writing, a class in your code, a database table your code owns) — it is **not** an entity. It belongs on the DFD as a process or data store. |
|||||||
| 40 | ||||||||
| 41 | --- |
|||||||
| 42 | ||||||||
| 43 | ## Common omissions from student context diagrams |
|||||||
| 44 | ||||||||
| 45 | These are the entities students most often miss, sorted by project type: |
|||||||
| 46 | ||||||||
| 47 | | Project type | Commonly missed entity | Why it is missed | |
|||||||
| 48 | |---|---|---| |
|||||||
| 49 | | Any project with login | Authentication provider (e.g. Google OAuth) | Students think login is "inside" their app | |
|||||||
| 50 | | Any project that emails users | Email server / SMTP service | Students don't model outgoing system calls | |
|||||||
| 51 | | School management tool | Admin user or IT department | Students only think about the primary user | |
|||||||
| 52 | | App using external data | External database or API (e.g. weather API) | Students model the API as a feature, not an entity | |
|||||||
| 53 | | App with notifications | Push notification service | Treated as internal, but it is external | |
|||||||
| 54 | ||||||||
| 55 | --- |
|||||||
| 56 | ||||||||
| 57 | ## User stories → entities: the reliable method |
|||||||
| 58 | ||||||||
| 59 | Your `data-collection-plan.md` user stories are the best source of entities. For each story: |
|||||||
| 60 | ||||||||
| 61 | - **"As a [role]"** → that role is probably an entity (if they interact with your system directly). |
|||||||
| 62 | - **"I want [goal] so that [benefit]"** → what external systems does achieving this goal require? Each one is a candidate entity. |
|||||||
| 63 | ||||||||
| 64 | Work through every user story before finalising your context diagram. |
|||||||
| 65 | ||||||||
| 66 | --- |
|||||||
| 67 | ||||||||
| 68 | ## Why VCAA cares |
|||||||
| 69 | ||||||||
| 70 | The C2-2 rubric at **5–6** requires *"illustrates the relationships between the existing system, entities and data flows"*. "Some errors or omissions exist" is still acceptable at 5–6. But at **9–10**, "no errors, inconsistencies or omissions exist" — a missing entity is an omission, and omissions cost you the top band. |
|||||||
| 71 | ||||||||
| 72 | The most common C2-2 omission flagged in past years: the email server or notification service that every project needs but few students draw. |
|||||||
| 73 | ||||||||
| 74 | --- |
|||||||
| 75 | ||||||||
| 76 | ## See also |
|||||||
| 77 | ||||||||
| 78 | - [Context Diagram vs Data Flow Diagram](/sd/C02/Context%20Diagram%20vs%20Data%20Flow%20Diagram) |
|||||||
| 79 | - C02 Resources: [external reading and videos](/sd/Resources/C02-Resources) |
|||||||
| 80 | ||||||||
| 81 | --- |
|||||||
| 82 | ||||||||
| 83 | ← Back to [VCE Software Development Hub](/sd/VCE%20Software%20Development%20Hub) |
|||||||
