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.

5.8 Boundaries 139<br />

In Chapter 10 we introduce Behaviour Preserving Transformations. By mapping boundaries<br />

on clusters, these transformations can be used as basis for the formal restructuring<br />

<strong>of</strong> boundaries as well.<br />

In general the various forms <strong>of</strong> boundaries will coincide at various places in a model.<br />

Coinciding boundaries specify that corresponding properties coincide. This will impose<br />

more constraints on the internal behaviour description. Transformations on clusters that<br />

represent coinciding boundaries, require precise and independent consideration <strong>of</strong> the<br />

various properties. New clusters may be necessary to prevent intersection.<br />

5.8.3.3 Reuse<br />

The big advantage <strong>of</strong> an implementation-oriented description style as we propose here<br />

is the fast and easy path to implementation. A disadvantage however is that it hinders<br />

reuse <strong>of</strong> clusters and process objects.<br />

Abstraction boundaries that represent an aggregate will not cause problems. In general,<br />

being an aggregate is simply a property. There will be no conflict in reuse. Concurrency,<br />

distribution and implementation boundaries possibly prescribe a specific behaviour,<br />

that gives reuse problems. A cluster behaving internally sequential, can never be reused<br />

for a situation where internal concurrency is required. For various implementations it<br />

depends on the differences in style and the specific constraints on the use <strong>of</strong> POOSL<br />

whether the modules can be reused or not. In general, reuse can be improved by<br />

minimising the number <strong>of</strong> classes. We observed that classes with only one instance are<br />

not rare in the systems we aim at. In this case there is no reuse problem. However, reuse<br />

is interesting enough for future research.<br />

5.8.3.4 Black and Glass Boxes<br />

During analysis domain boundaries may be preliminary enclosures <strong>of</strong> subsystems that<br />

must still be refined. A domain boundary may become a cluster or an object. A domain<br />

boundary appears to be a concept for analysis <strong>of</strong> the problem domain or so-called<br />

domain <strong>of</strong> discourse. Finally domain boundaries dissolve in the model into clusters<br />

or objects. During our research we produced alternative names for the concept <strong>of</strong><br />

domain boundary. Illustrative, but rejected names were ’simple cluster’ and ’primitive<br />

cluster’. These names denote that clusters are in fact rather weak boundaries. There is<br />

a strong inward visibility. They do not encapsulate or hide their internal objects until<br />

their properties are restricted. An example <strong>of</strong> such a restriction is: define that a cluster<br />

represents an abstraction boundary. Such a cluster limits the inward visibility.<br />

Traditionally an abstraction <strong>of</strong> a module without inward visibility is called black box. A<br />

black box is a module that can be applied when the knowledge about the component is<br />

restricted to its external interface. Black boxes are also called ’plug-in components’. The<br />

black box model is useful until its reuse requires knowledge <strong>of</strong> its internal structure.<br />

In contrast to black boxes there are white boxes, also called more ’clearly’: glass boxes

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

Saved successfully!

Ooh no, something went wrong!