Lecture 6 - Non-Functional Requirement
Lecture 6 - Non-Functional Requirement
Engineering
Lecture 6
Engineering (RE).
● The term ‘requirement’ is not used consistently in the software
industry. In some cases, a requirement is simply a high-level,
abstract statement of a service that a system should provide or a
constraint on a system. At the other extreme, it is a detailed, formal
definition of a system function.
Functional and non-functional requirements
▪ Functional requirements
These are statements of services the system should provide, how the system should react to
particular inputs, and how the system should behave in particular situations. In some cases, the
functional requirements may also explicitly state what the system should not do.
▪ Non-functional requirements
These are constraints on the services or functions
offered by the system.
They include timing constraints, constraints on the
development process, and constraints imposed by
standards.
Non-functional
Requirement
Non-functional Requirement
▪ Non-functional requirements, as the name suggests, are requirements that are not directly
concerned with the specific services delivered by the system to its users.
▪ They may relate to emergent system properties such as reliability, response time, and store
occupancy.
▪ Alternatively, they may define constraints on the system implementation such as the capabilities
of I/O devices or the data representations used in interfaces with other systems.
▪ Non-functional requirements, such as performance, security, or availability, usually specify or
constrain characteristics of the system as a whole.
▪ Non-functional requirements are often more critical than individual functional requirements.
Non-functional Requirement
▪ However, failing to meet a non-functional requirement can mean that the whole system is
unusable.
▪ For example, if an aircraft system does not meet its reliability requirements, it will not be
certified as safe for operation; if an embedded control system fails to meet its performance
requirements, the control functions will not operate correctly.
Non-functional Requirement
▪ Although it is often possible to identify which system components implement specific functional
requirements, it is often more difficult to relate components to non-functional requirements.
▪ There are two reasons for this:
1. Non-functional requirements may affect the overall architecture of a system rather than the individual
components. For example, to ensure that performance requirements are met, you may have to organize the
system to minimize communications between components.
2. A single non-functional requirement, such as a security requirement, may generate number of related
functional requirements that define new system services that are required. In addition, it may also generate
requirements that restrict existing requirements.
Types of Non-functional Requirement
1. Product requirements: These requirements specify or constrain the behavior of the software.
Examples include performance requirements on how fast the system must execute and how much memory it
requires, reliability requirements that set out the acceptable failure rate, security requirements, and
usability requirements.
2. Organizational requirements: These requirements are broad system requirements derived from policies
and procedures in the customer’s and developer’s organization.
Examples include operational process requirements that define how the system will be used, development
process requirements that specify the programming language, and environmental requirements that specify the
operating environment of the system.
Types of Non-functional Requirement
3. External requirements: This broad heading covers all requirements that are derived from factors external
to the system and its development process.
These may include regulatory requirements that set out what must be done for the system to be approved for use
by a regulator, such as a central bank; legislative requirements that must be followed to ensure that the system
operates within the law; and ethical requirements that ensure that the system will be acceptable to its users and
the general public.
Examples of Non-functional Requirements
Non-functional Requirements
▪ A common problem with non-functional requirements is that users or customers often propose
these requirements as general goals, such as ease of use, the ability of the system to recover
from failure, or rapid user response.
▪ Example : “The system should be easy to use by medical staff and should be organized in such a way
that user errors are minimized”.
▪ I have rewritten this to show how the goal could be expressed as a testable non-functional
requirement.
▪ Example : “ Medical staff shall be able to use all the system functions after four hours of training.
After this training, the average number of errors made by experienced users shall not exceed two per
hour of system use.”
Metrics for specifying non-functional requirements
Thanks!
Do you have any questions?