Eliminating Cycles in Composed Class Hierarchies

Robert J. Walker · 2000

Multiple class hierarchies can be used each to represent a separate requirement or design concern. To yield a working system, these disparate hierarchies must be composed in a semantically meaningful way. However, cycles can arise in the composed inheritance graph that restrict the space of composable hierarchies. This work presents an approach to eliminating these cycles by means of separating the type hierarchy from the implementation hierarchy; separate solutions are provided for languages permitting multiple inheritance, such as C++, and those permitting only interfaces, such as Java. The resulting acyclic class hierarchy will maintain the significant constraints imposed by the original, separate hierarchies, such as type-safety. Categories and Subject Descriptors D.1.5 [Programming Techniques]: Object-Oriented Programming; D.1.m [Programming Techniques]: Miscellaneous---composition; D.2.2 [Software Engineering ]: Design Tools and Techniques---object-oriented design methods; D.2....

Read the paper · More papers on PaperTik