Software systems play an increasingly important role in modern
societies. Smart cards for personal identi?cation, e-banking,
software-controlled me- cal tools, airbags in cars, and autopilots for
aircraft control are only some examples that illustrate how everyday
life depends on the good behavior of software. Consequently, techniques
and methods for the development of hi- quality, dependable software
systems are a central research topic in computer science. A fundamental
approach to this area is to use formal speci?cation and veri?cation.
Speci?cation languages allow one to describe the crucial p- perties of
software systems in an abstract, mathematically precise, and
implementation-independent way. By formal veri?cation, one can then
prove that an implementation really has the desired, speci?ed
properties. Although this formal methods approach has been a research
topic for more than 30 years, its practical success is still restricted
to domains in which devel- ment costs are of minor importance. Two
aspects are crucial to widen the application area of formal methods: -
Formal speci?cation techniques have to be smoothly integrated into the
software and program development process. - The techniques have to be
applicable to reusable software components. This way, the quality gain
can be exploited for more than one system, thereby justifying the higher
development costs. Starting from these considerations, Peter Muller ]
has developed new te- niques for the formal speci?cation and veri?cation
of object-oriented so- ware. The speci?cation techniques are declarative
and implementati- independent. They can be used for object-oriented
design and programming.