[Publications] [Software Engineering Research Group] [Department of Computer Science] [University of British Columbia]

Eliminating Cycles from Composed Class Hierarchies
Robert J. Walker

Technical report TR-00-07, Department of Computer Science, University of British Columbia, 8 July 2000.

PDF    gzipped PostScript

Abstract

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.


URL:  http://www.cs.ubc.ca/labs/se/papers/2000/UBC-CS-TR-00-07.html
File:  /pub/www/cs.ubc.ca/docs/labs/se/papers/2000/UBC-CS-TR-00-07.html