<!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>A Metamodeling Framework for Promoting Flexibility and Creativity Over Strict Model Conformance</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Nicolas Hili</string-name>
          <email>hili@cs.queensu.ca</email>
          <email>nicolas.hili@imag.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>School of Computing, Queen's University</institution>
          ,
          <addr-line>Kingston, Ontario</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Univ. Grenoble Alpes, LIG</institution>
          ,
          <addr-line>F-38000 Grenoble</addr-line>
          ,
          <country country="FR">France</country>
          <addr-line>CNRS, LIG, F-38000 Grenoble</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>This paper de nes FlexiMeta, a metamodeling framework intended to promote more exibility and creativity while not compromising validation through model conformance. It advocates less coupling between models and metamodels in order to make the creation of models and user-de ned metamodels possible in an arbitrary order. It comes along with a generic process structured into several phases. For each phase, a proper balance between exibility and validation is found in order to bridge the gap between creativity and strict model conformance.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Metamodeling techniques [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] increase validation through model conformance.
However, they drastically decrease exibility as user-de ned metamodels have
to be created rst and each change to the metamodels questions the validity of
existing models [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Consequently, traditional Model-Driven Engineering (MDE)
approaches fail to address some issues, such as the availability, evolution, and
multiplicity of metamodels as well as the prototyping of models.
      </p>
      <p>Whether introducing exibility in MDE processes is e ciently addressed or
not will ultimately depend on how they are realized by modeling frameworks.
Consequently, considerations have to be made about the implementation of such
frameworks. Particularly, design considerations of the internal representations
of a model, given a programming language and a data serialization format, and
their impact at both object- and meta-levels, should be cautiously made.</p>
      <p>
        This paper presents FlexiMeta, a metamodeling framework for promoting
exibility and creativity during the model creation process over a strict model
conformance according to a metamodel. This framework derives from previous
lessons learned during an inter-organizational project involving both industrial
and academic partners from the nuclear-plant system eld [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In opposition
to traditional MDE frameworks that promote a strict coupling between models
and metamodels, less coupling between models and metamodels is advocated in
FlexiMeta, in order to address the problem of conception of models and
userde ned metamodels in an arbitrary order, i.e., without assuming the existence
of one before the other, and without assuming any relationship (one-to-one or
one-to-many) between them.
      </p>
      <p>This paper is structured as follows: Section 2 details FlexiMeta; Section 3
sketches a rst implementation in which FlexiMeta is used; Related work is
discussed in section 4; Section 5 concludes.
2</p>
    </sec>
    <sec id="sec-2">
      <title>FlexiMeta</title>
      <p>This section introduces FlexiMeta, a metamodeling framework which promotes
more exibility and creativity over a strict model conformance. Throughout this
section, FlexiMeta is illustrated over the Families case study, a popular example
to illustrate model-to-model transformations3.</p>
      <p>Fig. 1 shows the architecture of FlexiMeta, highlighting the internal
representations (horizontally) of a model at object- and meta-levels (vertically). Dashed
nodes and edges depict components that can be used at di erent times,
depending on the intent of the modeling. Therefore, during the rst phases of a project,
relying on the metamodel is not required to create models. It prevents from
validating the created models but it increases creativity and exibility. On the other
side, the metamodel de nition is required if one wants to ensure model
conformance. In other words, the proposed framework allows for balancing exibility
and validity during time and with respect to the intent of the modeling. In the
following, we will describe each part of the framework.</p>
      <p>Model</p>
      <p>Serialization Format</p>
      <p>Programming Language
Metamodel</p>
      <p>χ
Model
« genXeSrDates »</p>
      <p>Scheme</p>
      <sec id="sec-2-1">
        <title>JavaSJcarvipat</title>
        <p>MeCtlaa-ss
Objects
prototypeOf</p>
        <sec id="sec-2-1-1">
          <title>3http://www.eclipse.org/atl/documentation/old/ATLUseCase_</title>
          <p>Families2Persons.pdf.</p>
          <p>Object Instanciation. JavaScript is used for instanciating model elements at
run-time. JavaScript is a prototype-based, weakly-typed programming language
that can be used to create interactive contents in a web-based environment or
desktop stand-alone applications using NodeJS. New objects are instanciated
by prototyping techniques, hence, no class or schema is required to create new
objects. Consequently, even if the metamodel does not exist yet, objects can be
created at run-time. JavaScript objects can have attributes and methods. An
attribute can store a reference to another JavaScript object, a primitive value
(i.e., Integer, Boolean, etc.), or a collection containing mixed elements (references
and primitive values). A Base meta object is de ned in JavasScript. This object
de nes a generic set of functions to access and edit properties of a model element.
Each object of the model can then be instanciated by prototyping from the Base
element. This minimal structure allows one to create models and to serialize
them in JavaScript Object Notation (JSON) (see below).</p>
          <p>Homer Simpson is
de</p>
          <p>ned by his rst name,
age, job and a
catchphrase. Marge
Simpson is de ned by her</p>
          <p>rst name, her age and
her job. This example
shows a basic
instanciation of objects
using FlexiMeta and the
JavaScript Base
metaobject.</p>
          <p>Base: Object</p>
          <p>The instanciated objects are not distinguishable by genre, as the model does
not conform to a metamodel. Consequently, both the Simpson and the Homer
objects are instanciated the same way. In FlexiMeta, each object is uniquely
iden tied by a Universal Unique IDenti er (UUID) which is generated during
its instanciation by the Base meta-object. Object attributes and references are
created using the get and set functions de ned by the Base meta-object.
Code Generation. The JavaScript Base meta-object fosters creativity and
exibility by providing a minimal structure to extend. However, objects cannot
be validated according to a metamodel de nition. FlexiMeta provides a code
generation process to generate meta-objects from a metamodel. The code
generation process is similar to how Eclipse Modeling Framework (EMF) generates
Java classes from an Ecore metamodel. However, the main di erence is that
this step is optional, and one can simply inherit from the prototype of the Base
meta-object, as described above.</p>
          <p>Fig. 3 gives a glimpse of the artifact created during the code generation
process. For each concept of the metamodel, a corresponding meta-object is created.
The code generator allows for the generation of di erent artifacts, such as: (1)
getter and setter functions for each attribute of the concept; (2) a validate
function to ensure that the model object is well constructed with respect to the
meta-object de nition; (3) import and export functions to ensure the
interoperability with Ecore models. It decreases exibility and creativity but improves
validation and model conformance.</p>
          <p>The code generator has been written using Acceleo and takes an Ecore
metamodel as an input to generate JavaScript meta-objects that inherit from the
Base meta-object (cf. Fig. 1). This choice was made to ensure interoperability
between Ecore and FlexiMeta. The generator creates the required import and
export functions to be able to import models from and export them to Eclipse.</p>
          <p>This step is optional. When a metamodel is created, meta-objects can be
generated from it. Existing objects that were previously typed with the Base
meta-object can then be retyped using the newly generated meta-objects. Fig. 3
gives an example of the created meta-objects. Two meta-objects are created:
Family and Individual. Each of them inherits from the Base meta-object, and
getters and setters are generated from the metamodel. Two additional functions
have been generated to validate the model and to export it into Ecore.</p>
          <p>The validate function is recursive and detects di erent constraint violations.
So far, it can check multiplicity violations, non-existence of required attributes,
malformed value for enumerations, and existence of unexpected attributes. For
example, in Fig. 3, the validator can detect that the catchphrase attribute of
Homer Simpson is unexpected as it does not exist in the metamodel, and that
the city attribute does not exist in the Simpson family object while it was
dened as a required attribute by the metamodel. Once all these constraints are
veri ed for one model object, the validate function hands over to the validate
function of each composed element. It is worth noting that references and
compositions are not distinguishable in JavaScript. Instead, this distinction exists in
the metamodel. Consequently, the order of calls of the validate sub-function is
inferred during the code generation process.</p>
          <p>The toEcore function is generated from the Ecore metamodel and is speci c
to this metamodel de nition. Listing 1.1 illustrates the export of the Simpson
family model into Ecore. As the export feature is speci c to the metamodel
de nition, compositions and references are observed to t with the metamodel
structure. In addition, unexpected object attributes are simply ignored and not
exported. Finally, it is worth noting that, given the same set of attributes during
the JSON export and the eXtensible Markup Language (XML) export, the size
of the serialized model in JSON is reduced up to 40% compared to the size of
the serialized model in XML. This result can be explained by the lightweight
notation of JSON and shows how FlexiMeta addresses scalability.</p>
          <p>Listing 1.1: Export into Ecore
1 &lt; family:Family xmi:version =" 2.0 "
2 xmlns:xmi =" http: // www . omg . org / XMI "
3 xmlns:xsi =" http: // www . w3 . org /2001/ XMLSchema - instance "
4 xmlns:family =" http: // family /0.1 " xsi:schemaLocation =" http: // family /0.1
family . ecore " lastname =" Simpson " uuid =" d229e52c -4 e18 -4261 -9144 -... " &gt;
5 &lt; family:Individual uuid =" 6720 a6c4 - eedc -4 b0c -... " age =" 43 " &gt;&lt;/
family:Individual &gt;
6 &lt; family:Individual uuid =" cdb9eb06 -4 c13 -492b -9262 -... " age =" 49 " spouse ="
6720 a6c4 - eedc -4 b0c -... " &gt;&lt;/ family:Individual &gt;
7 &lt;/ family:Family &gt;</p>
          <p>Serialization. FlexiMeta can serialize models to and deserialize models from
JSON. JSON is a standardized, platform-independent data serialization format
that is natively supported by several languages without loading extra libraries. It
has a very lighweight notation which makes it e cient to process. For example,
it does not distinguish nested nodes from attributes4 as XML does. Therefore,
it may be less human-readable5, however, it deters the temptation to replicate
the metamodel structure to the serialized data.</p>
          <p>For serializing models to and deserializing models from JSON, an opportunist
serialization engine has been implemented. The term \opportunist" designates
that the serialization engine serializes data \as it arrives ". It brings several
bene ts. It is not speci c to a metamodel, and is therefore generic. Consequently, it
can be used to serialize and deserialize models even if the metamodel is implicit
or not formalized. If the metamodel does not exist, the deserialization engine
will instanciate objects using the Base meta-object that has been de ned. If the
metamodel is de ned, then the deserialization process deserializes the model by
using the generated meta-objects de ned during the code generation process.</p>
          <p>Listing 1.2 shows how the model is
serialized in JSON. An object ({})
contains several key-value pairs separated
with commas. E.g., the Simpson object
has four pairs: uuid, lastname, address,
and members. The value of the
members key is an array ([]) of objects.</p>
          <p>Listing 1.2 illustrates how data is
serialized as it arrives. When the
serializer has to process the spouse attribute
of the Homer object, the Marge
object has not been serialized yet.
Consequently, the Marge object is serialized
inside the spouse attribute. When it
comes to serialize the Marge object in
the Simpson's members attribute, only
its UUID is serialized.
3</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Implementation</title>
      <p>A preliminary implementation of a web-based modeling environment has been
developed to allow everyone to exercise FlexiMeta6 (cf. Fig. 4). It allows for the
creation of the Simpson family model. It is composed of several areas.</p>
      <p>The main area 1 depicts a graphical editor to edit the Simpson Family
model. The model consists of the family composed of several members. Model</p>
      <sec id="sec-3-1">
        <title>4The concept of attributes does not exist in JSON.</title>
        <p>5It is controversial though, as the learning curve to understand JSON is smoother
thanks to its light notation.</p>
        <p>6This environment is available at http://fleximeta.net/demo-models2016.
editing can be done using the contextual menu by right-clicking on the di erent
graphical elements. Below the graphical editor, two views 2 and 3 allow
for model serialization in both JSON and XML. JSON serialization is available
every time while XML serialization can only be done when the metamodel is
known (i.e., after the meta-objects are generated from the metamodel). On the
left-hand side of the graphical editor, a model explorer 4 o ers a tree view
representation of the model. It is updated every time the model changes. Below
the model explorer, a validation view 5 displays the list of conformance errors
that occur on the model. As for the XML exporter view, validation can only be
processed after the code is generated.</p>
        <p>FlexiMeta comes along with a generic process structured into three phases
{ exploration, consolidation, and nalization {, which address speci c intents.
The exploration phase allows the user to create models without relying on
userde ned metamodels. It promotes creativity but prevents from validating models
as no metamodel has been de ned yet. In the consolidation phase, the metamodel
is known and this phase is used to align the created models to t with the
metamodel de nition. Therefore, validation is possible, but it is still possible to
create models which do not conform with the metamodel. Finally, the nalization
phase is intended to create only valid models regarding the metamodel de nition.
This generic process has been proposed to o er a trade-o between exibility
and validation at speci c times during the creation of models. Due to the limited
space, the generic process is not further detailed.</p>
        <p>To go through the generic process, a view 6 reminds the user in which phase
he or she is. A radar chart displays level and comment for each challenge
FlexiMeta intends to address during the current phase. In addition, a button allows
the user to move forward to the next phase. Finally, a last view 7 illustrates
the metamodel used during the consolidation and the nalization phases.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Related Work</title>
      <p>
        A signi cant body of literature addresses the problem of exibility in existing
MDE approaches. Model / metamodel co-evolution techniques were proposed
to withstand metamodel evolution and to automatically or semi-automatically
adapt models [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ]. These techniques usually rely on the identi cation of some
transformation patterns (e.g., creation of new concepts, deletion of existing
concepts, addition to some attributes, etc.). Unfortunately, they cannot be fully
automated as some model evolutions cannot be inferred. At best, a variation
could be semi-assisted by a human intervention. At worst, a variation could
require to design a speci c model transformation to migrate existing models.
      </p>
      <p>
        Bottom-up metamodeling techniques consist in inferring what the metamodel
should be regarding a set of existing models [
        <xref ref-type="bibr" rid="ref2 ref6 ref7">2,6,7</xref>
        ]. It allows for the creation of a
model independent of the metamodel de nition. By analogy, we can compare this
approach with NoSQL databases from which schemas do not have to be de ned.
In that case, the metamodel exists, implicitly behind the inference mechanism.
As of the rst technique, some automations could not be fully automated. For
instance, it is not possible to infer the multiplicity of a relation.
      </p>
      <p>Metamodel extension techniques leverage the use of general-purpose modeling
languages, such as Uni ed Modeling Language (UML), instead of de ning new
metamodels from scratch [8{10]. Several mechanisms exist. For example, UML
can be extended using the UML pro le mechanism. Metamodel extension answers
to speci c challenges, such as the availability of user-de ned metamodels, and
model prototyping, as the existing metamodel to extend already exists. Then,
even if the extension has not been de ned yet, it is still possible to quickly
prototype the system to de ne.</p>
      <p>
        As for Multi-level modeling techniques [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and tools (e.g., MetaDepth [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]),
the same distinction is made between linguistic (i.e., the language) and
ontological type. With respect to the nature of the prototype relation in JavaScript,
objects in FlexiMeta can be created with no ontological type rst, and then be
further retyped given a user-de ned metamodel. In addition, the framework
precisely de nes how and when (i.e., during which phase) objects are retyped, in
order to align the model de nition with the user-de ned metamodel.
      </p>
      <p>
        Existing techniques usually address speci c and localized issues, such as
metamodel evolution or model co-adaptation. Our work intends to address all
the aforementioned challenges at once. An attempt was done to address them in
our previous work [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], where a metamodel-tolerant approach and a loose-model
conformity control were de ned, but the problem space and the methodology to
address it were both not formalized. In FlexiMeta, a model can be created
before the metamodel (model prototyping). Once the metamodel is de ned, model
conformance can be checked to help designers migrate both the model and the
metamodel (metamodel evolution and co-adaptation).
      </p>
      <p>
        Several modeling frameworks were proposed over time. EMF [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] and
Visualization and Modeling SDK (VMSDK) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] rely on a code generation approach.
In Eclipse, Java classes are generated for each concept of the metamodel.
Models are serialized in XML using a speci c serializer generated alongside the Java
implementation of the metamodel concepts. The mapping between the
modeling language, data serialization format, and programming language appears
at the object-level and the meta-level. Unfortunately, the combination of the
class-based programming language with a schema-dependent data serialization
format severely a ects the exibility during the modeling activities. Some
attempts were done to bring capabilities of EMF into web-based environments.
EMF-Rest [
        <xref ref-type="bibr" rid="ref15 ref16">15,16</xref>
        ] is a framework that intends to bring EMF capabilities through
a REST API. Another interesting framework is Ecore.js7, which is developed in
JavaScript and available through NodeJS.
      </p>
      <p>Moddle8 is a utility library for creating user-de ned metamodels using
JavaScript and JSON. A metamodel can be de ned at run-time and models can be
created using it. However, models cannot be created without de ning the
metamodel in JSON rst. Besides, models cannot be validated and Moddle provides
a limited model coverage. For example, it is not possible to de ne enumerations.</p>
      <p>
        MoDiGen [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] is an interesting work to address the scalability challenge.
Models and metamodels are de ned using JSON. However, it seems that there is
no implementation to use it as no programming language is mentioned. Moreover,
there is no mention about how models are concretely \instanciated" from the
metamodel de nition in JSON.
      </p>
      <p>Compared to other frameworks, FlexiMeta relies on a code generation
process to generate JavaScript implementation of concepts from external
metamodels (Ecore metamodels, so far). This part is not mandatory though, and one can
use the minimal implementation using the Base JavaScript meta-object (cf.
Section 2). Flexibility and validation challenges are not addressed simultaneously
and can be balanced over time, which allows one to bene t from both.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>This paper introduces a new metamodeling framework for promoting more
exibility when creating models and metamodels. Unlike existing approaches, it
balances exibility and strict model conformance throughout the development
life-cycle. To do so, less coupling between a model and a metamodel is advocated
to give more freedom during the modeling activities. A preliminary tool has been
sketched to exercise the new metamodeling framework.</p>
      <p>The prototype-based programming style of JavaScript, combined to the use of
a schema-free data serialization format opens up some interesting horizons for the
development of new modeling frameworks. For instance, JavaScript supports the
dynamic creation of meta-objects at run-time and at di erent levels of modeling
(deep instanciation). FlexiMeta could take advantage of it to support the binding
of models to several metamodels or several versions of the same metamodel at
the same time, in order to adress issues such as the multiplicity of metamodels
and metamodel evolution.</p>
      <sec id="sec-5-1">
        <title>7Available here: https://github.com/emfjson/ecore.js.</title>
        <p>8Available here: https://github.com/bpmn-io/moddle.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>F.</given-names>
            <surname>Fondement</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Silaghi</surname>
          </string-name>
          , \
          <article-title>De ning model driven engineering processes,"</article-title>
          in Third International Workshop in Software Model Engineering (WiSME),
          <source>held at the 7th International Conference on the Uni ed Modeling Language (UML)</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>P.</given-names>
            <surname>Gomez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. E.</given-names>
            <surname>Sanchez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Florez</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Villalobos</surname>
          </string-name>
          , \
          <article-title>An approach to the cocreation of models and metamodels in Enterprise Architecture Projects,"</article-title>
          <source>Journal of Object Technology</source>
          , vol.
          <volume>13</volume>
          , no.
          <issue>3</issue>
          , pp.
          <volume>2</volume>
          {
          <issue>1</issue>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>N.</given-names>
            <surname>Hili</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Laurillau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Dupuy-Chessa</surname>
          </string-name>
          , and G. Calvary, \
          <article-title>Innovative Key Features for Mastering Model Complexity: Flexilab, a Multimodel Editor Illustrated on Task Modeling,"</article-title>
          <source>in Proceedings of the 7th ACM SIGCHI Symposium on Engineering Interactive Computing Systems, ser. EICS '15</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. G. Wachsmuth, \
          <article-title>Metamodel Adaptation and Model Co-adaptation," in European Conference on Object-Oriented Programming, ser</article-title>
          . ECOOP'07, E. Ernst, Ed.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>A.</given-names>
            <surname>Cicchetti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. D.</given-names>
            <surname>Ruscio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Eramo</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          , \
          <article-title>Automating Coevolution in Model-Driven Engineering,"</article-title>
          <source>in Enterprise Distributed Object Computing Conference</source>
          ,
          <year>2008</year>
          . EDOC '
          <volume>08</volume>
          . 12th
          <string-name>
            <surname>International</surname>
            <given-names>IEEE</given-names>
          </string-name>
          ,
          <year>2008</year>
          , pp.
          <volume>222</volume>
          {
          <fpage>231</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. J.
          <string-name>
            <surname>Sanchez-Cuadrado</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Lara</surname>
          </string-name>
          , and E. Guerra, \
          <article-title>Bottom-up meta-modelling: An interactive approach,"</article-title>
          <source>in Model Driven Engineering Languages and Systems: 15th International Conference, MODELS 2012</source>
          . Springer Berlin Heidelberg,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>H.</given-names>
            <surname>Cho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Gray</surname>
          </string-name>
          , and E. Syriani, \
          <article-title>Creating Visual Domain-speci c Modeling Languages from End-user Demonstration,"</article-title>
          <source>in Proceedings of the 4th International Workshop on Modeling in Software Engineering</source>
          , ser.
          <source>MiSE '12</source>
          .
          <string-name>
            <surname>Piscataway</surname>
          </string-name>
          , NJ, USA: IEEE Press,
          <year>2012</year>
          , pp.
          <volume>22</volume>
          {
          <fpage>28</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>I.</surname>
          </string-name>
          <article-title>Weisemoller and A</article-title>
          . Schurr, \
          <article-title>A Comparison of Standard Compliant Ways to De ne Domain Speci c Languages," in Models in Software Engineering</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>B.</given-names>
            <surname>Selic</surname>
          </string-name>
          , \
          <article-title>A systematic approach to domain-speci c language design using uml," in Object and Component-Oriented Real-Time Distributed Computing</article-title>
          ,
          <year>2007</year>
          . ISORC '
          <volume>07</volume>
          . 10th IEEE International Symposium on,
          <year>2007</year>
          , pp.
          <volume>2</volume>
          {
          <fpage>9</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>P.</given-names>
            <surname>Langer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Wieland</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          et al., \
          <article-title>Emf pro les: A lightweight extension approach for emf models</article-title>
          .
          <source>" Journal of Object Technology</source>
          , vol.
          <volume>11</volume>
          , no.
          <issue>1</issue>
          , pp.
          <volume>1</volume>
          {
          <issue>29</issue>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Ku</surname>
          </string-name>
          <article-title>hne, \The Essence of Multilevel Metamodeling,"</article-title>
          <source>in International Conference on the Uni ed Modeling Language</source>
          . Springer,
          <year>2001</year>
          , pp.
          <volume>19</volume>
          {
          <fpage>33</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>J. de Lara</surname>
          </string-name>
          and E. Guerra, \
          <article-title>Deep meta-modelling with metadepth,"</article-title>
          <source>in Proceedings of the 48th International Conference on Objects, Models</source>
          , Components, Patterns, ser.
          <source>TOOLS'10</source>
          . Berlin, Heidelberg: Springer-Verlag,
          <year>2010</year>
          , pp.
          <volume>1</volume>
          {
          <fpage>20</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>D.</given-names>
            <surname>Steinberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Budinsky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Paternostro</surname>
          </string-name>
          , and E. Merks, EMF Eclipse Modeling Framework, ser.
          <source>The Eclipse Series. Addison Wesley</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. S. Cook, G. Jones,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kent</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Wills</surname>
          </string-name>
          ,
          <article-title>Domain-speci c Development with Visual Studio Dsl Tools</article-title>
          , 1st ed.
          <source>Addison-Wesley Professional</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>B.</given-names>
            <surname>Costa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. F.</given-names>
            <surname>Pires</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. C.</given-names>
            <surname>Delicato</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Oquendo</surname>
          </string-name>
          , \
          <article-title>Towards a View-Based Process for Designing and Documenting RESTful Service Architectures,"</article-title>
          <source>in Proceedings of the 2015 European Conference on Software Architecture Workshops. ACM</source>
          ,
          <year>2015</year>
          , p.
          <fpage>50</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. H. Ed-Douibi,
          <string-name>
            <given-names>J. L. C.</given-names>
            <surname>Izquierdo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gomez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tisi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          , \
          <article-title>Emf-rest: Generation of restful apis from models,"</article-title>
          <source>arXiv preprint arXiv:1504.03498</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>M. Gerhart</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Bayer</surname>
            ,
            <given-names>J. M.</given-names>
          </string-name>
          <string-name>
            <surname>Ho</surname>
          </string-name>
          <article-title>fner, and</article-title>
          <string-name>
            <given-names>M.</given-names>
            <surname>Boger</surname>
          </string-name>
          , \Approach to de ne highly
          <source>scalable metamodels based on json," BigMDE</source>
          <year>2015</year>
          , p.
          <fpage>11</fpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>