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.

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

The concept <strong>of</strong> global state is helpful when we want to reason about the state <strong>of</strong> the<br />

system and must be aware <strong>of</strong> the variety <strong>of</strong> aspects that form the state, such as behaviour,<br />

variables and internal side effects. All notions <strong>of</strong> state we defined so far are helpful for<br />

informal communication about a system. However, none them grasps the complete<br />

complexity <strong>of</strong> state as defined in the formal semantics <strong>of</strong> POOSL. This notion <strong>of</strong> state is<br />

defined in the next paragraph.<br />

6.6.3.6 Execution State<br />

Besides the sorts <strong>of</strong> state we distinguished so far we need another sort that is related<br />

to the semantics <strong>of</strong> POOSL. Chapter 9 defines the transition system <strong>of</strong> the semantics<br />

<strong>of</strong> process objects. It determines the finest grain <strong>of</strong> transitions between global states,<br />

called configurations. On the level <strong>of</strong> the transition system we deal with recursive<br />

operations, and infinite behaviour. We define the execution state <strong>of</strong> a (sub-)system as the<br />

behaviour state together with the variables state and the local variables state. Execution<br />

state transitions are transitions between successive so-called configurations. Notice that<br />

the level <strong>of</strong> detail is so fine that local variables play their role too. The execution state<br />

space is in general not finite 8 .<br />

6.6.3.7 Summary <strong>of</strong> concepts <strong>of</strong> state<br />

Besides the formal notion <strong>of</strong> execution state we gave various definitions that enable to<br />

reason about a system’s state:<br />

behaviour state <strong>of</strong> a system: a mode <strong>of</strong> behaviour at some level <strong>of</strong> abstraction;<br />

behaviour state <strong>of</strong> an object: a mode <strong>of</strong> behaviour <strong>of</strong> an object;<br />

variables state <strong>of</strong> an object: Cartesian product <strong>of</strong> the value ranges <strong>of</strong> the variables<br />

<strong>of</strong> an object;<br />

global state: Cartesian product <strong>of</strong> the set <strong>of</strong> behaviour states and the value ranges<br />

<strong>of</strong> all variables.<br />

Named states are useful for discussions about a system and for test and verification<br />

purposes. Methods as well as variables can be used to achieve explicit naming <strong>of</strong><br />

states. Methods names can be chosen to denote modes <strong>of</strong> behaviour. We recommend to<br />

choose expressive names that reflect the meaning <strong>of</strong> a behaviour state. A variable can<br />

be used to store a named state. Other objects can ask for the state when appropriate<br />

corresponding accessors have been defined. Methods can update a state that is stored in<br />

a variable. This approach typically disconnects the direct correspondence between state<br />

and method. The execution <strong>of</strong> correlated methods that perform some named operation<br />

can be specified as the same state.<br />

8 See Section 9.6 where an example <strong>of</strong> a graph with a finite number <strong>of</strong> nodes appears to be an infinite<br />

transition graph.

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

Saved successfully!

Ooh no, something went wrong!