Requirements Engineering for Software and Systems

One would think that the American space agency NASA is a place where rigorous requirements engineering is conducted. This is a correct assumption. Given that NASA is engaged in the engineering of very-high-profile, high-cost, and most importantly, life-critical systems, the techniques used and developed here are state of the art. Table 5.2 contains an excerpt from NASA Procedural Requirements for requirements engineering.
| 3.1.1 Requirements Development 3.1.1.1 The project shall document the software requirements. [SWE-049] Note: The requirements for the content of each Software Requirement Specification and Data Dictionary are defined in Chapter 5 3.1.1.2 The project shall identify, develop, document, approve, and maintain software requirements based on analysis of customer and other stakeholder requirements and the operational concepts. [SWE-050] 3.1.1.3 The project shall perform software requirements analysis based on flowed-down and derived requirements from the top-level systems engineering requirements and the hardware specifications and design. [SWE-051] Note: This analysis is for safety criticality, correctness, consistency, clarity, completeness, traceability, feasibility, verifiability, and maintainability. This includes the allocation of functional and performance requirements to functions and subfunctions. 3.1.1.4 The project shall perform, document, and maintain bidirectional traceability between the software requirement and the higher level requirement. [SWE-052] Note: The project should identify any orphaned or widowed requirements (no parent or no child) associated with reused software. 3.1.2 Requirements Management 3.1.2.1 The project shall collect and manage changes to the software requirements. [SWE-053] Note: The project should analyze and... |