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.

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

6.1 Introduction<br />

The model <strong>of</strong> a complex reactive system consists <strong>of</strong> many collaborating objects that<br />

send and receive messages. In Chapter 4 we described the concepts for the static<br />

modelling <strong>of</strong> a problem domain. We defined concepts such as data objects, process<br />

objects, clusters, attributes, methods, identity, and various sorts <strong>of</strong> composites. First<br />

they enable the traditional modelling <strong>of</strong> a problem domain as related data classes and<br />

process classes. Second they enable modelling <strong>of</strong> a system as a structure <strong>of</strong> channels,<br />

processes and clusters. The modelling <strong>of</strong> structure is supported by additional concepts<br />

such as modules, views, various sorts <strong>of</strong> boundaries and transformations (defined in<br />

Chapter 5). This all covers the specification <strong>of</strong> objects and their interaction structure.<br />

The most difficult part <strong>of</strong> system analysis is the modelling <strong>of</strong> dynamic behaviour. The<br />

temporal order <strong>of</strong> events in the system and in the system environment determines this<br />

behaviour. In this chapter we present concepts for the modelling <strong>of</strong> dynamic behaviour.<br />

Various forms <strong>of</strong> concurrency, communication, distribution are described. To handle<br />

complexity we introduce scenarios. Besides the informal and incomplete description<br />

<strong>of</strong> behaviour in scenarios we present the formal statements to describe the behaviour<br />

<strong>of</strong> data objects, process objects, clusters and systems. This chapter ends with a brief<br />

overview <strong>of</strong> our current research to the extension <strong>of</strong> SHE with real-time concepts.<br />

6.2 Concurrency and Synchronisation<br />

6.2.1 Introduction<br />

A specification method requires a natural and adequate concurrency concept. Concurrency<br />

must be defined such that two goals can be reached. Firstly, the concept <strong>of</strong><br />

concurrency must have the intuitive meaning <strong>of</strong> parallelism so that a model <strong>of</strong> a system<br />

can be interpreted in a natural way. The meaning <strong>of</strong> a specification model must be<br />

such that it can be understood easily by various (non) experts. Second the concept <strong>of</strong><br />

concurrency must be implementable in hardware as well as in s<strong>of</strong>tware.<br />

Concurrency in general, and especially in object-oriented languages, is still a subject for<br />

research. In this section we introduce concepts for the modelling <strong>of</strong> concurrent systems<br />

such as asynchronous concurrency, synchronous concurrency, interleaving semantics,<br />

synchronisation for communication and non-determinism. (These subjects are strongly<br />

related to the modelling <strong>of</strong> dynamic behaviour, see also Section 6.6.2.)<br />

6.2.2 Concurrency<br />

6.2.2.1 Concurrent Process Objects and Sequential Data Objects<br />

We introduced objects and clusters as concepts that enable modularisation <strong>of</strong> a problem<br />

domain. We repeat the definitions <strong>of</strong> process data objects and clusters briefly. These<br />

concepts were defined in Chapter 4 using the notion <strong>of</strong> concurrency without defining<br />

what concurrency really means.

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

Saved successfully!

Ooh no, something went wrong!