<?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">Inconsistency Detection between UML Models Using RACER and nRQL</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Ragnhild</forename><surname>Van</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">SSEL</orgName>
								<orgName type="institution">Vrije Universiteit Brussel</orgName>
								<address>
									<addrLine>Pleinlaan 2</addrLine>
									<settlement>Brussels</settlement>
									<country key="BE">Belgium</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Der</forename><surname>Straeten</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">SSEL</orgName>
								<orgName type="institution">Vrije Universiteit Brussel</orgName>
								<address>
									<addrLine>Pleinlaan 2</addrLine>
									<settlement>Brussels</settlement>
									<country key="BE">Belgium</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Inconsistency Detection between UML Models Using RACER and nRQL</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">B49F79664C97BBF1C2608D229FBFCD27</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T17:10+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>An object-oriented software design consists of models that embody a consistent view on the software system under study. We focus on design models expressed in the Unified Modeling Language (UML) and more specifically on class, state machine and sequence diagrams. In this paper, we report on our experiences in using RACER and its New Racer Query Language (nRQL) for detecting inconsistencies between models. By means of a simple, yet representative, example we show how different representations in RACER are used for the detection of inconsistencies. As such, the full power of both T-box and A-box reasoning is used in the context of inconsistency detection.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Motivation</head><p>During software development, models are built representing different views on a software system. Models can also get refined or evolve. In all cases, there is an inherent risk that the overall specification becomes inconsistent. We will focus on design models expressed in the Unified Modeling Language (UML) <ref type="bibr" target="#b12">[13]</ref>, currently the state-of-the-art modeling language. More specifically, we focus on class diagrams, expressing the static structure of the system and sequence and state machine diagrams specifying (parts of) the behaviour of the system.</p><p>A formal foundation for consistency management enables us to specify precise and unambiguous definitions of concepts involved in software modeling. Also CASE tools benefit from a formal approach, preventing an ad-hoc approach to consistency management. To detect inconsistencies between different UML models, we choose for a logic-based approach for the following reasons: <ref type="bibr" target="#b0">(1)</ref> The declarative nature of logic is well suited to express the design models which are also of declarative nature. (2) Logic reasoning engines can deduce implicitly represented knowledge from the explicit knowledge. (3) First-order logic and theorem proving based on the standard inference rules of classical logic have been proposed by several authors for expressing software models and the derivation of inconsistencies from these models resp. ( <ref type="bibr" target="#b7">[8]</ref>, <ref type="bibr" target="#b11">[12]</ref>).</p><p>However, theorem proving has two major disadvantages. First of all, firstorder logic is semi-decidable and secondly, theorem proving is computationally inefficient. This is why we reside to the use of Description Logics (DLs) <ref type="bibr" target="#b0">[1]</ref> and more specifically to decidable DLs.</p><p>Another important feature of DL systems is that they have an open world semantics, which allows the specification of incomplete knowledge. This is e.g. useful for modeling sequence diagrams which typically specify incomplete information about the dynamic behaviour of the system.</p><p>Due to their semantics, DLs are suited to express the static structure of the software application. For example, Calí et al. <ref type="bibr" target="#b3">[4]</ref> translate UML class diagrams to a DL.</p><p>Due to the fact that there is a one-to-one mapping between a certain DL (called ALCI reg ) and converse-PDL, DLs are also suited to express certain behaviour of a software application.</p><p>Several implemented DL systems exist from which we have selected the stateof-the-art RACER <ref type="bibr" target="#b10">[11]</ref> system. This paper reports on our experiences in using RACER and its query language for inconsistency detection between UML models. We show how different approaches are suited for the detection of different inconsistencies. As well A-box as T-box reasoning is used.</p><p>The next section introduces an illustrative example containing some inconsistencies between different UML diagrams. Section 3 explains a representation approach using the T-box reasoning facilities of RACER to check for certain inconsistencies. Section 3 explains how nRQL is used for inconsistency checking. Tool support automating the detection of inconsistencies is presented in Section 5. In Section 6, related work is discussed and Section 7 concludes this paper.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Examples of Inconsistencies</head><p>The example used throughout this paper, is based on the design of an automatic teller machine (ATM), originally developed by Russell Bjork for a computer science course at Gordon University. We express our diagrams in UML version 1.5.</p><p>In <ref type="bibr" target="#b14">[15]</ref>, we made a two-dimensional classification of inconsistencies occurring between UML diagrams. This classification is based on the diagrams affected and on the fact if structural or behavioural aspects are affected. In this section, the multiplicity conflict, navigation conflict and invocation consistency are Consider a class diagram as specified in Figure <ref type="figure">1</ref> and a sequence diagram in Figure <ref type="figure">2</ref> specifying a particular scenario between objects, i.e. instances of the classes represented in Figure <ref type="figure">1</ref>.</p><p>A first inconsistency arises when an object in a sequence diagram does not respect the multiplicity restrictions as imposed by the corresponding class diagrams. In UML a multiplicity consists of a range which has a lower and upper bound. This lower and upper bound indicate the minimum, resp. maximum number of instances to which a certain instance can be connected and as such can interact with. The model consisting of the UML diagrams of Figure <ref type="figure">1</ref> and 2 suffers from this inconsistency. In the sequence diagram an instance of ATM is associated to two instances of CashDispenser and this is in contrast to the one-one association specified between the ATM class and the CashDispenser class in Figure <ref type="figure">1</ref>.</p><p>Navigation conflict is another inconsistency occurring between this class diagram and sequence diagram. The arrow on the association between the ATM and Session class indicates that objects of type ATM can communicate with objects of type Session but not vice versa. In the sequence diagram, messages are In Figure <ref type="figure">3</ref> the resolved class and sequence diagrams are shown. User intervention is necessary to resolve the above discussed inconsistencies. We do not go into detail on how to correct these inconsistencies because this is out of the scope of this paper.</p><p>Consider a refinement of the specified behaviour of the ATM class by adding behaviour for printing a receipt to this class. Figure <ref type="figure">4</ref> shows the protocol state machine for the refined ATM class. This protocol state machine specifies usage protocols, i.e. the legal transitions an ATM object can trigger.</p><p>Invocation consistency specifies that the behaviour of the original ATM class must be a subset of the behaviour specified for the refined ATM class. This consistency is based on Liskov's well-known substitution principle.</p><p>The UML model consisting of the corrected sequence diagram in Figure <ref type="figure">3</ref> and the state machine diagram in Figure <ref type="figure">4</ref> is invocation inconsistent. The call sequence checkIfCashAvailable(), dispenseCash(), ejectCard() expressed in the sequence diagram of Figure <ref type="figure">3</ref> is not valid on the state diagram in Figure <ref type="figure">4</ref>.</p><p>In the next two sections, we will show how different approaches using DL can help in identifying the presented inconsistencies.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Direct DL Detection Approach</head><p>The direct approach translates UML user models in terms of atomic concepts and roles of a certain DL. This is also the approach taken by Calí et al. UML sequence diagrams encompass two different views. First of all, they specify which sequences of messages are legal and secondly, they also represent how objects are connected to each other. We will call this the interaction, resp. the communication view. The latter view represents an instantiation of the corresponding concepts defined by class diagram(s). Some inconsistencies can be detected using this approach. Suppose the class diagram of Figure <ref type="figure">1</ref> is directly translated into a RACER T-box using the same representation as in <ref type="bibr" target="#b1">[2]</ref> and the object view of the sequence diagram of Figure <ref type="figure">2</ref> is represented as instances of the concepts defined in the T-box. This will result immediately in a logical inconsistency, because the upper bound of the multiplicity of the role representing the association between the class ATM and the class CashDispenser is violated by the instances defined in the corresponding A-box. Remark that, because of the open world assumption, the lower bound of the multiplicity of this association cannot be checked in this way. To detect such inconsistencies another approach, explained in Section 4, is necessary.</p><p>Also for inconsistencies about sequences of messages as specified by state machine and sequence diagrams, a direct representation of these diagrams into a RACER T-box, is necessary. For the different inconsistencies, only the relevant parts of a model are translated.</p><p>Recall the invocation consistency to be checked between the sequence diagram specified in Figure <ref type="figure">3</ref> and the state machine in Figure <ref type="figure">4</ref>. The sequence of operation calls expressed by both diagrams is translated into RACER. The different messages defined in the sequence diagram and the transitions on the state machine are translated to atomic, disjoint concepts which are connected through a binary relation r, a kind of accessibility relation as defined in modal logics.</p><p>The sequence of messages as expressed by the state machine in Figure <ref type="figure">4</ref> is expressed in RACER as follows:</p><p>(equivalent (and validpin getamountentry) (some r verifyaccount)) (equivalent verifyaccount (some r checkifcashavailable)) (equivalent checkifcashavailable (some r dispensecash)) (equivalent dispensecash (some r issuereceipt)) (equivalent issuereceipt (some r ejectcard)) (disjoint getamountentry validpin verifyaccount checkifcashavailable dispensecash issuereceipt ejectcard)</p><p>Remark that in this case, a protocol state machine is considered to be complete as opposed to the sequence diagram. This is why the state diagram is translated using "equivalent" statements. The sequence of messages specified by the sequence diagram in Figure <ref type="figure">2</ref> is expressed as follows:</p><p>(implies checkifcashavailable (some r dispensecash)) (implies dispensecash (some r ejectcard))</p><p>The set of unsatisfiability concepts is verifyaccount, checkifcashavailable and dispensecash. This corresponds to the fact that the behaviour specifications are invocation inconsistent.</p><p>The current disadvantage of this representation is that it is not possible with the current DL tools to give proper feedback to the user. The reasoning engine only indicates that a set of concepts is inconsistent. We are not able to deduce from this information which sequences do occur in the state diagram and do not in the sequence diagram.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Indirect DL Detection Approach</head><p>The UML specification is defined using a metamodeling approach. A language definition normally consists of an abstract syntax, a concrete syntax and semantics. The UML metamodel includes all the concrete graphical notation, abstract syntax and semantics for UML. The UML abstract syntax consists of UML class diagrams. The concrete syntax is informally specified UML notation. Well-formedness rules are constraints on the abstract syntax and as such specify when an instance of a particular language construct is meaningful.</p><p>In this approach, the different concepts of the UML metamodel are translated into RACER. The UML metamodel is a collection of class diagrams which are translated into T-box declarations. The user-defined UML diagrams, such as the ones presented in Section 2, are instances of the metamodel and translated into corresponding Abox assertions. This ensures that the user-defined models are consistent with the UML metamodel. If metamodel information is necessary, this approach is taken to identify inconsistenties.</p><p>The class diagram in Figure <ref type="figure">1</ref> and sequence diagram in Figure <ref type="figure">2</ref> are translated to instances of metamodel concepts. For the detection of the navigation inconsistency as specified in Section 2, one nRQL query is necessary. This query traverses the UML metamodel searching for an association and corresponding association end(s) by which objects are linked to each other and over which an operation is called and which is not navigable.</p><p>(retrieve (?object1 ?class2 ?association ?associationend) (and (?object1 ?class1 instance-of) (?object2 ?class2 instance-of) (?object1 ?stimulus sender) (?object2 ?stimulus receiver) (?stimulus ?operation sends) (?class2 ?operation has-feature) (?stimulus ?association related-to) (?associationend ?association associationends) (?class2 ?associationend participant) (not (?associationend Navigable))))</p><p>This approach is also needed to check if the lower multiplicity bound of an association is not violated in a sequence diagram. Two nRQL queries are necessary. The first one traverses the UML metamodel searching for objects that are linked to each other by the same association.</p><p>(retrieve (?object1 ?class2 ?association) (and (?object1 ?class1 instance-of) (?object2 ?class2 instance-of) (?object1 ?stimulus sender) (?object2 ?stimulus receiver) (?stimulus ?link stimulus-link) (?link ?association stimulus-link)))</p><p>This query is very similar to the query in our previous example. However, the queries are not reusable in the sense that if (part of) a certain query is needed in another more complex query, the body should be copied and pasted into the more complex query. Queries are anonymous in nRQL and as such not reusable which is, in our context, recognized as a disadvantage of the query language.</p><p>For every list of bindings returned by the aforementioned query, the lower bound of the multiplicity specified for the corresponding association must be checked by a second query. If there are less objects than specified by the lower bound, an inconsistency arises.</p><p>(retrieve (told-value (lower ?mult-range)) (and (?association ?assocend associationends) (?assocend ?class2 participant) (?assocend ?multiplicity has-multiplicity) (?multiplicity ?mult-range has-range)))</p><p>In this query ?association, ?object1 and ?class2 are constants which are results given by the first query. Those constants must be hardcoded into the query which makes the query not reusable and it must be rewritten for every single case. The solution here would be to allow also constants in the set of variables.</p><p>The tool chain we set up is called RACOoN (Racer for Consistency). UML design models are expressed in the UML CASE tool Poseidon <ref type="bibr" target="#b8">[9]</ref>. These design models are exported in XMI format, and translated into description logics format using Saxon, an XML translator. The logic code is then asserted into a knowledge base maintained by the RACER logic reasoning engine. This tool chain allows us to specify UML models in a straightforward way and to automate the crucial activity of detecting inconsistencies. We deliberately chose for a tool chain, as opposed to a single integrated tool, to accommodate for the rapid evolution of standards (such as UML, XML and XMI), and to facilitate the replacement of existing tools (e.g., Saxon or Poseidon) by other ones that are more appropriate in a certain context.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Related Work</head><p>Finkelstein et al. <ref type="bibr" target="#b7">[8]</ref> explain that consistency between partial models is neither always possible nor is it always desirable. They suggest to use temporal logic to identify and handle such inconsistencies. Grundy et al. <ref type="bibr" target="#b9">[10]</ref> claim that a key requirement for supporting inconsistency management is the facilities for developers to configure when and how inconsistencies are detected, monitored, stored, presented and possibly automatically resolved. They describe their experience with building complex multiple-view software development tools supporting inconsistency management facilities. Our DL approach is also easily configurable, by adding, removing or modifying logic declarations in the knowledge base.</p><p>A wide range of approaches for checking consistency has been proposed in the literature. Engels et al. <ref type="bibr" target="#b5">[6]</ref> propose a general methodology to deal with consistency problems based on the problem of protocol statechart inheritance. This idea is elaborated in <ref type="bibr" target="#b6">[7]</ref> with dynamic meta modeling rules for specifying the consistency conditions in a graphical, UML-like notation. Model transformation rules are used to represent evolution steps, and their effect on the overall model consistency is explored. Ehrig and Tsiolakis <ref type="bibr" target="#b4">[5]</ref> investigated the consistency between UML class and sequence diagrams. Class diagrams were represented by attributed type graphs with graphical constraints, and sequence diagrams by attributed graph grammars. As consistency checks between class and sequence diagrams only existence, visibility and multiplicity checking were considered. In <ref type="bibr" target="#b13">[14]</ref> the information specified in class and statechart diagrams is integrated into sequence diagrams. The information is represented as constraints attached to certain locations of the object lifelines in the sequence diagram. The supported constraints are data invariants and multiplicities on class diagrams and state and guard constraints on state diagrams. The above mentioned approaches only deal with very specific and a limited number of inconsistencies.</p><p>In Calí et al. <ref type="bibr" target="#b3">[4]</ref> user-defined class diagrams are translated in a description logic that can express n-ary relations. We are inspired by this translation to translate our UML profile. The inconsistencies treated in this work are different from the types of inconsistency we treat. To be able to check our inconsistency categories meta-level knowledge is needed which is not included in their translation. In the same context, <ref type="bibr" target="#b2">[3]</ref> proves that reasoning on UML class diagrams is EXPTime hard.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :Figure 2 :</head><label>12</label><figDesc>Figure 1: Class diagram for ATM example</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 3 :Figure 4 :</head><label>34</label><figDesc>Figure 3: Resolved class and sequence diagram</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head></head><label></label><figDesc><ref type="bibr" target="#b3">[4]</ref>. They translate UML class diagrams into the DL DLR which allows them to reason about class(es) consistency, class equivalence and on class hierarchies.Class diagrams can be translated in an analogue way into the DL ALCQHI R + (D − ) supported by RACER. We use RACER version 1.8.</figDesc></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7">Conclusion</head><p>In this paper, we report on our experiences with the state-of-the-art DL tool RACER and its query language in the context of inconsistency detection between UML models. We argue that different DL representations of UML diagrams can be used for identification of different inconsistencies. This approach makes use of the reasoning tasks inherent to DLs. However, nRQL queries are not reusable because they are anonymous and do not allow constants as variables. This minor disadvantages of nRQL is recognized in this paper.</p><p>In <ref type="bibr" target="#b14">[15]</ref>, we presented a conceptual classification of different inconsistencies between UML models. As future work, we want to classify those different inconsistencies based on the different DL detection approaches.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<author>
			<persName><forename type="first">F</forename><surname>Baader</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Mcguinness</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Nardi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">F</forename><surname>Patel-Schneider</surname></persName>
		</author>
		<title level="m">The Description Logic Handbook: Theory, Implementation and Applications</title>
				<imprint>
			<publisher>Cambridge University Press</publisher>
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Using DLs to reason on UML class diagrams</title>
		<author>
			<persName><forename type="first">Daniela</forename><surname>Berardi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. Workshop on Applications of Description Logics</title>
				<meeting>Workshop on Applications of Description Logics<address><addrLine>Aachen, Germany</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2002">2002</date>
			<biblScope unit="page" from="1" to="11" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Reasoning on UML class diagrams is EXPTIME-hard</title>
		<author>
			<persName><forename type="first">Daniela</forename><surname>Berardi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Diego</forename><surname>Calvanese</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Giuseppe</forename><surname>De</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Giacomo</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of Int&apos;l Workshop on Description Logics</title>
				<meeting>of Int&apos;l Workshop on Description Logics<address><addrLine>Rome, Italy</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Reasoning on UML class diagrams in description logics</title>
		<author>
			<persName><forename type="first">Andrea</forename><surname>Calí</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Diego</forename><surname>Calvanese</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Giuseppe</forename><forename type="middle">De</forename><surname>Giacomo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Maurizio</forename><surname>Lenzerini</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of IJCAR Workshop on Precise Modelling and Deduction for Object-oriented Software Development</title>
				<meeting>of IJCAR Workshop on Precise Modelling and Deduction for Object-oriented Software Development<address><addrLine>PMD</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2001">2001. 2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Consistency analysis of UML class and sequence diagrams using attributed graph grammars</title>
		<author>
			<persName><forename type="first">H</forename><surname>Ehrig</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Tsiolakis</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ETAPS 2000 workshop on graph transformation systems</title>
				<editor>
			<persName><forename type="first">H</forename><surname>Ehrig</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">G</forename><surname>Taentzer</surname></persName>
		</editor>
		<imprint>
			<date type="published" when="2000-03">March 2000</date>
			<biblScope unit="page" from="77" to="86" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Rule-based specification of behavioral consistency based on the UML meta-model</title>
		<author>
			<persName><forename type="first">Gregor</forename><surname>Engels</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Reiko</forename><surname>Heckel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jochen Malte</forename><surname>Küster</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. Int&apos;l Conf. UML 2001</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<editor>
			<persName><forename type="first">Martin</forename><surname>Gogolla</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Cris</forename><surname>Kobryn</surname></persName>
		</editor>
		<meeting>Int&apos;l Conf. UML 2001<address><addrLine>Toronto, Canada</addrLine></address></meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2001">2185. October 2001</date>
			<biblScope unit="page" from="272" to="286" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Consistency-preserving model evolution through transformations</title>
		<author>
			<persName><forename type="first">Gregor</forename><surname>Engels</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Reiko</forename><surname>Heckel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jochen</forename><forename type="middle">Malte</forename><surname>Küster</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Luuk</forename><surname>Groenewegen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. Int&apos;l Conf. UML 2002</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<meeting>Int&apos;l Conf. UML 2002</meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2002">2460. October 2002</date>
			<biblScope unit="page" from="212" to="227" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Inconsistency handling in multi-perspective specifications</title>
		<author>
			<persName><forename type="first">Anthony</forename><surname>Finkelstein</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Dov</forename><forename type="middle">M</forename><surname>Gabbay</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Anthony</forename><surname>Hunter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jeff</forename><surname>Kramer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Bashar</forename><surname>Nuseibeh</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">European Software Engineering Conference, LNCS</title>
				<imprint>
			<publisher>SpringerVerlag</publisher>
			<date type="published" when="1993">1993</date>
			<biblScope unit="page" from="84" to="99" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title/>
		<author>
			<persName><surname>Gentleware</surname></persName>
		</author>
		<author>
			<persName><surname>Poseidon</surname></persName>
		</author>
		<ptr target="http://www.gentleware.com/products/poseidonpe.php3" />
		<imprint>
			<date type="published" when="2004-03-18">March 18 2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Inconsistency management for multiple-view software development environments</title>
		<author>
			<persName><forename type="first">John</forename><forename type="middle">C</forename><surname>Grundy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">John</forename><forename type="middle">G</forename><surname>Hosking</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Warwick</forename><forename type="middle">B</forename><surname>Mugridge</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Software Engineering</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="b10">
	<analytic>
		<title level="a" type="main">RACER system description</title>
		<author>
			<persName><forename type="first">Volker</forename><surname>Haarslev</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ralf</forename><surname>Möller</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Int&apos;l Joint Conf. Automated Reasoning (IJCAR</title>
				<imprint>
			<date type="published" when="2001">2001. 2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">A framework for expressing the relationships between multiple views in requirements specification</title>
		<author>
			<persName><forename type="first">Bashar</forename><surname>Nuseibeh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jeff</forename><surname>Kramer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Anthony</forename><surname>Finkelstein</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Software Engineering</title>
		<imprint>
			<biblScope unit="volume">20</biblScope>
			<biblScope unit="issue">10</biblScope>
			<biblScope unit="page" from="760" to="773" />
			<date type="published" when="1994">1994</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title level="m" type="main">Unified Modeling Language specification version 1.5</title>
		<idno>formal/2003-03-01</idno>
		<imprint>
			<date type="published" when="2003-03">March 2003</date>
		</imprint>
	</monogr>
	<note>Object Management Group</note>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<title level="m" type="main">Semantic analysis and consistency checking of UML sequence diagrams</title>
		<author>
			<persName><forename type="first">Aliki</forename><surname>Tsiolakis</surname></persName>
		</author>
		<idno>No. 2001-06</idno>
		<imprint>
			<date type="published" when="2001-04">April 2001</date>
		</imprint>
		<respStmt>
			<orgName>Technische Universität Berlin</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical Report</note>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Using description logic to maintain consistency between UML models</title>
		<author>
			<persName><forename type="first">Ragnhild</forename><surname>Van Der Straeten</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Tom</forename><surname>Mens</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jocelyn</forename><surname>Simmonds</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Viviane</forename><surname>Jonckers</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. Int&apos;l Conf. UML 2003</title>
				<editor>
			<persName><forename type="first">Perdita</forename><surname>Stevens</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Jon</forename><surname>Whittle</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Grady</forename><surname>Booch</surname></persName>
		</editor>
		<meeting>Int&apos;l Conf. UML 2003</meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2003">2003</date>
			<biblScope unit="volume">2863</biblScope>
			<biblScope unit="page" from="326" to="340" />
		</imprint>
	</monogr>
</biblStruct>

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