状態遷移表縮退装置、状態遷移表縮退方法およびプログラム
【課題】状態遷移表の視認性および理解性を向上させることが可能な状態遷移表出力装置、状態遷移表出力方法およびプログラムを提供する。
【解決手段】状態遷移表縮退装置は、複数の状態からなる状態群と前記状態ごとに当該状態からの遷移先となる状態と、を表す第1状態遷移表を受け付ける入力手段と、前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定手段と、前記第1状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第2状態遷移表を生成する生成手段と、を含む。
【解決手段】状態遷移表縮退装置は、複数の状態からなる状態群と前記状態ごとに当該状態からの遷移先となる状態と、を表す第1状態遷移表を受け付ける入力手段と、前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定手段と、前記第1状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第2状態遷移表を生成する生成手段と、を含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、状態遷移表縮退装置、状態遷移表縮退方法およびプログラムに関する。
【背景技術】
【0002】
状態遷移表は、一般に、システムまたはシステムの構成要素の状態の変化を表現する表である。
【0003】
状態遷移表では、表の一方の軸(例えば、タイトル列)に複数の状態をそれぞれ表す複数の状態情報が記述され、他方の軸(例えば、タイトル行)に状態の変化を引き起こしうる複数のイベントをそれぞれ示す複数のイベント情報が記述される。
【0004】
さらに、状態遷移表では、状態情報とイベント情報がクロスするセルには、その状態情報にて表された状態でそのイベント情報にて表されたイベントが受け取られた際の遷移先となる状態を表す遷移先情報が記述される。
【0005】
特許文献1には、状態遷移表を表示する情報表示装置が記載されている。この情報表示装置は、記憶部に記憶された状態遷移表を表示する。そして、この情報表示装置で表示される状態遷移表には、遷移先情報からその遷移先情報にて表される状態を表す状態情報へ向いた矢印が表示される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−198007号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1に記載の情報表示装置は、矢印を付加して状態遷移表を表示するが、この状態遷移表の基本的な形状(例えば、セル数およびセルの配置)は、記憶部に記憶された状態遷移表と同じである。このため、状態数またはイベント数が多くなると、状態遷移表の視認性および理解性が低下するという課題があった。
【0008】
例えば、現実的なシステムを表現する状態遷移表においては、状態数およびイベント数が非常に多く、状態遷移表のサイズは巨大になる。よって、ユーザは、状態遷移表全体を一度に見ることが難しくなる。さらに、現実のシステムのふるまいは非常に複雑である。このため、次状態を示すセルが現時点の状態を示すセルから離れた場所にある状況では、ユーザが、状態の遷移を確認するために、次状態を示すセルを順に追って見る場合、ユーザは、広範囲に視線を移動して状態遷移図を見なければならない。よって、状態遷移表の視認性および理解性が阻害される。
【0009】
また、例えば、状態遷移表の視認性を高めるために、注目される状態のみが表示され他の状態が削除(非表示)された状態遷移表が表示されるように、通常の状態遷移表の表示装置が変更された場合、他の状態が削除された状態遷移表では、注目される状態の前後の状態に関する情報が欠落し、状態遷移表としての意味が保存されないために、理解性が向上しない。
【0010】
本発明の目的は、上述した課題を解決可能な状態遷移表縮退装置、状態遷移表縮退方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0011】
本発明の状態遷移表縮退装置は、複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第1状態遷移表を受け付ける入力手段と、前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定手段と、前記第1状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第2状態遷移表を生成する生成手段と、を含む。
【0012】
本発明の状態遷移表縮退方法は、状態遷移表縮退装置での状態遷移表縮退方法であって、複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第1状態遷移表を受け付ける入力ステップと、前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定ステップと、前記第1状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第2状態遷移表を生成する生成ステップと、を含む。
【0013】
本発明のプログラムは、コンピュータに、複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第1状態遷移表を受け付ける入力手順と、前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定手順と、前記第1状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第2状態遷移表を生成する生成手順と、を実行させる。
【発明の効果】
【0014】
本発明によれば、状態遷移表の視認性および理解性を向上させることが可能になる。
【図面の簡単な説明】
【0015】
【図1】本発明の第1実施形態の構成を示すブロック図である。
【図2】状態遷移表の例を示した図である。
【図3】逆状態遷移表の例を示した図である。
【図4】第1実施形態の動作を示す流れ図である。
【図5】第1実施形態の動作を示す流れ図である。
【図6】縮退状態遷移表の例を示す図である。
【図7】本発明の第2実施形態の構成を示すブロック図である。
【図8】第2実施形態の動作を示す流れ図である。
【発明を実施するための形態】
【0016】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【0017】
(第1実施形態)
図1は、本発明の第1実施形態の状態遷移表縮退装置を示したブロック図である。
【0018】
図1において、状態遷移表縮退装置は、入力装置1と、処理装置2と、出力装置3と、を含む。
【0019】
入力装置1は、状態遷移表入力部(以下「入力部」と称する)11と、表示状態指定部(以下「指定部」と称する)12と、を含む。
【0020】
処理装置2は、状態遷移表管理部(以下「管理部」と称する)21と、逆状態遷移表作成部(以下「作成部」と称する)22と、逆状態遷移表管理部(以下「管理部」と称する)23と、表示状態管理部(以下「管理部」と称する)24と、非表示状態合成部(以下「合成部」と称する)25と、状態遷移表縮退部(以下「縮退部」と称する)26と、を含む。
【0021】
出力装置3は、状態遷移表出力部(以下「出力部」と称する)31を含む。
【0022】
入力部11は、一般的に入力手段と呼ぶことができる。入力部11は、状態遷移表を受け付ける。入力部11にて受け付けられる状態遷移表は、一般的に第1状態遷移表と呼ぶことができる。なお、入力部11は、状態遷移表を作成する機能を持ったものでもよいし、作成済みの状態遷移表のデータを指定することによって、その状態遷移表を受け付けるものでもよい。
【0023】
状態遷移表は、複数の状態(例えば、3つ以上の状態)からなる状態群と、状態ごとにその状態からの遷移先となる状態と、を表す。
【0024】
状態遷移表では、表の一方の軸に、状態のそれぞれの状態名(状態識別情報)が記述され、また、他方の軸に、状態の変化を引き起こしうる複数のイベントのそれぞれのイベント名(イベント識別情報)が記述される。
【0025】
表の一方の軸は、例えばタイトル列であり、表の他方の軸は、例えばタイトル行である。なお、表の一方の軸がタイトル行であり、表の他方の列がタイトル行であってもよい。
【0026】
状態遷移表のセルのうち、タイトル列ともタイトル行とも異なるセルには、そのセルに対応する状態でそのセルに対応するイベントが受け付けられたときにおける状態の遷移先となる状態の名称(以下「遷移先状態名」と称する)が記述される。
【0027】
図2は、状態遷移表の一例を示した図である。図2に示した状態遷移表では、タイトル行(先頭行)に複数のイベント名(e1〜e4)が記述され、タイトル列(最左列)に複数の状態名(S1〜S4)が記述されている。
【0028】
指定部12は、一般的に指定手段と呼ぶことができる。指定部12は、状態遷移表に示された複数の状態のいずれかを指定状態として表す入力情報を受け付ける。
【0029】
管理部21は、例えばメモリであり、入力部11により入力された状態遷移表を保持する。
【0030】
作成部22は、管理部21内の状態遷移表を参照して、逆状態遷移表を作成する。
【0031】
逆状態遷移表は、状態遷移表に表された複数の状態と、その状態ごとに、その状態への遷移元となる状態と、を表す。
【0032】
例えば、逆状態遷移表では、表の一方の軸に、状態遷移表に記述された複数の状態名が記述され、また、他方の軸に、状態遷移表に記述された複数のイベント名が記述される。
【0033】
表の一方の軸は、例えばタイトル列であり、表の他方の軸は、例えばタイトル行である。なお、表の一方の軸がタイトル行であり、表の他方の列がタイトル行であってもよい。
【0034】
逆状態遷移表のセルのうち、タイトル列ともタイトル行とも異なるセルには、そのセルに対応するイベントを受け取ってそのセルに対応する状態に遷移する前の状態の名称(以下「遷移元状態名」と称する)が記述される。逆状態遷移表のセルに記載された複数の遷移元状態名は、一般的に遷移元情報と呼ぶことができる。
【0035】
図3は、図2に示す状態遷移表の逆状態遷移表を示した図である。図3に示した逆状態遷移表では、タイトル行(先頭行)に複数のイベント名(e1〜e4)が記述され、タイトル列(最左列)に複数の状態名(S1〜S4)が記述されている。
【0036】
管理部23は、例えばメモリであり、作成部22にて作成された逆状態遷移表を保持する。
【0037】
管理部24は、例えばメモリであり、指定部12が受け付けた入力情報を保持する。
【0038】
合成部25は、管理部21と管理部23と管理部24とを参照して、状態遷移表内の状態群のうち指定状態以外の状態を包含した状態(以下「特定状態」と称する)を合成する。
【0039】
縮退部26は、管理部24内の入力情報が表す指定状態と、合成部25が合成した特定状態と、の間の遷移を表す、管理部21内の状態遷移表よりも退縮された状態遷移表を作成する。この退縮された状態遷移表(以下「退縮状態遷移表」と称する)は、一般的に第2状態遷移表と呼ぶことができる。
【0040】
退縮状態遷移表では、表の一方の軸に、指定状態と特定状態のそれぞれの状態名が記述され、また、他方の軸に、指定状態から特定状態への遷移を引き起こすイベント名と、特定状態から指定状態への遷移を引き起こすイベント名とが記述される。
【0041】
表の一方の軸は、例えばタイトル列であり、表の他方の軸は、例えばタイトル行である。なお、表の一方の軸がタイトル行であり、表の他方の列がタイトル行であってもよい。
【0042】
退縮状態遷移表のセルのうち、タイトル列ともタイトル行とも異なるセルには、そのセルに対応する状態でそのセルに対応するイベントが受け付けられたときにおける状態の遷移先となる状態の名称(遷移先状態名)が記述される。
【0043】
出力部31は、例えば表示部またはプリンタであり、縮退部26が作成した退縮状態遷移表を出力(例えば、表示または印刷)する。
【0044】
なお、図1に示した状態遷移表出力装置は、例えば、コンピュータシステムであり、コンピュータが読み取り可能な記録媒体に記録されたプログラムを読み取り実行することにより、入力装置1、処理装置2、および、出力装置3として機能する。なお、入力装置1、処理装置2および出力装置3のそれぞれは、専用のハードウェアにより実現されてもよい。また、処理装置2は、一般的に生成手段と呼ぶことができる。
【0045】
次に、動作を説明する。
【0046】
入力部11は、状態遷移表を受け付けると、その状態遷移表を管理部21に送る。管理部21は、状態遷移表を受け付けると、その状態遷移表を保持する。
【0047】
指定部12は、入力情報を受け付けると、その入力情報を管理部24に送る。管理部24は、入力情報を受け付けると、その入力情報を保持する。
【0048】
作成部22は、管理部21内の状態遷移表を読み出し、その状態遷移表に基づいて逆状態遷移表を作成し、その逆状態遷移表を管理部23に送る。管理部23は、逆状態遷移表を受け付けると、その逆状態遷移表を保持する。
【0049】
図4は、作成部22の動作を説明するためのフローチャートである。
【0050】
作成部22は、管理部21内の状態遷移表を読み出し、その状態遷移表をSTとする(ステップA1)。
【0051】
続いて、作成部22は、STと同じタイトル行(先頭行)および同じタイトル列(最左列)を持ち、その他の各セルが空である表を作成し、その表をST'とする(ステップA2)。
【0052】
続いて、作成部22は、STの各行について、1行目から順に(ステップA3)、次の処理を行う。
【0053】
作成部22は、行ごとに、STの各列を順に調べていく(ステップA5)。
【0054】
調べられている列のセルに遷移先状態名があれば、作成部22は、その遷移先状態名を状態名として示すST'内の行のセルのうち、ST内でその遷移先状態名が記述された列に存在するイベント名と同じイベント名に対応するセルに、ST内でその遷移先状態名が記述された行に存在する状態名を記入する(ステップA6)。
【0055】
作成部22は、同一行内の全ての列を調べ終えたら、次の行を同様に調べる。全ての行についての調査が終了すれば、逆状態遷移表ST'は完成するので、作成部22は、逆状態遷移表ST'を、管理部23に格納する(ステップA8)。
【0056】
続いて、合成部25は、管理部21内の状態遷移表と、管理部23内の逆状態遷移表と、管理部24内の入力情報と、を参照して、指定状態以外の状態を縮退するために、指定状態以外の状態を合成する。
【0057】
図5は、合成部25の動作を説明するためのフローチャートである。
【0058】
合成部25は、管理部24内の入力情報にて表された指定状態をSとする(ステップB1)。
【0059】
合成部25は、管理部21中の状態遷移表を読み出し、その状態遷移表をSTとし、管理部23中の逆状態遷移表を読み出し、その逆状態遷移表をRSTとする(ステップB2)。
【0060】
続いて、合成部25は、Sの次状態の状態名Siと、SからSの次状態への遷移を引き起こすイベントのイベント名eiと、の組(Si,ei)を、STのセルを順に検索して求める。なお、組(Si,ei)は複数存在する可能性があるので、合成部25は、組(Si,ei)の集合{(Si,ei)}を求める(ステップB3)。
【0061】
続いて、合成部25は、Sの前状態の状態名RSjと、Sの前状態からSへの遷移を引き起こすイベントのイベント名rejと、の組(RSj,rej)を、RSTのセルを順に検索して求める。なお、組(RSj,rej)は複数存在する可能性があるので、合成部25は、組(RSj,rej)の集合{(RSj,rej)}を求める(ステップB4)。
【0062】
続いて、合成部25は、集合{(Si,ei)}に含まれる任意のSiと集合{(RSj,rej)}に含まれる任意のRSjについて、STを参照してSiからSを通らずにRSjに到達できるかを調べる。合成部25は、STを参照して、Siを表す状態名に対応する行中に現れる次状態(遷移先状態)を調べ、その次状態を表す状態名に対応する行中に現れる次状態(遷移先状態)を調べる、という作業を繰り返して、SiからSを通らずにRSjに到達できるかを調べる。
【0063】
SiからSを通らずにRSjに到達できることがわかれば、RSjとSiは合成される候補となり、合成部25は、合成候補(rej,(RSj,Si),ei)を作る(ステップB5)。なお、合成候補(rej,(RSj,Si),ei)は、複数存在する可能性がある。
【0064】
続いて、合成部25は、複数の合成候補(rej,(RSj,Si),ei)のうち、Siを共有している合成候補(rej,(RSj,Si),ei)があれば、Siを共有している合成候補(rej,(RSj,Si),ei)をまとめて、合成候補集合({rej},({RSj},Si),ei)を求める。合成部25は、複数の合成候補(rej,(RSj,Si),ei)のうち、他の合成候補(rej,(RSj,Si),ei)とSiを共有していない合成候補(rej,(RSj,Si),ei)を、そのまま残す(ステップB6)。
【0065】
続いて、合成部25は、合成候補集合({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に遷移する)(ステップB7)。
【0066】
続いて、縮退部26は、管理部24に格納された入力情報が表す指定状態と、合成部25が合成した状態(特定状態)({rej},S'i,ri)と、の間の遷移を示す状態遷移表を作成する。
【0067】
続いて、出力部31は、縮退部26が作成した状態遷移表を出力(例えば、表示または印刷)する。
【0068】
次に、具体例に基づいて動作を説明する。
【0069】
図2に示す状態遷移図が、入力部11に入力されたとする。また、指定部12が、例えばユーザからの入力に基づいて、指定状態としてS1を指定した入力情報を受け付けたとする。
【0070】
作成部22は、入力された状態遷移図を元に逆状態遷移表を生成する。生成された逆状態遷移表は、図3のようになる。
【0071】
合成部25は、S1の次状態と、S1の次状態への遷移を引き起こすイベントと、の組の集合を、状態遷移表(図2)を用いて求める(図5のステップB3)。ここでは、S1の次状態はS2しかなく、S1の次状態(S2)への遷移を引き起こすイベントはe1であるので、合成部25は、集合{(S2,e1)}を求める。
【0072】
次に、合成部25は、S1の前状態と、S1の前状態がS1に遷移する際に起こったイベントと、の組の集合を、逆状態遷移表(図3)を用いて求める(図5のステップB4)。ここでは、S1の前状態はS4しかなく、S1の前状態(S4)がS1に遷移する際に起こったイベントはe4であるので、合成部25は、集合{(S4,e4)}を求める。
【0073】
合成部25は、S2(S1の次状態)からS4(S1の前状態)までS1を通らずに到達できるかを、状態遷移表(図2)をたどって調べる。S2はS3に遷移し、S3はS4に遷移するので、S2からS4までS1を通らずに状態が遷移することがわかる。したがって、合成部25は、S2からS4までの状態を、合成候補群(e4,(S4,S2),e1)とする(図1のステップB5)。
【0074】
合成部25は、合成候補群(e4,(S4,S2),e1)の合成を行い、合成された状態(e4,S'2,e1)、つまりイベントe4によりS1に遷移し、イベントe1によりS1から遷移される状態S'2(特定状態)が得られる(図1のステップB7)。
【0075】
縮退部26は、S1とS'2の間の遷移を示す縮退状態遷移表を作成する。図6は、S1とS'2の間の遷移を示す縮退状態遷移表を示した説明図である。
【0076】
なお、上記具体例では、指定状態以外の状態間で遷移ルートを構成する場合に、それらを包含する状態群を処理装置2が作る例を示したが、遷移ルートが構成されない場合、処理装置2は、単純に、遷移元→指定状態→遷移先を示す状態遷移表を作成する。
【0077】
例えば、S0→S1→S2→S3という遷移を表わす状態遷移表があり、S1を表示する指定状態とした場合、生成される縮退した状態遷移表は、S0→S1→S2という遷移を表わす状態遷移表になる。
【0078】
また、上記具体例では、例として、遷移先から遷移元への遷移ルートが構成されるかどうかを調べているが、処理装置2は、遷移元から遷移先へ指定状態を通らずに遷移ルートが構成される場合も縮退を実施し、遷移元(あるいは遷移先)が複数あった場合に、それら相互の間で遷移ルートが構成されれば、それら状態群の縮退も実施する。
【0079】
次に、本実施形態の効果について説明する。
【0080】
本実施形態では、合成部25が指定状態以外の状態を合成し、縮退部26が合成部25の合成結果に基づいて状態遷移表を縮退する。換言すると、処理装置2は、状態遷移表を参照して、複数の状態からなる状態群と指定状態との間の遷移を表す縮退状態遷移表を生成する。
【0081】
よって、指定状態以外の状態の群については、状態群相互の遷移が省略して出力(例えば、表示)され、非出力(例えば、非表示)の状態を包含した状態(異なる状態を包含した縮退状態)を合成することにより、状態変化全体の意味を保存したまま詳細については縮退して非出力(例えば、非表示)になる。
【0082】
このため、例えば、表示される状態を減少でき、状態遷移表の視認性・理解性を向上することができる。
【0083】
また、本実施形態では、処理装置2は、複数の状態のうち指定状態以外の状態群が、指定状態の遷移先と指定状態の遷移元との間で遷移ルートを構成するか判断し、その状態群が遷移ルートを構成する場合、その状態群を包含する状態と指定状態との間の遷移を表す縮退状態遷移表を生成する。
【0084】
本実施形態では、処理装置2は、状態群を包含する状態として、その状態群を合成した状態を生成する。例えば、処理装置2は、状態群を合成した状態として、指定状態の遷移先となり、かつ指定状態の遷移元となる新たな状態(特定状態)を生成する。
【0085】
また、本実施形態では、処理装置2は、逆状態遷移表と状態遷移表とを参照して、状態群が遷移ルートを構成するか判断する。また、処理装置2は、状態遷移表を参照して、逆状態遷移表を生成する。この場合、状態群の特定が容易になる。
【0086】
(第2実施形態)
次に、本発明の第2実施形態について図面を参照して詳細に説明する。
【0087】
図7は、本発明の第2実施形態の状態遷移表縮退装置を示したブロック図である。図7において、図1に示したものと同一構成のものには同一符号を付してある。
【0088】
第2実施形態では、入力装置100が、図1に示された入力部11と指定部12に加えて、表示状態深さ指定部(以下「深さ指定部」と称する)13を含む。
【0089】
また、処理装置200は、管理部21と、作成部22と、管理部23と、管理部24Aと、合成部25Aと、縮退部26Aと、を含む。
【0090】
出力装置300は、出力部31Aを含む。
【0091】
深さ指定部13は、一般的に遷移数指定手段と呼ぶことができる。
【0092】
深さ指定部13は、指定状態からの遷移の数Mを表す遷移数情報を受け付ける。
【0093】
遷移数情報は、指定状態の遷移元および遷移先の状態について、遷移の深さがいくつまでの状態をそのまま表示するかを指定する。例えば、遷移数情報が、深さ=2を指定すれば、指定状態に直接遷移する状態と、さらにその状態のひとつ前の状態と、指定状態から直接遷移する状態と、さらにその状態のひとつ先の状態までが、そのまま表示されることになる。
【0094】
管理部24Aは、指定部12が受け付けた入力情報と、深さ指定部13が受け付けた遷移数情報と、を受け付ける。
【0095】
合成部25Aは、図1に示した合成部25と同一の機能を有し、さらに、以下の機能を有する。
【0096】
合成部25Aは、深さ指定部13が遷移数情報を受け付けた場合、状態遷移表を参照して、複数の状態のうち、指定状態から遷移先方向および遷移元方向への遷移数がM以内となる所定状態群と指定状態とのいずれとも異なる特定状態群を特定する。
【0097】
合成部25Aは、特定状態群を包含する状態(以下「合成状態」と称する)を合成する。
【0098】
例えば、合成部25Aは、特定状態群が、指定状態から遷移先方向へM回遷移した遷移先と指定状態から遷移元方向へM回遷移した遷移元との間で特定遷移ルートを構成するか判断する。
【0099】
合成部25Aは、特定状態群が特定遷移ルートを構成する場合、合成状態を合成する。
【0100】
縮退部26Aは、図1に示した縮退部26と同一の機能を有し、さらに、以下の機能を有する。
【0101】
縮退部26Aは、合成状態が合成された場合、合成状態と所定状態群と指定状態との間の遷移を表す状態遷移表(以下「部分縮退状態遷移表」と称する)を生成する。
【0102】
出力部31Aは、図1に示した出力部31と同一の機能を有し、さらに、以下の機能を有する。出力部31Aは、部分縮退状態遷移表が作成された場合、その部分縮退状態遷移表を出力(例えば、表示または印刷)する。
【0103】
なお、図7に示した状態遷移表出力装置は、例えば、コンピュータシステムであり、コンピュータが読み取り可能な記録媒体に記録されたプログラムを読み取り実行することにより、入力装置100、処理装置200、および、出力装置300として機能する。なお、入力装置100、処理装置200および出力装置300のそれぞれは、専用のハードウェアにより実現されてもよい。また、処理装置200は、一般的に生成手段と呼ぶことができる。
【0104】
次に、動作を説明する。
【0105】
入力部11は、状態遷移表を受け付けると、その状態遷移表を管理部21に送る。管理部21は、状態遷移表を受け付けると、その状態遷移表を保持する。
【0106】
作成部22は、管理部21内の状態遷移表を読み出し、その状態遷移表に基づいて逆状態遷移表を作成し、その逆状態遷移表を管理部23に送る。管理部23は、逆状態遷移表を受け付けると、その逆状態遷移表を保持する。
【0107】
指定部12は、入力情報を受け付けると、その入力情報を管理部24Aに送る。管理部24Aは、入力情報を受け付けると、その入力情報を保持する。以下、入力情報に表された指定状態をSとする。
【0108】
深さ指定部13は、遷移数情報を受け付けると、その遷移数情報を管理部24Aに送る。
【0109】
管理部24Aは、遷移数情報を受け付けると、まず、管理部21内の状態遷移表を参照して、Sから遷移数情報が表す遷移の数M(深さ)だけ遷移先の方向にたどり、そのたどられた状態を表す情報(以下「第1情報」と称する)を保持する。管理部24Aは、Sから遷移先方向に深さM分先にある状態(例えば深さ「2」であれば、Sから状態遷移表を2回たどった先の状態)をSFとする。
【0110】
続いて、管理部24Aは、管理部23内の逆状態遷移表を参照して、Sから遷移数情報が表す遷移の数M(深さ)だけ遷移元の方向にたどり、そのたどられた状態を表す情報(以下「第2情報」と称する)を保持する。管理部24Aは、Sから遷移元方向に深さM分先にある状態(例えば深さ「2」であれば、Sから逆状態遷移表を2回たどった先の状態)をBFとする。
【0111】
続いて、合成部25Aは、指定状態以外の状態を縮退するために合成を行う。
【0112】
図8は、合成部25Aの動作を説明するためのフローチャートである。
【0113】
合成部25Aは、管理部24Aに格納された、指定状態から深さ分先の状態FSと、指定状態から深さ分遷移元をたどった状態BSと、を読み出す(ステップC1)。
【0114】
続いて、合成部25Aは、管理部21中の状態遷移表を読み出し、その状態遷移表をSTとし、管理部23中の逆状態遷移表を読み出し、その逆状態遷移表をRSTとする(ステップC2)。
【0115】
続いて、合成部25Aは、FSの次状態の状態名と、FSからFSの次状態への遷移を引き起こすイベントのイベント名と、の組(Si,ei)を、STのセルを順に検索して求める。なお、組(Si,ei)は複数存在する可能性があるので、合成部25Aは、組(Si,ei)の集合{(Si,ei)}を求める(ステップC3)。
【0116】
続いて、合成部25Aは、BSの前状態の状態名と、BSの前状態からBSへの遷移を引き起こすイベントのイベント名と、の組(RSj,rej)を、RSTのセルを順に検索して求める。なお、組(RSj,rej)は複数存在する可能性があるので、合成部25Aは、組(RSj,rej)の集合{(RSj, rej)}を求める(ステップC4)。
【0117】
続いて、合成部25Aは、集合{(Si,ei)}に含まれる任意のSiと集合{(RSj,ej)}に含まれる任意のRSjについて、STを参照してSiからSを通らずにRSjに到達できるかを調べる。合成部25Aは、STを参照して、Siを表す状態名に対応する行中に現れる次状態(遷移先状態)を調べ、その次状態を表す状態名に対応する行中に現れる次状態(遷移先状態)を調べる、という作業を繰り返して、SiからSを通らずにRSjに到達できるかを調べる。
【0118】
SiからSを通らずにRSjに到達できることがわかれば、RSjとSiは合成される候補となり、合成部25Aは、合成候補(rej,(RSj,Si),ei)を作る(ステップC5)。
【0119】
続いて、合成部25Aは、複数の合成候補(rej,(RSj,Si),ei)のうち、Siを共有している合成候補(rej,(RSj,Si),ei)があれば、Siを共有している合成候補(rej,(RSj,Si),ei)をまとめて、合成候補集合({rej},({RSj},Si),ei)を求める。合成部25Aは、複数の合成候補(rej,(RSj,Si),ei)のうち、他の合成候補(rej,(RSj,Si),ei)とSiを共有していない合成候補(rej,(RSj,Si),ei)を、そのまま残す(ステップC6)。
【0120】
続いて、合成部25Aは、合成候補集合({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に遷移する)(ステップC7)。
【0121】
続いて、縮退部26Aは、管理部24A内の入力情報が表す指定状態と、管理部24A内の第1情報が表す状態と、管理部24A内の第2情報が表す状態と、合成部25Aが合成した状態({rej},S'i,ei)と、の間の遷移を示す部分縮退状態遷移表を作成する。
【0122】
続いて、出力部31Aは、縮退部26Aが作成した部分縮退状態遷移表を出力(例えば、表示または印刷)する。
【0123】
本実施形態によれば、深さ指定部13により指定される深さ分の状態がそのまま詳細に表示され、その他の状態の表示が縮退される。よって、本実施形態では、第1実施形態の効果に加えて、様々な詳細度で状態遷移表を表示することができ、より視認性や理解性を向上させることができる。
【0124】
上記各実施形態は、設計時に作成される状態遷移表の分析において、状態遷移表の視認性および理解性を向上させる用途に適用できる。また、上記各実施形態は、状態遷移表に基づいて設計されたプログラムのテストまたは検証におけるデバッグ時に、特定の状態の前後について詳細に検討するため、他の状態を縮退して表示させるという用途に適用できる。
【0125】
以上説明した各実施形態において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【符号の説明】
【0126】
1、100 入力装置
2、200 処理装置
3、300 出力装置
11 状態遷移表入力部
12 表示状態指定部
13 表示状態深さ指定部
21 状態遷移表管理部
22 逆状態遷移表作成部
23 逆状態遷移表管理部
24、24A 表示状態管理部
25、25A 非表示状態合成部
26、26A 状態遷移表縮退部
31、31A 状態遷移表出力部
【技術分野】
【0001】
本発明は、状態遷移表縮退装置、状態遷移表縮退方法およびプログラムに関する。
【背景技術】
【0002】
状態遷移表は、一般に、システムまたはシステムの構成要素の状態の変化を表現する表である。
【0003】
状態遷移表では、表の一方の軸(例えば、タイトル列)に複数の状態をそれぞれ表す複数の状態情報が記述され、他方の軸(例えば、タイトル行)に状態の変化を引き起こしうる複数のイベントをそれぞれ示す複数のイベント情報が記述される。
【0004】
さらに、状態遷移表では、状態情報とイベント情報がクロスするセルには、その状態情報にて表された状態でそのイベント情報にて表されたイベントが受け取られた際の遷移先となる状態を表す遷移先情報が記述される。
【0005】
特許文献1には、状態遷移表を表示する情報表示装置が記載されている。この情報表示装置は、記憶部に記憶された状態遷移表を表示する。そして、この情報表示装置で表示される状態遷移表には、遷移先情報からその遷移先情報にて表される状態を表す状態情報へ向いた矢印が表示される。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−198007号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1に記載の情報表示装置は、矢印を付加して状態遷移表を表示するが、この状態遷移表の基本的な形状(例えば、セル数およびセルの配置)は、記憶部に記憶された状態遷移表と同じである。このため、状態数またはイベント数が多くなると、状態遷移表の視認性および理解性が低下するという課題があった。
【0008】
例えば、現実的なシステムを表現する状態遷移表においては、状態数およびイベント数が非常に多く、状態遷移表のサイズは巨大になる。よって、ユーザは、状態遷移表全体を一度に見ることが難しくなる。さらに、現実のシステムのふるまいは非常に複雑である。このため、次状態を示すセルが現時点の状態を示すセルから離れた場所にある状況では、ユーザが、状態の遷移を確認するために、次状態を示すセルを順に追って見る場合、ユーザは、広範囲に視線を移動して状態遷移図を見なければならない。よって、状態遷移表の視認性および理解性が阻害される。
【0009】
また、例えば、状態遷移表の視認性を高めるために、注目される状態のみが表示され他の状態が削除(非表示)された状態遷移表が表示されるように、通常の状態遷移表の表示装置が変更された場合、他の状態が削除された状態遷移表では、注目される状態の前後の状態に関する情報が欠落し、状態遷移表としての意味が保存されないために、理解性が向上しない。
【0010】
本発明の目的は、上述した課題を解決可能な状態遷移表縮退装置、状態遷移表縮退方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0011】
本発明の状態遷移表縮退装置は、複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第1状態遷移表を受け付ける入力手段と、前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定手段と、前記第1状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第2状態遷移表を生成する生成手段と、を含む。
【0012】
本発明の状態遷移表縮退方法は、状態遷移表縮退装置での状態遷移表縮退方法であって、複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第1状態遷移表を受け付ける入力ステップと、前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定ステップと、前記第1状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第2状態遷移表を生成する生成ステップと、を含む。
【0013】
本発明のプログラムは、コンピュータに、複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第1状態遷移表を受け付ける入力手順と、前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定手順と、前記第1状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第2状態遷移表を生成する生成手順と、を実行させる。
【発明の効果】
【0014】
本発明によれば、状態遷移表の視認性および理解性を向上させることが可能になる。
【図面の簡単な説明】
【0015】
【図1】本発明の第1実施形態の構成を示すブロック図である。
【図2】状態遷移表の例を示した図である。
【図3】逆状態遷移表の例を示した図である。
【図4】第1実施形態の動作を示す流れ図である。
【図5】第1実施形態の動作を示す流れ図である。
【図6】縮退状態遷移表の例を示す図である。
【図7】本発明の第2実施形態の構成を示すブロック図である。
【図8】第2実施形態の動作を示す流れ図である。
【発明を実施するための形態】
【0016】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【0017】
(第1実施形態)
図1は、本発明の第1実施形態の状態遷移表縮退装置を示したブロック図である。
【0018】
図1において、状態遷移表縮退装置は、入力装置1と、処理装置2と、出力装置3と、を含む。
【0019】
入力装置1は、状態遷移表入力部(以下「入力部」と称する)11と、表示状態指定部(以下「指定部」と称する)12と、を含む。
【0020】
処理装置2は、状態遷移表管理部(以下「管理部」と称する)21と、逆状態遷移表作成部(以下「作成部」と称する)22と、逆状態遷移表管理部(以下「管理部」と称する)23と、表示状態管理部(以下「管理部」と称する)24と、非表示状態合成部(以下「合成部」と称する)25と、状態遷移表縮退部(以下「縮退部」と称する)26と、を含む。
【0021】
出力装置3は、状態遷移表出力部(以下「出力部」と称する)31を含む。
【0022】
入力部11は、一般的に入力手段と呼ぶことができる。入力部11は、状態遷移表を受け付ける。入力部11にて受け付けられる状態遷移表は、一般的に第1状態遷移表と呼ぶことができる。なお、入力部11は、状態遷移表を作成する機能を持ったものでもよいし、作成済みの状態遷移表のデータを指定することによって、その状態遷移表を受け付けるものでもよい。
【0023】
状態遷移表は、複数の状態(例えば、3つ以上の状態)からなる状態群と、状態ごとにその状態からの遷移先となる状態と、を表す。
【0024】
状態遷移表では、表の一方の軸に、状態のそれぞれの状態名(状態識別情報)が記述され、また、他方の軸に、状態の変化を引き起こしうる複数のイベントのそれぞれのイベント名(イベント識別情報)が記述される。
【0025】
表の一方の軸は、例えばタイトル列であり、表の他方の軸は、例えばタイトル行である。なお、表の一方の軸がタイトル行であり、表の他方の列がタイトル行であってもよい。
【0026】
状態遷移表のセルのうち、タイトル列ともタイトル行とも異なるセルには、そのセルに対応する状態でそのセルに対応するイベントが受け付けられたときにおける状態の遷移先となる状態の名称(以下「遷移先状態名」と称する)が記述される。
【0027】
図2は、状態遷移表の一例を示した図である。図2に示した状態遷移表では、タイトル行(先頭行)に複数のイベント名(e1〜e4)が記述され、タイトル列(最左列)に複数の状態名(S1〜S4)が記述されている。
【0028】
指定部12は、一般的に指定手段と呼ぶことができる。指定部12は、状態遷移表に示された複数の状態のいずれかを指定状態として表す入力情報を受け付ける。
【0029】
管理部21は、例えばメモリであり、入力部11により入力された状態遷移表を保持する。
【0030】
作成部22は、管理部21内の状態遷移表を参照して、逆状態遷移表を作成する。
【0031】
逆状態遷移表は、状態遷移表に表された複数の状態と、その状態ごとに、その状態への遷移元となる状態と、を表す。
【0032】
例えば、逆状態遷移表では、表の一方の軸に、状態遷移表に記述された複数の状態名が記述され、また、他方の軸に、状態遷移表に記述された複数のイベント名が記述される。
【0033】
表の一方の軸は、例えばタイトル列であり、表の他方の軸は、例えばタイトル行である。なお、表の一方の軸がタイトル行であり、表の他方の列がタイトル行であってもよい。
【0034】
逆状態遷移表のセルのうち、タイトル列ともタイトル行とも異なるセルには、そのセルに対応するイベントを受け取ってそのセルに対応する状態に遷移する前の状態の名称(以下「遷移元状態名」と称する)が記述される。逆状態遷移表のセルに記載された複数の遷移元状態名は、一般的に遷移元情報と呼ぶことができる。
【0035】
図3は、図2に示す状態遷移表の逆状態遷移表を示した図である。図3に示した逆状態遷移表では、タイトル行(先頭行)に複数のイベント名(e1〜e4)が記述され、タイトル列(最左列)に複数の状態名(S1〜S4)が記述されている。
【0036】
管理部23は、例えばメモリであり、作成部22にて作成された逆状態遷移表を保持する。
【0037】
管理部24は、例えばメモリであり、指定部12が受け付けた入力情報を保持する。
【0038】
合成部25は、管理部21と管理部23と管理部24とを参照して、状態遷移表内の状態群のうち指定状態以外の状態を包含した状態(以下「特定状態」と称する)を合成する。
【0039】
縮退部26は、管理部24内の入力情報が表す指定状態と、合成部25が合成した特定状態と、の間の遷移を表す、管理部21内の状態遷移表よりも退縮された状態遷移表を作成する。この退縮された状態遷移表(以下「退縮状態遷移表」と称する)は、一般的に第2状態遷移表と呼ぶことができる。
【0040】
退縮状態遷移表では、表の一方の軸に、指定状態と特定状態のそれぞれの状態名が記述され、また、他方の軸に、指定状態から特定状態への遷移を引き起こすイベント名と、特定状態から指定状態への遷移を引き起こすイベント名とが記述される。
【0041】
表の一方の軸は、例えばタイトル列であり、表の他方の軸は、例えばタイトル行である。なお、表の一方の軸がタイトル行であり、表の他方の列がタイトル行であってもよい。
【0042】
退縮状態遷移表のセルのうち、タイトル列ともタイトル行とも異なるセルには、そのセルに対応する状態でそのセルに対応するイベントが受け付けられたときにおける状態の遷移先となる状態の名称(遷移先状態名)が記述される。
【0043】
出力部31は、例えば表示部またはプリンタであり、縮退部26が作成した退縮状態遷移表を出力(例えば、表示または印刷)する。
【0044】
なお、図1に示した状態遷移表出力装置は、例えば、コンピュータシステムであり、コンピュータが読み取り可能な記録媒体に記録されたプログラムを読み取り実行することにより、入力装置1、処理装置2、および、出力装置3として機能する。なお、入力装置1、処理装置2および出力装置3のそれぞれは、専用のハードウェアにより実現されてもよい。また、処理装置2は、一般的に生成手段と呼ぶことができる。
【0045】
次に、動作を説明する。
【0046】
入力部11は、状態遷移表を受け付けると、その状態遷移表を管理部21に送る。管理部21は、状態遷移表を受け付けると、その状態遷移表を保持する。
【0047】
指定部12は、入力情報を受け付けると、その入力情報を管理部24に送る。管理部24は、入力情報を受け付けると、その入力情報を保持する。
【0048】
作成部22は、管理部21内の状態遷移表を読み出し、その状態遷移表に基づいて逆状態遷移表を作成し、その逆状態遷移表を管理部23に送る。管理部23は、逆状態遷移表を受け付けると、その逆状態遷移表を保持する。
【0049】
図4は、作成部22の動作を説明するためのフローチャートである。
【0050】
作成部22は、管理部21内の状態遷移表を読み出し、その状態遷移表をSTとする(ステップA1)。
【0051】
続いて、作成部22は、STと同じタイトル行(先頭行)および同じタイトル列(最左列)を持ち、その他の各セルが空である表を作成し、その表をST'とする(ステップA2)。
【0052】
続いて、作成部22は、STの各行について、1行目から順に(ステップA3)、次の処理を行う。
【0053】
作成部22は、行ごとに、STの各列を順に調べていく(ステップA5)。
【0054】
調べられている列のセルに遷移先状態名があれば、作成部22は、その遷移先状態名を状態名として示すST'内の行のセルのうち、ST内でその遷移先状態名が記述された列に存在するイベント名と同じイベント名に対応するセルに、ST内でその遷移先状態名が記述された行に存在する状態名を記入する(ステップA6)。
【0055】
作成部22は、同一行内の全ての列を調べ終えたら、次の行を同様に調べる。全ての行についての調査が終了すれば、逆状態遷移表ST'は完成するので、作成部22は、逆状態遷移表ST'を、管理部23に格納する(ステップA8)。
【0056】
続いて、合成部25は、管理部21内の状態遷移表と、管理部23内の逆状態遷移表と、管理部24内の入力情報と、を参照して、指定状態以外の状態を縮退するために、指定状態以外の状態を合成する。
【0057】
図5は、合成部25の動作を説明するためのフローチャートである。
【0058】
合成部25は、管理部24内の入力情報にて表された指定状態をSとする(ステップB1)。
【0059】
合成部25は、管理部21中の状態遷移表を読み出し、その状態遷移表をSTとし、管理部23中の逆状態遷移表を読み出し、その逆状態遷移表をRSTとする(ステップB2)。
【0060】
続いて、合成部25は、Sの次状態の状態名Siと、SからSの次状態への遷移を引き起こすイベントのイベント名eiと、の組(Si,ei)を、STのセルを順に検索して求める。なお、組(Si,ei)は複数存在する可能性があるので、合成部25は、組(Si,ei)の集合{(Si,ei)}を求める(ステップB3)。
【0061】
続いて、合成部25は、Sの前状態の状態名RSjと、Sの前状態からSへの遷移を引き起こすイベントのイベント名rejと、の組(RSj,rej)を、RSTのセルを順に検索して求める。なお、組(RSj,rej)は複数存在する可能性があるので、合成部25は、組(RSj,rej)の集合{(RSj,rej)}を求める(ステップB4)。
【0062】
続いて、合成部25は、集合{(Si,ei)}に含まれる任意のSiと集合{(RSj,rej)}に含まれる任意のRSjについて、STを参照してSiからSを通らずにRSjに到達できるかを調べる。合成部25は、STを参照して、Siを表す状態名に対応する行中に現れる次状態(遷移先状態)を調べ、その次状態を表す状態名に対応する行中に現れる次状態(遷移先状態)を調べる、という作業を繰り返して、SiからSを通らずにRSjに到達できるかを調べる。
【0063】
SiからSを通らずにRSjに到達できることがわかれば、RSjとSiは合成される候補となり、合成部25は、合成候補(rej,(RSj,Si),ei)を作る(ステップB5)。なお、合成候補(rej,(RSj,Si),ei)は、複数存在する可能性がある。
【0064】
続いて、合成部25は、複数の合成候補(rej,(RSj,Si),ei)のうち、Siを共有している合成候補(rej,(RSj,Si),ei)があれば、Siを共有している合成候補(rej,(RSj,Si),ei)をまとめて、合成候補集合({rej},({RSj},Si),ei)を求める。合成部25は、複数の合成候補(rej,(RSj,Si),ei)のうち、他の合成候補(rej,(RSj,Si),ei)とSiを共有していない合成候補(rej,(RSj,Si),ei)を、そのまま残す(ステップB6)。
【0065】
続いて、合成部25は、合成候補集合({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に遷移する)(ステップB7)。
【0066】
続いて、縮退部26は、管理部24に格納された入力情報が表す指定状態と、合成部25が合成した状態(特定状態)({rej},S'i,ri)と、の間の遷移を示す状態遷移表を作成する。
【0067】
続いて、出力部31は、縮退部26が作成した状態遷移表を出力(例えば、表示または印刷)する。
【0068】
次に、具体例に基づいて動作を説明する。
【0069】
図2に示す状態遷移図が、入力部11に入力されたとする。また、指定部12が、例えばユーザからの入力に基づいて、指定状態としてS1を指定した入力情報を受け付けたとする。
【0070】
作成部22は、入力された状態遷移図を元に逆状態遷移表を生成する。生成された逆状態遷移表は、図3のようになる。
【0071】
合成部25は、S1の次状態と、S1の次状態への遷移を引き起こすイベントと、の組の集合を、状態遷移表(図2)を用いて求める(図5のステップB3)。ここでは、S1の次状態はS2しかなく、S1の次状態(S2)への遷移を引き起こすイベントはe1であるので、合成部25は、集合{(S2,e1)}を求める。
【0072】
次に、合成部25は、S1の前状態と、S1の前状態がS1に遷移する際に起こったイベントと、の組の集合を、逆状態遷移表(図3)を用いて求める(図5のステップB4)。ここでは、S1の前状態はS4しかなく、S1の前状態(S4)がS1に遷移する際に起こったイベントはe4であるので、合成部25は、集合{(S4,e4)}を求める。
【0073】
合成部25は、S2(S1の次状態)からS4(S1の前状態)までS1を通らずに到達できるかを、状態遷移表(図2)をたどって調べる。S2はS3に遷移し、S3はS4に遷移するので、S2からS4までS1を通らずに状態が遷移することがわかる。したがって、合成部25は、S2からS4までの状態を、合成候補群(e4,(S4,S2),e1)とする(図1のステップB5)。
【0074】
合成部25は、合成候補群(e4,(S4,S2),e1)の合成を行い、合成された状態(e4,S'2,e1)、つまりイベントe4によりS1に遷移し、イベントe1によりS1から遷移される状態S'2(特定状態)が得られる(図1のステップB7)。
【0075】
縮退部26は、S1とS'2の間の遷移を示す縮退状態遷移表を作成する。図6は、S1とS'2の間の遷移を示す縮退状態遷移表を示した説明図である。
【0076】
なお、上記具体例では、指定状態以外の状態間で遷移ルートを構成する場合に、それらを包含する状態群を処理装置2が作る例を示したが、遷移ルートが構成されない場合、処理装置2は、単純に、遷移元→指定状態→遷移先を示す状態遷移表を作成する。
【0077】
例えば、S0→S1→S2→S3という遷移を表わす状態遷移表があり、S1を表示する指定状態とした場合、生成される縮退した状態遷移表は、S0→S1→S2という遷移を表わす状態遷移表になる。
【0078】
また、上記具体例では、例として、遷移先から遷移元への遷移ルートが構成されるかどうかを調べているが、処理装置2は、遷移元から遷移先へ指定状態を通らずに遷移ルートが構成される場合も縮退を実施し、遷移元(あるいは遷移先)が複数あった場合に、それら相互の間で遷移ルートが構成されれば、それら状態群の縮退も実施する。
【0079】
次に、本実施形態の効果について説明する。
【0080】
本実施形態では、合成部25が指定状態以外の状態を合成し、縮退部26が合成部25の合成結果に基づいて状態遷移表を縮退する。換言すると、処理装置2は、状態遷移表を参照して、複数の状態からなる状態群と指定状態との間の遷移を表す縮退状態遷移表を生成する。
【0081】
よって、指定状態以外の状態の群については、状態群相互の遷移が省略して出力(例えば、表示)され、非出力(例えば、非表示)の状態を包含した状態(異なる状態を包含した縮退状態)を合成することにより、状態変化全体の意味を保存したまま詳細については縮退して非出力(例えば、非表示)になる。
【0082】
このため、例えば、表示される状態を減少でき、状態遷移表の視認性・理解性を向上することができる。
【0083】
また、本実施形態では、処理装置2は、複数の状態のうち指定状態以外の状態群が、指定状態の遷移先と指定状態の遷移元との間で遷移ルートを構成するか判断し、その状態群が遷移ルートを構成する場合、その状態群を包含する状態と指定状態との間の遷移を表す縮退状態遷移表を生成する。
【0084】
本実施形態では、処理装置2は、状態群を包含する状態として、その状態群を合成した状態を生成する。例えば、処理装置2は、状態群を合成した状態として、指定状態の遷移先となり、かつ指定状態の遷移元となる新たな状態(特定状態)を生成する。
【0085】
また、本実施形態では、処理装置2は、逆状態遷移表と状態遷移表とを参照して、状態群が遷移ルートを構成するか判断する。また、処理装置2は、状態遷移表を参照して、逆状態遷移表を生成する。この場合、状態群の特定が容易になる。
【0086】
(第2実施形態)
次に、本発明の第2実施形態について図面を参照して詳細に説明する。
【0087】
図7は、本発明の第2実施形態の状態遷移表縮退装置を示したブロック図である。図7において、図1に示したものと同一構成のものには同一符号を付してある。
【0088】
第2実施形態では、入力装置100が、図1に示された入力部11と指定部12に加えて、表示状態深さ指定部(以下「深さ指定部」と称する)13を含む。
【0089】
また、処理装置200は、管理部21と、作成部22と、管理部23と、管理部24Aと、合成部25Aと、縮退部26Aと、を含む。
【0090】
出力装置300は、出力部31Aを含む。
【0091】
深さ指定部13は、一般的に遷移数指定手段と呼ぶことができる。
【0092】
深さ指定部13は、指定状態からの遷移の数Mを表す遷移数情報を受け付ける。
【0093】
遷移数情報は、指定状態の遷移元および遷移先の状態について、遷移の深さがいくつまでの状態をそのまま表示するかを指定する。例えば、遷移数情報が、深さ=2を指定すれば、指定状態に直接遷移する状態と、さらにその状態のひとつ前の状態と、指定状態から直接遷移する状態と、さらにその状態のひとつ先の状態までが、そのまま表示されることになる。
【0094】
管理部24Aは、指定部12が受け付けた入力情報と、深さ指定部13が受け付けた遷移数情報と、を受け付ける。
【0095】
合成部25Aは、図1に示した合成部25と同一の機能を有し、さらに、以下の機能を有する。
【0096】
合成部25Aは、深さ指定部13が遷移数情報を受け付けた場合、状態遷移表を参照して、複数の状態のうち、指定状態から遷移先方向および遷移元方向への遷移数がM以内となる所定状態群と指定状態とのいずれとも異なる特定状態群を特定する。
【0097】
合成部25Aは、特定状態群を包含する状態(以下「合成状態」と称する)を合成する。
【0098】
例えば、合成部25Aは、特定状態群が、指定状態から遷移先方向へM回遷移した遷移先と指定状態から遷移元方向へM回遷移した遷移元との間で特定遷移ルートを構成するか判断する。
【0099】
合成部25Aは、特定状態群が特定遷移ルートを構成する場合、合成状態を合成する。
【0100】
縮退部26Aは、図1に示した縮退部26と同一の機能を有し、さらに、以下の機能を有する。
【0101】
縮退部26Aは、合成状態が合成された場合、合成状態と所定状態群と指定状態との間の遷移を表す状態遷移表(以下「部分縮退状態遷移表」と称する)を生成する。
【0102】
出力部31Aは、図1に示した出力部31と同一の機能を有し、さらに、以下の機能を有する。出力部31Aは、部分縮退状態遷移表が作成された場合、その部分縮退状態遷移表を出力(例えば、表示または印刷)する。
【0103】
なお、図7に示した状態遷移表出力装置は、例えば、コンピュータシステムであり、コンピュータが読み取り可能な記録媒体に記録されたプログラムを読み取り実行することにより、入力装置100、処理装置200、および、出力装置300として機能する。なお、入力装置100、処理装置200および出力装置300のそれぞれは、専用のハードウェアにより実現されてもよい。また、処理装置200は、一般的に生成手段と呼ぶことができる。
【0104】
次に、動作を説明する。
【0105】
入力部11は、状態遷移表を受け付けると、その状態遷移表を管理部21に送る。管理部21は、状態遷移表を受け付けると、その状態遷移表を保持する。
【0106】
作成部22は、管理部21内の状態遷移表を読み出し、その状態遷移表に基づいて逆状態遷移表を作成し、その逆状態遷移表を管理部23に送る。管理部23は、逆状態遷移表を受け付けると、その逆状態遷移表を保持する。
【0107】
指定部12は、入力情報を受け付けると、その入力情報を管理部24Aに送る。管理部24Aは、入力情報を受け付けると、その入力情報を保持する。以下、入力情報に表された指定状態をSとする。
【0108】
深さ指定部13は、遷移数情報を受け付けると、その遷移数情報を管理部24Aに送る。
【0109】
管理部24Aは、遷移数情報を受け付けると、まず、管理部21内の状態遷移表を参照して、Sから遷移数情報が表す遷移の数M(深さ)だけ遷移先の方向にたどり、そのたどられた状態を表す情報(以下「第1情報」と称する)を保持する。管理部24Aは、Sから遷移先方向に深さM分先にある状態(例えば深さ「2」であれば、Sから状態遷移表を2回たどった先の状態)をSFとする。
【0110】
続いて、管理部24Aは、管理部23内の逆状態遷移表を参照して、Sから遷移数情報が表す遷移の数M(深さ)だけ遷移元の方向にたどり、そのたどられた状態を表す情報(以下「第2情報」と称する)を保持する。管理部24Aは、Sから遷移元方向に深さM分先にある状態(例えば深さ「2」であれば、Sから逆状態遷移表を2回たどった先の状態)をBFとする。
【0111】
続いて、合成部25Aは、指定状態以外の状態を縮退するために合成を行う。
【0112】
図8は、合成部25Aの動作を説明するためのフローチャートである。
【0113】
合成部25Aは、管理部24Aに格納された、指定状態から深さ分先の状態FSと、指定状態から深さ分遷移元をたどった状態BSと、を読み出す(ステップC1)。
【0114】
続いて、合成部25Aは、管理部21中の状態遷移表を読み出し、その状態遷移表をSTとし、管理部23中の逆状態遷移表を読み出し、その逆状態遷移表をRSTとする(ステップC2)。
【0115】
続いて、合成部25Aは、FSの次状態の状態名と、FSからFSの次状態への遷移を引き起こすイベントのイベント名と、の組(Si,ei)を、STのセルを順に検索して求める。なお、組(Si,ei)は複数存在する可能性があるので、合成部25Aは、組(Si,ei)の集合{(Si,ei)}を求める(ステップC3)。
【0116】
続いて、合成部25Aは、BSの前状態の状態名と、BSの前状態からBSへの遷移を引き起こすイベントのイベント名と、の組(RSj,rej)を、RSTのセルを順に検索して求める。なお、組(RSj,rej)は複数存在する可能性があるので、合成部25Aは、組(RSj,rej)の集合{(RSj, rej)}を求める(ステップC4)。
【0117】
続いて、合成部25Aは、集合{(Si,ei)}に含まれる任意のSiと集合{(RSj,ej)}に含まれる任意のRSjについて、STを参照してSiからSを通らずにRSjに到達できるかを調べる。合成部25Aは、STを参照して、Siを表す状態名に対応する行中に現れる次状態(遷移先状態)を調べ、その次状態を表す状態名に対応する行中に現れる次状態(遷移先状態)を調べる、という作業を繰り返して、SiからSを通らずにRSjに到達できるかを調べる。
【0118】
SiからSを通らずにRSjに到達できることがわかれば、RSjとSiは合成される候補となり、合成部25Aは、合成候補(rej,(RSj,Si),ei)を作る(ステップC5)。
【0119】
続いて、合成部25Aは、複数の合成候補(rej,(RSj,Si),ei)のうち、Siを共有している合成候補(rej,(RSj,Si),ei)があれば、Siを共有している合成候補(rej,(RSj,Si),ei)をまとめて、合成候補集合({rej},({RSj},Si),ei)を求める。合成部25Aは、複数の合成候補(rej,(RSj,Si),ei)のうち、他の合成候補(rej,(RSj,Si),ei)とSiを共有していない合成候補(rej,(RSj,Si),ei)を、そのまま残す(ステップC6)。
【0120】
続いて、合成部25Aは、合成候補集合({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に遷移する)(ステップC7)。
【0121】
続いて、縮退部26Aは、管理部24A内の入力情報が表す指定状態と、管理部24A内の第1情報が表す状態と、管理部24A内の第2情報が表す状態と、合成部25Aが合成した状態({rej},S'i,ei)と、の間の遷移を示す部分縮退状態遷移表を作成する。
【0122】
続いて、出力部31Aは、縮退部26Aが作成した部分縮退状態遷移表を出力(例えば、表示または印刷)する。
【0123】
本実施形態によれば、深さ指定部13により指定される深さ分の状態がそのまま詳細に表示され、その他の状態の表示が縮退される。よって、本実施形態では、第1実施形態の効果に加えて、様々な詳細度で状態遷移表を表示することができ、より視認性や理解性を向上させることができる。
【0124】
上記各実施形態は、設計時に作成される状態遷移表の分析において、状態遷移表の視認性および理解性を向上させる用途に適用できる。また、上記各実施形態は、状態遷移表に基づいて設計されたプログラムのテストまたは検証におけるデバッグ時に、特定の状態の前後について詳細に検討するため、他の状態を縮退して表示させるという用途に適用できる。
【0125】
以上説明した各実施形態において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【符号の説明】
【0126】
1、100 入力装置
2、200 処理装置
3、300 出力装置
11 状態遷移表入力部
12 表示状態指定部
13 表示状態深さ指定部
21 状態遷移表管理部
22 逆状態遷移表作成部
23 逆状態遷移表管理部
24、24A 表示状態管理部
25、25A 非表示状態合成部
26、26A 状態遷移表縮退部
31、31A 状態遷移表出力部
【特許請求の範囲】
【請求項1】
複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第1状態遷移表を受け付ける入力手段と、
前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定手段と、
前記第1状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第2状態遷移表を生成する生成手段と、を含む状態遷移表縮退装置。
【請求項2】
請求項1に記載の状態遷移表縮退装置において、
前記生成手段は、前記複数の状態のうち前記指定状態以外の状態群が、前記指定状態の遷移先と前記指定状態の遷移元との間で遷移ルートを構成するか判断し、前記状態群が前記遷移ルートを構成する場合には、前記指定状態以外の状態群を包含する状態と前記指定状態との間の遷移を表すように第2状態遷移表を生成する、状態遷移表縮退装置。
【請求項3】
請求項2に記載の状態遷移表縮退装置において、
前記生成手段は、前記状態群を包含する状態として、前記状態群を合成した状態を生成する、状態遷移表縮退装置。
【請求項4】
請求項3に記載の状態遷移表縮退装置において、
前記生成手段は、前記状態群を合成した状態として、前記指定状態の遷移先となり、かつ前記指定状態の遷移元となる新たな状態を生成する、状態遷移表縮退装置。
【請求項5】
請求項1から4のいずれか1項に記載の状態遷移表縮退装置において、
前記生成手段は、前記複数の状態と前記状態ごとに当該状態の遷移元となる状態とを表す逆状態遷移表と、前記第1状態遷移表と、を参照して、前記複数の状態からなる状態群と前記指定状態との間の遷移の関係を確認する、状態遷移表縮退装置。
【請求項6】
請求項5に記載の状態遷移表縮退装置において、
前記生成手段は、前記第1状態遷移表を参照して、前記逆状態遷移表を生成する、状態遷移表縮退装置。
【請求項7】
請求項1から6のいずれか1項に記載の状態遷移表縮退装置において、
前記指定状態からの遷移の数Mを表す遷移数情報を受け付ける遷移数指定手段をさらに含み、
前記生成手段は、前記遷移数指定手段が前記遷移数情報を受け付けた場合、前記第1状態遷移表を参照して、前記指定状態から遷移先方向および遷移元方向への遷移数が前記M以内となる所定状態群間の遷移と、前記所定状態群と前記指定状態との間の遷移と、前記所定状態群と前記状態群との間の遷移と、を表す第3状態遷移表を生成する、状態遷移表縮退装置。
【請求項8】
状態遷移表縮退装置での状態遷移表縮退方法であって、
複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第1状態遷移表を受け付ける入力ステップと、
前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定ステップと、
前記第1状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第2状態遷移表を生成する生成ステップと、を含む状態遷移表縮退方法。
【請求項9】
コンピュータに、
複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第1状態遷移表を受け付ける入力手順と、
前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定手順と、
前記第1状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第2状態遷移表を生成する生成手順と、を実行させるためのプログラム。
【請求項1】
複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第1状態遷移表を受け付ける入力手段と、
前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定手段と、
前記第1状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第2状態遷移表を生成する生成手段と、を含む状態遷移表縮退装置。
【請求項2】
請求項1に記載の状態遷移表縮退装置において、
前記生成手段は、前記複数の状態のうち前記指定状態以外の状態群が、前記指定状態の遷移先と前記指定状態の遷移元との間で遷移ルートを構成するか判断し、前記状態群が前記遷移ルートを構成する場合には、前記指定状態以外の状態群を包含する状態と前記指定状態との間の遷移を表すように第2状態遷移表を生成する、状態遷移表縮退装置。
【請求項3】
請求項2に記載の状態遷移表縮退装置において、
前記生成手段は、前記状態群を包含する状態として、前記状態群を合成した状態を生成する、状態遷移表縮退装置。
【請求項4】
請求項3に記載の状態遷移表縮退装置において、
前記生成手段は、前記状態群を合成した状態として、前記指定状態の遷移先となり、かつ前記指定状態の遷移元となる新たな状態を生成する、状態遷移表縮退装置。
【請求項5】
請求項1から4のいずれか1項に記載の状態遷移表縮退装置において、
前記生成手段は、前記複数の状態と前記状態ごとに当該状態の遷移元となる状態とを表す逆状態遷移表と、前記第1状態遷移表と、を参照して、前記複数の状態からなる状態群と前記指定状態との間の遷移の関係を確認する、状態遷移表縮退装置。
【請求項6】
請求項5に記載の状態遷移表縮退装置において、
前記生成手段は、前記第1状態遷移表を参照して、前記逆状態遷移表を生成する、状態遷移表縮退装置。
【請求項7】
請求項1から6のいずれか1項に記載の状態遷移表縮退装置において、
前記指定状態からの遷移の数Mを表す遷移数情報を受け付ける遷移数指定手段をさらに含み、
前記生成手段は、前記遷移数指定手段が前記遷移数情報を受け付けた場合、前記第1状態遷移表を参照して、前記指定状態から遷移先方向および遷移元方向への遷移数が前記M以内となる所定状態群間の遷移と、前記所定状態群と前記指定状態との間の遷移と、前記所定状態群と前記状態群との間の遷移と、を表す第3状態遷移表を生成する、状態遷移表縮退装置。
【請求項8】
状態遷移表縮退装置での状態遷移表縮退方法であって、
複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第1状態遷移表を受け付ける入力ステップと、
前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定ステップと、
前記第1状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第2状態遷移表を生成する生成ステップと、を含む状態遷移表縮退方法。
【請求項9】
コンピュータに、
複数の状態からなる状態群と、前記状態ごとに当該状態からの遷移先となる状態と、を表す第1状態遷移表を受け付ける入力手順と、
前記複数の状態のいずれかを指定状態として表す入力情報を受け付ける指定手順と、
前記第1状態遷移表を参照して、前記状態群と前記指定状態との間の遷移を表す第2状態遷移表を生成する生成手順と、を実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【公開番号】特開2011−123588(P2011−123588A)
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願番号】特願2009−279302(P2009−279302)
【出願日】平成21年12月9日(2009.12.9)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
【公開日】平成23年6月23日(2011.6.23)
【国際特許分類】
【出願日】平成21年12月9日(2009.12.9)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
[ Back to top ]