Formally a requirement "is a condition or capability to which the system must conform".
Informally requirements are the "TO-DO list" of the project project team.
Requirements define what is needed and focus the project team. They are the primary method used to communicate
the goals of the project to everyone on the project team.
-
What the users want; and
-
What the system must to to satisfy the user and business needs
Requirements are the basis for capturing and communicating needs, managing expectations, prioritizing and assigning
work, verifying and validating the system (acceptance) and managing scope.
Requirements may take different forms including Use Cases and Scenarios, unstructured text, structured text or a
combination and may be stated at different levels of abstraction.
At the highest level of abstraction, "Features" define the services that the system must provide to solve the customers
problem. These are captured as structured or unstructured text in the Artifact: Vision.
At the next level of abstraction, Use Cases define the functionality that the system must provide to deliver the
required Features. These are captured as Artifact: Use Case that describe the sequence of actions performed by the
system to yield an observable result of value.
A system must perform according to a behavior specified in use cases. But there are system requirements that do not
represent a specific behavior. Such requirements include:
-
Legal and regulatory requirements, and application standards
-
Quality attributes of the system to be built, including usability, reliability, performance, and supportability
requirements
-
Interface requirements to external systems
-
Design constraints such as those for operating systems and environments and compatibility with other software
These quality requirements are often refered to as "non-functional" requirements but this should not be interpreted as
requirements with no function.
Quality requirements that apply to the system as a whole are captured as structured text in Artifact: Supporting Requirements. Quality requirements that are intimately
associated with a particular use case are often captured in the use-case itself in order to simplify review,
understanding and maintenance.
|