Requirements Engineering: Prof. Akila Victor
Requirements Engineering: Prof. Akila Victor
• Requirement
– A requirement is a specification of a need or want. Sets
of requirements are used to capture the information
needed to design, build and test a process, service, product
or system.
RE Process Model
Types of Requirements
• Functional
• Non-Functional
• Domain
Functional Requirements
• These are the requirements that the end user
specifically demands as basic facilities that the
system should offer.
System
Students Staff External Cataloguers
managers
Interviewing
• In formal or informal interviewing, the RE
team puts questions to stakeholders about the
system that they use and the system to be
developed.
• There are two types of interview
– Closed interviews where a pre-defined set of
questions are answered.
– Open interviews where there is no pre-defined
agenda and a range of issues are explored with
stakeholders.
Scenarios
• Scenarios are real-life examples of how a
system can be used.
• They should include
– A description of the starting situation;
– A description of the normal flow of events;
– A description of what can go wrong;
– Information about other concurrent activities;
– A description of the state when the scenario
finishes.
Requirements validation techniques
• Requirements reviews
– Systematic manual analysis of the requirements
• Prototyping
– Using an executable model of the system to check
requirements. Covered in Chapter 8
• Test-case generation
– Developing tests for requirements to check testability
• Automated consistency analysis
– Checking the consistency of a structured requirements
description
Requirements reviews
• Regular reviews should be held while the
requirements definition is being formulated
• Both client and contractor staff should be
involved in reviews
• Reviews may be formal (with completed
documents) or informal. Good
communications between developers,
customers and users can resolve problems at
an early stage
Review checks
• Verifiability. Is the requirement realistically
testable?
• Comprehensibility. Is the requirement properly
understood?
• Traceability. Is the origin of the requirement
clearly stated?
• Adaptability. Can the requirement be changed
without a large impact on other requirements?
Requirements management
• Requirements management is the process of
managing changing requirements during the
requirements engineering process and system
development
• Requirements are inevitably incomplete and
inconsistent
– New requirements emerge during the process as
business needs change and a better understanding of
the system is developed
– Different viewpoints have different requirements and
these are often contradictory
Requirements change
• The priority of requirements from different
viewpoints changes during the development
process
• System customers may specify requirements
from a business perspective that conflict with
end-user requirements
• The business and technical environment of the
system changes during its development
Requirements evolution
References
• https://www.geeksforgeeks.org/functional-vs-
non-functional-requirements/
• https://www.javatpoint.com/software-
engineering-requirement-engineering.
• Ian sommervillie.