DOI QR코드

DOI QR Code

Software Formal Verification Methodology using Aspect DEVS Verification Framework

Aspect DEVS 검증 틀을 이용한 소프트웨어 정형 검증 방법론

  • 최창범 (한국과학기술원 전기 및 전자공학과) ;
  • 김탁곤 (한국과학기술원 전기 및 전자공학과)
  • Received : 2009.06.30
  • Accepted : 2009.09.08
  • Published : 2009.09.30

Abstract

Software is getting more complex due to a variety of requirements that include desired functions and properties. Therefore, verifying and testing the software are complicated problems. Moreover, if the software is already implemented, inserting and deleting tracing/logging code into the source code may cause several problems, such as the code tangling and the code scattering problems. This paper proposes the Aspect DEVS Verification Framework which supports the verification and testing process. The Aspect DEVS Verification Framework utilizes Aspect Oriented Programming features to handle the code tangling and the code scattering problems. By applying aspect oriented features, a user can find and fix the inconsistency between requirement and implementation of a software without suffering the problems. The first step of the verification process is the building aspect code to make a software act as a generator. The second step is developing a requirement specification using DEVS diagrams and implementing it using the DEVSIM++. The final step is comparing the event traces from the software with the possible execution sequences from DEVS model.

사용자가 요구하는 기능과 특성에 대한 다양한 요구사항은 소프트웨어를 점점 더 복잡하게 만들고 이를 검증하고 검사하는 것은 어려운 문제이다. 게다가 개발된 소프트웨어 코드를 검증하고 검사를 수행하는 과정에서 트레이싱 혹은 로깅 코드를 삽입하는 과정과 검사가 완료되어 삭제하는 과정에서 사용자의 부주의로 버그가 삽일될 수 있는 문제점도 발생한다. 본 논문은 소프트웨어 개발 과정 중에서 검증 및 검사 과정을 지원할 수 있는 Aspect DEVS 검증 틀을 제시한다. Aspect DEVS 검증틀은 관점 지향 프로그래밍 기법을 사용하여 이미 구현되어 있는 소프트웨어와 사용자는 요구사항을 만족하는 지를 확인하는 동시에 소스 코드에 테스팅 코드를 삽입할 때 발생하는 문제들을 해결한다. Aspect DEVS 검증틀을 사용한 검증의 첫 번째 단계는 관찰 대상을 관점 지향 프로그래밍 기법을 사용하여 명세한 하고, 사용자의 요구사항을 DEVS 다이어그램을 명세한 후 이를 DEVSIM++로 구현한다. 마지막으로 프로그램의 수행 과정 중에서 발생하는 이벤트들을 대상으로 구현한 DEVS 모델의 이벤트 입력으로 넣어 소프트웨어가 사용자의 요구사항을 만족하는 지를 검사함으로써 검증 과정 중에 대상 소프트웨어의 수정 없이 검증 및 검사를 수행할 수 있다.

Keywords

References

  1. Software Engineering: A Practitioner's Approach 6th ed. McGraw.
  2. Virtual Library of Formal Methods. http://vl.fmnet.info.
  3. E. Clarke and J. Wing, et al, "Formal Methods: State of the Art and Future Directions," In ACM Computing Surveys, Vol. 28, No. 4, 1999.
  4. A. Cimatti, E. Clarke, F. Giunchiglia and M. Roveri. "NuSMV: a new symbolic model verifier," In Computer-Aided Verification, 1999.
  5. M. Kim, S. Kannan, I. Lee, O. Sokolsky, and M. Viswanathan, "Java-MaC: a Rigorous Run-time Assurance Tool for Java Programs," Formal Methods in System Design, 2004 (Vol. 24, No. 2).
  6. Bernard P. Zeigler, Herbert Praehofer and Tag Gon Kim, "Theory of Modeling and Simulation," ACADEMIC PRESS, 2001.
  7. Tag G. Kim, Lecture Note: EE612, EE Dept, KAIST, Available : http://smslab.kaist.ac.kr/Course/EE612/
  8. T. G. Kim, DEVSimHLA User's Manual, 2007. Available : http://smslab.kaist.ac.kr
  9. R. Laddad, "AspectJ in Action: Practical Aspect-Oriented Programming," Manning, 2003.
  10. in32.HLLW.Shadow.based exploits http://www.antivirus world.com/news/win32-hllw-shadow-based-exploits-vuln erability-of-windows.html
  11. Hao Chen, Drew Dean, and David Wagner, "Model Checking One Million Lines of C Code," In Network and Distributed System Security (NDSS 2004), 2004.
  12. J.H. Byun, C.B. Choi, and T.G. Kim, "Verification of the DEVS Model Implementation using Aspect Embedded DEVS," SCS Spring Simulation Multiconference, 2009.