<?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">Automated Model Transformations Based on STRIPS Planning</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Old°ich</forename><surname>Nouza</surname></persName>
							<email>nouza@fj.cvut.cz</email>
							<affiliation key="aff0">
								<orgName type="department" key="dep1">Faculty of Nuclear Sciences and Physical Engineering</orgName>
								<orgName type="department" key="dep2">Department of Software Engineering in Economy</orgName>
								<orgName type="institution">Czech Technical University in</orgName>
								<address>
									<settlement>Prague</settlement>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Vojt¥ch</forename><surname>Merunka</surname></persName>
							<email>merunka@pef.czu.cz</email>
							<affiliation key="aff1">
								<orgName type="department">Faculty of Economics and Management</orgName>
								<orgName type="institution">Czech University of Life Sciences Prague</orgName>
							</affiliation>
							<affiliation key="aff2">
								<orgName type="department">Department of Information Engineering</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Miroslav</forename><surname>Virius</surname></persName>
							<email>virius@fj.cvut.cz</email>
							<affiliation key="aff3">
								<orgName type="department" key="dep1">Faculty of Nuclear Sciences and Physical Engineering</orgName>
								<orgName type="department" key="dep2">Department of Software Engineering in Economy</orgName>
								<orgName type="institution">Czech Technical University in</orgName>
								<address>
									<settlement>Prague</settlement>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Automated Model Transformations Based on STRIPS Planning</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">316291CFCE211E0DA5CC6677B3972057</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T17:58+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>automated model transformations</term>
					<term>modeling</term>
					<term>object oriented approach</term>
					<term>refactoring</term>
					<term>SBAT</term>
					<term>STRIPS planning</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>This paper deals with application of STRIPS planning in automated model transformations. Object oriented model is viewed as a state space containing possible models as states and elementary transformations as state transitions. A source model is represented by an initial state, a target model by a goal state. Automation of model transformation consists in nding a plan to reach a goal state in this state space.</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>Transformations play a key role in software engineering. Although there exist satisable solutions of automated transformations of models to text, the same cannot be said about transformations of models to models. This area is still in phase of research and exploring of possibilities <ref type="bibr" target="#b0">[1]</ref>.</p><p>According to the approaches of present implemented in several CASE tools, every model transformation requires application of the corresponding transformation rule with suitable parameters <ref type="bibr" target="#b2">[3,</ref><ref type="bibr" target="#b3">4,</ref><ref type="bibr" target="#b5">6,</ref><ref type="bibr" target="#b12">13]</ref> Unfortunately, as mentioned in <ref type="bibr" target="#b3">[4]</ref>, this approach has one big disadvantage, which is a low reusability. For every transformation that has no rule dened, it is necessary to either apply a composition of other rules, or dene a new transformation rule. In this paper, we introduce transformation engine named SBAT (STRIPS Based Transformation Engine) that does not require such steps.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Model Transformations</head><p>There are several ways how to dene model transformation. In this paper, we introduce the denition presented in <ref type="bibr" target="#b4">[5]</ref> and cited by <ref type="bibr" target="#b7">[8]</ref>:</p><p>A transformation is the automatic generation of a target model from a source model, according to a transformation denition. A transformation denition is a set of transformation rules that together describe how a model in the source language can be transformed into a model in the target language. A transformation rule is a description of how one or more constructs in the source language can be transformed into one or more constructs in the target language.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Classication of Transformations</head><p>Publication <ref type="bibr" target="#b7">[8]</ref> describes two criteria of classication of model transformations.</p><p>The rst one is a dierence of abstraction level of source and target models: In this paper, we focus more closely on refactoring.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Refactoring</head><p>There exist several ways how to dene refactoring. The denition presented in <ref type="bibr" target="#b6">[7]</ref> says that refactoring is an improvement of software system without changing its behavior. In other words, for the same input, the refactored software must return the same output as the original software. Detail information on refactoring is available in <ref type="bibr" target="#b1">[2]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Complex Refactorings and Primitive Refactorings</head><p>The idea of complex refactoring as composition of nite primitive (atomic) refactorings was rst published in <ref type="bibr" target="#b9">[10]</ref>, where formal denition of C++ code refactoring was discussed, and later in <ref type="bibr" target="#b11">[12]</ref>, where it was demonstrated on refactoring of UML models. We have used the same idea to construct the SBAT transformation engine.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">STRIPS Planning</head><p>Technical report <ref type="bibr" target="#b8">[9]</ref> denes STRIPS as following: STRIPS (STanford Research Institute Problem Solver) belongs to the class of problem solvers that search a space of world models to nd one in which a given goal is achieved. For any world model, we assume there exists a set of applicable operators each of which transforms the world model to some other world model. The task of the problem solver is to nd some composition of operators that transforms a given initial world model into one that satises some particular goal condition.</p><p>The STRIPS language is based on the calculus of rst-order predicate logic.</p><p>Formally, the STRIPS problem can be expressed by the following denitions: Denition 1. STRIPS problem is an ordered triple (I, O, G), where I is an initial state, O is a set of operators, and G is a goal state condition. Denition 2. Operator o (x) is dened as an ordered triple(P, A, D), whereP = (x) is an application condition, A = [A 1 (x) , . . . , A l (x)] is a set of formulas which become true after operator application, D = [D 1 (x) , . . . D m (x)] is a set of formulas which become false after operator application, x = (x 1 , . . . x n ) are free variables contained in formulas</p><formula xml:id="formula_0">P, A 1 , . . . , A l , D 1 , . . . D m , n ∈ N + , l, m ∈ N 0 . Elements of A are called add-eects, elements of D delete-eects. Denition 3. Let o (x 1 , . . . , x n ) = (P, A, D) ∈ O be operator. A transition func- tion o : (x 1 × x 2 × . . . × x n × S) → S, where S is a state set, is dened in the following way: o' (x 1 , . . . , x n , s) def = (s ∪ A) − D ∅ s P (1)</formula><p>A goal is to nd such list of operators applications, which cause transition for initial state to the state satisfying the goal state condition. More formally: Denition 4. State s m is a solution of problem (I, O, G), if there exists a list of operators applications o 1 h 1 , . . . , o m h m , where h i are vectors of constants, m ∈ N, and:</p><formula xml:id="formula_1">1. s 0 = I 2. (∀i ∈ m) s i = o i−1 h i−1 , s i−1 3. s m G If I G, then the solution, which is I in this case, is called trivial solution.</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">SBAT Transformation Engine</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.1">Requirements</head><p>Resulting from the facts on present state model transformation discussed in the introduction of this paper, we have decided to design a new transformation engine fullling the following requirements:</p><p>1. The engine will support model transformations such as refactoring.</p><p>2. The input of transformation process will be the source model and conditions of a target model.</p><p>3. The output of transformation process will be a target model, or information that the source model cannot be transformed to any model fullling the input conditions.</p><p>4. The source model and the target model will be consistent in light of behavior of modeled system. 5. The transformation process will be fully automatized, without need to specify transformation rules on input.</p><p>6. The engine will be universal and suciently reusable for wide scale of object models.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.2">Formal Denition of Object Model</head><p>In this paper, formal denition of object model is based on simplied metamodel of UML 2.0 class diagrams, in detail described in <ref type="bibr" target="#b10">[11]</ref>. Because of intended generality, we do not focus on implementation details, such as method parameters and bodies, access mode of class members, etc. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.2.1">Model as</head><formula xml:id="formula_2">C s ⊂ C − [Object, Client] is a nite set of classes of model in state s, in s ⊆ ((A ∪ F ) × C s ) is a binary relation named is in class dened as in s def = {(x, y) |x ∈ (Attr (y) ∪ M eth (y)) ∧ y ∈ C s } , (<label>2</label></formula><formula xml:id="formula_3">)</formula><p>where Attr (y) and M eth (y) are sets of attributes and methods respectively of class y,</p><formula xml:id="formula_4">super s ⊆ ((C s ∪ [Object]) × C s ) is a binary relation is superclass dened as super s def = {(x, y) |x = super (y) ∧ x, y ∈ C s } ,<label>(3)</label></formula><p>where super (y) means a superclass of y,</p><formula xml:id="formula_5">type s ⊆ (A × C s ) ∪ (F × (C s )) is a binary relation named is of type dened as type s def = {(x, y) |x = type (y) ∧ y ∈ C s } , (<label>4</label></formula><formula xml:id="formula_6">)</formula><p>where type (y) means a type of y,</p><formula xml:id="formula_7">send s ⊆ (F × (C s ∪ [Client]) × (A ∪ F ) × C s ) is a 4-ary relation named sends message dened as send s def = {(x, y, u, v) |(x, y) ∈ in s ∧ (∃w) ((u, w) ∈ in s ∧ (u ≺ w ∨ u = w)) ∧ x, Λ ∈ M eth (y)} , (<label>5</label></formula><formula xml:id="formula_8">)</formula><p>where lambda-expression Λ contains message sending o u, where o is an instance of class w.</p><p>The following conditions must be fullled: in the class hierarchy, each attribute appears at most once, so <ref type="bibr" target="#b5">(6)</ref> each attribute is of some type, so</p><formula xml:id="formula_9">(∀x ∈ A) (∀y, z ∈ C) (in s (x, y) ∧ in s (x, z) → ¬ (y ≺ z) ∧ ¬ (z ≺ y)) ,</formula><formula xml:id="formula_10">(∀x ∈ A) (∃y ∈ C s ) (type s (x, y)) ,<label>(7)</label></formula><p>each attribute is of at most one type and each method has at most one return value type, so </p><formula xml:id="formula_11">(∀x ∈ (A ∪ F )) (∀y, z ∈ C s ) (type s (x, y) ∧ type s (x, z) → y = z) .</formula><formula xml:id="formula_12">i : M × E ki → M , (∀i ∈ n) (k i ∈ N) is a set of transfor- mation rules.</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.3">Model Transformation Problem</head><p>Each model transformation requires answers to the following questions <ref type="bibr" target="#b7">[8]</ref>:</p><p>1. What needs to be transformed?</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">What will be the result of the transformation?</head><p>To nd answers, we have to formulate the transformation problem and set the principle of its solution. This can be done by several ways, we have decided to apply the STRIPS planning.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.4">STRIPS Planning application</head><p>Let's assume any nite subset B of object universal, containing elements of all possible model states. To formulate STRIPS problem (I, O, G) for model transformation, we must describe the model states and transformation rules using rst-order predicate logic calculus. For this purpose, we dene predicates shown in table <ref type="table" target="#tab_1">1</ref> </p><formula xml:id="formula_13">inM odel (c) c ∈ Cs class c is not in model outOf M odel (c) c ∈ (B − Cs) attribute a is in class c attrInClass (a, c) (a, c) ∈ ins attribute a is not in class c attrOutOf Class (a, c) ¬ ((a, c) ∈ ins) ∧ a ∈ (B ∩ A) method µ is in class c methInClass (µ, c) (µ, c) ∈ ins method µ is not in class c methOutOf Class (µ, c) ¬ ((µ, c) ∈ ins) ∧ µ ∈ (B ∩ F )</formula><p>attribute a is of type       </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.4.2">Formulation of Goal State Condition</head><p>A goal state condition G is dened by the formula that is true in any goal state.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.4.3">Formulation of Operator Set</head><p>The set of operators O is dened identically for each particular problem, because it represents a set of primitive refactorings. The complete denition of the operator set is described in table 3 in appendix. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.5">Example</head><p>The goal state condition is the following: G =inM odel (Element) ∧ attrInClass (name, Element) ∧ attrInClass (owner, Element) ∧ superClass (Element, F ile) ∧ superClass (Element, F odler) <ref type="bibr" target="#b9">(10)</ref> The STRIPS planner reaches the goal state by application of satisable operators (see table <ref type="table" target="#tab_3">2</ref>). </p><p>A class model in UML notation corresponding to the goal state is shown in g. 2.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Conclusion and Future Work</head><p>In this paper we have introduced SBAT transformation engine based on STRIPS planning system. This engine automates refactoring of the given source model to a target model fullling the input condition.</p><p>The main asset of SBAT engine for practice is a contribution to an improvement of automation of object model transformations, which consequently would implicate saved human resources for software projects. Then, these resources could be allocated for example on software debugging or testing tasks, rather than on model transformation ones. Another asset should be a theoretical background for research activities in the area of model transformations.   </p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>Horizontal transformation A transformation where source and target models have the same level of abstraction. A typical example is refactoring. Vertical transformation A transformation where source and target models have a dierent level of abstraction. A typical example is renement. The second classication criteria is a dierence of modeling languages in which the source and targets models are expressed: Endogenous transformation A transformation where source and target models are expressed in the same language. Typical examples are refactoring and normalization. Exogenous transformation A transformation where source and target models are expressed in dierent languages. Typical examples are code generation and reverse engineering.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Denition 6 .</head><label>6</label><figDesc>Model is a state space (M, Φ), where M is a nite set of model states and Φ = n i=1 ϕ</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>class c is superclass of dsuperClass 2 .</head><label>2</label><figDesc>(c, d) (c, d) ∈ supers class c is a parent of d parent (c, d) c ≺ d method µof class c sends messageη to objects of class d sending (µ, c, η, d) (µ, c, η, d) ∈ sends 5.4.1 Initial State Formulation Let m I = (C I , in I , super I , type I , send I ) be a model in initial state. We construct initial state I of STRIPS problem by the following steps: 1. Put I := ∅. Add formulas about existence of classes in model: a) (∀c ∈ C I ) put (I := I ∪ [inM odel (c)]) and b) (∀c ∈ (B − C I )) put (I := I ∪ [outOf M odel (c)]).</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>3 .</head><label>3</label><figDesc>Add formulas about class attributes: a) (∀ (a, c) ∈ (in I ∩ (B ∩ A, C I ))) put (I := I ∪ attrInClass (a, c)) and b) (∀ (a, c) ∈ ((B ∩ A, B ∩ C) − in I )) put (I := I ∪ attrOutOf Class (a, c)).</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>4 .</head><label>4</label><figDesc>Add formulas about class methods: a) (∀ (µ, c) ∈ (in I ∩ (B ∩ F, C I ))) put (I := I ∪ methInClass (µ, c)) and b) (∀ (µ, c) ∈ ((B ∩ F, B ∩ C) − in I )) put (I := I ∪ methOutOf Class (µ, c)).</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>5 .</head><label>5</label><figDesc>Add formulas about inheritance: (∀ (c, d) ∈ super I ) put (I := I ∪ superClass (c, d)).</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>6 .</head><label>6</label><figDesc>Add formulas about attribute types and return value types of methods: a) (∀ (a, c) ∈ (type I ∩ (B ∩ A, C I ))) put (I := I ∪ hasT ype (a, c)) and b) (∀ (µ, c) ∈ (type I ∩ (B ∩ F, C I ))) put (I := I ∪ hasT ype (µ, c)).</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_7"><head>7 .</head><label>7</label><figDesc>Add formulas about message sending: (∀ (a, c, b, d) ∈ send I ) put (I := I ∪ sending (a, b, c, d)).</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_8"><head>5. 5 . 1 Fig. 1 .</head><label>511</label><figDesc>Fig. 1. File system class model</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_9"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. File system as Composite design pattern</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_10"><head></head><label></label><figDesc>hasRetT ype (µ, t) Change superclass b of class a to c Declaration changeSup(a, b, c)Condition inM odel (c) ∧ superClass (b, a)∧(¬parent (a, c)) ∧ ∀ (x, u, v, w) ((¬superClass (x, c)) ∧ (¬superClass (x, b)) ∨ (¬sending (v, w, u, x)) ∧ (¬sending (u, x, v, w)))Add-eectssuperClass (c, a) Delete-eects superClass (b, a) Move attribute a from class c to its all subclasses b1, . . . , bn Declaration attrDown (a, c, (b1, . . . , bn)) Condition attrInClass (a, c) ∧ (∀x) (x = b1 ∨ . . . ∨ x = bn ∨¬superClass (c, x)) ∧ (∀x, y) ¬sending (x, y, a, c) Add-eects attrOutOf Class (a, c) (∀i ∈ n) attrInClass (a, bi) Delete-eects attrInClass (a, c) (∀i ∈ n) attrOutOf Class (a, bi) Move attribute a to class c from all its subclasses b1, . . . , bn Declaration attrUp (a, c, (b1, . . . , bn)) Condition (attrInClass (a, x) ∨ ¬superClass (c, x)) ∧ (∀x) ((x = b1 ∨ . . . ∨ x = bn) ∨¬superClass (c, x)) Add-eects attrInClass (a, c) (∀i ∈ n) attrOutOf Class (a, bi) Delete-eects attrOutOf Class (a, c) (∀i ∈ n) attrInClass (a, bi)</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>State Space For our purposes we use the primitive refactoring composition mentioned earlier. For this reason, we dene model as a state space, where state set represents model in all possible states and state transitions represent primitive refactorings. Denition 5. Let C be a class universe, A attribute universe, and F method universe. LetObject, Client ∈ C be classes, where ∀ (x ∈ C − [Object]) (Object ≺ c), which means that Object is parent of all other classes and Client represent a client class, whose object sends messages to objects of classes in model. Let be empty value. Model state s is an ordered 5-tuple (C s , in s , super s , type s , send s ),</figDesc><table><row><cell>where</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 1 .</head><label>1</label><figDesc>. Predicates for STRIPS problem formulation in SBAT engine</figDesc><table><row><cell>Predicate</cell><cell>Declaration</cell><cell>Denition</cell></row><row><cell>class c is in model</cell><cell></cell><cell></cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head>Table 2 .</head><label>2</label><figDesc>List of operators application to reach the goal state Operator application Description Add class Element to the model. changeSup (F ile, Object, Element) Change superclass Object of class F ile to Element. changeSup (F older, Object, Element) Change superclass Object of class F odler to Element. Move attribute name to class Element from its subclasses F ile and F older. attrU p (owner, Element, F ile, F older) Move attribute owner to class Element from its subclasses F ile and F older.</figDesc><table><row><cell>addClass (Element)</cell></row><row><cell>attrU p (name, Element, F ile, F older)</cell></row><row><cell>The goal state is as follows:</cell></row><row><cell>Goal = [inM odel (F older) , inM odel (F ile) ,</cell></row><row><cell>inM odel (String) , inM odel (Element) ,</cell></row><row><cell>attrInClass (name, Element) , attrInClass (owner, Element) ,</cell></row><row><cell>attrOutOf Class (name, F older) ,</cell></row><row><cell>attrOutOf Class (owner, F older) ,</cell></row><row><cell>attrOutOf Class (name, F ile) , attrOutOf Class (owner, F ile) ,</cell></row><row><cell>superClass (Element, F ile) , superClass (Element, F older) ,</cell></row><row><cell>hasT ype (owner, F older) , hasT ype (name, String) ,</cell></row><row><cell>sending (Client, main, F older, name) ,</cell></row><row><cell>sending (Client, main, F older, owner) ,</cell></row><row><cell>sending (Client, main, F ile, name) ,</cell></row><row><cell>sending (Client, main, F ile, owner)]</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_4"><head></head><label></label><figDesc>Change type t of attribute a to u</figDesc><table><row><cell>Declaration</cell><cell>changeAtrrT ype (a, t, u)</cell></row><row><cell>Condition</cell><cell>hasT ype (a, t)∧super (u, t)</cell></row><row><cell>Add-eects</cell><cell>hasT ype (a, u)</cell></row><row><cell>Delete-eects</cell><cell>hasT ype (a, t)</cell></row><row><cell>Change type t of</cell><cell></cell></row><row><cell>values returned by</cell><cell></cell></row><row><cell>method µ to</cell><cell></cell></row></table><note>u Declaration changeM ethT ype (µ, t, u) Condition hasRetT ype (µ, t)∧super (u, t) Add-eects hasRetT ype (µ, u) Delete-eects</note></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgment</head><p>The authors would like to acknowledge the support of the research grant project SGS10/094 of the Czech Ministry of Education, Youth and Sports.</p></div>
			</div>

			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Appendix: Primitive Refactorings as STRIPS Operators</head><p>Add-eects </p></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Feature-based survey of model transformation approaches</title>
		<author>
			<persName><forename type="first">K</forename><surname>Czarnecki</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Helsen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IBM Systems Journal</title>
		<imprint>
			<biblScope unit="volume">45</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="621" to="645" />
			<date type="published" when="2006">2006. 2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<author>
			<persName><forename type="first">M</forename><surname>Fowler</surname></persName>
		</author>
		<title level="m">Refactoring. Addison-Wesley</title>
				<imprint>
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Automating Change Evolution in Model-Driven Engineering</title>
		<author>
			<persName><forename type="first">J</forename><surname>Gray</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Lin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Zhang</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Computer</title>
		<imprint>
			<biblScope unit="volume">31</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page">51</biblScope>
			<date type="published" when="2006">2006. 2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">Model Transformation Techniques</title>
		<author>
			<persName><forename type="first">J-M</forename><surname>Jézequel</surname></persName>
		</author>
		<ptr target="http://modelware.inria.fr/static_pages/slides/ModelTransfo.pdf" />
		<imprint>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">G</forename><surname>Kleppe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Warmer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Bast</forename><forename type="middle">W</forename></persName>
		</author>
		<title level="m">MDA Explained: The Model Driven Architecture: Practice and Promise</title>
				<meeting><address><addrLine>Boston (MA, USA</addrLine></address></meeting>
		<imprint>
			<publisher>Addison-Wesley Longman Publishing Co., Inc</publisher>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page">170</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">A model transformation approach to automatic model construction and evolution</title>
		<author>
			<persName><forename type="first">Lin Y Amd</forename><surname>Gray</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 20th IEEE/ACM international Conference on Automated Software Engineering</title>
				<meeting>the 20th IEEE/ACM international Conference on Automated Software Engineering</meeting>
		<imprint>
			<date type="published" when="2005">2005</date>
			<biblScope unit="page" from="448" to="451" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Composition of UML Described Refactoring Rules</title>
		<author>
			<persName><forename type="first">S</forename><surname>Markovic</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">OCL and Model Driven Engineering, UML 2004 Conference Workshop</title>
				<imprint>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page" from="45" to="59" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<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><forename type="middle">V</forename><surname>Gorp</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Language Engineering for Model-Driven Software Development, ser. Dagstuhl Seminar Proceedings. Internationales Begegnungs-und Forschungszentrum für Informatik (IBFI)</title>
				<meeting><address><addrLine>Germany</addrLine></address></meeting>
		<imprint>
			<publisher>Dagstuhl</publisher>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title level="m" type="main">STRIPS: A new approach to the application of theroem proving to problem solving</title>
		<author>
			<persName><forename type="first">N</forename><forename type="middle">J</forename><surname>Nilson</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">E</forename><surname>Fikes</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1970">1970</date>
			<biblScope unit="page">34</biblScope>
			<pubPlace>Menlo Park (California</pubPlace>
		</imprint>
		<respStmt>
			<orgName>Standford Research Institute</orgName>
		</respStmt>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<title level="m" type="main">Refactoring Object-Oriented Frameworks</title>
		<author>
			<persName><forename type="first">W</forename><surname>Opdyke</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1992">1992</date>
			<biblScope unit="page">197</biblScope>
			<pubPlace>Champaign, (IL, USA</pubPlace>
		</imprint>
		<respStmt>
			<orgName>University of Illinois at Urbana-Champaign</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">PhD. thesis</note>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<idno>.2. 226 p</idno>
		<ptr target="onlineatwww.omg.org" />
		<title level="m">Object Management Group (OMG): OMG Unied Modeling Language (OMG UML), Infrastructure: Version 2</title>
				<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
	<note>Available</note>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Refactoring UML Models</title>
		<author>
			<persName><forename type="first">G</forename><surname>Sunyé</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Pollet</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Le Traon</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J-M</forename><surname>Jézéquel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 4th International Conference on The Unied Modeling Language, Modeling Languages, Concepts, and Tools</title>
				<meeting>the 4th International Conference on The Unied Modeling Language, Modeling Languages, Concepts, and Tools<address><addrLine>London (UK</addrLine></address></meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2001">2001</date>
			<biblScope unit="page" from="134" to="148" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Generic and Domain-Specic Model Refactoring using a Model Transformation Engine</title>
		<author>
			<persName><forename type="first">J</forename><surname>Zhang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Lin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Gray</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Volume II of Research and Practice in Software Engineering</title>
		<imprint>
			<biblScope unit="page" from="199" to="218" />
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

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