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.

5.4 Essential Model and Extended Model 125<br />

The phases divide the specification process in a sequence <strong>of</strong> two steps in time. In each<br />

phase two models are developed simultaneously:<br />

Essential Behaviour Model and Architecture Structure Model;<br />

Extended Behaviour Model and Implementation Structure Model.<br />

Simultaneous modelling is visualised by the two headed arrows in Figure 5.4.<br />

The separation into four models determines the activity framework <strong>of</strong> the new method.<br />

Behaviour modelling consists <strong>of</strong> two pieces. Firstly essential behaviour and secondly<br />

additional behaviour that is needed because <strong>of</strong> implementation decisions. Additional<br />

behaviour leads to an extended behaviour. This separation can be explained by a short<br />

excursion to method heuristics.<br />

Ward and Mellor [WM85] give some guidelines in the context <strong>of</strong> redevelopment versus<br />

new development. An essential model must be derived from the existing design, in case<br />

<strong>of</strong> redevelopment. An example <strong>of</strong> a heuristic for redevelopment is ’ignore implementation<br />

technology verification’. This means: Try to find the essential behaviour in the existing<br />

implementation. Remove behaviour that improves the imperfections <strong>of</strong> the implementation<br />

technology. After all, the new implementation may have completely different properties.<br />

We interpreted this heuristic for redevelopment as very important for new development.<br />

We need apparently two separate phases. A first modelling phase where the essential<br />

behaviour is defined and a second phase where behaviour that comes with concrete<br />

implementation decisions is added.<br />

Notice that the separation into phases is different from the sequential approach in Figure<br />

5.3. In both phases <strong>of</strong> development the behaviour model must be created in parallel with<br />

the structure <strong>of</strong> the implementation. Essential behaviour modelling is performed parallel<br />

with essential implementation modelling. The essential implementation model defines<br />

implementation decisions on a high level <strong>of</strong> abstraction and determines corresponding<br />

structuring and modularity <strong>of</strong> the system. This defines a view <strong>of</strong> the system that reveals<br />

structure, which influences the modularity <strong>of</strong> the system. This view is therefore called an<br />

architecture structure. Consequently this high level model is called Architecture Structure<br />

Model. Lower level, more detailed implementation structure decisions are defined in the<br />

so-called Implementation Structure Model.<br />

The precise difference between essential specification and extended specification depends<br />

on the system to be designed. Large complex systems tend to have more levels<br />

<strong>of</strong> abstraction than smaller systems. Therefore there may be different interpretations <strong>of</strong><br />

what is essence and what is extension, and also what architecture modelling is and what<br />

implementation modelling is.<br />

An essential behaviour model defines ’what’ communication happens. It abstracts from<br />

’how’ communication between modules is performed. Behaviour, that defines how<br />

communication is realised, is added in an extended model. An example <strong>of</strong> additional<br />

behaviour is the extension with communication protocols. A simple message in the

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

Saved successfully!

Ooh no, something went wrong!