<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Towards an Open Set of Real-World Benchmarks for Model Queries and Transformations</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Amine Benelellam</string-name>
          <email>amine.benelallam@inria.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Massimo Tisi</string-name>
          <email>massimo.tisi@inria.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>István Ráth</string-name>
          <email>rath@mit.bme.hu</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Benedek Izsó</string-name>
          <email>izso@mit.bme.hu</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dimitrios S. Kolovos</string-name>
          <email>dimitris.kolovos@york.ac.uk</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>General Terms</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>AtlanMod team</institution>
          ,
          <addr-line>Inria, Mines-Nantes, Lina, Nantes</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Budapest University of, Technology and Economics</institution>
          ,
          <addr-line>Budapest</addr-line>
          ,
          <country country="HU">Hungary</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Enterprise Systems Group, University of York</institution>
          ,
          <addr-line>York</addr-line>
          ,
          <country country="UK">United Kingdom</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Performance</institution>
          ,
          <addr-line>Experimentation, Measurement</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>With the growing size and complexity of systems under design, industry needs a generation of Model-Driven Engineering (MDE) tools, especially model query and transformation, with the proven capability to handle large-scale scenarios. While researchers are proposing several technical solutions in this sense, the community lacks a set of shared scalability benchmarks, that would simplify quantitative assessment of advancements and enable crossevaluation of different proposals. Benchmarks in previous work have been synthesized to stress specific features of model management, lacking both generality and industrial validity. In this paper, we initiate an effort to define a set of shared benchmarks, gathering queries and transformations from real-world MDE case studies. We make these case available to community evaluation via a public MDE benchmark repository.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Benchmarking</kwd>
        <kwd>Very Large Models</kwd>
        <kwd>Model transformations</kwd>
        <kwd>Model queries</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Categories and Subject Descriptors</title>
      <p>D.2.2 [MANAGEMENT OF COMPUTING AND
INFORMATION SYSTEMS]: Design Tools and Techniques—Computer-aided
software engineering (CASE); D.2.8 [Software Engineering]:
Metrics—performance measures, Complexity measures; K.6.3 [Computing
Milieux]: Software Management—Software selection</p>
    </sec>
    <sec id="sec-2">
      <title>INTRODUCTION</title>
      <p>BigMDE ’14 July 24, 2014. York, UK.</p>
      <p>Copyright c 2014 for the individual papers by the papers’ authors.
Copying permitted for private and academic purposes. This volume is published
and copyrighted by its editors.</p>
      <p>
        Over the past decade, technologies around Model-Driven
Engineering (MDE) have been offering a systematic approach for software
development on top of models. This elegant approach conquered
an interesting popularity and engaged both researchers and
industrials. However MDE is not able yet to attract large-scale industrial
systems considering the serious scalability issues that the current
generation of MDE tools is facing, namely (i) the growing
complexity of systems under design, and (ii) the huge amount of data
they might represent. Therefore, there is a calling need to develop a
new generation of tools capable of managing, querying, and
transforming Very Large Models (VLMs). Existing empirical
assessment [
        <xref ref-type="bibr" rid="ref21 ref36 ref7">7, 36, 21</xref>
        ] has accredited that necessity indeed.
      </p>
      <p>
        In spite of the advances on Model Transformation (MT) tools,
additional research studies are still needed in order to acquire the
attention of large-scale industrial systems. Aiming at improving
performance and computation cost, many works have been developed
around elaborating new features for existing model transformation
engines (e. g., Incrementality [
        <xref ref-type="bibr" rid="ref18 ref33 ref9">18, 33, 9</xref>
        ], and Parallelization [
        <xref ref-type="bibr" rid="ref10 ref38 ref51">10,
38, 51</xref>
        ]). Others [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] chose to develop new tools based on existing
frameworks effectively handling concurrency and parallelization.
One of the most computationally expensive tasks in modeling
applications is the evaluation of model queries. While there exists a
number of benchmarks for queries over relational databases [
        <xref ref-type="bibr" rid="ref52">52</xref>
        ] or
graph stores [
        <xref ref-type="bibr" rid="ref12 ref50">12, 50</xref>
        ], modeling tool workloads are significantly
different. Specifically, modeling tools use more complex queries than
typical transactional systems [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ], and the real world performance
is affected by response time (i.e. execution time for a specific
operation such as validation or transformation) than throughput (i.e.
the amount of parallel transactions).
      </p>
      <p>
        In order to overcome these limitations and achieve scalability in
MDE, several works [
        <xref ref-type="bibr" rid="ref16 ref37">16, 37</xref>
        ] drew research roadmaps advancing
the use of the Cloud for distributed and collaborative processing of
VLMs. Hence, in order to be able to compare this new generation
of tools and measure their performance, it is required to provide
a transformation benchmark that takes into consideration the
wellknown scalability issues in MTs [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ]. Likewise, benchmarks might
be a good reference to help engineers in choosing what fits the most
to their solution while developing new tools.
      </p>
      <p>
        Most of existing benchmarks [
        <xref ref-type="bibr" rid="ref32 ref54 ref55 ref8">32, 8, 54, 55</xref>
        ] were more focused
on other properties than scalability (e. g., Transformation sequence
length, Transformation strategy, Matching size etc.). Moreover
these benchmarks do not provide neither any clue on how to
measure transformation scalability from a theoretical point of view, nor
real-world case studies. In contrast to the former benchmarks, Izsó
et al. [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ] are the first ones to provide a precise metrics to predict
the performance of graph queries – based on instance models and
query specification –, and therefore results in indicators that help
selecting the suitable technology. In addition, these benchmarks
are specific to either model transformation or model query. On
the other side, there exist some reference benchmarks for databases
with a higher level of maturity [
        <xref ref-type="bibr" rid="ref15 ref49">15, 49</xref>
        ]. In [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], Cattel et al. present
a benchmark OO1 to measure the performance of specific
characteristics of the most frequently used operations – according to
feedbacks from industrials – on engineering objects. This benchmark
come with a precise specification, measures, and evaluation indeed.
In [
        <xref ref-type="bibr" rid="ref49">49</xref>
        ] Schmidt et al. introduce XMark, a benchmark for XML data
management that copes with a large range of queries coming from
real world case scenarios. Each query comes to stress a particular
aspect of XML query engines.
      </p>
      <p>In this paper we present a set of benchmarks for model
transformation and query engines. Our proposal is to select a set of
transformations/queries from real-world cases and to make them
available to large public. Two of the four benchmarks included deal
with model transformations, while the other two deal with model
queries. Models that feed each one of the benchmarks are of
increasing size, also different kinds/extensions. They are either
concrete, coming from real projects (i. e., reverse engineered Java project
models) or generated using deterministic model instantiators. These
instantiators can be easily customized to be able to generate models
that suit the benchmarking of a specific feature.</p>
      <p>
        These benchmarks are part of the results of the Scalable Modeling
and Model Management on the Cloud (MONDO)1 research project,
that aims at advancing MDE’s state of the art to tackle very large
models [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ]. We plan to involve the community in order to build
a larger set of case studies covering additional properties/domains
(i. e., verification and simulation of critical systems).
      </p>
      <p>The rest of the paper is organized as follows. In Section 2 we
describe benchmarks from the state-of-the-art. In Section 3 we outline
the four different sets of benchmarks provided in the scope of the
paper. Section 4 describes usage and contribution modalities for
the repository. Finally, Section 5 provides a conclusion and
recapitulates the future plans for the benchmarks suite.</p>
    </sec>
    <sec id="sec-3">
      <title>2. RELATED WORK</title>
      <p>
        A few works in literature [
        <xref ref-type="bibr" rid="ref31 ref54 ref55 ref8">54, 55, 31, 8</xref>
        ] proposed benchmarks to
assist developers in selecting the most suitable
query/transformation technology for their application scenarios. However only one
of the existing case studies is explicitly dedicated to the
manipulation of very large models ([
        <xref ref-type="bibr" rid="ref31">31</xref>
        ]) and none is based on benchmarks
queries and transformations based on real-world applications. In
this section we give a short overview of the related works, while in
the next section we introduce the real-world benchmarks proposed
within this paper.
      </p>
      <p>
        One of the widely used benchmarks in MDE is Grabats’09
Reverse Engineering [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], where Jouault et al. proposed a case study
that consists of the definition of program comprehension operators
1http://www.mondo-project.org/
(i. e., queries over source code) using a graph or model
transformation tool. One of the main challenges in the definition of program
comprehension operators as transformations is scalability with
respect to input size. This case study is divided into two independent
tasks (i) a simple filtering query that selects a subgraph of its
input according to a given condition, and (ii) a complex query that
computes a control flow graph and a program dependence graph.
These queries are performed over the JDTAST metamodel, the Java
metamodel used in early versions of MoDisco [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] to discover Java
projects. This benchmark comes with 5 different sets of increasing
size ranging from 7 105 up to 5 109.
      </p>
      <p>
        The experiment in [
        <xref ref-type="bibr" rid="ref54">54</xref>
        ] compares the performance of three model
transformation engines: ATL, QVT-R, and QVT-O. This
comparison is based on two different transformation examples, targeting
meta-models with different structural representations: linear
representation (Class2RDBMS) and tree-like representation (RSS2ATOM).
The benchmarking set involves randomly generated input models
of increasing numbers of elements (up to hundreds of thousands).
Like the previous work [
        <xref ref-type="bibr" rid="ref55">55</xref>
        ], the benchmark sets are also tuned
according to a particular feature such as the size of input models, their
complexity (complex interconnection structure) and transformation
strategies. In order to study the impact of different implementation
strategies in ATL, the Class2RDBMS transformation was
implemented in different programming styles. The first one promotes
expressing input models navigation in the in the right-hand side of
the bindings, the second use ATL attribute helpers, and third uses
the imperative part of ATL.
      </p>
      <p>
        The work [
        <xref ref-type="bibr" rid="ref55">55</xref>
        ] is considered one of the early systematic MDE
benchmarks dedicated to Graph Transformations (GT). It proposes a
methodology for quantitative benchmarking in order to assess the
performance of GT tools. The overall aim is to uniformly measure the
performance of a system under a deterministic, parametric, and
especially reproducible environment. Four tools participated in
the experimentation: AGG, PROGRES, FUJABA and DB. Every
benchmarking set is tuned according to some features related on
one side to the graph transformation paradigms, and on the other
side to the surveyed tools. Thus, a benchmarking set is
characterized by turning on/off these features. Bergmann et al. extended
this benchmark with incrementality. Two kinds of benchmarks
kind were carried out, simulation and synchronization, for which, a
benchmark-specific generators has been provided. The benchmarks
were run over different implementations of pattern matchers,
VIATRA/LS (Local Search), VIATRA/RETE, and GEN.NET with the
distributed mutual exclusion algorithm.
      </p>
    </sec>
    <sec id="sec-4">
      <title>3. BENCHMARKS SET</title>
      <p>The benchmarks set has the purpose to evaluate and validate a
proposed query and transformation engine. This set of benchmarks is
made public, with the intention to also help both research groups
and companies to assess their solutions.</p>
      <p>In this section we describe the source, context and properties of the
benchmarks. The set of benchmarks is designed to cover the main
use cases for queries and transformations in model-driven
applications. Table 1 summarizes the characteristics of the four
benchmarks in terms of type of computation (query/transformation) and
computational complexity (high/low).</p>
      <p>Each one of the benchmarks either includes concrete source
models, or a model generator that can be used to produce models of
different sizes in a deterministic manner. In the latter case, models
of different sizes can be generated, but seeds are provided to drive
the deterministic generators in producing the same models for each
user.</p>
      <p>Each benchmark in the set is given a reference implementation that
has to be considered as a specification of the case semantics.
Languages and technologies used for each reference implementation
may vary, including MDE-specific and general-purpose
technologies.</p>
      <p>Finally, while each benchmark defines the source/target relation
for each query or transformation, other aspects of the
transformation runtime semantics are left open. For instance high-complexity
benchmarks can be run in batch or incremental mode, to test
different execution properties of the tool under study.</p>
    </sec>
    <sec id="sec-5">
      <title>3.1 Train Benchmark</title>
      <sec id="sec-5-1">
        <title>3.1.1 Context and objectives</title>
        <p>
          The Train Benchmark [
          <xref ref-type="bibr" rid="ref1 ref53">53, 1</xref>
          ] is a macro benchmark that aims to
measure batch and incremental query evaluation performance, in
a scenario that is specifically modeled after model validation in
(domain-specific) modeling tools: at first, the entire model is
validated, then after each model manipulation (e.g., the deletion of a
reference) is followed by an immediate re-validation. The
benchmark records execution times for four phases:
1. During the read phase, the instance model is loaded from
hard drive to memory. This includes the parsing of the input
as well as initializing data structures of the tool.
2. In the check phase, the instance model is queried to identify
invalid elements. This can be as simple as reading the results
from cache, or the model can be traversed based on some
index. By the end of this phase, erroneous objects need to
made available in a list.
3. In the edit phase, the model is modified to simulate effects
of manual user edits. Here the size of the change set can be
adjusted to correspond to small manual edits as well as large
model transformations.
4. The re-validation of the model is carried out in the re-check
phase similarly to the check phase.
        </p>
        <p>The Train Benchmark computes two derived results based on the
recorded data: (1) batch validation time (the sum of the read and
check phases) represents the time that the user must wait to start to
use the tool; (2) incremental validation time consists of the edit and
re-check phases performed 100 times, representing the time that the
user spent waiting for the tool validation.</p>
      </sec>
      <sec id="sec-5-2">
        <title>3.1.2 Models and metamodels</title>
        <p>The Train Benchmark uses a domain-specific model of a railway
system that originates from the MOGENTES EU FP7 project, where
both the metamodel and the well-formedness rules were defined
by railway domain experts. This domain enables the definition of
both simple and more complex model queries while it is
uncomplicated enough to incorporate solutions from other technological
spaces (e.g. ontologies, relational databases and RDF). This allows
the comparison of the performance aspects of wider range of query
tools from a constraint validation viewpoint.</p>
        <p>The instance models are systematically and reproducibly generated
based on the metamodel and the defined complex model queries:
small instance model fragments are generated based on the queries,
and then they are placed, randomized and connected to each other.
The methodology takes care of controlling the number of matches
of all defined model queries. To break symmetry, the exact
number of elements and cardinalities are randomized (with a fixed seed
to ensure deterministic reproducibility). In the benchmark
measurements, model sizes ranging from a few elements to 13 million
elements (objects and references combined) are considered.
This brings artificially generated models closer to real world
instances, and prevents query tools from efficiently storing or caching
of instance models. This is important in order to reduce the
sampling bias of the experiments. During the generation of the railway
system model, errors are injected at random positions. These
errors can be found in the check phase of the benchmark, which are
reported, and can be corrected during the edit phase. The initial
number of constraint violating elements is low (&lt;1% of total
elements).</p>
      </sec>
      <sec id="sec-5-3">
        <title>3.1.3 Queries and transformations</title>
        <p>
          Queries are defined informally in plain text (in a tool independent
way) and also formalized using the standard OCL language as a
reference implementation (available on the benchmark website [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]).
The queries range from simple attribute value checks to complex
navigation operations consisting of several (4+) joins.
The functionally equivalent variants of these queries are formalized
using the query language of different tools applying tool based
optimizations. As a result, all query implementations must return (the
same set of) invalid instance model elements.
        </p>
        <p>In the edit phase, the model is modified to change the result set to be
returned by the query in the re-check phase. For simulating manual
modifications, the benchmark always performs a hundred random
edits (fixed low constant) which increases the number of erroneous
elements. An edit operation only modifies one model element at a
time - more complex model manipulation is modeled as a series of
edits.</p>
        <p>The Train Benchmark defines a Java-based framework and
application programming interface that enables the integration of
additional metamodels, instance models, query implementations and
even new benchmark scenarios (that may be different from the
original 4-phase concept). The default implementation contains a
benchmark suite for queries implemented in Java, Eclipse OCL and
EMF-IncQuery.</p>
        <p>
          Measurements are recorded automatically in a machine-processable
format (CSV) that is automatically processed by R [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] scripts. An
extended version of the Train Benchmark [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ] features several
(instance model, query-specific and combined) metrics that can be
used to characterize the “difficulty” of benchmark cases
numerically, and – since they can be evaluated automatically for other
domain/model/query combinations – allow to compare the benchmark
cases with other real-world workloads.
        </p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>3.2 Open-BIM</title>
      <sec id="sec-6-1">
        <title>3.2.1 Context and objectives</title>
        <p>This benchmark includes a model validation and a model
transformation in the context of construction models. The construction
industry has traditionally communicated building construction
information (sites, buildings, floors, spaces, and equipment and their
attributes) through drawings with notes and specifications. BIM
(Building Information Model), a CAD (Computer Aided Design)
method, came to automate that process and enhance its operability
according to different tools, actors, etc. within the AECO
(Architecture, Engineering, Construction, and Operations) industry. A
BIM model is a multi-disciplinary data specific model instance
which describes all the information pertinent to a building and its
components.</p>
        <p>A BIM model is described using the IFC (Industry Foundation
Classes) specification, a freely available format to describe,
exchange, and share information typically used within the building
and facility management industry sector. Intrinsically, IFC is
expressed using the EXPRESS data definition language, defined as
ISO10303-11 by the ISO TC184/SC4 committee. EXPRESS
representations are known to be compact and well suited to include
data validation rules within the data specification.</p>
      </sec>
      <sec id="sec-6-2">
        <title>3.2.2 Models and metamodel</title>
        <p>The repository contains 8 real-world IFC data files with size
ranging from 40MB to 1GB. All the files represent real construction
projects and were used in production context. They contain a
precise and detailed information about actors, approvals, buildings etc.
The data files, in EXPRESS format, are translated into EMF models
so that they can be used by EMF-based query and transformation
tools.</p>
      </sec>
      <sec id="sec-6-3">
        <title>3.2.3 Queries and transformations</title>
        <p>The Open-BIM use case includes a query benchmark and a
transformation benchmark:
IFC well-formedness rules. The IFC format describes, using
the EXPRESS language, the set of well-formed IFC models. The
EXPRESS notation includes, in a single specification, 1) the set
of element types and properties allowed in the data file, 2) the set
of well-formedness constraints that have to be globally satisfied.
When representing an IFC model in an EMF format these two parts
of the specification translate to 1) an Ecore metamodel defining
element and property types, 2) a set of constraints encoding the
well-formedness rules.</p>
        <p>This benchmark involves validating the set of well-formedness rules
(2) over a given model, model that conforms to the IFC Ecore
metamodel (1). An Ecore metamodel is provided, coming from the
open-source BIMServer 2 project. The well-formedness rules are
given in EXPRESS format and are meant to be translated to the
query technology under evaluation.</p>
        <sec id="sec-6-3-1">
          <title>2https://github.com/opensourceBIM/BIMserver</title>
          <p>IFC2BIMXML. BIMXML 3 is an XML format describing
building data in a simplified spatial building model. The BIMXML
XML Schema was developed as an alternative to full scale IFC
models to simplify data exchanges between various AEC
applications and to connect Building Information Models through Web
Services. It is currently used by several primary actors in the CAD
construction domain, including Onuma System (Onuma, Inc.), DDS
Viewer (Data Design System), vROC, Tokmo, BIM Connect, and
various plugins for CAD Applications (Revit, SketchUp,
ArchiCAD). The BIMXML specification includes an XML Schema4 and
documents the translation rules from the full IFC specification.
This benchmark involves performing the translation of a full IFC
model into the BIMXML format. Ecore metamodels for the source
and target models are provided.
3.3</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>ITM Factory</title>
      <sec id="sec-7-1">
        <title>3.3.1 Context and objectives</title>
        <p>This benchmark contains two transformations and a set of queries,
each addressing a different phase in a model-driven reverse
engineering process. The use case for this benchmark is taken from the
Eclipse MoDisco project.</p>
        <p>MoDisco (Model Discovery) is the open-source Model Driven
Reverse Engineering project lead by the company Soft-Maint. It uses
a two steps approach with a model discovery followed by model
understanding. The initial step consists in obtaining a model
representation of a specific view on the legacy system, whereas, the
second involves extracting useful information from the discovered
model. MoDisco requires high efficiency in handling large models,
especially these involved in reverse engineering of legacy systems.</p>
      </sec>
      <sec id="sec-7-2">
        <title>3.3.2 Models and metamodel</title>
        <p>
          Thanks to the MoDisco Java discoverer, we are able to extract
Java models up to 1.3GB, that conform to the Java metamodel
[
          <xref ref-type="bibr" rid="ref39">39</xref>
          ] defined in MoDisco (refinement of the JDTAST metamodel).
Those models are the input of the Java2KDM and Java code
quality transformations, while, KDM output models are inputs for the
KDM2UML transformation. It is also possible to retrieve directly
KDM models using MoDisco. Because of confidentiality
agreements, Soft-Maint is not able to publish instance models derived
from their commercial projects. For this reason we choose to
derive instance models from the source code of open-source projects,
specifically from the Eclipse JDT plugins (org.eclipse.jdt.*). This
does not affect the relevance of the benchmark, as these plugins are
written by experienced developers with a quality standard that is
comparable to commercial projects.
        </p>
      </sec>
      <sec id="sec-7-3">
        <title>3.3.3 Queries and transformations</title>
        <p>
          Java2KDM. This transformation takes place at beginning of
almost every modernization process of a Java legacy system, it comes
just after the discovery of the Java model from Java projects
(plugins) using the MoDisco Java Discoverer. This transformation
generates a KDM [
          <xref ref-type="bibr" rid="ref44">44</xref>
          ] (Knowledge Discovery Metamodel) model that
defines common metadata required for deep semantic integration of
        </p>
        <sec id="sec-7-3-1">
          <title>3http://bimxml.org/ 4http://www.bimxml.org/xsd/001/bimxml-001.xsd</title>
          <p>application life-cycle management tools. Java2KDM
transformation is useful when the only available information on a Java source
code is contained in a Java model, even without the source code
it is then possible to get a KDM representation. This intermediate
model provides useful and precise information that can be used to
produce additional types of models.</p>
          <p>KDM2UML. Based on the previously generated model, this
transformation generates a UML diagram in order to allow
integrating KDM-compliant tools (i. e., discoverers) with UML-compliant
tools (e.g. modelers, model transformation tools, code generators,
etc.).</p>
          <p>Java code quality. This set of code quality transformations
identify well-known anti-patterns in Java source code and fix the
corresponding issues by a model transformation. The input format
of the transformations is a model conforming to the Java
metamodel. For a specification for the transformations we refer the
reader to the implementations of these fixes in well-known
codeanalysis tools like CheckStyle and PMD. Table 3 summarizes the
references to the documentation for each code fix considered in this
benchmark.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>3.4 ATL Transformation Zoo</title>
      <sec id="sec-8-1">
        <title>3.4.1 Context and objectives</title>
        <p>
          The ATL project maintains a repository of ATL transformations
produced in industrial and academic contexts (ATL Transformation
Zoo [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ]). These transformations are representative of the use of
model transformations for low-complexity tasks (i.e., low number
of transformation rules, lack of recursion, etc. . . ).
        </p>
        <p>In this benchmark we select a subset of the transformations in the
ATL Transformation Zoo based on their quality level and usage in
real-world applications. We specifically include only
transformations that may be used in production environments. We automatize
the sequential execution of this subset and the generation of
performance analysis data.</p>
      </sec>
      <sec id="sec-8-2">
        <title>3.4.2 Models and metamodels</title>
        <p>For the aforementioned transformations, we do not have large enough
models that conform to the respective metamodels, and as such
we make use of a probabilistic model instantiator. This
instantiator takes as parameter a generation configuration specified by the
user. A generation configuration holds information such as 1)
metaclasses that should (not) be involved in the generation, 2)
probability distributions to establish how many instances should be
generated for each metaclass, and which values should be assigned
to structural features. We provide a default generation
configuration, using uniform probability distributions for each meta-class
and structural feature. For some transformations we provide ad-hoc
probability distributions, exploiting domain knowledge over the
instances of the corresponding metamodel.</p>
        <p>A generation configuration may come also with a seed that makes
the generation deterministic and reproducible. For each one of the
built-in generation configurations we provide a seed, producing the
exact set of models we used during our experimentation.
3.4.3</p>
      </sec>
      <sec id="sec-8-3">
        <title>Queries and transformations</title>
        <p>
          Ant to Maven. Ant [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] is an open source build tool (a tool
dedicated to the assembly of the different pieces of a program) from
the Apache Software Foundation. Ant is the most commonly used
build tool for Java programs. Maven [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] is another build tool
created by the Apache Software Foundation. It is an extension of Ant
because ant Tasks can be used in Maven. The difference from Ant
is that a project can be reusable. This transformation [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] generates
a file for the build tool Maven starting from a file corresponding to
the build tool Ant.
        </p>
        <p>
          CPL2SPL. CPL (Call Processing Language) is a standard
scripting language for the SIP (Session Initiation Protocol) protocol. It
offers a limited set of language constructs. CPL is supposed to
be simple enough so that it is safe to execute untrusted scripts on
public servers [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ]. SPL programs are used to control telephony
agents (e.g. clients, proxies) implementing the SIP (Session
Initiation Protocol) protocol. Whereas, the CPL has an XML-based
syntax, the CPL2SPL transformation [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ], provides an
implementation of CPL semantics by translating CPL concepts into their SPL
equivalent concepts.
        </p>
        <p>
          Graphcet2PetriNet. This transformation[
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] establishes a bridge
between grafcet [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], and petri nets [
          <xref ref-type="bibr" rid="ref43">43</xref>
          ]. It provides an overview
of the whole transformation sequence that enables to produce an
XML petri net representation from a textual definition of a grafcet
in a PNML format, and the other way around.
        </p>
        <p>
          IEEE1471 to MoDAF. This transformation example [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]
realizes the transformation between IEEE1471-2000 [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ] and
MoDAFAV [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. The IEEE1471 committee prescribes a recommended
practice for the design and the analysis of Architecture of Software
Intensive Systems. It fixes a terminology for System,
Architecture, Architectural Description, Stakeholder, Concerns, View ,and
Viewpoints concepts. MoDAF (Ministry of Defense Architecture
Framework) is based on the DoDAF (Department of Defense
Architecture Framework). DoDAF is a framework to design C4ISR
systems. MoDAF-AV (Architecture View) used several concepts
defined in the IEEE1471.
        </p>
        <p>
          Make2Ant. Make (the most common build tool) is based on a
particular shell or command interface and is therefore limited to
the type of operating systems that use that shell. Ant uses Java
classes rather than shell-based commands. Developers use XML to
describe the modules in their program build. This benchmark [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ]
describes a transformation from a Makefile to an Ant file.
MOF2UML. The MOF (Meta Object Facility)[
          <xref ref-type="bibr" rid="ref45">45</xref>
          ] is an OMG
standard enabling the definition of metamodels through common
semantics. The UML (Unified Modeling Language) Core standard
is the OMG common modeling language. Although, MOF is
primarily designed for metamodel definitions and UML Core for the
design of models, the two standards define very close notions. This
example [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ] describes a transformation enabling to pass from the
MOF to the UML semantics. The transformation is based on the
UML Profile for MOF OMG specification.
        </p>
        <p>
          OCL2R2ML. The OCL to R2ML transformation scenario [
          <xref ref-type="bibr" rid="ref41">41</xref>
          ]
describes a transformation from OCL (Object Constraint Language)
[
          <xref ref-type="bibr" rid="ref46">46</xref>
          ] metamodel (with EMOF metamodel) into a R2ML
(REWERSE I1 Rule Markup Language) metamodel. The Object
Constraint Language (OCL) is a language that enables one to describe
expressions and constraints on object-oriented (UML and MOF)
models and other object modeling artifacts. An expression is an
indication or specification of a value. A constraint is a
restriction on one or more values of (part of) an object-oriented model
or system. REWERSE I1 Rule Markup Language (R2ML) is a
general web rule markup language, which can represent different
rule types: integrity, reaction, derivation and production. It is used
as pivotal metamodel to enable sharing rules between different rule
languages, in this case with the OCL.
        </p>
        <p>
          UML2OWL. This scenario [
          <xref ref-type="bibr" rid="ref42">42</xref>
          ] presents an implementation of
the OMG’s ODM specification. This transformation is used to
produce an OWL ontology, and its OWL Individuals from an UML
Model, and its UML Instances.
        </p>
      </sec>
      <sec id="sec-8-4">
        <title>BibTeXML to DocBook. The BibTeXML to DocBook example</title>
        <p>
          [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] describes a transformation of a BibTeXML [
          <xref ref-type="bibr" rid="ref47">47</xref>
          ] model to a
DocBook [
          <xref ref-type="bibr" rid="ref56">56</xref>
          ] composed document. BibTeXML is an XML-based
format for the BibTeX bibliographic tool. DocBook, as for it, is an
XML-based format for document composition.
        </p>
        <p>
          DSL to EMF. This example [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] provides a complete overview
of a transformation chain example between two technical spaces:
Microsoft DSL Tools [
          <xref ref-type="bibr" rid="ref40">40</xref>
          ] and EMF. The aim of this example is
to demonstrate the possibility to exchange models defined under
different technologies. In particular, the described bridges
demonstrate that it should be possible to define metamodels and models
using both Microsoft DSL Tools and Eclipse EMF technologies.
The bridge between MS/DSL and EMF spans two levels: the
metamodel and model levels. At the level of metamodels, it allows to
transform MS/DSL domain models to EMF metamodels. At the
level of models, the bridge allows transforming MS/DSL models
conforming to domain models to EMF models conforming to EMF
metamodels. At both levels, the bridge operates in both directions.
A chain of ATL-based transformations is used to implement the
bridge at these two levels. The benefit of using such a bridge is the
ability to transpose MS/DSL work in EMF platform, and inversely.
        </p>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>4. THE MDE BENCHMARK REPOSITORY</title>
      <p>The MDE Benchmark repository is the central storage area where
the artifacts of the benchmarks are archived for public access. These
artifacts, mainly text files, comprise large models and
metamodels – typically represented in their XMI serialization – and model
transformations. To increase the visibility of these files we have
chosen to make them publicly available through the
OpenSourceProjects.eu (OSP) platform. The OSP platform is a software forge
dedicated to hosting Open Source projects created within EU
research projects.</p>
      <p>The OSP platform provides, among other tools, a Git revision
control system (RCS). Git repositories hosted in the OSP platform can
be easily navigated by a Web interface.</p>
    </sec>
    <sec id="sec-10">
      <title>4.1 Benchmark structure</title>
      <p>
        The MDE Benchmark repository is located at [
        <xref ref-type="bibr" rid="ref48">48</xref>
        ]. Inside this
repository every top level resource corresponds to a git
submodule, each, representing a different case study held in a separate git
repository.
      </p>
      <p>Related resources for benchmarking a specific feature of a
transformation engine are grouped in projects. A project is a self-contained
entity, and can be considered as the basic benchmarking unit. Projects
share a common internal structure that includes a short case
description and a set of (optional) folders:
Short case description — A mandatory human-readable file
describes the details of the test case, the file and directory
structure, and any other important information (e. g., test cases can
evolve and additional information not considered at the point
of writing this document may be needed for executing the
benchmark).</p>
      <p>Documentation — This directory stores the documentation about
the test case. The documentation of a test case may include,
among other information, a detailed description of the test
case, the foundations of the feature under testing, the
building and execution instructions, etc.</p>
      <p>Queries and Transformations — This directory stores the queries
and transformations, in source code form, that stress the
feature under testing.</p>
      <p>Models — This directory contains the model and metamodel
descriptions involved in the test transformation(s).</p>
      <p>Input data — This directory contains the input data to be used by
the test case(s).</p>
      <p>Expected data — In this directory we store the files that contain
the expected values that must be returned by the
transformation. The expected data are compared with the actual output
of the transformation to determine if the test execution has
been successful or not.</p>
      <p>Source code — In some situations, test cases may require
additional code (such as Java code) to be executed. For example,
test cases may be automatically launched with the help of
third party libraries (such as JUnit), or test cases may
execute external code following a black-box scheme. In this
situations the additional code should be placed inside the /src
directory.</p>
      <p>
        Libraries — This directory is used to store any additional third
party library (usually a binary file) required by the test case.
Scripts — Build and execution scripts should be placed under the
/build directory. Examples of such scripts are Ant files
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], Maven files [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], Makefiles [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], bash shell scripts [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
    </sec>
    <sec id="sec-11">
      <title>4.2 Submission guidelines</title>
      <p>In order to increase the quality and soundness of the test cases
available in the MDE Benchmark repository, we plan to keep it open to
further submissions from the MDE community.</p>
      <p>We have defined a simple set of guidelines that must be followed
when contributing a new case study to guarantee that the quality of
the repository is maintained. Specifically:</p>
      <p>New contributions must include a comprehensive
description of the case study. A rationale for its inclusion must
be provided, specially focusing on the differential aspects of
the proposed case study, compared to the already included
benchmarks.</p>
      <p>The sources, models, documentation and utility scripts must
be organized as described in Section 4.1.</p>
      <p>Contributions must be sent to the address mondo_team@
opengroup.org for their evaluation and approval.</p>
    </sec>
    <sec id="sec-12">
      <title>5. CONCLUSION</title>
      <p>This paper introduces the first open-set benchmark gathered from
real-world cases to stress scalability issues in model transformation
and query engines. These benchmark suite comes not only with
the aim of providing a point of reference against which industrials
and researchers might compare between different technologies to
choose what could suit their needs, but also to motivate the MDE
community to be part of its extension and contribute with additional
cases not covered by this set.</p>
      <p>In our future work we plan to furnish a feature-based organization
of the benchmark in order to ease its use and enable efficient profit.
We also intend to provide theoretical background on how to
measure transformations scalability. Another point would be to
optimize model instances generation to allow the generation of bigger
models, also to contribute to the repository with a live/real-time
instantiators for the consideration of infinite model transformations.</p>
    </sec>
    <sec id="sec-13">
      <title>6. ACKNOWLEDGMENTS</title>
      <p>This work is partially supported by the MONDO (EU ICT-611125)
project. The authors would like to thank UNINOVA and Soft-Maint
for their inputs, materials, and valuable discussions.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>[1] The train benchmark website</article-title>
          . https://incquery.net/publications/ trainbenchmark/full-results,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>[2] The R project for statistical computing</article-title>
          . http://www.r-project.
          <source>org/</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Albin</given-names>
            <surname>Jossic. ATL Transformation</surname>
          </string-name>
          <article-title>Example: IEEE1471 to MoDAF, 2005</article-title>
          . URL: http://www.eclipse.org/ atl/atlTransformations/IEEE1471_2_MoDAF/ IEEE1471_2_MoDAF.doc.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Apache</surname>
          </string-name>
          . Apache ant,
          <year>2014</year>
          . URL: http://ant.apache.org/.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Apache</surname>
          </string-name>
          .
          <source>Apache maven project</source>
          ,
          <year>2014</year>
          . URL: http://maven.apache.org/.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <article-title>[6] ATLAS group - LINA &amp; INRIA. The Microsoft DSL to EMF ATL transformation</article-title>
          ,
          <year>2005</year>
          . URL: http://www. eclipse.org/atl/atlTransformations/ DSL2EMF/ExampleDSL2EMF%5Bv00.
          <volume>01</volume>
          %5D.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>P.</given-names>
            <surname>Baker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Loh</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Weil</surname>
          </string-name>
          .
          <article-title>Model-driven engineering in a large industrial contextU˚ motorola case study</article-title>
          .
          <source>In Model Driven Engineering Languages and Systems</source>
          , pages
          <fpage>476</fpage>
          -
          <lpage>491</lpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>G.</given-names>
            <surname>Bergmann</surname>
          </string-name>
          , Á. Horváth,
          <string-name>
            <surname>I. Ráth</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Varró</surname>
          </string-name>
          .
          <article-title>A benchmark evaluation of incremental pattern matching in graph transformation</article-title>
          .
          <source>In Graph Transformations</source>
          , pages
          <fpage>396</fpage>
          -
          <lpage>410</lpage>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>G.</given-names>
            <surname>Bergmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Horváth</surname>
          </string-name>
          , and Á. Horváth.
          <article-title>Applying incremental graph transformation to existing models in relational databases</article-title>
          .
          <source>In Graph Transformations</source>
          , pages
          <fpage>371</fpage>
          -
          <lpage>385</lpage>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>G.</given-names>
            <surname>Bergmann</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Ráth</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Varró</surname>
          </string-name>
          .
          <article-title>Parallelization of graph transformation based on incremental pattern matching</article-title>
          .
          <source>Electronic Communications of the EASST</source>
          ,
          <volume>18</volume>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>B.</given-names>
            <surname>Biggs</surname>
          </string-name>
          .
          <article-title>Ministry of defence architectural framework (modaf</article-title>
          ).
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>C.</given-names>
            <surname>Bizer</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Schultz</surname>
          </string-name>
          . The Berlin SPARQL benchmark.
          <source>International Journal on Semantic Web &amp; Information Systems</source>
          ,
          <volume>5</volume>
          (
          <issue>2</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>24</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>H.</given-names>
            <surname>Brunelière</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          , G. Dupé, and
          <string-name>
            <given-names>F.</given-names>
            <surname>Madiot</surname>
          </string-name>
          .
          <article-title>Modisco: A model driven reverse engineering framework</article-title>
          .
          <source>Information and Software Technology</source>
          ,
          <volume>56</volume>
          (
          <issue>8</issue>
          ):
          <fpage>1012</fpage>
          -
          <lpage>1032</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>L.</given-names>
            <surname>Burgueño</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Troya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Vallecillo</surname>
          </string-name>
          .
          <article-title>On the concurrent execution of model transformations with linda</article-title>
          .
          <source>In Proceedings of the Workshop on Scalability in Model Driven Engineering, page 3. ACM</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>R. G. G.</given-names>
            <surname>Cattell</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Skeen</surname>
          </string-name>
          .
          <article-title>Object operations benchmark</article-title>
          .
          <source>ACM Trans. Database Syst</source>
          .,
          <volume>17</volume>
          (
          <issue>1</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>31</lpage>
          , Mar.
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>C.</given-names>
            <surname>Clasen</surname>
          </string-name>
          ,
          <string-name>
            <surname>M. D. Del Fabro</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Tisi</surname>
          </string-name>
          .
          <article-title>Transforming very large models in the cloud: a research roadmap</article-title>
          .
          <source>In First International Workshop on Model-Driven Engineering on and for the Cloud</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>R.</given-names>
            <surname>David</surname>
          </string-name>
          .
          <article-title>Grafcet: A powerful tool for specification of logic controllers</article-title>
          .
          <source>Control Systems Technology, IEEE Transactions on, 3</source>
          (
          <issue>3</issue>
          ):
          <fpage>253</fpage>
          -
          <lpage>268</lpage>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>H.</given-names>
            <surname>Giese</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Wagner</surname>
          </string-name>
          .
          <article-title>From model transformation to incremental bidirectional model synchronization</article-title>
          .
          <source>Software &amp; Systems Modeling</source>
          ,
          <volume>8</volume>
          (
          <issue>1</issue>
          ):
          <fpage>21</fpage>
          -
          <lpage>43</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>GNU</surname>
          </string-name>
          .
          <string-name>
            <surname>Bourne-Again SHell</surname>
          </string-name>
          manual,
          <year>2014</year>
          . URL: http://www.gnu.org/software/bash/manual/.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          <source>[20] GNU. GNU 'make'</source>
          ,
          <year>2014</year>
          . URL: http://www.gnu.org/software/make/manual/.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>J.</given-names>
            <surname>Hutchinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Whittle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Rouncefield</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Kristoffersen</surname>
          </string-name>
          .
          <article-title>Empirical assessment of mde in industry</article-title>
          .
          <source>In Proceedings of the 33rd International Conference on Software Engineering</source>
          , pages
          <fpage>471</fpage>
          -
          <lpage>480</lpage>
          . ACM,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>INRIA. ATL Transformation Example</surname>
          </string-name>
          : Ant to Maven,
          <year>2005</year>
          . URL: http://www.eclipse.org/atl/ atlTransformations/Ant2Maven/ ExampleAnt2Maven%5Bv00.
          <volume>01</volume>
          %5D.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>INRIA. ATL Transformation Example: BibTeXML to DocBook</surname>
          </string-name>
          ,
          <year>2005</year>
          . URL: http://www.eclipse.org/ atl/atlTransformations/BibTeXML2DocBook/ ExampleBibTeXML2DocBook%5Bv00.
          <volume>01</volume>
          %5D.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>INRIA. ATL Transformation Example: CPL to</surname>
            <given-names>SPL</given-names>
          </string-name>
          ,
          <year>2005</year>
          . URL: http://www.eclipse.org/atl/ atlTransformations/CPL2SPL/README.txt.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>INRIA. ATL Transformation Example</surname>
          </string-name>
          : Grafcet to Petri Net,
          <year>2005</year>
          . URL: http://www.eclipse.org/atl/ atlTransformations/Grafcet2PetriNet/ ExampleGrafcet2PetriNet[v00.01].pdf.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <surname>INRIA. ATL Transformation Example</surname>
          </string-name>
          : Make to Ant,
          <year>2005</year>
          . URL: http://www.eclipse.org/atl/ atlTransformations/Make2Ant/ ExampleMake2Ant[v00.01].pdf.
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <surname>INRIA. ATL Transformation Example: MOF to</surname>
            <given-names>UML</given-names>
          </string-name>
          ,
          <year>2005</year>
          . URL: http://www.eclipse.org/atl/ atlTransformations/MOF2UML/ ExampleMOF2UML[v00.01].pdf.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <surname>Inria</surname>
          </string-name>
          . Atl transformation zoo,
          <year>2014</year>
          . URL: http://www. eclipse.org/atl/atlTransformations/.
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>B.</given-names>
            <surname>Izsó</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Szatmári</surname>
          </string-name>
          , G. Bergmann, Á. Horváth,
          <string-name>
            <given-names>and I.</given-names>
            <surname>Ráth</surname>
          </string-name>
          .
          <article-title>Towards precise metrics for predicting graph query performance</article-title>
          .
          <source>In 2013 IEEE/ACM 28th International Conference on Automated Software Engineering (ASE)</source>
          , pages
          <fpage>412</fpage>
          -
          <lpage>431</lpage>
          , Silicon Valley, CA, USA, 11/
          <year>2013</year>
          2013. IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Bézivin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Consel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Kurtev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Latry</surname>
          </string-name>
          , et al.
          <article-title>Building dsls with amma/atl, a case study on spl and cpl telephony languages</article-title>
          .
          <source>In ECOOP Workshop on Domain-Specific Program Development</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Sottet</surname>
          </string-name>
          , et al.
          <article-title>An amma/atl solution for the grabats 2009 reverse engineering case study</article-title>
          .
          <source>In 5th International Workshop on Graph-Based Tools</source>
          , Zurich, Switzerland,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.-S.</given-names>
            <surname>Sottet</surname>
          </string-name>
          , et al.
          <article-title>An amma/atl solution for the grabats 2009 reverse engineering case study</article-title>
          .
          <source>In 5th International Workshop on Graph-Based Tools, Grabats</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Tisi</surname>
          </string-name>
          .
          <article-title>Towards incremental execution of atl transformations</article-title>
          .
          <source>In Theory and Practice of Model Transformations</source>
          , pages
          <fpage>123</fpage>
          -
          <lpage>137</lpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>E.</given-names>
            <surname>Jouenne</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Normand</surname>
          </string-name>
          .
          <article-title>Tailoring ieee 1471 for mde support</article-title>
          .
          <source>In UML Modeling Languages and Applications</source>
          , pages
          <fpage>163</fpage>
          -
          <lpage>174</lpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Paige</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F. A.</given-names>
            <surname>Polack</surname>
          </string-name>
          .
          <article-title>The epsilon transformation language</article-title>
          .
          <source>In Theory and practice of model transformations</source>
          , pages
          <fpage>46</fpage>
          -
          <lpage>60</lpage>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Paige</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F. A.</given-names>
            <surname>Polack</surname>
          </string-name>
          .
          <article-title>The grand challenge of scalability for model driven engineering</article-title>
          .
          <source>In Models in Software Engineering</source>
          , pages
          <fpage>48</fpage>
          -
          <lpage>53</lpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Rose</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Matragkas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Paige</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Guerra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. S.</given-names>
            <surname>Cuadrado</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. De Lara</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          <string-name>
            <surname>Ráth</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Varró</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Tisi</surname>
          </string-name>
          , et al.
          <article-title>A research roadmap towards achieving scalability in model driven engineering</article-title>
          .
          <source>In Proceedings of the Workshop on Scalability in Model Driven Engineering, page 2. ACM</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>G.</given-names>
            <surname>Mezei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Levendovszky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Mészáros</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and I.</given-names>
            <surname>Madari</surname>
          </string-name>
          .
          <article-title>Towards truly parallel model transformations: A distributed pattern matching approach</article-title>
          .
          <source>In EUROCON</source>
          <year>2009</year>
          ,
          <article-title>EUROCON'09</article-title>
          . IEEE, pages
          <fpage>403</fpage>
          -
          <lpage>410</lpage>
          . IEEE,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <string-name>
            <surname>MIA-Software</surname>
          </string-name>
          .
          <article-title>Modiscojava metamodel (knowledge discovery metamodel) version 1</article-title>
          .3,
          <year>2012</year>
          . URL: http://dev.eclipse.org/svnroot/modeling/ org.eclipse.mdt.modisco/main/branches/0_ 11/org.eclipse.gmt.modisco.java/model/ java.ecore.
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [40]
          <string-name>
            <given-names>Microsoft</given-names>
            <surname>Corp</surname>
          </string-name>
          .
          <source>The DSL tools</source>
          ,
          <year>2014</year>
          . URL: http: //msdn.microsoft.com/vstudio/DSLTools/.
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [41]
          <string-name>
            <given-names>Milan</given-names>
            <surname>Milanovic</surname>
          </string-name>
          .
          <source>ATL Transformation Example: OCL to R2ML</source>
          ,
          <year>2005</year>
          . URL: http://www.eclipse.org/atl/ atlTransformations/OCL2R2ML/README.txt.
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          [42]
          <string-name>
            <given-names>Milan</given-names>
            <surname>Milanovic. ATL Transformation Example: UML to</surname>
          </string-name>
          <string-name>
            <surname>OWL</surname>
          </string-name>
          ,
          <year>2005</year>
          . URL: http://www.eclipse.org/atl/ atlTransformations/UML2OWL/README.txt.
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          [43]
          <string-name>
            <given-names>T.</given-names>
            <surname>Murata</surname>
          </string-name>
          .
          <article-title>Petri nets: Properties, analysis and applications</article-title>
          .
          <source>Proceedings of the IEEE</source>
          ,
          <volume>77</volume>
          (
          <issue>4</issue>
          ):
          <fpage>541</fpage>
          -
          <lpage>580</lpage>
          ,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          [44]
          <string-name>
            <surname>OMG (Object Management Group</surname>
          </string-name>
          <article-title>)</article-title>
          .
          <source>Kdm (knowledge discovery metamodel) version 1.3</source>
          ,
          <year>2011</year>
          . URL: http://www.omg.org/spec/KDM/1.3/.
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          [45]
          <string-name>
            <surname>OMG (Object Management Group</surname>
          </string-name>
          <article-title>)</article-title>
          .
          <source>Mof (meta object facility) version 2.4</source>
          ,
          <year>2011</year>
          . URL: http://www.omg.org/spec/MOF/2.4.
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          [46]
          <string-name>
            <surname>OMG (Object Management Group</surname>
          </string-name>
          <article-title>)</article-title>
          .
          <source>Ocl (object constraint language) v2.0</source>
          ,
          <year>2011</year>
          . URL: http://www.omg.org/spec/OCL/2.0/PDF.
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          [47]
          <string-name>
            <given-names>L.</given-names>
            <surname>Previtali</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Lurati</surname>
          </string-name>
          , and
          <string-name>
            <surname>E. Wilde. Bibtexml:</surname>
          </string-name>
          <article-title>An xml representation of bibtex</article-title>
          . In V. Y.
          <string-name>
            <surname>Shen</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Saito</surname>
            ,
            <given-names>M. R.</given-names>
          </string-name>
          <string-name>
            <surname>Lyu</surname>
          </string-name>
          , and M. E. Zurko, editors,
          <source>WWW Posters</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref48">
        <mixed-citation>
          [48]
          <string-name>
            <given-names>M.</given-names>
            <surname>Project</surname>
          </string-name>
          . Transformation benchmarks,
          <year>2014</year>
          . URL: http://opensourceprojects.eu/p/mondo/ d31-transformation-benchmarks/.
        </mixed-citation>
      </ref>
      <ref id="ref49">
        <mixed-citation>
          [49]
          <string-name>
            <given-names>A.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Waas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kersten</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Carey</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Manolescu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Busse</surname>
          </string-name>
          .
          <article-title>Xmark: A benchmark for xml data management</article-title>
          .
          <source>In Proceedings of the 28th International Conference on Very Large Data Bases, VLDB '02</source>
          , pages
          <fpage>974</fpage>
          -
          <lpage>985</lpage>
          . VLDB Endowment,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref50">
        <mixed-citation>
          [50]
          <string-name>
            <given-names>M.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Hornung</surname>
          </string-name>
          , G. Lausen, and
          <string-name>
            <given-names>C.</given-names>
            <surname>Pinkel</surname>
          </string-name>
          .
          <article-title>SP2Bench: A SPARQL performance benchmark</article-title>
          .
          <source>In Proc. of the 25th International Conference on Data Engineering</source>
          , pages
          <fpage>222</fpage>
          -
          <lpage>233</lpage>
          , Shanghai, China,
          <year>2009</year>
          . IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref51">
        <mixed-citation>
          [51]
          <string-name>
            <given-names>M.</given-names>
            <surname>Tisi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Martinez</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Choura</surname>
          </string-name>
          .
          <article-title>Parallel execution of atl transformation rules</article-title>
          .
          <source>In Model-Driven Engineering Languages and Systems</source>
          , pages
          <fpage>656</fpage>
          -
          <lpage>672</lpage>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref52">
        <mixed-citation>
          [52]
          <string-name>
            <given-names>Transaction</given-names>
            <surname>Processing Performance Council (TPC). TPC-C Benchmark</surname>
          </string-name>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref53">
        <mixed-citation>
          [53]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Ujhelyi</surname>
          </string-name>
          , G. Bergmann, Á. Hegedüs, Á. Horváth,
          <string-name>
            <given-names>B.</given-names>
            <surname>Izsó</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Ráth</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Szatmári</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Varró</surname>
          </string-name>
          .
          <article-title>EMF-IncQuery: An integrated development environment for live model queries</article-title>
          .
          <source>Science of Computer Programming</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref54">
        <mixed-citation>
          [54]
          <string-name>
            <surname>M. Van Amstel</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Bosems</surname>
            ,
            <given-names>I. Kurtev</given-names>
          </string-name>
          , and
          <string-name>
            <given-names>L. F.</given-names>
            <surname>Pires</surname>
          </string-name>
          .
          <article-title>Performance in model transformations: experiments with atl and qvt</article-title>
          .
          <source>In Theory and Practice of Model Transformations</source>
          , pages
          <fpage>198</fpage>
          -
          <lpage>212</lpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref55">
        <mixed-citation>
          [55]
          <string-name>
            <given-names>G.</given-names>
            <surname>Varro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Schurr</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Varro</surname>
          </string-name>
          .
          <article-title>Benchmarking for graph transformation</article-title>
          .
          <source>In Visual Languages and Human-Centric Computing</source>
          ,
          <source>2005 IEEE Symposium on</source>
          , pages
          <fpage>79</fpage>
          -
          <lpage>88</lpage>
          . IEEE,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref56">
        <mixed-citation>
          [56]
          <string-name>
            <given-names>N.</given-names>
            <surname>Walsh</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Hamilton</surname>
          </string-name>
          . DocBook 5:
          <string-name>
            <given-names>The</given-names>
            <surname>Definitive Guide. Definitive Guide Series. O'Reilly Media</surname>
          </string-name>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>