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.

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

ownership is not transitive.<br />

In general a process object owns its internal data objects. These data objects are not<br />

shared with other process objects. However an internal data object can be shared with<br />

another internal data object. In this case it is not owned by the process object, according<br />

to the definition.<br />

Data objects can own other data objects. A data object B is owned by data object A, if<br />

B is not shared and A depends on B. An example is that data object B is owned by data<br />

object A, if B is not shared and has subordinate temporal visibility to A. The result <strong>of</strong> this<br />

definition is that an owned data object works for the owner solely, and does not contract<br />

out work to the owner.<br />

A process object B is owned by process object A, if B is not shared and A depends on B.<br />

However, collaborating process objects are generally autonomous entities that are not<br />

owned. On the other hand aggregates in general own their parts. The condition for a<br />

part to be owned by the whole is that the part is peer independent (see Paragraph 4.8.3).<br />

4.8.8 Collaborations<br />

Composites are formed by collaborating objects. Various composites have various different<br />

properties. In this section about properties <strong>of</strong> composites we defined various<br />

concepts. As an illustration <strong>of</strong> the use <strong>of</strong> the various concepts for the description <strong>of</strong><br />

composites (subsystems) we show some examples.<br />

In general, a system model will show a mix <strong>of</strong> static and dynamic communication<br />

structures. Static structures are formed by autonomous concurrent processes and the<br />

channels between them. These processes may be surrounded by less autonomous<br />

processes that are collaborating in such a way that they perform tasks for the autonomous<br />

objects. They perform the role <strong>of</strong> servant. The autonomous objects have the role <strong>of</strong><br />

supervisor or controller. It is wise to cluster a supervisor with its servants, see Figure<br />

4.23. Clusters can form reusable subsystems. When the communication with other<br />

subsystems is performed by the supervisor only, the cluster is a clustered aggregate.<br />

Although there is no sense <strong>of</strong> whole-part, they are aggregated. It is rather an artificial<br />

and constructive composite. We will call it a supervised composite. Figure 4.24 shows<br />

two collaborating clustered supervised composites. These composites are aggregates.<br />

Cluster X contains an aggregate consisting <strong>of</strong> an aggregate object Supervisor 1, and parts<br />

Servant A and Servant B. Servant A is not shared. Servant B is shared by Supervisor 1 and<br />

Servant A, that both depend on Servant B. Servant B is shared within the aggregate but<br />

not with any entity outside the aggregate. Notice that Servant A is owned by Supervisor<br />

1.<br />

Servant A may be inseparable from Supervisor 1, if their lifetimes are specified to coincide.<br />

Servant A is a whole dominated object because it does not take initiative to send messages<br />

to the supervisor on its own. This is also indicated by the message with reply flow. This<br />

flow specifies that Servant A delivers a result only on a request <strong>of</strong> Supervisor 1.

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

Saved successfully!

Ooh no, something went wrong!