A framework for verifying deadlock and nondeterminism in UML activity diagrams based on CSP

Deadlock and nondeterminism may become increasingly hard to detect in concurrent and distributed systems. UML activity diagrams are flowcharts that model sequential and concurrent behavior. Although the UML community widely adopts such diagrams, there is no standard approach to verify the presence of deadlock and nondeterministic behavior in activity diagrams. Nondeterminism is usually neglected in the literature even though it may be considered a very relevant property. This work proposes a framework for the automatic verification of deadlock and nondeterminism in UML activity diagrams. It introduces a compositional CSP semantics for activity diagrams that is used to automatically generate CSP specifications from UML models. These specifications are the input for the automatic verification of deadlock and nondeterministic behavior using the FDR refinement checker. We propose a plugin for the Astah modeling environment that mechanizes the translation process, and that calls FDR in the background to perform the verification of properties. The tool keeps the traceability between a diagram and its CSP specification. It parses the FDR results to highlight the diagram paths that lead to a deadlock or a nondeterministic behavior. This framework adds verification capabilities to the UML modeling tool and keeps the formal semantics transparent to the users. Therefore, the user does not need to understand or manipulate formal notations during modeling. We present the results of a case study that applies the proposed framework for the verification of models in the domain of cloud computing. We discuss future applications due to the potential of our approach.

[1]  James B. Dabney,et al.  8.4.2 Error Cost Escalation Through the Project Life Cycle , 2004 .

[2]  Allaoua Chaoui,et al.  From UML Activity Diagrams to CSP Expressions: A Graph Transformation Approach using Atom 3 Tool , 2011 .

[3]  Dan C. Marinescu,et al.  Cloud Computing: Theory and Practice , 2013 .

[4]  Barry W. Boehm,et al.  What we have learned about fighting defects , 2002, Proceedings Eighth IEEE Symposium on Software Metrics.

[5]  Philip Samuel,et al.  Improving design quality by automatic verification of activity diagram syntax , 2012, 2012 12th International Conference on Intelligent Systems Design and Applications (ISDA).

[6]  Dong Seong Kim,et al.  Candy: Component-based Availability Modeling Framework for Cloud Service Management Using SysML , 2011, 2011 IEEE 30th International Symposium on Reliable Distributed Systems.

[7]  A. W. Roscoe,et al.  FDR3 - A Modern Refinement Checker for CSP , 2014, TACAS.

[8]  A. W. Roscoe Understanding Concurrent Systems , 2010, Texts in Computer Science.

[9]  Fausto Giunchiglia,et al.  NUSMV: A New Symbolic Model Verifier , 1999, CAV.

[10]  Augusto Sampaio,et al.  An integrated semantics for reasoning about SysML design models using refinement , 2017, Software & Systems Modeling.

[11]  Martin Lange Linear Time Logics Around PSL: Complexity, Expressiveness, and a Little Bit of Succinctness , 2007, CONCUR.

[12]  Lucas Lima Formalisation of SysML Models and Analysis based on Refinement , 2016 .

[13]  C. A. R. Hoare,et al.  Unifying theories of programming , 1998, RelMiCS.

[14]  Steve A. Schneider,et al.  Formal Verification of Tokeneer Behaviours Modelled in fUML Using CSP , 2010, ICFEM.

[15]  Christel Baier,et al.  Principles of model checking , 2008 .

[16]  Filippo Ricca,et al.  What are the used UML diagrams? A Preliminary Survey , 2013, EESSMOD@MoDELS.

[17]  Rik Eshuis,et al.  Symbolic model checking of UML activity diagrams , 2006, TSEM.

[18]  Jim Woodcock,et al.  Features of CML: A formal modelling language for Systems of Systems , 2012, 2012 7th International Conference on System of Systems Engineering (SoSE).

[19]  Márcio Cornélio,et al.  A Formal Semantics for SysML Activity Diagrams , 2013, SBMF.

[20]  Samir Ouchani,et al.  A formal verification framework for SysML activity diagrams , 2014, Expert Syst. Appl..

[21]  Francesco Tiezzi,et al.  An accessible verification environment for UML models of services , 2011, J. Symb. Comput..

[22]  Rich Maggiani Cloud computing is changing how we communicate , 2009, 2009 IEEE International Professional Communication Conference.

[23]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[24]  Fabio Gadducci,et al.  Specifying and Verifying UML Activity Diagrams Via Graph Transformation , 2004, Global Computing.

[25]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

[26]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

[27]  Ha Huy Cuong Nguyen Deadlock Prevention for Resource Allocation in Heterogeneous Distributed Platforms , 2016, ICADIWT.

[28]  Elhillali Kerkouche,et al.  UML Activity Diagrams and Maude Integrated Modeling and Analysis Approach Using Graph Transformation , 2015, ICIT 2015.

[29]  Marta Z. Kwiatkowska,et al.  PRISM: Probabilistic Symbolic Model Checker , 2002, Computer Performance Evaluation / TOOLS.

[30]  Mourad Debbabi,et al.  A unified approach for verification and validation of systems and software engineering models , 2006, 13th Annual IEEE International Symposium and Workshop on Engineering of Computer-Based Systems (ECBS'06).

[31]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[32]  Christel Baier,et al.  Principles of Model Checking (Representation and Mind Series) , 2008 .