(57)【要約】【課題】  状態遷移表の作成を支援する技術を提供する。【解決手段】  本発明によれば、正常系の状態間の遷移を示す遷移情報を含む状態遷移情報を入力する入力手段と、前記正常系の状態に対応する異常系の状態と、該正常系の状態と該異常系の状態との間を遷移させる追加イベントを示す情報を生成する第１生成手段と、前記正常系の状態と、前記第１生成手段で生成された前記異常系の状態と、前記追加イベントとに基づいて、前記正常系の状態と前記異常系の状態の状態間の遷移情報を生成する第２生成手段と、前記第２生成手段で生成された前記遷移情報を前記状態遷移情報に追加する追加手段とを備えることを特徴とする情報処理装置が提供される。【選択図】  図１
2006343866.tif 000002
【特許請求の範囲】
【請求項１】
正常系の状態間の遷移を示す遷移情報を含む状態遷移情報を入力する入力手段と、
前記正常系の状態に対応する異常系の状態と、該正常系の状態と該異常系の状態との間を遷移させる追加イベントを示す情報を生成する第１生成手段と、
前記正常系の状態と、前記第１生成手段で生成された前記異常系の状態と、前記追加イベントとに基づいて、前記正常系の状態と前記異常系の状態の状態間の遷移情報を生成する第２生成手段と、
前記第２生成手段で生成された前記遷移情報を前記状態遷移情報に追加する追加手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記入力手段で入力される前記状態遷移情報は表形式データであり、正常系の状態とイベントによって特定されるセルに状態の遷移先を示す情報が記述されており、
前記追加手段は、前記第１生成手段で生成された前記異常系の状態と前記追加イベントとを前記表形式データに追加し、この追加によって新たに生成されたセルに遷移先を示す情報を記述することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１生成手段で生成される前記追加イベントは、正常系の状態から異常系の状態に遷移する異常遷移イベントと、異常系の状態から正常系の状態に復帰する正常復帰イベントとを含み、
前記追加手段は、前記正常系の状態と前記異常遷移イベントで特定されるセルに前記異常系の状態への遷移を示す情報を記述し、前記異常系の状態と前記正常復帰イベントで特定されるセルに前記正常系の状態への復帰を記述することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記正常系の状態から対応する前記異常系の状態に遷移する際に実行する異常発生関数と、前記異常系の状態から対応する前記正常系の状態に復帰する際に実行する異常解除関数と、を生成する関数生成手段を更に備え、
前記追加手段は、更に、前記正常系の状態と前記異常遷移イベントで特定されるセルに前記異常発生関数を呼び出す情報を、前記異常系の状態と前記正常復帰イベントで特定されるセルに前記異常解除関数を呼び出す情報を、それぞれ記述することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第１生成手段は、デバッグ時において想定外のイベントが発生したときに遷移するデバッグ状態を示す情報を更に生成し、
前記第２生成手段は、前記正常系の状態と、前記異常系の状態と、前記追加イベントと、前記デバッグ状態とに基づいて、前記遷移情報を生成することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記入力手段は、更に、前記正常系の状態と前記異常系の状態との対応関係を定義した定義情報を入力し、
前記第１生成手段は、前記定義情報に基づいて前記異常系の状態と、前記追加イベントを示す情報を生成し、
前記第２生成手段は、前記正常系の状態と、前記異常系の状態と、前記追加イベントと、前記定義情報とに基づいて、前記正常系の状態と前記異常系の状態の状態間の遷移情報を生成することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記第１生成手段は、前記入力情報で入力された遷移情報に含まれる全ての正常系の状態に対応して、１つの異常系の状態を生成することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項８】
状態遷移情報を生成する情報処理装置による状態遷移情報生成方法であって、
正常系の状態間の遷移を示す遷移情報を含む状態遷移情報を入力する入力工程と、
前記正常系の状態に対応する異常系の状態と、該正常系の状態と該異常系の状態との間を遷移させる追加イベントを示す情報を生成する第１生成工程と、
前記正常系の状態と、前記第１生成工程で生成された前記異常系の状態と、前記追加イベントとに基づいて、前記正常系の状態と前記異常系の状態の状態間の遷移情報を生成する第２生成工程と、
前記第２生成工程で生成された前記遷移情報を前記状態遷移情報に追加する追加工程とを備えることを特徴とする状態遷移情報生成方法。
【請求項９】
請求項８に記載の状態遷移情報生成方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項１０】
請求項９に記載のコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はシステム設計を支援する技術に関し、特に、状態遷移を伴うシステムの設計を支援する技術に関する。
【背景技術】
【０００２】
従来より、ＭＤＡ（Ｍｏｄｅｌ  Ｄｒｉｖｅｎ  Ａｒｃｈｉｔｅｃｔｕｒｅ：モデル駆動型開発）という開発手法のアーキテクチャが注目されている。ＭＤＡは、プラットフォーム環境に依存しないアプリケーションの機能のモデルを記述し、ツール（以下、ＭＤＡツールと呼ぶ）にそのモデルを読み込ませ、モデルに基づいてコードを自動生成させる開発スタイルを実現するアーキテクチャである。
【０００３】
従来より、このような開発手法を実現する技術として、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｌｉｎｇ  Ｌａｎｇｕａｇｅ）等の標準的なモデリング言語等で記述されたアプリケーションのモデルを入力し、入力されたモデルに基づいてコードを生成するＭＤＡツールが知られている。
【０００４】
ＭＤＡツールは、モデルを比較的厳密に記述できることから、ＵＭＬクラス図や、状態遷移表（必ずしもＵＭＬとは限らない）によって記述されたモデルを入力として受け取るものが多い。このようなＭＤＡツールを用いてソフトウェア開発を行う場合、開発者はＵＭＬクラス図と状態遷移表の両方、又は、何れか一方を作成し、ＭＤＡツールに入力してソフトウェア開発を進めることになる。
【０００５】
ＭＤＡツールによる開発対象は、ソフトウェアに限られない。近年、ＬＳＩなどのハードウェア設計の１手法としてもＭＤＡによる設計が注目を集めている。
【０００６】
以上のように、ソフトウェア開発、及び、ハードウェア開発において、動作を記述したモデルを入力し、モデルに基づいてコードを生成するＭＤＡツールを用いた開発手法が適用されている。このような開発手法において、開発者は、モデルを詳細、且つ、網羅的に作成する必要がある。
【０００７】
ところで、状態遷移図を用いてプログラムを作成する技術として以下の特許文献１がある。
【特許文献１】特開平５−２００４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、状態遷移表により詳細かつ網羅的にモデルを記述するにあたり、以下の問題がある。
（１）制御系ソフト等のソフトウェアや、ＬＳＩ等のハードウェアの実用的なシステムを実際に状態遷移表で設計する場合、状態遷移表のサイズは膨大になりやすく、全てのセルについて人手で記述する作業は非常に手間がかかる。
（２）状態遷移表の中で、有意な状態遷移について記述したセルは全体の中で少数になることが多く、全てのセルについて記述しても作業量の割に得られる効果が小さいことが多い。
（３）大規模なシステムにおいては、状態遷移表を複数記述する必要があり、作業に手間がかかる。
【０００９】
本発明は上記問題に鑑みなされたものであり、状態遷移表の作成を支援する技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明によれば、
正常系の状態間の遷移を示す遷移情報を含む状態遷移情報を入力する入力手段と、
前記正常系の状態に対応する異常系の状態と、該正常系の状態と該異常系の状態との間を遷移させる追加イベントを示す情報を生成する第１生成手段と、
前記正常系の状態と、前記第１生成手段で生成された前記異常系の状態と、前記追加イベントとに基づいて、前記正常系の状態と前記異常系の状態の状態間の遷移情報を生成する第２生成手段と、
前記第２生成手段で生成された前記遷移情報を前記状態遷移情報に追加する追加手段とを備えることを特徴とする情報処理装置が提供される。
【発明の効果】
【００１１】
本発明によれば、状態遷移表の作成を支援する技術を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【００１３】
［情報処理装置のハードウェア構成］
本実施形態に対応する情報処理装置は、例えば、パーソナルコンピュータ（ＰＣ）やワークステーション（ＷＳ）、携帯情報端末（ＰＤＡ）等で実現される。
【００１４】
まず、本実施形態に対応する情報処理装置のハードウェア構成について、図１９を参照して説明する。図１９は、本実施形態に対応する情報処理装置のハードウェア構成のブロック図である。
【００１５】
図１９において、１９００はＣＰＵであり、後述するハードディスク装置（以下、ＨＤと呼ぶ）１９０５に格納されているアプリケーションプログラム、オペレーティングシステム（ＯＳ）や制御プログラム等を実行し、ＲＡＭ１９０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。
【００１６】
１９０１はＲＯＭであり、内部には基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。１９０２は各種データを一時記憶するためのＲＡＭであり、ＣＰＵ１９００の主メモリ、ワークエリア等として機能する。
【００１７】
１９０３は記録媒体へのアクセスを実現するための外部記憶ドライブであり、メディア（記録媒体）１９０４に記憶されたプログラム等を本コンピュータシステムにロードすることができる。尚、メディア１９０４は、例えば、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＰＣカード、ＤＶＤ、ＩＣメモリカード、ＭＯ、メモリスティック等、任意である。
【００１８】
１９０５は外部記憶装置であり、本実施形態では大容量メモリとして機能するＨＤを用いている。ＨＤ１９０５には、アプリケーションプログラム、ＯＳ、制御プログラム、関連プログラム等が格納される。
【００１９】
１９０６は指示入力装置であり、キーボードやポインティングデバイス（マウス等）、タッチパネル等がこれに相当する。指示入力装置１９０６を用いて、ユーザ（設計者）は、本実施形態に対応する情報処理装置に対して、装置を制御するコマンド等を入力指示する。
【００２０】
１９０７はディスプレイであり、指示入力装置１９０６から入力したコマンドや、それに対する情報処理装置の応答出力等を表示したりするものである。
【００２１】
１９０９はシステムバスであり、情報処理装置内のデータの流れを司るものである。１９０８はインターフェイス（以下、Ｉ／Ｆという）であり、このＩ／Ｆ１９０８を介して外部装置とのデータのやり取りを行う。
【００２２】
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
【００２３】
本実施形態では、メディア１９０４から本実施形態に係るプログラム及び関連データを直接ＲＡＭ１９０２にロードして実行させる例を示すが、これ以外にも、本実施形態に係るプログラムを動作させる度に、既にプログラムがインストールされているＨＤ１９０５からＲＡＭ１９０２にロードするようにしてもよい。また、本実施形態に係るプログラムをＲＯＭ１９０１に記録しておき、これをメモリマップの一部をなすように構成し、直接ＣＰＵ１９００で実行することも可能である。
【００２４】
［情報処理装置の機能構成］
次に、本実施形態に対応する情報処理装置の各機能について、図１を参照して説明する。図１は、本実施形態に対応する情報処理装置の機能ブロック図である。以下、述べる各機能及び構成は、それぞれハードウェアとして実現しても、ソフトウェアとして実現してもよい。
【００２５】
図１のように、本実施形態に対応する情報処理装置は、変換部１２０と設定部１１０とから構成される。ただし、本実施形態に対応する情報処理装置は、変換部１２０のみ備えている場合であっても、基本的な動作は可能である。
【００２６】
変換部１２０は、設計者により正常系の状態遷移について記述された正常系状態遷移表１２１を受け取り（１２４）、正常系、及び、異常系の状態遷移について記述された、正常・異常系網羅型状態遷移表１２３を生成・出力する（１２５）、異常系状態ジェネレータ１２２を備えている。異常系状態ジェネレータ１２２は、正常・異常系網羅型状態遷移表１２３を生成するに当たり、更に、状態遷移表の作成に関するパターンを定義した状態パターンをも入力し（１１７）、正常系状態遷移表１２１と、状態パターンとに基づいて、正常・異常系網羅型状態遷移表１２３を生成・出力することも可能である。
【００２７】
設定部１１０は、状態パターンを保持し、異常系ジェネレータ１２２に状態パターンを入力する処理を行う。本実施形態においては、設定部１１０は、複数の状態パターン１１２，１１３，１１４を保持する状態パターンＤＢ（Ｄａｔａ  Ｂａｓｅ：データベース）を備えている。設定部１１０は、設計者による指示入力に基づいて状態パターンを選択し、選択した状態パターンを異常系状態ジェネレータ１２２に入力する。
【００２８】
［正常系状態遷移表］
次に、正常系状態遷移表１２１について、図２を参照して説明する。図２は、正常系状態遷移表１２１を例示的に示した図である。
【００２９】
図２の正常系状態遷移表１２１においては、各列が状態（Ｓｔａｔｅ）を示し、各行がイベント（Ｅｖｅｎｔ）を示している。図２の記述に基づいて動作する状態マシンは、正常系として３つの状態、即ち、ｉｄｌｅ（待ち状態）２０１／ｐｒｅｐａｒｉｎｇ（準備中状態）２０２／ｒｕｎｎｉｎｇ（実行中）２０３を持ち、正常イベントとして準備（ｐｒｅｐａｒｅ）２０４、開始（ｓｔａｒｔ）２０５、終了（ｅｎｄ）２０６の３つのイベントを持っている。
【００３０】
各状態、及び、各イベントにはそれぞれ通し番号が割り振られており、それぞれを通し番号によって識別することができる。２０７は状態の通し番号であり、ｉｄｌｅ状態に０、ｐｒｅｐａｒｉｎｇ状態に１、ｒｕｎｎｉｎｇ状態に２がそれぞれ割り振られている。２０８は、イベントの通し番号であり、準備イベントに０、開始イベントに１、終了イベントに２０６がそれぞれ割り振られている。
【００３１】
正常系状態遷移表１２１のうち、状態遷移が定義されたセルは上下２段の記述領域から構成され、下段にイベント受信時の処理、上段に処理終了後に遷移する状態の通し番号が記載される。例えば、セル２０９の記述は、ｉｄｌｅ状態で準備イベントを受信すると、準備処理ｐｒｅｐａｒｅ（）を実行し実行が終わればｐｒｅｐａｒｉｎｇ状態（通し番号１）に遷移する旨を定義している。セル２１０の記述は、ｐｒｅｐａｒｉｎｇ状態で開始イベントを受信すると、開始処理ｓｔａｒｔ（）を実行し実行が終わればｒｕｎｎｉｎｇ状態（通し番号２）に遷移する旨を定義している。セル２１１の記述は、ｒｕｎｎｉｎｇ状態で終了イベントを受信すると、終了処理ｅｎｄ（）を実行し実行が終わればｉｄｌｅ状態（通し番号０）に遷移する旨を定義している。
【００３２】
一方、例えば、セル２１２のように、状態遷移が定義されていないセルは、その旨を斜線（／）で示しており、斜線が記入されたセルに該当するイベントが発生しても何も行わない。例えば、ｉｄｌｅ状態で開始（ｓｔａｒｔ）又は終了（ｅｎｄ）イベントを受けても無視する。ｐｒｅｐａｒｉｎｇ状態で準備や終了のイベントを受けても無視する。ｒｕｎｎｉｎｇ状態で準備や開始イベントを受けても無視する。
【００３３】
正常系状態遷移表１２１は、例えば、公知の表計算ソフトウェア等のツールを用いてユーザにより作成される。また、正常系状態遷移表１２１のデータ形式は、例えば、公知の表計算ソフトウェアが扱うデータ形式とする。
【００３４】
［異常状態生成処理１］
次に、正常系状態遷移表１２１を受け取り、正常・異常系網羅型状態遷移表１２３を出力する異常系状態ジェネレータ１２２の処理について、図３乃至５を参照して説明する。図３は、異常系状態ジェネレータ１２２が異常系状態を生成する処理の流れを示したフローチャートである。図４は、図３に示したフローチャートに従って、図２に例示した正常系状態遷移表１２１に対して異常系状態等を追加した結果を表した図である。図５は、図４の状態遷移表に対してセルの中身（ある状態であるイベントを受けたときに実行する操作とその操作後の状態遷移先）等を追加した状態遷移表である。図３のフローチャートに従って異常系状態ジェネレータ１２２が処理を行うことにより、図２に例示した正常系状態遷移表１２１は、図４を経て正常・異常系を網羅した正常・異常系網羅型状態遷移表１２３に近づいていく。
【００３５】
異常系状態ジェネレータ１２２は、ステップＳ３０１で処理を開始すると、ステップＳ３０２（Ｓ３０８）において、ステップＳ３０３〜ステップＳ３０７の処理を、受け取った（入力された）正常系状態遷移表１２１に定義された全ての正常状態それぞれについて実行する。
【００３６】
まず、ステップＳ３０３において、処理対象の正常状態について異常状態を状態欄に１つ生成する。例えば、ｉｄｌｅ状態に対してはｉｄｌｅ＿ｅｒｒ状態（アイドルエラー状態）を追加して生成する。図４において、４０２は、ｉｄｌｅ状態に対応して生成されたｉｄｌｅ＿ｅｒｒ状態を示している。図４のように、状態が追加される毎に通し番号は最初から新たに振り直されるものとする。また、新たに生成する状態名は、例えば、正常状態名に「＿ｅｒｒ」という文字列を追加する等の処理を行って定めるものとする。
【００３７】
次に、ステップＳ３０４において、ステップＳ３０３で生成された異常状態に正常状態から遷移するイベント（異常状態遷移イベント、異常発生イベント）と、異常状態が解除され正常状態へ復帰するイベント（異常状態解除イベント、異常解除イベント）と、をイベント欄に追加して生成する。例えば、ｉｄｌｅ＿ｅｒｒ状態に対応して、ｉｄｌｅ＿ｅｒｒ＿ｏｃｃｕｒ（ｉｄｌｅ状態における異常状態遷移イベント）とｉｄｌｅ＿ｅｒｒ＿ｒｅｌｅａｓｅ（ｉｄｌｅ＿ｅｒｒ状態における異常状態解除イベント）を追加して生成する。図４において、４０１は、ｉｄｌｅ＿ｅｒｒ状態に対応して追加された、ｉｄｌｅ＿ｅｒｒ＿ｏｃｃｕｒと、ｉｄｌｅ＿ｅｒｒ＿ｒｅｌｅａｓｅとを示している。図４のように、イベントが追加される毎に通し番号は最初から新たに振り直されるものとする。また、新たに生成するイベント名は、例えば、異常状態名に「＿ｏｃｃｕｒ」「＿ｒｅｌｅａｓｅ」という文字列を追加する等の処理を行って定めるものとする。
【００３８】
次に、ステップＳ３０５において、正常状態から異常状態へ遷移する際に実行する操作（異常発生操作）と、異常状態が解除され正常状態へ復帰する際に実行する操作（異常解除操作）と、を生成する。例えば、ｉｄｌｅ＿ｅｒｒ状態に対応して、ｉｄｌｅ＿ｅｒｒ＿ｏｃｃｕｒイベントの発生（異常発生）に伴って実行する関数ｉｄｌｅ＿ｅｒｒ（）と、ｉｄｌｅ＿ｅｒｒ＿ｒｅｌｅａｓｅイベントの発生（異常解除、正常復帰）に伴って実行する関数ｉｄｌｅ＿ｅｒｒ＿ｒｅｌｅａｓｅ（）とを生成する。関数名は、イベント名に対応して機械的に生成するものとする。また、関数の中身（操作の内容）は、予め定義された雛形を設定し、用途に応じて後に編集可能なようにする。
【００３９】
次に、ステップＳ３０６において、処理対象の正常状態において異常状態遷移イベントが発生したときの処理内容を記述するセルに対して、異常発生操作を起動し異常状態に遷移する旨を記述する。例えば、図５の５０１のように、ｉｄｌｅ状態において異常状態遷移イベントｉｄｌｅ＿ｅｒｒ＿ｏｃｃｕｒが発生した場合、異常発生操作ｉｄｌｅ＿ｅｒｒ（）;を実行しｉｄｌｅ＿ｅｒｒ状態（通し番号１）へ状態遷移する旨を、セルに記述する。
【００４０】
次に、ステップＳ３０７において、処理対象の正常状態に対応する異常状態において異常状態解除イベントが発生したときの処理内容を記述するセルに対して、異常解除操作を起動し正常状態に遷移する旨を記述する。例えば、図５の５０２のように、ｉｄｌｅ＿ｅｒｒ状態において異常状態解除イベントｉｄｌｅ＿ｅｒｒ＿ｒｅｌｅａｓｅが発生した場合、異常解除操作ｉｄｌｅ＿ｅｒｒ＿ｒｅｌｅａｓｅ（）;を実行しｉｄｌｅ状態（通し番号０）へ状態遷移する旨を、セルに記述する。
【００４１】
次に、ステップＳ３０８へ進み、まだ処理を行っていない正常状態が受け取った正常系状態遷移表１２１に存在するか否かを判定する。存在する場合はステップＳ３０３へ戻り、別の正常状態について同様の処理を繰り返す。例えば、ｐｒｅｐａｒｉｎｇ状態、ｒｕｎｎｉｎｇ状態についても同様の処理を行う。全ての正常状態について処理を完了した場合はステップＳ３０９へ進み、処理を終了する。
【００４２】
このように、図２に例示した正常系状態遷移表１２１について、図３のフローチャートに従った上記の処理を実行することにより、図５に示した状態遷移表を得ることができる。
【００４３】
そして、図５の処理が未定義（空欄）のセルについて、それぞれ処理未定義を示す記号「／」を記入することにより、図１３のような正常・異常系網羅型状態遷移表１２３を生成・出力することができる。
【００４４】
以上のように、異常系状態ジェネレータ１２２は、図３に示したフローチャートを実行することにより、図２に例示したような正常系状態遷移表１２１を入力して図１３に示すような正常・異常系網羅型状態遷移表１２３を生成・出力することができる。ユーザは、このような異常系状態ジェネレータ１２２を備えた変換部１２０を用いることで、正常系の状態遷移のみが記述された正常系状態遷移表を作成するだけで、異常系の状態遷移までもが記載された正常・異常系網羅型状態遷移表１２３を容易に生成することができる。
【００４５】
［異常状態生成処理２］
異常状態生成処理１によって生成された正常・異常系網羅型状態遷移表１２３には、処理未定義を示す記号「／」が含まれる。しかしながら、現実のシステムにおいては、処理が定義されていないセルが存在しない方がより望ましい。
【００４６】
このため、例えば、図１３に例示した正常・異常系網羅型状態遷移表１２３の代わりに、図１４に例示した正常・異常系網羅型状態遷移表１２３を生成することが考えられる。図１４の状態遷移表においては、未定義のセルに対応するイベントが発生したときに遷移する状態としてデバッグ（Ｄｅｂｕｇ）状態を新たに追加し、図１３において未定義のセルそれぞれについて、エラー発生の操作ｅｒｒｏｒ（）を実行してからＤｅｂｕｇ状態（通し番号６）へ進む旨が記述されている。また、Ｄｅｂｕｇ状態の各セルには、ｅｒｒｏｒ（）を実行し、状態遷移しない旨が記述されている。このような状態遷移表にすることで、期待されていないイベントが発生した場合は、ｅｒｒｏｒ（）を実行し、Ｄｅｂｕｇ状態に遷移するようにすることができる。
【００４７】
或いは、ある状態においてデバッグ中の場合のみ、その様な期待外のイベントが発生した場合に処理を停止するという設計も考えられる。つまり、ある状態においてデバッグ中の場合のみ期待外のイベントを受けた場合にＤｅｂｕｇ状態という特殊な状態に遷移させるという状態遷移表が考えられる。図１５は、このような状態遷移表の一例を示した図である。
【００４８】
図１５の状態遷移表は、図１４の状態遷移表と同様に、未定義のセルに対応するイベントが発生したときに遷移する状態としてデバッグ（Ｄｅｂｕｇ）状態を新たに追加している。そして、図１３の状態遷移表の、処理が未定義の（「／」が記入された）セルそれぞれについて、１５０２で示した内容が記入されている。１５０２で示した内容は、「予想外のイベントを受けたことを示す操作ｔｒａｐ（）を起動し、（別途指定された）デバッグフラグがｔｒｕｅならＤｅｂｕｇ状態（通し番号６）に遷移する。それ以外は状態遷移を起こさない。」ということを意味する。従って、デバッグフラグがｔｒｕｅに設定されたデバッグ中においてのみ、期待外のイベント発生時にＤｅｂｕｇ状態へ遷移し、デバッグ中ではない場合は、状態遷移を行わないことになる。
【００４９】
このような正常・異常系網羅型状態遷移表１２３を生成する手順について、図１６を参照して説明する。図１６は、期待外のイベントが発生したときに、各状態においてデバッグ中の場合にＤｅｂｕｇ状態へ遷移する正常・異常系網羅型状態遷移表１２３を生成・出力する処理の流れを示したフローチャートである。尚、図１６のフローチャートの示した処理は、図３のフローチャートを実行した後に実行する。そこで、ここでは、図２に例示した正常系状態遷移表１２１に対して、図３のフローチャートの処理を行って得られた図５に対して処理を行うものとして説明を行う。
【００５０】
まず、ステップＳ３１１において、図３のフローチャートの手順の結果得られた状態遷移表において、Ｄｅｂｕｇ状態を生成する。これは、図１５において１５０１のＤｅｂｕｇ状態を追加することに相当する。また、生成したＤｅｂｕｇ状態に通し番号を割り振る。図１５の例では、通し番号は６である。
【００５１】
次に、ステップＳ３１２（Ｓ３１７）において、ステップＳ３１３〜ステップＳ３１５の処理を、Ｄｅｂｕｇ状態以外の全てのセルそれぞれについて実行する。
【００５２】
ステップＳ３１３においては、処理対象のセルについて、その内容が定義されているか否かを判定する。内容が定義されている場合（ステップＳ３１３でＹＥＳ）はステップＳ３１４へ進む、定義されていない場合（ステップＳ３１３でＮＯ）はステップＳ３１５へ進む。
【００５３】
ステップＳ３１４においては、既にセル内容が設定されているため、そのセルに対しては何も処理を行わない。そして、ステップＳ３１６へ進む。
【００５４】
ステップＳ３１５においては、セル内容が設定されておらず、「予想外のイベントを受けたことを示す操作ｔｒａｐ（）を起動し、（別途指定された）デバッグフラグがｔｒｕｅなら「Ｄｅｂｕｇ状態」に遷移する。それ以外は状態遷移を起こさない。」という内容を記述する。図１５において１５０２は、このような内容が記述されたセルの一例である。１５０２において、下段のｔｒａｐ（）は、このセルに対応するイベントが発生するとｔｒａｐ（）を実行することを意味する。そして、上段の「Ｄｅｂｕｇ＝＝ｔｒｕｅ」と「６」は、デバッグフラグがｔｒｕｅ、即ち、デバッグ中の場合、このｔｒａｐ（）を実行後、通し番号が６で示される状態、即ち、Ｄｅｂｕｇ状態へ遷移することを意味する。「ｅｌｓｅ」と「−」は、デバッグフラグがｔｒｕｅでない場合、即ち、デバッグ中ではない場合、どの状態にも遷移しないことを意味する。
【００５５】
「Ｄｅｂｕｇ状態」以外の全てのセルについてステップＳ３１３乃至Ｓ３１５の処理を実行する。処理が完了したら、ステップＳ３１７へ進む。
【００５６】
ステップＳ３１７においては、「Ｄｅｂｕｇ状態」の全てのセルに対し「デバッグ中に期待外のイベントを受けた旨を知らせる操作ｅｒｒｏｒ（）を起動し状態遷移は行わない」という内容を記述する。１５０３は、そのような内容を記述したセルの一例である。
【００５７】
以上のように、図３のフローチャートの処理を実行後、更に、図１６の処理を実行することで、各状態においてデバッグ中のみ期待外のイベントを受けた場合に「Ｄｅｂｕｇ状態」という特殊な状態に遷移させる正常・異常系網羅型状態遷移表１２３を自動生成することができる。ユーザは、このような異常系状態ジェネレータ１２２を備えた変換部１２０を用いることで、正常系の状態遷移のみが記述された正常系状態遷移表を作成するだけで、デバッグ時のみ期待外のイベントを受けた場合に「Ｄｅｂｕｇ状態」という特殊な状態に遷移させる正常・異常系網羅型状態遷移表１２３を容易に生成することができる。
【００５８】
尚、ステップＳ３１５の処理において、「ｅｒｒｏｒ（）を起動し、Ｄｅｂｕｇ状態に遷移」する旨を処理対象のセルに記述するようにすることで、異常系状態ジェネレータ１２２が図１４のような正常・異常系網羅型状態遷移表１２３を生成・出力するようにすることができる。
【００５９】
［異常状態生成処理３］
異常状態生成処理１，２によって生成された正常・異常系網羅型状態遷移表１２３においては、正常状態１つに対して異常状態１つが定義されていた。このような状態遷移表は、考えられ得る状態を網羅した十分なものと言える。
【００６０】
しかし、実際のシステムにおいては、リソース（資源）の制約条件のため、考えられ得る全ての状態を網羅することができない場合が考えられる。例えば、組込み装置のソフトウェアやハードウェアは限られた資源内でその機能を実現しなければならない場合も多い。ここで言う資源とは、ソフトウェアであればプログラムに許されたメモリ容量、ハードウェアであれば規定のゲート規模、等を指す。
【００６１】
例えば、このような要件を満たすためには、全てのイベント発生について同一の処理と状態遷移を行う複数の状態や、発生した場合、全ての状態において同一の処理と状態遷移が行われる複数のイベント等を、まとめて最適化することが考えられる。また、設計者は正常状態遷移を設計した時点でその状態遷移表の異常状態や異常イベントの広がりについて明らかな傾向を発見している場合が考えられるため、そのような知覚された傾向を最適化処理に反映させることが考えられる。
【００６２】
そこで、異常状態生成処理３においては、設計者は、異常系状態ジェネレータ１２２が正常系状態遷移表１２１に基づいて正常・異常系網羅型状態遷移表１２３を生成する際の方針を状態パターン１１２，１１３，１１４（以下、１１２で称する）として記述し、異常系状態ジェネレータ１２２は、異常状態を生成する場合に、状態パターン１１２を参照して、異常状態の生成方法を選択する処理を行う。
【００６３】
本実施形態においては、状態パターン１１２は、ＵＭＬの表記法に基づいて表記される。図６は、「全ての正常状態は必ず何らかの異常状態を持つ」という内容を含む状態パターンを例示的に示した図である。
【００６４】
図６において、正常状態６０３と、ＳＴＭ（Ｓｔａｔｅ  Ｔｒａｎｓｉｔｉｏｎ  Ｍａｔｒｉｘ）６０５と、を結ぶ線に添えて、正常状態６０３側にｎ、ＳＴＭ６０５側に１が記載されているのは、１つのＳＴＭ６０５に対して複数の正常状態６０３が対応することを示している。即ち、この状態遷移表には複数の正常状態６０３が存在することを意味する。
【００６５】
また、正常状態６０３と異常状態６０４とを結ぶ線に添えて、正常状態６０３側に１、異常状態６０４側に１が記載されているのは、正常状態６０３それぞれについて、対応する１つの異常状態６０４が存在することを意味する。同様に、正常状態６０３のそれぞれに対応して１つのエラー発生イベント６０１とエラー解除イベント６０２とが存在する。異常状態６０４から正常状態６０３に向けて引かれた矢印は、正常状態６０３におけるイベントとの関係において、異常状態６０４はこれを継承していることを示している。
【００６６】
図６に例示した状態パターンの内容は、異常状態生成処理１，２において暗黙に了解していたものであり、図６の状態パターンに基づく異常系状態ジェネレータ１２２の動作は、異常状態生成処理１，２と同様になる。
【００６７】
次に、図６とは異なる状態パターン１１２を入力した場合における、異常状態ジェネレータ１２２の動作の一例として、図７乃至９を参照して説明する。
【００６８】
図７は、状態パターン１１２の一例として、図６と異なる状態パターンを例示的に示した図である。図７の状態パターンは概略すれば正常状態６０３はｎ個（複数）あるものの、異常状態６０４は１個であるというものである。より詳細に述べれば１つのＳＴＭ６０５は複数の正常状態６０３を持ち、正常状態６０３はそれぞれ１つのエラー発生イベント（６０１）とエラー解除イベント（６０２）を持ち、状態とイベントの関係については異常状態６０４も正常状態６０３を継承しているが、異常状態６０４の数は１つである。
【００６９】
図８は、図７に例示した状態パターン１１２を入力した場合における、異常系状態ジェネレータ１２２が正常系状態遷移表１２１に基づいて正常・異常系網羅型状態遷移表１２３を生成する処理の流れを示すフローチャートである。また、図９は、図８の処理を図２に例示した正常系状態遷移表１２１に適用した場合における異常系状態ジェネレータ１２２の出力結果である。
【００７０】
異常状態ジェネレータ１２２は、ステップＳ８００において処理を開始すると、まず、ステップＳ８０１において、１つのＳＴＭ６０５対して１つの異常状態６０４が関連づけられているため、異常状態６０４としてのｅｒｒｏｒ状態を状態遷移表に１つ追加する。この時、通し番号等を適宜修正する。
【００７１】
次に、ステップ８０２（Ｓ８０７）において、ステップＳ８０３〜Ｓ８０６の処理を、正常系状態遷移表１２１において指定された正常状態数だけ繰り返す。
【００７２】
まず、ステップＳ８０３において、処理対象の正常状態に対応した異常発生イベントと異常解除イベントを生成する。例えば、処理対象の正常状態がｉｄｌｅ状態の場合は、図９の９０１のように、ｉｄｌｅ＿ｅｒｒ＿ｏｃｃｕｒ（異常発生イベント）、ｉｄｌｅ＿ｅｒｒ＿ｒｅｌｅａｓｅ（異常解除イベント）を生成して追加する。この時、通し番号を適宜修正する。
【００７３】
次に、ステップＳ８０４において、正常状態から異常状態（ｅｒｒｏｒ状態）へ遷移する際に実行する操作（異常発生操作）と、異常状態が解除され正常状態へ復帰する際に実行する操作（異常解除操作）と、を生成する。例えば、ｉｄｌｅ状態に対応して、ｉｄｌｅ＿ｅｒｒ＿ｏｃｃｕｒイベントの発生（異常発生）に伴って実行する関数ｉｄｌｅ＿ｅｒｒ（）と、ｉｄｌｅ＿ｅｒｒ＿ｒｅｌｅａｓｅイベントの発生（異常解除、正常復帰）に伴って実行する関数ｉｄｌｅ＿ｅｒｒ＿ｒｅｌｅａｓｅ（）とを生成する。関数名は、イベント名に対応して機械的に生成するものとする。また、関数の中身（操作の内容）は、予め定義された雛形を設定し、用途に応じて後に編集可能なようにする。
【００７４】
次に、ステップＳ８０５において、処理対象の正常状態において異常状態遷移イベントが発生した場合に異常発生操作を起動し異常状態（ｅｒｒｏｒ状態）に遷移するセルを設定する。例えば、ｉｄｌｅ状態に対応して、９０２に例示したような記述を行う。
【００７５】
次に、ステップＳ８０６において、ｅｒｒｏｒ状態から処理対象の正常状態に復帰する旨をｅｒｒｏｒ状態の所定のセルに記述する。尚、本実施形態においては、異常発生イベントが発生したときの状態の識別子を状態変数に保持しておき、異常解除イベントが発生したときは、異常解除イベントの種類と状態変数の値に基づいて復帰する正常状態を決定するものとする。具体的には、状態変数に保持された識別子で識別される正常状態と、異常解除イベントに対応する正常状態とが一致する場合、その正常状態に復帰するような内容を記述する。例えば、処理対象の正常状態がｉｄｌｅ状態の場合、９０３のようなセルを作成する。ここで、上段の「ＯＲＧ」は、異常が発生した時の状態の識別子を保持する状態変数である。処理対象の正常状態がｐｒｅｐａｒｉｎｇ状態、ｒｕｎｎｉｎｇ状態の場合は、それぞれ９０４、９０５のようになる。
【００７６】
上記のような処理を全ての正常状態について繰り返し実行する。そして、ステップＳ８０８において処理を終了する。このような手順により図２から図９が得られる。
【００７７】
上記の処理後、更に、図１６の手順を実行することで、デバッグ時のみ期待外のイベントを受けた場合にＤｅｂｕｇ状態等の特殊な状態に遷移させる正常・異常系網羅型状態遷移表１２３が得られることは異常状態生成処理２と同様である。
【００７８】
上記のように、図８の処理を実行することで、異常系状態ジェネレータ１２２は、正常系状態遷移表１２１と、状態パターン１１２とに基づいて正常・異常系網羅型状態遷移表１２３を自動生成することができる。ユーザは、このような異常系状態ジェネレータ１２２を備えた変換部１２０を用いることで、正常系の状態遷移のみが記述された正常系状態遷移表と、状態パターン１１２とを作成するだけで、不必要な状態を省略した正常・異常系網羅型状態遷移表１２３を容易に生成することができる。そのため、正常・異常系網羅型状態遷移表を格納するためのメモリの容量を削減することが可能となる。
【００７９】
［異常状態生成処理４］
本実施形態における異常系状態ジェネレータ１２２は、図６、７に例示した状態パターン以外のものをも状態パターンとして入力することができる。図１０は、そのような状態パターンの一例である。
【００８０】
図１０に示した状態パターンにおいては、１つのＳＴＭ６０５は複数の正常状態６０３と複数の異常状態６０４を持っているが、正常状態数と異常状態数は一致しているとは限らない。以下、説明の簡略化のため、正常状態数と異常状態数とは互いに異なるものとする。異常状態６０４はそれぞれ１つのエラー（異常）発生イベント６０１とエラー（異常）解除イベント６０２を持ち、イベントと異常状態６０４の関係については正常状態６０３もこれを継承している。さらに、図１０に示した状態パターンにおいては、どの正常状態６０３が、どの異常状態６０４と対応するのかを定義した、正常状態−異常状態対応テーブル（以下、対応テーブルと呼ぶ）６０６が記述されている。
【００８１】
図１８は、対応テーブル６０６の内容を例示的に示した図である。この例では、異常状態数ｐが２（ｐ＝２）、正常状態数ｎが３（ｎ＝３）としている。この例では１つ目（ｉｎｄｅｘ＝０）の異常状態は１つ目（ｉｎｄｅｘ＝０）の正常状態と対応しており更に、２つ目（ｉｎｄｅｘ＝１）の異常状態は３つ目（ｉｎｄｅｘ＝２）の正常状態と対応していることが示されている。
【００８２】
次に、図１８に例示した状態パターンを受け取って正常・異常系網羅型状態遷移表１２３を生成する異常系状態ジェネレータ１２２の処理について、図１１，１２を参照して説明する。図１１は、図１８に例示した状態パターンを受け取って異常状態生成処理を行う異常系状態ジェネレータ１２２の処理の流れを示すフローチャートである。図１２は、図２に例示した正常系状態遷移表１２１、図１８に例示した状態パターンを入力として受け取り、図１１のフローチャートに示した処理を実行して得られる、正常・異常系網羅型状態遷移表１２３を示した図である。
【００８３】
異常系状態ジェネレータ１２２は、ステップＳ１００１において処理を開始すると、ステップＳ１００２（Ｓ１００８）において、ステップＳ１００３〜Ｓ１００７の処理を、状態遷移パターンに指定された異常状態数ｐだけ繰り返し実行する。
【００８４】
まず、ステップＳ１００３において、異常状態を生成する。異常状態名は、例えば、ｅｒｒｏｒ１、ｅｒｒｏｒ２、・・・等とする。図１２において、１２０１、１２０５は追加した状態を例示的に示したものである。
【００８５】
次に、ステップＳ１００４において、異常状態に遷移する際に実行する操作（関数）を生成する。これは、例えば、ｅｒｒｏｒ１状態に遷移する際の操作をｅｒｒｏｒ１（）、ｅｒｒｏｒ２状態に遷移する際の操作をｅｒｒｏｒ２（）、・・・等とする。また、それぞれの内容（関数の中身）は、予め定義された雛形を設定し、用途に応じて後に編集可能なようにする。１２０３、１２０９は、このようにして生成された操作を例示したものである。
【００８６】
次に、ステップＳ１００５において、注目している（該当する）異常状態に対応した異常発生イベントと異常解除イベントとを生成する。例えば、図１２の１２０２のように、異常状態ｅｒｒｏｒ１に対して、異常発生イベントｅｒｒｏｒ１＿ｏｃｃｕｒ、異常解除イベントｅｒｒｏｒ１＿ｒｅｌｅａｓｅを生成する。１２０８は、異常状態ｅｒｒｏｒ２に対応して生成した異常発生イベントｅｒｒｏｒ２＿ｏｃｃｕｒ、異常解除イベントｅｒｒｏｒ２＿ｒｅｌｅａｓｅを示したものである。
【００８７】
次に、ステップＳ１００６において、注目している（該当する）異常状態が解除される異常解除イベントが発生し、正常状態に復帰する際に実行する操作（関数）を生成する。例えば、異常状態ｅｒｒｏｒ１が解除されたときに実行する操作をｅｒｒｏｒ１＿ｒｅｌｅａｓｅ（）等として生成する。操作の内容（関数の中身）は、予め定義された雛形を設定し、用途に応じて後に編集可能なようにする。
【００８８】
次に、ステップＳ１００７において、注目している異常状態において、その異常状態を解除する解除イベントが発生した場合、異常解除操作を行い、その異常状態に対応した正常状態に遷移する旨の記述を、対応するセルに記述する。なお、対応する正常状態は、対応テーブル６０６（図１８に例示したもの）を参照して決定する。１２０６，１２０７はこの処理の結果内容が記述されたセルの例である。
【００８９】
異常系状態ジェネレータ１２２は、ステップＳ１００３〜Ｓ１００７の処理を、状態遷移パターンに指定された異常状態数ｐだけ繰り返し実行する。実行後、ステップＳ１００９へ進む。
【００９０】
ステップＳ１００９（Ｓ１０１１）において、異常系状態ジェネレータ１２２は、ステップＳ１０１０の処理を、状態遷移パターンに指定された正常状態数ｎだけ繰り返し実行する。対応テーブル６０６（図１８に例示したもの）を参照し、その正常状態が異常状態を持つ場合は異常状態に対応する異常イベントが発生したときに異常発生操作を実行し、その異常状態に遷移するセルを設定する。１２０４，１２１０は、この処理の結果内容が記述されたセルの例である。
【００９１】
異常系状態ジェネレータ１２２は、この処理を正常状態数繰り返す（Ｓ１０１１）。異常状態遷移生成が終了すると、例えば、図２の状態遷移表からは図１２の状態遷移表が生成されることになる。
【００９２】
上記の処理後、更に、図１６の手順を実行することで、デバッグ時のみ期待外のイベントを受けた場合にＤｅｂｕｇ状態等の特殊な状態に遷移させる正常・異常系網羅型状態遷移表１２３が得られることは異常状態生成処理２と同様である。
【００９３】
上記のように、図１１の処理を実行することで、異常系状態ジェネレータ１２２は、正常系状態遷移表１２１と、状態パターン１１２とに基づいて、正常状態と異常状態との個数が互いに異なる正常・異常系網羅型状態遷移表１２３を自動生成することができる。ユーザは、このような異常系状態ジェネレータ１２２を備えた変換部１２０を用いることで、正常系の状態遷移のみが記述された正常系状態遷移表と、状態パターン１１２とを作成するだけで、不必要な状態を省略した、正常状態と異常状態との個数が互いに異なる正常・異常系網羅型状態遷移表１２３を容易に生成することができる。そのため、正常・異常系網羅型状態遷移表を格納するためのメモリの容量を削減することが可能となる。
【００９４】
［状態パターンの選択］
次に、異常状態ジェネレーション（生成）時の状態パターンの選択方法について、図１７を参照して説明する。図１７は、状態パターンを選択可能にするクラス図を例示的に示した図である。
【００９５】
図１７に例示したクラス図は、状態遷移表と、状態パターンを関連づける用途で用いられる。状態遷移表は、それぞれクラス（例えば、図１７における８１１，８１２，８１３）に関連づけられる。一方、クラスの定義の際に、例えばステレオタイプの様な形でそのクラスの状態遷移表が取る状態パターンについて指定する。このように設計することで、異常状態ジェネレーション（生成）時にその状態遷移表が関連付けられているクラスを特定し、そのクラスのステレオタイプから異常状態ジェネレーションに用いるべき状態パターンを特定できる。
【００９６】
図１７の例では、予め、不図示の手段によって、各クラスに状態遷移表が関連づけられているものとする。また、図１７のように、コントローラＸ８１１にはステレオタイプ＜＜ｓｔａｔｅ＿ｐａｔｔｅｒｎ１＞＞が指定されている。これは、コントローラＸ８１１に関連づけられた状態遷移表について異常状態ジェネレーションを行う場合は、状態パターン１を用いればよい（８１０）ことを示している。同様にコントローラＹについてはステレオタイプ＜＜ｓｔａｔｅ＿ｐｐａｔｔｅｒｎ２＞＞が指定されており、異常状態ジェネレーションには状態パターン２を用いればよい（８１５）ことが導ける。さらにコントローラＺについてはステレオタイプ＜＜ｓｔａｔｅ＿ｐａｔｔｅｒｎ３＞＞が指定されており、異常状態ジェネレーション時には状態パターン３を用いればよい（８１４）ことが導ける。
【００９７】
異常状態生成処理３，４において、上記のようなクラス図が設定されている場合、異常系状態ジェネレータ１２２は、処理の前にクラス図を参照して処理に用いる状態パターンを決定し、決定した状態パターンを用いて処理を実行する。
【００９８】
ユーザは、上記のようなクラス図を作成することで、容易に状態遷移表と状態パターンとを関連づけることができる。そして、処理の度にいちいち異常系状態ジェネレータ１２２に用いる状態パターンを指定する必要がなくなる。
【００９９】
［その他の実施形態］
以上、本発明の実施形態例について詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様を取ることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１００】
尚、本発明は、前述した実施形態の機能を実現するプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１０１】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含む。
【０１０２】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０１０３】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０１０４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１０５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。  また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【０１０６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１０７】
【図１】本実施形態に対応する情報処理装置の機能ブロック図である。
【図２】正常系状態遷移表を例示的に示した図である。
【図３】異常状態生成処理１の処理の流れを示したフローチャートである。
【図４】異常状態生成処理１に基づいて正常系状態遷移表に対して異常系状態等を追加した結果を例示した図である。
【図５】状態遷移表に対してセルの中身等を追加した状態遷移表を例示した図である。
【図６】状態パターンを例示的に示した図である。
【図７】状態パターンを例示的に示した図である。
【図８】異常状態生成処理３の処理の流れを示したフローチャートである。
【図９】異常状態生成処理３に基づいて正常系状態遷移表に対して異常系状態等を追加した結果を例示した図である。
【図１０】状態パターンを例示的に示した図である。
【図１１】異常状態生成処理４の処理の流れを示したフローチャートである。
【図１２】異常状態生成処理４に基づいて正常系状態遷移表に対して異常系状態等を追加した結果を例示した図である。
【図１３】正常・異常系網羅型状態遷移表を例示的に示した図である。
【図１４】正常・異常系網羅型状態遷移表を例示的に示した図である。
【図１５】状態遷移表の一例を示した図である。
【図１６】異常状態生成処理２の処理の流れを示したフローチャートである。
【図１７】状態パターンを選択可能にするクラス図を例示的に示した図である。
【図１８】対応テーブルの内容を例示的に示した図である。
【図１９】本実施形態に対応する情報処理装置のハードウェア構成のブロック図である。
【図１】
2006343866.tif 000003
【図２】
2006343866.tif 000004
【図３】
2006343866.tif 000005
【図４】
2006343866.tif 000006
【図５】
2006343866.tif 000007
【図６】
2006343866.tif 000008
【図７】
2006343866.tif 000009
【図８】
2006343866.tif 000010
【図９】
2006343866.tif 000011
【図１０】
2006343866.tif 000012
【図１１】
2006343866.tif 000013
【図１２】
2006343866.tif 000014
【図１３】
2006343866.tif 000015
【図１４】
2006343866.tif 000016
【図１５】
2006343866.tif 000017
【図１６】
2006343866.tif 000018
【図１７】
2006343866.tif 000019
【図１８】
2006343866.tif 000020
【図１９】
2006343866.tif 000021