Understanding class evolution in object-oriented software

In the context of object-oriented design, software systems model real-world entities abstractly represented in the system classes. As the system evolves through its lifecycle, its class design also evolves. Thus, understanding class evolution is essential in understanding the current design of the s...

Full description

Saved in:
Bibliographic Details
Published inProceedings. 12th IEEE International Workshop on Program Comprehension, 2004 pp. 34 - 43
Main Authors Zhenchang Xing, Stroulia, E.
Format Conference Proceeding
LanguageEnglish
Published Los Alamitos CA IEEE 2004
IEEE Computer Society Press
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:In the context of object-oriented design, software systems model real-world entities abstractly represented in the system classes. As the system evolves through its lifecycle, its class design also evolves. Thus, understanding class evolution is essential in understanding the current design of the system and the rationale behind its evolution. In this paper, we describe a taxonomy of class-evolution profiles, a method for automatically categorizing a system's classes in one (or more) of eight types in the taxonomy, and a data-mining method for eliciting co-evolution relations among them. These methods rely on our UMLDiff algorithm that, given a sequence of UML class models of a system, surfaces the design-level changes over its lifecycle. The recovered knowledge about class evolution facilitates the overall understanding of the system class-design evolution and the identification of the specific classes that should be investigated in more detail towards improving the system-design qualities. We report on two case studies evaluating our approach.
ISBN:9780769521497
0769521495
ISSN:1092-8138
DOI:10.1109/WPC.2004.1311045