Requirements Engineering
Process
Introduction to Requirements Engineering
• Definition: Systematic process of eliciting,
analyzing, specifying, validating, and
managing software requirements.
• Importance: Ensures software meets user
needs, reduces rework, improves
communication.
Types of Requirements
• Functional: What the system should do (e.g.,
login, report generation).
• Non-functional: System attributes (e.g.,
performance, security).
• Domain: Constraints from the environment
(e.g., legal standards).
• User vs System Requirements: High-level vs
detailed descriptions.
Requirements Engineering Process
• 1. Requirements Elicitation
• 2. Requirements Analysis and Negotiation
• 3. Requirements Specification
• 4. Requirements Validation
• 5. Requirements Management
1. Requirements Elicitation
• Goal: Gather requirements from stakeholders.
• Techniques: Interviews, questionnaires,
observation, use cases.
• Challenges: Unclear, conflicting, or incomplete
information.
2. Requirements Analysis and Negotiation
• Goal: Refine and resolve conflicts among
requirements.
• Tasks: Classify, prioritize, and check feasibility.
• Tools: UML, prototyping, risk analysis.
3. Requirements Specification
• Goal: Document requirements clearly and
completely.
• Artifacts: SRS, use case specs.
• Qualities: Clear, verifiable, traceable,
consistent.
4. Requirements Validation
• Goal: Ensure documented requirements
reflect user needs.
• Techniques: Reviews, walkthroughs,
prototyping, test cases.
• Checks: Correctness, completeness, feasibility,
testability.
5. Requirements Management
• Goal: Handle changes to requirements over
time.
• Activities: Version control, change analysis,
traceability matrix.
• Tools: Jira, Git, ReqView, IBM DOORS.
Characteristics of Good Requirements
• Correct, Feasible, Necessary, Verifiable,
Unambiguous, Consistent.
Stakeholders in RE
• Include: Users, clients, developers, testers,
regulators.
• Importance: Clear communication ensures
successful RE.
Agile vs Traditional RE
• Agile: Lightweight, iterative, change-friendly
(e.g., Scrum).
• Traditional: Heavy documentation, rigid (e.g.,
Waterfall).
Common Mistakes in RE
• Vague requirements, missing non-functional
aspects, poor validation, lack of traceability.
Tools for Requirements Engineering
• IBM DOORS, Jama Connect, Jira, Trello,
ReqIF.ac, Figma.
Real-World Example: Online Banking
System
• Functional: Login, transfer funds, view
statement.
• Non-functional: 99.99% uptime, fast response
time.
• Domain: Must comply with RBI regulations.
Summary
• RE is essential for project success.
• It ensures requirements are well-understood
and managed.
• Continuous activity throughout software
development lifecycle.