Principles of Software Evolution, International Workshop on (2003)
Sept. 1, 2003 to Sept. 2, 2003
Harald Gall , Technical University of Vienna
Mehdi Jazayeri , Technical University of Vienna
Jacek Krajewski , Technical University of Vienna
The dependencies and interrelations between classes and modules affect the maintainability of object-oriented systems. It is therefore important to capture weaknesses of the software architecture to make necessary corrections. This paper describes a method for software evolution analysis. It consists of three complementary steps, which form an integrated approach for the reasoning about software structures based on historical data: 1) The Quantitative Analysis uses version information for the assessment of growth and change behavior; 2) the Change Sequence Analysis identifies common change patterns across all system parts; and 3) the Relation Analysis compares classes based on CVS release history data and reveals the dependencies within the evolution of particular entities. In this paper, we focus on the Relation Analysis and discuss its results; it has been validated based on empirical data collected from a Concurrent Versions System (CVS) covering 28 months of a Picture Archiving and Communication System (PACS). Our software evolution analysis approach enabled us to detect shortcomings of PACS such as architectural weaknesses, poorly designed inheritance hierarchies, or blurred interfaces of modules.
H. Gall, J. Krajewski and M. Jazayeri, "CVS Release History Data for Detecting Logical Couplings," Principles of Software Evolution, International Workshop on(IWPSE), Helsinki, Finland, 2003, pp. 13.