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.

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

modules. This is a binding mechanism for binding modules together. (There should be fewer<br />

links between modules (external bindings) than within modules (internal bindings)).’ [R 91].<br />

This class-oriented approach is not very appropriate for hardware/s<strong>of</strong>tware systems.<br />

We define modules as architectural blocks, which are instances bound in an architecture<br />

structure or topology. We relate views directly to scenarios, in contrast to a grouping <strong>of</strong><br />

classes.<br />

More appropriate and more <strong>of</strong>ten referred to is Jacobson’s [J 92] approach to scenarios<br />

which he entitles as use cases in OOSE. Jacobson entitles terminators as actors, and<br />

defines a user as ’an actual person who uses the system. An actor represents a certain role that<br />

a user can play.’ Actors are regarded as a class and users as instances <strong>of</strong> this class. ’These<br />

instances exist only when the user does something to the system. The same person can thus<br />

appear as instances <strong>of</strong> several different actors’ [J 92]. This concept <strong>of</strong> user is very interesting,<br />

because it emphasises the completely different roles that persons can play.<br />

Before we elaborate on use cases we have to make some remarks about names and<br />

definitions. In OOSE we find examples <strong>of</strong> undesirable redefinitions <strong>of</strong> common notions,<br />

in this case user and actor. In our point <strong>of</strong> view a user is a person that is using a system<br />

which was designed for his needs. So for instance a maintenance engineer, or a test<br />

engineer is not a user. An operator is a person that has a monitoring and control task<br />

which is performed by interaction with a system. Users, operators and engineers are<br />

examples <strong>of</strong> persons that play different roles. The same person may possibly play various<br />

roles at different times. We recommend to distinguish between the various types <strong>of</strong> users<br />

as separate objects or terminators and name them according to their precise role. We<br />

define an actor as an object or terminator that models a device that transforms a message<br />

to a (physical) effect for the environment <strong>of</strong> a (sub)system. This is the common notion,<br />

which is <strong>of</strong>ten mentioned in connection with sensors. Sensors and actors are respectively<br />

input and output devices <strong>of</strong> a system. We think that it is extremely important to let the<br />

meanings <strong>of</strong> concepts coincide with the meaning in common spoken language as good<br />

as possible. After all, specification is all about communication between people.<br />

Based on his view <strong>of</strong> user, Jacobson defines a use case as follows. ’An instance <strong>of</strong> an actor<br />

carries out a number <strong>of</strong> different operations on the system. When a user uses the system, she or<br />

he will perform a behaviourally related sequence <strong>of</strong> transactions in a dialogue with the system.<br />

We call such a special sequence a use case. Each use case is a specific way <strong>of</strong> using the system and<br />

every execution <strong>of</strong> the use case may be viewed as an instance <strong>of</strong> the use case. A basic course is the<br />

most important course <strong>of</strong> events, alternative courses are variants on the basic course. Extensions<br />

relate use cases. They specify how use case descriptions may be inserted into others’ [J<br />

Jacobson describes the use <strong>of</strong> use cases throughout the system development process and<br />

describes very useful heuristics and guidelines that go together with our scenarios very<br />

well.<br />

The main difference between use cases and our scenarios is that use cases are rather<br />

human-interface-oriented and context-level-oriented. A context level is the very abstract<br />

specification level, where the system is considered as a whole. Use cases are narrative<br />

behaviour descriptions. So the system behaviour is described on context level as a<br />

92].

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

Saved successfully!

Ooh no, something went wrong!