CH 1-Non-Functional Requirements
CH 1-Non-Functional Requirements
Contents
Introduction
Classification of NFRs
Some NFRs
Deriving NFRs
Stakeholder Concerns
Goal-based derivation
Testable NFRs
1
Introduction
Non-functional requirements (NFR) define the overall
qualities of the resulting system that enhance its functionality;
They are global constraints on a software system , on the
development process or external constrains outside the
enterprise.
Importance
All functional requirements may be satisfied, but if nonfunctional
requirements are overlooked, the system will fail.
Non-functional properties may be the difference between an
accepted, well-liked product & unused one.
Though all NFRs are important their relative importance differs
from stakeholder to stakeholder and from system to system.
Reliability, Performance, Security, Usability, Safety NFRs are more
important than others for critical systems
Non-functional requirements like Usability, efficiency, accuracy,
… are more important for end users than other stakeholders
2
Introduction…
The challenge of NFRs
Hard to model
Usually stated informally, and so are:
often contradictory,
difficult to enforce during development
difficult to evaluate for the customer prior to delivery
Hard to make them measurable requirements
We’d like to state them in a way that we can measure how
well they’ve been met
Different people and organizations use different terminologies
and different definition (though basically the definitions have the
same meaning)
3
NFR-Definitions
4
Classification of NFRS
5
Classification of NFRS..
The ‘IEEE-Std 830 - 1993’ lists 13 non-functional
requirements to be included in a Software Requirements
Document.
Performance requirements Security requirements
Interface requirements Portability requirements
Operational requirements Quality requirements
Resource requirements Reliability requirements
Verification requirements Maintainability requirements
Acceptance requirements Safety requirements
Documentation requirements
6
Classification of NFRs…
Different ways classifying NFRs have been proposed
NFRs may be classified in terms of qualities that a software must
exhibit (Boehm)
7
Classification of NFRs…
McCall factor model is derived from user concerns
8
Classification of NFRs…
McCall factor model is user centred classification
9 McCall [1977]
Classification of NFRs…
Evans and Marciniak (1987) – defined 12 factors
Correctness, Reliability, Integrity, Usability, Efficiency,
Maintainability, Flexibility, Portability, Reusability, Expandability,
Interoperability, Verifiability
Deutsch & Willis(1988) factor model consists of 15 factors that are
classified into four categories
15
Process requirements
Process requirements are constraints placed upon the development
process of the system
Process requirements include:
Requirements on development standards and methods which must be
followed
CASE tools which should be used
The management reports which must be provided
Examples
The development process to be used must be explicitly defined and must
be conformant with ISO 9000 standards
The system must be developed using the XYZ suite of CASE tools
Management reports setting out the effort expended on each identified
system component must be produced every two weeks
16 A disaster recovery plan for the system development must be specified
External requirements
These types of requirements may be placed on both the
product and the process and they are derived from the
environment in which the system is developed.
External requirements are based on:
application domain information
organisational considerations
the need for the system to work with other systems
health and safety or data protection regulations
or even basic natural laws such as the laws of physics
Examples
Medical data system - The organisation’s data protection officer
must certify that all data is maintained according to data
protection legislation before the system is put into operation.
17
Some NFRs
Access Security
Definition - The extent to which the system is safeguarded
against deliberate and intrusive faults from internal and
external sources.
Example - Employees shall be forced to change their password
the next time they log in if they have not changed it within the
length of time established as “password expiration duration.”
Availability
Definition - the degree to which users can depend on the system
to be up (able to function) during “normal operating times.”
Example - The Automated Teller Machine shall be at least 99.5
percent available on weekdays between 6:00 a.m. and
midnight local time. The machine shall be at least 99.95 percent
available on weekdays between 3:00 p.m. and 7:00 p.m. local
18
time.
Efficiency
Definition - the extent to which the software system handles
capacity, throughput, and response time.
Example - The system must download the new rate
parameters within ten minutes of a non-scheduled rate
change.
Integrity
Definition - the degree to which the data maintained by the
software system is accurate, authentic, and without corruption.
Example - The integrity of the system data area must be
checked by the internal audit system twice per second; if
inconsistencies in the data are detected, the system operation
should be disabled.
19
Reliability
Definition - the extent to which the software system
consistently performs the specified functions without
failure.
Example - The software shall have no more than X bugs per
thousand lines of code.
Survivability
Definition - the extent to which the software system
continues to function and recovers in the presence of a
system failure.
Example - All policy statement parameters shall have
default values specified, which the Report Writer
system shall use if a parameter’s input data is missing
20 or invalid.
Usability
Definition - the ease in which the user is able to learn,
operate, prepare inputs and interpret outputs through
interaction with a system.
Example - A trained order-entry clerk shall be able to
submit a complete order for a product chosen from a
supplier catalog in a maximum of 7 minutes, and an
average order entry time of 4 minutes.
Flexibility
Definition — the ease in which the software can be
modified to adapt to different environments.
Example - It shall be possible to add a new delivery
option for customer mailing method by developing and
“plugging in” the functionality necessary to support that
21 delivery option.
Maintainability
Definition — the ease in finding and fixing faults in the
software system.
Example - The application development process must
have a regression test procedure that allows complete
re-testing within 2 business days.
Scalability
Definition — the degree in which the software system is
able to expand its processing capabilities upward and
outward to support business growth.
Example - Any increase in the number of customers
shall not degrade system availability to an extent
noticeable by any users.
22
Verifiability
Definition — the extent to which tests, analysis, and
demonstrations are needed to prove that the software
system will function as intended.
Example - The maximum number of test cases to cover
testing of any particular source code module shall be
20.
Interoperability
Definition — the extent to which the software system is
able to couple or facilitate the interface with other
systems.
Example - The system must be able to interface with
any HTML (HyperText Markup Language) browser.
23
Portability
Definition — the ease in which a software system from
its current hardware or software environment can be
transferred to another environment.
Example - The system is designed to run in business
offices, but the intent is to have a version which will run
in manufacturing assembly plants.
Reusability
Definition — the extent to which a portion of the
software system can be converted for use in another.
Example - The payment subsystem design is based on
the payment module from the ALPHA product line. The
ePAYZ system should not be modified unless absolutely
24 necessary.
Correctness
Definition - Deals with the extent to which the software
design and implementation conform to the stated
requirements
Example - The requirements can be e.g. time limits,
effort constraints, development techniques to be used
etc.
Safety
Definition - meant to eliminate conditions hazardous to
equipment as a result of errors in process control
software.
Example - The system shall not operate if the external
temperature is below 4 degrees Celsius
25
Expandability
Definition - refer to future efforts that will be needed to
serve larger populations, improve services, or add new
applications in order to improve usability.
Example - The Automated Money Machine (AMM) System
shall be designed in such a manner as to allow for future
addition of 4 user buttons and 4 additional banking
services.
Manageability
Definition - refer to the administrator tools that support
software modification during the software development and
maintenance periods.
Example - the system must be self-configure with respect to
load and data distribution and self-heal with respect to
26
failure and recovery
Deriving NFRs
Non-functional requirements are difficult to express.
A number of important issues contribute to the problem of
expressing non-functional requirements:
Certain constraints are related to the design solution that is
unknown at the requirements stage (e.g. Mean Time To Failure-
MTTF)
Certain constraints, are highly subjective and can only be
determined through complex empirical evaluations (associated
with human beings)
Non-functional requirements tend to be related to one or more
functional requirements.
Non-functional requirements tend to conflict and contradict.
There are no ‘universal’ rules and guidelines for determining
when non-functional requirements are optimally met.
27
Contd…
In spite of the fact, two different ways of deriving
NFRs are discussed here: Stakeholder concerns & goal-
based derivation
Stakeholder concerns
Stakeholders normally have a number of ‘concerns’
Concerns are typically non-functional.
Examples include:
Critical business objectives
Essential system characteristics (e.g. security, Safety,
performance, functionality and maintainability
Vaguely defined user concerns may be related to NFRs
28
What are Concerns?
A way of expressing critical ‘holistic’ requirements
which apply to the system as a whole rather than any
specific sub-set of its service or functionality.
Concerns may be broken down into sub-concerns and
finally into specific questions.
Questions act as a check list to ensure that specific
requirements do not conflict with global priorities.
The concerns may lead directly to system requirements
or to questions which must be answered during the
requirements engineering process.
29
Stakeholder concerns…
Relationships between user needs, concerns and NFRs
31
Goal-based derivation
Relates non-functional requirements to the goals of the
enterprise
Goal-based NFR derivation is a 3 step approach:
Identify the enterprise goals
Decompose the goals into sub-goals
Identify non-functional requirements.
One advantage of this approach is that it provides a means of
tracing non-functional requirements to originally stated, vague
expressions in the enterprise domain.
The approach is illustrated using a requirement drawn from
the air traffic domain, on the next slide
32
Example of goal-based derivation
33
Testable NFRs: Making Requirements Measurable
Stakeholders may have vague goals which cannot be expressed
precisely - Vague and imprecise ‘requirements’ are problematic.
We have to turn our vague ideas about quality into measurables.
NFRs should satisfy two attributes; must be objective and testable
(Use measurable metrics)
34
Testable NFRs: Making Requirements Measurable
Property Metric
Performance 1. Processed transactions per second
2. Response time to user input
Reliability 1. Rate of occurrence of failure
2. Mean time to failure
Availability Probability of failure on demand
Size Kbytes
Usability 1. Time taken to learn 80% of the facilities
2. Number of errors made by users in a given time period
Robustness Time to restart after system failure
Portability Number of target systems
35