Over the last
two decades, industry and government organizations have applied new
software methodologies and technologies to achieve productivity
gains. It is only in recent times that they have begun to realize
that, for these gains to become a reality, managing the software
process is crucial.
The Capability
Maturity Model (CMM) by the Software Engineering Institute (SEI),
USA, has emerged as the de facto industry standard for a
comprehensive software quality process. Deeper and more
comprehensive than ISO 9000, the CMM provides a pragmatic, yet
disciplined view of software activity that is being widely adopted
by the commercial software marketplace. Central to the CMM is the
issue of requirements management-a key activity designed to ensure
that software products meet the needs of the customers in both
functionality and quality.
The CMM has
gained considerable credibility in software-intensive industries.
Adherence to the CMM has significantly lowered the cost of
application development within large commercial companies. It has
been used by many organizations for long to deliver meaningful
return-on-investment statistics. These payoffs show increased
productivity and the corresponding reduction in time to market
improves by as much as two to three times. In an era of increasing
competition, these improvements to the bottom line are crucial for
gaining strategic advantage.
color=#ff0000>Level 1 to Level 2: Guidelines
The
purpose of requirements management is to establish a common
understanding between the client and the software team about the
customer's requirements. This common understanding serves as the
central document that defines and controls the activities to follow.
Requirements are controlled to establish a baseline for software
engineering management use.
Throughout the
CMM, guidelines specify that all activity plans, schedules and
software products are to be developed and modified consistently with
the requirements that are allocated to software. In this manner, the
CMM moves the organization towards an integrated view-wherein both
technical requirements and project plans are kept consistent with
each other. To support this process, software requirements must be
documented and reviewed by software managers and affected groups,
including representatives of the customer and user
community.
The software
requirements specification serves as a central project document-a
defining factor in relation to other elements of the project plan.
The requirements include both technical and non-technical elements.
In addition, acceptance criteria, which are the tests and measures
that will be used to validate that the software meets its
requirements, must be established and documented.
In order to
accomplish these objectives, adequate resources and funding must be
provided for managing requirements. Members of the software
engineering group and other affected groups must be trained to
perform their requirements management activities. Training needs to
cover methods and standards, as well as training activities designed
to assist the engineering team to understand the unique nature and
problems of the application domain.
Requirements are
managed and controlled, and serve as the basis for software plans,
work products and activities. Changes to the requirements are
reviewed and incorporated into the project plans. The impact of
change is assessed and negotiated with the affected groups. In order
to provide feedback on the results of these activities, and to
verify compliance, the CMM provides guidelines for measurements and
analysis as well as activities for verifying implementation.
size=2>Another rung up: Level 3
face="Arial, Helvetica, sans-serif" size=2>
Under the CMM,
effective requirements management appears at virtually all levels of
the process model and within many key process areas. As an
organization moves to Level 3, the focus is on managing software
activities based on a defined and documented standard practice
called the Software Product Engineering Key Practice.
Designed to
integrate all software engineering activities to produce
high-quality software products effectively and efficiently, under
the Software Engineering Key Practice, the software requirements are
developed, maintained, documented and verified by systematically
analyzing the requirements according to the project's defined
software process.
The analysis
process is necessary to ensure that the requirements are complete
and unambiguous as well as consistent with each other and testable.
Various analysis techniques are suggested, including simulations,
modeling, scenario generation and functional object-oriented
decomposition. The result of this process is a better understanding
of the requirements of the application, which is then reflected in
revised requirements documentation. In addition, the group
responsible for system and acceptance testing also analyzes the
requirements to ensure testability.
The resulting
software requirements document is reviewed and approved by the
affected parties to ensure that the points of view represented by
these parties are included in the requirements. Reviewers include
customers and end users as well as project management and software
test personnel. In order to manage change in a controlled way, the
CMM also calls for placing the software requirements document under
configuration management control.
size=2>Keeping track
face="Arial, Helvetica, sans-serif" size=2>
Under the CMM, all
worthwhile software products are documented. The documentation must
be maintained and readily available. Consistency is maintained
across software products, including the software plans, process
descriptions, allocated requirements, software design, code and test
plans, and test procedures. These are traced to the source from
which they were derived, and to the products of the subsequent
engineering activity.
Requirements traceability provides a means
of analyzing impact before a change is made, as well as a way to
determine what components are affected upon processing of a change.
Traceability also provides the mechanism whereby the adequacy of
test coverage can be readily determined.
All approved
changes are tracked to completion. The documentation tracing the
allocated requirements is also managed and controlled. Measurements
are made to determine the functionality and quality of the software
products, and the status of the software activity.
size=2>Managing change
face="Arial, Helvetica, sans-serif" size=2>
The CMM recognizes
that change is an integral part of software activity. It is crucial
to have a stable baseline of requirements that are clearly elicited,
documented and placed into systems that provide support for managing
change. The CMM outlines the following:
- As the
understanding of the software improves, changes to the software
products and activities are proposed, analyzed and incorporated as
appropriate.
- Where changes
to the requirements are needed, they are approved and incorporated
before any work products or activities are changed. The project
determines impact of change before the change is made. Changes are
negotiated and communicated to the affected
groups.
The CMM provides
a comprehensive view of the activities that must be applied to
improve software quality and increase productivity. As the industry
standard for software configuration management, Intersolv's PVCS
offers comprehensive cross-platform solutions, enabling effective
control over the entire software development process.
Once
elicited, requirements are documented and managed with the same
degree of care given to code work products. This process puts the
team in control of their project and helps them to better manage
both the project and its scope.
size=2>David Parker
Director Asia,
PVCS