PM Slide9
PM Slide9
PM Slide9
• References – UC-8:Search
Nonfunctional requirements
• Users have implicit expectations about how well the software will work. These
characteristics include how easy the software is to use, how quickly it executes,
how reliable it is, and how well it behaves when unexpected conditions arise.
The nonfunctional requirements define these aspects about the system.
• The nonfunctional requirements should be defined as precisely as possible.
Often, this is done by quantifying them. Where possible, the nonfunctional
requirements should provide specific measurements that the software must
meet.
• The maximum number of seconds it must take to perform a task
• the maximum size of a database on disk
• the number of hours per day a system must be available
• the number of concurrent users supported
Kinds of nonfunctional requirements
• Availability - A system’s availability, or “uptime,” is the amount of time that it is
operational and available for use. This is specified because some systems are
designed with expected downtime for activities like database upgrades and backups.
• Efficiency - Specifies how well the software utilizes scarce resources: CPU cycles, disk
space, memory, bandwidth, etc.
• Portability - Portability specifies the ease with which the software can be installed on
all necessary platforms, and the platforms on which it is expected to run.
• Integrity - Integrity requirements define the security attributes of the system,
restricting access to features or data to certain users and protecting the privacy of
data entered into the software.
Kinds of nonfunctional requirements
• Flexibility - If the organization intends to increase or extend the functionality of the
software after it is deployed, that should be planned from the beginning; it influences
choices made during the design, development, testing, and deployment of the system.
• Performance - The performance constraints specify the timing characteristics of the
software. Certain tasks or features are more time-sensitive than others; the
nonfunctional requirements should identify those software functions that have
constraints on their performance.
• Reusability - Many systems are developed with the ability to leverage common
components across multiple products.
• Robustness - A robust system is able to handle error conditions gracefully, without
failure. This includes a tolerance of invalid data, software defects, and unexpected
operating conditions.
Nonfunctional Requirement Example
• Name – NF-7: Performance constraints for search-and-replace
• Summary – The search-and-replace feature must perform a search
quickly.
• Rationale – If a search is not fast enough, users will avoid using the
software.
• Requirements – A case sensitive search-and-replace performed on a
3MB document with 30-character search terms to be replaced with a
different 30-character replacement term must take under 500ms on a
700MHz Pentium 3 running Microsoft windows 2000 at 50% CPU load.
• References – UC -8: Search