The Fragile Base Class Problem and Its Solution. Mikhajlov, L. & Sekerinski, E. Technical Report 117, Turku Centre for Computer Science, May, 1997.
The Fragile Base Class Problem and Its Solution [link]Paper  abstract   bibtex   
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 formulate the fragile base class problem in terms of a flexibility property. By means of five orthogonal examples demonstrating that the flexibility property does not hold, we introduce requirements for disciplining inheritance. We extend the refinement calculus to accommodate for classes, objects, class-based inheritance, and class refinement. We formulate and formally prove a flexibility theorem showing that the restrictions we impose on inheritance are sufficient to permit substituting a base class with its revision in the presence of extension classes. We also present three checklists for system designers, developers, and extenders to allow application of our results in practice informally.
@techreport{MikhajlovSekerinski97FBCPSolution,
	type = {{TUCS} {Technical} {Report}},
	title = {The {Fragile} {Base} {Class} {Problem} and {Its} {Solution}},
	url = {http://tucs.fi/publications/view/?pub_id=tLMiSe97},
	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 formulate the fragile base class problem in terms of a flexibility property. By means of five orthogonal examples demonstrating that the flexibility property does not hold, we introduce requirements for disciplining inheritance. We extend the refinement calculus to accommodate for classes, objects, class-based inheritance, and class refinement. We formulate and formally prove a flexibility theorem showing that the restrictions we impose on inheritance are sufficient to permit substituting a base class with its revision in the presence of extension classes. We also present three checklists for system designers, developers, and extenders to allow application of our results in practice informally.},
	number = {117},
	institution = {Turku Centre for Computer Science},
	author = {Mikhajlov, Leonid and Sekerinski, Emil},
	month = may,
	year = {1997},
	keywords = {ISBN 952-12-0020-0 ISSN 1239-1891 32 pages},
	pages = {34},
}

Downloads: 0