2. 1.
1. Functional Requirements
Functional Requirements
2.
2. Non-Functional Requirements
Non-Functional Requirements
3.
3. Domain Requirements
Domain Requirements
4.
4. Inverse Requirements
Inverse Requirements
5.
5. Design and implementation constraints
Design and implementation constraints
6.
6. Reliability Requirements
Reliability Requirements
7.
7. Safety Requirements
Safety Requirements
Type of
Type of
Software Requirements
Software Requirements
3. Functional and non-functional
Functional and non-functional
requirements
requirements
Functional requirements
Functional requirements
• Statements of
Statements of services
services or functions the system
or functions the system
should provide, how the system should
should provide, how the system should react
react
to particular
to particular inputs
inputs and how the system should
and how the system should
behave
behave in particular situations.
in particular situations.
Non-functional requirements
Non-functional requirements
• Define system properties and constraints e.g.
Define system properties and constraints e.g.
reliability, response time and storage
reliability, response time and storage
requirements. Constraints are I/O device
requirements. Constraints are I/O device
capability, system representations, etc.
capability, system representations, etc.
• Non-functional requirements may be more
Non-functional requirements may be more
critical than functional requirements
critical than functional requirements. If these
. If these
are not met, the system is useless.
are not met, the system is useless.
4. Functional requirements
Functional requirements
Describe functionality or system services
Describe functionality or system services
Depend on the type of software, expected
Depend on the type of software, expected
users and the type of system where the
users and the type of system where the
software is used
software is used
Functional user requirements may be
Functional user requirements may be
high-level statements of what the system
high-level statements of what the system
should do but functional system
should do but functional system
requirements should describe the system
requirements should describe the system
services in detail
services in detail
5. Examples of
Examples of
Functional Requirements
Functional Requirements
The user shall be able to search either all of
The user shall be able to search either all of
the initial set of databases or select a subset
the initial set of databases or select a subset
from it.
from it.
The system shall provide appropriate
The system shall provide appropriate
viewers for the user to read documents in
viewers for the user to read documents in
the document store.
the document store.
Every order shall be allocated a unique
Every order shall be allocated a unique
identifier (ORDER_ID) which the user shall
identifier (ORDER_ID) which the user shall
be able to copy to the account’s permanent
be able to copy to the account’s permanent
storage area.
storage area.
6. Non-functional classifications
Non-functional classifications
Product requirements
Product requirements
• Requirements which specify that the delivered
Requirements which specify that the delivered
product must behave in a particular way e.g.
product must behave in a particular way e.g.
execution speed, reliability
execution speed, reliability, etc.
, etc.
Organisational requirements
Organisational requirements
• Requirements which are a consequence of
Requirements which are a consequence of
organisational policies
organisational policies and procedures e.g.
and procedures e.g.
process standards used, implementation
process standards used, implementation
requirements, etc.
requirements, etc.
External requirements
External requirements
• Requirements which arise from factors which
Requirements which arise from factors which
are external to the system and its development
are external to the system and its development
process e.g. inter-operate requirements,
process e.g. inter-operate requirements,
legislative requirements
legislative requirements, etc.
, etc.
Note:
Note: Interoperability is a property referring to the ability of diverse
Interoperability is a property referring to the ability of diverse
systems and organizations to work together (inter-operate)
systems and organizations to work together (inter-operate)
9. Domain Requirements
Domain Requirements
Requirements that come from the
Requirements that come from the
application domain and reflect
application domain and reflect
fundamental characteristics of that
fundamental characteristics of that
application domain
application domain(
(sphere of influence
sphere of influence)
)
These can be both the functional or
These can be both the functional or
non-functional requirements.
non-functional requirements.
10. Domain Requirements
Domain Requirements
Example-1:
Example-1:
In a commission-based sales
In a commission-based sales
businesses, there is
businesses, there is no concept of
no concept of
negative commission.
negative commission. However, if
However, if
care is not taken novice developers
care is not taken novice developers
can be developed systems, which
can be developed systems, which
calculate negative commission.
calculate negative commission.
11. Domain Requirements
Domain Requirements
Example-2:
Example-2:
Banking domain has its own specific
Banking domain has its own specific
constraints, for example, most banks
constraints, for example, most banks
do
do not allow over-draw
not allow over-draw on most
on most
accounts, however, most banks allow
accounts, however, most banks allow
some accounts to be
some accounts to be over-drawn.
over-drawn.
12. Domain Requirements
Domain Requirements
These requirements, sometimes, are
These requirements, sometimes, are
not clearly mentioned
not clearly mentioned
Req. engineers find it difficult to
Req. engineers find it difficult to
convey domain requirements
convey domain requirements
So Domain experts get it properly.
So Domain experts get it properly.
Their absence can cause significant
Their absence can cause significant
dissatisfaction
dissatisfaction
13. Domain Requirements
Domain Requirements
Domain requirements can impose
Domain requirements can impose
strict constraints on solutions. This
strict constraints on solutions. This
is particularly true for scientific and
is particularly true for scientific and
engineering domains
engineering domains
Domain-specific terminology can also
Domain-specific terminology can also
cause confusion
cause confusion
15. Inverse Requirements
Inverse Requirements
They explain what the system shall
They explain what the system shall not
not
do.
do.
Many people find it convenient to describe
Many people find it convenient to describe
their needs in this manner
their needs in this manner.
.
These requirements indicate the unwanted
These requirements indicate the unwanted
needs of customers about certain aspects
needs of customers about certain aspects
of a new software product
of a new software product
16. Inverse Requirements
Inverse Requirements
Example:
Example:
The system shall not use
The system shall not use red color in
red color in
the user interface
the user interface, whenever it is
, whenever it is
asking for inputs from the end-user
asking for inputs from the end-user
18. Design and Implementation Constraints
Design and Implementation Constraints
They are development guidelines
They are development guidelines
within which the designer must work
within which the designer must work
These requirements can seriously
These requirements can seriously
limit design and implementation
limit design and implementation
options.
options.
Can also have impact on human
Can also have impact on human
resources due to change in scope of
resources due to change in scope of
work.
work.
19. Design and Implementation
Design and Implementation
Constraints Examples
Constraints Examples
The system shall be developed using
The system shall be developed using
the
the Microsoft .Net platform
Microsoft .Net platform.
.
The system shall be developed using
The system shall be developed using
open source tools and shall run on
open source tools and shall run on
Linux operating system.
Linux operating system.
20. Safety Requirements
Safety Requirements
Safety requirements cover not only human
Safety requirements cover not only human
safety, but also equipment and data safety.
safety, but also equipment and data safety.
Human safety considerations include protecting
Human safety considerations include protecting
the operator from moving parts, electrical
the operator from moving parts, electrical
circuitry and other physical dangers. There may
circuitry and other physical dangers. There may
be special operating procedures, which if
be special operating procedures, which if
ignored may lead to a dangerous condition
ignored may lead to a dangerous condition
occurring. Equipment safety includes
occurring. Equipment safety includes
safeguarding the software system from
safeguarding the software system from
unauthorized access either electronically or
unauthorized access either electronically or
physically. An example of a safety requirement
physically. An example of a safety requirement
may be that a security monitor used in the
may be that a security monitor used in the
system.
system.
20
20
21. Reliability Requirements
Reliability Requirements
Reliability requirements are those which the software
Reliability requirements are those which the software
must meet in order to perform a specific function
must meet in order to perform a specific function
under certain stated conditions, for a given period of
under certain stated conditions, for a given period of
time.
time.
The level of reliability requirement can be dependant
The level of reliability requirement can be dependant
on the type of system, i.e. the more critical or life
on the type of system, i.e. the more critical or life
threatening the system, the higher the level of
threatening the system, the higher the level of
reliability required.
reliability required.
Reliability can be measured in a number of ways
Reliability can be measured in a number of ways
including number of bugs per x lines of code, mean
including number of bugs per x lines of code, mean
time to failure.
time to failure.
21
21