Understanding Object-Oriented Architecture Evolution via Change Detection

  • Author(s) / Creator(s)
  • Technical report TR03-20. Understanding the software architecture of a system and the process by which it has evolved to its current state is an important task that software developers are often faced with. It becomes relevant when one needs to assess a system for the purpose of adopting it in a new context, or to further develop it to meet new requirements and change requests. In this paper, we describe our work on analyzing and understanding the evolution of an object-oriented application at the class-design level. We introduce a structure-matching algorithm for comparing two or more versions of an architecture represented in UML (XMI). The algorithm produces a \"change tree\" that reports the differences of the compared versions in terms of class/field/method additions, deletions, moves, and renamings. Analysis of a series of change trees corresponding to a series of versions can reveal interesting and useful information about the evolution history of the application architecture, such as evolution styles, class evolution types, change patterns, etc. In this paper, we discuss the algorithm, the change-tree data structure, and the architecture-evolution analysis, and we report on two case studies evaluating our approach. | TRID-ID TR03-20

  • Date created
  • Subjects / Keywords
  • Type of Item
  • DOI
  • License
    Attribution 3.0 International