# DICER 2.0: A New Model Checker for Data-Flow Errors of Concurrent Software Systems

^{1}

^{2}

^{3}

^{*}

## Abstract

**:**

## 1. Introduction

## 2. Basic Notations

**Definition**

**1.**

**Definition**

**2.**

**Definition**

**3.**

## 3. DICER 2.0

#### 3.1. The Modeling of Concurrent Systems Based on the Petri Net with Data Information

**Definition**

**4.**

#### 3.2. The Model-Checking Based on the GRG of WFD-Nets

**Definition 5.**(Weak configuration) Given a WFD-net N = $(P$, T, F, D, $GD$, $Read$, $Write$, $Delete$, $Guard)$, $c=\langle m,\sigma ,\eta \rangle $ is a weak configuration, if

**Definition 6.**(Enabling/firing rules) Given a WFD-net N = $(P$, T, F, D, $GD$, $Read$, $Write$, $Delete$, $Guard)$ and its weak configuration $c=\langle m,\sigma ,\eta \rangle $, a transition t is enabled at c and denoted by $c[t\rangle $, if

**Definition**

**7.**

- If $m\left(o\right)=0$ and no transition is enabled at the weak configuration c, then c is a deadlock. Thus, we can check deadlocks in N according to this formal specification. For example, the WFD-net in Figure 2a have a deadlock at the weak configuration ${c}_{8}:\langle [{p}_{3}+{p}_{4}],\left\{{v}_{2}\right\},\{\neg {g}_{1}\}\rangle $ because ${t}_{5}$ cannot read the data ${v}_{3}$ and no transition is enabled at this time.
- If $\forall c\in R\left({c}_{0}\right):m\left(o\right)>0\Rightarrow m=\left\{o\right\}$, then N is properly completed. For example, the WFD-net in Figure 2a is not properly completed since the final weak configuration is not reachable from the initial weak configuration and the sink place o has no token at this time.

#### 3.3. The Model-Checking Based on the Unfolding Techniques of PD-Nets

**Definition**

**8.**

#### 3.4. The Implementations of DICER 2.0

- In the module of graphical user interface, Place/Transition nets, WFD-nets and PD-nets can be imported, exported, drawn and edited. The labeling functions of data operations (e.g., read, write and delete) can be added, deleted and modified in DICER 2.0. Moreover, different kinds of Petri nets are imported and exported in the format of an extended Petri Net Markup Language [53] (ePNML). In fact, ePNML provides a common interchange format for all types of Petri nets based on XML, and defines specifications of data operations and guard functions. As shown in Figure 7, the label $\langle isData\rangle $ formalizes data-flows of concurrent systems, including labeling functions of read, write, delete and guards. Since ePNML is an XML-based document, we can create or parse these Petri nets according to some configuration files, e.g., GenerateObjectList.xsl and GeneratePNML.xsl.
- In the module of model checker, Place/Transition nets and PD-nets can be unfolded, and then we can get their FCPs. As for the FCPs of PD-nets, we can use their matrix calculations (e.g., causality matrix, conflict matrix and concurrency matrix) to find out all concurrent events and then check errors of data inconsistency. Additionally, both classical reachability graphs and guard-driven reachability graphs of WFD-nets can be constructed in DICER 2.0. Furthermore, they are used to analyze some data-flow properties of concurrent systems, e.g., deadlocks, data inconsistency and soundness [29].

- The class DataLayer acts on the Petri net modeling of concurrent systems. It can be used to create, edit (e.g., add, move, or modify), import and export a PD-net or a WFD-net. In this class, the method getNewData() is to obtain some information about the Petri net components of FCPs such as events, conditions and arcs.
- The class Unfolding is developed to unfold a PD-net or a Place/Transition net. Their FCPs can be generated by the method of unfolding_PDNet(visual, “ERV”, null). In this Java method, the parameter visual indicates whether an FCP needs to be displayed in the software interface, and the parameter ERV means a selected unfolding method, such as ERV, merged process, and directed unfolding.
- The class ReachabilityGraphGenerator is used to construct a guard-driven reachability graph of WFD-nets, and the methods generateGraph() and run(DataLayer) correspond to this function.
- The class InconsistentData is developed to check errors of data inconsistencies based on the unfolding of PD-nets, and the method detectISData() achieves this work in details.
- The classes GuiView and GuiFrame are used to create the front end, and display the software interface of DICER 2.0.
- A homomorphism from conditions to places (or from events to transitions) is represented by a hashmap. Its keys and values are in the form of $\langle Place$, $Place\rangle $ or $\langle Transition$, $Transition\rangle $, where Place and Transition are Java classes of Petri net components. Additionally, in order to improve the unfolding efficiency of PD-nets, we use some linked hash tables to store the contextual information of events and concurrent conditions, e.g., local configurations, pre/post-sets and cuts.

## 4. Case Study

#### 4.1. Case _1: Intelligent Traffic Light System (ITIC)

#### 4.2. Case _2: Health-Care Cyber-Physical System (HCPS)

## 5. Experiments

#### 5.1. Benchmarks

- The Index program [57] is widely used for the experimental evaluation of multi-threads.
- The Prime benchmark (http://docs.oracle.com/cd/E19205-01/820-0619/gdvwv/index.html, accessed on 16 April 2021) is a tutorial program for detecting data race.
- The Child_benefit benchmark [58] is an example of transactional payment processes for child benefits.
- The SystemC benchmark [59] illustrates a SystemC (a modeling language) module.
- The Driver [60] benchmark describes a simplified model of bluetooth drivers.
- AddGlobal [61] gives an example of concurrency bugs.
- The AppLoan benchmark [62] describes a business process of approving property loan.
- The Airport benchmark [63] shows a business process of an airport check-in system.
- Case_1 and Case_2 are two case studies of intelligent traffic light system and health-care cyber-physical system, respectively.

#### 5.2. Implementation and Results

- (1)
- The experiments on the GRG of WFD-nets

- (2)
- The experiments on the unfolding of PD-nets

- (3)
- The comparison experiments between DICER 2.0 and other Petri net tools.

- The same or similar runtime environments.
- The same or similar functions and features.
- Available installations.

## 6. Conclusions

## Author Contributions

## Funding

## Institutional Review Board Statement

## Informed Consent Statement

## Data Availability Statement

## Conflicts of Interest

## References

- Liu, G.; Jiang, C.; Zhou, M. Process nets with channels. IEEE Trans. Syst. Man Cybern. Part A Syst. Hum.
**2012**, 42, 213–225. [Google Scholar] [CrossRef] - You, D.; Wang, S.G.; Seatzu, C. Verification of Fault-predictability in Labeled Petri Nets Using Predictor Graphs. IEEE Trans. Autom. Control
**2019**, 64, 4353–4360. [Google Scholar] [CrossRef] - Li, W.; Xia, Y.; Zhou, M.; Sun, X.; Zhu, Q. Fluctuation-aware and predictive workflow scheduling in cost-effective Infrastructure-as-a-Service clouds. IEEE Access
**2018**, 6, 61488–61502. [Google Scholar] [CrossRef] - Trčka, N.; Van der Aalst, W.M.; Sidorova, N. Data-flow anti-patterns: Discovering data-flow errors in workflows. In International Conference on Advanced Information Systems Engineering; Springer: Berlin/Heidelberg, Germany, 2009; pp. 425–439. [Google Scholar]
- Xiang, D.; Liu, G.; Yan, C.; Jiang, C. Detecting data inconsistency based on the unfolding technique of petri nets. IEEE Trans. Ind. Inform.
**2017**, 13, 2995–3005. [Google Scholar] [CrossRef] - Liu, C.; Zeng, Q.; Duan, H.; Wang, L.; Tan, J.; Ren, C.; Yu, W. Petri net based data-flow error detection and correction strategy for business processes. IEEE Access
**2020**, 8, 43265–43276. [Google Scholar] [CrossRef] - Murata, T. Petri nets: Properties, analysis and applications. Proc. IEEE
**1989**, 77, 541–580. [Google Scholar] [CrossRef] - Gerogiannis, V.C.; Kameas, A.D.; Pintelas, P.E. Comparative study and categorization of high-level petri nets. J. Syst. Softw.
**1998**, 43, 133–160. [Google Scholar] [CrossRef] - Zuberek, W.M. Timed Petri nets definitions, properties, and applications. Microelectron. Reliab.
**1991**, 31, 627–644. [Google Scholar] [CrossRef] - Balbo, G. Introduction to generalized stochastic Petri nets. In Proceedings of the 7th International Conference on Formal Methods for Performance Evaluation, Bertinoro, Italy, 8 May–2 June 2007; Springer: Berlin/Heidelberg, Germany; pp. 83–131. [Google Scholar]
- Luan, W.; Qi, L.; Zhao, Z.; Liu, J.; Du, Y. Logic Petri Net Synthesis for Cooperative Systems. IEEE Access
**2019**, 7, 161937–161948. [Google Scholar] [CrossRef] - Moutinho, F.; Gomes, L. Asynchronous-channels within Petri net-based GALS distributed embedded systems modeling. IEEE Trans. Ind. Inform.
**2014**, 10, 2024–2033. [Google Scholar] [CrossRef] - Kheldoun, A.; Barkaoui, K.; Ioualalen, M. Formal verification of complex business processes based on high-level Petri nets. Inf. Sci.
**2017**, 385, 39–54. [Google Scholar] [CrossRef] - Buchs, D.; Guelfi, N. A formal specification framework for object-oriented distributed systems. IEEE Trans. Softw. Eng.
**2000**, 26, 635–652. [Google Scholar] [CrossRef] - Barkaoui, K.; Ayed, R.B.; Boucheneb, H.; Hicheur, A. Verification of workflow processes under multilevel security considerations. In Proceedings of the 2008 Third International Conference on Risks and Security of Internet and Systems, Tozeur, Tunisia, 28–30 October 2008; pp. 77–84. [Google Scholar]
- He, X. Modeling and Analyzing Smart Contracts using Predicate Transition Nets. In Proceedings of the 2020 IEEE 20th International Conference on Software Quality, Reliability and Security Companion (QRS-C), Macau, China, 11–14 December 2020; pp. 108–115. [Google Scholar]
- Wu, D.; Zheng, W. Formal model-based quantitative safety analysis using timed Coloured Petri Nets. Reliab. Eng. Syst. Saf.
**2018**, 176, 62–79. [Google Scholar] [CrossRef] - Yu, W.; Yan, C.; Ding, Z.; Jiang, C.; Zhou, M. Modeling and validating e-commerce business process based on Petri nets. IEEE Trans. Syst. Man Cybern. Syst.
**2013**, 44, 327–341. [Google Scholar] [CrossRef] - Varea, M.; Al-Hashimi, B.M.; Cortés, L.A.; Eles, P.; Peng, Z. Dual Flow Nets: Modeling the control/data-flow relation in embedded systems. ACM Trans. Embed. Comput. Syst. (TECS)
**2006**, 5, 54–81. [Google Scholar] [CrossRef] - Awad, A.; Decker, G.; Lohmann, N. Diagnosing and repairing data anomalies in process models. In International Conference on Business Process Management; Springer: Berlin/Heidelberg, Germany, 2009; pp. 5–16. [Google Scholar]
- Sharma, D.; Pinjala, S.; Sen, A.K. Correction of Data-flow Errors in Workflows. In Proceedings of the 25th Australasian Conference on Information Systems (ACIS), Auckland, New Zealand, 8–10 December 2014. [Google Scholar]
- Baldan, P.; Bruni, A.; Corradini, A.; König, B.; Rodríguez, C.; Schwoon, S. Efficient unfolding of contextual Petri nets. Theor. Comput. Sci.
**2012**, 449, 2–22. [Google Scholar] [CrossRef] - Montanari, U.; Rossi, F. Contextual nets. Acta Inform.
**1995**, 32, 545–596. [Google Scholar] [CrossRef] - Kähkönen, K.; Heljanko, K. Testing Programs with Contextual Unfoldings. ACM Trans. Embed. Comput. Syst. (TECS)
**2017**, 17, 1–25. [Google Scholar] [CrossRef] - Sidorova, N.; Stahl, C.; Trčka, N. Soundness verification for conceptual workflow nets with data: Early detection of errors with the most precision possible. Inf. Syst.
**2011**, 36, 1026–1043. [Google Scholar] [CrossRef] - Yang, B.; Liu, G.; Xiang, D.; Yan, C.; Jiang, C. A Heuristic Method of Detecting Data Inconsistency Based on Petri Nets. In Proceedings of the 2018 IEEE International Conference on Systems, Man, and Cybernetics (SMC), Miyazaki, Japan, 7–10 October 2018; pp. 202–208. [Google Scholar]
- Trecka, N.; van der Aalst, W.; Sidorova, N. Workflow completion patterns. In Proceedings of the 2009 IEEE International Conference on Automation Science and Engineering, Bangalore, India, 22–25 August 2009; pp. 7–12. [Google Scholar]
- Zou, J.; Liu, X.; Sun, H.; Zeng, J. Live instance migration with data consistency in composite service evolution. In Proceedings of the 2010 6th World Congress on Services, Miami, FL, USA, 5–10 July 2010; pp. 653–656. [Google Scholar]
- Xiang, D.; Liu, G.; Yan, C.G.; Jiang, C. A Guard-driven Analysis Approach of Workflow Net With Data. IEEE Trans. Serv. Comput.
**2018**. [Google Scholar] [CrossRef] - Wisniewski, R.; Karatkevich, A.; Adamski, M.; Costa, A.; Gomes, L. Prototyping of Concurrent Control Systems With Application of Petri Nets and Comparability Graphs. IEEE Trans. Control Syst. Technol.
**2017**, 26, 575–586. [Google Scholar] [CrossRef] - Wisniewski, R.; Wisniewska, M.; Jarnut, M. C-exact Hypergraphs in Concurrency and Sequentiality Analyses of Cyber-Physical Systems Specified by Safe Petri Nets. IEEE Access
**2019**, 7, 13510–13522. [Google Scholar] [CrossRef] - McMillan, K.L. Using unfoldings to avoid the state explosion problem in the verification of asynchronous circuits. In Computer Aided Verification; Springer: Berlin/Heidelberg, Germany, 1992; pp. 164–177. [Google Scholar]
- Franco, A.; Baldan, P. True Concurrency and Atomicity: A Model Checking Approach with Contextual Petri Nets; LAP LAMBERT Academic Publishing: Saarbrucken, Germany, 2015. [Google Scholar]
- Haar, S. Types of asynchronous diagnosability and the reveals-relation in occurrence nets. IEEE Trans. Autom. Control
**2010**, 55, 2310–2320. [Google Scholar] [CrossRef][Green Version] - Hickmott, S.L.; Rintanen, J.; Thiébaux, S.; White, L.B. Planning via Petri Net Unfolding. Int. Jt. Conf. Artif. Intell.
**2007**, 7, 1904–1911. [Google Scholar] - de León, H.P.; Saarikivi, O.; Kähkönen, K.; Heljanko, K.; Esparza, J. Unfolding Based Minimal Test Suites for Testing Multithreaded Programs. In Proceedings of the 15th International Conference on Application of Concurrency to System Design, Brussels, Belgium, 21–26 June 2015; pp. 40–49. [Google Scholar]
- Khomenko, V.; Koutny, M. LP deadlock checking using partial order dependencies. In International Conference on Concurrency Theory; Springer: Berlin/Heidelberg, Germany, 2000; pp. 410–425. [Google Scholar]
- Liu, G.; Reisig, W.; Jiang, C. A Branching-process-based method to check soundness of workflow systems. IEEE Access
**2016**, 4, 4104–4118. [Google Scholar] [CrossRef] - Rodriguez, C.; Schwoon, S. Verification of Petri nets with read arcs. In International Conference on Concurrency Theory; Springer: Berlin/Heidelberg, Germany, 2012; pp. 471–485. [Google Scholar]
- Dingle, N.J.; Knottenbelt, W.J.; Suto, T. PIPE2: A tool for the performance evaluation of generalised stochastic Petri Nets. ACM SIGMETRICS Perform. Eval. Rev.
**2009**, 36, 34–39. [Google Scholar] [CrossRef] - Heiner, M.; Herajy, M.; Liu, F.; Rohr, C.; Schwarick, M. Snoopy—A unifying Petri net tool. In International Conference on Application and Theory of Petri Nets and Concurrency; Springer: Berlin/Heidelberg, Germany, 2012; pp. 398–407. [Google Scholar]
- Jensen, K.; Kristensen, L.M.; Wells, L. Coloured Petri Nets and CPN Tools for modelling and validation of concurrent systems. Int. J. Softw. Tools Technol. Transf.
**2007**, 9, 213–254. [Google Scholar] [CrossRef] - Aalst, W.M.P.V.D.; Hee, K.M.V.; Hofstede, A.H.M.T.; Sidorova, N.; Wynn, M.T. Soundness of workflow nets: Classification, decidability, and analysis. Form. Asp. Comput.
**2011**, 23, 333–363. [Google Scholar] [CrossRef][Green Version] - Liu, C.; Zeng, Q.; Cheng, L.; Duan, H.; Zhou, M.; Cheng, J. Privacy-preserving behavioral correctness verification of cross-organizational workflow with task synchronization patterns. IEEE Trans. Autom. Sci. Eng.
**2020**. [Google Scholar] [CrossRef] - Xiang, D.; Liu, G.; Yan, C.; Jiang, C. DICER: Data Inconsistency CheckER based on the unfolding technique of Petri net. In Proceedings of the 2017 IEEE 14th International Conference on Networking, Sensing and Control (ICNSC), Calabria, Italy, 16–18 May 2017; pp. 115–120. [Google Scholar]
- Saarikivi, O.; Ponce-De-León, H.; Kähkönen, K.; Heljanko, K.; Esparza, J. Minimizing test suites with unfoldings of multithreaded programs. ACM Trans. Embed. Comput. Syst. (TECS)
**2017**, 16, 45. [Google Scholar] [CrossRef] - Xiang, D.; Liu, G.; Yan, C.; Jiang, C. Detecting data-flow errors based on Petri nets with data operations. IEEE/CAA J. Autom. Sin.
**2017**, 5, 251–260. [Google Scholar] [CrossRef] - Xiang, D.; Liu, G. Checking Data-Flow Errors Based on The Guard-Driven Reachability Graph of WFD-Net. Comput. Inform.
**2020**, 39, 193–212. [Google Scholar] [CrossRef] - De Masellis, R.; Di Francescomarino, C.; Ghidini, C.; Tessaris, S. Enhancing workflow-nets with data for trace completion. In International Conference on Business Process Management; Springer: Berlin/Heidelberg, Germany, 2017; pp. 89–106. [Google Scholar]
- Evron, Y.; Soffer, P.; Zamansky, A. Incorporating data inaccuracy considerations in process models. In Enterprise, Business-Process and Information Systems Modeling; Springer: Berlin/Heidelberg, Germany, 2017; pp. 305–318. [Google Scholar]
- Lu, F.; Tao, R.; Du, Y.; Zeng, Q.; Bao, Y. Deadlock detection-oriented unfolding of unbounded Petri nets. Inf. Sci.
**2019**, 497, 1–22. [Google Scholar] [CrossRef] - Esparza, J.; Römer, S.; Vogler, W. An improvement of McMillan’s unfolding algorithm. Form. Methods Syst. Des.
**2002**, 20, 285–310. [Google Scholar] [CrossRef] - Hillah, L.-M.; Kordon, F.; Petrucci, L.; Treves, N. Pnml framework: an extendable reference implementation of the petri net markup language. In Proceedings of the International Conference on Applications and Theory of Petri Nets, Braga, Portugal, 21–25 June 2010; pp. 318–327. [Google Scholar]
- Aziz, M.W.; Rashid, M. Domain specific modeling language for cyber physical systems. In Proceedings of the 2016 International Conference on Information Systems Engineering (ICISE), Los Angeles, CA, USA, 20–22 April 2016; pp. 29–33. [Google Scholar]
- Qi, L.; Zhou, M.; Luan, W. A two-level traffic light control strategy for preventing incident-based urban traffic congestion. IEEE Trans. Intell. Transp. Syst.
**2018**, 19, 13–24. [Google Scholar] [CrossRef] - Graja, I.; Kallel, S.; Guermouche, N.; Kacem, A.H. BPMN4CPS: A BPMN extension for modeling cyber-physical systems. In Proceedings of the 2016 IEEE 25th International Conference on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE), Paris, France, 13–15 June 2016; pp. 152–157. [Google Scholar]
- Flanagan, C.; Godefroid, P. Dynamic partial-order reduction for model checking software. ACM Sigplan Not.
**2005**, 40, 110–121. [Google Scholar] [CrossRef][Green Version] - Lodde, A.; Schlechter, A.; Bauler, P.; Feltz, F. Data Consistency in Transactional Business Processes. In International Conference on Business Informatics Research; Springer: Berlin/Heidelberg, Germany, 2011; pp. 83–95. [Google Scholar]
- Blanc, N.; Kroening, D. Race analysis for SystemC using model checking. ACM Trans. Des. Autom. Electron. Syst. (TODAES)
**2010**, 15, 1–32. [Google Scholar] [CrossRef] - Razavi, N.; Ivančić, F.; Kahlon, V.; Gupta, A. Concurrent test generation using concolic multi-trace analysis. In Asian Symposium on Programming Languages and Systems; Springer: Berlin/Heidelberg, Germany, 2012; pp. 239–255. [Google Scholar]
- Sinha, N.; Wang, C. Staged concurrent program analysis. In Proceedings of the Eighteenth ACM SIGSOFT International Symposium on Foundations of Software Engineering, Santa Fe, NM, USA, 7–11 November 2010; pp. 47–56. [Google Scholar]
- Sun, S.X.; Zhao, J.L.; Nunamaker, J.F.; Sheng, O.R.L. Formulating the data-flow perspective for business process management. Inf. Syst. Res.
**2006**, 17, 374–391. [Google Scholar] [CrossRef] - Xiang, D.; Tao, X.; Liu, Y. An Incremental and Backward-Conflict Guided Method for Unfolding Petri Nets. Symmetry
**2021**, 13, 392. [Google Scholar] [CrossRef] - Kim, K.H.; Yavuz-Kahveci, T.; Sanders, B.A. JRF-E: Using model checking to give advice on eliminating memory model-related bugs. Autom. Softw. Eng.
**2012**, 19, 491–530. [Google Scholar] [CrossRef] - Zhang, M.; Wu, Y.; Shan, L.U.; Qi, S.; Ren, J.; Zheng, W. A Lightweight System for Detecting and Tolerating Concurrency Bugs. IEEE Trans. Softw. Eng.
**2016**, 42, 899–917. [Google Scholar] [CrossRef]

**Figure 1.**The state–space (reachability graphs) of WFD-nets and state–space explosion problems. (

**f**) is the reachability graph of ${\Sigma}_{1}$ in (

**a**); (

**g**) is the reachability graph of ${\Sigma}_{2}$ in (

**b**); (

**h**) is the reachability graph of ${\Sigma}_{3}$ in (

**c**); (

**i**) is the reachability graph of ${\Sigma}_{4}$ in (

**d**); and (

**j**) is the reachability graph of ${\Sigma}_{5}$ in (

**e**).

**Figure 2.**(

**a**) A WFD-net $\Sigma $; (

**b**) the guard-driven reachability graph (GRG) of $\Sigma $; (

**c**) a PD-net ${\Sigma}^{\prime}$; (

**d**) the unfolding $FCP$ of ${\Sigma}^{\prime}$.

**Figure 3.**Some matrix manipulations on the FCP in Figure 2b.

**Figure 7.**An extended PNML [53] (ePNML) document of Petri nets with data operations and guards.

**Figure 10.**A guard-driven reachability graph (GRG) of Figure 9. (

**a**) A user interface for generating a GRG; (

**b**) the visualization of a GRG.

**Figure 12.**Detecting errors of data inconsistency based on the unfolding techniques of PD-nets; (

**a**) an FCP of the PD-net in Figure 11; (

**b**) the detection results.

Tools | Petri Nets | Functions | Branching Process | The Unfolding Techniques within Data-Flows | Data-Flow Error Detection |
---|---|---|---|---|---|

Snoopy | Graphical editor | ||||

CPN Tools | P/T net | Reachability graph | |||

ProM | Timed Petri net | Condensed state spaces | × | × | × |

PIPE2 | High-level Petri net | P/T invariants | |||

PROTOS | Structural analysis | ||||

Maude | ECATNet | Rewriting logic | |||

LTL model-checking | |||||

Acceleo+Maude | RECATNet | Transform RECATNets | × | × | √ |

into rewriting logics | |||||

PIPE+ | PrTNet | Modeling & simulating | |||

ERVunfold | P/T net | Deadlocks | √ | × | × |

Tours | Test-case generation | ||||

PUNF | Safe C-net | Reachability | √ | × | × |

MOLE | Coverability | ||||

DICER 2.0 | WFD-net | Detecting | √ | √ | √ |

PD-net | data inconsistency | ||||

P/T net | Deadlocks | ||||

WF-net | Reachability |

Place ID | Meanings |
---|---|

${p}_{2}$ | The yellow light of NS Road |

${p}_{3}$ | The red light of NS Road |

${p}_{4}$ | The green light of NS Road |

${p}_{6}$ | The pre-green light of EW Road |

${p}_{7}$ | The green light of EW Road |

${p}_{8}$ | The yellow light of EW Road |

${p}_{10}$ | The red light of EW Road |

${p}_{0},{p}_{1},{p}_{5},{p}_{9}$ | (Control places) |

Transition ID | Meanings | Transition ID | Meanings |
---|---|---|---|

${t}_{0}$ | Receive emergency call | ${t}_{9}$ | Control activity |

${t}_{1}$ | Receive warning | ${t}_{10}$ | Send warming |

${t}_{2}$ | Find location | ${t}_{11}$ | Store data |

${t}_{3}$ | Send ambulance | ${t}_{12}$ | Receive order |

${t}_{4}$ | Send drone | ${t}_{13}$ | Measure vital signals (E-health) |

${t}_{5}$ | Supervise Drone | ${t}_{14}$ | Movement of the ambulance |

${t}_{6}$ | Receive data | ${t}_{15}$ | Movement of the drone |

${t}_{7}$ | Storage task | ${t}_{16}$ | Install defibrillator |

${t}_{8}$ | Send data |

Benchmarks | CRG | GRG | ||||
---|---|---|---|---|---|---|

Nos. of | Nos. of | Time of | Nos. of | Nos. of | Time of | |

States | Arcs | Constructing CRGs | States | Arcs | Constructing GRGs | |

SystemC | 33 | 62 | 76.6 | 25 | 39 | 62.5 |

AddGlob | 50 | 101 | 125.1 | 30 | 37 | 72.8 |

AppLoan | 51 | 112 | 149 | 17 | 22 | 63 |

Airport | 15 | 16 | 320 | 12 | 13 | 220 |

Driver(2) | 409 | 864 | 1987 | 172 | 283 | 532 |

Driver(4) | 4117 | 14,696 | 14,863 | 2215 | 6094 | 6793 |

Driver(6) | 22,921 | 105,988 | 95,333 | 13,754 | 48,346 | 45,461 |

Benchmarks | FCPs | RGs | ||||||
---|---|---|---|---|---|---|---|---|

$|\mathit{E}\cup \mathit{B}|$ | $\left|\mathit{G}\right|$ | Time of | Time of | Nos. of | Nos. of | Nos. of | Time of | |

Unfolding | Error Detection | Errors | States | Arcs | Constructing RGs | |||

Child_benefit | 10 | 13 | 22 | 3 | 0 | 37 | 79 | 45 |

Index (5) | 45 | 50 | 90 | 18 | 2 | 462 | 1680 | 557 |

Index (10) | 90 | 100 | 180 | 44 | 3 | 7686 | 38,691 | 11,104 |

Index (15) | 135 | 150 | 270 | 86 | 8 | 39,234 | 226,459 | 63,910 |

Index (20) | 180 | 200 | 360 | 150 | 15 | 101,341 | 616,469 | 178,974 |

Prime (2) | 37 | 39 | 75 | 13 | 0 | 82 | 197 | 102 |

Prime (4) | 69 | 73 | 141 | 29 | 1 | 1369 | 5829 | 1795 |

Prime (6) | 101 | 107 | 207 | 54 | 3 | 12,380 | 69,893 | 19,922 |

Prime (8) | 133 | 141 | 273 | 92 | 7 | 75,538 | 509,004 | 160,541 |

Tools | Case_1 | Case_2 | |||||
---|---|---|---|---|---|---|---|

Modeling | CRG | GRG | Modeling | RG | FCP | Detecting Data | |

($|\mathit{P}\cup \mathit{T}\cup \mathit{F}|$) | ($|\mathit{P}\cup \mathit{T}\cup \mathit{F}|$) | ($|\mathit{B}\cup \mathit{E}\cup \mathit{G}|$) | Inconsistency | ||||

DICER 2.0 | 31 | 77 | 68 | 87 | 608 | 137 | 1.0 (ms) |

PunF | 87 | – | – | 125 | – | – | – |

Improved PIPE | 31 | 77 | – | 87 | 608 | – | – |

Tina | 87 | 53 | – | 125 | 608 | – | – |

PIPE | 87 | 53 | – | 125 | 608 | – | – |

Tools | DICER 2.0 | Tina | PIPE | Punf | Improved PIPE | ||
---|---|---|---|---|---|---|---|

Functions | |||||||

Case_1 | WFD-net | ■ | □ | □ | □ | ■ | |

Reachability graph | ■ | ■ | ■ | ■ | ■ | ||

Guard-driven reachability graph | ■ | □ | □ | □ | □ | ||

Unfolding | ■ | □ | □ | ■ | □ | ||

Unfolding within data-flows | □ | □ | □ | □ | □ | ||

Checking data inconsistency | ■ | □ | □ | □ | □ | ||

Case_2 | WFD-net | ■ | □ | □ | □ | ■ | |

Reachability graph | ■ | ■ | ■ | ■ | ■ | ||

Guard-driven reachability graph | ■ | □ | □ | □ | □ | ||

Unfolding | ■ | □ | □ | □ | □ | ||

Unfolding within data-flows | ■ | □ | □ | □ | □ | ||

Checking data inconsistency | ■ | □ | □ | □ | □ |

Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |

© 2021 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Xiang, D.; Zhao, F.; Liu, Y. DICER 2.0: A New Model Checker for Data-Flow Errors of Concurrent Software Systems. *Mathematics* **2021**, *9*, 966.
https://doi.org/10.3390/math9090966

**AMA Style**

Xiang D, Zhao F, Liu Y. DICER 2.0: A New Model Checker for Data-Flow Errors of Concurrent Software Systems. *Mathematics*. 2021; 9(9):966.
https://doi.org/10.3390/math9090966

**Chicago/Turabian Style**

Xiang, Dongming, Fang Zhao, and Yaping Liu. 2021. "DICER 2.0: A New Model Checker for Data-Flow Errors of Concurrent Software Systems" *Mathematics* 9, no. 9: 966.
https://doi.org/10.3390/math9090966