2008 · 26 citations · 29 references
ComputingComputer ScienceProgramming LanguagesSoftware EngineeringSystems ArchitectureSoftware ArchitectureSoftware DesignSoftware EvolutionSoftware MaintenanceHistory-based ModelingSoftware Co-evolutionSoftware Evolution AnalysisSource Code Evolution
The way in which a system's software archive is partitioned influences the evolvability of that system. The partition of a software archive, e.g. subsystem decomposition, is mostly assessed by looking at the static (include, call) relations between the parts. In the literature history information is also taken into account to assess the partition. In this paper we describe our history-based approach to (automatically) assess the extent in which a certain partition allows its parts to evolve independently. We use the assumption that software entities which co-evolved often in the past are likely to be modified together in the near future as well. Hence, the elements of such a set should in principle belong to the same part. Our approach, therefore, identifies sets of co-evolving software entities, where each set has elements from more than one part of the archive. We illustrate our approach with a case study of a large software system that evolved during more than a decade, and has over 7 million lines of code.
29
Metrics and laws of software evolution-the nineties view
M. M. Lehman, J.F. Ramil, Paul Wernick et al. · 2002 · 557 citations
Using automatic clustering to produce high-level system organizations of source code
Spiros Mancoridis, Brian S. Mitchell, Chris Rorres et al. · 2002 · 484 citations