The evolution of object-oriented software often requires changes in the underlying class hierarchy structures of the software in terms of classes, inheritance and association relationships, fields and operations. Such evolutions unnecessarily burden t...
The evolution of object-oriented software often requires changes in the underlying class hierarchy structures of the software in terms of classes, inheritance and association relationships, fields and operations. Such evolutions unnecessarily burden the implementation process with the fact that some design information is only implicitly present in the class hierarchy.
This article discusses the evolution of object-oriented softwares modeled by Object Implementation Graphs, which completely represents the class hierarchies using nodes, arcs and labels. The graph is a view of an object-oriented system as seen from a programming language such as Java, rather than a view of a software engineering perspective. The graph captures the essential schema information concerning classes, their fields and operations, and inheritance relationships("is-a" links) between classes.
Based on the Object Implementation Graph, we present a set of lower level primitive transformations that provide a means for management and useful guidelines of object-oriented software evolution. The result of this research leads to a better understanding of evolution and reuse of object-oriented software and class hierarchies. It also provides a mechanism for making the changes of class hierarchy easily and safely.