<?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">UML-VT: A Formal Verification Environment for UML Activity Diagrams</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Zamira</forename><surname>Daw</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">University of Maryland</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">John</forename><surname>Mangino</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">University of Maryland</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Rance</forename><surname>Cleaveland</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">University of Maryland</orgName>
							</affiliation>
						</author>
						<title level="a" type="main">UML-VT: A Formal Verification Environment for UML Activity Diagrams</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">6697EE2E616AF5D06D7DDFE0D3AAD4BD</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T14:23+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>This paper introduces a translation tool that supports formal verification of UML activity diagrams using the model checkers: UPPAAL, SPIN, NuSMV and PES. The motivation for this tool arises from the desire to check the properties of a system early in the development process, and the fact that UML is commonly used to describe software models. The tool is implemented as an Eclipse-plugin that automatically translates the UML activities and logical requirements into valid input notation for the model checkers. The automated aspect of the plugin allows users without a background in formal methods to verify the safety and liveness of a system. The translation strategies implemented in this plugin are the result of an experimental study. A tutorial video can be found in https://www.youtube.com/watch?v=AHsih8REUxM.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>I. INTRODUCTION</head><p>A major concern in system development is the correctness of software components. The benefit of formal methods is that they verify the systems correctness against specific requirements for all possible inputs. In contrast to testing, formal methods allow not only the verification of the presence of an error in a system, but also the verification of the absence of errors. Automated formal verification such as model checking <ref type="bibr" target="#b0">[1]</ref> has been improved in the last decades, allowing the verification of more complex software systems. However, the usage of model checking is limited by the required knowledge of formal methods, as well as by the state explosion problem, which restricts the size of systems that are verifiable.</p><p>Model-driven development (MDD) has been used in software development in order to handle the development of complex systems. In MDD approaches, designers first build models of the desired software, which can be manually or automatically (code generation) transformed into development artifacts (e.g. source code). The models abstract elements/behaviors of the systems, thereby reducing the complexity of the development and facilitating the understanding of the system. Unified Modeling Language (UML) <ref type="bibr" target="#b1">[2]</ref> has attracted substantial attention as a language for MDD. Moreover, UML is a non-proprietary, independently maintained standard, which provides several graphical sublanguages and an extension mechanism (profiling). A UML activity diagram is a behavioral diagram that is generally used to specify the workflow of a system. The presented tool uses UML activity diagrams in order to specify the behavior of the system.</p><p>The UML Verification Tool (UML-VT) is meant to support the integration of model checking into a MDD process. The Research supported by NSF Grant CCF-0926194 purpose of this integration is to provide formal verification in the early phases of development regardless of ones knowledge of formal methods. Furthermore, the integration leverages the higher abstraction of the UML models in order to reduce the state explosion problem, thereby allowing the verification of more complex systems.</p><p>The UML-VT transforms UML activities into the input notation for the model checkers: UPPAAL, SPIN, NuSMV and PES. The used transformation strategies have been chosen based on the results of an experimental study conducted by the authors <ref type="bibr" target="#b2">[3]</ref>. This paper presents the capabilities and functionality of the UML-VT as well as references for theoretical and technical work, on which this tool is based. The plugin and source code of the UML-VT can be found at http://www.cs.umd.edu/∼rance/projects/uml-vt/</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>II. FUNCTIONALITY</head><p>The UML-VT is an open-source Eclipse plug-in that verifies UML activities against given requirements using wellknow model checker tools such UPPAAL <ref type="bibr" target="#b3">[4]</ref>, SPIN <ref type="bibr" target="#b4">[5]</ref> and NuSMV <ref type="bibr" target="#b5">[6]</ref>, and an experimental model checker PES <ref type="bibr" target="#b6">[7]</ref>. The inputs of the verification are the UML models and the requirements. The format of the UML models is *.uml, which can be exported from the majority of UML-Tools such as Papyrus<ref type="foot" target="#foot_0">1</ref> or MagicDraw<ref type="foot" target="#foot_1">2</ref> . Requirements have to be specified as a temporal logic formula, which can be created using a Requirement Editor provided by the UML-VT. The output of the verification is a report that shows the satisfiability of the given requirement and counter examples that violate the requirement (depending of the chosen model checker).</p><p>The UML-VT also provides an Eclipse Perspective shown in Figure <ref type="figure" target="#fig_0">1</ref> in order to facilitate the verification workflow. The Perspective can be open by the following menu chain: Window → Open Perspective → Other → UML-VT. The perspective contains four views and one menu. View 1 shows the Project Explorer, View 2 is reserved for the chosen modeling tool, View 3 shows the Console which will update the user on the current state of the verification process, and View 4 displays the report file, which contains the results of the model checker. The UML-VT Menu allows the user to start the verification (Verify), to set the paths of the model checkers executable file (Configuration), and to set a default model checker (Model checkers). This menu is only displayed if the UML-VT Perspective is active.  Modeling: The user can model the system within the Papyrus model or using his/her preferred UML-Tool. However, note that the verification requires the file *.uml. If MagicDraw is used as modeling tool, this file can be obtained by File → Export To → Eclipse UML2. The DMOSES profile is a UML profile that extends UML activity diagrams and state machine diagrams in order to add information regarding execution time, parallelism and priority <ref type="bibr" target="#b7">[8]</ref>. This profile gives an unambiguous behavior specification, which is required for the formal verification. An example of an extended UML activity is shown in Figure <ref type="figure" target="#fig_2">3</ref>.</p><p>Requirements specification: The user can specify the requirements with in the file Requirements.tl using the Require-ment Editor. The editor aims to facilitate the specification of temporal logic formulas by highlighting keywords and checking syntax. LTL and CTL formulas are supported. The editor syntax is model checker independent. An example requirement for the activity in Figure <ref type="figure" target="#fig_2">3</ref> can be "In all execution paths, the ActionB should be executed at least one time". The temporal logic formula corresponding to the requirement is:</p><formula xml:id="formula_0">AF Activity2 :: ActionB (1)</formula><p>AF Activity1 :: Action2 :: ActionB</p><p>Note that equation 1 verifies the ActionB if the main activity would be Activity2 and equation 1 verifies the same action but if the main activity would be Activity1. Requirement Editor provides code completions, which suggests a list of possible names of actions.  Model checking execution: After a successful translation, a window pops up with a list of all possible main activities as shown in Figure <ref type="figure" target="#fig_3">4</ref>. Thus, the user can select the main activity of the system, afterwards the chosen model checker is automatically invoked. There is a timeout that limits the verification time.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Display of verification results:</head><p>The results of the verification are saved in the report.txt file and are displayed after the model checker has finished. Current efforts address a model checker independent report in order to facilitate the understanding of the results. Figure <ref type="figure" target="#fig_4">5</ref> shows the verification result of the example in Figure <ref type="figure" target="#fig_2">3</ref> and the requirement of formula 2. Note that the property is not satisfied, which implies that the action is not executed. This is because the event e1 is sent only after it is received. Since there are no other activities that send this event, actions within Figure <ref type="figure" target="#fig_2">3</ref> are never executed. Errors such as this one are not easy to find in a model with multiple activities and multiple hierarchical levels. This example shows how the correctness of the model can be easily verified using the UML-VT. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>III. ARCHITECTURE</head><p>The UML-VT Eclipse-plugin can be divided into four main components: Model Transformation, Code Generation, a Requirement Editor, and a User Interface as is shown in Figure <ref type="figure" target="#fig_5">6</ref>. The User Interface aims to facilitate the interaction with the user by providing a Perspective, Menus, Project Wizards, Plugin-Installation, Verification Management, etc. This component is primary based on the Rich Client Platform (RCP) provided by Eclipse. Due to space limitation, technical details of the translations can be found in <ref type="bibr" target="#b2">[3]</ref>. The transformation of UML models into model-checker input notation is implemented in two modules: Model Transformation and Code Generation. The interaction between these parts is shown in Figure <ref type="figure">7</ref>. Note that an intermediate graph is used. Thus, UML models are transformed into graphs by the Model Transformation module, and afterwards, graphs are transformed into model-checker input notation by the Code Generation module. The intermediate graph is used in order to facilitate the transformation of multiple diagrams, the generation of multiple model-checker languages, and the implementation of optimization algorithms. The Model Transformation module consists of three components: Model to Model Transformation, which transforms UML models into graphs, Hierarchy Management, which flattens multiple hierarchical levels (e.g. modeled by using CallBehaviorActions), and Optimization, which reduces the number of vertices of the graph by merging sequential vertices and normalizes execution times. These transformations are implemented using an eclipse plug-in called ATL (ATLAS Transformation Language) <ref type="foot" target="#foot_2">3</ref> .</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Fig. 7. Workflow transformation from UML models into model-checker input notation</head><p>The Code Generation module is based on templates that specify the behavior of the different elements of the UML activities using the model-checker languages. For example, for UPPAAL, the template UPPAAL Tp specifies the tokenbased behavior of the UML activities using Timed Automata. Note that the templates encompass sophisticated understanding formal-methods. Since there are multiple ways to specify this behavior using model-checker languages, the authors conducted an experimental study to analyze the influence of different translations strategies on the verification performance <ref type="bibr" target="#b2">[3]</ref>. The templates that are used correspond to the best translation strategies for each model-checker in relation to the results of the study. Code Generation module uses the plug-in Xpand <ref type="foot" target="#foot_3">4</ref> . The multiple intermediate steps between the UML models and the model-checker input notation are transparent for the user, who only sees the generated files for the model checkers.</p><p>The correctness and scalability of the transformations, optimizations and code generation have been tested using a benchmark composed of a set of 67 UML activity diagrams and a model of a medical device case study, an infusion pump <ref type="bibr" target="#b2">[3]</ref>. The UPPAAL translation achieves the best performance in the verification of UML activities, in particular for big models, since the variable management of this model checker in the creation of the state space of the system.</p><p>The plug-in Xtext<ref type="foot" target="#foot_4">5</ref> is used in the component Requirement Editor. The component specifies the domain-specific language of the temporal logic formulas, and implements the editor and the generation of the model-checker specific formula files.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>IV. RELATED WORK</head><p>To the best of our knowledge, there is an apparent lack of tools aimed at formal verification of UML activities. Although there are different approaches that propose the verification of UML activities using model checking, summarized in <ref type="bibr" target="#b2">[3]</ref>, the majority of these approaches do not provide a public tool (or it could not be found). Similar to the presented tool, these approaches use translational strategies to generate modelchecker languages. In general, these approaches offer only the usage of one model checker. In contrast, the UML-VT supports four model checkers, and provides an open-source Eclipse plugin.</p><p>MADES project propose a tool chain <ref type="bibr" target="#b9">[10]</ref> to verify UML Model of embedded systems. MADES uses its own model checker. In <ref type="bibr" target="#b10">[11]</ref>, dos Santos also presents a formal verification tool for UML behavioral diagrams using NuSMV. Similar to our approach, these tools presents translations from UML model into the model-checker input notation. In contrast to UML-VT, these tools force the user to use only one model checker. Furthermore, the translations provided by the UML-VT are based on an experimental study providing a higher confiability. It is worth mentioning that these tools where not available to download, and therefore the description is based only on academic publications.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>V. DISCUSSION</head><p>The usage of UML models as an input notation of the verification has three main advantages. 1) It is easier to integrate the verification in the MDD process because these models are also used during the development process. 2) The abstraction of the UML models mitigates the state-explosion problem of the model-checking algorithm. Furthermore, the DMOSES profile adds additional information about the implementation (e.g. execution time) that allows verifying the system taking into account implementation features. The DMOSES profiles also contributes to the reduction of the state-space since this UML extension provides a deterministic behavior and reduces the behavior concurrency by giving a limited processing units. These aspects allow the application of model checking without any further optimization methods (e.g. CEGAR). 3) Since UML models are model-checker independent, model-checker specific translations can be implemented, which facilitate the choice of the model checker. Although the choice of a model checker should primarily depend on its ability to address the system domain or the properties to verify, in practice, the model checker is chosen based on the previous experience of the formal method experts. Thus, the support of multiple model checkers by the UML-VT allows users to use the most adequate model checker for the application area (e.g. UPPAAL for real-time systems or SPIN for distributed systems).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>VI. CONCLUSION AND FUTURE WORKS</head><p>The UML-VT enables formal verification of UML activities using model checkers. The tool is implemented in Eclipse, which is already known as a modeling and MDD environment. In order to facilitate the integration to any MDD process, the tool allows the verification of models with an EMF input format, which can be exported from the majority of UML-Tools. The UML-VT supports the verification using the model checkers UPPAAL, SPIN, NuSMV, and PES. The support of multiple model checkers allows the user to choose the most appropriate model checker with respect to the target platform. Generation of model-checker input notation is based on modelto-model transformations, which optimize the space state of the system, and on templates, which encompass the knowledge of a model-checking expert. These templates are also tied to our interpretation of the UML models, which is based on the DMOSES profile. This limitation can be overcome by extending the transformations in order to support other UML profiles or other diagrams.</p><p>In our ongoing work, we address this limitation in a more general way by allowing the user to specify its own formal semantics by using an extensible formal semantics <ref type="bibr" target="#b11">[12]</ref>. The extensible semantics provides a reference semantics that can be extended according to the interpretation of the UML models. A label transition system (LTS) is generated from the input UML models according to the user-specific semantics. The LTS formally specifies the behavior of the system. We are working in a semantics framework tool that allows specifying the extensible semantics, and provides simulation of the UML models, consistency verification of the semantics (bisimulation) and formal verification (translation from LTS into modelchecker input notation) based on the user-specific semantics.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Eclipse-Plugin of the UML-VT The verification workflow is shown in Figure 2. Create project: A new project can be created using File → New → Project → UML-VT → Project. The created project contains by default a Papyrus model, DMOSES Profile [8], and the Requirement file. The DMOSES Profile is explained in the modeling section.</figDesc><graphic coords="2,69.94,333.05,205.63,211.48" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Workflow of the UML-VT</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 3 .</head><label>3</label><figDesc>Fig. 3. UML activity example Generation of model-checker specific properties: Once the Requirements.tl file is saved, model-checker specific formulas are generated in the scr-gen folder according to the chosen model checker. Formulas that are not supported by the given model checker (e.g. UPPAAL only allows only a subset of CTL * [9]) are not transformed into model-checker specific formulas and are shown in the console. Translation from UML-models into model-checker languages: The translation is started by clicking the Verify button in the UML-VT Menu. Depending on the chosen model checker a different translation is executed. The translations support hierarchical modeling and also apply optimization techniques. The generated files are saved in the scr-gen folder. These files are the input for the model checkers.</figDesc><graphic coords="2,320.10,241.25,231.33,138.25" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. Possible main activities to verify</figDesc><graphic coords="2,384.36,574.20,102.82,52.30" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Fig. 5 .</head><label>5</label><figDesc>Fig. 5. Verification results of Formula 2 using UPPAAL</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Fig. 6 .</head><label>6</label><figDesc>Fig. 6. Architecture of the Eclipse-Plugin. Developed components (green) are based on Eclipse components (blue), and external plugins (orange).</figDesc><graphic coords="3,69.94,423.65,205.63,61.67" type="bitmap" /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">https://eclipse.org/papyrus/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">http://www.nomagic.com/products/magicdraw.html</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2">https://eclipse.org/atl/</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_3">http://wiki.eclipse.org/Xpand</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_4">https://eclipse.org/Xtext/</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">Principles of model checking</title>
		<author>
			<persName><forename type="first">C</forename><surname>Baier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J.-P</forename><surname>Katoen</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2008">2008</date>
			<publisher>MIT press Cambridge</publisher>
			<biblScope unit="volume">26202649</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<author>
			<persName><surname>Omg</surname></persName>
		</author>
		<ptr target="http://www.omg.org/spec/UML/2.4.1/Superstructure/PDF" />
		<title level="m">Unified Modeling Language, Superstructure, Version 2</title>
				<imprint>
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Comparing model checkers for timed uml activity diagrams</title>
		<author>
			<persName><forename type="first">Z</forename><surname>Daw</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Cleaveland</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Science of Computer Programming</title>
		<imprint>
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">A Tutorial on Uppaal</title>
		<author>
			<persName><forename type="first">G</forename><surname>Behrmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>David</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Larsen</surname></persName>
		</author>
		<idno type="DOI">10.1007/978-3-540-30080-9_7</idno>
		<ptr target="http://dx.doi.org/10.1007/978-3-540-30080-97" />
		<imprint>
			<date type="published" when="2004">2004</date>
			<publisher>Springer</publisher>
			<biblScope unit="volume">3185</biblScope>
			<biblScope unit="page" from="200" to="236" />
			<pubPlace>Berlin Heidelberg</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">The model checker spin</title>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">J</forename><surname>Holzmann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Software Engineering</title>
		<imprint>
			<biblScope unit="volume">23</biblScope>
			<biblScope unit="issue">5</biblScope>
			<biblScope unit="page" from="279" to="295" />
			<date type="published" when="1997">1997</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m" type="main">NuSMV 2: An OpenSource Tool for Symbolic Model Checking</title>
		<author>
			<persName><forename type="first">A</forename><surname>Cimatti</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Clarke</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Giunchiglia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Giunchiglia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Pistore</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Roveri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Sebastiani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Tacchella</surname></persName>
		</author>
		<idno type="DOI">10.1007/3-540-45657-0_29</idno>
		<ptr target="http://dx.doi.org/10.1007/3-540-45657-029" />
		<imprint>
			<date type="published" when="2002">2002</date>
			<publisher>Springer</publisher>
			<biblScope unit="volume">2404</biblScope>
			<biblScope unit="page" from="359" to="364" />
			<pubPlace>Berlin Heidelberg</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Fast on-the-fly parametric real-time model checking</title>
		<author>
			<persName><forename type="first">D</forename><surname>Zhang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Cleaveland</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">RTSS 2005. 26th IEEE International</title>
				<imprint>
			<date type="published" when="2005-12">2005. Dec 2005</date>
			<biblScope unit="page">166</biblScope>
		</imprint>
	</monogr>
	<note>Real-Time Systems Symposium</note>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<title level="m" type="main">Deterministic UML Models for Interconnected Activities and State Machines</title>
		<author>
			<persName><forename type="first">Z</forename><surname>Daw</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Vetter</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2009">2009</date>
			<publisher>Springer</publisher>
			<biblScope unit="volume">5795</biblScope>
			<biblScope unit="page" from="556" to="570" />
			<pubPlace>Berlin Heidelberg</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">The temporal logic of programs</title>
		<author>
			<persName><forename type="first">A</forename><surname>Pnueli</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Foundations of Computer Science, 18th Annual Symposium on. IEEE</title>
				<imprint>
			<date type="published" when="1977">1977</date>
			<biblScope unit="page" from="46" to="57" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Mades: a tool chain for automated verification of uml models of embedded systems</title>
		<author>
			<persName><forename type="first">A</forename><surname>Radjenovic</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Matragkas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">F</forename><surname>Paige</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Rossi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Motta</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Baresi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">S</forename><surname>Kolovos</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Modelling Foundations and Applications</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="340" to="351" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">A formal verification tool for uml behavioral diagrams</title>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">B R</forename><surname>Santos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><forename type="middle">R</forename><surname>Eras</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><forename type="middle">A</forename><surname>De Santiago Júnior</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><forename type="middle">L</forename><surname>Vijaykumar</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Computational Science and Its Applications-ICCSA 2014</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="696" to="711" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">An extensible operational semantics for uml activity diagrams</title>
		<author>
			<persName><forename type="first">Z</forename><surname>Daw</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Cleaveland</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Conference on Software Engineering and Formal Methods</title>
				<imprint>
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

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