Types of requirements
• User requirements
Statements in natural language (NL) plus diagrams of the
services the system provides and its operational constraints.
Written for customers
• System requirements
A structured document setting out detailed descriptions of
the system services. Written as a contract between client and
contractor
• Software specification
A detailed software description which can serve as a basis for
a design or implementation. Written for developers
Requirements Types:
• Functional requirements: services the system should
provide
• Non-functional requirements: constraints on the services
of functions offered by the system. e.g. speed, time to
market
• Domain requirements: related to the application domain
of the system (may be functional or non-functional
requirements)
Functional requirements
• Functionality or services that the system is expected to
provide.
• Functional requirements may also explicitly state what the
system shouldn’t do.
• Functional requirements specification should be:
Complete: All services required by the user should be
defined
Consistent: should not have contradictory definition (also
avoid ambiguity don’t leave room for different
interpretations)
Non-Functional requirements
• Requirements that are not directly concerned with the
specific functions delivered by the system
• Typically relate to the system as a whole rather than the
individual system features Often could be deciding factor
on the survival of the system (e.g. reliability, cost,
response time)
Domain requirements
• Domain requirements are derived from the application
domain of the system rather than from the specific needs of
the system users.
• May be new functional requirements, constrain existing
requirements or set out how particular computation must
take place.
• Example: tolerance level of landing gear on an aircraft
(different on dirt, asphalt, water), or what happens to fiber
optics line in case of sever weather during winter Olympics
(Only domain-area experts know)