CH 4 Requirements Engineeringg
CH 4 Requirements Engineeringg
Objectives
To introduce the concepts of user and system
requirements
To describe functional and non-functional
requirements
To explain how software requirements may
be organised in a requirements document
Topics covered
Functional and non-functional requirements
User requirements
System requirements
Interface specification
The software requirements document
Requirements engineering
The process of establishing the services that
the customer requires from a system and the
constraints under which it operates and is
developed.
The requirements themselves are the
descriptions of the system services and
constraints that are generated during the
requirements engineering process.
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.
Requirements abstraction (Davis)
“If a company wishes to let a contract for a large software development project, it
must define its needs in a sufficiently abstract way that a solution is not pre-defined.
The requirements must be written so that several contractors can bid for the contract,
offering, perhaps, different ways of meeting the client organisation’s needs. Once a
contract has been awarded, the contractor must write a system definition for the client
in more detail so that the client understands and can validate what the software will
do. Both of these documents may be called the requirements document for the
system.”
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.
Definitions and specifications
User requir
ement definition
1. The softw
are must provide a means ofrepre senting and
1. accessingxternal
e files eated
cr by other tools
.
System end-users
System Client eng
ineers
require ments System architects
Software developers
Client eng
ineers (perha
ps)
Software design
System architects
specifica
tion
Software developers
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.
Functional requirements
Describe functionality or system services.
Depend on the type of software, expected
users and the type of system where the
software is used.
Functional user requirements may be high-
level statements of what the system should do
but functional system requirements should
describe the system services in detail.
The LIBSYS system
A library system that provides a single
interface to a number of databases of articles
in different libraries.
Users can search for, download and print
these articles for personal study.
Examples of functional requirements
Condition Action
Sugar level falling (r2 < r1) CompDose = 0
Sugar level stable (r2 = r1) CompDose = 0
Sugar level increasing and rate of CompDose = 0
increase decreasing ((r2-r1)<(r1-r0))
Sugar level increasing and rate of CompDose = round ((r2-r1)/4)
increase stable or increasing. ((r2-r1) If rounded result = 0 then
(r1-r0)) CompDose = MinimumDose
Graphical models
Graphical models are most useful when you
need to show how state changes or where you
need to describe a sequence of actions.
Different graphical models are explained in
Chapter 8.
Sequence diagrams
These show the sequence of events that take
place during some user interaction with a
system.
You read them from top to bottom to see the
order of the actions that take place.
Cash withdrawal from an ATM
Validate card;
Handle request;
Complete transaction.
Sequence diagram of ATM withdrawal
ATM Database
Card
Card number
Card OK
PIN request
PIN
Option menu Validate card
<<exception>>
invalid card
Card
Card removed
Complete
Cash transaction
Cash removed
Receipt
Interface specification
Most systems must operate with other
systems and the operating interfaces must be
specified as part of the requirements.
Three types of interface may have to be
defined
Procedural interfaces;
Data structures that are exchanged;
Data representations.
Formal notations are an effective technique
for interface specification.
PDL interface description
interface PrintServer {
Initial Changed
require ments require ments
Time
Enduring and volatile requirements
Enduring requirements. Stable requirements
derived from the core activity of the customer
organisation. E.g. a hospital will always have
doctors, nurses, etc. May be derived from
domain models
Volatile requirements. Requirements which
change during development or when the
system is in use. In a hospital, requirements
derived from health-care policy
Requirements classification
Requirement Description
Type
Mutable Requirements that change because of changes to the environment in which the
requirements organisation is operating. For example, in hospital systems, the funding of patient
care may change and thus require different treatment information to be collected.
Emergent Requirements that emerge as the customer's understanding of the system develops
requirements during the system development. The design process may reveal new emergent
requirements.
Consequential Requirements that result from the introduction of the computer system. Introducing
requirements the computer system may change the organisations processes and open up new ways
of working which generate new system requirements
Compatibility Requirements that depend on the particular systems or business processes within an
requirements organisation. As these change, the compatibility requirements on the commissioned
or delivered system may also have to evolve.
Requirements management planning
During the requirements engineering process,
you have to plan:
Requirements identification
How requirements are individually identified;
A change management process
The process followed when analysing a requirements
change;
Traceability policies
The amount of information about requirements relationships
that is maintained;
CASE tool support
The tool support required to help manage requirements
change;
Traceability
Traceability is concerned with the relationships
between requirements, their sources and the
system design
Source traceability
Links from requirements to stakeholders who proposed
these requirements;
Requirements traceability
Links between dependent requirements;
Design traceability
Links from the requirements to the design;
A traceability matrix
Identified Revised
problem Problem analysis and Change analysis Change requirements
change specification and costing implementation
Key points
The requirements engineering process
includes a feasibility study, requirements
elicitation and analysis, requirements
specification and requirements management.
Requirements elicitation and analysis is
iterative involving domain understanding,
requirements collection, classification,
structuring, prioritisation and validation.
Systems have multiple stakeholders with
different requirements.
Key points
Social and organisation factors influence
system requirements.
Requirements validation is concerned with
checks for validity, consistency, completeness,
realism and verifiability.
Business changes inevitably lead to changing
requirements.
Requirements management includes planning
and change management.