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.

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

a continuous flow represents that a receiver can take initiative at any time to receive<br />

a message;<br />

a buffered message represents that a sender can always send a message;<br />

an interrupt message represents an interruption <strong>of</strong> behaviour by temporal alternative<br />

behaviour, or an abortion by alternative behaviour.<br />

Traditional sequential object-oriented languages typically use ’request with waiting for<br />

reply’ messages. SHE enables concurrency and an event-oriented modelling. There has<br />

been a panel discussion about ’the heresy <strong>of</strong> event-orientation in the world <strong>of</strong> objects’<br />

on the OOPSLA conference in 1992. The goal <strong>of</strong> the discussion was to get a better<br />

understanding <strong>of</strong> the differences between the ’mainstream’ methods based on ’real<br />

world’ domain analysis, and the ’heretical’ perspective that focuses on behaviour. The<br />

behaviour approach recognises that objects may be built ’around events and transactional<br />

sequences that an application must handle’ [C<br />

92]. Notice that this is an important topic in<br />

our research. This topic is the balanced integration into object analysis <strong>of</strong> data-oriented<br />

application domain analysis and event-oriented functional analysis. This is achieved by<br />

the concept <strong>of</strong> process object with its typical uncoupling <strong>of</strong> methods and messages, and<br />

the addition <strong>of</strong> message flows that represent events, commands and interrupts. With this<br />

expressive power, concurrent process objects can typically play the role <strong>of</strong> controllers<br />

that are the backbone <strong>of</strong> complex reactive systems. Such systems can be modelled clearly<br />

by creation <strong>of</strong> a hierarchy <strong>of</strong> controllers, that handle the order <strong>of</strong> processing at various<br />

levels. On the highest levels controllers determine the global states <strong>of</strong> operation, also<br />

called working modes. At the lower levels, controllers determine the order <strong>of</strong> detailed<br />

actions necessary to perform detailed computation, processing and control tasks. By<br />

playing scenarios <strong>of</strong> interactions <strong>of</strong> objects we can find the order in which objects must<br />

handle actions and communications. The knowledge gained by playing scenarios (see<br />

Section 6.5) must be used to structure the internal behaviour <strong>of</strong> an object class. Such a<br />

behaviour description is structured as a collection <strong>of</strong> methods that sequentially call each<br />

other.<br />

4.16 Formalisation: Class Definitions and Types<br />

A class definition is a formal POOSL description <strong>of</strong> the behaviour <strong>of</strong> its objects. POOSL is<br />

an imperative language. Many alternative descriptions can be used to describe the same<br />

externally observable behaviour. An object class definition is a behaviour specification<br />

that is ’implemented’ using POOSL constructs. A class definition is an implementation<br />

that represents the behaviour <strong>of</strong> a type.<br />

This behaviour description can be used to discover and verify various properties <strong>of</strong><br />

a model. Notice however, that the real implementation <strong>of</strong> the system must follow the<br />

POOSL ’implementation’, which is only a specification. This requires a transformation <strong>of</strong><br />

a POOSL behaviour description into an implementation language such as C, C++ or into<br />

a hardware description. It all depends on the variety <strong>of</strong> implementation technologies<br />

for the various system parts. The ease <strong>of</strong> this transformation is an important issue.

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

Saved successfully!

Ooh no, something went wrong!