A Study of The Fragile Base Class Problem

by Leonid Mikhajlov and Emil Sekerinski

Paper in PDF (506 KB), Postscript (443 KB), Compressed Postscript (159 KB)


Abstract

In this paper we study the fragile base class problem. This problem occurs in open object-oriented systems employing code inheritance as an implementation reuse mechanism. System developers unaware of extensions to the system developed by its users may produce a seemingly acceptable revision of a base class which may damage its extensions. The fragile base class problem becomes apparent during maintenance of open object-oriented systems, but requires consideration during design. We express the fragile base class problem in terms of a exibility property. By means of ve orthogonal examples, violating the exibility property, we demonstrate dierent aspects of the problem. We formulate requirements for disciplining inheritance, and extend the renement calculus to accommodate for classes, objects, class-based inheritance, and class renement. We formulate and formally prove a exibility theorem demonstrating that the restrictions we impose on inheritance are sufcient to permit safe substitution of a base class with its revision in presence of extension classes.


Last update 17. November 1998 by Emil Sekerinski