26.09.2013 Views

Transformation of Applicative Specifications into Imperative ...

Transformation of Applicative Specifications into Imperative ...

Transformation of Applicative Specifications into Imperative ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CHAPTER 1. INTRODUCTION<br />

This stepwise development uses the invent-and-verify approach, meaning<br />

that in each step a new specification is invented. It is verified that this new<br />

specification is a correct development <strong>of</strong> the previous specification in the<br />

sense that the new specification conforms to the previous specification.<br />

The RAISE Method suggest a certain order <strong>of</strong> development, which is<br />

illustrated in Figure 1.1.<br />

<strong>Applicative</strong><br />

<strong>Imperative</strong><br />

Concurrent<br />

Abstract<br />

Algebraic<br />

Concrete<br />

Model oriented<br />

S1 2 S<br />

S2 '<br />

S3<br />

Figure 1.1: Development process using the RAISE Method.<br />

When the initial specification containing the requirements <strong>of</strong> the system<br />

is made, an abstract applicative specification S1 is developed, possibly using<br />

several steps. An abstract applicative specification contains abstract types<br />

such as sorts. Signatures and axioms are preferred over explicit function<br />

definitions.<br />

When the abstract applicative specification S1 is made, a concrete applicative<br />

specification S2 is developed. In a concrete applicative specification<br />

concrete types such as maps are used and explicit function definitions are<br />

preferred. In order to verify that the development step from S1 to S2 is<br />

correct, a development relation is formulated asserting that the concrete<br />

applicative specification implements the abstract applicative specification:<br />

S2 S1. Justification <strong>of</strong> this relation shows that the development step is<br />

correct.<br />

Then a concrete imperative specification S3 is developed. In a concrete<br />

imperative specification variables are defined and explicit function definitions<br />

are used. The verification <strong>of</strong> this development step is done either informally<br />

or formally. If the informally verification method is used, it is checked<br />

whether the method for the transition described in [Hax99, p. 17] is followed<br />

correctly. If the formal verification method is used, the imperative axioms<br />

corresponding to the applicative axioms for the abstract applicative specification<br />

are formulated and justified for the concrete imperative specification.<br />

A development relation cannot be formulated for this step.<br />

2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!