Object-Oriented Specification and Design of Concurrent Systems
by Didier Buchs and Nicolas Guelfi
The ConForM group at the Software engineering laboratory of the Swiss Federal Institute of Technology in Lausanne is involved in a project directed towards the formal development of concurrent or distributed systems by means of object-oriented techniques. This project proposes a formal specification language called CO-OPN: Concurrent Object Oriented Petri Nets. Behavioural concurrency aspects and data-structures are supported by adequate formalisms which are Petri Nets and Algebraic Abstract Data Types. Techniques for producing implementation by transformation and refinement as well as techniques for producing test sets have been developed. Tools have been built to support this formalism and are namely a graphical editor, a compiler, a test set generator and a simulator for prototyping specifications.
The activity of our team is directed towards the development of methods, techniques and tools for the formal construction of large, complex and reliable distributed systems.
Distributed systems are the most challenging and the most complex kind of systems that are practically developed. Such kind of systems needs well adapted and easy to use formal models. The inherent complexity and non-determinism of distributed systems needs well founded models, supported by tools sustaining all the different activities of the development process.
Complexity management is necessary to cope with real systems development. It can be controlled if sub-components can be separately studied for validation and implementation purposes. Reusability can be achieved only if the integration of implemented components is facilitated in the development process by the adoption of precise description interfaces and by implementation integration facilities made by proper composition mechanism.
The research project performed in our laboratory emphasis on four main activities, which are: system modelling, system implementation, system verification and validation and development of supporting tools. The objective of the project is the integration of research results in these activities into a common framework, which is here the CO-OPN language (Concurrent Object Oriented Petri Nets).
Structuring is the key notion of system partitioning destined to manage the complexity of real systems. Object-orientation is now a well accepted principle, based on encapsulation and abstraction principles, that can be used for the clear and natural separation of system components as well as the classification of such components. We are working on new concepts of object orientation, such as observational subtyping, that we introduced in the CO-OPN specification language. We are also interested in the development of particular semantics reducing the complexity of the process of property verification.
The main principle exploited as implementation technique is the incremental prototyping method which consists of using hierarchies of classes for the progressive realization of an implementation. Abstract classes are used to describe the automatically generated codes based on the operational semantics of the specification language. The abstract semantics of CO-OPN introduce high-level synchronization concepts: We will introduce a new equivalent operational semantics, which will be based on multilevel nested transactions. This principle is a new operational paradigm, different from classical message passing models, and which is very powerful at the modelling stage.
The use of a well defined refinement process, allowed by our formal model, is a way to the improvement of reliability of the systems under development. The refinement process must automatically integrate incremental inclusion of correct implementations, which is the purpose of evolutionary prototyping.
We are also developing formal testing methods in the context of the ESPRIT DeVa (Design for Validation) project. The principles consist of a theory, a methodology and a tool for the selection of tests from a CO-OPN specification and finally the execution of such tests on concurrent programs.
In order to support a part of the validation process, we propose a way of using the analysis phase of the Fusion Method developed by Hewlett-Packard as a first step in describing system requirements. Then, we give guidelines for the semi-automatic transformation of the Fusion specification document into a CO-OPN formal specification. Of course this approach does not allow the validation of all the system requirements and must be coupled with traditional validations activities.
For more information on CO-OPN, see http://lglwww.epfl.ch/~coopn
Didier Buchs - Swiss Federal Institute of Technology
Tel: +41 21 6932737