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.
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¶
**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)