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.

4.8 Properties <strong>of</strong> Composites 89<br />

for them. Hence, a cluster is not a behaviour identity that can be given an identifier in<br />

the form <strong>of</strong> an attribute.<br />

Nevertheless, if we would like to model behaviour that is private to a cluster we could<br />

do so by introducing a new process object representing the cluster as a whole. This<br />

process can be given an identifier. In this case it does not harm to consider the identifier<br />

<strong>of</strong> an aggregate object to be the identifier <strong>of</strong> the cluster too. A typical example where<br />

such an approach can be used is a clustered aggregate. The identifier <strong>of</strong> the aggregate<br />

object can be considered to be the identifier <strong>of</strong> the cluster. The cluster hides the internal<br />

objects except for the aggregate object.<br />

4.7.4 Identification <strong>of</strong> Data Objects<br />

Data objects tend to have a rather dynamic life with changing connections to other<br />

objects. Communication with a data object can be performed only by objects that<br />

have a reference to it. The value <strong>of</strong> such a reference is a unique identifier <strong>of</strong> a data<br />

object. Data objects have implicit identifiers. These identifiers are hidden. They are not<br />

named explicitly such as identifiers <strong>of</strong> process objects, that are chosen during analysis<br />

as free unique readable names. Identifiers <strong>of</strong> data objects are automatically generated<br />

as unique numbers. These identifiers do not have to be unique on the global level <strong>of</strong><br />

a system specification. Process objects are the units that determine the name space <strong>of</strong><br />

data objects. Different process objects may contain data objects with the same identifier.<br />

However, these identifiers must uniquely identify the data objects in each process object.<br />

Data objects can form complex structures that may travel from process to process (see<br />

Subsection 4.4.5). Travelling data objects are handed over between process objects by<br />

making a deep copy at the receiver side. Therefore new unique identifiers are required<br />

at the receiver side.<br />

In contrast to process objects data objects are not visualised in instance diagrams during<br />

analysis. The classes <strong>of</strong> data objects, however, are visualised in an Object Class Model.<br />

Identifiers can be modelled as attributes <strong>of</strong> classes in Object Class Models. Since data<br />

objects have implicit identifiers, they are in general not shown in Object Class Models.<br />

The identifiers <strong>of</strong> process objects on the other hand are shown, but this is only done if<br />

processes communicate in a weakly distributed fashion. Processes that communicate in<br />

a strongly distributed fashion do not need identifiers.<br />

4.8 Properties <strong>of</strong> Composites<br />

4.8.1 Introduction<br />

A complex system consists <strong>of</strong> many collaborating objects. Handling complexity requires<br />

that we can reason about them and recognise various forms <strong>of</strong> composites. This can<br />

only be done when we are able to distinguish various forms <strong>of</strong> composites. We already

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

Saved successfully!

Ooh no, something went wrong!