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.

4.4 Data Objects and Process Objects 67<br />

This problem is not studied in this thesis and requires further research.<br />

4.3.4.5 Inheritance Anomaly<br />

Another problem for the introduction <strong>of</strong> implementation inheritance is the so called<br />

inheritance anomaly. The inheritance anomaly is a conflict between inheritance and<br />

concurrency. This problem is described by S. Matsuoka and A. Yonezawa [MY93], and is<br />

recognised as a serious problem for combing inheritance and concurrency. The problem<br />

raises with the inheritance <strong>of</strong> synchronisation constraints in concurrent object-oriented<br />

languages. Synchronisation constraints are used to control the acceptance <strong>of</strong> messages.<br />

Concurrent objects typically need such power because they operate concurrently in<br />

contrast to objects in a sequential language that operate alternately. We <strong>of</strong>fer concurrency.<br />

Further research is necessary for a balanced addition <strong>of</strong> implementation inheritance to<br />

concurrency.<br />

4.3.5 Class or Object<br />

Another design decision for a method is whether a class is an object or a separate<br />

phenomenon. We decided to define classes as a separate concept. Therefore we have<br />

no problem with respect to encapsulation. An object encapsulates its contents after<br />

instantiation. A class is used as a template for instantiation, which lets its objects share<br />

their behaviour specification. In contrast, a class that is an object must again be an<br />

instance <strong>of</strong> some class. This latter class is a class <strong>of</strong> classes, a so-called metaclass. For<br />

example, Smalltalk [GR89] incorporates this conceptual approach. If a class is really an<br />

object, its contents should be encapsulated. Its contents can only be obtained via the<br />

message interface. However, a class must have greater rights than objects in accessing<br />

attributes (internal variables). The conflict with encapsulation is described by Wegner<br />

in [Weg90]. When attributes are completely encapsulated there is no sharing possible<br />

between objects. This is orthogonal to the decision to share (inherit) the attributes <strong>of</strong> a<br />

direct superclass.<br />

4.4 Data Objects and Process Objects<br />

4.4.1 Introduction<br />

A very introductory description <strong>of</strong> objects has been presented in Section 4.2. For a good<br />

understanding <strong>of</strong> objects we have to cover many aspects and properties. The many<br />

conceptual choices made in the construction <strong>of</strong> object-oriented languages and methods<br />

determine the precise meaning <strong>of</strong> objects in such a language or method. In depth study<br />

reveals that there are almost as many different concepts <strong>of</strong> object as there are languages<br />

and methods.<br />

We choose to define two sorts <strong>of</strong> objects in our method: Data objects and Process objects.<br />

These sorts have a different semantics and purpose.

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

Saved successfully!

Ooh no, something went wrong!