Using evolutionary algorithms for reachability analysis of complex software systems specified through graph transformation

Abstract Assessing the reliability of safety-critical systems is an important and challenging task because even a minor failure in these systems may result in catastrophic consequences, like losing human life. A well-known and fully automatic technique in reliability assessing approaches is model checking. However, applying this technique to verify some properties such as safety may lead to the state space explosion problem in which all reachable states cannot be checked due to computational limitations. In such situations that the verification of a safety property is infeasible, it is possible to refute the safety property by searching a reachable state in which a special configuration (e.g., an error or an undesirable behaviour) occurs. Therefore, checking reachability can be done instead of refuting the corresponding safety property. Finding such reachable states, in the worst case, may cause the state space explosion problem again. Hence, using evolutionary algorithms to explore the state space efficiently can be a promising idea. In this paper, at first, we propose an evolutionary algorithm to check reachability properties and refute safety ones in software systems specified formally through graph transformations. Since the accuracy and convergence speed of the proposed approach can still be improved, we employ the Bayesian Optimization Algorithm (BOA) to propose another approach. In BOA, a Bayesian network is learnt from the population and then sampled to generate new solutions. The proposed approaches can be used to analyse the reachability and safety properties. The proposed approaches are implemented in GROOVE which is an open source toolset for designing and model checking graph transformation systems. To evaluate the efficiency of the proposed approaches, different benchmark problems are employed. Experimental results show that the proposed approaches are faster and more accurate than the existing methods.

[1]  Vahid Rafe,et al.  EMCDM: Efficient model checking by data mining for verification of complex software systems specified through architectural styles , 2016, Appl. Soft Comput..

[2]  Stefan Leue,et al.  Protocol verification with heuristic search , 2001 .

[3]  Brian Matthews,et al.  Proof and Refutation in Formal Software Development , 1999, IWFM.

[4]  Sebastian Thöne Dynamic software architectures: a style based modeling and refinement technique with graph transformations , 2005 .

[5]  Fuyuki Ishikawa,et al.  Depth-First Heuristic Search for Software Model Checking , 2016 .

[6]  Septavera Sharvia,et al.  Integrating model checking with HiP-HOPS in model-based safety analysis , 2015, Reliab. Eng. Syst. Saf..

[7]  D. Goldberg,et al.  BOA: the Bayesian optimization algorithm , 1999 .

[8]  Mohsen Rahmani,et al.  A heuristic solution for model checking graph transformation systems , 2014, Appl. Soft Comput..

[9]  Heinz Mühlenbein,et al.  FDA -A Scalable Evolutionary Algorithm for the Optimization of Additively Decomposed Functions , 1999, Evolutionary Computation.

[10]  Erik Snippe Using Heuristic Search to Solve Planning Problems in GROOVE , 2011 .

[11]  Maria Luisa Villani,et al.  Ant Colony Optimization for Deadlock Detection in Concurrent Systems , 2011, 2011 IEEE 35th Annual Computer Software and Applications Conference.

[12]  Vahid Rafe,et al.  A meta-heuristic solution for automated refutation of complex software systems specified through graph transformations , 2015, Appl. Soft Comput..

[13]  Vahid Rafe,et al.  Deadlock detection in complex software systems specified through graph transformation using Bayesian optimization algorithm , 2017, J. Syst. Softw..

[14]  Enrique Alba,et al.  Finding safety errors with ACO , 2007, GECCO '07.

[15]  M. Rausand Reliability of Safety-Critical Systems: Theory and Applications , 2014 .

[16]  Keijo Heljanko,et al.  Verifying large modular systems using iterative abstraction refinement , 2015, Reliab. Eng. Syst. Saf..

[17]  Lionel C. Briand,et al.  A practical guide for using statistical tests to assess randomized algorithms in software engineering , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[18]  Alex Groce,et al.  Heuristics for model checking Java programs , 2004, International Journal on Software Tools for Technology Transfer.

[19]  Enrique Alba,et al.  Finding deadlocks in large concurrent java programs using genetic algorithms , 2008, GECCO '08.

[20]  Vahid Rafe Scenario-driven analysis of systems specified through graph transformations , 2013, J. Vis. Lang. Comput..

[21]  Vahid Rafe,et al.  Searching for violation of safety and liveness properties using knowledge discovery in complex systems specified through graph transformations , 2018, Inf. Softw. Technol..

[22]  Judea Pearl,et al.  Probabilistic reasoning in intelligent systems - networks of plausible inference , 1991, Morgan Kaufmann series in representation and reasoning.

[23]  Vahid Rafe,et al.  A greedy algorithm versus metaheuristic solutions to deadlock detection in Graph Transformation Systems , 2016, J. Intell. Fuzzy Syst..

[24]  J. W. Elsinga,et al.  On a framework for domain independent heuristics in graph transformation planning , 2016 .

[25]  Luke Thomas Herbert,et al.  Restructuring of workflows to minimise errors via stochastic model checking: An automated evolutionary approach , 2016, Reliab. Eng. Syst. Saf..