DOI QR코드

DOI QR Code

Controlling a Traversal Strategy of Abstract Reachability Graph-based Software Model Checking

추상 도달가능성 그래프 기반 소프트웨어 모델체킹에서의 탐색전략 고려방법

  • Received : 2017.05.15
  • Accepted : 2017.07.31
  • Published : 2017.10.15

Abstract

Although traversal strategies are important for the performance of model checking, many studies have ignored the impact of traversal strategies in model checking with a block-encoded abstract reachability graph. Studies have considered traversal strategies only for an abstract reachability graph without block-encoding. Block encoding plays a crucial role in the model checking performance. This paper therefore describes Dual-traversal strategy, a simple and novel technique to control traversal strategies in a block-encoded abstract reachability graph. This method uses two traversal strategies for a model checking, one for effective block-encoding, and the other for traversal in an encoded abstract reachability graph. Dual-traversal strategy is very simple and can be implemented without overhead compared to the existing single-traversal strategy. We implemented the Dual-traversal strategy in an open source model checking tool and compare the performances of different traversal strategies. The results show that the model checking performance varies from the traversal strategies for the encoded abstract reachability graph.

본 연구에서는 추상 도달가능성 그래프(ARG) 기반의 소프트웨어 모델체킹에서 그래프 탐색전략을 설정할 수 있는 새로운 방법을 제시한다. ARG의 여러 실행 경로를 하나로 묶어 모델체킹 성능을 향상시키는 기법인 블록 인코딩(Block Encoding) 기법을 활용하는 경우 기존의 기법들은 인코딩 전의 ARG에서 인코딩을 효과적으로 수행할 수 있는 탐색전략만을 고려하였을 뿐 실제 모델체킹의 성능을 좌우할 수 있는 인코딩 후의 ARG에 대한 탐색전략을 고려하지 못하는 문제가 있었다. 본 연구에서는 기존 연구에서 제시된 탐색 기법을 사용하여 블록 인코딩을 효과적으로 수행하는 동시에 인코딩된 후의 ARG에 대한 탐색 순서를 고려할 수 있는 이중 탐색전략 기법을 제시한다. 또한 탐색 순서의 변화가 모델체킹의 성능에 미치는 영향을 확인하기 위하여 제시하는 기법을 오픈소스 모델체킹 도구에 구현하고 벤치마크 실험을 수행하였으며 탐색전략이 달라지면 모델체킹의 성능이 달라지는 현상을 확인하였다.

Keywords

Acknowledgement

Grant : 소프트웨어 중심 시스템을 위한 인공지능 기반의 정량적 품질 예측 및 평가 기법 연구

Supported by : 한국연구재단

References

  1. Beyer, Dirk, et al., "The software model checker Blast," International Journal on Software Tools for Technology Transfer 9.5-6, pp. 505-525, 2007. https://doi.org/10.1007/s10009-007-0044-z
  2. Beyer, Dirk, et al., "Software model checking via large-block encoding," Formal Methods in Computer-Aided Design, 2009. FMCAD 2009. IEEE, 2009.
  3. Beyer, Dirk, M. Erkan Keremoglu, and Philipp Wendler, "Predicate abstraction with adjustableblock encoding," Proc. of the 2010 Conference on Formal Methods in Computer-Aided Design, FMCAD Inc., 2010.
  4. Albarghouthi, Aws, Arie Gurfinkel, and Marsha Chechik, "From under-approximations to over-approximations and back," International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer Berlin Heidelberg, 2012.
  5. Allen, Frances E., "Control flow analysis," ACM Sigplan Notices, Vol. 5, No. 7, ACM, 1970.
  6. McMillan, Kenneth L., "Lazy abstraction with interpolants," International Conference on Computer Aided Verification, Springer Berlin Heidelberg, 2006.
  7. Beyer, Dirk, and M. Erkan Keremoglu, "CPAchecker: A tool for configurable software verification," International Conference on Computer Aided Verification, Springer Berlin Heidelberg, 2011.
  8. Beyer, Dirk, "Software verification and verifiable witnesses," International Conference on Tools and Algorithms for the Construction and Analysis of Systems, Springer Berlin Heidelberg, 2015.
  9. Albarghouthi, Aws, et al., "Ufo: A framework for abstraction-and interpolation-based software verification," International Conference on Computer Aided Verification. Springer Berlin Heidelberg, 2012.