Requirements Specification
- •
def
- •
the process of formally documenting user and system requirements in a structured format that is understandable by all stakeholders
- •
the most common output is the Software Requirement Specification (SRS)
- •
"A requirement not written down is a requirement that does not exist."
- •
- •
- •
types of specification notation
- •
natural language — numbered sentences; each sentence states one requirement; universally understandable but prone to ambiguity
- •
structured natural language — requirements written on standard forms or templates; each field covers one aspect
- •
design description languages — programming-language-like notation defining an operational model of the system
- •
graphical notations — UML use cases, sequence diagrams, activity diagrams
- •
mathematical specifications — formal notations based on finite-state machines or sets; unambiguous but difficult for customers to validate
- •
- •
writing guidelines
- •
common problems with natural language specifications
- •
- •
- •
software documentation standards evolution
- •
DOD-STD-2167 / 2167A (1985, 1988) — early U.S. defense documentation standards for mission-critical systems
- •
MIL-STD-498 (1994) — military standard for software development and documentation
- •
IEEE Std 830-1993 / 1998 — Recommended Practice for Software Requirements Specifications
- •
ISO/IEC 12207:1995, 2008, 2017 — evolving international standard for software lifecycle processes, with SRS increasingly aligned to ISO/IEC/IEEE 29148
- •
- •