<!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 Providing Debugging in the Domain-Specific Modeling Languages for Software Agents</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Baris Tekin Tezel</string-name>
          <email>baris.tezel@deu.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Geylani Kardas</string-name>
          <email>geylani.kardas@ege.edu.tr</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Computer Science Department, Dokuz Eylul University</institution>
          ,
          <addr-line>Izmir</addr-line>
          ,
          <country country="TR">Turkey</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>International Computer Institute, Ege University</institution>
          ,
          <addr-line>Izmir</addr-line>
          ,
          <country country="TR">Turkey</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <abstract>
        <p>Domain-specific modeling languages (DSMLs) for Multi-agent Systems (MAS) mostly provide checks and validations on modeled systems according to the related syntax and semantics descriptions. However, they do not have a built-in support for debugging MAS models which makes the control of model correctness dificult. Hence, in this paper, we present our ongoing work which aims at providing debugging inside MAS DSMLs. We describe two possible ways of deriving debuggers for MAS DSMLs. The first alternative is based on the construction of a mapping between MAS model entities and the generated code while the second one considers the metamodel-based description of the operational semantics of executing agents. Pros and cons of each approach are also discussed.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 INTRODUCTION</title>
      <p>
        Software agents are autonomous software entities acting to fulfill
its duties on behalf of users. Multi-agent systems (MASs) include
multiple interacting software agents within an environment to
provide solutions for complex systems which cannot be easily solved
with individual agents or monolithic systems. However, the
development of MASs is not trivial due to the various agent properties
such as autonomy, responsiveness, and proactiveness, and the need
for realization of the many diferent agent interactions [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>
        Agent-oriented software engineering (AOSE) [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] researchers
define various agent metamodels (e.g. [
        <xref ref-type="bibr" rid="ref13 ref19 ref3">3, 13, 19</xref>
        ]), which include
fundamental MAS entities and relations. Originating from these
metamodel definitions, many model-driven agent development
approaches [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] are provided in order to facilitate design and
implementation of software agents by enriching MAS metamodels with
some defined syntax and semantics (usually translational
semantics). In AOSE, perhaps the most popular way of applying
modeldriven engineering (MDE) for MASs is based on creating
Domainspecific Modeling Languages (DSMLs) with including appropriate
integrated development environments (IDEs) in which both
modeling and code generation for system-to-be-developed can be
performed properly [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Proposed MAS DSMLs (e.g. [
        <xref ref-type="bibr" rid="ref11 ref12 ref16 ref2 ref6">2, 6, 11, 12, 16</xref>
        ]
usually support modeling both the static and the dynamic aspects of
agent software from diferent MAS viewpoints including agent
internal behaviour model, interaction with other agents, use of other
environment entities, etc. Although IDEs of these MAS DSMLs
provide some sort of check and validation on modeled systems
according to the related DSML’s syntax and semantics descriptions,
they do not have a built-in support for debugging these MAS
models. That deficiency causes the agent developers not to be sure on
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>DEBUGGING APPROACHES FOR MAS</title>
    </sec>
    <sec id="sec-3">
      <title>DSMLS</title>
      <p>
        In the context of software development, debugging support is
mostly provided by a language and an IDE which enable to watch
and change executed programs [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. As indicated in [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], various
debugging techniques (e.g. using breakpoints, stepping operators,
symbolic execution) are used for GPLs. However, model
developers need to debug models at the model level, not at the code
level in the domain-specific modeling [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], and this new
requirement caused the researchers on developing new debugging
approaches for model-driven development and DSMLs. Compared
with GPLs, very few debugging methods and tools currently
exist for DSMLs. For instance, Moldable Debugger [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] provides the
construction of domain-specific debuggers by creating and
combining domain-specific debugging operations with domain-specific
debugging views. Omniscient debugging, which allows free
traversal of the states reached by a system during an execution, is also
used in creating debuggers for executable DSMLs (xDSMLs) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
or improving model transformations [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Motivating from these
eforts, we investigate diferent debugging approaches which can be
used for MAS DSMLs. Within the scope of our study, two diferent
approaches have been derived so far. The first one is focused on
constructing a mapping between MAS model entities and the
generated code while the second approach covers the metamodel-based
description of the operational semantics of executing agents. The
following subsections briefly discuss these alternatives.
2.1
      </p>
    </sec>
    <sec id="sec-4">
      <title>Construction of a Mapping Between MAS</title>
    </sec>
    <sec id="sec-5">
      <title>Model Entities and the Generated Code</title>
      <p>
        In this approach, we adopt existing, tried and well-known
debugging facilities for the domain-specific models of software agents.
Constructing a mapping between model entities and the generated
code allows the DSML developer to use target language debugging
facilities for generating debugging perspectives. For this purpose,
we propose a debugging approach based on the DSL Debugging
Framework (DDF) presented by Wu et al. [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ].
      </p>
      <p>
        The key technique of the proposed method is the mapping
process. This process is recording the link between an agent DSML
(e.g. DSML4MAS [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] or SEA_ML [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]) and the generated target
language code conforming to a MAS development framework (such
as JACK1 or JADE2) implemented with a GPL (e.g. Java). The
mapping information required by the approach depends on both the
source language (an agent DSML) and the target language (a GPL).
The mapping components consist of the “source code mapping”,
“debugging methods mapping”, and “debugging results mapping”.
      </p>
      <p>The results of these first two mapping processes along with the
generated GPL code are re-interpreted to generate GPL debugging
commands for the GPL debugger. The “source code mapping”
component is used to determine which entity of the DSML model is
mapped to which segment of GPL code. As a side efect of
modelto-text transformation, the source code mapping is generated when
an agent DSML model is transformed to target language code.</p>
      <p>The traditional GPL debugging activities may not be appropriate
for the end user of an agent DSML. For this reason, domain-specific
debugging activities should be defined to be used in the
debugging perspective of the DSML level. So, the “debugging methods
mapping” component is used for receiving DSML user debugging
commands from the DSML-level debugging perspective to
determine what types of debugging commands are needed from the
GPL-level command line debugger and explaining how debugging
activities at the DSML level are expressed at the GPL level.</p>
      <p>The GPL-level debugger sends debugging results to the DSML
debugging perspective with the help of the “debugging results
mapping” component, which converts GPL debug output messages
back to the DSML level. Since the messages in the GPL debugger
are command line output that does not contain any information
pertaining to the DSML debugging perspective, it is necessary to
reconstruct the results to the DSML user perspective.
2.2</p>
    </sec>
    <sec id="sec-6">
      <title>Metamodel-based Description of Agent</title>
    </sec>
    <sec id="sec-7">
      <title>Operational Semantics</title>
      <p>
        Originating from the methods described in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], the
debugging process, in this approach, is accomplished by the
metamodelbased description of a MAS DSML’s operational semantics where
possible runtime states are modeled as part of the DSML metamodel
and transitions are defined as model-to-model (M2M)
transformations. To apply this approach, an operational semantics based on
the metamodel is required in addition to the abstract syntax of the
language. By this way, it allows to access runtime state directly on
a model instance and to control execution by the M2M
transformation.
1JACK Autonomous Software, http://aosgrp.com/products/jack/
2JAVA Agent DEvelopment Framework, http://jade.tilab.com/
      </p>
      <p>The key technique of the approach is the step-by-step execution
of DSML instances (MAS models). This makes it possible to
introduce a generic debugger. Such a debugger can control a program
to suspend execution according to active breakpoints, which are
based on model elements. The breakpoint can be placed in model
elements representing program locations. If an element marked as
a breakpoint is included in a M2M transformation query, execution
is automatically suspended.</p>
      <p>Step Operations are interpreted with model transformation queries
for the target model locations, which extract the model elements.
Such target locations are loaded with temporary breakpoints, and
when one of these breakpoints is reached, execution is
automatically suspended. Thus, one step of the execution is provided on the
model.</p>
      <p>It is worth indicating that the definition of a debugging
perspective of a MAS model instance based on the metamodel is possible in
this approach, and hence the runtime state of agents can be entirely
contained in the MAS model. Thus, the debugging perspective that
uses domain-specific concepts at the model level, can be provided
to the users.
3</p>
    </sec>
    <sec id="sec-8">
      <title>DISCUSSION</title>
      <p>
        At first glance, it may seem that the first approach can be applied
to DSMLs developed for software agents. However, there are some
dificulties in implementation at this point, mainly originating from
using the GPL debuggers for debugging. First, the approach assumes
that all generated artifacts of a MAS DSML are executable. However,
many MAS DSMLs produce MAS specification / configuration files
(e.g. for defining agent beliefs in OWL ontology documents or
setting agent goals and plans in XML-encoded files) and hence
they can not be included in the debugging process within this
approach. For example; some of the artifacts generated from a
SEA_ML [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] MAS model instance are ontology documents of the
semantic web services interacting with the agents while some of
them are the codes pertaining to the target agent execution platform.
This is an important shortage of following the first approach in
implementing debuggers for MAS DSMLs. Another dificulty is that
the generated GPL code has to be used in GPL debugging tools, so
the GPL code must be complete. However, due to the high level of
abstraction of MAS DSMLs, the generated GPL codes are generally
code fragments / templates which are architectural and do not
mostly have behavioral logic. This causes a problem before using
the generated code in the GPL debugger since existing MAS DSMLs
do not have the ability to generate complete codes for implementing
MAS [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. In addition, the DSML users with limited programming
skills may not have the ability to complete the generated code.
      </p>
      <p>The second approach seems to be more appropriate than the
previous one while developing debuggers for MAS DSMLs since
the application of this approach is independent from the GPL
debuggers. The implementation would not need to consider whether
generated outputs are not executable or the executable artifacts are
just template codes. Hence, that approach, i.e. constructing a
debugger over metamodel-based description of the agent operational
semantics, looks more suitable for complex modeling environments
of MAS DSMLs. However, applying this approach also has several
dificulties in the implementation phase. The dificulties will be
encountered at (1) parts describing the runtime state of a MAS
model to be added to the metamodel of the language, and (2) the
writing of the rules of the M2M transformation which will refer to
transitions between states. Considering the parts that represent the
runtime state to be added to the metamodel, if the complexity and
the size of the metamodel increase, the number of these elements
and the number of relations between both themselves and other
elements will also increase dramatically. This is a challenging
situation for the language developer who will add these elements to the
MAS metamodel. The second problem that may arise in practice is
that most of the languages and technologies for M2M conversions
are based on rewriting a graph. However, the proposed approach
should not only rewrite MAS model instances that are caught by
traversing in accordance with the target metamodel, but rather
it has to represent the transitions in the runtime by looking at
the relevant model elements, relations and properties. In this case,
the M2M transformation environment has to be constructed from
scratch solely for a specific MAS DSML in order to be implemented
and can be used during transformations.</p>
      <p>
        In fact, the dificulty of implementing both of these approaches
mainly arises from incomplete and/or informal modeling of runtime
agent behaviors in the current MAS DSMLs. In order to eliminate
this deficiency, one option can be the construction of
transformations between MAS DSMLs and a formalism, such as Petri nets.
Hence, models for agent plans and tasks can be complete for
execution. Although such a model will include a non-deterministic
formalism due to the nature of agent programs, debugging of such
models can be assisted with newly emerging tools (e.g. [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]). Model
instrumentation [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] can also be used for debugging without
modifying the metamodels. Another alternative for debugging agents
at runtime can be providing xDSMLs for MAS at first and then
benefiting from the existing approaches on debugging xDSMLs
(e.g. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]). However, we should re-engineer both the syntax and
the semantics of each diferent MAS DSML as to be executable or
construct a brand new MAS xDSML in order to use this approach.
4
      </p>
    </sec>
    <sec id="sec-9">
      <title>CONCLUSION</title>
      <p>We have discussed some possible debugging approaches which may
be used for debugging MAS models conforming to MAS DSML
specifications. A brief evaluation of these approaches showed that the
application of the first approach is easier since it benefits from using
already existing GPL debuggers. However, use of MAS DSMLs do
not only produce executable codes; other artifacts (e.g. agent
configuration files, service descriptions) also need debugging. Moreover,
generated codes mostly do not contain complete behavioral logic
required for the exact implementation of agents. These can make the
application of the first approach ineficient. The second approach,
utilizing the metamodel-based description of agent operational
semantics, seems promising since it is free from underlying GPL
structures. However, it is more dificult to apply because it needs
addition of parts describing the runtime state of MAS model into the
language metamodel and writing the corresponding M2M
transformation rules. Implementation of these debuggers can be facilitated
by methods consisting of strengthening MAS model formalism
and/or re-shaping existing MAS DSMLs as xDSMLs. However, both
providing implementation platforms for the proposed approaches
and enriching them with these methods need further investigation
which will be our future work.</p>
    </sec>
    <sec id="sec-10">
      <title>ACKNOWLEDGMENTS</title>
      <p>The first author would like to thank TUBITAK-BIDEB for their
ifnancial support during his Ph.D. studies.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Bagherzadeh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Hili</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Dingel</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Model-level, platform-independent debugging in the context of the model-driven development of real-time systems</article-title>
          .
          <source>In Proc. 11th Joint Meeting on Foundations of Software Engineering</source>
          .
          <fpage>419</fpage>
          -
          <lpage>430</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bergenti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Iotti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Monica</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Agent-oriented model-driven development for JADE with the JADEL programming language</article-title>
          .
          <source>Computer Languages, Systems &amp; Structures</source>
          <volume>50</volume>
          (
          <year>2017</year>
          ),
          <fpage>142</fpage>
          -
          <lpage>158</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>G.</given-names>
            <surname>Beydoun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Low</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Henderson-Sellers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Mouratidis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. J.</given-names>
            <surname>Gomez-Sanz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Pavon</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Gonzalez-Perez</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>FAML: A Generic Metamodel for MAS Development</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          <volume>35</volume>
          ,
          <issue>6</issue>
          (
          <year>2009</year>
          ),
          <fpage>841</fpage>
          -
          <lpage>863</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Blunk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Fischer</surname>
          </string-name>
          , and
          <string-name>
            <surname>Daniel</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Sadilek</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>Modelling a Debugger for an Imperative Voice Control Language</article-title>
          .
          <source>In Lecture Notes in Computer Science</source>
          . Vol.
          <volume>5719</volume>
          .
          <fpage>149</fpage>
          -
          <lpage>164</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <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>
          .
          <year>2015</year>
          .
          <article-title>Supporting eficient and advanced omniscient debugging for xDSMLs</article-title>
          .
          <source>In Proceedings of the 2015 ACM SIGPLAN Int. Conf. Software Language Engineering (SLE</source>
          <year>2015</year>
          ).
          <fpage>137</fpage>
          -
          <lpage>148</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Challenger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Demirkol</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Getir</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mernik</surname>
          </string-name>
          , G. Kardas, and
          <string-name>
            <given-names>T.</given-names>
            <surname>Kosar</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>On the use of a domain-specific modeling language in the development of multiagent systems</article-title>
          .
          <source>Engineering Applications of Artificial Intelligence</source>
          <volume>28</volume>
          (
          <year>2014</year>
          ),
          <fpage>111</fpage>
          -
          <lpage>141</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Challenger</surname>
          </string-name>
          , G. Kardas, and
          <string-name>
            <given-names>B.</given-names>
            <surname>Tekinerdogan</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>A systematic approach to evaluating domain-specific modeling language environments for multi-agent systems</article-title>
          .
          <source>Software Quality Journal</source>
          <volume>24</volume>
          ,
          <issue>3</issue>
          (
          <year>2016</year>
          ),
          <fpage>755</fpage>
          -
          <lpage>795</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>A.</given-names>
            <surname>Chiş</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>
          .
          <year>2016</year>
          .
          <article-title>Practical domain-specific debuggers using the Moldable Debugger framework</article-title>
          .
          <source>Computer Languages, Systems &amp; Structures</source>
          <volume>44</volume>
          ,
          <string-name>
            <surname>Part</surname>
            <given-names>A</given-names>
          </string-name>
          (
          <year>2016</year>
          ),
          <fpage>89</fpage>
          -
          <lpage>113</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <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>
          .
          <year>2017</year>
          .
          <article-title>Eficient and scalable omniscient debugging for model transformations</article-title>
          .
          <source>Software Quality Journal</source>
          <volume>25</volume>
          ,
          <issue>1</issue>
          (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>G.</given-names>
            <surname>Engels</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. H.</given-names>
            <surname>Hausmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Heckel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Sauer</surname>
          </string-name>
          .
          <year>2000</year>
          .
          <article-title>Dynamic meta modeling: a graphical approach to the operational semantics of behavioral diagrams in UML</article-title>
          .
          <source>In Lecture Notes in Computer Science</source>
          . Vol.
          <year>1939</year>
          .
          <volume>323</volume>
          -
          <fpage>337</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>E. J. T.</given-names>
            <surname>Gonçalves</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. I.</given-names>
            <surname>Cortés</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. A. L.</given-names>
            <surname>Campos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y. S.</given-names>
            <surname>Lopes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E S.S.</given-names>
            <surname>Freire</surname>
          </string-name>
          , V. T. da
          <string-name>
            <surname>Silva</surname>
          </string-name>
          ,
          <string-name>
            <surname>K. S. F. de Oliveira</surname>
          </string-name>
          , and
          <string-name>
            <surname>M. A. de Oliveira</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>MAS-ML 2.0: Supporting the modelling of multi-agent systems with diferent agent architectures</article-title>
          .
          <source>Journal of Systems and Software</source>
          <volume>108</volume>
          (
          <year>2015</year>
          ),
          <fpage>77</fpage>
          -
          <lpage>109</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>C.</given-names>
            <surname>Hahn</surname>
          </string-name>
          .
          <year>2008</year>
          .
          <article-title>A domain specific modeling language for multiagent systems</article-title>
          .
          <source>In Proceedings of the 7th International Joint Conference on Autonomous Agents and Multiagent Systems (AAMAS</source>
          <year>2008</year>
          )-Volume
          <volume>1</volume>
          .
          <fpage>233</fpage>
          -
          <lpage>240</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>C.</given-names>
            <surname>Hahn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            and
            <surname>Madrigal-Mora</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Fischer</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>A platform-independent metamodel for multiagent systems</article-title>
          .
          <source>Autonomous Agents and Multi-Agent Systems 18</source>
          ,
          <issue>2</issue>
          (
          <year>2009</year>
          ),
          <fpage>239</fpage>
          -
          <lpage>266</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>G.</given-names>
            <surname>Kardas</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>Model-driven development of multiagent systems: a survey and evaluation</article-title>
          .
          <source>The Knowledge Engineering Review</source>
          <volume>28</volume>
          ,
          <issue>04</issue>
          (
          <year>2013</year>
          ),
          <fpage>479</fpage>
          -
          <lpage>503</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>G.</given-names>
            <surname>Kardas</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. J.</given-names>
            <surname>Gomez-Sanz</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Special issue on model-driven engineering of multi-agent systems in theory and practice</article-title>
          .
          <source>Computer Languages, Systems &amp; Structures</source>
          <volume>50</volume>
          (
          <year>2017</year>
          ),
          <fpage>140</fpage>
          -
          <lpage>141</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>G.</given-names>
            <surname>Kardas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.T.</given-names>
            <surname>Tezel</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Challenger</surname>
          </string-name>
          .
          <year>2018</year>
          .
          <article-title>Domain-specific modelling language for belief-desire-intention software agents</article-title>
          .
          <source>IET Softw</source>
          .
          <volume>12</volume>
          ,
          <issue>4</issue>
          (
          <year>2018</year>
          ),
          <fpage>356</fpage>
          -
          <lpage>364</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>R.</given-names>
            <surname>Mannadiar</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          .
          <year>2011</year>
          .
          <article-title>Debugging in Domain-Specific Modelling</article-title>
          .
          <source>In Lecture Notes in Computer Science</source>
          . Vol.
          <volume>6563</volume>
          .
          <fpage>276</fpage>
          -
          <lpage>285</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>O.</given-names>
            <surname>Shehory</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Sturm</surname>
          </string-name>
          .
          <year>2014</year>
          .
          <article-title>Agent-Oriented Software Engineering: Reflections on Architectures, Methodologies, Languages,</article-title>
          and Frameworks. Springer-Verlag Berlin Heidelberg.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>B. T.</given-names>
            <surname>Tezel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Challenger</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Kardas</surname>
          </string-name>
          .
          <year>2016</year>
          .
          <article-title>A metamodel for Jason BDI agents</article-title>
          .
          <source>In 5th Symposium on Languages, Applications and Technologies (SLATE'16)</source>
          , Vol.
          <volume>51</volume>
          . 8:
          <fpage>1</fpage>
          --
          <lpage>8</lpage>
          :
          <fpage>9</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>S.</given-names>
            <surname>Van Mierlo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Bousse</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Verbrugge</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gogolla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tichy</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Blouin</surname>
          </string-name>
          .
          <source>2017. Report on the 1st International Workshop on Debugging in Model-Driven Engineering (MDEbug17)</source>
          .
          <source>In Proceedings of the 1st International Workshop on Debugging in Model-Driven Engineering</source>
          .
          <fpage>441</fpage>
          -
          <lpage>446</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>S. Van</given-names>
            <surname>Mierlo</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          .
          <year>2017</year>
          .
          <article-title>Debugging Non-determinism: a Petrinets Modelling, Analysis, and Debugging Tool</article-title>
          .
          <source>In Proceedings of the 1st International Workshop on Debugging in Model-Driven Engineering (MDEbug</source>
          <year>2017</year>
          ).
          <fpage>460</fpage>
          -
          <lpage>462</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <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>
          .
          <year>2008</year>
          .
          <article-title>Grammar-driven generation of domainspecific language debuggers</article-title>
          .
          <source>Software: Practice and Experience</source>
          <volume>38</volume>
          ,
          <issue>10</issue>
          (
          <year>2008</year>
          ),
          <fpage>1073</fpage>
          -
          <lpage>1103</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>A.</given-names>
            <surname>Zeller</surname>
          </string-name>
          .
          <year>2009</year>
          .
          <article-title>Why Programs Fail: A Guide to Systematic Debugging</article-title>
          . Morgan Kaufmann.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>