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.

3.5 Combining Compatible Concepts 37<br />

possibilities for using each individual concept. There is a big difference between the<br />

level <strong>of</strong> understanding needed to practice design, and the level <strong>of</strong> understanding that is<br />

required to build a new method.<br />

3.5 Combining Compatible Concepts<br />

There are numerous ways to design a method by selecting and combining concepts.<br />

Some concepts can be added to a method independently, others are mutually dependent,<br />

or can even be conflicting. An additional complication is that <strong>of</strong> context dependent<br />

interpretation and semantics <strong>of</strong> concepts. This makes the design <strong>of</strong> a method very<br />

complicated. Starting with a set <strong>of</strong> requirements, it is hard to determine beforehand<br />

what combinations <strong>of</strong> concepts can fulfil these requirements. In practice a method or<br />

a language, once designed, cannot be understood in all its properties, features and<br />

drawbacks.<br />

A method must be efficient and easy to learn and use. Therefore it should contain<br />

as few concepts as possible. In practice however there is a need for various different<br />

representations and views which tend to bring in more concepts. A method must be rich<br />

enough to express these various views. To obtain richness while maintaining simplicity,<br />

a method should <strong>of</strong>fer a framework <strong>of</strong> compatible concepts, that are reused consistently<br />

within the various views.<br />

Concepts that conflict are called incompatible. Wegner [Weg87, Weg90] studied compatibility<br />

<strong>of</strong> concepts by comparing languages with respect to their concepts and properties.<br />

Some concepts can be combined freely, while others are related and cannot be used<br />

independently. Concepts that can be combined independently are defined to be orthogonal.<br />

To show that a collection <strong>of</strong> language dimensions is orthogonal, Wegner uses an<br />

existential pro<strong>of</strong> technique. A collection <strong>of</strong> dimensions is proven to be orthogonal if,<br />

for every subset, there is a language that possesses those dimensions and no dimensions<br />

in the complementary subset. The contribution <strong>of</strong> Wegner is that he relates the<br />

orthogonal dimensions to the non-orthogonal ones in real programming languages. It<br />

is an attempt to examine design trade-<strong>of</strong>fs and interrelations between languages that<br />

can be identified as interesting points in the design space <strong>of</strong> object-oriented languages.<br />

[Weg87] is a limited description <strong>of</strong> six orthogonal dimensions <strong>of</strong> object-oriented design:<br />

objects, types, delegation, abstraction, concurrency and persistence. [Weg90] is a more<br />

extensive description <strong>of</strong> object-oriented language concepts and paradigms.<br />

The art <strong>of</strong> designing a method is to combine concepts and features that can co-exist<br />

in such a way that the resulting method is consistent. In our work we therefore focus<br />

on establishing a consistent unity <strong>of</strong> compatible concepts, rather than on studying the<br />

orthogonality <strong>of</strong> concepts. We believe that proving orthogonality <strong>of</strong> concepts can only<br />

be established by comparing formal methods or formal languages 1 . Most current analysis<br />

and design methods are composed out <strong>of</strong> informal concepts only. Studying the<br />

1 In fact we think that Wegner’s technique for ’proving’ orthogonality should be strengthened. The<br />

existence <strong>of</strong> a language without a formal semantics cannot prove orthogonality.

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

Saved successfully!

Ooh no, something went wrong!