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.

11.4 Essential <strong>Specification</strong> Modelling 355<br />

Product_<br />

Input_<br />

Handler<br />

Transporter_<br />

Image<br />

schedule<br />

(PIKeeperId,<br />

InitialPosition)<br />

Service_<br />

Scheduler<br />

wakeAt(Position,Id)/<br />

wakeup(Id)<br />

serviceRequired<br />

(PIKeeperId,<br />

Service)/<br />

required,<br />

notRequired<br />

Product_<br />

Info_<br />

Keeper<br />

feed(PIKeeperId,InitialPosition)<br />

giveStatus/<br />

notMounted,<br />

mounted(Service)<br />

Feeding_Unit_<br />

Image<br />

mounted, feed<br />

notMounted<br />

misFed,<br />

doubleFed<br />

Feeding_<br />

Unit<br />

servicePerformed<br />

(PIKeeperId,Service)<br />

feedReady<br />

(ProductInfoKeeperId,<br />

Service)<br />

Service_<br />

Administrator<br />

Figure 11.13: Feeder Station: Feeding Scenario<br />

Feeder_Station<br />

Feeder_Controller<br />

corresponding operations. Required operations are briefly formulated in a scenario<br />

narrative. Usually there are alternative ways to allocate operations to objects. The<br />

allocation <strong>of</strong> operations is directly related to the modelling <strong>of</strong> message flows that<br />

enter and leave an object in coherence with one or more corresponding operations.<br />

Carefully allocated operations make objects more reusable entities. They perform<br />

what you naturally expect them to do.<br />

Message flows are added to MFDs by playing the role <strong>of</strong> an object in our imagination.<br />

This means reasoning about possible orders <strong>of</strong> events (incoming messages)<br />

and required responses internally and externally in the form <strong>of</strong> outgoing messages.<br />

This is done in the context <strong>of</strong> scenarios initially. However to be able to explore a<br />

more complete behaviour <strong>of</strong> a class this must be done by creating scenario assemblies.<br />

Finally we must define behaviour as a formal POOSL description for each<br />

class. For the description <strong>of</strong> a class all instances must be considered carefully.<br />

Adding a message to MFDs requires careful selection <strong>of</strong><br />

a message name, corresponding to the vocabulary <strong>of</strong> the problem domain, and<br />

suitable for polymorphic interpretation;

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

Saved successfully!

Ooh no, something went wrong!