## A Study of The Fragile Base Class Problem (1998)

### Cached

### Download Links

- [www.ifs.uni-linz.ac.at]
- [www.cas.mcmaster.ca]
- [www.abo.fi]
- [www.cas.mcmaster.ca]
- [www.sct.inf.ethz.ch]
- [sct.inf.ethz.ch]
- DBLP

### Other Repositories/Bibliography

Venue: | IN EUROPEAN CONFERENCE ON OBJECT-ORIENTED PROGRAMMING |

Citations: | 42 - 1 self |

### BibTeX

@INPROCEEDINGS{Mikhajlov98astudy,

author = {Leonid Mikhajlov and Emil Sekerinski},

title = {A Study of The Fragile Base Class Problem},

booktitle = {IN EUROPEAN CONFERENCE ON OBJECT-ORIENTED PROGRAMMING},

year = {1998},

pages = {355--382},

publisher = {Springer-Verlag}

}

### Years of Citing Articles

### OpenURL

### 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

### Citations

1495 | The C++ Programming Language - Stroustrup - 1987 |

1404 |
A Discipline of Programming
- Dijkstra
- 1976
(Show Context)
Citation Context ...s This section is based on the work by Back and von Wright as presented in [3,6,7,8]. The behavior of a program statement can be characterized by Dijkstra’s weakest precondition predicate transforme=-=r [11]-=-. For a statement S and a predicate p, the weakest precondition wp(S, p) is such that the statement S terminates in a state satisfying the postcondition p. Since the relation between pre- and postcond... |

759 | On Understanding Types, Data Abstraction, and Polymorphism - Cardelli, Wegner |

473 |
Programming from Specifications
- Morgan
- 1994
(Show Context)
Citation Context ...ive orthogonal examples violating the flexibility property, we demonstrate different aspects of the problem. Then we formulate requirements disciplining inheritance. We extend the refinement calculus =-=[8,19,20]-=- with notions of classes, objects, class-based inheritance, and refinement on classes. For the formalization of inheritance we adopt a model suggested by Cook and Palsberg in [10]. We formulate, prove... |

430 | A behavioral notion of subtyping
- Liskov, Wing
- 1994
(Show Context)
Citation Context ...nss376 Leonid Mikhajlov and Emil Sekerinski crucial for our purposes, such as, e.g. refinement ordering on classes, are not defined. Various approaches to substitutability of objects are presented in =-=[1,17,18]-=-. However, they do not model self-calls in classes in presence of inheritance and dynamic binding. The second direction of related research is oriented towards developing a methodology for specifying ... |

412 |
Proof of correctness of data representations
- Hoare
- 1972
(Show Context)
Citation Context ...s. We define data refinement between S and S ′ as in [8]: S ⊑R S ′ �= S ⊑ S ′ ↑R or, equivalently, S ⊑R S ′ �= S ↓R ⊑ S ′ We can express class refinement in terms of refineme=-=nt on abstract data types [14,4,12].-=- An abstract data type T can be represented in the form T =(t0,tp), where t0 is an initial value of an internal state of type Σ, and tp is a tuple of procedures modifying this internal state. The pro... |

257 |
Refinement Calculus: A Systematic Introduction
- Back, Wright
- 1998
(Show Context)
Citation Context ...ive orthogonal examples violating the flexibility property, we demonstrate different aspects of the problem. Then we formulate requirements disciplining inheritance. We extend the refinement calculus =-=[8,19,20]-=- with notions of classes, objects, class-based inheritance, and refinement on classes. For the formalization of inheritance we adopt a model suggested by Cook and Palsberg in [10]. We formulate, prove... |

215 | Encapsulation and inheritance in objectoriented programming languages,” in Conference proceedings on Object-oriented programming systems, languages and applications
- Snyder
- 1986
(Show Context)
Citation Context ... Springer-Verlag Berlin Heidelberg 1998s356 Leonid Mikhajlov and Emil Sekerinski certain base class revisions on the entire system. Although possible in principle, in practice this becomes infeasible =-=[29,23]-=-. In an open system the fragile base class problem requires consideration during design [32]. We have encountered several different interpretations of the problem in the technical literature on this t... |

155 |
A theoretical basis for stepwise refinement and the programming calculus
- Morris
- 1987
(Show Context)
Citation Context ...ive orthogonal examples violating the flexibility property, we demonstrate different aspects of the problem. Then we formulate requirements disciplining inheritance. We extend the refinement calculus =-=[8,19,20]-=- with notions of classes, objects, class-based inheritance, and refinement on classes. For the formalization of inheritance we adopt a model suggested by Cook and Palsberg in [10]. We formulate, prove... |

137 |
Designing an object-oriented programming language with behavioural subtyping
- America
- 1991
(Show Context)
Citation Context ...nss376 Leonid Mikhajlov and Emil Sekerinski crucial for our purposes, such as, e.g. refinement ordering on classes, are not defined. Various approaches to substitutability of objects are presented in =-=[1,17,18]-=-. However, they do not model self-calls in classes in presence of inheritance and dynamic binding. The second direction of related research is oriented towards developing a methodology for specifying ... |

132 | A denotational semantics of inheritance and its correctness
- Cook, Palsberg
- 1989
(Show Context)
Citation Context ...nement calculus [8,19,20] with notions of classes, objects, class-based inheritance, and refinement on classes. For the formalization of inheritance we adopt a model suggested by Cook and Palsberg in =-=[10]-=-. We formulate, prove, and explain a flexibility theorem showing that the restrictions we impose on inheritance are sufficient to permit substituting a base class with its revision in presence of exte... |

120 | Reuse contracts: managing the evolution of reusable assets
- Steyaert, Lucas, et al.
- 1996
(Show Context)
Citation Context ...uld be equal to the number of elements in the bag. Note that the user is obliged to verify that CountingBag is substitutable for Bag to be safely used by the framework. 1 This example is adopted from =-=[26]s358 L-=-eonid Mikhajlov and Emil Sekerinski After some time a system developer decides to improve the efficiency of the class Bag and releases a new version of the system. An “improved” Bag ′ implements... |

118 |
Inheritance as an incremental modification mechanism or what like is and isn’t like
- Wegner, Zdonik
- 1988
(Show Context)
Citation Context ...t. We say that E is equivalent to (M mod C) 2 ,where M corresponds to the extending part of the definition of E, and the operator mod combines M with the inherited part C. We refer to M as a modifier =-=[31]-=-. Therefore, we have that C belongs to the system, while (M mod C) represents a user extension of this system. The model of single inheritance employing the notion of modifiers was proved by Cook and ... |

109 |
Correctness preserving program refinements: proof theory and applications
- Back
- 1980
(Show Context)
Citation Context ... next section we consider a formal basis necessary for formulating this theorem. 4 Formal Basis 4.1 Refinement Calculus Basics This section is based on the work by Back and von Wright as presented in =-=[3,6,7,8]. -=-The behavior of a program statement can be characterized by Dijkstra’s weakest precondition predicate transformer [11]. For a statement S and a predicate p, the weakest precondition wp(S, p) is such... |

77 |
A Lattice Theoretical Fixpoint Theorem and its Applications
- Tarski
- 1955
(Show Context)
Citation Context ...ent is defined by the least fixed point of a function F with respect to the refinement ordering: while p do S od �= µF, where FX=if p then S; X else skip fi According to the theorem of Knaster-Tars=-=ki [30], -=-a monotonic function has a unique least fixed point in a complete lattice. Statements form a complete lattice with the refinement ordering ⊑, and the statement if p(x) then S; X else skip fisA Study... |

55 | Independently extensible systems – software engineering potential and challenges
- Szyperski
- 1996
(Show Context)
Citation Context ... damage the whole system. The problem does not depend on the system implementation language. However, systems employing code inheritance as an implementation reuse mechanism along with self-recursion =-=[28]-=- are vulnerable to it. Such systems are delivered to users as a collection of classes. The users can reuse the functionality provided by the system by inheriting from system classes. Moreover, when th... |

38 |
Programming from Speci cations
- Morgan
(Show Context)
Citation Context ...s of ve orthogonal examples violating the exibility property, we demonstrate di erent aspects of the problem. Then we formulate requirements disciplining inheritance. We extend the re nement calculus =-=[8, 19, 20]-=- with notions of classes, objects, class-based inheritance, and re nement on classes. For the formalization of inheritance we adopt a model suggested by Cook and Palsberg in [10]. We formulate, prove,... |

37 | Class refinement and interface refinement in objectoriented programming
- Mikhajlova, Sekerinski
- 1997
(Show Context)
Citation Context ...nss376 Leonid Mikhajlov and Emil Sekerinski crucial for our purposes, such as, e.g. refinement ordering on classes, are not defined. Various approaches to substitutability of objects are presented in =-=[1,17,18]-=-. However, they do not model self-calls in classes in presence of inheritance and dynamic binding. The second direction of related research is oriented towards developing a methodology for specifying ... |

32 |
Issues in the design and specification of class libraries
- Kiczales, Lamping
- 1992
(Show Context)
Citation Context ...ecifying classes to make code reuse less error prone. The key idea of extending a class specification with specification of its specialization interface was presented first by Kiczales and Lamping in =-=[16]-=-. This idea was further developed by Steyaert et al. in [26]. In fact the second paper considers the fragile base class problem in our formulation (although they do not refer to it by this name). The ... |

21 | The FORTRAN programmer’s guide - Computer, Inc - 1977 |

21 |
Wrapper semantics of an object-oriented programming language with state
- Hense
- 1991
(Show Context)
Citation Context ... encountered several research directions which are related to ours. The first direction combines research on semantics of object oriented languages with ensuring substitutability of objects. Hense in =-=[13]-=- gives a denotational semantics of an object-oriented programming language. His model provides for classes with state, self-referencing, and multiple inheritance. The latter is described using wrapper... |

20 |
Changing data representation in the refinement calculus
- Back
- 1989
(Show Context)
Citation Context ...s. We define data refinement between S and S ′ as in [8]: S ⊑R S ′ �= S ⊑ S ′ ↑R or, equivalently, S ⊑R S ′ �= S ↓R ⊑ S ′ We can express class refinement in terms of refineme=-=nt on abstract data types [14,4,12].-=- An abstract data type T can be represented in the form T =(t0,tp), where t0 is an initial value of an internal state of type Σ, and tp is a tuple of procedures modifying this internal state. The pro... |

19 | Exploring summation and product operators in the refinement calculus - Back, Butler - 1995 |

16 |
A theoretical basis for stepwise re nement and the programming calculus
- Morris
- 1987
(Show Context)
Citation Context ...s of ve orthogonal examples violating the exibility property, we demonstrate di erent aspects of the problem. Then we formulate requirements disciplining inheritance. We extend the re nement calculus =-=[8, 19, 20]-=- with notions of classes, objects, class-based inheritance, and re nement on classes. For the formalization of inheritance we adopt a model suggested by Cook and Palsberg in [10]. We formulate, prove,... |

15 |
Object-Oriented Software Reuse
- Taenzer, Ganti, et al.
- 1989
(Show Context)
Citation Context ... Springer-Verlag Berlin Heidelberg 1998s356 Leonid Mikhajlov and Emil Sekerinski certain base class revisions on the entire system. Although possible in principle, in practice this becomes infeasible =-=[29,23]-=-. In an open system the fragile base class problem requires consideration during design [32]. We have encountered several different interpretations of the problem in the technical literature on this t... |

14 |
Re nement Calculus, A Systematic Introduction
- Back, Wright
- 1998
(Show Context)
Citation Context ...s of ve orthogonal examples violating the exibility property, we demonstrate di erent aspects of the problem. Then we formulate requirements disciplining inheritance. We extend the re nement calculus =-=[8, 19, 20]-=- with notions of classes, objects, class-based inheritance, and re nement on classes. For the formalization of inheritance we adopt a model suggested by Cook and Palsberg in [10]. We formulate, prove,... |

12 | Modularity in the presence of subclassing
- Stata
- 1997
(Show Context)
Citation Context ...ly in the general case. We believe that such methodology should be grounded on a mathematical basis, and developing such methodology constitutes the ultimate goal of our research. Stata and Guttag in =-=[24,25]-=- elaborate the idea of specialization interfaces by providing a mathematical foundation in behavioral subtyping style [1,17]. They introduce class components, which combine a substate of a class and a... |

11 |
Correctness preserving program re nements: proof theory and applications.vol
- Back
(Show Context)
Citation Context ...n is weakened and the postcondition is strengthened: pre p post q v pre p 0 post q 0 if p p 0 and q 0 q Other rules for re nement of speci cations into programs and transforming programs are given in =-=[3, 19, 12]-=-. An iteration statement is de ned by the least xed point of a function F with respect to the re nement ordering: while p do S od b= F; where F X = if p then S; X else skip According to the theorem of... |

7 | Extensible software systems - Pountain, Szyperski - 1994 |

7 |
The Component Object Model: A
- Williams, Kindel
- 1994
(Show Context)
Citation Context ...lass revisions on the entire system. Although possible in principle, in practice this becomes infeasible [29,23]. In an open system the fragile base class problem requires consideration during design =-=[32]-=-. We have encountered several different interpretations of the problem in the technical literature on this topic. Often, during a discussion of component standards, the name is used to describe the ne... |

6 |
Refinement Calculus I: Sequential Nondeterministic Programs
- Back, Wright
- 1990
(Show Context)
Citation Context ... next section we consider a formal basis necessary for formulating this theorem. 4 Formal Basis 4.1 Refinement Calculus Basics This section is based on the work by Back and von Wright as presented in =-=[3,6,7,8]. -=-The behavior of a program statement can be characterized by Dijkstra’s weakest precondition predicate transformer [11]. For a statement S and a predicate p, the weakest precondition wp(S, p) is such... |

6 |
Predicate Transformers and Higher Order Logic
- Back, Wright
- 1992
(Show Context)
Citation Context ... next section we consider a formal basis necessary for formulating this theorem. 4 Formal Basis 4.1 Refinement Calculus Basics This section is based on the work by Back and von Wright as presented in =-=[3,6,7,8]. -=-The behavior of a program statement can be characterized by Dijkstra’s weakest precondition predicate transformer [11]. For a statement S and a predicate p, the weakest precondition wp(S, p) is such... |

5 |
Data Refinement of Predicate Transformers. Theoretical Computer Science 87
- Gardiner, Morgan
- 1991
(Show Context)
Citation Context ...eakened and the postcondition is strengthened: pre p post q ⊑ pre p ′ post q ′ if p ⊆ p ′ and q ′ ⊆ q Other rules for refinement of specifications into programs and transforming programs=-= are given in [3,19,12]. A-=-n iteration statement is defined by the least fixed point of a function F with respect to the refinement ordering: while p do S od �= µF, where FX=if p then S; X else skip fi According to the theor... |

4 |
Issues in the design and speci cation of class libraries
- Kiczales, Lamping
(Show Context)
Citation Context ...r specifying classes to make code reuse less error prone. The key idea of extending a class speci cation with speci cation of its specialization interface was presented rst by Kiczales and Lamping in =-=[16]-=-. This idea was further developed by Steyaert et al. in [26]. In fact the second paper considers the fragile base class problem in our formulation (although they do not refer to it by this name). The ... |

3 |
IBM's System Object Model (SOM): Making reuse a reality
- Corporation
(Show Context)
Citation Context ...chnical literature on this topic. Often, during a discussion of component standards, the name is used to describe the necessity to recompile extension and client classes when base classes are changed =-=[15]-=-. While being apparently important, that problem is only a technical issue. Even if recompilation is not necessary, system developers can make inconsistent modifications. Another interpretation is the... |

3 |
Changing data representation in the re nement calculus
- Back
- 1989
(Show Context)
Citation Context ...ments. We de ne data re nement between S and S 0 as in [8]: S vR S 0 b= S v S 0 "R or, equivalently, S vR S 0 b= S #R v S 0 We can express class re nement in terms of re nement on abstract data types =-=[14, 4, 12]-=-. An abstract data type T can be represented in the form T =(t0;tp); where t0 is an initial value of an internal state of type , and tp is a tuple of procedures modifying this internal state. The proc... |

3 |
Class re nement and interface re nement in object-oriented programs
- Mikhajlova, Sekerinski
- 1997
(Show Context)
Citation Context ...nd Palsberg [10]. However, a number of notionsscrucial for our purposes, such as, e.g. re nement ordering on classes, are not dened. Various approaches to substitutability of objects are presented in =-=[1, 17, 18]-=-. However, they do not model self-calls in classes in presence of inheritance and dynamic binding. The second direction of related research is oriented towards developing a methodology for specifying ... |

3 |
Inheritance as an incremental modi cation mechanism or what like is and isn't like
- Wegner, Zdonik
- 1988
(Show Context)
Citation Context ... it. We say that E is equivalent to(M mod C) 2 , where M corresponds to the extending part of the de nition of E, and the operator mod combines M with the inherited part C. We refer to M as a modi er =-=[31]-=-. Therefore, we have that C belongs to the system, while (M mod C) represents a user extension of this system. The model of single inheritance employing the notion of modi ers was proved by Cook and P... |

2 | Oberon/F framework. Tutorial and reference. Oberon microsystems - ster, Szyperski - 1994 |

2 |
Modular reasoning in the presence of subtyping
- Stata, Guttag
- 1995
(Show Context)
Citation Context ...ly in the general case. We believe that such methodology should be grounded on a mathematical basis, and developing such methodology constitutes the ultimate goal of our research. Stata and Guttag in =-=[24,25]-=- elaborate the idea of specialization interfaces by providing a mathematical foundation in behavioral subtyping style [1,17]. They introduce class components, which combine a substate of a class and a... |

2 | Exploring summation and product operators in the re nement calculus - Back, Butler - 1995 |

2 |
Data re nement of predicate transformers. Theoretical Computer science
- Gardiner, Morgan
- 1991
(Show Context)
Citation Context ...n is weakened and the postcondition is strengthened: pre p post q v pre p 0 post q 0 if p p 0 and q 0 q Other rules for re nement of speci cations into programs and transforming programs are given in =-=[3, 19, 12]-=-. An iteration statement is de ned by the least xed point of a function F with respect to the re nement ordering: while p do S od b= F; where F X = if p then S; X else skip According to the theorem of... |

1 | Re nement Calculus I: Sequential Nondeterministic Programs - Back, Wright - 1990 |