<?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">BPMN Analyzer 2.0: Instantaneous, Comprehensible, and Fixable Control Flow Analysis for Realistic BPMN Models</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Tim</forename><surname>Kräuter</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution" key="instit1">Western</orgName>
								<orgName type="institution" key="instit2">Norway University of Applied Sciences</orgName>
								<address>
									<settlement>Bergen</settlement>
									<country key="NO">Norway</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Patrick</forename><surname>Stünkel</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution" key="instit1">Western</orgName>
								<orgName type="institution" key="instit2">Norway University of Applied Sciences</orgName>
								<address>
									<settlement>Bergen</settlement>
									<country key="NO">Norway</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Adrian</forename><surname>Rutle</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution" key="instit1">Western</orgName>
								<orgName type="institution" key="instit2">Norway University of Applied Sciences</orgName>
								<address>
									<settlement>Bergen</settlement>
									<country key="NO">Norway</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Yngve</forename><surname>Lamo</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution" key="instit1">Western</orgName>
								<orgName type="institution" key="instit2">Norway University of Applied Sciences</orgName>
								<address>
									<settlement>Bergen</settlement>
									<country key="NO">Norway</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Harald</forename><surname>König</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution" key="instit1">Western</orgName>
								<orgName type="institution" key="instit2">Norway University of Applied Sciences</orgName>
								<address>
									<settlement>Bergen</settlement>
									<country key="NO">Norway</country>
								</address>
							</affiliation>
							<affiliation key="aff1">
								<orgName type="institution">FHDW Hannover</orgName>
								<address>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">BPMN Analyzer 2.0: Instantaneous, Comprehensible, and Fixable Control Flow Analysis for Realistic BPMN Models</title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073</idno>
					</monogr>
					<idno type="MD5">DEFCDECB3F8E83C0E105C93D17F5F783</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2025-04-23T17:03+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>BPM</term>
					<term>Verification</term>
					<term>Control flow analysis</term>
					<term>BPMN model checking</term>
					<term>Soundness</term>
					<term>Safeness</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Many business process models contain control flow errors, such as deadlocks or livelocks, which hinder proper execution. In this paper, we introduce a new tool that can instantaneously identify control flow errors in BPMN models, make them understandable for modelers, and suggest corrections to resolve them. We demonstrate that detection is instantaneous by benchmarking our tool against synthetic BPMN models with increasing size and state space complexity, as well as realistic models. Moreover, the tool directly displays detected errors in the model, including an interactive visualization, and suggests fixes to resolve them. The tool is open source, extensible, and integrated into a popular BPMN modeling tool.</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>Business Process Modeling Notation (BPMN) is becoming increasingly popular for automating processes and orchestrating people and systems. However, many process models suffer from control flow errors, such as deadlocks, livelocks, and starvation <ref type="bibr" target="#b0">[1]</ref>. These errors hinder the correct execution of BPMN models and may be detected late in the development process, resulting in elevated costs.</p><p>In this paper, we describe a new tool, the BPMN Analyzer 2.0 1 , for analyzing BPMN process models to detect control flow errors already during modeling. Figure <ref type="figure" target="#fig_1">1</ref> shows an overview of the tool. The UI is based on the popular bpmn.io ecosystem, while the analysis is implemented in Rust for optimal performance and memory efficiency. We perform a breadth-first state space exploration to check soundness and safeness <ref type="bibr" target="#b1">[2]</ref> on the fly to uncover control flow errors. Consequently, the tool can detect deadlocks, livelocks, starvation, dead activities, and lack of synchronization in BPMN models. The BPMN Analyzer is open source and accessible online alongside a video demonstration 2 <ref type="bibr" target="#b2">[3]</ref>. tkra@hvl.no (T. Kräuter); past@hvl.no (P. Stünkel); aru@hvl.no (A. Rutle); yla@hvl.no (Y. Lamo); harald.koenig@fhdw.de (H. König) The tool can check models after each change since analysis is instantaneous according to <ref type="bibr" target="#b0">[1]</ref>, i.e., it takes 500ms or less. Furthermore, we ensure the results are comprehensible by highlighting possible violations directly in the model and displaying an interactive counterexample visualization. Finally, the tool suggests fixes for the most common control flow errors and can be extended to suggest more fixes in the future.</p><p>Fahland et al. <ref type="bibr" target="#b0">[1]</ref> describe coverage, immediacy, and consumability as the main challenges for users unaccustomed to formal analysis. The BPMN Analyzer addresses all these challenges since it supports the most common BPMN elements used in practice (coverage), provides instantaneous results (immediacy), and a comprehensible user interface (consumability), even including suggestions for fixes. Developers of industrial BPMN software also like our tool, especially the End-to-end user journey <ref type="bibr" target="#b2">[3]</ref>. Thus, this supports our claim that the UI is understandable for users unfamiliar with formal analysis.</p><p>In the remainder of the paper, we describe how instantaneous, comprehensible, and fixable control flow error detection is achieved in section 2. Then, we discuss tool maturity in section 3 before concluding in section 4.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Innovations</head><p>The BPMN Analyzer has three main innovations: instantaneous, comprehensible, and fixable control flow error detection. In this section, we will present the innovations, and more details can be found in our extended paper <ref type="bibr" target="#b2">[3]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1.">Instantaneous Analysis</head><p>We demonstrate instantaneous control flow analysis by benchmarking our tool in three scenarios. For all our benchmarks, we use the hyperfine benchmarking tool (version 1.18.0), which calculates the average runtime when executing each control flow analysis ten or more times. We ran the benchmarks on Ubuntu 22.04.4 with an AMD Ryzen 7700X processor (4.5GHz) and 32 GB of RAM (5600 MHz). All used BPMN models, our tools to generate them, and benchmarking scripts to run them are available in <ref type="bibr" target="#b2">[3]</ref>.</p><p>First, we benchmarked how our tool handles BPMN models of growing size. We generated 500 synthetic BPMN models starting with five elements up to 4000. The models repeatedly contain three activities and an exclusive/parallel block with two branches containing one activity per branch (see <ref type="bibr" target="#b2">[3]</ref>). The BPMN Analyzer spends from 1 ms up to 9 ms for the BPMN models <ref type="bibr" target="#b2">[3]</ref> compared to 0.7 s up to 14 s in our previous tool <ref type="bibr" target="#b3">[4]</ref>. In summary, the runtime grows linearly with the state space.</p><p>Second, we benchmarked the tool against a synthetic data set of models that led to a state space explosion. This represents a worst-case scenario for formal analysis. We generated a data set of models <ref type="bibr" target="#b2">[3]</ref> with a growing number of parallel branches with increasing length, like <ref type="bibr" target="#b4">[5]</ref>.</p><p>Table <ref type="table" target="#tab_0">1</ref> shows the average runtime of our tool when analyzing these models. The BPMN Analyzer explores the entire state space while simultaneously analyzing the control flow, i.e., verifying soundness properties. The models' state space grows exponentially, leading to the same order of growth in runtime. Our analysis is not instantaneous anymore when approaching 17 parallel branches of length 1 (see Table <ref type="table" target="#tab_0">1</ref>). However, analysis is still instantaneous for more reasonable models with five parallel branches of length 5 or 3 branches of length 20. Other tools report 2-3s of runtime for most soundness properties and 30s for a model with five parallel branches <ref type="bibr" target="#b4">[5]</ref>, which took milliseconds in our tool. credit-scoring-async <ref type="foot" target="#foot_0">3</ref>1 ms 60 credit-scoring-sync 3  1 ms 140 dispatch-of-goods 3  1 ms 103 recourse 3  1 ms 77 self-service-restaurant 3  1 ms 190</p><p>Third, we applied our tool to eight realistic models, where three models (e001, e002, e020) are taken from <ref type="bibr" target="#b5">[6]</ref>, and the remaining five models are part of the Camunda BPMN for research repository 3 . Table <ref type="table" target="#tab_1">2</ref> shows each model's average runtime and number of states. The BPMN Analyzer takes 1-10ms for e001, e002, and e020 <ref type="bibr" target="#b2">[3]</ref>, while <ref type="bibr" target="#b5">[6]</ref> and <ref type="bibr" target="#b3">[4]</ref> report 3.66-10.26s and 1-1.75s respectively. The benchmarks in <ref type="bibr" target="#b3">[4]</ref> were run on the same hardware, while the machine used in <ref type="bibr" target="#b5">[6]</ref> was less powerful. Our analysis is instantaneous for nearly all BPMN models since most have less than 1000 states, according to <ref type="bibr" target="#b0">[1]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2.">Comprehensible Analysis</head><p>We implemented two features to make control flow analysis understandable for everyone. First, we highlight the problematic elements that cause control flow errors by directly attaching red overlays to them in the model. In addition, there is a summary panel in the top-right stating if any errors are found.</p><p>Second, we use tokens to visualize errors interactively, i.e., show an execution leading to the error. Our analysis provides sample executions resulting in the found control-flow errors, which we visualize in the editor by showing how tokens move from the process start to an erroneous state. We are unaware of other tools that visualize errors directly and allow interactions, such as stopping/resuming and restarting.</p><p>In Figure <ref type="figure" target="#fig_2">2</ref>, the visualization has been paused just before an unsafe state was reached. One token is already located at the marked sequence flow, while a second token is currently waiting at the exclusive gateway e1. The visualization can be resumed or restarted using the play and restart on the left side. The gateway e1 will execute when resumed, resulting in two tokens at the subsequent sequence flow, i.e., an unsafe execution state. Furthermore, one can control the visualization speed using the bottom buttons next to the speedometer.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.3.">Fixable Analysis</head><p>Besides detecting, highlighting, and visualizing control flow errors, the BPMN Analyzer suggests fixes like quick fixes in IDEs. Quick fixes cannot be provided for all errors, but we currently cover many patterns leading to deadlocks, lack of synchronization, message starvation, and reused end events. The quick fixes we support are described in detail in <ref type="bibr" target="#b2">[3]</ref> and can be extended independently of the formal analysis. We are unaware of other tools that can fix identified control-flow errors.</p><p>For example, Figure <ref type="figure" target="#fig_2">2</ref> shows a screenshot of our tool, where quick fixes are depicted as green overlays containing a light bulb icon. A user can apply a quick fix by clicking on a green overlay and instantly see the changes regarding control flow errors. If unhappy with the result, a user can undo all changes since each quick fix is entirely revertible due to the command pattern. A user might not like a quick fix if it not only fixes an error but also has unintended side effects, such as introducing a different control flow error. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">Maturity of the Tool</head><p>The BPMN Analyzer incorporates many findings from our previous work <ref type="bibr" target="#b3">[4]</ref> while focusing on instantaneous and understandable error detection, as described in the previous section. The tool is open source <ref type="bibr" target="#b2">[3]</ref>, and we ensure high code quality by employing industry best practices such as rigorous static analysis and testing. Furthermore, we received positive feedback from companies in the BPMN process orchestration space <ref type="bibr" target="#b2">[3]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Conclusion &amp; Future Work</head><p>In this paper, we describe the novel BPMN Analyzer that provides instantaneous, comprehensible, and fixable BPMN control flow error detection and is integrated into a popular BPMN modeling tool. We benchmarked our tool against synthetic and realistic BPMN models to demonstrate instantaneous soundness checking. We address the three main challenges, coverage, immediacy, and consumability, to provide formal analysis to non-expert users as identified in <ref type="bibr" target="#b0">[1]</ref>. In addition, our tool offers quick fixes for common patterns that lead to control flow errors. One can understand the BPMN Analyzer as a BPMN-specific model checker, implemented in Rust paired with an intuitive user interface based on the popular bpmn.io ecosystem that is open for extension by design.</p><p>In future work, we aim to improve our tool by providing more quick fixes, considering advanced BPMN elements such as different events, and ranking quick fixes based on usefulness and previous user behavior. Finally, we aspire to test our tool in a real-world scenario to gather feedback and measure its impact on productivity.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>Proceedings of the Best BPM Dissertation Award, Doctoral Consortium, and Demonstrations &amp; Resources Forum co-located with 22nd International Conference on Business Process Management (BPM 2024), Krakow, Poland, September 1st to 6th, 2024.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Overview of the BPMN Analyzer 2.0</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Execution visualization (left) and suggested quick fixes (right) in the BPMN Analyzer</figDesc><graphic coords="4,89.42,518.70,213.79,95.03" 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>Benchmark results of the parallel branches models</figDesc><table><row><cell cols="4">Branches Branch Length Runtime States</cell></row><row><cell>5</cell><cell>1</cell><cell>1 ms</cell><cell>35</cell></row><row><cell>10</cell><cell>1</cell><cell>3 ms</cell><cell>1.027</cell></row><row><cell>15</cell><cell>1</cell><cell>161 ms</cell><cell>32.771</cell></row><row><cell>16</cell><cell>1</cell><cell>360 ms</cell><cell>65.539</cell></row><row><cell>17</cell><cell>1</cell><cell cols="2">790 ms 131.075</cell></row><row><cell>20</cell><cell>1</cell><cell cols="2">8.803 ms 1.048.579</cell></row><row><cell>5</cell><cell>5</cell><cell>14 ms</cell><cell>7.779</cell></row><row><cell>3</cell><cell>20</cell><cell>11 ms</cell><cell>9.264</cell></row></table></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>Benchmark results of the realistic BPMN models</figDesc><table><row><cell>Model name</cell><cell cols="2">Runtime States</cell></row><row><cell>e001 [6]</cell><cell>1 ms</cell><cell>39</cell></row><row><cell>e002 [6]</cell><cell>1 ms</cell><cell>39</cell></row><row><cell>e020 [6]</cell><cell cols="2">10 ms 5356</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_0">https://github.com/camunda/bpmn-for-research</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Analysis on demand: Instantaneous soundness checking of industrial business process models</title>
		<author>
			<persName><forename type="first">D</forename><surname>Fahland</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Favre</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Koehler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Lohmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Völzer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Wolf</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.datak.2011.01.004</idno>
	</analytic>
	<monogr>
		<title level="j">Data &amp; Knowledge Engineering</title>
		<imprint>
			<biblScope unit="volume">70</biblScope>
			<biblScope unit="page" from="448" to="466" />
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">A Classification of BPMN Collaborations based on Safeness and Soundness Notions</title>
		<author>
			<persName><forename type="first">F</forename><surname>Corradini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Muzi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Re</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Tiezzi</surname></persName>
		</author>
		<idno type="DOI">10.4204/EPTCS.276.5</idno>
	</analytic>
	<monogr>
		<title level="j">Electronic Proceedings in Theoretical Computer Science</title>
		<imprint>
			<biblScope unit="volume">276</biblScope>
			<biblScope unit="page" from="37" to="52" />
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<author>
			<persName><forename type="first">T</forename><surname>Kräuter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Stünkel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Rutle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>König</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Lamo</surname></persName>
		</author>
		<idno type="arXiv">arXiv:2407.03965</idno>
		<title level="m">Instantaneous, Comprehensible, and Fixable Soundness Checking of Realistic BPMN Models</title>
				<imprint>
			<date type="published" when="2024">2024</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<author>
			<persName><forename type="first">T</forename><surname>Kräuter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Rutle</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>König</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Lamo</surname></persName>
		</author>
		<idno type="arXiv">arXiv:2311.05243</idno>
		<title level="m">A higher-order transformation approach to the formalization and analysis of BPMN using graph transformation systems</title>
				<imprint>
			<date type="published" when="2024">2024</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">A formal approach for the analysis of BPMN collaboration models</title>
		<author>
			<persName><forename type="first">F</forename><surname>Corradini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Fornari</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Polini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Re</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Tiezzi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Vandin</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.jss.2021.111007</idno>
	</analytic>
	<monogr>
		<title level="j">Journal of Systems and Software</title>
		<imprint>
			<biblScope unit="volume">180</biblScope>
			<biblScope unit="page">111007</biblScope>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">A First-Order Logic verification framework for communication-parametric and time-aware BPMN collaborations</title>
		<author>
			<persName><forename type="first">S</forename><surname>Houhou</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Baarir</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Poizat</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Quéinnec</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Kahloul</surname></persName>
		</author>
		<idno type="DOI">10.1016/j.is.2021.101765</idno>
	</analytic>
	<monogr>
		<title level="j">Information Systems</title>
		<imprint>
			<biblScope unit="volume">104</biblScope>
			<biblScope unit="page">101765</biblScope>
			<date type="published" when="2022">2022</date>
		</imprint>
	</monogr>
</biblStruct>

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