• Title/Summary/Keyword: 모델 체킹

Search Result 79, Processing Time 0.025 seconds

Mitigating the State Explosion Problem using Relay Model Checking (릴레이 모델 체킹을 이용한 상태 폭발 문제 해결)

  • 이태훈;권기현
    • Journal of KIISE:Software and Applications
    • /
    • v.31 no.11
    • /
    • pp.1560-1567
    • /
    • 2004
  • In temporal logic model checking, the number of states is exponentially increased by the size of a model. This is called the state explosion problem. Abstraction, partial order, symmetric, etc. are widely used to avoid the problem. They reduce a number of states by exploiting structural information in a model. Instead, this paper proposes the relay model checking that decomposes a temporal formula to be verified into several sub-formulas and then model checking them one by one. As a result, we solve complex games that can't handle with previous techniques.

Study on Specification Method for Model Checking in STATEMATE MAGNUM (STATEMATE MAGNUM 모델체킹을 위한 정형명세 기법 연구)

  • 김진현;안영아;장상철;이나영;최진영
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2004.04b
    • /
    • pp.349-351
    • /
    • 2004
  • STATEMATE는 Statecharts로 시스템의 행위를 설계하는 도구이다. 근래 들어. STATEMATE MAGNUM은 설계 뿐 아니라 모델체킹을 이용한 정형검증의 기능을 가지고 있다. 모델체킹은 상태 기반의 설계명세 된 시스템을 시제 논리로 그 요구 명세를 기술하여 설계명세가 요구명세를 만족시키는지를 검증하게 된다. 하지만 설계명세가 큰 경우, 모델체킹 시 상태폭발을 일으켜 시스템을 검증하지 못하게 한다. 모델체킹의 상태 폭발을 줄이기 위해서는 기본적으로 모델체커의 알고리즘을 개선시키거나, 모델을 추상화시킨다. 본 연구에서는 모델을 추상화시키더라도 검증 결과에는 별 영향을 주지 않는 부분을 추상화하고, 검증 결과에 직접 적인 영향을 주는 부분을 상세 명세하는 기법을 적용하여 실시간 운영체제의 코드를 어떻게 검증을 하는지를 보여준다.

  • PDF

Efficient Counterexample Generation for Safety Violation in Model Checking (모델 체킹에서 안전성 위반에 대한 효율적인 반례 생성)

  • Lee Tae-hoon;Kwon Gi-hwon
    • The KIPS Transactions:PartD
    • /
    • v.12D no.1 s.97
    • /
    • pp.81-90
    • /
    • 2005
  • Given a model and a property, model checking determines whether the model satisfies the property. In case the model does not satisfy the property model checking gives a counterexample which explains where the violation occurs. Since counterexamples are useful for model debugging as well as model understanding, counterexample generation is one of the indispensable components in the model checking tool. This paper presents efficient counterexample generation techniques when a safety property is falsified. These techniques are used to solve Push Push games which consist of 50 games. As a result, all the games are solved with the proposed techniques. However, with the original NuSMV, 42 games are solved but 8 failed. In addition, we obtain $86{\%}$ time improvement and $62{\%}$ space improvement compared to the original NuSMV in solving the game.

Controlling a Traversal Strategy of Abstract Reachability Graph-based Software Model Checking (추상 도달가능성 그래프 기반 소프트웨어 모델체킹에서의 탐색전략 고려방법)

  • Lee, Nakwon;Baik, Jongmoon
    • Journal of KIISE
    • /
    • v.44 no.10
    • /
    • pp.1034-1044
    • /
    • 2017
  • Although traversal strategies are important for the performance of model checking, many studies have ignored the impact of traversal strategies in model checking with a block-encoded abstract reachability graph. Studies have considered traversal strategies only for an abstract reachability graph without block-encoding. Block encoding plays a crucial role in the model checking performance. This paper therefore describes Dual-traversal strategy, a simple and novel technique to control traversal strategies in a block-encoded abstract reachability graph. This method uses two traversal strategies for a model checking, one for effective block-encoding, and the other for traversal in an encoded abstract reachability graph. Dual-traversal strategy is very simple and can be implemented without overhead compared to the existing single-traversal strategy. We implemented the Dual-traversal strategy in an open source model checking tool and compare the performances of different traversal strategies. The results show that the model checking performance varies from the traversal strategies for the encoded abstract reachability graph.

Requirements for Code-Based Model Checking for Embedded Software (임베디드 소프트웨어를 위한 코드 기반 모델 체킹 도구의 요구사항)

  • Lee Taehoon;Kwon Gihwon
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2004.11a
    • /
    • pp.327-330
    • /
    • 2004
  • 테스팅이 오류의 존재를 증명할 수 있는데 반해서, 정형 검증 기술은 시스템에 오류가 존재하지 않음을 증명할 수 있다. 모델 체킹은 이런 정형 검증 기술 중의 하나이다. 최근에 모델 체킹을 이용하여 코드를 자동으로 검증하려는 연구들이 많다. 하지만 이런 연구는 일반적인 환경에서의 검사만을 할 수 있다. 반면에 임베디드 소프트웨어는 실시간성, 외부 환경, 다중 스레드 등의 다양한 특성이 존재한다. 따라서 임베디드 소프트웨어와 같이 안전한 소프트웨어 시스템을 필요로 하는 환경을 위한 모델 체킹을 수행하기는 힘들다. 본 논문에서는 임베디드 소프트웨어에 대한 모델체킹 도구가 검증할 수 있어야 하는 실시간 시스템의 검증, 외부 환경에 대한 고려, 다중 스레드 시스템의 검증 등을 설명하고, 기존 도구들이 얼마나 만족하고 있는지 조사해본다.

  • PDF

CTL Model Checking using SPIN (SPIN 을 이용한 CTL 모델 체킹 방법론 연구)

  • Bang, Ki-Seok;Lee, Joo-Yong;Choi, Jin-Young
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2001.04a
    • /
    • pp.181-184
    • /
    • 2001
  • 모델체킹에 사용되는 논리는 CTL 과 LTL 이 있다. 이 두 논리식은 그 표현력과 효과적인 면에서 크게 차이가 있다. 현재 SPIN에서는 LTL 을 이용하여 모델체킹을 수행하고 있다. 본 논문에서는 LTL 모델체커인 SPIN 에 CTL 을 적용시킬 수 있는 가능성을 제시하고, LTL 모델 체커에 CTL 을 적용시킬 수 있는 방법에 대해 논한다.

  • PDF

Predicate Abstraction of Java Program for Model Checking (모델 체킹을 위한 자바프로그램의 술어추상화)

  • Lee, Jung-Rim;Lee, Tae-Hoo;Kwon, Gi-Hwon
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2005.11b
    • /
    • pp.325-327
    • /
    • 2005
  • 모델 체킹은 시스템이 올바르게 동작하는 지를 자동으로 검증해주는 기법이다. 지금까지 모델 체킹은 방법의 특성상 상태폭발문제 때문에 작은 규모의 상태공간을 갖는 하드웨어나 프로토콜 검증에 주로 사용되어져 왔다. 그러나 최근에는 상태폭발문제를 다루기 위한 연구와 술어추상화 등과 같은 추상화기술의 발달로, 다를 수 있는 상태공간의 크기가 증가하고 정리증명기의 성능이 향상됨에 따라 소프트웨어 자체의 논리적 오류를 검증하려는 움직임이 활발하다. 일반적으로 소프트웨어 검증을 위해 추상화-모델 체킹-추상화 개선의 3단계 프로세스를 사용하는데 주로 C프로그램에 대해서만 이루어져 왔다. 우리는 이 프로세스를 자바프로그램에 적용하고 자동으로 자바프로그램을 이진프로그램으로 변환하는 술어추상화 모듈을 개발하였다. 이 모듈은 우리가 개발한 자바 모델 체커의 front-end부분이다. 본 논문에서는 자바프로그램에 대한 주요 추상화 알고리즘을 보이고 특정 자바프로그램의 안전성과 궁극성을 검증한다.

  • PDF

System Resource Utilization Analysis based on Model Checking Method (모델 체킹을 이용한 시스템의 자원 활용 분석)

  • Bang, Ki-Seok;Jin, Hyun-Wook;Choi, Jin-Young;Yoo, Hyuck
    • Journal of KIISE:Computer Systems and Theory
    • /
    • v.30 no.2
    • /
    • pp.59-67
    • /
    • 2003
  • This paper addresses how model checking methods can be applied to utilization analysis of system. Measuring a system performance using simulation is an easy task but finding the bottleneck in a certain system is not an easy task. Especially, system is getting complicated and interacts with other systems, which makes the analysis very difficult. As an alternative approach, we show that can specify system utilization properties using temporal logic, and can find a reason of a system performance drop easily using model checking.

Formal Verification of Embedded Java Program (임베디드 자바 프로그램의 정형 검증)

  • Lee, Tae-Hoon;Kwon, Gi-Hwon
    • The KIPS Transactions:PartD
    • /
    • v.12D no.7 s.103
    • /
    • pp.931-936
    • /
    • 2005
  • 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.

Java Memory Model Simulation using SMT Solver (SMT 해결기를 이용한 자바 메모리 모델 시뮬레이션)

  • Lee, Tae-Hoon;Kwon, Gi-Hwon
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.15 no.1
    • /
    • pp.62-66
    • /
    • 2009
  • Recently developed compilers perform some optimizations in order to speed up the execution time of source program. These optimizations require the transformation of the sequence of program statements. This transformation does not give any problems in a single-threaded program. However, the transformation gives some significant errors in a multi-threaded program. State-of-the-art model checkers such as Java-Pathfinder do not consider the transformation resulted in the optimization step in a compiler since they just consider a single memory model. In this paper, we describe a new technique which is based on SMT solver. The Java Memory Model Simulator based on SMT Solver can compute all possible output of given multi-thread program within one second which, in contrast, Traditional Java Memory Model Simulator takes one minute.