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.

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

a bottom up approach as well as a top down approach. Clusters can form a composite<br />

<strong>of</strong> clusters and process objects (bottom up). They can also be used as abstractions <strong>of</strong><br />

some complex system part which must be refined into clusters and objects (top down).<br />

A system is usually composed <strong>of</strong> subsystems, which can be represented by clusters.<br />

Like multiple processes we <strong>of</strong>fer multiple clusters. The graphical notation is the same as<br />

for multiple processes (see Figure 4.13 and Figure 4.14).<br />

Only few current object-oriented methods have a support for clusters. The ROOA<br />

method [Mor94], for instance, supports clusters (called subsystems) to manage model<br />

complexity. Clusters in ROOA, however, are groupings <strong>of</strong> classes and not <strong>of</strong> instances.<br />

In our opinion, the clustering <strong>of</strong> classes is not sufficient for the modelling <strong>of</strong> complex<br />

systems. We share the viewpoint <strong>of</strong> de Champeaux [Cha91] who states that objectoriented<br />

analysis without an entity (instance) clustering technique is not a viable method<br />

for the characterisation <strong>of</strong> large systems. De Champeaux <strong>of</strong>fers ’ensembles’ to cluster<br />

collections <strong>of</strong> collaborating instances. Ensembles, however, differ from our clusters in<br />

the sense that they have behaviour <strong>of</strong> their own. The same holds for the clusters (called<br />

blocks) supported by SDL [BH93, Tur93], the clusters (called parent objects) supported<br />

by HOOD and HRT-HOOD [Rob92, BW95], and the clusters (called parent modules)<br />

supported by Estelle [D<br />

89, Tur93]. A disadvantage <strong>of</strong> clusters that have behaviour<br />

<strong>of</strong> their own, is that they do not allow flexible and easy manipulation (in the form <strong>of</strong><br />

behaviour-preserving transformations, see Chapter 10). Therefore we decided that our<br />

clusters do not have behaviour other than the combined behaviour <strong>of</strong> their internals.<br />

A specification method that supports a similar notion <strong>of</strong> clusters as we do is ROOM<br />

[SGW94].<br />

Notice that clusters may be quite opaque or even transparent structures. The structuring<br />

may be completely logical or just for clarity purposes, as a means to improve understanding<br />

by limiting the amount <strong>of</strong> information presented in one diagram. However,<br />

next to the purpose <strong>of</strong> reducing complexity, clusters have several other applications.<br />

They let us establish various design decisions. They can be used to formalise properties<br />

<strong>of</strong> system parts such as concurrency, implementation and distribution. This is discussed<br />

in depth in Chapter 5.<br />

4.6 Aggregates<br />

4.6.1 Definition<br />

We define an aggregate as a composite <strong>of</strong> a whole object with its part objects, where the<br />

whole hides the parts for all objects that collaborate with this composite. An aggregate<br />

can be clustered. Aggregate and cluster are orthogonal concepts that enable structuring<br />

a system model.<br />

Complex systems consist <strong>of</strong> many parts. A complex system is always structured as a<br />

composite <strong>of</strong> many parts or subsystems. In general, subsystems are again composites.

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

Saved successfully!

Ooh no, something went wrong!