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.

88 Abstraction <strong>of</strong> a Problem Domain<br />

need to coalesce these objects into one object that represents the one and only identity<br />

that has been modelled. Besides operations for testing object identity (such as ==, see<br />

4.4.2) one can imagine a coalescing operation to support this. This subject is outside the<br />

scope <strong>of</strong> this thesis.<br />

4.7.3 Identification <strong>of</strong> Process Objects and Clusters<br />

Process objects are easily recognised as identities in an instance model <strong>of</strong> a system. Since<br />

they are visualised in diagrams as statically connected communicating instances, they<br />

clearly exist. However there is a need for identifiers for several reasons. An important<br />

one is to enable easy communication with users and reviewers. Objects need to have<br />

unique names to enable this. Besides that, identifiers are <strong>of</strong>ten needed to describe<br />

communication related behaviour. For instance a message to a channel with many<br />

receiving objects connected to it may require a unique destination. Identifiers can be<br />

used to specify their destination.<br />

Process objects do not have predefined identifiers. Identifiers are specified as properties<br />

(attributes) <strong>of</strong> process objects. This leaves designers a complete freedom in defining<br />

name spaces, at an appropriate grain, possibly related to subsystems (clusters) . For example<br />

complex distributed systems require a careful design <strong>of</strong> name spaces, translation<br />

<strong>of</strong> names at ports, etcetera.<br />

The use <strong>of</strong> identifiers in the description <strong>of</strong> the communication between objects is one<br />

<strong>of</strong> the modelling options. Process objects can also communicate simply by sending<br />

messages to channels. In this case these objects communicate in a strongly distributed<br />

fashion. If process objects use identifiers for their collaboration they communicate in a<br />

weakly distributed fashion. The notions <strong>of</strong> strong and weak distribution are described in<br />

detail in Section 6.3.<br />

Clusters cannot be identified like objects. To reason about their presence and role in the<br />

system, however, clusters need to be identified during analysis. Object identifiers are<br />

used to determine the destination for a communication action. Clusters, on the other<br />

hand, cannot be given an identifier. So clusters cannot be used as named destinations.<br />

Clusters can be named in the form <strong>of</strong> comment only, without any formal status.<br />

The reason that clusters are not uniformly handled as objects has a specific reason. SHE<br />

is designed to support behaviour-preserving structure transformations. These transformations<br />

allow the modification <strong>of</strong> the structure <strong>of</strong> a specification without changing its<br />

behaviour. The transformation <strong>of</strong> structure is performed by introducing, removing and<br />

modifying channels and clusters. In Chapter 10 a rich collection <strong>of</strong> behaviour-preserving<br />

transformations is developed. Together, these transformations make that a specification<br />

can be reshaped to satisfy almost any desired structure. This transformational power is<br />

largely due to our design decision that a cluster does not have behaviour or attributes<br />

other than the combined behaviour and attributes <strong>of</strong> its internals. So a cluster does<br />

not have any behaviour or attributes <strong>of</strong> its own. Therefore clusters cannot have any<br />

behaviour for the recognition and acceptation <strong>of</strong> messages that are specifically meant

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

Saved successfully!

Ooh no, something went wrong!