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.

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

C. Object C returns object B as result. So the expression is evaluated now to simply:<br />

B ¡ B<br />

This means that message == B is sent to B. In this message == is the message name,<br />

which corresponds to an operation in the receiver. The message name is followed by<br />

parameter B. So, B is requested to check via its primitive method == whether parameter<br />

B is a reference to himself. The result is an object <strong>of</strong> class boolean, in this case the object<br />

true.<br />

Besides the equality symbol ’==’ there is a symbol ’=’. The usual meaning is that it<br />

is an equivalence operation. This operation does not have any predefined semantics. It<br />

depends on a class definition what it means. We recommend to use it for an equivalence<br />

operation, and to define a boolean result for it. This matches the intuitive notion that A<br />

= B results in true if A and B have a particular resemblance <strong>of</strong> properties.<br />

4.4.2.6 Deep copy<br />

The main purpose <strong>of</strong> data objects is to model dynamic entities, that are transformed in<br />

the system and transported through the system. A complex (data) structure is usually<br />

represented by a complex structure <strong>of</strong> data objects that are linked together by references.<br />

There is usually one data object that represents the structure, and that is the entry point<br />

for messages to the structure. When passing such an object, it must be determined what<br />

passing means. This can mean passing the individual object or the complete structure<br />

that is connected to the object by its references. In order to distinguish these situations<br />

we use the concepts <strong>of</strong> ’shallow copy’, and <strong>of</strong> ’deep copy’. A shallow copy copies only<br />

the representative object (top level object). Objects that are linked to this object by<br />

references are not copied. A deep copy creates a copy <strong>of</strong> a complete structure which is the<br />

representative object, and all objects (indirectly) linked to it. This concept will appear to<br />

be important for the understanding <strong>of</strong> the concept <strong>of</strong> travelling objects see 4.4.5.<br />

4.4.3 Process Objects<br />

4.4.3.1 Definition<br />

Data objects <strong>of</strong>fer computational power and dynamic properties comparable with other<br />

sequential object-oriented languages. Process objects <strong>of</strong>fer the power to express concurrent<br />

independent system parts connected in a static structure. Process objects solely<br />

communicate via channels. They are connected in a static interconnect topology <strong>of</strong><br />

channels.<br />

Process objects are instantiated from Process Classes. Process Classes can be visualised<br />

in Object Class Diagrams, together with Data Classes. The symbol has been shown in<br />

Figure 4.2. The class sort field must be filled with the P <strong>of</strong> Process class.<br />

Behaviour <strong>of</strong> a process object is specified in its Class definition. Such a class definition<br />

is a formal behaviour description in the form <strong>of</strong> a POOSL Process Class. Process classes

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

Saved successfully!

Ooh no, something went wrong!