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 ID | Description | Design | Code | Test Cases |
|---|---|---|---|---|
| REQ-01 | Login | Seq-Login | auth.js | TC-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.