(57)【要約】離散イベントシステムの状態を用いず、イベントフローのみを記載することによって、容易に離散イベントシステムを完壁に記載することのできる、イベントフローチャートを利用した離散イベントシステムをモデリングするための方法に関する。離散イベントシステムをモデリングする方法は、使用者により定義された前記離散イベントシステムの要求及び明細を受信する第１ステップと、前記要求及び明細からイベント及びアクションを抽出して格納する第２ステップと、開始ノードを含むツリー型データ構造を生成する第３ステップと、格納された前記イベントを検索して、終端ノードで表現されたイベントで許容可能なイベントが存在するか否かを判断して、許容可能なイベントが存在しない場合、前記データ構造の生成を終了する第４ステップと、格納された前記イベントに許容可能なイベントが存在する場合、該許容可能なイベントを表現する、前記終端ノードの子ノードを生成する第５ステップと、前記データ構造の全ての終端ノードに対して、検索を行う前記第４ステップ及び子ノードを生成する第５ステップを繰り返す第６ステップとを含む。
2004502234.tif 000002
【特許請求の範囲】
【請求項１】
離散イベントシステムをモデリングする方法であって、
使用者により定義された前記離散イベントシステムの要求及び明細を受信する第１ステップと、
前記要求及び明細からイベント及びアクションを抽出して格納する第２ステップと、
開始ノードを含むツリー型データ構造を生成する第３ステップと、
格納された前記イベントを検索して、終端ノードで表現されたイベントで許容可能なイベントが存在するか否かを判断して、許容可能なイベントが存在しない場合、前記データ構造の生成を終了する第４ステップと、
格納された前記イベントに許容可能なイベントが存在する場合、該許容可能なイベントを表現する、前記終端ノードの子ノードを生成する第５ステップと、
前記データ構造の全ての終端ノードに対して、検索を行う前記第４ステップ及び子ノードを生成する第５ステップを繰り返す第６ステップと
を含むことを特徴とする離散イベントシステムのモデリング方法。
【請求項２】
前記終端ノードの表現するイベントが、自己フローが許容されるか否かによって、フラグを生成して格納する第７ステップをさらに含むことを特徴とする請求項１記載の離散イベントシステムのモデリング方法。
【請求項３】
前記終端ノードの表現するイベントが、インタラプトイベントであるか否かによって、フラグを生成する第８ステップをさらに含むことを特徴とする請求項１記載の離散イベントシステムのモデリング方法。
【請求項４】
前記インタラプトイベントが、
前記インタラプトイベントが発生した場合、イベントを表現するカレントノードをスタックにプッシュして格納することを特徴とする請求項３記載の離散イベントシステムのモデリング方法。
【請求項５】
前記終端ノードの表現するイベントが、リターンフロー制御イベントである否かによって、フラグを生成する第９ステップをさらに含むことを特徴とする請求項１記載の離散イベントシステムのモデリング方法。
【請求項６】
前記リターンフロー制御イベントが、
前記リターンフロー制御イベントが発生した場合、カレントスタックに格納されているノードをポップして前記ノードに分岐させることを特徴とする請求項５記載の離散イベントシステムのモデリング方法。
【請求項７】
前記終端ノードの表現するイベントが、無条件フロー制御イベントであるか否かによって、フラグを生成する第１０ステップをさらに含むことを特徴とする請求項１記載の離散イベントシステムのモデリング方法。
【請求項８】
前記無条件フロー制御イベントが、
前記無条件フロー制御イベントが発生した場合、所定のイベントを表現するノードに分岐させることを特徴とする請求項７記載の離散イベントシステムのモデリング方法。
【請求項９】
プロセッサを備えたモデリングシステムにおいて、ＤＥＳをモデリングする方法を実行するプログラムであって、該システムに、
使用者により定義された前記離散イベントシステムの要求及び明細を受信する第１機能と、
前記要求及び明細からイベント及びアクションを抽出して格納する第２機能と、
開始ノードを含むツリー型データ構造を生成する第３機能と、
前記格納されたイベントを検索して終端ノードで表現されたイベントで許容可能なイベントが存在するか否かを判断し、許容可能なイベントが存在しない場合、前記データ構造の生成を終了する第４機能と、
格納された前記イベントに許容可能なイベントが存在する場合、該許容可能なイベントを表現する、前記終端ノードの子ノードを生成する第５機能と、
前記データ構造の全ての終端ノードに対して、検索を行う前記第４機能及び子ノードを生成する第５機能を繰り返す第６機能と
を実行させることを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１０】
前記終端ノードの表現するイベントが、自己フローが許容されるか否かによって、フラグを生成して格納する第７機能をさらに実現させることを特徴とする請求項９記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１１】
前記終端ノードの表現するイベントが、インタラプトイベントであるか否かによって、フラグを生成する第８機能をさらに実現させることを特徴とする請求項９記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１２】
前記インタラプトイベントが、
前記インタラプトイベントが発生した場合、イベントを表現するカレントノードをスタックにプッシュして格納する
ことを特徴とする請求項１１記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１３】
前記終端ノードの表現するイベントが、リターンフロー制御イベントであるか否かによって、フラグを生成する第９機能をさらに実現させることを特徴とする請求項９記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１４】
前記リターンフロー制御イベントが、
前記リターンフロー制御イベントが発生した場合、カレントスタックに格納されているノードをポップして、前記ノードに分岐させることを特徴とする請求項１３記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１５】
前記終端ノードの表現するイベントが、無条件フロー制御イベントであるか否かによって、フラグを生成する第１０機能をさらに実現させることを特徴とする請求項９記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１６】
前記無条件フロー制御イベントが、
前記無条件フロー制御イベントが発生した場合、所定のイベントを表現するノードに分岐させることを特徴とする請求項１５記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１７】
離散イベントシステムをモデリングするためのモデリングシステムにおいて、
使用者が定義した前記離散イベントシステムの要求及び明細を受信して、前記モデリングシステムが読み取り可能なコードに変換させるエンコード手段と、
前記エンコード手段により変換されたコードからイベント及びアクションデータを抽出するパーシング（Ｐａｒｓｉｎｇ）手段と
前記抽出されたイベント及びアクションデータを格納する格納手段と、
開始ノード及び終端ノードを含むツリー型データ構造を生成して格納するイベントノード生成手段と、
前記格納手段に格納されたイベントデータを検索して、前記ツリー型データ構造において、終端ノードで表現されるイベントデータに許容可能なベントデータが存在するか否かを判断して、許容可能なイベントが存在しない場合には、ツリー型データ構造生成を終了させ、許容可能なイベントデータが存在する場合には、前記許容可能なイベントデータを前記終端ノードの子ノードに生成させるため、前記イベントノード生成器を活性化させるイベント検索手段と
を含むことを特徴とするモデリングシステム。
【請求項１８】
前記終端ノードの表現するイベントが、自己フローが許容されるイベント、インタラプトイベント、リターンフロー制御イベント、または無条件フロー制御イベントであるか否かによって、フラグを生成させるフラグ生成部とをさらに含むことを特徴とする請求項１７記載のモデリングシステム。
【請求項１９】
前記インタラプトイベントが、
前記インタラプトイベントが発生した場合、イベントを表現するカレントノードをスタックにプッシュして格納することを特徴とする請求項１８記載のモデリングシステム。
【請求項２０】
前記リターンフロー制御イベントが、
前記リターンフロー制御イベントが発生した場合、カレントスタックに格納されているノードをポップして、前記ノードに分岐させることを特徴とする請求工１８記載のモデリングシステム。
【請求項２１】
前記無条件フロー制御イベントが、
前記無条件フロー制御イベントが発生した場合、所定のイベントを表現するノードに分岐させることを特徴とする請求項１８記載のモデリングシステム。
【請求項２２】
請求項１８〜２１のいずれかの項に記載のモデリングシステムによりモデリングされたイベントフローチャートを実行するイベントフロー制御システムであって、
入力されたイベントがイベントを表現するカレントノードから許容可能なイベントであるか否かを判断するイベントマッチング手段と、
前記イベントマッチング手段から前記入力されたイベントがカレントノードから許容可能なイベントであると判断された場合、前記入力されたイベントが実行されるための条件が満足されるか否かを判断する条件検査手段と、
前記条件検査手段から前記入力されたイベントが実行されるための条件が満足されると判断される場合、前記入力されたイベントに一対一にマッピングされている前記アクションを行って、前記モデリングされたシステムを駆動させるアクション遂行手段と、
入力されたイベントが前記リターンフロー制御イベント、または無条件フロー制御イベントである場合、カレントノードをアップデートするノードアップデート手段と
を含むことを特徴とするイベントフローチャート実行システム。
【請求項２３】
前記ノードアップデート手段が、
前記入力されたイベントが前記リターンフロー制御イベントである場合、前記スタックに格納されているノードをカレントノードにアップデートすることを特徴とする請求項２２記載のイベントフローチャート実行システム。
【請求項２４】
前記ノードアップデート手段が、
前記入力されたイベントが前記無条件フロー制御イベントである場合、前記無条件フロー制御イベントが定義するノードをカレントノードにアップデートすることを特徴とする請求項２２記載のイベントフローチャート実行システム。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は、離散イベントシステム（Ｄｉｓｃｒｅｔｅ Ｅｖｅｎｔ Ｓｙｓｔｅｍ、ＤＥＳ）のモデリング及び実行に関し、特に、イベントフローチャート（Ｅｖｅｎｔ Ｆｌｏｗ Ｃｈａｒｔ、ＥＦＣ）に従ってＤＥＳをモデリングする方法、及び該ＥＦＣによってモデリングされたＤＥＳを実行させるイベントフロー制御エンジン（Ｅｖｅｎｔ Ｆｌｏｗ Ｃｏｎｔｒｏｌ Ｅｎｇｉｎｅ、ＥＦＣＥ）に関する。
（背景技術）
まず、本発明を説明するため本明細書において用いられる用語は以下の通りである。
【０００２】
（１）状態（ｓｔａｔｅ）：　システムの動作を記述するためのものであって、システム属性（ｐｒｏｐｅｒｔｉｅｓ ｏｒ ａｔｔｒｉｂｕｔｅｓ）により定義される。時間に応じてシステムの状態は変化し、任意の時点においてシステムは特定状態に帰属しなければならない。
【０００３】
単純なＣＤプレイヤーを例に挙げると、電源がオン状態のＣＤ再生機は、「ｐｌａｙｉｎｇ」、「ｓｔｏｐｐｅｄ」などの状態を有し、特定状態に帰属する。
【０００４】
（２）直下位状態（ｉｍｍｅｄｉａｔｅ ｓｕｂ ｓｔａｔｅ）：　状態の概念は階層的であって、任意の状態は、複数の従属的な状態で表現できるが、このような従属的な状態を直下位状態という。
【０００５】
例えば、ＣＤプレイヤーの場合、「ｐｌａｙｉｎｇ」、「ｓｔｏｐｐｅｄ」は、全て「ｐｏｗｅｒ−ｏｎ」の直下位状態といえる。
【０００６】
（３）直上位状態（ｉｍｍｅｄｉａｔｅ ｓｕｐｅｒ ｓｔａｔｅ）：　直下位状態の反対概念である。
【０００７】
ＣＤプレイヤーの例において、「ｐｏｗｅｒ−ｏｎ」状態は、「ｐｌａｙｉｎｇ」と「ｓｔｏｐｐｅｄ」の直上位状態である。直上位状態は、直下位状態の抽象化された概念であって、直下位状態を代表する状態といえる。これによって、ＣＤプレイヤーの例において、「ｐｌａｙｉｎｇ」状態は、「ｐｏｗｅｒ−ｏｎ」状態ともいえる。
【０００８】
（４）下位状態（ｓｕｂ ｓｔａｔｅ）：　直下位状態の拡張された概念である。直下位状態を含んで、繰り返し得られる直下位状態の直下位状態を全て下位状態という。
【０００９】
（５）上位状態（ｓｕｐｅｒ ｓｔａｔｅ）：　直上位状態の拡張された概念である。直上位状態を含んで、繰り返し得られる直上位状態の直上位状態まで上位状態という。
【００１０】
（６）兄弟状態（ｓｉｂｌｉｎｇ ｓｔａｔｅ）：　同じ直上位状態を有する状態をいう。
【００１１】
ＣＤプレイヤーの例において、「ｐｌａｙｉｎｇ」と「ｓｔｏｐｐｅｄ」は、「ｐｏｗｅｒ−ｏｎ」という同じ直上位状態を有する兄弟状態である。
【００１２】
（７）階層の深さ（ｈｉｅｒａｒｃｈｉｃａｌ ｄｅｐｔｈ）：　上位状態の個数を意味する。
【００１３】
（８）活性状態（ａｃｔｉｖｅ ｓｔａｔｅ）：　システムが現在留まっている状態をいう。
【００１４】
これに対し、残りの状態は、非活性状態（ｉｎａｃｔｉｖｅ ｓｔａｔｅ）という。活性状態は、カレント状態（ｃｕｒｒｅｎｔ ｓｔａｔｅ）ともいう。
【００１５】
（９）状態転移（ｓｔａｔｅ ｔｒａｎｓｉｔｉｏｎ）：　カレントの状態から他の状態にシステムの活性状態が変わることをいう。
【００１６】
（１０）イベント（ｅｖｅｎｔ）：　 ＤＥＳに影響を及ぼすシステム内部、または外部で発生する変化を意味する。イベントは、システム内部、または外部で発生するシステムに対する入力であって、システムの出力と状態変化を起こす具体的な現象である。
【００１７】
（１１）条件（ｇｕａｒｄ ｃｏｎｄｉｔｉｏｎ）：　状態転移を許容するか否かを決める条件をいう。
【００１８】
（１２）アクション（ａｃｔｉｏｎ）：　状態転移が発生する際に、システムが発生させるイベントであって、システムの出力である。
【００１９】
（１３）状態転移ダイヤグラム（Ｓｔａｔｅ Ｔｒａｎｓｉｔｉｏｎ Ｄｉａｇｒａｍ、ＳＴＤ）：　ＭｏｏｒｅとＭｅａｌｙにより提案された方法であって、状態間の転移関係を表現する。
【００２０】
（１４）状態チャート（Ｓｔａｔｅ Ｃｈａｒｔ）：　Ｄａｖｉｄ Ｈａｒｅｌにより提案された拡張された形態のＳＴＤである。既存のＳＴＤに階層的構造を添加した、並列状態（ｐａｒａｌｌｅｌ ｓｔａｔｅ、ｏｒｔｈｏｇｏｎａｌｉｔｙ）を表現できるように拡張したものである。
【００２１】
（１５）転移可能状態（ｔｒａｎｓｉｔｉｏｎ−ａｌｌｏｗｅｄ ｓｔａｔｅ）：　カレント状態（ｃｕｒｒｅｎｔ ｓｔａｔｅ）から転移可能な状態をいう。
【００２２】
図１は、離散イベントシステム（ＤＥＳ）の開発過程を示すフロチャートである。
【００２３】
一般に、このＤＥＳ開発過程は、図１に示すように、ＤＥＳの機能を記述する「要求及び明細」ステップＳ１０１と、要求及び明細に従ってＤＥＳをモデリングする「分析及び設計」ステップＳ１０３と、モデリングの結果を実行する「実行」ステップＳ１０５と、ＤＥＳを検証する「検証」ステップＳ１０７とを含む。
【００２４】
このＤＥＳ開発過程は、通常、ＤＥＳが要求及び明細を満足するまで何回も繰り返される。このＤＥＳ開発過程は、エラーが検出される場合、或いは、ＤＥＳが機能の変更を必要とする場合、「要求及び明細」ステップＳ１０１から繰り返される。
【００２５】
「分析及び設計」ステップＳ１０３は、詳細には「システムの記述」ステップ、「要素の確認」ステップ、「要素関係の記述」ステップ、及び「動的動作のモデリング」ステップの下位ステップを有する。
【００２６】
本発明は、離散イベントシステム（ＤＥＳ）の設計方法、及び実行方法をもって、特により詳細には、「分析及び設計」ステップＳ１０３において必要となる、ＤＥＳの動的動作の記述方法、及びその実行方法をもって提供される。
【００２７】
図２Ａ及び図２Ｂは、非状態システム及び状態システムの特徴を示す図である。
【００２８】
ＤＥＳは、イベントの発生によりシステムの反応が引き起こされるシステムである。ＤＥＳは非状態システム（ｎｏｎ−ｓｔａｔｅ ｓｙｓｔｅｍ）と状態システム（ｓｔａｔｅ ｓｙｓｔｅｍ）とに区分される。
【００２９】
非状態システムは、図２Ａに示すように、入力のみに依存する出力を有し、その動作は比較的単純である。ＩはＤＥＳの入力ｉｊの集合、ＯはＤＥＳの出力Ｏｋの集合、ＳはＤＥＳの状態Ｓｌの集合、ｆは出力関数である。
【００３０】
状態システムは、図２Ｂに示すように、入力と、ＤＥＳの状態との両方に依存する出力を有し、その動作は比較的複雑である。状態システムは、「動的動作のモデリング」の下位ステップを必要とする。関数ｇは状態関数である。
【００３１】
非状態システムと状態システムとの差は、図２Ａ及び図２Ｂから明らかである。
【００３２】
図２Ａ及び図２Ｂに示すように、非状態システムでは、「Ｏｋ＝ｆ（ｉ）」という関係のみが存在するので、非状態システムをモデリングする際に必要なことは、出力関数ｆ（・）の確認である。したがって、非状態システムをモデリングすることは、入力と出力との間の関係だけを必要とする、比較的容易な過程である。
【００３３】
これに対し、実在のシステムの大部分は状態システムである。状態システムの出力関数ｆ（・）は、カレント状態である状態変数Ｓｌを必要とする、即ち、状態変数Ｓｌは、出力ｏｋを決定するのに必要とされる。次の状態Ｓｘは、状態関数Ｓｘ＝ｇ（ｉｊ、Ｓｌ）により決定される。
【００３４】
状態システムのモデリングにおける困難度は、状態変化の記述のために、非状態システムのモデリングにおける困難度より高くなる。
【００３５】
図３は、ＣＤプレイヤーの要求及び明細を示しており、図４は、図３の要求及び明細から抽出されたイベント、アクション及び状態を示しており、図５は、図３の要求及び明細によりモデリングされた状態転移ダイヤグラムであり、図６は、図３の要求及び明細によりモデリングされた状態チャートである。
【００３６】
状態変化を表現するためのものに、ＭｏｏｒｅとＭｅａｌｙにより提案された状態転移図（Ｓｔａｔｅ Ｔｒａｎｓｉｔｉｏｎ Ｄｉａｇｒａｍ ： ＳＴＤ）と、Ｄａｖｉｄ Ｈａｒｅｌにより提案された状態チャート（Ｓｔａｔｅ Ｃｈａｒｔ ： ＳＣ）とがある（図５及び図６参照）。
【００３７】
ＳＴＤは、状態間の転移を表現するものであって、単調に表記される。状態転移を起こす入力イベントｉｊは、通常、ＳＴＤに表示される。
【００３８】
ＳＴＤの状態転移過程は以下の通りである。
（１）イベントが発生し、
（２）ガード条件を検査し、
（３）ガード条件を満足する条件で、状態転移を行う。
【００３９】
カレント状態の脱出アクション、状態変化、及びターゲット状態のエントリーアクションは、状態転移の実行において連続して行われる。
【００４０】
ＣＤプレイヤーの例として、図４は、図３の与えられた要求及び明細から確認された、入力（Ｉ、イベント）／出力（Ｏ、アクション）／状態（Ｓ）を示す。
【００４１】
図５は、図４の入力（Ｉ、イベント）／出力（Ｏ、アクション）／状態（Ｓ）で表記されたＳＴＤを示す。基準状態（ｄｅｆａｕｌｔ ｓｔａｔｅ）５０１は、初期状態（ｉｎｉｔｉａｌ ｓｔａｔｅ）、またはＣＤプレイヤーが任意の状態に入る時、ＣＤプレイヤーが自動的に入る下位状態（ｓｕｂ−ｓｔａｔｅ）である。
【００４２】
ＳＴＤは、状態間の転移関係を視覚的に表現し、モデリングの効率を高めることができたが、複雑な状態間の転移関係を表現できないという欠点を有するフラットな構造のために、広く使用されなかった。
【００４３】
ＨａｒｅｌのＳＣはこのＳＴＤの欠点を克服する。ＳＣは、階層化された状態転移関係を表現することができる。
【００４４】
ＳＣの任意の状態は、その内部に複数の従属的な下位状態を有することができ、状態ダイヤグラムの一般化された形態となっている。
【００４５】
図６は、図４の入力（Ｉ、イベント）／出力（Ｏ、アクション）／状態（Ｓ）で表記されたＳＣを示す
図６に示されたＣＤプレイヤーの例のように、「Ｓｔｏｐｐｅｄ」状態５０３及び「Ｐｌａｙｉｎｇ」状態５０５は、電源がオンとなっている時にのみ可能な状態であり、「Ｐｏｗｅｒ−Ｏｎ」状態６０１は、「Ｓｔｏｐｐｅｄ」状態５０３及び「Ｐｌａｙｉｎｇ」状態５０５から抽象化され得る。これによって、「Ｓｔｏｐｐｅｄ」状態５０３及び「Ｐｌａｙｉｎｇ」状態５０５は、「Ｐｏｗｅｒ−Ｏｎ」の下位状態６０１となり、「Ｐｏｗｅｒ−Ｏｎ」状態６０１は、「Ｓｔｏｐｐｅｄ」状態５０３及び「Ｐｌａｙｉｎｇ」状態５０５の上位状態（ｓｕｐｅｒ−ｓｔａｔｅ）となる。
【００４６】
ＣＤプレイヤーは自動的に「Ｓｔｏｐｐｅｄ」状態５０３に入るので、「Ｓｔｏｐｐｅｄ」状態５０３は、「Ｐｏｗｅｒ−Ｏｎ」状態６０１の基準状態となっている。
【００４７】
ＨａｒｅｌのＳＣは、「Ｉ−Ｌｏｇｉｘ」の「ＳＴＡＴＥＭＡＴＥ」、「ＭａｔｒｉｘＸ」の「ＢｅｔｔｅｒＳｔａｔｅ」、及び「Ｍａｔｌａｂ」の「Ｓｔａｔｅｆｌｏｗ」など、ＳＣの概念を用いたＤＥＳの視覚的なモデリング用の商用ソフトウェアにおいて実施されている。
【００４８】
人−装置インターフェースの設計に用いられる商用ソフトウェア「Ｅｍｕｌｔｅｋ」の「Ｒａｐｉｄ」でも、類似の概念が用いられているが、ＳＣが階層的な構造を有するために、ＳＣがツリー構造となるという差がある（参照したソフトウェア及び／又は会社の名称は、該会社に帰属する登録商標であろう）。
【００４９】
ＳＣの方法論によってＤＥＳをモデリングすることは、ＤＥＳ動的動作の正確な記述のために、ＤＥＳの実行、修正、及び拡張に有利であると知られている。
【００５０】
しかし、ＳＣの方法論によってＤＥＳをモデリングすることは困難である。ＳＣの方法論によってＤＥＳをモデリングすることは、基本的にＤＥＳ状態の正確な確認を必要とする。想像も及ばないモデリングフローが存在し得る可能性が相当あり、「状態」という概念の抽象性のために、ＳＣの方法論によってＤＥＳをモデリングした結果は設計者と共に変化し得る。
【００５１】
したがって、専門家でない者にとって、ＳＣの方法論によってＤＥＳをモデリングすることは困難であり、専門家の異なる見解によって相異なるＳＣのＤＥＳモデルが生じる。
【００５２】
ＣＤプレイヤーは、３つの状態のみを有する非常に単純なシステムであるが、図５及び図６に示すように異なる見解によりモデリングされ得る。
【００５３】
概念「状態」の抽象的特性のために、既に完成されたＤＥＳモデルの修正及び拡張も複雑になる。
【００５４】
図７は、図３の要求及び明細に一時停止機能を追加した要求及び明細を示しており、図８は、図７の要求及び明細から抽出されたイベント、アクション及び状態を示しており、図９Ａ〜図９Ｃは、図７の要求及び明細によりモデリングされた、相異なる３つの型の状態チャートを示している。
【００５５】
図３及び図７の要求及び明細とイベント／アクション／状態とは、「停止（ｓｔｏｐ）」状態の後の「演奏（ｐｌａｙ）」状態のＣＤプレイヤーは、第一番目のトラックからトラックを演奏するのに対し、「一時停止」状態の後の「演奏」状態のＣＤプレイヤーは、元の位置からトラックを演奏するという点で、互いに異なる。
【００５６】
設計者次第となる多様なモデリングを以下に例示する。
【００５７】
モデリングＩは、「Ｐａｕｓｅｄ」を「Ｓｔｏｐｐｅｄ」状態５０３の下位状態と定める。
【００５８】
モデリングＩＩは、「Ｐａｕｓｅｄ」を「Ｐｌａｙｉｎｇ」状態５０５の下位状態と定める。
【００５９】
モデリングＩＩＩは、「Ｐａｕｓｅｄ」を「Ｓｔｏｐｐｅｄ」状態５０３、及び「Ｐｌａｙｉｎｇ」状態５０５の兄弟状態と定める。
【００６０】
図９Ａ〜図９Ｃは、上記モデリングＩ／ＩＩ／ＩＩＩに該当するＳＣを各々示している。
【００６１】
モデルの効率性はＤＥＳの目的や実行によって決定されるという点で、どのモデルが良いかを判断するのは難しい。しかし、同じＤＥＳから相異なるモデルが生じるために、人々が協力して開発する場合、開発の効率性は低下する。また、同じ設計者の見解も場合に応じて変わるので、開発の一貫性もまた低下してしまうという問題がある。
【００６２】
従来のＳＣにおける抽象性の問題を解決するため、イベントの特徴を強調するものとして、国際電気通信連合（ＩＴＵ： Ｉｎｔｅｒｎａｔｉｏｎａｌ Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ Ｕｎｉｏｎ）のメッセージシーケンスチャート（ＭＳＣ： ｍｅｓｓａｇｅ ｓｅｑｕｅｎｃｅ ｃｈａｒｔ）や「Ｃｙｃｏｒｅ」社の「Ｃｕｌｔ３Ｄ」が提案されている。
【００６３】
ＭＳＣのメッセージは、データ伝送や関数呼び出しを含む全体的な通信現象であって、イベントとして扱われ得る。ＭＳＣは、ＤＥＳを構成する要素間のメッセージ伝送を扱うことにより、データフローを記述する構造的な方法であるといえる。
【００６４】
ＭＳＣと類似したＵＭＬ（Ｕｎｉｆｉｅｄ Ｍｏｄｅｌｉｎｇ Ｌａｎｇｕａｇｅ）のシーケンス図及びコラボレーション図 においても同じ概念が用いられており、これらはＭＳＣを僅かに変形した型であると考えられる。
【００６５】
しかし、このようなＭＳＣはただデータ伝送を記述するという点において、データ伝送又は構成要素自体内での動作を含む全体のＤＥＳを制御する制御フローを記述できないという欠点がある。
【００６６】
「Ｃｕｌｔ３Ｄ」では、ＭＳＣとは異なりＤＥＳの動作を記述する。しかし、「Ｃｕｌｔ３Ｄ」では、非状態システムについてのみ、動作を記述することができ、したがって動作に依存する状態を記述することはできない。すなわち、「Ｃｕｌｔ３Ｄ」は、状態変化を無視し、Ｏｋ＝ｆ（ｉｊ）による入力と出力の関係のみを記述するので、ＤＥＳの動的な動作を記述することができないという弱点がある。
【００６７】
本発明の理解を助ける参考文献は以下の通りである。
【００６８】
１）Ｄａｖｉｄ Ｈａｒｅｌ、「Ｓｔａｔｅｃｈａｒｔｓ， ａ ｖｉｓｕａｌ ａｐｐｒｏａｃｈ ｔｏ ｃｏｍｐｌｅｘ ｓｙｓｔｅｍｓ」、Ｓｃｉｅｎｃｅ ｏｆ Ｃｏｍｐｕｔｅｒ Ｐｒｏｇｒａｍｍｉｎｇ，１９８７．
２）Ｄａｖｉｄ Ｈａｒｅｌ、「Ｏｎ Ｖｉｓｕａｌ Ｆｏｒｍａｌｉｓｍ」、Ｃｏｍｍｕｎｉｃａｔｉｏｎ ｏｆ ｔｈｅ ＡＣＭ， ｐｐ ５１４−５３０， Ｍａｙ １９８８．
３）Ｄａｖｉｄ Ｈａｒｅｌ、「ＳＴＡＴＥＭＡＴＥ： Ａ Ｗｏｒｋｉｎｇ Ｅｎｖｉｒｏｎｍｅｎｔ ｆｏｒ Ｄｅｖｅｌｏｐｍｅｎｔ ｏｆ Ｃｏｍｐｌｅｘ Ｒｅａｃｔｉｖｅ Ｓｙｓｔｅｍ」、ＩＥＥＥ Ｔｒａｎｓａｃｔｉｏｎ ｏｎ Ｓｏｆｔｗａｒｅ Ｅｎｇｉｎｅｅｒｉｎｇ， ｐｐ ４０３−４１４， Ａｐｒｉｌ １９９７．
４）Ｄ．Ｃｏｌｅｍａｎ， Ｆ．Ｈａｙｅｓ ａｎｄ Ｓ．Ｂｅａｒ、「Ｉｎｔｒｏｄｕｃｉｎｇ ｏｂｊｅｃｔｃｈａｒｔｓ ｏｒ ｈｏｗ ｔｏ ｕｓｅ ｓｔａｔｅｃｈａｒｔｓ ｉｎ ｏｂｊｅｃｔ−ｏｒｉｅｎｔｅｄ ｄｅｓｉｇｎ」、ＩＥＥＥ Ｔｒａｎｓａｃｔｉｏｎｓ ｏｎ ｓｏｆｔｗａｒｅ ｅｎｇｉｎｅｅｒｉｎｇ， ｖｏｌ．１８，ｎｏ．１， ｐｐ．９−１８， Ｊａｎｕａｒｙ １９９２．
５）Ｄ．Ｂｕｄｇｅｎ、「Ｓｏｆｔｗａｒｅ Ｄｅｓｉｇｎ」、Ａｄｄｉｓｏｎ Ｗｅｓｌｅｙ，ｐｐ １２３−１３５， １９９４．
６） Ａｎｔｔｉ Ａｕｅｒ，「Ｓｔａｔｅ Ｔｅｓｔｉｎｇ ｏｆ Ｅｍｂｅｄｄｅｄ Ｓｏｆｔｗａｒｅ， Ｕｎｉｖｅｒｓｉｔｙ ｏｆ Ｏｕｌｕ， Ｄｅｐａｒｔｍｅｎｔ ｏｆ Ｉｎｆｏｒｍａｔｉｏｎ Ｐｒｏｃｅｓｓｉｎｇ Ｓｃｉｅｎｃｅ ａｎｄ Ｉｎｆｏｔｅｃｈ Ｏｕｌｕ， Ｒｅｓｅａｒｃｈ ｐａｐｅｒ ｓｅｒｉｅｓ Ａ２Ｔ， Ｍａｒｃｈ １９９７．
７） Ｐ．Ｒａｍａｄｇｅ ａｎｄ Ｗ．Ｍ．Ｗｏｎｈａｍ、「Ｔｈｅ Ｃｏｎｔｒｏｌ ｏｆ Ｄｉｓｃｒｅｔｅ Ｅｖｅｎｔ Ｓｙｓｔｅｍｓ」、Ｐｒｏｃｅｅｄｉｎｇｓ ｏｆ ｔｈｅ ＩＥＥＥ， Ｖｏｌ ７７， Ｎｏ．１， １９８９．
８） Ｑｕａｔｒａｎｉ、Ｔｅｒｒｙ．、「Ｖｉｓｕａｌ Ｍｏｄｅｌｉｎｇ ｗｉｔｈ Ｒａｔｉｏｎａｌ Ｒｏｓｅ ａｎｄ ＵＭＬ」、Ａｄｄｉｓｏｎ Ｗｅｓｌｅｙ，１９９８．
９） Ｇｏｍａａ、Ｈａｓｓａｎ．、「Ｓｏｆｔｗａｒｅ Ｄｅｓｉｇｎ Ｍｅｔｈｏｄｓ ｆｏｒ Ｃｏｎｃｕｒｒｅｎｔ ａｎｄ Ｒｅａｌ−Ｔｉｍｅ Ｓｙｓｔｅｍｓ」、Ａｄｄｉｓｏｎ Ｗｅｓｌｅｙ、１９９３．
１０） ＩＴＵ（Ｉｎｔｅｒｎａｔｉｏｎａｌ Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ Ｕｎｉｏｎ）、「ＩＴＵ−Ｔ Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ Ｚ．１２０ − Ｍｅｓｓａｇｅ Ｓｅｑｕｅｎｃｅ Ｃｈａｒｔ」、ＩＴＵ、Ｎｏｖｅｍｂｅｒ １９９９．
（発明の開示）
したがって本発明は、イベントフローチャート（ＥＦＣ）を用いて、離散イベントシステム（ＤＥＳ）をモデリングする方法であって、ＤＥＳにおける状態の概念なしにイベントフローを記述するだけで容易に徹底してＤＥＳを記述することができる方法、及び前記方法を実行するためのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供することを目的としている。
【００６９】
本発明は、本発明に係る前記方法によるＥＦＣモデリングされたＤＥＳを制御するシステムを提供することを別の目的としている。
【００７０】
本発明の属する技術分野における当業者は、図面、発明の詳細な説明及び特許請求の範囲から本発明の別の目的及び利点を容易に認識することができる。
【００７１】
本発明の一態様によれば、離散イベントシステムをモデリングする方法であって、使用者により定義された前記離散イベントシステムの要求及び明細を受信する第１ステップと、前記要求及び明細からイベント及びアクションを抽出して格納する第２ステップと、開始ノードを含むツリー型データ構造を生成する第３ステップと、格納された前記イベントを検索して、終端ノードで表現されたイベントで許容可能なイベントが存在するか否かを判断して、許容可能なイベントが存在しない場合、前記データ構造の生成を終了する第４ステップと、格納された前記イベントに許容可能なイベントが存在する場合、該許容可能なイベントを表現する、前記終端ノードの子ノードを生成する第５ステップと、前記データ構造の全ての終端ノードに対して、検索を行う前記第４ステップ及び子ノードを生成する第５ステップを繰り返す第６ステップとを含むことを特徴とする離散イベントシステムのモデリング方法が提供される。
【００７２】
本発明の一態様によれば、プロセッサを備えたモデリングシステムにおいて、ＤＥＳをモデリングする方法を実行するプログラムであって、該システムに、使用者により定義された前記離散イベントシステムの要求及び明細を受信する第１機能と、前記要求及び明細からイベント及びアクションを抽出して格納する第２機能と、開始ノードを含むツリー型データ構造を生成する第３機能と、前記格納されたイベントを検索して終端ノードで表現されたイベントで許容可能なイベントが存在するか否かを判断し、許容可能なイベントが存在しない場合、前記データ構造の生成を終了する第４機能と、格納された前記イベントに許容可能なイベントが存在する場合、該許容可能なイベントを表現する、前記終端ノードの子ノードを生成する第５機能と、前記データ構造の全ての終端ノードに対して、検索を行う前記第４機能及び子ノードを生成する第５機能を繰り返す第６機能とを実行させることを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
【００７３】
本発明の一態様によれば、離散イベントシステムをモデリングするためのモデリングシステムにおいて、使用者が定義した前記離散イベントシステムの要求及び明細を受信して、前記モデリングシステムが読み取り可能なコードに変換させるエンコード手段と、前記エンコード手段により変換されたコードからイベント及びアクションデータを抽出するパーシング（Ｐａｒｓｉｎｇ）手段と前記抽出されたイベント及びアクションデータを格納する格納手段と、開始ノード及び終端ノードを含むツリー型データ構造を生成して格納するイベントノード生成手段と、前記格納手段に格納されたイベントデータを検索して、前記ツリー型データ構造において、終端ノードで表現されるイベントデータに許容可能なイベントデータが存在するか否かを判断して、許容可能なイベントが存在しない場合には、ツリー型データ構造生成を終了させ、許容可能なイベントデータが存在する場合には、前記許容可能なイベントデータを前記終端ノードの子ノードに生成させるため、前記イベントノード生成器を活性化させるイベント検索手段とを含むことを特徴とするモデリングシステムが提供される。
【００７４】
本発明の一態様によれば、上記モデリングシステムによりモデリングされたイベントフローチャートを実行するイベントフロー制御システムであって、入力されたイベントがイベントを表現するカレントノードから許容可能なイベントであるか否かを判断するイベントマッチング手段と、前記イベントマッチング手段から前記入力されたイベントがカレントノードから許容可能なイベントであると判断された場合、前記入力されたイベントが実行されるための条件が満足されるか否かを判断する条件検査手段と、前記条件検査手段から前記入力されたイベントが実行されるための条件が満足されると判断される場合、前記入力されたイベントに一対一にマッピングされている前記アクションを行って、前記モデリングされたシステムを駆動させるアクション遂行手段と、入力されたイベントが前記リターンフロー制御イベント、または無条件フロー制御イベントである場合、カレントノードをアップデートするノードアップデート手段とを含むことを特徴とするイベントフローチャート実行システムが提供される。
【００７５】
本発明によると、ＳＣが有する抽象性をなくしてモデリングエラーを最小化することはもちろん、設計者によるモデリングの差を最小化することができる。
【００７６】
本発明は、過去のＤＥＳモデリング方法が有する問題点を解決するため、ＥＦＣ基盤のモデリング方法と実行方法とを含む。
【００７７】
ＥＦＣモデリング過程では、モデリングの効率を高めるため、インタラプトイベント、リターンフロー、及び無条件フローを追加的に定義する。
【００７８】
インタラプトイベントは、直前に発生したイベントを記憶するのに用いられ、リターンフローに会うと記憶されたイベントへのフローを強制する。これはシステムが以前のイベントフローを復元して本来の作業を再開するのに有用である。
【００７９】
無条件フローは、イベントフロー制御の規則を離脱して、例外的にイベントフローを強制することをいう。これは、同じ形態のイベントフローを繰りす時、重複を避け、かつチャートを単純化させるのに有用に用いられる。
【００８０】
本発明によって生成されたＥＦＣは、イベントフロー制御エンジンにより実行され、これは４ステップのモジュールから構成される。
【００８１】
イベントフロー制御の４ステップは、イベントマッチング手段、条件検査手段、アクション実行手段、及びＩＨＢＥアップデート手段を含んで構成される。イベントマッチング手段は、実際発生したイベントが許容可能なイベントの集合に属しているか否かを検索する機能を行い、条件検査手段は、マッチングが成功したイベントへのフローが可能であるか否かを検査する機能を行う。条件検査の結果が可能であると、アクション実行手段は、システムのアクションを行い、ＩＨＢＥアップデート手段は、次のイベントフローに対するＩＨＢＥ更新を行う。
（発明を実施するための最良の形態）
本発明の上述した又は別の目的及び特徴は、添付した図面と関連する好ましい実施の形態についての以下の詳細な説明により一層明らかになる。まず、各図面の構成要素に参照符号を付ける際に、異なる図面上に示されていても、同じ構成要素には可能な限り同じ番号を付すように留意した。また、関連した公知技術における具体的な記載により本発明の要旨が不明瞭になると判断された場合、その記載を省略した。以下、添付した図面を参照しながら本発明に係る好ましい実施の形態を詳細に説明する。
【００８２】
ＥＦＣは、ＤＥＳにおける許容可能なイベントの発生を記述したものであって、ＳＣが抽象的状態を記述し、ＥＦＣは具体的イベントを記述するという点でＳＣとは相異するが、それらがシステムの動的動作を記述するという点で、同じモデリングである。
【００８３】
ＳＣの状態転移過程は、ＥＦＣにも適用される。ＥＦＣでは、「状態転移」という用語に代えて、「イベントフロー」という用語が、状態という概念を隠すことによってＥＦＣの作成を容易にする目的で定義される。同じ目的で、ＥＦＣでは、ＳＣのものと類似の概念を有するが異なる用語が定義される。
【００８４】
以下の表１は、ＥＦＣの用語と対応するＳＣの用語を示す。
【００８５】
【表１】
2004502234.tif 000003
【００８６】
表１に示すように、ＥＦＣにおいて二つのイベントの間に直接リンクが存在する場合、すなわち、二つのイベントがツリー構造で親−子の関係にある場合、ルートに近い親イベントは、子イベントに対する直先行イベント（ｉｍｍｅｄｉａｔｅｌｙ ｐｒｅｃｅｄｉｎｇ ｅｖｅｎｔ、ＩＰＥ）と呼ばれ、ルートから遠い子イベントは、親イベントに対する直後行イベント（ｉｍｍｅｄｉａｔｅｌｙ ｓｕｃｃｅｅｄｉｎｇ ｅｖｅｎｔ、ＩＳＥ）と呼ばれる。
【００８７】
直先行イベント（ＩＰＥ）及び直後行イベント（ＩＳＥ）は、それぞれ直上位状態及び直下位状態と類似している。先行イベント及び後行イベントは、それぞれ上位状態及び下位状態と同様に定義される。直前発生イベント（ｉｍｍｅｄｉａｔｅ ｈａｐｐｅｎｅｄ−ｂｅｆｏｒｅ ｅｖｅｎｔ、ＩＨＢＥ）は、最近起こったイベントであり、ＳＣのカレント状態と類似している。
【００８８】
ＩＨＢＥの転移が許容された許容可能イベントは、転移可能状態と類似している。状態転移に類似したイベントフローとは、イベントの発生と状態転移の遂行を意味する。自己イベントフローは、自己転移と類似しており、禁止されたイベントフローを示す非活性イベントリストは、転移が禁止された転移不能状態集合と類似している。
【００８９】
イベントフローとは、カレント状態で発生した許容可能なイベントの認知、及び該認知による状態転移を意味する。イベントフローの制御とは、イベントフローを定義することであり、これは本質的に状態転移メカニズムと同じである。
【００９０】
本発明に係るＥＦＣは、ＳＣと同等な変形した表現方式である。イベントだけでモデリングが可能な理由は、本質的にそのイベントが、状態転移を決めることができ、状態を置き換えることができる固有の要素であるからである。図２に示されたＳｘ＝ｇ（ｉｊ、Ｓｌ）は回帰式であって、状態はイベントにより決められることを示す。本発明によれば、ＳＣをＥＦＣに変換する方法、及びＥＦＣをＳＣに変換する方法が提供される。
【００９１】
図１０Ａ〜図１０Ｄは、本発明に係る状態チャートからイベントフローチャートへの変換過程を示す。
変換規則Ｉ（ＳＣからＥＦＣへの変換）
ステップ１）ＳＣをツリー形態（状態ツリー）で示す。下位状態の親ノードのように下位状態にリンクした上位状態で、ツリー形態を構成する。
【００９２】
ステップ２）上位状態を基準状態として作成する。
【００９３】
ステップ３）転移を発生させるイベントを端に表示する。
【００９４】
ステップ４）自己転移不能な状態を表示する。
【００９５】
ステップ５）各状態が転移を許容されていない兄弟状態を表示する。
【００９６】
ステップ６）状態をイベントに置き換える。
変換規則ＩＩ（ＥＦＣからＳＣへの変換）
ステップａ）イベントを状態に置き換える。
【００９７】
ステップｂ）上位状態が下位状態を含む包含関係を有するＳＣ図形式によってツリー形態を示す。
【００９８】
ステップｃ）重複された基準状態を除去する。
【００９９】
ステップｄ）転移関係を表示する。
ステップ２）において、上位状態を基準状態に置き換えることは、上位状態の抽象的な特性をなくすためである。ＥＦＣでは、抽象的な上位状態を許容せず具体化された基準状態に置き換える。
【０１００】
ステップ４）とステップ５）とは、状態ツリーが有する表現の制約を克服するための過程である。状態ツリーは、単に「親／子」と言われる階層関係のみを示し、自己転移と兄弟状態間の転移が明確に表現されない。
【０１０１】
状態ツリーにおいて、特別な表示がない限り、基本的に全ての状態で自己転移が可能であり、任意の兄弟状態間の転移が可能である。
【０１０２】
したがって、図１０Ｄの「Ｐａｕｓｅｄ」状態９０３のように、自己転移が不可能であることを示すか、「Ｓｔｏｐｐｅｄ」状態１００１のように「Ｐａｕｓｅｄ」状態９０３に転移不可能に転移不能状態リストを生成する。
【０１０３】
ステップｃ）で重複される基準状態を除去するとは、上位状態に位置した基準状態を除去し、抽象化された上位状態に表現することをいう。
【０１０４】
図１０Ｄは、ＳＣから最終的に誘導されたＥＦＣであって、ここで用いられる用語は、前記表１に示すように、ＳＣの用語と一対一の対応関係を有する。
【０１０５】
図１１は、本発明によってシステム要求及び明細から直接イベントフローチャートを生成する過程を示すフロチャートである。
【０１０６】
本発明に係るＥＦＣの最も重要な長所は、システムの要求明細から抽象的な概念の状態を抽出せずＥＦＣが直接生成でき、従来のシステム記述と全く同一にシステムを記述できるという点である。
【０１０７】
ＥＦＣは、基本的に順次的な先行関係によって生成される。システムが作動し始めると、自動的に帰属される初期状態から、許容可能なイベントを順次的にリンクしてツリー構造のＥＦＣを生成する。この場合、任意にリンクされた二つのイベントは先行関係を形成し、初期状態に近いイベント、すなわちＥＦＣのツリー構造において、親イベントが先行イベント、先行イベントの子イベントは、後行イベントという。許容可能なイベントとその先行関係は、要求明細から容易に抽出されるので、ＥＦＣのツリー構造は容易に生成できる。
【０１０８】
本発明にかかるＥＦＣのシステムモデリング方法は、上述したＳＣのシステムモデリングと完璧に相互変換可能であるという点から従来のシステムモデリング方法と全く同一にシステム記述が可能であるということが分かる。
【０１０９】
図１１に示すように、設計しようとするシステムの要求及び明細はステップＳ１１０１において、本発明に係るＥＦＣＥに入力され、ステップＳ１１０３において、入力された要求及び明細からイベント及びアクションが抽出される。また、抽出された全てのイベント及びアクションは、各々一対一にマッチングされる。
【０１１０】
イベント及びアクションを抽出した後、ステップＳ１１０５において、ＥＦＣのツリー構造を生成するため開始ノードを生成する。したがって、ＥＦＣツリー構造の頂点では、いかなるイベントも定義されない。
【０１１１】
次いで、開始ノードを終端ノードと認識して、該終端ノードから許容可能なイベントが存在しているか否かを、ステップＳ１１０３で抽出されたイベントで判断する（ステップＳ１１０７）。該判断の結果、許容可能なイベントが存在しない場合には、該ＥＦＣツリー構造が全て生成されたものであるため、ＥＦＣ生成プロセスを終了する。
【０１１２】
ステップＳ１１０７での判断の結果、終端ノードから許容可能なイベントが存在する場合、ステップＳ１１０９に進んで、許容可能なイベントを該終端ノードの子ノードとしてツリー構造を生成する。
【０１１３】
次いで、前記生成された子ノードが後述するインタラプトイベント／リターンフロー制御イベント／無条件フロー制御イベントであるか否かを判断して、何れか一つに該当する場合、該子ノードがインタラプトイベント／リターンフロー制御イベント／無条件フロー制御イベントであるという情報を格納する（ステップＳ１１１１）。
【０１１４】
次いで、前記生成された子ノードを終端ノードとして前記ステップＳ１１０７〜Ｓ１１１１を繰り返し実行し、生成されるＥＦＣのツリー構造に存在する全ての終端ノードに対して行う。
【０１１５】
ステップＳ１１０３は、前記入力されたユーザ定義のシステム要求及び明細を、本発明にかかるＥＦＣ生成システムが認識できるコードに変換し、イベント及びアクションを抽出するインコーダー及びパーサにより実行される。抽出されたイベント及びこれに一対一に対応するアクションは、データ格納手段に格納される。
【０１１６】
また、開始ノードを含むＥＦＣツリー構造のノードを生成し、後述するイベント検索器により許容可能なイベントを終端ノードに生成するプロセス（ステップＳ１１０５及びステップＳ１１０９）は、イベントノード生成器により行われる。
【０１１７】
ステップＳ１１０７における各終端ノードイベント毎に許容可能なイベントが存在しているか否かの判断は、イベント検索器により行われる。
【０１１８】
最後にステップＳ１１１１における、各終端イベントがインタラプトイベント／リターンフロー制御イベント／無条件フロー制御イベントであるか否かを判断して、該当イベントにインタラプトフラグ／リターンフロー制御フラグ／無条件フロー制御フラグを生成するプロセスは、フラグ生成器により行われる。
【０１１９】
図１２Ａ〜図１２Ｄは、図７の要求及び明細から図１１のＥＦＣツリー構造を生成する方法によって、ＣＤプレイヤーシステムをイベントフローチャートにモデリングする過程を示す図面である。
【０１２０】
要求明細からＥＦＣを作成する漸進的な過程は、次の通りである。
【０１２１】
（１）ＩＨＢＥ以後に許容するイベントをＩＨＢＥの後行イベントに生成する。但し、初期にはＩＨＢＥが定義されないので、最初に許容するイベントを開始ノードにリンクする。また、後行イベントがイベントフローの可能な位置に既に記述されていると、これを省略する。
【０１２２】
（２）各後行イベントの自己フローが可能か否かを決定し、該後行イベントから転移が許容されない非活性イベントリストを作成する。
【０１２３】
（３）各後行イベントをＩＨＢＥとして前記ステップ（１）、（２）及び（３）を繰り返す。
【０１２４】
「一時停止」機能を追加したＣＤプレイヤーの要求明細からＥＦＣを作成する。
【０１２５】
新しい要求明細は、図７と同様である。
【０１２６】
（ａ）初期状態で許容するイベントをリンクする。電源スイッチを付けるか消すイベントである｛ｉ１｝５０３、または電源を消す｛ｉ４｝５０１のみが許容されるので、これを開始ノードにリンクする（図１２Ａ参照）。
【０１２７】
（ｂ） ｛ｉ４｝５０１の後行イベントを記述する。再び電源を付けるか消すイベントである｛ｉ１｝５０３と｛ｉ４｝５０１が許容可能であるが、既に各々兄弟イベントと上位イベントに記述されているので、リンクを省略する（図１２Ｂ参照）。
【０１２８】
（ｃ） ｛ｉ１｝５０３の後行イベントを記述する。｛ｉ１｝５０３及び｛ｉ４｝５０１は、（ｃ）と同じ理由で省略される。これに対し、音楽を再生する｛ｉ２｝５０５、再生を停止する｛ｉ３｝１００１、再生を一時停止する｛ｉ５｝９０３は、初めて記述されるイベントであるので、後行イベントとしてリンクされる（図１２Ｂ参照）。
【０１２９】
（ｄ）一時停止中に｛ｉ５｝９０３の再発生は、再生を起こさなければならないので、自己フローを不可能にする（図１２Ｃ参照）。
【０１３０】
（ｅ）停止中に｛ｉ５｝９０３の発生は意味がないので、｛ｉ３｝１００１の非活性イベントリストに｛ｉ５｝を含める。以上、処理するイベントがないのでチャート作成を終了する（図１２Ｄ参照）。
【０１３１】
以上のように、要求明細からＥＦＣツリーを生成することは、状態概念を利用する従来の方法より具体化された作業であって、容易く作成できる。
【０１３２】
これは、抽象的な概念の状態を確認する過程が隠され、具体的な現象であるイベントのみを記述するためである。したがって、状態という概念を熟知しない非専門家も容易にモデリングでき、設計者によるモデリング結果の差が大きくないという長所が得られる。
【０１３３】
図１５は、許容可能なイベントを示す例示図である。ＥＦＣのイベントフローは、ＳＣの状態転移と同一なメカニズムを有する。ＳＣの場合、カレント状態において転移可能な状態集合は、自分の直下位状態、自分の兄弟状態、上位状態の兄弟状態である。図９Ｃの「Ｐａｕｓｅｄ」状態９０３において転移可能な状態を検討する。「Ｐａｕｓｅｄ」状態９０３は、直下位状態を有しないので、自分の兄弟状態である「Ｓｔｏｐｐｅｄ」状態５０３、「Ｐｌａｙｉｎｇ」状態５０５、及び上位状態の「Ｐｏｗｅｒ−ｏｎ」状態６０１の兄弟状態である「Ｐｏｗｅｒ Ｏｆｆ」状態５０１への転移が可能である。
【０１３４】
注目すべき点は、ＳＣで上位状態の兄弟状態への転移が表現されないが、そういう転移が可能であるという点である。カレント状態は基本的に上位状態に属するため、上位状態の兄弟状態への転移が可能でなければならない。これによって、「Ｐａｕｓｅｄ」状態９０３が「Ｐｏｗｅｒ−ｏｎ」状態６０１を示すこともあるため、「Ｐｏｗｅｒ−ｏｎ」状態６０１から「Ｐｏｗｅｒ Ｏｆｆ」状態５０１への転移が「Ｐａｕｓｅｄ」状態９０３でも適用される。したがって、「Ｐａｕｓｅｄ」状態９０３の転移可能状態の集合は、［「Ｓｔｏｐｐｅｄ」状態５０３、「Ｐｌａｙｉｎｇ」状態５０５、「Ｐｏｗｅｒ Ｏｆｆ」状態５０１］である。
【０１３５】
ＥＦＣにおいても、同じ方式によってイベントフローを定義する。許容可能なイベントには、直後行イベント、兄弟イベント、先行イベントの兄弟イベントである。イベントフローは、基本的に先行関係に従うが、ＳＣから導入した状態転移方式によって、階層的な形態のイベントフローが可能である。
【０１３６】
図１５は、許容可能なイベントを示す例示図であって、｛ｉ６｝１５０１で許容可能なイベントフローを示している。フローが可能なイベントには、｛ｉ６｝１５０１の直後行イベントである［ｉ１６、ｉ１７］１５０７、兄弟イベントの［ｉ７］１５０３、上位イベントの兄弟イベントである［ｉ３、ｉ２、ｉ５］１５０９及び［ｉ４、ｉ１］１５１１がある。｛ｉ６｝１５０１は、自己フローが禁止されているため脱落され、｛ｉ９｝１５０５は｛ｉ６｝１５０１の兄弟イベントであるが、非活性イベントとされているため脱落されている。
【０１３７】
図１６は、インタラプトイベント／リターンフロー制御イベントによるイベントフロー制御を示す例示図であり、図１７は、無条件フローによるイベントフロー制御を示す例示図である。
【０１３８】
本発明に係るＥＦＣ生成方法では、拡張された特性を追加してＥＦＣのモデリング性能を高めることができる。第一番目は、インタラプトイベント及びリターンフローである。後述するＥＦＣＥは、全域的なスタックを有し、非同期イベントが発生した時、カレントのノード（ＩＨＢＥ）をプッシュする。
【０１３９】
逆に、リターンフロー制御イベントに会うと、スタックから最近プッシュされたノードをポップして得られた状態で分岐する。このため、リターンフロー制御イベントは、後行イベントを有することができない。
【０１４０】
インタラプトイベントは、本来の状態を復元するために必要な概念である。
【０１４１】
図１６は、インタラプトイベントとリターンフロー制御イベントによるシステム制御の例を示している。ＩＨＢＥが｛ｉ６｝１４０１である場合、インタラプトイベントの｛ｉ２０｝１６０１が発生すると、スタックには｛ｉ６｝１４０１がプッシュされて格納される。
【０１４２】
ＩＨＢＥが｛ｉ２０｝１６０１である状況において、リターンフロー制御イベントである｛ｉ２１｝１６０３が発生すると、スタックに格納されていた｛ｉ６｝１４０１がポップされてＩＨＢＥが｛ｉ６｝１４０１に更新される。すなわち、リターンフロー制御イベントが発生すると、カレントスタックに格納されているイベントは発生せずＩＨＢＥをスタックに格納されているイベントノードに分岐するのである。リターンフローがリンクしたイベント（｛ｉ２１｝１６０３）も後行イベントを有することができない。
【０１４３】
第２度目は、無条件フロー制御イベントである。これはイベントフローを強制する手段であって、無条件フローが定義されていると、ＩＨＢＥは無条件フローが定義されたイベントに分岐する。
【０１４４】
無条件フローの導入は、イベントフローが繰り返し記述される時に、重複性をなくすためのものであって、ＥＦＣツリー構造の作成を単純化する。
【０１４５】
図１７は、無条件フローイベントによるシステム制御の例を示している。
【０１４６】
ＩＨＢＥが｛ｉ６｝１４０１である場合、無条件フロー制御イベントである｛ｉ７｝１４０３が発生すると、ＩＨＢＥは｛ｉ７｝１４０３ではなく｛ｉ７｝１４０３の無条件フローがリンクされた｛ｉ２｝１７０１に更新される。
【０１４７】
ここで、インタラプトイベント、リターンフロー制御イベント及び無条件フロー制御イベントは、他のイベントと同様にアクションが一対一にマッピングされているが、他のイベントとは異なってインタラプトイベント、リターンフロー制御イベント及び無条件フロー制御イベントが発生する場合に、それぞれマッピングされているアクションが実行されるようにする、或いは実行されないように定義することができる。
【０１４８】
図１３は、本発明に係るイベントフロー制御エンジンの機能ブロック図であり、図１４は、図１３のイベントフロー制御エンジンのイベントフロー制御フロチャートである。
【０１４９】
図１３に示すように、前記の拡張された特性を含むＥＦＣによりイベントフロー制御エンジンＥＦＣＥがモデリングされたシステムを制御し、ＥＦＣＥは、イベントが発生する時毎に駆動される。
【０１５０】
ＥＦＣＥは、制御部１３０１と、イベントマッチング部１３０３と、条件検査部１３０５と、アクション実行部１３０７及びＩＨＢＥアップデート部１３０９とから構成される。
【０１５１】
制御部１３０１は、イベントの入力を待ち受け、イベントが入力された場合、イベントマッチング部１３０３及び条件検査部１３０５を駆動させて、イベントマッチングするか否か（ステップＳ１４０５）及び条件満足するか否か（ステップＳ１４０７）を判断する。イベントがマッチングされ、条件を満足する場合には、アクション実行部１３０７及びＩＨＢＥアップデート部１３０９が駆動されて該入力されたイベントに一対一にマッピングされているアクションを実行Ｓ１４０９し、ＩＨＢＥをアップデートＳ１４１３する。
【０１５２】
イベントマッチング部１３０３は、許容可能なイベントが格納されているキューから入力イベントを検索してイベントマッチングするか否かを判断する。
【０１５３】
条件検査部１３０５は、該入力イベントが実行されるための条件を検査し、条件を満足する場合には、該入力イベントを新しいＩＨＢＥに設定し、アクション実行部１３０７を駆動する。
【０１５４】
アクション実行部１３０７は、条件を満足するイベントに一対一にマッピングされているアクションを行ってモデリングされたシステムを制御する。
【０１５５】
ＩＨＢＥアップデート部１３０９は、現在入力されたイベントがリターンフロー制御イベント、または無条件フロー制御イベントであるか否かを判断して、リターンフロー制御イベント、または無条件フロー制御イベントの場合、条件検査部１３０５で新しく設定したＩＨＢＥを入力されたリターンフロー制御イベント、または無条件フロー制御イベントが定義した新しいＩＨＢＥにアップデートする。すなわち、入力されたイベントがリターンフロー制御イベントである場合には、スタックに格納されているイベントノードを、入力されたイベントが無条件フロー制御イベントである場合には、該イベントが指定するイベントノードにＩＨＢＥをアップデートする。
【０１５６】
図１４に示すように、ステップＳ１４０１において、ＥＦＣＥは初期に待ち受け状態にあり、ステップＳ１４０３において、イベントの発生、すなわちＥＦＣＥへのイベント入力を認知して、イベントフローを制御する。ステップＳ１４０５において、イベントフロー制御は、まず発生したイベントが許容可能なイベントであるか否かを検査するイベントマッチングを開示する。すなわち、入力されたイベントがＥＦＣの現在ＩＨＢＥで許容可能なイベントの中から定義されたイベントであるか否かを検査する。この場合、自己フローが禁止されたＩＨＢＥと非活性イベントリストに含まれたイベントは、イベントマッチング検査から除外される。
【０１５７】
入力されたイベントがマッチングされると、すなわち、入力されたイベントがＥＦＣの現在ＩＨＢＥで許容可能なイベントの中から定義されたイベントである場合、入力されたイベントの条件に対して検査する（ステップＳ１４０７）。
【０１５８】
条件検査が満足されると、入力されたイベントノードを現在ＩＨＢＥに設定し、入力されたイベントと一対一にマッピングされているアクションを実行してモデリングされたシステムを制御する（ステップＳ１４０９）。アクション実行後には、ステップＳ１４０９で設定されたＩＨＢＥのアップデートが必要であるか否かを判断する（ステップＳ１４１１）。
【０１５９】
すなわち、入力されたイベントがリターンフロー制御イベント、または無条件フロー制御イベントであるか否かを判断する。判断結果、ＩＨＢＥアップデートが必要な場合にはＩＨＢＥアップデートを行う（ステップＳ１４１３）。すなわち、入力されたイベントがリターンフロー制御イベントである場合には、カレントスタックに格納されているイベントノードをポップして新しいＩＨＢＥに設定し、入力されたイベントが無条件フロー制御イベントである場合には、無条件フロー制御イベントで定義している目的イベントノードを新しいＩＨＢＥに設定する。
【０１６０】
図１８は、本発明の実施の形態に係るイベントフローチャートモデリング及びイベントフロー制御エンジンが実行されたシステムのインターフェースを示す図面であり、図１９Ａ〜図１９Ｉは、本発明の実施の形態に係るイベントフロー制御エンジンを実行した擬似プログラムコードを示す図面である。
【０１６１】
図１８に示すように、ＭＰ３プレイヤーをモデリングした例示図として、インターフェース左側領域１８０５には、オブジェクト単位で構成されるＭＰ３プレイヤーシステムの外形が示されており、右側領域１８０７には、本発明によってモデリングしたＭＰ３プレイヤーシステムのＥＦＣのツリー構造が示されている。右上側領域（１８０１及び１８０３）には、具体的なイベント及びそれに一対一にマッピングされるアクションが表示される。モデリングされた結果は、本発明に係るＥＦＣＥにより直接的な制御が可能である。
【０１６２】
上述したような本発明の方法は、プログラムで実行されコンピュータ読み取り可能な記録媒体（ＣＤ−ＲＯＭ、ＲＡＭ、ＲＯＭ、フロッピーディスク、ハードディスク、光磁気ディスクなど）に格納することができる。
【０１６３】
上述したように、本発明に係るＥＦＣは、抽象的な状態に対する考慮なしに直観的で、かつ明確なモデリングを可能にする。これは、ＳＣが有するモデリングの困難さ及び設計者によるモデリングの偏差をなくすと共に、モデルの実行及び修正を容易にするという利点がある。したがって、状態システムに対する知識が不足した者であっても、容易に状態システムをモデリングすることができ、設計者によるモデリングの差を最小化することができるという効果がある。
【０１６４】
また、本発明の実施の形態に係るＥＦＣのもう一つの長所は、チャート作図の容易さにある。ＳＣでは、状態間の階層関係はダイヤグラム形態に表現し、状態間の転移関係は、リンク線で表現される。それに対し、ＥＦＣは単純なツリー構造であって、階層関係及び転移関係が同時に表現される。したがって、チャートを非常に単純化することができるという効果が得られる。また、チャートを修正する場合にもＥＦＣが有利である。ＳＣでは、新しい下位状態を表現するために、上位状態のダイヤグラムのサイズを大きくし（連鎖的に上位状態のサイズが大きくならなければならない）、新しい下位状態を描かなければならない。しかしながら、ＥＦＣでは、ツリーに対し単に新しいノードを追加するという簡単な方法で修正をすることができる。
【０１６５】
尚、本発明は、上記の本実施の形態に限られるものではない。本発明の趣旨から逸脱しない範囲内で多様に変更して実施することが可能である。
【図面の簡単な説明】
【図１】離散イベントシステムの開発過程を示すフロチャートである。
【図２Ａ】非状態システム及び状態システムの特徴を示す図面である。
【図２Ｂ】非状態システム及び状態システムの特徴を示す図面である。
【図３】ＣＤプレイヤーの要求及び明細を示す図面である。
【図４】図３の要求及び明細から抽出されたイベント、アクション及び状態を示す図面である。
【図５】図３の要求及び明細によりモデリングされた状態転移図を示す図面である。
【図６】図３の要求及び明細によりモデリングされた状態チャートを示す図面である。
【図７】図３の要求及び明細に一時停止機能を追加した要求及び明細を示す図面である。
【図８】図７の要求及び明細から抽出されたイベント、アクション及び状態を示す図面である。
【図９Ａ】図７の要求及び明細によりモデリングされた相異なる状態チャートを示す図面である。
【図９Ｂ】図７の要求及び明細によりモデリングされた相異なる状態チャートを示す図面である。
【図９Ｃ】図７の要求及び明細によりモデリングされた相異なる状態チャートを示す図面である。
【図１０Ａ】状態チャートから本発明に係るイベントフローチャートを変換させる過程を示す図面である。
【図１０Ｂ】状態チャートから本発明に係るイベントフローチャートを変換させる過程を示す図面である。
【図１０Ｃ】状態チャートから本発明に係るイベントフローチャートを変換させる過程を示す図面である。
【図１０Ｄ】状態チャートから本発明に係るイベントフローチャートを変換させる過程を示す図面である。
【図１１】本発明によってシステム要求及び明細から直接イベントフローチャートを生成する過程を示すフロチャートである。
【図１２Ａ】図７の要求及び明細からＣＤプレイヤーシステムをイベントフローチャートにモデリングする過程を示す図面である。
【図１２Ｂ】図７の要求及び明細からＣＤプレイヤーシステムをイベントフローチャートにモデリングする過程を示す図面である。
【図１２Ｃ】図７の要求及び明細からＣＤプレイヤーシステムをイベントフローチャートにモデリングする過程を示す図面である。
【図１２Ｄ】図７の要求及び明細からＣＤプレイヤーシステムをイベントフローチャートにモデリングする過程を示す図面である。
【図１３】本発明の実施の形態に係るイベントフロー制御エンジンの機能ブ　ロック図である。
【図１４】図１３のイベントフロー制御エンジンのイベントフロー制御フロチートである。
【図１５】許容可能なイベントを示す例示図である。
【図１６】インタラプトイベント／リターンフローに応じたイベントフロー制御を示す例示図である。
【図１７】無条件フローに応じたイベントフロー制御を示す例示図である。
【図１８】本発明に係るイベントフローチャートモデリング及びイベントフロー制御エンジンが実行されたシステムのインターフェースを示す図面である。
【図１９Ａ】本発明に係るイベントフロー制御エンジンを実行した擬似プログラムコードを示す図面である。
【図１９Ｂ】本発明に係るイベントフロー制御エンジンを実行した擬似プログラムコードを示す図面である。
【図１９Ｃ】本発明に係るイベントフロー制御エンジンを実行した擬似プログラムコードを示す図面である。
【図１９Ｄ】本発明に係るイベントフロー制御エンジンを実行した擬似プログラムコードを示す図面である。
【図１９Ｅ】本発明に係るイベントフロー制御エンジンを実行した擬似プログラムコードを示す図面である。
【図１９Ｆ】本発明に係るイベントフロー制御エンジンを実行した擬似プログラムコードを示す図面である。
【図１９Ｇ】本発明に係るイベントフロー制御エンジンを実行した擬似プログラムコードを示す図面である。
【図１９Ｈ】本発明に係るイベントフロー制御エンジンを実行した擬似プログラムコードを示す図面である。
【図１９Ｉ】本発明に係るイベントフロー制御エンジンを実行した擬似プログラムコードを示す図面である。
【図１】
2004502234.tif 000004
【図２Ａ】
2004502234.tif 000005
【図２Ｂ】
2004502234.tif 000006
【図３】
2004502234.tif 000007
【図４】
2004502234.tif 000008
【図５】
2004502234.tif 000009
【図６】
2004502234.tif 000010
【図７】
2004502234.tif 000011
【図８】
2004502234.tif 000012
【図９Ａ】
2004502234.tif 000013
【図９Ｂ】
2004502234.tif 000014
【図９Ｃ】
2004502234.tif 000015
【図１０Ａ】
2004502234.tif 000016
【図１０Ｂ】
2004502234.tif 000017
【図１０Ｃ】
2004502234.tif 000018
【図１０Ｄ】
2004502234.tif 000019
【図１１】
2004502234.tif 000020
【図１２Ａ】
2004502234.tif 000021
【図１２Ｂ】
2004502234.tif 000022
【図１２Ｃ】
2004502234.tif 000023
【図１２Ｄ】
2004502234.tif 000024
【図１３】
2004502234.tif 000025
【図１４】
2004502234.tif 000026
【図１５】
2004502234.tif 000027
【図１６】
2004502234.tif 000028
【図１７】
2004502234.tif 000029
【図１８】
2004502234.tif 000030
【図１９Ａ】
2004502234.tif 000031
【図１９Ｂ】
2004502234.tif 000032
【図１９Ｃ】
2004502234.tif 000033
【図１９Ｄ】
2004502234.tif 000034
【図１９Ｅ】
2004502234.tif 000035
【図１９Ｆ】
2004502234.tif 000036
【図１９Ｇ】
2004502234.tif 000037
【図１９Ｈ】
2004502234.tif 000038
【図１９Ｉ】
2004502234.tif 000039
【国際公開パンフレット】
2004502234.tif 000040
2004502234.tif 000041
2004502234.tif 000042
2004502234.tif 000043
2004502234.tif 000044
2004502234.tif 000045
2004502234.tif 000046
2004502234.tif 000047
2004502234.tif 000048
2004502234.tif 000049
2004502234.tif 000050
2004502234.tif 000051
2004502234.tif 000052
2004502234.tif 000053
2004502234.tif 000054
2004502234.tif 000055
2004502234.tif 000056
2004502234.tif 000057
2004502234.tif 000058
2004502234.tif 000059
2004502234.tif 000060
2004502234.tif 000061
2004502234.tif 000062
2004502234.tif 000063
2004502234.tif 000064
2004502234.tif 000065
2004502234.tif 000066
2004502234.tif 000067
2004502234.tif 000068
2004502234.tif 000069
2004502234.tif 000070
2004502234.tif 000071
2004502234.tif 000072
2004502234.tif 000073
2004502234.tif 000074
2004502234.tif 000075
2004502234.tif 000076
2004502234.tif 000077
2004502234.tif 000078
2004502234.tif 000079
2004502234.tif 000080
2004502234.tif 000081
2004502234.tif 000082
2004502234.tif 000083
2004502234.tif 000084
2004502234.tif 000085
2004502234.tif 000086
2004502234.tif 000087
2004502234.tif 000088
2004502234.tif 000089
2004502234.tif 000090
2004502234.tif 000091
2004502234.tif 000092
2004502234.tif 000093
2004502234.tif 000094
2004502234.tif 000095
2004502234.tif 000096
2004502234.tif 000097
2004502234.tif 000098
2004502234.tif 000099
2004502234.tif 000100
2004502234.tif 000101
【手続補正書】
【提出日】平成14年9月16日(2002.9.16)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】発明の詳細な説明
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
（技術分野）
本発明は、離散イベントシステム（Ｄｉｓｃｒｅｔｅ Ｅｖｅｎｔ Ｓｙｓｔｅｍ、ＤＥＳ）のモデリング及び実行に関し、特に、イベントフローチャート（Ｅｖｅｎｔ Ｆｌｏｗ Ｃｈａｒｔ、ＥＦＣ）に従ってＤＥＳをモデリングする方法、及び該ＥＦＣによってモデリングされたＤＥＳを実行させるイベントフロー制御エンジン（Ｅｖｅｎｔ Ｆｌｏｗ Ｃｏｎｔｒｏｌ Ｅｎｇｉｎｅ、ＥＦＣＥ）に関する。
（背景技術）
まず、本発明を説明するため本明細書において用いられる用語は以下の通りである。
（１）状態（ｓｔａｔｅ）：　システムの動作を記述するためのものであって、システム属性（ｐｒｏｐｅｒｔｉｅｓ ｏｒ ａｔｔｒｉｂｕｔｅｓ）により定義される。時間に応じてシステムの状態は変化し、任意の時点においてシステムは特定状態に帰属しなければならない。
単純なＣＤプレイヤーを例に挙げると、電源がオン状態のＣＤ再生機は、「ｐｌａｙｉｎｇ」、「ｓｔｏｐｐｅｄ」などの状態を有し、特定状態に帰属する。
（２）直下位状態（ｉｍｍｅｄｉａｔｅ ｓｕｂ ｓｔａｔｅ）：　状態の概念は階層的であって、任意の状態は、複数の従属的な状態で表現できるが、このような従属的な状態を直下位状態という。
例えば、ＣＤプレイヤーの場合、「ｐｌａｙｉｎｇ」、「ｓｔｏｐｐｅｄ」は、全て「ｐｏｗｅｒ−ｏｎ」の直下位状態といえる。
（３）直上位状態（ｉｍｍｅｄｉａｔｅ ｓｕｐｅｒ ｓｔａｔｅ）：　直下位状態の反対概念である。
ＣＤプレイヤーの例において、「ｐｏｗｅｒ−ｏｎ」状態は、「ｐｌａｙｉｎｇ」と「ｓｔｏｐｐｅｄ」の直上位状態である。直上位状態は、直下位状態の抽象化された概念であって、直下位状態を代表する状態といえる。これによって、ＣＤプレイヤーの例において、「ｐｌａｙｉｎｇ」状態は、「ｐｏｗｅｒ−ｏｎ」状態ともいえる。
（４）下位状態（ｓｕｂ ｓｔａｔｅ）：　直下位状態の拡張された概念である。直下位状態を含んで、繰り返し得られる直下位状態の直下位状態を全て下位状態という。
（５）上位状態（ｓｕｐｅｒ ｓｔａｔｅ）：　直上位状態の拡張された概念である。直上位状態を含んで、繰り返し得られる直上位状態の直上位状態まで上位状態という。
（６）兄弟状態（ｓｉｂｌｉｎｇ ｓｔａｔｅ）：　同じ直上位状態を有する状態をいう。
ＣＤプレイヤーの例において、「ｐｌａｙｉｎｇ」と「ｓｔｏｐｐｅｄ」は、「ｐｏｗｅｒ−ｏｎ」という同じ直上位状態を有する兄弟状態である。
（７）階層の深さ（ｈｉｅｒａｒｃｈｉｃａｌ ｄｅｐｔｈ）：　上位状態の個数を意味する。
（８）活性状態（ａｃｔｉｖｅ ｓｔａｔｅ）：　システムが現在留まっている状態をいう。
これに対し、残りの状態は、非活性状態（ｉｎａｃｔｉｖｅ ｓｔａｔｅ）という。活性状態は、カレント状態（ｃｕｒｒｅｎｔ ｓｔａｔｅ）ともいう。
（９）状態転移（ｓｔａｔｅ ｔｒａｎｓｉｔｉｏｎ）：　カレントの状態から他の状態にシステムの活性状態が変わることをいう。
（１０）イベント（ｅｖｅｎｔ）：　 ＤＥＳに影響を及ぼすシステム内部、または外部で発生する変化を意味する。イベントは、システム内部、または外部で発生するシステムに対する入力であって、システムの出力と状態変化を起こす具体的な現象である。
（１１）条件（ｇｕａｒｄ ｃｏｎｄｉｔｉｏｎ）：　状態転移を許容するか否かを決める条件をいう。
（１２）アクション（ａｃｔｉｏｎ）：　状態転移が発生する際に、システムが発生させるイベントであって、システムの出力である。
（１３）状態転移ダイヤグラム（Ｓｔａｔｅ Ｔｒａｎｓｉｔｉｏｎ Ｄｉａｇｒａｍ、ＳＴＤ）：　ＭｏｏｒｅとＭｅａｌｙにより提案された方法であって、状態間の転移関係を表現する。
（１４）状態チャート（Ｓｔａｔｅ Ｃｈａｒｔ）：　Ｄａｖｉｄ Ｈａｒｅｌにより提案された拡張された形態のＳＴＤである。既存のＳＴＤに階層的構造を添加した、並列状態（ｐａｒａｌｌｅｌ ｓｔａｔｅ、ｏｒｔｈｏｇｏｎａｌｉｔｙ）を表現できるように拡張したものである。
（１５）転移可能状態（ｔｒａｎｓｉｔｉｏｎ−ａｌｌｏｗｅｄ ｓｔａｔｅ）：　カレント状態（ｃｕｒｒｅｎｔ ｓｔａｔｅ）から転移可能な状態をいう。
図１は、離散イベントシステム（ＤＥＳ）の開発過程を示すフロチャートである。
一般に、このＤＥＳ開発過程は、図１に示すように、ＤＥＳの機能を記述する「要求及び明細」ステップＳ１０１と、要求及び明細に従ってＤＥＳをモデリングする「分析及び設計」ステップＳ１０３と、モデリングの結果を実行する「実行」ステップＳ１０５と、ＤＥＳを検証する「検証」ステップＳ１０７とを含む。
このＤＥＳ開発過程は、通常、ＤＥＳが要求及び明細を満足するまで何回も繰り返される。このＤＥＳ開発過程は、エラーが検出される場合、或いは、ＤＥＳが機能の変更を必要とする場合、「要求及び明細」ステップＳ１０１から繰り返される。
「分析及び設計」ステップＳ１０３は、詳細には「システムの記述」ステップ、「要素の確認」ステップ、「要素関係の記述」ステップ、及び「動的動作のモデリング」ステップの下位ステップを有する。
本発明は、離散イベントシステム（ＤＥＳ）の設計方法、及び実行方法をもって、特により詳細には、「分析及び設計」ステップＳ１０３において必要となる、ＤＥＳの動的動作の記述方法、及びその実行方法をもって提供される。
図２Ａ及び図２Ｂは、非状態システム及び状態システムの特徴を示す図である。
ＤＥＳは、イベントの発生によりシステムの反応が引き起こされるシステムである。ＤＥＳは非状態システム（ｎｏｎ−ｓｔａｔｅ ｓｙｓｔｅｍ）と状態システム（ｓｔａｔｅ ｓｙｓｔｅｍ）とに区分される。
非状態システムは、図２Ａに示すように、入力のみに依存する出力を有し、その動作は比較的単純である。ＩはＤＥＳの入力ｉｊの集合、ＯはＤＥＳの出力Ｏｋの集合、ＳはＤＥＳの状態Ｓｌの集合、ｆは出力関数である。
状態システムは、図２Ｂに示すように、入力と、ＤＥＳの状態との両方に依存する出力を有し、その動作は比較的複雑である。状態システムは、「動的動作のモデリング」の下位ステップを必要とする。関数ｇは状態関数である。
非状態システムと状態システムとの差は、図２Ａ及び図２Ｂから明らかである。
図２Ａ及び図２Ｂに示すように、非状態システムでは、「Ｏｋ＝ｆ（ｉ）」という関係のみが存在するので、非状態システムをモデリングする際に必要なことは、出力関数ｆ（・）の確認である。したがって、非状態システムをモデリングすることは、入力と出力との間の関係だけを必要とする、比較的容易な過程である。
これに対し、実在のシステムの大部分は状態システムである。状態システムの出力関数ｆ（・）は、カレント状態である状態変数Ｓｌを必要とする、即ち、状態変数Ｓｌは、出力ｏｋを決定するのに必要とされる。次の状態Ｓｘは、状態関数Ｓｘ＝ｇ（ｉｊ、Ｓｌ）により決定される。
状態システムのモデリングにおける困難度は、状態変化の記述のために、非状態システムのモデリングにおける困難度より高くなる。
図３は、ＣＤプレイヤーの要求及び明細を示しており、図４は、図３の要求及び明細から抽出されたイベント、アクション及び状態を示しており、図５は、図３の要求及び明細によりモデリングされた状態転移ダイヤグラムであり、図６は、図３の要求及び明細によりモデリングされた状態チャートである。
状態変化を表現するためのものに、ＭｏｏｒｅとＭｅａｌｙにより提案された状態転移図（Ｓｔａｔｅ Ｔｒａｎｓｉｔｉｏｎ Ｄｉａｇｒａｍ ： ＳＴＤ）と、Ｄａｖｉｄ Ｈａｒｅｌにより提案された状態チャート（Ｓｔａｔｅ Ｃｈａｒｔ ： ＳＣ）とがある（図５及び図６参照）。
ＳＴＤは、状態間の転移を表現するものであって、単調に表記される。状態転移を起こす入力イベントｉｊは、通常、ＳＴＤに表示される。
ＳＴＤの状態転移過程は以下の通りである。
（１）イベントが発生し、
（２）ガード条件を検査し、
（３）ガード条件を満足する条件で、状態転移を行う。
カレント状態の脱出アクション、状態変化、及びターゲット状態のエントリーアクションは、状態転移の実行において連続して行われる。
ＣＤプレイヤーの例として、図４は、図３の与えられた要求及び明細から確認された、入力（Ｉ、イベント）／出力（Ｏ、アクション）／状態（Ｓ）を示す。
図５は、図４の入力（Ｉ、イベント）／出力（Ｏ、アクション）／状態（Ｓ）で表記されたＳＴＤを示す。基準状態（ｄｅｆａｕｌｔ ｓｔａｔｅ）５０１は、初期状態（ｉｎｉｔｉａｌ ｓｔａｔｅ）、またはＣＤプレイヤーが任意の状態に入る時、ＣＤプレイヤーが自動的に入る下位状態（ｓｕｂ−ｓｔａｔｅ）である。
ＳＴＤは、状態間の転移関係を視覚的に表現し、モデリングの効率を高めることができたが、複雑な状態間の転移関係を表現できないという欠点を有するフラットな構造のために、広く使用されなかった。
ＨａｒｅｌのＳＣはこのＳＴＤの欠点を克服する。ＳＣは、階層化された状態転移関係を表現することができる。
ＳＣの任意の状態は、その内部に複数の従属的な下位状態を有することができ、状態ダイヤグラムの一般化された形態となっている。
図６は、図４の入力（Ｉ、イベント）／出力（Ｏ、アクション）／状態（Ｓ）で表記されたＳＣを示す
図６に示されたＣＤプレイヤーの例のように、「Ｓｔｏｐｐｅｄ」状態５０３及び「Ｐｌａｙｉｎｇ」状態５０５は、電源がオンとなっている時にのみ可能な状態であり、「Ｐｏｗｅｒ−Ｏｎ」状態６０１は、「Ｓｔｏｐｐｅｄ」状態５０３及び「Ｐｌａｙｉｎｇ」状態５０５から抽象化され得る。これによって、「Ｓｔｏｐｐｅｄ」状態５０３及び「Ｐｌａｙｉｎｇ」状態５０５は、「Ｐｏｗｅｒ−Ｏｎ」の下位状態６０１となり、「Ｐｏｗｅｒ−Ｏｎ」状態６０１は、「Ｓｔｏｐｐｅｄ」状態５０３及び「Ｐｌａｙｉｎｇ」状態５０５の上位状態（ｓｕｐｅｒ−ｓｔａｔｅ）となる。
ＣＤプレイヤーは自動的に「Ｓｔｏｐｐｅｄ」状態５０３に入るので、「Ｓｔｏｐｐｅｄ」状態５０３は、「Ｐｏｗｅｒ−Ｏｎ」状態６０１の基準状態となっている。
ＨａｒｅｌのＳＣは、「Ｉ−Ｌｏｇｉｘ」の「ＳＴＡＴＥＭＡＴＥ」、「ＭａｔｒｉｘＸ」の「ＢｅｔｔｅｒＳｔａｔｅ」、及び「Ｍａｔｌａｂ」の「Ｓｔａｔｅｆｌｏｗ」など、ＳＣの概念を用いたＤＥＳの視覚的なモデリング用の商用ソフトウェアにおいて実施されている。
人−装置インターフェースの設計に用いられる商用ソフトウェア「Ｅｍｕｌｔｅｋ」の「Ｒａｐｉｄ」でも、類似の概念が用いられているが、ＳＣが階層的な構造を有するために、ＳＣがツリー構造となるという差がある（参照したソフトウェア及び／又は会社の名称は、該会社に帰属する登録商標であろう）。
ＳＣの方法論によってＤＥＳをモデリングすることは、ＤＥＳ動的動作の正確な記述のために、ＤＥＳの実行、修正、及び拡張に有利であると知られている。
しかし、ＳＣの方法論によってＤＥＳをモデリングすることは困難である。ＳＣの方法論によってＤＥＳをモデリングすることは、基本的にＤＥＳ状態の正確な確認を必要とする。想像も及ばないモデリングフローが存在し得る可能性が相当あり、「状態」という概念の抽象性のために、ＳＣの方法論によってＤＥＳをモデリングした結果は設計者と共に変化し得る。
したがって、専門家でない者にとって、ＳＣの方法論によってＤＥＳをモデリングすることは困難であり、専門家の異なる見解によって相異なるＳＣのＤＥＳモデルが生じる。
ＣＤプレイヤーは、３つの状態のみを有する非常に単純なシステムであるが、図５及び図６に示すように異なる見解によりモデリングされ得る。
概念「状態」の抽象的特性のために、既に完成されたＤＥＳモデルの修正及び拡張も複雑になる。
図７は、図３の要求及び明細に一時停止機能を追加した要求及び明細を示しており、図８は、図７の要求及び明細から抽出されたイベント、アクション及び状態を示しており、図９Ａ〜図９Ｃは、図７の要求及び明細によりモデリングされた、相異なる３つの型の状態チャートを示している。
図３及び図７の要求及び明細とイベント／アクション／状態とは、「停止（ｓｔｏｐ）」状態の後の「演奏（ｐｌａｙ）」状態のＣＤプレイヤーは、第一番目のトラックからトラックを演奏するのに対し、「一時停止」状態の後の「演奏」状態のＣＤプレイヤーは、元の位置からトラックを演奏するという点で、互いに異なる。
設計者次第となる多様なモデリングを以下に例示する。
モデリングＩは、「Ｐａｕｓｅｄ」を「Ｓｔｏｐｐｅｄ」状態５０３の下位状態と定める。
モデリングＩＩは、「Ｐａｕｓｅｄ」を「Ｐｌａｙｉｎｇ」状態５０５の下位状態と定める。
モデリングＩＩＩは、「Ｐａｕｓｅｄ」を「Ｓｔｏｐｐｅｄ」状態５０３、及び「Ｐｌａｙｉｎｇ」状態５０５の兄弟状態と定める。
図９Ａ〜図９Ｃは、上記モデリングＩ／ＩＩ／ＩＩＩに該当するＳＣを各々示している。
モデルの効率性はＤＥＳの目的や実行によって決定されるという点で、どのモデルが良いかを判断するのは難しい。しかし、同じＤＥＳから相異なるモデルが生じるために、人々が協力して開発する場合、開発の効率性は低下する。また、同じ設計者の見解も場合に応じて変わるので、開発の一貫性もまた低下してしまうという問題がある。
従来のＳＣにおける抽象性の問題を解決するため、イベントの特徴を強調するものとして、国際電気通信連合（ＩＴＵ： Ｉｎｔｅｒｎａｔｉｏｎａｌ Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ Ｕｎｉｏｎ）のメッセージシーケンスチャート（ＭＳＣ： ｍｅｓｓａｇｅ ｓｅｑｕｅｎｃｅ ｃｈａｒｔ）や「Ｃｙｃｏｒｅ」社の「Ｃｕｌｔ３Ｄ」が提案されている。
ＭＳＣのメッセージは、データ伝送や関数呼び出しを含む全体的な通信現象であって、イベントとして扱われ得る。ＭＳＣは、ＤＥＳを構成する要素間のメッセージ伝送を扱うことにより、データフローを記述する構造的な方法であるといえる。
ＭＳＣと類似したＵＭＬ（Ｕｎｉｆｉｅｄ Ｍｏｄｅｌｉｎｇ Ｌａｎｇｕａｇｅ）のシーケンス図及びコラボレーション図 においても同じ概念が用いられており、これらはＭＳＣを僅かに変形した型であると考えられる。
しかし、このようなＭＳＣはただデータ伝送を記述するという点において、データ伝送又は構成要素自体内での動作を含む全体のＤＥＳを制御する制御フローを記述できないという欠点がある。
「Ｃｕｌｔ３Ｄ」では、ＭＳＣとは異なりＤＥＳの動作を記述する。しかし、「Ｃｕｌｔ３Ｄ」では、非状態システムについてのみ、動作を記述することができ、したがって動作に依存する状態を記述することはできない。すなわち、「Ｃｕｌｔ３Ｄ」は、状態変化を無視し、Ｏｋ＝ｆ（ｉｊ）による入力と出力の関係のみを記述するので、ＤＥＳの動的な動作を記述することができないという弱点がある。
本発明の理解を助ける参考文献は以下の通りである。
１）Ｄａｖｉｄ Ｈａｒｅｌ、「Ｓｔａｔｅｃｈａｒｔｓ， ａ ｖｉｓｕａｌ ａｐｐｒｏａｃｈ ｔｏ ｃｏｍｐｌｅｘ ｓｙｓｔｅｍｓ」、Ｓｃｉｅｎｃｅ ｏｆ Ｃｏｍｐｕｔｅｒ Ｐｒｏｇｒａｍｍｉｎｇ，１９８７．
２）Ｄａｖｉｄ Ｈａｒｅｌ、「Ｏｎ Ｖｉｓｕａｌ Ｆｏｒｍａｌｉｓｍ」、Ｃｏｍｍｕｎｉｃａｔｉｏｎ ｏｆ ｔｈｅ ＡＣＭ， ｐｐ ５１４−５３０， Ｍａｙ １９８８．
３）Ｄａｖｉｄ Ｈａｒｅｌ、「ＳＴＡＴＥＭＡＴＥ： Ａ Ｗｏｒｋｉｎｇ Ｅｎｖｉｒｏｎｍｅｎｔ ｆｏｒ Ｄｅｖｅｌｏｐｍｅｎｔ ｏｆ Ｃｏｍｐｌｅｘ Ｒｅａｃｔｉｖｅ Ｓｙｓｔｅｍ」、ＩＥＥＥ Ｔｒａｎｓａｃｔｉｏｎ ｏｎ Ｓｏｆｔｗａｒｅ Ｅｎｇｉｎｅｅｒｉｎｇ， ｐｐ ４０３−４１４， Ａｐｒｉｌ １９９７．
４）Ｄ．Ｃｏｌｅｍａｎ， Ｆ．Ｈａｙｅｓ ａｎｄ Ｓ．Ｂｅａｒ、「Ｉｎｔｒｏｄｕｃｉｎｇ ｏｂｊｅｃｔｃｈａｒｔｓ ｏｒ ｈｏｗ ｔｏ ｕｓｅ ｓｔａｔｅｃｈａｒｔｓ ｉｎ ｏｂｊｅｃｔ−ｏｒｉｅｎｔｅｄ ｄｅｓｉｇｎ」、ＩＥＥＥ Ｔｒａｎｓａｃｔｉｏｎｓ ｏｎ ｓｏｆｔｗａｒｅ ｅｎｇｉｎｅｅｒｉｎｇ， ｖｏｌ．１８，ｎｏ．１， ｐｐ．９−１８， Ｊａｎｕａｒｙ １９９２．
５）Ｄ．Ｂｕｄｇｅｎ、「Ｓｏｆｔｗａｒｅ Ｄｅｓｉｇｎ」、Ａｄｄｉｓｏｎ Ｗｅｓｌｅｙ，ｐｐ １２３−１３５， １９９４．
６） Ａｎｔｔｉ Ａｕｅｒ，「Ｓｔａｔｅ Ｔｅｓｔｉｎｇ ｏｆ Ｅｍｂｅｄｄｅｄ Ｓｏｆｔｗａｒｅ， Ｕｎｉｖｅｒｓｉｔｙ ｏｆ Ｏｕｌｕ， Ｄｅｐａｒｔｍｅｎｔ ｏｆ Ｉｎｆｏｒｍａｔｉｏｎ Ｐｒｏｃｅｓｓｉｎｇ Ｓｃｉｅｎｃｅ ａｎｄ Ｉｎｆｏｔｅｃｈ Ｏｕｌｕ， Ｒｅｓｅａｒｃｈ ｐａｐｅｒ ｓｅｒｉｅｓ Ａ２Ｔ， Ｍａｒｃｈ １９９７．
７） Ｐ．Ｒａｍａｄｇｅ ａｎｄ Ｗ．Ｍ．Ｗｏｎｈａｍ、「Ｔｈｅ Ｃｏｎｔｒｏｌ ｏｆ Ｄｉｓｃｒｅｔｅ Ｅｖｅｎｔ Ｓｙｓｔｅｍｓ」、Ｐｒｏｃｅｅｄｉｎｇｓ ｏｆ ｔｈｅ ＩＥＥＥ， Ｖｏｌ ７７， Ｎｏ．１， １９８９．
８） Ｑｕａｔｒａｎｉ、Ｔｅｒｒｙ．、「Ｖｉｓｕａｌ Ｍｏｄｅｌｉｎｇ ｗｉｔｈ Ｒａｔｉｏｎａｌ Ｒｏｓｅ ａｎｄ ＵＭＬ」、Ａｄｄｉｓｏｎ Ｗｅｓｌｅｙ，１９９８．
９） Ｇｏｍａａ、Ｈａｓｓａｎ．、「Ｓｏｆｔｗａｒｅ Ｄｅｓｉｇｎ Ｍｅｔｈｏｄｓ ｆｏｒ Ｃｏｎｃｕｒｒｅｎｔ ａｎｄ Ｒｅａｌ−Ｔｉｍｅ Ｓｙｓｔｅｍｓ」、Ａｄｄｉｓｏｎ Ｗｅｓｌｅｙ、１９９３．
１０） ＩＴＵ（Ｉｎｔｅｒｎａｔｉｏｎａｌ Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ Ｕｎｉｏｎ）、「ＩＴＵ−Ｔ Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ Ｚ．１２０ − Ｍｅｓｓａｇｅ Ｓｅｑｕｅｎｃｅ Ｃｈａｒｔ」、ＩＴＵ、Ｎｏｖｅｍｂｅｒ １９９９．
（発明の開示）
したがって本発明は、イベントフローチャート（ＥＦＣ）を用いて、離散イベントシステム（ＤＥＳ）をモデリングする方法であって、ＤＥＳにおける状態の概念なしにイベントフローを記述するだけで容易に徹底してＤＥＳを記述することができる方法、及び前記方法を実行するためのプログラムを記録したコンピュータ読み取り可能な記録媒体を提供することを目的としている。
本発明は、本発明に係る前記方法によるＥＦＣモデリングされたＤＥＳを制御するシステムを提供することを別の目的としている。
本発明の属する技術分野における当業者は、図面、発明の詳細な説明及び特許請求の範囲から本発明の別の目的及び利点を容易に認識することができる。
本発明の一態様によれば、離散イベントシステムをモデリングする方法であって、使用者により定義された前記離散イベントシステムの要求及び明細を受信する第１ステップと、前記要求及び明細からイベント及びアクションを抽出して格納する第２ステップと、開始ノードを含むツリー型データ構造を生成する第３ステップと、格納された前記イベントを検索して、終端ノードで表現されたイベントで許容可能なイベントが存在するか否かを判断して、許容可能なイベントが存在しない場合、前記データ構造の生成を終了する第４ステップと、格納された前記イベントに許容可能なイベントが存在する場合、該許容可能なイベントを表現する、前記終端ノードの子ノードを生成する第５ステップと、前記データ構造の全ての終端ノードに対して、検索を行う前記第４ステップ及び子ノードを生成する第５ステップを繰り返す第６ステップとを含むことを特徴とする離散イベントシステムのモデリング方法が提供される。
本発明の一態様によれば、プロセッサを備えたモデリングシステムにおいて、ＤＥＳをモデリングする方法を実行するプログラムであって、該システムに、使用者により定義された前記離散イベントシステムの要求及び明細を受信する第１機能と、前記要求及び明細からイベント及びアクションを抽出して格納する第２機能と、開始ノードを含むツリー型データ構造を生成する第３機能と、前記格納されたイベントを検索して終端ノードで表現されたイベントで許容可能なイベントが存在するか否かを判断し、許容可能なイベントが存在しない場合、前記データ構造の生成を終了する第４機能と、格納された前記イベントに許容可能なイベントが存在する場合、該許容可能なイベントを表現する、前記終端ノードの子ノードを生成する第５機能と、前記データ構造の全ての終端ノードに対して、検索を行う前記第４機能及び子ノードを生成する第５機能を繰り返す第６機能とを実行させることを特徴とするプログラムを記録したコンピュータ読み取り可能な記録媒体が提供される。
本発明の一態様によれば、離散イベントシステムをモデリングするためのモデリングシステムにおいて、使用者が定義した前記離散イベントシステムの要求及び明細を受信して、前記モデリングシステムが読み取り可能なコードに変換させるエンコード手段と、前記エンコード手段により変換されたコードからイベント及びアクションデータを抽出するパーシング（Ｐａｒｓｉｎｇ）手段と前記抽出されたイベント及びアクションデータを格納する格納手段と、開始ノード及び終端ノードを含むツリー型データ構造を生成して格納するイベントノード生成手段と、前記格納手段に格納されたイベントデータを検索して、前記ツリー型データ構造において、終端ノードで表現されるイベントデータに許容可能なイベントデータが存在するか否かを判断して、許容可能なイベントが存在しない場合には、ツリー型データ構造生成を終了させ、許容可能なイベントデータが存在する場合には、前記許容可能なイベントデータを前記終端ノードの子ノードに生成させるため、前記イベントノード生成器を活性化させるイベント検索手段とを含むことを特徴とするモデリングシステムが提供される。
本発明の一態様によれば、上記モデリングシステムによりモデリングされたイベントフローチャートを実行するイベントフロー制御システムであって、入力されたイベントがイベントを表現するカレントノードから許容可能なイベントであるか否かを判断するイベントマッチング手段と、前記イベントマッチング手段から前記入力されたイベントがカレントノードから許容可能なイベントであると判断された場合、前記入力されたイベントが実行されるための条件が満足されるか否かを判断する条件検査手段と、前記条件検査手段から前記入力されたイベントが実行されるための条件が満足されると判断される場合、前記入力されたイベントに一対一にマッピングされている前記アクションを行って、前記モデリングされたシステムを駆動させるアクション遂行手段と、入力されたイベントが前記リターンフロー制御イベント、または無条件フロー制御イベントである場合、カレントノードをアップデートするノードアップデート手段とを含むことを特徴とするイベントフローチャート実行システムが提供される。
本発明によると、ＳＣが有する抽象性をなくしてモデリングエラーを最小化することはもちろん、設計者によるモデリングの差を最小化することができる。
本発明は、過去のＤＥＳモデリング方法が有する問題点を解決するため、ＥＦＣ基盤のモデリング方法と実行方法とを含む。
ＥＦＣモデリング過程では、モデリングの効率を高めるため、インタラプトイベント、リターンフロー、及び無条件フローを追加的に定義する。
インタラプトイベントは、直前に発生したイベントを記憶するのに用いられ、リターンフローに会うと記憶されたイベントへのフローを強制する。これはシステムが以前のイベントフローを復元して本来の作業を再開するのに有用である。
無条件フローは、イベントフロー制御の規則を離脱して、例外的にイベントフローを強制することをいう。これは、同じ形態のイベントフローを繰りす時、重複を避け、かつチャートを単純化させるのに有用に用いられる。
本発明によって生成されたＥＦＣは、イベントフロー制御エンジンにより実行され、これは４ステップのモジュールから構成される。
イベントフロー制御の４ステップは、イベントマッチング手段、条件検査手段、アクション実行手段、及びＩＨＢＥアップデート手段を含んで構成される。イベントマッチング手段は、実際発生したイベントが許容可能なイベントの集合に属しているか否かを検索する機能を行い、条件検査手段は、マッチングが成功したイベントへのフローが可能であるか否かを検査する機能を行う。条件検査の結果が可能であると、アクション実行手段は、システムのアクションを行い、ＩＨＢＥアップデート手段は、次のイベントフローに対するＩＨＢＥ更新を行う。
（発明を実施するための最良の形態）
本発明の上述した又は別の目的及び特徴は、添付した図面と関連する好ましい実施の形態についての以下の詳細な説明により一層明らかになる。まず、各図面の構成要素に参照符号を付ける際に、異なる図面上に示されていても、同じ構成要素には可能な限り同じ番号を付すように留意した。また、関連した公知技術における具体的な記載により本発明の要旨が不明瞭になると判断された場合、その記載を省略した。以下、添付した図面を参照しながら本発明に係る好ましい実施の形態を詳細に説明する。
ＥＦＣは、ＤＥＳにおける許容可能なイベントの発生を記述したものであって、ＳＣが抽象的状態を記述し、ＥＦＣは具体的イベントを記述するという点でＳＣとは相異するが、それらがシステムの動的動作を記述するという点で、同じモデリングである。
ＳＣの状態転移過程は、ＥＦＣにも適用される。ＥＦＣでは、「状態転移」という用語に代えて、「イベントフロー」という用語が、状態という概念を隠すことによってＥＦＣの作成を容易にする目的で定義される。同じ目的で、ＥＦＣでは、ＳＣのものと類似の概念を有するが異なる用語が定義される。
以下の表１は、ＥＦＣの用語と対応するＳＣの用語を示す。
【表１】
2004502234.tif 000102
表１に示すように、ＥＦＣにおいて二つのイベントの間に直接リンクが存在する場合、すなわち、二つのイベントがツリー構造で親−子の関係にある場合、ルートに近い親イベントは、子イベントに対する直先行イベント（ｉｍｍｅｄｉａｔｅｌｙ ｐｒｅｃｅｄｉｎｇ ｅｖｅｎｔ、ＩＰＥ）と呼ばれ、ルートから遠い子イベントは、親イベントに対する直後行イベント（ｉｍｍｅｄｉａｔｅｌｙ ｓｕｃｃｅｅｄｉｎｇ ｅｖｅｎｔ、ＩＳＥ）と呼ばれる。
直先行イベント（ＩＰＥ）及び直後行イベント（ＩＳＥ）は、それぞれ直上位状態及び直下位状態と類似している。先行イベント及び後行イベントは、それぞれ上位状態及び下位状態と同様に定義される。直前発生イベント（ｉｍｍｅｄｉａｔｅ ｈａｐｐｅｎｅｄ−ｂｅｆｏｒｅ ｅｖｅｎｔ、ＩＨＢＥ）は、最近起こったイベントであり、ＳＣのカレント状態と類似している。
ＩＨＢＥの転移が許容された許容可能イベントは、転移可能状態と類似している。状態転移に類似したイベントフローとは、イベントの発生と状態転移の遂行を意味する。自己イベントフローは、自己転移と類似しており、禁止されたイベントフローを示す非活性イベントリストは、転移が禁止された転移不能状態集合と類似している。
イベントフローとは、カレント状態で発生した許容可能なイベントの認知、及び該認知による状態転移を意味する。イベントフローの制御とは、イベントフローを定義することであり、これは本質的に状態転移メカニズムと同じである。
本発明に係るＥＦＣは、ＳＣと同等な変形した表現方式である。イベントだけでモデリングが可能な理由は、本質的にそのイベントが、状態転移を決めることができ、状態を置き換えることができる固有の要素であるからである。図２に示されたＳｘ＝ｇ（ｉｊ、Ｓｌ）は回帰式であって、状態はイベントにより決められることを示す。本発明によれば、ＳＣをＥＦＣに変換する方法、及びＥＦＣをＳＣに変換する方法が提供される。
図１０Ａ〜図１０Ｄは、本発明に係る状態チャートからイベントフローチャートへの変換過程を示す。
変換規則Ｉ（ＳＣからＥＦＣへの変換）
ステップ１）ＳＣをツリー形態（状態ツリー）で示す。下位状態の親ノードのように下位状態にリンクした上位状態で、ツリー形態を構成する。
ステップ２）上位状態を基準状態として作成する。
ステップ３）転移を発生させるイベントを端に表示する。
ステップ４）自己転移不能な状態を表示する。
ステップ５）各状態が転移を許容されていない兄弟状態を表示する。
ステップ６）状態をイベントに置き換える。
変換規則ＩＩ（ＥＦＣからＳＣへの変換）
ステップａ）イベントを状態に置き換える。
ステップｂ）上位状態が下位状態を含む包含関係を有するＳＣ図形式によってツリー形態を示す。
ステップｃ）重複された基準状態を除去する。
ステップｄ）転移関係を表示する。
ステップ２）において、上位状態を基準状態に置き換えることは、上位状態の抽象的な特性をなくすためである。ＥＦＣでは、抽象的な上位状態を許容せず具体化された基準状態に置き換える。
ステップ４）とステップ５）とは、状態ツリーが有する表現の制約を克服するための過程である。状態ツリーは、単に「親／子」と言われる階層関係のみを示し、自己転移と兄弟状態間の転移が明確に表現されない。
状態ツリーにおいて、特別な表示がない限り、基本的に全ての状態で自己転移が可能であり、任意の兄弟状態間の転移が可能である。
したがって、図１０Ｄの「Ｐａｕｓｅｄ」状態９０３のように、自己転移が不可能であることを示すか、「Ｓｔｏｐｐｅｄ」状態１００１のように「Ｐａｕｓｅｄ」状態９０３に転移不可能に転移不能状態リストを生成する。
ステップｃ）で重複される基準状態を除去するとは、上位状態に位置した基準状態を除去し、抽象化された上位状態に表現することをいう。
図１０Ｄは、ＳＣから最終的に誘導されたＥＦＣであって、ここで用いられる用語は、前記表１に示すように、ＳＣの用語と一対一の対応関係を有する。
図１１は、本発明によってシステム要求及び明細から直接イベントフローチャートを生成する過程を示すフロチャートである。
本発明に係るＥＦＣの最も重要な長所は、システムの要求明細から抽象的な概念の状態を抽出せずＥＦＣが直接生成でき、従来のシステム記述と全く同一にシステムを記述できるという点である。
ＥＦＣは、基本的に順次的な先行関係によって生成される。システムが作動し始めると、自動的に帰属される初期状態から、許容可能なイベントを順次的にリンクしてツリー構造のＥＦＣを生成する。この場合、任意にリンクされた二つのイベントは先行関係を形成し、初期状態に近いイベント、すなわちＥＦＣのツリー構造において、親イベントが先行イベント、先行イベントの子イベントは、後行イベントという。許容可能なイベントとその先行関係は、要求明細から容易に抽出されるので、ＥＦＣのツリー構造は容易に生成できる。
本発明にかかるＥＦＣのシステムモデリング方法は、上述したＳＣのシステムモデリングと完璧に相互変換可能であるという点から従来のシステムモデリング方法と全く同一にシステム記述が可能であるということが分かる。
図１１に示すように、設計しようとするシステムの要求及び明細はステップＳ１１０１において、本発明に係るＥＦＣＥに入力され、ステップＳ１１０３において、入力された要求及び明細からイベント及びアクションが抽出される。また、抽出された全てのイベント及びアクションは、各々一対一にマッチングされる。
イベント及びアクションを抽出した後、ステップＳ１１０５において、ＥＦＣのツリー構造を生成するため開始ノードを生成する。したがって、ＥＦＣツリー構造の頂点では、いかなるイベントも定義されない。
次いで、開始ノードを終端ノードと認識して、該終端ノードから許容可能なイベントが存在しているか否かを、ステップＳ１１０３で抽出されたイベントで判断する（ステップＳ１１０７）。該判断の結果、許容可能なイベントが存在しない場合には、該ＥＦＣツリー構造が全て生成されたものであるため、ＥＦＣ生成プロセスを終了する。
ステップＳ１１０７での判断の結果、終端ノードから許容可能なイベントが存在する場合、ステップＳ１１０９に進んで、許容可能なイベントを該終端ノードの子ノードとしてツリー構造を生成する。
次いで、前記生成された子ノードが後述するインタラプトイベント、リターンフロー制御イベント及び無条件フロー制御イベントであるか否かを判断して、インタラプトイベント、リターンフロー制御イベント及び無条件フロー制御イベントの何れか一つである場合、該子ノードがインタラプトイベント／リターンフロー制御イベント／無条件フロー制御イベントであるという情報を格納する（ステップＳ１１１１）。
次いで、前記生成された子ノードを終端ノードとして前記ステップＳ１１０７〜Ｓ１１１１を繰り返し実行し、生成されるＥＦＣのツリー構造に存在する全ての終端ノードに対して行う。
ステップＳ１１０３は、前記入力されたユーザ定義のシステム要求及び明細を、本発明にかかるＥＦＣ生成システムが認識できるコードに変換し、イベント及びアクションを抽出するインコーダー及びパーサにより実行される。抽出されたイベント及びこれに一対一に対応するアクションは、データ格納手段に格納される。
また、開始ノードを含むＥＦＣツリー構造のノードを生成し、後述するイベント検索器により許容可能なイベントを終端ノードに生成するプロセス（ステップＳ１１０５及びステップＳ１１０９）は、イベントノード生成器により行われる。
ステップＳ１１０７における各終端ノードイベント毎に許容可能なイベントが存在しているか否かの判断は、イベント検索器により行われる。
最後にステップＳ１１１１における、各終端イベントがインタラプトイベント、リターンフロー制御イベント及び無条件フロー制御イベントの何れか一つであるかを判断して、該当イベントにインタラプトプラグ、リターンフロー制御プラグ、又は無条件フロー制御プラグを生成するプロセスは、フラグ生成器により行われる。
図１２Ａ〜図１２Ｄは、図７の要求及び明細から図１１のＥＦＣツリー構造を生成する方法によって、ＣＤプレイヤーシステムをイベントフローチャートにモデリングする過程を示す図面である。
要求明細からＥＦＣを作成する漸進的な過程は、次の通りである。
（１）ＩＨＢＥ以後に許容するイベントをＩＨＢＥの後行イベントに生成する。但し、初期にはＩＨＢＥが定義されないので、最初に許容するイベントを開始ノードにリンクする。また、後行イベントがイベントフローの可能な位置に既に記述されていると、これを省略する。
（２）各後行イベントの自己フローが可能か否かを決定し、該後行イベントから転移が許容されない非活性イベントリストを作成する。
（３）各後行イベントをＩＨＢＥとして前記ステップ（１）、（２）及び（３）を繰り返す。
「一時停止」機能を追加したＣＤプレイヤーの要求明細からＥＦＣを作成する。
新しい要求明細は、図７と同様である。
（ａ）初期状態で許容するイベントをリンクする。電源スイッチを付けるか消すイベントである｛ｉ１｝５０３、または電源を消す｛ｉ４｝５０１のみが許容されるので、これを開始ノードにリンクする（図１２Ａ参照）。
（ｂ） ｛ｉ４｝５０１の後行イベントを記述する。再び電源を付けるか消すイベントである｛ｉ１｝５０３と｛ｉ４｝５０１が許容可能であるが、既に各々兄弟イベントと上位イベントに記述されているので、リンクを省略する（図１２Ｂ参照）。
（ｃ） ｛ｉ１｝５０３の後行イベントを記述する。｛ｉ１｝５０３及び｛ｉ４｝５０１は、（ｂ）の有する理由と同じ理由で省略される。これに対し、音楽を再生する｛ｉ２｝５０５、再生を停止する｛ｉ３｝１００１、再生を一時停止する｛ｉ５｝９０３は、初めて記述されるイベントであるので、後行イベントとしてリンクされる（図１２Ｂ参照）。
（ｄ）一時停止中に｛ｉ５｝９０３の再発生は、再生を起こさなければならないので、自己フローを不可能にする（図１２Ｃ参照）。
（ｅ）停止中に｛ｉ５｝９０３の発生は意味がないので、｛ｉ３｝１００１の非活性イベントリストに｛ｉ５｝を含める。以上、処理するイベントがないのでチャート作成を終了する（図１２Ｄ参照）。
以上のように、要求明細からＥＦＣツリーを生成することは、状態概念を利用する従来の方法より具体化された作業であって、容易く作成できる。
これは、抽象的な概念の状態を確認する過程が隠され、具体的な現象であるイベントのみを記述するためである。したがって、状態という概念を熟知しない非専門家も容易にモデリングでき、設計者によるモデリング結果の差が大きくないという長所が得られる。
図１５は、許容可能なイベントを示す例示図である。ＥＦＣのイベントフローは、ＳＣの状態転移と同一なメカニズムを有する。ＳＣの場合、カレント状態において転移可能な状態集合は、自分の直下位状態、自分の兄弟状態、上位状態の兄弟状態である。図９Ｃの「Ｐａｕｓｅｄ」状態９０３において転移可能な状態を検討する。「Ｐａｕｓｅｄ」状態９０３は、直下位状態を有しないので、自分の兄弟状態である「Ｓｔｏｐｐｅｄ」状態５０３、「Ｐｌａｙｉｎｇ」状態５０５、及び上位状態の「Ｐｏｗｅｒ−ｏｎ」状態６０１の兄弟状態である「Ｐｏｗｅｒ Ｏｆｆ」状態５０１への転移が可能である。
注目すべき点は、ＳＣで上位状態の兄弟状態への転移が表現されないが、そういう転移が可能であるという点である。カレント状態は基本的に上位状態に属するため、上位状態の兄弟状態への転移が可能でなければならない。これによって、「Ｐａｕｓｅｄ」状態９０３が「Ｐｏｗｅｒ−ｏｎ」状態６０１を示すこともあるため、「Ｐｏｗｅｒ−ｏｎ」状態６０１から「Ｐｏｗｅｒ Ｏｆｆ」状態５０１への転移が「Ｐａｕｓｅｄ」状態９０３でも適用される。したがって、「Ｐａｕｓｅｄ」状態９０３の転移可能状態の集合は、［「Ｓｔｏｐｐｅｄ」状態５０３、「Ｐｌａｙｉｎｇ」状態５０５、「Ｐｏｗｅｒ Ｏｆｆ」状態５０１］である。
ＥＦＣにおいても、同じ方式によってイベントフローを定義する。許容可能なイベントには、直後行イベント、兄弟イベント、先行イベントの兄弟イベントである。イベントフローは、基本的に先行関係に従うが、ＳＣから導入した状態転移方式によって、階層的な形態のイベントフローが可能である。
図１５は、許容可能なイベントを示す例示図であって、｛ｉ６｝１５０１で許容可能なイベントフローを示している。フローが可能なイベントには、｛ｉ６｝１５０１の直後行イベントである［ｉ１６、ｉ１７］１５０７、兄弟イベントの［ｉ７］１５０３、上位イベントの兄弟イベントである［ｉ３、ｉ２、ｉ５］１５０９及び［ｉ４、ｉ１］１５１１がある。｛ｉ６｝１５０１は、自己フローが禁止されているため脱落され、｛ｉ９｝１５０５は｛ｉ６｝１５０１の兄弟イベントであるが、非活性イベントとされているため脱落されている。
図１６は、インタラプトイベント／リターンフロー制御イベントによるイベントフロー制御を示す例示図であり、図１７は、無条件フローによるイベントフロー制御を示す例示図である。
本発明に係るＥＦＣ生成方法では、拡張された特性を追加してＥＦＣのモデリング性能を高めることができる。第一番目は、インタラプトイベント及びリターンフローである。後述するＥＦＣＥは、全域的なスタックを有し、非同期イベントが発生した時、カレントのノード（ＩＨＢＥ）をプッシュする。
逆に、リターンフロー制御イベントに会うと、スタックから最近プッシュされたノードをポップして得られた状態で分岐する。このため、リターンフロー制御イベントは、後行イベントを有することができない。
インタラプトイベントは、本来の状態を復元するために必要な概念である。
図１６は、インタラプトイベントとリターンフロー制御イベントによるシステム制御の例を示している。ＩＨＢＥが｛ｉ６｝１４０１である場合、インタラプトイベントの｛ｉ２０｝１６０１が発生すると、スタックには｛ｉ６｝１４０１がプッシュされて格納される。
ＩＨＢＥが｛ｉ２０｝１６０１である状況において、リターンフロー制御イベントである｛ｉ２１｝１６０３が発生すると、スタックに格納されていた｛ｉ６｝１４０１がポップされてＩＨＢＥが｛ｉ６｝１４０１に更新される。すなわち、リターンフロー制御イベントが発生すると、カレントスタックに格納されているイベントは発生せずＩＨＢＥをスタックに格納されているイベントノードに分岐するのである。リターンフローがリンクしたイベント（｛ｉ２１｝１６０３）も後行イベントを有することができない。
第２度目は、無条件フロー制御イベントである。これはイベントフローを強制する手段であって、無条件フローが定義されていると、ＩＨＢＥは無条件フローが定義されたイベントに分岐する。
無条件フローの導入は、イベントフローが繰り返し記述される時に、重複性をなくすためのものであって、ＥＦＣツリー構造の作成を単純化する。
図１７は、無条件フローイベントによるシステム制御の例を示している。
ＩＨＢＥが｛ｉ６｝１４０１である場合、無条件フロー制御イベントである｛ｉ７｝１４０３が発生すると、ＩＨＢＥは｛ｉ７｝１４０３ではなく｛ｉ７｝１４０３の無条件フローがリンクされた｛ｉ２｝１７０１に更新される。
ここで、インタラプトイベント、リターンフロー制御イベント及び無条件フロー制御イベントは、他のイベントと同様にアクションが一対一にマッピングされているが、他のイベントとは異なってインタラプトイベント、リターンフロー制御イベント及び無条件フロー制御イベントが発生する場合に、それぞれマッピングされているアクションが実行されるようにする、或いは実行されないように定義することができる。
図１３は、本発明に係るイベントフロー制御エンジンの機能ブロック図であり、図１４は、図１３のイベントフロー制御エンジンのイベントフロー制御フロチャートである。
図１３に示すように、前記の拡張された特性を含むＥＦＣによりイベントフロー制御エンジンＥＦＣＥがモデリングされたシステムを制御し、ＥＦＣＥは、イベントが発生する時毎に駆動される。
ＥＦＣＥは、制御部１３０１と、イベントマッチング部１３０３と、条件検査部１３０５と、アクション実行部１３０７及びＩＨＢＥアップデート部１３０９とから構成される。
制御部１３０１は、イベントの入力を待ち受け、イベントが入力された場合、イベントマッチング部１３０３及び条件検査部１３０５を駆動させて、イベントマッチングするか否か（ステップＳ１４０５）及び条件満足するか否か（ステップＳ１４０７）を判断する。イベントがマッチングされ、条件を満足する場合には、アクション実行部１３０７及びＩＨＢＥアップデート部１３０９が駆動されて該入力されたイベントに一対一にマッピングされているアクションを実行Ｓ１４０９し、ＩＨＢＥをアップデートＳ１４１３する。
イベントマッチング部１３０３は、許容可能なイベントが格納されているキューから入力イベントを検索してイベントマッチングするか否かを判断する。
条件検査部１３０５は、該入力イベントが実行されるための条件を検査し、条件を満足する場合には、該入力イベントを新しいＩＨＢＥに設定し、アクション実行部１３０７を駆動する。
アクション実行部１３０７は、条件を満足するイベントに一対一にマッピングされているアクションを行ってモデリングされたシステムを制御する。
ＩＨＢＥアップデート部１３０９は、現在入力されたイベントがリターンフロー制御イベント、または無条件フロー制御イベントであるか否かを判断して、リターンフロー制御イベント、または無条件フロー制御イベントの場合、条件検査部１３０５で新しく設定したＩＨＢＥを入力されたリターンフロー制御イベント、または無条件フロー制御イベントが定義した新しいＩＨＢＥにアップデートする。すなわち、入力されたイベントがリターンフロー制御イベントである場合には、スタックに格納されているイベントノードを、入力されたイベントが無条件フロー制御イベントである場合には、該イベントが指定するイベントノードにＩＨＢＥをアップデートする。
図１４に示すように、ステップＳ１４０１において、ＥＦＣＥは初期に待ち受け状態にあり、ステップＳ１４０３において、イベントの発生、すなわちＥＦＣＥへのイベント入力を認知して、イベントフローを制御する。ステップＳ１４０５において、イベントフロー制御は、まず発生したイベントが許容可能なイベントであるか否かを検査するイベントマッチングを開示する。すなわち、入力されたイベントがＥＦＣの現在ＩＨＢＥで許容可能なイベントの中から定義されたイベントであるか否かを検査する。この場合、自己フローが禁止されたＩＨＢＥと非活性イベントリストに含まれたイベントは、イベントマッチング検査から除外される。
入力されたイベントがマッチングされると、すなわち、入力されたイベントがＥＦＣの現在ＩＨＢＥで許容可能なイベントの中から定義されたイベントである場合、入力されたイベントの条件に対して検査する（ステップＳ１４０７）。
条件検査が満足されると、入力されたイベントノードを現在ＩＨＢＥに設定し、入力されたイベントと一対一にマッピングされているアクションを実行してモデリングされたシステムを制御する（ステップＳ１４０９）。アクション実行後には、ステップＳ１４０９で設定されたＩＨＢＥのアップデートが必要であるか否かを判断する（ステップＳ１４１１）。
すなわち、入力されたイベントがリターンフロー制御イベント、または無条件フロー制御イベントであるか否かを判断する。判断結果、ＩＨＢＥアップデートが必要な場合にはＩＨＢＥアップデートを行う（ステップＳ１４１３）。すなわち、入力されたイベントがリターンフロー制御イベントである場合には、カレントスタックに格納されているイベントノードをポップして新しいＩＨＢＥに設定し、入力されたイベントが無条件フロー制御イベントである場合には、無条件フロー制御イベントで定義している目的イベントノードを新しいＩＨＢＥに設定する。
図１８は、本発明の実施の形態に係るイベントフローチャートモデリング及びイベントフロー制御エンジンが実行されたシステムのインターフェースを示す図面であり、図１９Ａ〜図１９Ｉは、本発明の実施の形態に係るイベントフロー制御エンジンを実行した擬似プログラムコードを示す図面である。
図１８に示すように、ＭＰ３プレイヤーをモデリングした例示図として、インターフェース左側領域１８０５には、オブジェクト単位で構成されるＭＰ３プレイヤーシステムの外形が示されており、右側領域１８０７には、本発明によってモデリングしたＭＰ３プレイヤーシステムのＥＦＣのツリー構造が示されている。右上側領域（１８０１及び１８０３）には、具体的なイベント及びそれに一対一にマッピングされるアクションが表示される。モデリングされた結果は、本発明に係るＥＦＣＥにより直接的な制御が可能である。
上述したような本発明の方法は、プログラムで実行されコンピュータ読み取り可能な記録媒体（ＣＤ−ＲＯＭ、ＲＡＭ、ＲＯＭ、フロッピーディスク、ハードディスク、光磁気ディスクなど）に格納することができる。
上述したように、本発明に係るＥＦＣは、抽象的な状態に対する考慮なしに直観的で、かつ明確なモデリングを可能にする。これは、ＳＣが有するモデリングの困難さ及び設計者によるモデリングの偏差をなくすと共に、モデルの実行及び修正を容易にするという利点がある。したがって、状態システムに対する知識が不足した者であっても、容易に状態システムをモデリングすることができ、設計者によるモデリングの差を最小化することができるという効果がある。
また、本発明の実施の形態に係るＥＦＣのもう一つの長所は、チャート作図の容易さにある。ＳＣでは、状態間の階層関係はダイヤグラム形態に表現し、状態間の転移関係は、リンク線で表現される。それに対し、ＥＦＣは単純なツリー構造であって、階層関係及び転移関係が同時に表現される。したがって、チャートを非常に単純化することができるという効果が得られる。また、チャートを修正する場合にもＥＦＣが有利である。ＳＣでは、新しい下位状態を表現するために、上位状態のダイヤグラムのサイズを大きくし（連鎖的に上位状態のサイズが大きくならなければならない）、新しい下位状態を描かなければならない。しかしながら、ＥＦＣでは、ツリーに対し単に新しいノードを追加するという簡単な方法で修正をすることができる。
尚、本発明は、上記の本実施の形態に限られるものではない。本発明の趣旨から逸脱しない範囲内で多様に変更して実施することが可能である。




【国際調査報告】
2004502234.tif 000103