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.
References:
Archives