Blame
|
1 | > **DRAFT** — under teacher review. |
||||||
| 2 | ||||||||
| 3 | # SRS 2.0 — Tracing One Scenario Across the Document |
|||||||
| 4 | ||||||||
| 5 | Hamilton College · Year 12 · 2026 |
|||||||
| 6 | ||||||||
| 7 | In the SRS 2.0 writing test (C3-1, validated at T2W5), you are given a new scenario — a change your client has just notified you of — and you must update your SRS to respond to it. Students who stall at 7–8 typically update one or two sections and stop. The **9–10 band** requires you to trace the change through the *entire document* and justify why each section changed (or why it stayed the same). |
|||||||
| 8 | ||||||||
| 9 | The scenario is not an isolated edit. It is a ripple. A single new constraint can change requirements, scope, users, technical environment, and analytical tools — in a chain. This page shows what that chain looks like for one concrete example. |
|||||||
| 10 | ||||||||
| 11 | Scaffold: [`C031-SRS-2-0.md`](../../../applied-computing-au/vic/unit3-4/sat/C03-2026/C031-SRS-2-0.md) |
|||||||
| 12 | ||||||||
| 13 | --- |
|||||||
| 14 | ||||||||
| 15 | ## The scenario used in this example |
|||||||
| 16 | ||||||||
| 17 | > **New constraint:** The school has updated its data-protection policy. Any system that stores student names or student numbers must now: |
|||||||
| 18 | > - encrypt all stored records (AES-256 or equivalent) |
|||||||
| 19 | > - delete personal data within 30 days of the student's last login |
|||||||
| 20 | > - log every access to a student record (read or write) to an audit trail |
|||||||
| 21 | ||||||||
| 22 | This is a **legal + technical constraint** entering the project from outside. Here is how it ripples. |
|||||||
| 23 | ||||||||
| 24 | --- |
|||||||
| 25 | ||||||||
| 26 | ## Trace across the six SRS sections |
|||||||
| 27 | ||||||||
| 28 | ### 1. Constraints |
|||||||
| 29 | ||||||||
| 30 | **What changes:** A new legal/technical constraint row is added. |
|||||||
| 31 | ||||||||
| 32 | | Category | New constraint entry | |
|||||||
| 33 | |---|---| |
|||||||
| 34 | | **Legal** | New school data-protection policy (effective 2026-T2) requires AES-256 encryption for all stored student personal data (name, student number). Aligns with Privacy and Data Protection Act 2014 (Vic), s 13. | |
|||||||
| 35 | | **Technical** | All student records must be automatically deleted 30 days after last login. Access to student records must be logged to an audit trail (read + write events, timestamp, user ID). | |
|||||||
| 36 | ||||||||
| 37 | **Why this section changes first:** Constraints are facts of the world imposed on the project. The policy exists before you update a single requirement — the constraint section must reflect the new reality first, because everything else flows from it. |
|||||||
| 38 | ||||||||
| 39 | --- |
|||||||
| 40 | ||||||||
| 41 | ### 2. Non-Functional Requirements |
|||||||
| 42 | ||||||||
| 43 | **What changes:** Two or three NF requirements are updated or added. |
|||||||
| 44 | ||||||||
| 45 | | # | Updated / new requirement | |
|||||||
| 46 | |---|---| |
|||||||
| 47 | | NF5 (new) | All student personal data (names, student numbers) shall be encrypted at rest using AES-256 or equivalent. | |
|||||||
| 48 | | NF6 (new) | Student records shall be automatically deleted 30 days after the associated account's last login event. | |
|||||||
| 49 | | NF7 (new) | Every read or write operation on a student record shall be logged to an audit trail table, capturing: timestamp, user ID, operation type (read/write), and affected record ID. | |
|||||||
| 50 | | NF2 (updated) | The system shall comply with the Privacy and Data Protection Act 2014 (Vic) and the updated school data-protection policy (2026-T2 revision). | |
|||||||
| 51 | ||||||||
| 52 | **Why this section changes:** Constraints define the world the system lives in; non-functional requirements define how the system must perform within that world. The new constraint directly generates three testable standards the system must meet. |
|||||||
| 53 | ||||||||
| 54 | --- |
|||||||
| 55 | ||||||||
| 56 | ### 3. Functional Requirements |
|||||||
| 57 | ||||||||
| 58 | **What changes:** One new functional requirement is added for data export/deletion. |
|||||||
| 59 | ||||||||
| 60 | | # | Updated / new requirement | |
|||||||
| 61 | |---|---| |
|||||||
| 62 | | F9 (new) | The system shall allow an administrator to trigger manual deletion of a student's personal data on request, prior to the 30-day automatic period. | |
|||||||
| 63 | ||||||||
| 64 | **Why this section changes:** The auto-deletion rule implies a manual override may be needed (e.g., a student requests data deletion under their rights). A functional requirement captures the feature; the constraint captures why the feature exists. Do not merge them. |
|||||||
| 65 | ||||||||
| 66 | **What does NOT change:** Most functional requirements are unaffected — the booking flow, event display, and notification features still work the same way. Only features that *handle personal data* are touched. |
|||||||
| 67 | ||||||||
| 68 | --- |
|||||||
| 69 | ||||||||
| 70 | ### 4. Scope (MoSCoW) |
|||||||
| 71 | ||||||||
| 72 | **What changes:** Audit-trail logging is promoted from Could to Must. |
|||||||
| 73 | ||||||||
| 74 | | Priority | Feature | Before scenario | After scenario | |
|||||||
| 75 | |---|---|---|---| |
|||||||
| 76 | | Must | AES-256 encryption for stored student data | Was not in scope | **Added: Must** — legally required | |
|||||||
| 77 | | Must | Audit trail logging | **Was: Could** — nice-to-have | **Changed: Must** — legally required | |
|||||||
| 78 | | Could | Manual data-deletion trigger for admin | Was not in scope | **Added: Should** — implied by new NF requirements | |
|||||||
| 79 | ||||||||
| 80 | **Why this section changes:** Scope reflects decisions about what the system will and won't do. A legal constraint converts an optional feature (audit logging) into a non-negotiable one — the scope table must reflect that shift. Failing to update the MoSCoW table leaves a contradiction: the constraint says "must log", the scope says "could log". |
|||||||
| 81 | ||||||||
| 82 | --- |
|||||||
| 83 | ||||||||
| 84 | ### 5. User Characteristics |
|||||||
| 85 | ||||||||
| 86 | **What changes:** The Administrator row is updated to reflect new responsibilities. |
|||||||
| 87 | ||||||||
| 88 | | User Type | Before | After | |
|||||||
| 89 | |---|---|---| |
|||||||
| 90 | | **Administrator** | Manages events, approves bookings | Manages events, approves bookings; also responsible for monitoring the audit trail and actioning data-deletion requests within 30 days. Requires awareness of school data-protection policy. | |
|||||||
| 91 | ||||||||
| 92 | **Why this section changes:** New responsibilities change the description of what the administrator does. A user characteristics entry must be accurate to the system as it will be built — if the admin now has a legal obligation (reviewing audit logs), that belongs in the characteristics table. It also informs training needs, which the 9–10 band examiner may probe. |
|||||||
| 93 | ||||||||
| 94 | **What does NOT change:** Student and teacher user characteristics are unaffected — they interact with the system the same way. Note this explicitly to show you considered all users, not just the one that changed. |
|||||||
| 95 | ||||||||
| 96 | --- |
|||||||
| 97 | ||||||||
| 98 | ### 6. Technical Environment |
|||||||
| 99 | ||||||||
| 100 | **What changes:** Security and data categories are updated. |
|||||||
| 101 | ||||||||
| 102 | | Category | Updated entry | |
|||||||
| 103 | |---|---| |
|||||||
| 104 | | **Security** | AES-256 encryption for all student records at rest. HTTPS + TLS 1.2+ for data in transit (unchanged). Role-based access updated: administrators now have audit-trail read access in addition to existing permissions. | |
|||||||
| 105 | | **Data** | MySQL 8.0 with `students` table encrypted at column level (AES_ENCRYPT). New `audit_log` table added: fields — `log_id`, `timestamp`, `user_id`, `operation`, `record_id`. Automated deletion trigger runs nightly; records older than 30 days post last-login are purged. Storage estimate increases by ~5 MB/year for audit logs. | |
|||||||
| 106 | ||||||||
| 107 | **Why this section changes:** The technical environment documents how the system is deployed. New encryption, a new database table, and a nightly deletion trigger are all implementation-level changes — they belong here, not in the constraints section. Constraints explain *why*; technical environment explains *how the system meets the constraint*. |
|||||||
| 108 | ||||||||
| 109 | --- |
|||||||
| 110 | ||||||||
| 111 | ### Analytical Tools (UCD, CD, DFD) |
|||||||
| 112 | ||||||||
| 113 | **What changes:** Review required — likely minor. |
|||||||
| 114 | ||||||||
| 115 | - **UCD:** No new use cases for students or teachers. A new use case may be needed: `«Review Audit Trail»` for Administrator. Add if it wasn't already present. |
|||||||
| 116 | - **Context Diagram (CD):** No new external entities. The school data-protection authority (policy source) is an external entity only if your project has a data feed from them — unlikely in a basic school app. Probably no change. |
|||||||
| 117 | - **DFD:** The `Audit Log` is now a new data store. Add it, with data flows from each process that reads or writes student data. Update the data dictionary table to include `audit_log` entry. |
|||||||
| 118 | ||||||||
| 119 | **Why you must check:** The diagrams are meant to match the requirements. If you add a functional requirement (F9: admin-triggered deletion) and do not add a corresponding use case or DFD process, the traceability matrix breaks. The 9–10 band requires consistency across the whole document. |
|||||||
| 120 | ||||||||
| 121 | --- |
|||||||
| 122 | ||||||||
| 123 | ## What the 9–10 answer looks like vs 7–8 |
|||||||
| 124 | ||||||||
| 125 | | Band | What the student does | |
|||||||
| 126 | |---|---| |
|||||||
| 127 | | **7–8** | Updates 2–3 sections (typically constraints + non-functional requirements). Notes that changes were made. Does not explain the chain of reasoning. | |
|||||||
| 128 | | **9–10** | Traces the constraint through all six sections. For each section: states what changed, what stayed the same, and *why*. Points to contradictions the change resolves (e.g., scope table now consistent with constraints section). | |
|||||||
| 129 | ||||||||
| 130 | > The **justify your changes** instruction in `C031-SRS-2-0.md` is not a formality. The examiner is specifically looking for the chain: *"The constraint changed X, which changed the requirement, which changed the scope, which changed the technical environment."* |
|||||||
| 131 | ||||||||
| 132 | --- |
|||||||
| 133 | ||||||||
| 134 | ## Common mistakes |
|||||||
| 135 | ||||||||
| 136 | - **Updating constraints but not scope.** A new legal constraint that makes a feature mandatory must be reflected in MoSCoW (e.g., promoting an item from Could to Must). Leaving the scope table unchanged creates a contradiction. |
|||||||
| 137 | - **Writing the justification inside the constraint row.** The *why* for each change belongs in your narrative — not crammed into a table cell. Write a sentence per section: "Section 3.5 Technical Environment was updated because…" |
|||||||
| 138 | - **Ignoring the diagrams.** Any new functional requirement or data store should be cross-checked against the UCD, CD, and DFD. A new data store (e.g., `audit_log`) that appears in the requirements but not in the DFD is a traceability gap. |
|||||||
| 139 | - **Changing sections that are unaffected.** Do not bulk-edit your SRS to look thorough. The 9–10 band examiner will ask why you changed section X — if you can't answer, the mark is at risk. Noting that a section *was reviewed and not changed* is better than silently changing it. |
|||||||
| 140 | ||||||||
| 141 | --- |
|||||||
| 142 | ||||||||
| 143 | ## Why VCAA cares |
|||||||
| 144 | ||||||||
| 145 | SRS 2.0 is explicitly a test of how well you understand the *relationships* between SRS sections. Writing good requirements is a 5–6 skill. Understanding that a legal constraint generates non-functional requirements, which promote a scope item, which update the technical environment — that is the 9–10 skill. The scenario is designed to expose whether the chain is understood or whether the student treats each SRS section as an isolated document. |
|||||||
| 146 | ||||||||
| 147 | --- |
|||||||
| 148 | ||||||||
| 149 | ## See also |
|||||||
| 150 | ||||||||
| 151 | - [Scope vs Constraints](/sd/C03/Scope%20vs%20Constraints) — the boundary between constraints (facts of the world) and scope decisions (what the system will do) |
|||||||
| 152 | - [Technical Environment — Five Categories](/sd/C03/Technical%20Environment%20%E2%80%94%20Five%20Categories) — how to update the technical environment section correctly |
|||||||
| 153 | - [Evaluating Your Own Questions](/sd/C03/Evaluating%20Your%20Own%20Questions) — the related C3-2 self-assessment skill |
|||||||
| 154 | - [C03 Resources](/sd/Resources/C03-Resources) |
|||||||
| 155 | ||||||||
| 156 | --- |
|||||||
| 157 | ||||||||
| 158 | ← Back to [C03 Home](/sd/C03/C03-home) · [VCE Software Development Hub](/sd/VCE%20Software%20Development%20Hub) |
|||||||
|
159 | |||||||
| 160 | <!-- touched 2026-04-30 to force OtterWiki re-render --> |
|||||||
| 161 | ||||||||
