Software maintenance constitutes about two-thirds of total software costs. Much of this maintenance can more correctly be called software evolution, as existing systems are adapted to take on new responsibilities and/or operate in a changed environmen...
Software maintenance constitutes about two-thirds of total software costs. Much of this maintenance can more correctly be called software evolution, as existing systems are adapted to take on new responsibilities and/or operate in a changed environment. During an object-oriented software development, evolution often requires changes to the underlying object structure of the system in terms of classes, inheritance relationships, fields and operations. With this in mind, software developers try to redesign existing components with minimal modifications on the class hierarchy so that components can be refined and reused easily.
In this paper, we propose the Flattened Class Hierarchy that characterizes "normalization" of reorganization of class hierarchy structures. And, we also present an algorithm which transforms a given class hierarchy into the Flattened form. The flattened class hierarchy plays an important role as a bridge on the reorganization of class hierarchies. And the flattened class hierarchy is helpful to us in a number of ways on the higher-level analysis and design phases.