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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

11.4 Essential <strong>Specification</strong> Modelling 363<br />

requesters. Another issue is the use <strong>of</strong> identifiers for the destination <strong>of</strong> messages.<br />

Sharing a channel usually requires that objects can be identified. The communication is<br />

in general weakly distributed. So channel design decisions can immediately influence<br />

the style <strong>of</strong> the behaviour description <strong>of</strong> a system.<br />

11.4.7.2 Channel Names<br />

ISDs show instances that are connected by channels that must be named. The instances<br />

are instantiated from classes that have message interfaces. A message interface defines<br />

the inner channel names <strong>of</strong> an entity. The channels that connect instances must be named<br />

with so-called outer channel names. These outer names can be modified by applying<br />

one or more behaviour-preserving transformations (see Chapter 10).<br />

Like object names, channel names should in principle be given readable names according<br />

to the problem domain. In practice however, this can only be done for a minority <strong>of</strong><br />

the channels in a complex system. In general it is possible to give expressive names to<br />

channels that clearly play a role in the system architecture. The same holds for lower<br />

level shared channels that clearly have a role in structuring the system.<br />

The majority <strong>of</strong> channels in a complex system is not subject <strong>of</strong> explicit design. After<br />

all, the communication <strong>of</strong> process objects is always modelled by using channels, even if<br />

there is no physical need for channels. A part <strong>of</strong> the channels corresponds to a structure<br />

that we can derive almost automatically from message flows between pairs <strong>of</strong> process<br />

objects. In some cases it is possible to keep the inner and outer names identical when a<br />

pair <strong>of</strong> instances is designed with an appropriate message interface.<br />

In general, it does not make sense to attempt to find expressive names for ’automatically’<br />

derived channels. In general, it is rather difficult to find expressive names because<br />

there are many channels like these. In future tools we expect to <strong>of</strong>fer automatic name<br />

generation. For the time being we recommend an approach that is illustrated in Figure<br />

11.18. Most channel names are composed <strong>of</strong> four characters. These characters correspond<br />

to the capitals <strong>of</strong> the words that are used to compose the name <strong>of</strong> the classes <strong>of</strong><br />

the instances at both sides <strong>of</strong> a pair-wise channel. In general, some creativity will be<br />

necessary to create a unique name for each channel.<br />

11.4.7.3 Modelling Cluster Properties<br />

Instances are visualised in ISDs and in Message Flow Diagrams. Both diagrams <strong>of</strong>fer<br />

the possibility to annotate clusters with subsystem properties in the form <strong>of</strong> boundaries.<br />

Examples are distribution boundaries, concurrency boundaries, abstraction boundaries<br />

and implementation boundaries. Both diagrams <strong>of</strong>fer this information consistently. The<br />

creation <strong>of</strong> these boundaries is a design activity that can be performed best in ISDs. After<br />

all, ISDs give a more abstract image and are meant to be used for structure formalisation.<br />

Message Flow Diagrams can be cluttered by numerous flows. ISDs give a more clear<br />

overview because they contain less information.

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

Saved successfully!

Ooh no, something went wrong!