DRAFT — under teacher review.

What Is an Entity? (It's Not Just a Person)

Hamilton College · Year 12 · 2026

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".


The VCAA definition

Entity — the users or external systems that interact with the system being created.

Two words matter: users (human roles) and external systems (non-human). Both go on your context diagram as rectangles.


Types of entity — with examples

Type What it is VCE SAT examples
Human user (primary) The person the software is primarily built for Student, Teacher, Administrator
Human user (secondary) A person affected by the system's outputs Parent, School Principal
External software system An API, platform, or service your system sends data to or receives data from Google Calendar API, Payment Gateway, Email Server
External data source A data feed or file system outside your application boundary School database, CSV import, Government open data

A quick test: is it an entity?

Ask three questions:

  1. Does it send data into my system, or receive data out of it?
  2. Is it outside the boundary of the software I am building?
  3. Is it a distinct role or system (not an internal component of my software)?

If all three answers are "yes" — it is an entity. Add it to your diagram.

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.


Common omissions from student context diagrams

These are the entities students most often miss, sorted by project type:

Project type Commonly missed entity Why it is missed
Any project with login Authentication provider (e.g. Google OAuth) Students think login is "inside" their app
Any project that emails users Email server / SMTP service Students don't model outgoing system calls
School management tool Admin user or IT department Students only think about the primary user
App using external data External database or API (e.g. weather API) Students model the API as a feature, not an entity
App with notifications Push notification service Treated as internal, but it is external

User stories → entities: the reliable method

Your data-collection-plan.md user stories are the best source of entities. For each story:

  • "As a [role]" → that role is probably an entity (if they interact with your system directly).
  • "I want [goal] so that [benefit]" → what external systems does achieving this goal require? Each one is a candidate entity.

Work through every user story before finalising your context diagram.


Why VCAA cares

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.

The most common C2-2 omission flagged in past years: the email server or notification service that every project needs but few students draw.


See also


← Back to VCE Software Development Hub