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.

48 Concepts for Analysis, <strong>Specification</strong> and Design<br />

storeProductInfo, scheduleServices and waitTilNextProductArrivalIsSafe.<br />

Within the method loopForever, four methods (acceptProduct, storeProductInfo, scheduleServices<br />

and waitTilNextProductArrivalIsSafe) are successively called. Subsequently<br />

the method loopForever is called. Hence the method loopForever ends with<br />

a call to itself. In this way infinite (non-terminating) behaviour is specified.<br />

The acceptProduct method starts with the waiting for an accept message with parameter<br />

productInfo to arrive on channel i. The waiting for a message to arrive<br />

is indicated by the question mark. An exclamation mark denotes that a process<br />

wants to send a message. The simultaneous availability <strong>of</strong> a corresponding send<br />

and receive statement in a pair <strong>of</strong> processes at the ends <strong>of</strong> a channel leads to synchronous<br />

message passing. Since the currentPosition(Position) flow in Figure 3.9<br />

is continuous, the Transporter Image is willing to send the currentPosition(Position)<br />

message at any instant in time. Hence the Product Input Handler never has to<br />

wait if it executes the piti?currentPosition(initialPosition) statement. In this way<br />

continuous flows are modelled.<br />

Within the storeProductInfo method local method variable id <strong>of</strong> class PIKeeperId is<br />

declared between bars ( ). PIKeeperId is a class <strong>of</strong> data objects.<br />

Finally, in method waitTilNextProductArrivalIsSafe, the statement wake?wakeup(id<br />

id = myId) is specified. The expression id = myId behind the bar ( ) is a reception<br />

condition indicating that the process is only willing to receive this message if the<br />

expression evaluates to true.<br />

The language POOSL has a formal semantics. This means that the behaviour to be executed<br />

is defined unambiguously. Our specification method also incorporates behaviour<br />

preserving transformations. These transformations enable structure modifications that are<br />

proven correct. They allow a channel structure to be redesigned according to constraints<br />

and design decisions that evolve during the modelling process. These transformations<br />

also enable easy maintenance <strong>of</strong> the POOSL model. Architecture and implementation<br />

structure design decisions can be incorporated into the model easily.<br />

3.6.6 Representations and Method Framework<br />

An analysis and design method must <strong>of</strong>fer a framework in which various modelling<br />

activities take place. Various consistent forms <strong>of</strong> representations should have well<br />

defined relations. A framework gives guidance to a designer. Figure 3.11 shows the<br />

SHE method in the context <strong>of</strong> product design. The framework <strong>of</strong> SHE must enable<br />

all activities to create a specification, largely in the form <strong>of</strong> a system model, that can<br />

form a bridge between product idea and actual design and implementation. Before<br />

we show a picture <strong>of</strong> the framework <strong>of</strong> SHE, we present an overview <strong>of</strong> the various<br />

forms <strong>of</strong> representations that are used in the framework. Figure 3.12 gives a simplified<br />

overview <strong>of</strong> the sorts <strong>of</strong> representations in SHE. The method yields graphical and textual<br />

results which are visualised as the two main blocks. Graphical models are divided into<br />

Object Models and Structure Models. The Object Models are the Object Class Model<br />

that visualises relations between classes and the Object Instance Model that visualises

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

Saved successfully!

Ooh no, something went wrong!