Summary: | As source code evolves, the reasoning behind certain design decisions is lost, often leading to violations of design goals during program maintenance. This kind of code decay is often caused by changes made by developers who are not adequately aware of the rationale behind the source code. Becoming aware of rationale is difficult for many reasons, including the mismatch between design and source code. The thesis of this research is that a mechanism for tracing design goals through existing documentation to source would enable software developers to have more complete knowledge of design goals relevant to a system, and more confidence in terms of how design goals relate to the source. The technique should be applicable within the context of one software evolution task. To validate the claims of this thesis, we have developed the Design Pattern Rationale Graph (DPRG) approach and associated tool. This dissertation describes this mechanism, and its use in the validation of the thesis claims. A DPRG is a graph formed from the text of design pattern documentation that is linked to a code base. The DPRG allows developers to view design pattern information related to design goals separately, and trace those goals through to their corresponding locations in a code base. The DPRG approach is lightweight: The time and effort required to apply the approach fits within the context of a single task. We demonstrate the validity of the thesis claims by applying the DPRG in several case studies and one experiment. These studies address each claim separately, and do so on a wide range of systems and tasks. === Science, Faculty of === Computer Science, Department of === Graduate
|