KR20020003290A - 이벤트 흐름 차트를 이용한 이산 이벤트 시스템의 모델링방법 - Google Patents

이벤트 흐름 차트를 이용한 이산 이벤트 시스템의 모델링방법 Download PDF

Info

Publication number
KR20020003290A
KR20020003290A KR1020010037983A KR20010037983A KR20020003290A KR 20020003290 A KR20020003290 A KR 20020003290A KR 1020010037983 A KR1020010037983 A KR 1020010037983A KR 20010037983 A KR20010037983 A KR 20010037983A KR 20020003290 A KR20020003290 A KR 20020003290A
Authority
KR
South Korea
Prior art keywords
event
node
flow control
modeling
state
Prior art date
Application number
KR1020010037983A
Other languages
English (en)
Other versions
KR100433678B1 (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 최종하
Publication of KR20020003290A publication Critical patent/KR20020003290A/ko
Application granted granted Critical
Publication of KR100433678B1 publication Critical patent/KR100433678B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques

Abstract

본 발명은 이벤트 흐름 차트(Event Flow Chart)를 이용한 이산 이벤트 시스템(Discrete Event System) 모델링 방법에 관한 것이다.
본 발명에 따른 이벤트 흐름 차트는 기존의 상태 차트(State Chart)와 상이한 새로운 표현 방법으로서, 추상적 개념인 '상태(state)'를 기술하는 대신에 '이벤트'의 흐름만을 기술함으로써 시스템의 상태를 파악하지 않고서도 용이하게 시스템을 모델링 할 수 있도록 한다.
본 발명은, 설계 명세(design specification)로부터 이벤트 흐름 차트를 직접 작성하여, 본 발명에 따른 이벤트 흐름 제어 엔진이 이벤트 흐름 차트에서 정의된 규칙에 따라 시스템을 구동시킴으로써 용이하게 시스템을 모델링하고 구현할 수 있도록 한다.

Description

이벤트 흐름 차트를 이용한 이산 이벤트 시스템의 모델링 방법{Modeling Method for Discrete Event System Using Event Flow Chart}
본 발명은 이산 이벤트 시스템(Discrete Event System, DES) 모델링 및 구현에 관한 것으로서, 보다 상세하게는 DES을 이벤트 흐름 차트(Event Flow Chart, EFC)로 모델링 하고 상기 모델링 된 EFC로부터 DES을 구현시키는 이벤트 흐름 제어 엔진(Event Flow Control Engine, EFCE)에 관한 것이다.
우선적으로, 본 발명의 설명을 위해 사용하는 용어를 해설하면 다음과 같다.
(1) 상태 (state) : 시스템의 동작을 기술하기 위한 것으로서 시스템 속성(properties or attributes)에 의해 정의된다. 시간에 따라 시스템의 상태는 변화하며, 임의의 시점에 시스템은 특정 상태에 귀속되어야 한다.
간단한 CD 플레이어를 예로 들면, 전원이 켜진 상태의CD 재생기는 "playing", "stopped" 등의 상태를 가지며 특정 상태에 귀속된다.
(2) 직하위 상태 (immediate substate): 상태의 개념은 계층적으로서 임의의 상태는 다수의 종속적인 상태들로 표현될 수 있는데, 이러한 종속적인 상태를 직하위 상태라 한다.
예를 들어 CD 플레이어의 경우에, "playing", "stopped"는 모두 "power-on"의 직하위 상태라고 할 수 있다.
(3) 직상위 상태 (immediate superstate): 직하위 상태의 반대 개념이다.
CD 플레이어의 예에서, "power-on" 상태는 "playing"과 "stopped"의 직상위상태이다. 직상위 상태는 직하위 상태의 추상화된 개념으로서 직하위 상태들을 대표하는 상태라고 할 수 있다. 이에 따라 CD 플레이어의 예에서 "playing" 상태는 "power-on" 상태라고도 할 수 있다.
(4) 하위 상태 (substate): 직하위 상태의 확장된 개념이다. 직하위 상태를 포함하여, 반복적으로 얻을 수 있는 직하위 상태의 직하위 상태를 모두 하위 상태라 한다.
(5) 상위 상태 (superstate): 직상위 상태의 확장된 개념이다. 직상위 상태를 포함하여, 반복적으로 얻을 수 있는 직상위 상태의 직상위 상태까지 상위 상태라 한다.
(6) 형제 상태 (sibling state): 동일한 직상위 상태를 가지는 상태를 말한다.
CD 플레이어의 예에서, "playing"과 "stopped"는 "power-on"이라는 동일한 직상위 상태를 가지는 형제 상태이다.
(7) 계층 깊이 (hierarchical depth): 상위 상태의 개수를 의미한다.
(8) 활성 상태 (active state): 시스템이 현재 머무르고 있는 상태를 말한다.
반면에 나머지 상태들은 비활성 상태 (inactive state)라 한다. 활성 상태는 현재 상태(current state)라고도 한다.
(9) 상태 전이 (state transition): 현재의 상태에서 다른 상태로 시스템의 활성 상태가 변하는 것을 말한다.
(10) 이벤트 (event): DES에 영향을 끼치는 시스템 내부 또는 외부에서 발생하는 변화를 의미한다. 이벤트는 시스템 내부 또는 외부에서 발생하는 시스템에 대한 입력으로서, 시스템의 출력과 상태 변화를 일으키는 구체적인 현상이다.
(11) 조건 (guard condition): 상태 전이의 허용 여부를 결정짓는 조건을 말한다.
(12) 액션 (action): 상태 전이가 발생할 때 시스템이 발생시키는 이벤트. 시스템의 출력으로 볼 수 있다.
(13) 상태 전이 다이어그램 (State Transition Diagram, STD): Moore와 Mealy에 의해 제안된 방법으로서 상태들간의 전이 관계를 표현한다.
(14) 상태 차트 (State Chart): David Harel에 의해 제안된 확장된 형태의 STD. 기존의 STD에 계층적 구조를 첨가하였으며, 병렬 상태 (parallel state, orthogonality)를 표현할 수 있도록 확장한 것이다.
(15) 전이 가능 상태 (transition-allowed state): 현재 상태(current state)로부터 전이가 가능한 상태를 말한다.
도1은 이산 이벤트 시스템 개발 과정을 나타내는 흐름도이다.
일반적으로, 디지털 시스템의 개발은 도1에 도시된 바와 같이 시스템의 기능을 기술하는 "요구 및 명세"의 파악 단계(S101), 주어진 요구 사항에 맞도록 모델링하는 "분석 및 설계" 단계(S103), 모델링 결과의 "구현" 단계(S105), 구현된 시스템의 "검증" 단계(S107)의 4단계로 나누어 질 수 있다. 도1에서 볼 수 있듯이 이러한 개발 과정은 만족할 만한 시스템이 완성되기까지 여러 번 반복(iteration)되는 것이 보통으로서, 구현된 시스템에서 오류가 발견되거나, 기능의 변경이 필요한 경우 다시 단계S101부터 반복한다.
단계103은 세부적으로 "시스템 기능 기술(description)" 단계, "구성 요소 파악" 단계, "구성 요소 관계 기술" 단계 및 "동적 행동 양식(dynamic behavior) 모델링" 단계로 구성된다.
본 발명에서는 이산 이벤트 시스템(discrete event system)의 설계 방법과 구현 방법을 제안하며, 특히 단계S103의 "분석 및 설계"에서 필요한 동적 행동 양식의 기술 방법과 이의 구현을 다룬다.
도2a 및 도2b는 비상태 시스템 및 상태 시스템의 특징을 나타내는 도면이다.
이산 이벤트 시스템이란 이벤트의 발생에 의해 시스템의 반응(response)이 구동(trigger)되는 시스템으로서 보통 비상태 시스템 (non-state system)과 상태 시스템(state system)으로 구분된다.
비상태 시스템은 도2a에 도시된 바와 같이 시스템의 동작(behavior)이 비교적 단순한 경우로서, 시스템의 출력이 단지 입력에만 의존하는 시스템이다. 여기서 I는 시스템 입력 ij의 집합, O는 출력 Ok의 집합, S는 상태 Sl의 집합, f는 출력 함수를 각각 나타낸다.
반면에, 상태 시스템은 동작(behavior)이 복잡한 경우 사용되며, 도2b에 도시된 바와 같이 시스템의 출력이 주어진 입력뿐만 아니라 시스템의 상태에 의해 결정된다. 이러한 상태 시스템은 도1에서 설명된 "동적 행동 양식 모델링" 단계가 필요한 시스템이다. 여기서 g는 상태 함수를 의미한다.
도2a 및 도2b로부터 비상태 시스템과 상태 시스템의 차이를 파악할 수 있다.
도2a 및 도2b에서 볼 수 있듯이 비상태 시스템에서는 Ok=f(i)라는 관계만이 존재하므로, 모델링 과정에서는 출력 함수(output function)f(·) 만을 파악하면 된다. 따라서 입력과 출력간의 관계에 대한 기술만 요구되어 비교적 용이한 과정이라 할 수 있다.
반면에 우리가 흔히 볼 수 있는 대부분의 시스템은 이를 확장시킨 상태 시스템 모델을 가진다. 상태 시스템의 경우, 출력을 생성하기 위해 출력 함수 f(·) 에 Sl라는 새로운 상태 변수(state variable)가 필요하다. Sl는 현재 상태를 의미한다. 출력 ok를 결정하려면 상태 Sl의 값이 필요하며, 다음 상태 Sx는 Sx=g(ij, Sl)라는 상태 함수(state function)에 의해 결정된다. 결국 상태 시스템의 모델링은 상태 변화에 대한 기술이 추가되어 모델링의 난이도가 높아진다.
도3은 CD 플레이어의 요구 및 명세를 나타내는 도면이고, 도4는 도3의 요구 및 명세로부터 추출된 이벤트, 액션 및 상태를 나타내는 도면이며, 도5는 도3의 요구 및 명세에 의해 모델링 된 상태 전이 다이어그램을 나타내는 도면, 도6은 도3의 요구 및 명세에 의해 모델링 된 상태 차트를 나타내는 도면이다.
상태 변화를 기술하기 위해 제안된 방법으로는 Moore와 Mealy가 제안한 STD와 David Harel이 제안한 SC가 있다(도5 및 도6 참조)
STD는 일차원적으로(flat) 표현되어 상태들간의 전이(transition) 관계를 기술한 것으로, 상태 전이를 발생시키는 입력 이벤트 ij를 함께 표시하는 것이 일반적이다. STD에서 상태 전이가 일어나는 과정을 살펴보면, (1) 이벤트가 발생하고, (2) 조건(guard condition)을 검사하고, (3) 조건 검사를 통과하면 상태 전이를 수행한다. 상태 전이가 수행될 때는 현재 상태의 탈출 액션(exit action)을 수행한 후 목적 상태(target state)로의 상태 전이가 이루어지며, 마지막으로 전이된 상태의 진입 액션(entry action)을 수행한다.
간단한 CD 플레이어의 예를 들어, 도3과 같은 요구 및 명세(requirement and specification)가 주어졌다고 가정해보자. 도4는 주어진 요구 명세로부터 파악된 입력(I, 이벤트)/출력(O, 액션)/상태(S)를 나타낸다. 이를 이용하여 STD로 나타낸 것이 도5이다. 도5에서 참조 번호 501은 기준 상태(default state)로서, 시스템의 시작 상태(initial state) 또는 임의의 상태로 진입했을 때 자동적으로 진입하는 하위 상태(sub-state)를 나타낸다.
STD는 상태들간의 전이 관계를 시각적으로 표현하여 모델링의 효율을 높일 수 있었지만, 널리 사용되지는 못하였다. STD는 계층적 (hierarchical) 구조가 아닌 일차원적(flat) 구조를 가져 복잡한 상태전이 관계를 표현하기 어렵기 때문이다. 이를 보완한 것이 Harel의 SC로서, 계층화된 상태전이 관계를 표현할 수 있도록 하였다. 도4를 이용하여 SC로 나타낸 것이 도6이다.
SC에서는 임의의 상태가 내부적으로 다수의 종속적인 하위 상태(sub-state)를 가질 수 있어 상태 다이어그램의 일반화된 형태라고 할 수 있다.
도6에 도시된 바와 같이 CD 플레이어의 경우, "Stopped"(503)와 "Playing"(505)의 상태는 전원이 켜져 있을 때만 가능한 상태이므로, 이들을 "Power On"(601)이라는 상태로 추상화(abstraction)할 수 있다. 이에 따라 "Stopped"(503)와 "Playing"(505) 상태는 "Power On"의(601) 하위 상태(sub-state)가 되고, "Power On"(601)은 이들의 상위 상태(super-state)가 된다.
도6에서 전원이 켜지면 자동적으로 "Stopped"(503) 상태가 되므로, "Stopped"(503)는 "Power On"(601)의 기준 상태(default state)가 된다.
Harel의 SC는 「I-Logix」의 「STATEMATE」라는 소프트웨어 제품에 의해 구현되었으며, 이외에도 「MatrixX」의 「BetterState」, 「Matlab」의 「Stateflow」 등이 DES 모델링을 위해 사용되고 있다. 이들은 공통적으로 SC의 개념을 사용하여, 시각적(visual)인 모델링을 가능하게 한 유사 제품으로 보아도 무방하다.
MMI (man-machine interface) 설계에 사용되는 「Emultek」의 「Rapid」또한 동일한 개념을 사용하지만, SC가 계층적인 구조를 가진다는 점에 근거하여 이를 단지 트리 구조로 표현하는 차이가 있다.
위와 같은 방법론에 기반한 모델링은 시스템의 동적인 기능을 정확히 기술하여, 시스템 구현 및 수정, 확장에 상당히 유리한 것으로 알려져 있다.
하지만 모델링 과정이 쉽지 않은 현실적인 문제를 가지고 있기도 하다. 위와 같은 모델링 방법은 기본적으로 시스템의 상태를 명확히 파악할 것을 요구하는데, 상태라는 개념의 추상성으로 인해 보이지 않는 오류가 발생하기 쉽고 설계자의 시각에 따라 서로 다른 결과가 나오기 쉽다.
따라서 비전문가가 올바른 SC를 작성하는 것은 쉽지 않으며, 숙련된 전문가라 할지라도 보는 시각에 따라 서로 다른 모델링 결과가 나온다.
CD 플레이어의 경우는 단지 3개의 상태만을 가지는 아주 단순한 시스템이지만, 보는 시각에 따라 도5와 6처럼 서로 다른 결과가 가능하다.
상태의 추상적 특성은 이미 완성된 모델의 수정 및 확장 또한 어렵게 만든다. CD 플레이어의 예를 들어, "일시 정지(pause)"라는 기능을 추가해보자. 도7은 도3의 요구 및 명세에 일시 정지 기능을 추가한 요구 및 명세를 나타내는 도면이고, 도8은 도7의 요구 및 명세로부터 추출된 이벤트, 액션 및 상태를 나타내는 도면이며, 도9a 내지 도9c는 도7의 요구 및 명세에 의해 모델링 된 서로 다른 상태 차트를 나타내는 도면이다.
도7의 요구 및 명세 및 도8의 이벤트/액션/상태와 도3의 요구 및 명세 및 도4의 이벤트/액션/상태는 "정지(stop)" 후 "연주 (play)"는 첫 번째 트랙(track)부터 재생을 다시 시작하는 반면, "일시 정지" 후 "연주"는 이전 위치부터 재생을 재개하는 차이가 있다. 설계자의 주관에 따라 다양한 모델링이 가능함을 알아보자.
모델링 I) "일시 정지(Paused)"를 "Stopped"(503)의 하위 상태로 본다.
모델링 II) "일시 정지(Paused)"를 "Playing"(505)의 하위 상태로 본다.
모델링 III) "일시 정지(Paused)"를 "Stopped"(503), "Playing"(505)과 대등한 상태로 본다.
첨부된 도9a 내지 도9c에서는 상기 모델링 I/II/III에 해당하는 SC를 각각 보여주고 있다.
모델의 효율성은 모델링의 목적이나 구현에 따라 결정되므로 어느 모델이 좋은 지를 판단하는 것은 어려운 일이다. 하지만, 동일한 시스템에 대해 서로 다른 모델이 나온다는 것은, 많은 사람들이 협력적으로 개발할 때 개발의 효율성을 떨어뜨린다. 또한 동일한 설계자의 시각도 때에 따라 달라지므로 개발의 일관성을 떨어뜨리는 문제가 있다.
종래의 SC가 갖는 추상성의 문제를 해결하기 위해 이벤트의 특징을 살리는 것으로 국제 이동 통신 협회 ITU(International Telecommunication Union)의 메시지 순서 차트 MSC(message sequence chart)와 「Cycore」사의 「Cult3D」라는 소프트웨어 제품 등을 들 수 있다.
MSC에서의 메시지는 데이터 전달(data transfer)이나 함수 호출(function call)을 포함하는 모든 통신(communication) 현상으로서, 일종의 이벤트로 간주할 수 있다. 하지만 MSC는 시스템을 구성하는 요소(component)들간의 메시지 전송을 다루어, 데이터 흐름(data flow)을 기술하는 구조적인(structural) 방법이라 할 수 있다.
MSC와 유사한 것으로 UML(Unified Modeling Language)의 순서 다이어그램(Sequence Diagram)과 협력 다이어그램 (Collaboration Diagram) 등이 있으나, 이들은 MSC와 동일한 개념이며 MSC의 변형된 형태라 할 수 있다.
그러나, 이러한 MSC는 단순한 데이터의 흐름만을 기술하기 때문에 데이터의 흐름을 포함한 전체 시스템이나 구성 요소 자체의 내부적인 행동 양식을 제어하는 제어 흐름을 기술할 수 없는 문제점이 있다.
「Cult3D」에서는 MSC와는 달리 시스템의 행동 양식을 기술하지만, 그 대상은 비상태 시스템에 국한되어 상태 의존적인(state dependent) 행동 양식을 기술할 수 없다. 즉, 상태 변화는 무시하고 Ok=f(ij)에 의한 입력과 출력의 관계만을 기술하여, 동적인(dynamic) 행동 양식을 기술하지 못하는 문제점이 있다.
본 발명을 이해하는데, 도움이 되는 참고 문헌을 소개하면 다음과 같다.
1) David Harel, "Statecharts, a visual approach to complex systems", Science of Computer Programming, 1987.
2) David Harel, "On Visual Formalism", Communication of the ACM, pp 514-530, May 1988.
3) David Harel, "STATEMATE: A Working Environment for Development of Complex Reactive System", IEEE Transaction on Software Engineering, pp 403-414, April 1997.
4) D. Coleman, F. Hayes and S. Bear, "Introducing objectcharts or how to use statecharts in object-oriented design", IEEE Transactions on software engineering, vol. 18, no. 1, pp. 9-18, January 1992.
5) D. Budgen, "Software Design", Addison Wesley, pp 123-135, 1994.
Antti Auer, "State Testing of Embedded Software, University of Oulu, Department of Information Processing Science and Infotech Oulu, Research paper series A2T, March 1997.
6) P. Ramadge and W. M. Wonham, "The Control of Discrete Event Systems'', Proceedings of the IEEE, Vol 77, No. 1, 1989.
7) Quatrani, Terry., "Visual Modeling with Rational Rose and UML", Addison Wesley, 1998.
8) Gomaa, Hassan., "Software Design Methods for Concurrent and Real-Time Systems", Addison Wesley, 1993.
9) ITU (International Telecommunication Union), "ITU-T Recommendation Z.120 - Message Sequence Chart", ITU, November, 1999.
본 발명에서는 상기한 바와 같은 문제점을 해결하고자 안출된 것으로서, 상태를 고려하지 않고(state hiding) 이벤트를 통해 DES을 EFC로 모델링하는 방법, 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 및 상기 방법을 통해 생성된 EFC에 의해 DES을 제어하는 시스템을 제공함에 그 목적이 있다.
본 발명이 속한 기술 분야에서 통상의 지식을 가진 자는 본 명세서의 도면, 발명의 상세한 설명 및 특허청구범위로부터 본 발명의 다른 목적 및 장점을 쉽게 인식할 수 있다.
도1은 이산 이벤트 시스템 개발 과정을 나타내는 흐름도,
도2a 및 도2b는 비상태 시스템 및 상태 시스템의 특징을 나타내는 도면,
도3은 CD 플레이어의 요구 및 명세를 나타내는 도면,
도4는 도3의 요구 및 명세로부터 추출된 이벤트, 액션 및 상태를 나타내는 도면,
도5는 도3의 요구 및 명세에 의해 모델링 된 상태 전이 다이어그램을 나타내는 도면,
도6은 도3의 요구 및 명세에 의해 모델링 된 상태 차트를 나타내는 도면,
도7은 도3의 요구 및 명세에 일시 정지 기능을 추가한 요구 및 명세를 나타내는 도면,
도8은 도7의 요구 및 명세로부터 추출된 이벤트, 액션 및 상태를 나타내는 도면,
도9a 내지 도9c는 도7의 요구 및 명세에 의해 모델링 된 서로 다른 상태 차트를 나타내는 도면,
도10a 내지 도10d는 상태 차트로부터 본 발명에 따른 이벤트 흐름 차트를 변환시키는 과정을 나타내는 도면,
도11은 본 발명에 따라 시스템 요구 및 명세로부터 직접 이벤트 흐름 차트를 생성하는 과정을 나타내는 흐름도,
도12a 내지 도12d는 도7의 요구 및 명세로부터 CD 플레이어 시스템을 이벤트 흐름 차트로 모델링하는 과정을 나타내는 도면,
도13은 본 발명에 따른 이벤트 흐름 제어 엔진의 기능 블록도,
도14는 도13의 이벤트 흐름 제어 엔진의 이벤트 흐름 제어 흐름도,
도15는 허용 가능한 이벤트를 나타내는 예시도,
도16은 인터럽트 이벤트/회귀 흐름에 따른 이벤트 흐름 제어를 나타내는 예시도,
도17은 무조건 흐름에 따른 이벤트 흐름 제어를 나타내는 예시도,
도18은 본 발명에 따른 이벤트 흐름 차트 모델링 및 이벤트 흐름 제어 엔진이 구현된 시스템의 인터페이스를 나타내는 도면,
도19a 내지 도19i는 본 발명에 따른 이벤트 흐름 제어 엔진을 구현한 의사 프로그램 코드를 나타내는 도면이다.
* 도면의 주요 부분에 대한 설명
1201 : 제어부 1203 : 이벤트 매칭부
1205 : 조건 검사부 1207 : 액션 실행부
1209 : IHBE 업데이트부
상기와 같은 목적을 달성하기 위해 본 발명은, 이산 이벤트 시스템을 모델링하는 방법에 있어서, 사용자가 정의한 상기 이산 이벤트 시스템의 요구 및 명세를 수신하는 제1단계, 상기 수신된 요구 및 명세로부터 이벤트 및 액션을 추출하여 저장하는 제2단계, 시작 노드를 포함하는 트리 형태의 데이터 구조를 생성하는 제3단계, 상기 제2단계에서 저장된 이벤트를 검색하여 상기 트리 형태의 데이터 구조에서 종단 노드로 표현되는 이벤트로부터 허용 가능한 이벤트가 존재하는지 여부를 판단하여 허용 가능한 이벤트가 존재하지 않는 경우에는 트리 형태의 데이터 구조 생성을 종료하는 제4단계, 상기 제4단계에서 판단 결과 허용 가능한 이벤트가 존재하는 경우에는 상기 허용 가능한 이벤트를 표현하는 노드를 상기 종단 노드의 자식 노드로 생성하는 제5단계 및 상기 데이터 구조의 모든 종단 노드에 대해 상기 제4단계 및 제5단계를 반복적으로 수행하는 제6단계를 포함하는 이산 이벤트 시스템 모델링 방법을 제공한다.
또한 상기와 같은 목적을 달성하기 위해 본 발명은, 이산 이벤트 시스템을 모델링하기 위해 프로세서를 구비한 시스템에, 사용자가 정의한 상기 이산 이벤트 시스템의 요구 및 명세를 수신하는 제1기능, 상기 수신된 요구 및 명세로부터 이벤트 및 액션을 추출하여 저장하는 제2기능, 시작 노드를 포함하는 트리 형태의 데이터 구조를 생성하는 제3기능, 상기 제2기능에서 저장된 이벤트를 검색하여 상기 트리 형태의 데이터 구조에서 종단 노드로 표현되는 이벤트로부터 허용 가능한 이벤트가 존재하는지 여부를 판단하여 허용 가능한 이벤트가 존재하지 않는 경우에는 트리 형태의 데이터 구조 생성을 종료하는 제4기능, 상기 제4기능에서 판단 결과허용 가능한 이벤트가 존재하는 경우에는 상기 허용 가능한 이벤트를 표현하는 노드를 상기 종단 노드의 자식 노드로 생성하는 제5기능 및 상기 데이터 구조의 모든 종단 노드에 대해 상기 제4기능 및 제5기능을 반복적으로 수행하는 제6기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
또한 상기와 같은 목적을 달성하기 위해 본 발명은, 이산 이벤트 시스템을 모델링하기 위한 모델링 시스템에 있어서, 사용자가 정의한 상기 이산 이벤트 시스템의 요구 및 명세를 수신하여 상기 모델링 시스템이 판독할 수 있는 코드로 변환시키는 인코더부, 상기 인코더부에 의해 변환된 코드로부터 이벤트 및 액션 데이터를 추출하는 파싱(Parsing)부, 상기 추출된 이벤트 및 액션 데이터를 저장하는 제1데이터 저장부, 시작 노드 및 종단 노드를 포함하는 트리 형태의 데이터 구조를 생성하여 저장하는 이벤트 노드 생성부 및 상기 제1데이터 저장부에 저장된 이벤트 데이터를 검색하여 상기 트리 형태의 데이터 구조에서 종단 노드로 표현되는 이벤트 데이터로부터 허용 가능한 이벤트 데이터가 존재하는지 여부를 판단하여 허용 가능한 이벤트가 존재하지 않는 경우에는 트리 형태의 데이터 구조 생성을 종료시키고 허용 가능한 이벤트 데이터가 존재하는 경우 상기 허용 가능한 이벤트 데이터를 상기 종단 노드의 자식 노드로 생성시키기 위해 상기 이벤트 노드 생성기를 활성화시키는 이벤트 검색부를 포함하는 모델링 시스템을 제공한다.
또한 상기와 같은 목적을 달성하기 위해 본 발명은, 이벤트 흐름 차트를 구현하는 시스템에 있어서, 입력된 이벤트가 이벤트를 표현하는 현재 노드로부터 허용 가능한 이벤트인지 여부를 판단하는 이벤트 매칭부, 상기 이벤트 매칭부로부터상기 입력된 이벤트가 현재 노드로부터 허용 가능한 이벤트인 것으로 판단된 경우에 상기 입력된 이벤트가 실행되기 위한 조건이 만족되는지 여부를 판단하는 조건 검사부, 상기 조건 검사부로부터 상기 입력된 이벤트가 실행되기 위한 조건이 만족되는 것으로 판단되는 경우 상기 입력된 이벤트에 일대일로 매핑되어 있는 상기 액션을 수행하여 상기 모델링된 시스템을 구동시키는 액션 수행부 및 입력된 이벤트가 상기 회귀 흐름 제어 이벤트 또는 무조건 흐름 제어 이벤트인 경우 현재 노드를 업데이트하는 노드 업데이트부를 포함하는 이벤트 흐름 차트 구현 시스템을 제공한다.
본 발명에 따르면, SC가 가지는 추상성을 없애 모델링 오류를 최소화함은 물론 설계자에 따른 모델링의 차이를 최소화할 수 있다.
본 발명은 과거의 DES 모델링 방법이 가지는 문제점을 해결하기 위해 EFC 기반의 모델링 방법과 구현 방법을 포함한다.
EFC 모델링 과정에서는 모델링의 효율을 높이기 위해 인터럽트(interrupt) 이벤트와 회귀 흐름 (return flow), 무조건 흐름(unconditional flow)을 추가로 정의한다.
인터럽트 이벤트는 직전에 발생한 이벤트를 기억하는데 사용하며, 회귀 흐름을 만나면 기억된 이벤트로의 흐름을 강제한다. 이는 시스템이 이전의 이벤트 흐름을 복원하여 원래의 작업을 재개하는데 유용하다.
무조건 흐름은 이벤트 흐름 제어의 규칙을 벗어나, 예외적으로 이벤트 흐름을 강제하는 것을 말한다. 이는 동일한 형태의 이벤트 흐름이 반복될 때, 중복을피하고 차트를 단순화시키는데 유용하게 쓰일 수 있다.
본 발명에 따라생성된 EFC는 이벤트 흐름 제어 엔진(event flow control engine)에 의해 구현되며, 이는 4단계의 모듈로 구성된다.
이벤트 흐름 제어의 4단계는 이벤트 매칭부, 조건 검사부, 액션 실행부, IHBE 업데이트부로 구성된다. 이벤트 매칭부는 실제 발생한 이벤트가 허용 가능한 이벤트의 집합에 속해 있는지 찾는 기능을 수행하고, 조건 검사부는 매칭이 성공한 이벤트로의 흐름이 가능한지 검사하는 기능을 수행한다. 조건 검사의 결과가 참이면 액션 실행부는 시스템의 액션을 수행하고 IHBE 업데이트부는 다음 이벤트 흐름을 대비한 IHBE 갱신을 수행한다.
상술한 목적, 특징 및 장점들은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 우선 각 도면의 구성요소들에 참조 번호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명한다.
EFC는 상태 시스템에서 허용 가능한 이벤트들의 발생을 기술한 것으로서, SC와 표현 양식은 다르지만 시스템의 동적 행동 양식을 기술하는 동일한 모델링이다. SC에서는 추상적인(abstract) 상태를 기술하는 반면, EFC는 구체적인(concrete) 이벤트를 기술하는 차이가 있다고 할 수 있다.
SC의 상태 전이 방식은 EFC에서 동일하게 적용된다. EFC에서는 상태 전이라는 용어 대신 이벤트 흐름(event flow)이라는 용어를 사용하는데, 이는 상태라는 개념을 감추어(state hiding) EFC의 작성을 쉽게 하기 위함이다. EFC에서 SC와는 유사한 개념이지만 다른 명칭들을 정의하는데 이것도 같은 맥락에서 비롯된다.
다음의 표1은 SC에서 정의된 용어와 본 발명에 따른 EFC에서 정의된 용어의 비교표이다.
이벤트 흐름 차트 상태 차트
(직)선행 이벤트 (직)상위 상태
(직)후행 이벤트 (직)하위 상태
직전 발생 이벤트 현재 상태
형제 이벤트 형제 상태
허용 가능 이벤트 전이 가능 상태
재귀 흐름 재귀 전이
이벤트 흐름 상태 천이
비활성 이벤트 리스트 전이 불능 상태 집합
표1에서 나타난 바와 같이, EFC에서 두 이벤트간에 직접 연결이 존재할 때 즉 두 이벤트가 트리 구조에서 부모와 자식 관계에 있을 때, 루트에서 가까운 이벤트 즉 부모 이벤트를 먼 이벤트 즉 자식 이벤트의 직선행 이벤트(immediately preceding event, IPE), 먼 이벤트 즉 자식 이벤트를 가까운 이벤트 즉 부모 이벤트의 직후행 이벤트(immediately succeeding event, ISE)라 한다.
이는 SC의 직상위 상태와 직하위 상태의 개념과 유사하다. 선행 이벤트(preceding event)와 후행 이벤트(succeeding event)는 SC의 상위 상태와 하위 상태와 유사하게 정의된다. EFC에서 직전에 발생한 이벤트는 직전 발생이벤트(immediate happened-before event, IHBE)라 하며 이는 SC의 현재 상태(current event)와 유사하다.
또한, IHBE로부터 허용 가능한 이벤트(allowable event)는 SC의 전이 가능 상태와 유사하다. 이벤트 흐름이란 상태 전이와 유사한 개념으로, 이는 이벤트의 발생과 상태 전이의 수행을 의미한다. 마지막으로, 재귀 흐름(self event flow)은 자신으로의 상태 전이(self transition)와 유사한 개념이며, 금지된 이벤트 흐름을 나타내는 비활성 이벤트 리스트(disabled event list)는 전이가 불능한 상태(transition-disabled state)의 집합으로 볼 수 있다.
이벤트 흐름이란 허용 가능한 이벤트(allowable event at current state, 상태 전이 이벤트)발생의 인지와 이에 따른 상태 전이를 의미한다. 이러한 이벤트 흐름을 규정하는 것이 이벤트 흐름 제어(event flow control)이며, 이는 본질적으로 상태 전이 메커니즘과 동일하다.
본 발명에서 제안하는 EFC는 SC와 동치(equivalent)가 되도록 표현 방식을 변형한 것이다. 이벤트만으로 모델링이 가능한 이유는, 본질적으로 이벤트가 상태 전이를 결정짓는 유일한 요소로서 상태를 대체(replace)할 수 있는 개념이기 때문이다. 도2의 Sx=g(ij,Sl)은 회귀식(recursive equation)으로서 상태값이 이벤트에 의해 결정됨을 보여준다. 본 발명에서는 이를 이용하여 SC로부터 EFC를 유도하는 방법을 제시한다. 또한 그 역변환 방법도 제시한다. 도10a 내지 도10d는 상태 차트로부터 본 발명에 따른 이벤트 흐름 차트를 변환시키는 과정을 나타내는 도면이다.
(변환 규칙 I) SC를 EFC로 변환시키는 경우
단계1) SC를 트리 형태(상태 트리)로 나타낸다. 여기서, 상위 상태가 하위 상태의 부모(parent node)가 되도록 연결한다.
단계2) 상위 상태를 기준 상태(default state)로 치환한다.
단계3) 연결선(edge)상에 전이를 일으키는 이벤트를 표시한다.
단계4) 재귀 전이(self transition)가 정의되지 않은 상태를 표시한다.
단계5) 전이가 가능하지 않은 형제 상태를 표시한다.
단계6) 상태를 이벤트로 대체한다.
(변환 규칙 II) EFC를 SC로 변환시키는 경우
단계a) 이벤트를 상태로 대체한다.
단계b) 트리 형태를 SC의 다이어그램 형태로 나타낸다. 여기서, 상위 상태가 하위 상태의 부모(parent)가 되도록 포함 관계를 나타낸다.
단계c) 중복되는 기준 상태를 제거한다.
단계d) 전이 관계를 표시한다.
단계2)에서 상위 상태를 기준 상태로 대체하는 것은, 상위 상태의 추상적인(abstract) 특성을 없애기 위함이다. EFC에서는 추상적인 상위 상태를 허용하지 않고 구체화된(concrete) 기준 상태로 치환한다.
단계4)와 단계5)는 상태 트리가 가지는 표현의 제약을 극복하기 위한 과정이다. 상태 트리는 단지 "부모/자식 (parent/child)"으로 일컬어지는 계층 관계만 나타내어, 재귀 전이(self transition)와 형제 상태간의 전이가 명확히 표현되지 않는다.
상태 트리에서 특별한 표시가 없는 한 기본적으로 모든 상태가 재귀 전이(self transition)가 가능하며, 임의의 형제 상태들간의 전이가 가능하다.
따라서, 도10d의 "Paused"(903)처럼 재귀 전이가 불가능함을 표시하거나, "Stopped"(1001)처럼 "Paused"(903)로 전이가 불가능하도록 전이 불능 상태 리스트(transition-disabled state list)를 생성한다.
단계c)에서 중복되는 기준 상태를 제거한다 함은, 상위 상태에 위치한 기준 상태를 제거하고 추상화된 상위 상태로 표현함을 말한다.
도10d는 SC로부터 최종적으로 유도된 EFC로서, 여기에서 사용되는 용어는 상기 표1에서 보듯이 SC의 용어와 일대일 대응 관계를 가진다.
도11은 본 발명에 따라 시스템 요구 및 명세로부터 직접 이벤트 흐름 차트를 생성하는 과정을 나타내는 흐름도이다.
본 발명에 따른 EFC의 가장 중요한 장점은, 시스템의 요구 명세(requirement & specification)로부터 추상적인 개념의 상태를 추출하지 않고서도 EFC가 직접 생성될 수 있으며 종래의 시스템 기술과 전혀 동일하게 시스템을 기술할 수 있다는 점이다.
EFC는 기본적으로 순차적인(ordered) 선행(precedence) 관계에 따라 생성된다. 시스템이 작동을 시작하면 자동적으로 귀속되는 초기 상태(initial state)로부터, 허용 가능한 이벤트들을 순차적으로 연결하여 트리 구조의 EFC가를 생성된다. 이 때, 임의로 연결된 두 이벤트는 선행 관계를 형성한다고 하며, 초기 상태에 가까운 이벤트 즉 EFC의 트리 구조에서 부모 이벤트가 선행 (preceding)이벤트, 선행 이벤트의 자식 이벤트는 후행 (succeeding) 이벤트라 한다. 허용 가능한 이벤트들과 그 선행 관계는 요구 명세로부터 용이하게 추출될 수 있으므로 EFC의 트리 구조는 용이하게 생성될 수 있다.
본 발명에 따른 EFC의 시스템 모델링 방법은 상기된 바와 같이 SC의 시스템 모델링과 완벽하게 상호 변환 가능하다는 점으로부터 종래의 시스템 모델링 방법과 전혀 동일하게 시스템 기술이 가능하다는 것을 알 수 있다.
도11에 도시된 바와 같이 설계하고자 하는 시스템의 요구 및 명세가 본 발명에 따른 EFCE로 입력되면(S1101) 입력된 요구 및 명세로부터 이벤트 및 액션을 추출한다(S1103). 또한 추출된 모든 이벤트 및 액션은 각각 1 대 1로 매칭된다.
이벤트 및 액션을 추출하고 난 후에는 EFC의 트리 구조를 생성하기 위해 시작 노드를 생성한다(S1105). 따라서 EFC 트리 구조의 정점은 어떠한 이벤트도 정의되지 않는다.
다음으로, 시작 노드를 종단 노드로 인식하여 종단 노드로부터 허용 가능한 이벤트가 존재하는지 여부를 상기 단계 S1103에서 추출된 이벤트에서 판단한다(S1107). 판단 결과 허용 가능한 이벤트가 존재하지 않는 경우에는 당해 EFC 트리 구조가 모두 생성된 것이므로 EFC 생성 프로세스를 종료한다.
단계 S1107에서 판단 결과 종단 노드로부터 허용 가능한 이벤트가 존재하는경우 허용 가능한 이벤트를 당해 종단 노드의 자식 노드로 하여 트리 구조를 생성한다(S1109).
다음으로 상기 생성된 자식 노드가 후술되는 인터럽트 이벤트/회귀 흐름 제어 이벤트/무조건 흐름 제어 이벤트인지 여부를 판단하여 어느 하나에 해당하는 경우 당해 자식 노드가 인터럽트 이벤트/회귀 흐름 제어 이벤트/무조건 흐름 제어 이벤트인 것으로 저장한다(S1111).
다음으로 상기 생성된 자식 노드를 종단 노드로 하여 상기 단계 S1107 내지 S1111을 반복적으로 수행하며, 생성되는 EFC의 트리 구조에 존재하는 모든 종단 노드에 대해 수행한다.
상기 단계 S1103은 상기 입력된 사용자 정의의 시스템 요구 및 명세를 본 발명에 따른 EFC 생성 시스템이 인식할 수 있는 코드로 변환시키고 이벤트 및 액션을 추출하는 인코더 및 파서에 의해 수행된다. 추출된 이벤트 및 이에 일대일로 대응하는 액션은 데이터 저장부에 저장된다.
또한 시작 노드를 포함하는 EFC 트리 구조의 노드를 생성하고 후술되는 이벤트 검색기에 의해 허용 가능한 이벤트를 종단 노드로 생성하는 프로세스(S1105 및 S1109)는 이벤트 노드 생성기에 의해 수행된다.
각 종단 노드 이벤트마다 허용 가능한 이벤트가 존재하는지 여부의 판단(S1107)은 이벤트 검색기에 의해 수행된다.
마지막으로 각 종단 이벤트가 인터럽트 이벤트/회귀 흐름 제어 이벤트/무조건 흐름 제어 이벤트인지 여부를 판단하여 해당 이벤트에 인터럽트 플래그, 회귀흐름 제어 플래그 또는 무조건 흐름 제어 플래그를 생성하는 프로세스(S1111)는 플래그 생성기에 의해 수행된다.
도12a 내지 도12d는 도7의 요구 및 명세로부터 상기 도11의 EFC 트리 구조를 생성하는 방법에 따라 CD 플레이어 시스템을 이벤트 흐름 차트로 모델링하는 과정을 나타내는 도면이다.
요구 명세로부터 EFC를 작성하는 점진적인 과정은 다음과 같다.
(1) IHBE 이후에 허용할 이벤트들을 IHBE의 후행 이벤트로 생성한다. 단 초기에는 IHBE가 정의되지 않으므로 최초로 허용할 이벤트들을 시작 노드에 연결한다. 또한 후행 이벤트가 이벤트 흐름이 가능한 위치에 이미 기술되어 있으면 이를 생략한다.
(2) 각 후행 이벤트들의 재귀 흐름 여부를 결정하고 당해 후행 이벤트로부터 전이가 허용되지 않는 비활성 이벤트 리스트(disabled event list)를 작성한다.
(3) 각 후행 이벤트를 IHBE로 하여 상기 단계 (1), (2) 및 (3)을 반복한다.
"일시 정지" 기능을 추가한 CD 플레이어의 요구 명세로부터 EFC를 작성해보자. 새로운 요구 명세는 도7과 같다.
(a) 초기 상태에서 허용할 이벤트들을 연결한다. 전원 스위치를 켜는 이벤트 i1(503)또는 전원을 끄는 i4(501)만이 허용되므로 이를 시작 노드에 연결한다. (도12a 참조)
(b) i4(501)의 후행 이벤트들을 기술한다. 다시 전원을 켜거나 끄는 이벤트인 i1(503)과 i4(501)가 허용 가능하지만, 이미 각각 형제 이벤트와 상위 이벤트로 기술되어 있으므로 연결을 생략한다. (도12b 참조)
(c) i1(503)의 후행 이벤트들을 기술한다. i1(503)와 i4(501)는 (c)와 동일한 이유로 생략된다. 반면에, 음악을 재생하는 i2(505), 재생을 정지하는 i3(1001), 재생을 일시 정지하는 i5(903)는 처음 기술되는 이벤트이므로 후행 이벤트로서 연결된다. (도12b 참조)
(d) 일시 정지 중에 i5(903)의 재발생은 재생을 일으켜야 하므로 재귀 흐름을 불가능하게 만든다.(도12c 참조)
(e) 정지중에 i5(903)의 발생은 의미가 없으므로 i3(1001)의 비활성 이벤트 리스트에 i5를 포함시킨다. 이상 처리할 이벤트가 없으므로 차트 작성을 마친다.(도12d 참조)
이상에서와 같이 요구 명세로부터 EFC 트리를 생성하는 것은 상태 개념을 이용하는 종래의 방법보다 구체화된 작업으로서 손쉽게 작성할 수 있다. 이는 추상적인 개념의 상태를 파악하는 과정이 숨겨지고(state hiding), 구체적인 현상인 이벤트만을 기술하기 때문이다. 따라서, 상태라는 개념을 숙지하지 않은 비전문가도 쉽게 모델링할 수 있으며, 설계자에 따른 모델링 결과의 차이가 크지 않은 장점을 얻을 수 있다.
도15는 허용 가능한 이벤트를 나타내는 예시도이다. EFC의 이벤트 흐름은 SC의 상태 전이와 동일한 메커니즘을 가진다. SC의 경우, 현재 상태(current state)에서 전이가 가능한 상태 집합은 자신의 직하위 상태(immediate sub-states), 자신의 형제 상태, 상위 상태의 형제 상태들이다. 도9c의 "Paused" 상태(903)에서 전이가 가능한 상태들을 알아보자. "Paused" 상태(903)는 직하위 상태를 가지지 않으므로, 자신의 형제 상태인 "Stopped"(503)와 "Playing"(505), 그리고 상위 상태 "Power On"(601)의 형제 상태인 "Power Off"(501)로의 전이가 가능하다.
주목할 점은 SC에서 상위 상태의 형제 상태로의 전이가 표현되지는 않지만, 그러한 전이가 가능하다는 것이다. 이는 현재 상태가 기본적으로 상위 상태에 속하기 때문에, 상위 상태의 형제 상태로의 전이가 가능해야 한다. 이에 따라, "Paused"(903)가 "Power On" 상태(601)를 나타내기도 하기 때문에 "Power On"(601)로부터 "Power Off"(501)로의 전이가 "Paused"(903)에서도 적용된다. 따라서 "Paused"(903)의 전이 가능 상태 집합은 {Stopped(503), Playing(505), Power Off(501)}이다.
EFC에서도 동일한 방식에 따라 이벤트 흐름을 정의한다. 허용 가능한 이벤트로는 직후행 이벤트, 형제 이벤트, 선행 이벤트의 형제 이벤트이다. 이벤트 흐름은 기본적으로 선행 관계에 따르지만, SC에서 도입한 상태 전이 방식에 따라 계층적인 형태의 이벤트 흐름이 가능하다고 할 수 있다.
도15는 허용 가능한 이벤트를 나타내는 예시도로서, i6(1501)에서 허용 가능한 이벤트 흐름을 보여주고 있다. 흐름이 가능한 이벤트로는 i6(1501)의 직후행 이벤트인 {i16, i17}(1507), 형제 이벤트인 {i7}(1503), 상위 이벤트들의 형제 이벤트인 {i3, i2, i5}(1509)와 {i4, i1}(1511)이 있다. i6(1501)은 재귀 흐름이 금지되어 탈락되었고, i9(1505)는 i6(1501)의 형제 이벤트이지만 비활성 이벤트로 규정되어 탈락되었다.
도16은 인터럽트 이벤트/회귀 흐름 제어 이벤트에 따른 이벤트 흐름 제어를 나타내는 예시도이고, 도17은 무조건 흐름에 따른 이벤트 흐름 제어를 나타내는 예시도이다.
본 발명에 따른 EFC 생성 방법에서는 확장된 특성을 추가하여 EFC의 모델링 성능을 높였다. 첫 번째는 인터럽트 이벤트와 회귀 흐름(return flow)이다. 후술되는 EFCE은 전역적인(global) 스택(stack) 을 가지며, 비동기 이벤트가 발생했을 때 현재의 노드(IHBE)를 푸쉬(push)한다.
반대로 회귀 흐름 제어 이벤트를 만나면 스택으로부터 최근에 푸쉬된 노드를 팝(pop) 하여 얻어진 상태로 분기(jump)한다. 이를 위해 회귀 흐름 제어 이벤트는 후행 이벤트를 가질 수 없다.
인터럽트 이벤트는 원래의 상태를 복원하고자 할 때 필요한 개념이다. 도16은 인터럽트 이벤트와 회귀 흐름 제어 이벤트에 의한 시스템 제어의 예를 보여주고 있다. IHBE가 i6(1401)일 때, 인터럽트 이벤트인 i20(1601)이 발생하면, 스택에는 i6(1401)가 푸쉬되어 보존된다. IHBE가 i20(1601)인 상황에서 회귀 흐름 제어 이벤트인 i21(1603)이 발생하면 스택에 보존되어있던 i6(1401)가 팝되어 IHBE가 i6(1401)로 갱신된다. 즉 회귀 흐름 제어 이벤트가 발생하면 현재 스택에 저장되어 있는 이벤트는 발생하지 않으면서 IHBE를 스택에 저장되어 있는 이벤트 노드로 분기(jump)하는 것이다. 회귀 흐름이 연결된 이벤트(i21(1603)) 역시 후행 이벤트를 가질 수 없다.
두 번째는 무조건 흐름(unconditional flow) 제어 이벤트이다. 이는 이벤트 흐름을 강제하는 수단으로서, 무조건 흐름이 정의되어 있으면 IHBE는 무조건 흐름이 정의된 이벤트로 분기(jump)한다.
무조건 흐름의 도입은 이벤트 흐름이 반복적으로 기술되어야 할 때, 중복성을 없애기 위한 것으로 EFC 트리 구조의 작성을 단순화한다. 도17은 무조건 흐름 이벤트에 의한 시스템 제어의 예를 보여주고 있다.
IHBE가 i6(1401)일 때, 무조건 흐름 제어 이벤트인 i7(1403)이 발생하면 IHBE는 i7(1403)이 아니라 i7(1403)의 무조건 흐름이 연결된 i2(1701)로 갱신된다.
여기서, 인터럽트 이벤트, 회귀 흐름 제어 이벤트 및 무조건 흐름 제어 이벤트는 다른 이벤트와 마찬가지로 액션이 일대일로 매핑되어 있으나, 다른 이벤트와는 달리 인터럽트 이벤트, 회귀 흐름 제어 이벤트 및 무조건 흐름 제어 이벤트가 발생하는 경우에 각기 매핑되어 있는 액션이 실행되도록 하거나 실행되지 않도록 정의될 수 있다.
도13은 본 발명에 따른 이벤트 흐름 제어 엔진의 기능 블록도이고, 도14는도13의 이벤트 흐름 제어 엔진의 이벤트 흐름 제어 흐름도이다.
도13에 도시된 바와 같이 위의 확장된 특성을 포함하는 EFC에 의해 이벤트 흐름 제어 엔진 EFCE(event flow control engine)이 모델링된 시스템을 제어하며, EFCE는 이벤트가 발생할 때마다 구동된다.
EFCE는 제어부(1301), 이벤트 매칭부(1303), 조건 검사부(1305), 액션 실행부(1307) 및 IHBE 업데이트부(1309)로 구성된다.
제어부(1301)는 이벤트의 입력을 대기하며, 이벤트가 입력된 경우 이벤트 매칭부(1303) 및 조건 검사부(1305)를 구동시켜 이벤트 매칭 여부(S1405) 및 조건 만족 여부(S1407)를 판단한다. 이벤트가 매칭되고 조건을 만족하는 경우에는 액션 실행부(1307) 및 IHBE 업데이트부(1309)가 구동되어 당해 입력된 이벤트에 일대일로 매핑되어 있는 액션을 실행(S1409)하고 IHBE를 업데이트(S1413)한다
이벤트 매칭부(1303)는 허용 가능한 이벤트가 저장되어 있는 큐로부터 입력 이벤트를 검색하여 이벤트 매칭 여부를 판단한다.
조건 검사부(1305)는 당해 입력 이벤트가 실행되기 위한 조건을 검사하고 조건을 만족하는 경우에는 당해 입력 이벤트를 새로운 IHBE로 설정하고 액션 실행부(1307)를 구동한다.
액션 실행부(1307)는 조건을 만족하는 이벤트에 일대일로 매핑되어 있는 액션을 수행하여 모델링된 시스템을 제어한다.
IHBE 업데이트부(1309)는 현재 입력된 이벤트가 회귀 흐름 제어 이벤트 또는 무조건 흐름 제어 이벤트인지를 판단하여 회귀 흐름 제어 이벤트 또는 무조건 흐름제어 이벤트인 경우 조건 검사부(1305)에서 새로 설정한 IHBE를 입력된 회귀 흐름 제어 이벤트 또는 무조건 흐름 제어 이벤트가 정의한 새로운 IHBE로 업데이트한다. 즉 입력된 이벤트가 회귀 흐름 제어 이벤트인 경우에는 스택에 저장되어 있는 이벤트 노드를, 입력된 이벤트가 무조건 흐름 제어 이벤트인 경우에는 당해 이벤트가 지정하는 이벤트 노드로 IHBE를 업데이트한다.
도14에 도시된 바와 같이 EFCE는 초기에 대기(waiting) 상태에 있다가(S1401), 이벤트의 발생 즉 EFCE로의 이벤트 입력을 인지하면(S1403) 이벤트 흐름을 제어한다. 이벤트 흐름 제어는 먼저 발생한 이벤트가 허용 가능한 이벤트인지를 검사하는 이벤트 매칭(matching)(S1405)을 시작한다. 즉 입력된 이벤트가 EFC의 현재 IHBE에서 허용 가능한 이벤트들 중에 정의된 이벤트인지를 검사한다. 이 때 재귀 흐름이 금지된 IHBE와 비활성 이벤트 리스트에 포함된 이벤트는 이벤트 매칭 검사에서 제외된다.
입력된 이벤트가 매칭되면 즉 입력된 이벤트가 EFC의 현재 IHBE에서 허용 가능한 이벤트들 중에 정의된 이벤트인 경우 입력된 이벤트의 조건에 대해 검사한다(S1407).
조건 검사가 만족되면 입력된 이벤트 노드를 현재 IHBE로 설정하고 입력된 이벤트와 일대일로 매핑되어 있는 액션을 실행하여 모델링된 시스템을 제어한다(S1409). 액션 실행 후에는 상기 단계 S1409에서 설정된 IHBE의 업데이트가 필요한지 여부를 판단한다(S1411). 즉 입력된 이벤트가 회귀 흐름 제어 이벤트 또는 무조건 흐름 제어 이벤트인지를 판단한다. 판단 결과 IHBE 업데이트가 필요한경우에는 IHBE 업데이트를 수행한다(S1413). 즉 입력된 이벤트가 회귀 흐름 제어 이벤트인 경우에는 현재 스택에 저장되어 있는 이벤트 노드를 팝하여 새로운 IHBE로 설정하고, 입력된 이벤트가 무조건 흐름 제어 이벤트인 경우에는 무조건 흐름 제어 이벤트에서 정의하고 있는 목적 이벤트 노드를 새로운 IHBE로 설정한다.
도19a 내지 도19i는 본 발명에 따른 이벤트 흐름 제어 엔진을 구현한 의사 프로그램 코드를 나타내는 도면이다.
도18은 본 발명에 따른 이벤트 흐름 차트 모델링 및 이벤트 흐름 제어 엔진이 구현된 시스템의 인터페이스를 나타내는 도면이다. 도면에 도시된 바와 같이 MP3 플레이어를 모델링한 예시도로서 인터페이스 좌측(1805)은 오브젝트 단위로 구성되는 MP3 플레이어 시스템의 외형을 표시하고 있고, 우측(1807)은 본 발명에 따라 MP3 플레이어 시스템을 모델링한 EFC의 트리 구조가 표시되어 있다. 우측 상단(1801 및 1803)에는 구체적인 이벤트 및 그에 일대일로 매핑되는 액션이 디스플레이된다. 모델링된 결과는 본 발명에 따른 EFCE에 의해 직접적인 제어가 가능하다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(시디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어서 명백하다 할 것이다.
상기한 바와 같이 본 발명에 따른 EFC는 추상적인 상태(state)에 대한 고려 없이 직관적이고 명확한 모델링을 가능하게 한다. 이는 SC가 가지는 모델링의 어려움 및 설계자에 따른 모델링의 편차를 없애는 동시에, 모델의 구현 및 수정을 쉽게 해주는 이점을 준다. 따라서 상태 시스템에 대한 지식이 부족한 비전문가도 쉽게 상태 시스템을 모델링할 수 있으며, 설계자에 따른 모델링의 차이를 최소화할 수 있는 효과가 있다.
또한, 본 발명에 따른 EFC의 또 다른 장점은 차트 작도(drawing)의 용이함에 있다. SC에서는 상태간의 계층 관계는 다이어그램 형태로 표현하고, 상태간의 전이 관계는 연결선(directed edge)으로 표현한다. 반면에, EFC는 단순한 트리 구조로서 계층 관계와 전이 관계를 동시에 표현한다. 따라서 차트가 훨씬 단순해지는 효과를 얻을 수 있다. 또한 차트를 수정함에 있어도 EFC가 유리하다. 새로운 하위 상태를 표현하려면 SC에서는 상위 상태의 다이어그램의 크기를 키우고(연쇄적으로 상위 상태들의 크기가 커져야 한다) 새로운 하위 상태를 그려야 한다. 하지만 EFC에서는 단지 트리에 새로운 노드를 추가하는 방법으로 간단하게 수정할 수 있는 효과가 있다.

Claims (24)

  1. 이산 이벤트 시스템을 모델링하는 방법에 있어서,
    사용자가 정의한 상기 이산 이벤트 시스템의 요구 및 명세를 수신하는 제1단계;
    상기 수신된 요구 및 명세로부터 이벤트 및 액션을 추출하여 저장하는 제2단계;
    시작 노드를 포함하는 트리 형태의 데이터 구조를 생성하는 제3단계;
    상기 제2단계에서 저장된 이벤트를 검색하여 상기 트리 형태의 데이터 구조에서 종단 노드로 표현되는 이벤트로부터 허용 가능한 이벤트가 존재하는지 여부를 판단하여 허용 가능한 이벤트가 존재하지 않는 경우에는 트리 형태의 데이터 구조 생성을 종료하는 제4단계;
    상기 제4단계에서 판단 결과 허용 가능한 이벤트가 존재하는 경우에는 상기 허용 가능한 이벤트를 표현하는 노드를 상기 종단 노드의 자식 노드로 생성하는 제5단계; 및
    상기 데이터 구조의 모든 종단 노드에 대해 상기 제4단계 및 제5단계를 반복적으로 수행하는 제6단계
    를 포함하는 이산 이벤트 시스템 모델링 방법.
  2. 제1항에 있어서,
    상기 종단 노드가 표현하는 이벤트가 재귀 흐름이 허용되는지 여부에 따라 플래그를 생성하여 저장하는 제7단계
    를 더 포함하는 이산 이벤트 시스템 모델링 방법.
  3. 제1항에 있어서,
    상기 종단 노드가 표현하는 이벤트가 인터럽트 이벤트인지 여부에 따라 플래그를 생성하는 제8단계
    를 더 포함하는 이산 이벤트 시스템 모델링 방법.
  4. 제3항에 있어서,
    상기 인터럽트 이벤트는
    상기 인터럽트 이벤트가 발생하였을 때 이벤트를 표현하는 현재 노드를 스택에 푸쉬(PUSH)하여 저장하는 것
    을 특징으로 하는 이산 이벤트 시스템 모델링 방법.
  5. 제1항에 있어서,
    상기 종단 노드가 표현하는 이벤트가 회귀 흐름 제어 이벤트인지 여부에 따라 플래그를 생성하는 제9단계
    를 더 포함하는 이산 이벤트 시스템 모델링 방법.
  6. 제5항에 있어서,
    상기 회귀 흐름 제어 이벤트는
    상기 회귀 흐름 제어 이벤트가 발생하였을 때 현재 스택에 저장되어 있는 노드를 팝(POP)하여 상기 노드로 분기시키는 것
    을 특징으로 하는 이산 이벤트 시스템 모델링 방법.
  7. 제1항에 있어서,
    상기 종단 노드가 표현하는 이벤트가 무조건 흐름 제어 이벤트인지 여부에 따라 플래그를 생성하는 제10단계
    를 더 포함하는 이산 이벤트 시스템 모델링 방법.
  8. 제7항에 있어서,
    상기 무조건 흐름 제어 이벤트는
    상기 무조건 흐름 제어 이벤트가 발생하였을 때 소정의 이벤트를 표현하는 노드로 분기시키는 것
    을 특징으로 하는 이산 이벤트 시스템 모델링 방법.
  9. 이산 이벤트 시스템을 모델링하기 위해 프로세서를 구비한 시스템에,
    사용자가 정의한 상기 이산 이벤트 시스템의 요구 및 명세를 수신하는 제1기능;
    상기 수신된 요구 및 명세로부터 이벤트 및 액션을 추출하여 저장하는 제2기능;
    시작 노드를 포함하는 트리 형태의 데이터 구조를 생성하는 제3기능;
    상기 제2기능에서 저장된 이벤트를 검색하여 상기 트리 형태의 데이터 구조에서 종단 노드로 표현되는 이벤트로부터 허용 가능한 이벤트가 존재하는지 여부를 판단하여 허용 가능한 이벤트가 존재하지 않는 경우에는 트리 형태의 데이터 구조 생성을 종료하는 제4기능;
    상기 제4기능에서 판단 결과 허용 가능한 이벤트가 존재하는 경우에는 상기 허용 가능한 이벤트를 표현하는 노드를 상기 종단 노드의 자식 노드로 생성하는 제5기능; 및
    상기 데이터 구조의 모든 종단 노드에 대해 상기 제4기능 및 제5기능을 반복적으로 수행하는 제6기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터가 판독 가능한 기록매체.
  10. 제9항에 있어서,
    상기 종단 노드가 표현하는 이벤트가 재귀 흐름이 허용되는지 여부에 따라 플래그를 생성하여 저장하는 제7기능
    을 더 실현시키기 위한 프로그램을 기록한 컴퓨터가 판독 가능한 기록매체.
  11. 제9항에 있어서,
    상기 종단 노드가 표현하는 이벤트가 인터럽트 이벤트인지 여부에 따라 플래그를 생성하는 제8기능
    을 더 실현시키기 위한 프로그램을 기록한 컴퓨터가 판독 가능한 기록매체.
  12. 제11항에 있어서,
    상기 인터럽트 이벤트는
    상기 인터럽트 이벤트가 발생하였을 때 이벤트를 표현하는 현재 노드를 스택에 푸쉬(PUSH)하여 저장하는 것
    을 특징으로 하는 프로그램을 기록한 컴퓨터가 판독 가능한 기록 매체.
  13. 제9항에 있어서,
    상기 종단 노드가 표현하는 이벤트가 회귀 흐름 제어 이벤트인지 여부에 따라 플래그를 생성하는 제9기능
    을 더 실현시키기 위한 프로그램을 기록한 컴퓨터가 판독 가능한 기록매체.
  14. 제13항에 있어서,
    상기 회귀 흐름 제어 이벤트는
    상기 회귀 흐름 제어 이벤트가 발생하였을 때 현재 스택에 저장되어 있는 노드를 팝(POP)하여 상기 노드로 분기시키는 것
    을 특징으로 하는 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체.
  15. 제9항에 있어서,
    상기 종단 노드가 표현하는 이벤트가 무조건 흐름 제어 이벤트인지 여부에 따라 플래그를 생성하는 제10기능
    을 더 실현시키기 위한 프로그램을 기록한 컴퓨터가 판독 가능한 기록매체.
  16. 제15항에 있어서,
    상기 무조건 흐름 제어 이벤트는
    상기 무조건 흐름 제어 이벤트가 발생하였을 때 소정의 이벤트를 표현하는 노드로 분기시키는 것
    을 특징으로 하는 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체.
  17. 이산 이벤트 시스템을 모델링하기 위한 모델링 시스템에 있어서,
    사용자가 정의한 상기 이산 이벤트 시스템의 요구 및 명세를 수신하여 상기 모델링 시스템이 판독할 수 있는 코드로 변환시키는 인코더부;
    상기 인코더부에 의해 변환된 코드로부터 이벤트 및 액션 데이터를 추출하는 파싱(Parsing)부;
    상기 추출된 이벤트 및 액션 데이터를 저장하는 제1데이터 저장부;
    시작 노드 및 종단 노드를 포함하는 트리 형태의 데이터 구조를 생성하여 저장하는 이벤트 노드 생성부; 및
    상기 제1데이터 저장부에 저장된 이벤트 데이터를 검색하여 상기 트리 형태의 데이터 구조에서 종단 노드로 표현되는 이벤트 데이터로부터 허용 가능한 이벤트 데이터가 존재하는지 여부를 판단하여 허용 가능한 이벤트가 존재하지 않는 경우에는 트리 형태의 데이터 구조 생성을 종료시키고 허용 가능한 이벤트 데이터가 존재하는 경우 상기 허용 가능한 이벤트 데이터를 상기 종단 노드의 자식 노드로생성시키기 위해 상기 이벤트 노드 생성기를 활성화시키는 이벤트 검색부
    를 포함하는 모델링 시스템.
  18. 제17항에 있어서,
    상기 종단 노드가 표현하는 이벤트가 재귀 흐름이 허용되는 이벤트, 인터럽트 이벤트, 회귀 흐름 제어 이벤트 또는 무조건 흐름 제어 이벤트인지 여부에 따라 플래그를 생성시키는 플래그 생성부
    를 더 포함하는 모델링 시스템.
  19. 제18항에 있어서,
    상기 인터럽트 이벤트는
    상기 인터럽트 이벤트가 발생하였을 때 이벤트를 표현하는 현재 노드를 스택에 푸쉬(PUSH)하여 저장하는 것
    을 특징으로 하는 모델링 시스템.
  20. 제18항에 있어서,
    상기 회귀 흐름 제어 이벤트는
    상기 회귀 흐름 제어 이벤트가 발생하였을 때 현재 스택에 저장되어 있는 노드를 팝(POP)하여 상기 노드로 분기시키는 것
    을 특징으로 모델링 시스템.
  21. 제18항에 있어서,
    상기 무조건 흐름 제어 이벤트는
    상기 무조건 흐름 제어 이벤트가 발생하였을 때 소정의 이벤트를 표현하는 노드로 분기시키는 것
    을 특징으로 하는 모델링 시스템.
  22. 제18항 내지 제21항 중 어느 하나의 모델링 시스템에 의해 모델링된 이벤트 흐름 차트를 구현하는 시스템에 있어서,
    입력된 이벤트가 이벤트를 표현하는 현재 노드로부터 허용 가능한 이벤트인지 여부를 판단하는 이벤트 매칭부;
    상기 이벤트 매칭부로부터 상기 입력된 이벤트가 현재 노드로부터 허용 가능한 이벤트인 것으로 판단된 경우에 상기 입력된 이벤트가 실행되기 위한 조건이 만족되는지 여부를 판단하는 조건 검사부;
    상기 조건 검사부로부터 상기 입력된 이벤트가 실행되기 위한 조건이 만족되는 것으로 판단되는 경우 상기 입력된 이벤트에 일대일로 매핑되어 있는 상기 액션을 수행하여 상기 모델링된 시스템을 구동시키는 액션 수행부; 및
    입력된 이벤트가 상기 회귀 흐름 제어 이벤트 또는 무조건 흐름 제어 이벤트인 경우 현재 노드를 업데이트하는 노드 업데이트부
    를 포함하는 이벤트 흐름 차트 구현 시스템.
  23. 제22항에 있어서,
    상기 노드 업데이트부는
    상기 입력된 이벤트가 상기 회귀 흐름 제어 이벤트인 경우 상기 스택에 저장되어 있는 노드를 현재 노드로 업데이트하는 것
    을 특징으로 하는 이벤트 흐름 차트 구현 시스템.
  24. 제22항에 있어서,
    상기 노드 업데이트부는
    상기 입력된 이벤트가 상기 무조건 흐름 제어 이벤트인 경우 상기 무조건 흐름 제어 이벤트가 정의하는 노드를 현재 노드로 업데이트 하는 것
    을 특징으로 하는 이벤트 흐름 차트 구현 시스템.
KR10-2001-0037983A 2000-06-29 2001-06-29 이벤트 흐름 차트를 이용한 이산 이벤트 시스템의 모델링방법 KR100433678B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020000036669 2000-06-29
KR20000036669 2000-06-29

Publications (2)

Publication Number Publication Date
KR20020003290A true KR20020003290A (ko) 2002-01-12
KR100433678B1 KR100433678B1 (ko) 2004-05-31

Family

ID=19674985

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0037983A KR100433678B1 (ko) 2000-06-29 2001-06-29 이벤트 흐름 차트를 이용한 이산 이벤트 시스템의 모델링방법

Country Status (5)

Country Link
US (1) US7124406B2 (ko)
JP (1) JP2004502234A (ko)
KR (1) KR100433678B1 (ko)
AU (1) AU2001269548A1 (ko)
WO (1) WO2002001342A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101242325B1 (ko) * 2011-03-17 2013-03-11 한국과학기술원 계층적 이산 사건 시스템 명세 모델의 이벤트 기반 시뮬레이션 방법, 시스템 및 이를 위한 기록 매체
CN109377802A (zh) * 2018-11-26 2019-02-22 暗物质(香港)智能科技有限公司 一种自动交互式智能教育系统及方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7925527B1 (en) * 2000-08-16 2011-04-12 Sparta Systems, Inc. Process control system utilizing a database system to monitor a project's progress and enforce a workflow of activities within the project
US20040230594A1 (en) * 2003-05-15 2004-11-18 Flam Ran J. Reject activities in a process control system
US8713544B1 (en) * 2003-11-25 2014-04-29 Symantec Corporation Universal data-driven computer proxy
US7496895B1 (en) * 2004-12-29 2009-02-24 The Mathworks, Inc. Multi-domain unified debugger
US8381192B1 (en) * 2007-08-03 2013-02-19 Google Inc. Software testing using taint analysis and execution path alteration
US10877874B2 (en) * 2007-12-28 2020-12-29 Federal Home Loan Mortgage Corporation (Freddie Mac) Systems and methods for modeling and generating test requirements for software applications
US9424005B1 (en) 2009-12-09 2016-08-23 The Mathworks, Inc. Templatized component
US10365897B1 (en) 2012-05-23 2019-07-30 The Mathworks, Inc. Model ring component
WO2011072140A1 (en) * 2009-12-09 2011-06-16 The Mathworks, Inc. Canonicalized versions of reuse candidates in graphical state diagrams

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0383138A (ja) * 1989-08-25 1991-04-09 Mitsubishi Electric Corp 離散事象駆動型システムのモデル化方法
US5212771A (en) * 1990-04-27 1993-05-18 Bachman Information Systems, Inc. System for establishing concurrent high level and low level processes in a diagram window through process explosion and implosion subsystems
US5193182A (en) * 1990-04-27 1993-03-09 Bachman Information Systems, Inc. Computer system for defining logical operations on design data including retrieve entity-set, send, receive, signal, when, reference to entity-set, reference to entity method, connect and disconnect
JPH0464164A (ja) * 1990-07-03 1992-02-28 Internatl Business Mach Corp <Ibm> シミユレーシヨン方法及び装置
AU649455B2 (en) * 1990-07-11 1994-05-26 American Telephone And Telegraph Company Distributed computing system
US5469553A (en) * 1992-04-16 1995-11-21 Quantum Corporation Event driven power reducing software state machine
US5485600A (en) * 1992-11-09 1996-01-16 Virtual Prototypes, Inc. Computer modelling system and method for specifying the behavior of graphical operator interfaces
US5694579A (en) * 1993-02-18 1997-12-02 Digital Equipment Corporation Using pre-analysis and a 2-state optimistic model to reduce computation in transistor circuit simulation
JP2771951B2 (ja) * 1994-11-10 1998-07-02 インターナショナル・ビジネス・マシーンズ・コーポレイション リアクティブ・システムのためのプログラム作成装置
US6272672B1 (en) * 1995-09-06 2001-08-07 Melvin E. Conway Dataflow processing with events
JPH09245014A (ja) * 1996-03-06 1997-09-19 Hitachi Ltd 離散事象シミュレータ
US6021403A (en) * 1996-07-19 2000-02-01 Microsoft Corporation Intelligent user assistance facility
US5778059A (en) * 1996-08-30 1998-07-07 Digital Technics, Inc. Distributed predictive and event-driven processing environment
KR19990016586A (ko) 1997-08-18 1999-03-15 윤종용 케이차 의존 관계에 의한 확률 분포의 최적 곱 근사 방법과의존 관계에 의한 다수 결정 결합 방법
US6728955B1 (en) * 1999-11-05 2004-04-27 International Business Machines Corporation Processing events during profiling of an instrumented program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101242325B1 (ko) * 2011-03-17 2013-03-11 한국과학기술원 계층적 이산 사건 시스템 명세 모델의 이벤트 기반 시뮬레이션 방법, 시스템 및 이를 위한 기록 매체
CN109377802A (zh) * 2018-11-26 2019-02-22 暗物质(香港)智能科技有限公司 一种自动交互式智能教育系统及方法

Also Published As

Publication number Publication date
WO2002001342A1 (en) 2002-01-03
AU2001269548A1 (en) 2002-01-08
JP2004502234A (ja) 2004-01-22
US7124406B2 (en) 2006-10-17
KR100433678B1 (ko) 2004-05-31
US20030182334A1 (en) 2003-09-25

Similar Documents

Publication Publication Date Title
Scott et al. GLL parsing
Bouali et al. The integration Project for the JACK Environment
US4922432A (en) Knowledge based method and apparatus for designing integrated circuits using functional specifications
Mosses Theory and practice of action semantics
Ross The AED approach to generalized computer-aided design
KR100433678B1 (ko) 이벤트 흐름 차트를 이용한 이산 이벤트 시스템의 모델링방법
Schmidt Trace-based abstract interpretation of operational semantics
US7480642B2 (en) Automatic knowledge creating system
Prähofer et al. Monaco—a domain-specific language solution for reactive process control programming with hierarchical components
Potop-Butucaru et al. Optimizations for faster execution of Esterel programs
Dams et al. Specification and Implementation of Components of a MCRL Toolbox
Hansen Tableau games for coalition logic and alternating-time temporal logic–theory and implementation
Kempe et al. Algorithms for weighted multi-tape automata
Dan et al. Towards a formal behavioral semantics for UML interactions
Morzenti et al. An object-oriented logic language for modular system specification
Ristad Computational structure of GPSG models
Osborn et al. Analyzing expressionist grammars by reduction to symbolic visibly pushdown automata
Wittenburg Visual language parsing: If I had a hammer...
JP2007265418A (ja) 自動詳細化システム
CN117131813A (zh) Fpga平台桥接hls技术和硬件构造的芯片设计方法
Eslick ScratchTalk and Social Computation: Towards a natural language scripting model
Hao Universal Generation for Optimality Theory Is PSPACE-Complete
Marcondes et al. An approach for modeling a formal Use Case Type at early development phase without loosing abstraction
Rumpe et al. Refactoring of Models
Ho et al. A unified framework for software development

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: 20130507

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140512

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150508

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20160510

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20170508

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20180509

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20190516

Year of fee payment: 16