<!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>st Report on the 1 International Workshop on Debugging in Model-Driven Engineering (MDEbug'17)</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Simon Van Mierlo</institution>
          ,
          <addr-line>Erwan Bousse</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Bremen</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-System developers spend a significant part of their time debugging systems (i.e., locating and fixing the cause of failures observed through verification and validation (V&amp;V)). While V&amp;V techniques are commonly used in model-driven engineering, locating and fixing the cause of a failure in a modelled system is most often still a manual task without toolsupport. Although debugging techniques are well-established for programming languages, only a few debugging techniques and tools for models have been proposed. Debugging models faces various challenges: handling a wide variety of models and modelling languages; adapting debugging techniques initially proposed for programming languages; tailoring debugging approaches for the domain expert using the abstractions of the considered language. The aim of the first edition of the MDEbug workshop was to bring together researchers wanting to contribute to the emerging field of debugging in model-driven engineering by discussing new ideas and compiling a research agenda. This paper summarizes the workshop's discussion session and distils a list of challenges that should be addressed in future research.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        Model-Driven Engineering (MDE) aims at coping with the
complexity of systems by separating concerns through the use
of models, each representing a particular aspect of a system.
In the past years, significant effort has been directed towards
providing early verification and validation (V&amp;V) techniques
to determine whether or not a set of models fulfils a set of
properties (e.g., [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]). By identifying the properties
that are not satisfied, such techniques are able to discover and
observe the failures (or bugs) of a system. Yet, once a failure
has been observed, it is then necessary to identify why the
failure occurs (i.e., the defect that caused the failure), and how
to modify the models to remove the cause of the failure. These
two tasks constitute the core of the debugging activity [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>To illustrate this activity, Figure 1 presents an overview of a
typical system design process. First, a set of properties that the
system has to satisfy is defined. Then, a system is designed
as a collection of models that must satisfy these properties.
To check that the properties are satisfied by the models, a
wide range of verification and validation (V&amp;V) techniques are
available, such as theorem proving, symbolic execution, model
checking, real-time simulation, and testing. Depending on the
approach, it might be found that a property is satisfied (“pass”),
not satisfied1 (“failure”), or that the result is inconclusive
(“unknown”)—for example when the chosen technique cannot
prove the property in a reasonable time frame. At that point,
however, the cause of the failure (also called the defect) must
still be identified (i.e., which parts of the models are causing
the observed failure). A failure may also be observed if the
properties were wrongly specified, in which case the properties
themselves have to be fixed. Once they are identified, the cause
of the failures must be fixed by changing either the models
or the properties. Locating and fixing the cause of a failure
can be accomplished manually given a good understanding
1Note that it is also possible to consider potential failures when the
considered V&amp;V technique may give false positives (e.g., static code analysis)
⊨
natural language,
temporal logic,
test cases, etc.</p>
      <sec id="sec-1-1">
        <title>Requirements</title>
      </sec>
      <sec id="sec-1-2">
        <title>Modelling</title>
        <p>properties
testing,
model checking
theorem proving,
etc.</p>
      </sec>
      <sec id="sec-1-3">
        <title>Verification &amp;</title>
      </sec>
      <sec id="sec-1-4">
        <title>Validation pass failure unknown</title>
      </sec>
      <sec id="sec-1-5">
        <title>System</title>
      </sec>
      <sec id="sec-1-6">
        <title>Design</title>
        <p>models
conforming to DSLs,
UML, SysML, etc.</p>
        <p>slicing,</p>
        <p>Fault interactive debugging,
Localization cmoamnmuaelnsteinagrccho,de,
automated search,
etc.
failure
cause</p>
      </sec>
      <sec id="sec-1-7">
        <title>Fixing</title>
        <p>
          Debugging
model element(s),
line number,
event sequence,
etc.
of the models. A wide range of debugging techniques can be
used to assist developers in finding the cause of the problem.
For example, interactive debugging techniques [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] can
be used to observe and control the execution of behavioural
models in an interactive fashion (e.g., using breakpoints,
stepping operators, or by inspecting properties) Other techniques
may provide (semi-)automated fault localization, for instance
using symbolic execution [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], or model slicing [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. More
recently, omniscient debugging techniques [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] allow
one to explore execution states both backwards and forwards,
and live modelling [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] allows one to change the model and
immediately observe the effect.
        </p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>II. WORKSHOP CONTEXT AND GOALS</title>
      <p>While debugging techniques and tools are very common
for programming languages, very few debugging tools and
techniques are available when it comes to models. Hence,
modellers often have to resort to ad-hoc methods, such as
inspecting and debugging the code generated from models.
Although this allows the reuse of established and
wellresearched program debugging techniques, it is not ideal since
the developer has to switch contexts and must understand
both the mapping to and the semantics of the underlying
implementation language. Dedicated debugging support for
modelling languages has potential to reduce or eliminate the
need for this kind of context switching, and is an essential part
of allowing a developer to remain in the modelling paradigm
throughout the full development process.</p>
      <p>In this context and scope, the goals of the MDEbug
workshop were to:
bring together interested researchers to optimize the
research effort and establish collaborations;
provide a forum for researchers to share new experiences,
ideas and early results on the topic of debugging in
model-driven engineering;
define the scope of debugging within model-driven
engineering;
identify gaps in the current body of research.</p>
    </sec>
    <sec id="sec-3">
      <title>III. PROGRAM</title>
      <p>The full-day workshop took place on September 17, 2017 as
part of the satellite events of the ACM/IEEE 20th International
Conference on Model Driven Engineering Languages and
Systems (MODELS 2017) conference in Austin, Texas. The
workshop started with a keynote presented by Andrei Chis,
from feenk on the topic of Moldable Debugging. We received
six submissions, and five submissions were accepted after
a review process in which each paper was reviewed by at
least three members of the program committee. One of the
accepted submission was a full research paper, while two were
tool demonstration papers, and two were position papers—
including one by the keynote speaker that summarized his
keynote presentation. The complete list of papers can be found
below, in the order of their presentation at the workshop:
1) “Moldable Debugging (Position paper)” by Andrei Chis,
and Tudor Girba
2) “Transformations Debugging Transformations” by Maris</p>
      <p>Jukss, Clark Verbrugge and Hans Vangheluwe
3) “Towards Debugging the Matching of Henshin Model
Transformations Rules (Position paper)” by Matthias
Tichy, Luis Beaucamp and Stefan Kögel
4) “Domain-Level Debugging for Compiled DSLs with
the GEMOC Studio (Tool demonstration)” by Erwan
Bousse, Tanja Mayerhofer and Manuel Wimmer
5) “Debugging Non-Determinism: a Petrinets Modelling,
Analysis, and Debugging Tool (Tool demonstration)” by
Simon Van Mierlo and Hans Vangheluwe</p>
      <p>The afternoon session of the workshop was reserved for
an interactive discussion on the wide topic of debugging in
model-driven engineering. We summarize these discussions in
Section V.</p>
      <p>All information can be found on the workshop
website: https://msdl.uantwerpen.be/conferences/MDEbug. This
includes the slides of all presentations given at the workshop.</p>
    </sec>
    <sec id="sec-4">
      <title>IV. PROGRAM COMMITTEE</title>
      <p>The program committee of MDEbug 2017 was composed
of 27 researchers and experts in the domains of modeling,
debugging, and model execution, coming from 12 different
countries. We sincerely thank the program committee
members and external reviewers for their time in reviewing and
discussing the submitted papers.</p>
      <sec id="sec-4-1">
        <title>A. Defining the state of the art in software debugging</title>
        <p>Debugging is not limited to MDE. Debugging embraces
various activities, techniques, and application domains in
software engineering prior to MDE, such as debugging
objectoriented programs. Yet, to the best of our knowledge no recent
state of the art has been published on debugging in software
engineering. The interested reader has to explore the literature
of various techniques applied in a debugging context, such a
program slicing.</p>
        <p>A direction of research can focus on designing a
comprehensive survey on debugging in software engineering. The
outcome(s) of this work would permit to clearly identify the
challenges shared or specific to MDE debugging.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Mauricio Alférez, Siemens, Belgium Shaukat Ali, Simula Research Laboratory, Norway</title>
      <p>Vasco Amaral, Universidade Nova de Lisboa, Portugal B. Clarifying debugging terminology, classifying approaches
Reda Bendraou, Université Paris Ouest Nanterre la Due to a rather rich history in the field of computer science,
Défense, France the words bug, debugging, and debugger have been used in a
Francis Bordeleau, CMind, Canada large number of contexts with diverse meanings. For instance,
Benoit Combemale, IRISA, Université de Rennes 1, some might call “bug” the wrong behaviour of a program,
France while some others consider that the “bug” is the piece of code
Jonathan Corley, University of West Georgia, USA responsible for the misbehaviour. Likewise, while “debugging”
Andrea d’Ambrogio, University of Rome Tor Vergata, literally means “removing a bug”, in some contexts it means
Italy “finding the bug”, while in some others it means “executing
Julien Deantoni, University of Nice-Sophia Antipolis, the model/program in an interactive debugger”. Lastly, the
France word “debugger” is used on a daily basis to designate an
Davide Di Ruscio, University of L’Aquila, Italy interactive debugger (e.g., gdb, or the Eclipse Java debugger),
Holger Giese, Hasso-Plattner-Institut, Germany while more generally it can mean “a tool that can be used
Martin Gogolla, University of Bremen, Germany for debugging”. Overall, to avoid confusion, it appears that
Jeff Gray, University of Alabama, USA the community must either agree on a precise terminology, or
Robert Heinrich, Karlsruher Institute of Technology, Ger- at least acknowledge that these words may convey different
many meanings depending on the context.</p>
      <p>Sebastian Herzig, Caltech/Jet Propulsion Laboratory, In addition to vocabulary issues, there is some confusion
USA on the different kinds of debugging approaches that exist, and
Levi Lucio, Fortiss, Germany what qualifies as debugging, understanding, or neither. For
Tanja Mayerhofer, TU Wien, Austria instance, using an interactive debugger to explore the different
Tim Molderez, Vrije Universiteit Brussel, Belgium states of a behavioural model step by step can be useful both
Patrizio Pelliccione, Chalmers University of Technology for debugging (i.e., finding and fixing a bug), or simply to
and University of Gothenburg, Sweden better understand the model. Likewise, a model slicer can be
Arend Rensink, Universiteit Twente, The Netherlands used to debug a model but is commonly not called a debugger,
Bran Selic, Malina Software Corporation, Canada nor is model slicing classified as a debugging technique since
Eugene Syriani, University of Montreal, Canada it can be used for other purposes as well. It would be of great
Jérémie Tatibouët, CEA, France benefit for the community to reach a classification of possible
Massimo Tisi, Institut Mines-Telecom Atlantique, France debugging techniques and to understand the similarities or
Javier Troya, University of Seville, Spain differences between them (e.g., interactive or not, automated or
Antonio Vallecillo, Universidad de Málaga, Spain manual, static or dynamic, language-specific or generic). The
Tijs van der Storm, Centrum Wiskunde &amp; Informatica consensus at the workshop seemed to be that any technique
(CWI), The Netherlands used during the “debugging phase” (denoted by the dashed
orange line in Figure 1) can be called a debugging technique.</p>
      <p>V. SUMMARY OF THE DISCUSSIONS Among many others, this includes print statements, interactive
debugging, and model slicing. It is not so much the technique,
but rather the intent of the use of the technique that defines it
as a debugging technique.</p>
      <p>This section summarizes the content of the discussions that
took place during the workshop, in the form of a list of topics.</p>
      <p>Each topic covers an aspect of debugging in model-driven
engineering that has open research challenges. Therefore, these
challenges can be used as a basis for future research, or for
organizing discussions during a future workshop.</p>
      <sec id="sec-5-1">
        <title>C. Abstraction gap and translational semantics</title>
        <p>
          Semantics for modelling languages can be defined in a
variety of ways [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. One approach is to develop a
transformation that maps models of the language onto another
language with known semantics. A popular example is a
code generator that generates program code implementing the
model’s semantics. Models can be debugged naively using an
interactive debugger for the programming language to debug
the generated code or the model interpreter in case of an
execution by interpretation. The “semantic gap” between the
source and target language, however, obscures the abstractions
of the source language; the debugging is not performed at the
same abstraction level as the development. Certain approaches
reuse the target language’s interactive debugger and translate
debugging operations on the source language forward onto
debugging operations of the target language, and results of the
target language interactive debugger backward onto results of
the source language (e.g., [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]). The semantic gap, however,
makes it difficult to translate debugging results back onto
abstractions of the source language.
        </p>
        <p>In a general sense, the mapping between source and target
languages is not always one-to-one. One open problem is
how to handle such situations. Should the target language
concepts be available to the modeller? Should additional
domain concepts be defined? Or should one consider that there
is a bug in the translational semantics themselves?</p>
      </sec>
      <sec id="sec-5-2">
        <title>D. Impact of the observation on the execution</title>
        <p>
          While some approaches reuse a target language
interactive debugger to provide interactive debugging for modelling
languages with translational semantics, instrumentation offers
another way of debugging models. For instance, it is possible
to instrument the model with specific “traps” that interrupt
the normal flow of execution to provide source language
interactive debugging operations [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. In the case of operational
semantics, interactive debugging or generic control operations
can also directly be added to the interpreter [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ], [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
In both cases, however, the instrumentation might change the
semantics in a way that interferes with the normal execution
semantics of the model. This means bugs can appear and/or
disappear after instrumentation, or due to the instrumentation
itself. In this case, bug-preserving instrumentation methods
appear to be necessary [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ].
        </p>
      </sec>
      <sec id="sec-5-3">
        <title>E. Debugging forward or backward</title>
        <p>
          Interactive debugging is usually performed forwards: from
an initial state, one explores the execution trace according
to the semantics of the considered modelling language. It is
possible to extend this approach to allow the developer to
step backwards in an execution trace, leading to so-called
“omniscient debugging” [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. Being able to interactively
explore execution states both forward and backward, hence
allowing to freely explore the state space, yields many benefits
regarding usability, as it may prevent from having to restart
the complete execution to re-visit some suspect state.
        </p>
        <p>To extend even further the possibilities of omniscient
debugging, an interesting research direction is to study the
potential for starting from a faulty model state to then compute
the possible past execution paths that can lead up to that
state, thereby debugging entirely backwards. This is related
to program or model slicing, where the debugger produces a
set of statements that can affect the values of a run-time state.</p>
      </sec>
      <sec id="sec-5-4">
        <title>F. Debugging in the presence of black-box components</title>
        <p>Debuggers may assume that the model source (a text
document, diagram, etc.) is available. This might not always be
true. In certain cases the source of the model might be hidden
and provided as a compiled “black-box”. If so, the control an
interactive debugger can exert over such a black box is limited:
in program interactive debugging, these components are often
ignored (or “stepped over”) and assumed to be correct. Failures
that only appear when composing or integrating black-box
components can be difficult to debug: the failure might actually
be caused by an interaction in one of the components that
is impossible to detect without observation of the state and
control of the execution. If it is impossible to provide the full
source (e.g., in case of intellectual property protection), a
greybox approach might provide an interface to the component that
allows a debugger to interact with it. This requires finding a
balance between exposing enough detail and protecting the
full details of the model.</p>
      </sec>
      <sec id="sec-5-5">
        <title>G. Usability and fitness to the domain</title>
        <p>Debuggers must be developed for developers and modellers,
which are often domain experts with no experience with the
technologies used to implement the modelling environments
that they use. The usability of a debugger is therefore a key
issue and may cover many aspects. In the case of an interactive
debugger, such aspects may include the following:</p>
        <p>The representation of the current execution state has to fit
the mental model of the developer. For debugging visual
languages, this representation can be close to the visual
abstractions provided by the language. In the presence
of additional run-time information, however, additional
abstractions may have to be provided.</p>
        <p>Similarly, not only the debugging state but also definitions
of breakpoints need to align with the language. Here,
domain-specific condition languages on states and state
sequences need to be provided which enable the domain
expert to easily specify conditions on the state according
to the domain-specific needs.</p>
        <p>The debugging operations provided have to fit the needs
of the developers. They have to fit the developer’s mental
model of the language’s semantics: a logical “step” does
not necessarily correspond to a debugger or simulator
“step”.</p>
        <p>Suitable representations for the execution traces and
their states have to be found. Especially for concurrent,
non-deterministic formalisms and/or acausal languages,
these might differ significantly from the usual sequential
representation.</p>
        <p>
          Furthermore, while the usual concepts of interactive
debugging (state, steps, breakpoints, etc.) are obvious to software
engineers and can be easily used also for models (e.g., [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ],
[
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]), domain experts might not be well-versed using
interactive debuggers. For example, a debugger for a
modelling language might provide interactive tutorials and similar
features to enable domain experts to quickly learn how to
debug the model. In essence, this usability aspect needs to
be evaluated with respect to the needs of the domain experts.
        </p>
        <p>
          While there is already existing and encouraging work on
domain-specific debugging [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ], [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ], usability is a key
challenge for all debugging approaches.
        </p>
        <p>Debugging is often defined as finding the cause of some
observed faulty behaviour of a system, and changing the
system to avoid this behaviour in the future. This suggests
that debugging only makes sense for behavioural models, and
H. Reuse of debuggers among languages therefore for modelling languages with execution semantics</p>
        <p>
          Many formalisms have common aspects they share: syntax, implemented by a code generator or an interpreter.
semantics, visualization. In language engineering, efforts are Yet, a wide range of models focus only on structural
made to reuse different parts of language definitions [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ], [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. aspects of systems, and such models may also contain errors.
Likewise, efforts can be made to share tools among different For example, a metamodel can be considered faulty and
languages, such as debuggers [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ], [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. For instance, interac- too restrictive if a supposed valid model does not conform
tive debuggers often share similar features and concepts, such to this metamodel. Another example is a structural model
as steps, breakpoints, state inspection, or state manipulation. of a building that does not conform to a regulation.
“DeOne research direction is therefore to investigate how different bugging” such models would consist in searching for static
parts and the logic of debuggers can be reused and shared constraints that are not well defined. This might require query
to avoid the effort of implementing a new debugger from and expression support to ask the conformance checker why
scratch for each new language. General requirements for a or why not certain constraints were violated. Analysis for
common debugger interface are also interesting for example descriptive elements like constraints in terms of formulas must
in situations when different debuggers for one modelling be provided (e.g., pointing to the failing subformula when
language are available and a project wants to change the a conjunction fails). A possible research direction would be
debugger. to study or define debugging approaches fully dedicated to
structural models.
and analysis. While we currently often transpose software
debugging concepts, a valuable line of research can look at
hardware debugging techniques and transpose them to models.
        </p>
      </sec>
      <sec id="sec-5-6">
        <title>K. Debugging structural models</title>
      </sec>
      <sec id="sec-5-7">
        <title>I. Interactive debugging for declarative languages</title>
        <p>A declarative language generally provides concepts that do
not explicitly show or define in which order a conforming
model will be executed. A prime example of this is a
declarative model transformation: it defines the relation between
input elements and output elements, but does not define how
the transformation is executed. The engine responsible for
executing the transformation is defined operationally, however.
To debug such declarative languages interactively, one can ask
whether we have to expose those operational semantics to the
developer (in the form of steps, for example), and if so, to what
extent. Since the language is declarative, the developer does
not necessarily know its operational semantics, and exposing
them might require a mental leap. Alternatively, debugging
operations that are far away from the operational semantics
but closer to the mental model of the developer might be more
appropriate (e.g., by showing all maximal parts of a declarative
model transformation which are still applicable to understand
why the full declarative model transformation is not
applicable). This would lead to debugging functionality that considers
the constituents of the declarative model (e.g., debugging the
formulas being part of the declarative model).</p>
      </sec>
      <sec id="sec-5-8">
        <title>J. Debugging hardware systems</title>
        <p>While many systems are deployed as software, synthesis
to hardware is also possible. When a failure occurs in a
synthesized hardware part, it can be necessary to debug this
part to identify the cause of the failure, using physical probes
to read the state and control of the system. Many tools
and techniques exist for hardware monitoring, information,</p>
      </sec>
      <sec id="sec-5-9">
        <title>L. Debugging in the context of faulty semantics</title>
        <p>While debugging commonly focuses on finding problems
inside models, another possible cause for failures are problems
in the semantics of the considered language (e.g., errors in
the interpreter or in the code generator). Faulty semantics can
lead to invalid or inconsistent debugging results. This can have
different causes, such as:</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>The semantics is correctly specified, but wrongly imple</title>
      <p>mented, which means that the semantics itself must be
debugged.</p>
      <p>The semantics is incorrectly specified, which means that
the set of properties that specify the language must be
clarified.</p>
      <p>The semantics is both correctly specified and
implemented, but is not well understood by the modeller. This
is a subtler problem, and one where debugging techniques
can be useful for “model understanding”, or in this case
“semantics understanding”, possibly by exposing certain
details of the semantics in the debugging process.</p>
      <sec id="sec-6-1">
        <title>M. Identifying “innocent” model elements</title>
        <p>Debugging aims at searching the cause of some observed
failures within models or properties. In other words, the goal
is to identify “guilty” model elements that cause trouble.
However, it is equally important in the debugging process to
identify the “innocent” model elements that definitively do
not contribute to the fault. For instance, when using
generalpurpose programming languages, it is common to comment
portions of code to see whether the failure is still present
without these portions. In a more advanced fashion, unit testing
aims at testing independently the different parts of a system—
for instance using partial and trusted implementations called
stubs—in order to mark as many units as possible “innocent”,
and to eventually isolate the guilty unit responsible for a
failure.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>VI. CONCLUSION AND ACKNOWLEDGEMENTS</title>
      <p>While verification and validation is a necessary step to
identify the defects in models, debugging is a crucial activity
when it comes to dealing with such defects to improve the
quality of models. The International Workshop on Debugging
in Model-Driven Engineering (MDEbug) aims at providing an
event for the community to share ideas and results in this
research area. This first edition was well attended throughout
the day, and the afternoon discussions were both lively and
constructive, leading to a wide range of potential research
topics. In addition, we observed that debugging was a quite
recurrent topic throughout the presentations of the MODELS
2017 conference, which strengthens our belief that it is an
important research direction for the success of MDE.</p>
      <p>We thank everyone who took part in the success of the
workshop, including the program committee members, the
authors, our keynote speaker, and everyone who attended the
workshop or took part in the discussions.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Gabmeyer</surname>
          </string-name>
          , P. Kaufmann,
          <string-name>
            <given-names>M.</given-names>
            <surname>Seidl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gogolla</surname>
          </string-name>
          , and G. Kappel, “
          <article-title>A feature-based classification of formal verification techniques for software models</article-title>
          ,
          <source>” Software &amp; Systems Modeling, Mar</source>
          <year>2017</year>
          . [Online]. Available: https://doi.org/10.1007/s10270-017-0591-z
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>F.</given-names>
            <surname>Hilken</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gogolla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Burgueño</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Vallecillo</surname>
          </string-name>
          , “
          <article-title>Testing models and model transformations using classifying terms,” Software &amp; Systems Modeling</article-title>
          ,
          <year>Dec 2016</year>
          . [Online]. Available: https://doi.org/10. 1007/s10270-016-0568-3
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>K.</given-names>
            <surname>Zurowska</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Dingel</surname>
          </string-name>
          , “
          <article-title>Language-specific model checking of UML-RT models</article-title>
          ,
          <source>” Software &amp; Systems Modeling</source>
          , vol.
          <volume>16</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>393</fpage>
          -
          <lpage>415</lpage>
          , May
          <year>2017</year>
          . [Online]. Available: https://doi.org/10.1007/ s10270-015-0484-y
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>E.</given-names>
            <surname>Planas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Gómez</surname>
          </string-name>
          , “
          <article-title>Lightweight and static verification of UML executable models</article-title>
          ,”
          <source>Computer Languages, Systems &amp; Structures</source>
          , vol.
          <volume>46</volume>
          , no. Supplement C, pp.
          <fpage>66</fpage>
          -
          <lpage>90</lpage>
          ,
          <year>2016</year>
          . [Online]. Available: http://www.sciencedirect.com/science/article/ pii/S1477842415300361
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Peggy</given-names>
            <surname>Aldrich</surname>
          </string-name>
          <string-name>
            <surname>Kidwell</surname>
          </string-name>
          , “Stalking the Elusive Computer Bug,”
          <source>IEEE Annals Of The History Of Computing</source>
          , vol.
          <volume>20</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>7</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Zeller</surname>
          </string-name>
          ,
          <source>Why Program Fail - 1st Edition. Elsevier</source>
          ,
          <year>2004</year>
          . [Online]. Available: http://www.whyprogramsfail.com/
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>N.</given-names>
            <surname>Bandener</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Soltenborn</surname>
          </string-name>
          , and G. Engels, “
          <article-title>Extending DMM Behavior Specifications for Visual Execution</article-title>
          and Debugging,”
          <source>in Proceedings of the Third International Conference on Software Language Engineering (SLE'10)</source>
          , vol.
          <volume>6563</volume>
          LNCS. Springer Berlin Heidelberg,
          <year>2010</year>
          , pp.
          <fpage>357</fpage>
          -
          <lpage>376</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mayerhofer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Langer</surname>
          </string-name>
          , and G. Kappel, “
          <article-title>A runtime model for fUML,</article-title>
          ” in Workshop on Models@
          <article-title>run.time (MRT)</article-title>
          .
          <source>ACM</source>
          ,
          <year>2012</year>
          , pp.
          <fpage>53</fpage>
          -
          <lpage>58</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>S.</given-names>
            <surname>Van Mierlo</surname>
          </string-name>
          ,
          <string-name>
            <surname>Y. Van Tendeloo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , “
          <string-name>
            <surname>Debugging Parallel</surname>
            <given-names>DEVS</given-names>
          </string-name>
          ,
          <string-name>
            <surname>”</surname>
            <given-names>SIMULATION</given-names>
          </string-name>
          , vol.
          <volume>93</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>285</fpage>
          -
          <lpage>306</lpage>
          ,
          <year>2017</year>
          . [Online]. Available: http://dx.doi.org/10.1177/0037549716658360
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Schönböck</surname>
          </string-name>
          , G. Kappel,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kusel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Retschitzegger</surname>
          </string-name>
          , and W. Schwinger, “
          <article-title>Tetrabox - a generic white-box testing framework for model transformations</article-title>
          ,
          <source>” in 2013 20th Asia-Pacific Software Engineering Conference (APSEC)</source>
          , vol.
          <volume>1</volume>
          ,
          <string-name>
            <surname>Dec</surname>
            <given-names>2013</given-names>
          </string-name>
          , pp.
          <fpage>75</fpage>
          -
          <lpage>82</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>A.</given-names>
            <surname>Blouin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Combemale</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Baudry</surname>
          </string-name>
          , and
          <string-name>
            <given-names>O.</given-names>
            <surname>Beaudoux</surname>
          </string-name>
          , “Kompren: Modeling and Generating Model Slicers,” Software and
          <string-name>
            <given-names>Systems</given-names>
            <surname>Modeling</surname>
          </string-name>
          , Oct.
          <year>2012</year>
          . [Online]. Available: http://hal.inria.fr/hal-00746566/PDF/slicer.pdf
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>E.</given-names>
            <surname>Bousse</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Corley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Combemale</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Gray</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Baudry</surname>
          </string-name>
          , “
          <article-title>Supporting Efficient and Advanced Omniscient Debugging for xDSMLs,”</article-title>
          <source>in Proceedings of the 2015 ACM SIGPLAN International Conference on Software Language Engineering</source>
          , ser.
          <source>SLE</source>
          <year>2015</year>
          . New York, NY, USA: ACM,
          <year>2015</year>
          , pp.
          <fpage>137</fpage>
          -
          <lpage>148</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>J.</given-names>
            <surname>Corley</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. P.</given-names>
            <surname>Eddy</surname>
          </string-name>
          , E. Syriani, and
          <string-name>
            <given-names>J.</given-names>
            <surname>Gray</surname>
          </string-name>
          , “
          <article-title>Efficient and scalable omniscient debugging for model transformations</article-title>
          ,
          <source>” Software Quality Journal</source>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>42</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14] R. van Rozen and T. van der Storm, “
          <article-title>Toward live domain-specific languages,” Software &amp; Systems Modeling</article-title>
          ,
          <year>Aug 2017</year>
          . [Online]. Available: https://doi.org/10.1007/s10270-017-0608-7
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>B.</given-names>
            <surname>Combemale</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Crégut</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.-L.</given-names>
            <surname>Garoche</surname>
          </string-name>
          , and
          <string-name>
            <given-names>X.</given-names>
            <surname>Thirioux</surname>
          </string-name>
          , “
          <article-title>Essay on Semantics Definition in MDE - An Instrumented Approach for Model Verification</article-title>
          ,
          <source>” Journal of Software</source>
          , vol.
          <volume>4</volume>
          , no.
          <issue>9</issue>
          , pp.
          <fpage>943</fpage>
          -
          <lpage>958</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>H.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Gray</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Mernik</surname>
          </string-name>
          , “
          <article-title>Grammar-driven generation of domain-specific language debuggers</article-title>
          ,
          <source>” Software: Practice and Experience</source>
          , vol.
          <volume>38</volume>
          , no.
          <issue>10</issue>
          , pp.
          <fpage>1073</fpage>
          -
          <lpage>1103</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>S.</given-names>
            <surname>Mustafiz</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , “
          <article-title>Explicit modelling of statechart simulation environments</article-title>
          ,”
          <source>in Proceedings of the 2013 Summer Computer Simulation Conference, ser. SCSC '13</source>
          . Vista, CA: Society for Modeling &amp;#
          <volume>38</volume>
          ;
          <string-name>
            <surname>Simulation</surname>
            <given-names>International</given-names>
          </string-name>
          ,
          <year>2013</year>
          , pp.
          <volume>21</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>21</lpage>
          :
          <fpage>8</fpage>
          . [Online]. Available: http://dl.acm.org/citation.cfm?id=
          <volume>2557696</volume>
          .
          <fpage>2557720</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Laurent</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bendraou</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Gervais</surname>
          </string-name>
          , “
          <article-title>Executing and debugging UML models: an fUML extension</article-title>
          ,
          <source>” in Symposium on Applied Computing (SAC)</source>
          .
          <source>ACM</source>
          ,
          <year>2013</year>
          , pp.
          <fpage>1095</fpage>
          -
          <lpage>1102</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>J.</given-names>
            <surname>Denil</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kashif</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Arafa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Fischmeister</surname>
          </string-name>
          , “
          <article-title>Instrumentation and preservation of extra-functional properties of simulink models</article-title>
          ,”
          <source>in Proceedings of the Symposium on Theory of Modeling</source>
          &amp; Simulation
          <string-name>
            <surname>: DEVS Integrative M&amp;S Symposium</surname>
          </string-name>
          , ser.
          <source>DEVS '15</source>
          . San Diego, CA, USA: Society for Computer Simulation International,
          <year>2015</year>
          , pp.
          <fpage>47</fpage>
          -
          <lpage>54</lpage>
          . [Online]. Available: http://dl.acm.org/citation.cfm?id=
          <volume>2872965</volume>
          .
          <fpage>2872972</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>A.</given-names>
            <surname>Krasnogolowy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Hildebrandt</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Wlitzoldt</surname>
          </string-name>
          , “Flexible Debugging of Behavior Models,” in International Conference on Industrial
          <source>Technology (ICIT)</source>
          . IEEE,
          <year>2012</year>
          , pp.
          <fpage>331</fpage>
          -
          <lpage>336</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>A.</given-names>
            <surname>Chis¸</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Denker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Gîrba</surname>
          </string-name>
          , and
          <string-name>
            <given-names>O.</given-names>
            <surname>Nierstrasz</surname>
          </string-name>
          , “
          <article-title>Practical domainspecific debuggers using the moldable debugger framework</article-title>
          ,
          <source>” Comput. Lang. Syst. Struct.</source>
          , vol.
          <volume>44</volume>
          , no.
          <source>PA</source>
          , pp.
          <fpage>89</fpage>
          -
          <lpage>113</lpage>
          , Dec.
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>R. T.</given-names>
            <surname>Lindeman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. C. L.</given-names>
            <surname>Kats</surname>
          </string-name>
          , and E. Visser, “Declaratively Defining
          <string-name>
            <surname>Domain-Specific Language</surname>
            <given-names>Debuggers</given-names>
          </string-name>
          ,” in International Conference on
          <article-title>Generative Programming and Component Engineering (GPCE)</article-title>
          .
          <source>ACM</source>
          ,
          <year>2012</year>
          , pp.
          <fpage>127</fpage>
          -
          <lpage>136</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>T.</given-names>
            <surname>Degueule</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Combemale</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Blouin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Barais</surname>
          </string-name>
          , and J.
          <string-name>
            <surname>-M. Jézéquel</surname>
          </string-name>
          , “
          <article-title>Melange: A meta-language for modular and reusable development of DSLs,”</article-title>
          <source>in Proceedings of the 2015 ACM SIGPLAN International Conference on Software Language Engineering</source>
          , ser.
          <source>SLE</source>
          <year>2015</year>
          . New York, NY, USA: ACM,
          <year>2015</year>
          , pp.
          <fpage>25</fpage>
          -
          <lpage>36</lpage>
          . [Online]. Available: http://doi.acm.
          <source>org/10</source>
          .1145/2814251.2814252
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>M.</given-names>
            <surname>Churchill</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. D.</given-names>
            <surname>Mosses</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Sculthorpe</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Torrini</surname>
          </string-name>
          , “
          <article-title>Reusable components of semantic specifications,” in Transactions on Aspect-Oriented Software Development XII, S. Chiba, É</article-title>
          . Tanter, E. Ernst, and R. Hirschfeld, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg,
          <year>2015</year>
          , pp.
          <fpage>132</fpage>
          -
          <lpage>179</lpage>
          . [Online]. Available: https: //doi.org/10.1007/978-3-
          <fpage>662</fpage>
          -46734-
          <issue>3</issue>
          _
          <fpage>4</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>E.</given-names>
            <surname>Bousse</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Degueule</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Vojtisek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Mayerhofer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Deantoni</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Combemale</surname>
          </string-name>
          , “
          <article-title>Execution Framework of the GEMOC Studio (Tool Demo</article-title>
          ),
          <source>” in Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering</source>
          , ser.
          <source>SLE</source>
          <year>2016</year>
          . New York, NY, USA: ACM,
          <year>2016</year>
          , pp.
          <fpage>84</fpage>
          -
          <lpage>89</lpage>
          . [Online]. Available: http://doi.acm.
          <source>org/10</source>
          .1145/2997364.2997384
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>