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.
Similar content being viewed by others
Notes
Linear temporal logic
Computation tree logic
References
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.
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.
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.
Alba, E., & Troya, JM. (1996). Genetic algorithms for protocol validation, in International Conference on Parallel Problem Solving from Nature. p. 869–879.
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.
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.
Baier, C., & Katoen, J.-P. (2008). Principles of model checking. MIT press, 1, 1–13.
Bellovin, S. M., & Cheswick, W. R. (1994). Network firewalls. IEEE communications magazine, 32(9), 50–57.
Bouali, M., Barger, P., & Schon, W. (2012). Backward reachability of Colored Petri Nets for systems diagnosis. Reliability Engineering & System Safety, 99, 1–14.
Chen, H., Dean, D., & Wagner, D. (2004). Model Checking One Million Lines of C Code. NDSS, 4, 171–185.
Clarke, E., McMillan, K., Campos, S., & V. (1996). Hartonas-Garmhausen, Symbolic model checking, in International conference on computer aided verification, pp. 419–422.
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.
Edelkamp, S., Lafuente, L., & Leue, S. (2001). Protocol verification with heuristic search. Bibliothek der Universität Konstanz.
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.
Godefroid P., Holzmann G.J., Pirottin D. (1992). State space caching revisited, in International Conference on Computer Aided Verification, pp. 178–191.
Groce, A., & Visser, W. (2004). Heuristics for model checking Java programs. International Journal on Software Tools for Technology Transfer, 6(4), 260–276.
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.
Hausmann, JH. (2005) Dynamic META modeling: a semantics description technique for visual modeling languages.
Havelund, K., & Pressburger, T. (2000). Model checking java programs using java pathfinder. International Journal on Software Tools for Technology Transfer, 2(4), 366–381.
Holzmann, G. J. (1987). On limits and possibilities of automated protocol analysis. PSTV, 87, 339–344.
Kastenberg, H., & Rensink, A. (2006). Model checking dynamic states in GROOVE, in International SPIN Workshop on Model Checking of Software. p. 299–305.
Koller, D., Friedman, N., & Bach. F. (2009). Probabilistic graphical models: principles and techniques. MIT press.
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.
Lluch-Lafuente, A., (2003) Symmetry reduction and heuristic search for error detection in model checking.
Maeoka, J., Tanabe, Y., & Ishikawa, F. (2015). Depth-first heuristic search for software model checking, in Computer and Information Science. Springer, 2016, 75–96.
Marrero M., Clarke E., & Jha S. (1997). Model checking for security protocols, Carnegie-Mellon Univ Pittsburgh Pa Dept Of Computer Science.
Nassima, A., Zahia, T., & Nadjet, K. (2013). Toward a backward model checking. International Journal of Computer Aided Engineering and Technology, 5(1), 20–43.
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.
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.
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.
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.
Rafe, V. (2013). Scenario-driven analysis of systems specified through graph transformations. Journal of Visual Languages & Computing, 24(2), 136–145.
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.
Rozenberg, G. (1997). Handbook of graph grammars and comp., vol. 1. World scientific.
Runge, O., Khan, TA., & Heckel, R., (2013). Test case generation using visual contracts, Electronic Communications of the EASST, vol. 58.
Sharvia, S., & Papadopoulos, Y. (2015). Integrating model checking with HiP-HOPS in model-based safety analysis. Reliability Engineering & System Safety, 135, 64–80.
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.
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.
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.
Thöne, S. (2005). Dynamic software architectures: a style-based modeling and refinement technique with graph transformations,” PhD Thesis.
Wu, D., & Zheng, W. (2018). Formal model-based quantitative safety analysis using timed Coloured Petri Nets. Reliability Engineering & System Safety, 176, 62–79.
Yang, X.-S. (2010). A new metaheuristic bat-inspired algorithm, in Nature inspired cooperative strategies for optimization (NICSO. Springer, 2010, 65–74.
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.
Yousefian, R., Rafe, V., & Rahmani, M. (2014). A heuristic solution for model checking graph transformation systems. Applied Soft Computing, 24, 169–180.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher’s Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Pira, E. Using knowledge discovery to propose a two-phase model checking for safety analysis of graph transformations. Software Qual J 30, 37–64 (2022). https://doi.org/10.1007/s11219-020-09542-x
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11219-020-09542-x