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.

4.4 Data Objects and Process Objects 73<br />

have instance variables and methods that can formalise attributes and messages found<br />

during analysis. An important difference with data objects is that a pair <strong>of</strong> process objects<br />

can exchange messages without becoming passive. Process objects are autonomous<br />

concurrent entities. They can take initiative for sending messages with or without<br />

waiting for a reply. They can continuously perform rich and diverse behaviour. In<br />

contrast to data objects messages do not always lead to the same form <strong>of</strong> behaviour at<br />

any time. The behaviour <strong>of</strong> a process object strongly depends on the past. Behaviour<br />

can further be interrupted or aborted on reception <strong>of</strong> particular messages.<br />

4.4.3.2 Concurrency<br />

Process objects are concurrent entities. The internal behaviour <strong>of</strong> process objects is<br />

sequential. This is a method design decision. Concurrency can be described in terms<br />

<strong>of</strong> threads. (A thread is defined as ’a primitive executable processing element within a<br />

process.’ A thread consists <strong>of</strong> a locus <strong>of</strong> control and a stack which represents its ’state’<br />

and is initially empty[Weg87a]). A concurrent entity has an interface <strong>of</strong> executable<br />

operations or entry points, and one or more threads <strong>of</strong> control that may be active or<br />

suspended. There are three types <strong>of</strong> processes:<br />

Sequential process, with one thread <strong>of</strong> control.<br />

Quasi-concurrent process with at most one active thread <strong>of</strong> control.<br />

Concurrent process which may have multiple active threads <strong>of</strong> control.<br />

We choose to define the process object as the grain <strong>of</strong> concurrency. Internally they<br />

are sequential processes with one thread <strong>of</strong> control. A reason for this choice is that<br />

internally sequential objects are easier to reason about for human beings. Other reasons<br />

are described in Subsection 6.2.2.<br />

4.4.3.3 Instances<br />

Class name<br />

(Process<br />

identifier)<br />

Figure 4.9: Process Symbol for Object Instance Models<br />

The visualisation <strong>of</strong> structure is one <strong>of</strong> the main issues in this thesis. Therefore we must<br />

give it a balanced role during analysis. Object Class Diagrams do not show how many<br />

instances are drawn from a class. They do not show who communicates with who. We<br />

decided to give object instance modelling a major role for systems analysis. We define<br />

two sorts <strong>of</strong> diagrams that together form an Object Instance Model <strong>of</strong> a system. Process

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

Saved successfully!

Ooh no, something went wrong!