<?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">Model Transformations powered by Rewriting Logic</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Francisco</forename><forename type="middle">J</forename><surname>Lucas</surname></persName>
							<email>fjlucas@um.es</email>
						</author>
						<author>
							<persName><forename type="first">Ambrosio</forename><surname>Toval</surname></persName>
							<email>atoval@um.es</email>
						</author>
						<author>
							<affiliation key="aff0">
								<orgName type="department">Department of Informatics</orgName>
								<orgName type="laboratory">Software Engineering Research Group</orgName>
								<orgName type="institution">Systems</orgName>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff1">
								<orgName type="institution">University of Murcia)</orgName>
								<address>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Model Transformations powered by Rewriting Logic</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">89F256C4FF5BF44BAF2DE8EB79B8D2C1</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T23:15+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>This paper shows a rigorous approach based on algebraic specications and rewriting logic which makes up for the lack of current transformation languages and oers a balanced rigour-versus-intuition framework for model transformation, focusing on the MDA-QVT standards. To illustrate this approach, an example and some formal applications of these specications are sketched.</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>In recent years, the profound impact of the Model Driven Architecture (MDA)</p><p>proposal <ref type="bibr" target="#b0">[1]</ref>, promoted by the OMG as architecture for software development, has meant that the model transformation becomes a very active research and development direction. Within this scope, OMG also published the QVT standard <ref type="bibr" target="#b1">[2]</ref>, a language for the specication of model transformations within the MDA scope. Since transformations guide the whole software development cycle, it is crucial to oer a precise and rigorous infrastructure, in order to help to verify and guarantee correctness of them. However, current implementations of transformations languages lack this necessary mathematical underpinning.</p><p>The aim of this short paper is: on the one hand, to show how a rigorous approach based on algebraic specication and rewriting logic <ref type="bibr" target="#b2">[3]</ref> can oer a suitable framework for model transformations; and on the other hand, to show how proving theoretical properties of transformations is possible if the transformation language or tool has a mathematical underpinning <ref type="bibr" target="#b3">[4]</ref>. Maude <ref type="bibr" target="#b4">[5]</ref> is the formal language used in this work. To illustrate this approach, the formal specications of two metamodels, and a transformation between them, have been created.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Model Transformation based on a Rewriting Logic Approach</head><p>The main idea of this work is to specify metamodels through OO Maude modules, and the transformation rules as rewriting rules that rewrite source model Partially nanced by the Spanish Ministry of Science and Technology, project DEDALO (Development of Quality Systems based on Models and Requirements) TIN2006-15175-C05-03 elements (represented as terms) into other target model elements. In this section, as well as explaining the main principles of this approach, we will illustrate it by means of an example of transformation from UML Class diagram to a RDBMS diagram (extracted from <ref type="bibr" target="#b1">[2]</ref>).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Metamodel Formalization</head><p>In QVT, model transformations are dened in terms of metamodels, existing source and target metamodels. Metamodel elements will be specied in Maude by means of the object oriented modules of Maude. Figure <ref type="figure" target="#fig_0">1</ref> summarizes the elements that make up the approach. This Figure shows the OMG standards' elements, the Maude elements and the relationship between them.  Analogously, the textual description of the simple RDBMS metamodel (taken from annex A of <ref type="bibr" target="#b1">[2]</ref>) will be formalized in Maude.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">QVT Relations Features in Maude</head><p>In this subsection, we analyze briey the basis of QVT Relations and how to formalize them by means of the strengths oered by Maude.</p><p>On the one hand, a transformation is expressed in QVT Relations by means of relations between metamodel elements. A relation declares constraints that must be satised by the two or more metamodels (or domains) that participate in the relation. Each domain establishes a pattern that must be matched with the candidate models in order to execute the transformation, known as object template expressions that are directly expressed in Maude, since this language oers pattern-matching in the simplication of terms. Regarding the specication of QVT transformations in Maude, they can be specied as rewriting rules that change and create the elements of the target model. Finally, constraints over the candidate models will be specied as conditions in the rewriting rules. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Applications in Practice</head><p>The main advantage of the use of this approach over other non-formal transformation techniques is that some applications can be carried out only dening Maude to infer if two particular models are equivalent using these rules.</p><p>If we dene a RDBMS model that is equivalent to the one in Figure <ref type="figure" target="#fig_1">2</ref>, Figure <ref type="figure" target="#fig_3">3</ref> (c) shows the Maude command that checks this equivalence. We ask Maude if it is possible to obtain the RDBMSdiagram model from the UMLdiagram model using the specied rules. This execution will nd a solution since the models are equivalent.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Conclusions</head><p>The research presented shows the feasibility of integrating formal techniques with current software engineering standards (MDA-QVT). This approach may be particularly useful in model-driven engineering processes to develop critical or error-prone high quality systems. The metamodel specications made in this approach oer a powerful way to verify type properties and the correctness of the models without losing the legibility and practicality of other transformation languages. Furthermore, in the formal framework proposed the transformations are represented as mathematical entities and we can take advantage of all the power of mathematical inference mechanisms. This allows us to infer information and to prove properties of the transformations.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Summary of the approach elements</figDesc><graphic coords="2,202.49,282.44,210.38,85.50" type="bitmap" /></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 shows an example of a simple UML diagram and how it is expressed by means of objects in Maude ; these objects are instances of Maude classes that appear in the lefthand side of the gure, as it was indicated in Figure 1.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Example of UML diagram and their corresponding Maude objects</figDesc><graphic coords="3,173.43,162.99,268.50,93.00" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 3 .</head><label>3</label><figDesc>Fig. 3. (a) and (b) Package to Schema ((a) adapted from [2]); (c) Maude comand to check if two models are equivalent</figDesc></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title/>
		<ptr target="http://www.omg.org/mda" />
	</analytic>
	<monogr>
		<title level="j">OMG: MDA Guide Version</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="issue">1</biblScope>
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<ptr target="http://www.omg.org/docs/ptc/07-07-07.pdf" />
		<title level="m">OMG: MOF QVT Final Adopted Specication</title>
				<imprint>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
	<note>Object Management Group</note>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Conditional rewriting logic as a unied model of concurrency</title>
		<author>
			<persName><forename type="first">J</forename><surname>Meseguer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Theoretical Computer Science</title>
		<imprint>
			<biblScope unit="volume">96</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="73" to="155" />
			<date type="published" when="1992">1992</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">A Taxonomy of Model Transformations</title>
		<author>
			<persName><forename type="first">T</forename><surname>Mens</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Czarnecki</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Van Gorp</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Int. Workshop on Graph and Model Transformation</title>
				<meeting><address><addrLine>Estonia</addrLine></address></meeting>
		<imprint>
			<publisher>GraMoT</publisher>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">3 Manual</title>
		<author>
			<persName><forename type="first">M</forename><surname>Clavel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Durán</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Eker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Lincoln</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Martí-Oliet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Meseguer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Talcote</surname></persName>
		</author>
		<ptr target="http://maude.csl.sri.com/" />
	</analytic>
	<monogr>
		<title level="m">Maude 2</title>
				<imprint>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

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