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.

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

In our modelling approach, there are no entities other than objects that can hold a state.<br />

State names such as normal operation mode, test mode, and maintenance mode are<br />

names that describe behaviour on a system level. The only place to implement explicit<br />

named states is the object. Subsection 6.6.4 describes how method names can be used as<br />

state names in process objects. A process object can be used as a controller on the system<br />

level. Such an object can implement named system states. Without such an approach<br />

a system state is determined only by the joined state <strong>of</strong> the collaborating objects in the<br />

system. The number <strong>of</strong> these states is huge in practice. It is <strong>of</strong>ten impractical to name<br />

them explicitly.<br />

Despite this problem the named behaviour state approach is very useful and feasible<br />

when its use is restricted to:<br />

collaborating objects that are synchronised such that they together perform a form<br />

<strong>of</strong> behaviour that can be named. For instance, objects can perform concurrently a<br />

system initialisation. The system as a whole as well as individual objects can then<br />

be defined to be in the state initialising.<br />

individual objects. The behaviour <strong>of</strong> objects can be described in a style that allows<br />

clear distinction between different forms <strong>of</strong> behaviour that can be interpreted as<br />

states.<br />

The latter style is also useful for objects with a controller function. Such an object guards<br />

and controls other objects. Its state is connected to the responsibility to enable the<br />

appropriately named behaviour.<br />

6.6.3.4 Variables State<br />

The concept <strong>of</strong> behaviour state as we have proposed in the previous paragraphs is not<br />

the common notion <strong>of</strong> state in the object-oriented world. The state <strong>of</strong> an object is usually<br />

defined on values <strong>of</strong> its attributes. The number <strong>of</strong> states <strong>of</strong> an object is the Cartesian<br />

product <strong>of</strong> the value ranges <strong>of</strong> all its variables. This implies that the number <strong>of</strong> states<br />

explodes quickly even for a limited set <strong>of</strong> variables.<br />

This notion <strong>of</strong> state is not a useful concept for analysis purposes. Such a state is theoretical<br />

and cannot be given a name or used as communication item among people. When we<br />

need to refer to this theoretical notion <strong>of</strong> state we call it the object variables state or briefly<br />

variables state.<br />

We can overcome a variable-state explosion by restricting the variables state to a ’variables<br />

partial state’. One or more variables may be explicitly defined to determine an<br />

object’s variables partial state. This way <strong>of</strong> modelling enables a practical definition <strong>of</strong><br />

states and related services (accessors) for inquiring about an object’s state.<br />

We add behaviour state as a complementary concept to variables state. Although variables<br />

state is the common object-oriented interpretation <strong>of</strong> state, this concept does not match

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

Saved successfully!

Ooh no, something went wrong!