The Requirement Engineering Process in Software Engineering is the systematic approach to gathering, analyzing, documenting, and managing software requirements.
1. Requirement Elicitation
-
Goal: Collect requirements from stakeholders (customers, users, domain experts, etc.).
-
Activities:
-
Interviews, questionnaires, workshops
-
Brainstorming, use cases, observation
-
Studying existing documents or systems
-
Output: Initial list of requirements.
2. Requirement Analysis
-
Goal: Examine requirements for feasibility, conflicts, completeness, and consistency.
-
Activities:
-
Prioritizing requirements
-
Identifying ambiguities or contradictions
-
Performing feasibility studies (technical, economic, operational)
-
Output: Refined and agreed set of requirements.
3. Requirement Specification
-
Goal: Document requirements in a clear, precise, and structured form.
-
Activities:
-
Writing the Software Requirement Specification (SRS) document
-
Defining functional and non-functional requirements
-
Using modeling tools (DFDs, UML diagrams, use case diagrams)
-
Output: SRS document (formal contract between stakeholders and developers).
4. Requirement Validation
Summary Flow
Elicitation → Analysis → Specification → Validation
These phases help avoid misunderstandings and ensure the software is built according to the user’s real needs.