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 ...
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