Formal Verification of Functional Properties of an SCR-style Software Requirements Specifications using PVS

PVS를 이용한 SCR 스타일의 소프트웨어 요구사항 명세에서 기능 요구 사항의 정형 검증

  • Kim, Tae-Ho (Dept. of Electronic Computer Science, Korea Advanced Institute of Science and Technology) ;
  • Cha, Sung-Deok (Dept. of Electronic Computer Science, Korea Advanced Institute of Science and Technology)
  • 김태호 (한국과학기술원 전자전산학과) ;
  • 차성덕 (한국과학기술원 전자전산학과)
  • Published : 2002.02.01

Abstract

Among the many phases involved in software development, requirements analysis phase in generally considered to play a crucial role in determining the overall software quality. Therefore, many software development companies manages the phase as one of the important phase. Especially, safety assurance through requirements analysis for safety-critical systems is quite demanding, and national and international bodies routinely require safety demonstration. Among various approaches, inspection and formal methods are generally shown to be effective. In this paper, we propose a formal verification procedure for SCR(Software Cost Reduction)-style SRS(Software Requirements Specification) using the PVS specification and verification procedure and applied this procedure to an industrial system such that a shutdown system for Wolsung nuclear power plant. This system had been verified through inspection not formal verification. The application of formal methods is rare in Korea, so it is very important to experiment about formal verification to industrial systems.

소프트웨어의 개발 단계 중 품질을 결정하는 주요 단계는 요구 명세 단계로 알려져 있다. 따라서, 소프트웨어 개발 업체는 소프트웨어 요구명세서의 분석을 가장 중요한 단계 중 하나로 취급하고 있고, 특히 안전성이 중요한 시스템의 경우에는 시스템을 운영하기 위하여 국내와 국제적인 규제 기관에서는 요구 명세의 분석을 통한 안전성의 입증을 요구한다. 소프트웨어의 요구 명세 분석을 위한 방법 중 인스펙션과 정형 검증이 가장 효과적인 방법으로 알려져 있다. 본 논문에서는 SCR-style의 요구 명세를 정리 증명기인 PVS를 이용하여 정형 검증을 수행하는 방법을 제안하였다. 그리고, 논문에서 제안된 방법으로 실제 월성 원자력 발전소의 정지 시스템의 검증을 수행하였다. 이 시스템은 인스펙션으로 검증된 적은 있으나 정형 검증 방법으로는 증명된 적이 없고, 국내에서 실제 운영되는 산업계시스템에 정형 검증 방법이 적용된 사례는 매우 드물기 때문에 차후 정형 검증 방법을 적용하기 위한 평가로서도 이와 같은 실험적인 적용이 매우 중요하다.

Keywords

References

  1. R. Lutz, 'Targeting Safety-Related Errors during Software Requirements Analysis,' Proceedings of the First ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp. 99-106, 1993 https://doi.org/10.1145/256428.167069
  2. D. S. Herrmann, Software Safety and Reliability, IEEE Computer Society, pp. 1-503, 1999
  3. M. Fagan, 'Advances in Software Inspections,' IEEE Transactions on Software Engineering, 12(7), pp. 133-144, 1986
  4. D. Wheeler, B. Brykczynski, and R. Meeson, Jr., Software Inspection: An industry best practice, IEEE Computer Society Press, pp. 1-312, 1996
  5. M. Hinchey and J. Bowen, Application of Formal Methods, Prentice-Hall, pp. 1-442, 1995
  6. T. Kim, H. Hong, S. Cho, W. Chun, and S. Cha, 'A Verification of Requirements Specification for Safety-critical System,' 22th KISS Spring Conference, April, 1996
  7. T. Kim, and S. Cha, 'Automated Strcutural Analysis of SCR-style Software Requirements Specification using PVS,' Journal of Software, Testing, Verification, and Reliablity, 11(3), pp. 143-163, 2001 https://doi.org/10.1002/stvr.218
  8. C. Heitmeyer, J. Kirby, B. Labaw, 'The SCR Method for Formally Specifying, Verifying and Validating Software Requirements: Tool Support,' Proceedings of the 19th International Conference on Software Engineering (ICSE '97), pp. 610-611, 1997 https://doi.org/10.1145/253228.253498
  9. N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud, 'The Synchronous Data Flow Programming Language LUSTRE,' Proceedings of the IEEE, 79(9), September 1991 https://doi.org/10.1109/5.97300
  10. J. Crow, S. Owre, J. Rushby, N. Shankar, and M. Srivas, 'A Tutorial Introduction to PVS,' Workshop on Industrial-Strength Formal Specification Techniques (WIFT '95), pp. 1-112, 1995
  11. S. Owre, N. Shankar, J. Rushby, and D. Stringer-Calvert, PVS System Guide Version 2.3, Computer Science Laboratory, SRI International, pp. 1-88, 1999
  12. S. Owre, N. Shankar, J. Rushby, and D. Stringer-Calvert, PVS Language Reference Version 2.3, Computer Science Laboratory, SRI International, pp. 1-87, 1999
  13. S. Owre, J. Rushby, N. Shankar, and F. von Henke, 'Formal Verification for Fault-Tolerant Architecture: Prolegomena to the Design of PVS,' IEEE Transactions on Software Engineering, Vol. 21, No. 2, pp. 107-125, 1995 https://doi.org/10.1109/32.345827
  14. N. Shankar, S. Owre, J. Rushby, and D. Stringer-Calvert, PVS Prover Guide Version 2.3, Computer Science Laboratory, SRI International, pp. 1-117, 1999
  15. S. Miller and M. Srivas, 'Formal Verification of the AAMP5 Microprocessor: A case study in the industrial use of formal methods,' Workshop on Industrial-Strength Formal Specification Techniques (WIFT '95), pp. 2-16, 1995 https://doi.org/10.1109/WIFT.1995.515475
  16. B. Dutertre, and V. Stavridou, 'Formal Requirements Analysis of an Avionics Control System.' IEEE Transactions on Software Entineering, 23(5), pp. 267-278, 1997 https://doi.org/10.1109/32.588520
  17. M. Heimdahl and B. Czerny, 'Using PVS to Analyze Hierarchical State-Based Requirements for Completeness and Consistency,' Proceedings of the IEEE High Assurance Systems Engineering Workshop (HASE '96), pp. 252-262, 1996 https://doi.org/10.1109/HASE.1996.618606