<?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">Checking Inconsistencies in UML Design</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Iryna</forename><surname>Zaretska</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">V.N</orgName>
								<orgName type="institution">Karazin Kharkiv National University</orgName>
								<address>
									<settlement>Kharkiv</settlement>
									<country key="UA">Ukraine</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Oleksandra</forename><surname>Kulankhina</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">V.N</orgName>
								<orgName type="institution">Karazin Kharkiv National University</orgName>
								<address>
									<settlement>Kharkiv</settlement>
									<country key="UA">Ukraine</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Hlib</forename><surname>Mykhailenko</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">V.N</orgName>
								<orgName type="institution">Karazin Kharkiv National University</orgName>
								<address>
									<settlement>Kharkiv</settlement>
									<country key="UA">Ukraine</country>
								</address>
							</affiliation>
						</author>
						<author role="corresp">
							<persName><forename type="first">Roman</forename><surname>Kovalenko</surname></persName>
							<email>kovalenkoo.roman@gmail.com</email>
							<affiliation key="aff0">
								<orgName type="department">V.N</orgName>
								<orgName type="institution">Karazin Kharkiv National University</orgName>
								<address>
									<settlement>Kharkiv</settlement>
									<country key="UA">Ukraine</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Checking Inconsistencies in UML Design</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">BA4E26C39BCDA15AC78CF8BA8C0E48DA</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T01:36+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>Software design</term>
					<term>object-oriented approach</term>
					<term>UML</term>
					<term>design model</term>
					<term>verification SoftwareSystem</term>
					<term>SoftwareComponent</term>
					<term>Object</term>
					<term>Model</term>
					<term>VerificationProcess</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>The paper presents a simple method and software implementation for checking inconsistencies in UML design and the general method of UML design verification using its own model and first order predicate logic to specify relations between components of the design. Unlike various existing methods the proposed ones are focused mostly on cross-diagram inconsistencies and strong adhering to object-oriented principles. The model proposed for the general method is based on the unified graph representation of UML diagrams.</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>Software design has become an increasingly important part of the software lifecycle due to the increasing complexity of software under construction.</p><p>The Unified Modeling Language (UML) is the de facto standard for modeling software systems. The UML supports a wide range of diagrams for modeling software. UML diagrams are independent but connected; their meta-model describes them under a common roof.</p><p>Detection of errors at the software design level allows reducing a great number of problems in the late stages of software development. There are several approaches for testing design models but they are mainly dealing with intra-diagram inconsistencies or using scripts for design execution.</p><p>In this paper model faults concerned with cross-diagram inconsistencies are considered. First, we present a simple method for detecting the cross-diagram inconsistencies in a UML design and its Java implementation. Then the general model of UML design for verification and refining purposes is introduced and discussed.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Related Work</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">OCL Constraints</head><p>The most common approach to set the rules of consistency for a UML model is to use Object Constraint Language (OCL) which is supported by the majority of UML CASE tools. In fact a lot of OCL constraints are embedded into the wide spread UML CASE tools in order to provide inconsistency verification of the model. The fact is that one can freely use OCL on the intra-diagram level but not on the cross-diagram level.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Critic Approach</head><p>A number of UML visual design tools provide model verification support including syntax checking and structural and consistency analysis. One of the components of such integrated support tools are critics.</p><p>There are various definitions of a design critic or a critic system in the literature. A critic can be considered as an intelligent user interface that evaluates a design made by a user and provides feedback to assist the user to improve the design. Generally critic tools detect potential problems, give advice and alternative solutions, and possibly automated or semi-automated design improvements to the end user.</p><p>Design critic tools have been used in design tools for various domains, including software engineering, design sketches, education, etc. Several studies report the benefits of applying design critic tools in software developments activities <ref type="bibr">[1 -8]</ref>. One of the critic tools is ArgoUML, an open source UML CASE tool. This tool supports the editing of UML notation diagrams and detects common errors made by software designers. For example, after placing a class in a class diagram, several critiques are displayed reminding the user that the class requires a better attribute name, needs operations, constructor and associations with other classes, and its class name needs to be capitalized. Thus, the user is helped to improve the design through the critiques. Java API is used to implement these features.</p><p>Other examples of the critic-based tools are ArchStudio3, SoftArch, DAISY, IDEA, ABCDE-Criticand AIR. These tools provide knowledge to architects, designers, and requirement engineers who lack specific understanding of the problem or solution domains. These critic tools all produce critiques that are specific to their problem domain. They use various approaches such as Java API, Prolog rules and knowledge bases, first-order production systems etc. to design and define critiques constraints. These tools have several limitations such as particular code or design language orientation or difficulties in customization requiring comprehension the critic's domain.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.3">UML Design Execution</head><p>A number of approaches have been proposed to execute UML models <ref type="bibr">[9 -12]</ref>. Most of them use UML models to generate high level language code and execute the generated code.</p><p>Mellor and Balcer <ref type="bibr" target="#b10">[11]</ref> for example use model compilers to support UML model execution. A set of domain and platform-specific model compilers are available commercially for realtime system modeling. At present the compilers cannot be extended to incorporate specific checks as the compiler source is not freely available for modifications.</p><p>Another technique for executing UML designs is to execute code that is generated from the model. Assuming that the code and model both contain the same information, executing the code is the same as executing the model.</p><p>Trung T. Dinh-Trong at el. <ref type="bibr" target="#b11">[12]</ref> offer the systematic approach to testing UML designs based on a Java-like action language (JAL) used to transform the UML design under test into the executable form and then exercise them with generated inputs.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Cross-Diagram Inconsistencies</head><p>It is quite important to verify that the information about the model of the system at one UML diagram does not contradict to the information at the other UML diagram. We call such contradictions cross-diagram inconsistencies.</p><p>A UML design may contain different cross-diagram inconsistencies. Some of them are listed below.  2. An instance of the class A sends the message to an instance of the class B at the Sequence diagram, but there is no corresponding method in the class B (Fig. <ref type="figure" target="#fig_2">2</ref>). 3. Transition from one state of the class A to another at the State Chart diagram occurs by the class A method invocation, but there is no such method in the class A at the Class diagram (Fig. <ref type="figure" target="#fig_3">3</ref>). 4. An instance of the class A sends the message to the class B (but not to the instance of this class) at the Sequence diagram, but the corresponding method of the class B isn't specified as static (Fig. <ref type="figure" target="#fig_4">4</ref>). As our analysis shows the most wide spread UML CASE tools cannot "see" such faults in the design and neither critic tools nor the design execution method are of any help in a cross-diagram verification process.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Simple Method for Detecting Cross-diagram Inconsistencies in UML Design</head><p>As most of the UML CASE tools allow exporting an object oriented design (OOD) of a target system into XMI format we offer a simple method of cross-diagram verification: we parse XMI file and find UML components dependences we are interested in. Depending on the type of an inconsistence under check we develop different check modules with their own models and consistency rules. The whole process looks like shown in Fig. <ref type="figure" target="#fig_5">5</ref>. After parsing the XMI file into the Document Object Model (DOM) the Visitor takes care of getting over its elements and creating instances of the classes from the Checker's model. Then the concrete Checker verifies this model according to its own rules and generates check results. To support this process the Java plug-in was developed. We call it Cross Diagram Inconsistency Check Plug-in (CDICP). It can be easily added to most of the UML CASE tools. As an example of a Check Module (Fig. <ref type="figure" target="#fig_5">5</ref>) we developed Visibility Check Module (VCM) which finds the inconsistencies of the first type (Fig. <ref type="figure" target="#fig_0">1</ref>).</p><p>VCM uses three classes for UML components representing; we call them Role, AssRole, and SeqRole (Fig. <ref type="figure" target="#fig_6">6</ref>). The class Role represents a class at the Class diagram, the class SeqRole represents this class at the Sequence diagram (in fact they are two different UML components), and the class AssRole represents an association or dependency between classes at the Class diagram or a message between classes at the Sequence diagram (Fig. <ref type="figure" target="#fig_7">7</ref>).</p><p>The Visitor in VCM identifies these components in the DOM, creates their instances and places them to the lists of classes, associations, messages, etc. Then the Checker applies its rules, verifies them and generates the result messages. The Checker of VCM for every instance of the class AssRole, which represents some message between classes, checks if there is an association or dependency between these classes (another instance of the class AssRole) and detects its direction. If the connection is not found the Checker forms error message. This message contains information about cross-diagram inconsistency specifying its type and names of classes.</p><p>The CDICP plug-in for the VCM was developed and incorporated into Eclipse (Fig. <ref type="figure" target="#fig_8">8</ref>).    <ref type="bibr" target="#b12">[13,</ref><ref type="bibr" target="#b13">14]</ref> we defined more than 30 intra-and cross-diagram relations to be checked. None of well known CASE tools offers such checks. Using the simple method mentioned above is quite tedious as it supposes developing a special Checker (Fig. <ref type="figure" target="#fig_8">8</ref>) for each relation, which in its turn requires multiple searches on XMI file. Even for a middle size project this file is quite big. The main idea here is to develop a special model of the system design for verification purposes (as usually done in verification methods), build it once by parsing XMI file, and then make all checks on this model. Moreover such model can be used for refining design on account of lessening couplings, strengthening cohesion and applying design patterns. All results of this model analysis regardless of the purpose take the form of recommendations so the corrective changes are up to the designer. Thorough analysis of UML 2.0 specification led us to using graph representation of such model. It allows unified representation of all four diagrams by graphs with different types of vertices and edges. In this case checking relations between UML diagrams is just searching for the definite types of vertices or edges or their interconnections in the model. The first order predicate logic is used to formulate the relations leading to inconsistencies. In fact graph representation simplifies the description of diagrams comparing to their formal specification but is sufficient for verification purposes. For a class diagram the corresponding graph's vertices are classes and edges are connections between them which are association, dependency, generalization and interface realization. The information about generalization sets is stored separately to simplify search algorithms. For an object diagram the corresponding graph's vertices are objects and edges are connections between them. For a sequence diagram the vertices are objects and edges are messages between them. For a state machine (or state chart) diagram the vertices are states and edges are transitions between them. Each type of vertex and each type of edge stores information needed to check intra-and cross-diagram inconsistencies. Say an association of a class diagram as an edge of a graph keeps the name of the association, roles and multiplicities of its participants, etc. An example of the simple class diagram and its graph representation is given in Fig. <ref type="figure">9</ref>. The edges of the graph represent different types of connections between classes and hence store different information.</p><p>Here is the formal representation of our model consisting of graphs of four types for Class, Object, Sequence and State Machine diagrams correspondently:</p><formula xml:id="formula_0">{{ } { } { } { }} D D D D D cl ob seq st     .</formula><p>Each of these graphs consists of two sets: V stands for vertices and E stands for edges. Their description is given below. </p><note type="other">.</note><p>An example in Fig. <ref type="figure" target="#fig_9">10</ref> illustrates information stored with some types of vertices and edges. The relation to be checked should be represented as the first order predicate logic formula. Propositional variables in this formula are the elements of the model above. Such unified approach to formulating the criteria of relations to be checked allows using the only Checker for any sort of relation.</p><p>Here is an example of such formula. It describes the fact that if the instance of one class sends the message to the instance of another class in the sequence diagram then the corresponding method should be among the methods of the latter class in the class diagram (Fig. <ref type="figure" target="#fig_2">2</ref> shows an example of this relation not satisfied). </p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>1 .</head><label>1</label><figDesc>An instance of the class A sends the message to the instance of the class B at the Sequence diagram, but the class B isn't visible for the class A at the Class diagram (Fig. 1).</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Class B should be visible.</figDesc><graphic coords="3,144.96,499.68,305.28,112.56" type="bitmap" /></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. Class B does not have method3().</figDesc><graphic coords="4,155.16,147.36,314.94,114.06" 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. Class A does not have method2().</figDesc><graphic coords="4,150.24,324.96,294.84,128.94" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. In class B method2() is not specified as static.</figDesc><graphic coords="4,129.96,517.44,335.28,126.72" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Fig. 5 .</head><label>5</label><figDesc>Fig. 5. The whole process of checking UML design.</figDesc><graphic coords="5,153.90,387.48,287.52,147.12" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Fig. 6 .</head><label>6</label><figDesc>Fig. 6. Classes used by VCM.</figDesc><graphic coords="6,185.64,239.40,223.92,166.98" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_7"><head>Fig. 7 .</head><label>7</label><figDesc>Fig. 7. Elements of UML design and correspondent classes of VCM.</figDesc><graphic coords="6,169.26,563.70,256.80,107.76" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_8"><head>Fig. 8 .</head><label>8</label><figDesc>Fig. 8. New plugin CDICP in Eclipse.</figDesc><graphic coords="6,171.18,565.62,252.96,103.92" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_9"><head>Fig. 10 .</head><label>10</label><figDesc>Fig.10. Information stored in graph elements for the example above</figDesc><graphic coords="9,164.94,270.60,265.44,201.12" type="bitmap" /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">Elements in [] are optional.</note>
		</body>
		<back>
			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>is introduced to take into account the fact that the method in question can be inherited along the path in the inheritance tree of the class. At the moment the software tool for the proposed method is being developed and tested.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Conclusions</head><p>This paper offers a simple method for detecting inconsistencies between different UML diagrams. It was implemented as an Eclipse plug-in and tested on some types of cross-diagram inconsistencies.</p><p>Another more general method for checking inconsistencies in UML design is proposed. It uses the unified model with graph representation of the design components and formulae of the first order predicate logic to represent relations which should be satisfied to make the design consistent. This approach can also be used to evaluate the quality of a design and make recommendations on its improvement on account of better use of the main principles of the object-oriented design.</p></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Test Adequacy Criteria for UML Design Models</title>
		<author>
			<persName><forename type="first">A</forename><surname>Andrews</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">B</forename><surname>France</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Ghosh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Craig</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Software Testing, Verification and Reliability</title>
		<imprint>
			<biblScope unit="volume">13</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="95" to="127" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">The Role of Critiquing in Cooperative Problem Solving</title>
		<author>
			<persName><forename type="middle">G</forename><surname>Fischer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">ACM Transactions of Information Systems</title>
		<imprint>
			<biblScope unit="volume">9</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="123" to="151" />
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">A UML-based approach to system testing</title>
		<author>
			<persName><forename type="first">Lionel</forename><surname>Briand</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Yvan</forename><surname>Labiche</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software and System Modeling</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="10" to="42" />
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Using Critiquing Systems for Inconsistency Detection in Software Engineering Models</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">R B</forename><surname>Souza</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Fifteenth International Conference on Software Engineering and Knowledge Engineering (SEKE 2003)</title>
				<meeting>the Fifteenth International Conference on Software Engineering and Knowledge Engineering (SEKE 2003)<address><addrLine>San Francisco Bay</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page" from="196" to="203" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">A Group Critic System for Object-Oriented Analysis and Design</title>
		<author>
			<persName><forename type="first">C</forename><forename type="middle">R B</forename><surname>Souza</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 15 th IEEE International Conference on Automated Software Engineering (ASE&apos;2000)</title>
				<meeting>the 15 th IEEE International Conference on Automated Software Engineering (ASE&apos;2000)</meeting>
		<imprint>
			<date type="published" when="2000">2000</date>
			<biblScope unit="page" from="313" to="316" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Test Adequacy Assessment for UML Design Model Testing</title>
		<author>
			<persName><forename type="first">S</forename><surname>Ghosh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">B</forename><surname>France</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Braganza</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Kawane</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Andrews</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Pilskalns</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the International Symposium on Software Reliability Engineering</title>
				<meeting>the International Symposium on Software Reliability Engineering<address><addrLine>Denver, CO</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page" from="332" to="343" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Debugging UML Designs with Model Checking</title>
		<author>
			<persName><forename type="first">Mara</forename><surname>Del</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Mar</forename><surname>Gallardo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Pedro</forename><surname>Merino</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Ernesto</forename><surname>Pimentelis</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Object Technology</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="101" to="117" />
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Validation of UML and OCL models by automatic snapshot generation</title>
		<author>
			<persName><forename type="first">Martin</forename><surname>Gogolla</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jrn</forename><surname>Bohling</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Mark</forename><surname>Richters</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 6th International Conference on Unified Modeling Language (UML&apos;2003)</title>
				<meeting>the 6th International Conference on Unified Modeling Language (UML&apos;2003)<address><addrLine>Berlin</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2003">2003</date>
			<biblScope unit="volume">2863</biblScope>
			<biblScope unit="page" from="265" to="279" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Fault Detection Effectiveness of UML Design, Model Test Adequacy Criteria</title>
		<author>
			<persName><forename type="first">Nilesh</forename><surname>Kawane</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Supplementary Proceedings of the International Symposium on Software Reliability Engineering</title>
				<meeting><address><addrLine>Denver, CO</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page" from="327" to="328" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<author>
			<persName><forename type="first">Nilesh</forename><surname>Kawane</surname></persName>
		</author>
		<title level="m">EPTUD : An Eclipse plug-in for testing UML design models</title>
				<meeting><address><addrLine>Fort Collins, Colorado</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2005">2005</date>
		</imprint>
		<respStmt>
			<orgName>Colorado State University</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Master&apos;s of science thesis</note>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<title level="m" type="main">Executable UML: A Foundation for Model Driven Architecture</title>
		<author>
			<persName><forename type="first">Stephen</forename><surname>Mellor</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Marc</forename><surname>Balcer</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2002">2002</date>
			<publisher>Addison Wesley Professional</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Andrews: A Tool-Supported Approach to Testing UML Design Models</title>
		<author>
			<persName><forename type="first">T</forename><surname>Dinh-Trong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Kawane</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Ghosh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">B</forename><surname>France</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><forename type="middle">A</forename></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">10th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS 2005)</title>
				<meeting><address><addrLine>Shanghai, China</addrLine></address></meeting>
		<imprint>
			<publisher>Proceedings</publisher>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<ptr target="http://www.uml.org/" />
		<title level="m">Object Management Group: UML 2.0 Superstructure Specification</title>
				<imprint>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<title level="m" type="main">UML Bible</title>
		<author>
			<persName><forename type="middle">T</forename><surname>Pender</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2003">2003</date>
			<publisher>Wiley Published Inc</publisher>
		</imprint>
	</monogr>
</biblStruct>

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