Using knowledge discovery to propose a two-phase model checking for safety analysis of graph transformations

Abstract

Safety is one of the most important features of modern software systems, especially safety-critical systems such as nuclear power plants, which can be checked exactly by model checking. Model checking is a formal verification technique that analyzes system properties through exploring all reachable states (state space) of a model of a system. The problem of the technique is that it confronts the state space explosion in large and complex systems due to exponential memory usage. Recent researches show that a partial and intelligent exploration of the state space can be a suitable solution to overcome this problem. In this paper, we propose a two-phase model checking for safety analysis of systems specified formally through graph transformations. In the first phase, the beam-search algorithm explores the state space to a specific number of states. In case of failure of the phase, the second phase starts: in systems specified through graph transformations, the rule applied on the previous state can determine the rule that can perform on the next state. In other words, the rule on current state depends on only the rule applied to previous state, not the one on earlier states. Hence, a Markov chain (MC) is estimated to capture dependencies between the sequence of applied rules in the state space explored by the beam-search algorithm. The MC is then employed to explore the remainder of the state space intelligently. To evaluate the effectiveness of the two-phase model checking, we implement it in GROOVE, an open source toolset for designing and model checking graph transformation systems. Experimental results show that the two-phase model checking has the high speed and accuracy in comparison with the existing meta-heuristic and evolutionary techniques.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9

Notes

  1. 1.

    Linear temporal logic

  2. 2.

    Computation tree logic

References

  1. Abowd, G., Allen, R., & Garlan D. (1993). Using style to give meaning to software architecture, in Proc. of SIGSOFT ‘93: Foundations of Software Engineering. p. 9–20.

  2. Alba E., & Chicano, F. (2007). Finding safety errors with ACO, in Proceedings of the 9th annual conference on Genetic and evolutionary computation. p. 1066–1073.

  3. Alba, E., Chicano, F., Ferreira, M., & Gomez-Pulido, J. (2008). Finding deadlocks in large concurrent java programs using genetic algorithms, in Proceedings of the 10th annual conference on Genetic and evolutionary computation. p. 1735–1742.

  4. Alba, E., & Troya, JM. (1996). Genetic algorithms for protocol validation, in International Conference on Parallel Problem Solving from Nature. p. 869–879.

  5. Arcuri, A., & Briand. L. (2011). A practical guide for using statistical tests to assess randomized algorithms in software engineering, in 2011 33rd International Conference on Software Engineering (ICSE). p. 1–10.

  6. Azim, M. R. S., Mahmud, K., & Das, C. K. (2014). Automatic train track switching system with computerized control from the central monitoring unit. International Journal of u-and e-Service, Science and Technology, 7(1), 201–212.

    Article  Google Scholar 

  7. Baier, C., & Katoen, J.-P. (2008). Principles of model checking. MIT press, 1, 1–13.

    Google Scholar 

  8. Bellovin, S. M., & Cheswick, W. R. (1994). Network firewalls. IEEE communications magazine, 32(9), 50–57.

    Article  Google Scholar 

  9. Bouali, M., Barger, P., & Schon, W. (2012). Backward reachability of Colored Petri Nets for systems diagnosis. Reliability Engineering & System Safety, 99, 1–14.

    Article  Google Scholar 

  10. Chen, H., Dean, D., & Wagner, D. (2004). Model Checking One Million Lines of C Code. NDSS, 4, 171–185.

    Google Scholar 

  11. Clarke, E., McMillan, K., Campos, S., & V. (1996). Hartonas-Garmhausen, Symbolic model checking, in International conference on computer aided verification, pp. 419–422.

  12. Dajani-Brown, S., Cofer, D., Hartmann, G., & Pratt, S., (2003) Formal modeling and analysis of an avionics triplex sensor voter, in International SPIN Workshop on Model Checking of Software. p. 34–48.

  13. Edelkamp, S., Lafuente, L., & Leue, S. (2001). Protocol verification with heuristic search. Bibliothek der Universität Konstanz.

  14. Francesca, G, Santone, A., Vaglini, G., & Villani, ML. (2011). Ant colony optimization for deadlock detection in concurrent systems, in Computer software and applications conference (COMPSAC), 2011 IEEE 35th annual. p. 108–117.

  15. Godefroid P., Holzmann G.J., Pirottin D. (1992). State space caching revisited, in International Conference on Computer Aided Verification, pp. 178–191.

  16. Groce, A., & Visser, W. (2004). Heuristics for model checking Java programs. International Journal on Software Tools for Technology Transfer, 6(4), 260–276.

    Article  Google Scholar 

  17. Groote, J.F., & de Pol, J, van. (1996) A bounded retransmission protocol for large data packets, in International Conference on Algebraic Methodology and Software Technology. p. 536–550.

  18. Hausmann, JH. (2005) Dynamic META modeling: a semantics description technique for visual modeling languages.

  19. Havelund, K., & Pressburger, T. (2000). Model checking java programs using java pathfinder. International Journal on Software Tools for Technology Transfer, 2(4), 366–381.

    Article  Google Scholar 

  20. Holzmann, G. J. (1987). On limits and possibilities of automated protocol analysis. PSTV, 87, 339–344.

    Google Scholar 

  21. Kastenberg, H., & Rensink, A. (2006). Model checking dynamic states in GROOVE, in International SPIN Workshop on Model Checking of Software. p. 299–305.

  22. Koller, D., Friedman, N., & Bach. F. (2009). Probabilistic graphical models: principles and techniques. MIT press.

  23. Lluch-Lafuente, A., Edelkamp, S., & Leue S., (2002). Partial order reduction in directed model checking, in International SPIN Workshop on Model Checking of Software, pp. 112–127.

  24. Lluch-Lafuente, A., (2003) Symmetry reduction and heuristic search for error detection in model checking.

  25. Maeoka, J., Tanabe, Y., & Ishikawa, F. (2015). Depth-first heuristic search for software model checking, in Computer and Information Science. Springer, 2016, 75–96.

    Google Scholar 

  26. Marrero M., Clarke E., & Jha S. (1997). Model checking for security protocols, Carnegie-Mellon Univ Pittsburgh Pa Dept Of Computer Science.

  27. Nassima, A., Zahia, T., & Nadjet, K. (2013). Toward a backward model checking. International Journal of Computer Aided Engineering and Technology, 5(1), 20–43.

    Article  Google Scholar 

  28. Pira, E., Rafe, V., & Nikanjam, A. (2016). EMCDM: Efficient model checking by data mining for verification of complex software systems specified through architectural styles. Applied Soft Computing, 49, 1185–1201.

    Article  Google Scholar 

  29. Pira, E., Rafe, V., & Nikanjam, A. (2019). Using evolutionary algorithms for reachability analysis of complex software systems specified through graph transformation, Reliability Engineering & System Safety, p. 106577.

  30. Pira, E., Rafe, V., & Nikanjam, A. (2017). Deadlock detection in complex software systems specified through graph transformation using Bayesian optimization algorithm. Journal of Systems and Software, 131, 181–200.

    Article  Google Scholar 

  31. Pira, E., Rafe, V., & Nikanjam, A. (2018). Searching for violation of safety and liveness properties using knowledge discovery in complex systems specified through graph transformations. Information and Software Technology, 97, 110–134.

    Article  Google Scholar 

  32. Rafe, V. (2013). Scenario-driven analysis of systems specified through graph transformations. Journal of Visual Languages & Computing, 24(2), 136–145.

    Article  Google Scholar 

  33. Rafe, V., Moradi, M., Yousefian, R., & Nikanjam, A. (2015). A meta-heuristic solution for automated refutation of complex software systems specified through graph transformations. Applied Soft Computing, 33, 136–149.

    Article  Google Scholar 

  34. Rozenberg, G. (1997). Handbook of graph grammars and comp., vol. 1. World scientific.

  35. Runge, O., Khan, TA., & Heckel, R., (2013). Test case generation using visual contracts, Electronic Communications of the EASST, vol. 58.

  36. Sharvia, S., & Papadopoulos, Y. (2015). Integrating model checking with HiP-HOPS in model-based safety analysis. Reliability Engineering & System Safety, 135, 64–80.

    Article  Google Scholar 

  37. Staunton, J., & Clark, J. A. (2010). Searching for safety violations using estimation of distribution algorithms, in Software Testing, Verification, and Validation Workshops (ICSTW). Third International Conference on, 2010, 212–221.

    Google Scholar 

  38. Staunton, J., & Clark, JA. (2011). Finding short counterexamples in promela models using estimation of distribution algorithms, in Proceedings of the 13th annual conference on Genetic and evolutionary computation. p. 1923–1930.

  39. Staunton, J., & Clark, JA. (2011). Applications of model reuse when using estimation of distribution algorithms to test concurrent software, in International Symposium on Search Based Software Engineering. p. 97–111.

  40. Thöne, S. (2005). Dynamic software architectures: a style-based modeling and refinement technique with graph transformations,” PhD Thesis.

  41. Wu, D., & Zheng, W. (2018). Formal model-based quantitative safety analysis using timed Coloured Petri Nets. Reliability Engineering & System Safety, 176, 62–79.

    Article  Google Scholar 

  42. Yang, X.-S. (2010). A new metaheuristic bat-inspired algorithm, in Nature inspired cooperative strategies for optimization (NICSO. Springer, 2010, 65–74.

    Google Scholar 

  43. Yousefian, R., Aboutorabi, S., & Rafe, V. (2016). A greedy algorithm versus metaheuristic solutions to deadlock detection in Graph Transformation Systems. Journal of Intelligent & Fuzzy Systems, 31(1), 137–149.

    Article  Google Scholar 

  44. Yousefian, R., Rafe, V., & Rahmani, M. (2014). A heuristic solution for model checking graph transformation systems. Applied Soft Computing, 24, 169–180.

    Article  Google Scholar 

Download references

Author information

Affiliations

Authors

Corresponding author

Correspondence to Einollah Pira.

Additional information

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Pira, E. Using knowledge discovery to propose a two-phase model checking for safety analysis of graph transformations. Software Qual J (2021). https://doi.org/10.1007/s11219-020-09542-x

Download citation

Keywords

  • Model checking
  • Markov chain
  • Beam-search algorithm
  • Graph transformation system
  • State space explosion