Software Requirements
Descriptions and specifications of
a system
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
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
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
services. Written as a contract between client and contractor
Software specification
• A detailed software description which can serve as a basis for a design
or implementation. Written for developers
Definitions and specifications
Requirements definition
1. The software must provide a means of repr esenting and
1. accessing external files created by other tools.
Requirements specification
1.1 The user should be provided with facilities to define the type of
1.2 external files.
1.2 Each external file type may have an associated tool which may be
1.2 applied to the file.
1.3 Each external file type may be represented as a specific icon on
1.2 the user’s display.
1.4 Facilities should be provided for the icon repr esenting an
1.2 external file type to be defined by the user.
1.5 When a user selects an icon repr esenting an external file, the
1.2 effect of that selection is to apply the tool associated with the type of
1.2 the external file to the file represented by the selected icon.
Requirements readers
Client managers
System end-users
User requirements Client engineers
Contractor managers
System architects
System end-users
Client engineers
System requirements
System architects
Software developers
Client engineers (perhaps)
Software design
System architects
specification
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
Examples of functional requirements
The user shall be able to search either all of the initial
set of databases or select a subset from it.
The system shall provide appropriate viewers for the
user to read documents in the document store.
Every order shall be allocated a unique identifier
(ORDER_ID) which the user shall be able to copy to
the account’s permanent storage area.
Non-functional requirements
Define system properties and constraints e.g. reliability,
response time and storage requirements. Constraints are
I/O device capability, system representations, etc.
Process requirements may also be specified mandating
a particular CASE system, programming language or
development method
Non-functional requirements may be more critical than
functional requirements. If these are not met, the
system is useless
Non-functional classifications
Product requirements
• Requirements which specify that the delivered product must behave in a
particular way e.g. execution speed, reliability, etc.
Organisational requirements
• Requirements which are a consequence of organisational policies and
procedures e.g. process standards used, implementation requirements,
etc.
External requirements
• Requirements which arise from factors which are external to the system
and its development process e.g. interoperability requirements,
legislative requirements, etc.
Requirements measures
Property Measure
Speed Processed transactions/second
User/Event response time
Screen refresh time
Size K Bytes
Number of RAM chips
Ease of use Training time
Number of help frames
Reliability Mean time to failure
Probability of unavailability
Rate of failure occurrence
Availability
Robustness Time to restart after failure
Percentage of events causing failure
Probability of data corruption on failure
Portability Percentage of target dependent statements
Number of target systems
Domain requirements
Derived from the application domain and describe
system characterisics and features that reflect the
domain
May be new functional requirements, constraints on
existing requirements or define specific computations
If domain requirements are not satisfied, the system
may be unworkable
User requirements
Should describe functional and non-functional
requirements so that they are understandable by
system users who don’t have detailed technical
knowledge
User requirements are defined using natural language,
tables and diagrams
Problems with natural language
Lack of clarity
• Precision is difficult without making the document difficult to read
Requirements confusion
• Functional and non-functional requirements tend to be mixed-up
Requirements amalgamation
• Several different requirements may be expressed together
Form-based specifications
Definition of the function or entity
Description of inputs and where they come from
Description of outputs and where they go to
Indication of other entities required
Pre and post conditions (if appropriate)
The side effects (if any)
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
The requirements document
The requirements document is the official statement
of what is required of the system developers
Should include both a definition and a specification of
requirements
It is NOT a design document. As far as possible, it
should set of WHAT the system should do rather than
HOW it should do it
Specify the requirements and
read them to check that they
System customers meet their needs. They
specify changes to the
requirements
Use the requirements
Managers document to plan a bid for
the system and to plan the
system development process
Use the requirements to
System engineers understand what system is to
be developed
System test Use the requirements to
engineers develop validation tests for
the system
Users of a
System Use the requirements to help
understand the system and
requirements
maintenance
engineers the relationships between its document
parts
The requirements engineering process
Feasibility Requirements
study elicitation and
analysis
Requir ements
specification
Feasibility Requirements
report validation
System
models
User and system
requirements
Requirements
document
IEEE requirements standard
Introduction
General description
Specific requirements
Appendices
Index
This is a generic structure that must be instantiated for
specific systems
Requirements document structure
Introduction
Glossary
User requirements definition
System architecture
System requirements specification
System models
System evolution
Appendices
Index