Definition
Requirement
A condition or capability needed by a user to solve a problem or achieve an objective. Requirements serve as the basis for the contract between the client and the developer.
Life Cycle Stages
- Elicitation: Gathering requirements from stakeholders (Client, Users, Documentation, Observations).
- Design: Creating models and specifications.
- Implementation: Coding the solution.
- Validation: Quality assurance to ensure we are building the right product.
Types
Requirements are broadly classified into two categories:
- Functional Requirements: What the system does.
- Non-functional Requirements: How the system performs or is constrained.
Artifacts
Actors
Actor
Represents a role played by a user, external system, or physical environment that interacts with the system.
Scenarios
Scenario
A specific, concrete description of what people do and experience when using the system.
- Focus: Behavior from the User POV.
- Goal: Understandable common cases.
Use Cases
Use Case
A generalization of scenarios. A list of steps describing the interaction between an actor and the system to achieve a goal.
- Focus: Completeness (describing all possible flows).
Validation
Requirements Validation is a QA step occurring after elicitation to ensure quality criteria (correctness, consistency, completeness, clarity, realism, verifiability).
- Reviews: Manual inspection of documents.
- Prototyping: Building a mock-up to validate user needs.