<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Improving Trace-Based Propagation of Feature Annotations in Model Transformations</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sandra Greiner</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Bernhard Westfechtel</string-name>
          <email>Bernhard.Westfechtelg@uni-bayreuth.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Bayreuth</institution>
          ,
          <addr-line>Universitaetsstrasse 30, 95440 Bayreuth</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In annotative approaches to model-driven software product line engineering variability annotations express in which variants model elements are included. Although (single-variant) model transformations (SVMTs) are mature by now, they cannot process these annotations. Considering them calls for multi-variant model transformations (MVMTs) which ideally reuse existing transformations. In trace-based approaches annotations are propagated by exploiting the information of traces written alongside the transformation. Depending on the granularity of the trace, di erent strategies can be applied. For instance, ne-granular traces record not only all source and target elements of a rule application but list context elements. The latter have been created in previous rule applications and are necessary for creating the new elements. In this paper we demonstrate an example in which a propagation based on context elements fails. Contrastingly, we propose to propagate only annotations of 1:1 mappings and to, thereafter, calculate the annotations for elements still missing one. Moreover, we introduce a new evaluation criterion based on incremental transformations, allowing to take the multi-variant context into account.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        In model-driven software engineering (MDSE) [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] model transformations are
the key technology to transform a source model (input) into a di erent
representation, the target model (output). While unidirectional transformations
convert a source into a target model, bidirectional transformations also consider
the backward direction in the same speci cation. A batch transformation
creates the target model completely anew whereas an incremental transformation
applies changes made to the source model after a previous execution. In-place
transformations modify the input model itself, which, hence, is the target model.
Such transformation is always endogenous since the target metamodel remains
the same. In contrast, in out-place transformations a di erent physical
representation is created or modi ed, mostly in exogenous transformations where the
output metamodel di ers from the input one. Often traces record the source and
their corresponding target elements for each rule application. Triple graph
grammars (TGG) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and comparable approaches map exactly one source element
to one target element in a correspondence graphs.
      </p>
      <p>
        Furthermore, in model-driven software product line engineering (MDPLE)
[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] models express a set of related products based on the principle of organized
reuse. The platform captures the complete functionality w.r.t. its commonalities
and di erences. Typically, feature models [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] state the distinguishing factors as
features. A product is derived by ltering the platform by a feature con guration,
which provides each feature with a (de-)selected state. MDPLE heavily relies on
model transformations in various development stages in order to automatically
transfer a model to a new representation, e.g., in refactoring tasks or when
transforming in between design and realization models.
      </p>
      <p>
        In annotative approaches to MDPLE [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] model elements are associated with
presence conditions which are boolean expressions over the features, de ning,
in which variants a model element is visible. We refer to them as annotations.
Annotated platform models typically capture the whole product line, i.e., all its
variants. Therefore, we call such models multi-variant models (MVMs).
Transforming an annotated MVM in aforementioned transformations results in a
target MVM missing annotations which are not recognized in single-variant model
transformations (SVMTs). A transformation considering annotations is called a
multi-variant model transformation (MVMT). Some approaches already realize
MVMTs, mostly by reusing SVMTs. Lifting [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and approaches with
variabilitybased rules [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] exploit the contents of (graph) transformation speci cations.
More generally, the SVMT could be executed as a black-box. Thus, annotations
need to be propagated alongside the SVMT, usually, a posteriori. Trace-based
approaches [
        <xref ref-type="bibr" rid="ref22 ref7">22,7</xref>
        ], primarily realize the propagation based on trace information.
      </p>
      <p>In this paper we contribute a novel trace-based approach to MVMTs solely
using 1:1 mappings. In a post-processing step annotations for target elements
still missing one are determined from dependencies inside the target model.
Furthermore, we introduce an incremental commutativity criterion to evaluate the
correctness of the annotated target MVM, allowing to consider the multi-variant
context in the evaluation. Applying the procedure on an example transformation,
in which other approaches fail, achieves the desired behavior.</p>
      <p>In the next section we delimit our MVMT approach from existing ones. Then,
we describe an example violating commutativity and provide a solution to the
problem. From the ndings future work is conducted.
2
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <sec id="sec-2-1">
        <title>MVMT Realization Approaches</title>
        <p>Di erent strategies for realizing MVMTs can be roughly categorized in black-box
and white-box solutions, requiring no or all internals of the SVMT, respectively.</p>
        <p>
          The lifting algorithm [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] and combining it with variability-based rules [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]
are categorized as white-box solutions. Lifting executes (graph) transformation
rules with multi-variant semantics which requires to enumerate all rules for lifting
the product line. Although the algorithm is de ned for in-place graph
transformations, it was extended to out-place transformations with a graph-like DSL [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
The proposal in [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] is restricted by the same properties but is executed more
e ciently. The formalism based on category theory presented in [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] relies on the
contents of the transformation as well. Alternatively, in [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] ATL rules [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] are
extended to support variability and converted to a normal ATL transformation
in higher order transformations (HOT).
        </p>
        <p>
          Contrastingly, black-box approaches only know the input and output of the
transformation. The SVMT remains exactly the same. Annotations can, then,
be propagated by applying di erent strategies: In [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] annotations are assigned by
manually de ning corresponding elements of the source and target metamodel.
Thus, for each new transformation a mapping de nition must be provided. In
contrast, in [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] the authors "inject" annotations as preprocessor directives with
a generic aspect in Xpand [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] transformations. This approach works
independently of the transformation speci cation and the metamodels.
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Trace-based Propagation</title>
        <p>
          Traces are another source of information for propagating annotations. A
tracebased solution [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] is rather categorized as grey-box approach since knowing the
source and target elements of rule applications implicitly exploits
transformation contents. We can distinguish incomplete, generation-complete and complete
traces. Incomplete traces record only 1:1 mappings. If more than one element is
created, only the rst (most important) target element is kept. Such "trace" is
similar to correspondence graphs in TGGs. Languages and tools based on TGGs,
e.g., eMo on [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] or BXtend [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], provide (at least) this level of knowledge.
Contrastingly, a generation-complete trace stores all source and all target elements
associated with a rule application, like the trace written by the ATL/EMFTVM
[
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. Complete traces further partition the elements of the target model: an
element already existing in the target model upon the (later) execution of a rule is
called context element. Such elements may be needed to create new target
elements and are, thus, distinguished in the trace. The tool medini QVT [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] stores
complete trace as well as eMo on in a protocol besides the correspondence graph.
        </p>
        <p>
          In a simpli ed way Algorithm 1 describes how to propagate annotations based
on a complete trace [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. For each trace element, the annotation propagated to
its target elements (l. 8-9) is a conjunction (l. 6) of the annotations of its source
(l. 4) and its context (l. 5) elements.
        </p>
        <p>
          For validating the correctness of the propagation, a commutativity criterion
(Figure 1) is postulated for annotative approaches in [
          <xref ref-type="bibr" rid="ref14 ref8">14,8</xref>
          ] and for
featureoriented ones in [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. It checks whether the result mt from transforming an
annotated source MVM ms with an MVMT is correctly annotated. The MVMT
consists of the reused SVMT (tsv) and the annotation propagation. Filtering
ms by a feature con guration and transforming the result m0s with tsv creates
a target product m0t0 which should be equal to the model m0t being ltered from
mt by the same con guration. This property must hold for all valid feature
con gurations.
        </p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] it is shown that trace-based propagation achieves commutativity for
speci c transformations. Next, we demonstrate an example violating the
postuAlgorithm 1 Trace-based propagation of annotations.
1: procedure Propagate(te)
2: in te
3: for te 2 te do
4: var anns = te:getSrcAnns()
5: var annc = te.getCntxtAnns()
6: var annt := V anns ^ V annc
7:
8:
9:
for et 2 te:getTrgElements() do
et.setTargetAnnotation(annt)
        </p>
        <p>. Trace composed of trace elements te
. Process all trace elements sequentially
. Annotations of source elements
. Annotations of context elements
. Annotation for target elements</p>
        <p>. Process all target elements
. Annotate the target element
lated computational model and, thus, failing to commute. For that reason, we
state the following questions:
1. To which granularity can the information of traces be helpful? Are context
elements (always) decisive for the success of the MVMT?
2. Are batch transformations appropriate for evaluating commutativity?</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Example</title>
      <sec id="sec-3-1">
        <title>Setup</title>
        <p>
          The following scenario is based on a benchmark evaluating bidirectional (and
incremental) model transformations [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. Since we like to rather demonstrate key
ideas than to provide a complete evaluation, the models are kept small.
        </p>
        <p>Let us migrate a database storing persons to one storing families. As depicted
on the left hand side of Figure 2, named persons (composed of the last name
followed by the rst name) are registered as male or female. In contrast, the
family database records families by their last names and a family references its
members according to their role (mum, dad, etc.) inside the family.</p>
        <p>The family database is created from the persons database as follows (tsv):
Each person is inserted as member in a family with the respective last name.
If there is no appropriate family, a Family element is created and the person is
inserted as parent. If the family exists but the parent role is not occupied, the
member will also be a parent. If both parents exist, the member becomes a child.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Multi-Variant Transformation</title>
        <p>Now let us consider the example in the context of a software product line. The
feature model (top left of Figure 2) consists of the optional features parent
(P) and children (C). As depicted on the right of Figure 2, on instance level,
the person model consists of two men with the same last name 'Smith'. Ben is
annotated with the feature P since he is the father of the family, and Tom should
be a child (feature C). Transforming this model with the tsv described above,
creates a Family Smith with a member Ben as father and a member Tom as son.
A complete trace would record three elements as listed in Table 1. Please note:
The last row states the rule application with Tom as source element. It lists the
family as context element because it already exists and is necessary for inserting
the member Tom as a child.</p>
        <p>The trace-based propagation (Algorithm 1) as explained in Section 2.2
annotates the target elements as depicted in Figure 2: The member Ben and the
family receive Ben's annotation as they are both recorded as its target elements.
Secondly, Tom's annotation is the conjunction of the annotation of its source
element (C) and of its context element (P), the Family.</p>
        <p>Finally, products are derived and commutativity is evaluated. Deriving, for
instance, a database containing only children, we lter both, ms and mt, by the
feature con guration DB ^ :P ^ C. The derived source product m0s includes
the elements as expected: only the male Tom remains. Filtering mt, however,
results in a product m0t consisting of the database only. Although this is not
the desired semantic result, m0t could still be correct w.r.t. the commutativity
criterion (in the case tsv creates an equivalent model m0t0 with m0s as input).
Hence, for verifying commutativity, we execute tsv with the product m0s as input.
The output, m0t0, however, is semantically incorrect, too: Tom becomes the father
of the family as from the transformation's point of view the family and a parent
are missing. Thus, Tom triggers the creation of the family and is added as father.
Since m0t and m0t0 are not equivalent, commutativity is violated.</p>
        <p>Summing it up, (semantic) misbehavior appears at three locations:
1. The annotation attached to the Family element in mt is wrong since the
family must exist as soon as any member is present.
2. The annotation of Tom in mt might be wrong. Tom should be part of a
target product whenever its counterpart exists in a source product.
3. Applying tsv on the source product m0s creates a semantically wrong target
m0t0.
4
4.1</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Solution Approach</title>
      <sec id="sec-4-1">
        <title>Procedure</title>
        <p>The rst two aforementioned problems tackle the propagation of annotations.
The new procedure should adhere to Algorithm 2, assuming all metamodels
to be instances of the Ecore meta-metamodel (i.e., directed, acyclic graphs).
At rst, only the annotations of 1:1 mappings are copied from the source to the
(main) target element1. In the post-processing phase (l. 6-10), rstly, all elements
missing annotations are collected top-down. For each unannotated element e the
annotations of elements required for its existence (l. 7) and the ones requiring
e's existence (l. 8) are determined. The contents of the sets are discussed in
Section 4.3. Then, the annotation is calculated as in line 9 of Algorithm 2, i.e.,
e is present if all the elements it needs are present, and, if at least one of the
elements needing e's presence exists. Finally, the annotation is set on e (l. 10).</p>
        <p>For evaluating commutativity, batch transforming the source products
results in an unintended target model (3rd problem). Therefore, we propose an
incremental commutativity criterion: Firstly, the MVMT is executed as before
1 Copying the annotation of the source to its corresponding target is trivially correct
as the target element should exist when its corresponding source element exists.
Algorithm 2 Improved propagation of annotations.
propagateBasicMappings(te)
for e 2 mt.getUnannotatedElements() do</p>
        <p>. Process target elements without annotation in topological order
var annneeded = mt.getAnnsOfNeeded(e)</p>
        <p>. Annotation of elements needed for the existence of e
var annneeding = mt.getAnnsOfNeeding(e)</p>
        <p>. Annotation of elements needing the existence of e
var annt := V annneeded _ W annneeding
e.setTargetAnnotation(annt) . Annotate the target
by reusing the single-variant (batch) transformation tsv. As opposed to the
commutativity criterion postulated in Section 2.2, source products (m0s) are
transformed incrementally. Thus, decisions made in the multi-variant context, e.g., a
person's role in the family, are taken into account.
the annotations of the basic mappings are applied. Tom and Ben alike receive
only the annotations of their corresponding source elements. Thereafter, the
Family still expects an annotation being calculated in the post-processing step.
The element receives the presence condition DB _ (P _ C). It is composed of the
annotations of the elements needed for its existence, the database (DB), and of
the elements requiring its existence (Ben and Tom) combined in a disjunction.</p>
        <p>Evaluating commutativity by incrementally executing tsv, Ben is removed
and Tom's role remains the same in m0t0. Moreover, ltering the annotated target
model mt by the same feature con guration behaves well: the family and Tom
are not removed anymore. Thus, the example now commutes.</p>
        <p>Accordingly, the questions stated in Section 2.2 may be answered as follows:
1. In our example context elements hinder the correct annotation of target
elements. Context elements may change when switching from the multi-variant
to the single-variant context. Contrastingly, 1:1 mappings are trivially
correct and do not require ne-granular trace information.
2. Commutativity should be evaluated based on incrementally transforming
source products considering, thus, decisions of the multi-variant context.
4.3</p>
      </sec>
      <sec id="sec-4-2">
        <title>Discussion</title>
        <p>Our solution is the rst step to an automatic trace-based propagation supporting
the most general form of (an incomplete) trace. The two-step procedure is still
trimmed to the example needing further evaluation.</p>
        <p>The key di culty has been moved to the post-processing step. It seems to be
reasonable to combine annotations of required and requiring elements as stated
in Algorithm 2. However, the de nition is silent on the elements belonging to
the respective sets. They must be determined from the output (meta-)model
and depend on the granularity of annotating model elements. For instance,
required elements subsume at least the container but might also be the types of
all referenced typed elements, supertypes and operation parameters in the case
complete objects are annotated. Requiring elements are at least all contained
objects. Moreover, if too much elements are unannotated after the basic
propagation, calculating the annotation automatically may become impossible.</p>
        <p>Finally, the incremental evaluation is bene cial when elements are deleted
upon ltering. However, if a ltered source model (m0s) adds a new element or
changes it di erently than in the MVMT, this change will not be part of the
MVM mt and, hence, of m0t2. Moreover, not all, though many, languages support
incremental transformations in an unconstrained way.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Summary</title>
      <p>To sum it up, we present a novel approach to circumvent problems arising in
trace-based approaches to MVMT. Instead of exploiting ne-granular traces,
2 For a correct MVM, changes resulting from transforming source products should be
integrated into mt, which may violate single-variant semantics.
which are rarely present, we only propagate annotations of 1:1 mappings. They
form part of every trace and copying them is de nitely correct. Missing
annotations are calculated based on already present annotations and dependencies
inside the model. For evaluating commutativity we propose to perform
incremental transformations on product level taking into account the multi-variant
context. Applying the approach on initial examples achieves the desired result.</p>
      <p>As next steps, we like to generalize the approach and provide extensive
evaluation. In particular, the post-processing should be investigated in greater detail.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Anjorin</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Diskin</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ko</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leblebici</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Westfechtel</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>BenchmarX Reloaded: A Practical Benchmark Framework for Bidirectional Transformations</article-title>
          .
          <source>In: Proceedings of the 6th International Workshop on Bidirectional Transformations co-located with The European Joint Conferences on Theory and Practice of Software, BX@ETAPS</source>
          <year>2017</year>
          , Uppsala, Sweden, April
          <volume>29</volume>
          ,
          <year>2017</year>
          . pp.
          <volume>15</volume>
          {
          <issue>30</issue>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Apel</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Janda</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Trujillo</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , Kastner, C.:
          <article-title>Model Superimposition in Software Product Lines</article-title>
          .
          <source>In: Theory and Practice of Model Transformations</source>
          , Second International Conference, ICMT 2009, Zurich, Switzerland, June 29-30,
          <year>2009</year>
          . Proceedings. pp.
          <volume>4</volume>
          {
          <issue>19</issue>
          (
          <year>2009</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -02408-5 2
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Buchmann</surname>
          </string-name>
          , T.:
          <article-title>BXtend - A Framework for (Bidirectional) Incremental Model Transformations</article-title>
          .
          <source>In: Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development</source>
          ,
          <string-name>
            <surname>MODELSWARD</surname>
          </string-name>
          <year>2018</year>
          , Funchal, Madeira - Portugal, January
          <volume>22</volume>
          -
          <issue>24</issue>
          ,
          <year>2018</year>
          . pp.
          <volume>336</volume>
          {
          <issue>345</issue>
          (
          <year>2018</year>
          ). https://doi.org/10.5220/0006563503360345
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Buchmann</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Greiner</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Managing Variability in Models and Derived Artefacts in Model-driven Software Product Lines</article-title>
          .
          <source>In: Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development</source>
          ,
          <string-name>
            <surname>MODELSWARD</surname>
          </string-name>
          <year>2018</year>
          , Funchal, Madeira - Portugal, January
          <volume>22</volume>
          -
          <issue>24</issue>
          ,
          <year>2018</year>
          . pp.
          <volume>326</volume>
          {
          <issue>335</issue>
          (
          <year>2018</year>
          ). https://doi.org/10.5220/0006563403260335
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Famelis</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lucio</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Selim</surname>
            ,
            <given-names>G.M.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sandro</surname>
            ,
            <given-names>A.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salay</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chechik</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cordy</surname>
            ,
            <given-names>J.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dingel</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vangheluwe</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ramesh</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Migrating automotive product lines: A case study</article-title>
          .
          <source>In: Theory and Practice of Model Transformations - 8th International Conference, ICMT</source>
          <year>2015</year>
          ,
          <article-title>Held as Part of STAF 2015, L'Aquila</article-title>
          , Italy,
          <source>July 20-21</source>
          ,
          <year>2015</year>
          . Proceedings. pp.
          <volume>82</volume>
          {
          <issue>97</issue>
          (
          <year>2015</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -21155-8 7
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Gomaa</surname>
          </string-name>
          , H.:
          <article-title>Designing software product lines with UML 2.0: From use cases to pattern-based software architectures</article-title>
          .
          <source>In: Software Product Lines, 10th International Conference, SPLC</source>
          <year>2006</year>
          , Baltimore, Maryland, USA,
          <year>August</year>
          21-
          <issue>24</issue>
          ,
          <year>2006</year>
          , Proceedings. p.
          <volume>218</volume>
          (
          <year>2006</year>
          ). https://doi.org/10.1109/SPLINE.
          <year>2006</year>
          .1691600
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Greiner</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , Schwagerl,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Westfechtel</surname>
          </string-name>
          ,
          <string-name>
            <surname>B.</surname>
          </string-name>
          :
          <article-title>Realizing multi-variant model transformations on top of reused ATL speci cations</article-title>
          . In: Pires,
          <string-name>
            <given-names>L.F.</given-names>
            ,
            <surname>Hammoudi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Selic</surname>
          </string-name>
          ,
          <string-name>
            <surname>B</surname>
          </string-name>
          . (eds.)
          <source>Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development (MODELSWARD</source>
          <year>2017</year>
          ). pp.
          <volume>362</volume>
          {
          <fpage>373</fpage>
          .
          <string-name>
            <given-names>SCITEPRESS</given-names>
            <surname>Science and Technology Publications</surname>
          </string-name>
          , Portugal, Porto, Portugal (
          <year>February 2017</year>
          ). https://doi.org/10.5220/0006137803620373
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Greiner</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Westfechtel</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Generating multi-variant java source code using generic aspects</article-title>
          .
          <source>In: Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development</source>
          ,
          <string-name>
            <surname>MODELSWARD</surname>
          </string-name>
          <year>2018</year>
          , Funchal, Madeira - Portugal, January
          <volume>22</volume>
          -
          <issue>24</issue>
          ,
          <year>2018</year>
          . pp.
          <volume>36</volume>
          {
          <issue>47</issue>
          (
          <year>2018</year>
          ). https://doi.org/10.5220/0006536700360047
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. ikv++
          <article-title>technologies: medini QVT. ikv++ technologies (</article-title>
          <year>2018</year>
          ), http://projects.ikv.de/qvt
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Allilaire</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bezivin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kurtev</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>ATL: A model transformation tool</article-title>
          . Sci. Comput. Program.
          <volume>72</volume>
          (
          <issue>1-2</issue>
          ),
          <volume>31</volume>
          {
          <fpage>39</fpage>
          (
          <year>2008</year>
          ). https://doi.org/10.1016/j.scico.
          <year>2007</year>
          .
          <volume>08</volume>
          .002
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Kang</surname>
            ,
            <given-names>K.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cohen</surname>
            ,
            <given-names>S.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hess</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Novak</surname>
            ,
            <given-names>W.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peterson</surname>
            ,
            <given-names>A.S.:</given-names>
          </string-name>
          <article-title>Featureoriented domain analysis (FODA) feasibility study</article-title>
          .
          <source>Tech. Rep</source>
          . CMU/SEI-90-
          <issue>TR21</issue>
          , Carnegie-Mellon University, Software Engineering Institute (Nov
          <year>1990</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Klatt</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Xpand: A closer look at the model2text transformation language</article-title>
          .
          <source>Language</source>
          <volume>10</volume>
          (
          <issue>16</issue>
          ),
          <year>2008</year>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Leblebici</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Anjorin</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , Schurr, A.:
          <article-title>Developing emo on with emo on</article-title>
          .
          <source>In: Theory and Practice of Model Transformations - 7th International Conference, ICMT</source>
          <year>2014</year>
          ,
          <article-title>Held as Part of STAF 2014</article-title>
          , York, UK,
          <source>July 21-22</source>
          ,
          <year>2014</year>
          . Proceedings. pp.
          <volume>138</volume>
          {
          <issue>145</issue>
          (
          <year>2014</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>319</fpage>
          -08789-4 10
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Salay</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Famelis</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rubin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sandro</surname>
            ,
            <given-names>A.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chechik</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Lifting model transformations to product lines</article-title>
          .
          <source>In: 36th International Conference on Software Engineering</source>
          , ICSE '14,
          <string-name>
            <surname>Hyderabad</surname>
          </string-name>
          , India - May 31 - June 07,
          <year>2014</year>
          . pp.
          <volume>117</volume>
          {
          <issue>128</issue>
          (
          <year>2014</year>
          ). https://doi.org/10.1145/2568225.2568267
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. Schurr, A.:
          <article-title>Speci cation of graph translators with triple graph grammars</article-title>
          .
          <source>In: Graph-Theoretic Concepts in Computer Science</source>
          , 20th International Workshop, WG '94,
          <string-name>
            <surname>Herrsching</surname>
          </string-name>
          , Germany, June 16-18,
          <year>1994</year>
          , Proceedings. pp.
          <volume>151</volume>
          {
          <issue>163</issue>
          (
          <year>1994</year>
          ). https://doi.org/10.1007/3-540-59071-4 45
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Sijtema</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Introducing variability rules in atl for managing variability in mdebased product lines</article-title>
          .
          <source>Proc. of MtATL 10</source>
          , 39{
          <fpage>49</fpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Stahl</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , Volter,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Bettin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Haase</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Helsen</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          :
          <article-title>Model-driven software development - technology</article-title>
          , engineering, management.
          <source>Pitman</source>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. Struber,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Rubin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Arendt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Chechik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Taentzer</surname>
          </string-name>
          ,
          <string-name>
            <surname>G.</surname>
          </string-name>
          , Ploger, J.:
          <article-title>Variability-based model transformation: formal foundation and application</article-title>
          .
          <source>Formal Aspects of Computing</source>
          <volume>30</volume>
          (
          <issue>1</issue>
          ),
          <volume>133</volume>
          {162 (Jan
          <year>2018</year>
          ). https://doi.org/10.1007/s00165- 017-0441-3
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Taentzer</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salay</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , Struber,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Chechik</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>Transformations of software product lines: A generalizing framework based on category theory</article-title>
          .
          <source>In: 20th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, MODELS</source>
          <year>2017</year>
          , Austin, TX, USA, September
          <volume>17</volume>
          -
          <issue>22</issue>
          ,
          <year>2017</year>
          . pp.
          <volume>101</volume>
          {
          <issue>111</issue>
          (
          <year>2017</year>
          ). https://doi.org/10.1109/MODELS.
          <year>2017</year>
          .22
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Trujillo</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Batory</surname>
            ,
            <given-names>D.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>D az</surname>
          </string-name>
          , O.:
          <article-title>Feature oriented model driven development: A case study for portlets</article-title>
          .
          <source>In: 29th International Conference on Software Engineering (ICSE</source>
          <year>2007</year>
          ), Minneapolis, MN, USA, May
          <volume>20</volume>
          -26,
          <year>2007</year>
          . pp.
          <volume>44</volume>
          {
          <issue>53</issue>
          (
          <year>2007</year>
          ). https://doi.org/10.1109/ICSE.
          <year>2007</year>
          .
          <volume>36</volume>
          , https://doi.org/10.1109/ICSE.
          <year>2007</year>
          .36
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Wagelaar</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Iovino</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ruscio</surname>
            ,
            <given-names>D.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pierantonio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Translational semantics of a co-evolution speci c language with the EMF transformation virtual machine</article-title>
          .
          <source>In: Theory and Practice of Model Transformations - 5th International Conference, ICMT 2012</source>
          , Prague, Czech Republic, May
          <volume>28</volume>
          -29,
          <year>2012</year>
          . Proceedings. pp.
          <volume>192</volume>
          {
          <issue>207</issue>
          (
          <year>2012</year>
          ). https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -30476-7 13
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Westfechtel</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Greiner</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>From Single- to Multi-Variant Model Transformations: Trace-Based Propagation of Variability Annotations</article-title>
          .
          <source>In: 21st ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, MODELS</source>
          <year>2018</year>
          , Copenhagen, Denmark,
          <source>October 14-19</source>
          ,
          <year>2018</year>
          . p.
          <article-title>accepted for publication</article-title>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>