Chapter 3 - Software Requirements
Chapter 3 - Software Requirements
REQUIREMENTS DEFINED
REQUIREMENT CATEGORIES
GATHERING REQUIREMENTS
REFINING REQUIREMENTS
RECORDING REQUIREMENTS
VALIDATION AND VERIFICATION
CHANGING REQUIREMENTS
REQUIREMENTS DEFINED
Types:
Business Requirements. Business requirements lay out the project’s high‐
level goals. They explain what the customer hopes to achieve with the project.
User Requirements. User requirements (which are also called stakeholder
requirements by managers who like to use the word “stakeholder”), describe
how the project will be used by the eventual end users.
Functional Requirements. Functional requirements are detailed statements
of the project’s desired capabilities. They’re similar to the user requirements
but they may also include things that the users won’t see directly.
REQUIREMENT CATEGORIES
cont…
Types cont…
Nonfunctional Requirements. Nonfunctional requirements are
statements about the quality of the application’s behavior or
constraints on how it produces a desired result. They specify
things such as the application’s performance, reliability, and
security characteristics.
Implementation Requirements. Implementation requirements
are temporary features that are needed to transition to using the
new system but that will be later discarded. For example, suppose
you’re designing an invoice‐tracking system to replace an existing
system. After you finish testing the system and are ready to use it
full time, you need a method to copy any pending invoices from
the old database into the new one. That method is an
implementation requirement.
REQUIREMENT CATEGORIES
cont…
FURPS. FURPS is an acronym for this system’s requirement
categories: functionality, usability, reliability, performance,
and scalability. It was developed by Hewlett‐Packard.
Categories:
Functionality—What the application should do.
Usability—What the program should look like.
Reliability—How reliable the system should be.
Performance—How efficient the system should be.
Supportability—How easy it is to support the application.
REQUIREMENT CATEGORIES
cont…
FURPS+. FURPS was extended into FURPS+ to add a few
requirements categories that software engineers thought were
missing.
Categories:
Design constraints—These are constraints on the design that are
driven by other factors such as the hardware platform, software
platform, network characteristics, or database.
Implementation requirements—These are constraints on the way the
software is built.
Interface requirements—These are constraints on the system’s
interfaces with other systems.
Physical requirements—These are constraints on the hardware and
physical devices that the system will use.
GATHERING REQUIREMENTS