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.

24 On <strong>Specification</strong> <strong>of</strong> <strong>Reactive</strong> <strong>Hardware</strong>/S<strong>of</strong>tware <strong>Systems</strong><br />

Information exchange between process objects and clusters must<br />

be based on message passing.<br />

<strong>Reactive</strong> Behaviour<br />

Processes in reactive systems, have to exhibit very complex communication behaviour.<br />

They exchange messages in various ways: synchronous, asynchronous, continuous and<br />

interrupt-driven. Further, they can direct a message towards a specific other process,<br />

which they know by name. They can also put a message onto a channel, without<br />

knowing the explicit name <strong>of</strong> the destination processes. Process objects must be able to<br />

perform all these forms <strong>of</strong> communication behaviour.<br />

Process objects must be able to perform various forms <strong>of</strong> complex<br />

communication behaviour.<br />

Data Objects<br />

Processes in reactive systems are able to perform complex manipulations on their private<br />

data. Because private data can have complex structures <strong>of</strong> their own, they should be<br />

represented by objects too. We will call these objects data objects. Data objects can be<br />

exchanged as parameters <strong>of</strong> messages between processes. To make data objects reusable,<br />

they have to be organised into classes.<br />

Private data <strong>of</strong> process objects must be represented by data objects.<br />

Data objects must be grouped into classes.<br />

A Comparison with Statemate<br />

Statemate [H 90] is a well-known method for the modelling <strong>of</strong> complex reactive systems.<br />

Statemate is consistent with many ideas <strong>of</strong> (real-time) structured analysis and structured<br />

design methods [WM85, HP88]. These methods typically incorporate data flow models<br />

and state machine models. Both [WM85] and [HP88], however, use conventional<br />

finite-state machines and do not <strong>of</strong>fer appropriate machine interaction primitives. Conventional<br />

state diagrams are inappropriate for complex behaviour descriptions since<br />

they suffer from being flat and unstructured, are inherently sequential in nature and<br />

give rise to an exponential blow-up in the number <strong>of</strong> states [H 90]. These problems are<br />

overcome in Statemate by incorporating the Statechart formalism [Har87]. Statecharts<br />

extends conventional machines by <strong>of</strong>fering decomposition <strong>of</strong> states, and broadcast communication.<br />

A major disadvantage <strong>of</strong> Statemate is that it lacks good support to define<br />

object-like entities. Modularisation in Statemate is achieved mainly through data-flow<br />

transformations, called activities. Activities do not provide any strong form <strong>of</strong> encapsulation.<br />

Concurrency in Statecharts is based on the synchrony hypothesis [BG85]<br />

implying that all concurrent components <strong>of</strong> a system proceed in lock-step mode. In<br />

addition, state machines communicate by data-less broadcast signals, by using shared<br />

variables and by monitoring each others states. These forms <strong>of</strong> concurrency and communication<br />

conflict with the requirement <strong>of</strong> objects to be independent weakly coupled<br />

entities running at their own speed.

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

Saved successfully!

Ooh no, something went wrong!