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.

6.3 Communication 159<br />

or to transform a data item (perform an operation). It can also be a command or simply<br />

the reporting <strong>of</strong> an event. In this case it may be that no answer is expected. The message<br />

can be interpreted as a request for the object to change its state.<br />

A message name should clearly tell what the request to an object means. In general,<br />

it is recommended to create message names such that their meaning has the notion <strong>of</strong><br />

a request to an object to perform some activity. The search for all necessary messages<br />

is perhaps the most time consuming activity during system analysis. Every time a<br />

new message is found the behaviour (operations) <strong>of</strong>fered by existing objects (exported<br />

services) may have to be extended or new objects may have to be defined.<br />

We consider the early search for communication as an important means for finding objects<br />

and their functions (operations). Here we differ strongly from traditional methods<br />

such as OMT [R 91], OOA/OOD [CY91a, CY91b]. First they explicitly advise to postpone<br />

the search for operations. They advise to seek for the objects first. They do not pay<br />

very much attention to finding operations in the analysis phase. They focus on object<br />

classes and their relations. Classes without explicit instances cannot visualise scenarios<br />

<strong>of</strong> functional behaviour and communication. In traditional methods we experienced<br />

that their non-functional class approach is less effective for reactive systems.<br />

We recommend to focus on communication. In practice the analysis <strong>of</strong> communication<br />

between objects leads to the need to process messages. Messages can only be processed<br />

if an object <strong>of</strong>fers the appropriate services (functions). So new messages can lead to a<br />

need for new services. Consequently this leads to the question if such new services can<br />

be fitted between services that an existing object class already <strong>of</strong>fers. A negative answer<br />

leads to the creation <strong>of</strong> a new class and/or to the redesign <strong>of</strong> existing classes.<br />

Symbols and primitives expressing and showing message flows are crucial in SHE because<br />

<strong>of</strong> the focus on communication. The visualisation <strong>of</strong> process objects and their<br />

communication flows is perhaps the most important activity during system analysis.<br />

Message Flow Diagrams show collaborating process objects. They are a graphical representation<br />

<strong>of</strong> process objects (instances) and the messages between them. Message Flow<br />

Diagrams are used extensively as a communication tool towards all persons that must<br />

be involved in the specification process. So there is really a need that the representation<br />

fits to the intuition <strong>of</strong> a variety <strong>of</strong> users, experts, and technicians. This enables teamwork<br />

which is the only way to completeness <strong>of</strong> a specification. Diagrams must be clear, speak<br />

for themselves and hide enough detail to focus on discussions <strong>of</strong> particular aspects <strong>of</strong> a<br />

specification.<br />

Message Flow Diagrams abstract from data objects. Data objects have rather dynamic<br />

features. This makes it rather impractical to visualise the interconnections between<br />

instances in a static graphical representation.<br />

We will describe the forms <strong>of</strong> communication available for data objects as well as for<br />

process objects in this section. We <strong>of</strong>fer a set <strong>of</strong> primitives to express messages that<br />

can be commands, requests, interrupts, etcetera. Flows represent messages that may

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

Saved successfully!

Ooh no, something went wrong!