behind design decisions and the impact of changes
caused by dependencies), developers usually implement changes based on their own (often incomplete)
understanding of this knowledge. They rely on their
past experience to understand design decisions made
during development. This leads to poor maintenance
performance, increased effort in identifying and modifying artifacts affected by the changes, low quality of
changes incorporated in the system, and incomplete
or inconsistent changes. Our study suggests that these
problems can be addressed by the integration of traceability and SCM.
HOW DOES TRACEABILITY ADD VALUE?
Traceability is the ability to describe and follow the
life of software artifacts, such as requirements,
designs, and implementation of the system [ 5]. It is
described in RUP in the figure. The box on the right
side of the figure outlines the activities in SCM as
specified in RUP. The box on the left side of of the figure outlines the traceability workflow. The figure also
shows how different activities in traceability practice
are associated with those in SCM.
Here, we provide examples of problems faced in
each activity by stakeholders in our case study and
illustrate how SCM integrated with traceability can
address a variety of problems.
Planning. SCM plans define how to identify and
monitor the evolution of configuration items (
software artifacts managed within an SCM system). Hospcom developed an SCM plan and followed it in its
standardized SCM practice. However, each development team developed its own traceability practice, as
no organizationwide traceability plan was developed.
While the benefits of traceability are typically delivered downstream,
the costs are incurred upstream in the development life cycle.
used to maintain links or relationships between software artifacts to ensure that the design and implementation satisfy the requirements. Traceability also
helps represent design rationale [ 6]. Since traceability can be used to document complex dependencies
across software artifacts, it can help explain how
making changes to artifacts affects other artifacts.
Typical traceability practice involves the use of
traceability matrices or networks. Traceability matrices identify the correspondence among requirements,
design, source code, and test cases, in a tabular format.
Traceability networks are semantic networks that
identify different types of links among these artifacts.
They are often used in large-scale, complex, and mission-critical projects that require a comprehensive
understanding of the relationships among artifacts
[ 7]. Given the important role of traceability in managing dependencies, it is a natural complement to
SCM in managing system evolution.
While process frameworks like RUP provide guidelines on many key process areas, they do not provide
adequate guidelines for traceability practice. Since the
overarching objective of SCM and traceability is
change management, we suggest the synergistic integration of these practices. For effective change management, clear traceability processes should be defined
and associated with appropriate SCM processes.
Based on our case study, we have charted the activities
involved in a traceability process. We illustrate how
they can be integrated with the SCM process
Typically, traceability matrices that link requirements
to other artifacts were created.
An integrated approach requires the establishment
of a traceability plan that is tightly intertwined with the
SCM plan. A traceability plan defines the traceability
practice for the organization. It identifies the various
traceability items (like requirements, design elements,
and source-code modules) and the links among them,
as well as project-specific artifacts that need to be
tracked. A traceability plan may also specify the level of
detail with which traceability knowledge is maintained,
possible variations in traceability practice based on project characteristics like size and complexity, and potential applications of documented traceability knowledge.
For example, traceability can be established at a coarse
level (such as links among related files) or at a more
fine-grain level (such as links between a requirement
and a class in a design model). The integration of such
a traceability plan with the SCM plan is essential for
effective change management. Traceability items
should be consistent with configuration items managed
in the SCM system. The change-management process
should define the correspondence between items used
in these environments. For example, the correspondence between the file-level items managed by SCM
tools and fine-grain traceability items that are managed
by traceability networks should be clearly established.
This is essential in maintaining dependencies between
items at different levels of detail within SCM and traceability tools.