Skip to main content

Program Development by Specification and Transformation

Objective

The objective of this project was to develop a strict methodology for program development by applying successive transformations to an initial requirement specification down to the final implementation. This allows the user to prove that the implementation meets the specification, and that the program is correct. A wide-spectrum language ranging from formal specifications to Ada programs was to be defined, with its semantics covering concurrency aspects. The use of Ada and Anna as a basis ensured a high portability of the methodology. In order to support it, a collection of tools was developed.
At each level of the methodology (from requirement specification to implementation) tools were generated according to a uniform paradigm; this includes a syntax-directed editor, a transformation and control language, a method bank (where rules and heuristics are stored) a library manager (where objects like developments and versions can be stored), and a verifier.
PROSPECTRA was closely associated with PROSPECTRA-D, project 835.
The PROSPECTRA system is designed to support program development by specification and transformation. Starting from formal (algebraic) specifications of system requirements, efficient implementations shall be constructed by transformation.
The system comprises:
a language oriented editor for Trafola, a transformation definition language;
a transformer generator for Trafola;
a language oriented editor for PAnndA-S, the PROSPECTRA Ada-Anna subset language (for writing specifications);
an interactive transformer for PAnndA-S programs;
a verifier for checking the applicability of transformations;
a library manager and a controller.

The objective of this project was to develop a strict methodology for program development by applying successive transformations to an initial requirement specification down to the final implementation. This allows the user to prove that the implementation meets the specification, and that the program is correct. A wide spectrum language ranging from formal specifications to Ada programs was defined, with its semantics covering concurrency aspects. In order to support it, a collection of tools was developed. At each level of the methodology (from requirement specification to implementation) tools were generated according to a uniform paradigm; this includes a syntax directed editor, a transformation and control language, a method bank (where rules and heuristics are stored) a library manager (where objects like developments and versions can be stored), and a verifier. Abstraction and development mechanisms are now better understood.
PROSPECTRA made significant progress in a number of areas:
-at the methodology level, where the abstraction and development mechanisms are now better understood
-at the transformation level, where considerable experience was gained by developing the OPTRAN System (a generator for batch-made transformers on attributed trees).
The semantics of PAnndA-s (Prospectra Ada/Anna), which is based on a two-valued logic, have also been stabilised, and scenarios were designed to investigate the applicability of the PROSPECTRA methodology to practical systems.
PROSPECTRA and PROSPECTRA-D produced a design support system which guides the user through the successive refinements by proposing a set of rules which ensure that correctness is preserved as the design process proceeds.
In addition to this, some work was also carried out on verification techniques, one outcome being the so-called CEC (Conditional Equational Completion) system, originally based on Knuth-Bendix completion techniques.
Experiments were carried out that resulted in PROSPECTRA's basic system architecture being based on the Cornell Synthesiser Generator, with the benefit of ensuring a high degree of homogeneity among the various tools developed.
Exploitation
The PROSPECTRA project made significant advances in the field of the "transformational" approach (most of the partners formerly contributed to the CIP project, which was a leader in that area), and has brought this closer to real industrial exploitation. To this end, a demonstrator project was coupled with PROSPECTRA (see project 835), and very tight links established between the academic and industrial partners.

Coordinator

UNIVERSITAET BREMEN
Address
Bibliothekstrasse 1
28334 Bremen
Germany

Participants (8)

ALCATEL STANDARD ELECTRICA SA
Spain
Address
Ramirez De Prado 5
28045 Madrid
CRI-COMPUTER RESOURCES INTL. A/S
Denmark
Address
Bregnerodvej 144
3460 Birkerod
SAARLAND UNIVERSITY
Germany
Address
Im Stadtwald
66123 Saarbruecken
SYSECA SA
France
Address
315 Bureaux De La Colline
92213 Saint-cloud
SYSTEAM KG
Germany
Address
Am Ruppurrer Schloss
7500 Karlsruhe
UNIVERSITÄT PASSAU
Germany
Address
Dr Hans-kapfinger-straße
94032 Passau
University of Strathclyde
United Kingdom
Address
Richmond Street 26
G1 1XH Glasgow
Universität Dortmund
Germany
Address
Emil-figge-straße 74
44221 Dortmund