Specifications and Their Use in Defining
Subtypes
Authors: Barbara Liskov and Jeannette M. Wing
Appears in Proceedings of OOPSLA '93, Sept. 1993.
The full text of this paper is here (in
PostScript).
Abstract
Specifications are useful because they allow reasoning about objects
without
concern for their implementations. Type hierarchies are useful
because they allow types that share common properties to be
designed as a
family.
This paper is concerned with the interaction between specifications
and type hierarchies.
We present a way of specifying types, and show how some
extra information, in addition to specifications of the objects'
methods, is needed to support reasoning.
We also provide a new way of showing that
one type is a subtype of another.
Our technique makes use of information in the types' specifications
and works even in a very general computational environment in
which possibly concurrent users share mutable objects.