Popis: |
The dissertation presents a set of approached and automated tools to identify, maintain, and preserve code-to-design traceability links during software evolution. Four main research issues are addressed. The first issue is the automatic identification of breaks in code-to-design traceability from a code change. The second issue is the understanding of how code-to-design traceability change during daily and incremental code changes. The third issue is the identification of critical classes in design based on their involvement in changes to design and lastly is to preserve code-to-design traceability during incremental code changes. The main contributions include a lightweight and efficient automated approach and tool to identify inconsistencies in code-to-design traceability given a code change. The tool and approach are described and evaluated. A detailed empirical study, on three years of four open source projects, was undertaken to understand how code-to-design traceability changes during evolution. The results of this empirical work are used as a basis for an approach to measure class importance based on its involvement in changes to design. Measuring importance for sets of classes that collaborate to realize a feature or concept is also done in the context of change. A visual aid to monitor and aid developers implementing the intended design along with an automated approach to update and maintain design documents during evolution are described.The ultimate goal of this work is to reduce the costs of software maintenance by supporting the consistency of code-to-design traceability links for incremental evolutionary code changes. |