An enhanced flow analysis technique for detecting unreachability faults in concurrent systems

We present a flow analysis technique for detecting unreachable states and actions in concurrent systems. It is an enhancement of the approach by Cheung and Kramer. Each process of a concurrent system is modeled as a finite state machine, whose states represent process execution states and whose transitions are labeled by actions. We construct dependency sets incrementally and eliminate spurious paths by checking the execution sequences of actions. We prove mathematically that our algorithm can detect more unreachability faults than the well-known Reif/Smolka and Cheung/Kramer algorithms. The algorithm is easy to manage and its complexity is still polynomial to the system size. Case studies on two commonly used communication protocols show that the technique is effective.

[1]  Michal Young,et al.  Towards scalable compositional analysis by refactoring design models , 2003, ESEC/FSE-11.

[2]  Robert Meolic,et al.  ACTLW - An action-based computation tree logic with unless operator , 2008, Inf. Sci..

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

[4]  Shing-Chi Cheung,et al.  Tractable Dataflow Analysis for Distributed Systems , 1994, IEEE Trans. Software Eng..

[5]  Paul D. Hovland,et al.  Data-Flow Analysis for MPI Programs , 2006, 2006 International Conference on Parallel Processing (ICPP'06).

[6]  Shin Nakajima,et al.  The SPIN Model Checker : Primer and Reference Manual , 2004 .

[7]  Thomas Filkorn,et al.  Generating BDDs for symbolic model checking in CCS , 2005, Distributed Computing.

[8]  Robin Sharp Principles of protocol design , 1978 .

[9]  Lori A. Clarke,et al.  FLAVERS: A finite state verification technique for software systems , 2002, IBM Syst. J..

[10]  Yukiko Yamauchi,et al.  Calibrating embedded protocols on asynchronous systems , 2010, Inf. Sci..

[11]  Augusto Sampaio,et al.  Compositional Verification of Input-Output Conformance via CSP Refinement Checking , 2009, ICFEM.

[12]  Jeffrey J. P. Tsai,et al.  Model and heuristic technique for efficient verification of component-based software systems , 2002, Proceedings First IEEE International Conference on Cognitive Informatics.

[13]  Shing-Chi Cheung,et al.  Context constraints for compositional reachability analysis , 1996, TSEM.

[14]  Shing-Chi Cheung,et al.  An integrated method for effective behaviour analysis of distributed systems , 1994, Proceedings of 16th International Conference on Software Engineering.

[15]  S. Ramesh,et al.  Apportioning: A Technique for Efficient Reachability Analysis of Concurrent Object-Oriented Programs , 2001, IEEE Trans. Software Eng..

[16]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[17]  Shing-Chi Cheung,et al.  Tractable Flow Analysis for Anomaly Detection in Distributed Programs , 1993, ESEC.

[18]  Scott A. Smolka,et al.  The complexity of reachability in distributed communicating processes , 1988, Acta Informatica.

[19]  S. Purushothaman Iyer,et al.  Data flow analysis of communicating finite state machines , 1991, TOPL.

[20]  Richard N. Taylor,et al.  A general-purpose algorithm for analyzing concurrent programs , 1983, CACM.

[21]  Yuanyuan Zhou,et al.  Learning from mistakes: a comprehensive study on real world concurrency bug characteristics , 2008, ASPLOS.

[22]  Einar Broch Johnsen,et al.  Creol: A type-safe object-oriented model for distributed concurrent systems , 2006, Theor. Comput. Sci..

[23]  Edmund M. Clarke,et al.  Symbolic model checking for sequential circuit verification , 1993, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[24]  Lori A. Clarke,et al.  Classifying properties: an alternative to the safety-liveness classification , 2000, SIGSOFT '00/FSE-8.

[25]  Benedikt Bollig,et al.  Learning Communicating Automata from MSCs , 2010, IEEE Transactions on Software Engineering.

[26]  Richard H. Carver,et al.  Incremental Integration Testing of Concurrent Programs , 2002, IEEE Trans. Software Eng..

[27]  Michel Diaz,et al.  Petri Nets: Fundamental Models, Verification and Applications , 2009 .

[28]  Rajiv Gupta,et al.  A practical framework for demand-driven interprocedural data flow analysis , 1997, TOPL.

[29]  Antonella Santone,et al.  A user-friendly interface to specify temporal properties of concurrent systems , 2007, Inf. Sci..

[30]  Scott A. Smolka,et al.  Data flow analysis of distributed communicating processes , 1990, International Journal of Parallel Programming.

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

[32]  James V. Hansen,et al.  Standards and verification for fair-exchange and atomicity in e-commerce transactions , 2006, Inf. Sci..

[33]  Wolfgang Ahrendt,et al.  A system for compositional verification of asynchronous objects , 2012, Sci. Comput. Program..

[34]  Mohamed G. Gouda,et al.  Proving liveness for networks of communicating finite state machines , 1986, TOPL.

[35]  Lori A. Clarke,et al.  Flow analysis for verifying properties of concurrent software systems , 2004, TSEM.