Menu

Earn Premium with Referrals

Invite your friends and earn Premium rewards through our referral program.

See how it works and start inviting friends.

SRS & Requirements Engineering
SDLC

SRS & Requirements Engineering

Learn about the SRS document, feasibility studies, and the requirements engineering process.

The SRS (Software Requirements Specification) is the contract between client and developer. It defines what the system should do, not how it should do it. Getting requirements wrong is the most expensive mistake in software — fixing a requirements error after deployment costs 10-100x more than catching it during elicitation.

Requirements Engineering Process

A systematic process with four phases:

  1. Elicitation — gathering requirements from stakeholders via interviews, surveys, workshops, observation, and document analysis.
  2. Analysis & Negotiation — resolving conflicts (e.g., user wants fast + cheap + full-featured — pick two), prioritizing, checking feasibility.
  3. Specification — documenting the agreed-upon requirements in the SRS.
  4. Validation — reviewing the SRS with stakeholders to ensure it accurately captures their needs.

Feasibility Study

Before detailed requirements, check feasibility from three angles:

TypeQuestions
TechnicalDo we have the technology, skills, and infrastructure?
EconomicIs the ROI positive? Development cost vs expected benefit?
OperationalWill the users adopt it? Does it fit the organization’s workflow?

SRS Document (IEEE Std 830)

A well-structured SRS typically includes:

  • Introduction — purpose, scope, definitions, references.
  • Overall Description — product perspective, user characteristics, constraints, assumptions.
  • Specific Requirements — functional requirements (what it does), non-functional requirements (performance, security, usability), external interface requirements.
  • Appendices — glossaries, models, to-do lists.

Functional vs Non-Functional Requirements

FunctionalNon-Functional
WhatSpecific behaviors or functionsQuality attributes or constraints
Example”User can search by product name""Search results appear within 500ms”
How to testFunctional testPerformance test
Language”The system shall…""The system shall…within X seconds”

Requirement Elicitation Techniques

TechniqueBest forRisk
InterviewsDeep understanding of one stakeholderTime-consuming
Surveys/B questionnairesLarge number of stakeholdersLow depth
WorkshopsResolving conflicting requirementsRequires facilitation skill
ObservationUnderstanding actual workflowHawthorne effect (people act differently when watched)
PrototypingUnclear requirementsExpensive to build

DFDs (Data Flow Diagrams)

A DFD shows how data moves through the system. Levels:

  • Level 0 (Context diagram) — one bubble, the entire system, with external entities.
  • Level 1 — major processes and data stores.
  • Level 2+ — detailed breakdown of each process.

Quality Assurance Models

  • ISO 9000 — quality management standards. Certification requires documented processes.
  • SEI-CMM (Capability Maturity Model) — 5 levels of process maturity: Initial, Repeatable, Defined, Managed, Optimizing.
  • CMMI — successor to CMM, integrates multiple disciplines.

Traceability Matrix — maps each requirement to its source, design element, code module, and test case. Proves every requirement is addressed.

Q: What’s the difference between a functional and non-functional requirement? Give an example of each.

A: Functional describes what the system does: “The system shall allow users to reset their password via email.” Non-functional describes how well: “Password reset email must be delivered within 30 seconds.”

Q: What is requirement traceability and why does it matter?

A: A traceability matrix links each requirement forward to design/implementation/test and backward to its source (stakeholder, document). It proves coverage — no requirement is missed, and no code exists without a requirement. Critical for regulated industries.

Q: What is the most common mistake in requirements engineering?

A: Assuming you understand the problem without talking to actual users. Developers often design solutions based on assumptions rather than validated needs. This leads to building the wrong product correctly.

Q: What are the five CMM levels?

A: Level 1 — Initial (ad-hoc, chaotic). Level 2 — Repeatable (basic project management). Level 3 — Defined (processes documented and standardized). Level 4 — Managed (quantitative metrics). Level 5 — Optimizing (continuous process improvement).

My Private Notes

Notes are auto-saved locally to this device.