<!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>Language Support for Megamodel Renarration</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ralf Lammel</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vadim Zaytsev</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Software Analysis &amp; Transformation Team, CWI</institution>
          ,
          <addr-line>Amsterdam</addr-line>
          ,
          <country country="NL">The Netherlands</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Software Languages Team, Universitat Koblenz-Landau</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Megamodels may be di cult to understand because they reside at a high level of abstraction and they are graph-like structures that do not immediately provide means of order and decomposition as needed for successive examination and comprehension. To improve megamodel comprehension, we introduce modeling features for the recreation, in fact, renarration of megamodels. Our approach relies on certain operators for extending, instantiating, and otherwise modifying megamodels. We illustrate the approach in the context of megamodeling for Object/XML mapping (also known as XML data binding).</p>
      </abstract>
      <kwd-group>
        <kwd>megamodeling</kwd>
        <kwd>linguistic architecture</kwd>
        <kwd>renarration</kwd>
        <kwd>software language engineering</kwd>
        <kwd>XML data binding</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Models (of all kinds) may be di cult to understand when they reside at a high
level of abstraction and when they are not structured in a way to serve successive
examination and comprehension. In this paper,3 we are speci cally concerned
with the modeling domain of the linguistic architecture of software systems [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
and a corresponding form of megamodels [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. These are highly abstract models
about software systems in terms of the involved languages, technologies,
concepts, and artifacts. We aim to improve understanding of such models by means
of renarration such that a megamodel is described (in fact, recreated) by a `story'
as opposed to a monolithic, highly abstract graph.
      </p>
      <p>
        Contribution of this paper We enrich the megamodeling language MegaL [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
with language support for renarration such that megamodels can be developed in
an incremental manner, subject to appropriate operators such as `addition',
`restriction', or `instantiation', also subject to an appropriate notion of megamodel
deltas. In previous work [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], we have introduced the notion of renarration of
megamodels in an informal manner as the process of converting a collection of
facts into a story, also inspired by natural language engineering [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ],
computerassisted reporting [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] and database journalism [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. In this paper, we take the
next step: we enrich megamodeling with proper language support for renarration.
3 The paper's website: http://softlang.uni-koblenz.de/megal-renarration
      </p>
      <sec id="sec-1-1">
        <title>Roadmap x2 provides background on megamodeling and motivates the need for</title>
        <p>renarration. x3 recalls the MegaL language. x4 describes the speci c approach to
renarration. x5 provides a catalogue of operators that are used to express steps
of renarration. x6 validates the approach in the context of megamodeling for</p>
      </sec>
      <sec id="sec-1-2">
        <title>Object/XML mapping. x7 discusses related work. x8 concludes the paper.</title>
        <p>2</p>
        <p>
          On the need for megamodel renarration
\A megamodel is a model of which [...] some elements represent and/or refer
to models or metamodels" [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]|we use this de nition by interpreting the notion
of (meta)models in a broad sense to include programs, documents, schemas,
grammars, etc. Megamodeling is often applied in the context of model-driven
engineering while we apply it in the broader software engineering and software
development context.
        </p>
        <p>
          That is, we use megamodels to model the linguistic architecture of software
systems [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. By linguistic architecture of software systems or technologies, we
mean their architecture expressed in terms of the involved software languages,
software technologies, software concepts, software artifacts, and the explicit
relationships between all these conceptual and actual entities. In our recent work,
we have shown the utility of megamodels for understanding the linguistic
architecture of diverse software (language) engineering scenarios [
          <xref ref-type="bibr" rid="ref16 ref5">5,16</xref>
          ].
        </p>
        <sec id="sec-1-2-1">
          <title>Consider Figure 1 for an illustrative megamodel rendered in the visual syntax</title>
        </sec>
        <sec id="sec-1-2-2">
          <title>MegaL/yEd [5]. The nodes represent entities (languages, schemas, tools, etc.).</title>
          <p>The edges represent relationships (`elementOf', `conformsTo', `correspondsTo',
etc.). The megamodel sketches basic aspects of Object/XML mapping according
to the JAXB technology for XML data binding in the Java platform. Speci cally,
there is the aspect of deriving an object model (i.e., Java classes) from an XML
schema (see the upper data ow in the gure) and the aspect of de-serializing
an XML document to an object graph in the JVM (see the lower data ow in
the gure).</p>
        </sec>
        <sec id="sec-1-2-3">
          <title>One impediment to megamodel comprehension is the abstraction level of</title>
          <p>
            megamodels. In particular, the role and the origin of the entities as well the
meaning of the relationships may not be evident. In recent work [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ], we have
proposed a remedy for this problem. Our proposal involves linking megamodel
entities and relationships to proper artifacts or extra resources for conceptual
entities.
          </p>
          <p>This paper focuses on another impediment to megamodel comprehension:
megamodels are essentially just graph-like structures that do not immediately
provide means of order and decomposition as needed for successive examination
and comprehension. Consider the gure again. The following kinds of questions
naturally arise. Where to start `reading' in the gure? Are there any subgraphs
that can be understood independently? Do any of the entities arise as
instantiations of more general entities that may be worth mentioning to facilitate
understanding?</p>
        </sec>
        <sec id="sec-1-2-4">
          <title>The latter impediment to comprehension is not unique to megamodeling,</title>
          <p>of course. Various modeling or speci cation languages are prone to the same
problem. Various remedies exist, e.g., based on modularization, abstraction,
renement, annotation, and slicing. In this paper, we put to work renarration
which is indeed inspired by existing ideas on re nement, modularization, and
slicing.</p>
          <p>
            In general, renarration is the process of creating di erent stories while reusing
the same facts (cf. narration4). In literature, for example, renarration is a
technique to create a story by the narrator based on xed plot elements; the story
itself can be adapted to the audience and other circumstances|we refer to [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ]
for more background information. In megamodeling, renarration is a process of
creating stories for the recreation of a megamodel. Recreation may cater for
the audience's technical background and interest, time available and yet other
factors. In our experience, the process of recreating a megamodel is needed to
make megamodels meaningful to humans. Recreation may be interactive, e.g.,
by renarrating megamodels on the whiteboard, encouraging questions from the
audience, and responding to these questions in the continuation of the story.
          </p>
        </sec>
        <sec id="sec-1-2-5">
          <title>This paper provides language support for the process of renarration.</title>
          <p>3</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Megamodeling with MegaL</title>
      <sec id="sec-2-1">
        <title>Entity declarations A name is introduced for a conceptual entity, an actual</title>
        <p>entity, or a parameter thereof; an entity type (e.g., Language or File) is assigned.</p>
      </sec>
      <sec id="sec-2-2">
        <title>For instance:</title>
        <p>Java : Language // "Java" as a language entity
JavaGrammar : Artifact // the "JavaGrammar" as an artifact entity
BNF : Language // "BNF" as a language entity
?aLanguage : Language // parameter "aLanguage" for a language entity
?aProgram : File // parameter "aProgram" for a le entity
4 According to Merriam-Webster: narration: the act or process of telling a story or describing what
happens http://www.merriam-webster.com/dictionary/narration Visited 14 September 2013.</p>
      </sec>
      <sec id="sec-2-3">
        <title>We speak of a conceptual entity, if it exits in our mind, as in the case of a language. We speak of an actual entity (or simply an artifact), if it is manifest in some way: it exists on the le system (e.g., a language description) or as data structure at runtime (e.g., a parse tree).</title>
      </sec>
      <sec id="sec-2-4">
        <title>Relationship declarations Two declared entities (or parameters thereof) are</title>
        <p>related by a binary relationship (e.g., `elementOf' or `conformsTo'). For instance:
aProgram elementOf Java // a program of the Java language
JavaGrammar elementOf BNF // the Java grammar is a BNF style grammar
JavaGrammar defines Java // the Java grammar de nes the Java language
aProgram conformsTo JavaGrammar // a program conforming to the Java grammar</p>
      </sec>
      <sec id="sec-2-5">
        <title>Entity-type declarations There is a number of prede ned, fundamental entity types, as exercised in the earlier examples, but new entity types can be de ned by specialization. For instance:</title>
        <p>OopLanguage &lt; Language // an entity type for OO programming languages
FpLanguage &lt; Language // an entity type for functional programming languages</p>
      </sec>
      <sec id="sec-2-6">
        <title>Relationship-type declarations Likewise, there is a number of prede ned, fundamental relationship types, as exercised in the illustrations above, but new relationship types can be de ned on prede ned as well as explicitly declared entity types. We do not further discuss such expressiveness in this paper.</title>
        <p>The declarations simply describe a graph as illustrated in Figure 1. The order
of all declarations of a megamodel is semantically irrelevant. The lack of any
intrinsic notion of order (as in an imperative setting) or decomposition (as in
substitution or function composition in functional programming) feeds into the
comprehension challenge to be addressed by renarration. We mention in passing
that megamodels have an interesting evaluation semantics. That is, declared
relationships may be checked by applying some programmatic relationship-speci c
check on resources linked to declared entities.
4</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Megamodel renarration</title>
      <sec id="sec-3-1">
        <title>We add language support for renarration to the megamodeling language MegaL.</title>
        <p>We commit to a speci c view on renarration such that megamodel deltas are
used in the recreation of a megamodel through a sequence of steps with each
step being e ectively characterized by ingredients as follows:
{ An informative label of the step, also serving as an `id' for reference.
{ The actual delta in terms of added and removed declarations (such as entity
and relationship declarations). Added declarations are pre xed by `+';
removed declarations are pre xed by ` '. Deltas must preserve well-formedness
of megamodels. In particular:</p>
      </sec>
      <sec id="sec-3-2">
        <title>Entities are declared uniquely.</title>
      </sec>
      <sec id="sec-3-3">
        <title>All entities referenced by relationship declarations are declared.</title>
      </sec>
      <sec id="sec-3-4">
        <title>Relationships are applied to entities of suitable types.</title>
        <p>Consider the following megamodel (in fact, megamodeling pattern) of a le and a
language being related such that the former (in terms of its content) is an element of
the latter.
[Label="File with language", Operator="Addition"]
+ ?aLanguage : Language // some language
+ ?aFile : File // some le
+ aFile elementOf aLanguage // associate language with le
In a next step, let us instantiate the language parameter to actually commit to the
speci c language Java. Thus:
[Label="A Java le", Operator="Instantiation"]
+ Java : Language // pick a speci c language
+ aFile elementOf Java // associate the le with Java
- ?aLanguage : Language // removal of language parameter
- aFile elementOf aLanguage // removal of reference to language parameter
{ An operator to describe the intent of the step. Each operator implies speci c
constraints on the delta, as discussed below.</p>
      </sec>
      <sec id="sec-3-5">
        <title>The steps are interleaved with informal explanations.</title>
      </sec>
      <sec id="sec-3-6">
        <title>See Figure 2 for a trivial, illustrative renarration. The rst step introduces</title>
        <p>some entities and relates them. Nothing is removed; thus, the use of the
operator `Addition'. The second step instantiates the megamodel to a more concrete
situation. The more general declarations are removed according to the delta and
more speci c declarations are added; thus, the use of the operator `Instantiation'.</p>
      </sec>
      <sec id="sec-3-7">
        <title>Arguably, the instantiation could be characterized more concisely than by listing the delta, but we like to emphasize the utility of deltas for at least explaining the intended semantics of the renarration operators.</title>
        <p>5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Renarration operators</title>
      <sec id="sec-4-1">
        <title>The illustrative renarration of Figure 2 has started to reveal some operators:</title>
        <p>addition and instantiation. In this section, we provide a catalogue of operators.
In the next section, the operators will be illustrated by a larger renarration.
{ Addition: declarations are exclusively added; there are no removals. Use this
operator to enhance a megamodel through added entities and to constrain
a megamodel through added relationships.
{ Removal : the opposite of Addition.
{ Restriction: net total of addition and removal is such that entities may be
restricted to be of more speci c types. Also, the set operand of `elementOf'
and the super-set operand of `subsetOf' relationships may be restricted.
{ Generalization: the opposite of Restriction.
{ ZoomIn: net total of addition and removal is such that relationships are
decomposed to reveal more detail. Consider, for example, the relationship
type mapsTo, which is used to expressed that one entity is (was) transformed
into another entity. When zooming in, a relationship x mapsTo y could be
expanded so as to reveal the function that contributes the pair hx; yi.
{ ZoomOut : the opposite of ZoomIn.
{ Instantiation: parameters are consistently replaced by actual entities. We
may describe such instantiation directly by a mapping from parameters to
entities as opposed to a verbose delta. (A delta is clearly obtainable from
such a mapping.)
{ Parameterization: the opposite of Instantiation.
{ Connection: convert an entity parameter into a dependent entity, which is
one that is e ectively determined by relationships as opposed to being yet
available for actual instantiation. Such a dependency often occurs as the
result of adding other parameters, e.g., a parameter for the de nition of a
language. We pre x dependent entity declarations by `!' whereas `?' is used
for parameters, as explained earlier.
{ Disconnection: the opposite of Connection.
{ Backtracking : return to an earlier megamodel, as speci ed by a label. This
may be useful in a story, when a certain complication should only be
temporarily considered and subsequent steps should relate again to a simpler
intermediate state.
6</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>An illustrative renarration</title>
      <p>We are going to renarrate a megamodel for Object/XML mapping. We begin
with the introduction of the XML schema which is the starting point for
generating a corresponding object model:
[Label="XML schema", Operator="Addition"]
+ XSD : Language // the language of XML schemas
+ ?anXmlSchema : File // an XML schema
+ anXmlSchema elementOf XSD // an XML schema, indeed</p>
      <sec id="sec-5-1">
        <title>On the OO side of things, we assume a Java-based object model:</title>
        <p>
          [Label="Object model", Operator="Addition"]
+ Java : Language // the Java language
+ ?anObjectModel : File+ // an object model organized in one or more les
+ anObjectModel elementOf Java // a Java based object model
The entities anXmlSchema and anObjectModel are parameters (see the `?' pre x)
in that they would only be xed once we consider a speci c software system. We
assume that schema and object model are related to each other in the sense that
the former is mapped to (`transformed into') the latter; these two data models
also correspond to each other [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
[Label="Schema rst", Operator="Addition"]
+ anXmlSchema mapsTo anObjectModel // the schema maps to the object model
+ anXmlSchema correspondsTo anObjectModel // the artifacts are "equivalent"
The `mapsTo' relationship is helpful for initial understanding, but more details
are needed eventually. Let us reveal the fact that a `type-level mapping' would
be needed to derive classes from the schema; we view this as `zooming in': one
relationship is replaced in favor of more detailed declarations:
[Label="Type level mapping", Operator="ZoomIn"]
+ ?aTypeMapping : XSD -&gt; Java // a mapping from schemas to object models
+ aTypeMapping(anXmlSchema) |-&gt; anObjectModel // apply function
- anXmlSchema mapsTo anObjectModel // remove too vague mapping relationship
It is not very precise, neither is it suggestive to say that type-level mapping
results in arbitrary Java code. Instead, we should express that a speci c Java
subset for simple object models (in fact, POJOs for data representation without
behavioral concerns) is targeted. Thus, we restrict the derived object model as
being an element of a suitable subset of Java, to which we refer here as OxJava:
[Label="O/X subset", Operator="Restriction"]
+ OxJava : Language // the O/X speci c subset of Java
+ OxJava subsetOf Java // establishing subset relationship, indeed
+ anObjectModel elementOf OxJava // add less liberal constraint on object model
- anObjectModel elementOf Java // remove too liberal constraint on object model
We have covered the basics of the type level of Object/XML mapping. Let us look
at the instance level which involves XML documents and object graphs (trees)
related through (de-)serialization. Let us assume an XML input document for
de-serialization which conforms to the XML schema previously introduced:
[Label="XML document", Operator="Addition"]
+ XML : Language // the XML language
+ ?anXmlDocument : File // an XML document
+ anXmlDocument elementOf XML // an XML document, indeed
+ anXmlDocument conformsTo anXmlSchema // document conforms to schema
        </p>
      </sec>
      <sec id="sec-5-2">
        <title>The result of de-serialization is an object graph that is part of the runtime state. We assume a language for Java's JVM-based object graphs. The object graph conforms to the object graph previously introduced:</title>
        <p>[Label="Object graph", Operator="Addition"]
+ JvmGraph : Language // the language of JVM graphs
+ ?anObjectGraph : State // an object graph
+ anObjectGraph elementOf JvmGraph // a JVM based object graph
+ anObjectGraph conformsTo anObjectModel // graph conforms to object model</p>
      </sec>
      <sec id="sec-5-3">
        <title>De-serialization maps the XML document to the object graph:</title>
        <p>[Label="Instance level mapping", Operator="Addition"]
+ ?aDeserializer : XML -&gt; JvmGraph // deserialize XML to JVM graphs
+ aDeserializer(anXmlDocument) |-&gt; anObjectGraph // map via deserializer
At this point, the mappings both at type and the instance levels (i.e.,
aTypeMapping and aDeserializer ) are conceptual entities (in fact, functions) without a
trace of their emergence. We should manifest them in relation to the underlying
mapping technology. We begin with the type level.
[Label="Code generator", Operator="Addition"]
+ ?anOxTechnology : Technology // a technology such as JAXB
+ ?anOxGenerator : Technology // the generation part
+ anOxGenerator partOf anOxTechnology // a part, indeed</p>
      </sec>
      <sec id="sec-5-4">
        <title>By relating generator and type mapping, we stop viewing the (conceptual entity</title>
        <p>for the) mapping as a proper parameter; rather it becomes a dependent entity.
[Label="Dependent type level mapping", Operator="Connection"]
+ anOxGenerator defines aTypeMapping // mapping de ned by generator
+ !aTypeMapping : XSD -&gt; Java // this is a dependent entity now
- ?aTypeMapping : XSD -&gt; Java // Ditto
Likewise, de-serialization is the conceptual counterpart for code that actually
constructs and runs a de-serializer with the help of a designated library, which
is another part of the mapping technology:
[Label="O/X library", Operator="Addition"]
+ ?anOxLibrary : Technology // the O/X library
+ anOxLibrary partOf anOxTechnology // an O/X part
+ ?aFragment : Fragment // souce code issuing de serialization
+ aFragment elementOf Java // source code is Java code
+ aFragment refersTo anOxLibrary // use of O/X library</p>
      </sec>
      <sec id="sec-5-5">
        <title>Again, we eliminate the parameter for the de-serializer:</title>
        <p>
          [Label="Dependent instance level mapping", Operator="Connection"]
+ aFragment defines aDeserializer // fragment "constructs" de serializer
+ !aDeserializer : XML -&gt; JvmGraph // this is a dependent entity now
- ?aDeserializer : XML -&gt; JvmGraph // Ditto
Let us instantiate the mapping technology and its components to commit to the
de-facto platform standard: JAXB [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. We aim at the following replacements of
parameters by concrete technology names:
[Label="JAXB", Operator="Instantiation"]
anOxTechnology =&gt; JAXB // instantiate parameter ... as ...
anOxGenerator =&gt; JAXB.xjc // ditto
anOxLibrary =&gt; JAXB.javax.xml.bind // ditto
        </p>
      </sec>
      <sec id="sec-5-6">
        <title>Thus, we use quali ed names for the component technologies of JAXB, thereby reducing the stress on the global namespace. We omit the the lower level meaning of the instantiation in terms of a delta.</title>
      </sec>
      <sec id="sec-5-7">
        <title>Let us now generalize rather than instantiate. To this end, we rst backtrack</title>
        <p>to an earlier state|the one before we instantiated for JAXB:
[Label="Dependent instance level mapping", Operator="Backtracking"]</p>
      </sec>
      <sec id="sec-5-8">
        <title>Now we can generalize further by making the language a parameter of the model. (Again, we show the concise mapping of actual entities to parameters as opposed to the delta for all the a ected declarations.)</title>
        <p>[Label="Beyond Java", Operator="Parameterization"]
Java =&gt; anOopLanguage // replace ... by parameter ...</p>
        <p>OxJava =&gt; anOxLanguage // ditto
Arguably, we should use more speci c entity types to better characterize some
of the parameters of the model. For instance, the intention of the language
parameter to be an OOP language is only hinted at with the parameter's name;
we could also designate and reference a suitable entity type:
[Label="Taxonomy", Operator="Restriction"]
+ OopLanguage &lt; Language // declare entity type for OOP languages
+ ?anOopLanguage : OopLanguage // limit entity type of language
+ ?anOxLanguage : OopLanguage // limit entity type of language
- ?anOopLanguage : Language // remove underspeci ed declaration
- ?anOxLanguage : Language // remove underspeci ed declaration
7</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Related work</title>
      <sec id="sec-6-1">
        <title>In the presentation of actual megamodels, e.g., in [5,6,7,12,14], arguably, ele</title>
        <p>
          ments of renarration appear, due to the authors' natural e orts to modularize
their models, to relate them, and to develop and describe them in piecemeal
fashion. Renarration as an explicit presentation technique in software
engineering was introduced in previous work [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. Renarration as an explicit modeling
technique is the contribution of the present paper.
        </p>
        <p>
          It may seem that the required language support is straightforward, if not
trivial. For instance, one may compare delta-based megamodel recreation with
language support for model construction (creation), e.g., in the context of
executable UML, as supported by action languages [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. However, the renarration
operators are associated with diverse constraints, as hinted at in their
description, which brings them closer to notions such as refactoring or re nement or,
more generally, model evolution. Deltas are used widely in model evolution;
see, for example, [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. In this context, it is also common to associate low-level
deltas, as observed form the change history, with high-level intents in the sense
of model-evolution operators.
        </p>
      </sec>
      <sec id="sec-6-2">
        <title>A more advanced approach to the renarration of megamodels may receive</title>
        <p>
          inspiration from, for example, model management in MDE with its management
operators (e.g., for composition [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]) and grammar convergence [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] with its rich
underlying operator suite of (in this case) grammar modi cations.
        </p>
      </sec>
      <sec id="sec-6-3">
        <title>The eld of natural language engineering contains many problems such as de</title>
        <p>riving a syuzhet from a fabula, a plot from genre elements, or a story from a plot.</p>
      </sec>
      <sec id="sec-6-4">
        <title>Recent solutions to these problems are advanced, formal and automated [15], and can be reused for software language engineering to facilitate semi-automatic or genetic inference of megamodel renarrations based on given constraints.</title>
        <p>8</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Concluding remarks</title>
      <sec id="sec-7-1">
        <title>We have introduced language support for renarrating megamodels. With a relatively simple language design, we have made it possible to recreate (renarrate) megamodels in an incremental manner, while expressing intents by means of designated operators along the way.</title>
        <p>In future work, we plan to provide a precise semantics of the operators.
Further, by applying renarration to a number of di erent megamodeling scenarios,
we also hope to converge on the set of operators needed in practice. Deltas,
as such, are fully expressive to represent any sort of recreation, but the suite of
operators needs to be carefully maintained to support enough intentions for
convenient use and useful checks on the steps. Yet another interesting area of future
work is the animation of renarrations for a visual megamodeling language; we use
the visual approach already informally on the whiteboard. Finally, the
improvement of megamodel comprehension through renarration should be empirically
validated.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>A.</given-names>
            <surname>Anwar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Dkaki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ebersold</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Coulette</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Nassar</surname>
          </string-name>
          .
          <article-title>A Formal Approach to Model Composition Applied to VUML</article-title>
          .
          <source>In Proc. of ICECCS</source>
          <year>2011</year>
          , pages
          <fpage>188</fpage>
          {
          <fpage>197</fpage>
          . IEEE,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M.</given-names>
            <surname>Baker</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Chesterman</surname>
          </string-name>
          .
          <source>Ethics of Renarration. Cultus</source>
          ,
          <volume>1</volume>
          (
          <issue>1</issue>
          ):
          <volume>10</volume>
          {
          <fpage>33</fpage>
          ,
          <year>2008</year>
          .
          <article-title>Mona Baker is interviewed by Andrew Chesterman</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>J.</given-names>
            <surname>Bezivin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Valduriez</surname>
          </string-name>
          .
          <article-title>On the Need for Megamodels</article-title>
          .
          <source>OOPSLA &amp; GPCE, Workshop on best MDSD practices</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>A.</given-names>
            <surname>Cicchetti</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          <article-title>Di Ruscio, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Pierantonio</surname>
          </string-name>
          .
          <article-title>A Metamodel Independent Approach to Di erence Representation</article-title>
          .
          <source>Journal of Object Technology</source>
          ,
          <volume>6</volume>
          (
          <issue>9</issue>
          ):
          <volume>165</volume>
          {
          <fpage>185</fpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>J.-M. Favre</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>La</surname>
          </string-name>
          <article-title>mmel, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Varanovich</surname>
          </string-name>
          .
          <article-title>Modeling the Linguistic Architecture of Software Products</article-title>
          .
          <source>In Proc. of MODELS</source>
          <year>2012</year>
          , volume
          <volume>7590</volume>
          <source>of LNCS</source>
          , pages
          <volume>151</volume>
          {
          <fpage>167</fpage>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>J.-M. Favre</surname>
            and
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>NGuyen</surname>
          </string-name>
          .
          <article-title>Towards a Megamodel to Model Software Evolution through Transformations</article-title>
          .
          <source>ENTCS</source>
          ,
          <volume>127</volume>
          (
          <issue>3</issue>
          ),
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>R.</given-names>
            <surname>Hilliard</surname>
          </string-name>
          , I. Malavolta,
          <string-name>
            <given-names>H.</given-names>
            <surname>Muccini</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Pelliccione</surname>
          </string-name>
          .
          <article-title>Realizing Architecture Frameworks Through Megamodelling Techniques</article-title>
          .
          <source>In Proc. of ASE</source>
          <year>2010</year>
          , pages
          <fpage>305</fpage>
          {
          <fpage>308</fpage>
          . ACM,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>A.</given-names>
            <surname>Holovaty. A Fundamental Way Newspaper Sites Need to Change</surname>
          </string-name>
          , Sept.
          <year>2006</year>
          . http://www.holovaty.com/writing/fundamental-change/.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <source>JCP JSR 31. JAXB 2.0/2</source>
          .1 |
          <string-name>
            <given-names>Java</given-names>
            <surname>Architecture for XML Binding</surname>
          </string-name>
          ,
          <year>2008</year>
          . http: //jaxb.dev.java.net/.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. R. Lammel and
          <string-name>
            <given-names>V.</given-names>
            <surname>Zaytsev</surname>
          </string-name>
          .
          <article-title>An Introduction to Grammar Convergence</article-title>
          .
          <source>In Proc. of IFM</source>
          <year>2009</year>
          , volume
          <volume>5423</volume>
          <source>of LNCS</source>
          , pages
          <volume>246</volume>
          {
          <fpage>260</fpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>C.-L. Lazar</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          <string-name>
            <surname>Lazar</surname>
            , B. Pa^rv, S. Motogna,
            <given-names>and I. G.</given-names>
          </string-name>
          <string-name>
            <surname>Czibula</surname>
          </string-name>
          .
          <article-title>Using a fUML Action Language to Construct UML Models</article-title>
          .
          <source>In Proc. of SYNASC</source>
          <year>2009</year>
          , pages
          <fpage>93</fpage>
          {
          <fpage>101</fpage>
          . IEEE Computer Society,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>B.</given-names>
            <surname>Meyers</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          .
          <article-title>A Framework for Evolution of Modelling Languages</article-title>
          .
          <source>Science of Computer Programming</source>
          ,
          <volume>76</volume>
          (
          <issue>12</issue>
          ):
          <volume>1223</volume>
          {
          <fpage>1246</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>L. C.</given-names>
            <surname>Miller</surname>
          </string-name>
          . Power Journalism: Computer-Assisted Reporting. Harcourt Brace College Publishers,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>J.-S. Sottet</surname>
          </string-name>
          , G. Calvary,
          <string-name>
            <surname>J.-M. Favre</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Coutaz</surname>
          </string-name>
          .
          <article-title>Megamodeling and Metamodel-Driven Engineering for Plastic User Interfaces: MEGA-UI</article-title>
          .
          <source>In HumanCentered Software Engineering</source>
          , pages
          <volume>173</volume>
          {
          <fpage>200</fpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>K.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. Q.</given-names>
            <surname>Bui</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H. A.</given-names>
            <surname>Abbass</surname>
          </string-name>
          . Evolving Stories:
          <article-title>Tree Adjoining Grammar Guided Genetic Programming for Complex Plot Generation</article-title>
          .
          <source>In Proc. of SEAL</source>
          <year>2010</year>
          , pages
          <fpage>135</fpage>
          {
          <fpage>145</fpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>V.</given-names>
            <surname>Zaytsev</surname>
          </string-name>
          .
          <article-title>Renarrating Linguistic Architecture: A Case Study</article-title>
          .
          <source>In Proc. of MPM</source>
          <year>2012</year>
          , pages
          <fpage>61</fpage>
          {
          <fpage>66</fpage>
          . ACM,
          <year>2012</year>
          . http://dx.doi.org/10.1145/2508443.2508454.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>