<?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">Reality Check for Model Transformation Reuse: The ATL Transformation Zoo Case Study</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">A</forename><surname>Kusel</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Johannes Kepler University Linz</orgName>
								<address>
									<country key="AT">Austria</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">J</forename><surname>Schönböck</surname></persName>
							<affiliation key="aff1">
								<orgName type="institution">Upper Austrian University of Applied Sciences Hagenberg</orgName>
								<address>
									<country key="AT">Austria</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">M</forename><surname>Wimmer</surname></persName>
							<affiliation key="aff2">
								<orgName type="institution">Vienna University of Technology</orgName>
								<address>
									<country key="AT">Austria</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">W</forename><surname>Retschitzegger</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Johannes Kepler University Linz</orgName>
								<address>
									<country key="AT">Austria</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">W</forename><surname>Schwinger</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Johannes Kepler University Linz</orgName>
								<address>
									<country key="AT">Austria</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">G</forename><surname>Kappel</surname></persName>
							<affiliation key="aff2">
								<orgName type="institution">Vienna University of Technology</orgName>
								<address>
									<country key="AT">Austria</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Reality Check for Model Transformation Reuse: The ATL Transformation Zoo Case Study</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">C051E7773CC445DFC9DB8667D694396C</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-23T22:46+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>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Model transformations play a major role in model-driven engineering. For increasing development productivity as well as quality of model transformations, different kinds of reuse mechanisms have been proposed. However, it remains unclear to which extent reuse mechanisms have made their way into practical application. Thus, this paper presents an empirical study on the ATL Transformation Zoo to analyze the application frequency of reuse mechanisms. For this, we developed a semi-automated process for extracting transformation projects from the ATL Transformation Zoo, which are classified and analyzed with respect to the application frequency of reuse mechanisms. Finally, limitations of current reuse mechanisms, which potentially hinder their practical applicability, are critically reflected, pointing out further research directions.</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>Model-Driven Engineering (MDE) <ref type="bibr" target="#b14">[15]</ref> proposes an active use of models to conduct the different phases of software development. Provided the fact that everything is a model, every systematic manipulation thereof may be considered a model transformation <ref type="bibr" target="#b15">[16,</ref><ref type="bibr" target="#b17">18]</ref>. Consequently, model transformations are vital for MDE. Given their prominent role and their use in increasingly complex scenarios, appropriate reuse mechanisms are indispensable to increase development productivity as well as quality, e.g., in terms of maintainability of model transformations. To address this need, a plethora of reuse mechanisms has been proposed by the research community, cf., e.g., <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b1">2,</ref><ref type="bibr" target="#b2">3,</ref><ref type="bibr" target="#b3">4,</ref><ref type="bibr" target="#b6">7,</ref><ref type="bibr" target="#b7">8,</ref><ref type="bibr" target="#b9">10,</ref><ref type="bibr" target="#b10">11,</ref><ref type="bibr" target="#b12">13,</ref><ref type="bibr" target="#b16">17,</ref><ref type="bibr" target="#b20">21,</ref><ref type="bibr" target="#b21">22,</ref><ref type="bibr" target="#b22">23,</ref><ref type="bibr" target="#b24">25,</ref><ref type="bibr" target="#b25">26]</ref>, to mention just a few. In <ref type="bibr" target="#b8">[9]</ref>, we have surveyed and categorized several different reuse mechanisms for model transformations by using a conceptual comparison framework. However, it remains still unclear, if at all and how often reuse mechanisms are employed in practical settings.</p><p>To shed some light on this area and to estimate the application frequency of current reuse mechanisms for model transformations, we performed a case study based on a real-world transformation repository and its population. In particular, following the guidelines for conducting empirical explanatory case studies by Runeson and Höst <ref type="bibr" target="#b13">[14]</ref>, we analyzed the population of the Atlas Transformation Language (ATL) Transformation Zoo <ref type="foot" target="#foot_0">4</ref> (in the following denoted as "Zoo" for short) <ref type="bibr" target="#b5">[6]</ref>. The Zoo has been chosen, because to the best of our knowledge, this repository is-at the time of writing-offering the most comprehensive collection of publicly available model transformations. Furthermore, the Zoo has been source for several previous studies concerning, e.g., the evaluation of model metrics <ref type="bibr" target="#b23">[24]</ref>, the validation of the results of metamodel matching tools <ref type="bibr" target="#b4">[5]</ref>, or the estimation of how end-users employ ATL in practice <ref type="bibr" target="#b18">[19]</ref>, to mention just a few. Thus, we consider the population of the Zoo as a representative set of model transformations. For analyzing the Zoo, we developed a semi-automated process for extracting transformation projects from the Zoo. The extracted transformation projects have then been classified and analyzed with respect to indicators for the application of reuse mechanisms. The results show that up to now reuse mechanisms are rarely used in practice. Thus, we conclude by discussing potential barriers that might harm the practical applicability, thereby pointing to further research topics.</p><p>Outline. Section 2 discusses the basic setup of the case study and gives an impression on the transformations that are available in the Zoo. The case study as well as the results thereof are presented in Section 3, whereby Section 4 critically reflects the results and discusses threats to validity, before Section 5 concludes the paper.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Case Study Setup</head><p>To estimate the application frequency of current reuse mechanisms for model transformations, we conducted an empirical explanatory case study in order to analyze the population of the Zoo. The study was performed to quantitatively assess the application frequency of reuse mechanisms in model transformations of the Zoo. More specifically, we aimed at answering the following research question:</p><p>With which frequency are reuse mechanisms currently applied in model transformation projects?</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Case Study Design</head><p>For performing the analysis of the Zoo's population, we extracted all transformation projects from the Zoo's website <ref type="foot" target="#foot_1">5</ref> . To reason about the Zoo's population, not only the transformation definitions are required, but also accompanying artifacts such as the input and output metamodels, launch configurations, and build scripts. For instance, the metamodels are of interest to relate their size and structure to the size and structure of model transformations. The launch configuration files and build scripts for running the transformations are an important source to reason about the execution processes of the transformations, e.g., how a set of transformations interact.</p><p>The Zoo provides a collection of 103 different transformation projects, mostly provided as .zip archives, containing 1689 files in total. Before starting the automated analysis of the transformation projects in a subsequent step, the relevant files (transformations, metamodels, launch configurations, and build scripts) have been extracted from the .zip archives on basis of their file extensions. Consequently, we selected 873 out of the 1689 files: 231 ATL transformations (.atl files), 525 metamodels (.ecore and .km3 files), 57 build scripts (.build or .xml files), and 95 launch scripts (.launch files). The remaining 781 files, being, e.g., readme files for documentation or test input/output models, have not been considered in this case study (cf. Fig. <ref type="figure" target="#fig_0">1(a)</ref>). Furthermore, since transformations have been reused in different projects, duplicates may exist. In particular, we regarded two transformations as duplicate, if they have the same name and identical metric values for their intrinsic properties, i.e., the same number of rules and helpers. In this respect, 40 duplicates have been removed resulting in 191 transformations for further investigation. The remaining transformations may be further divided into three different kinds of ATL transformations. First, a transformation may either be (i) a model-to-model transformation (168), (ii) a library of reusable helpers <ref type="bibr" target="#b16">(17)</ref>, which are importable to other transformations, or (iii) queries <ref type="bibr" target="#b5">(6)</ref>, which derive information from models by using Object Constraint Language 6 (OCL) expressions, e.g., to select a set of model elements from an input model, as depicted in Fig. <ref type="figure" target="#fig_0">1(b</ref>).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Characteristics of the Zoo</head><p>To give an impression on the complexity of the transformation tasks supported, we list in the following some meta-information about the transformations. First, the transformation size ranges from a minimum of 1 rule to a maximum of 84 rules. Concerning the numbers of input and output metamodels, the majority are 1-to-1 transformations, but there is also a small amount of 1-to-n (2 transformations), n-to-1 (12 transformations), and n-to-m transformations (2 transforma- 3 Analysis of the ATL Transformation Zoo After introducing the setup of the case study, it is described to which extent the reuse mechanisms available for ATL are practically applied by transformations in the Zoo, whereby we distinguish between a fully automatic detection and a semiautomatic detection. For each reuse mechanism, we (i) shortly characterize the according reuse mechanism, (ii) discuss, how it might be (semi-)automatically detected, (iii) analyze the results, and finally (iv) provide a critical discussion thereof. The results are summarized in Table <ref type="table" target="#tab_0">1</ref>. For calculating the relative application frequency, we refer to the ratio between applications detected and total amount of model transformations (168). However, for the application frequency of transformation chains, we employ the ratio between applications and total amount of transformation projects (103), because a chain is not tailored to one transformation, but to a complete transformation project.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Automatically Detected Reuse Mechanisms</head><p>Reuse mechanisms, whose applications might be detected automatically include functions, inheritance, superimposition, higher-order transformations (HOTs), and transformation orchestration, as described in the following.</p><p>Functions. As well-known from procedural programming languages, functions in transformation languages provide means to extract and to reuse recurring transformation logic. In ATL, functions are called helpers and are defined in OCL. The application frequency of functions in ATL transformations may be detected automatically by querying, if helpers are contained in a transformation as indicated by the following OCL query.</p><p>T r a n s f o r m a t i o n . a l l I n s t a n c e s ( ) −&gt; s e l e c t ( t | t . h e l p e r s . notEmpty ( ) )</p><p>When analyzing the result, it may be seen that helpers are used in nearly 80% of the inspected transformations (cf. Table <ref type="table" target="#tab_0">1</ref>) and the higher the amount of rules within a transformation, the higher the amount of helpers is (cf. Fig. <ref type="figure" target="#fig_2">2(a)</ref>). This might be due to the fact that helpers are included, since the very first version of ATL and also because functions are a well-known reuse mechanism from traditional software engineering. Furthermore, functions might be that popular, because they are expressed in OCL, and consequently, there is no further learning curve for the transformation designer, since she is typically familiar with OCL.</p><p>Rule Inheritance. Inheritance between meta-classes in metamodels necessitates the usage of inheritance between transformation rules to avoid code duplication, e.g., duplicate assignments. The application frequency of rule inheritance may be automatically detected by searching for rules that extend other rules, which is indicated by the reference Rule.superRule in the ATL metamodel and exploited in the following OCL query. Although, a tremendous amount of metamodels of the Zoo employs inheritance (around 75%), rule inheritance is rarely used in the Zoo (6 applications, only), 7  whereby there is a strong correlation (correlation coefficient about 0.90) between the amount of meta-classes and the amount of inheritance relationships (cf. Fig. <ref type="figure" target="#fig_2">2</ref>(b)). Consequently, rule inheritance would be especially beneficial for large metamodels. However, most surprisingly, inheritance between rules has been used rather by middle-sized transformations. A reason for the poor adoption of inheritance in model transformations might be that the support for inheritance in ATL is still limited, e.g., the declarative part of ATL is considered in rule inheritance <ref type="bibr" target="#b26">[27]</ref>, only. Furthermore, there is only limited support for static semantic checks, aggravating the correct application of rule inheritance. Module Import. Module import allows to build the union of transformation rules from different model transformations. Thereby, rules or helpers may be 7 It has to be noted that inheritance has been introduced in the ATL 2006 compiler.</p><p>This induces that rule inheritance may have been theoretically employed in about 60% of all transformations. redefined, i.e., a rule or a function may be replaced by a new one, and additional rules and functions may be added. This concept is known in ATL as superimposition <ref type="bibr" target="#b24">[25]</ref>. To automatically recognize superimposition, the launch scripts have been analyzed, since superimposition is introduced at load-time in ATL (cf. OCL query below). Thereby, superimposition is assumed to be used, if a launch script contains an entry with a key Superimpose and a non-empty value. Although superimposition has been introduced in 2007 already, currently no transformation in the Zoo applies this reuse mechanism. A reason for this might be that this mechanism is rather coarse-grained, i.e., rules that should be redefined must be redefined from scratch without the possibility of reusing parts of the refined rule. Consequently, it would be beneficial, if superimposition could be combined with inheritance. Unfortunately, superimposition is not compatible with inheritance, i.e., the rule inheritance hierarchy is broken, if a superrule is redefined with superimposition. Furthermore, ATL imports modules at load-time, whereas numerous other transformation languages import modules at compiletime <ref type="bibr" target="#b8">[9]</ref>, entailing the advantage that static checks may be applied.</p><p>Higher Order Transformation (HOT). HOTs are model transformations that either take a model transformation as input, produce a model transformation as output, or do both and may thus, be used for transformation synthesis, transformation analysis, transformation (de-)composition, or transformation modification <ref type="bibr" target="#b20">[21]</ref>. For automatically detecting the usage of a HOT, one has to analyze, whether the input metamodel and/or the output metamodel of a transformation is of type ATL as done by the following OCL query.</p><p>When analyzing the transformations of the Zoo, one may find that the application frequency for HOTs is around 4%. HOTs are available in the Zoo, especially for (i) transformation synthesis, e.g., to produce from metamodels a copying transformation for their models and for (ii) transformation modification, e.g., to enrich ATL transformations by adding debugging functionality or tracing capabilities. The low application frequency of 4% may result from the challenging development of HOTs <ref type="bibr" target="#b19">[20]</ref> and from the specialized application cases.</p><p>Transformation Orchestration. Transformation orchestration is used to reuse transformations in the large, i.e., whole transformations at once. For orchestrating model transformations, build files on basis of ANT<ref type="foot" target="#foot_3">8</ref> may be used. Therefore, the automatic detection of transformation orchestrations relies on the recognition, if more than one task for executing a transformation is defined in the build script as formalized by the following OCL query. When investigating the Zoo, transformation orchestration is used in around 11% of the projects, especially in transformation projects that establish bridges between technical spaces. Some transformation chains are quite complex such as employing not only sequences, but also loops of transformation executions, i.e., a transformation is employed for an arbitrary sized collection of models. In the largest model transformation chain, nine transformations are involved. Finally, also HOTs are used in the chains to produce transformations on-the-fly that are applied directly in the later phases of the transformation process.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Semi-Automatically Detected Reuse Mechanisms</head><p>Besides those reuse mechanisms that might be detected fully automatically, some reuse mechanisms allow for a semi-automatic detection, only, including transformation product lines (TPLs), external domain specific languages (DSLs), and generic transformations (cf. <ref type="bibr" target="#b8">[9]</ref> for details). In this context, TPLs allow to configure a transformation externally, i.e., to use, e.g., feature model to configure a transformation and by this to reuse the already predefined transformation rules. An example for this might be a Class2Relational transformation, which allows to follow different object-relational mapping strategies, which might be configurable by a feature model. External DSLs on top of ATL allow to simplify the specification of recurring transformation logic by dedicated language constructs, which finally get translated into ATL code. Finally, generic transformations allow to parameterize transformation logic with types, and thus, allow to decouple transformation logic from concrete metamodel types. Current best practice in ATL to implement a TPL is to use an additional input model to configure a transformation. Thus, we selected each transformation having more than one input model as a potential candidate that has to be inspected manually. External DSLs and generic transformations typically employ a HOT that either generates a new ATL transformation (external DSL) or that rewrites an existing one (generic transformations). Consequently, hints for the application of these reuse mechanisms may be detected by analyzing, if the ATL metamodel is used as the target metamodel of a transformation (cf. OCL query below). The resulting hints need to be verified by manual inspection of the transformations. → n a m e = ' A T L ' ) )</p><p>Although candidate transformations for these reuse mechanisms have been detected, the manual inspection thereof showed that none of these reuse mechanisms have been applied in the transformations of the Zoo, which might be due to the fact that those reuse mechanisms just emerged recently and are thus, not reflected in the Zoo. Finally, please note that we did not investigate internal DSLs defined for ATL (e.g., HNL <ref type="bibr" target="#b1">[2]</ref>, ATL4pros <ref type="bibr" target="#b11">[12]</ref>), and reflection as provided by Mistral <ref type="bibr" target="#b7">[8]</ref>, because these approaches require for a modified ATL execution environment and the transformations contained in the Zoo are executable with the official distribution of ATL, only.</p><p>We now present (i) a critical discussion of the results and (ii) we elaborate on several factors that may jeopardize the validity of our results.</p><p>Well-known Reuse Mechanisms Made their Way into Practice. With respect to the posed research question, one may see that the frequency of the application of reuse mechanisms varies strongly between the different reuse mechanisms. Helpers are frequently used in transformations. This seems quite natural, because (i) factorization of recurring logic to functions is well-known from procedural programming languages, (ii) OCL, which is mainly used to define helpers, is a well-known language for transformation developers, and (iii) helpers have been provided from the early stages of ATL -thus, it is also well-documented in the ATL user guide and well-demonstrated by several examples. Furthermore, at least some transformations apply rule inheritance, which is comparable to inheritance in object-oriented programming languages. Finally, orchestration is also a common and well-understood reuse mechanism in software engineering and has achieved practical application.</p><p>Reuse Occurs in a Narrow Scope. By further investigating the applied reuse mechanisms, it may be seen that reuse occurs most often within a single transformation, only, i.e., reuse across transformation boundaries is performed rarely. Thus, it may be concluded that reuse mechanisms that have a direct and instant benefit for the transformation developer, when creating a single transformation are applied more frequently. Other reuse mechanisms such as TPLs, generic transformations, and external DSLs, which unfold their full potential over the time and require more complex abstraction and specialization mechanisms, still have to wait for their frequent application.</p><p>Challenging Abstraction/Specialization may Hamper Application. Any reusable artifact needs abstraction as well as specialization to be adapted to the current context. However, the abstraction of reusable artifacts is often challenging. This applies especially to HOTs as also stated by Tisi et al. <ref type="bibr" target="#b19">[20]</ref>, where the user must be familiar with the abstract syntax of the transformation language. In case of generic transformations, specialization requires that mappings between the metamodels of the transformation to reuse and the new transformation have to be defined by the transformation designer in order to overcome heterogeneities between the involved metamodels.</p><p>Threats to Validity. Internal Validity: Are There Factors, Which Might Affect the Results in the Context of ATL? Applications of superimposition may have not been found, because of missing launch scripts. Sometimes screenshots are provided, only that may not be processed automatically to detect applications of reuse mechanisms. The same holds for missing build scripts in case of transformation chains or chains that are executed manually or by Java programs.</p><p>The results may be biased, because only ATL transformations residing in the Zoo have been analyzed. Latest trends in transformation reuse may have not been reflected, since the latest transformations stem from October 2010.</p><p>External Validity: To What Extent is it Possible to Generalize the Findings? So far, we cannot claim any results outside the context of the Zoo. Nevertheless, the analysis methods may be applied to arbitrary transformation repositories to compute the frequency of the employed reuse mechanisms. Thus, replaying the presented case study for other transformation languages and repositories should enable the possibility of reasoning about the reuse mechanism applications for those languages/repositories as well.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusion</head><p>In this paper, we reported on a case study for analyzing the Zoo's population with respect to the application frequency of reuse mechanisms. For this, we developed a framework for analyzing the population in a semi-automated way. This framework is publicly available and is customizable to investigate other language usage aspects in the future as well.</p><p>We see the following topics as possible next steps of this work. First, by having transformations in the Zoo identified that are not using rule inheritance, although the source and target metamodels are heavily using inheritance between meta-classes, would allow to experiment with automated refactorings <ref type="bibr" target="#b27">[28]</ref> for improving the transformations' designs. Second, we plan to explore additional transformations that are publicly available but outside of the Zoo. Finally, we also want to expand our work to other transformation languages that offer reuse mechanisms such as QVT.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>6Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Overview on the ATL Transformation Zoo.</figDesc><graphic coords="3,148.69,575.72,97.13,56.45" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head></head><label></label><figDesc>T r a n s f o r m a t i o n . a l l I n s t a n c e s ( ) −&gt; s e l e c t ( t | t . r u l e s −&gt; e x i s t s ( r | r . → s u p e r R u l e &lt;&gt; O c l U n d e f i n e d ) )</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Overview on relationships between different element types.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>L a u n</head><label></label><figDesc>c h S c r i p t . a l l I n s t a n c e s ( ) −&gt; s e l e c t ( l s | l s . e n t r i e s −&gt; e x i s t s ( e n t r y | → e n t r y . k e y = ' S u p e r i m p o s e ' and e n t r y . v a l u e &lt;&gt; O c l U n d e f i n e d ) )</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>B u i l</head><label></label><figDesc>d S c r i p t . a l l I n s t a n c e s ( ) −&gt; s e l e c t ( b s | b s . t a s k s −&gt; s e l e c t ( t | t . n a m e = ' → a t l . l a u n c h ' or t . n a m e = ' a m 3 . a t l ' ) −&gt; s i z e ( ) &gt; 1 )</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>T</head><label></label><figDesc>r a n s f o r m a t i o n . a l l I n s t a n c e s ( ) −&gt; s e l e c t ( t | t . i n M o d e l s −&gt; s i z e ( ) &gt; 1 )</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head></head><label></label><figDesc>T r a n s f o r m a t i o n . a l l I n s t a n c e s ( ) −&gt; s e l e c t ( t | t . o u t M o d e l s −&gt; e x i s t s ( m | m .</figDesc></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>Reuse mechanisms' applications and frequency.</figDesc><table><row><cell></cell><cell></cell><cell>Reuse Mechanism</cell><cell>Total Number of Applications</cell><cell>Relative Application Frequency</cell></row><row><cell cols="2">Automatic Detection</cell><cell>Functions Rule Inheritance Superimposition HOTs Transformation Orchestration</cell><cell>134 6 0 7 11</cell><cell>79% 4 % 0 % 4 % 11%</cell></row><row><cell>Semi-Automatic</cell><cell>Detection</cell><cell>TPLs External DSL Generic Transformations</cell><cell>0 0 0</cell><cell>0 % 0 % 0 %</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_0">http://www.eclipse.org/m2m/atl/atlTransformations</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_1">The complete data of this snapshot is available on our project website http://www. modeltransformation.net</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_2">T r a n s f o r m a t i o n . a l l I n s t a n c e s ( ) −&gt; s e l e c t ( t | t . m o d e l s −&gt; e x i s t s ( m | m . n a m e = → ' A T L ' ) )</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="8" xml:id="foot_3">http://wiki.eclipse.org/ATL/User_Guide_-_The_ATL_Tools#ATL_ant_tasks</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Acknowledgements. This work has been funded by bmvit under grants ffg bridge 832160 and ffg fit-it 825070 and 829598, ffg Basisprogramm 838181, and by öad under grant AR18/2013 and UA07/2013. We would like to thank Marcel F. van Amstel for providing us the ATL2Metrics transformations which has been the basis for computing several metrics for the Zoo's population.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Generic Model Transformations: Write Once, Reuse Everywhere</title>
		<author>
			<persName><forename type="first">J</forename><surname>Cuadrado</surname></persName>
		</author>
		<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>
	</analytic>
	<monogr>
		<title level="m">ICMT&apos;11</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2011">2011</date>
			<biblScope unit="page" from="62" to="77" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Experiments with a High-Level Navigation Language</title>
		<author>
			<persName><forename type="first">J</forename><surname>Cuadrado</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Jouault</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">García</forename><surname>Molina</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Bézivin</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICMT&apos;09</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="229" to="238" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">A Model-Based Approach to Families of Embedded Domain-Specific Languages</title>
		<author>
			<persName><forename type="first">J</forename><surname>Cuadrado</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">G</forename><surname>Molina</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE TSE</title>
		<imprint>
			<biblScope unit="volume">35</biblScope>
			<biblScope unit="issue">6</biblScope>
			<biblScope unit="page" from="825" to="840" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Towards the Efficient Development of Model Transformations using Model Weaving and Matching Transformations</title>
		<author>
			<persName><forename type="first">M</forename><surname>Del Fabro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Valduriez</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">SoSyM</title>
		<imprint>
			<biblScope unit="volume">8</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="305" to="324" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Automatizing the Evaluation of Model Matching Systems</title>
		<author>
			<persName><forename type="first">K</forename><surname>Garcés</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Kling</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Jouault</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Workshop on Matching and Meaning</title>
				<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Transforming Models with ATL</title>
		<author>
			<persName><forename type="first">F</forename><surname>Jouault</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Kurtev</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the Int. Conf. on Satellite Events at the MoDELS, MoDELS&apos;05</title>
				<meeting>of the Int. Conf. on Satellite Events at the MoDELS, MoDELS&apos;05</meeting>
		<imprint>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="128" to="138" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">MCC: A Model Transformation Environment</title>
		<author>
			<persName><forename type="first">A</forename><surname>Kleppe</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ECMDA-FA&apos;06</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="173" to="187" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Application of Reflection in a Model Transformation Language</title>
		<author>
			<persName><forename type="first">I</forename><surname>Kurtev</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">SoSyM</title>
		<imprint>
			<biblScope unit="volume">9</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="311" to="333" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title level="m" type="main">Reuse in model-to-model transformation languages: Are we there yet? SoSyM</title>
		<author>
			<persName><forename type="first">A</forename><surname>Kusel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Schönböck</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Wimmer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Kappel</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>
		<imprint>
			<date type="published" when="2013">2013</date>
			<biblScope unit="page" from="1" to="31" />
		</imprint>
	</monogr>
	<note>online first</note>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Generic and Reflective Graph Transformations for Checking and Enforcement of Modeling Guidelines</title>
		<author>
			<persName><forename type="first">E</forename><surname>Legros</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Amelunxen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Klar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Schürr</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Visual Language Computing</title>
		<imprint>
			<biblScope unit="volume">20</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="252" to="268" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Transformation Composition Modelling Framework</title>
		<author>
			<persName><forename type="first">J</forename><surname>Oldevik</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">DAIS&apos;05</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="page" from="108" to="114" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Extending ATL for Native UML Profile Support: An Experience Report</title>
		<author>
			<persName><forename type="first">A</forename><surname>Randak</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Martínez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Wimmer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">MtATL&apos;11</title>
				<imprint>
			<date type="published" when="2011">2011</date>
			<biblScope unit="page" from="49" to="62" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Orchestrating ATL Model Transformations</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">E</forename><surname>Rivera</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Ruiz-Gonzalez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Lopez-Romero</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Bautista</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Vallecillo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">MtATL&apos;09</title>
				<imprint>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="34" to="46" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Guidelines for Conducting and Reporting Case Study Research in Software Engineering</title>
		<author>
			<persName><forename type="first">P</forename><surname>Runeson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Höst</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Empirical Soft. Eng</title>
		<imprint>
			<biblScope unit="volume">14</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="131" to="164" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Model-Driven Engineering</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">C</forename><surname>Schmidt</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Computer</title>
		<imprint>
			<biblScope unit="volume">39</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="25" to="31" />
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Model Transformation: The Heart and Soul of Model-Driven Software Development</title>
		<author>
			<persName><forename type="first">S</forename><surname>Sendall</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Kozaczynski</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Software</title>
		<imprint>
			<biblScope unit="volume">20</biblScope>
			<biblScope unit="issue">5</biblScope>
			<biblScope unit="page" from="42" to="45" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Introducing Variability Rules in ATL for Managing Variability in MDE-based Product Lines</title>
		<author>
			<persName><forename type="first">M</forename><surname>Sijtema</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">MtATL&apos;10</title>
				<imprint>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="39" to="49" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<monogr>
		<title level="m" type="main">A Multi-Paradigm Foundation for Model Transformation Language Engineering</title>
		<author>
			<persName><forename type="first">E</forename><surname>Syriani</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2011-02">February 2011</date>
		</imprint>
		<respStmt>
			<orgName>McGill University</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Ph.D. Thesis</note>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Corpus-based analysis of domain-specific languages</title>
		<author>
			<persName><forename type="first">R</forename><surname>Tairas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Cabot</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">SoSyM</title>
		<imprint>
			<biblScope unit="page" from="1" to="16" />
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
	<note>online first</note>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">Improving Higher-Order Transformations Support in ATL</title>
		<author>
			<persName><forename type="first">M</forename><surname>Tisi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Cabot</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Jouault</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICMT&apos;10</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="215" to="229" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">On the Use of Higher-Order Model Transformations</title>
		<author>
			<persName><forename type="first">M</forename><surname>Tisi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Jouault</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Fraternali</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Ceri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Bézivin</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ECMDA-FA&apos;09</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="18" to="33" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">UniTI: A Unified Transformation Infrastructure</title>
		<author>
			<persName><forename type="first">B</forename><surname>Vanhooff</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Ayed</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Van Baelen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Joosen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Berbers</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">MODELS&apos;07</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="31" to="45" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">Generic and Meta-Transformations for Model Transformation Engineering</title>
		<author>
			<persName><forename type="first">D</forename><surname>Varró</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Pataricza</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">UML&apos;04</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page" from="290" to="304" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">Measuring Model Repositories</title>
		<author>
			<persName><forename type="first">E</forename><surname>Vépa</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Bézivin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Bruneliére</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Jouault</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Workshop on Model Size Metrics (MSM&apos;06)</title>
				<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<analytic>
		<title level="a" type="main">Module Superimposition: A Composition Technique for Rule-based Model Transformation Languages</title>
		<author>
			<persName><forename type="first">D</forename><surname>Wagelaar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Van Der Straeten</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Deridder</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">SoSyM</title>
		<imprint>
			<biblScope unit="volume">9</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="285" to="309" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">Surviving the Heterogeneity Jungle with Composite Mapping Operators</title>
		<author>
			<persName><forename type="first">M</forename><surname>Wimmer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Kappel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Kusel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Retschitzegger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Schönböck</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Schwinger</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICMT&apos;10</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="260" to="275" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b26">
	<analytic>
		<title level="a" type="main">Surveying Rule Inheritance in Model-to-Model Transformation Languages</title>
		<author>
			<persName><forename type="first">M</forename><surname>Wimmer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Kappel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Kusel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Retschitzegger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Schönböck</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Schwinger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Kolovos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Paige</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Lauder</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Schürr</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Wagelaar</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">JOT</title>
		<imprint>
			<biblScope unit="volume">11</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="1" to="46" />
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b27">
	<analytic>
		<title level="a" type="main">A Catalogue of Refactorings for Model-to-Model Transformations</title>
		<author>
			<persName><forename type="first">M</forename><surname>Wimmer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">M</forename><surname>Perez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Jouault</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Cabot</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">JOT</title>
		<imprint>
			<biblScope unit="volume">11</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="1" to="40" />
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

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