31.01.2014 Views

Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...

Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...

Ph.D. - geht es zur Homepage der Informatik des Fachbereiches 3 ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

4.2. GOPPRR C++ Abstract Syntax Model<br />

GOPPRR Concrete Syntax Meta Model Similar to the original GOPRR concrete syntax<br />

d<strong>es</strong>cription formalism [56], also a GOPRR meta model was created for the new GOPPRR<br />

concrete syntax formalism. Hence, a concrete syntax in GOPPRR can also be modelled in<br />

MetaEdit+ as instance of this meta model. The concrete syntax of this GOPPRR concrete<br />

syntax meta model is not explicitly documented here, but it is located in Section B.6 together<br />

with a model of the concrete syntax for the case study in Part III.<br />

4.2. GOPPRR C++ Abstract Syntax Model<br />

Additionally to the meta model concrete syntax definition formalism, the generator capabiliti<strong>es</strong><br />

are of high relevance for the creation of dependable software. Typically, generators for models<br />

in a certain meta meta model are tool bounded and are not independently implemented. Due<br />

to the decision to use MetaEdit+ as meta modelling application (reasoned in Chapter 3), the<br />

relevant generator or rather generator language is MERL. Its main advantage is the provided<br />

abstraction for navigating through the bindings between objects in graphs. In contrast to the<br />

abstract GOPRR meta meta model structure in Figure 3.17 and Figure 3.18, the navigation is<br />

simplified in MERL to bindings in Figure 3.19 without ports and Figure 3.20 with ports. The<br />

direct drawback is that a generator is only related to the scope of a graph type but not to a<br />

project. Also, MERL generators for other GOPRR elements can be implemented but can only<br />

be used for graphical repr<strong>es</strong>entation effects and not for output generation, like source code.<br />

Therefore, all elements in a graph are treated only as graph-global, although they are project<br />

global, and might be (re)used in several different graphs.<br />

To obtain the information about the partition of an object, the implementation in MERL<br />

mostly ends in a complex generator. Additionally, MERL suffers in general from a weak syntax.<br />

For example, it lacks of the definition of functions and the specification of the scope of variabl<strong>es</strong>.<br />

This means simple generators can be easily implemented in MERL while complex and project<br />

related generators typically reach an unacceptable level of complexity in their implementation.<br />

To handle this issue, the concrete generation of source code and other components must be<br />

done outside of MetaEdit+ and MERL because the drawbacks cannot be eliminated by custom<br />

extensions and modifications. Furthermore, extensions or modifications of the generation<br />

module are not possible since MetaEdit+ is proprietary, closed source software.<br />

For this reason, an external generator application that us<strong>es</strong> an abstract syntax model should<br />

be implemented. The term model refers here to a software class model specified in UML.<br />

Neverthel<strong>es</strong>s, from the DSM view the, GOPPRR C++ abstract syntax model is a meta<br />

meta model while concrete instantiations corr<strong>es</strong>ponds to a model instanc<strong>es</strong> within that meta<br />

meta model. This abstract model must be provided in a project-oriented manner while the<br />

implementation in C++ eliminat<strong>es</strong> the syntactical weakn<strong>es</strong>s<strong>es</strong> of MERL. The transformation<br />

from the internal, concrete syntax model in MetaEdit+ to the C++ GOPPRR model should<br />

be done via XML 1 , which is explained in Section 4.3 in detail.<br />

In the following, the C++ abstract syntax model is explained in detail. For the initial<br />

development, the already existing GOPRR meta meta model abstract structure in Figure 3.17<br />

and Figure 3.18 was taken and then transferred to an UML class structure to be extended as<br />

1 as intermediate model<br />

43

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

Saved successfully!

Ooh no, something went wrong!