CVSM Bibliography, Entry [ Xi2008Diss ]

Xing, Zhenchang: Supporting Object-Oriented Evolutionary Development by Design Evolution Analysis; Dissertation, Department of Computing Science, University of Alberta; 2008
Deskriptoren: CVSM

Abstract: Object-oriented software is increasingly developed through evolutionary processes and, as a result, design has become a continuous activity throughout the course of the entire development. Understanding the process of a system's design evolution is critical for understanding the architecture qualities important to the project and for consistently maintaining and further evolving the system. The importance of this research problem is evident in the various types of evolution analyses proposed to date. However, in spite of the large body of research in this area, there has been no systematic method yet for capturing and analyzing changes between subsequent versions of software at the design level. In this work, we have developed UMLDiff, a heuristic algorithm for comparing logical models of object-oriented software to recognize additions, removals, matches, moves, renamings of software design elements and changes to their attributes and relations from one version to the next. Based on the design changes reported by UMLDiff, we have developed further analyses (a) for recognizing the long-term trends in the evolution of individual classes, clusters of classes and the system as a whole, and (b) for detecting design-change patterns over a set of related design entities. Through our detailed case studies with three real-world software systems of different type and size, we have demonstrated that our design-evolution analyses methods, as implemented in our tool suite, are accurate and practical and that they can be used to support specific development tasks, such as (a) migrating client applications to appropriately use the evolving component-framework APIs, and (b) recommending design and code fragment for addressing problematic evolution patterns.