KR100329971B1 - 병렬객체지향시스템의정형적검증방법 - Google Patents

병렬객체지향시스템의정형적검증방법 Download PDF

Info

Publication number
KR100329971B1
KR100329971B1 KR1019980056160A KR19980056160A KR100329971B1 KR 100329971 B1 KR100329971 B1 KR 100329971B1 KR 1019980056160 A KR1019980056160 A KR 1019980056160A KR 19980056160 A KR19980056160 A KR 19980056160A KR 100329971 B1 KR100329971 B1 KR 100329971B1
Authority
KR
South Korea
Prior art keywords
verification
oriented
parallel object
modeling
model
Prior art date
Application number
KR1019980056160A
Other languages
English (en)
Other versions
KR20000040501A (ko
Inventor
원성기
김민경
김영곤
조승모
배두환
Original Assignee
이계철
한국전기통신공사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이계철, 한국전기통신공사 filed Critical 이계철
Priority to KR1019980056160A priority Critical patent/KR100329971B1/ko
Publication of KR20000040501A publication Critical patent/KR20000040501A/ko
Application granted granted Critical
Publication of KR100329971B1 publication Critical patent/KR100329971B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

1. 청구범위에 기재된 발명이 속하는 기술분야
본 발명은 병렬 객체지향 시스템의 정형적 검증 방법에 관한 것임.
2. 발명이 해결하고자 하는 기술적 과제
본 발명은 병렬 객체지향 시스템을 모델링하여, 그 모델의 정확성을 검증하기 위한, 병렬 객체지향 시스템의 정형적 검증 방법을 제공하고자 함.
3. 발명의 해결 방법의 요지
본 발명은 검증 시스템에서의 병렬 객체지향 시스템의 정형적 검증 방법에 있어서, 검증하고자 하는 시스템을 여러 가지 정보를 사용하여 병렬 객체지향 모델링 언어로 모델링하는 제 1 단계; 상기 모델링 언어로 모델링된 병렬 객체지향 시스템을 기존의 검증기용 모델링 언어로 변환하는 제 2 단계; 상기 제 2 단계에 의하여 변환된 모델에 대한 검증을 수행하는 제 3 단계; 및 상기 검증 결과 오류가 발생하면 모델을 수정하고, 검증 결과에 오류가 없을 때까지 상기 제 1 단계부터 반복하는 제 4 단계를 포함함.
4. 발명의 중요한 용도
본 발명은 병렬 객체지향 시스템의 검증 등에 이용됨.

Description

병렬 객체지향 시스템의 정형적 검증 방법{Formal verification method for concurrent object-oriented system}
본 발명은, 병렬 객체지향 시스템의 정확성을 모델체킹이라는 정형적 검증 기법을 이용해 검증할 수 있도록 하는 정형적 검증 방법에 관한 것으로서, 특히 병렬 객체지향 시스템의 정형적 검증 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체에 관한 것이다.
일반적으로, 소프트웨어의 사용이 늘어남에 따라 그것의 정확한 동작이 중요하게 대두되는 경우가 늘어나고 있다. 따라서 다른 공학 분야에서와 같이 소프트웨어의 동작을 모델링하고 검증하려는 방법들이 많이 제안되어 왔다.
이 방법들은 모델링하는 과정에서 사용하는 모델링 언어와, 그렇게 만들어진 모델을 검증할 수 있는 알고리즘으로 구성된다.
그러나, 아직까지 기존의 검증용 모델링 언어 중 병렬 객체지향 시스템을 목적으로 하는 언어는 없었으며, 따라서 병렬 객체지향 시스템을 검증하기 위해 모델을 만들 때, 설계자는 대상 시스템의 구조를 그대로 유지할 수 없게 되므로, 모델링 과정이 복잡할 뿐만 아니라, 모델이 실제 시스템을 충실히 반영하지 못한다는 문제점이 있었다.
본 발명은 상기 종래 기술의 문제점을 해결하기 위하여 제안된 것으로, 병렬 객체지향 시스템을 모델링하여, 그 모델의 정확성을 검증하기 위한, 병렬 객체지향 시스템의 정형적 검증 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 그 목적이 있다.
도 1 은 본 발명이 적용되는 검증 시스템의 일실시예 구성도.
도 2 는 본 발명에 따른 정형적 검증 방법의 일실시예 흐름도.
* 도면의 주요 부분에 대한 부호의 설명
101 : 객체지향 시스템 102 : 객체지향 시스템 검증부
103 : 운용자
상기 목적을 달성하기 위하여 본 발명은, 검증 시스템에서의 병렬 객체지향 시스템의 정형적 검증 방법에 있어서, 검증하고자 하는 시스템을 여러 가지 정보를사용하여 병렬 객체지향 모델링 언어로 모델링하는 제 1 단계; 상기 모델링 언어로 모델링된 병렬 객체지향 시스템을 기존의 검증기용 모델링 언어로 변환하는 제 2 단계; 상기 제 2 단계에 의하여 변환된 모델에 대한 검증을 수행하는 제 3 단계; 및 상기 검증 결과 오류가 발생하면 모델을 수정하고, 검증 결과에 오류가 없을 때까지 상기 제 1 단계부터 반복하는 제 4 단계를 포함한다.
또한 본 발명은, 검증 시스템에서의 병렬 객체지향 시스템의 정형적 검증을 위하여, 대용량 프로세서를 구비한 검증 시스템에, 검증하고자 하는 시스템을 여러 가지 정보를 사용하여 병렬 객체지향 모델링 언어로 모델링하는 제 1 기능; 상기 모델링 언어로 모델링된 병렬 객체지향 시스템을 기존의 검증기용 모델링 언어로 변환하는 제 2 기능; 상기 제 2 기능에 의하여 변환된 모델에 대한 검증을 수행하는 제 3 기능; 및 상기 검증 결과 오류가 발생하면 모델을 수정하고, 검증 결과에 오류가 없을 때까지 상기 제 1 기능부터 반복하는 제 4 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
본 발명은 병렬 객체지향 시스템을 모델링할 수 있는 새로운 언어에 의하여, 시스템을 모델링하고, 그 개발된 모델링 언어에서 기존의 모델링 언어로의 변환과정을 정의함으로써, 별도의 검증 알고리즘이나 도구를 개발하지 않고 기존의 것들을 사용할 수 있도록 했다.
즉, 이를 위하여 기존의 모델체커(예컨데 "SPIN" 등)에서 지원하는 모델링 언어를 확장한 모델링 언어를 고안하였으며, 이 언어로 작성된 모델을 자동으로 기존의 모델링 언어로 변환하는 방법을 개발함으로써, 이를 통해 병렬 객체지향 시스템의 검증을 수행할 수 있다.
이하 도 1 내지 도 2 를 참조하여 본 발명의 바람직한 일실시예를 상세히 설명한다.
도 1 은 본 발명이 적용되는 검증 시스템의 일실시예 구성도이다.
도면에 도시된 바와 같이, 객체지향 시스템 검증부(102)의 운용자(103)는 객체지향 시스템(101)에 대한 정확성 검증을 위하여, 우선 병렬객체지향 모델링 언어를 사용하여 시스템을 모델링하고, 그 모델링 언어를 기존의 모델링 언어로 변환하여 시스템의 정확성을 검증한다.
즉, 본 발명을 위해서는 병렬 객체지향 모델링 언어가 필요하며, 그 언어에서 기존 모델링 언어로 변환하는 방법이다.
병렬 객체지향 모델링 언어의 셀계는 기존의 병렬 객체지향 프로그램밍언어의 설계와 유사하다. 병렬 객체지향 프로그래밍 언어들이 일반적으로 순차적 언어들에 병렬성과 객체지향 개념을 추가하여 만들어지듯이, 본 발명에 적용되는 병렬 객체지향 모델링 언어도 기존의 모델링 언어인 프로메라(Promela)에 이들 개념을 추가하였다. 이는 개념적으로 간단하고 오랜 역사를 가지는 모델이다.
언어를 설계할 때 기존의 언어를 확장하였으므로, 확장된 언어의 구문을 기존의 언어의 구문으로 나타낼 수 있게 된다. 따라서 새로 고안한 언어로 작성된 모델을 기존의 언어로 바꿀 수 있는 알고리즘을 만들었다. 이렇게 구성된 본 방법을 적용하는 과정은 도 2 와 같다.
도 2 는 본 발명에 따른 정형적 검증 방법의 일실시예 흐름도이다.
우선, 사용자는 검증할 시스템을 제안된 모델링 언어로 모델링해야 한다(201). 이 과정에서는 여러 가지 정보를 사용하게 된다. 시스템이 아직 개발되지 않은 경우에는 요구 사항 정보들이 모델링 대상이 된다. 상세 설계까지 끝난 경우에는 그 설계를 바탕으로 모델링할 수 있다. 즉, 그 상세 설계 문서 및 프로그램 소스코드와 같은 좀 더 자세한 정보를 가지고 모델링할 경우, 더 정교한 모델을 얻을 수 있게 된다.
이 과정에서는 주로 제어정보를 중심으로, 병렬성에 관계된 부분을 모델링하게 된다. 검증에 관계없을 것으로 보이는 부분은 추상화하여 모델링하게 된다. 이때, 여기서 사용하는 병렬 객체지향 모델을 정확히 이해하고 모델링하여야 대상 시스템과 같은 의미를 가지는 모델을 만들 수 있다.
이렇게 모델이 만들어지면 그것을 본 발명에서 제시한 알고리즘에 따라 기존의 검증기용 모델링 언어로 변환하게 된다(202). 이 모델링 언어는 기존의 검증기용 모델링 언어를 객체지향을 지원하도록 확장한 것이다. 변환 알고리즘은 이 확장된 구문을, 원래의 언어로 변화시켜주는 일을 한다.
여기서 사용한 기존의 검증기란, 기존의 모델체커(SPIN)를 말한다. 이는 데드락 등의 병렬성에 관한 성질을 검증할 수 있는 도구이다. 이 도구에서는 모델링 언어로 프로메라(Promela)라는, 병렬 시스템 모델링 언어를 지원한다. 따라서 본 발명에서는 기존의 모델체커(ASPIN)의 모델링 언어인 프로메라(Promela)로 변환하게 된다.
최종적으로 이렇게 변환된 모델을 가지고 기존의 모델체커(SPIN) 도구를 사용하여 검증을 수행한다(203). 여기서는 정형적 검증 외에도, 시스템 이해를 돕기 위해 단순한 시뮬레이션을 수행할 수도 있다.
이렇게 검증을 수행한 결과 오류가 발생하면 모델을 수정해야 한다(204). 오류는 원래 시스템이 뭔가 문제를 가지고 있었다던가, 모델링 과정에서 문제가 있었다던가 하는 것을 나타낸다.
어느 경우이든, 기존의 모델체커(SPIN)에서 제공되는 디버깅 정보를 가지고 모델을 수정한다(205). 이 과정을 반복하여 문제가 없는 시스템을 만들 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 한정되는 것이 아니다.
상기한 바와 같은 본 발명은, 정확성 검증을 위해 소프트웨어를 모델링할 때, 그 소프트웨어가 병렬객체지향으로 작성되어있는 경우에, 기존의 모델링 언어를 사용하는 것 보다 더 직접적인 모델링을 수행할 수 있게 함으로써, 모델링 과정의 편의는 물론이고, 만들어진 모델의 정확성을 높여주는 우수한 효과가 있다.

Claims (4)

  1. 검증 시스템에서의 병렬 객체지향 시스템의 정형적 검증 방법에 있어서,
    검증하고자 하는 시스템을 여러 가지 정보를 참조하여 병렬 객체지향 모델링 언어로 모델링하는 제 1 단계;
    상기 모델링 언어로 모델링된 병렬 객체지향 시스템을 기존의 검증기용 모델링 언어로 변환하는 제 2 단계;
    상기 제 2 단계에 의하여 변환된 모델에 대한 검증을 수행하는 제 3 단계; 및
    상기 검증 결과 오류가 발생하면 모델을 수정하고, 검증 결과에 오류가 없을 때까지 상기 제 1 단계부터 반복하는 제 4 단계
    를 포함하는 병렬 객체지향 시스템의 정형적 검증 방법.
  2. 제 1 항에 있어서,
    상기 제 1 단계의 상기 정보는,
    상기 시스템이 아직 개발되지 않은 경우에는 요구 사항 분석 정보, 상세 설계까지 끝난 경우에는 그 상세 설계 문서, 및 프로그램 소스코드를 포함하는 것을 특징으로 하는 병렬 객체지향 시스템의 정형적 검증 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 제 1 단계의 모델링 과정은,
    검증에 관계없는 부분에 대하여는 추상화하여 모델링하는 것을 특징으로 하는 병렬 객체지향 시스템의 정형적 검증 방법.
  4. 검증 시스템에서의 병렬 객체지향 시스템의 정형적 검증을 위하여, 대용량 프로세서를 구비한 검증 시스템에,
    검증하고자 하는 시스템을 여러 가지 정보를 사용하여 병렬 객체지향 모델링 언어로 모델링하는 제 1 기능;
    상기 모델링 언어로 모델링된 병렬 객체지향 시스템을 기존의 검증기용 모델링 언어로 변환하는 제 2 기능;
    상기 제 2 기능에 의하여 변환된 모델에 대한 검증을 수행하는 제 3 기능; 및
    상기 검증 결과 오류가 발생하면 모델을 수정하고, 검증 결과에 오류가 없을 때까지 상기 제 1 기능부터 반복하는 제 4 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1019980056160A 1998-12-18 1998-12-18 병렬객체지향시스템의정형적검증방법 KR100329971B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980056160A KR100329971B1 (ko) 1998-12-18 1998-12-18 병렬객체지향시스템의정형적검증방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980056160A KR100329971B1 (ko) 1998-12-18 1998-12-18 병렬객체지향시스템의정형적검증방법

Publications (2)

Publication Number Publication Date
KR20000040501A KR20000040501A (ko) 2000-07-05
KR100329971B1 true KR100329971B1 (ko) 2002-05-09

Family

ID=19563732

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980056160A KR100329971B1 (ko) 1998-12-18 1998-12-18 병렬객체지향시스템의정형적검증방법

Country Status (1)

Country Link
KR (1) KR100329971B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100456631B1 (ko) * 2001-12-28 2004-11-10 한국전자통신연구원 객체지향 프로그래밍 시스템의 설계 모델 적용장치와 그적용방법 및 이에 관련된 프로그램의 기록매체
KR102443791B1 (ko) * 2020-11-19 2022-09-16 고려대학교 산학협력단 보안 시스템 설계 및 검증을 위한 모델 기반 보안 프레임워크

Also Published As

Publication number Publication date
KR20000040501A (ko) 2000-07-05

Similar Documents

Publication Publication Date Title
Balzer Transformational implementation: An example
Guerra et al. Automated verification of model transformations based on visual contracts
Büttner et al. Verification of ATL transformations using transformation models and model finders
Narayanan et al. Towards verifying model transformations
US6285914B1 (en) Verification method by means of comparing internal state traces
Könighofer et al. Repair with on-the-fly program analysis
JP4140917B2 (ja) 検証作業支援システム及びその方法
Zheng et al. Atr: Template-based repair for alloy specifications
Stump Proof checking technology for satisfiability modulo theories
Blanchard et al. Logic against ghosts: comparison of two proof approaches for a list module
US20190079738A1 (en) Bytecode generation from uml models
KR100329971B1 (ko) 병렬객체지향시스템의정형적검증방법
Van Strydonck et al. Linear capabilities for fully abstract compilation of separation-logic-verified code
KR0125605B1 (ko) 프로그램의 아키덱쳐 변환방법 및 장치와 그 방법 및 장치를 사용하여 프로그램의 동작을 검증하는 방법 및 장치
US8250553B2 (en) Method and data processing system for finding problems caused by access to uninitialized data storage in assembler programs
Ayaziová et al. Software verification witnesses 2.0
Luo et al. Towards deductive verification of message-passing parallel programs
Hildebrandt et al. Integration of triple graph grammars and constraints
Karsai et al. On the correctness of model transformations in the development of embedded systems
Pitchford Embedded software quality, integration, and testing techniques
Eakman et al. Practical formal verification of domain-specific language applications
Mariño et al. Synthesis of verifiable concurrent Java components from formal models
Toma et al. Combining several paradigms for circuit validation and verification
Chakraborty et al. How Hard Is Weak-Memory Testing?
Mooij et al. Incremental verification of Owicki/Gries proof outlines using PVS

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20100310

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee