(57)【特許請求の範囲】
【請求項１】
ソフトウェアコンポーネントが他ソフトウェアコンポーネントから受付可能な処理イベントの種類と、前記ソフトウェアコンポーネントが取りうる動作状態の種類と、の組み合わせ毎に、前記ソフトウェアコンポーネントにより実行される処理及び該処理の実行後に前記ソフトウェアコンポーネントが取る動作状態、が登録されたソフトウェアコンポーネント用２次元テーブルを保持する第１の保持手段と、
前記ソフトウェアコンポーネントを組み込む対象となるシステムが取りうる動作状態の種類と、該動作状態を制御するための制御イベントの種類と、の組み合わせ毎に、前記システムが実行する処理及び該処理の実行後に前記システムが取る動作状態、が登録されたシステム用２次元テーブルを保持する第２の保持手段と、
前記システム用２次元テーブルに前記コンポーネント用２次元テーブルを組み合わせることで、複合２次元テーブルを生成する生成手段とを備え、
前記複合２次元テーブルには、
前記システムが取りうる動作状態のうち前記ソフトウェアコンポーネントが動作可能な動作状態を着目動作状態とし、該着目動作状態において前記ソフトウェアコンポーネントが取りうる動作状態と、前記制御イベントの種類と、の組み合わせ毎に、前記システムが実行する処理及び該処理の実行後に前記システムが取る動作状態、が登録されており、
前記着目動作状態において前記ソフトウェアコンポーネントが取りうる動作状態と、前記処理イベントの種類と、の組み合わせ毎に、前記ソフトウェアコンポーネントにより実行される処理及び該処理の実行後に前記ソフトウェアコンポーネントが取る動作状態、が登録されている
ことを特徴とする情報処理装置。
【請求項２】
ソフトウェアコンポーネントが他ソフトウェアコンポーネントから受付可能な処理イベントの種類と、前記ソフトウェアコンポーネントが取りうる動作状態の種類と、の組み合わせ毎に、前記ソフトウェアコンポーネントにより実行される処理及び該処理の実行後に前記ソフトウェアコンポーネントが取る動作状態、が登録されたソフトウェアコンポーネント用２次元テーブルを保持する第１の保持手段と、
前記ソフトウェアコンポーネントを組み込む対象となるシステムが取りうる動作状態の種類と、該動作状態を制御するための制御イベントの種類と、の組み合わせ毎に、前記システムが実行する処理及び該処理の実行後に前記システムが取る動作状態、が登録されたシステム用２次元テーブルを保持する第２の保持手段と、
を備える情報処理装置が行う情報処理方法であって、
前記情報処理装置が有する生成手段が、前記システム用２次元テーブルに前記コンポーネント用２次元テーブルを組み合わせることで、複合２次元テーブルを生成する生成工程を備え、
前記複合２次元テーブルには、
前記システムが取りうる動作状態のうち前記ソフトウェアコンポーネントが動作可能な動作状態を着目動作状態とし、該着目動作状態において前記ソフトウェアコンポーネントが取りうる動作状態と、前記制御イベントの種類と、の組み合わせ毎に、前記システムが実行する処理及び該処理の実行後に前記システムが取る動作状態、が登録されており、
前記着目動作状態において前記ソフトウェアコンポーネントが取りうる動作状態と、前記処理イベントの種類と、の組み合わせ毎に、前記ソフトウェアコンポーネントにより実行される処理及び該処理の実行後に前記ソフトウェアコンポーネントが取る動作状態、が登録されている
ことを特徴とする情報処理方法。
【請求項３】
コンピュータを請求項１に記載の情報処理装置が有する各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単位機能を持つソフトウェアコンポーネントを組み合わせてシステムを構築する為の技術に関し、特にソフトウェアコンポーネントを複数システム間で共用するための技術に関する。
【背景技術】
【０００２】
従来から、大規模なソフトウェアシステムを構築する場合には、それぞれ固有の単位機能を持つ複数のソフトウェアコンポーネント（以降、単にコンポーネントと称す）に分割して開発する手法がとられる。また、昨今のソフトウェアは、マルチＣＰＵ、マルチプロセス、マルチスレッドを活用し、単位機能ごとにタスクを割り当てる並行プログラミングによる開発が主流となっている。
【０００３】
ここで、それぞれタスクを割り当てられたコンポーネントは、関連する複数のコンポーネント間で処理の依頼を行い、互いに協調し合って１つの大きな処理を実現する。ここで、あるコンポーネントから他のコンポーネントへの処理の依頼を「メッセージ」と称し、特に、依頼元コンポーネントが依頼先コンポーネントの処理の完了を待たずに次の処理を実行するメッセージを「イベント」と称す。依頼先コンポーネントは、イベントの受け取りをトリガとして自らの状態の変化させ、特定のアクションを実行する。これら、イベントを受け取った際の状態変化及び実行するアクションを総じてコンポーネントの「振舞い」と称す。コンポーネントの振舞いを表現する手段としては、状態遷移表や、Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅと呼ばれる記法で定義されているステートチャート図が用いられる。
【０００４】
一方で、開発効率の向上を目的に、特定のコンポーネントを複数のシステムで共通して利用する開発手法がある。Ｐｒｏｄｕｃｔ  Ｌｉｎｅと呼ばれる開発手法では、あらかじめ作成した複数のコンポーネントを共有部品として一元管理し、その中から利用するコンポーネントを選択・結合することによりシステムを構築する。ここで、このようなコンポーネントの共用を補助する目的で、同一の分析モデルから異なる言語に対応した動作モデルを自動生成する技術が提案されている。より具体的には、一度作成したコンポーネントを新たな環境で動作させる場合に、環境非依存コンポーネントには変更を加えず、環境依存コンポーネントに対してのみ新たなプログラミング言語環境を適用し、ソースコードを自動生成していた（特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−２９６９９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、従来の開発手法では、システム横断的に適用されるコンポーネントの振舞いポリシ（以降、システムポリシと称す）が各コンポーネントの分析モデルに反映される。そのため、システムポリシの異なる複数のシステムに対して同一のコンポーネントを利用できないという問題があった。
【０００７】
具体例として、省エネが要求されるシステムＸと高信頼性が要求されるシステムＹに対し、同一のコンポーネントＣを適用する場合を考える。この際、システムＸ向けに省エネへの対応のみ分析を行なったコンポーネントＣｘは、高信頼性への対応が要求されるシステムＹにそのまま利用することができない。また、双方のシステムに対応するためにあらかじめ省エネ対応および高信頼性対応を行なったコンポーネントＣｘｙは、例えばシステムＸ向けには高信頼性対応が無駄となり、ＲＯＭ・ＲＡＭ容量を無益に消費する。また、システムポリシの異なる第３のシステムＺ１や、分析段階においてシステムポリシが未定の将来のシステムＺ２に対してそのまま利用することができない。
【０００８】
このように従来の開発手法では、コンポーネントを共用可能な範囲が対象とするコンポーネントの分析段階でシステムポリシを想定可能なシステムに限定され、その結果、例えば同一製品群等の限られた範囲でしかコンポーネントの共用が実現されていなかった。
【０００９】
本発明は以上の問題に鑑みてなされたもので、同一コンポーネントをシステムポリシの異なる複数のシステムで利用可能にする為の技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。即ち、ソフトウェアコンポーネントが他ソフトウェアコンポーネントから受付可能な処理イベントの種類と、前記ソフトウェアコンポーネントが取りうる動作状態の種類と、の組み合わせ毎に、前記ソフトウェアコンポーネントにより実行される処理及び該処理の実行後に前記ソフトウェアコンポーネントが取る動作状態、が登録されたソフトウェアコンポーネント用２次元テーブルを保持する第１の保持手段と、前記ソフトウェアコンポーネントを組み込む対象となるシステムが取りうる動作状態の種類と、該動作状態を制御するための制御イベントの種類と、の組み合わせ毎に、前記システムが実行する処理及び該処理の実行後に前記システムが取る動作状態、が登録されたシステム用２次元テーブルを保持する第２の保持手段と、前記システム用２次元テーブルに前記コンポーネント用２次元テーブルを組み合わせることで、複合２次元テーブルを生成する生成手段とを備え、前記複合２次元テーブルには、前記システムが取りうる動作状態のうち前記ソフトウェアコンポーネントが動作可能な動作状態を着目動作状態とし、該着目動作状態において前記ソフトウェアコンポーネントが取りうる動作状態と、前記制御イベントの種類と、の組み合わせ毎に、前記システムが実行する処理及び該処理の実行後に前記システムが取る動作状態、が登録されており、前記着目動作状態において前記ソフトウェアコンポーネントが取りうる動作状態と、前記処理イベントの種類と、の組み合わせ毎に、前記ソフトウェアコンポーネントにより実行される処理及び該処理の実行後に前記ソフトウェアコンポーネントが取る動作状態、が登録されていることを特徴とする。
【発明の効果】
【００１１】
本発明の構成によれば、コンポーネントの状態遷移情報に、システムポリシを実現するためのシステムの状態遷移情報を後から追加可能な構成とすることで、同一コンポーネントをシステムポリシの異なる複数のシステムで利用可能となり、開発効率が向上する。
【図面の簡単な説明】
【００１２】
【図１】情報処理装置の機能構成例を示すブロック図。
【図２】状態遷移情報の構成例を示す図。
【図３】（ａ）はメイン処理のフローチャート、（ｂ）はＳ５０４の処理のフローチャート。
【図４】ステップＳ６０１の処理の詳細を示すフローチャート。
【図５】ステップＳ６０２の処理の詳細を示すフローチャート。
【図６】ステップＳ６０３の処理の詳細を示すフローチャート。
【図７】状態遷移情報の一例を示す図。
【図８】メインの処理のフローチャート。
【図９】ステップＳ１１０１，１１０３における処理の詳細を示すフローチャート。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１４】
［第１の実施形態］
先ず、本実施形態に係る情報処理装置の機能構成例について、図１を用いて説明する。  コンポーネント状態遷移情報格納部１０１（第１の保持手段）には、コンポーネント（ソフトウェアコンポーネント）毎に、コンポーネントに固有の状態遷移情報（コンポーネント状態遷移情報）が格納されている。システム状態遷移情報格納部１０２（第２の保持手段）には、システム毎に、システムの状態遷移情報（システム状態遷移情報）が格納されている。本実施形態では、コンポーネント状態遷移情報、システム状態遷移情報のそれぞれは予めコンポーネント状態遷移情報格納部１０１、システム状態遷移情報格納部１０２に格納されているものとして説明する。しかし、これらの情報は、ユーザがキーボード、マウス、ディジタイザ、タッチパネル、ジョイスティック等の入力装置を用いて適宜、本装置に入力するようにしても良い。
【００１５】
状態遷移情報更新部１０３は、コンポーネント状態遷移情報格納部１０１に格納されている状態遷移情報と、システム状態遷移情報格納部１０２に格納されている状態遷移情報とを組み合わせて、更新されたコンポーネントの状態遷移情報を生成する。更新されたコンポーネントの状態遷移情報については状態遷移情報更新部１０３内に保持しておいても良いし、モニタ、プリンタ等の出力機器に対して送出するようにしても良い。
【００１６】
次に、コンポーネント状態遷移情報格納部１０１に格納されている状態遷移情報、システム状態遷移情報格納部１０２に格納されている状態遷移情報、状態遷移情報更新部１０３が生成する状態遷移情報、について図２を用いて説明する。
【００１７】
先ず、コンポーネント状態遷移情報格納部１０１に格納されている状態遷移情報について、この状態遷移情報の構成例を示す図２（ａ）を用いて説明する。なお図２（ａ）では、コンポーネント状態遷移情報はソフトウェアコンポーネント用２次元テーブルとなっており、テーブル形式のフォーマットを有しているが、コンポーネント状態遷移情報のフォーマットはテーブル形式のフォーマットに限定するものではない。また、図２（ａ）に示した状態遷移情報は、テレビや医療用モニタなど、映像ストリームを取り扱うシステムに共通して利用可能なデコーダコンポーネントについての状態遷移情報を想定している。
【００１８】
表２００は、テーブル形式のフォーマットを有するコンポーネント状態遷移情報としてのコンポーネントの状態遷移表であり、コンポーネントの振舞いを現在状態、受け付けるイベント、遷移先状態、実行アクション、により表現している。
【００１９】
列２０１、列２０２には、コンポーネントの現在状態に対応する（コンポーネントの）振る舞いが登録されている。例えば、列２０１には、コンポーネントの現在状態がデコード処理を実施していない状態（Ｓｔｏｐ状態）である場合のコンポーネントの振る舞いが登録されている。また、列２０２には、コンポーネントの現在状態がデコード処理を実施している状態（Ｄｅｃｏｄｅ状態）である場合のコンポーネントの振る舞いが登録されている。
【００２０】
行２０３、行２０４には、コンポーネントが他ソフトウェアコンポーネントから受付可能なイベント（処理イベント）に対応する振る舞いが登録されている。例えば、行２０３には、コンポーネントが受け付けたイベントがデコード処理開始要求イベント（ｅｖＳｔａｒｔ）である場合のコンポーネントの振る舞いが登録されている。行２０４には、コンポーネントが受け付けたイベントがデコード処理終了要求イベント（ｅｖＳｔｏｐ）である場合のコンポーネントの振る舞いが登録されている。
【００２１】
このように、表２００には、処理イベントの種類と、コンポーネントが取りうる動作状態の種類と、の組み合わせ毎に（セル毎に）、コンポーネントにより実行される処理及びこの処理の実行後にコンポーネントが取る動作状態、が登録されている。
【００２２】
例えば、セル２０５には、コンポーネントがＤｅｃｏｄｅ状態の時にｅｖＳｔｏｐイベントを受け付けた場合、このコンポーネントはＳｔｏｐ状態に遷移し、ａｃｔｉｏｎＢ処理を実行する旨が登録されている。また、セル２０６には、コンポーネントがＤｅｃｏｄｅ状態の時にｅｖＳｔａｒｔイベントを受け付けた場合、このコンポーネントは受け付けたイベントを無視し、何も処理を実行しない旨（”Ｅｖｅｎｔ  Ｉｇｎｏｒｅｄ”）が登録されている。
【００２３】
上記コンポーネントの状態遷移表２００は、列と行に表現する項目を入れ替え、列項目としてコンポーネントの受け付け可能なイベントを、行項目としてコンポーネントの取り得る状態を表現しても良い。即ち、係る表の構成については、特に限定するものではない
表２１０はコンポーネントの初期状態を表し、このコンポーネントが表２１０に指定される状態を起点として動作を開始することを表す。図２（ａ）の例では、このコンポーネントはＳｔｏｐ状態から動作を開始する。
【００２４】
次に、システム状態遷移情報格納部１０２に格納されている状態遷移情報について、この状態遷移情報の構成例を示す図２（ｂ）を用いて説明する。なお、図２（ｂ）では、システム状態遷移情報はシステム用２次元テーブルとなっており、テーブル形式のフォーマットを有しているが、システム状態遷移情報のフォーマットは、テーブル形式のフォーマットに限定するものではない。また、図２（ｂ）では、上記デコーダコンポーネントを組み込むシステムの例として、デジタルテレビシステムを想定している。
【００２５】
表３００は、テーブル形式のフォーマットを有するシステム状態遷移情報としての、システムポリシを表す状態遷移表であり（システム状態遷移表）、システムの振る舞いを、現在状態、受け付けるイベント、遷移先状態、実行アクション、により表現している。
【００２６】
列３０１〜列３０３には、システムの現在状態（システムに組み込まれるコンポーネントに期待する状態）に対応する（システムの）振る舞いが登録されている。例えば、列３０１には、システムの現在状態が通常稼動している状態（Ａｃｔｉｖｅ状態）である場合のシステムの振る舞いが登録されている。列３０２には、システムの現在状態が省エネ待機している状態（ＬｏｗＰｏｗｅｒ状態）である場合のシステムの振る舞いが登録されている。列３０３には、システムの現在状態が終了処理を実施している状態（Ｔｅｒｍｉｎａｔｅ状態）である場合のシステムの振る舞いが登録されている。このように、システムが取り得るすべての状態を列項目としてシステム状態遷移表に登録する。
【００２７】
行３０４〜行３０６には、システムが受付可能な（システムに組み込まれるコンポーネントに期待する受付可能な）イベント（制御イベント）に対応する振る舞いが登録されている。例えば、行３０４には、システムが受け付けたイベントがサスペンドイベント（ｅｖＳｕｓｐｅｎｄ）である場合のシステムの振る舞いが登録されている。行３０５には、システムが受け付けたイベントがサスペンド解除イベント（ｅｖＲｅｓｕｍｅ）である場合のシステムの振る舞いが登録されている。行３０６には、システムが受け付けたイベントが終了処理開始イベント（ｅｖＦｉｎａｌｉｚｅ）である場合のシステムの振る舞いが登録されている。このように、システムが受け付け可能なすべてのイベントを行項目としてシステム状態遷移表に登録する。
【００２８】
このように表３００には、システムが取りうる動作状態の種類と、この動作状態を制御する為の制御イベントの種類と、の組み合わせ毎に（セル毎に）、システムが実行する処理及びこの処理の実行後にシステムが取る動作状態、が登録されている。
【００２９】
例えば、セル３０７には、システムがＬｏｗＰｏｗｅｒ状態の時にシステムがｅｖＦｉｎａｌｉｚｅイベントを受け付けた場合、システムは次にＴｅｒｍｉｎａｔｅ状態に遷移し、ａｃｔｉｏｎ４なる処理を実行する旨が登録されている。
【００３０】
この状態遷移表３００は、上記コンポーネントの状態遷移表２００と同様、列と行に表現する項目を入れ替え、列項目としてシステムの受け付け可能なイベントを、行項目としてシステムの状態を表現しても良い。即ち、係る表の構成については、特に限定するものではない。
【００３１】
３１０は状態の属性情報で、システムが取りうるそれぞれの状態について、コンポーネントの動作の可否を表している。図２（ｂ）の例ではコンポーネントは、システムの状態がＡｃｔｉｖｅ状態の時には動作し、システムの状態がＬｏｗＰｏｗｅｒ状態、Ｔｅｒｍｉｎａｔｅ状態の時には動作しないことを表している。
【００３２】
次に、状態遷移情報更新部１０３が生成する、更新されたコンポーネント状態遷移情報（更新コンポーネント状態遷移情報）について、この更新コンポーネント状態遷移情報の構成例を示す図２（ｃ）を用いて説明する。なお、図２（ｃ）では、更新コンポーネント状態遷移情報はテーブル形式のフォーマットを有しているが、更新コンポーネント状態遷移情報のフォーマットは、テーブル形式のフォーマットに限定するものではない。図２（ｃ）では、上記デコーダコンポーネントを上記デジタルテレビシステムに組み込む場合を想定している。即ち、以下の説明において「更新されたコンポーネント」とは、デジタルテレビシステム用に更新されたデコーダコンポーネントのことである。
【００３３】
表４００は、テーブル形式のフォーマットを有する更新コンポーネント状態遷移情報としての、状態遷移表であり、現在状態、受け付けるイベント、遷移先状態、実行アクション、により表現される。
【００３４】
列４０１〜列４０４には、更新されたコンポーネントが取り得る状態に対応する振る舞いが登録されている。行４０５〜行４０９には、更新されたコンポーネントが受け付け可能なイベントに対応する（システムの）振る舞いが登録されている。列４０１〜列４０４と行４０５〜行４０９が交差する各セルには、列で表す現在状態の時に行で表すイベントを受け付けた場合の、次に遷移すべき状態と遷移に伴う実行アクションが登録されている。
【００３５】
次に、本実施形態に係る情報処理装置が行うメインの処理について、同処理のフローチャートを示す図３（ａ）を用いて説明する。なお、図３（ａ）のフローチャートに従った処理は、状態遷移情報更新部１０３によって行われる。
【００３６】
先ず、ステップＳ５０１では、状態遷移情報更新部１０３は、システム状態遷移情報格納部１０２に格納されているシステム毎の状態遷移情報のうち、対象となるシステム（システムＰ）のシステムポリシを表す状態遷移情報を表Ｐとして取得する。以下では具体例を挙げて説明するために、表Ｐが図２（ｂ）に示した表３００であるものとして説明する。
【００３７】
そして状態遷移情報更新部１０３は、ステップＳ５０２〜ステップＳ５０５の各ステップにおける処理を、システムＰに組み込むコンポーネント毎に行う。即ち、状態遷移情報更新部１０３は、ステップＳ５０２〜ステップＳ５０５の各ステップにおける処理を、システムＰに組み込むコンポーネントの数だけ繰り返す。
【００３８】
ステップＳ５０３では、状態遷移情報更新部１０３は、コンポーネント状態遷移情報格納部１０１に格納されているコンポーネント毎の状態遷移情報のうち、システムＰに組み込むコンポーネントの状態遷移情報を表Ｃｂとして取得する。以下では具体例を挙げて説明する為に、表Ｃｂが図２（ａ）に示した表２００であるものとして説明する。
【００３９】
次に、ステップＳ５０４では、状態遷移情報更新部１０３は、表Ｃｂに表Ｐを適用し、更新されたコンポーネントの状態遷移表Ｃｐ（複合２次元テーブル）を作成する。上記具体例では、デコーダコンポーネントの表２００にデジタルテレビシステムの表３００が適用された結果として、更新されたコンポーネントの状態遷移表４００が作成される。
【００４０】
次に、このステップＳ５０４における処理の詳細について図３（ｂ）のフローチャートを用いて説明する。先ず、ステップＳ６０１では、状態遷移情報更新部１０３は、表Ｐと表Ｃｂから、更新されたコンポーネントが取り得る状態を格納する配列ＳｔＣｐ［］を抽出する。上記具体例では、デコーダコンポーネントの状態遷移表２００およびデジタルテレビシステムの状態遷移表３００より、更新されたコンポーネントの状態遷移表Ｃｐにおける各列４０１〜４０４に対応する配列ＳｔＣｐ［］が抽出される。
【００４１】
次に、ステップＳ６０２では、状態遷移情報更新部１０３は、表Ｐと表Ｃｂから、更新されたコンポーネントが受け付け可能なイベントの配列ＥｖＣｐ［］を抽出する。上記具体例では、状態遷移表２００及び状態遷移表３００より、更新されたコンポーネントの状態遷移表Ｃｐにおける受け付け可能なイベント（各列４０５〜４０９に対応するイベント）が配列ＥｖＣｐ［］として抽出される。
【００４２】
次に、ステップＳ６０３では、状態遷移情報更新部１０３は、表Ｐと表Ｃｂから、更新されたコンポーネントの状態遷移表Ｃｐを構成する各セルの値を求める。上記具体例では、ステップＳ６０１〜Ｓ６０３の処理を行った結果として、コンポーネントの状態遷移表４００が完成する。
【００４３】
次に、表ＰとＣｂから、更新されたコンポーネントが取り得る状態の配列ＳｔＣｐ［］を抽出する処理、即ち上記ステップＳ６０１の処理の詳細について、図４のフローチャートを用いて説明する。
【００４４】
先ず、ステップＳ７０１では、状態遷移情報更新部１０３は、以降の処理で用いる変数ｉ，ｍ，ｎを全て０に初期化する。そして、状態遷移情報更新部１０３は、ステップＳ７０２〜Ｓ７１２の各ステップにおける処理を、表Ｐに記されている「システムの状態の数」ｐｓだけくり返す。図２（ｂ）の場合、システムの状態は「Ａｃｔｉｖｅ状態」、「ＬｏｗＰｏｗｅｒ状態」、「Ｔｅｒｍｉｎａｔｅ状態」の３つであるので、くり返し数ｐｓは３となる。
【００４５】
次に、ステップＳ７０３では、状態遷移情報更新部１０３は、表Ｐに記されているシステムの状態のうち１つを選択し、選択した状態をＳｔＰ［ｍ］とする。以下では具体例を挙げて説明するために、列３０１に定義されるＡｃｔｉｖｅ状態がＳｔＰ［ｍ］として選択されたものとする。この場合、列３０１に定義されている状態名「Ａｃｔｉｖｅ」がＳｔＰ［ｍ］に代入される。
【００４６】
次に、ステップＳ７０４では、状態遷移情報更新部１０３は、状態の属性情報３１０を参照し、ステップＳ７０３で選択した状態ＳｔＰ［ｍ］においてコンポーネントが動作可能か否かを判定する。例えば図２（ｂ）に示した属性情報３１０の場合、「Ａｃｔｉｖｅ状態」（着目動作状態）のみコンポーネントは動作するので、ステップＳ７０３で選択した状態ＳｔＰ［ｍ］が「Ａｃｔｉｖｅ状態」であれば、ステップＳ７０４では動作可能と判定する。従って、ステップＳ７０３で選択した状態ＳｔＰ［ｍ］が「Ａｃｔｉｖｅ状態」でなければ、ステップＳ７０４では動作不可能と判定する。
【００４７】
ステップＳ７０４における判定の結果、動作可能と判定した場合には処理はステップＳ７０５に進む。一方、ステップＳ７０４における判定の結果、動作不可能と判定した場合には、処理はステップＳ７１０に進む。
【００４８】
ステップＳ７０５では、状態遷移情報更新部１０３は、変数ｎを０に初期化する。そして、状態遷移情報更新部１０３は、ステップＳ７０６〜Ｓ７０９の各ステップにおける処理を、表Ｃｂに記されている「コンポーネントの状態の数」ｃｂｓだけくり返す。図２（ａ）の場合、コンポーネントの状態は「Ｓｔｏｐ」、「Ｄｅｃｏｄｅ」の２つであるので、くり返し数ｃｂｓは２となる。
【００４９】
次に、ステップＳ７０７では、状態遷移情報更新部１０３は、表Ｃｂに記されているコンポーネントの状態のうち１つを選択し、選択した状態をＳｔＣｂ［ｎ］とする。以下では具体例を挙げて説明するために、列２０１に定義されている状態名「Ｓｔｏｐ」がＳｔＣｂ［ｍ］に代入されるものとする。
【００５０】
次に、ステップＳ７０８では、状態遷移情報更新部１０３は、状態ＳｔＰ［ｍ］と状態ＳｔＣｂ［ｎ］から、更新されたコンポーネントが取り得る状態ＳｔＣｐ［ｉ］を作成する。本実施形態では、以下の式に従って、更新されたコンポーネントが取り得る状態の状態名ＳｔＣｐ［ｉ］．ｎａｍｅを生成する。
【００５１】
ＳｔＣｐ［ｉ］．ｎａｍｅ＝ＳｔＣｂ［ｎ］＋”＿ｉｎ＿”＋ＳｔＰ［ｍ］
上記具体例では、システムの状態名”Ａｃｔｉｖｅ”とコンポーネントの状態名“Ｓｔｏｐ“から、新たにユニークな状態名”Ｓｔｏｐ＿ｉｎ＿Ａｃｔｉｖｅ“を生成する。もちろん、システムの状態名とコンポーネントの状態名とから新たな状態名を生成する方法はこれに限定するものではなく、他の方法も考え得る。
【００５２】
また、ステップＳ７０８では、状態遷移情報更新部１０３は、更新されたコンポーネントが取り得る状態を作成するために参照したシステムの状態、およびコンポーネントの状態を記憶する目的で、現在の添え字ｍ、ｎをそれぞれ記憶する。即ち、ＳｔＣｐ［ｉ］．ＰＩｄにｍを代入し、ＳｔＣｐ［ｉ］．ＣｂＩｄにｎを代入する。そして変数ｉ、ｎを共に１つインクリメントする。
【００５３】
一方、ステップＳ７１０では、状態遷移情報更新部１０３は、ＳｔＣｐ［ｉ］．ｎａｍｅにＳｔＰ［ｍ］を代入すると共に、ＳｔＣｐ［ｉ］．ＰＩｄにｍを代入し、ＳｔＣｐ［ｉ］．ＣｂＩｄにＮＵＬＬを代入する。そして変数ｉを１つインクリメントする。
【００５４】
ステップＳ７１１では、状態遷移情報更新部１０３は、変数ｍを１つインクリメントする。そしてステップＳ７１３では、状態遷移情報更新部１０３は、更新されたコンポーネントが取り得る状態数を示す変数ｃｐｓに、この時点での変数ｉの値を代入する。上記具体例では、更新されたコンポーネントが取り得る状態の配列４０１〜４０４が導かれる。
【００５５】
次に、表Ｐと表Ｃｂから、更新されたコンポーネントが受け付け可能なイベントの配列ＥｖＣｐ［］を抽出する処理、即ち、上記ステップＳ６０２における処理の詳細について、図５のフローチャートを用いて説明する。
【００５６】
先ず、ステップＳ８０１では、状態遷移情報更新部１０３は、以降の処理で用いる変数ｉ、ｍ、ｎを０に初期化する。そして状態遷移情報更新部１０３は、ステップＳ８０２〜Ｓ８０５の各ステップにおける処理を、表Ｐに記されている「イベントの数」ｐｅだけ繰り返す。図２（ｂ）の場合、イベントは「ｅｖＳｕｓｐｅｎｄ」、「ｅｖＲｅｓｕｍｅ」、「ｅｖＦｉｎａｌｉｚｅ」の３つであるので、繰り返し数は３となる。
【００５７】
次に、ステップＳ８０３では、状態遷移情報更新部１０３は、表Ｐに記されているイベントのうち１つを選択し、選択したイベントをＥｖＰ［ｍ］とする。以下では具体例を挙げて説明するために、選択したイベント名「ｅｖＳｕｓｐｅｎｄ」がＥｖＰ［ｍ］に代入される。
【００５８】
次に、ステップＳ８０４では、状態遷移情報更新部１０３は、更新されたコンポーネントが受け付け可能なイベントのイベント名ＥｖＣｐ［ｉ］．ｎａｍｅに、ＥｖＰ［ｍ］を代入する。また、更新されたコンポーネントが受け付け可能なイベントのグループ名ＥｖＣｐ［ｉ］．ｇｒｏｕｐに文字列”システム”を代入し、ＥｖＣｐ［ｉ］．ｉｄにｍを代入する。そして変数ｉ、ｍをそれぞれ１つインクリメントする。
【００５９】
次に、状態遷移情報更新部１０３は、ステップＳ８０６〜Ｓ８０９の各ステップにおける処理を、表Ｃｂに記されている「イベントの数」ｃｂｅだけ繰り返す。図２（ａ）の場合、イベントは「ｅｖＳｔａｒｔ」、「ｅｖＳｔｏｐ」の２つのであるので、繰り返し数は２となる。
【００６０】
次に、ステップＳ８０７では、状態遷移情報更新部１０３は、表Ｃｂに記されているイベントのうち１つを選択し、選択したイベントをＥｖＣｂ［ｎ］とする。以下では具体例を挙げて説明するために、選択したイベント名「ｅｖＳｔａｒｔ」がＥｖＣｂ［ｎ］に代入される。
【００６１】
次に、ステップＳ８０８では、状態遷移情報更新部１０３は、更新されたコンポーネントが受け付け可能なイベントのイベント名ＥｖＣｐ［ｉ］．ｎａｍｅに、ＥｖＣｂ［ｎ］を代入する。また、更新されたコンポーネントが受け付け可能なイベントのグループ名ＥｖＣｐ［ｉ］．ｇｒｏｕｐに文字列”コンポ”を代入し、ＥｖＣｐ［ｉ］．ｉｄにｎを代入する。そして変数ｉ、ｎをそれぞれ１つインクリメントする。
【００６２】
次に、ステップＳ８１０では、状態遷移情報更新部１０３は、更新されたコンポーネントが受付可能なイベントのを示す変数ｃｐｓに、この時点での変数ｉの値を代入する。上記具体例では、更新されたコンポーネントが受け付け可能なイベントの配列４０５〜４０９が導かれる。
【００６３】
次に、表Ｐと表Ｃｂから、更新されたコンポーネントの状態遷移表Ｃｐの各セルの値を求める処理、即ち、上記ステップＳ６０３における処理の詳細について、図６のフローチャートを用いて説明する。
【００６４】
先ず、ステップＳ９０１において状態遷移情報更新部１０３は、以降の処理で用いる変数ｍ、ｎを共に０に初期化する。そして状態遷移情報更新部１０３は、ステップＳ９０２〜Ｓ９１４の各ステップにおける処理を、上記変数ｃｐｓが示す数だけ繰り返す。上記具体例では、列４０１〜列４０４に示される通り状態数が４のため、繰り返し数は４となる。
【００６５】
また、状態遷移情報更新部１０３は、ステップＳ９０３〜Ｓ９１２の各ステップにおける処理を、上記変数ｃｐｅが示す数だけ繰り返す。上記具体例では、行４０５〜行４０９に示される通りイベント数が５のため、繰り返し数は５となる。
【００６６】
このステップＳ９０２およびステップＳ９０３に示す２重のくり返し処理を実施することにより、更新されたコンポーネントの状態遷移表４００に示す各セルの値が左上から右下に向けて順次算出される。
【００６７】
次に、ステップＳ９０４では状態遷移情報更新部１０３は、イベントＥｖＣｐ［ｎ］が、表Ｐを参照して抽出されたか否かを判定する。本実施形態では、イベントＥｖＣｐ［ｎ］が表Ｐを参照して抽出された場合、ＥｖＣｐ［ｎ］．ｇｒｏｕｐに文字列”システム”が代入されている。従って、ステップＳ９０４では、ＥｖＣｐ［ｎ］．ｇｒｏｕｐに文字列”システム”が代入されているか否かを判定すればよい。係る判定の結果、代入されていれば処理はステップＳ９０５に進む。一方、代入されていない場合、即ち、イベントＥｖＣｐ［ｎ］が表Ｃｂを参照して抽出されている場合には、処理はステップＳ９０８に進む。上記具体例では、セル４１０に対する処理を実施している場合には、ｅｖＲｅｓｕｍｅイベントは表Ｐを参照したと判定し、処理はステップＳ９０５に進む。
【００６８】
ステップＳ９０５では状態遷移情報更新部１０３は、処理対象のセルの値として「遷移先状態ＴＳｔＣｐ［ｍ］［ｎ］／実行アクションＡＣｐ［ｍ］［ｎ］」を求める。遷移先状態ＴＳｔＣｐ［ｍ］［ｎ］は、ＳｔＣｐ［ｍ］．ＰＩｄとＥｖＣｐ［ｎ］．ｉｄとを用いて、表Ｐより求められる。また、実行アクションＡＣｐ［ｍ］［ｎ］も同様に求められる。即ち、システムの状態遷移表（図２（ｂ））の配列をＰ［ｘ］［ｙ］（０≦ｘ、ｙ≦２）とすると、セルＰ［ＳｔＣｐ［ｍ］．ＰＩｄ］［ＥｖＣｐ［ｎ］．ｉｄ］内に記されている遷移先状態をＴＳｔＣｐ［ｍ］［ｎ］に代入する。また、セルＰ［ＳｔＣｐ［ｍ］．ＰＩｄ］［ＥｖＣｐ［ｎ］．ｉｄ］内に記されている実行アクションをＡＣｐ［ｍ］［ｎ］に代入する。
【００６９】
例えば、上記具体例では、セル４１０に関連付けられるシステムの状態ＬｏｗＰｏｗｅｒとイベントｅｖＲｅｓｕｍｅより、表３００を参照し、遷移先状態名：“Ａｃｔｉｖｅ”、実行アクション：ａｃｔｉｏｎ２が求められる。
【００７０】
ステップＳ９０６では、状態遷移情報更新部１０３は、ステップＳ９０５で算出したＴＳｔＣｐ［ｍ］［ｎ］が、ＳｔＣｐ［］．ｎａｍｅに定義されているか否かを判定する。係る判定の結果、定義されていると判定した場合、処理はステップＳ９１１に進み、定義されていないと判定した場合、処理はステップＳ９０７に進む。
【００７１】
例えば、図２（ｂ）の場合、セル３９０内に記されている状態「Ａｃｔｉｏｎ」はＳｔＣｐ［］．ｎａｍｅには定義されておらず、この状態「Ａｃｔｉｏｎ」はＳｔｏｐ＿ｉｎ＿Ａｃｔｉｏｎ、Ｄｅｃｏｄｅ＿ｉｎ＿Ａｃｔｉｏｎに変更されている。そこでこのような場合には、ステップＳ９０７では、表２１０に記されている初期状態「Ｓｔｏｐ」＋”＿ｉｎ＿”＋「Ａｃｔｉｏｎ」とすることで、セル４１０内に示す如く、”Ｓｔｏｐ＿ｉｎ＿Ａｃｔｉｏｎ”となる。
【００７２】
一般的には、ステップＳ９０７では、状態遷移情報更新部１０３は、ステップＳ９０５で算出したＴＳｔＣｐ［ｍ］［ｎ］を、表２１０に記されている初期状態「Ｓｔｏｐ」＋”＿ｉｎ＿”＋ＴＳｔＣｐ［ｍ］［ｎ］に更新する。
【００７３】
ここで、この処理に到達するセルは、システムの状態ＴＳｔＣｐ［ｍ］［ｎ］中で、さらにコンポーネントの初期状態に遷移するため、遷移先状態ＴＳｔＣｐ［ｍ］［ｎ］の状態名をコンポーネントの初期状態名を用いて置き換える。
【００７４】
一方、ステップＳ９０８では、状態遷移情報更新部１０３は、ＳｔＣｐ［ｍ］が、コンポーネントの状態を参照して抽出されたか否かを判定する。即ち、ＳｔＣｐ［ｍ］．ＣｂＩｄがＮＵＬＬであるか否かを判定する。係る判定の結果、ＳｔＣｐ［ｍ］．ＣｂＩｄ＝ＮＵＬＬである場合には処理はステップＳ９１０に進み、ＳｔＣｐ［ｍ］．ＣｂＩｄ≠ＮＵＬＬである場合には処理はステップＳ９０９に進む。
【００７５】
ステップＳ９０９では、状態遷移情報更新部１０３は、処理対象のセルの値として「遷移先状態ＴＳｔＣｐ［ｍ］［ｎ］／実行アクションＡＣｐ［ｍ］［ｎ］」を求める。遷移先状態ＴＳｔＣｐ［ｍ］［ｎ］は、ＳｔＣｐ［ｍ］．ＣｂＩｄとＥｖＣｐ［ｎ］．ｉｄとを用いて、表Ｃｂより求められる。また、実行アクションＡＣｐ［ｍ］［ｎ］も同様に求められる。
【００７６】
即ち、コンポーネントの状態遷移表（図２（ａ））の配列をＱ［ｘ］［ｙ］（０≦ｘ、ｙ≦１）とすると、先ず、セルＱ［ＳｔＣｐ［ｍ］．ＣｂＩｄ］［ＥｖＣｐ［ｎ］．ｉｄ］内に記されている遷移先状態を特定する。そしてステップＳ９０６と同様、この特定した遷移先状態が、ＳｔＣｐ［］．ｎａｍｅに定義されているか否かを判定する。そして、定義されていないと判定した場合には、この特定した状態遷移先に”＿ｉｎ＿”＋ＳｔＰ［ＳｔＣｐ［ｍ］．ＰＩｄ］を付加する。そしてこの特定した遷移先状態、若しくは付加処理を行った状態遷移先をＴＳｔＣｐ［ｍ］［ｎ］に代入する。また、セルＱ［ＳｔＣｐ［ｍ］．ＣｂＩｄ］［ＥｖＣｐ［ｎ］．ｉｄ］内に記されている実行アクションをＡＣｐ［ｍ］［ｎ］に代入する。
【００７７】
ステップＳ９１０では、状態遷移情報更新部１０３は、処理対象のセルの値として「遷移先状態ＴＳｔＣｐ［ｍ］［ｎ］／実行アクションＡＣｐ［ｍ］［ｎ］」を求める。処理対象のセルの遷移先状態ＴＳｔＣｐ［ｍ］［ｎ］には文字列“ＥｖｅｎｔＩｇｎｏｒｅｄ”が代入され、実行アクションＡＣｐ［ｍ］［ｎ］にはＮＵＬＬが代入される。
【００７８】
ステップＳ９１１では、状態遷移情報更新部１０３は変数ｎの値を１つインクリメントし、ステップＳ９１３では、状態遷移情報更新部１０３は、変数ｎを０に初期化すると共に、変数ｍの値を１つインクリメントつする。
【００７９】
以上の処理によって、上記具体例では、更新されたコンポーネントの状態遷移表４００が導かれる。また、上記具体例において状態遷移表４００中に導かれる実行アクションＡＣｐ［ｍ］［ｎ］については、更新されたコンポーネントの特徴に応じて適宜書き換えても良いし、上記に示した自動的な導出を実施しなくても良い。いずれにせよ、本実施形態では実行アクションＡＣｐ［ｍ］［ｎ］の導出方法を規定しない。
【００８０】
以上の説明により、本実施形態によれば、状態遷移表で表されたコンポーネントの状態遷移情報に、同じく状態遷移表で表されたシステムの状態遷移情報を後から追加することが可能となる。これにより同一コンポーネントをシステムポリシの異なる複数のシステムで利用することが可能となる。
【００８１】
［第２の実施形態］
以下では、本実施形態と第１の実施形態との差分のみについて説明する。即ち、以下の説明する点以外については、本実施形態は第１の実施形態と同様である。然るに本実施形態に係る情報処理装置の機能構成についても図１に示した機能構成を用いる。
【００８２】
図７（ａ）は、コンポーネント状態遷移情報格納部１０１に格納されるコンポーネントの状態遷移情報の一例を示している。この例では、テレビや医療用モニタなど、映像ストリームを取り扱うシステムに共通して利用可能なデコーダコンポーネントを想定し、図２（ａ）と等価な情報をステートチャート図で表している。
【００８３】
図７（ｂ）は、システム状態遷移情報格納部１０２に格納されるシステム状態遷移情報の一例を示している。ここでは、図７（ａ）に示すデコーダコンポーネントを組み込むシステムの例としてデジタルテレビシステムを想定し、図２（ｂ）と等価な情報をステートチャート図で表している。ここで、状態の属性情報３１０に表す情報と等価な情報は、各状態の属性情報として図上に表現されている。
【００８４】
図７（ｃ）は、状態遷移情報更新部１０３が生成する更新されたコンポーネントの状態遷移情報の一例を示している。この例では、図７（ａ）に示すデコーダコンポーネントをデジタルテレビシステムに組み込む場合を想定し、図２（ｃ）と等価な情報をステートチャート図で表している。
【００８５】
次に、本実施形態に係る情報処理装置が行うメインの処理について、図８のフローチャートを用いて説明する。以下では、本フローチャートに沿って、図７（ａ）〜（ｃ）の具体例を交えながら説明する。
【００８６】
ステップＳ１１０１では、状態遷移情報更新部１０３は、システム状態遷移情報格納部１０２に格納されているシステムのステートチャート図を選択し、これをシステムの状態遷移表Ｐに変換する。上記具体例では、図７（ｂ）に示すシステムのステートチャート図から、図２（ｂ）に示すシステムの状態遷移表Ｐが作成される。そして状態遷移情報更新部１０３は、ステップＳ１１０２〜Ｓ１１０５の各ステップにおける処理を、システムに組み込むコンポーネントの数だけ繰り返す。
【００８７】
ステップＳ１１０３では、状態遷移情報更新部１０３は、コンポーネント状態遷移情報格納部１０１に格納されているコンポーネントのステートチャート図から１つ選択し、これをコンポーネントの状態遷移表Ｃｂに変換する。上記具体例では、図７（ａ）に示すコンポーネントのステートチャート図から、図２（ａ）に示すコンポーネントの状態遷移表Ｃｂが作成される。
【００８８】
ステップＳ１１０４では、コンポーネントの状態遷移表Ｃｂにシステムの状態遷移表Ｐを適用し、新たに更新されたコンポーネントの状態遷移表Ｃｐを作成する。上記具体例では、デコーダコンポーネントの状態遷移表２００にデジタルテレビシステムの状態遷移表３００が適用された結果として、更新されたコンポーネントの状態遷移表４００が作成される。なお、ステップＳ１１０４における処理は、上記ステップＳ５０４における処理と同じであるために、その詳細な説明は省略する。なお、ステップＳ１１０４で作成されたコンポーネントの状態遷移表４００より、等価な情報を持つ図７（ｃ）に示すステートチャート図を作成しても良い。
【００８９】
次に、ステートチャート図から等価な情報を持つ状態遷移表を作成する処理、即ち、上記ステップＳ１１０１，１１０３における処理の詳細について、図９のフローチャートを用いて説明する。即ち、図９に示したフローチャートは、ステップＳ１１０１，Ｓ１１０３のそれぞれに適用することができる処理のフローチャートである。ここでは、図７（ｂ）に示すシステムのステートチャート図を状態遷移表に変換する場合を例に、以降の処理を説明する。
【００９０】
先ず、ステップＳ１２０１では、状態遷移情報更新部１０３は、以降の処理で用いる変数ｍ、ｎを共に０に初期化する。次に、ステップＳ１２０２では、ステートチャート図に定義されるすべての状態を取り出し、Ｓｔ［］とする。図７（ｂ）の具体例では、３つの状態が定義されているため、図２（ｂ）の列３０１〜列３０３が取り出される。
【００９１】
ステップＳ１２０３では状態遷移情報更新部１０３は、ステートチャート図に定義されるすべてのイベントを取り出し、Ｅｖ［］とする。図７（ｂ）の具体例では、３つのイベントが定義されているため、図２（ｂ）の行３０４〜行３０６が生成される。
【００９２】
そして状態遷移情報更新部１０３は、ステップＳ１２０４〜Ｓ１２１２までの各ステップの処理を、ステップＳ１２０２で取り出した状態の数（ここでは３つ）だけ繰り返す。
【００９３】
また、状態遷移情報更新部１０３は、ステップＳ１２０５〜Ｓ１２１０の各ステップの処理を、ステップＳ１２０３で取り出したイベントの数（ここでは３つ）だけ繰り返す。
【００９４】
次に、ステップＳ１２０６では、選択中の状態Ｓｔ［ｍ］が選択中のイベントＥｖ［ｎ］を受け付け可能か否かを判定する。係る判定は、ステートチャート図を参照し、状態Ｓｔ［ｍ］を遷移元とするイベントＥｖ［ｎ］が定義されていれば、受け付け可能と判定する。一方、状態Ｓｔ［ｍ］を遷移元とするイベントＥｖ［ｎ］が定義されていなければ、受け付け不可能と判定する。例えば、図７（ｂ）の具体例では、状態Ｓｔ［ｍ］として「Ａｃｔｉｖｅ」が選択され、イベントＥｖ［ｎ］として「ｅｖＳｕｓｐｅｎｄ」が選択された場合には、受け付け可能と判定する。一方、状態Ｓｔ［ｍ］として「Ａｃｔｉｖｅ」が選択され、イベントＥｖ［ｎ］として「ｅｖＲｅｓｕｍｅ」が選択された場合には、受け付け不可能と判定する。このような判定の結果、受け付け可能と判定した場合、処理はステップＳ１２０７に進み、受け付け不可能と判定した場合、処理はステップＳ１２０８に進む。
【００９５】
ステップＳ１２０７では状態遷移情報更新部１０３は、ステートマシン図の記述内容に従い、遷移先状態ＴＳｔ［ｍ］［ｎ］、および実行アクションＡ［ｍ］［ｎ］を登録する。ステップＳ１２０８では状態遷移情報更新部１０３は、遷移先状態ＴＳｔ［ｍ］［ｎ］に“Ｅｖｅｎｔ  Ｉｇｎｏｒｅｄ”を、実行アクションＡ［ｍ］［ｎ］にＮＵＬＬを設定する。
【００９６】
ステップＳ１２０９では状態遷移情報更新部１０３は、変数ｎの値を１つインクリメントする。またステップＳ１２１１では状態遷移情報更新部１０３は、変数ｍの値を１つインクリメントする。
【００９７】
以上の説明により、本実施形態によれば、ステートチャート図で表されたコンポーネントの状態遷移情報に、同じくステートチャート図で表されたシステムの状態遷移情報を後から追加することが可能となる。これにより同一コンポーネントをシステムポリシの異なる複数のシステムで利用することが可能になる。
【００９８】
［第３の実施形態］
第１，２の実施形態では、図１に示した各部は全てハードウェアで構成されているものとして説明した。しかし図１に示した構成と等価な構成を、一般のパーソナルコンピュータ（ＰＣ）で実現することもできる。この場合、コンポーネント状態遷移情報格納部１０１、システム状態遷移情報格納部１０２は、ＰＣのＲＡＭやＲＯＭ、ハードディスク、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記憶媒体に記録されている情報を読み出すドライブ装置等、で構成することができる。また、状態遷移情報更新部１０３はコンピュータプログラムとして、ＰＣが有するＲＡＭやＲＯＭ、ハードディスク、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記憶媒体、に記録されることになる。
【００９９】
この場合、ＰＣのＣＰＵはこの記録されているコンピュータプログラムを読み出して実行することで、状態遷移情報更新部１０３の機能を実現することになる。これにより、一般のＰＣを用いて、上記第１，２の実施形態に係る情報処理装置を実現することができる。
【０１００】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005414553.tif 000002
【図２】
0005414553.tif 000003
【図３】
0005414553.tif 000004
【図４】
0005414553.tif 000005
【図５】
0005414553.tif 000006
【図６】
0005414553.tif 000007
【図７】
0005414553.tif 000008
【図８】
0005414553.tif 000009
【図９】
0005414553.tif 000010