Professional Documents
Culture Documents
Lec 9 10
Lec 9 10
Lec 9 10
Software Engineering
What is a requirement?
It may range from a high-level abstract statement of
a service or of a system constraint to a detailed
mathematical functional specification.
This is inevitable as requirements may serve a dual
function
• May be the basis for a bid for a contract - therefore must
be open to interpretation;
• May be the basis for the contract itself - therefore must be
defined in detail;
• Both these statements may be called requirements.
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Types of requirement
User requirements
• Statements in natural language plus diagrams
of the services the system provides and its
operational constraints. Written for customers.
System requirements
• A structured document setting out detailed
descriptions of the system’s functions, services
and operational constraints. Defines what
should be implemented so may be part of a
contract between client and contractor.
Software Engineering
Functional and non-functional requirements
Functional requirements
• Statements of services the system should provide, how
the system should react to particular inputs and how the
system should behave in particular situations.
Non-functional requirements
• constraints on the services or functions offered by the
system such as timing constraints, constraints on the
development process, standards, etc.
Domain requirements
• Requirements that come from the application domain of
the system and that reflect characteristics of that domain.
Software Engineering
Requirements engineering processes
The goal of the REP is to create and maintain a
system requirements document
The processes used for RE vary widely depending
on the application domain, the people involved and
the organisation developing the requirements.
However, there are a number of generic activities
common to all processes
• Requirements elicitation;
• Requirements analysis;
• Requirements validation;
• Requirements management.
Software Engineering
RE process - inputs and
outputs
Software Engineering
Input/output description
Software Engineering
Stakeholders
Stakeholder analysis: – Training and user support staff
• want to make sure the new system is
Identify all the people who must be
usable and manageable
consulted during information
acquisition – Business analysts
• want to make sure “we are doing
Look for stakeholders associated
better than the competition”
with each of the four worlds
– Technical authors
Example stakeholders • will prepare user manuals and other
Users concerned with the features documentation for the new system
and functionality of the new system – The project manager
Designers • wants to complete the project on
• want to build a perfect system, or time, within budget, with all objectives
reuse existing code met.
Software Engineering
Software Engineering
The requirements engineering process
Software Engineering
Software Engineering
Software Engineering
Requirements discovery
The process of gathering information about the
proposed and existing systems and distilling the
user and system requirements from this information.
Sources of information include:
• documentation
• system stakeholders and
• the specifications of similar systems.
Techniques required to help the discovery:
• Interviews
• Observation
• Scenarios and prototypes
Software Engineering
Why do elicitation?
Not doing elicitation means
• “I do not want to know [or care] what my customer
wants?”
Return on investment?
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
Software Engineering
ATM stakeholders
Bank customers
Representatives of other banks
Bank managers
Counter staff
Database administrators
Security managers
Marketing department
Hardware and software maintenance engineers
Banking regulators
Software Engineering
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
• Fixing a requirements error after delivery may
cost up to 100 times the cost of fixing an
implementation error.
Software Engineering
Requirements checking
Validity. Does the system provide the functions
which best support the customer’s needs?
Consistency. Are there any requirements conflicts?
Completeness. Are all functions required by the
customer included?
Realism. Can the requirements be implemented
given available budget and technology
Verifiability. Can the requirements be checked?
Software Engineering
Requirements validation techniques
Requirements reviews
• Systematic manual analysis of the
requirements.
Prototyping
• Using an executable model of the system to
check requirements.
Test-case generation
• Developing tests for requirements to check
testability.
Software Engineering
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.
Software Engineering
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.
Software Engineering
Requirements evolution
Software Engineering
Software Engineering