<?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">Viewpoint Synchronization of UWE Models</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Daniel</forename><surname>Ruiz-González</surname></persName>
							<affiliation key="aff0">
								<orgName type="laboratory">GISUM/Atenea Research Group</orgName>
								<orgName type="institution">Universidad de Málaga</orgName>
								<address>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Nora</forename><surname>Koch</surname></persName>
							<email>kochn@pst.ifi.lmu.de</email>
							<affiliation key="aff1">
								<orgName type="department">Web Engineering Group</orgName>
								<orgName type="institution">Ludwig-Maximilians-Universität München</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Christian</forename><surname>Kroiss</surname></persName>
							<email>kroiss@pst.ifi.lmu.de</email>
							<affiliation key="aff1">
								<orgName type="department">Web Engineering Group</orgName>
								<orgName type="institution">Ludwig-Maximilians-Universität München</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">José-Raúl</forename><surname>Romero</surname></persName>
							<email>jrromero@uco.es</email>
							<affiliation key="aff2">
								<orgName type="laboratory">Atenea Research Group</orgName>
								<orgName type="institution">Universidad de Córdoba</orgName>
								<address>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Antonio</forename><surname>Vallecillo</surname></persName>
							<affiliation key="aff0">
								<orgName type="laboratory">GISUM/Atenea Research Group</orgName>
								<orgName type="institution">Universidad de Málaga</orgName>
								<address>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Viewpoint Synchronization of UWE Models</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">985E1AC00A9DFB4D4C9582A4C4CA4C60</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T21:43+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>Viewpoint modeling has demonstrated to be an effective approach for specifying complex software systems by means of a set of independent views and correspondences between them. As any other software system, a Web application evolves during its lifetime, and its specifications change to meet new requirements or to adapt to business changes. As a consequence, view elements and correspondences can be added, modified or removed, which may cause synchronization and consistency problems in the system specifications. UWE is a Model-Driven Web Engineering approach that uses several viewpoints for addressing the different concerns involved in the specification and development of Web systems. In this paper we examine the explicit and partially automatic specification of correspondences between UWE views, and present a tool for helping synchronize them under the presence of changes to the view elements.</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>Viewpoint modeling is currently seen as an effective technique for specifying complex software systems by means of a set of viewpoints and correspondences between their elements. Each viewpoint focuses on a particular aspect of the system, abstracting away from the rest of the concerns. Correspondences specify the relationships between the elements in the different views, together with the constraints that guarantee the consistency among these elements.</p><p>During its life cycle, a software system evolves and its specification is subject to changes in order to meet new requirements or to adapt to business changes. Thus designers may have to add, remove and/or modify elements in the views, or in the correspondences. One of the consequences of adopting a multi-viewpoint approach to system design is that description of the entities that appear in different views must be consistent. Thus, we should always keep them synchronized. One possible solution is the adoption and implementation of synchronization mechanisms able to propagate the changes on the related views. In particular, a modification in a view may induce a modification in another view or, alternatively, a set of correspondences may need to be adapted.</p><p>Web Engineering is a specific discipline in which both Model-Driven Software Development and Viewpoint Modeling can be successfully applied. For example, existing Model-Driven Web Engineering (MDWE) approaches such as OO-H, UWE, OOWS, WebML, MIDAS or beContent (see <ref type="bibr" target="#b0">[1]</ref> for a comprehensive survey covering the majority of these proposals), already provide a set of suitable methods and tools for the design and development of most kinds of Web applications. In particular, the UML-based Web Engineering approach (UWE) is a well-known MDWE methodology that defines four basic viewpoints on a Web system for structuring its specifications: Content, Navigation, Business Process and Presentation. However, very few MDWE approaches provide notations and mechanisms for establishing correspondences between their viewpoints, or for synchronizing them when they evolve.</p><p>In this paper we examine the explicit specification of correspondences between UWE views, and present a tool for synchronizing them under the presence of changes to the view elements or to the set of correspondences. Correspondences between UWE model elements can either be derived automatically from relationships at metamodel level (intensional approach) or specified individually for model elements (extensional approach). We use classes and dependencies of the Unified Modeling Language (UML), respectively, for expressing and visualizing the correspondences between UWE views. Once the correspondences are specified, the possible changes are propagated using Beanbag <ref type="bibr" target="#b1">[2]</ref>, a very flexible and efficient notation and engine for synchronizing general data dictionaries.</p><p>The structure of this paper is as follows. After this introduction, Section 2 presents some preliminaries about viewpoint modeling and the synchronization process we propose. Section 3 gives an overview of UWE. Then, Section 4 presents our proposal for specifying correspondences between UWE views. Section 5 describes how the UWE views can be synchronized using the information provided by the correspondences, and the tool we have developed to support the change propagation. Finally, Sections 6 and 7 discuss some related works and present some conclusions, respectively.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Viewpoint Modeling and Synchronization</head><p>One way to cope with the inherent complexity of large distributed software systems is by dividing the design activity according to several areas of concerns, or viewpoints, each one focusing on a specific aspect of the system, as described in IEEE Std. 1471 <ref type="bibr" target="#b2">[3]</ref>. This approach has been adopted by most MDWE methodologies that propose the construction of different views (i.e., models) which comprise at least a content model, a navigation and a presentation model -although naming them differently. Each viewpoint addresses one particular concern, and normally uses its own specific (viewpoint) language, which is defined in terms of a set of concepts specific to that concern, their relationships, and their well-formedness rules. A view is a representation of the whole system from the perspective of a viewpoint.</p><p>Although separately specified, developed and maintained to simplify reasoning about the complete system specifications, viewpoints are not completely independent: elements in each view need to be related to elements in the other views in order to ensure the consistency and completeness of the global specifications. Such relationships are described in terms of correspondences <ref type="bibr" target="#b3">[4]</ref>.</p><p>In a viewpoint modeling context, viewpoint languages are defined in terms of metamodels, and the views are then models that conform to these metamodels. Correspon-dences are defined as models, too, which conform to the appropriate metamodels. Such Correspondence metamodels can be defined either ad-hoc (see, e.g., <ref type="bibr" target="#b4">[5]</ref>) or use a model transformation language in order to define viewpoint correspondences as model transformations (see, e.g., <ref type="bibr" target="#b5">[6]</ref>).</p><p>System specifications can evolve due to changes in the requirements or for many other reasons. Thus, the designer may need to perform changes in the views by modifying, for example, one of their elements. Since the system is described as a set of dependent views, any action on a view might cause a similar or a different action on other views. If views are not explicitly related by correspondences, the modeler will not be able to easily know which elements in the views have some relationship with the modified element. Since any action on a model element can be affected by a correspondence, inconsistencies need to be found and solved.</p><p>There are several problems that may happen when trying to maintain the synchronization and consistency between views, once a change has happened (either in an element of a view, or in a correspondence, see <ref type="bibr" target="#b6">[7]</ref>). Sometimes the consistency can be easily restored if the correspondences provide enough information to propagate the change.</p><p>This is why we need an automated process for change propagation. Hence, we propose to implement the following synchronization process. Fig. <ref type="figure">1</ref> shows an overview of the process, where some of the actions are further detailed in sub-activity diagrams as shown e.g. in Fig. <ref type="figure" target="#fig_1">2</ref>. The process starts from a set of models with the different views as for example the views presented in the next section (Sec. 3), the tool automatically builds the initial set of correspondences between the elements in the separate views. These extensional correspondences could be derived from a set of intensional correspondences defined in the corresponding metamodel (see Sec. 4). In addition, the system designer can define more correspondences depending on the particular requirements of the application. [add more correspondences]</p><p>[else]</p><p>[else]</p><p>[no more improvements] Fig. <ref type="figure">1</ref>. Overview of the synchronization process.</p><p>The consistency of the complete system specification can be checked based on the different models (each one representing a different view) and the sets of correspondences between their elements. The refined checking process (Check "with Beanbag") is depicted in Fig. <ref type="figure" target="#fig_1">2</ref>, and further detailed in Sec. 5.2. The result of this process is a set of annotations which are added to the original model. These annotations are represented by means of stereotypes which decorate elements of the model (including its correspondences) indicating that for these elements the synchronization imposed by a correspondence has been broken, together with the proposed changes to restore it. The user can then visualize the annotated model, being able to modify some of the proposed changes if required. Once the designer is happy with all the proposed changes, another process simply traverses all model elements and implements the proposed changes, removing the annotations.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">UML-based Web Engineering</head><p>UML-based Web Engineering (UWE) is a method for systematic and model-driven development of Web applications. It follows the principle of "separation of concerns" by modeling the content, the navigation structure, the business processes, and the presentation of a Web application separately. UWE implements a model-driven development process by defining model transformations of different types to derive platform specific models from platform independent models and to generate running programs <ref type="bibr" target="#b7">[8]</ref>. UWE relies on standards: its modeling language is defined by an extension of the UML metamodel <ref type="bibr" target="#b8">[9]</ref> and mapped to a so-called UML profile; its transformations are defined using (de-facto) standard transformation languages like ATL <ref type="bibr" target="#b9">[10]</ref>.</p><p>In order to illustrate UWE's approach and our proposal we will use a running example, the Simple Address Book <ref type="bibr" target="#b10">[11]</ref>. It models an application that manages an address book of contacts. Each contact contains a name, two phone numbers (business and private), two postal addresses (business and private), and one e-mail address. The system should offer a page with an introductory text and the list of contacts in the agenda, which is stored in a database. For each object the set of its non-empty attributes values is displayed. The address book Web application supports browsing of contacts, adding new contacts, editing and removing of contacts.</p><p>The content model in UWE (represented by a UML class diagram, see Fig. <ref type="figure" target="#fig_2">3</ref>) provides the specification of the domain-relevant information for the Web application. The content model of our example contains contacts that are organized in an address book.</p><p>Based on the content model, the navigation model of the Web application is built (Fig. <ref type="figure">4</ref>) by a model transformation and a set of successive refinements. This model specifies the hypertext structure of the system, which is described in terms of nodes and links. Classes stereotyped navigationClass (like AddressBook or Contact) represent navigable nodes for information retrieval; classes stereotyped processClass (such as AddContact and RemoveContact) define navigation nodes where transactions may occur. Direct links are modeled by associations stereotyped navigationLink (omitted in Fig. <ref type="figure">4</ref>); in particular, associations stereotyped processLink lead to or leave from process classes. Some special navigation nodes are used to organize links. For example, several instances of a navigation class are reached by index classes (like ContactList) and choices of links are represented by menu classes, like ContactMenu (see Fig. <ref type="figure">4</ref>).</p><p>In the address book application, users can navigate from the homepage either, using an index with the contacts, to view the information associated to a selected contact, or along another navigation path to add a new contact to the database. of the process. For example, user interactions with the web application are modeled by UML actions stereotyped as userAction .</p><p>Finally, the presentation model provides an abstract view of the user interface (UI) of the application, where concrete aspects such as colors and fonts of UI elements are not considered. A structured class stereotyped as presentationGroup models the presentation of each navigation class. UI elements (e.g., text, images, etc.) contained in presentation classes are modeled by classes stereotyped accordingly ( text , image , etc.), indicating the abstract type of the widgets to use. Presentation classes can be nested, modeling the hierarchical structural of Web pages. A presentation class that is not contained in another represents a top-level page of the Web application. In addition, a presentation class is defined for each user action. The presentation model therefore has the form of a forest of presentation classes. An excerpt of the presentation model of the address book application is shown in Fig. <ref type="figure">5</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Representing Correspondences</head><p>The objective is to build the correspondence model that comprises a set of correspondences between model elements of a pair of views. The specification of the correspondences is not a difficult but a tedious task. However the work is worth as it allows for synchronization of the different views of a model. It is then an unavoidable work. Therefore our focus is on the automation of the correspondence specification process. This is particularly easy in UWE due to the characteristics of its metamodel. There are then basically two approaches to model correspondences between the views of a system: extensional and intensional.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Extensional Specification of Correspondences</head><p>Extensional models describe correspondences between the particular elements of the views. In UWE, views are expressed as UML models. The UML 2 language defines abstraction dependencies, possibly constrained by OCL statements, as the natural mechanism to model a relationship that relates two elements or sets of elements that represent the same concept at different levels of abstraction or from different viewpoints <ref type="bibr" target="#b8">[9]</ref>. Thus, correspondences between related elements in two views can be expressed using UML dependencies between them. We make use of the fact that dependencies are directed relations, and that the client of the dependency "depends" on the supplier. This establishes a semantic relationship between them that indicates which one should change if a modification is made to one of them.</p><p>Moreover, we mentioned above the importance of endowing correspondence specifications with enough information to propagate the changes. In some approaches this is accomplished by adding a constraint, which establishes a relationship that must hold between the elements related by the correspondence. OCL can be the natural language of choice here, enabling a very flexible and expressive way to specify such constraints <ref type="bibr" target="#b4">[5]</ref>. Other authors <ref type="bibr" target="#b5">[6]</ref> also suggest the use of model transformation languages (e.g., QVT <ref type="bibr" target="#b11">[12]</ref>) for establishing the relations and for specifying (and enforce) the changes. The problem with these approaches resides precisely in their flexibility and expressive richness, since they assume the system designer is able to specify complex constraints using these notations.</p><p>A more simple, pragmatic and practical solution is based on the characterization of the kinds of correspondences that are normally used, and the "componentization" of their behavior so that they can be easily re-used. For instance, one common kind of correspondence found in most UML models establishes that the two related elements should have the same name. Another usual correspondence dictates that an element in a view should have a subset of the attributes of the related element in the other view. For example, this is found in UWE models when relating an element in the Content model with its counterpart in the Presentation model: the attributes of the latter need to be a subset of the attributes of the former (no new attributes can be added in the presentation view). Table <ref type="table" target="#tab_0">1</ref> shows some examples of the most common correspondences found in UWE specifications. Some of them are specific to UWE (e.g., validIndex), while some others can be used in any multi-view UML specification (e.g., sameName). The semantics of each kind of correspondence (i.e., the relation that must hold between the related elements) is predefined. For example, the semantics of a sameName correspondence can be defined by the OCL expression {client.name = supplier.name}. The fact that correspondences are defined using directed dependencies also indicates how the change should be propagated in case of de-synchronization (that is, from the supplier to the client). The idea is then to stereotype the UML dependencies that represent the correspondences with the identifier of the semantics they are expected to exhibit. For this reason we have defined a UML profile, which is shown in Fig. <ref type="figure" target="#fig_4">6</ref>. It contains one stereotype for each kind of correspondence, and is currently structured in two related profiles. The first one, Synch, contains those correspondences which can be used in any UML multi-view specification. The second one, UWESynch, contains those kinds of correspondences which are specific to UWE. Fig. <ref type="figure" target="#fig_5">7</ref> show some examples of these correspondences.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Intensional Specification of Correspondences</head><p>It is not realistic that the system designer has to deal with definition and visualization of all the correspondences of a system. In particular, it is almost impossible to cope with their specification, management and maintenance in case of large systems, with thousands of correspondences between their elements.</p><p>Intensional approaches define correspondences as relations between types of model elements at metamodel level, instead of between the model element themselves -i.e., between viewpoint elements and not between view elements. However, this approach is not free from problems either: for typical users of the specification, correspondences are easier to use, visualize and understand when they are drawn as relationships between individual elements in the views, instead of expressed as formulae relating metamodel elements.</p><p>In UWE, some intensional correspondences are defined by its metamodel, which defines some relations between types of model elements: a navigation class is related to Note that for the evaluation of the expression we define a set of OCL helper functions, such as getPresentationContainer and getLinkTarget, which handle the UWE specific stereotyped elements.</p><p>In our approach, starting with a set of UWE views, our tool automatically generates the initial set of extensional correspondences from the intensional ones (see Fig. <ref type="figure">1</ref>) by interpreting a collection of expressions like the one shown above. Once the whole set of correspondences is modeled, the designer can then add or modify those which are required in his/her particular case, although normally they are just a few. The fully automated generation greatly facilitates the task of defining correspondences in UWE models.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3">Well-formed rules</head><p>Apart from specifying the correspondences between model elements, any proper multiview specification of a system should also allow the specification of required correspondences, which describe the well-formed rules that the set of correspondences between elements of views should obey <ref type="bibr" target="#b12">[13]</ref>. For example, UWE requires that every anchor of the presentation view should be related to a navigationLink or pro-cessLink of the navigation view by a subsets correspondence. This means that for a UWE specification to be correct, the set of correspondences should include one of these correspondences for every element in the presentation view.</p><p>In our proposal, this is expressed by a set of OCL constraints on the set of correspondences. They can be checked by any OCL engine, e.g., the MagicDraw validation engine that comes with some of its latest versions, or with any external OCL tool. In any case, validating these well-formed rules over the set of correspondences falls outside the scope of this paper, as it happens with the validation of the well-formed rules of the view elements (i.e., the intra-view consistency).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Synchronization</head><p>Synchronization of the different views of a model can be performed once inconsistencies in the views are detected. Inconsistencies can be found by checking that correspondences are valid for the existing model elements. If not, the synchronization tool proposes changes with the objective to achieve synchronized views again.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.1">Correspondence Model</head><p>We have mentioned above that correspondences between the related elements in separate views are modeled by UML dependencies, stereotyped according to the kind of semantics we want to impose to the correspondence. UML dependencies provide a very convenient mechanism for drawing correspondences in a easy manner, and for visualizing them. However, UML dependencies are quite volatile, in the sense that the user may easily delete or modify them without the system being aware of the changes. For example, if the user removes one of the classes related by a dependency, the dependency is also removed, which may not be completely correct. This is why we need some kind of more persistent representation of correspondences, which in our approach is provided by classes stereotyped CorrespondenceClass . Each UML dependency that represents a correspondence is then associated to one of these classes.</p><p>Correspondence classes are managed by the reSynch tool in a transparent way, and therefore the user is completely unaware of them. Thus, if the user decides to delete or modify one UML dependency, the tool is able to know about the change. More precisely, the tool checks that every UML dependency has its associated correspondence class. In case of conflicts the tool reacts as follows:</p><p>-If there is a UML dependency and it has a correspondence class with the same name and information, no action is needed (everything is Ok). -If there is a UML dependency with no associated correspondence class, it is assumed that the dependency has been added by the user, and therefore the correspondence class is created and added to the model. -If there is a correspondence class with no associated UML dependency, it means that the user has deleted the UML dependency or any of the associated classes.</p><p>• If the two related classes exist but the UML dependency does not, the correspondence class is removed. • If the supplier class exists but neither the client nor the UML dependency do, the correspondence class is also removed. • If the client class exists but neither the supplier nor the UML dependency do, a warning is raised because the user seems to have removed the supplier and left the clients with a "dangling" dependency to it.  Fig. <ref type="figure" target="#fig_6">8</ref> shows the specification of the stereotype for correspondence classes, and Fig. <ref type="figure" target="#fig_7">9</ref> shows an example of the correspondence class associated to the top correspondence of Fig. <ref type="figure" target="#fig_5">7</ref>. As we can see, we have also simulated that the designer has decided to change the content model, renaming class Address to C Address -probably without being aware that there was a class in the navigation model that was related to it (maybe even more elements in other models, not only that one). This has produced an inconsistency in the models, which could go easily unnoticed if no explicit correspondences have been specified. And even in this case, the propagation of changes to re-synchronize the model is not an easy task if it has to be manually performed. This is why we need the automated process for change propagation described in Sec. 2.</p><p>The synchronization process consists in the definition of the correspondences andin case of need of synchronization -the automatic annotation of the model elements of the different views. The annotation is supported by a a set of UML stereotypes. Fig. <ref type="figure" target="#fig_8">10</ref> shows the UML profile used for annotating the models, while Fig. <ref type="figure" target="#fig_9">11</ref> shows an example of its application after the synchronization process (using the example model of Fig. <ref type="figure" target="#fig_7">9</ref>).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.2">Tool Support for Synchronizing Models</head><p>The tool we have developed is called reSynch <ref type="bibr" target="#b13">[14]</ref> and supports the process depicted in Fig. <ref type="figure" target="#fig_1">2</ref>. It uses the Beanbag tool <ref type="bibr" target="#b1">[2]</ref> to detect and resolve the inconsistencies found. Beanbag is a very generic and powerful synchronization engine, which handles general data dictionaries. Thus, the UWE models need to be transformed into the data dictionaries that Beanbag is able to deal with. This is done by a set of ATL transformations, which extract the relevant information from the models, and express it using two dictionaries: one for the model elements involved in the correspondences, and other for the  Then the Beanbag engine is executed using a set of synchronizing functions, one for each type of correspondence. These functions are defined in a Beanbag program and then compiled into a synchronizer. For instance, the Beanbag function we have defined for sameName correspondences is the following: sameName ( entity1 , entity2 ) { entity1 . " name" = entity2 . " name " ; } Please note that the direction of the change propagation (i.e., which element is the supplier and which one is the client) is deduced from the order in which the elements are listed in the corresponding entry in the dictionary of correspondences.</p><p>The result of the Beanbag execution is another Beanbag dictionary, with the changes required to synchronize both models. Such changes include additions, deletions and modifications to the data dictionaries. In our example, what we get is the following: { "Navigation : : Address"−&gt;{name−&gt;"C_Address " } , } Finally, this information is used to annotate the UWE models with the required changes to restore the synchronization, producing in this case the model shown in Fig. <ref type="figure" target="#fig_9">11</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Related Work</head><p>There is a large number of approaches related to our work. In the first place we have the works on synchronizing artifacts in software engineering, mostly influenced by the original works on multi-view consistency mechanisms <ref type="bibr" target="#b14">[15,</ref><ref type="bibr" target="#b15">16]</ref>. These studies use a generic representation of modifications and rely on users to write code to handle each type of modification in each type of view. This idea has influenced later efforts on general model synchronization frameworks, such as <ref type="bibr" target="#b16">[17,</ref><ref type="bibr" target="#b17">18,</ref><ref type="bibr" target="#b18">19]</ref>. Although in principle these frameworks allow the definition of correspondences between views and the propagation of changes, they all try to detect inconsistencies and solve them by changing the affected elements, but without any well-defined underlying architectural framework that allows the precise and explicit specification of viewpoints, views, and correspondences between them. In addition, it is unrealistic to suppose that all inconsistencies can be automatically solved. This is the main problem of many proposals that try to resolve views inconsistencies by automatically synchronizing the models using model transformations (e.g. <ref type="bibr" target="#b1">[2]</ref>). In addition, these proposals also suffer the intrinsic problems of model transformations when used for inconsistency solving, as discussed in <ref type="bibr" target="#b19">[20,</ref><ref type="bibr" target="#b20">21]</ref>.</p><p>The approach of Cicchetti and Di Ruscio <ref type="bibr" target="#b21">[22]</ref> is similar to our approach, as it establishes relationships between viewpoints of the models of a Web application. They provide a weaving model for that. The difference to our approach lies in the semantics of their relationships, which are used to integrate the different viewpoints. The relationships of our approach, instead, have the objective to allow the propagation of changes in case of model evolution.</p><p>Ultimately, a key issue to realize and implement change management and propagation is the availability of synchronizing tools that can detect the changes and show them to the designer, so that he can decide what to do, and how to proceed. This may imply propagating the changes either forwards, backwards, or even changing the correspondences. In this respect, the most inspiring work for our proposal are the works (and tools) by Benjamin Pierce and his colleagues in the Harmony group, who have explored bidirectional transformations extensively in the context of trees <ref type="bibr" target="#b22">[23]</ref>, and more recently in the context of relational databases <ref type="bibr" target="#b23">[24]</ref>. In particular, Unison <ref type="bibr" target="#b24">[25]</ref> is a filesynchronization tool for Unix and Windows which allows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other. Our proposal aims at providing similar functionality, but for elements in different views related through correspondences, instead of files in different hosts related by paths and names, which is a simpler case.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7">Conclusion and Future Work</head><p>Software development is increasingly shifting its focus from coding to modeling, thus evolution management techniques tend to encompass also the evolution of model-based artifacts. In particular, in multi-view design, model elements in a view are related by many-to-many correspondences to other view elements and thus any change propagation mechanism should manage the conflicting effects that changes may cause in the whole system.</p><p>In this paper we have proposed a synchronization process, a notation for the explicit specification of correspondences between UWE views, and have briefly presented a tool for synchronizing these related views under the presence of changes to the view elements or to the set of correspondences. The tool, called reSynch, is currently in alpha version and can be downloaded from <ref type="bibr" target="#b13">[14]</ref>. The advantages maintaining the views synchronized is obviously the guarantee of consistency of the models. The main difficulty is the management of the information related to the correspondences. The overhead can be alleviated by an automated process and tool support, as shown in this paper.</p><p>There are many different lines of work that we plan to address in the very short term. Firstly we want to fully integrate the tool with MagicUWE, the UWE plugin for MagicDraw <ref type="bibr" target="#b25">[26]</ref>. Secondly, we want to extend the validation process to take into account the well-formed rules that the set of UWE correspondences should fulfill. We also plan to apply our approach to real problems of higher complexity. Finally, we want to enhance the current visualization facilities of the annotated models so that the affected elements after the synchronization process change their color and appearance when visualized with MagicDraw.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Consistency checking process detailing the "Check with Beanbag" action of Fig. 1.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 3 .</head><label>3</label><figDesc>Fig. 3. Content model of the AddressBook example.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 4 .Fig. 5 .</head><label>45</label><figDesc>Fig. 4. UWE: Navigation model of the AddressBook example.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Fig. 6 .</head><label>6</label><figDesc>Fig. 6. The Synch and UWESynch Profiles (excerpt).</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Fig. 7 .</head><label>7</label><figDesc>Fig. 7. Example of correspondence specifications using our profile.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Fig. 8 .</head><label>8</label><figDesc>Fig. 8. The stereotype for correspondence classes.</figDesc><graphic coords="11,195.28,207.10,224.70,115.77" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_7"><head>Fig. 9 .</head><label>9</label><figDesc>Fig. 9. Example of correspondence class specification using our profile.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_8"><head>Fig. 10 .</head><label>10</label><figDesc>Fig. 10. Profile for annotating de-synchronized models.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_9"><head>Fig. 11 .</head><label>11</label><figDesc>Fig. 11. Example of annotated model after synchronization checks are performed.</figDesc><graphic coords="12,186.64,233.57,242.00,61.42" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 .</head><label>1</label><figDesc>Examples of common correspondences in UWE.</figDesc><table><row><cell>Supplier</cell><cell>Client</cell><cell>Correspondence type</cell></row><row><cell>Content::Class</cell><cell>Navigation::NavigationClass</cell><cell>sameName</cell></row><row><cell>Content::Class</cell><cell>Navigation::ProcessClass</cell><cell>sameName</cell></row><row><cell>Content::Association</cell><cell>Navigation::Index</cell><cell>validIndex</cell></row><row><cell>Navigation::Link</cell><cell>Presentation::Anchor</cell><cell>validAnchor</cell></row><row><cell>BusinessProcess::UserAction</cell><cell>Presentation::Button</cell><cell>validButton</cell></row></table></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Acknowledgements. We would like to thank Yingfei Xiong and the people at the Japan National Institute of Informatics for their help and support with Beanbag. We would also like to thank the anonymous reviewers for their insightful comments and suggestions, that significantly helped to improve the paper. This work has been supported by the DFG Project MAEWA II, WI 841/7-2, the EU FET-GC2 IP project SENSORIA (IST-2005-016004) and the Spanish projects TIN2008-03107, TIN2008-00889-E and P07-TIC-03184.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<author>
			<persName><forename type="first">G</forename><surname>Rossi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Pastor</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Schwabe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Olsina</surname></persName>
		</author>
		<title level="m">Web Engineering: Modelling and Implementing Web Applications</title>
				<imprint>
			<publisher>Springer Verlag</publisher>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">Beanbag: Operation-based Synchronization with Intra-relations</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Xiong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Zhao</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">H</forename><surname>Song</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Mei</surname></persName>
		</author>
		<idno>GRACE-TR-2008-04</idno>
		<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
		<respStmt>
			<orgName>Center for Global Research in Advanced Software Science and Engineering, National Institute of Informatics, Japan</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical Report</note>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m">IEEE: Recommended Practice for Architectural Description of Software-Intensive Systems</title>
				<meeting><address><addrLine>New York, USA</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2000">2000</date>
		</imprint>
	</monogr>
	<note>IEEE Std. 1471</note>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Black Cats and Coloured Birds What do Viewpoint Correspondences Do?</title>
		<author>
			<persName><forename type="first">P</forename><surname>Linington</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the 4th International Workshop on ODP and Enterprise Computing (WODPEC 2007)</title>
				<meeting>of the 4th International Workshop on ODP and Enterprise Computing (WODPEC 2007)<address><addrLine>Maryland, US</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Digital Library</publisher>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<idno>ITU-T X.906</idno>
		<title level="m">ISO/IEC: Information technology -Open distributed processing -Use of UML for ODP system specifications</title>
				<meeting><address><addrLine>Geneva, Switzerland</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
	<note>ISO and ITU-T. ISO/IEC FDIS 19793</note>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Modeling ODP Correspondences using QVT</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">R</forename><surname>Romero</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Moreno</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Vallecillo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of MDEIS&apos;06</title>
				<meeting>of MDEIS&apos;06</meeting>
		<imprint>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="15" to="26" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Change management in multiviewpoint systems using ASP</title>
		<author>
			<persName><forename type="first">R</forename><surname>Eramo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Pierantonio</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">R</forename><surname>Romero</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Vallecillo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of WODPEC 2008</title>
				<meeting>of WODPEC 2008<address><addrLine>Munich, Germany</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="19" to="28" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">UML-Based Web Engineering: An Approach Based on Standards</title>
		<author>
			<persName><forename type="first">N</forename><surname>Koch</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Knapp</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Zhang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Baumeister</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Web Engineering: Modelling and Implementing Web Applications</title>
				<editor>
			<persName><forename type="first">L</forename><surname>Olsina</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">O</forename><surname>Pastor</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">G</forename><surname>Rossi</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Schwabe</surname></persName>
		</editor>
		<meeting><address><addrLine>Berlin</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="volume">12</biblScope>
			<biblScope unit="page" from="157" to="191" />
		</imprint>
	</monogr>
	<note>Human-Computer Interaction Series</note>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<idno>OMG doc. formal/07-02-05</idno>
		<title level="m">OMG: Unified Modeling Language 2.1.1 Superstructure Specification</title>
				<meeting><address><addrLine>Needham (MA), USA</addrLine></address></meeting>
		<imprint>
			<publisher>OMG</publisher>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<ptr target="http://www.eclipse.org/m2m/atl/,lastvisited20." />
		<title level="m">The Eclipse Foundation: ATL: The ATLAS Model Transformation Language</title>
				<imprint>
			<date type="published" when="2009">3.2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<title level="m" type="main">The Simple Address Book Modeling Example in UWE</title>
		<author>
			<persName><forename type="first">M</forename><surname>Busch</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Koch</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Kroiss</surname></persName>
		</author>
		<ptr target="http://www.pst.ifi.lmu.de/projekte/uwe/exampleSimpleAddressBook.html" />
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<idno>OMG doc. ptc/05-11-01</idno>
		<title level="m">OMG: MOF QVT Final Adopted Specification</title>
				<imprint>
			<publisher>Object Management Group</publisher>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Realizing correspondences in multi-viewpoint specifications</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">R</forename><surname>Romero</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Vallecillo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of EDOC 2009</title>
				<meeting>of EDOC 2009<address><addrLine>Auckland, New Zealand</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE CS Press</publisher>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<author>
			<persName><forename type="first">D</forename><surname>Ruiz-González</surname></persName>
		</author>
		<ptr target="http://atenea.lcc.uma.es/index.php/Portada/Resources/reSynch" />
		<title level="m">The reSynch Tool</title>
				<imprint>
			<date type="published" when="2009-06-01">Jun 1,2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Inconsistency Handling in Multi-perspective Specifications</title>
		<author>
			<persName><forename type="first">A</forename><surname>Finkelstein</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">M</forename><surname>Gabbay</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Hunter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Kramer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Nuseibeh</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of ESEC&apos;93</title>
				<meeting>of ESEC&apos;93<address><addrLine>London, UK</addrLine></address></meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="1993">1993</date>
			<biblScope unit="page" from="84" to="99" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Inconsistency Management for Multiple-view Software Development Environments</title>
		<author>
			<persName><forename type="first">J</forename><surname>Grundy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hosking</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><forename type="middle">B</forename><surname>Mugridge</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Trans. Softw. Eng</title>
		<imprint>
			<biblScope unit="volume">24</biblScope>
			<biblScope unit="issue">11</biblScope>
			<biblScope unit="page" from="960" to="981" />
			<date type="published" when="1998">1998</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Tracing Evolution Changes of Software Artifacts through Model Synchronization</title>
		<author>
			<persName><forename type="first">I</forename><surname>Ivkovic</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Kontogiannis</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of ICSM&apos;04</title>
				<meeting>of ICSM&apos;04</meeting>
		<imprint>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page" from="252" to="261" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Instant and Incremental Transformation of Models</title>
		<author>
			<persName><forename type="first">S</forename><surname>Johann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Egyed</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of ASE&apos;04, IEEE Computer Society</title>
				<meeting>of ASE&apos;04, IEEE Computer Society</meeting>
		<imprint>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page" from="362" to="365" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<analytic>
		<title level="a" type="main">Maintaining coherence between models with distributed rules: from theory to Eclipse</title>
		<author>
			<persName><forename type="first">P</forename><surname>Bottoni</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Parisi-Presicce</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Pulcini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Taentzer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Electron. Notes Theor. Comput. Sci</title>
		<imprint>
			<biblScope unit="volume">211</biblScope>
			<biblScope unit="page" from="87" to="98" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<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">Proc. of MoDELS&apos;07</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<meeting>of MoDELS&apos;07</meeting>
		<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="b20">
	<analytic>
		<title level="a" type="main">Bidirectional Synchronization of Multiple Views of Software Models</title>
		<author>
			<persName><forename type="first">M</forename><surname>Garcia</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">CEUR Workshop Proceedings</title>
				<imprint>
			<date type="published" when="2008">2008</date>
			<biblScope unit="volume">324</biblScope>
			<biblScope unit="page" from="7" to="19" />
		</imprint>
	</monogr>
	<note>Proc. of DSML&apos;08</note>
</biblStruct>

<biblStruct xml:id="b21">
	<analytic>
		<title level="a" type="main">Decoupling Web Application Concerns through Weaving Operations</title>
		<author>
			<persName><forename type="first">A</forename><surname>Cicchetti</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">D</forename><surname>Ruscio</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Science of Computer Programming</title>
		<imprint>
			<biblScope unit="volume">70</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="62" to="86" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
	<note>Elsevier</note>
</biblStruct>

<biblStruct xml:id="b22">
	<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>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>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b23">
	<analytic>
		<title level="a" type="main">Relational Lenses: A Language for updatable Views</title>
		<author>
			<persName><forename type="first">A</forename><surname>Bohannon</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">J</forename><forename type="middle">A</forename><surname>Vaughan</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of PODS&apos;2006</title>
				<meeting>of PODS&apos;2006</meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="338" to="347" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b24">
	<monogr>
		<ptr target="http://www.cis.upenn.edu/˜bcpierce/unison,lastvisited20." />
		<title level="m">The Harmony Group: The Unison File Synchronizer</title>
				<imprint>
			<date type="published" when="2009">3.2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b25">
	<monogr>
		<ptr target="http://uwe.pst.ifi.lmu.de/toolMagicUWE.html" />
		<title level="m">Programming and Software Engineering: UWE -MagicUWE</title>
				<imprint>
			<date type="published" when="2009-05-22">22.5.2009</date>
		</imprint>
		<respStmt>
			<orgName>LMU -Institute for Informatics</orgName>
		</respStmt>
	</monogr>
</biblStruct>

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