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.

134 Concepts for the Integration <strong>of</strong> <strong>Specification</strong> and Design<br />

a part <strong>of</strong> the problem domain, and have a name. This name should correspond to a real<br />

world entity, a conceptual notion, or an artefact. Notice that only objects really model<br />

behaviour. The behaviour <strong>of</strong> clusters is composed by its objects. The notion Domain<br />

boundary makes us aware <strong>of</strong> a responsibility to improve comprehensibility by giving<br />

adequate names to clusters. Complex technical products may contain many entities that<br />

cannot be recognised as real world entities. They are artefacts. Good names for artefacts<br />

can come from metaphors that represent conceptual solutions.<br />

The widest domain boundary is the system boundary. This boundary defines the border<br />

between what is in the system and what is outside. A complex design project may require<br />

a separation <strong>of</strong> a system into subsystems that are developed relatively independent. A<br />

team responsible for the development <strong>of</strong> such a subsystem will consider its subsystem<br />

boundary to be a system boundary.<br />

Domain boundaries are represented as objects or clusters in Object Instance Models.<br />

The name <strong>of</strong> an object or cluster must represent a domain entity. A system boundary is<br />

represented as a cluster. The objects and clusters that represent entities outside a system<br />

boundary are represented as terminators, see also 4.10. The clear distinction between the<br />

graphical symbols for terminators and clusters shows the system boundary at a glance.<br />

5.8.2.2 Abstraction boundary<br />

An abstraction boundary is an enclosure with a hiding or encapsulation property. Objects,<br />

aggregates, and strongly distributed clusters are concrete examples <strong>of</strong> abstraction<br />

boundaries. They limit the inward visibility. Only clusters that do <strong>of</strong>fer one <strong>of</strong> these<br />

forms <strong>of</strong> hiding are qualified as abstraction boundaries. Objects are abstraction boundaries<br />

implicitly. Therefore there is no need to denote them as abstraction boundaries.<br />

Clusters can be specified to be abstraction boundaries. Such a specification prescribes<br />

hiding, and a corresponding style <strong>of</strong> internal behaviour description. An abstraction<br />

boundary is represented by a cluster. Graphically, they must be labelled with the abbreviation<br />

AGGR and/or HIDE. AGGR denotes that the cluster is hiding an aggregate (see<br />

Figure 5.9). HIDE, denotes full hiding <strong>of</strong> all internal object names for external objects,<br />

making the cluster part <strong>of</strong> a strongly distributed structure (see Figure 5.10). The class<br />

definition heading must be extended by a comment after the cluster class name. This<br />

comment has one <strong>of</strong> the following forms:<br />

’Cluster type: Aggregate’<br />

’Cluster type: Strongly Distributed’<br />

’Cluster type: Aggregate, Strongly Distributed’<br />

5.8.2.3 Implementation Boundary<br />

An implementation boundary is an enclosure <strong>of</strong> a subsystem that establishes the implementation<br />

technology that will be used for the realisation <strong>of</strong> that subsystem. <strong>Hardware</strong>/s<strong>of</strong>tware<br />

partitioning, prescription <strong>of</strong> layering, or prescription <strong>of</strong> implementation

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

Saved successfully!

Ooh no, something went wrong!