• DocumentCode
    1238825
  • Title

    Analyzing the evolutionary history of the logical design of object-oriented software

  • Author

    Xing, Zhenchang ; Stroulia, Eleni

  • Author_Institution
    Dept. of Comput. Sci., Alberta Univ., Edmonton, Alta., Canada
  • Volume
    31
  • Issue
    10
  • fYear
    2005
  • Firstpage
    850
  • Lastpage
    868
  • Abstract
    Today, most object-oriented software systems are developed using an evolutionary process model. Therefore, understanding the phases that the system\´s logical design has gone through and the style of their evolution can provide valuable insights in support of consistently maintaining and evolving the system, without compromising the integrity and stability of its architecture. In this paper, we present a method for analyzing the evolution of object-oriented software systems from the point of view of their logical design. This method relies on UMLDiff, a UML-structure differencing algorithm, which, given a sequence of UML class models corresponding to the logical design of a sequence of system code releases, produces a sequence of "change records" that describe the design-level changes between subsequent system releases. This change-records sequence is subsequently analyzed from the perspective of each individual system class, to produce the class-evolution profile, i.e., a class-specific change-records\´ sequence. Three types of longitudinal analyses - phasic, gamma, and optimal matching analysis - are applied to the class-evolution profiles to recover a high-level abstraction of distinct evolutionary phases and their corresponding styles and to identify class clusters with similar evolution trajectories. The recovered knowledge facilitates the overall understanding of system evolution and the planning of future maintenance activities. We report on one real-world case study evaluating our approach.
  • Keywords
    Unified Modeling Language; object-oriented methods; object-oriented programming; reverse engineering; software architecture; software maintenance; UML-structure differencing algorithm; UMLDiff; evolutionary process model; gamma analysis; object-oriented software system; optimal matching analysis; phasic analysis; software maintenance; system logical design; Algorithm design and analysis; Documentation; History; Object oriented modeling; Project management; Quality management; Software design; Software systems; Surges; Visualization; Index Terms- Restructuring; and reengineering.; reverse engineering;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2005.106
  • Filename
    1542067