Towards Mentoring Object-Oriented Evolutionary Development
Zhenchang Xing, Eleni Stroulia · 2005
Object-oriented software is increasingly developed using an evolutionary development process model. Therefore, capturing and understanding the evolution that the sys-tem’s logical design has gone through can provide valu-able 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 capturing and analyzing the design evolution of object-oriented software systems. This method relies on UMLDiff, a heuristic UML-structure differencing algo-rithm, which, given a sequence of UML class models cor-responding to the logical design of a sequence of system code releases, produces a sequence of “change records” that describe the design-level structural changes between subsequent system releases. Various design evolution pat-terns are then analyzed to reveal the rationale underlying design decisions that may affect the software system. The recovered knowledge about the system’s logic design evo-lution enables the overall understanding of system design evolution and provides the basis for mentoring the devel-opers on future maintainance activities. We report on one real world case study evaluating our approach. 1