Skip to main content

Requirements Engineering

Requirements engineering is the systematic discipline of eliciting, documenting, validating and managing requirements for a system over its entire lifecycle. The goal is a shared, verifiable understanding of what the system is supposed to deliver — between customers, developers, testers and all other stakeholders. Errors in the requirements are, by experience, particularly expensive: the later they are discovered, the more downstream work — design, implementation, tests — has to be corrected.

The four main activities

Requirements engineering comprises four closely interlinked activities that are carried out iteratively and over the entire project duration — not as a one-off phase at the beginning:

ActivityContent
ElicitationGaining requirements from stakeholders, documents, legacy systems and standards — through interviews, workshops, observation, analysis
DocumentationRecording requirements: in natural language, via sentence templates or model-based
Validation & negotiationChecking requirements for quality and resolving conflicts between stakeholders
ManagementVersioning and prioritising requirements, controlling changes and establishing traceability

With the IREB (International Requirements Engineering Board) and the CPRE certification scheme, an established, vendor-neutral training foundation exists for the discipline.

What makes a good requirement?

Common quality criteria: a requirement should be unambiguous (only one interpretation), verifiable (fulfilment objectively determinable), atomic (one fact per requirement), consistent (free of contradictions with other requirements) and necessary. The difference is evident in an example:

  • Weak: “The system must react quickly to braking requests.”
  • Verifiable: “The system must initiate brake pressure build-up within 50 ms of receiving a braking request.”

The first formulation can neither be implemented nor tested without someone silently making the actual decision later — often a different person with a different interpretation. Especially at higher criticality, standards such as ISO 26262 therefore recommend semi-formal specification methods that reduce ambiguity from the outset.

Requirements engineering and traceability

The fourth activity — management — connects requirements engineering with the production of evidence: requirements are not a static inventory, but change throughout the entire development. Every change raises the same questions: which architecture elements, which implementation, which test cases are affected? These questions can only be answered with maintained traceability — the traceable links from the stakeholder requirement through the system requirement to implementation and test. Process models such as Automotive SPICE demand precisely this bidirectional traceability as a base practice.

Requirements engineering in practice: management is decisive

In real projects, requirements engineering fails less often at elicitation than at management across tool boundaries: stakeholder requirements live in the requirements management tool, derived software requirements in a second system, tests in a third. Between these silos, requirements lose their origin and their effect — and with every change, the manual search begins for everything that is affected. Anyone who takes requirements engineering seriously must therefore organise, in addition to the quality of individual requirements, the continuity of the chain: from the source to the test case, across all tools involved.

Frequently asked questions

What is the difference between requirements engineering and requirements management?
Requirements engineering is the umbrella term for all four main activities: elicitation, documentation, validation and management of requirements. Requirements management refers to the fourth activity — administration over the lifecycle, i.e. versioning, change management, prioritisation and traceability. Management without proper elicitation and documentation only manages bad requirements more efficiently.
What distinguishes functional from non-functional requirements?
Functional requirements describe what the system is supposed to do — for example a calculation or a reaction to an event. Non-functional requirements (quality requirements) describe how well it is supposed to do it — for example response times, reliability, safety or maintainability. Non-functional requirements are often forgotten or formulated in an unverifiable way, even though they drive architectural decisions the most.
Why is requirements engineering so important in safety projects?
Because safety standards such as ISO 26262 explicitly require the specification of safety requirements and their traceability into verification and testing — with increasing rigour per ASIL. An ambiguous or unverifiable requirement is not just a quality problem there, but a gap in the safety case.

Related terms

Reviewed by Florian Antony, Principal Software Engineer & IT Consultant on July 20, 2026