Page 102 -
P. 102
4.1 Functional and non-functional requirements 85
Client Managers
System End-Users
User
Requirements Client Engineers
Contractor Managers
System Architects
System End-Users
Figure 4.2 Readers System Client Engineers
of different types Requirements System Architects
of requirements Software Developers
specification
should behave in particular situations. In some cases, the functional require-
ments may also explicitly state what the system should not do.
2. Non-functional requirements These are constraints on the services or functions
offered by the system. They include timing constraints, constraints on the devel-
opment process, and constraints imposed by standards. Non-functional require-
ments often apply to the system as a whole, rather than individual system
features or services.
In reality, the distinction between different types of requirement is not as clear-cut
as these simple definitions suggest. A user requirement concerned with security,
such as a statement limiting access to authorized users, may appear to be a non-
functional requirement. However, when developed in more detail, this requirement
may generate other requirements that are clearly functional, such as the need to
include user authentication facilities in the system.
This shows that requirements are not independent and that one requirement often
generates or constrains other requirements. The system requirements therefore do not
just specify the services or the features of the system that are required; they also specify
the necessary functionality to ensure that these services/features are delivered properly.
4.1.1 Functional requirements
The functional requirements for a system describe what the system should do. These
requirements depend on the type of software being developed, the expected users of
the software, and the general approach taken by the organization when writing
requirements. When expressed as user requirements, functional requirements are
usually described in an abstract way that can be understood by system users.
However, more specific functional system requirements describe the system func-
tions, its inputs and outputs, exceptions, etc., in detail.
Functional system requirements vary from general requirements covering what
the system should do to very specific requirements reflecting local ways of working
or an organization’s existing systems. For example, here are examples of functional