<!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>Toward a unified conception of multi-level modelling: advanced requirements</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ulrich Frank</string-name>
          <email>ulrich.frank@uni-due.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Duisburg-Essen</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Apart from sharing common concepts, current approaches to multi-level modelling differ with respect to specific features and the terminology. Both are an obstacle for the further development of the field. This paper presents a selection of possible requirements for advanced multi-level modelling languages. It is intended as a contribution to a broader discussion of requirements and to the development of a common research agenda.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Various languages and tools have been proposed to support multi-level
modelling [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Apart from differences regarding specific aspects, they
all share a few essential properties. First, they allow for an arbitrary number of
classification levels. Second, every class, no matter on what level, is an object at
the same time. Third, they allow for deferred or deep instantiation, which means
that attributes of a class do not have to be instantiated with the direct instances
of that class, but only later in instances of instances. Furthermore, in most cases,
approaches to multi-level modelling support “strict meta-modelling” [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], that is,
every object in a multi-level model is assigned a classification level. The lack
of a unified or even standardized language for meta-modelling is an obstacle to
the further dissemination of multi-level modelling. At the same time, it fosters
the competition between different approaches, which is better suited to advance
the field than a standard that is likely to freeze a certain state. Nevertheless,
competition creates a problem, if it hinders collaboration. The development of
a language for multi-level modelling, and even more so, the implementation of
corresponding tools requires a substantial effort. Therefore, it seems natural that
the developers of a certain approach favour their concepts and tend to protect
them against others. Against this background, it seems more promising to start
the competition not only with the presentation of language specifications, but
during requirements analysis already. First, the more researchers are involved
in the analysis of requirements, the more likely it is to identify relevant issues.
      </p>
      <sec id="sec-1-1">
        <title>Second, from a psychological perspective, it seems to be easier to develop a con</title>
        <p>sensus on requirements than on the comparative evaluation of existing artefacts
– at least as long as the creators of these artefacts are involved.</p>
        <p>This paper is intended to serve as a contribution to starting a community
initiative on discussing requirements for future, possibly unified multi-level
modelling languages that go beyond the common concepts outlined above. The
requirements resulted from analysing limitations experienced with the use of the
multi-level modelling language FMMLx F[lo7at], as well as from dMisonceyussions during
various workshops and meetings. The requirements are illustrated in part with
diagrams that were created with the FMMLx . Fig. 1 gives an overview of
essential elements of the concrete syntax. Colors are used to represent classification
levels.</p>
        <p>Metaclass
^MetaClass^</p>
        <p>PeripheralDevice
name: String
1 salesPrice: Float
0 serialNo: String
0 partSalesPrice: Money
totalRevenues() : Money
models() : Integer
1 totalUnitsInStock() : Integer
1 revenues() : Money
intrinsic operation, instantiated
in classes on M1</p>
        <p>M3
pnaagmeeP^:ePSrteMrriinipnPghuretinera:telIDnretevgiceer^ M2 ^OrganPiozastitioionnalUnit^
r01esssoaelulreitasiloPNnroi:c:IenS:ttMerignoegnrey 0,*uresponsible f1o,*r scmkoiisnlltLAPevevareMilla:ibSnic:lioFtryloe:aStcore
tr0oevtpaealnUrutnSeiatss(leI)ns:SPMtroioccenk:e()My: oInnteeyger 0,*0 uuses 01,1 a0veproasgIDeA:Svtariilnagbility(): Duration
rstaoaclteaeslR=Perivtcreeune=uefas(ls)e= € 7399.00 ibnetrtiwnesiecnaosbsjoeccitastioonn,Min0stantiated
models() = 13
intrinsic attribute, instantiated in
objects on M0
object state
object returned by operation</p>
        <p>M1
^Printer^</p>
        <p>CPL-844
0 serialNo: String
0 partSalesPrice: Money
pagePerMinute = 40
resolution = 600
salesPrice = 199.00</p>
      </sec>
      <sec id="sec-1-2">
        <title>The proposed requirements are restricted to those that belong to the core of a</title>
        <p>language. Additional requirements that concern the size of a language, or the
management and analysis of models are not accounted for. To stay within the
space limitations, various requirements had to be omitted. Some of those will be
mentioned in the conclusions.
Every class specified in the FMMLx has to be assigned an explicit classification
level. There is a good reason for this constraint, sometimes referred to as “strict
multi-level modelling” [6, p. 28]. With respect to the semantics of a class, it makes
a clear difference whether it is meant as a class on M1 or on any Mn with n &gt;
1. In natural language we can cope with the ambiguity of terms like “Product”,
which can be used to refer to a particular product, a type of product or even to
the set of all kinds of product types. In conceptual modelling it is preferable to
avoid ambiguity. Nevertheless, there are cases where the need to assign a strict,
invariant level to a class is problematic, because it prevents an abstraction that
would be useful, e.g., to increase reusability. The appropriate number of
classification levels does not only depend on the variety of the subject, but also on the
need to express variety. Sometimes, the design of two classification hierarchies of
similar objects results in a top level meta class that makes sense for both
hierarchies, but that would be located in one hierarchy on a level different from the
one needed in the other hierarchy. The example in fig. 2 illustrates this problem.</p>
        <sec id="sec-1-2-1">
          <title>In the example, the class Product on M4 is instantiated into PeripheralDevice</title>
          <p>on M3 and into Desk on M2. According to the experience gathered during the
last years this is not an exotic exception, but occurs regularly.</p>
          <p>M4
M3
M2
M1
M0</p>
          <p>^Product^</p>
          <p>PeripheralDevice
1 salesPrice: Float
0 serialNo: String
0 partSalesPrice: Float
writeOnly: Boolean
hasIdentity = true
^PeripheralDevice^</p>
          <p>Printer
1 salesPrice: Float
0 serialNo: String
0 partSalesPrice: Float
resolution: Integer
writeOnly = true
^Printer^</p>
          <p>PX_66
0 serialNo: String
0 partSalesPrice: Float
salesPrice = 89.99
resolution = 600
^PX_66^</p>
          <p>P_73992S
sPe_r7ia3l9N9o2S= P_73992S
partSalesPrice = 79.99
^MetaClass^</p>
          <p>Product
1 salesPrice: Float
0 serialNo: String
0 partSalesPrice: Float
hasIdentity: Boolean
^Product^</p>
          <p>Desk
1 salesPrice: Float
0 serialNo: String
0 partSalesPrice: Float
depth: Float
width: Float
hasIdentity = true
^Desk^</p>
          <p>Nomad
0 serialNo: String
0 partSalesPrice: Float
salesPrice = 179.99
depth = 605.000
width = 140.00
^PX_66^</p>
          <p>DN_9455T
serialNo = DN_9455T
partSalesPrice = n.def.</p>
          <p>Fig. 2. Illustration of problem produced by strict levels
R1 In addition to having classes with a definite level, it should be possible to
define classes with a contingent level. A contingent level allows for adapting
the concrete level of a class to different contexts of use. Rationale: It happens
that two classes on different classification levels could be classified by the
same meta class. However, this can be achieved only, if the meta class does
not have a definite classification level. Instead, its level would have to be
contingent with respect to the instantiation context.</p>
        </sec>
      </sec>
      <sec id="sec-1-3">
        <title>Corresponding solutions are proposed by [8] who suggest to allow for “leaping” levels, and by [9] who add flexibility by replacing numbers to qualify levels with labels.</title>
      </sec>
      <sec id="sec-1-4">
        <title>Priority: high</title>
      </sec>
      <sec id="sec-1-5">
        <title>Challenge: The definition of a class as level-contingent has a substantial im</title>
        <p>pact on a model’s integrity. It is not necessarily the case that an attribute
defined in a contingent class can be instantiated on any level. If, for example, an
attribute is intended to store the average customer satisfaction with a certain
bicycle model or bicycle type, it would make sense only to instantiate om M1 or
above.</p>
      </sec>
      <sec id="sec-1-6">
        <title>Challenge: The requirement demands for a cross-level constraint language.</title>
        <p>2.2</p>
        <p>“Classless” classes
Like with any object-oriented models, the design of multi-level models requires
the creation of classes. In traditional, one-level models, a class is implicitly
instantiated from one specific meta-class. In multi-level models, a new class is
instantiated from a class that exists in the model already. As a consequence,
the design of a multi-level model requires a top-down approach, that is, one has
to start with classes on the topmost classification level. Then, classes on lower
levels have to be added step by step. There are cases where it may be perceived
as inappropriate to be forced to a top-down approach. Sometimes, the topmost
classes are not known in advance. Instead, they may result through an act of
abstraction from lower level classes. In other words, it would be helpful, if a
topdown approach was supplemented by a bottom-up approach. That would require
allowing for the preliminary creation of classes without an explicit meta-class.</p>
      </sec>
      <sec id="sec-1-7">
        <title>R2 It should be possible to define preliminary classes without a meta-class.</title>
      </sec>
      <sec id="sec-1-8">
        <title>Rationale: Sometimes, a bottom-up approach seems to be more appropriate than a top-down approach.</title>
      </sec>
      <sec id="sec-1-9">
        <title>Priority: high</title>
      </sec>
      <sec id="sec-1-10">
        <title>Challenge: From a technical perspective, it is not possible that a class does not have a meta-class. Therefore, some preliminary meta-class has to be assigned, which would be later replaced by the final meta-class. Hence, a corresponding modelling tool needs to support meta-class migration.</title>
        <p>2.3</p>
        <p>Distinction of instantiation levels within associations</p>
      </sec>
      <sec id="sec-1-11">
        <title>Like attributes and operations, associations could be defined as intrinsic, too.</title>
        <sec id="sec-1-11-1">
          <title>The example in fig. 3 illustrates the idea. The classes BusinessProcess and</title>
          <p>Position are both located on M2, that is, they are supposed to be instantiated
into process types and position types. The intrinsic association between both is
to express that a particular process instance on M0 is assigned to a particular
instance of a position type, also on M0. This is indicated by the zero printed in
white on the black square next to the association name. It is not a rare exception
that an association should be instantiated on different levels with both associated
classes. The example in fig. 3 includes the association “responsible for”. It is to
express that a particular position instance on M0 is responsible for a type of
platform on M1.</p>
          <p>Employee
lastName: String
firstName: String 1,1</p>
          <p>Location
name: String
airCon: Boolean
protected: Boolean 0,*
0 size: Integer
1,1
requires
placed at</p>
          <p>Platform
name: Boolean
processor: String</p>
          <p>OS: String
0,* fpiorsrttUabseled::BBoooolleeaann</p>
          <p>0 acquired: Date
0,* 0 serialNo: String
numOfExemplars() : Integer
1 responsible for 0
0,*
0 uses 0
0,*
fills 0 Position
1,1 name: String</p>
          <p>description: String
1,1 m0ifnilSeadlSairnyc:eF:loDaatte</p>
          <p>0 salary: Float
1,* averageSalary() : float
R3 Intrinsic associations should allow the specification of different instantiation
levels for both participating classes. Rationale: It is common in natural
language to link two concepts (or object references) on different classification
levels in one sentence. Accordingly, it can be a relevant requirement to link
two objects on different classification levels in an multi-level model. If the
association can be defined on a higher level already, that is, if the association
is intrinsic, it follows directly that it must be possible to support different
instantiation levels.</p>
        </sec>
        <sec id="sec-1-11-2">
          <title>This feature is already part of the current implementation of the FMMLx in</title>
          <p>the Xmodeler and proved to be very useful.</p>
        </sec>
      </sec>
      <sec id="sec-1-12">
        <title>Priority: high</title>
        <p>2.4</p>
        <p>Avoiding redundant specification
It happens that classes within a classification hierarchy share the same
properties, that is, the same attributes, operations, or associations. A frequent example
is an attribute like “name”, which may be required for a class, its instances and
all further instances down the instantiation line. Further examples comprise
operations that perform statistics on object populations. It might be required for
every class within a classification hierarchy to provide methods that calculate the
number of direct instances or the cumulated number of all instances of instances
of a class (see example in fig. 4).
^PeripheralDevice^</p>
        <p>Printer</p>
        <sec id="sec-1-12-1">
          <title>R4 It should be possible to incpoadlgoeuiPrce:rBaMotoinleeuatent:Bhooaletancertain properties of a class are to be</title>
          <p>inherited to its instances.maRxRaest:Iinotengerale: Inheriting features where it is
appro1 serialNum: String
priate enables preventing redundancy.</p>
          <p>voltage = 220</p>
        </sec>
      </sec>
      <sec id="sec-1-13">
        <title>Note that inheriting properties is different from intrinsic properties. An in</title>
        <p>trinsic property is not directly instantiated where it is defined, but only at the
specified instantiation level. An inh^Perirntietr^ied property can be part of many classes.</p>
      </sec>
      <sec id="sec-1-14">
        <title>Therefore, it can be instantiated mXP-u60l0tCiple times. Intrinsic properties must not</title>
        <p>be explicitly inherited, since exa0pvasliplaiebcciilfiiittcyW:Lieenivgehhlt: eFloraittance of intrinsic properties would be
redundant and would therefore compromise the comprehensibility of a model.</p>
        <p>alloy = „2011"
In an ideal case, the implemencotrarotdeiso=nfaolsef operations can be inherited, too (as it
would be the case with the example in fig. 4).</p>
      </sec>
      <sec id="sec-1-15">
        <title>Priority: high</title>
        <sec id="sec-1-15-1">
          <title>In the current implementation of the FMMLx , this problem is relaxed im</title>
          <p>plicitly. Certain properties, such as the attribute name, are defined with the
central class Class in Xcore. Every class that is defined with the FMMLx inherits
through MetaClass from Class. However, this approach works only for
properties that are generic enough to be inherited to all classes of an entire system.
2.5</p>
          <p>Support for the specification of association types</p>
        </sec>
      </sec>
      <sec id="sec-1-16">
        <title>Associations are of pivotal relevance for the design of languages and models.</title>
        <p>Current languages do not provide specific support for the specification of
association types. If an association is characterized by specific semantics, it has
to be expressed by additional constraints. Table 1 gives an overview of general
association types.
name
interaction
aggregation
composition
delegation
delegation to
class
description semantics variants behaviour
no specific semantics none, restricted to state depen- transparent
crecardinalities dency, e.g. mar- ation of links
riage, sex
particular objects special case of inter- state depen- transparent
crethat are part of an- action dency; depen- ation of links
other object, e.g. a dent on
correwheel that is part of sponding
coma particular car position
an abstraction over similar to aggrega- state depen- transparent
creaggregation, e.g. the tion, however, on dency, e.g. any ation of links
construction of a car a different level of type of wheel including
ownmodel may allow for abstraction (a type that is certified ership,
require1 .. * wheel types is an aggregation of for a certain ments for MLM
other types) speed
transparently access special case of in- state depen- transparent
credata or behaviour of teraction; delegator dency, e.g. age, ation of links;
another object delegates behaviour qualification, object creation;
(and, hence, state) authorization message
disto delegatee patch
transparently access similar to delega- delegation may transparent
credata or behaviour tion, however on be restricted ation of links;
that is common to a different level of to classes that object creation;
all instances of a abstraction. Dele- are marked as message
disclass, e.g. a price of gatee (object) dele- delegatees patch; requires
a product exemplar gates behaviour to rules to define
that is specified with its class dispatch order;
the corresponding MLM
requireclass ments</p>
        <p>In addition to general association types, there are domain-specific association
types. Their semantics depends on domain-specific requirements, which may
vary. Hence, the language should offer meta-association types that allow the
creation of various association types of the same kind. Also, the semantics of
a domain-specific association type may depend on properties of the associated
classes. Table 2 illustrates the idea of domain-specific association types with a
few examples.</p>
        <p>R5 The language should provide generic association types. At best, these types
would be provided as instances of an association meta type. Rationale:
Including generic association types promotes modelling productivity and model
name
married to
holds
kinds of classes description variations
Person, Person marriage depends on cer- different constraints on
tain requirements, e.g. sex, sex, multiplicities, age
age
Person, Driving Li- holding a driving licence constraints on min. and
cence requires people to satisfy max. age, gender, different
certain requirements types of driving licences</p>
        <p>Table 2. Examples of domain-specific association types
integrity. Meta association types provide modellers with more flexibility,
since they allow to vary the semantics of generic association types.</p>
      </sec>
      <sec id="sec-1-17">
        <title>R6 It should be possible to define domain-specific association types. In order to</title>
        <p>cover the variance of domain-specific association types, it could be helpful, if
a language provides meta-association types on a higher level, that would
allow the instantiation of meta-association types. Rationale: The specification
of domain-specific association types promotes model integrity.</p>
      </sec>
      <sec id="sec-1-18">
        <title>Priority: medium</title>
      </sec>
      <sec id="sec-1-19">
        <title>Challenge: The specification of meta-associations is very demanding, because association types can hardly be defined on their own, that is, without regard to the classes they connect. For meta-associations, that would require adequate meta-classes, which, however, can hardly be predicted in advance.</title>
        <p>2.6</p>
        <p>Semantic enrichment of properties
Properties of a class in a multi-level system may serve different purposes. An
attribute that is instantiated in a class may represent properties of that class,
a property value shared by all instances of the class, or constraints on possible
property values in instances. The example in fig. 5 illustrates this issue with
respect to attributes. The attribute minQualityLevel is instantiated with all
instances and serves the specification of a constraint on possible values of
instances of these instances (all types of printers in that system). The attribute
serialNum, though being an intrinsic attribute, is supposed to be instantiated in
individual values for each instance (particular printers). Finally, attributes like
pagesPerMin are to be instantiated into values that are shared by all instances
of the class a particular value was assigned to.</p>
      </sec>
      <sec id="sec-1-20">
        <title>Similar distinctions can be made for operations. The values delivered or used</title>
        <p>by corresponding access operations would represent corresponding aspects.
Associations may also be used to create links between an object (e.g. representing
a country) and a class (e.g. representing a specific product type), where the link
is semantically shared by all its instances.</p>
        <p>R7 A language should allow for clearly distinguishing between attributes that
are regularly instantiated into individual values of instances, that are
instantiated into values of instances that actually represent common values of their
instances, and those that serve the specification of constraints on attribute
values. At the same time, corresponding access operations should be
qualified accordingly. Rationale: These different kinds of properties have specific
semantics that would be lost, if there was no way to express it somehow,
which in turn could compromise the integrity of systems.</p>
      </sec>
      <sec id="sec-1-21">
        <title>This requirement is fairly easy to satisfy and promises clear benefits.</title>
      </sec>
      <sec id="sec-1-22">
        <title>Priority: high</title>
      </sec>
      <sec id="sec-1-23">
        <title>There are also different kinds of operations. Generic categories of operations</title>
        <p>include instantiation, read access, write access, update or release.</p>
      </sec>
      <sec id="sec-1-24">
        <title>R8 It should be possible to assign categories to operations. Rationale: Distinguishing categories of operations enables more meaningful model queries and fosters models integrity.</title>
      </sec>
      <sec id="sec-1-25">
        <title>Priority: high ————————————————————————————————</title>
        <p>3</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Conclusions</title>
      <p>Despite its undisputed benefits, multi-level modelling has still not reached the
mainstream of conceptual modelling and software engineering. Therefore, it
would be important to bundle resources and to start a collaboration beyond
existing approaches. That recommends not only focussing on "main open
questions in multi-level modeling" [10, p. 54] including the appropriate size of a
language, but also on requirements for future extensions of multi-level modelling
languages. These activities are suited to foster the evolution of a common
research agenda and a unified terminology – even though some of the requirements
are already satisfied by existing approaches. The requirements presented in this
paper are only a starting point. Various requirements had to be omitted because
of space limitations. To name two examples only: it would be useful to allow for
the specification of attributes with classes above M1, and, more important, there
is need for a multi-level object constraint language.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>A. Jeusfeld, Metamodeling and method engineering with conceptbase, in: M. A</article-title>
          .
          <string-name>
            <surname>Jeusfeld</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Jarke</surname>
          </string-name>
          , J. Mylopoulos (Eds.),
          <article-title>Metamodeling for Method Engineering</article-title>
          , MIT Press, Cambridge,
          <year>2009</year>
          , pp.
          <fpage>89</fpage>
          -
          <lpage>168</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>T.</given-names>
            <surname>Kühne</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Schreiber</surname>
          </string-name>
          ,
          <article-title>Can programming be liberated from the two-level style: multi-level programming with deepjava</article-title>
          , in: R. P. Gabriel,
          <string-name>
            <given-names>D. F.</given-names>
            <surname>Bacon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. V.</given-names>
            <surname>Lopes</surname>
          </string-name>
          , G. L. Steele (Eds.),
          <source>Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications (OOPSLA '07)</source>
          , Vol.
          <volume>42</volume>
          ,
          <article-title>10 of ACM SIGPLAN notices</article-title>
          , ACM Press, New York,
          <year>2007</year>
          , pp.
          <fpage>229</fpage>
          -
          <lpage>244</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Gerbig</surname>
          </string-name>
          ,
          <article-title>Flexible deep modeling with melanee</article-title>
          , in: S. B. U. Reimer (Ed.),
          <source>Modellierung</source>
          <year>2016</year>
          ,
          <volume>2</volume>
          .-
          <fpage>4</fpage>
          .
          <source>März</source>
          <year>2016</year>
          , Karlsruhe - Workshopband, Vol.
          <volume>255</volume>
          of Modellierung 2016, Gesellschaft für Informatik, Bonn,
          <year>2016</year>
          , pp.
          <fpage>117</fpage>
          -
          <lpage>122</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Kennel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Goß</surname>
          </string-name>
          ,
          <article-title>The level-agnostic modeling language</article-title>
          , in: B.
          <string-name>
            <surname>Malloy</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Staab</surname>
          </string-name>
          , M. van den Brand (Eds.),
          <source>Software Language Engineering</source>
          , Vol.
          <volume>6563</volume>
          of LNCS, Springer Berlin Heidelberg,
          <year>2011</year>
          , pp.
          <fpage>266</fpage>
          -
          <lpage>275</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>J. de Lara</surname>
          </string-name>
          , E. Guerra,
          <article-title>Deep meta-modelling with metadepth</article-title>
          , in: J.
          <string-name>
            <surname>Vitek</surname>
          </string-name>
          (Ed.), Objects, Models, Components, Patterns, 48th International Conference, TOOLS 2010, Málaga, Spain, June 28 - July 2,
          <year>2010</year>
          . Proceedings, Vol.
          <volume>6141</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2010</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>20</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -13953-6.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>C.</given-names>
            <surname>Atkinson</surname>
          </string-name>
          , T. Kühne,
          <article-title>The essence of multilevel metamodeling</article-title>
          , in: M.
          <string-name>
            <surname>Gorgolla</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          Kobryn (Eds.),
          <source>UML 2001 - The Unified Modeling Language. Modeling Languages, Concepts</source>
          ,
          <source>and Tools</source>
          , Vol.
          <volume>2185</volume>
          of Lecture Notes in Computer Science, Springer, Berlin and London, New York,
          <year>2001</year>
          , pp.
          <fpage>19</fpage>
          -
          <lpage>33</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. U. Frank, Multilevel modeling:
          <article-title>Toward a new paradigm of conceptual modeling and information systems design</article-title>
          ,
          <source>Business and Information Systems Engineering</source>
          <volume>6</volume>
          (
          <issue>6</issue>
          ) (
          <year>2014</year>
          )
          <fpage>319</fpage>
          -
          <lpage>337</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>J. D.</given-names>
            <surname>Lara</surname>
          </string-name>
          , E. Guerra,
          <string-name>
            <given-names>R.</given-names>
            <surname>Cobos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. Moreno</given-names>
            <surname>Llorena</surname>
          </string-name>
          ,
          <article-title>Extending deep metamodelling for practical model-driven engineering</article-title>
          ,
          <source>The Computer Journal</source>
          <volume>57</volume>
          (
          <issue>1</issue>
          ) (
          <year>2014</year>
          )
          <fpage>36</fpage>
          -
          <lpage>58</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>B.</given-names>
            <surname>Neumayr</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Grün</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Schrefl, Multi-level domain modeling with m-objects and m-relationships</article-title>
          , in: S. Link, M. Kirchberg (Eds.),
          <source>Proceedings of the 6th AsiaPacific Conference on Conceptual Modeling (APCCM)</source>
          ,
          <source>Australian Computer Society</source>
          , Wellington,
          <year>2009</year>
          , pp.
          <fpage>107</fpage>
          -
          <lpage>116</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>C. Atkinson</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Gerbig</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Kühne</surname>
          </string-name>
          ,
          <article-title>Comparing multi-level modeling approaches</article-title>
          ,
          <source>in: MULTI 2014 : Proceedings of the Workshop on Multi-Level Modelling</source>
          , Vol.
          <volume>1286</volume>
          ,
          <string-name>
            <surname>RWTH</surname>
          </string-name>
          , Aachen,
          <year>2014</year>
          , pp.
          <fpage>53</fpage>
          -
          <lpage>61</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>