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.

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

boundary. Figure 4.22 shows channels x and y that connect the aggregate to the cluster,<br />

and subsequently connect the cluster to objects outside the cluster. The cluster hides<br />

channels r, s, and t. These channels cannot be connected to objects outside the cluster.<br />

An aggregate is not necessarily abstracted into a cluster. In case it is, we call it a ’clustered<br />

aggregate’. In this way we can distinguish them from the plain clusters which group<br />

a collection <strong>of</strong> autonomous process objects that are all free to have channels to objects<br />

outside the cluster.<br />

So far we presented the concept <strong>of</strong> aggregate, and related its application to the cluster<br />

concept. The semantics <strong>of</strong> aggregation may seem to be clear. However, a more in depth<br />

study shows that there is a lot <strong>of</strong> confusion about aggregation. There is no agreement<br />

on what an aggregate is and what properties they have. Therefore we elaborate on this<br />

subject.<br />

4.6.5 Aggregate Semantics<br />

4.6.5.1 Aggregate and Composite<br />

In Subsection 4.6.1, we defined an aggregate as a composite <strong>of</strong> a whole object with its<br />

part objects, where the whole hides the parts for all objects that collaborate with this<br />

composite. We call objects that have a whole-part relationship a composite. According to<br />

our definition an aggregate is a special kind <strong>of</strong> composite. Our definition <strong>of</strong> aggregate<br />

is relative narrow when compared to other methods such as [R<br />

91, CY91a]. We require<br />

hiding, where others allow for instance sharing <strong>of</strong> parts objects among aggregates.<br />

Sharing is only one example <strong>of</strong> the wide variety <strong>of</strong> aspects that determines the precise<br />

meaning <strong>of</strong> the concept <strong>of</strong> aggregate. Various authors add various aspects to the meaning<br />

<strong>of</strong> ’aggregates’. Comparison <strong>of</strong> their work leads to a broader understanding <strong>of</strong> the<br />

concept, but also shows that there is some confusion.<br />

4.6.5.2 Various Sorts and Interpretations<br />

To start with, there are various slightly different conceptual notions, that are described<br />

as ’aggregates’ (notice that when we refer to others we <strong>of</strong>ten write aggregate in this<br />

paragraph, when we mean the more general concept <strong>of</strong> composite). From the whole’s<br />

perspective a composite or aggregate can be described as a has a or ’consists <strong>of</strong>’ relation,<br />

and from the parts perspective as a ’component <strong>of</strong>’, or part <strong>of</strong> relation. Besides wholepart<br />

relations, various other relationships between classes are used to denote results<br />

<strong>of</strong> problem domain analysis. Relationships between classes may indicate that there<br />

is possibly communication between instances <strong>of</strong> the classes. Communication implies<br />

collaboration. Collaborating instances form composites. A composite can <strong>of</strong>ten be<br />

interpreted as a whole composed from parts. So it seems as if not only explicitly found<br />

whole-part relations lead to aggregates. In an Object Instance Model, the majority<br />

<strong>of</strong> objects seems to be involved in whole-part relations. There are various forms <strong>of</strong><br />

composites and hierarchical clustering that do all lead to whole-part relations between<br />

objects.

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

Saved successfully!

Ooh no, something went wrong!