Level 2 - Requirements Management

Requirements Management

a key process area for level 2: Repeatable


The purpose of Requirements Management is to establish a common understanding between the customer and the software project of the customer's requirements that will be addressed by the software project.

Requirements Management involves establishing and maintaining an agreement with the customer on the requirements for the software project. This agreement is referred to as the "system requirements allocated to the software." The "customer" may be interpreted as the system engineering group, the marketing group, another internal organization, or an external customer. The agreement covers both the technical and nontechnical (e.g., delivery dates) requirements. The agreement forms the basis for estimating, planning, performing, and tracking the software project's activities throughout the software life cycle.

The allocation of the system requirements to software, hardware, and other system components (e.g., humans) may be performed by a group external to the software engineering group (e.g., the system engineering group), and the software engineering group may have no direct control of this allocation. Within the constraints of the project, the software engineering group takes appropriate steps to ensure that the system requirements allocated to software, which they are responsible for addressing, are documented and controlled.

To achieve this control, the software engineering group reviews the initial and revised system requirements allocated to software to resolve issues before they are incorporated into the software project. Whenever the system requirements allocated to software are changed, the affected software plans, work products, and activities are adjusted to remain consistent with the updated requirements.

Goals

Goal 1

System requirements allocated to software are controlled to establish a baseline for software engineering and management use.

Goal 2

Software plans, products, and activities are kept consistent with the system requirements allocated to software.

Commitment to perform

Commitment 1 -- The project follows a written organizational policy for managing the system requirements allocated to software.


The system requirements allocated to the software are referred to as "allocated requirements" in these practices.

The allocated requirements are the subset of the system requirements that are to be implemented in the software components of the system. The allocated requirements are a primary input to the software development plan. Software requirements analysis elaborates and refines the allocated requirements and results in software requirements which are documented.


This policy typically specifies that:
  1. The allocated requirements are documented.
  2. The allocated requirements are reviewed by:
    • the software managers, and
    • other affected groups.
      Examples of affected groups include:
      • system test,
      • software engineering (including all subgroups, such as software design),
      • system engineering,
      • software quality assurance,
      • software configuration management, and
      • documentation support.

  3. The software plans, work products, and activities are changed to be consistent with changes to the allocated requirements.

Ability to perform

Ability 1 -- For each project, responsibility is established for analyzing the system requirements and allocating them to hardware, software, and other system components.


Analysis and allocation of the system requirements is not the responsibility of the software engineering group, but is a prerequisite for their work.


This responsibility covers:
  1. Managing and documenting the system requirements and their allocation throughout the project's life.
  2. Effecting changes to the system requirements and their allocation.

Ability 2 -- The allocated requirements are documented.

The allocated requirements include:
  1. The nontechnical requirements (i.e., the agreements, conditions, and/or contractual terms) that affect and determine the activities of the software project.
    Examples of agreements, conditions, and contractual terms include:
    • products to be delivered,
    • delivery dates, and 
    • milestones.

  2. The technical requirements for the software.
    Examples of technical requirements include:
    • end user, operator, support, or integration functions;
    • performance requirements;
    • design constraints;
    • programming language; and
    • interface requirements.

  3. The acceptance criteria that will be used to validate that the software products satisfy the allocated requirements.

Ability 3 -- Adequate resources and funding are provided for managing the allocated requirements.

  1. Individuals who have experience and expertise in the application domain and in software engineering are assigned to manage the allocated requirements.
  2. Tools to support the activities for managing requirements are made available.
    Examples of support tools include:
    • spreadsheet programs,
    • tools for configuration management,
    • tools for traceability, and
    • tools for test management.

Ability 4 -- Members of the software engineering group and other software-related groups are trained to perform their requirements management activities.


Examples of training include:
  • the methods, standards, and procedures used by the project, and
  • the application domain.

Activities performed

Activity 1 -- The software engineering group reviews the allocated requirements before they are incorporated into the software project.

  1. Incomplete and missing allocated requirements are identified.
  2. The allocated requirements are reviewed to determine whether they are:
    • feasible and appropriate to implement in software,
    • clearly and properly stated,
    • consistent with each other, and
    • testable.
  3. Any allocated requirements identified as having potential problems are reviewed with the group responsible for analyzing and allocating system requirements, and necessary changes are made.
  4. Commitments resulting from the allocated requirements are negotiated with the affected groups.
    Examples of affected groups include:
    • software engineering (including all subgroups, such as software design),
    • software estimating,
    • system engineering,
    • system test,
    • software quality assurance,
    • software configuration management,
    • contract management, and
    • documentation support.


    Refer to Activity 6 of the Software Project Planning key process area for practices covering negotiating commitments.


Activity 2 -- The software engineering group uses the allocated requirements as the basis for software plans, work products, and activities.

The allocated requirements:
  1. Are managed and controlled.
    "Managed and controlled" implies that the version of the work product in use at a given time (past or present) is known (i.e., version control), and changes are incorporated in a controlled manner (i.e., change control).

    If a greater degree of formality than is implied by "managed and controlled" is desired, the work product can be placed under the full discipline of configuration management, as is described in the Software Configuration Management key process area.


  2. Are the basis for the software development plan.
  3. Are the basis for developing the software requirements.

Activity 3 -- Changes to the allocated requirements are reviewed and incorporated into the software project.

  1. The impact to existing commitments is assessed, and changes are negotiated as appropriate.
    • Changes to commitments made to individuals and groups external to the organization are reviewed with senior management.
      Refer to Activity 4 of the Software Project Planning key process area and Activity 3 of the Software Project Tracking and Oversight key process area for practices covering commitments made external to the organization.


    • Changes to commitments within the organization are negotiated with the affected groups.

    Refer to Activities 5, 6, 7, and 8 of the Software Project Tracking and Oversight key process area for practices covering negotiating changes to commitments.


  2. Changes that need to be made to the software plans, work products, and activities resulting from changes to the allocated requirements are:
    • identified,
    • evaluated,
    • assessed for risk,
    • documented,
    • planned,
    • communicated to the affected groups and individuals, and
    • tracked to completion.

Measurement and analysis

Measurement 1 -- Measurements are made and used to determine the status of the activities for managing the allocated requirements.


Examples of measurements include:
  • status of each of the allocated requirements;
  • change activity for the allocated requirements; and
  • cumulative number of changes to the allocated requirements, including total number of changes proposed, open, approved, and incorporated into the system baseline.

Verifying implementation

Verification 1 -- The activities for managing the allocated requirements are reviewed with senior management on a periodic basis.


The primary purpose of periodic reviews by senior management is to provide awareness of and insight into software process activities at an appropriate level of abstraction and in a timely manner. The time between reviews should meet the needs of the organization and may be lengthy, as long as adequate mechanisms for exception reporting are available.



Refer to Verification 1 of the Software Project Tracking and Oversight key process area for practices covering the typical content of senior management oversight reviews.


Verification 2 -- The activities for managing the allocated requirements are reviewed with the project manager on both a periodic and event-driven basis.


Refer to Verification 2 of the Software Project Tracking and Oversight key process area for practices covering the typical content of project management oversight reviews.


Verification 3 -- The software quality assurance group reviews and/or audits the activities and work products for managing the allocated requirements and reports the results.


Refer to the Software Quality Assurance key process area.


At a minimum, these reviews and/or audits verify that:
  1. The allocated requirements are reviewed, and problems are resolved before the software engineering group commits to them.
  2. The software plans, work products, and activities are appropriately revised when the allocated requirements change.
  3. Changes to commitments resulting from changes to the allocated requirements are negotiated with the affected groups.

[^^]Table of contents [->]Forward one chapter

page d'accueil

contact

 

menu precedent
Acknowledgements
SEI CMM Key Practices - Overview
Introduction
CMM Overview
Using the Key Practice Pages
Interpreting the CMM
Level 2 - Requirements Management
Level 2 - Software Project Planning
Level 2 - Software Project Tracking and Oversight
Level 2 - Software Subcontract Management
Level 2 - Software Quality Assurance
Level 2 - Software Configuration Management
Level 3 - Organization Process Focus
Level 3 - Organization Process Definition
Level 3 - Training Program
Level 3 - Integrated Software Management
Level 3 - Software Product Engineering
Level 3 - Intergroup Coordination
Level 3 - Peer Reviews
Level 4 - Quantitative Process Management
Level 4 - Software Quality Management
Level 5 - Defect Prevention
Level 5 - Technology Change Management
Level 5 - Process Change Management
Appendix A: References
Appendix B: Glossary
Appendix C: Abridged Key Practices
Appendix D: Change History

 

 

contact

<-- precedent ] page d'accueil ] menu precedent ] suite --> ]

FREE, la liberté n'a pas de prix !  antoine@apple2.com 29-04-2000