DOI QR코드

DOI QR Code

CodeAnt : Code Slicing Tool for Effective Software Verification

CodeAnt : 소프트웨어 검증 효율 향상을 위한 코드 슬라이싱 도구

  • Received : 2014.07.15
  • Accepted : 2014.11.28
  • Published : 2015.01.31

Abstract

Safety critical systems require exhaustive verification of safety properties, because even a single corner-case fault can cause a critical safety failure. However, existing verification approaches are too costly in terms of time and computational resource required, making it hard to be applied in practice. In this paper, we implemented a tool for minimizing the size of the verification target w.r.t. verification properties to check, based on program slicing technique[1]. The efficacy of program slicing using our tool is demonstrated in a case study with a verification target Trampoline[3], which is an open source automotive operating system compliant with OSEK/VDX[2]. Experiments have shown enhanced performance in verification, with a 71% reduction in the size of the code.

고안전성이 요구되는 소프트웨어의 경우 극히 낮은 확률로 발생하는 오류로 인하여 전체시스템의 안전에 치명적인 상황을 야기할 수 있으므로, 철저한 안전성 검증이 요구된다. 하지만 모든 가능한 실행경로를 고려해야 하는 안전성 검증은 고비용이 발생한다는 단점이 있다. 본 논문에서는 안전성 검증의 고비용 문제를 개선하기 위해 안전성 특질을 기준으로 코드 슬라이싱 기법[1]을 구현한 도구를 개발하였다. 개발한 도구를 OSEK/VDX[2] 기반의 개방형 차량 전장용 운영체제인 Trampoline[3] 소스코드에 적용한 결과 분석 대상의 코드의 크기를 평균 71% 줄일 수 있었고, 실제 검증을 수행했을 시에도 도구 적용 이전보다 검증 비용을 절감할 수 있었음을 보였다.

Keywords

References

  1. M. Weiser, Program slicing, IEEE Transactions on Software Engineering, SE-10(4), 1984.
  2. OSEK/VDX[Internet], http://portal.osek-vdx.org.
  3. Trampoline[Internet], http://trampoline.rts-software.org.
  4. MISRA-C[Internet], http://misra.org.uk.
  5. Eclipse CDT[Internet], http://www.eclipse.org/cdt.
  6. E. Clarke, D. Kroening and F. Lerda, "A tool for checking ANSI-C programs," in 10th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, pp.168-176, 2004.
  7. D. Kim, M. Park, and Y. Choi, "A function finder for property-based extraction of test target functions," in The 39th Conference of the KIPS, pp.954-957, 2013.
  8. Z. Lu and Y. Choi, "A Function Network Analyzer for Efficient Analysis of Automotive Operating System," in The 39th Conference of the KIPS, pp.972-975, 2013.
  9. M. Park, T. Byun, and Y. Choi, "Property-based Code Slicing for Efficient Verification of OSEK/VDX Operating Systems," in Proceedings First International Workshop on Formal Techniques for Safety-Critical Systems, pp.305-319, 2012.
  10. frama-C[Internet], http://frama-c.com.
  11. B. Monate and J. Signoles, "Slicing for security of code," in First International Conference on Trusted Computing and Trust in Information Technologies, pp.133-142, 2008.
  12. P. Anderson and T. Tim, "Software inspection using codesurfer," in Proceeding of the first workshop on inspection in software engineering, 2001.
  13. The Wisconsin Program-Slicing Tool[Internet], http://research.cs.wisc.edu/wpis/slicing_tool.
  14. F. Tip, "A survey of program slicing techniques," Journal of programming languages, pp.121-189, 1995.
  15. L. Larsen, and M. J. Harrold, "Slicing object-oriented software," Software Engineering 1996, Proceedings of the 18th International Conference on. IEEE, 1996.
  16. P. Anderson, R. Thomas, and T, Tim, "Design and implementation of a fine-grained software inspection tool" Software Engineering, IEEE Transactions on, pp.721-733, 2003.
  17. H. Thiagarajan, et al., "Bakar Alir: Supporting Developers in Construction of Information Flow Contracts in SPARK," Source Code Analysis and Manipulation, IEEE 12th International Working Conference on 2012.
  18. L. O. Andersen, "Program analysis and specialization for the C programming language," Diss. University of Cophenhagen, 1994.