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.

204 Modelling <strong>of</strong> Concurrent <strong>Reactive</strong> Behaviour<br />

ROOM, SDL and Estelle is at the level <strong>of</strong> process objects. LOTOS supports concurrent<br />

processes. LOTOS processes are pieces <strong>of</strong> behaviour, but they are not objects that perform<br />

this behaviour. Nevertheless, objects can be modelled by processes. This is exploited in<br />

the ROOA method [Mor94].<br />

We <strong>of</strong>fer data objects that can model data appropriately. Except for ROOM, none <strong>of</strong> the<br />

methods supports data objects. LOTOS and SDL use abstract data types and Estelle uses<br />

Pascal types for the modelling <strong>of</strong> data. Abstract data type descriptions are elegant from<br />

a mathematical point <strong>of</strong> view, but are difficult to comprehend for non-experts. Pascal is<br />

a procedural language and has no sufficient support for data modularisation.<br />

SHE and POOSL <strong>of</strong>fer adequate concepts for the description <strong>of</strong> complex dynamic behaviour<br />

<strong>of</strong> distributed systems. We incorporate the design <strong>of</strong> structure using encapsulating<br />

entities, with communication forms that respect encapsulation. The next subsections<br />

describe various aspects <strong>of</strong> the modelling <strong>of</strong> dynamic behaviour.<br />

6.6.3 State<br />

In this subsection we describe a number <strong>of</strong> interpretations <strong>of</strong> concepts <strong>of</strong> state and their<br />

use in our method. Our method can describe very complex parallel systems with an<br />

infinite state space. For this we do not use the traditional finite state machine modelling<br />

that is incorporated in most methods. The concept <strong>of</strong> state is however very important<br />

for reasoning about behaviour. Especially named states can be <strong>of</strong> great help for analysis,<br />

behaviour description, simulation, test and maintenance <strong>of</strong> a system.<br />

6.6.3.1 Behaviour State<br />

A behaviour state <strong>of</strong> a system can be determined and named if the behaviour <strong>of</strong> a system<br />

can be partitioned. The state depends on which pieces <strong>of</strong> behaviour are active (concurrently).<br />

Partitioning determines the size <strong>of</strong> the grain <strong>of</strong> behaviour. If a partitioning can<br />

be performed hierarchically behaviour states can be decomposed into finer behaviour<br />

states. In this way one can create various levels <strong>of</strong> complexity <strong>of</strong> behaviour states, from<br />

global working modes to detailed execution steps.<br />

Performing a behaviour state is modelled by the execution <strong>of</strong> the statements that specify<br />

a corresponding piece <strong>of</strong> behaviour. A state takes a time period in which the statements<br />

belonging to this state are performed. The finest grain <strong>of</strong> behaviour in a specification is<br />

the atomic statement. An atomic statement contrasts a compound statement, which is<br />

composed <strong>of</strong> atomic and/or compound statements. Although the notion <strong>of</strong> state may<br />

seem to be a simple concept it is not. Therefore we elaborate on various aspects and<br />

interpretations <strong>of</strong> state.<br />

We must interpret our definition <strong>of</strong> behaviour state for complete systems modelled as<br />

collaborating objects. A system can consist <strong>of</strong> numerous objects, each performing some<br />

form <strong>of</strong> behaviour. Process objects have asynchronous concurrency. Such a collection<br />

<strong>of</strong> collaborating concurrent objects gives an unmanageable number <strong>of</strong> system states,

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

Saved successfully!

Ooh no, something went wrong!