<?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">Bidirectional Synchronization of Multiple Views of Software Models</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Miguel</forename><surname>Garcia</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Institute for Software Systems (STS)</orgName>
								<orgName type="institution">Hamburg University of Technology (TUHH)</orgName>
								<address>
									<postCode>21073</postCode>
									<settlement>Hamburg</settlement>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Bidirectional Synchronization of Multiple Views of Software Models</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">74831A7E95CFCBABD2DFB68F2243E013</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T01:10+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>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Current best-practices for defining Domain-Specific Modeling Languages call for metamodeling techniques, which do not take into account the future use of such languages in multiview design environments. Tool implementers have tried a variety of ad-hoc techniques to maintain views in-synch, with modest results. To improve this state of affairs, a declarative approach is elaborated to automate multiview synchronization, building upon existing metamodeling techniques and recent advances in the field of function inversion for bidirectionalization. An application of these ideas to EMOF and a discussion of the resulting Declarative MVC software architecture are also provided. A significant benefit of the approach is the resulting comprehensive solution to a recurrent problem in the software modeling field.</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>Most modeling languages provide different visual notations to highlight different aspects of the System Under Development (SUD). Most notably, UML2 defines a total of thirteen diagram types, grouped into three categories (structure, behavior, and interaction). In general, the same situation arises for Domain-Specific Modeling Languages (DSMLs). There is thus no escape from using several notations when modeling non-trivial software systems, a fact that vendors of modeling tools acknowledge by providing multiview capabilities. At some point in the development process the issue of inter-view consistency <ref type="bibr" target="#b6">[Egy06]</ref> requires automation due to the complexity of the SUD. For example, determining consistency between a sequence diagram and the statechart for a single traffic-light may be done manually. However, tool support is required for models of realistic complexity (railroad crossings, reservation systems, consumer electronis, etc.)</p><p>The definition of a modeling language that introduces views is thus expected to provide an algorithm to determine whether a set of views is consistent. Using metamodeling terminology, the check for consistency is formulated as follows: (a) for each diagram type a metamodel has been defined, whose instances constitute the views manipulated by the modeler, including geometric information; (b) each such metamodel defines its intra-view Well-Formedness Rules (WFRs); and (c) additional WFRs ensure consistency encompassing several views. Given that WFRs are boolean-valued predicates over an object population, a yes/no answer can be provided about the consistency of the integrated model, i.e., the set of all views prepared by the modeler. Unless inter-view consistency is addressed at the level of the language definition itself, disagreement will otherwise ensue. For example, the workshop series Consistency Problems in UML-based Software Development was devoted to overcoming such disagreement for UML 1.x.</p><p>As useful as they are, yes/no answers about consistency contribute only partially to productivity. In a multiview setting, additional use cases demand automation (multiview synchronization, model refactoring <ref type="bibr" target="#b20">[MB05,</ref><ref type="bibr" target="#b3">CW07]</ref>, and model completion <ref type="bibr" target="#b25">[SBP07]</ref>). In this paper, we address the multiview synchronization problem (defined below), leveraging on the lessons learnt from the related problem of inter-view consistency: we rely on a formal technique and address this concern at the language definition level.</p><p>Keeping multiple views in-synch requires propagating changes in two directions: (a) change requests validated against the WFRs of the integrated model are to be reflected on views; and (b) user-initiated view updates are to be processed in the opposite direction. The algorithm for realizing (a) is fixed once a view definition is available: given that the integrated model includes geometric information, updating views amounts to evaluating a function again. The situation is not so simple for (b), where partial information is available. For example, a particular view definition may select only those items at odd-numbered positions in a list. Inserting into the view then raises the question as to where to add an item in the underlying list (which is part of the integrated model). Such kind of decision problems are not solved by the current best-practices around tool implementation: Model-View-Controller architecture (MVC), runtime evaluation of WFRs expressed in OCL, transparent undo/redo. Rather, the particular realization of (b) is left to the criteria of tool vendors, thus opening the door to non-standard implementations. Our contribution in this paper improves on this state of affairs, not by building a tool with multiview synchronization capabilities (which is a task for industry) but by disclosing the inner workings of such solution (which industry refrains from doing).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.1">Benefits of the proposed approach</head><p>The lack of tool compatibility (and sometimes correctness) around multiview synchronization stems from the fact that the specific policy governing synchronization is encoded manually in the Controller module of MVC (by each tool vendor, usually in an imperative language). In contrast, a declarative formulation, available as part of the language definition itself, allows both generating such implementation as well as statically analyzing the bidirectional transformations at design time. We call this approach DMVC, for Declarative MVC. The resulting productivity gain is particularly relevant for DSMLs, as the cost of developing tooling for them has to be amortized over a much smaller number of projects than for their general purpose counterparts. The DMVC approach is in line with recent advances in the definition of visual notations, where geometric constraints are used at runtime to automate the maintenance of diagram layouts, as discussed in detail by Grundy <ref type="bibr" target="#b17">[LHG07]</ref> and exemplified in an Eclipse-based modeling tool generator<ref type="foot" target="#foot_0">1</ref> . Our proposed architecture for DMVC builds upon a bidirectional transformation engine fulfilling formal guarantees. For example, given a view definition written by the DSML author, the engine can automatically derive its corresponding backward transformation. Importantly, the backward transformations <ref type="bibr" target="#b26">[Ste07]</ref> thus obtained can cope with many-toone mappings (i.e., non-injective functions, where different inputs are mapped to the same output, as for example in f (x, y) = x + y). This is achieved with stateful transformations, which track the information needed to complement that lost by the mapping (in the example, keeping a copy of either x or y allows handling user updates to x + y). Additionally, it is common practice for a backward transformation to take as input, besides the updated view, the original source. The intuition behind this scheme is depicted in Figure <ref type="figure" target="#fig_0">1</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>The View Update Problem In Practice</head><p>Statefulness and recombination distinguish our problem space from plain function inversion, which is enough in the particular case where each of (source, view) can be fully reconstructed from the other, i.e., whenever there is a one-to-one correspondence (a bijection) between source and target domains. As argued by Stevents <ref type="bibr" target="#b26">[Ste07]</ref>, such situation constitutes the exception rather than the rule in multiview modeling languages. For example, dual syntaxes <ref type="bibr" target="#b2">[BMS07]</ref> do exhibit this property: a human-oriented syntax is defined for pretty-printing Abstract Syntax Trees (ASTs), while an accompanying XML-based syntax is defined for tool interchange. An MVC editor displaying a dedicated view for each representation needs no further information than the contents of an updated view in order to refresh the other, as no information is elided in the alternative syntaxes. In terms of our adopted approach, bijections are handled the same as the non-injective case (the latter being the "interesting" one from the point of view of multiview synchronization).</p><p>In summary, bidirectional transformations increase the productivity of the tooling process for DSMLs, and the quality of multiview environments. The structure of this paper is as follows. Competing methodologies around view update are reviewed in Sec. 2, followed in Sec. 3 by the application of one of them to the multiview synchronization problem, comprising the definition of EMOF-level operators for view specification (Sec. 3.1) that are well-behaved from a bidirectionalization point of view (Sec. 3.2). Given that any realistic multiview modeling tool will rely on available MVC frameworks, these practical aspects are discussed in Sec. 4. By placing the reported techniques in perspective, Sec. 5 reviews our contributions and concludes. Knowledge is assumed about language metamodeling, a background in functional programming is helpful but not required.</p><p>All the approaches reviewed in this section share the common goal of enabling bidirectional transformations between pairs of data structures, with differences spanning the preferred representation (e.g., unordered trees vs. semi-structured data) and the available transformation operators (which may or may not allow user updates to alter the transformation as a side-effect). Besides highlighting the innovative aspects of each technique, their comparison allows introducing terminology to better characterize the multiview synchronization problem. However, the reader interested in the resulting Declarative MVC architecture may focus on Sec. 2.1 and skip the remaining subsections, moving directly to Sec. 3.</p><p>For ease of reference, candidate approaches are loosely grouped into (a) general purpose techniques (program inversion, data synchronization, and virtual view update); and (b) techniques aiming at supporting model transformations (QVT-Relations and graphgrammar based). This classification has more to do with the current level of adoption in the model-driven community than with any inherent capability of each approach.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Program inversion, Data synchronization, and Virtual view update</head><p>Program inversion. We discuss this technique first as it constitutes the basis for Declarative MVC. Program inversion [MHN + 07] in the context of functional programming refers to determining, given a function f (x 1 , . . . x n ), its inverse, so as to obtain the arguments given a result. For our problem at hand, an insight consists in choosing the building blocks for expressing view definitions such that they fulfill three bidirectional properties: a) Stability: unmodified views are transformed back into the same source that gave origin to them (i.e., backward transformations introduce no spurious information); b) Restorability: all updates on a source (that affect a view) can be canceled by updates on the view (i.e., the user has means to restore the integrated model to a previous state by just acting on the view) c) Composability: the backward transformation is oblivious to the order in which updates took place (what counts is the end state).</p><p>Moreover, any composition of building blocks fulfilling these properties defines again a well-behaved bidirectional transformation. A Haskell implementation of an algorithm for the above is available<ref type="foot" target="#foot_1">2</ref> . We do not reproduce here the theory behind this algorithm, which is proficiently covered by Matsuda et. al. in their ICFP 2007 paper [MHN + 07].</p><p>Program inversion fulfilling the above properties has been applied to particular cases: Liu [LHT + 07b] presents a Java library for the bidirectional transformation of XML documents (the transformation operators constituting the BiXJ language). A subset of XQuery is translated into BiXJ in <ref type="bibr" target="#b18">[LHT07a]</ref>, thus allowing using a mainstream language for view definition, again with a prototype realization available<ref type="foot" target="#foot_2">3</ref> . Along the same lines, Xiong [XLH + 07] translates a subset of ATL (Atlas Transformation Language), thus achieving bidirectionality<ref type="foot" target="#foot_3">4</ref> .</p><p>Data synchronization. Algorithms developed to synchronize intermittently connected data sources (such as file systems or address books, between mobile and stationary devices) can also be applied to keep complex software artifacts in-synch. An exponent of this approach is the Harmony project [FGM + 07] whose engine<ref type="foot" target="#foot_4">5</ref> implements Focal, a language with building blocks that allow writing only functions that always behave as lenses, i.e., bidirectional transformations. Focal is a low-level language operating on tree-shaped data structures (specifically, edge-labeled unordered trees). Standard encodings for mainstream data structures (lists, XML) are available, as well as libraries of higher-level lenses defined in terms of primitive ones. The design of Focal reflects its theoretical underpinnings in the field of type systems for programming languages, as static assurances can be obtained about the detailed type of inputs and outputs, to avoid runtime checks. In contrast, implementations such as BiXJ resort to returning a default value (e.g., unchanged input) or throw an exception whenever a function argument lies outside the function's domain.</p><p>The capabilities of EMOF-based modeling infrastructures (in particular undo/redo and evaluation of OCL invariants) grant a large degree of tolerance to inconsistent input, a feature that proves extremely valuable during the initial exploratory phases of DSML language engineering (which comprises the definition of transformations for each view). Moreover, experience shows that modelers frequently perform a series of editing operations which temporarily result in WFRs being broken. We aim at preserving this flexibility, to avoid usability problems similar to those that plagued syntax-directed text editors. In summary, we strike a balance between static assurances and ease of use by relying on runtime checks to capture side conditions not enforceable at design-time. If needed, static assurances beyond those amenable to static type checking can still be obtained by offline model checking, as shown in the case studies of <ref type="bibr" target="#b0">[ABK07]</ref> (for transformations expressed as LHS → RHS production rules) and <ref type="bibr" target="#b11">[GM07]</ref> (for imperative transformations).</p><p>Update of virtual views in databases. The view update problem has been studied in the context of databases, where the mechanism to define views is taken as given (relational algebra or calculus) and the kinds of view updates that may be propagated back without loss of information are determined. Recent work focuses on updating virtual and materialized XML views (in the latter case, incrementally). Most results have been incorporated into the program inversion and data synchronization techniques [MHN + 07, FGM + 07].</p><p>Given that the EMOF data model is richer than its relational counterpart (because of object IDs, ordered collections, reference handshaking), techniques targeting relational databases are overly restrictive when adapted to EMOF, limiting the operators available for view definition. The incremental maintenance of materialized views in OO databases is studied by Ali <ref type="bibr" target="#b1">[AFP03]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">QVT-Relations and Graph-grammars</head><p>QVT-Relations. QVT-Relations was designed to encode input-output relationships by means of pattern-matching guarded by preconditions. At any given point in time, all but one of the models participating in a transformation are considered as non-updatable, thus constraining the solution space to a well-defined set of (updates, instantiations, deletions) on the target model.</p><p>Erche et. al. <ref type="bibr" target="#b8">[EWH07]</ref> point out that metamodel-based language specs do not specify the connection between concrete and abstract syntax and propose QVT-Relations to bridge that gap. Given that such transformations are bidirectional, their architecture aims at solving the same problem space as Declarative MVC. There is no detailed discussion in <ref type="bibr" target="#b8">[EWH07]</ref> on whether every QVT-Relations transformation is well-behaved in terms of the conditions defined by Matsuda et. al. [MHN + 07] (Sec. 2.1). Irrespective of the particular transformation mechanism adopted, Duboisset <ref type="bibr" target="#b4">[DPKS05]</ref> recognizes that not all geometric constraints relevant for concrete visual syntaxes can be expressed in EMOF + OCL metamodels, offering as an example topological constraints in spatial databases. It is clear that QVT-Relations can support roundtripping over one-to-one mappings, however a discussion of its capabilities to back-propagate updates on non-injective views is missing in the literature. Our approach around geometric constraints is covered in Sec. 4.</p><p>Triple Graph Grammars (TGGs). TGGs <ref type="bibr" target="#b10">[GGL05]</ref> build upon directed typed graphs and graph morphisms. Informally, a TGG transformation rule consists of three graphs (left, interface, and right) and two morphisms (from the interface graph to each of left, right) which together describe the correspondence between embeddings of these graphs in source and target. In other words, such rule also states the inter-consistency conditions between source and target, besides specifying a transformation. Figure <ref type="figure" target="#fig_1">2</ref> depicts an example, the compilation of if-then-else into lower-level constructs (conditional jumps). Before a TGG transformation can be applied, its positive and negative application conditions are evaluated. These conditions demand a required context (certain nodes or edges must exist) or forbid a context (certain nodes or edges must be absent) connected in a certain topology.</p><p>An extension of TGG transformations to accomodate N -way relations is offered in <ref type="bibr" target="#b15">[KS06]</ref>.</p><p>For our purposes, this capability is not necessary as our architecture revolves around a single integrated model (i.e., to synchronize N different view types N bidirectional transformations are defined, as depicted in Figure <ref type="figure" target="#fig_3">3</ref>). Graphical IDE support is available<ref type="foot" target="#foot_5">6</ref> , and modularization has been proposed to cope with large-scale transformations. Similar to other rewriting techniques, the control flow aspect of a complex transformation (when to apply which rules) suggests breaking up large transformations into several more focused ones, to be applied sequentially.</p><p>As with the data synchronization approach, an encoding of EMOF models is necessary (in this case, into directed typed graphs), as well as expressing transformations in terms of graph morphisms guarded by application conditions. In our setting, some features of the program inversion approach (Sec. 2.1) prove beneficial over TGGs: (a) OCL expressions in view definitions can be used directly by Matsuda's bidirectionalization algorithm [MHN + 07], and (b) no explicit rules need be declared to delete view elements not supported anymore by source elements. The runtime overhead of encoding EMOF models into graphs can be reduced with the Adapter design pattern, at the cost of an indirection level (as with any approach, these design decisions would need to be revisited if the modeling infrastructure natively managed models in the format of the transformation engine). 3 Integration in an EMOF-based modeling infrastructure</p><p>After settling on the bidirectional program inversion technique [MHN + 07], the interfacing of its functional inversion algorithm with current metamodeling infrastructure has to be addressed. A canonical approach consists in encoding EMOF models into inductive data types to automatically apply the inversion algorithm to each view definition, expressed as an affine function in treeless form [MHN + 07]. Alternatively, a fixed catalog of bidirectional operators can be defined for EMOF models, fulfilling the three stated bidirectional properties. Both alternatives are explored, in Sec. 3.2 and Sec. 3.1 resp. Briefly, the advantage of the canonical approach is the open-ended set of base operators that can be defined, while the existing EMOF-based ones can only be recombined. On the other hand, adopting the EMOF-based operators avoids the detour to the inductive-data-types representation. Besides the performance gain, usability is also improved, as modelers are accustomed to conceptualizing transformations in terms of EMOF-level constructs. In any case, the approaches are not mutually exclusive, and any of them can be adopted to define views (injective or not) as part of the Declarative MVC (DMVC) architecture (Sec. 4).</p><p>As with Bidirectional-XQuery <ref type="bibr" target="#b18">[LHT07a]</ref> and Bidirectional-ATL [XLH + 07] a possibility consists in finding a subset of QVT-Relations amenable to encoding with bidirectional operators. Given that DSML authors already master the concepts required to understand the building blocks of bidirectionalization, directly using them results in making available their full expressive power. In a next step, subsets of OCL and QVT-Relations, which are already EMOF-aware, can be recast in terms of the operators in the next two subsections.</p><p>3.1 Operators for two-way transformations in Ecore: TwEcore Each operator consists of a forward and a backward function. Borrowing notation from [HLM + 06], X F (s) stands for the application of the (possibly composite) operator X to the source s in the forward direction, resulting in a view t. The backward function, X B (s, t ) takes as argument the unmodified source s, the updated view t , and returns a pair (s , X ) consisting of an updated source s as well as a possibly updated operator X , to be used in further invocations. This statefulness is exemplified by X = twRenameProp(old, new), to rename the property p named old, where s denotes an EMOF class. In this case X F (s) is a clone of s save for renaming the cloned property p from old to new. In turn, X B (s, t ) = (s , X ) where t may have user updates, including renaming of property p itself. The backward function returns in s such changes save for any renaming of p, whose name is restored to old. An updated property name new' provided by the user on the view t is recorded instead in the state of X = twRenameProp(old, new'). Therefore, a successive application of X will involve again the latest name entered by the user.</p><p>The basic example of a composite transformation is function composition, represented by X = twSeq(X0 ...Xn), where the simpler transformations X 0 . . . X n are applied so that s i is the updated source for t i (0 ≤ i ≤ n − 1). The definition for this generic operation is reproduced from [HLM + 06]:</p><formula xml:id="formula_0">[[X]] F (s) = t [[X]] B (s, t ) = (s , &lt;xseq&gt;[X 0 ... X n ]) where t 0 = [[X 0 ]] F (s) ... t = [[X n ]] F (t n−1 ) (s n−1 , X n ) = [[X n ]] B (t n−1 , t ) ... (s , X 0 ) = [[X 0 ]] B (s, s 0 ) twSeq</formula><p>In addition to the operator definitions, an EBNF-based concrete syntax is necessary to facilitate the discussion and exchange of view definitions (an area for future work in TwEcore). In terms of implementation, such syntax proves useful as it enables the interpretation of ad-hoc, or dynamically generated, view-definition scripts. In fact, this use case was foreseen by the authors of [MHN + 07] and is supported in a Haskell-based bidirectional XML editor where users can update not only sources and views, but also transformations connecting them.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Encoding of EMOF models using inductive data types</head><p>This subsection explores the implications (for multiview synchronization) of implementing an EMOF infrastructure using functional programming (FP) instead of Java. This exercise is not as far-fetched as it might seem at first sight because: (a) several bidirectionalization approaches are naturally expressed with FP; (b) functional programs are more amenable to static analysis than their OO counterparts; and (c) most of the proposed new language features for post-Java languages originate in FP<ref type="foot" target="#foot_6">7</ref> . The Declarative MVC architecture does not impose a functional realization, with this subsection serving as outlook for readers sharing an interest in functional programming.</p><p>Porting an EMOF infrastructure to the functional paradigm comprises devising encodings for (a) EMOF data structures, and (b) algorithms for views and transformations in EMOF. Regarding (a), given that EMOF models are typed, labelled graphs, the encoding proposed by Erwig is applicable <ref type="bibr" target="#b7">[Erw01]</ref>. Regarding (b), the algorithms to port fall into two categories: (b.1) those already formulated in terms of OO concepts (e.g., written in QVT-Relations, ATL<ref type="foot" target="#foot_7">8</ref> , or Java); and (b.2) those written as affine functions in treeless form, as expected by the algorithm for well-behaved bidirectionalization of Matsuda et. al. [MHN + 07]. For (b.1) an encoding style is required that at least preserves the typechecking capabilities of the OO representation. The OOHaskell approach (Kiselyov and Lämmel <ref type="bibr" target="#b14">[KL05]</ref>) fulfills these requirements by exploiting the type checking and type inference mechanisms of Haskell. As a result, Haskell-based processing following an OO style never results in a runtime errors like "method not found" that the OO version would have detected at compile-time.</p><p>While the pragmatic approach of TwEcore (and BiXJ, Bi-XQuery, and Bi-ATL) accelerates the construction of proofs of concept for DMVC tools, the same benefits could be easily achieved in a modeling infrastructure based on functional programming.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Diagram-based views and Geometric Constraint Solvers</head><p>Existing MVC frameworks for modeling infrastructures (e.g., EMF.Edit) support out-ofthe-box a particular case of synchronization between view and model, namely bijections, where updates originating in a view are applied as-is to the single correspoding item in the associated model. The Declarative MVC architecture leverages this data binding capability (for EMF<ref type="foot" target="#foot_8">9</ref> , GUI widgets<ref type="foot" target="#foot_9">10</ref> , and the Eclipse Graphical Modeling Framework<ref type="foot" target="#foot_10">11</ref> ). Interactions of this kind do not have to cope with non-injectiveness (as in f (x, y) = x + y). For comparison, they are shown bracketed with (A) in Figure <ref type="figure" target="#fig_3">3</ref>, while those requiring bidirectionalization are marked with (B).</p><p>In case an update to the integrated model requires adding figures to a diagram view, default values have to be provided for the figure's position, size, layer, color, etc. While these values cannot be computed by the bidirectional transformation engine, they can still be managed declaratively with the help of a geometric constraint solver (e.g., <ref type="bibr" target="#b21">[MC02]</ref>) which assumes the role of a local Controller in one of the MVC subsystems depicted in Figure <ref type="figure" target="#fig_3">3</ref> (i.e., it processes a subset of the view-level change requests, forwarding the non-filtered ones to the main Controller). Constraint solvers are responsible for enforcing geometric invariants, such as: (a) ensuring area inclusion between substates and their parent state in a statechart diagram, (b) ensuring non-overlap of the 2D regions for different figures.</p><p>The constraints on the layout of figures mandated by a visual syntax do not usually comprise the heuristics (such as crossings minimization) that distinguish a diagram with a comfortable layout from another which is hard to decipher. After computing a layout that fulfills those cognitive quality measures, small user edits should not cause a full re-arrangement, as becoming familiar with a new layout places a cognitive load on the user. This dynamic aspect is not normally considered in graph layout algorithms <ref type="bibr" target="#b5">[Dub06]</ref>. Moreover, capturing all relevant visual aesthetics of a given visual notation is nowhere near straightforward, as their relative weight on diagram understanding may be discovered only with empirical studies [Dub06, p. 5]:</p><p>A followup study reveals a visual aesthetic not previously considered by the graph drawing community. This new aesthetic, continuity, is the measure of the angle formed by the incoming and outgoing edges of a vertex. For the task of finding a shortest path between two vertices, continuity can become even more important than edge crossings.</p><p>The example reveals that well known visual aesthetics for graph layout overlook constraints that can be specified declaratively. Geometric constraint solvers are widely used in CAD tools (feature-based parametric modeling, <ref type="bibr" target="#b12">[HJA05]</ref>) and are starting to be adopted by graphical frameworks for metamodeling <ref type="bibr" target="#b17">[LHG07]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusions</head><p>The complexity around keeping views in-synch in multiview authoring environments requires a comprehensive solution. As shown in this paper, one such solution relies on metamodeling, well-behaved bidirectional transformations, and geometric constraint solvers. Current EMOF infrastructures have paved the way for functional extensions, such as bidirectionalization (which requires moderate integration effort) and geometric constraint solving (which is only now starting to be considered part of metamodeling <ref type="bibr" target="#b17">[LHG07]</ref>).</p><p>Existing tools for general-purpose modeling have been developed following a traditional (non-declarative) MVC architecture, and are not expected to migrate overnight to a new paradigm. Instead, the primary candidates to benefit from Declarative MVC are Domain-Specific Modeling Languages (DSMLs). More generally, we argue that applying to DSMLs the same (metamodel-based) definition techniques as for UML 1.x will impair their adoption, as such techniques overlook the connection between concrete and abstract syntax, do not handle multiview synchronization, and lack precise semantics for backpropagating updates from non-injective views. The techniques brought together in this paper address those weaknesses identified in previous efforts around the definition and tooling of DSMLs.  </p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure1: A bidirectional transformation, consisting of forward and backward functions<ref type="bibr" target="#b23">[Pie06]</ref> </figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Sample TGG-based translation (if-then-else into conditional jumps, [Lei06])</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3: Software Architecture for a Multiview Design Environment supporting Bidirectionality, instantiated for a statechart editor supporting three kinds of views: diagram, textual syntax [Pro05], and forms-based</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">Marama meta-tools, https://wiki.auckland.ac.nz/display/csidst/Marama+Tatau</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">Generation of backward transformation programs based on derivation of view complement functions, http://www.ipl.t.u-tokyo.ac.jp/ ˜kztk/bidirectionalization/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2">BiXJ and Bi-CQ, http://www.ipl.t.u-tokyo.ac.jp/ ˜liu/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_3">Bi-ATL, http://www.ipl.t.u-tokyo.ac.jp/ ˜xiong/modelSynchronization.html.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_4">Harmony Project, http://www.seas.upenn.edu/ ˜harmony.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_5">Some TGG-based tools: (a) MOFLON, http://www.moflon.org/; (b) MoTE/MoRTEn (as FUJABA plugins), http://wwwcs.uni-paderborn.de/cs/fujaba/projects/tgg/; (c) AToM3, http: //atom3.cs.mcgill.ca/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="7" xml:id="foot_6">Scala programming language, http://www.scala-lang.org/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="8" xml:id="foot_7">ATL, ATLAS Transformation Language, http://www.eclipse.org/m2m/atl/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="9" xml:id="foot_8">EMF Data Binding, https://bugs.eclipse.org/bugs/show_bug.cgi?id=75625</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="10" xml:id="foot_9">JFace Data Binding, http://wiki.eclipse.org/index.php/JFace_Data_Binding</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="11" xml:id="foot_10">Eclipse GMF, http://www.eclipse.org/gmf/</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Analysis of Model Transformations via Alloy</title>
		<author>
			<persName><forename type="first">K</forename><surname>Anastasakis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Bordbarand</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Küster</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">4th MoD-eVVa workshop Model-Driven Engineering, Verification and Validation</title>
				<editor>
			<persName><forename type="first">B</forename><forename type="middle">B A</forename><surname>Faivre</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">S</forename><surname>Ghosh</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">A</forename><surname>Pretschner</surname></persName>
		</editor>
		<meeting><address><addrLine>Nashville, TN, USA</addrLine></address></meeting>
		<imprint>
			<publisher>conjunction with MoDELS07</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="47" to="56" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">MOVIE: an incremental maintenance system for materialized object views</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">A</forename><surname>Ali</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">A A</forename><surname>Fernandes</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><forename type="middle">W</forename><surname>Paton</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Data Knowl. Eng</title>
		<imprint>
			<biblScope unit="volume">47</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="131" to="166" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Dual Syntax for XML Languages. Information Systems</title>
		<author>
			<persName><forename type="first">C</forename><surname>Brabrand</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Møller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">I</forename><surname>Schwartzbach</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Earlier version in Proc. 10th International Workshop on Database Programming Languages, DBPL &apos;05</title>
		<title level="s">Springer LNCS</title>
		<imprint>
			<date type="published" when="2007">2007</date>
			<biblScope unit="volume">3774</biblScope>
			<biblScope unit="page" from="27" to="41" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Refactoring Object Constraint Language Specifications</title>
		<author>
			<persName><forename type="first">A</forename><surname>Correa</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Werner</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software and Systems Modeling</title>
		<imprint>
			<biblScope unit="volume">6</biblScope>
			<biblScope unit="page" from="113" to="138" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Precise Modeling and Verification of Topological Integrity Constraints in Spatial Databases: From an Expressive Power Study to Code Generation Principles</title>
		<author>
			<persName><forename type="first">M</forename><surname>Duboisset</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Pinet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M.-A</forename><surname>Kang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Schneider</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">LNCS</title>
		<editor>Delcambre, L. M. L, Kop, C, Mayr, H. C, Mylopoulos, J, and Pastor, O, editors</editor>
		<imprint>
			<biblScope unit="volume">3716</biblScope>
			<biblScope unit="page" from="465" to="482" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m" type="main">Graph Layout for Domain-Specific Modeling</title>
		<author>
			<persName><forename type="first">D</forename><surname>Dubé</surname></persName>
		</author>
		<ptr target="http://moncs.cs.mcgill.ca/people/denis/files/thesis_HREF.pdf" />
		<imprint>
			<date type="published" when="2006">2006</date>
			<pubPlace>Montreal, Canada</pubPlace>
		</imprint>
		<respStmt>
			<orgName>School of Computer Science, McGill University</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Master&apos;s thesis</note>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Instant consistency checking for the UML</title>
		<author>
			<persName><forename type="first">A</forename><surname>Egyed</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICSE &apos;06: Proceeding of the 28th International Conference on Software Engineering</title>
				<meeting><address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="381" to="390" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Inductive graphs and functional graph algorithms</title>
		<author>
			<persName><forename type="first">M</forename><surname>Erwig</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. Funct. Program</title>
		<imprint>
			<biblScope unit="volume">11</biblScope>
			<biblScope unit="issue">5</biblScope>
			<biblScope unit="page" from="467" to="492" />
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Mapping visual notations to MOF compliant models with QVT relations</title>
		<author>
			<persName><forename type="first">M</forename><surname>Erche</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Wagner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Hein</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">SAC &apos;07: Proceedings of the 2007 ACM symposium on Applied computing</title>
				<meeting><address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="1037" to="1038" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">N</forename><surname>Fgm + ; Foster</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">B</forename><surname>Greenwald</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">T</forename><surname>Moore</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><forename type="middle">C</forename><surname>Pierce</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Schmitt</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Trans. Program. Lang. Syst</title>
		<imprint>
			<biblScope unit="volume">29</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page">17</biblScope>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">A Graphical Specification of Model Transformations with Triple Graph Grammars</title>
		<author>
			<persName><forename type="first">L</forename><surname>Grunske</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Geiger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Lawley</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ECMDA-FA</title>
				<editor>
			<persName><forename type="first">A</forename><surname>Hartman</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Kreische</surname></persName>
		</editor>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="volume">3748</biblScope>
			<biblScope unit="page" from="284" to="298" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Certification of Transformation Algorithms in Model-Driven Software Development</title>
		<author>
			<persName><forename type="first">M</forename><surname>Garcia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Möller</surname></persName>
		</author>
		<ptr target="http://www.sts.tu-harburg.de/˜mi.garcia/pubs/2007/se2007/GarciaMoeller.pdf" />
	</analytic>
	<monogr>
		<title level="m">Software Engineering</title>
		<title level="s">GI-Edition LNI</title>
		<editor>
			<persName><forename type="first">W.-G</forename><surname>Bleek</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><surname>Räsch</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">H</forename><surname>Züllighoven</surname></persName>
		</editor>
		<imprint>
			<date type="published" when="2007">2007. 2007</date>
			<biblScope unit="volume">105</biblScope>
			<biblScope unit="page" from="107" to="118" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">A Brief on Constraint Solving</title>
		<author>
			<persName><forename type="first">C</forename><surname>Hoffmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Joan-Arinyo</forename></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename></persName>
		</author>
		<ptr target="http://www.cs.purdue.edu/homes/cmh/distribution/papers/Constraints/ThailandFull.pdf" />
	</analytic>
	<monogr>
		<title level="m">Unabridged; abridged version in CAD&amp;A</title>
				<imprint>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<title level="m" type="main">A Compositional Approach to Bidirectional Model Transformation</title>
		<author>
			<persName><forename type="first">Z</forename><surname>Hlm + ; Hu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Liu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Mei</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Takeichi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Xiong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Zhao</surname></persName>
		</author>
		<idno>METR 2006-54</idno>
		<ptr target="http://www.keisu.t.u-tokyo.ac.jp/research/techrep/data/2006/METR06-54.pdf" />
		<imprint>
			<date type="published" when="2006-10">Oct 2006</date>
			<pubPlace>Bunkyo-Ku, Tokyo</pubPlace>
		</imprint>
		<respStmt>
			<orgName>The University of Tokyo</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical Report</note>
</biblStruct>

<biblStruct xml:id="b14">
	<monogr>
		<title level="m" type="main">Haskell&apos;s overlooked object system</title>
		<author>
			<persName><forename type="first">O</forename><surname>Kiselyov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Lämmel</surname></persName>
		</author>
		<ptr target="http://homepages.cwi.nl/˜ralf/OOHaskell/paper.pdf" />
		<imprint>
			<date type="published" when="2004-09">Sep. 2004. September 2005. 2005</date>
		</imprint>
	</monogr>
	<note>Draft; Submitted for publication. online since 30. Full version released 10</note>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">MDI -a Rule-Based Multi-Document and Tool Integration Approach</title>
		<author>
			<persName><forename type="first">A</forename><surname>Königs</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Schürr</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Software &amp; System Modeling</title>
		<imprint>
			<biblScope unit="volume">5</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="349" to="368" />
			<date type="published" when="2006-12">December 2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<monogr>
		<title level="m" type="main">Verifikation von Modelltransformationen basierend auf Triple Graph Grammatiken</title>
		<author>
			<persName><forename type="first">J</forename><surname>Leitner</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2006-03">March 2006</date>
		</imprint>
		<respStmt>
			<orgName>TU-Berlin und Universität Karlsruhe (TH</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Diplomarbeit</note>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">MaramaTatau: Extending a Domain Specific Visual Language Meta Tool with a Declarative Constraint Mechanism</title>
		<author>
			<persName><forename type="first">N</forename><surname>Liu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">G</forename><surname>Hosking</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">C</forename><surname>Grundy</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">VL/HCC</title>
				<imprint>
			<publisher>IEEE Computer Society</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="95" to="103" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Bidirectional interpretation of XQuery</title>
		<author>
			<persName><forename type="first">D</forename><surname>Liu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Hu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Takeichi</surname></persName>
		</author>
		<ptr target="http://www.ipl.t.u-tokyo.ac.jp/˜liu/PEPM2007.pdf" />
	</analytic>
	<monogr>
		<title level="m">PEPM &apos;07</title>
				<meeting><address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="21" to="30" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<analytic>
		<title level="a" type="main">A Java Library for Bidirectional XML Transformation</title>
		<author>
			<persName><forename type="first">D</forename><surname>Lht + 07b ; Liu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Hu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Takeichi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Kakehi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Wang</surname></persName>
		</author>
		<ptr target="http://www.ipl.t.u-tokyo.ac.jp/˜hu/pub/jssst-cs06-liu.pdf" />
	</analytic>
	<monogr>
		<title level="j">JSSST Computer Software</title>
		<imprint>
			<biblScope unit="volume">24</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="164" to="177" />
			<date type="published" when="2007-05">May 2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b20">
	<monogr>
		<author>
			<persName><forename type="first">S</forename><surname>Marković</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Baar</surname></persName>
		</author>
		<title level="m">LNCS, chapter Refactoring OCL Annotated UML Class Diagrams</title>
				<imprint>
			<publisher>Springer Verlag</publisher>
			<date type="published" when="2005-10">October 2005</date>
			<biblScope unit="volume">3713</biblScope>
			<biblScope unit="page" from="280" to="294" />
		</imprint>
	</monogr>
	<note>Proc of the 8th Intnl Conf MoDELS 2005</note>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">QOCA: A Constraint Solving Toolkit for Interactive Graphical Applications</title>
		<author>
			<persName><forename type="first">K</forename><surname>Marriott</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">S</forename><surname>Chok</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Constraints</title>
		<imprint>
			<biblScope unit="volume">7</biblScope>
			<biblScope unit="issue">3-4</biblScope>
			<biblScope unit="page" from="229" to="254" />
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b22">
	<analytic>
		<title level="a" type="main">Bidirectionalization transformation based on automatic derivation of view complement functions</title>
		<author>
			<persName><forename type="first">K</forename><surname>Mhn + ; Matsuda</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Hu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Nakano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Hamana</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Takeichi</surname></persName>
		</author>
		<ptr target="http://www.ipl.t.u-tokyo.ac.jp/˜hu/pub/icfp07.pdf" />
	</analytic>
	<monogr>
		<title level="j">ICFP</title>
		<editor>Hinze, R and Ramsey, N</editor>
		<imprint>
			<biblScope unit="page" from="47" to="58" />
			<date type="published" when="2007">2007</date>
			<publisher>ACM</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">The Weird World of Bi-Directional Programming</title>
		<author>
			<persName><forename type="first">B</forename><forename type="middle">C</forename><surname>Pierce</surname></persName>
		</author>
		<ptr target="http://www.cis.upenn.edu/˜bcpierce/papers/lenses-etapsslides.pdf" />
	</analytic>
	<monogr>
		<title level="m">Invited talk at ETAPS</title>
				<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<monogr>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">H</forename><surname>Prochnow</surname></persName>
		</author>
		<author>
			<persName><surname>Kiel</surname></persName>
		</author>
		<ptr target="http://rtsys.informatik.uni-kiel.de/˜rt-kiel/kiel/documents/talks/oberseminar-0511-spr/talk.pdf" />
		<title level="m">Textual and Graphical Representations of Statecharts</title>
				<imprint>
			<date type="published" when="2005-11">Nov 2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<analytic>
		<title level="a" type="main">Partial Model Completion in Model Driven Engineering using Constraint Logic Programming</title>
		<author>
			<persName><forename type="first">S</forename><surname>Sen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Baudry</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Precup</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">INAP&apos;07 (International Conference on Applications of Declarative Programming and Knowledge Management)</title>
				<meeting><address><addrLine>Würzburg, Germany</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b26">
	<analytic>
		<title level="a" type="main">Bidirectional Model Transformations in QVT: Semantic Issues and Open Questions</title>
		<author>
			<persName><forename type="first">P</forename><surname>Stevens</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">MoDELS</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="volume">4735</biblScope>
			<biblScope unit="page" from="1" to="15" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b27">
	<analytic>
		<title level="a" type="main">Towards Automatic Model Synchronization from Model Transformations</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Xlh + ; Xion</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Liu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Hu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Zhao</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Takeichi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Mei</surname></persName>
		</author>
		<ptr target="http://www.ipl.t.u-tokyo.ac.jp/˜xiong/papers/ASE07.pdf" />
	</analytic>
	<monogr>
		<title level="m">IEEE/ACM International Conference on Automated Software Engineering</title>
				<imprint>
			<date type="published" when="2007-11">November 2007</date>
			<biblScope unit="page" from="164" to="173" />
		</imprint>
	</monogr>
</biblStruct>

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