(57)【特許請求の範囲】
【請求項１】
複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第１状態遷移表を受け付ける入力手段と、
前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定手段と、
前記第１状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第２状態遷移表を生成する生成手段と、を含み、
前記生成手段は、前記複数の状態と前記状態ごとに当該状態の遷移元となる状態とを表す逆状態遷移表と、前記第１状態遷移表と、を参照して、前記複数の状態からなる状態群と前記指定状態との間の遷移の関係を確認する、状態遷移表縮退装置。
【請求項２】
複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第１状態遷移表を受け付ける入力手段と、
前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定手段と、
前記第１状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第２状態遷移表を生成する生成手段と、
前記指定状態からの遷移の数Ｍを表す遷移数情報を受け付ける遷移数指定手段と、を含み、
前記生成手段は、前記遷移数指定手段が前記遷移数情報を受け付けた場合、前記第１状態遷移表を参照して、前記指定状態から遷移先方向および遷移元方向への遷移数が前記Ｍ以内となる所定状態群間の遷移と、前記所定状態群と前記指定状態との間の遷移と、前記所定状態群と前記状態群との間の遷移と、を表す第３状態遷移表を生成する、状態遷移表縮退装置。
【請求項３】
請求項２に記載の状態遷移表縮退装置において、
前記生成手段は、前記複数の状態と前記状態ごとに当該状態の遷移元となる状態とを表す逆状態遷移表と、前記第１状態遷移表と、を参照して、前記複数の状態からなる状態群と前記指定状態との間の遷移の関係を確認する、状態遷移表縮退装置。
【請求項４】
請求項１または３に記載の状態遷移表縮退装置において、
前記生成手段は、前記第１状態遷移表を参照して、前記逆状態遷移表を生成する、状態遷移表縮退装置。
【請求項５】
請求項１から４のいずれか１項に記載の状態遷移表縮退装置において、
前記生成手段は、前記複数の状態のうち前記指定状態以外の状態群が、前記指定状態の遷移先と前記指定状態の遷移元との間で遷移ルートを構成するか判断し、前記状態群が前記遷移ルートを構成する場合には、前記指定状態以外の状態群を包含する状態と前記指定状態との間の遷移を表すように第２状態遷移表を生成する、状態遷移表縮退装置。
【請求項６】
請求項５に記載の状態遷移表縮退装置において、
前記生成手段は、前記状態群を包含する状態として、前記状態群を合成した状態を生成する、状態遷移表縮退装置。
【請求項７】
請求項６に記載の状態遷移表縮退装置において、
前記生成手段は、前記状態群を合成した状態として、前記指定状態の遷移先となり、かつ前記指定状態の遷移元となる新たな状態を生成する、状態遷移表縮退装置。
【請求項８】
状態遷移表縮退装置での状態遷移表縮退方法であって、
複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第１状態遷移表を受け付ける入力ステップと、
前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定ステップと、
前記第１状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第２状態遷移表を生成する生成ステップと、を含み、
前記生成ステップでは、前記複数の状態と前記状態ごとに当該状態の遷移元となる状態とを表す逆状態遷移表と、前記第１状態遷移表と、を参照して、前記複数の状態からなる状態群と前記指定状態との間の遷移の関係を確認する、状態遷移表縮退方法。
【請求項９】
状態遷移表縮退装置での状態遷移表縮退方法であって、
複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第１状態遷移表を受け付ける入力ステップと、
前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定ステップと、
前記第１状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第２状態遷移表を生成する生成ステップと、
前記指定状態からの遷移の数Ｍを表す遷移数情報を受け付ける遷移数指定ステップと、を含み、
前記生成ステップでは、前記遷移数情報を受け付けた場合、前記第１状態遷移表を参照して、前記指定状態から遷移先方向および遷移元方向への遷移数が前記Ｍ以内となる所定状態群間の遷移と、前記所定状態群と前記指定状態との間の遷移と、前記所定状態群と前記状態群との間の遷移と、を表す第３状態遷移表を生成する、状態遷移表縮退方法。
【請求項１０】
コンピュータに、
複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第１状態遷移表を受け付ける入力手順と、
前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定手順と、
前記第１状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第２状態遷移表を生成する生成手順と、を実行させ、
前記生成手順では、前記複数の状態と前記状態ごとに当該状態の遷移元となる状態とを表す逆状態遷移表と、前記第１状態遷移表と、を参照して、前記複数の状態からなる状態群と前記指定状態との間の遷移の関係を確認する、プログラム。
【請求項１１】
コンピュータに、
複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第１状態遷移表を受け付ける入力手順と、
前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定手順と、
前記第１状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第２状態遷移表を生成する生成手順と、
前記指定状態からの遷移の数Ｍを表す遷移数情報を受け付ける遷移数指定手順と、を実行させ、
前記生成手順では、前記遷移数情報を受け付けた場合、前記第１状態遷移表を参照して、前記指定状態から遷移先方向および遷移元方向への遷移数が前記Ｍ以内となる所定状態群間の遷移と、前記所定状態群と前記指定状態との間の遷移と、前記所定状態群と前記状態群との間の遷移と、を表す第３状態遷移表を生成する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、状態遷移表縮退装置、状態遷移表縮退方法およびプログラムに関する。
【背景技術】
【０００２】
状態遷移表は、一般に、システムまたはシステムの構成要素の状態の変化を表現する表である。
【０００３】
状態遷移表では、表の一方の軸（例えば、タイトル列）に複数の状態をそれぞれ表す複数の状態情報が記述され、他方の軸（例えば、タイトル行）に状態の変化を引き起こしうる複数のイベントをそれぞれ示す複数のイベント情報が記述される。
【０００４】
さらに、状態遷移表では、状態情報とイベント情報がクロスするセルには、その状態情報にて表された状態でそのイベント情報にて表されたイベントが受け取られた際の遷移先となる状態を表す遷移先情報が記述される。
【０００５】
特許文献１には、状態遷移表を表示する情報表示装置が記載されている。この情報表示装置は、記憶部に記憶された状態遷移表を表示する。そして、この情報表示装置で表示される状態遷移表には、遷移先情報からその遷移先情報にて表される状態を表す状態情報へ向いた矢印が表示される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１９８００７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載の情報表示装置は、矢印を付加して状態遷移表を表示するが、この状態遷移表の基本的な形状（例えば、セル数およびセルの配置）は、記憶部に記憶された状態遷移表と同じである。このため、状態数またはイベント数が多くなると、状態遷移表の視認性および理解性が低下するという課題があった。
【０００８】
例えば、現実的なシステムを表現する状態遷移表においては、状態数およびイベント数が非常に多く、状態遷移表のサイズは巨大になる。よって、ユーザは、状態遷移表全体を一度に見ることが難しくなる。さらに、現実のシステムのふるまいは非常に複雑である。このため、次状態を示すセルが現時点の状態を示すセルから離れた場所にある状況では、ユーザが、状態の遷移を確認するために、次状態を示すセルを順に追って見る場合、ユーザは、広範囲に視線を移動して状態遷移図を見なければならない。よって、状態遷移表の視認性および理解性が阻害される。
【０００９】
また、例えば、状態遷移表の視認性を高めるために、注目される状態のみが表示され他の状態が削除（非表示）された状態遷移表が表示されるように、通常の状態遷移表の表示装置が変更された場合、他の状態が削除された状態遷移表では、注目される状態の前後の状態に関する情報が欠落し、状態遷移表としての意味が保存されないために、理解性が向上しない。
【００１０】
本発明の目的は、上述した課題を解決可能な状態遷移表縮退装置、状態遷移表縮退方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の状態遷移表縮退装置は、複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第１状態遷移表を受け付ける入力手段と、前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定手段と、前記第１状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第２状態遷移表を生成する生成手段と、を含む。
【００１２】
本発明の状態遷移表縮退方法は、状態遷移表縮退装置での状態遷移表縮退方法であって、複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第１状態遷移表を受け付ける入力ステップと、前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定ステップと、前記第１状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第２状態遷移表を生成する生成ステップと、を含む。
【００１３】
本発明のプログラムは、コンピュータに、複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第１状態遷移表を受け付ける入力手順と、前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定手順と、前記第１状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第２状態遷移表を生成する生成手順と、を実行させる。
【発明の効果】
【００１４】
本発明によれば、状態遷移表の視認性および理解性を向上させることが可能になる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１実施形態の構成を示すブロック図である。
【図２】状態遷移表の例を示した図である。
【図３】逆状態遷移表の例を示した図である。
【図４】第１実施形態の動作を示す流れ図である。
【図５】第１実施形態の動作を示す流れ図である。
【図６】縮退状態遷移表の例を示す図である。
【図７】本発明の第２実施形態の構成を示すブロック図である。
【図８】第２実施形態の動作を示す流れ図である。
【発明を実施するための形態】
【００１６】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００１７】
（第１実施形態）
図１は、本発明の第１実施形態の状態遷移表縮退装置を示したブロック図である。
【００１８】
図１において、状態遷移表縮退装置は、入力装置１と、処理装置２と、出力装置３と、を含む。
【００１９】
入力装置１は、状態遷移表入力部（以下「入力部」と称する）１１と、表示状態指定部（以下「指定部」と称する）１２と、を含む。
【００２０】
処理装置２は、状態遷移表管理部（以下「管理部」と称する）２１と、逆状態遷移表作成部（以下「作成部」と称する）２２と、逆状態遷移表管理部（以下「管理部」と称する）２３と、表示状態管理部（以下「管理部」と称する）２４と、非表示状態合成部（以下「合成部」と称する）２５と、状態遷移表縮退部（以下「縮退部」と称する）２６と、を含む。
【００２１】
出力装置３は、状態遷移表出力部（以下「出力部」と称する）３１を含む。
【００２２】
入力部１１は、一般的に入力手段と呼ぶことができる。入力部１１は、状態遷移表を受け付ける。入力部１１にて受け付けられる状態遷移表は、一般的に第１状態遷移表と呼ぶことができる。なお、入力部１１は、状態遷移表を作成する機能を持ったものでもよいし、作成済みの状態遷移表のデータを指定することによって、その状態遷移表を受け付けるものでもよい。
【００２３】
状態遷移表は、複数の状態（例えば、３つ以上の状態）からなる状態群と、状態ごとにその状態からの遷移先となる状態と、を表す。
【００２４】
状態遷移表では、表の一方の軸に、状態のそれぞれの状態名（状態識別情報）が記述され、また、他方の軸に、状態の変化を引き起こしうる複数のイベントのそれぞれのイベント名（イベント識別情報）が記述される。
【００２５】
表の一方の軸は、例えばタイトル列であり、表の他方の軸は、例えばタイトル行である。なお、表の一方の軸がタイトル行であり、表の他方の列がタイトル行であってもよい。
【００２６】
状態遷移表のセルのうち、タイトル列ともタイトル行とも異なるセルには、そのセルに対応する状態でそのセルに対応するイベントが受け付けられたときにおける状態の遷移先となる状態の名称（以下「遷移先状態名」と称する）が記述される。
【００２７】
図２は、状態遷移表の一例を示した図である。図２に示した状態遷移表では、タイトル行（先頭行）に複数のイベント名（ｅ１〜ｅ４）が記述され、タイトル列（最左列）に複数の状態名（Ｓ１〜Ｓ４）が記述されている。
【００２８】
指定部１２は、一般的に指定手段と呼ぶことができる。指定部１２は、状態遷移表に示された複数の状態のいずれかを指定状態として表す入力情報を受け付ける。
【００２９】
管理部２１は、例えばメモリであり、入力部１１により入力された状態遷移表を保持する。
【００３０】
作成部２２は、管理部２１内の状態遷移表を参照して、逆状態遷移表を作成する。
【００３１】
逆状態遷移表は、状態遷移表に表された複数の状態と、その状態ごとに、その状態への遷移元となる状態と、を表す。
【００３２】
例えば、逆状態遷移表では、表の一方の軸に、状態遷移表に記述された複数の状態名が記述され、また、他方の軸に、状態遷移表に記述された複数のイベント名が記述される。
【００３３】
表の一方の軸は、例えばタイトル列であり、表の他方の軸は、例えばタイトル行である。なお、表の一方の軸がタイトル行であり、表の他方の列がタイトル行であってもよい。
【００３４】
逆状態遷移表のセルのうち、タイトル列ともタイトル行とも異なるセルには、そのセルに対応するイベントを受け取ってそのセルに対応する状態に遷移する前の状態の名称（以下「遷移元状態名」と称する）が記述される。逆状態遷移表のセルに記載された複数の遷移元状態名は、一般的に遷移元情報と呼ぶことができる。
【００３５】
図３は、図２に示す状態遷移表の逆状態遷移表を示した図である。図３に示した逆状態遷移表では、タイトル行（先頭行）に複数のイベント名（ｅ１〜ｅ４）が記述され、タイトル列（最左列）に複数の状態名（Ｓ１〜Ｓ４）が記述されている。
【００３６】
管理部２３は、例えばメモリであり、作成部２２にて作成された逆状態遷移表を保持する。
【００３７】
管理部２４は、例えばメモリであり、指定部１２が受け付けた入力情報を保持する。
【００３８】
合成部２５は、管理部２１と管理部２３と管理部２４とを参照して、状態遷移表内の状態群のうち指定状態以外の状態を包含した状態（以下「特定状態」と称する）を合成する。
【００３９】
縮退部２６は、管理部２４内の入力情報が表す指定状態と、合成部２５が合成した特定状態と、の間の遷移を表す、管理部２１内の状態遷移表よりも退縮された状態遷移表を作成する。この退縮された状態遷移表（以下「退縮状態遷移表」と称する）は、一般的に第２状態遷移表と呼ぶことができる。
【００４０】
退縮状態遷移表では、表の一方の軸に、指定状態と特定状態のそれぞれの状態名が記述され、また、他方の軸に、指定状態から特定状態への遷移を引き起こすイベント名と、特定状態から指定状態への遷移を引き起こすイベント名とが記述される。
【００４１】
表の一方の軸は、例えばタイトル列であり、表の他方の軸は、例えばタイトル行である。なお、表の一方の軸がタイトル行であり、表の他方の列がタイトル行であってもよい。
【００４２】
退縮状態遷移表のセルのうち、タイトル列ともタイトル行とも異なるセルには、そのセルに対応する状態でそのセルに対応するイベントが受け付けられたときにおける状態の遷移先となる状態の名称（遷移先状態名）が記述される。
【００４３】
出力部３１は、例えば表示部またはプリンタであり、縮退部２６が作成した退縮状態遷移表を出力（例えば、表示または印刷）する。
【００４４】
なお、図１に示した状態遷移表出力装置は、例えば、コンピュータシステムであり、コンピュータが読み取り可能な記録媒体に記録されたプログラムを読み取り実行することにより、入力装置１、処理装置２、および、出力装置３として機能する。なお、入力装置１、処理装置２および出力装置３のそれぞれは、専用のハードウェアにより実現されてもよい。また、処理装置２は、一般的に生成手段と呼ぶことができる。
【００４５】
次に、動作を説明する。
【００４６】
入力部１１は、状態遷移表を受け付けると、その状態遷移表を管理部２１に送る。管理部２１は、状態遷移表を受け付けると、その状態遷移表を保持する。
【００４７】
指定部１２は、入力情報を受け付けると、その入力情報を管理部２４に送る。管理部２４は、入力情報を受け付けると、その入力情報を保持する。
【００４８】
作成部２２は、管理部２１内の状態遷移表を読み出し、その状態遷移表に基づいて逆状態遷移表を作成し、その逆状態遷移表を管理部２３に送る。管理部２３は、逆状態遷移表を受け付けると、その逆状態遷移表を保持する。
【００４９】
図４は、作成部２２の動作を説明するためのフローチャートである。
【００５０】
作成部２２は、管理部２１内の状態遷移表を読み出し、その状態遷移表をSTとする（ステップＡ１）。
【００５１】
続いて、作成部２２は、STと同じタイトル行（先頭行）および同じタイトル列（最左列）を持ち、その他の各セルが空である表を作成し、その表をST'とする（ステップＡ２）。
【００５２】
続いて、作成部２２は、STの各行について、１行目から順に（ステップＡ３）、次の処理を行う。
【００５３】
作成部２２は、行ごとに、STの各列を順に調べていく（ステップＡ５）。
【００５４】
調べられている列のセルに遷移先状態名があれば、作成部２２は、その遷移先状態名を状態名として示すST'内の行のセルのうち、ST内でその遷移先状態名が記述された列に存在するイベント名と同じイベント名に対応するセルに、ST内でその遷移先状態名が記述された行に存在する状態名を記入する（ステップＡ６）。
【００５５】
作成部２２は、同一行内の全ての列を調べ終えたら、次の行を同様に調べる。全ての行についての調査が終了すれば、逆状態遷移表ST'は完成するので、作成部２２は、逆状態遷移表ST'を、管理部２３に格納する（ステップＡ８）。
【００５６】
続いて、合成部２５は、管理部２１内の状態遷移表と、管理部２３内の逆状態遷移表と、管理部２４内の入力情報と、を参照して、指定状態以外の状態を縮退するために、指定状態以外の状態を合成する。
【００５７】
図５は、合成部２５の動作を説明するためのフローチャートである。
【００５８】
合成部２５は、管理部２４内の入力情報にて表された指定状態をSとする（ステップＢ１）。
【００５９】
合成部２５は、管理部２１中の状態遷移表を読み出し、その状態遷移表をSTとし、管理部２３中の逆状態遷移表を読み出し、その逆状態遷移表をRSTとする（ステップＢ２）。
【００６０】
続いて、合成部２５は、Sの次状態の状態名Siと、SからSの次状態への遷移を引き起こすイベントのイベント名eiと、の組（Si，ei）を、STのセルを順に検索して求める。なお、組（Si，ei）は複数存在する可能性があるので、合成部２５は、組（Si，ei）の集合｛（Si，ei）｝を求める（ステップＢ３）。
【００６１】
続いて、合成部２５は、Sの前状態の状態名RSjと、Sの前状態からSへの遷移を引き起こすイベントのイベント名rejと、の組（RSj，rej）を、RSTのセルを順に検索して求める。なお、組（RSj，rej）は複数存在する可能性があるので、合成部２５は、組（RSj，rej）の集合｛（RSj，rej）｝を求める（ステップＢ４）。
【００６２】
続いて、合成部２５は、集合｛（Si，ei）｝に含まれる任意のSiと集合｛（RSj，rej）｝に含まれる任意のRSjについて、STを参照してSiからSを通らずにRSjに到達できるかを調べる。合成部２５は、STを参照して、Siを表す状態名に対応する行中に現れる次状態（遷移先状態）を調べ、その次状態を表す状態名に対応する行中に現れる次状態（遷移先状態）を調べる、という作業を繰り返して、SiからSを通らずにRSjに到達できるかを調べる。
【００６３】
SiからSを通らずにRSjに到達できることがわかれば、RSjとSiは合成される候補となり、合成部２５は、合成候補（rej，（RSj，Si），ei）を作る（ステップＢ５）。なお、合成候補（rej，（RSj，Si），ei）は、複数存在する可能性がある。
【００６４】
続いて、合成部２５は、複数の合成候補（rej，（RSj，Si），ei）のうち、Siを共有している合成候補（rej，（RSj，Si），ei）があれば、Siを共有している合成候補（rej，（RSj，Si），ei）をまとめて、合成候補集合（｛rej｝，（｛RSj｝，Si），ei）を求める。合成部２５は、複数の合成候補（rej，（RSj，Si），ei）のうち、他の合成候補（rej，（RSj，Si），ei）とSiを共有していない合成候補（rej，（RSj，Si），ei）を、そのまま残す（ステップＢ６）。
【００６５】
続いて、合成部２５は、合成候補集合（｛rej｝，（｛RSj｝，Si），ei）と、いずれの合成候補集合（｛rej｝，（｛RSj｝，Si），ei）にも属していない合成候補（rej，（RSj，Si），ei）と、のそれぞれについて、Sの前状態の集合｛RSj｝とSの次状態Siとの合成を行い、その合成結果をそれぞれ状態（｛rej｝，S'i，ei）とする（ただし、状態S'iは、｛rej｝の夫々のイベントrejによりSに遷移し、Sはイベントeiにより状態S'iに遷移する）（ステップＢ７）。
【００６６】
続いて、縮退部２６は、管理部２４に格納された入力情報が表す指定状態と、合成部２５が合成した状態（特定状態）（｛rej｝，S'i，ri）と、の間の遷移を示す状態遷移表を作成する。
【００６７】
続いて、出力部３１は、縮退部２６が作成した状態遷移表を出力（例えば、表示または印刷）する。
【００６８】
次に、具体例に基づいて動作を説明する。
【００６９】
図２に示す状態遷移図が、入力部１１に入力されたとする。また、指定部１２が、例えばユーザからの入力に基づいて、指定状態としてS1を指定した入力情報を受け付けたとする。
【００７０】
作成部２２は、入力された状態遷移図を元に逆状態遷移表を生成する。生成された逆状態遷移表は、図３のようになる。
【００７１】
合成部２５は、S1の次状態と、S1の次状態への遷移を引き起こすイベントと、の組の集合を、状態遷移表（図２）を用いて求める（図５のステップＢ３）。ここでは、S1の次状態はS2しかなく、S1の次状態（S2）への遷移を引き起こすイベントはe1であるので、合成部２５は、集合｛（S2，e1）｝を求める。
【００７２】
次に、合成部２５は、S1の前状態と、S1の前状態がS1に遷移する際に起こったイベントと、の組の集合を、逆状態遷移表（図３）を用いて求める（図５のステップＢ４）。ここでは、S1の前状態はS4しかなく、S1の前状態（S4）がS1に遷移する際に起こったイベントはe4であるので、合成部２５は、集合｛（S4，e4）｝を求める。
【００７３】
合成部２５は、S2（S1の次状態）からS4（S1の前状態）までS1を通らずに到達できるかを、状態遷移表（図２）をたどって調べる。S2はS3に遷移し、S3はS4に遷移するので、S2からS4までS1を通らずに状態が遷移することがわかる。したがって、合成部２５は、S2からS4までの状態を、合成候補群（e4，（S4，S2），e1）とする（図１のステップＢ５）。
【００７４】
合成部２５は、合成候補群（e4，（S4，S2），e1）の合成を行い、合成された状態（e4，S'2，e1）、つまりイベントe4によりS1に遷移し、イベントe1によりS1から遷移される状態S'2（特定状態）が得られる（図１のステップＢ７）。
【００７５】
縮退部２６は、S1とS'2の間の遷移を示す縮退状態遷移表を作成する。図６は、S1とS'2の間の遷移を示す縮退状態遷移表を示した説明図である。
【００７６】
なお、上記具体例では、指定状態以外の状態間で遷移ルートを構成する場合に、それらを包含する状態群を処理装置２が作る例を示したが、遷移ルートが構成されない場合、処理装置２は、単純に、遷移元→指定状態→遷移先を示す状態遷移表を作成する。
【００７７】
例えば、S0→S1→S2→S3という遷移を表わす状態遷移表があり、S1を表示する指定状態とした場合、生成される縮退した状態遷移表は、S0→S1→S2という遷移を表わす状態遷移表になる。
【００７８】
また、上記具体例では、例として、遷移先から遷移元への遷移ルートが構成されるかどうかを調べているが、処理装置２は、遷移元から遷移先へ指定状態を通らずに遷移ルートが構成される場合も縮退を実施し、遷移元（あるいは遷移先）が複数あった場合に、それら相互の間で遷移ルートが構成されれば、それら状態群の縮退も実施する。
【００７９】
次に、本実施形態の効果について説明する。
【００８０】
本実施形態では、合成部２５が指定状態以外の状態を合成し、縮退部２６が合成部２５の合成結果に基づいて状態遷移表を縮退する。換言すると、処理装置２は、状態遷移表を参照して、複数の状態からなる状態群と指定状態との間の遷移を表す縮退状態遷移表を生成する。
【００８１】
よって、指定状態以外の状態の群については、状態群相互の遷移が省略して出力（例えば、表示）され、非出力（例えば、非表示）の状態を包含した状態（異なる状態を包含した縮退状態）を合成することにより、状態変化全体の意味を保存したまま詳細については縮退して非出力（例えば、非表示）になる。
【００８２】
このため、例えば、表示される状態を減少でき、状態遷移表の視認性・理解性を向上することができる。
【００８３】
また、本実施形態では、処理装置２は、複数の状態のうち指定状態以外の状態群が、指定状態の遷移先と指定状態の遷移元との間で遷移ルートを構成するか判断し、その状態群が遷移ルートを構成する場合、その状態群を包含する状態と指定状態との間の遷移を表す縮退状態遷移表を生成する。
【００８４】
本実施形態では、処理装置２は、状態群を包含する状態として、その状態群を合成した状態を生成する。例えば、処理装置２は、状態群を合成した状態として、指定状態の遷移先となり、かつ指定状態の遷移元となる新たな状態（特定状態）を生成する。
【００８５】
また、本実施形態では、処理装置２は、逆状態遷移表と状態遷移表とを参照して、状態群が遷移ルートを構成するか判断する。また、処理装置２は、状態遷移表を参照して、逆状態遷移表を生成する。この場合、状態群の特定が容易になる。
【００８６】
（第２実施形態）
次に、本発明の第２実施形態について図面を参照して詳細に説明する。
【００８７】
図７は、本発明の第２実施形態の状態遷移表縮退装置を示したブロック図である。図７において、図１に示したものと同一構成のものには同一符号を付してある。
【００８８】
第２実施形態では、入力装置１００が、図１に示された入力部１１と指定部１２に加えて、表示状態深さ指定部（以下「深さ指定部」と称する）１３を含む。
【００８９】
また、処理装置２００は、管理部２１と、作成部２２と、管理部２３と、管理部２４Ａと、合成部２５Ａと、縮退部２６Ａと、を含む。
【００９０】
出力装置３００は、出力部３１Ａを含む。
【００９１】
深さ指定部１３は、一般的に遷移数指定手段と呼ぶことができる。
【００９２】
深さ指定部１３は、指定状態からの遷移の数Ｍを表す遷移数情報を受け付ける。
【００９３】
遷移数情報は、指定状態の遷移元および遷移先の状態について、遷移の深さがいくつまでの状態をそのまま表示するかを指定する。例えば、遷移数情報が、深さ＝２を指定すれば、指定状態に直接遷移する状態と、さらにその状態のひとつ前の状態と、指定状態から直接遷移する状態と、さらにその状態のひとつ先の状態までが、そのまま表示されることになる。
【００９４】
管理部２４Ａは、指定部１２が受け付けた入力情報と、深さ指定部１３が受け付けた遷移数情報と、を受け付ける。
【００９５】
合成部２５Ａは、図１に示した合成部２５と同一の機能を有し、さらに、以下の機能を有する。
【００９６】
合成部２５Ａは、深さ指定部１３が遷移数情報を受け付けた場合、状態遷移表を参照して、複数の状態のうち、指定状態から遷移先方向および遷移元方向への遷移数がＭ以内となる所定状態群と指定状態とのいずれとも異なる特定状態群を特定する。
【００９７】
合成部２５Ａは、特定状態群を包含する状態（以下「合成状態」と称する）を合成する。
【００９８】
例えば、合成部２５Ａは、特定状態群が、指定状態から遷移先方向へＭ回遷移した遷移先と指定状態から遷移元方向へＭ回遷移した遷移元との間で特定遷移ルートを構成するか判断する。
【００９９】
合成部２５Ａは、特定状態群が特定遷移ルートを構成する場合、合成状態を合成する。
【０１００】
縮退部２６Ａは、図１に示した縮退部２６と同一の機能を有し、さらに、以下の機能を有する。
【０１０１】
縮退部２６Ａは、合成状態が合成された場合、合成状態と所定状態群と指定状態との間の遷移を表す状態遷移表（以下「部分縮退状態遷移表」と称する）を生成する。
【０１０２】
出力部３１Ａは、図１に示した出力部３１と同一の機能を有し、さらに、以下の機能を有する。出力部３１Ａは、部分縮退状態遷移表が作成された場合、その部分縮退状態遷移表を出力（例えば、表示または印刷）する。
【０１０３】
なお、図７に示した状態遷移表出力装置は、例えば、コンピュータシステムであり、コンピュータが読み取り可能な記録媒体に記録されたプログラムを読み取り実行することにより、入力装置１００、処理装置２００、および、出力装置３００として機能する。なお、入力装置１００、処理装置２００および出力装置３００のそれぞれは、専用のハードウェアにより実現されてもよい。また、処理装置２００は、一般的に生成手段と呼ぶことができる。
【０１０４】
次に、動作を説明する。
【０１０５】
入力部１１は、状態遷移表を受け付けると、その状態遷移表を管理部２１に送る。管理部２１は、状態遷移表を受け付けると、その状態遷移表を保持する。
【０１０６】
作成部２２は、管理部２１内の状態遷移表を読み出し、その状態遷移表に基づいて逆状態遷移表を作成し、その逆状態遷移表を管理部２３に送る。管理部２３は、逆状態遷移表を受け付けると、その逆状態遷移表を保持する。
【０１０７】
指定部１２は、入力情報を受け付けると、その入力情報を管理部２４Ａに送る。管理部２４Ａは、入力情報を受け付けると、その入力情報を保持する。以下、入力情報に表された指定状態をSとする。
【０１０８】
深さ指定部１３は、遷移数情報を受け付けると、その遷移数情報を管理部２４Ａに送る。
【０１０９】
管理部２４Ａは、遷移数情報を受け付けると、まず、管理部２１内の状態遷移表を参照して、Sから遷移数情報が表す遷移の数Ｍ（深さ）だけ遷移先の方向にたどり、そのたどられた状態を表す情報（以下「第１情報」と称する）を保持する。管理部２４Ａは、Sから遷移先方向に深さＭ分先にある状態（例えば深さ「２」であれば、Sから状態遷移表を２回たどった先の状態）をSFとする。
【０１１０】
続いて、管理部２４Ａは、管理部２３内の逆状態遷移表を参照して、Sから遷移数情報が表す遷移の数Ｍ（深さ）だけ遷移元の方向にたどり、そのたどられた状態を表す情報（以下「第２情報」と称する）を保持する。管理部２４Ａは、Sから遷移元方向に深さＭ分先にある状態（例えば深さ「２」であれば、Sから逆状態遷移表を２回たどった先の状態）をBFとする。
【０１１１】
続いて、合成部２５Ａは、指定状態以外の状態を縮退するために合成を行う。
【０１１２】
図８は、合成部２５Ａの動作を説明するためのフローチャートである。
【０１１３】
合成部２５Ａは、管理部２４Ａに格納された、指定状態から深さ分先の状態FSと、指定状態から深さ分遷移元をたどった状態BSと、を読み出す（ステップＣ１）。
【０１１４】
続いて、合成部２５Ａは、管理部２１中の状態遷移表を読み出し、その状態遷移表をSTとし、管理部２３中の逆状態遷移表を読み出し、その逆状態遷移表をRSTとする（ステップＣ２）。
【０１１５】
続いて、合成部２５Ａは、FSの次状態の状態名と、FSからFSの次状態への遷移を引き起こすイベントのイベント名と、の組（Si，ei）を、STのセルを順に検索して求める。なお、組（Si，ei）は複数存在する可能性があるので、合成部２５Ａは、組（Si，ei）の集合｛（Si，ei）｝を求める（ステップＣ３）。
【０１１６】
続いて、合成部２５Ａは、BSの前状態の状態名と、BSの前状態からBSへの遷移を引き起こすイベントのイベント名と、の組（RSj，rej）を、RSTのセルを順に検索して求める。なお、組（RSj，rej）は複数存在する可能性があるので、合成部２５Ａは、組（RSj，rej）の集合｛（RSj, rej）｝を求める（ステップＣ４）。
【０１１７】
続いて、合成部２５Ａは、集合｛（Si，ei）｝に含まれる任意のSiと集合｛（RSj，ej）｝に含まれる任意のRSjについて、STを参照してSiからSを通らずにRSjに到達できるかを調べる。合成部２５Ａは、STを参照して、Siを表す状態名に対応する行中に現れる次状態（遷移先状態）を調べ、その次状態を表す状態名に対応する行中に現れる次状態（遷移先状態）を調べる、という作業を繰り返して、SiからSを通らずにRSjに到達できるかを調べる。
【０１１８】
SiからSを通らずにRSjに到達できることがわかれば、RSjとSiは合成される候補となり、合成部２５Ａは、合成候補（rej，（RSj，Si），ei）を作る（ステップＣ５）。
【０１１９】
続いて、合成部２５Ａは、複数の合成候補（rej，（RSj，Si），ei）のうち、Siを共有している合成候補（rej，（RSj，Si），ei）があれば、Siを共有している合成候補（rej，（RSj，Si），ei）をまとめて、合成候補集合（｛rej｝，（｛RSj｝，Si），ei）を求める。合成部２５Ａは、複数の合成候補（rej，（RSj，Si），ei）のうち、他の合成候補（rej，（RSj，Si），ei）とSiを共有していない合成候補（rej，（RSj，Si），ei）を、そのまま残す（ステップＣ６）。
【０１２０】
続いて、合成部２５Ａは、合成候補集合（｛rej｝，（｛RSj｝，Si），ei）と、いずれの合成候補集合（｛rej｝，（｛RSj｝，Si），ei）にも属していない合成候補（rej，（RSj，Si），ei）と、のそれぞれについて、BSの前状態の集合｛RSj｝とFSの次状態Siとの合成を行い、その合成結果をそれぞれ状態（｛rej｝，S'i，ei）とする（ただし、状態S'iは、｛rej｝の夫々のイベントrejによりBSに遷移し、FSはイベントeiにより状態S'iに遷移する）（ステップＣ７）。
【０１２１】
続いて、縮退部２６Ａは、管理部２４Ａ内の入力情報が表す指定状態と、管理部２４Ａ内の第１情報が表す状態と、管理部２４Ａ内の第２情報が表す状態と、合成部２５Ａが合成した状態（｛rej｝，S'i，ei）と、の間の遷移を示す部分縮退状態遷移表を作成する。
【０１２２】
続いて、出力部３１Ａは、縮退部２６Ａが作成した部分縮退状態遷移表を出力（例えば、表示または印刷）する。
【０１２３】
本実施形態によれば、深さ指定部１３により指定される深さ分の状態がそのまま詳細に表示され、その他の状態の表示が縮退される。よって、本実施形態では、第１実施形態の効果に加えて、様々な詳細度で状態遷移表を表示することができ、より視認性や理解性を向上させることができる。
【０１２４】
上記各実施形態は、設計時に作成される状態遷移表の分析において、状態遷移表の視認性および理解性を向上させる用途に適用できる。また、上記各実施形態は、状態遷移表に基づいて設計されたプログラムのテストまたは検証におけるデバッグ時に、特定の状態の前後について詳細に検討するため、他の状態を縮退して表示させるという用途に適用できる。
【０１２５】
以上説明した各実施形態において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【符号の説明】
【０１２６】
１、１００  入力装置
２、２００  処理装置
３、３００  出力装置
１１  状態遷移表入力部
１２  表示状態指定部
１３  表示状態深さ指定部
２１  状態遷移表管理部
２２  逆状態遷移表作成部
２３  逆状態遷移表管理部
２４、２４Ａ  表示状態管理部
２５、２５Ａ  非表示状態合成部
２６、２６Ａ  状態遷移表縮退部
３１、３１Ａ  状態遷移表出力部
【図１】
0005471385.tif 000002
【図２】
0005471385.tif 000003
【図３】
0005471385.tif 000004
【図４】
0005471385.tif 000005
【図５】
0005471385.tif 000006
【図６】
0005471385.tif 000007
【図７】
0005471385.tif 000008
【図８】
0005471385.tif 000009