<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Language Support for Megamodel Renarration</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Ralf</forename><surname>Lämmel</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Software Languages Team</orgName>
								<orgName type="institution">Universität Koblenz-Landau</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Vadim</forename><surname>Zaytsev</surname></persName>
							<affiliation key="aff1">
								<orgName type="department">Software Analysis &amp; Transformation Team</orgName>
								<orgName type="institution">CWI</orgName>
								<address>
									<settlement>Amsterdam</settlement>
									<country key="NL">The Netherlands</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Language Support for Megamodel Renarration</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">CE56C31200589E6B06259820244AC28A</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T03:11+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>megamodeling</term>
					<term>linguistic architecture</term>
					<term>renarration</term>
					<term>software language engineering</term>
					<term>XML data binding</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Megamodels may be difficult 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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Models (of all kinds) may be difficult 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 specifically concerned with the modeling domain of the linguistic architecture of software systems <ref type="bibr" target="#b4">[5]</ref> and a corresponding form of megamodels <ref type="bibr" target="#b2">[3]</ref>. 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Contribution of this paper</head><p>We enrich the megamodeling language MegaL <ref type="bibr" target="#b4">[5]</ref> 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 <ref type="bibr" target="#b15">[16]</ref>, 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 <ref type="bibr" target="#b14">[15]</ref>, computerassisted reporting <ref type="bibr" target="#b12">[13]</ref> and database journalism <ref type="bibr" target="#b7">[8]</ref>. In this paper, we take the next step: we enrich megamodeling with proper language support for renarration. Roadmap §2 provides background on megamodeling and motivates the need for renarration. §3 recalls the MegaL language. §4 describes the specific approach to renarration. §5 provides a catalogue of operators that are used to express steps of renarration. §6 validates the approach in the context of megamodeling for Object/XML mapping. §7 discusses related work. §8 concludes the paper.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">On the need for megamodel renarration</head><p>"A megamodel is a model of which [...] some elements represent and/or refer to models or metamodels" <ref type="bibr" target="#b2">[3]</ref>-we use this definition 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 <ref type="bibr" target="#b4">[5]</ref>. 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 <ref type="bibr" target="#b4">[5,</ref><ref type="bibr" target="#b15">16]</ref>.</p><p>Consider Figure <ref type="figure" target="#fig_0">1</ref> for an illustrative megamodel rendered in the visual syntax MegaL/yEd <ref type="bibr" target="#b4">[5]</ref>. The nodes represent entities (languages, schemas, tools, etc.). 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. Specifically, there is the aspect of deriving an object model (i.e., Java classes) from an XML schema (see the upper data flow in the figure) and the aspect of de-serializing an XML document to an object graph in the JVM (see the lower data flow in the figure).</p><p>One impediment to megamodel comprehension is the abstraction level of 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 <ref type="bibr" target="#b4">[5]</ref>, 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 figure again. The following kinds of questions naturally arise. Where to start 'reading' in the figure? 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><p>The latter impediment to comprehension is not unique to megamodeling, of course. Various modeling or specification languages are prone to the same problem. Various remedies exist, e.g., based on modularization, abstraction, refinement, annotation, and slicing. In this paper, we put to work renarration which is indeed inspired by existing ideas on refinement, modularization, and slicing.</p><p>In general, renarration is the process of creating different stories while reusing the same facts (cf. narration<ref type="foot" target="#foot_0">4</ref> ). In literature, for example, renarration is a technique to create a story by the narrator based on fixed plot elements; the story itself can be adapted to the audience and other circumstances-we refer to <ref type="bibr" target="#b1">[2]</ref> 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. This paper provides language support for the process of renarration.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Megamodeling with MegaL</head><p>Figure <ref type="figure" target="#fig_0">1</ref> provided a first illustration of the MegaL [5] language for megamodeling. In the rest of the paper, we use the textual MegaL syntax, i.e., MegaL/TXT. A megamodel is a collection of declarations of the following kinds.</p><p>Entity declarations A name is introduced for a conceptual entity, an actual entity, or a parameter thereof; an entity type (e.g., Language or File) is assigned. For instance: 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 file entity</p><p>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 file system (e.g., a language description) or as data structure at runtime (e.g., a parse tree).</p><p>Relationship declarations Two declared entities (or parameters thereof) are related by a binary relationship (e.g., 'elementOf' or 'conformsTo'). For instance:</p><p>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 defines the Java language aProgram conformsTo JavaGrammar // a program conforming to the Java grammar Entity-type declarations There is a number of predefined, fundamental entity types, as exercised in the earlier examples, but new entity types can be defined by specialization. For instance:</p><p>OopLanguage &lt; Language // an entity type for OO programming languages FpLanguage &lt; Language // an entity type for functional programming languages Relationship-type declarations Likewise, there is a number of predefined, fundamental relationship types, as exercised in the illustrations above, but new relationship types can be defined on predefined as well as explicitly declared entity types. We do not further discuss such expressiveness in this paper.</p><p>The declarations simply describe a graph as illustrated in Figure <ref type="figure" target="#fig_0">1</ref>. 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-specific check on resources linked to declared entities.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Megamodel renarration</head><p>We add language support for renarration to the megamodeling language MegaL. We commit to a specific view on renarration such that megamodel deltas are used in the recreation of a megamodel through a sequence of steps with each step being effectively characterized by ingredients as follows:</p><p>-An informative label of the step, also serving as an 'id' for reference.</p><p>-The actual delta in terms of added and removed declarations (such as entity and relationship declarations). Added declarations are prefixed by '+'; removed declarations are prefixed by '−'. Deltas must preserve well-formedness of megamodels. In particular:</p><p>• Entities are declared uniquely.</p><p>• All entities referenced by relationship declarations are declared.</p><p>• Relationships are applied to entities of suitable types.</p><p>Consider the following megamodel (in fact, megamodeling pattern) of a file and a language being related such that the former (in terms of its content) is an element of the latter.</p><p>[Label="File with language", Operator="Addition"] + ?aLanguage : Language // some language + ?aFile : File // some file + aFile elementOf aLanguage // associate language with file In a next step, let us instantiate the language parameter to actually commit to the specific language Java. Thus:</p><p>[Label="A Java file", Operator="Instantiation"] + Java : Language // pick a specific language + aFile elementOf Java // associate the file with Java -?aLanguage : Language // removal of language parameter -aFile elementOf aLanguage // removal of reference to language parameter Fig. <ref type="figure">2</ref>. An illustrative renarration -An operator to describe the intent of the step. Each operator implies specific constraints on the delta, as discussed below.</p><p>The steps are interleaved with informal explanations.</p><p>See Figure <ref type="figure">2</ref> for a trivial, illustrative renarration. The first step introduces 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 specific declarations are added; thus, the use of the operator 'Instantiation'. 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Renarration operators</head><p>The illustrative renarration of Figure <ref type="figure">2</ref> has started to reveal some operators: 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.</p><p>-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.</p><p>-Restriction: net total of addition and removal is such that entities may be restricted to be of more specific types. Also, the set operand of 'elementOf' and the super-set operand of 'subsetOf' relationships may be restricted. -Generalization: the opposite of Restriction.</p><p>-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 x, y . -ZoomOut: the opposite of ZoomIn.</p><p>-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.</p><p>-Connection: convert an entity parameter into a dependent entity, which is one that is effectively 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 definition of a language. We prefix dependent entity declarations by '!' whereas '?' is used for parameters, as explained earlier.</p><p>-Disconnection: the opposite of Connection.</p><p>-Backtracking: return to an earlier megamodel, as specified 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">An illustrative renarration</head><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:</p><p>[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><p>On the OO side of things, we assume a Java-based object model:</p><p>[Label="Object model", Operator="Addition"] + Java : Language // the Java language + ?anObjectModel : File+ // an object model organized in one or more files + anObjectModel elementOf Java // a Java−based object model</p><p>The entities anXmlSchema and anObjectModel are parameters (see the '?' prefix) in that they would only be fixed once we consider a specific 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 <ref type="bibr" target="#b4">[5]</ref>.</p><p>[Label="Schema first", Operator="Addition"] + anXmlSchema mapsTo anObjectModel // the schema maps to the object model + anXmlSchema correspondsTo anObjectModel // the artifacts are "equivalent"</p><p>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:</p><p>[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</p><p>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 specific 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:</p><p>[Label="O/X subset", Operator="Restriction"] + OxJava : Language // the O/X−specific 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</p><p>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:</p><p>[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><p>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:</p><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 De-serialization maps the XML document to the object graph:</p><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.</p><p>[Label="Code generator", Operator="Addition"] + ?anOxTechnology : Technology // a technology such as JAXB + ?anOxGenerator : Technology // the generation part + anOxGenerator partOf anOxTechnology // a part, indeed</p><p>By relating generator and type mapping, we stop viewing the (conceptual entity for the) mapping as a proper parameter; rather it becomes a dependent entity.</p><p>[Label="Dependent type−level mapping", Operator="Connection"] + anOxGenerator defines aTypeMapping // mapping defined 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:</p><p>[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 Again, we eliminate the parameter for the de-serializer:</p><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 <ref type="bibr" target="#b8">[9]</ref>. We aim at the following replacements of parameters by concrete technology names: 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 affected declarations.)</p><p>[Label="Beyond Java", Operator="Parameterization"] Java =&gt; anOopLanguage // replace ... by parameter ... OxJava =&gt; anOxLanguage // ditto Arguably, we should use more specific 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:</p><p>[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 underspecified declaration -?anOxLanguage : Language // remove underspecified declaration</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7">Related work</head><p>In the presentation of actual megamodels, e.g., in <ref type="bibr" target="#b4">[5,</ref><ref type="bibr" target="#b5">6,</ref><ref type="bibr" target="#b6">7,</ref><ref type="bibr" target="#b11">12,</ref><ref type="bibr" target="#b13">14]</ref>, arguably, elements of renarration appear, due to the authors' natural efforts 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 <ref type="bibr" target="#b15">[16]</ref>. 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 <ref type="bibr" target="#b10">[11]</ref>. 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 refinement or, more generally, model evolution. Deltas are used widely in model evolution; see, for example, <ref type="bibr" target="#b3">[4]</ref>. 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><p>A more advanced approach to the renarration of megamodels may receive inspiration from, for example, model management in MDE with its management operators (e.g., for composition <ref type="bibr" target="#b0">[1]</ref>) and grammar convergence <ref type="bibr" target="#b9">[10]</ref> with its rich underlying operator suite of (in this case) grammar modifications.</p><p>The field of natural language engineering contains many problems such as deriving a syuzhet from a fabula, a plot from genre elements, or a story from a plot. Recent solutions to these problems are advanced, formal and automated <ref type="bibr" target="#b14">[15]</ref>, and can be reused for software language engineering to facilitate semi-automatic or genetic inference of megamodel renarrations based on given constraints.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. A megamodel for Object/XML mapping (also known as XML data binding)</figDesc><graphic coords="2,134.77,116.83,342.37,121.47" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>Thus, we use qualified 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.Let us now generalize rather than instantiate. To this end, we first backtrack to an earlier state-the one before we instantiated for JAXB:</figDesc><table /><note>[Label="JAXB", Operator="Instantiation"] anOxTechnology =&gt; JAXB // instantiate parameter ... as ... anOxGenerator =&gt; JAXB.xjc // ditto anOxLibrary =&gt; JAXB.javax.xml.bind // ditto [Label="Dependent instance−level mapping", Operator="Backtracking"]</note></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_0">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.</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="8">Concluding remarks</head><p>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.</p><p>In future work, we plan to provide a precise semantics of the operators. Further, by applying renarration to a number of different 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></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">A Formal Approach to Model Composition Applied to VUML</title>
		<author>
			<persName><forename type="first">A</forename><surname>Anwar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Dkaki</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Ebersold</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Coulette</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Nassar</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of ICECCS 2011</title>
				<meeting>of ICECCS 2011</meeting>
		<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2011">2011</date>
			<biblScope unit="page" from="188" to="197" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Ethics of Renarration</title>
		<author>
			<persName><forename type="first">M</forename><surname>Baker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Chesterman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Cultus</title>
		<editor>Andrew Chesterman</editor>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="10" to="33" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
	<note>Mona Baker is interviewed</note>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">On the Need for Megamodels</title>
		<author>
			<persName><forename type="first">J</forename><surname>Bézivin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Jouault</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Valduriez</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">OOPSLA &amp; GPCE, Workshop on best MDSD practices</title>
				<imprint>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">A Metamodel Independent Approach to Difference Representation</title>
		<author>
			<persName><forename type="first">A</forename><surname>Cicchetti</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Di Ruscio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Pierantonio</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Object Technology</title>
		<imprint>
			<biblScope unit="volume">6</biblScope>
			<biblScope unit="issue">9</biblScope>
			<biblScope unit="page" from="165" to="185" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Modeling the Linguistic Architecture of Software Products</title>
		<author>
			<persName><forename type="first">J.-M</forename><surname>Favre</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Lämmel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Varanovich</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of MODELS 2012</title>
				<meeting>of MODELS 2012</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2012">2012</date>
			<biblScope unit="volume">7590</biblScope>
			<biblScope unit="page" from="151" to="167" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Towards a Megamodel to Model Software Evolution through Transformations</title>
		<author>
			<persName><forename type="first">J.-M</forename><surname>Favre</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Nguyen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ENTCS</title>
		<imprint>
			<biblScope unit="volume">127</biblScope>
			<biblScope unit="issue">3</biblScope>
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Realizing Architecture Frameworks Through Megamodelling Techniques</title>
		<author>
			<persName><forename type="first">R</forename><surname>Hilliard</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Malavolta</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Muccini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Pelliccione</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of ASE 2010</title>
				<meeting>of ASE 2010</meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="305" to="308" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<author>
			<persName><forename type="first">A</forename><surname>Holovaty</surname></persName>
		</author>
		<ptr target="http://www.holovaty.com/writing/fundamental-change/" />
		<title level="m">A Fundamental Way Newspaper Sites Need to Change</title>
				<imprint>
			<date type="published" when="2006-09">Sept. 2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title level="m" type="main">JAXB 2.0/2.1 -Java Architecture for XML Binding</title>
		<idno>JCP JSR 31</idno>
		<ptr target="http://jaxb.dev.java.net/" />
		<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">An Introduction to Grammar Convergence</title>
		<author>
			<persName><forename type="first">R</forename><surname>Lämmel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Zaytsev</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of IFM 2009</title>
				<meeting>of IFM 2009</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="volume">5423</biblScope>
			<biblScope unit="page" from="246" to="260" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Using a fUML Action Language to Construct UML Models</title>
		<author>
			<persName><forename type="first">C.-L</forename><surname>Lazar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Lazar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Pârv</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Motogna</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><forename type="middle">G</forename><surname>Czibula</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of SYNASC 2009</title>
				<meeting>of SYNASC 2009</meeting>
		<imprint>
			<publisher>IEEE Computer Society</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="93" to="101" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">A Framework for Evolution of Modelling Languages</title>
		<author>
			<persName><forename type="first">B</forename><surname>Meyers</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Vangheluwe</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Science of Computer Programming</title>
		<imprint>
			<biblScope unit="volume">76</biblScope>
			<biblScope unit="issue">12</biblScope>
			<biblScope unit="page" from="1223" to="1246" />
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title level="m" type="main">Power Journalism: Computer-Assisted Reporting</title>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">C</forename><surname>Miller</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1997">1997</date>
			<publisher>Harcourt Brace College Publishers</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Megamodeling and Metamodel-Driven Engineering for Plastic User Interfaces: MEGA-UI</title>
		<author>
			<persName><forename type="first">J.-S</forename><surname>Sottet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Calvary</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J.-M</forename><surname>Favre</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Coutaz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Human-Centered Software Engineering</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="173" to="200" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Evolving Stories: Tree Adjoining Grammar Guided Genetic Programming for Complex Plot Generation</title>
		<author>
			<persName><forename type="first">K</forename><surname>Wang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><forename type="middle">Q</forename><surname>Bui</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">A</forename><surname>Abbass</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of SEAL 2010</title>
				<meeting>of SEAL 2010</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="135" to="145" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Renarrating Linguistic Architecture: A Case Study</title>
		<author>
			<persName><forename type="first">V</forename><surname>Zaytsev</surname></persName>
		</author>
		<idno type="DOI">10.1145/2508443.2508454</idno>
		<ptr target="http://dx.doi.org/10.1145/2508443.2508454" />
	</analytic>
	<monogr>
		<title level="m">Proc. of MPM 2012</title>
				<meeting>of MPM 2012</meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="61" to="66" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
