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.

2.6 Activity Frameworks for <strong>Specification</strong> Development 29<br />

using different models. In the stepwise refinement approach described above the architectural<br />

view and the refined behavioural view are developed simultaneously, but they<br />

are represented by a single model. This yields the problem that the architectural view<br />

is not explicitly developed. It is the implicit result <strong>of</strong> behaviour decomposition. This is<br />

due to the classical confusion between implementation dependence and level <strong>of</strong> detail<br />

[WM85]. High level details <strong>of</strong> a system are regarded to belong to the requirements<br />

definition, whereas low level details are thought to belong to, and lead towards, the<br />

implementation.<br />

An activity framework must allow different modelling views as<br />

well as the unified model to be developed in a simultaneous, evolutionary<br />

fashion. To avoid confusion between different views,<br />

they must be explicitly represented.<br />

Determining System Behaviour<br />

The external behaviour <strong>of</strong> a reactive system is so complex that it is quite impossible<br />

to specify it or even understand it in its entirety. Behaviour partitioning by identifying<br />

autonomous objects (that each perform a cohesive part <strong>of</strong> it) makes complexity<br />

manageable. The LotoSphere method [Pir92] states that it is rather straightforward to<br />

derive a behaviour model, refraining from any internal structure, from the initial requirements.<br />

This may be true for simple telecommunication systems 9 , but it is certainly not<br />

the case for systems with complex observable behaviour. The observable behaviour <strong>of</strong><br />

complex systems is unknown in advance, but ’arises’ while designing the objects (and<br />

their behaviour) that constitute the system. Therefore it is important that the activity<br />

framework <strong>of</strong> a specification method allows the determination <strong>of</strong> observable behaviour<br />

by considering the internals <strong>of</strong> a system.<br />

An activity framework must allow the determination <strong>of</strong> observable<br />

behaviour by considering the internals <strong>of</strong> a system.<br />

Object Structure and Behaviour<br />

Most object-oriented specification methods do not suffer from the problems related to<br />

pure stepwise refinement. Exceptions are HOOD [Rob92] and HRT-HOOD [BW95],<br />

which use a top-down decomposition approach to find objects. Other methods [R<br />

CY91a, CY91b, SM88, Mor94, Boo91] start by creating conceptual views (<strong>of</strong>ten called<br />

object models). These views consist <strong>of</strong> classes <strong>of</strong> objects and the conceptual relations<br />

that exist between these classes. Classes are found by studying entities that exist in<br />

the real world. These entities can either be located inside or outside the system to<br />

develop. The Behaviour modelling is postponed until object models become stable.<br />

The reason that most object-oriented specification methods develop a conceptual view<br />

first, is that behaviour is expected to change frequently during the lifetime <strong>of</strong> a system.<br />

Object structures, on the other hand, are more stable in the long run [Boo86]. We<br />

agree with this point <strong>of</strong> view, but deny that object structures should therefore be found<br />

9 Sometimes these systems behave externally as simple buffers.<br />

91,

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

Saved successfully!

Ooh no, something went wrong!