Abstract
Software system modeling has a goal for finding and solving system's problems by describing and analyzing system model in formal notations. Petri nets, as graphical formalism, have been used in describing and analyzing the software systems such as parallel systems, real-time system, and protocols. In the analysis of Petri nets, general system properties such as deadlock and liveness are analyzed by the reachability analysis. On the other side, specific properties such as functional requirements and constraints are checked by model-checking. However, since these analysis methods are based on enumeration of ail possible states, there nay be state explosion problem, which means that system states exponentially increase as the size of system is larger. In this paper, we propose a new method for mechanically checking system properties with avoiding state explosion problem. At first, system properties are described in property nets then the system model and the property net are composed and analyzed. In the compositional analysis, system parts irrelevant to the specific property are reduced to minimize the analysis domain of the system. And it is possible to mechanically check whether a specific property is satisfied or not.
소프트웨어 시스템 모델링에서는 정형적 기법으로 소프트웨어를 모델링하고 분석하여 소프트웨어 시스템이 가지는 문제점들을 구현에 앞서 미리 찾아 해결하고자 한다. 페트리 네트는 그래픽 정형 명세 언어로 병행적 시스템, 실시간 시스템, 통신 프로토콜 등의 소프트웨어 시스템 모델링 및 분석에 널리 이용되고 있다. 페트리 네트 분석에서, 교착상태(deadlock), 수행가능성(liveness) 등의 일반적인 시스템 특성 분석은 주로 도달성 분석을 통해 이루어지며 시스템 요구사항에 관한 고유 특성 분석은 모델 검사(model checking) 방법을 통해 이루어진다 하지만 도달성 분석과 모델 검사 방법에서는 기본적으로 시스템의 모든 가능한 상태들을 나열하여 분석하므로 모델의 규모가 커짐에 따라 상태가 기하급수적으로 증가하는 상태 폭발(state explosion) 문제가 발생한다. 이 논문에서는 상태 폭발을 회피하면서 시스템의 요구사항을 체계적으로 분석할 수 있는 새로운 방법을 제안하고자 한다. 먼저 분석하고자 하는 요구사항을 속성 네트로 나타낸 후, 시스템 모델과 속성 네트를 합성하여 분석한다. 이러한 합성 분석에서는 분석 대상 속성과 연관되지 않는 모델의 부분들을 축약 규칙에 따라 축약함으로써 분석 도메인을 점진적으로 줄어 나갈 수 있으며 요구사항 만족 여부를 간단히 검사할 수 있는 장점이 있다.