<!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>A Qualitative Study of Model Transformation Development Approaches: Supporting Novice Developers</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Gabriel Costa Silva</string-name>
          <email>gabriel@cs.york.ac.uk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Louis M. Rose</string-name>
          <email>louis.rose@york.ac.uk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Radu Calinescu</string-name>
          <email>radu.calinescu@york.ac.uk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Science, University of York</institution>
          ,
          <addr-line>Deramore Lane, York YO10 5GH</addr-line>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Developing model transformations is not a straightforward task. It is particularly challenging when the developer has limited or no experience in this area. This not only impedes the adoption of model transformations, but also prevents companies from the bene ts of ModelDriven Engineering. We qualitatively analyse eight of the most relevant approaches to developing model transformations cited in the literature. Di erent from most studies in this area, we focus on life-cycle activities other than implementation. By highlighting the strengths and weaknesses of these approaches, we help new developers in selecting an approach and complement existing studies in this area.</p>
      </abstract>
      <kwd-group>
        <kwd>Model transformation</kwd>
        <kwd>Development</kwd>
        <kwd>Analysis</kwd>
        <kwd>Comparison</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The use of Model Transformations (MT) in software engineering leads to several
bene ts, such as complexity reduction and portability [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. However,
developing MT is a challenge. As Siikarla et al. state in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], \An application developer
with proper domain knowledge can manually create a target model based on a
source model. He can probably even come up with some of the most often used
rules of thumb for the transformations. However, de ning a complete mapping
from all possible source models to target models is remarkably harder." The
stateof-the-art for developing MT consists of describing the MT de nition informally
in natural language [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], based on an \educated guess" [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], and implementing
the transformation de nition using a transformation language [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. This
informal approach leads to several drawbacks [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], such as inconsistency
between speci cation and implementation [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and cost increase [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        Since MT are software [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], they need to be engineered as software [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], using
a systematic process of:
(i) specifying problems and requirements [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ];
(ii) acquiring knowledge about semantic correspondences [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ];
(iii) modelling source and target models to outline a transformation [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ];
(iv) creating mappings between meta-models [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ];
(v) setting up constraints and rules for model mappings [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ];
(vi) de ning transformation architecture [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ];
(vii) implementing the transformation de nition using a transformation language
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]; and
(vii) validating the transformation de nition [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>
        Furthermore, analogous to software development, MT can take advantage of
further techniques to support its development, such as transformation patterns
[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. As Guerra et al. advocate in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], developing MT \requires systematic
engineering processes, notations, methods and tools ". Although there are several
tools for implementing MT de nitions [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], there is: (i) little work addressing
the whole life-cycle of MT [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]; (ii) lack of guidelines for the systematic
development of MT, in particular, to support novice MT developers; and (iii)
di erent perspectives regarding the best way to develop MT.
      </p>
      <p>
        The analysis in this paper aims to contribute to the adoption of Model-Driven
Engineering by providing a qualitative analysis of state-of-the-art approaches in
developing model-to-model (M2M) transformations, investigating their strengths
and weaknesses, and highlighting lessons learned for supporting MT developers
starting in this area. Our analysis was prompted by the following research
question: Which methods and techniques should a novice MT developer use? Unlike
most work in MT, such as that reported in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], our focus lies in activities of MT
life-cycle other than implementation. In particular, we investigate processes, a
modelling language, and transformation patterns to support MT development.
      </p>
      <p>Note that this is not the only challenge associated with MDE adoption.
However, challenges such as model and meta-model development are outside the
scope of our paper. By a literature review, we identify approaches to support MT
life-cycle. Then, we qualitatively analyse recent approaches according to three
aspects (Section 2): (i) model transformation foundations; (ii) features; and (iii)
applicability. Finally, we summarise lessons learned during our experience with
analysing and adopting MT in the cloud computing domain (Section 3).
2</p>
    </sec>
    <sec id="sec-2">
      <title>Analysis</title>
      <p>
        In our investigation of M2M transformation development approaches, we
identi ed no study, either qualitative or quantitative, comparing approaches to MT
development in phases other than implementation. Furthermore, taking into
consideration approaches we analysed in this paper, apart from the approach
presented in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], no approach was extensively evaluated, providing only worked
examples to support a feasibility analysis. Moreover, so far, no approach for MT
development has been widely adopted. These three facts make hard to choose a
suitable approach when developing MT, fostering the concept of \ad hoc" MT
development [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. It becomes even harder when the MT developer has limited
experience in this activity. In order to support novices in the task of selecting an
approach for MT development, we provide in this section a qualitative analysis
of approaches present in the MT literature. Table 1 summarises our analysis.
2.1
      </p>
      <sec id="sec-2-1">
        <title>Study Design</title>
        <p>
          As Sjoberg, Dyba &amp; Jorgensen de ne in [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ], \qualitative methods collect material
in the form of text, images or sounds drawn from observations, interviews and
documentary evidence, and analyze it using methods that do not rely on precise
measurement to yield their conclusions." To this end, we used 13 criteria for
analysing the approaches covered in our analysis, classifying the approaches into
three groups: MT foundations, main features, and applicability of each approach.
        </p>
        <p>
          The rst group consists of foundation concepts of MT, as presented in [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]
and [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. The second group is based on the most relevant features implemented
by approaches. Finally, the last group consists of our evaluation of the
applicability of these approaches, taking into consideration the perspective of a novice
MT developer. The evaluation of these approaches was exclusively based on
information presented in their respective papers. As Seaman advocates in [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], by
conducting this qualitative analysis we aim at providing rich and informative
analysis to support novice MT developers. In addition, we aim at increasing the
knowledge on how these approaches can contribute to designing MT.
        </p>
        <p>
          Investigating model transformation literature, we identi ed eight research
papers presenting approaches supporting M2M transformation development. As
in our previous investigation [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] the IEEE digital library provided the most
signi cant set of primary studies for our research, we decided to use this library
as our primary source. Our search identi ed 121 papers, from which we critically
analysed both title and abstract, resulting in two papers selected for full reading
[
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. In addition, we were supported by an MDE expert, who suggested another
paper [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. Finally, by analysing references and citations of previously selected
papers, we found ve more relevant papers [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ], [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ], [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ].
        </p>
        <p>
          Based on an analogy with software development, we classi ed the identi ed
approaches as:
(i) traditional [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] when they advocate an iterative process of re nements,
from requirements to MT implementation and test;
(ii) by example [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ], [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ], [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] when they concentrate on simplifying the
transformation development, focusing on model mappings [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ];
(iii) emergent [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] when based on emergent software development approaches (e.g.,
agile), which proposes innovative ways to develop software; and
(iv) transformation patterns [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] which enable the identi cation of recurrent
relations in a model transformation, supporting the de nition of
transformation rules in a reusable way [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
The rst group of criteria consists of: multiple source/ target, exogenous/
endogenous MT, mappings, and rules. It is critical to note that the papers we
analysed provided little, or no clear information about the two rst criteria. For
those cases, we analysed the examples provided throughout the paper as the
main reference to infer answers for this question. To simplify the reference to
each approach, Table 1 enumerates approaches using numbers from (1) to (8).
These numbers will identify their respective approaches from now on.
        </p>
        <p>Taking into consideration the support for multiple source/ target, only (2)
explicitly stated the support for multiple source and targets by their mapping
diagram. All other approaches suggested support for only single source/ target
models. For example, (3) made clear the decision taken by a set of stated
assumptions. Siikarla, (1), suggested his decision in a gure, used to explain his
approach. Analysing the transformation patterns presented, none of them
consider multiple source/ targets. For all other approaches, they suggested their
decision by examples presented throughout the paper.</p>
        <p>Regarding the type of transformation supported, most of approaches support
only exogenous transformations. The only exception is (5), which presented only
endogenous examples, suggesting that this approach aims at also supporting
endogenous transformations. Examples presented by (2) suggested that it supports
both types of transformations. Likewise, the patterns attening and mapping,
presented by (8), indicated that it supports both types of transformations.</p>
        <p>As mappings and rules are core concepts in MT, both concepts are considered
by all analysed approaches. The main di erence in this regard lies in how these
concepts are implemented by di erent approaches. For example, whereas (1)
set up correspondence examples to map models, and transformation patterns to
map meta-model, (6) speci ed mappings by test cases. Regarding rules, whereas
(2) de ned it in their low-level design, (3) proposed their automatic generation.
2.3</p>
      </sec>
      <sec id="sec-2-2">
        <title>Features</title>
        <p>The second group of criteria consists of: language independence, phases covered,
focus, artefacts, and tooling support. In the context of this paper, language
independence means that the approach is not speci c to a particular language
for the source and target models/meta-models. Apart from (8), that de nes its
transformation patterns in the context of QVT, all other approaches are language
independent { though the examples presented are based on a particular language,
such as (1), that adopted UML. To analyse the phases of MT life cycle covered
by approaches, we took into consideration the general process for developing
MT, introduced in Section 1. The set of phases we included in this process is the
result of an analysis of MT literature. Table 2 summarises the phases covered
by each approach, and how each approach covers such phase.</p>
        <p>
          Regarding the focus of each approach, although MT is de ned at the
metamodel level, most approaches focus on the model rather than the meta-model
level. As Wimmer et al. explain in [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], meta-models might not de ne all language
concepts explicitly. Regarding the approaches we analysed, the exception is (7),
which focuses on the meta-model, and both (2) and (8), which address both
model and meta-model. It is important to note that (8) described their patterns
in terms of model, but the de nition is made at meta-model level.
        </p>
        <p>Approaches proposed a number of artefacts to support the developer. Table
1 shows the number of artefact types though it is central to note that this
information is unclear in some papers, such as those which present (6), (4), and
(5). Finally, regarding tool support, (1) and (7) do not require a particular tool.
In the context of this analysis, requiring tool support means that the approach
cannot be wholly applied without a particular tool. For example, (7) does not
require a particular tool although it de nes several automatic activities.
Likewise, although (2) de nes a family of languages, its MT development process is
language independent. Unlike the other approaches, (2) generates automatically
only test and traceability artefacts. In particular, by-example approaches de ne
semi-automatic tasks, that require speci c tools. Approach (6) also de ned the
use of speci c tools, such as HUTN, EVL, and an adapted version of JUnit.
2.4</p>
      </sec>
      <sec id="sec-2-3">
        <title>Applicability</title>
        <p>To evaluate the applicability of each approach, we considered four criteria:
soundness, evaluation, level of technical detail, and the ability of the analysed approach
to support another | like design patterns can support software development
process. We de ne the soundness of an approach, using the following scale: (i)
minimal | the paper introducing the approach provides very limited
information about approach theoretical foundations; (ii) good | the paper justi es the
decisions taken and reasons to underpin their decisions, even the information is
limited; and (iii) excellent, meaning that the text not only describes decisions
and their reasons, but also provides empirical evidence and basis from literature.</p>
        <p>Taking into consideration this scale, only (2) was classi ed as having an
excellent soundness whereas (8) was classi ed as having a good. This result
becomes worse when analysed along with the next criterion, evaluation. None of
by-example approaches were evaluated in the papers analysed. Apart from (2),
which conducted two case studies, other approaches conducted feasibility
analyses, taking into consideration worked examples. These two results highlight the
need for empirical evidence to support future work in this area. This is
particularly important for the industrial adoption of these approaches. However,
note that these results do not invalidate the approaches. In fact, as discussed in
Section 3, many of these ideas are valid and useful.</p>
        <p>Aiming at the application of these approaches, we evaluated the level of
technical detail provided in the paper. There are three possible classi cations for
this criterion: (i) minimal, when the text does not provide enough information
to support the application of this approach; (ii) good, when the text provides
enough information to support the application of this approach, though detailed
information might be missing; and (iii) excellent, when the text not only provide
enough information, but also further details about activities, such as examples.
In this regard, (7) and (6) were classed as minimal. Approaches (2), (4), and
(5) provide excellent information, supported by examples that complement the
understanding. However, it is critical to point out that these three approaches
rely on tooling support, and the knowledge regarding the tools might be not
enough. The other three approaches were classi ed as good.</p>
        <p>Finally, we analysed whether these approaches could support other approach.
For example, a traditional software development process might be supported by
several approaches, such as design patterns and graphical modelling languages.
Apart from transformation patterns and the MT language (approach (2)), which
by de nition could be applied to support other approaches, all other approaches
de ned their particular, non-extendable, life-cycle. In some cases, such as that
of (5), the need for tooling support creates additional dependency.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Lessons Learned</title>
      <p>
        In this section, we summarise lessons learned while transforming a cloud model
[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], de ned as part of our approach to support cloud portability [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], into a
TOSCA de nition. Cloud computing is a computing model in which resources,
such as computing, are provided as services through the Internet [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Topology
and Orchestration Speci cation for Cloud Applications (TOSCA) is a standard
speci cation supported by OASIS to enable cloud portability [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. This section
is based on our attempt to systematically apply the approaches previously
presented. Lessons reported in this section complement the analysis in Section 2.
      </p>
      <sec id="sec-3-1">
        <title>Developing model transformations is as complex as traditional software development</title>
        <p>
          Comparing the generic MT process introduced in Section 1 with the traditional
software development (TSD) life-cycle, such as waterfall [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], we can conclude
that both processes are similar. A developer needs requirements to de ne the
objectives, artefacts to guide the development, and tests to check for errors. Like
the TSD, the code is the main artefact, which represents the MT de nition.
However, a number of questions arise when starting the requirement de nition
for a MT. In contrast to TSD, in which one de nes several requirements, in MT,
inicially, there is one single requirement: transform model A into model B.
        </p>
        <p>
          In MT, the single requirement proposed must be broken down into several
others, specifying that the entity X, in the meta-model A, will become the entity
Z, in the meta-model B. To this end, the requirements diagram presented in
[
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] is a relevant contribution since it enables requirement decomposition and
the creation of links between requirements to set up dependencies. However, to
de ne such a mapping, it is necessary to have a clear understanding of semantic
correspondences between the meta-models involved. Furthermore, unless these
semantic correspondences have been tested before, establishing the requirements
would be an error-prone task. For example, when we de ned the requirements
for our cloud-to-TOSCA MT, we did not know which TOSCA entity a cloud
entity will become { though we knew very well both domains.
        </p>
        <p>
          Thus, we had to analyse semantic correspondences of both meta-models
before de ning the requirements. In addition, we had to test if these
correspondences made sense. In this regard, the test-driven approach proposed in [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] was
useful. A test-case is an artefact which outlines these semantic correspondences.
Then, by implementing the transformation, this initial assumption is con rmed
or refuted. However, from a novice MT developer, the complexity involved in
de ning requirements for MT is far harder than in TSD. In addition,
requirement de nition and mapping de nition are two close activities. Finally, M2M
transformations might involve model-to-text transformations as well, making
the process even more complex. Thus, despite the similarity with TSD, in our
perspective, MT development requires extra artefacts and activities.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Models work well as examples, but not as the main transformation drivers</title>
        <p>By-example approaches, in particular, advocate the use of models rather than
meta-models as the main driver of a MT. Indeed, having two models, one
representing a domain A, and another representing a domain B, aids the design of an
A-to-B MT. However, creating these models is not trivial. Although it might be
an intuitive process when creating a transformation from a UML class diagram
to an E-R diagram { a common example used in the literature, other domains
require a huge e ort. In our case, we found it to be impossible to devise a TOSCA
model based on our cloud model without an in-depth preliminary analysis of
semantic correspondences. The reason for that is quite simple: a model conforms
to a meta-model. Therefore, one cannot create a representation of model A,
which conforms to meta-model A, in conformance with meta-model B unless the
semantic correspondences between meta-models A and B are known beforehand.</p>
        <p>
          For example, the by-example approaches proposed in [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] and [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], de ne in
their rst activities the creation of source and target models, and the mapping
of entities between these models. In our case, we already had the cloud model,
however, we expected to follow a well-de ned MT process in deriving the TOSCA
model (target). At that moment, we could infer that a cloud Service is similar to
a TOSCA TNodeType, but we did not know correspondences for other entities,
such as a cloud Region, and User. Thus, a process advocating the mapping
of models to achieve meta-models correspondences was not applicable because
without the meta-model correspondences it was impossible to derive the models.
        </p>
        <p>In this regard, we learned that by-example approaches could be useful when
meta-model correspondences are already known, and two well-known meta-models
are given. Thus, models can be mapped and meta-model correspondences can be
automatically generated using these approaches. On the other hand, the creation
of two models is quite useful when designing MT as a way to validate meta-model
mappings. For example, after identifying that a cloud Resource is equivalent to
a TOSCA TNodeType, we created a TOSCA model representing this mapping.
Then, we could validate the model in two ways: checking in the general context
of TOSCA whether this transformation makes sense, and submitting the
generated model to a TOSCA runtime environment. If the environment could process
the speci cation, it meant that the transformation succeeded.</p>
      </sec>
      <sec id="sec-3-3">
        <title>Other lessons</title>
        <p>
          { Although not yet addressing all MT development concerns, the analysed
approaches provide very useful contributions. Overall, we concluded that, like
MT area, the identi ed approaches are still maturing. As shown by Table 1,
most of them were neither extensively evaluated nor sound enough. However,
they provide several insights about performing MT, such as correspondence
examples [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], requirements diagram [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], and test-cases [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ];
{ Testing is critical in MT as it is in TSD. It is important to carry out several
tests when developing MT. In our experience, we identi ed problems with
di erent datatypes (e.g., conversion of String to xs:string ), names (space
between nouns versus no space), and one entity in the source meta-model
being mapped to several others in the target meta-model;
{ Capturing trace links between source and target model elements is a good
practice for MT, particularly if a MT becomes complex. In our
experience, one single entity in the cloud meta-model became three entities in
the TOSCA meta-model, which in turn gave rise to several others. At the
end, the set of dependencies created was so complex, that it was hard to
validate them. Inspecting the trace model can help considerably in cases like
this, as it enables to identify source and target entities.
4
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>In our investigation of M2M transformation development, we identi ed no study,
either qualitative or quantitative, comparing approaches for MT development in
phases other than implementation. This complicates the selection process of
a suitable approach when developing MT, fostering the concept of \ad hoc"
MT development. It becomes even harder when the MT developer has limited
experience in this activity. To support the selection of an approach for MT
development, we provided in this paper a qualitative analysis of eight
state-ofthe-art approaches for MT development. This analysis took into consideration
13 criteria, classi ed in three groups: model transformation foundations, features
and applicability. We complemented this analysis presenting the lessons learned
from our own experience with developing a MT for cloud domain.
Acknowledgments. This work was funded in part by CNPq - Brazil.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Armbrust</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stoica</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zaharia</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fox</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gri</surname>
            <given-names>th</given-names>
          </string-name>
          , R.,
          <string-name>
            <surname>Joseph</surname>
            ,
            <given-names>A.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Katz</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Konwinski</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patterson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rabkin</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>A view of cloud computing</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>53</volume>
          (
          <issue>4</issue>
          ),
          <volume>50</volume>
          {58 (Apr
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Binz</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , Breitenbucher, U.,
          <string-name>
            <surname>Kopp</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leymann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>TOSCA: Portable Automated Deployment and Management of Cloud Applications</article-title>
          . In: Advanced Web Services, chap.
          <source>TOSCAg: Po</source>
          , pp.
          <volume>527</volume>
          {
          <fpage>549</fpage>
          . Springer, New York (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Brambilla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Model-Driven Software</surname>
          </string-name>
          Engineering in Practice. Morgan &amp; Claypool Publishers (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. France, R.,
          <string-name>
            <surname>Rumpe</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Model-driven Development of Complex Software: A Research Roadmap</article-title>
          .
          <source>In: Future of Software Engineering (FOSE '07)</source>
          . pp.
          <volume>37</volume>
          {
          <fpage>54</fpage>
          . IEEE, Minneapolis, MN (May
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Giner</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pelechano</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Test-Driven Development of Model Transformations</article-title>
          .
          <source>In: MDE Languages and Systems</source>
          , pp.
          <volume>748</volume>
          {
          <fpage>752</fpage>
          . Springer, Berlin (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Guerra</surname>
          </string-name>
          , E.,
          <string-name>
            <surname>de Lara</surname>
          </string-name>
          , J.,
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paige</surname>
            ,
            <given-names>R.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>dos Santos</surname>
            ,
            <given-names>O.M.</given-names>
          </string-name>
          :
          <article-title>Engineering model transformations with transML</article-title>
          .
          <source>Software &amp; Systems Modeling</source>
          <volume>12</volume>
          (
          <issue>3</issue>
          ),
          <volume>555</volume>
          {
          <fpage>577</fpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Iacob</surname>
            ,
            <given-names>M.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Steen</surname>
            ,
            <given-names>M.W.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heerink</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Reusable Model Transformation Patterns</article-title>
          .
          <source>In: 2008 12th Enterprise Distributed Object Computing Conference Workshops</source>
          . pp.
          <volume>1</volume>
          {
          <fpage>10</fpage>
          . IEEE,
          <string-name>
            <surname>Munich</surname>
          </string-name>
          (Sep
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Jin</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guisheng</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Method of constructing model transformation rule based on reusable pattern</article-title>
          .
          <source>In: 2010 International Conference on Computer Application and System Modeling (ICCASM</source>
          <year>2010</year>
          ). pp.
          <volume>519</volume>
          {
          <fpage>524</fpage>
          . IEEE,
          <string-name>
            <surname>Taiyuan</surname>
          </string-name>
          (Oct
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Kappel</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Langer</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Retschitzegger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwinger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Model Transformation By-Example</surname>
          </string-name>
          :
          <article-title>A Survey of the First Wave</article-title>
          . In: Dusterhoft,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Klettke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Schewe</surname>
          </string-name>
          , K.D. (eds.)
          <source>Conceptual Modelling and Its Theoretical Foundations</source>
          , pp.
          <volume>197</volume>
          {
          <fpage>215</fpage>
          . Springer Berlin Heidelberg, Berlin (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Lano</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolahdouz-Rahimi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Poernomo</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Comparative Evaluation of Model Transformation Speci cation Approaches</article-title>
          .
          <source>International Journal of Software and Informatics</source>
          <volume>6</volume>
          (
          <issue>2</issue>
          ),
          <volume>233</volume>
          {
          <fpage>269</fpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Seaman</surname>
            ,
            <given-names>C.B.</given-names>
          </string-name>
          :
          <article-title>Qualitative Methods</article-title>
          . In: Guide to Advanced Empirical Software Engineering, pp.
          <volume>35</volume>
          {
          <fpage>62</fpage>
          . Springer London, London (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Siikarla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Laitkorpi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Selonen</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , Systa,
          <string-name>
            <surname>T.</surname>
          </string-name>
          :
          <article-title>Transformations Have to be Developed ReST Assured</article-title>
          . In: Vallecillo,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Gray</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Pierantonio</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . (eds.)
          <source>Theory and Practice of Model Transformations</source>
          , pp.
          <volume>1</volume>
          {
          <fpage>15</fpage>
          . Springer, Berlin (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>G.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rose</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calinescu</surname>
          </string-name>
          , R.:
          <string-name>
            <surname>Cloud</surname>
            <given-names>DSL</given-names>
          </string-name>
          :
          <article-title>A Language for Supporting Cloud Portability by Describing Cloud Entities</article-title>
          .
          <source>In: 2014 CloudMDE Workshop</source>
          . p.
          <article-title>To be published</article-title>
          .
          <source>Valencia</source>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>G.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rose</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calinescu</surname>
            ,
            <given-names>R.:</given-names>
          </string-name>
          <article-title>A Systematic Review of Cloud Lock-In Solutions</article-title>
          . In: 2013 IEEE CloudCom. pp.
          <volume>363</volume>
          {
          <fpage>368</fpage>
          . IEEE,
          <string-name>
            <surname>Bristol</surname>
          </string-name>
          (Dec
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>G.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rose</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calinescu</surname>
          </string-name>
          , R.:
          <article-title>Towards a Model-Driven Solution to the Vendor Lock-In Problem in Cloud Computing</article-title>
          . In: 2013 IEEE CloudCom. pp.
          <volume>711</volume>
          {
          <fpage>716</fpage>
          . IEEE, Bristol,
          <string-name>
            <surname>UK</surname>
          </string-name>
          (Dec
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Sjoberg</surname>
            ,
            <given-names>D.I.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dyba</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jorgensen</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>The Future of Empirical Methods in Software Engineering Research</article-title>
          . In: FOSE '07. pp.
          <volume>358</volume>
          {
          <fpage>378</fpage>
          . IEEE, Minneapolis, MN (May
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Sommerville</surname>
            ,
            <given-names>I.: Software</given-names>
          </string-name>
          <string-name>
            <surname>Engineering</surname>
          </string-name>
          . Addison Wesley, Harlow,
          <volume>8</volume>
          <fpage>edn</fpage>
          . (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Sun</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>White</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gray</surname>
          </string-name>
          , J.:
          <article-title>Model Transformation by Demonstration</article-title>
          .
          <source>In: Model Driven Engineering Languages and Systems</source>
          , pp.
          <volume>712</volume>
          {
          <fpage>726</fpage>
          . Springer, Berlin (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Varro</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Model Transformation by Example</article-title>
          .
          <source>In: Model Driven Engineering Languages and Systems</source>
          , pp.
          <volume>410</volume>
          {
          <fpage>424</fpage>
          . Springer, Berlin (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Strommer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kargl</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kramler</surname>
          </string-name>
          , G.:
          <article-title>Towards Model Transformation Generation By-Example</article-title>
          .
          <source>In: HICSS'07</source>
          . pp.
          <volume>285</volume>
          {
          <fpage>294</fpage>
          . IEEE,
          <string-name>
            <surname>Waikoloa</surname>
          </string-name>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>