<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">A Qualitative Study of Model Transformation Development Approaches: Supporting Novice Developers</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Gabriel</forename><forename type="middle">Costa</forename><surname>Silva</surname></persName>
							<email>gabriel@cs.york.ac.uk</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">University of York</orgName>
								<address>
									<addrLine>Deramore Lane</addrLine>
									<postCode>YO10 5GH</postCode>
									<region>York</region>
									<country key="GB">UK</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Louis</forename><forename type="middle">M</forename><surname>Rose</surname></persName>
							<email>louis.rose@york.ac.uk</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">University of York</orgName>
								<address>
									<addrLine>Deramore Lane</addrLine>
									<postCode>YO10 5GH</postCode>
									<region>York</region>
									<country key="GB">UK</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Radu</forename><surname>Calinescu</surname></persName>
							<email>radu.calinescu@york.ac.uk</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">University of York</orgName>
								<address>
									<addrLine>Deramore Lane</addrLine>
									<postCode>YO10 5GH</postCode>
									<region>York</region>
									<country key="GB">UK</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">A Qualitative Study of Model Transformation Development Approaches: Supporting Novice Developers</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">E75320374D431E2F1E0D746212A79D9F</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T20:13+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Model transformation</term>
					<term>Development</term>
					<term>Analysis</term>
					<term>Comparison</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><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 benefits of Model-Driven Engineering. We qualitatively analyse eight of the most relevant approaches to developing model transformations cited in the literature. Different 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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>The use of Model Transformations (MT) in software engineering leads to several benefits, such as complexity reduction and portability <ref type="bibr" target="#b2">[3]</ref>, <ref type="bibr" target="#b3">[4]</ref>. However, developing MT is a challenge. As Siikarla et al. state in <ref type="bibr" target="#b11">[12]</ref>, "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, defining 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 definition informally in natural language <ref type="bibr" target="#b4">[5]</ref>, based on an "educated guess" <ref type="bibr" target="#b11">[12]</ref>, and implementing the transformation definition using a transformation language <ref type="bibr" target="#b5">[6]</ref>, <ref type="bibr" target="#b17">[18]</ref>. This informal approach leads to several drawbacks <ref type="bibr" target="#b5">[6]</ref>, <ref type="bibr" target="#b17">[18]</ref>, <ref type="bibr" target="#b19">[20]</ref>, such as inconsistency between specification and implementation <ref type="bibr" target="#b4">[5]</ref> and cost increase <ref type="bibr" target="#b7">[8]</ref>.</p><p>Since MT are software <ref type="bibr" target="#b11">[12]</ref>, they need to be engineered as software <ref type="bibr" target="#b5">[6]</ref>, using a systematic process of: (i) specifying problems and requirements <ref type="bibr" target="#b4">[5]</ref>, <ref type="bibr" target="#b5">[6]</ref>, <ref type="bibr" target="#b6">[7]</ref>; (ii) acquiring knowledge about semantic correspondences <ref type="bibr" target="#b18">[19]</ref>, <ref type="bibr" target="#b19">[20]</ref>;</p><p>(iii) modelling source and target models to outline a transformation <ref type="bibr" target="#b6">[7]</ref>, <ref type="bibr" target="#b11">[12]</ref>, <ref type="bibr" target="#b18">[19]</ref>; (iv) creating mappings between meta-models <ref type="bibr" target="#b5">[6]</ref>, <ref type="bibr" target="#b18">[19]</ref>, <ref type="bibr" target="#b19">[20]</ref>; (v) setting up constraints and rules for model mappings <ref type="bibr" target="#b5">[6]</ref>, <ref type="bibr" target="#b18">[19]</ref>, <ref type="bibr" target="#b19">[20]</ref>; (vi) defining transformation architecture <ref type="bibr" target="#b5">[6]</ref>; (vii) implementing the transformation definition using a transformation language <ref type="bibr" target="#b4">[5]</ref>, <ref type="bibr" target="#b5">[6]</ref>, <ref type="bibr" target="#b11">[12]</ref>, <ref type="bibr" target="#b19">[20]</ref>; and (vii) validating the transformation definition <ref type="bibr" target="#b4">[5]</ref>, <ref type="bibr" target="#b5">[6]</ref>, <ref type="bibr" target="#b11">[12]</ref>. Furthermore, analogous to software development, MT can take advantage of further techniques to support its development, such as transformation patterns <ref type="bibr" target="#b6">[7]</ref>, <ref type="bibr" target="#b17">[18]</ref>. As Guerra et al. advocate in <ref type="bibr" target="#b5">[6]</ref>, developing MT "requires systematic engineering processes, notations, methods and tools". Although there are several tools for implementing MT definitions <ref type="bibr" target="#b19">[20]</ref>, there is: (i) little work addressing the whole life-cycle of MT <ref type="bibr" target="#b11">[12]</ref>, <ref type="bibr" target="#b18">[19]</ref>; (ii) lack of guidelines for the systematic development of MT, in particular, to support novice MT developers; and (iii) different 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 <ref type="bibr" target="#b9">[10]</ref>, 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).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Analysis</head><p>In our investigation of M2M transformation development approaches, we identified 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 <ref type="bibr" target="#b5">[6]</ref>, 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 <ref type="bibr" target="#b5">[6]</ref>. 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 <ref type="table" target="#tab_0">1</ref> summarises our analysis.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Study Design</head><p>As Sjoberg, Dyba &amp; Jorgensen define in <ref type="bibr" target="#b15">[16]</ref>, "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 first group consists of foundation concepts of MT, as presented in <ref type="bibr" target="#b2">[3]</ref> and <ref type="bibr" target="#b3">[4]</ref>. 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 <ref type="bibr" target="#b10">[11]</ref>, 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 identified eight research papers presenting approaches supporting M2M transformation development. As in our previous investigation <ref type="bibr" target="#b13">[14]</ref> the IEEE digital library provided the most significant set of primary studies for our research, we decided to use this library as our primary source. Our search identified 121 papers, from which we critically analysed both title and abstract, resulting in two papers selected for full reading <ref type="bibr" target="#b6">[7]</ref>, <ref type="bibr" target="#b7">[8]</ref>. In addition, we were supported by an MDE expert, who suggested another paper <ref type="bibr" target="#b5">[6]</ref>. Finally, by analysing references and citations of previously selected papers, we found five more relevant papers <ref type="bibr" target="#b4">[5]</ref>, <ref type="bibr" target="#b11">[12]</ref>, <ref type="bibr" target="#b17">[18]</ref>, <ref type="bibr" target="#b18">[19]</ref>, <ref type="bibr" target="#b19">[20]</ref>.</p><p>Based on an analogy with software development, we classified the identified approaches as:</p><p>(i) traditional <ref type="bibr" target="#b5">[6]</ref>, <ref type="bibr" target="#b11">[12]</ref> when they advocate an iterative process of refinements, from requirements to MT implementation and test; (ii) by example <ref type="bibr" target="#b17">[18]</ref>, <ref type="bibr" target="#b18">[19]</ref>, <ref type="bibr" target="#b19">[20]</ref> when they concentrate on simplifying the transformation development, focusing on model mappings <ref type="bibr" target="#b8">[9]</ref>; (iii) emergent <ref type="bibr" target="#b4">[5]</ref> when based on emergent software development approaches (e.g., agile), which proposes innovative ways to develop software; and (iv) transformation patterns <ref type="bibr" target="#b6">[7]</ref>, <ref type="bibr" target="#b7">[8]</ref> which enable the identification of recurrent relations in a model transformation, supporting the definition of transformation rules in a reusable way <ref type="bibr" target="#b7">[8]</ref>. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Model Transformation Foundations</head><p>The first 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 first 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 <ref type="table" target="#tab_0">1</ref> enumerates approaches using numbers from (1) to <ref type="bibr" target="#b7">(8)</ref>. These numbers will identify their respective approaches from now on. 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 figure, 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 <ref type="bibr" target="#b4">(5)</ref>, which presented only endogenous examples, suggesting that this approach aims at also supporting endogenous transformations. Examples presented by <ref type="bibr" target="#b1">(2)</ref> suggested that it supports both types of transformations. Likewise, the patterns flattening and mapping, presented by <ref type="bibr" target="#b7">(8)</ref>, 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 difference in this regard lies in how these concepts are implemented by different approaches. For example, whereas (1) set up correspondence examples to map models, and transformation patterns to map meta-model, (6) specified mappings by test cases. Regarding rules, whereas (2) defined it in their low-level design, (3) proposed their automatic generation.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.3">Features</head><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 specific to a particular language for the source and target models/meta-models. Apart from <ref type="bibr" target="#b7">(8)</ref>, that defines 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 <ref type="bibr" target="#b0">(1)</ref>, 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 <ref type="table">2</ref> 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 defined at the metamodel level, most approaches focus on the model rather than the meta-model level. As Wimmer et al. explain in <ref type="bibr" target="#b19">[20]</ref>, meta-models might not define all language concepts explicitly. Regarding the approaches we analysed, the exception is <ref type="bibr" target="#b6">(7)</ref>, which focuses on the meta-model, and both (2) and <ref type="bibr" target="#b7">(8)</ref>, which address both model and meta-model. It is important to note that (8) described their patterns in terms of model, but the definition is made at meta-model level.</p><p>Approaches proposed a number of artefacts to support the developer. Table <ref type="table" target="#tab_0">1</ref> 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 ( <ref type="formula">7</ref>) 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, <ref type="bibr" target="#b6">(7)</ref> does not require a particular tool although it defines several automatic activities. Likewise, although (2) defines 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 define semi-automatic tasks, that require specific tools. Approach (6) also defined the use of specific tools, such as HUTN, EVL, and an adapted version of JUnit.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.4">Applicability</head><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 Table <ref type="table">2</ref>. MT phases covered by each approach analysed to support another -like design patterns can support software development process. We define 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 justifies 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 classified as having an excellent soundness whereas (8) was classified 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 classifications 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, ( <ref type="formula">7</ref>) and ( <ref type="formula">6</ref>) were classed as minimal. Approaches ( <ref type="formula">2</ref>), (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 classified 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 ( <ref type="formula">2</ref>)), which by definition could be applied to support other approaches, all other approaches defined their particular, non-extendable, life-cycle. In some cases, such as that of ( <ref type="formula">5</ref>), the need for tooling support creates additional dependency.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Lessons Learned</head><p>In this section, we summarise lessons learned while transforming a cloud model <ref type="bibr" target="#b12">[13]</ref>, defined as part of our approach to support cloud portability <ref type="bibr" target="#b14">[15]</ref>, into a TOSCA definition. Cloud computing is a computing model in which resources, such as computing, are provided as services through the Internet <ref type="bibr" target="#b0">[1]</ref>. Topology and Orchestration Specification for Cloud Applications (TOSCA) is a standard specification supported by OASIS to enable cloud portability <ref type="bibr" target="#b1">[2]</ref>. 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Developing model transformations is as complex as traditional software development</head><p>Comparing the generic MT process introduced in Section 1 with the traditional software development (TSD) life-cycle, such as waterfall <ref type="bibr" target="#b16">[17]</ref>, we can conclude that both processes are similar. A developer needs requirements to define 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 definition. However, a number of questions arise when starting the requirement definition for a MT. In contrast to TSD, in which one defines 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 <ref type="bibr" target="#b5">[6]</ref> is a relevant contribution since it enables requirement decomposition and the creation of links between requirements to set up dependencies. However, to define 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 defined 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 defining the requirements. In addition, we had to test if these correspondences made sense. In this regard, the test-driven approach proposed in <ref type="bibr" target="#b4">[5]</ref> was useful. A test-case is an artefact which outlines these semantic correspondences. Then, by implementing the transformation, this initial assumption is confirmed or refuted. However, from a novice MT developer, the complexity involved in defining requirements for MT is far harder than in TSD. In addition, requirement definition and mapping definition 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Models work well as examples, but not as the main transformation drivers</head><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 effort. 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 <ref type="bibr" target="#b18">[19]</ref> and <ref type="bibr" target="#b19">[20]</ref>, define in their first 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-defined 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 specification, it meant that the transformation succeeded.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Other lessons -</head><p>Although not yet addressing all MT development concerns, the analysed approaches provide very useful contributions. Overall, we concluded that, like MT area, the identified approaches are still maturing. As shown by Table <ref type="table" target="#tab_0">1</ref>, most of them were neither extensively evaluated nor sound enough. However, they provide several insights about performing MT, such as correspondence examples <ref type="bibr" target="#b11">[12]</ref>, requirements diagram <ref type="bibr" target="#b5">[6]</ref>, and test-cases <ref type="bibr" target="#b4">[5]</ref>; -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 identified problems with different 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Conclusion</head><p>In our investigation of M2M transformation development, we identified 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, classified 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.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="4,136.16,135.76,345.21,238.65" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="6,136.16,135.76,343.74,219.30" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 .</head><label>1</label><figDesc>Summary of key characteristics of MT approaches</figDesc><table /></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Acknowledgments. This work was funded in part by CNPq -Brazil.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">A view of cloud computing</title>
		<author>
			<persName><forename type="first">M</forename><surname>Armbrust</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Stoica</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Zaharia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Fox</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Griffith</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">D</forename><surname>Joseph</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Katz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Konwinski</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Lee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Patterson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Rabkin</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Communications of the ACM</title>
		<imprint>
			<biblScope unit="volume">53</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="50" to="58" />
			<date type="published" when="2010-04">Apr 2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">TOSCA: Portable Automated Deployment and Management of Cloud Applications</title>
		<author>
			<persName><forename type="first">T</forename><surname>Binz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Breitenbücher</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Kopp</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Leymann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Advanced Web Services</title>
				<editor>
			<persName><surname>Po</surname></persName>
		</editor>
		<meeting><address><addrLine>New York</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="527" to="549" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m" type="main">Model-Driven Software Engineering in Practice</title>
		<author>
			<persName><forename type="first">M</forename><surname>Brambilla</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Cabot</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Wimmer</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2012">2012</date>
			<publisher>Morgan &amp; Claypool Publishers</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Model-driven Development of Complex Software: A Research Roadmap</title>
		<author>
			<persName><forename type="first">R</forename><surname>France</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Rumpe</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Future of Software Engineering (FOSE &apos;07)</title>
				<meeting><address><addrLine>Minneapolis, MN</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2007-05">May 2007</date>
			<biblScope unit="page" from="37" to="54" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Test-Driven Development of Model Transformations</title>
		<author>
			<persName><forename type="first">P</forename><surname>Giner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Pelechano</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">MDE Languages and Systems</title>
				<meeting><address><addrLine>Berlin</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="748" to="752" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Engineering model transformations with transML</title>
		<author>
			<persName><forename type="first">E</forename><surname>Guerra</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>De Lara</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">S</forename><surname>Kolovos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">F</forename><surname>Paige</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><forename type="middle">M</forename><surname>Santos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software &amp; Systems Modeling</title>
		<imprint>
			<biblScope unit="volume">12</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="555" to="577" />
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Reusable Model Transformation Patterns</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">E</forename><surname>Iacob</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">W A</forename><surname>Steen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Heerink</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">12th Enterprise Distributed Object Computing Conference Workshops</title>
				<meeting><address><addrLine>Munich</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2008-09">2008. Sep 2008</date>
			<biblScope unit="page" from="1" to="10" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Method of constructing model transformation rule based on reusable pattern</title>
		<author>
			<persName><forename type="first">L</forename><surname>Jin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Guisheng</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">2010 International Conference on Computer Application and System Modeling</title>
				<meeting><address><addrLine>ICCASM; Taiyuan</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2010-10">2010. Oct 2010</date>
			<biblScope unit="page" from="519" to="524" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Model Transformation By-Example: A Survey of the First Wave</title>
		<author>
			<persName><forename type="first">G</forename><surname>Kappel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Langer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Retschitzegger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Schwinger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Wimmer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Conceptual Modelling and Its Theoretical Foundations</title>
				<editor>
			<persName><forename type="first">A</forename><surname>Düsterhöft</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><surname>Klettke</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">K</forename><forename type="middle">D</forename><surname>Schewe</surname></persName>
		</editor>
		<meeting><address><addrLine>Berlin Heidelberg; Berlin</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="197" to="215" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Comparative Evaluation of Model Transformation Specification Approaches</title>
		<author>
			<persName><forename type="first">K</forename><surname>Lano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Kolahdouz-Rahimi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Poernomo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">International Journal of Software and Informatics</title>
		<imprint>
			<biblScope unit="volume">6</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="233" to="269" />
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Qualitative Methods</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">B</forename><surname>Seaman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Guide to Advanced Empirical Software Engineering</title>
				<meeting><address><addrLine>London, London</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="35" to="62" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Transformations Have to be Developed ReST Assured</title>
		<author>
			<persName><forename type="first">M</forename><surname>Siikarla</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Laitkorpi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Selonen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Systä</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Theory and Practice of Model Transformations</title>
				<editor>
			<persName><forename type="first">A</forename><surname>Vallecillo</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><surname>Gray</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Pierantonio</surname></persName>
		</editor>
		<meeting><address><addrLine>Berlin</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="1" to="15" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Cloud DSL: A Language for Supporting Cloud Portability by Describing Cloud Entities</title>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">C</forename><surname>Silva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Rose</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Calinescu</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">CloudMDE Workshop</title>
				<meeting><address><addrLine>Valencia</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2014">2014. 2014</date>
		</imprint>
	</monogr>
	<note>To be published</note>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">A Systematic Review of Cloud Lock-In Solutions</title>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">C</forename><surname>Silva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">M</forename><surname>Rose</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Calinescu</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IEEE CloudCom</title>
				<meeting><address><addrLine>Bristol</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2013-12">2013. Dec 2013</date>
			<biblScope unit="page" from="363" to="368" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Towards a Model-Driven Solution to the Vendor Lock-In Problem in Cloud Computing</title>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">C</forename><surname>Silva</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">M</forename><surname>Rose</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Calinescu</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">IEEE CloudCom</title>
				<meeting><address><addrLine>Bristol, UK</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2013-12">2013. Dec 2013</date>
			<biblScope unit="page" from="711" to="716" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">The Future of Empirical Methods in Software Engineering Research</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">I K</forename><surname>Sjoberg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Dyba</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Jorgensen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">FOSE &apos;07</title>
				<meeting><address><addrLine>Minneapolis, MN</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2007-05">May 2007</date>
			<biblScope unit="page" from="358" to="378" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<monogr>
		<title level="m" type="main">Software Engineering</title>
		<author>
			<persName><forename type="first">I</forename><surname>Sommerville</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2007">2007</date>
			<publisher>Addison Wesley</publisher>
			<pubPlace>Harlow</pubPlace>
		</imprint>
	</monogr>
	<note>8 edn</note>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Model Transformation by Demonstration</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Sun</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>White</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Gray</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Model Driven Engineering Languages and Systems</title>
				<meeting><address><addrLine>Berlin</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="712" to="726" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Model Transformation by Example</title>
		<author>
			<persName><forename type="first">D</forename><surname>Varró</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Model Driven Engineering Languages and Systems</title>
				<meeting><address><addrLine>Berlin</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="410" to="424" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Towards Model Transformation Generation By-Example</title>
		<author>
			<persName><forename type="first">M</forename><surname>Wimmer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Strommer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Kargl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Kramler</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">HICSS&apos;07</title>
				<meeting><address><addrLine>Waikoloa</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="285" to="294" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
