<!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>On the Execution of Deep Models</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Colin Atkinson, Ralph Gerbig, Noah Metzger University of Mannheim Software Engineering Group Mannheim</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <fpage>28</fpage>
      <lpage>33</lpage>
      <abstract>
        <p>-A variety of tools today support the dynamic execution/simulation of models within a single modeling environment. However, they all suffer from limitations resulting from their implementation on a traditional, two-level modeling platform. The most prominent of these is the inability to represent the specification of the modeling language, the domain model and model execution state at the same time in a uniform and seamless manner. They therefore invariably have to resort to some kind of ad hoc extension mechanism or workarounds to represent all three levels, with corresponding increases in accidental complexity and potential for misunderstandings. In this paper we demonstrate how deep modeling environments provide a conceptually cleaner and more powerful environment for model execution and simulation thanks to their inherent support for the representation of arbitrary numbers of classification levels, and the ability to define customizable, domain specific languages within them.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>I. INTRODUCTION
advantages. First, it makes it possible to naturally represent
run-time instance information alongside model type
information (with inherent support for the semantics of instantiation)
without polluting the model execution blueprint. Second, it
provides natural support for debugging by allowing model
execution traces (i.e. instances) to be directly checked against
model execution blueprints (i.e. types). Third, it allows the
behavior of the system to be dynamically modified at any
time by simply changing model execution instances without
changing the blueprint. Fourth, the execution blueprint can be
extended dynamically at any time, without the need for any
code generation or editor redeployment, simply by adding new
types to the language definition. Finally, it allows domains that
inherently feature more than three classification levels to be
modeled and executed in a natural and uniform way since there
is no limitation on the number of levels that can be modeled.</p>
      <p>In this paper we illustrate the advantages of the deep
modeling approach for model execution by presenting an example
of the execution of a simple but intuitive deep model from
the domain of gaming. The example represents an executed
game in which, from a birds-eye view, two players play against
each other on one computer. One uses the mouse to control
the game and the other the keyboard. Changes to the state of
the game (i.e. the deep model) are immediately visible to all
parties, and a third player is able to manipulate the game while
the other two players play.</p>
      <p>The paper is structured as follows: in the next section
(Section II) the deep modeling approach is introduced. The
prototype game demonstrating the advantages of deep models
for model execution is then shown in Section III and discussed
in Section IV. Finally the paper closes with a discussion
of related work (Section V) and a few concluding remarks
(Section VI).
L2
L1</p>
      <p>
        The first thing that can be observed from the model is that
two kinds of classification relationships are present, one kind
represented in the vertical dimension and one kind represented
in the horizontal dimension. These two classification
dimensions give the underlying architecture of deep modeling
environments its name - the Orthogonal Classification Architecture
(OCA) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. The vertical dimension shows the model from the
perspective of a traditional “two-level” implementation of such
an environment within a UML or EMF tool. The top level,
L2, defines all model elements that are available in the deep
modeling language and is thus called the “linguistic (meta)
model”. The middle level, L1, contains the domain content
defined by the user and thus actually contains the so called
deep model and its multiple “ontological classification levels”.
All model elements in the L1 level, except model elements
residing at the most abstract ontological classification level,
O0, have two types: an ontological type (horizontal dashed
arrows) and a linguistic type (vertical dotted arrows). The
lowest linguistic level, L0, contains the real world entities
represented by the deep model (i.e. the ontological content in
L1). When working with a deep model, L0 and L2 are usually
not visible since they do not contain any information that is
immediately relevant to the development and execution of the
domain model.
      </p>
      <p>Since model elements in the middle ontological levels are
instances of the types at the ontological level above and types
for instances at the ontological level below, they are (or play
the role of) classes and objects at the same time. In deep
modeling they are therefore referred to as “clabjects” (a name
derived from “class” and “object”) to emphasize that they
should be represented and thought of as integrated, unified
model elements. The notation used to represent clabjects is
designed to be as UML-like as possible whilst being fully
level-agnostic. The main notational difference to the UML
from an end-user’s point of view are the numeric “potencies”
next to the names of clabjects, attributes and attribute values
as seen in Figure 1. The potency next to the name of a
clabject specifies over how many subsequent model levels it
can be instantiated. Each instantiation step reduces the potency
value by one until 0 is reached. In the example in Figure 1,</p>
      <p>PlayerType has a potency of 2, and is thus instantiable over
the following two levels. At the level below, it is instantiated
by GeoWarsPlayer which has a potency of 1. This, in turn,
is instantiated at the level below as Keyboard with potency 0.
Keyboard cannot be instantiated further since the potency of
a model element must be a non-negative integer. The potency
value next to an attribute’s name specifies over how many
subsequent levels that attribute can endure and, therefore, has
to be possessed by instances of the clabject. Hence, it is also
referred to as the attribute’s “durability”. Finally, the potency
next to the value of an attribute specifies over how many
levels the value of that attribute can be changed. It is thus also
referred to as the “mutability” of that attribute. Durability and
mutability follow the same decrementation rule as the potency
for model elements.</p>
      <p>III. GEOWARS: A DEEP MODEL EXECUTION CASE-STUDY</p>
      <p>
        Since games can be understood without any
domainexpertise the demonstration prototype was chosen from this
domain. The game consists of two components as shown in
Figure 2: the Deep Model representing the executed game
(left-hand side) and the Game Engine executing the deep
model (right-hand side). The model is implemented in the
deep modeling environment Melanee [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and the game engine
is implemented in Java. Both parts communicate via sockets,
a widely used way to enable communication between two
software components. An alternative would be to connect the
two components via a file storing exchange data but this has
the disadvantage of possible read/write conflicts. Since the
Melanee tool is written in Java, the game component could
also have been implemented directly in Melanee because it
is implemented using Java, too. However, the goal was to
create a scenario in which the model is executed by an external
execution engine since we assume this is a common situation.
      </p>
      <p>
        The Melanee component uses the Melanee API to
manipulate the deep model. This API offers a transaction-based
command framework for manipulating deep model content
and several meta-model oriented query operations. In cases
where this API is not sufficient, the widely used and well
documented capabilities of the Eclipse Platform on which
Melanee is built can be employed. Visual appearance is
usually not changed through this API but can be. The size
and location of model elements can be manipulated through
the attached visualizers, and the visual appearance of model
elements can be influenced by means of an aspect-oriented,
context-sensitive, concrete syntax definition mechanism [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
Using these features, visualizations of model elements can be
dynamically changed based on the values of their attributes.
      </p>
      <p>The deep model used to describe the game, shown in
Figure 3, has four levels: O0 containing a general language
for describing games; O1 containing the language to describe
the GeoWars game featured in this demonstration; O2
containing the designed game levels which can be played and
O3 containing the current state of an executed GeoWars game
level. At level O0, generic types and attributes common to
all games are modelled. An instance of LevelType represents
100%
100%</p>
      <p>D
Shield( 0.001)</p>
      <p>A
Shuriken( 0.005)</p>
      <p>A
Rocket( 0.005)</p>
      <p>D
Telekinesis( 0.001)
e
g
d
i
r
IeePnA litaounB
lae iSm</p>
      <p>2
M l
e
d
o
M
s
t
e
k
c
o
S</p>
    </sec>
    <sec id="sec-2">
      <title>Deep Model (Melanee)</title>
    </sec>
    <sec id="sec-3">
      <title>Game Engine</title>
      <p>the environment in which players play a game. The name it is red. Below the circle the current health is indicated as
attribute of LevelType is used to identify a particular game a percentage next to a heart icon. As the health attribute is
level. Levels can have obstacles such as walls, rivers etc., of datatype real between 0 and 1 a formula multiplying this
which are represented by instances of LevelComponentType, value by 100 is used to calculate the actual percentage value.
while players are represented as instances of PlayerType which A very generic symbol is provided for weapons through
is composed of PlayerComponentTypes. Such components can the Weapon clabject. Two join-points are defined, JI holding
be weapons, power-ups etc. the icon to represent the weapon and JT indicating whether</p>
      <p>The GeoWars game modeling language is described at level a Weapon is an AttackWeapon or a DefenseWeapon. The
O1 using instances of the generic game types at level O0. name of the weapon and its regeneration speed (indicated
GeoWars takes place in a level, the GeoWarsLevel, which by the upwards facing arrow) are displayed at the bottom.
has a unique name for identification. It consists of Walls The subclasses of Weapon provide aspects of type around ,
which are obstacles that cannot be passed-through by players. enabling them to replace the content in the joinpoints. Whether
Two GeoWarsPlayers are located in the level, one mouse- a weapon is for attacking or defense is indicated through an A
controlled and the other keyboard-controlled as expressed in the first case or D in the later case. The icons are provided by
through the control attribute. Furthermore, size (describing the the specific weapon classes (e.g. Rocket, Shuriken, Shield and
player radius), speed (describing the player movement speed) Telekinesis). The icons for the other two Weapon subclasses
and health (describing the damage that can be tolerated by a are not shown in the figure for space reasons.
player until the end of the game) attributes are specified for Level O2 shows a blueprint of a game level modeled using
GeoWarsPlayers. Each player has two Weapons, one Attack- the GeoWars DSL. A game level with two players each
Weapon and one DefenseWeapon. Since the corresponding possessing one attack weapon and one defense weapon has
clabjects exist purely for the purpose of grouping weapons been created. This game level is instantiated for execution at
they are abstract clabjects as expressed by their potency the O3 level. In the example, the state of the executing game
of 0. Three AttackWeapons and three DefenseWeapons are is represented at O3 indicating that the keyboard-controlled
predefined in the game, but new weapons can be added to the player has a health value of 64% and the mouse-controlled
model as needed. The available AttackWeapons are Rocket, player a health value of 32%. Both players have also moved
Shuriken and Minion while the available DefenseWeapons are from the starting position, which is visible from the position
Telekinesis, Shield and Grenade. of their icons. Multiple instances of the same game level can</p>
      <p>
        The visualization of the level designer is realized using be displayed side-by-side and analyzed by reasoning services
Melanee’s context-sensitive and aspect-oriented concrete syn- to check if the current execution state is valid. The simulation
tax definition features [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. A model element’s visualization can also be paused and resumed based on the information
information is defined using a graphical, domain-specific visu- stored in the executing game model content.
alizer. In the figure, this is shown as a cloud symbol containing A pragmatic approach is used to define the semantics of the
the shape of the symbol to be used to represent instances of Deep Model by translating each concept in the deep-model to
the clabject. The simplest graphical visualization is the one for one concept in the data model of the Game Engine with clear
Walls which are represented as black rectangles. A GeoWar- execution semantics defined in Java. Deep modeling, however,
sPlayer , on the other hand, is visualized as a solid colored- allows semantics to be defined in a translational, denotational
circle whose color depends on the selected value (mouse or and operational style (cf. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]) but the pragmatic approach was
keyboard ) of the control attribute. The circle representing the used here as it was the most suitable.
player is indicated by the dotted circle, with B being a place- The final deep model and game implementation is shown
holder for the background-color of the circle. The expression in Figure 4. The top of the figure shows the deep model,
which calculates the color is expressed in square brackets. If which is an instance of a game level description at level O3,
the player is keyboard-controlled the color is blue otherwise opened in Melanee. A one-to-one representation of this game
O2
O3
      </p>
      <p>
        LevelType 3
name3:String=2
O1 GeoWarsLevel2:LevelType
name2:String=1
Fig. 4. The GeoWars example running in Melanee and the GeoWars Engine.
level executed by the game engine is shown at the bottom
of the figure. A video of the running tool can be found on
the Melanee homepage [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] while the game and source are
available at [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <sec id="sec-3-1">
        <title>IV. DISCUSSION</title>
        <p>This GeoWars game example shows that it is possible to
naturally implement sophisticated model execution
environments using deep modeling tools such as Melanee. Melanee
provides all the capabilities required for a model execution
scenario including: 1) services for model query and
manipulation, 2) services for accessing and manipulating graphical
model representation definitions, 3) extensibility via a
plugin framework supporting a general purpose programming
language (Java) and 4) support for defining execution
semantics through action languages and transformations. In areas
where the Melanee API is not powerful enough the
wellestablished technologies of the Eclipse Platform can be used
as a fallback. The tools ongoing use for other projects allows
missing features to be continuously discovered and added to
the Melanee modeling environment and made available via the
Melanee API.</p>
        <p>
          The model execution scenario shown here can also be
implemented with traditional modeling technologies available
today. These “two-level” modeling technologies provide a type
level which would contain the GeoWars modeling language
located at O1 in Figure 3 and an instance level which would
contain the executed level blueprint which is located at level
O2 in Figure 3. The execution information is then displayed
as additional information in the model execution blueprint
(i.e. the model game level) by applying workarounds such as
UML Profiles or the annotation model approach [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] because
a dedicated classification level for representing execution
information is not available in such a modeling approach.
        </p>
        <p>From a conceptual point of view the deep modeling
approach is much cleaner than model execution approaches
based on the aforementioned traditional “two-level” modeling
approach. In particular, it naturally includes all the
classification levels needed to represent the currently executed model.
Changes to a running model execution can be defined at the
level of a specific model instance to influence the state and
behavior of that one particular game only. The model instances
can also be used to pause and resume model executions.
Such a stack of classification levels is not available in
“twolevel” modeling technologies and thus data about the state
of the executed model has to be saved externally outside
the modeling stack. Moreover, modifications to the executed
model on a per-instance basis cannot be defined without
applying workarounds. In such an architecture, changes can
only be performed at the blueprint level which then effects all
executions of the model and not a single instance only.</p>
        <p>Visualizing the current state of an executed model is also
typically done at the blueprint level rather than at the instance
level today. This highlights the conceptual problem faced in
the representation of executing models within a two-level
environment as the user gets the impression that the blueprint
is executed instead of a model instance. Deep modeling on
the other hand supports the visualization of model instances
during model execution and leaves the blueprint untouched.</p>
        <p>
          To summarize, the example demonstrates that deep
modeling naturally supports the key features needed for model
execution which are: 1) the availability of additional
classification levels dedicated to executed model instances, 2) the
presentation of the current execution state of a system at the
instance level, 3) storing instance information of executed
models in the model itself and 4) level-agnostic action and
transformation languages to define execution semantics. All of
these features are available in today’s tools but as extensions
to, and workarounds on, the underlying modeling approach
which is not optimal for the tasks previously mentioned.
Unnatural extensions and workarounds increase the accidental
complexity [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] of models.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>V. RELATED WORK</title>
        <p>Three different areas of work are relevant to the technology
presented in this paper: deep modeling tools with model
execution capabilities, standard modeling tools with built-in
execution/simulation support and approaches to connect pure
modeling tools with third party execution/simulation tools.</p>
        <p>
          The only deep modeling tool besides Melanee which allows
execution of models is Metadepth [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] which is shipped with
an action language from the Eclipse Epsilon Framework [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ].
However, MetaDepth, itself only provides textual
visualizations which limits the kind of applications that it can support.
The example shown in this paper is mainly graphical but
Melanee can support multi-format visualizations (e.g. text,
forms, tables).
        </p>
        <p>
          In the two-level modeling space, Atom3 [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] and its
successor AtomPM [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], are the best known academic tools
with simulation and execution capabilities. The best known
industrial tools are AnyLogic [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] and Simulink [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. AtomPM
allows a model to be simulated/executed by specifying a graph
transformation which is much more intuitive and easier to
realize than writing a plug-in for the Melanee tool. On the
other hand, we believe that this approach is less flexible and
powerful when it comes to complex computations or the use of
third party components as shown in this paper. One of the most
advanced academic tools supporting model execution is xMOF
[
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], which operates on fUML [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] specifications. However,
because of its exclusive focus on UML it cannot be applied
to arbitrary domain-specific languages unlike Melanee.
        </p>
        <p>
          An approach for connecting modeling tools with external
execution capabilities is described by Fritzsche et. al. [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ].
They present an approach which allows simulation information
to be attached to any model and subsequently exported and
simulated/executed in another external tool. The model can
then be updated by importing the simulation/execution trace
back into the modeling tool. However, this approach adds a
lot of extra effort to modify existing modeling environments
if an integrated tool experience is desired.
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>VI. CONCLUSION</title>
        <p>This work shows the advantages of deep modeling for
supporting the simulation and execution of models. The prototype
implementation shows that even the prototype deep modeling
tools available today are already up to the task. In the paper
we described the conceptual shortcomings of current modeling
technologies and explained how deep modeling overcomes
them. The shortcomings mainly revolve around the inability
of traditional “two-level” modeling environments to naturally
support more than one type and one instance level. The
proposed deep modeling approach addresses this limitation
through 1) the availability of additional classification levels
dedicated to executed model instances, 2) the presentation of
the current execution state of a system at the instance level,
3) storing instance information of executed models in the
model itself and 4) level-agnostic action and transformation
languages to define execution semantics. We are continually
enhancing the capabilities of the Melanee deep modeling tool
and hope the example in this paper will encourage other
researchers to investigate the benefits of this technology for
model simulation and execution.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1] OMG, “
          <article-title>Semantics of a foundational subset for executable uml models (fuml</article-title>
          ),” http://www.omg.org/spec/FUML/1.1/,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>T.</given-names>
            <surname>Mayerhofer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Langer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          , and G. Kappel, “
          <article-title>xmof: Executable dsmls based on fuml,” in Software Language Engineering, ser</article-title>
          . Lecture Notes in Computer Science, M. Erwig,
          <string-name>
            <given-names>R.</given-names>
            <surname>Paige</surname>
          </string-name>
          , and E. Van Wyk, Eds. Springer International Publishing,
          <year>2013</year>
          , vol.
          <volume>8225</volume>
          , pp.
          <fpage>56</fpage>
          -
          <lpage>75</lpage>
          . [Online]. Available: nurlfhttp://dx.doi.org/10.1007/ 978-3-
          <fpage>319</fpage>
          -02654-1 4g
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>E.</given-names>
            <surname>Syriani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Mannadiar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Hansen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. V.</given-names>
            <surname>Mierlo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Ergin</surname>
          </string-name>
          , “
          <article-title>Atompm: A web-based modeling environment</article-title>
          ,” in
          <source>Joint Proceedings of MODELS'13 Invited Talks</source>
          , Demonstration Session,
          <source>Poster Session, and ACM Student Research Competition co-located with the 16th International Conference on Model Driven Engineering Languages and Systems (MODELS 2013)</source>
          , vol.
          <volume>1115</volume>
          ,
          <year>2013</year>
          , pp.
          <fpage>21</fpage>
          -
          <lpage>25</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>E.</given-names>
            <surname>Seidewitz</surname>
          </string-name>
          , “
          <article-title>Uml with meaning: Executable modeling in foundational uml and the alf action language,” Ada Lett</article-title>
          ., vol.
          <volume>34</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>61</fpage>
          -
          <lpage>68</lpage>
          , Oct.
          <year>2014</year>
          . [Online]. Available: http://doi.acm.
          <source>org/10</source>
          .1145/2692956. 2663187
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J. B.</given-names>
            <surname>Dabney</surname>
          </string-name>
          and
          <string-name>
            <given-names>T. L.</given-names>
            <surname>Harman</surname>
          </string-name>
          ,
          <article-title>Mastering simulink</article-title>
          .
          <source>Pearson</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Borshchev</surname>
          </string-name>
          ,
          <article-title>The Big Book of Simulation Modeling: Multimethod Modeling with AnyLogic 6</article-title>
          . AnyLogic North America,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gutheil</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Kennel</surname>
          </string-name>
          , “
          <article-title>A flexible infrastructure for multilevel language engineering</article-title>
          ,” Software Engineering, IEEE Transactions on, vol.
          <volume>35</volume>
          , no.
          <issue>6</issue>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Gerbig</surname>
          </string-name>
          , “
          <article-title>Melanie: Multi-level modeling and ontology engineering environment,” in Proceedings of the 2nd International Master Class on Model-Driven Engineering: Modeling Wizards, ser</article-title>
          .
          <source>MW '12</source>
          . New York, NY, USA: ACM,
          <year>2012</year>
          , pp.
          <volume>7</volume>
          :
          <fpage>1</fpage>
          -
          <issue>7</issue>
          :
          <fpage>2</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9] --, “
          <article-title>Aspect-oriented concrete syntax definition for deep, user-defined modeling languages,” ser</article-title>
          .
          <source>MULTI'15</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>A.</given-names>
            <surname>Kleppe</surname>
          </string-name>
          , Software Language Engineering:
          <article-title>Creating Domain-Specific Languages Using Metamodels</article-title>
          , 1st ed.
          <source>Addison-Wesley Professional</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Melanee</surname>
          </string-name>
          , “Project Website,” http://www.melanee.org,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12] --, “Source Code,” https://melanee2.informatik.uni-mannheim.de/ stash,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fritzsche</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Johannes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Aßmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Mitschke</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Gilani</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Spence</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Brown</surname>
          </string-name>
          , and P. Kilpatrick, “
          <article-title>Systematic usage of embedded modelling languages in automated model transformation chains,” in Software Language Engineering, ser</article-title>
          . Lecture Notes in Computer Science, D. Gasevic, R. La¨mmel, and E. Van Wyk, Eds. Springer Berlin Heidelberg,
          <year>2009</year>
          , vol.
          <volume>5452</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>J.</given-names>
            <surname>Brooks</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.P.</surname>
          </string-name>
          , “
          <article-title>No silver bullet essence and accidents of software engineering</article-title>
          ,” Computer, vol.
          <volume>20</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>10</fpage>
          -
          <lpage>19</lpage>
          ,
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Khne</surname>
          </string-name>
          , “
          <article-title>Reducing accidental complexity in domain models</article-title>
          ,
          <source>” Software &amp; Systems Modeling</source>
          , vol.
          <volume>7</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>345</fpage>
          -
          <lpage>359</lpage>
          ,
          <year>2008</year>
          . [Online]. Available: http://dx.doi.org/10.1007/s10270-007-0061-0
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>J. de Lara</surname>
          </string-name>
          and E. Guerra, “
          <article-title>Deep meta-modelling with metadepth,” in Proceedings of the 48th international conference on Objects, models, components, patterns, ser</article-title>
          .
          <source>TOOLS'10</source>
          . Berlin, Heidelberg: SpringerVerlag,
          <year>2010</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>20</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Paige</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F. A. C.</given-names>
            <surname>Polack</surname>
          </string-name>
          , “
          <article-title>The epsilon object language (eol),” in Model Driven Architecture Foundations and Applications, ser</article-title>
          . Lecture Notes in Computer Science,
          <string-name>
            <given-names>A.</given-names>
            <surname>Rensink</surname>
          </string-name>
          and J. Warmer, Eds. Springer Berlin Heidelberg,
          <year>2006</year>
          , vol.
          <volume>4066</volume>
          , pp.
          <fpage>128</fpage>
          -
          <lpage>142</lpage>
          . [Online]. Available: http://dx.doi.org/10.1007/11787044 11
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J.</given-names>
            <surname>Lara</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          , “
          <article-title>Atom3: A tool for multi-formalism and meta-modelling,” in Fundamental Approaches to Software Engineering, ser</article-title>
          . Lecture Notes in Computer Science, R.-
          <string-name>
            <given-names>D.</given-names>
            <surname>Kutsche</surname>
          </string-name>
          and H. Weber, Eds. Springer Berlin Heidelberg,
          <year>2002</year>
          , vol.
          <volume>2306</volume>
          , pp.
          <fpage>174</fpage>
          -
          <lpage>188</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>M.</given-names>
            <surname>Fritzsche</surname>
          </string-name>
          , “
          <article-title>Performance related Decision Support for Process Modelling,”</article-title>
          <source>Ph.D. dissertation</source>
          , Queen's University Belfast,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>