07.01.2013 Views

Lecture Notes in Computer Science 3472

Lecture Notes in Computer Science 3472

Lecture Notes in Computer Science 3472

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

284 Alexander Pretschner and Jan Philipps<br />

In the literature, there are many examples of abstractions—and the necessary<br />

<strong>in</strong>sertion of <strong>in</strong>formation by means of driver components—for model-based test<strong>in</strong>g<br />

[PP04]. These are also discussed <strong>in</strong> Chap. 15.<br />

This variant of simplification reflects one perspective on model-based development<br />

activities. Models are seen as a means to actually get rid of details<br />

deemed irrelevant. As mentioned above, no macro expansion mechanism can<br />

automatically <strong>in</strong>sert them, simply because the <strong>in</strong>formation is given nowhere.<br />

Miss<strong>in</strong>g <strong>in</strong>formation can, <strong>in</strong> the context of stepwise ref<strong>in</strong>ement, for <strong>in</strong>stance, be<br />

<strong>in</strong>serted by a human when this is considered necessary.<br />

10.2.2 Encapsulation of Details<br />

Details of a system (or of parts a system) can be also be referenced. Complexity<br />

is reduced by regard<strong>in</strong>g the references, and not the content they stand for. This<br />

second k<strong>in</strong>d of abstraction lets model<strong>in</strong>g languages appear as the natural extension<br />

of programm<strong>in</strong>g languages (note that we are talk<strong>in</strong>g about behavior models<br />

only). The underly<strong>in</strong>g idea is to f<strong>in</strong>d ways to encapsulate details by means of<br />

libraries or language constructs.<br />

Encapsulat<strong>in</strong>g the assembly of stack frames <strong>in</strong>to function calls is an example,<br />

encapsulat<strong>in</strong>g a certa<strong>in</strong> k<strong>in</strong>d of error handl<strong>in</strong>g <strong>in</strong>to exceptions is another.<br />

The Sw<strong>in</strong>g library provides abstractions for GUI constructs, and successes of<br />

CORBA and the J2EE architectures are, among many other th<strong>in</strong>gs, due to the<br />

underly<strong>in</strong>g encapsulation of access to communication <strong>in</strong>frastructures. The MDA<br />

takes these ideas even further. Leav<strong>in</strong>g the doma<strong>in</strong> of programm<strong>in</strong>g languages,<br />

this phenomenon can also be seen <strong>in</strong> the ISO/OSI communication stack where<br />

one layer relies on the services of a lower layer. The different layers of operat<strong>in</strong>g<br />

systems are a further prom<strong>in</strong>ent example.<br />

What is common about these approaches is that basically, macro expansion<br />

is carried out at compile or run time. In the respective contexts, the <strong>in</strong>volved<br />

<strong>in</strong>formation loss is considered to be irrelevant. These macros are not only useful,<br />

but they also restrict programmers’ possibilities: stack frame assembly, for<br />

<strong>in</strong>stance, can <strong>in</strong> general not be altered. Similarly, some model<strong>in</strong>g languages disallow<br />

arbitrary communications between components (via variables) when explicit<br />

connectors are specified. The good news is that while expressiveness—<strong>in</strong> a given<br />

doma<strong>in</strong>—is restricted, the languages become, at least <strong>in</strong> theory, amenable to<br />

automatic analysis simply because of this restriction.<br />

Of course, the two po<strong>in</strong>ts of view on model-based development activities are<br />

not orthogonal. There is no problem with us<strong>in</strong>g a model<strong>in</strong>g language <strong>in</strong> order to<br />

very abstractly specify arbitrary systems. In the context of test<strong>in</strong>g, the decision<br />

of which po<strong>in</strong>t of view to adopt is of utter importance. When models of the pure<br />

latter k<strong>in</strong>d are taken <strong>in</strong>to consideration, then they are likely to be specified at<br />

the same level of abstraction as the system that is to be tested. We then run <strong>in</strong>to<br />

the above mentioned problem of hav<strong>in</strong>g to validate a model that is as complex<br />

as the system under test.

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

Saved successfully!

Ooh no, something went wrong!