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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

primitives. Informal languages allow a certain degree <strong>of</strong> freedom in the use <strong>of</strong> the<br />

different model primitives. These languages allow designers to easily reason about<br />

the different (<strong>of</strong>ten vague) problem domain concepts without being hindered by all<br />

kinds <strong>of</strong> strict semantic rules. Informal languages further simplify the (necessary)<br />

communication between problem domain experts, <strong>of</strong> the same field or <strong>of</strong> different fields<br />

<strong>of</strong> expertise. Therefore informal models form an important, even indispensable, part <strong>of</strong><br />

any complex specification.<br />

Complex system development requires the use <strong>of</strong> informal models.<br />

Formal Models for Precision<br />

A specification should be precise and verifiable [IEE84]. These requirements are not met<br />

when specifications consist <strong>of</strong> informal models alone. The imprecision <strong>of</strong> informal models<br />

allows context sensitive and discipline sensitive interpretations. Different designers<br />

can interpret the same model in different ways. Inconsistent interpretations will lead to<br />

incompatible subsystems, resulting in high costs for changes. Next to precise, a specification<br />

should be verifiable. This means that one should be able to answer the question: ’Am<br />

I building the system correctly?’. During the process <strong>of</strong> specification, verification boils<br />

down to the checking <strong>of</strong> consistency between models 1 . A special form <strong>of</strong> verification 2 is<br />

validation. Validation answers the question, ’Am I building the correct system?’. During<br />

validation it is checked whether a model satisfies the requirements and suffices for its<br />

purpose. The checking <strong>of</strong> consistency between models is terribly complicated if these<br />

models are informal. First <strong>of</strong> all it is hard, if even possible, to define and to interpret<br />

the notion <strong>of</strong> consistency in the first place. Secondly, consistency checking <strong>of</strong> complex<br />

models becomes unmanageable without the availability <strong>of</strong> advanced s<strong>of</strong>tware tools. The<br />

development <strong>of</strong> such tools requires a considerable degree <strong>of</strong> formality.<br />

Complex system development requires the use <strong>of</strong> formal models.<br />

Informal Views and Formal Unified Models<br />

We conclude that specifications may not consist <strong>of</strong> informal models alone. If a method<br />

does not support the creation <strong>of</strong> a unified model, the informal models should be accompanied<br />

by formal counterparts as much as possible. A method that reasonably satisfies<br />

this requirement is Statemate [H<br />

90]. This method produces three separate views that<br />

are expressed in readable, graphical languages. These views are state-transition views,<br />

functional views and structural views. Within the Statemate method, state-transition<br />

views are the most important. These are expressed in the well-known formalism called<br />

Statecharts [Har87]. A rigorous semantics <strong>of</strong> Statecharts was first defined in [H 87].<br />

1 The term verification is <strong>of</strong>ten used to refer to the check <strong>of</strong> whether a model satisfies (or conforms<br />

to) another model derived in a previous design phase (see also Section 2.6). Satisfiability checking and<br />

conformance checking are in fact a form <strong>of</strong> consistency checking.<br />

2 Note that since in our opinion, a requirements document is a model too, validation can be considered<br />

a form <strong>of</strong> consistency checking.

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

Saved successfully!

Ooh no, something went wrong!