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.

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

¢ ¥ Bspec1 Bspec2 Bspec§ Bspec<br />

L and f specify the parallel composition <strong>of</strong> processes<br />

and/or clusters, hiding and renaming. The meaning <strong>of</strong> these composition specifications<br />

is analogous to the composition specifications <strong>of</strong> clusters.<br />

6.6.8 Object Collaboration and Behaviour Styles<br />

In Section 4.8 about properties <strong>of</strong> composites we showed aspects <strong>of</strong> object collaboration.<br />

The properties were defined in an abstract way. In the preceding part <strong>of</strong> this chapter<br />

we defined the possibilities for the description <strong>of</strong> dynamic behaviour. This enables<br />

to revisit various concepts related to composites from the point <strong>of</strong> view <strong>of</strong> behaviour<br />

description and communication. It appears that various sorts <strong>of</strong> collaboration and<br />

various design decisions lead to the description <strong>of</strong> the behaviour <strong>of</strong> objects in particular<br />

styles. Identifying sorts <strong>of</strong> styles is an interesting issue for future research. In this<br />

subsection we describe some examples <strong>of</strong> the mutual influence that communication,<br />

behaviour and system structure have on each other.<br />

6.6.8.1 Black Boxes and Glass Boxes<br />

The promise <strong>of</strong> reuse did not come true with the object-oriented paradigm. It was<br />

recognised that classes are not reusable without additional effort. Approaches such as<br />

frameworks [Joh94] focus on making groups <strong>of</strong> collaborating objects reusable as a whole.<br />

In general subsystems are not black boxes that you can reuse. The concept <strong>of</strong> black box is<br />

used for a module that can be used properly based on a description <strong>of</strong> the interface with<br />

the environment. In general the modules inside a black box need some adjustments<br />

when the black box is used in a new application. Glass boxes or white boxes are modules<br />

designed for reuse. They allow us to inspect their internal structure and behaviour.<br />

Clusters <strong>of</strong>fer hiding <strong>of</strong> internal structure and behaviour. Aggregates hide their parts.<br />

Strongly distributed modules have autistic communication and enable to construct black<br />

boxes. Processes in the environment can communicate by sending and receiving messages<br />

without knowledge <strong>of</strong> the internal objects <strong>of</strong> the module.<br />

6.6.8.2 Collaborating Data Objects<br />

Data objects have sequential behaviour. Collaborating data objects are waiting for each<br />

other. The communication is always in the form <strong>of</strong> a message with reply and waiting.<br />

Data objects can form very dynamic structures by passing references to each other. A<br />

model which contains only data objects can in principle model a s<strong>of</strong>tware system. Data<br />

objects are however contained in process objects. Process objects use data objects locally<br />

and transfer data objects with messages. Data objects that are transferred from one<br />

process to another have been defined as travelling objects.<br />

The behaviour <strong>of</strong> processes can be interrupted or aborted. Notice that the behaviour <strong>of</strong><br />

data objects cannot be interrupted. Data objects and process objects have different sets<br />

<strong>of</strong> statements. The statements defined for data objects can be used as process statements

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

Saved successfully!

Ooh no, something went wrong!