Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
A behavioral notion of subtyping
Liskov B., Wing J. ACM Transactions on Programming Languages and Systems16 (6):1811-1841,1994.Type:Article
Date Reviewed: Jun 1 1996

Subtyping, also known informally as inheritance, is an important notion in object-oriented programming, but may lead to unexpected problems if not handled properly. In order to ensure that intrinsic properties are preserved during the process of subtyping, Liskov and Wing propose two approaches. First, a constraint approach directly specifies history properties in terms of constraints, which provides the criteria to ensure that every method in the subtype preserves the properties of the supertype. Second, an extension approach specifies that the observable behaviors of every new method in the subtype must agree with the original methods of the supertype. This in turn ensures that history properties are preserved. Liskov and Wing discuss these two approaches in detail with respect not only to constraint and extension rules, but to invariant, signature, and methods rules.

I have two observations. First, can the rules discussed in this paper be compatible with overriding? For example, can we identify a set of rules that will help us preserve the desirable properties of the supertype, while avoiding the undesirable properties? Second, I do not think the authors should claim that theirs is “the first work to deal with history properties.” For example, Cusack studied the history properties of inheritance in terms of traces, failures, and divergences in a communicating sequential processes (CSP) context [1].

I enjoyed reading this paper. Numerous convincing examples are given to illustrate the arguments. The paper should be read not only by researchers but also by programmers who may not normally concur with the usefulness of formal methods.

Reviewer:  T.H. Tse Review #: CR124477 (9606-0432)
1) Cusack, E. Refinement, conformance and inheritance. Form. Asp. Comput. 3, 2 (1991), 129–141.
Bookmark and Share
 
Methodologies (D.2.1 ... )
 
 
Languages (D.2.1 ... )
 
 
Specification Techniques (F.3.1 ... )
 
 
Type Structure (F.3.3 ... )
 
 
Object-Oriented Programming (D.1.5 )
 
 
Requirements/ Specifications (D.2.1 )
 
 
Specifying And Verifying And Reasoning About Programs (F.3.1 )
 
 
Studies Of Program Constructs (F.3.3 )
 
Would you recommend this review?
yes
no
Other reviews under "Methodologies": Date
Multilevel specification of real time systems
Gabrielian A., Franklin M. Communications of the ACM 34(5): 50-60, 1991. Type: Article
May 1 1992
Software requirements
Davis A., Prentice-Hall, Inc., Upper Saddle River, NJ, 1993. Type: Book (9780138057633)
Nov 1 1994
The automated production control documentation system
Trammell C., Binder L., Snyder C. ACM Transactions on Software Engineering and Methodology 1(1): 81-94, 1992. Type: Article
Mar 1 1993
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy