Requirements Engineering

Understanding and documenting what to build

Elicitation

  • Techniques: interviews, surveys, workshops/JAD, observation, prototyping.
  • Stakeholder analysis: RACI, personas, primary/secondary stakeholders.
  • Resolve conflicts via prioritization (MoSCoW) and negotiation.

Use Case Template

Use Case: Withdraw Cash
Actors: Customer, ATM
Preconditions: Card valid; Sufficient funds
Main Flow: 1) Insert card 2) Enter PIN 3) Select amount 4) Dispense cash
Alternate: 3a) Insufficient funds → Show error
Postconditions: Account debited; Cash dispensed
          

Analysis & Modeling

  • Functional vs Non-functional (performance, security, usability, reliability).
  • Modeling: context diagrams, DFDs, use-case diagrams, domain models.
  • User stories with acceptance criteria (Given/When/Then).

Software Requirements Specification (SRS)

  • Sections: Introduction, Overall Description, Specific Requirements (functional/NFRs), Appendices.
  • Standards: IEEE 29148/830 style.
  • Properties: correct, unambiguous, complete, consistent, modifiable, traceable, verifiable.

Sample NFR

Login API shall respond in ≤ 300ms for 95% of requests under 200 RPS.

Requirement Quality

  • Avoid ambiguity: use shall/should, quantify limits, define terms.
  • Testability: each requirement must be verifiable by inspection/test/analysis.
  • FURPS+: Functionality, Usability, Reliability, Performance, Supportability (+design, constraints).

Traceability (RTM)

Requirements Traceability Matrix maps requirements to design/code/tests to ensure coverage.

Req IDDescriptionDesignCodeTest Cases
REQ-01LoginSeq-Loginauth.jsTC-101..104

Validation

  • Techniques: reviews, walkthroughs, prototyping, test-first (BDD/TDD) of acceptance criteria.
  • Manage changes with a change control process; update RTM.

Quick Revision

  • Good SRS: clear, complete, testable.
  • Trace each requirement to tests.
  • Use cases + user stories capture both flows and fragments.