Requirements Analysis
Requirement Types
Functional Requirements
What the system should DO.
- •"Users can log in with email and password"
- •"System sends order confirmation email"
Non-Functional Requirements
How the system should BEHAVE.
- •Performance: "Page loads in < 2 seconds"
- •Security: "Passwords stored with bcrypt"
- •Scalability: "Supports 10,000 concurrent users"
Constraints
Limitations on the solution.
- •"Must use existing authentication system"
- •"Must run on AWS"
Analysis Techniques
Ask "Why?" Five Times
Uncover the real requirement.
code
Requirement: "Add export to Excel button" Why? → "Users need to share reports" Why? → "Finance reviews monthly sales" Why? → "They compare against targets" Why? → "To identify underperforming regions" Real Need: Regional performance dashboard
SMART Criteria
Requirements should be:
- •Specific: Clear and unambiguous
- •Measurable: Can verify completion
- •Achievable: Technically feasible
- •Relevant: Aligned with goals
- •Time-bound: Has deadline
Edge Case Analysis
- •What happens with no data?
- •What happens with too much data?
- •What if the user is offline?
- •What if permissions are denied?
Requirement Validation
- • Is it testable?
- • Is it achievable?
- • Is it necessary?
- • Is it consistent with other requirements?
- • Is it complete?
- • Is the priority clear?
Documenting Requirements
markdown
**REQ-001**: User Authentication **Description**: Users must authenticate to access the system. **Acceptance Criteria**: 1. Given valid credentials, user gains access 2. Given invalid credentials, user sees error 3. After 5 failed attempts, account is locked **Priority**: Must Have **Dependencies**: REQ-002 (User Management)