DOI QR코드

DOI QR Code

Formal Verification of Embedded Java Program

임베디드 자바 프로그램의 정형 검증

  • 이태훈 (경기대학교 전자계산학과) ;
  • 권기현 (경기대학교 정보과학과)
  • Published : 2005.12.01

Abstract

There may be subtle errors in embedded software since its functionality is very complex. Thus formal verification for detecting them is very needed. Model checking is one of formal verification techniques, and SLAM is a well-known software model checking tool for verifying safety properties of embedded C program. In this paper, we develop a software model checker like SLAM for verifying embedded Java program Compared to SLAM, our tool allows to verify liveness properties as well as safety ones. As a result, we verify some desired properties in embedded Java program for controlling REGO robot.

임베디드 소프트웨어는 크기나 기능면에서 복잡하기 때문에 에러가 숨어있을 확률이 높다. 그래서 에러를 효과적으로 찾아낼 수 있는 방법이 절실히 요구된다. 임베디드 소프트웨어에서 잠재적인 오류를 찾아내는 기술중의 하나가 모델 체킹이며, 대표적인 연구로서 SLAM 이 있다. SLAM은 임베디드 C 프로그램의 안전성 속성을 검증하는 소프트웨어 모델 체킹 도구이다. 본 논문에서는 임베디드 자바 프로그램을 검증하는 모델 체킹 도구를 개발했다. SLAM과는 달리 자바 프로그램의 안전성뿐만 아니라 궁극성 속성을 모두 검증할 수 있다. 개발된 모델 체킹 도구를 이용하여 레고 로봇을 제어하는 임베디드 자바 프로그램의 속성을 검증하였다.

Keywords

References

  1. E. M. Clarke, O. Grumberg and D. Peled, Model Checking, MIT Press, 1999
  2. E. M. Clarke, O. Grumberg, S. Jha, Y. Lu and H. Veith, 'Progress on the State Explosion Problem in Model Checking,'in Proceedings of 10 Years Dagstuhl, LNCS 2000, pp.154-169, 2000
  3. S. Graf and H. Saidi, 'Construction of Abstraction State Graphs with PVS,' in Proceedings of Computer Aided Verification, pp.72-83, 1997
  4. T. Ball, R. Majumdar, T. Millstein and S.K. Rajamani, 'Automatic Predicate Abstraction of C programs,' SIGPLAN Notices, Vol.36, No.5, pp.203-213, 2001 https://doi.org/10.1145/378795.378846
  5. T.A. Henzinger, R. Jhala, R. Majumdar and G. Sutre, 'Lazy Abstraction,' in Proceedings of Principles of Programming Languages, pp.58-70, 2002
  6. S. Charki, E.M. Clarke, A. Groce, S. Jha and H. Veith, 'Modular Verification of Software Components in C,' IEEE Transactions on Software Engineering, Vol.30, No.6, pp.388-402, 2004 https://doi.org/10.1109/TSE.2004.22
  7. James Corbett, Matthew Dwyer, John Hatcliff, Corina Pasareanu, Robby, Shawn Laubach, Hongjun Zheng, 'Bandera: Extracting Finite-state Models from Java Source Code', in Proceedings of the 22nd International Conference on Software Engineering, June, 2000 https://doi.org/10.1109/ICSE.2000.870434
  8. E. A. Emerson, Temporal and modal logic, in the Handbook of Theoretical Computer Science: Formal Models and Semantics, J. van Leeuwen, editor, Elsevier, pp.995-1072, 1990
  9. G. Farrari, A. Gombos, S. Hilmer, J. Stuber, 'Programming Lego Mindstorms with Java: The Ultimate Tool for Mindstorms Maniacs,' Syngress, April, 2002
  10. C. Eisner 'Model checking the garbage collection mechanism of SMV', Electronic Notes in Theoretical computer Science Vol.55, Elsevier Science Publishers, 2001 https://doi.org/10.1016/S1571-0661(04)00258-0