Blame

4cd5f4 lisa 2026-04-25 22:39:09
Add C03 wiki content (DRAFT) — landing page, Resources rows Light first pass: C03-home, 2 key-concept pages marked DRAFT, external resource rows in C03-Resources.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1
> **DRAFT** — under teacher review.
2
3
# Functional vs Non-Functional Requirements — What's the Difference?
4
1abe81 lisa 2026-04-30 18:17:38
School name → 'The Hamilton and Alexandra College' across all wiki pages Sweep rename of the standard subtitle line on every wiki page (sd/, hub, resources). 25 files affected.
5
The Hamilton and Alexandra College · Year 12 · 2026
4cd5f4 lisa 2026-04-25 22:39:09
Add C03 wiki content (DRAFT) — landing page, Resources rows Light first pass: C03-home, 2 key-concept pages marked DRAFT, external resource rows in C03-Resources.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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)