Software Engineering basics - Requirement Engineering Process i

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

  • Goal: Ensure the documented requirements truly reflect user needs and are of high quality.

  • Activities:

    • Reviews, inspections, walkthroughs

    • Prototyping and stakeholder feedback

    • Checking against qualities: complete, correct, consistent, verifiable

  • Output: Validated and approved requirements baseline.


Summary Flow

Elicitation → Analysis → Specification → Validation

 These phases help avoid misunderstandings and ensure the software is built according to the user’s real needs.