NivaarExam PrepOfficial exam papers ↗

19-Soft-A5 Requirements and Specifications · May 2015

Question 4 of 4: Part 4: Excellent Requirements and Requirement Collections

Nivaar worked solution (AI-drafted; not reviewed by a licensed engineer)

Notes on this paper

National Exams, May 2015 — 04-Soft-A5, Requirements and Specifications (open book, one book of the candidate's choice, 3 hours, no calculator). The paper has four parts: Part 1 (30%) is ten statement/reason items on requirements-engineering theory; Part 2 (25%) is a two-page essay on the requirements-elicitation process; Part 3 (25%) covers non-functional requirements, including three NFRs for a life-critical avionics system; Part 4 (20%) asks for the seven characteristics of an excellent individual requirement and the three characteristics of an excellent requirements collection. This solution answers every part and every sub-item in full as a study resource.

Reference texts. Sommerville, Software Engineering, 10th ed., Ch. 4 (Requirements Engineering) & Ch. 5 (System Modeling); Pressman, Software Engineering: A Practitioner's Approach, 9th ed., Ch. 8–9; SWEBOK v4, Requirements Engineering KA; ISO/IEC/IEEE 29148 (requirements quality characteristics); ISO/IEC 25010 (SQuaRE quality model, used for the avionics NFRs in Part 3); Karlsson & Ryan and Karlsson, Wohlin & Regnell on requirements-prioritization scales (Part 1, items 1–2); Ruhe, Product Release Planning: Methods, Tools and Applications, on precedence/coupling constraints in release planning (Part 1, item 5); Lauesen, Software Requirements: Styles and Techniques, on requirement levels, task descriptions and focus groups (Part 1, items 4, 8 and 10; Part 2).

Part 4: Excellent Requirements and Requirement Collections (20%)

Question text not reproduced: the examination questions are © Engineers and Geoscientists BC. Open the official past paper (linked at the top of this page) to read the question, then follow the worked solution below.

Characteristics of an individual excellent requirement. These seven properties (essentially the IEEE 830 / ISO 29148 quality characteristics applied to a single requirement statement) are each described briefly below.

CharacteristicBrief explanation
CompleteThe requirement states everything it needs to, with no missing information the reader must guess at — every function, condition, response and unit of measure it should specify is actually present in the text, not left implicit or "to be determined."
CorrectThe requirement accurately represents a real capability, condition or constraint the system must satisfy; it reflects what the stakeholders actually need and what the system is genuinely capable of, not a mistaken restatement of either.
FeasibleThe requirement can actually be implemented within the project's real technical, schedule and budget constraints; a technically perfect requirement that no team could build with the available time, skills and technology is not excellent, however well written.
NecessaryThe requirement is genuinely needed — traceable to a real stakeholder need or business objective — and its omission would leave a real, identifiable deficiency in the system; requirements included "just in case" or because they seemed like a good idea fail this test even if they are otherwise well formed.
PrioritizedThe requirement carries an explicit indication of its relative importance or urgency (e.g. Must/Should/Could, or a numeric rank) so that, when schedule or budget forces a trade-off, the team knows which requirements can be deferred or cut without guessing.
UnambiguousThe requirement has exactly one interpretation for every reader, technical or non-technical; if a business analyst and a developer can honestly read the same sentence and reach two different understandings of what is required, it is ambiguous, however grammatically correct.
VerifiableThere exists a finite, practical way — a test, inspection, demonstration or analysis — to determine objectively whether the delivered system satisfies the requirement; a requirement that cannot in principle be checked ("the system shall be user-friendly," unquantified) is not a real requirement no matter how well-intentioned.

Characteristics of an excellent requirements collection. These three properties apply to the requirements set as a whole, not to any single requirement in isolation.

CharacteristicBrief explanation
ConsistentNo two requirements in the collection contradict one another, either directly (one says a field is mandatory, another says the same field is optional) or indirectly through their combined effect (two individually reasonable rounding rules that together violate a stated accounting-balance requirement); consistency is a property of the set, and checking it requires comparing requirements against each other, not just reading each one alone.
ModifiableThe collection is organized (structured, cross-referenced, free of unnecessary redundancy) so that a single change — a new regulation, a stakeholder correction — can be made cleanly in one place without leaving stale, contradictory copies elsewhere in the document; a requirements set where the same fact is restated in five places is unmodifiable even if each individual restatement is itself correct and clear.
TraceableEvery requirement in the collection can be traced backward to the stakeholder need, business goal or higher-level requirement that motivated it, and forward to the design element, code and test case that satisfies and verifies it; this bidirectional trace is what makes it possible to answer both "why do we need this?" and "what would break if we removed this?" for any requirement in the set.
Back to the paper →