Abstract
원자력 발전소 계측 제어 시스템, 의료 관련 시스템, 항공 관련 시스템 등 실생활과 밀접한 시스템에 소프트웨어의 사용이 점차 증가하고 있다. 이러한 시스템에서 소프트웨어의 오류는 예기치 않는 사고를 유발하여 인명, 재산상의 심각한 타격을 줄 수 있다. 그러므로 고신뢰도 소프트웨어의 개발 시에는 반드시 시스템의 안전성을 보장해 주어야 한다. 역방향 안전성 분석 방법은 시스템의 안전성을 분석하는 한가지 방법으로서 시스템의 위험 상태를 정의하고 그 위험의 원인들을 추적, 분석함으로써 안전성에 대한 효율적인 분석을 수행할 수 있는 장점을 갖는다. 이 논문에서는 소프트웨어 개발 초기 단계에서 안전성을 분석할 수 있는 방법으로 Colored Petri Nets(CPN)에 기반을 둔 역방향 안전성 분석 방법을 제시한다. 또한 CPN 역방향 안전성 분석 도구인 SAC(Safety Analyzer for CPN)의 설계 및 구현에 대해 언급한다. SAC은 기존의 상용 CPN 모델링 도구인 Design/CPN과 연계하여 사용될 수 있으므로 CPN으로 모델링된 시스템의 안전성을 분석할 수 있다는 장점이 있다. 이 논문에서는 예제로 자동 교통 제어 시스템의 일부를 CPN으로 모델링하고 SAC을 이용한 분석 과정을 기술한다.Abstract In safety-critical systems such as nuclear power plants, medical machines, and avionic systems which are closely related with our livings, the usage of software in the controlling part is growing rapidly. Since software errors in safety-critical systems may cause serious accidents leading to financial or human damages, system safety should be ensured during and after development of a system. A backward safety analysis technique defines system hazards and tries to trace their causes by analyzing system states backward. In this paper, we provide a backward safety analysis technique based on Colored Petri Nets(CPN), which is applicable to the early software development phase. Also Safety Analyzer for CPN(SAC), the supporting tool, is designed and implemented. Since SAC is compatible with Design/CPN, a commercial tool for supporting CPN, it can be applicable to analyze safety in practical problems. As an example, we model a part of the traffic light control system using CPN and analyze safety properties of the model using the SAC tool.