<?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">A Model-Based Approach to Formal Verification in Early Development Phases: A Desalination Plant Case Study *</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Alarico</forename><surname>Campetelli</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Technische Universität München Siemens AG Garching bei München</orgName>
								<address>
									<addrLine>Otto-Hahn-Ring 6</addrLine>
									<postCode>85748, 81739</postCode>
									<settlement>München</settlement>
									<country>Germany, Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Maximilian</forename><surname>Junker</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Technische Universität München Siemens AG Garching bei München</orgName>
								<address>
									<addrLine>Otto-Hahn-Ring 6</addrLine>
									<postCode>85748, 81739</postCode>
									<settlement>München</settlement>
									<country>Germany, Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Birthe</forename><surname>Böhm</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Technische Universität München Siemens AG Garching bei München</orgName>
								<address>
									<addrLine>Otto-Hahn-Ring 6</addrLine>
									<postCode>85748, 81739</postCode>
									<settlement>München</settlement>
									<country>Germany, Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Maria</forename><surname>Davidich</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Technische Universität München Siemens AG Garching bei München</orgName>
								<address>
									<addrLine>Otto-Hahn-Ring 6</addrLine>
									<postCode>85748, 81739</postCode>
									<settlement>München</settlement>
									<country>Germany, Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Vasileios</forename><surname>Koutsoumpas</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Technische Universität München Siemens AG Garching bei München</orgName>
								<address>
									<addrLine>Otto-Hahn-Ring 6</addrLine>
									<postCode>85748, 81739</postCode>
									<settlement>München</settlement>
									<country>Germany, Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Xiuna</forename><surname>Zhu</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Technische Universität München Siemens AG Garching bei München</orgName>
								<address>
									<addrLine>Otto-Hahn-Ring 6</addrLine>
									<postCode>85748, 81739</postCode>
									<settlement>München</settlement>
									<country>Germany, Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Jan</forename><forename type="middle">Christoph</forename><surname>Wehrstedt</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Technische Universität München Siemens AG Garching bei München</orgName>
								<address>
									<addrLine>Otto-Hahn-Ring 6</addrLine>
									<postCode>85748, 81739</postCode>
									<settlement>München</settlement>
									<country>Germany, Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">A Model-Based Approach to Formal Verification in Early Development Phases: A Desalination Plant Case Study *</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">9C58AE657596C5D7C78AA8962DBC5E18</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T13:58+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>embedded systems</term>
					<term>model-based development</term>
					<term>requirements management</term>
					<term>formal verification</term>
					<term>automation domain</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Model-based development approaches have attracted a lot of attention in the last decade due to their ability to deal with complexity in large software engineering projects. However, a natural question raises, to what extent model-based development approaches are suited to tackle engineering challenges from other application domains such as the automation domain. In order to answer this question, we apply the model based SPES development method to an industrial case study from the automation domain, focusing on the control software components of a desalination plant. In particular, we demonstrate the formalization of requirements, the elicitation of a functional and a logical specification with automatic verification of formal requirements. Compared to classical software engineering approaches, where verification phase is done after the logical implementation phase, our approach focuses on a strict integration of modelling and automatic verification of formal requirements in early development phases such as the system functionalities definition.</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>Formal methods are widely recognized as powerful engineering methods for the specification, simulation, development, and verification of embedded systems <ref type="bibr" target="#b1">[BS01]</ref>. They follow the principle of "correctness by construction" and are therefore well suited for safetycritical systems <ref type="bibr" target="#b4">[HC02]</ref>. Although the advantages of formal methods are well known <ref type="bibr" target="#b6">[LG97]</ref>, there are many limitations preventing their usage in industrial systems.</p><p>The industrial systems evolve to more and more complex structures to meet the increasing complexity of requirements, especially when combining embedded systems with physical components, termed Cyber-Physical Systems (CPSs). Moreover, the involvement of multiple engineering disciplines, which are targeting cross cutting aspects of the system under development, facilitates wider application of formal methods, which can overcome the underlying challenges. In particular, the pursuit of shorter development time and smaller project budgets requires: 1) an increased parallelization of the single development steps 2) consistent exchange of information between the involved disciplines 3) a strategy for the validation of functional requirements at an early stage. Thus, flexible and efficient modelling frameworks are required which should include more powerful engineering tools and methods. Such a modelling framework has been developed within the German research project SPES XT<ref type="foot" target="#foot_0">1</ref>  <ref type="bibr" target="#b7">[PHAB12]</ref>, which on the one hand facilitates reuse and allows an efficient artefacts development while on the other hand it is designed to be independent of any application domain. In doing so, we apply the SPES methodology to a case study from the automation domain, focusing on the control software components of a desalination plant. This paper is structured as follows: Section 2 presents the related foundations w.r.t. the system model, the development method and tool support required for the case study. Section 3 illustrates the set-up of a case study of a desalination plant which is modelled according to a formal system model FOCUS and the SPES development method. Furthermore, the verification of functional requirements is addressed. Section 4, discusses the benefits of a model-based development approach. Finally, Section 5 concludes the present work and describes possible future directions.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Background</head><p>We perform this case study based on the formal system model FOCUS <ref type="bibr" target="#b1">[BS01]</ref>, the modelbased development method SPES[BDH + 12], as well as the CASE tool AutoFOCUS 3 which supports both the formal system model as well as the development method.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">System Model</head><p>The system model FOCUS (for details, see <ref type="bibr" target="#b1">[BS01]</ref>) is based on a specific notion of a system. A system is represented as a model consisting of a syntactic interface, denoting the input and output channels. Through the channels the system can communicate with its environment. The behavior of the system can be observed at the interface.</p><p>Formally, we can represent a syntactic interface as a pair I ⊲ O, where I is a set of input channels and O is a set of output channels. We can represent the behaviour of a system as a function</p><formula xml:id="formula_0">I ∞ → O ∞ .</formula><p>Here, C ∞ denotes an infinite sequence of messages for every channel in the channel set C. Using this notion of a system and its behaviour, we can compose systems from subsystems. Formally, we can define the composition S 1 ⊗ S 2 for two interface behaviours S 1 and S 2 representing the behaviour of the subsystems.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Development Method</head><p>In the research project SPES, the SPES Modelling Framework (SPES MF) is developed to enable seamless model based development for embedded systems [BDH + 12]. The SPES MF focuses on artefacts that are created during the development of embedded systems and structures artefacts according to viewpoints. The SPES MF differentiates between the following four viewpoints:</p><p>• Requirements Viewpoint: structured documentation and analysis of requirements • Functional Viewpoint: structured documentation and analysis of system functions and their behaviour (Functional Architecture) • Logical Viewpoint: structured documentation and analysis of the logical solution (Logical Architecture) • Technical Viewpoint: structured documentation and analysis of the technical solution (Technical Architecture).</p><p>To further reduce the complexity of the engineering process, the SPES MF introduces layers of granularity, where a coarse-grained engineering problem is decomposed into a number of more fine-grained engineering problems following the principle "divide and conquer", i.e. the composition of the fine-grained solutions is a solution for the coarsegrained engineering problem. Whenever a coarse-grained engineering subject is decomposed into a number of fine-grained engineering subjects, a new layer of granularity is constructed. Hereby, the system is decomposed into smaller and less complex parts. Since the number of such layers depends on the properties of the individual engineering context of an embedded system, the SPES MF does not define a fixed number of granularity layers. Most artefacts that are included within the SPES MF can formally be described using the formal system model outlined above.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.3">Tooling</head><p>AutoFOCUS 3 <ref type="bibr" target="#b5">[HF11]</ref> is an open source research tool supporting model-based development, formal specification and analysis, as well as design space exploration techniques<ref type="foot" target="#foot_1">2</ref> . It provides a broad range of modelling concepts at different levels of formalization for different phases in the development ranging from requirements (using the AutoFOCUS 3 plugin MIRA <ref type="bibr" target="#b8">[TMR13]</ref>) to platform architecture and deployment. Specifically, it provides support for most of the modelling artefacts described in the SPES MF.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Case Study</head><p>Yet today, 780 million people live in lands where there is a lack access to potable water. The production of drinking water by desalination of sea water represents a way to reduce the lack of clean water. In the following we consider a typical desalination plant with reverse osmosis (See Figure <ref type="figure" target="#fig_0">1</ref>). The general principle of desalination plant with reverse osmosis is the following.</p><p>Water is collected by four beach wells along the coast. The salt water is then pumped into the seawater tank, where it is collected. After pretreating with various chemicals for stabilization and biochemical cleaning the actual desalination process can take place. Therefore the water passes several filters before separating the salt in the high pressure section. After post treatment new drinking water can be delivered into the water net.  This type of plant usually is of middle to high automation complexity. As the entire desalination plant is very complex, therefore for plausibility we consider only a small part of the Beach Well-section (BWS).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">System Overview</head><p>The main function of BWS in a desalination plant is pumping seawater from the sea to the sea water tank. This water is filtered by natural layers of sand. In order to guarantee sufficient water to operate this desalination plant, the level of the seawater tank should be monitored and controlled by switching pump valves. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Requirement Modelling</head><p>We start our proposed seamless and continuous design approach by system requirement modelling of BWS. To provide artefacts of the system like glossary, use cases description, architectural constraints, and external environment of the system, MIRA is used in this phase to elicit, specify and analyse requirements. For instance, to avoid wrong interpretation we defined all relevant technical terms by building a glossary.</p><p>To formalize the textual requirements we propose to categorize requirement. In this example, all requirements are categorized into two categories according to the component to which they deploy: Beach Well (BW) and Beach Well Automation (BA).</p><p>Then each requirement is specified in text form and analysed as an use case.  The requirement analysis is integrated with architecture design, since the component interface is derived by the relevant use cases specification which describes the components and the interactions between them. As shown in Fig. <ref type="figure" target="#fig_3">4</ref>, the partial interface of a component can be derived from the BW4 use case description of the component Beach Well. Requirement BW4 has two input ports (FB Closed and FB Open, which indicate the feedback of pump to mark if discharge valve is closed or open) and two output ports (QON and QOFF which determine pump motor's work state is on or off). In this example, all i/o ports are Boolean-valued.</p><p>To avoid the consistency and ambiguity problems, the informal requirements should be modelled formally with structured text templates but still in a use-friendly textual manner. Fig. <ref type="figure" target="#fig_4">5</ref> illustrates the Assumption/Guarantee (A/G) specification of requirement BW4. Thus, requirements for completeness, correctness, and consistency can be later analysed  with a model checker (cf. Sec. 3.4). Thereby, verification is possible in the early stage of requirement modelling process.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">Functional Architecture</head><p>A functional architecture of the system is derived from the requirement artefacts according to the presented SPES development method. This view is focused on the behaviour of the system, i.e. on functionalities and features. Moreover, it represents also a sort of documentation of the system to be developed. Functions can be subdivided in sub-functions and relations can be structured between them.</p><p>We constructed a functional representation of the system in AutoFOCUS 3 using component architectures. Each component has a formal defined interface through i/o ports and an internal behaviour. We defined a root component that represents the whole functional architecture. We subdivided the requirements in two categories: requirements relative to the control of the whole plant and to a single beach well element. Therefore, we model each requirement category as a subcomponent, which is contained in the root component of the functional architecture. The i/o ports of these components are derived directly from the relative requirement artefacts. In fact, the functional specifications of the requirements permit to define the typed i/o interface of the functional architecture components.</p><p>We decided to implement the internal behaviour of each component with a finite state machine. There are also other alternatives, as for instance functional and code specifications. In Figure <ref type="figure" target="#fig_5">6</ref> the components corresponding to the requirement categories are depicted and the state machine implementing the single beach well functionalities is represented. This implementation has only the states and transitions relevant for the presented BW4 requirement. State machines can be simulated with desired environment conditions and can be formally verified as explained in the next section.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4">Verification</head><p>The definition of a functional architecture of the system permits to detect inconsistent and incomplete requirements using simulation and verification techniques. That is possible with enough detailed definition of the requirements with informal and formal artefacts. In our case study, we modelled formally each requirement through verification patterns, which permits the formal verification of its validity through the NuSMV<ref type="foot" target="#foot_3">4</ref> model checker. Model checking offers an automatic and exhaustive proof of the system. The patterns are used for the presentation, codification and reuse of formal properties for AutoFOCUS 3 models. We associate verification patterns from the requirement to the functional architecture with refinement rules, which define a correspondence between the i/o ports of the formalized requirements and the functional architecture.</p><p>The verification patterns integrated in the AutoFOCUS 3 model view are of two types: patterns based on the specification patterns presented in <ref type="bibr" target="#b3">[DAC99]</ref> and specifications conceived for AutoFOCUS 3 model. Further information about the specification of properties and the model checking integration in AutoFOCUS 3 are in <ref type="bibr" target="#b2">[CHN11]</ref>. A verification pattern represents common and recurrent properties, as for instance a state or event of the system that must be reached after a state or event has happened. They are saved with the verification results along with the model itself. Each pattern is structured in a predefined logical part of the property, which determines its semantics and text fields to be filled. Typically, the user writes in these fields expressions that correspond to states, events, or port values and logical operators to combine them. When the pattern is completed an automatic type and name check is made to prove the correctness of the information inserted. Short descriptions help the user to understand the role of each text field.</p><p>A verification context has to be specified, in terms of components to be considered, to execute the verification. Then the tool translates the property to a formal logical property and the AutoFOCUS 3 model to an input model for NuSMV and executes it. A counterexample is reported if the result of the verification is negative. A counterexample may represent in the state machine either a path from the initial state to an erroneous state or a loop, where a desired behaviour never happens. Each step of the counterexample sequence is described by the actual value of variables and i/o ports of the verified model. The counterexample can be stepwise simulated in a graphical view of the tool to debug the AutoFOCUS 3 model. In each simulation step the variables and i/o ports values are visualized. The verification of the requirements in the functional architecture and the counterexample simulation are shown in Figure <ref type="figure" target="#fig_6">7</ref>. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Discussion</head><p>In the presented case study we formally verified requirements over the system behaviour expressed in the functional architecture. We studied a seamless model integration between requirements, formal properties definition, model checking and counterexample simulation. AutoFOCUS 3 provided a suitable environment to apply these concepts to our automation case study of beach wells. Our verification approach in the early development phases allows to avoid errors and incomplete requirements that can be much more expensive, if detected in successive development phases. In the requirements definition and elicitation phases, we specified for each requirement a typed i/o interface in a functional specification and we formalized behaviours in logical formulas expressed in verification patterns. These specifications make the requirements much more precise and with a defined semantics, in comparison with textual informal or semi-formal requirements descriptions. Furthermore, we verified and executed counterexample analysis without requirements of specific skills in formal verification.</p><p>Besides erroneous behaviour and incompleteness, the definition of dependencies between functions helps to solve interaction conflicts. Moreover, there is an improvement in the communication between experts of different disciplines, which are normally involved in the development of automation software. In fact, functional descriptions do not require all implementation details in contrast to the following logical and technical representations of the system. In these representations the functions modelled in the functional architecture are refined. Our verification approach proofs the system in a representation that abstracts from many details. Some of them are specific for a certain discipline. Therefore, we have an executable and verifiable system representation in a sort of discipline neutral language.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusion &amp; Outlook</head><p>In this paper we investigated the application of the SPES development method for the automation domain. In particular, a case example of a seawater desalination plant was modelled according to that method. Special emphasis was given to the verification of functional requirements at an early stage of the development process. Moreover, AutoFOCUS 3 permits to model the successive logical and technical representations of the system. Thus, the intention of this paper was to provide an example in order to exhibit the additional value provided by SPES development method in the automation domain. Last but not least, possible future direction will be to explore the scalability of our approach, how to integrate real-time aspects and how deployment of these verified models to the engineering tools and the hardware used in the automation domain is possible. This gives a chance to transfer know-how to other application domains such as the smart grid domain and the execution of custom case studies within these domains.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Configuration of a desalination plant 3 .</figDesc><graphic coords="4,172.71,148.48,250.02,128.95" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Determining the system boundary.</figDesc><graphic coords="4,172.71,305.28,250.01,180.10" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3: Beach well pump instrumentation. Our work focused on formal modelling of functional requirements of the BWS. The communicating signals and data types of signals are provided by requirements documents. The target BWS consists of the following main components: four Beach Wells (BW), GUI, Sea Water Tank, and Beach Well Automation (BA). Fig. 2 illustrates the system boundary and interface descriptions of the components modelled in AutoFOCUS 3. Beach Well Automation is a central component which coordinates the other components. GUI describes the interaction between the plant operator (i.e. the user) and the automation software during plant operation. The sea water tank has a level sensor which monitors the water tank level, whereas each Beach Well has the same facilities and functionalities. Fig. 3 depicts the process and instrumentation diagram of Beach Well pump 1. Each Beach Well has a pump, a saline water source, a bypass control and a discharge valve. The sea water tank flow is controlled by pumps, whereas the Bypass control guarantees a minimal load for pumps. The Discharge valve protects the pump and guarantees smooth starting and stopping of the pumps. The pump is driven by an electrical motor which is controlled by the automation software as well.</figDesc><graphic coords="5,244.14,148.47,107.15,133.34" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 4 :</head><label>4</label><figDesc>Figure 4: Interface definition based on requirement analyses.</figDesc><graphic coords="6,217.57,426.33,160.30,90.65" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Figure 5 :</head><label>5</label><figDesc>Figure 5: Assumption/Guarantee specification. The informal requirement BW4a is formalized as A/G specification interpreted as property that 'FB Closed &amp;&amp; !FB Open' is true before 'QON '.</figDesc><graphic coords="7,136.99,148.47,321.45,64.72" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Figure 6 :</head><label>6</label><figDesc>Figure 6: The functions of the functional architecture root (left) and the state machine implementing the requirement BW4 where each state represent a mode of a beach well (right).</figDesc><graphic coords="7,119.13,256.38,357.17,156.17" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Figure 7 :</head><label>7</label><figDesc>Figure 7: Model checking of the requirement BW4 in the functional architecture: representation of the requirement through verification patterns (upper part) and the simulation of the counterexample that is generated because the requirement BW4a was violated (lower part).</figDesc><graphic coords="9,119.13,134.30,357.17,202.46" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 :</head><label>1</label><figDesc>Take a requirement on controlling Discharge Valve and Motor Pump (BW4) as an example. As shown in Table2, each single requirement in AutoFOCUS 3 is formalized based on a pattern with a name, type, description, status, priority and tagged if it belongs to safety requirements. Textual requirements.</figDesc><table><row><cell cols="2">BW1 Every pump delivers between 400 and 750 m 3 /h</cell></row><row><cell cols="2">BW2 Pumps are only allowed to run if filling level of beach well is sufficient</cell></row><row><cell cols="2">BW3 Bypass control guaranties minimal load for pump</cell></row><row><cell cols="2">BW4a Discharge valve has to be closed before pump starts</cell></row><row><cell cols="2">BW4b Discharge valve has to open after pump starts</cell></row><row><cell cols="2">BW4c Discharge valve has to close after pump stops</cell></row><row><cell cols="2">BA1 One pump has to be in standby</cell></row><row><cell cols="2">BA2 Adapt pump load to achieve 80% filling level in sea water</cell></row><row><cell cols="2">BA3 Pumps start and stop cascaded</cell></row><row><cell cols="2">BA4 In case of failure standby pump has to take over</cell></row><row><cell>Name</cell><cell>BW4</cell></row><row><cell>Type</cell><cell>Requirement</cell></row></table><note>Description Discharge valve has to be closed before pump starts. Discharge valve has to open after pump starts. Discharge valve has to close after pump stops. Status identified Priority normal Safety requirement no</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 2 :</head><label>2</label><figDesc>Formalization of requirement BW4 in a pattern.</figDesc><table /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">http://spes2020.informatik.tu-muenchen.de/spes xt-home.html</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">http://af3.fortiss.org</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2">The technical properties of this running example were taken from a free instructional DVD available at http://goo.gl/ppsNNo</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_3">http://nusmv.fbk.eu</note>
		</body>
		<back>

			<div type="funding">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>* This work was partially funded by the German Federal Ministry of Education and Research (BMBF), grant "SPES XT, 01IS12005M". The responsibility for this article lies with the authors.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Introduction to the SPES Modeling Framework</title>
		<author>
			<persName><surname>Bdh + ; Manfred</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Werner</forename><surname>Broy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Stefan</forename><surname>Damm</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Klaus</forename><surname>Henkler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Andreas</forename><surname>Pohl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Thorsten</forename><surname>Vogelsang</surname></persName>
		</author>
		<author>
			<persName><surname>Weyer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Model-Based Engineering of Embedded Systems</title>
				<editor>
			<persName><forename type="first">Klaus</forename><surname>Pohl</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Harald</forename><surname>Hönninger</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Reinhold</forename><surname>Achatz</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Manfred</forename><surname>Broy</surname></persName>
		</editor>
		<meeting><address><addrLine>Berlin Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="31" to="49" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">Specification and development of interactive systems: focus on streams, interfaces, and refinement</title>
		<author>
			<persName><forename type="first">M</forename><surname>Broy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Stølen</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2001">2001</date>
			<publisher>Springer</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">User-friendly Model Checking Integration in Model-based Development</title>
		<author>
			<persName><forename type="first">Alarico</forename><surname>Campetelli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Florian</forename><surname>Hölzl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Philipp</forename><surname>Neubeck</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">24th International Conference on Computer Applications in Industry and Engineering</title>
				<imprint>
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Patterns in Property Specifications for Finite-State Verification</title>
		<author>
			<persName><forename type="first">B</forename><surname>Matthew</surname></persName>
		</author>
		<author>
			<persName><forename type="first">George</forename><forename type="middle">S</forename><surname>Dwyer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">James</forename><forename type="middle">C</forename><surname>Avrunin</surname></persName>
		</author>
		<author>
			<persName><surname>Corbett</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICSE</title>
				<imprint>
			<date type="published" when="1999">1999</date>
			<biblScope unit="page" from="411" to="420" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Correctness by construction: Developing a commercial secure system</title>
		<author>
			<persName><forename type="first">Anthony</forename><surname>Hall</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Roderick</forename><surname>Chapman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software, IEEE</title>
		<imprint>
			<biblScope unit="volume">19</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="18" to="25" />
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">AutoFOCUS 3 -A Scientific Tool Prototype for Model-Based Development of Component-Based, Reactive, Distributed Systems</title>
		<author>
			<persName><forename type="first">Florian</forename><surname>Hölzl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Martin</forename><surname>Feilkas</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Model-Based Engineering of Embedded Real-Time Systems</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<meeting><address><addrLine>Berlin / Heidelberg</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2011">2011</date>
			<biblScope unit="volume">6100</biblScope>
			<biblScope unit="page" from="317" to="322" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Formal methods: promises and problems</title>
		<author>
			<persName><forename type="first">Joseph</forename><forename type="middle">A</forename><surname>Luqi</surname></persName>
		</author>
		<author>
			<persName><surname>Goguen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software</title>
		<imprint>
			<biblScope unit="volume">14</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="73" to="85" />
			<date type="published" when="1997-01">Jan 1997</date>
		</imprint>
	</monogr>
	<note>IEEE</note>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<author>
			<persName><forename type="first">Klaus</forename><surname>Pohl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Harald</forename><surname>Hönninger</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Reinhold</forename><surname>Achatz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Manfred</forename><surname>Broy</surname></persName>
		</author>
		<title level="m">Model-based Engineering of Embedded Systems: The SPES 2020 Methodology</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title level="m" type="main">MIRA: A Tooling-Framework to Experiment with Model-Based Requirements Engineering</title>
		<author>
			<persName><forename type="first">Sabine</forename><surname>Teufl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Dongyue</forename><surname>Mou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Daniel</forename><surname>Ratiu</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

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