Instructors' Guide
Ch 1
Ch 2
Ch 3
Ch 4
Ch 5
Ch 6
Ch 7
Ch 8
Ch 9
Ch 10
Ch 11
Ch 12
- Conformance not only involves
syntactic properties, but behavioral
properties as well.
Behavioral properties include
invariant properties and history
properties.
See slide
[10-properties].
- See slide
[10-history].
- Static constraints may be expressed
directly in the signature,
but also by means of pre- and post-conditions.
To a certain, but definitely lesser, extent,
the reverse is also true.
See slide
[10-constraints].
- States may be modeled as functions
and state transformations as
function modifications.
See slide
[10-verification]
and slide [10-subst].
- There are two ways to verify the
behavior of a program:
(a) prove for each possible
transition that the formula holds;
and
(b) employ the correctness calculus
given in
slide
[10-correctness].
- For each syntactical kind of statement
allowed by the language,
a transition system specifies
a corresponding execution step,
or series of such steps,
by means of a transition derivation rule.
An example transition system for
a simple object-based language,
supporting object creation and message
passing, is given in
section
[behavior].
- To prove that a realization is
correct with respect to its
abstract specification,
one must prove that each concrete operation
satisfies the constraints imposed on
the abstract level.
See slide
[10-ADT].
- See slide
[10-specification],
slide [10-realization] and
slide [10-absf].
- Correspondence between subtypes
involves syntactic constraints,
defined by the subtyping rules
given in chapter 9,
behavioral constraints,
as characterized by the refinement
relation for pre- and post-conditions
and invariants,
and constraints for the extensions,
as expressed by the diamond rule.
See slide
[10-correspondence]
and slide [10-subtyping].
- See slide
[10-ex-subtype],
slide [10-ex-correspondence]
and slide [10-ex-proof].
- Invariance properties of objects cannot
completely be checked locally, within the confines of
a single object.
See slide
[10-invariants].
Checking invariants explicitly for each object,
however, is likely to be too expensive.
- Formal methods to specify
the interaction between objects
include model-based specification
methods,
the specification of contracts
as behavioral compositions,
the specification of cooperating
actors by means of scripts,
the specification of
multi-party interactions,
and the specification of joint action systems.
See slide
[10-interaction].
slide: Answers