<!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>MONDO-SAM: A Framework to Systematically Assess MDE Scalability</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Benedek Izsó, Gábor Szárnyas, István Ráth and Dániel Varró Fault Tolerant Systems Research Group Department of Measurement and Information Systems Budapest University of Technology and Economics H-1117</institution>
          ,
          <addr-line>Magyar Tudósok krt. 2. Budapest</addr-line>
          ,
          <country country="HU">Hungary</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Processing models e ciently is an important productivity factor in Model-Driven Engineering (MDE) processes. In order to optimize a toolchain to meet scalability requirements of complex MDE scenarios, reliable performance measures of di erent tools are key enablers that can help selecting the best tool for a given workload. To enable systematic and reproducible benchmarking across di erent domains, scenarios and workloads, we propose MONDO-SAM, an extensible MDE benchmarking framework. Beyond providing easily reusable features for common benchmarking tasks that are based on best practices, our framework puts special emphasis on metrics, which enables scalability analysis along di erent problem characteristics. To illustrate the practical applicability of our proposal, we demonstrate how di erent variants of a model validation benchmark featuring several MDE tools from various technological domains have been integrated into the system.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The majority of these e orts have been created by tool
providers for the purpose to measure performance
developments of speci c engines [
        <xref ref-type="bibr" rid="ref2 ref8">8, 2</xref>
        ]. As a notable exception,
the Transformation Tool Contest (TTC) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] attempts
crosstechnology comparison by proposing multiple cases which
are solved by the authors of (mainly EMF based) MDE tools.
This work was partially supported by the CERTIMOT
(ERC HU-09-01-2010-0003) and MONDO (EU ICT-611125)
projects partly during the fourth author's sabbatical.
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>TTC cases focus on measuring query and transformation
execution time against instance models of increasing size. TTC
promotes reproducibility by providing pre-con gured virtual
machines on which individual tools can be executed;
however, the very nature of this environment and the limited
resources make precise comparison di cult.</p>
      <p>
        Benchmarks are also used outside of the MDE community.
The SP2Bench [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and Berlin SPARQL Benchmark (BSBM)
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] are SPARQL benchmarks over semantic databases (triple
stores). The rst uses RDF models based on the real world
DBLP bibliography database, while the latter is centered
around an e-commerce case study. Both benchmarks scale
up in the size of models (up to 25M and 150B elements),
however SP2Bench does not consider model modi cations,
and BSBM does not detail query and instance model
complexity. SPLODGE [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is another similar approach, where
SPARQL queries were generated systematically, based on
metrics for a prede ned dataset. Queries are scaled up
to three navigations (joins), but other metrics as the
complexity of the instance model were not investigated. The
common technological characteristics of these benchmarks is
that they are frequently run on very large computer systems
that are not accessible to most users, or rely on commercial
software components that are hard to obtain.
      </p>
      <p>
        To summarize, currently available graph based benchmarks
are a ected by two main issues: (i) technologically, they are
frequently built on virtualized architectures or have exotic
dependencies, making measurements hard to reproduce
independently; and (ii) conceptually, they typically only
analyze measurement results against a limited view of the
problem: the execution time of a xed task scaled against
increasing model size. As a result, the relative complexity of
current benchmarks can not be precisely quanti ed, which
makes them di cult to compare them to each other.
In previous work [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], we have found that other metrics (such
as various query complexity measures, instance model
characteristics, and the combination of these) can a ect results
very signi cantly. Building on these results, in this
paper we propose the extensible MONDO-SAM framework
that is integrated into the o cial MONDO benchmark open
repository1. MONDO-SAM provides reusable
benchmark1http://opensourceprojects.eu/p/mondo/
d31-transformation-benchmarks/
      </p>
    </sec>
    <sec id="sec-2">
      <title>Benchmarking process</title>
      <sec id="sec-2-1">
        <title>Benchmark architecture</title>
        <p>
          ing primitives (like metrics evaluation, time measurement,
result storage) that can be exibly organized into
benchmarking work ows that are speci c to a given case study.
MONDO-SAM also provides an API so that tehnologically
di erent tools can be integrated into the framework in a
uniform way. A unique emphasis of the framework is built-in
support for metrics calculation that enables
characterization of the benchmarking problems as published in [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. The
built-in reporting facility allows to investigate the
scalability of MDE tools along di erent metrics in diagrams.
Finally, the entire framework and integrated case studies can
be compiled and run using the Maven build system,
making deployment and reproducible execution in a standard,
Java-enabled computing environment feasible.
2. OVERVIEW OF THE FRAMEWORK
2.1 A process model for MDE benchmarks
The benchmarking process for MDD applications is depicted
in Fig. 1. Inputs of the benchmark are the instance model,
queries run on the instance model, the transformation rules
or modi cation logics and a scenario de nition (or work ow)
describing execution sequences. In this case, scenario can
describe MDD use cases (like model validation, model
transformation, incremental code generation), including warmup
and teardown operations, if required. Inputs can also be
derived from real-world applications, or are synthetically
generated providing complete control over the benchmark.
Complexity of the input is characterized by metrics, while
scenario execution implementations are instrumented to
measure resource consumption (wall-clock times, memory and
I/O usage). Finally, these measured values and calculated
metrics are visualized on diagrams automatically to nd the
fastest tool, or to identify performance improvements of a
speci c tool.
        </p>
        <sec id="sec-2-1-1">
          <title>2.2 Architecture</title>
          <p>The benchmark framework consisting of four components is
depicted in Fig. 2. The generator component allows
synthetic generation of benchmark inputs. The core module
handles con guration, domain-speci c modules describe
generation method of input data (like generation of instance
models, queries), and language-speci c modules serialize
generated logical artifacts into les (like EMF models or OCL
queries). The selected domain constrains languages, as
domain description concepts must be supported. For
example transitivity or multi-level metamodeling is not supported
by EMF, but the latter is required by the e-commerce case
generator</p>
          <p>core</p>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>Railway generator domain</title>
        <p>specific
RDF</p>
        <p>EMF
language</p>
        <p>specific
analyzer
benchmark
core
M: Sesame Q: SPARQL Q: EIQ prriemuistaivbeles
D: Railway S: validation M: EMF Q: OCL
T: EclipseOCL T: INCQUERY T: Sesame</p>
        <p>metrics
EMF-IQPL RDF-SPARQL
toolspecific</p>
        <p>core
languagespecific
study of BSBM. Generated models should be semantically
equivalent, however, it is a question whether structural
equality should be preserved. E.g. in certain cases EMF models
must have a dedicated container object with containment
relations to all objects which is not required in RDF.
2.3</p>
        <sec id="sec-2-2-1">
          <title>Core features</title>
          <p>Benchmark component. The benchmark component (in Fig. 2)
measures performance of di erent tools for given cases. A
case can be de ned as a quintuple of (D; S; M; Q; T ), where
D de nes the domain, S the scenario, M the modi cation
and Q the query. The T modules implement tool speci c
glue code and select D; S; M; Q. All modules reuse
common functions of the core, like con guration (with default
values and tool-speci c extensions), wall-clock time
measurement which is done with highest (nanosecond) precision
(that does not mean same accuracy), and momentary
memory consumption, which are recorded in a central place. At
runtime, language-speci c modi cations (transformations),
queries, and instances of the selected domain must be
available.</p>
          <p>Model instantiator. A common aspect of the generator
and the benchmark module is reproducibility. In tool-speci c
scenario implementations boundaries are well separated by
the scenario interfaces, and where generation or execution
is randomized, a pseudo-random generator is used with the
random seed set to a prede ned value. However,
nondeterministic operations (like choosing an element from a set) and
tool implementations can disperse results between runs.
Metrics evaluator. To describe benchmark input with
quantitative values, they are characterized by metrics which are
evaluated by the metrics component. Language speci c
implementations analyze model-query pairs, and store
calculated metric values centrally gathered by the core which are
analyzed later together with the measured values.</p>
          <p>Result reporting and analysis. When measurement and
metrics data become available, the analyzer component
(implemented in R) automatically creates HTML report with
diagrams. To show scalability according to di erent
measures, on the x axis metrics can be selected, while the y axis
represents resource consumption. Raw data can be
postprocessed, i.e. dimensions can be changed (e.g. to change
time to ms dimension to re ect its accuracy), and derived
values can be calculated (e.g. the median of incremental
recheck steps, or total processing time).
2.4 Best Practices to Minimize Validity Threats
During the execution of the cases, noise coming from the
environment should be kept at minimum. Possible sources
of noise include the caching mechanisms of various
components (e.g. le system and the database management
system), warm-up e ect of the runtime environment (e.g. the
Java Virtual Machine), scheduled tasks (e.g. cron) and
swapping. For large heaps, the Garbage Collector of the JVM can
block the run for minutes, so minimizing its call is advised
which is achieved by setting minimal and maximal heap size
to an equal value, thus eliminating GC calls at memory
expansions.</p>
          <p>In the implementation of framework components, only the
minimal amount of libraries should be loaded. On one hand,
proper organization of the dependencies is the responsibility
of the developer. On the other hand it is enforced by the
framework architecture, as tool-speci c implementations are
independent, and functions as entry points calling the
framework that uses inversion of control (IoC) without the usage
of additional execution environments, such as OSGi.
To alleviate random disturbances, each test case is run
several times (e.g. ten times) by the framework and aggregated
by the analyzer.</p>
        </sec>
        <sec id="sec-2-2-2">
          <title>3. INTEGRATED CASE STUDIES</title>
          <p>The usability of the framework is demonstrated by four
examples. Three variations of the previously published Train
Benchmark, and a new, soon to be released model
comprehension benchmark are integrated into the framework.</p>
        </sec>
        <sec id="sec-2-2-3">
          <title>3.1 Basic Train Benchmark</title>
          <p>
            The rst version of the Train Benchmark [
            <xref ref-type="bibr" rid="ref9">9</xref>
            ] compares the
performance of EMF-IncQuery with Eclipse OCL and its
incremental version, the OCL Impact Analyzer in an
incremental model validation use case. Instance models are
generated from a railway domain, and four hand-written queries
(with di erent complexity) perform model validation tasks.
The scenario starts with a model loading phase, where the
instance is read from a le, followed by a check phase, where
a model validation query is executed (returning constraint
violating elements). Afterwards (to simulate a user in front
of an editor), multiple (100) edits and rechecks performed.
In this case batch, incremental validation time and memory
consumption was measured.
          </p>
          <p>
            One kind of diagrams display execution times as the
function of model and query metrics. Fig. 3 shows total
execution time for a speci c query and scenario in a
logarithmic diagram for di erent tools. On the x axis model size
(the number of nodes and edges) is displayed, together with
the number of results, and the number of changes in the
result set. Although model size is the most in uencing
performance factor during the load phase, in the check phase,
especially for incremental tools other metrics come into the
picture as most in uencing factors, like the result set size,
or the number of variables in a query [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ].
13.75 ●
01..6190 ● ● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●● ●●
0 25 In5d0ex 75 100
          </p>
        </sec>
        <sec id="sec-2-2-4">
          <title>3.2 Extended Train Benchmark</title>
          <p>The extended version is available online2 which introduces
new languages: in addition to EMF, RDF and GraphML
model formats were added. New tools (Drools, Sesame,
4store and Neo4j) were added, and queries were translated
to each tool's native language. From now not all tools have
in-memory implementation, some use hard disk as storage,
so to lower disk overhead, memory lesystems were used for
storage. Also it should be noted that some databases
compiled as JARs next to the benchmark code, some database
use native server daemons that are also handled by the
benchmark execution framework. In this case a new
scenario variation is de ned, where after the batch validation,
larger modi cation is performed in one edit phase (to
simulates automatic model correction), and nally recheck is
executed.</p>
          <p>As the benchmark framework records every check and edit
time subsequently calls can be displayed on a diagram to
show its changes. Fig. 4 depicts such a case for tools at a
given model size and query. It can be observed that the
rst query time is almost always the highest, probably due
to the lazy loading of classes and tool initialization.
Another interesting point for the incremental EMF-IncQuery
and Drools tools is around the tenth check, where
evaluation times are dropped signi cantly. As the same queries
are executed, this may be attributed to the changed model
structure, or to the kicked in JIT compiler. This diagram
also shows the required warmup time for each tool, and its
changing in stages.
2https://incquery.net/publications/trainbenchmark/
Benchmark workflow
12x
EMF, RDF
models</p>
          <p>Generate Load Query Report most
Benchmark workflow – code mionfdlueenlcing
metrics
! (3 tools)
(a) Metrics evaluation</p>
          <p>Check1</p>
          <p>Refactor</p>
          <p>Checkn</p>
          <p>Report
31x
queries</p>
          <p>!</p>
          <p>Code
patterns</p>
          <p>Validation
performance
Java
code</p>
          <p>
            (b) Code model
3.3 Model Metrics for Performance Prediction
In the article [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ] tools are narrowed down to a basic Java
implementation, EMF-IncQuery, and Sesame. However,
for a modi ed metamodel nine new instances were generated
(belonging to di erent edge distributions). The benchmark
was extended with 31 queries scaling along 5 query metrics.
The goal of this paper was not to compare tool performances,
but to identify which metrics in uence processing time and
memory usage the most. (See Fig. 5a.)
Detailed results are available in the paper, however it can
be noted that for the EMF-IncQuery tool the number of
matches, for Sesame the number of query variables showed
high correlation with the check time, and low correlation
of model size metrics that also emphasize considering other
aspects than model size.
          </p>
        </sec>
        <sec id="sec-2-2-5">
          <title>3.4 ITM Factory</title>
          <p>
            The fourth case (inspired by [
            <xref ref-type="bibr" rid="ref10">10</xref>
            ]) integrated into the
framework is currently under development, and it took another
domain from the eld of software comprehension. Input of
the benchmark are not serialized models, but Java projects.
In the rst step, source code is read into a software model,
transformations are code edits or complex refactor
operations. After software modi cations, correctness of the code
base is validated (Fig. 5b).
          </p>
          <p>In the code modeling case similar investigations can be done,
however processing tools should scale in the lines of code
(and not in the number of nodes or edges). This also
motivates displaying performance as a function of di erent
metrics.</p>
        </sec>
        <sec id="sec-2-2-6">
          <title>4. CONCLUSION</title>
          <p>
            In this paper we proposed MONDO-SAM, a framework that
provides common functions required for benchmarking, and
MDE-speci c scenarios, models, queries and transformations
as reusable and con gurable primitives. As the main focus,
integrated benchmark cases can be characterized by metrics,
which enables the reporting module to analyze the
scalability of tools against various complexity measures. We
demonstrated the versatility of the framework is
demonstrated by the integration of previous versions of the Train
Benchmark [
            <xref ref-type="bibr" rid="ref5 ref9">9, 5</xref>
            ] and a new benchmark from the code model
domain.
          </p>
          <p>The extensible framework including the APIs, core
components and documentated samples is available as open source
code from the MONDO Git repository3.
3https://opensourceprojects.eu/git/p/mondo/
trainbenchmark</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>[1] Transformation tool contest. www.transformation-tool-contest</article-title>
          .eu,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>G.</given-names>
            <surname>Bergmann</surname>
          </string-name>
          , I. Rath,
          <string-name>
            <given-names>T.</given-names>
            <surname>Szabo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Torrini</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Varro</surname>
          </string-name>
          .
          <article-title>Incremental pattern matching for the e cient computation of transitive closure</article-title>
          .
          <source>In Sixth International Conference on Graph Transformation</source>
          , volume
          <volume>7562</volume>
          /
          <year>2012</year>
          , pages
          <fpage>386</fpage>
          {
          <fpage>400</fpage>
          ,
          <string-name>
            <surname>Bremen</surname>
          </string-name>
          , Germany, 09/
          <year>2012</year>
          2012. Springer.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <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 and Information Systems</source>
          ,
          <volume>5</volume>
          (
          <issue>2</issue>
          ),
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>O.</given-names>
            <surname>Go</surname>
          </string-name>
          <article-title>rlitz, M. Thimm, and</article-title>
          <string-name>
            <given-names>S.</given-names>
            <surname>Staab</surname>
          </string-name>
          . SPLODGE:
          <article-title>Systematic generation of SPARQL benchmark queries for Linked Open Data</article-title>
          . In C.-M. et al., editor,
          <source>The Semantic Web { ISWC</source>
          <year>2012</year>
          , volume
          <volume>7649</volume>
          <source>of LNCS</source>
          , pages
          <volume>116</volume>
          {
          <fpage>132</fpage>
          . Springer Berlin Heidelberg,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>B.</given-names>
            <surname>Izso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Szatmari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Bergmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Horvath</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and I.</given-names>
            <surname>Rath</surname>
          </string-name>
          .
          <article-title>Towards precise metrics for predicting graph query performance</article-title>
          .
          <source>In IEEE/ACM 28th International Conference on Automated Software Engineering</source>
          , pages
          <volume>412</volume>
          {
          <fpage>431</fpage>
          ,
          <string-name>
            <surname>Silicon</surname>
            <given-names>Valley</given-names>
          </string-name>
          , CA, USA,
          <year>2013</year>
          . IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <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>Rath</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Varro</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Tisi</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Cabot</surname>
          </string-name>
          .
          <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</source>
          , BigMDE '
          <volume>13</volume>
          , pages
          <issue>2:1</issue>
          {2:
          <fpage>10</fpage>
          , New York, NY, USA,
          <year>2013</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <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
          <volume>222</volume>
          {
          <fpage>233</fpage>
          , Shanghai, China,
          <year>2009</year>
          . IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.</given-names>
            <surname>Tichy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Krause</surname>
          </string-name>
          , and
          <string-name>
            <surname>G. Liebel.</surname>
          </string-name>
          <article-title>Detecting performance bad smells for henshin model transformations</article-title>
          . In B.
          <string-name>
            <surname>Baudry</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Dingel</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Lucio</surname>
          </string-name>
          , and H. Vangheluwe, editors,
          <source>AMT@MoDELS</source>
          , volume
          <volume>1077</volume>
          <source>of CEUR Workshop Proceedings. CEUR</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Ujhelyi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Bergmann</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          <article-title>Hegedus, A</article-title>
          .
          <string-name>
            <surname>Horvath</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Izso</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          <string-name>
            <surname>Rath</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          <string-name>
            <surname>Szatmari</surname>
            , and
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Varro</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>
          . Accepted.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Ujhelyi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Horvath</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Varro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. I.</given-names>
            <surname>Csiszar</surname>
          </string-name>
          , G. Szo}ke, L. Vidacs, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Ferenc</surname>
          </string-name>
          .
          <article-title>Anti-pattern detection with model queries: A comparison of approaches</article-title>
          .
          <source>In IEEE CSMR-WCRE 2014 Software Evolution Week. IEEE</source>
          ,
          <volume>02</volume>
          /
          <year>2014</year>
          2014.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>