23.08.2013 Views

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

2.4 <strong>Specification</strong> Languages, Formality and Tools 21<br />

and Ada. Further SDL tools are available for checking some given dynamic properties<br />

<strong>of</strong> SDL specification, so (b) is partially supported. Estelle [D 89] has facilities (a),(b)<br />

(except for equivalence and preorder checking), (c) and (d). Translations to Pascal, ML<br />

and C are supported. The Statemate environment [H 90] supports (a),(c) and (d). It<br />

further checks for several dynamic properties such as reachability, non-determinism and<br />

deadlock. Translations into Ada and C are supported.<br />

These advantages do not exist in informal languages. Tools that support such languages<br />

are <strong>of</strong>ten sophisticated graphical editors. Beyond testing for syntactic consistency and<br />

completeness and producing various kinds <strong>of</strong> output reports, these tools give limited<br />

support [H<br />

90]. A few informal methods (for instance [Rob92, BW95, R<br />

91]) have<br />

restricted compilation or simulation capabilities. The informal method with the most<br />

extensive tool support is ROOM [SGW94]. This method supports (a), (c) as well as (d).<br />

This is no surprise since ROOM has a quite well defined semantics.<br />

A specification method for complex systems must support the<br />

development <strong>of</strong> advanced s<strong>of</strong>tware tools.<br />

The Use <strong>of</strong> Formal Techniques<br />

It is fair to say that the use <strong>of</strong> the formal description techniques in industry is exceptional.<br />

In our view there are two reasons for this problem. First <strong>of</strong> all, most formal<br />

techniques today focus on the creation <strong>of</strong> a single formal system model and pay little or<br />

no attention to the necessary informal views. We think that especially the early phases <strong>of</strong><br />

analysis and design are necessarily informal and should therefore be supported by appropriate<br />

informal languages. Secondly, because <strong>of</strong> their declarative, property-oriented<br />

[C<br />

86] character, formal description languages tend to be hard to understand. This<br />

especially holds for abstract data typing languages that are part <strong>of</strong> a number <strong>of</strong> current<br />

formal techniques (such as LOTOS and SDL). In practice designers have difficulties in<br />

describing systems in an imperative-free way [Nar87]. In our view formal specification<br />

languages should have an imperative character, to make them understandable and<br />

readable. Methods that satisfy this requirement are Statemate [H 90] and Estelle [D 89].<br />

To make a specification understandable and readable, a formal<br />

specification language should have an imperative nature.<br />

Overspecification<br />

In our view the difficulty to understand current formal languages is no inherent result<br />

<strong>of</strong> formality. Rather, it is caused by the strong avoidance <strong>of</strong> overspecification. One<br />

tries to describe what a system does without describing how it is done. We feel that<br />

the problem <strong>of</strong> overspecification is heavily overemphasised. We agree in principle that<br />

the possible implementations should not be restricted by a specification. The ability <strong>of</strong><br />

designers to find an optimum solution in the huge space <strong>of</strong> possible solutions should<br />

however not be overestimated. An imperative specification has an implementation bias,<br />

though it should be interpreted as an example implementation that may be replaced by

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

Saved successfully!

Ooh no, something went wrong!