Blame
|
1 | > **DRAFT** — under teacher review. |
||||||
| 2 | ||||||||
| 3 | # Functional vs Non-Functional Requirements — What's the Difference? |
|||||||
| 4 | ||||||||
|
5 | The Hamilton and Alexandra College · Year 12 · 2026 |
||||||
|
6 | |||||||
| 7 | One of the most common errors in C3-1 is writing performance targets ("the app shall load in under 2 seconds") under functional requirements, or writing feature steps under non-functional requirements. These two requirement types are defined differently — and the C3-1 rubric checks both at 5–6 band. |
|||||||
| 8 | ||||||||
| 9 | --- |
|||||||
| 10 | ||||||||
| 11 | ## Watch first (≈5 min) |
|||||||
| 12 | ||||||||
| 13 | {{Video|src=https://www.youtube.com/watch?v=3fgfUHKITts}} |
|||||||
| 14 | ||||||||
| 15 | *Jelvix — side-by-side walkthrough of functional and non-functional requirements using concrete software examples. Watch for the pattern: functional = what the system does; non-functional = how well it does it.* |
|||||||
| 16 | ||||||||
| 17 | --- |
|||||||
| 18 | ||||||||
| 19 | ## The one-sentence rule |
|||||||
| 20 | ||||||||
| 21 | | Type | One-sentence definition | Test question | |
|||||||
| 22 | |---|---|---| |
|||||||
| 23 | | **Functional** | A specific behaviour, action, or feature the system must perform | "Does the system **do** something specific here?" | |
|||||||
| 24 | | **Non-functional** | A quality standard or constraint on **how** the system performs | "Does this set a **standard** for how well the system works?" | |
|||||||
| 25 | ||||||||
| 26 | --- |
|||||||
| 27 | ||||||||
| 28 | ## Side-by-side: same project, both types |
|||||||
| 29 | ||||||||
| 30 | The scenario: a school event booking app. A student is writing requirements for C3-1. |
|||||||
| 31 | ||||||||
| 32 | ### Functional requirements (what it does) |
|||||||
| 33 | ||||||||
| 34 | | # | Requirement | |
|||||||
| 35 | |---|---| |
|||||||
| 36 | | F1 | The system shall allow a student to search for events by date or category. | |
|||||||
| 37 | | F2 | The system shall send a confirmation email when a booking is made. | |
|||||||
| 38 | | F3 | The system shall allow an administrator to add, edit, and cancel events. | |
|||||||
| 39 | | F4 | The system shall display available seat counts for each event. | |
|||||||
| 40 | ||||||||
| 41 | Each one describes **a specific action** — you could test it with a yes/no: either the system does it or it doesn't. |
|||||||
| 42 | ||||||||
| 43 | ### Non-functional requirements (how well it does it) |
|||||||
| 44 | ||||||||
| 45 | | # | Requirement | |
|||||||
| 46 | |---|---| |
|||||||
| 47 | | NF1 | The system shall load the event list in under 2 seconds on a standard school Wi-Fi connection. | |
|||||||
| 48 | | NF2 | The system shall be accessible to users with screen readers (WCAG 2.1 AA compliance). | |
|||||||
| 49 | | NF3 | The system shall be available 99.5% of the time during school hours (8am–4pm, school days). | |
|||||||
| 50 | | NF4 | The system shall store all user data in accordance with the Privacy Act 1988 (Cth). | |
|||||||
| 51 | ||||||||
| 52 | Each one sets a **measurable standard** on how the system performs — you could test it with a metric (time, percentage, compliance standard). |
|||||||
| 53 | ||||||||
| 54 | --- |
|||||||
| 55 | ||||||||
| 56 | ## The most common mistakes |
|||||||
| 57 | ||||||||
| 58 | ### Mistake 1: Performance targets under functional requirements |
|||||||
| 59 | ||||||||
| 60 | > ~~F1: The system shall load quickly.~~ |
|||||||
| 61 | ||||||||
| 62 | "Load quickly" is a performance standard — it belongs under non-functional requirements, with a number attached (e.g., "in under 2 seconds"). Functional requirements describe actions, not speeds. |
|||||||
| 63 | ||||||||
| 64 | ### Mistake 2: Features buried under non-functional requirements |
|||||||
| 65 | ||||||||
| 66 | > ~~NF1: The system shall have a login feature.~~ |
|||||||
| 67 | ||||||||
| 68 | A login feature is something the system **does** — it is a functional requirement. Non-functional requirements cannot introduce new features; they can only constrain how existing features perform. |
|||||||
| 69 | ||||||||
| 70 | ### Mistake 3: Vague non-functional requirements |
|||||||
| 71 | ||||||||
| 72 | > ~~NF1: The system shall be easy to use.~~ |
|||||||
| 73 | ||||||||
| 74 | "Easy to use" is not measurable. A non-functional requirement must be testable. Rewrite: *"A first-time user shall be able to complete a booking in under 4 minutes without assistance."* Now it can be tested. |
|||||||
| 75 | ||||||||
| 76 | --- |
|||||||
| 77 | ||||||||
| 78 | ## The categories of non-functional requirements |
|||||||
| 79 | ||||||||
| 80 | The C3-1 rubric mentions "non-functional requirements of the proposed software solution." These commonly map to: |
|||||||
| 81 | ||||||||
| 82 | | Category | Example | |
|||||||
| 83 | |---|---| |
|||||||
| 84 | | **Performance** | Load times, response times, throughput | |
|||||||
| 85 | | **Usability** | Learnability, error recovery, accessibility | |
|||||||
| 86 | | **Reliability** | Uptime percentage, mean time between failures | |
|||||||
| 87 | | **Security/Legal** | Privacy Act compliance, password requirements | |
|||||||
| 88 | | **Portability** | Runs on mobile browsers, no installation required | |
|||||||
| 89 | | **Maintainability** | Code must be documented for handover | |
|||||||
| 90 | ||||||||
| 91 | You do not need to use all categories — pick the ones that are genuinely relevant to **your** project. |
|||||||
| 92 | ||||||||
| 93 | --- |
|||||||
| 94 | ||||||||
| 95 | ## Why VCAA cares |
|||||||
| 96 | ||||||||
| 97 | At **5–6** band, the rubric requires you to *"document the functional and non-functional requirements of the proposed software solution."* This means both types must appear — and they must be correctly labelled. A submission that puts performance targets under functional requirements has mislabelled requirements, which sits below 5–6. |
|||||||
| 98 | ||||||||
| 99 | At **9–10**, your non-functional requirements must be precise enough to be testable and tied to real constraints (legal, usability, etc.). Vague NF requirements suggest the student does not understand the distinction. |
|||||||
| 100 | ||||||||
| 101 | --- |
|||||||
| 102 | ||||||||
| 103 | ## See also |
|||||||
| 104 | ||||||||
| 105 | - [Scope vs Constraints](/sd/C03/Scope%20vs%20Constraints) — the other common C3-1 pair confusion |
|||||||
| 106 | - C03 Resources: [external reading and videos](/sd/Resources/C03-Resources) |
|||||||
| 107 | ||||||||
| 108 | --- |
|||||||
| 109 | ||||||||
| 110 | ← Back to [C03 Home](/sd/C03/C03-home) · [VCE Software Development Hub](/sd/VCE%20Software%20Development%20Hub) |
|||||||
