چکیده
|
Context: Model checking is an automatic and precise technique in verification and refutation of software and hardware systems. Despite its advantages, the state space explosion problem may occur in large and complex systems. Recent studies demonstrate that using meta-heuristic and evolutionary algorithms are a proper solution to handle the state space explosion problem. In systems which are specified formally through graph transformations, the state space is constructed by applying all enable rules on all generated states. In such systems, there is a dependency between rules in each sequence of applied rules in the state space. Objective: This fact motivates us to use knowledge discovery techniques to intelligently explore only a portion of the state space instead of exhaustive exploration. We propose two different techniques to acquire such knowledge form the model state space. In this paper, we propose a data mining-based approach in which the required knowledge is obtained from exploring a slight portion of the model state space. Another approach is proposed in which a Bayesian network is used to capture this knowledge. After acquiring the required knowledge, it is employed to explore only a portion of the model state space intelligently, to refute a property. Results: The proposed approaches can be used to analyze the reachability, safety and liveness properties. To evaluate the proposed approaches, they are implemented in GROOVE, an open source toolset for designing and model checking of systems specified through graph transformations. Conclusion: Experimental results on different set of benchmarks show that the proposed approaches are faster and more accurate in comparison with the existing meta-heuristic and evolutionary techniques in model checking of complex software systems specified through graph transformations.
|