Understanding Class Evolution in Object-Oriented Software

  • Authors:
  • Affiliations:
  • Venue:
  • IWPC '04 Proceedings of the 12th IEEE International Workshop on Program Comprehension
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

In the context of object-oriented design, softwaresystems model real-world entities abstractly representedin the system classes. As the system evolves through itslifecycle, its class design also evolves. Thus,understanding class evolution is essential inunderstanding the current design of the system and therationale behind its evolution. In this paper, we describea taxonomy of class-evolution profiles, a method forautomatically categorizing a system's classes in one (ormore) of eight types in the taxonomy, and a data-miningmethod 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. Therecovered knowledge about class evolution facilitates theoverall understanding of the system class-designevolution and the identification of the specific classesthat should be investigated in more detail towardsimproving the system-design qualities. We report on twocase studies evaluating our approach.