Introduction to requirement
engineering
Lecture 01
What is requirement?
• Requirements are about WHAT not about HOW.
• Requirements are the descriptions of the services provided
by a system and its operational constraints
Definition
• Software Requirements Engineering (RE) is the process of defining,
documenting, and managing the needs and expectations of
stakeholders for a software system, ensuring the final product meets
their requirements.
• Requirement engineering provides the appropriate mechanism to
understand what the customer desires, analyzing the need, and
assessing feasibility, negotiating a reasonable solution, specifying the
solution clearly, validating the specifications and managing the
requirements as they are transformed into a working system.
Importance
• Reduces project risks and cost overruns.
• Improves communication between stakeholders.
• Enhances software quality and user satisfaction.
• Ensures alignment with business goals.
Why requirement?
• Advantages of a complete set of documented requirements:
1. Helps avoiding confusion
2. Helps minimizing the changes
• Changes in requirements are expensive:
• 3 x as much during the design phase
• 5-10 x as much during implementation
• 10-100 x as much after release
Completeness and Consistency
• In principle requirements should be both complete and
consistent
• Complete: should include descriptions of all functionalities
required
• Consistent: There should be no conflicts or contradictions in
the descriptions of the system functionalities
• In practice, it is very difficult to produce a complete and
consistent requirements document.
Requirement Engineering
• 5 important activities:
1. Feasibility study
2. Requirements elicitation and analysis
3. Requirements specification
4. Requirements validation
5. Requirements documentation
Requirement Engineering cont.
…
Feasibility study
• Feasibility study used to decide “is project worthwhile?”
• Information collected through (interviews, surveys,
questionnaires…)
• Consult information resources: managers, Software
Engineers, end users, etc.
• Look at different issues: Financial, schedule, technical, legal,
risks.
• It may serve as the basis for a bid of contract
• Or the basis for the contract itself
Elicitation & Analysis
• Also called requirements discovery. A people-intensive
process.
• Technical staff involves customers to find out the
application domain, the services and the system’s operational
constraints.
• May involve all stakeholders: End-users, managers,
maintenance engineers, domain experts, etc.
Elicitation & Analysis (Issues)
• Stakeholders don’t know what they really want, and express
requirements in their own terms.
• Different stakeholders may have conflicting requirements.
• Organizational and political factors may influence the
system requirements.
• The requirements change during the analysis process.
Requirements Specification
• It describes the functions and performance of a computer-
based system and the constraints that will govern its
development.
• It formalizes the informational, functional, and non-
functional (behavioral) requirements of the proposed
software in both a graphical and textual format.
Requirements Specification
Requirements validation
• Concerned with demonstrating that the requirements define
the system that the customer really wants.
• Requirements error costs are high so validation is very
important
Requirements Document
• At the end of Requirement Engineering process
“Requirement Document” is prepared.
• This document is duly signed by developers as well as
customer.
• On the other hand if any change request comes from
customer he has to pay for that.
Requirement engineering role in
system development
• Requirement engineering plays a crucial role in system
development by ensuring that the final product meets
stakeholder needs through activities like elicitation,
analysis, specification, and verification, ultimately leading
to a successful and aligned project.
.
Thank u!