CH 2 - Types of Reqirement
CH 2 - Types of Reqirement
CH 2 - Types of Reqirement
Types of Requirements
Contents
User Requirements
System Requirements
Software Design Specification Requirements
Functional Vs Non-Functional Requirements
Domain Requirements
Classification of NFRs
Some NFRs
Deriving NFRs
Stakeholder Concerns
Goal-based derivation
Testable NFRs
User Requirements
Should describe functional and non-functional
requirements so that they are understandable by system
users who don’t have detailed technical knowledge
They are called user requirements because they are
written from a user’s perspective
User requirements are defined using statements in natural
language, tables, diagrams.
Written primarily for customers
User Requirement Readers
User Requirement Specification
Functional requirements
Describes system services or functions which are expected by the users of the
system.
How it should react to particular inputs,
How it should behave in particular situations.
Examples:
• 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.
Functional requirements describe what the system or software must do and sometimes called
behavioral or operational requirements.
Types of requirements
In order to find out functional requirements
of a system try to answer the questions
below
What inputs the system should accept?
What outputs the system should produce?
What data the system should store that other
systems might use?
What computations the system should
perform?
Types of requirements
Non- Functional requirements
define the overall qualities or attributes of the resulting system like: (security),
Usability, Reliability, Performance & Supportability
NR specify system properties, such as reliability and safety.
NFRs are often called “quality attributes”
More critical than functional requirements.
Represents 20% of the requirements of a system
Hardest to elicit and specify
Defining good NFRs requires not only the involvement of the customer but
the developers too
All requirements must be verifiable
– If not ‘verifiable’ then there is no indications that these requirements have
been satisfied.
Some must also be measured.
– Some may be directly measured; some measured via simulation.
If not met, the system may be useless.
(They are not “second class” requirements.)
Types of requirements…
NR place restrictions on the product being developed, the
development process, and specify external constraints that the
product must meet.
Example
The product must be available at the beginning of the next year
The product shall operate on a 3G mobile telephone.
The system shall be easy to use
The system should not fail more than twice in a week.
The system shall respond to every user action in less than 3
seconds
Types of requirements…
Functional Vs Non-Functional Requirements
There is no a clear distinction between functional and non-
functional requirements.
Whether or not a requirement is expressed as a functional or a
non-functional requirement may depend:
on the level of detail to be included in the requirements
document
The degree of trust which exists between a system customer
and a system developer.
Types of requirements…
Example: The system shall ensure that data is protected from
unauthorised access.
Conventionally, this would be considered as a non-functional
requirement because it does not specify specific system
functionality which must be provided. However, it could have
been specified in slightly more detail as follows:
The system shall include a user authorisation procedure where
users must identify themselves using a login name and
password. Only users who are authorised in this way may access
the system data.
In this form, the requirement looks rather more like a functional
requirement as it specifies a function (user login) which must be
incorporated in the system.
Domain Requirements
Requirements that come from the application domain of the system and that reflect
characteristics of that domain.
Functional or non-functional requirements derived from application domain (e.g.,
legal requirements or physical laws).
Derived from the application domain rather than user needs.
May be new functional requirements or constraints on existing requirements.
If domain requirements are not satisfied, the system may be unworkable.
For example,
A train control system has to take into account the braking characteristics in
different weather conditions. This is a domain requirement for a train protection
system.
Domain requirements problems
Understandability
Requirements are expressed in the language of the application domain;
This is often not understood by software engineers developing the system.
Implicitness
Domain specialists understand the area so well that they do not think of making
the domain requirements explicit.
NFRS
Non-functional requirements (NFR) define the overall
qualities of the resulting system;
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,
NFRs…
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)
Classification of NFRs…
A more general classification distinguishes between product,
process and external requirements is recently proposed by
Sommerville [2007] Non-functional
requirements