Welcome!
To use the personalized features of this site, please log in or register.
If you have forgotten your username or password, we can help.
|
 |
A study of the fragile base class problem
| |
|
A study of the fragile base class problem
Leonid Mikhajlov1 and Emil Sekerinski2 
| (1) |
Turku Centre for Computer Science, Lemminkäisenkatu 14A, 20520 Turku, Finland |
| (2) |
McMaster University, 1280 Main Street West, L8S4K1 Hamilton, Ontario, Canada |
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 flexibility property. By means of five orthogonal examples, violating the flexibility
property, we demonstrate different aspects of the problem. We formulate requirements for disciplining inheritance, and extend
the refinement calculus to accommodate for classes, objects, class-based inheritance, and class refinement. We formulate and
formally prove a flexibility theorem demonstrating that the restrictions we impose on inheritance are sufficient to permit
safe substitution of a base class with its revision in presence of extension classes.
Fulltext Preview (Small, Large)
 References secured to subscribers.
|
|
|
|
|
|