Coursify

SOFTWARE ENGINEERING

Software Requirements Document, SRS Standards, and Requirements Engineering

This section introduces the software requirements document, the purpose and structure of an SRS, relevant standards, and the broader discipline of requirements engineering, supported by a real-time system case study.

Learning Goals

  • Describe the purpose and key components of a Software Requirements Specification (SRS) document.
  • Explain the role of SRS standards in improving consistency, completeness, and quality of requirements documentation.
  • Apply basic requirements engineering principles to organize and validate system requirements.
  • Examine a case study of an SRS for a real-time system and identify its major requirement categories.
  • Assess an SRS excerpt for clarity, traceability, completeness, and testability.

Requirements Engineering acts as the foundation of any successful software system. The primary goal of this discipline is to bridge the cognitive gap between what stakeholders need and what developers build. The ultimate output of this process is the Software Requirements Specification (SRS), which serves as the official contract between the development team and the client, a blueprint for system design, and the validation baseline for testing.

The requirements engineering lifecycle is not a single linear phase but rather a highly iterative process of continuous refinement, validation, and change management.

The Requirements Engineering Process

The requirements engineering discipline operates as a continuous lifecycle loop, transforming high-level business goals into precise, testable software components.

Requirements Engineering Cycle

This lifecycle comprises several interrelated activities:

  • Elicitation: Actively discovering stakeholder requirements through interviews, workshops, and observation.
  • Analysis & Negotiation: Organizing the gathered requirements, identifying conflicts, and negotiating trade-offs with stakeholders.
  • Specification: Creating the formal SRS document using standardized templates.
  • Validation & Verification: Reviewing the document to ensure it is complete, consistent, and testable.
  • Requirements Management: Managing changes to the baseline using a change control process and tracking requirements using a traceability matrix.

Footnotes

  1. ISO/IEC/IEEE 29148:2018 - Systems and software engineering - Modern standard regulating requirements engineering processes and document templates.

  2. Karl Wiegers - Software Requirements (Microsoft Press) - Textbook defining requirements engineering phases, SRS design, and V&V checklist techniques.

Software Requirement Specification (SRS) Tutorial and EXAMPLE

The Requirements Engineering Lifecycle Roadmap

  1. 1
    Step 1

    Discover system boundaries, user roles, and primary business goals. Use structured interviews, prototypes, and workshops to gather explicit needs, while using ethnography to reveal tacit knowledge that stakeholders fail to verbalize.

  2. 2
    Step 2

    Analyze requirements for conflict, ambiguity, and technical feasibility. Construct visual models, such as UML use cases, data flow diagrams, and statecharts. Mediate conflicts between stakeholder groups to establish a mutually agreed set of features.

  3. 3
    Step 3

    Translate requirements into a formal, structured document according to international standards (e.g., ISO/IEC/IEEE 29148). Document both functional behaviors and non-functional quality constraints, separating hardware boundaries from software layers.

  4. 4
    Step 4

    Conduct formal technical reviews and inspections to ensure the SRS is clear, consistent, complete, and testable. Verify that all requirements align with the high-level business goals and validate that they accurately represent what the customer actually wants.

  5. 5
    Step 5

    Establish a formal baseline for the requirements document. Implement bidirectional traceability using a Requirements Traceability Matrix (RTM) to map requirements to architectural components and test cases. Manage subsequent change requests through a structured Change Control Board (CCB).

IEEE 830-1998 (IEEE Recommended Practice for Software Requirements Specifications) is a classic software engineering standard that outlines flat guidelines for organizing an SRS. It categorizes requirements primarily into Functional Requirements, External Interface Requirements, Performance Requirements, Design Constraints, and Software System Quality Attributes. However, it lacks systemic separation between stakeholder needs and software requirements, leading to flat, monolithic structures that struggle to scale in modern multi-layered systems.

Footnotes

  1. IEEE 830-1998 Standard - Practice for SRS - Historic standard that introduced the structural format of software requirements specifications.

Subjective Traps in SRS Writing

Avoid subjective adjectives such as 'fast', 'graceful', 'robust', or 'user-friendly' in requirements. These words are untestable. A requirement is only valid if it can be verified through a concrete testing procedure. Replace 'The system shall respond fast' with 'The system shall respond to user requests within Tresponse200 msT_{\text{response}} \le 200\text{ ms} under a peak load of 10,00010,000 concurrent connections.'

Real-Time Case Study: Automotive Anti-Lock Braking System (ABS)

In safety-critical systems, requirements engineering demands extreme precision. Let us examine the Software Requirements Specification for an Automotive Anti-lock Braking System (ABS), which is a classic hard Real-Time System.

In an ABS, a failure to meet timing constraints can lead to catastrophic hardware failure and loss of life. Its requirements are organized into three primary categories:

  1. Functional Requirements (FR):
    • Wheel Speed Monitoring: The system shall read telemetry from the wheel speed sensors via the CAN bus.
    • Brake Pressure Modulation: The system shall modulate hydraulic valve pressure when wheel slip is detected.
  2. Non-Functional Requirements (NFR):
    • Performance/Timing: The main control loop shall execute every Tloop=10 msT_{\text{loop}} = 10\text{ ms} and calculate the slip ratio SS where: S=VωRVS = \frac{V - \omega \cdot R}{V} where VV is the vehicle speed, ω\omega is the wheel angular velocity, and RR is the wheel radius.
    • Safety: The software shall comply with the ISO 26262 standard for road vehicles, meeting Automotive Safety Integrity Level D (ASIL-D\text{ASIL-D}) compliance.
  3. System Constraints:
    • The ABS software must execute within a microcontroller containing less than 512 KB512\text{ KB} of RAM.

The Role of the Traceability Matrix

Bidirectional traceability is mandatory under ISO 26262. Using a Requirements Traceability Matrix (RTM) ensures that every single requirement is traced forward to test cases (completeness) and traced backward to a business goal (preventing gold plating).

SRS Excerpt Quality Assessment & Refactoring

In many industrial projects, initial requirements drafts contain critical flaws in clarity, traceability, and testability. The table below presents three flawed excerpts from an initial ABS requirements document, assesses their issues, and provides standard-compliant, fully testable refactored requirements.

Flawed ExcerptQuality AssessmentSpecific FlawsStandard-Compliant Refactored Requirement
REQ-001: "The system should detect skid situations quickly and apply the brakes safely."Untestable & AmbiguousUses vague words like "quickly" and "safely." Use of non-mandatory "should" instead of mandatory "shall." Lacks formal trace markers.REQ-ABS-FR-102: "The system shall calculate the wheel slip ratio SS every Tloop=10 msT_{\text{loop}} = 10\text{ ms}. If Sge0.20S \\ge 0.20, the system shall trigger the hydraulic modulator to reduce brake pressure within Tresponsele5 msT_{\text{response}} \\le 5\text{ ms}." [Traces to: StRS-Lending-43]
REQ-002: "We need to ensure that the system is highly reliable and doesn't crash during operation."Non-Traceable & Subjective"Highly reliable" and "doesn't crash" are untestable. Lacks quantitative engineering metrics and standard compliance.REQ-ABS-NFR-304: "The system shall maintain an operational availability of Age99.9999%A \\ge 99.9999\% and have a Mean Time Between Failures (MTBF\text{MTBF}) of no less than 100,000100,000 operating hours." [Traces to: StRS-Safety-09]
REQ-003: "The software must display wheel speed diagnostics on a screen."Incomplete & LooseFails to specify the update frequency, formatting, target interface hardware, or error boundaries.REQ-ABS-EIF-201: "The system shall output the real-time calculated wheel speed for all four wheels to the Dashboard Display Interface via CAN bus message ID 0x0F2 at a frequency of f=50 Hzf = 50\text{ Hz} with an accuracy of pm1%\\pm 1\%. Encompasses error state code 0x99 for sensor failures." [Traces to: SyRS-Hardware-21]

NFR Allocation in Safety-Critical Real-Time Systems

Relative weight of quality attribute focus in systems engineering

SRS Verification & Validation FAQ

Knowledge Check

Question 1 of 4
Q1Single choice

Under the modern ISO/IEC/IEEE 29148 standard, which document represents the high-level needs and expectations of the clients, sponsors, and operators?

Software Requirements Document, SRS Standards, and Requirements Engineering | SOFTWARE ENGINEERING | Coursify