Chapter 2 2 min read
Save

Requirements Engineering

Software Engineering · BCA · Updated Apr 23, 2026

Table of Contents

Requirements Engineering

Requirements engineering is the process of defining, documenting, and maintaining requirements. It determines what the system should do (functional) and how well it should do it (non-functional).

Types of Requirements

Functional requirements describe system behaviour — inputs, outputs, and processing. Non-functional requirements specify quality attributes: performance, security, usability, reliability, and scalability. Domain requirements come from the application domain.

Elicitation

Requirements elicitation gathers needs from stakeholders through interviews, questionnaires, observation, brainstorming, prototyping, and use case workshops. Challenges include tacit knowledge, conflicting stakeholder views, and scope creep.

Analysis and Negotiation

Requirements are analysed for completeness, consistency, and feasibility. Conflicts between stakeholders are negotiated and prioritised. Techniques include requirements modelling (use cases, data flow diagrams) and prioritisation methods (MoSCoW).

Specification

The Software Requirements Specification (SRS) documents all requirements formally. IEEE 830 standard provides a template. An SRS should be complete, consistent, unambiguous, verifiable, and modifiable. It serves as a contract between developers and clients.

Validation

Requirements validation ensures requirements accurately reflect stakeholder needs. Techniques include reviews, walkthroughs, prototyping, and test case generation. Fixing requirements errors early is far cheaper than fixing them in later phases.

Requirements Management

Requirements change over time. Requirements management tracks changes, maintains traceability (linking requirements to design/code/tests), and handles version control. A traceability matrix maps requirements to implementation.

Summary

Requirements engineering is critical to project success. Proper elicitation, analysis, specification, and validation prevent costly misunderstandings and rework in later development phases.

Related Notes

Discussion

0 comments

Join the discussion

Log in to share your thoughts and help fellow students.

Log in to comment

No comments yet. Be the first to share your thoughts!