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.

160 Modelling <strong>of</strong> Concurrent <strong>Reactive</strong> Behaviour<br />

be sent at some moment in time from one process object to another. Channels between<br />

process objects are the vehicle for message transport. We do not show them in a Message<br />

Flow Diagram. When we need a message between two process objects we implicitly<br />

define the need for at least one channel between them. The channels are visualised<br />

in alternative graphical representation called Instance Structure Diagrams. They show<br />

channels, process objects and clusters. More details about diagrams and the heuristics<br />

to make them are described in Chapters 11 and 12.<br />

6.3.3.2 Messages and Methods<br />

Usually the concept <strong>of</strong> message is strongly related to the concepts <strong>of</strong> service or operation<br />

(implemented by a method). Many object-oriented analysis methods are based on<br />

concepts from object-oriented languages. Therefore the semantics <strong>of</strong> the reception <strong>of</strong> a<br />

message is usually that the execution <strong>of</strong> a method with the same name is started by the<br />

receiving object. We choose to implement this approach only for the data objects in SHE,<br />

see Paragraph 4.15.3.1.<br />

The choice for a strong relation between message and service is a design decision in<br />

the development <strong>of</strong> a specification method. For process objects we decided to separate<br />

these concepts. This has consequences for the semantics <strong>of</strong> both messages and methods<br />

(see Subsection 4.15.3 for details). The separation enables to make process objects more<br />

independent, and what is more important to let them continue their activities between<br />

subsequent sending <strong>of</strong> messages. Objects can decide whether or not, and when, they<br />

want to send or receive a message. Their internal behaviour may have a finer grain <strong>of</strong><br />

behaviour than classical methods have.<br />

By <strong>of</strong>fering asynchronous concurrency we allow behaviour <strong>of</strong> objects to take time independently<br />

<strong>of</strong> each other. Individual processes may perform complex and time consuming<br />

behaviour. Asynchronous concurrency enables a natural modelling <strong>of</strong> distributed<br />

systems. Distributed subsystems are relatively independent, and usually run asynchronously.<br />

6.3.3.3 Messages and Concurrency<br />

Data Objects in SHE are passive entities that can only be activated by a message. A<br />

sender waits until a receiving data object returns a result or a confirmation <strong>of</strong> ’message<br />

handled’. So the sender is active or the receiver is active, not both <strong>of</strong> them. Their<br />

composite behaviour is still sequential.<br />

Concurrent process objects can individually perform infinite behaviour and synchronise<br />

with each other when they exchange a message. In real-time concurrent systems<br />

messages may come during the execution <strong>of</strong> some behaviour. The consequence is that<br />

objects are not always prepared to listen to a request for communication. In real systems<br />

this is not always acceptable. Therefore we needed and introduced an interrupt and an<br />

abort primitive.

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

Saved successfully!

Ooh no, something went wrong!