When Objects Collide: Experiences with Reusing Multiple Class Hierarchies
Abstract
Well-designed reusable class libraries are often incompatible due to architectural mismatches such as error-handling and composition conventions. We identify five pragmatic dimensions along which combinations of subsystems must match, and present detailed examples of conflicts resulting from mismatches. Examples are drawn from our experiences of integrating five subsystem-level class hierarchies into an object-oriented hypertext platform. We submit that effective reuse will require that these pragmatic decisions be explicitly identified in descriptions of reusable software. Such descriptions will enable developers to identify and combine subsystems whose architectures are compatible.