09.08.2013 Views

SPES 2020 Deliverable 1.4.B-3 Concepts for an Integrated Tool ...

SPES 2020 Deliverable 1.4.B-3 Concepts for an Integrated Tool ...

SPES 2020 Deliverable 1.4.B-3 Concepts for an Integrated Tool ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

provide a clear separation between abstract <strong>an</strong>d concrete syntax. This makes it difficult to<br />

define alternative concrete syntaxes <strong>for</strong> the same abstract syntax.<br />

Process definition. Part of the l<strong>an</strong>guage definition is also the methodical way of modeling,<br />

defining at what time which parts of the model have to be developed. For each development<br />

phase it defines both, which operations are available <strong>an</strong>d what properties have to be fulfilled<br />

at the end of the phase. The process definition is interpreted by (<strong>an</strong>d thus parametrizes) a<br />

workflow engine.<br />

A process definition consists of the activities that have to be per<strong>for</strong>med, the roles that are<br />

responsible <strong>for</strong> certain activities, <strong>an</strong>d the artifacts that are produced in the course of certain<br />

activities. The abstract syntax defines the possible structure of the artifacts, <strong>an</strong>d the concrete<br />

syntax the different views onto the model. The roles come with access rights which regulate the<br />

access to certain views onto the model. Activities may be per<strong>for</strong>med sequentially, in parallel<br />

as well as iteratively. For a better overview, activities should be structured hierarchically. A<br />

basic activity may be fully automated such as code generation <strong>an</strong>d c<strong>an</strong> then be specified by<br />

<strong>an</strong> interpreter of the modeling l<strong>an</strong>guage. On the other h<strong>an</strong>d a basic activity may have to<br />

be per<strong>for</strong>med m<strong>an</strong>ually like e.g. requirements elicitation <strong>an</strong>d c<strong>an</strong> then be supported by the<br />

operations defined by the modeling l<strong>an</strong>guage. Furthermore, the tr<strong>an</strong>sition from one activity<br />

to the next may be protected by quality gates which guar<strong>an</strong>tee the quality of the activity’s<br />

result. This c<strong>an</strong> be achieved by integrity constraints or by the execution of complex <strong>an</strong>alysis<br />

by interpreters. Integrity constraints actually not only depend on the modeling l<strong>an</strong>guage, but<br />

also on the progress of the process. For example, every requirement has to be implemented at<br />

the end of the process, but is of course not implemented after requirements elicitation.<br />

Sem<strong>an</strong>tics. Generally, there are three ways of specifying sem<strong>an</strong>tics: The first one is to describe<br />

the sem<strong>an</strong>tics of the modeling l<strong>an</strong>guage by a calculus (axiomatic sem<strong>an</strong>tics), the second<br />

one is to define the relationship to <strong>an</strong>other <strong>for</strong>malism (denotational <strong>an</strong>d tr<strong>an</strong>slational sem<strong>an</strong>tics),<br />

<strong>an</strong>d the third one is to specify a model interpreter (operational sem<strong>an</strong>tics).<br />

The first one results in syntactical tr<strong>an</strong>s<strong>for</strong>mation rules preserving the sem<strong>an</strong>tics. It is possible<br />

to provide these rules with regard to tool support in the <strong>for</strong>m of refactoring functionality<br />

which is being realized via <strong>an</strong> in-place tr<strong>an</strong>s<strong>for</strong>mation engine (the original model is thus altered<br />

directly). In general, it must be differentiated between postulated rules (axioms) <strong>an</strong>d deducible<br />

rules (theorems). In the scope of a l<strong>an</strong>guage definition, however, axioms would in principle<br />

be sufficient. As theorems are, however, generally not deducible in <strong>an</strong> automated way but<br />

are particularly relev<strong>an</strong>t in practice <strong>for</strong> the refactoring, they should nonetheless be <strong>for</strong>mulated<br />

explicitly in the l<strong>an</strong>guage definition. From a <strong>for</strong>mal point of view, the syntactic tr<strong>an</strong>s<strong>for</strong>mation<br />

rules complete the syntax definition to <strong>for</strong>m a calculus.<br />

The second way maps each model according to the syntax definition to a model of <strong>an</strong>other<br />

<strong>for</strong>malism (referred to as sem<strong>an</strong>tic domain). This may be a mathematical <strong>for</strong>malism like<br />

logic or set theory (denotational sem<strong>an</strong>tics) but also a programming l<strong>an</strong>guage like C or Java<br />

(tr<strong>an</strong>slational sem<strong>an</strong>tics). Note that this kind of sem<strong>an</strong>tical definition always depends on<br />

<strong>an</strong>other <strong>for</strong>malism which needs to be <strong>for</strong>malized itself. In total, this results in a system of<br />

modeling l<strong>an</strong>guages which are correlated to each other by the sem<strong>an</strong>tical mapping. According<br />

20

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

Saved successfully!

Ooh no, something went wrong!