Advanced Requirements Engineering
One level down means: more concrete, smaller, closer to the solution. Everything up to the User Story stays implementation-free.
ISO/IEC/IEEE 29148:2018 · SAFe · Cockburn · Bass/Clements/Kazman
Maximize the infotainment premium option take-rate to offset high localized manufacturing costs.
Has Business Objectives, but no children. Nothing below hangs under it — everything traces to it. No link ⇒ gold-plating.
As a driver I want to make a phone call on the road so that I can go on driving.
Deliberately coarse — a bundle of functionality, neither singular nor complete. Of SMART, only Specific and Relevant apply here.
As a driver I want to dial a phone number while driving so that I can talk to a partner while driving.
Must be bounded: fully developable and testable within a single PI. Special cases on the same level — Architecture Enabler and Operational Feature .
As a driver I want to select the phone functions and the dialing option while driving so that I can type in a phone number.
Must span the subsystems and describe user interaction. “Update the CAN message matrix layer” would be the mistake that loses the value.
The dialer service shall normalize the entered phone number to E.164 before handing it to the telephony stack.
Technical specification for software, hardware and their interfaces. Alongside it the Sub-System Requirement, which some organizations keep as well.
| Category | Format | Refined by |
|---|---|---|
| Functional | User-Story format | Use Case → Features → User Stories → GWT |
| Operational Quality external, user-visible |
Requirements-Sentence format | Quality Scenarios — as AC or as its own Operational Feature |
| Developmental Quality internal, for build and maintenance |
Requirements-Sentence format | Architecture Enabler → architecture |
| Constraint Budget, schedule, law, technology |
Requirements Sentence with “will” | nothing — Constraints are not decomposed |
User-Story format · Value Focus
As a <role / type of user> I want <to do this>, so that <I achieve this goal>.
Check: Is there a nameable user and a value for them?
Requirements-Sentence format · System Focus
[Condition] Subject Imperative Action Object [Constraint] shall binding requirement should goal or recommendation, not binding will stated intention → Constraints
Check: Is the obligation explicit — shall, should or will?
GWT format · Acceptance Criteria of the User Story
Given state of the world before the behavior When the behavior being specified Then the expected change that follows
Check: Can a test case be derived from it directly?
Source of Stimulus who or what triggers it Stimulus WHEN which event Artifact which element is affected Environment GIVEN Normal · Peak · Overload Response THEN how the element reacts Response Measure Latency · Jitter · Miss Rate …
| Category | when it is missing |
|---|---|
| Basic taken for granted | strong dissatisfaction |
| Performance the more the better | drops linearly |
| Delighter competitive advantage | no dissatisfaction |
| Indifferent Noise | little effect — effort wasted |