Requirements
A requirement is a statement of what the system must do or a property it must have. Clear requirements are the single most important factor in project success.
Types of Requirements
- Functional requirements — specific behaviors: login, compute tax, generate report.
- Non-functional requirements — quality attributes: performance, security, usability, reliability, portability.
- Domain requirements — constraints specific to the business area.
- User vs system requirements — user requirements are written in plain language; system requirements are more detailed and formal.
Requirement Elicitation Techniques
- Interviews — structured, unstructured, or semi-structured conversations.
- Questionnaires — reach many users, harder to dig deeper.
- Observation — watch users work; exposes tacit knowledge.
- Document analysis — read manuals, forms, reports.
- Workshops / JAD — bring stakeholders together.
- Prototyping — build a quick mock-up to clarify expectations.
- Use cases and user stories — narrative descriptions of interactions.
Characteristics of Good Requirements
Requirements should be clear, complete, consistent, verifiable, feasible, traceable, and prioritized. Avoid vague words like "fast", "easy", or "modern".
Software Requirements Specification (SRS)
The SRS is the final output of the analysis phase. A typical IEEE-830 structure:
- Introduction — purpose, scope, definitions.
- Overall description — product perspective, functions, users, assumptions.
- Specific requirements — functional, interface, performance, logical database, design constraints.
- Appendices.
Feasibility Study
A feasibility study evaluates whether the proposed project is worth pursuing. It has four dimensions:
- Technical — can we build it with today's technology and skills?
- Economic (cost-benefit) — do projected benefits exceed costs? Measures: payback period, NPV, ROI.
- Operational — will end users adopt the system? Does it fit the organization?
- Schedule — can we deliver by the required date?
Cost-Benefit Analysis
List tangible and intangible costs and benefits. Discount future cash flows to today using Net Present Value:
NPV = Σ CFt / (1 + r)tA positive NPV means the project adds value.
Requirement Validation
After writing the SRS, validate it by review meetings, prototyping, test-case writing, and consistency checks. Fixing a requirements defect costs far less before coding than after deployment.
Summary
Good requirements come from multiple elicitation techniques, written in a structured SRS, and validated with stakeholders. A sound feasibility study prevents unwise investments.
Important Questions
- Differentiate functional and non-functional requirements.
- List and briefly explain seven elicitation techniques.
- What are the qualities of good requirements?
- Describe the structure of an SRS document.
- Explain the four types of feasibility.
- Define NPV, ROI, and payback period.
- How are requirements validated?
- Write a user story for online shopping checkout.