Requirements Management
- Requirements Management
- the requirements engineering
task during which the identified
requirements
are managed
As illustrated in the preceding figure, Requirements Management is part of the following inheritance hierarchy:
- Type: Abstract
- Superclass: Engineering Task
- Subclasses: None
The typical responsibilities of Requirements Management are to:
- Record and store the requirements and their attributes
(i.e., metadata about the requirements) in an appropriate repository, database, or
requirements tool.
- Control access (e.g., create, read, update, delete) to the requirements
(e.g., based on metadata such as authorization to create/read/update/delete requirements by role,
requirement state, requirement ownership, requirement responsibility, date of last change to the requirement, etc.).
- Negotiate with the stakeholders
to eliminate any inconsistencies between requirements and their priorities.
- Report the status of the requirements
(e.g., the number, percentage, and state of the requirements and requirements categories).
- Trace the requirements
(e.g., to the associated architecture, design, implementation, and test work products).
Requirements management can typically begin when the
following preconditions hold:
- The
requirements team is adequately staffed and trained in
requirements management.
- Some [potential] requirements exist to be managed.
Requirements management is typically complete when the
following postconditions hold:
- All requirements are frozen.
- The endeavor is completed.
Requirements management typically involves the following
teams performing the following steps in an iterative,
incremental, parallel, and time-boxed manner:
-
Requirements Team:
- Store and update the requirements and their
attributes in an appropriate repository, database, or
requirements management tool.
- Control stakeholder access to the requirements (e.g.,
based on metadata such as authorization to
create/read/update/delete requirements by role,
requirement state, requirement ownership, requirement
responsibility, date of last change to the requirement,
etc.).
- Manage the internal and external approval of the
requirements.
- Publish the requirements (possibly automatically via
a publish and subscribe mechanism) to the appropriate
stakeholders at the appropriate time (e.g., upon approval
or change).
- Trace the requirements back to goals and down to the
associated architecture, design, implementation, and test
work products.
Requirements management can typically be performed using the
following techniques:
- Unique identification of requirements.
- Requirements traceability.
- Automation of requirements management steps.
Requirements management typically results in the production
of all or part of the following work products:
- Requirements should be managed throughout their entire
lifecycle from initial identification through analysis,
approval, specification, freezing, and retirement.
- Requirements management becomes increasingly important as
the number and types of requirements increase and the
criticality of the associated application/component
increases.
- It is not unusual for a nontrivial application to have
1,000-25,000 individual, testable requirements. Huge
applications (e.g., air traffic control systems, jet
aircraft, nuclear reactor control systems) can have from
100,000 to 500,000 requirements.
- Requirements management should be performed iteratively,
incrementally, and in parallel with other tasks (e.g.,
requirements elicitation, requirements analysis, requirements
prototyping, requirements reuse, requirements
specification).
- If the analyzed requirements are stored in a requirements
management tool or a modeling tool, the requirements
specifications can be automatically generated from the
requirements repository using appropriate templates.
- Much of this task is repetative record-keeping that is
best automated by means of a requirements management
tool.