本発明は、検証支援装置、検証支援方法、その検証支援方法をコンピュータに実行させることが可能なプログラム、及び、そのプログラムを記録した記録媒体に関し、特に、サブシステムの状態遷移データと関係データの検証を支援する検証支援装置等に関する。
システムの動作は、例えば状態遷移図のように、システムの状態の遷移を特定可能なデータを用いて記述される。そして、従来、例えば特許文献1にあるような装置により、記述された状態遷移図などの検証は支援されている。
システムが複数のサブシステムにより構成される場合、システムの動作は、各サブシステムの例えば状態遷移図のような遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの組合せで記述される。
しかしながら、これまで、システムの動作が状態遷移データと関係データの組合せで記述される場合に、これらの検証を支援する装置は知られていなかった。そのため、状態遷移データと関係データの検証は、全サブシステムの状態遷移データと関係データを見比べながら人手でなされていた。
このように状態遷移データと関係データの検証が人手なされると、その検証には非常に工数がかかり、また、チェックミスも非常に多い。特に最近ではシステムの構成も複雑になり、全サブシステムの状態遷移データと関係データを人手で検証することは非常に困難である。
そこで、本発明の目的は、状態遷移データと関係データの検証を支援することに適合する検証支援装置、検証支援方法、その検証支援方法をコンピュータに実行させることが可能なプログラム、及び、そのプログラムを記録した記録媒体を提供することにある。
請求項1に係る発明は、システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援装置であって、前記状態遷移データに異常状態への状態遷移を特定可能なデータを追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成手段と、前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査手段と、を備えるものである。
なお、請求項1に係る発明において、異常状態付状態遷移データ検査手段が到達する可能性のある状態を検査し、さらに例えば異常状態への到達可能性を検査することにより、以下のことがいえる。
例えば状態遷移図の記述者は、通常、システム全体の動作を思い浮かべながら各サブシステムの状態遷移図を記述する。しかしながら、複雑なシステムの場合、サブシステムが多く存在しており、イベント発火の発生タイミングを完全に把握することは非常に困難である。すなわち、受理可能イベントの中には、サブシステムの組合せ方によっては絶対に受理しないものがある。例えば、システムがサブシステム1とサブシステム2との組合せでできており、サブシステム1の状態1の受理可能イベントがe1、e2であり、また、サブシステム2ではe1のみが発火可能であるとする。この組合せでは、サブシステム1の状態1ではe2は絶対に受理しない受理可能イベントである。逆に、一見受理しなさそうではあるが受理してしまうものもある。メモリを削減するために前者を受理したときの処理を削減することはよく行われるが、後者を前者と間違えて処理を削減してしまうこと(後者のイベント、すなわち、想定外の受理可能イベントが来ること)がしばしば起こり得る。したがって、状態遷移図の記述者が受理可能イベントの受理時の処理を削減していないかの検証を行うことが必要となる。
また、例えば既存のサブシステムを再利用して新規システムを作成する場合に、再利用されるサブシステムからみると、外部の振る舞いはもともとの使用状況と新たな使用状況とでは異なる。そのため、新規システムにおいて、想定外のイベントを受理してサブシステムが想定外の振る舞いをする可能性がある。したがって、想定外のイベントを受理してサブシステムが想定外の動作をする可能性の検証も必要となる。既存のサブシステムを再利用して新規システムを作成すると、サブシステムの組合せ方が変わるため、既存システムにおいては絶対に受理しなかった受理可能イベントが新規サブシステムでは受理してしまうこと(異常状態に到達すること)も起こり得る。例えば、既存システムがサブシステム1とサブシステム2との組合せでできており、サブシステム1の状態1の受理可能イベントがe1、e2であり、また、サブシステム2ではe1のみが発火可能であるとする。この組合せでは、サブシステム1の状態1ではe2は絶対に受理しない受理可能イベントである。新規システムはサブシステム1とサブシステム3の組合せでできており、サブシステム3ではどの状態でもe2が発火可能であるとする。このとき、新規システムでは、サブシステム1の状態1においてe2が受理される受理可能イベントになる。メモリを削減するために既存システムでは絶対に受理しない受理可能イベントを受理したときの処理を削減していた場合、新規システムでは、この受理可能イベントが発生したとき、行うべき処理が記述されていないという問題が発生する。既存のサブシステムを再利用して新規システムを作成する場合、この問題が発生するかどうかを検証する必要がある。
一方、請求項1に係る発明であって異常状態への到達可能性を検査できるものであれば、すなわち、異常状態付状態遷移データ生成手段が、例えば、記述された状態遷移図に基づく状態遷移データにより特定されていないサブシステムの遷移前状態と遷移条件の組み合わせに関して、異常状態を遷移後状態とする状態遷移を特定可能なデータを状態遷移データに追加して異常状態付状態遷移データを生成し、異常状態付状態遷移データ検査手段がシステムの初期状態からの状態遷移により異常状態に到達する可能性を検査することにより、例えば、状態遷移図などの記述者が受理可能イベントの受理時の処理を削減していないかの検証をすることが可能となり、例えば、想定外のイベントを受理してサブシステムが想定外の動作をする可能性の検証をすることが可能となる。
さらに、請求項1に係る発明において、異常状態付状態遷移データ検査手段が到達する可能性のある状態を検査し、さらに例えば異常状態付状態遷移データ検査手段がシステムの初期状態からの状態遷移により到達する可能性のある遷移前状態及び遷移後状態並びに成立する可能性のある遷移条件を検査するようにしてもよい。
さらに、請求項1に係る発明において、異常状態付状態遷移データ検査手段が到達する可能性のある状態を検査し、さらに例えば異常状態付状態遷移データ検査手段がシステムの初期状態からの状態遷移により到達する可能性のない状態又は成立する可能性のない遷移条件を検査することにより、以下のことがいえる。
複数のサブシステムが組み合わされてシステムが作成されるとき、あるサブシステムのある状態において、例えばある受理可能イベントを受理しないことがある。受理可能イベントの中には、サブシステムの組合せ方によっては、絶対に受理しないものがある。例えば、システムがサブシステム1とサブシステム2との組合せでできており、サブシステム1の状態1の受理可能イベントがe1、e2であり、また、サブシステム2ではe1のみが発火可能であるとする。この組合せでは、サブシステム1の状態1ではe2は絶対に受理しない受理可能イベントである。このとき、この状態におけるその受理可能イベントの処理は無駄になり、この処理を削除することでシステムのメモリ量を削減することが可能になる。同様に、初期状態からの状態遷移により到達する可能性のない状態が存在することもある。
一方、請求項1に係る発明であって異常状態付状態遷移データ検査手段が到達する可能性のある状態を検査し、さらに例えば異常状態付状態遷移データ検査手段がシステムの初期状態からの状態遷移により到達する可能性のない状態又は成立する可能性のない遷移条件を検査することにより、例えば、到達可能性のない状態や受理可能性のないイベントの存在を検証することが可能となる。
請求項2に係る発明は、請求項1記載の検証支援装置であって、前記関係データにはイベント群と前記イベント群を受理可能な状態の組合せを特定可能なデータが含まれており、前記異常状態付状態遷移データ生成手段はイベント群と前記イベント群を受理可能な状態の組合せを特定可能なデータに基づいて前記異常状態付状態遷移データを生成するものである。
請求項3に係る発明は、請求項1又は2記載の検証支援装置であって、前記関係データには同時に遷移する状態遷移群を特定可能なデータが含まれており、前記異常状態付状態遷移データ検査手段は、同時に遷移する状態遷移群を特定可能なデータと前記異常状態付状態遷移データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある遷移前状態及び遷移後状態並びに成立する可能性のある遷移条件を特定可能な複合状態遷移データを生成する複合状態遷移データ生成手段と、複合状態遷移データに基づいて、システムの初期状態からの状態の遷移により到達する可能性のある状態を検査する複合状態遷移データ検査手段を有するものである。
請求項4に係る発明は、請求項3記載の検証支援装置であって、前記複合状態遷移データ検査手段が前記到達する可能性のある状態に異常状態が含まれるか否かを判断する異常状態到達可能性検査手段を有するものである。
請求項4に係る発明により、異常状態への到達可能性を検査することによって、例えば、状態遷移図などの記述者が受理可能イベントの受理時の処理を記述し忘れていないかの検証をすることが可能となる。
請求項5に係る発明は、請求項4記載の検証支援装置であって、前記異常状態到達可能性検査手段により異常状態が含まれると判断された場合に表示装置に対して初期状態から異常状態への状態遷移のうち異常状態に近い状態遷移を示す情報を優先して表示させる表示制御手段を備えるものである。
請求項6に係る発明は、請求項5記載の検証支援装置であって、前記表示制御手段が異常状態への状態遷移のうち重要状態遷移として指定された状態遷移とそれ以外の状態遷移とを区別する瑣末遷移区別手段を有し、表示装置に対して重要状態遷移として指定された状態遷移を優先して表示させるものである。
この構成により、例えば前記異常状態到達可能性検査手段は初期状態からの状態遷移により異常状態に到達する可能性がある場合に初期状態から異常状態に到達する状態遷移列である問題状態遷移列を生成し、前記瑣末遷移区別手段は前記問題状態遷移列のうち重要状態遷移として指定される状態遷移群に含まれるものを重要状態遷移とし、含まれないものを瑣末状態遷移とし、前記表示手段は前記問題状態遷移列を異常状態への状態遷移から順番に、重要状態遷移と瑣末状態遷移とを区別しながら表示する。例えば、重要状態遷移は黒色で表示し、瑣末状態遷移は黄色で表示する。したがって、使用者の関心のない状態遷移群に関するものを区別し、かつ、多くの場合に使用者が問題点を探す異常状態の近くから状態遷移列を表示することにより問題点が発見されやすくなる。なお、表示手段は、瑣末状態遷移を表示せずに重要状態遷移のみを表示してもよい。
請求項7に係る発明は、請求項3から6のいずれかに記載の検証支援装置であって、前記複合状態遷移データ検査手段が前記状態遷移データに到達可能性のない状態又は受理可能性のないイベントに関するデータが含まれているか否かの判断を行う受理可能イベント不受理検査手段を有するものである。
請求項7に係る発明によれば、例えば、前述のように、到達可能性のない状態や受理可能性のないイベントの存在を検証することが可能となる。
さらに、請求項1から7のいずれかに記載の発明であって、例えば、状態遷移データは状態遷移図でもよい。また、状態遷移データは、ステートチャートやクリプキ構造でもよい。
請求項8に係る発明は、請求項1から7のいずれかに記載の検証支援装置であって、前記サブシステムが取り得る状態と前記サブシステムにおいて生じ得るイベントの組合せに対してその状態においてそのイベントによる処理は存在しないこと又はその状態においてそのイベントが発生した場合に行われる処理を特定可能なイベント処理データに基いて前記状態遷移データを生成する状態遷移データ生成手段を備え、前記異常状態付状態遷移データ生成手段は、前記状態遷移データ生成手段により生成された状態遷移データに基づいて異常状態付状態遷移データを生成するものである。
請求項9に係る発明は、請求項8記載の検証支援装置であって、前記イベント処理データが状態遷移表に対応するデータであり、前記状態遷移データが状態遷移図に対応するデータである。
請求項8及び9に係る発明によれば、例えば、検証支援装置の利用者が、状態遷移表などにより、単にサブシステムが取り得る状態において発生可能性のあると考えるイベントに対する処理だけでなく発生可能性のないと考えるイベントについても指示することにより、サブシステムの状態遷移について利用者自身が人手で検証することが可能となり、さらに、検証支援装置が状態遷移図などを生成して検証を行うことにより、状態遷移表に基づいて利用者自身が人手で検証を行うことと比較して工数を削減し、正確さを向上させることが出来る。
請求項10に係る発明は、システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援方法であって、異常状態付状態遷移データ生成手段が前記状態遷移データに異常状態への状態遷移を特定可能なデータを追加して異常状態付状態遷移データを生成するステップと、異常状態付状態遷移データ検査手段が前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査するステップと、を含むものである。
請求項11に係る発明は、請求項10に記載の検証支援方法をコンピュータに実行させることが可能なプログラムである。
請求項12に係る発明は、請求項11記載のプログラムをコンピュータが実行することが可能にて記録した記録媒体である。
なお、他の検証支援装置として、サブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援装置であって、前記状態遷移データと前記関係データに基づいて前記状態遷移データに異常状態への状態遷移を特定可能なデータを追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成手段と、前記異常状態付状態遷移データに基づいてサブシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査手段と、を備えるものであってもよい。
本発明によれば、異常状態付状態遷移データ検査手段がシステムの初期状態からの状態遷移により到達する可能性のある状態を検査することにより、人手による検証と異なり、状態遷移データと関係データの検証を自動化しかつ精度を向上させて支援することが可能となる。
本発明の実施の形態に係る検証支援装置1の概略ブロック図である。
図1の検証支援装置1の具体例の一つである状態遷移図検証支援装置11のブロック図である。
図2の状態遷移図検証支援装置11の検証対象となるシステムの一例を示す図である。
図2の異常状態付状態遷移図生成部13の動作を示すフロー図である。
図3のサブシステムBの状態遷移格納ファイル、システム連携方法の一部、及び、受理可能状態表ファイルの例を示す図である。
図4の処理により作成される検査表及び異常状態付状態遷移図格納用状態遷移格納ファイルの例を示す図である。
図4の処理により作成される異常状態付状態遷移図の例を示す図である。
図2の複合状態遷移図生成部17の動作を示す第1のフロー図である。
図2の複合状態遷移図生成部17の動作を示す第2のフロー図である。
図8及び図9の処理において用いられる異常状態付状態遷移図格納用状態遷移格納ファイル、同期状態実行遷移組格納ファイル、及び、到達可能正常体表の例を示す図である。
生成される複合状態遷移図の例を示す図である。
図9のステップSTCC11の処理の詳細の例を示す図である。
図9のステップSTCC14の処理の詳細の例を示す第1の図である。
図9のステップSTCC14の処理の詳細の例を示す第2の図である。
図9のステップSTCC14の処理の詳細の例を示す第3の図である。
図9のステップSTCC14の処理の詳細の例を示す第4の図である。
図2の異常状態到達可能性検査部23の動作を示すフロー図である。
図17のステップSTCH6の処理を変更して、初期状態から異常状態へ到達する状態遷移列を出力するようにする例を示す図である。
図18の処理において作成される状態遷移格納表の例を示す図である。
図2の瑣末遷移区別部27の動作の一例を示すフロー図である。
図2の表示部21の表示例を示す図である。
図2の受理可能イベント不受理検査部25の動作を示す第1のフロー図である。
図2の受理可能イベント不受理検査部25の動作を示す第2のフロー図である。
図23の処理の検査対象のシステムを構成するサブシステムDとEの状態遷移図及び受理可能状態表ファイル並びに複合状態遷移図及び複合状態遷移図格納用状態遷移格納ファイルの例を示す図である。
図2の状態遷移図検証支援装置11の他の一例を示すブロック図である。
図2の状態遷移図検証支援装置11の他の一例を示すブロック図である。
長さが1のキューの状態遷移を示す図である。
図3のサブシステムAとBとCであって、サブシステムBとCとの間に長さ1のキューがあり、このキューにイベントが保持される、とモデル化できると仮定した場合の複合状態遷移図の例である。
図2の異常状態付状態遷移図生成部13の動作の他の例を示すフロー図である。
図29の処理対象の例であるサブシステムFの状態遷移図、状態遷移格納ファイル、及び、受理可能状態表ファイルの例を示す図である。
図30の各処理において作成される検査表A、B及びC並びに異常状態付状態遷移図格納用状態遷移格納ファイルの例を示す図である。
図30の各処理において作成される検査表D、異常状態付状態遷移図格納用状態遷移格納ファイル、及び、異常状態付状態遷移図の例を示す図である。
図1の検証支援装置1の具体例の他の一つである状態遷移データ検証支援装置45を示すブロック図である。
状態遷移表の例を示す図である。
検査対象のシステム並びにこのシステムを構成するサブシステムG及びHの状態遷移表の例を示す図である。
図33の状態遷移表43の動作を示す第1のフロー図である。
図33の状態遷移表43の動作を示す第2のフロー図である。
図36と図37の処理により生成される状態遷移図の例である。
図38の状態遷移図に基づいて生成された異常状態付状態遷移図の例である。
図39の異常状態付状態遷移図に基づいて生成された複合状態遷移図の例である。
状態遷移図検査支援装置の他の例を示すブロック図である。
図41の到達可能状態検査部53の動作の例を示す第1のフロー図である。
図41の到達可能状態検査部53の動作の例を示す第2のフロー図である。
図42の処理において作成される状態遷移記述表の例を示す図である。
図41の到達可能状態検査部53の動作の他の例を示すフロー図である。
図41の到達可能状態検査部53の動作の他の例を示すフロー図である。
符号の説明
1 検証支援装置
3 異常状態付状態遷移データ生成部
5 異常状態付状態遷移データ検査部
11 状態遷移図検証支援装置
13 異常状態付状態遷移図生成部
15 異常状態付状態遷移図検査部
17 複合状態遷移図生成部
19 複合状態遷移図検査部
23 異常状態到達可能性検査部
25 受理可能イベント不受理検査部
45 状態遷移データ検証支援装置
47 状態遷移表変換部
初めに、本願において用いられる用語について説明する。
まず、システムは、例えばハードウェアやソフトウェアやハードウェアとソフトウェアを組み合わせたものであり、システムを構成する部分もシステム(サブシステム)と呼ぶ。
次に、状態は、システムのとりうる状態である。状態の初期値を初期状態という。また、状態の遷移のことを状態遷移という。状態遷移には、能動的状態遷移と受動的状態遷移がある。能動的状態遷移は、システムが単体で動作する場合に能動的に遷移する状態遷移である。能動的状態遷移の例としては、イベント発火、内部処理、環境イベント受理(例えばシステムのユーザからのイベントは、イベント発火のタイミングをシステムでは制御できないので常に発生する可能性がある)などがある。また、受動的状態遷移は、システムが単体で動作する場合、受動的に遷移する状態遷移である。受動的状態遷移の例としては、非環境イベント受理などがある。
次に、状態遷移図は、状態と状態遷移とで表される図のことで、システムの動作を記述するために用いられる。
次に、システム連携方法は、サブシステム間の連携方法を示すものである。システム連携方法には、各サブシステムの受理可能状態の指定と、同時に遷移する状態遷移群の指定が含まれる。同時に遷移する状態遷移群には、例えば唯一の能動的状態遷移と一つ以上の受動的状態遷移が含まれる。なお、サブシステムが連携する際には、キューなどの状態遷移図で振舞いが定まる媒体を通してサブシステムが連携されることもあるとする。
次に、システムの外部又は内部からの刺激のことをイベントという。また、システムが外部又は内部へイベントを発火することをイベント発火という。イベント発火には、システムのユーザなどのシステム外の環境へイベントを発火する環境イベント発火と、同一システムの他サブシステムへイベントを発火する非環境イベント発火が含まれる。さらに、システムが外部又は内部から来たイベントを受理することをイベント受理という。イベント受理には、システムのユーザなどのシステム外の環境から来るイベントを受理する環境イベント受理と、同一システムの他サブシステムから来るイベントを受理する非環境イベント受理が含まれる。さらに、イベント発火、イベント受理以外のシステムが実行する処理のことを内部処理という。
次に、受理可能状態とは、システムの状態の中で、イベント群を受理できる状態のことである。また、受理可能イベントとは、システムのあるイベント群の受理可能状態において、そのイベント群に含まれるイベントのことである。
次に、アクションとは、イベント受理後にシステムが実施する処理のことで、イベント発火や内部処理などがある。アクションには、システムの状態を変更する状態変更アクションが含まれるとする。
図1は、本発明の実施の形態に係る検証支援装置1の概略ブロック図である。
検証支援装置1は、異常状態付状態遷移データ生成部3と異常状態付状態遷移データ検査部5を備える。
異常状態付状態遷移データ生成部3は、サブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データに異常状態への状態遷移を追加して異常状態付状態遷移データを生成する。
異常状態付状態遷移データ検査部5は、異常状態付状態遷移データ生成部3により生成された異常状態付状態遷移データ及びサブシステム間の関係(以下では連携方法という)を特定可能な関係データに基づいてシステムの初期状態からの状態遷移を検査して検査結果を出力するものである。
図2の状態遷移図検証支援装置11は、図1の検証支援装置1の具体例の一つである。図2において、異常状態付状態遷移図生成部13と異常状態付状態遷移図検査部15は、それぞれ図1の異常状態付状態遷移データ生成部3と異常状態付状態遷移データ検査部5に対応する。
異常状態付状態遷移図検査部15は、複合状態遷移図生成部17と複合状態遷移図検査部19と表示部21を有する。また、複合状態遷移図検査部19は、異常状態到達可能性検査部23と受理可能イベント不受理検査部25を有する。また、表示部21は、瑣末遷移区別部27を有する。
また、状態遷移図検証支援装置11は、サブシステムの状態遷移格納ファイル29とシステム連携方法格納ファイル31と重要状態遷移格納用状態遷移格納ファイル33と異常状態付状態遷移図格納用状態遷移格納ファイル35と複合状態遷移図格納用状態遷移格納ファイル37と問題状態遷移列格納用状態遷移列格納ファイル39と本質的問題状態遷移列格納用状態遷移列格納ファイル41を有する。
ここで、サブシステムの状態遷移格納ファイル29は、サブシステムの状態遷移図を特定可能なデータが格納されるものである。また、システム連携方法格納ファイル31は、サブシステム間の連携方法を特定可能なデータが格納されるものである。さらに、重要状態遷移格納用状態遷移格納ファイル33は、使用者の興味がある状態遷移群を特定可能なデータが格納されるものである。
また、異常状態付状態遷移図格納用状態遷移格納ファイル35と複合状態遷移図格納用状態遷移格納ファイル37と問題状態遷移列格納用状態遷移列格納ファイル39と本質的問題状態遷移列格納用状態遷移列格納ファイル41は、それぞれ、異常状態付状態遷移図生成部13と複合状態遷移図生成部17と異常状態到達可能性検査部23と瑣末遷移区別部27の処理結果を特定可能なデータが格納されるものである。
図2において、異常状態付状態遷移図生成部13は、サブシステムの状態遷移格納ファイル29とシステム連携方法格納ファイル31に格納されるデータに基づいて、サブシステムの異常状態付状態遷移図を生成する。生成された異常状態付状態遷移図を特定可能なデータは、異常状態付状態遷移図格納用状態遷移格納ファイル35に格納される。
複合状態遷移図生成部17は、異常状態付状態遷移図格納用状態遷移格納ファイル35とシステム連携方法格納ファイル31に格納されるデータに基づいて複合状態遷移図を生成する。ここで、複合状態遷移図とは、各サブシステムの初期状態からなる状態をシステム全体の初期状態とし、システム全体の初期状態から遷移される状態と状態遷移とで表される図である。生成された複合状態遷移図を特定可能なデータは、複合状態遷移図格納用状態遷移格納ファイル37に格納される。
異常状態到達可能性検査部23は、複合状態遷移図格納用状態遷移格納ファイル37に格納されたデータに基づいて、システム全体の初期状態からの状態遷移により異常状態に到達する可能性を検査するものである。異常状態に到達する可能性がある場合は異常状態への状態遷移列(問題状態遷移列)を生成し、この問題状態遷移列を特定可能なデータが問題状態遷移列格納用状態遷移列格納ファイル39に格納される。
受理可能イベント不受理検査部25は、システム連携方法格納ファイル31のシステム連携方法により受理可能なイベントと指定されているものの、システム全体が動作した場合には受理されないイベントを検査するものである。
瑣末遷移区別部27は、問題状態遷移列格納用状態遷移列格納ファイル39と重要状態遷移格納用状態遷移格納ファイル33に格納されたデータに基づいて、問題状態遷移列のうち使用者の興味がある状態遷移列群には関係しないものを除去して本質的な問題状態遷移列を生成するものである。生成された本質的な問題状態遷移列を特定可能なデータは、本質的問題状態遷移列格納用状態遷移列格納ファイル41に格納される。
表示部21は、複合状態遷移図検査部19の検査結果を表示するものである。問題状態遷移列に関しては、問題状態遷移列格納用状態遷移列格納ファイル39と本質的問題状態遷移列格納用状態遷移列格納ファイル41に格納されたデータに基づいて、重要状態遷移と瑣末状態遷移とを区別しながら表示を行ってもよい。
図3は、図2の状態遷移図検証支援装置11の検証対象となるシステムの一例を示す図である。
図3において、検証対象となるシステムは3つのサブシステムA、B、Cからなる。なお、図3において、矢印は状態の遷移を意味し、記号e1、・・・はそれぞれイベントe1、・・・の発火を意味し、記号:e1、・・・はそれぞれイベントe1、・・・の受理を意味するとする。
サブシステムAは、初期状態がSAであり、イベントe1を発火してサブシステムBへ送り、状態SAに遷移する(遷移前の状態が状態SAであるため、遷移後の状態も状態SAのままである)。サブシステムAの状態遷移は、イベントe1のイベント発火(能動的状態遷移)のみである。
サブシステムCは、初期状態がSCであり、イベントe2、e3を発火してサブシステムBへ送り、状態SCへ遷移する(遷移前の状態が状態SCであるため、イベント発火後も状態は状態SCのままである)。また、図3において、i1はサブシステムCの内部処理である。サブシステムCの状態遷移は、e2及びe3のイベント発火(能動的状態遷移)並びにi1の内部処理(能動的状態遷移)のみである。
サブシステムBは、初期状態がS1であり、状態S1においてイベントe1を受理すると状態S2へ状態遷移し、状態S2においてイベントe1を受理すると状態S2に遷移し(遷移前の状態が状態S2であるため、遷移後の状態も状態S2のままである)、状態S2においてイベントe2を受理すると状態S1へ遷移する。サブシステムBの状態遷移は、イベントe1とe2のイベント受理(受動的状態遷移)のみである。
続いて、このシステムにおいて、イベントe2とe3はイベントe1の発火間隔と比べてゆっくりした間隔で発火し、イベントe2とe3が送られる時のサブシステムBの状態はS2であると仮定する。
この場合、このシステムにおけるサブシステム間の連携方法(システム連携方法)としては、以下の三つが考えられる。一つ目は、サブシステムAとCは受理可能状態を持たないことである。二つ目は、サブシステムBの状態S1とS2はイベント{e1}の受理可能状態であり、状態S2はイベント群{e2,e3}の受理可能状態であることである。三つ目は、同じ名前のイベントのイベント発火(能動的状態遷移)とイベント受理(受動的状態遷移)とは同時に発生することである。
このとき、このシステムにおいては、サブシステムAの状態SAの受理可能イベントはなく、サブシステムBの状態S1の受理可能イベントはイベント{e1}であり、状態S2の受理可能イベントはイベント群{e1,e2,e3}であり、サブシステムCの状態SCの受理可能イベントはない。
図4は、異常状態付状態遷移図生成部13の動作を示すフロー図である。
まず、異常状態付状態遷移図生成部13は、N1をサブシステムの総数とし、K1を0とする(図4のステップSTES1)。図3の例において、サブシステムはAとBとCの3つであるため、N1は3である。
次に、異常状態付状態遷移図生成部13は、K1とN1の値を比較して判断を行う(図4のステップSTES2)。K1の値がN1の値よりも小さいならば図4のステップSTES3の処理を行い、小さくないならば図4の処理を終了する。
図4のステップSTES3において、異常状態付状態遷移図生成部13は、サブシステムの状態遷移格納ファイル29よりK1番目のサブシステムの状態遷移格納ファイルを入力する。サブシステムBの場合には、状態遷移格納ファイルは図5の(A)のようなものである。図5の(A)において、状態遷移格納ファイルは、状態遷移前の状態である遷移前状態と、状態遷移の条件である状態遷移名と、状態遷移後の状態である遷移後状態の組を備え、各組は0から始まる番号により識別可能であるとする。なお、番号0により識別される組の遷移前状態はシステムの初期状態であるとする。
異常状態付状態遷移図生成部13は、入力した状態遷移格納ファイルから計算される状態のリストをSListとする(図4のステップSTES4)。サブシステムBの場合、SList={S1,S2}である。
続いて、K1番目のサブシステムの受理可能状態表ファイルを入力する(図4のステップSTES5)。ここで、受理可能状態表ファイルは、システム連携方法格納ファイル31の一部を等価なデータ構造に変換して作成されるものである。サブシステムBの場合、システム連携方法ファイル31の一部には図5の(B)のようなイベント群とそのイベント群の受理可能状態との組が規定されている。受理可能状態表ファイルは、例えば図5の(C)にあるように、システム連携方法格納ファイル31の一部を、状態と当該状態で受理可能なイベントとの組に変換して得られるものである。
続いて、入力した受理可能状態表ファイルから計算されるイベントのリストをEListとする(図4のステップSTES6)。図5の(C)の場合、EList={e1,e2,e3}である。
続いて、縦軸をSListの要素とし横軸をEListの要素としてSListの要素とEListの要素との組で定まるブロックからなる検査表を作成し、各ブロックを1で初期化する(図4のステップSTES7)。ここで作成される検査表は、図6の(A)のようになる。
続いて、受理可能状態表ファイルに記述された状態と受理可能イベントの組で定まる検査表上の全ブロックを0にする(図4のステップSTES8)。ここで作成される検査表は、図6の(B)のようになる。
続いて、検査表上の、状態遷移格納ファイルに記述された遷移前状態と状態遷移名の組で定まる全ブロックを1にする(図4のステップSTES9)。ただし、状態遷移名がイベント発火、内部処理の場合は何もしない。図4のステップSTES9の処理により作成される検査表は、図6の(C)のようになる。図6の(C)の検査表上の0のブロックに対応する状態とイベントの組は、受理可能状態表ファイルにおいて当該状態において当該イベントが受理可能であるとされているものの、状態遷移格納ファイルには当該状態において当該イベントを受理したときの状態遷移が規定されていないものである。
続いて、入力した状態遷移格納ファイルをコピーし、異常状態付状態遷移図格納用状態遷移格納ファイル35を作成する(図4のステップSTES10)。
続いて、検査表上の値が0の全ブロックに対し、異常状態付状態遷移図格納用状態遷移格納ファイル35に、各ブロックに対応する状態において対応するイベントを受理したときに異常状態へ遷移すること(すなわち、(対応する状態,対応するイベントの受理,異常状態)の組)を追加する(図4のステップSTES11)。図6の(C)の場合、検査表上の値が0のブロックは状態S2とイベントe3の組に対応するものである。そのため、異常状態付状態遷移図格納用状態遷移格納ファイル35は、図6の(D)にあるように、遷移前状態をS2とし、状態遷移名をイベントe3の受理とし、遷移後状態を異常状態EBとする組を追加して作成されるものである。
続いて、K1番目のサブシステムの異常状態付状態遷移図格納用状態遷移図格納ファイル35を出力し(図4のステップSTES12)、K1の値を1増加して(図4のステップSTES13)、図4のステップSTES2の判断処理に戻る。
以上の処理により、サブシステムの状態遷移図とシステム連携方法に基づいて各サブシステムの異常状態付状態遷移図が生成される。サブシステムA、B、Cの異常状態付状態遷移図は、それぞれ図7の(A)、(B)、(C)のようになる。なお、図7において、状態EA、EB、ECは、それぞれサブシステムA、B、Cの異常状態である。
図8と図9は、図2の複合状態遷移図生成部17の動作を示すフロー図である。
複合状態遷移図生成部17は、N2をサブシステムの総数とし、K2を0とする(図8のステップSTCC1)。
続いて、複合状態遷移図生成部17は、K2とN2の値を比較して判断を行う(図8のステップSTCC2)。K2の値がN2の値より小さいならば図8のステップSTCC3の処理を行い、小さくないならば図8のステップSTCC5の処理を行う。
図8のステップSTCC3において、複合状態遷移図生成部17は、異常状態付状態遷移図格納用状態遷移格納ファイル35よりK2番目のサブシステムの異常状態付状態遷移図格納用状態遷移格納ファイルを入力する。続いて、K2の値を1増加して(図8のステップSTCC4)、図8のステップSTCC2の判断処理に戻る。
複合状態遷移図生成部17は、図8のステップSTCC1〜4の処理により、全てのサブシステムの異常状態付状態遷移図格納用状態遷移格納ファイルを入力する。サブシステムA、B、Cの場合、異常状態付状態遷移図格納用状態遷移格納ファイルはそれぞれ図10の(A)、(B)、(C)である。ここで、各ファイルの番号0の組の遷移前状態が初期状態である。
続いて、複合状態遷移図生成部17は、システム連携方法格納ファイル31より同期実行状態遷移組格納ファイルを入力する(図8のステップSTCC5)。ここで、同期状態実行遷移組格納ファイルは、システム連携方法の一部であって、同時に遷移する状態遷移群(唯一の能動的状態遷移と一つ以上の受動的状態遷移)を指定するものである。この同期状態実行遷移組格納ファイルの一例は、図10の(D)にあるように、イベントが発火する場所である発火場所と、発火するイベントを示す能動的状態遷移名と、発火したイベントを受理することを示す受動的状態遷移名の組が規定され、各組は番号により特定可能なものである。
続いて、複合状態遷移図生成部17は、各サブシステムの状態遷移格納ファイルの番号0の遷移前状態(すなわち、各サブシステムの初期状態)を集めて、システム全体の初期状態を構成する(図8のステップSTCC6)。例えば、サブシステムA、B、Cからなるシステムの場合にはシステム全体の初期状態は(SA,S1,SC)となる。
続いて、複合状態遷移図生成部17は、システム全体の初期状態を構成すると、“番号0,システム全体の初期状態”を初期値として、到達可能状態表を作成する(図8のステップSTCC7)。図10の(E)は、作成される到達可能状態表の一例を示す図である。
続いて、複合状態遷移図生成部17は、中身が空な複合状態遷移図格納用状態遷移格納ファイルを作成する(図8のステップSTCC8)。
複合状態遷移図生成部17は、N3の値を1とし、K3の値を0とする(図9のステップSTCC9)。ここで、N3の値は到達可能状態表の列数である。
続いて、複合状態遷移図生成部17は、K3とN3の値を比較して判断を行う(図9のステップSTCC10)。K3の値がN3の値よりも小さいならば図9のステップSTCC11の処理を行い、小さくないならば複合状態遷移図格納用状態遷移格納ファイル37を出力して(図9のステップSTCC21)、図8と図9の処理を終了する。
図9のステップSTCC11において、複合状態遷移図生成部17は、到達可能状態表におけるK3番目のシステム全体の状態を遷移前状態とする能動的状態遷移のリストを作成する。図9のステップSTCC11の処理の詳細は、図12により後に示される。図10の(E)の場合、0番目のシステム全体の状態の能動的状態遷移のリストは、(e1発火,e2発火,e3発火,i1)である。
続いて、複合状態遷移図生成部17は、N4を能動的状態遷移のリストの長さとし、K4を0とする(図9のステップSTCC12)。
続いて、複合状態遷移図生成部17は、K4とN4の値を比較して判断を行う(図9のステップSTCC13)。K4の値がN4の値よりも小さいならば図9のステップSTCC14の処理を行い、小さくないならばK3の値を1増加して(図9のステップSTCC20)図9のステップSTCC10の判断処理に戻る。
図9のステップSTCC14において、複合状態遷移図生成部17は、到達可能表におけるK3番目の状態を遷移前状態、能動的状態遷移のリストのK4番目の状態遷移名を状態遷移とするときの遷移後状態を計算する(詳細は図13〜図16で示される)。
続いて、複合状態遷移図生成部17は、K3番目の状態を遷移前状態とし、K4番目の状態遷移名を状態遷移名とし、計算した遷移後の状態を遷移後状態とする組を複合状態遷移図格納用状態遷移格納ファイル37に追加する(図9のステップSTCC15)。
続いて、複合状態遷移図生成部17は、計算した遷移後状態が到達可能状態表に登録されているかの判断を行う(図9のステップSTCC16)。登録されている場合には図9のステップSTCC19の処理を行う。登録されていない場合には、図9のステップSTCC17の処理を行う。
図9のステップSTCC17において、複合状態遷移図生成部17は、計算した遷移後状態を到達可能状態表の最後へ追加する。続いて、N3の値を1増加して(図9のステップSTCC18)図9のステップSTCC19の処理を行う。
図9のステップSTCC19において、複合状態遷移図生成部17は、K4の値を1増加する。そして、図9のステップSTCC13の判断処理に戻る。
以上に記載されているように図8と図9の処理が行われることにより、システム全体の複合状態遷移図が生成される。図11は、生成される複合状態遷移図の例を示す図である。
図12は、図9のステップSTCC11の処理(到達可能状態表におけるK3番目のシステム全体の状態を遷移前状態とする能動的状態遷移のリストを作成する処理)の詳細を示す図である。ここで、状態(T0,・・・,T(K5),・・・,T(N5−1))は、到達可能状態表におけるK3番目のシステム全体の状態であるとする。
まず、複合状態遷移図生成部17は、N5をサブシステムの総数とし、K5を0とする(図12のステップSTPS1)。
続いて、複合状態遷移図生成部17は、K5とN5の値を比較して判断する(図12のステップSTPS2)。K5の値がN5の値よりも小さいならば図12のステップSTPS3の処理を行い、小さくないならば能動的状態遷移リストを出力して(図12のステップSTPS10)図12の処理を終了する。
図12のステップSTPS3において、複合状態遷移図生成部17は、N6をK5番目のサブシステムの状態遷移格納ファイルの列数とし、K6を0とする。
続いて、複合状態遷移図生成部17は、K6とN6の値を比較して判断する(図12のステップSTPS4)。K6の値がN6の値よりも小さいならば図12のステップSTPS5の処理を行い、小さくないならばK5の値を1増加して(図12のステップSTPS9)図12のステップSTPS2の判断処理に戻る。
図12のステップSTPS5において、複合状態遷移図生成部17は、T(K5)がK6番目の遷移前状態であるかの判断を行う。T(K5)がK6番目の遷移前状態であれば図12のステップSTPS6の処理を行い、そうでなければ図12のステップSTPS8の処理を行う。
図12のステップSTPS6において、複合状態遷移図生成部17は、K6番目の状態遷移が能動的状態遷移かの判断を行う。能動的状態遷移であればK6番目の状態遷移を能動的状態遷移のリストへ追加し(図12のステップSTPS7)、図12のステップSTPS8の処理を行う。能動的状態遷移でなければ図12のステップSTPS8の処理を行う。
図12のステップSTPS8において、複合状態遷移図生成部17は、K6の値を1増加する。そして、図12のステップSTPS4の判断処理に戻る。
以上のように、複合状態遷移図生成部17は、図12の処理を行うことにより図9のステップSTCC11の処理を行うことができる。
図13〜図16は、図9のステップSTCC14の処理(K3番目の状態を遷移前状態、K4番目の状態遷移を状態遷移とするときの状態後遷移状態を計算する処理)の詳細を示す図である。以下では、K2番目のシステム全体の状態を(T0,・・・,T(K8),・・・,T(N8−1))とし、ATはK4番目の状態遷移であるとする。
まず、複合状態遷移図生成部17は、BKを到達可能状態表におけるK3番目のシステム全体の状態とする(図13のステップSTAS1)。続いて、複合状態遷移図生成部17は、N7を同期実行状態遷移組格納ファイルの列数とし、K7を0とする(図13のステップSTAS2)。
続いて、複合状態遷移図生成部17は、K7とN7の値を比較して判断を行う(図13のステップSTAS3)。K7の値がN7の値より小さいときは図13のステップSTAS4の処理を行い、小さくないとき(すなわち、ATが内部処理の場合)には図16のステップSTAS23の処理を行う。
図13のステップSTAS4において、複合状態遷移図生成部17は、ATがK7番目の能動的状態遷移であるかの判断を行う。ATがK7番目の能動的状態遷移であれば図13のステップSTAS6の処理を行い、ATがK7番目の能動的状態遷移でないならばK7を1増加して(図13のステップSTAS5)、図13のステップSTAS3の判断処理に戻る。
図13のステップSTAS6において、複合状態遷移図生成部17は、PLをK7番目の発火場所とし、ITをK7番目の受動的状態遷移とする。
続いて、複合状態遷移図生成部17は、N8をサブシステムの総数とし、K8を0とする(図14のステップSTAS7)。
続いて、複合状態遷移図生成部17は、K8とN8の値を比較して判断を行う(図14のステップSTAS8)。K8の値がN8の値よりも小さいならば図14のステップSTAS9の処理を行い、小さくないならば図16のステップSTAS32の処理を行う。
図14のステップSTAS9において、複合状態遷移図生成部17は、PLがK8番目のサブシステムであるかの判断を行う。PLがK8番目のサブシステムであるならば図14のステップSTAS10の処理を行い、そうでないならば図15のステップSTAS17の処理を行う。
図15のステップSTAS10において、複合状態遷移図生成部17は、N9をK8番目のサブシステムの状態遷移格納ファイルの列数とし、K9を0とする。
続いて、複合状態遷移図生成部17は、K9とN9の値を比較して判断する(図14のステップSTAS11)。K9の値がN9の値よりも小さいならば図14のステップSTAS12の処理を行い、小さくないならば図14のステップSTAS16の処理を行う。
図14のステップSTAS12において、複合状態遷移図生成部17は、T(K8)がK9番目の遷移前状態であるかの判断を行う。T(K8)がK9番目の遷移前状態であれば図14のステップSTAS13の処理を行い、そうでないならば図14のステップSTAS15の処理を行う。
図14のステップSTAS13において、複合状態遷移図生成部17は、ATがK9番目の状態遷移名であるかの判断を行う。ATがK9番目の状態遷移名であれば、BKを(B0,・・・,B(K8),・・・,B(N8−1))とするとBKを(B0,・・・,K9番目の遷移後状態,・・・,B(N8−1))に変更して(図14のステップSTAS14)図14のステップSTAS15の処理を行う。ATがK9番目の状態遷移でないならば図14のステップSTAS15の処理を行う。
図14のステップSTAS15において、複合状態遷移図生成部17は、K9の値を1増加する。そして、図14のステップSTAS11の判断処理に戻る。
図14のステップSTAS16において、複合状態遷移図生成部17は、K8の値を1増加する。そして、図14のステップSTAS8の判断処理に戻る。
図15のステップSTAS17において、複合状態遷移図生成部17は、N10をK8番目のサブシステムの状態遷移格納ファイルの列数とし、K10を0とする。
続いて、複合状態遷移図生成部17は、K10とN10の値を比較して判断を行う(図15のステップSTAS18)。K10の値がN10の値よりも小さいならば図15のステップSTAS19の処理を行い、小さくないならば図14のステップSTAS16の処理を行う。
図15のステップSTAS19において、複合状態遷移図生成部17は、T(K8)がK10番目の遷移前状態であるかの判断を行う。T(K8)がK10番目の遷移前状態であれば図15のステップSTAS20の処理を行い、そうでないならば図15のステップSTAS22の処理を行う。
図15のステップSTAS20において、複合状態遷移図生成部17は、ITがK10番目の状態遷移であるかの判断を行う。ITがK10番目の状態遷移であれば、BKを(B0,・・・,B(K8),・・・,B(N8−1))とするとBKを(B0,・・・,K10番目の遷移後状態,・・・,B(N8−1))に変更して(図15のステップSTAS21)図15のステップSTAS22の処理を行う。ITがK10番目の状態遷移でないならば図15のステップSTAS22の処理を行う。
図15のステップSTAS22において、複合状態遷移図生成部17は、K10の値を1増加する。そして、図15のステップSTAS18の判断処理に戻る。なお、図14のステップSTAS10〜15の処理は能動的遷移ATを見つける処理であり、図15のステップSTAS17〜22の処理は受動的遷移ITを見つける処理である。
図16のステップSTAS23において、複合状態遷移図生成部17は、N11をサブシステムの総数とし、K11を0とする。
続いて、複合状態遷移図生成部17は、K11とN11の値を比較して判断を行う(図16のステップSTAS24)。K11の値がN11の値よりも小さいときは図16のステップSTAS25の処理を行い、小さくないときは図16のステップSTAS32の処理を行う。
図16のステップSTAS25において、複合状態遷移図生成部17は、N12をK11番目のサブシステムの状態遷移格納ファイルの列数とし、K12を0とする。
続いて、複合状態遷移図生成部17は、K12とN12の値を比較して判断を行う(図16のステップSTAS26)。K12の値がN12の値よりも小さいならば図16のステップSTAS27の処理を行い、小さくないならば図16のステップSTAS31の処理を行う。
図16のステップSTAS27において、複合状態遷移図生成部17は、T(K11)がK12番目の遷移前状態であるかの判断を行う。T(K11)がK12番目の遷移前状態であれば図16のステップSTAS28の処理を行い、T(K11)がK12番目の遷移前状態でないならば図16のステップSTAS30の処理を行う。
図16のステップSTAS28において、複合状態遷移図生成部17は、ATがK12番目の状態遷移名であるかの判断を行う。ATがK12番目の状態遷移名であれば、BKを(B0,・・・,B(K11),・・・,B(N11−1))とするとBKを(B0,・・・,K12番目の遷移後状態,・・・,B(N11−1))に変更し(図16のステップSTAS29)、図16のステップSTAS30の処理を行う。ATがK12番目の状態遷移でないならば図16のステップSTAS30の処理を行う。
図16のステップSTAS30において、複合状態遷移図生成部17は、K12の値を1増加して図16のステップSTAS26の処理に戻る。
図16のステップSTAS31において、複合状態遷移図生成部17は、K11の値を1増加して図16のステップSTAS24の判断処理に戻る。
図16のステップSTAS32において、複合状態遷移図生成部17は、BKを計算結果として出力する。そして、図13〜図16の処理を終了する。
以上のように、複合状態遷移図生成部17は、図13〜図16の処理を行うことにより図9のステップSTCC14の処理を行うことができる。
図17は図2の異常状態到達可能性検査部23の動作を示すフロー図である。
まず、異常状態到達可能性検査部23は、複合状態遷移図格納用状態遷移格納ファイル37を入力する(図17のステップSTCH1)。
続いて、異常状態到達可能性検査部23は、N13を複合状態遷移図格納用状態遷移格納ファイル37の列数とし、K13を0とする(図17のステップSTCH2)。
そして、異常状態到達可能性検査部23は、K13とN13の値を比較して判断を行う(図17のステップSTCH3)。K13の値がN13の値よりも小さいならば図17のステップSTCH5の処理を行い、小さくないならば、検査結果として“異常状態へ到達する状態遷移列は存在せず”を出力して(図17のステップSTCH4)図17に示される処理を終了する。
図17のステップSTCH5において、異常状態到達可能性検査部23は、K13番目の遷移後状態が異常状態かの判断を行う。K13番目の遷移後状態が異常状態であるならば検査結果として“異常状態へ到達する状態遷移列が存在”を出力して(図17のステップSTCH6)図17の処理を終了する。K13番目の遷移後状態が異常状態でないならばK13の値を1増加して(図17のステップSTCH7)図17のステップSTCH3の判断処理に戻る。
なお、図17のステップSTCH6の処理を図18のフロー図にあるように変更することで、以下のように初期状態から異常状態へ到達する状態遷移列を出力することができる。
図18の処理において、異常状態到達可能性検査部23は、まず、空を初期値として状態遷移列格納表を作成する(図18のステップSTCO1)。ここで、空とは何も追加されていないことをいう。この処理により作成される状態遷移列格納表は例えば図19の(A)のようなものであり、状態遷移名を番号により特定可能なものとする。
続いて、異常状態到達可能性検査部23は、K13番目の状態遷移を状態遷移列格納表の最後に追加する(図18のステップSTCO2)。「e3発火」という状態遷移名を追加する場合、図19の(B)にあるように、番号を0とし状態遷移名としてe3発火とする組を追加する。
続いて、異常状態到達可能性検査部23は、PSをK13番目の遷移前状態とする(図18のステップSTCO3)。
そして、異常状態到達可能性検査部23は、PSが0番目の遷移前状態(すなわち、初期状態)であるかの判断を行う(図18のステップSTCO4)。PSが初期状態であれば、状態遷移列格納表を逆順にして、初期状態から異常状態へ到達する状態遷移列を問題状態遷移列格納用状態遷移列格納ファイル39に出力して(図18のステップSTCO7)、図18の処理を終了する。PSが初期状態でないならば、図18のステップSTCO5の処理を行う。
図18のステップSTCO5において、異常状態到達可能性検査部23は、K13の値を1減少させる。
続いて、K13番目の遷移後状態がPSであるかの判断を行う(図18のステップSTCO6)。PSがK13番目の遷移後状態であるならば図18のステップSTCO2の処理に戻り、そうでないならば図18のステップSTCO5の処理に戻る。
図20は、図2の瑣末遷移区別部27の動作の一例を示すフロー図である。瑣末遷移区別部27の一例は、異常状態到達可能性検査部23が図18の処理を行うことにより求められる初期状態から異常状態へ到達する状態遷移列(問題状態遷移列)と図2の重要状態遷移格納用状態遷移格納ファイル33に格納された使用者の興味がある状態遷移群に基づいて、問題状態遷移列から使用者の興味がある状態遷移群に含まれない状態遷移を除去することで得られる状態遷移列を出力するものである。
図20の処理において、瑣末遷移区別部27は、まず、問題状態遷移列格納用状態遷移列格納ファイル39を入力する(図20のステップSTDD1)。
続いて、瑣末遷移区別部27は、重要状態遷移格納用状態遷移格納ファイル33を入力する(図20のステップSTDD2)。この重要状態遷移格納用状態遷移格納ファイル33に格納されるデータは、重要な状態遷移の組(使用者の興味がある状態遷移群)である。
続いて、瑣末遷移区別部27は、空を初期値として、本質的な問題状態遷移列を格納する状態遷移列格納表を作成する(図20のステップSTDD3)。ここで、空とは何も追加されていないことをいう。
続いて、瑣末遷移区別部27は、N15を状態遷移列格納ファイルの列数とし、K15を0とする(図20のステップSTDD4)。
瑣末遷移区別部27は、K15とN15の値を比較して判断を行う(図20のステップSTDD5)。K15の値がN15の値よりも小さいならば図20のステップSTDD6の処理を行う。小さくないならば、状態遷移格納表を本質的な問題状態遷移列として本質的問題状態遷移列格納用状態遷移列格納ファイル41に出力して(図20のステップSTDD9)、図20の処理を終了する。
図20のステップSTDD6において、瑣末遷移区別部27は、K15番目の状態遷移が重要な状態遷移の組に含まれるかの判断を行う。K15番目の状態遷移が重要な状態遷移の組に含まれるならば、K15番目の状態遷移を状態遷移格納表の最後に追加して(図20のステップSTDD7)図20のステップSTDD8の処理を行う。含まれないならば、図20のステップSTDD8の処理を行う。
図20のステップSTDD8において、瑣末遷移区別部27は、K15の値を1増加して図20のステップSTDD5の判断処理に戻る。
図2の表示部21は、図2の異常状態付状態遷移図検査部15の出力を表示するものである。なお、問題状態遷移列に関しては、本質的問題状態遷移列格納用状態遷移列格納ファイル41に格納される状態遷移列(瑣末遷移区別部27により得られる状態遷移列)を表示してもよい。また、表示部21は表示装置に対して表示制御を行うものであってもよい。
表示部21の例としては、問題状態遷移列を異常状態への状態遷移に近いものから順番に表示するものである。例えば問題状態遷移列がe1,e2,e1,e1,e1,e3であった場合の表示例は図21のようになる。使用者が問題点を探すのは異常状態の近くからであることが多いため、このように表示することにより問題点が発見されやすくなる。
図22と図23は、受理可能イベント不受理検査部25の動作を示すフロー図である。
図22と図23の各ステップの動作は、図24に示される例を用いて具体例の一つが説明される。ここで、図24の(A)と(B)は、それぞれ、検査対象のシステムを構成するサブシステムDとEの状態遷移図である。サブシステムDは、図24の(A)に示されるように、状態SD1を初期状態とし、状態SD1においてイベントe1を受理したときに状態SD3に遷移し、状態SD3において内部処理i1により状態SD1に遷移し、状態SD1においてイベントe2を受理したときに状態SD2に遷移し、状態SD2において内部処理i2により状態SD1に遷移するとする。また、サブシステムEは状態SEを初期状態とし、イベントe1を発火して状態SEに遷移する(遷移前状態が状態SEであるため、状態SEのままである)とする。
また、図24の(C)は、サブシステムDの受理可能状態表ファイルである。サブシステムDは、状態SD1においてイベント群{e1,e2}を受理可能であり、状態SD2とSD3では受理可能イベントはないものとする。また、図24の(D)はサブシステムEの受理可能状態表ファイルである。サブシステムEは、受理可能イベントはないものとする。
図24の(E)は、サブシステムDとサブシステムEを合成したシステム全体の状態遷移を示す図(複合状態遷移図)である。合成したシステムは、状態(SD1,SE)を初期状態とし、状態(SD1,SE)においてサブシステムEのe1発火(サブシステムDのe1受理)により状態(SD3,SE)に状態遷移し、状態(SD3,SE)においてサブシステムDの内部処理i1により状態(SD1,SE)に状態遷移するものとする。図24の(F)は、図24の(E)に示される複合状態遷移図に相当する状態遷移格納ファイルの例である。
まず、受理可能イベント不受理検査部25は、複合状態遷移図格納用状態遷移格納ファイル37(システム全体の複合状態遷移図に相当する状態遷移格納ファイル)を入力する(図22のステップSTNR1)。図24の例においては、図24の(F)を入力する。
続いて、受理可能イベント不受理検査部25は、N16をサブシステムの総数とし、K16を0とする(図22のステップSTNR2)。図24の例においてはサブシステムはDとEの2つであり、N16を2とする。
続いて、受理可能イベント不受理検査部25は、K16とN16の値を比較して判断を行う(図22のステップSTNR3)。K16の値がN16の値よりも小さいならば図22のステップSTNR4の処理を行い、小さくないならば図22の処理を終了する。
図22のステップSTNR4において、受理可能イベント不受理検査部25は、K16番目のサブシステムの受理可能状態表ファイルを読み込む(図22のステップSTNR4)。図24の例において、サブシステムDの受理可能状態表ファイルは図24の(C)に示されるものであり、サブシステムEの受理可能状態表ファイルは図24の(D)に示されるものである。
続いて、受理可能イベント不受理検査部25は、N17を受理可能状態表ファイルの列数とし、K17を0とする(図22のステップSTNR5)。図24の例において、サブシステムDの場合にはN17は3であり、サブシステムEの場合にはN17は1である。
受理可能イベント不受理検査部25は、K17とN17の値を比較して判断を行う(図22のステップSTNR6)。K17の値がN17の値よりも小さいならば図23のステップSTNR8の処理を行い、小さくないならばK16の値を1増加して(図22のステップSTNR7)図22のステップSTNR3の判断処理に戻る。
図23のステップSTNR8において、受理可能イベント不受理検査部25は、N18を状態遷移格納ファイルの列数とし、K18を0とし、Alistを{}とする(図23のステップSTNR8)。
続いて、受理可能イベント不受理検査部25は、K18とN18の値を比較して判断を行う(図23のステップSTNR9)。K18の値がN18よりも小さいならば図23のステップSTNR10の処理を行い、小さくないならば図23のステップSTNR14の処理を行う。
図23のステップSTNR10において、受理可能イベント不受理検査部25は、K16番目のサブシステムの受理可能状態表ファイルのK17番目の状態が複合状態遷移図に相当する状態遷移格納ファイルのK18番目の遷移前状態のK16項目かの判断を行う。K16番目のサブシステムの受理可能状態表ファイルのK17番目の状態が複合状態遷移図に相当する状態遷移格納ファイルのK18番目の遷移前状態のK16項目であれば図23のステップSTNR11の処理を行い、そうでないならば図23のステップSTNR13の処理を行う。
図23のステップSTNR11において、受理可能イベント不受理検査部25は、K18番目の状態遷移名がイベント発火であるかの判断を行う。イベント発火であればAListと当該イベントの論理和を計算して得られたものを新たにAListとし(すなわち、AListに当該イベントを追加し)(図23のステップSTNR12)、図23のステップSTNR13の処理を行う。イベント発火でないならば図23のステップSTNR13の処理を行う。
図23のステップSTNR13において、受理可能イベント不受理検査部25は、K18の値を1増加する。そして、図23のステップSTNR9の判断処理に戻る。
図23のステップSTNR14において、受理可能イベント不受理検査部25は、K17番目の受理可能イベントの集合からAListに属する状態を除いた状態からなるリストを新たにAListとする。サブシステムDの状態SD1の場合(すなわち、K16とK17が共に0の場合)、AListは{e2}となる。
続いて、受理可能イベント不受理検査部25は、AListが空集合かの判断を行う(図23のステップSTNR15)。空集合であればK16番目のサブシステムには不受理な受理可能イベントは存在しないと出力して(図23のステップSTNR16)図23のステップSTNR17の処理を行う。空集合でないならば、K16番目のサブシステムのK17番目の状態にはAListという不受理な受理可能イベントがあると出力して(図23のステップSTNR18)、図23のステップSTNR17の処理を行う。
図23のステップSTNR17において、受理可能イベント不受理検査部25は、K17の値を1増加する。そして、図22のステップSTNR6の判断処理に戻る。
なお、例えば図25にあるように、複合状態遷移図検査部19を、受理可能イベント不受理検査部25を含まずに、異常状態到達可能性検査部23を有するものとしてもよい。
また、例えば図26にあるように、複合状態遷移図検査部19を、異常状態到達可能性検査部23を含まずに、受理可能イベント不受理検査部25を有するものとしてもよい。
検証対象のシステムが、図3にあるサブシステムA、B、Cからなり、サブシステムBとサブシステムCとの間に長さ1のキューがあり、このキューにイベントが保持される、とモデル化できると仮定される場合について、図2の状態遷移図検証支援装置11の動作を説明する。
キューとしてモデル化できるものとして、例えばLANなどのネットワークがある。なお、キューの長さが1という仮定が崩れる場合には、キューの長さを適切な長さにすればよい。
また、このキューは、イベントを入れる操作(イベント入力)とイベントを取り出す操作(イベント出力)を持つとする。イベント入力はイベント発火により引き起こされるので受動的状態遷移であり、イベント出力はイベント受理を引き起こすので能動的状態遷移である。
図27は長さ1のキューの状態遷移を示す図である。このキューの状態遷移図は、システム連携方法に含まれる。図27において、記号!e2,!e3はそれぞれイベントe2,e3のイベント入力を意味し、記号!:e2,!:e3はそれぞれイベントe2,e3のイベント出力を意味するものとする。
このとき、システム連携方法の一例として、以下の四つが考えられる。一つ目は、サブシステムAとCは受理可能状態を持たないことである。二つ目は、サブシステムBの状態S1とS2はイベント{e1}の受理可能状態であり、状態S2はイベント群{e2,e3}の受理可能状態であることである。三つ目は、e1のイベント発火(能動的状態遷移)とイベント受理(受動的状態遷移)とは同時に発生することである。四つ目は、e2(e3)のイベント発火(能動的状態遷移)とe2(e3)のイベント入力(受動的状態遷移)、及び、e2(e3)のイベント出力(能動的状態遷移)とe2(e3)のイベント受理(受動的状態遷移)とは同時に発生することである。
検査対象のシステムが上記の場合に、状態遷移図検証支援装置11の動作は下記のようになる。
まず、異常状態付状態遷移図生成部13は、サブシステムA、B、Cの各状態遷移図に対して異常状態付状態遷移図を生成する(図6参照)。
続いて、複合状態遷移図生成部17は、異常状態付状態遷移図生成部13が生成した各サブシステムの異常状態付状態遷移図と長さ1のキューの状態遷移図(システム連携方法の一部)に基づいてシステム全体の複合状態遷移図を生成する。
具体的には、サブシステムA、B、C、キューの初期状態がそれぞれSA、S1、SC、Q1なので、システム全体の初期状態は(SA,S1,SC,Q1)である。SA、S1、SC、Q1のいずれかからの能動的状態遷移はe1、e2、e3のイベント発火とi1の内部処理であり、受動的状態遷移はe1のイベント受理とe2、e3のイベント入力である。システム連携方法では、e1のイベント発火とイベント受理とは同時発生し、また、e2(e3)のイベント受理とイベント入力とは同時発生することになっているため、(SA,S1,SC,Q1)からの状態遷移は、e1のイベント発火、e2,e3のイベント発火、及び、i1の内部処理である。以下、同様にしてシステム全体の複合状態遷移図が得られる。得られる複合状態遷移図は、図28に示されるものである。
続いて、複合状態遷移図検査部19は、複合状態遷移図生成部17により生成された複合状態遷移図の検査を行う。そして、表示部21は、複合状態遷移図検査部19の出力を表示する。
図29は、図2の異常状態付状態遷移図生成部13の動作の他の例を示すフロー図である。図4のフロー図においては、受理可能状態表ファイルに登録されている状態と受理可能イベントの組であって状態遷移格納ファイルに当該状態を遷移前状態とし当該イベントの受理を状態遷移名とするものが登録されていない場合に当該状態を遷移前状態とし当該イベントの受理を状態遷移名とし異常状態を遷移後状態とする組を状態遷移格納ファイルに追加する処理をしている。
それに対して、図29のフロー図においては、この処理に加えて、状態遷移格納ファイルに登録された遷移前状態と状態遷移名と遷移後状態の組であって、状態遷移が受動的なものであり、遷移前状態と状態遷移名の組が受理可能状態表ファイルに登録されていないものを削除する(すなわち、状態遷移格納ファイルにおいて、受理可能状態表ファイルにより当該状態の受理可能イベントでないとされるイベント受理の状態遷移を削除する)処理を行うものである。
図30〜図32は、図29の各処理の具体例を示す図である。図30の(A)は、検査対象のシステムを構成するサブシステムの一つであるサブシステムFの状態遷移を示す図である。このサブシステムFは、状態SF1を初期状態とし、状態SF1においてイベントe1を受理した場合に状態SF2に遷移し、状態SF1においてイベントe5を受理したときに状態SF3に遷移し、状態SF2においてイベントe1を受理したときに状態SF2に遷移し(遷移前状態が状態SF2であるため、状態SF2のままである)、状態SF2においてイベントe2を受理した場合に状態SF1に遷移し、状態SF2においてイベントe4を発火して状態SF2に遷移し、状態SF3においてイベントe1を受理して状態SF4に遷移し、状態SF3においてイベントe2を受理して状態SF1に遷移し、状態SF4においてイベントe2を受理して状態SF3に遷移し、状態SF4において内部処理i1により状態SF4に遷移するとする。このサブシステムFの状態遷移格納ファイルは、図30の(B)に示されるものである。
また、受理可能状態表ファイルは、図30の(C)に示されるものである。図30の(C)において、状態SF1における受理可能イベントはイベント{e1}であり、状態SF2における受理可能イベントはイベント群{e1,e2,e3}であり、状態SF3における受理可能イベントはイベント群{e1,e2}であり、状態SF4における受理可能イベントはイベント群{e2,e3}である。
図29において、異常状態付状態遷移図生成部13は、まず、サブシステムの状態遷移格納ファイルを入力する(図29のステップSTED1)。
続いて、異常状態付状態遷移図生成部13は、入力した状態遷移格納ファイルから状態のリストを計算してSListとする(図29のステップSTED2)。図30の(B)の場合、SList={SF1,SF2,SF3,SF4}である。
続いて、異常状態付状態遷移図生成部13は、入力した状態遷移格納ファイルから状態遷移名がイベント受理となるイベントのリストを計算してEList1とする(図29のステップSTED3)。図30の(B)の場合、EList={e1,e2,e5}である。
続いて、異常状態付状態遷移図生成部13は、サブシステムの受理可能状態表ファイルを入力する(図29のステップSTED4)。
続いて、異常状態付状態遷移図生成部13は、入力した受理可能状態表ファイルから受理可能イベントのリストを計算してEList2とする(図29のステップSTED5)。図30の(C)の場合、EList2={e1,e2,e3}である。
続いて、異常状態付状態遷移図生成部13は、EList1とEList2の和集合をEListとする(すなわち、EList=EList1∪EList2を計算する)(図29のステップSTED6)。図30の場合、EList={e1,e2,e3,e5}である。
続いて、異常状態付状態遷移図生成部13は、各ブロックがSListの要素とEListの要素の組で定まる検査表Aを作成し、各ブロックを0で初期化する(図29のステップSTED7)。このとき、検査表Aは図31の(A)に示されるようになる。
続いて、異常状態付状態遷移図生成部13は、状態遷移格納ファイルに記述された(遷移前状態,イベント受理)の組で定まる検査表A上の全ブロックを1にする(図29のステップSTED8)。状態遷移名がイベント発火、内部処理の場合は何もしない。状態遷移格納ファイルが図30の(B)の場合に、(遷移前状態,イベント受理)の組は(SF1,e1)、(SF1,e5)、(SF2,e1)、(SF2,e2)、(SF3,e1)、(SF3,e2)、(SF4,e2)であるので、これらの組に対応する検査表A上のブロックを1にする。ここで作成される検査表Aは、図31の(B)のようになる。
続いて、異常状態付状態遷移図生成部13は、各ブロックがSListの要素とEListの要素の組で定まる検査表Bを作成し、各ブロックを0で初期化する(図29のステップSTED9)。このとき、検査表Bは図31の(C)に示されるようになる。
続いて、異常状態付状態遷移図生成部13は、状態遷移格納ファイルに記述された(状態,受理可能イベント)の組で定まる検査表B上の全ブロックを1にする(図29のステップSTED10)。状態遷移格納ファイルが図30の(C)の場合に、(状態,受理可能イベント)の組は(SF1,e1)、(SF2,e1)、(SF2,e2)、(SF2,e3)、(SF3,e1)、(SF3,e2)、(SF4,e2)、(SF4,e3)であるので、これらの組に対応する検査表B上のブロックを1にする。ここで作成される検査表Bは、図31の(D)のようになる。
続いて、異常状態付状態遷移図生成部13は、各ブロックがSListの要素とEListの要素の組で定まる検査表Cを作成し、各ブロックの値を、検査表Aの当該ブロックの値の否定と検査表Bの当該ブロックの値との論理積を計算して得られた値とする(図29のステップSTED11)。ここで作成される検査表Cは、図31の(E)のようになる。
この検査表Cの各ブロックにおいて、1であるブロックに対応する状態とイベントの組は、受理可能状態表ファイルに記述されている状態とイベントの組であって状態遷移格納ファイルには遷移前状態とイベント受理の組として記述されていないものである。このような状態とイベントの組は、イベントが受理可能な状態とされているが状態遷移格納ファイルにおいては状態遷移が規定されていないものである。
続いて、異常状態付状態遷移図生成部13は、状態遷移格納ファイルに、検査表Cの値が1の各ブロックに対応する(状態,イベント受理,異常状態)の行を追加する(図29のステップSTED12)。この操作により、状態遷移格納ファイルは図31の(F)のようになる。図29のステップSTED12の処理により、受理可能とされているが状態遷移格納ファイルにおいては状態遷移が規定されていないものに関して、異常状態への遷移として状態遷移が追加される。
続いて、異常状態付状態遷移図生成部13は、各ブロックがSListの要素とEListの要素の組で定まる検査表Dを作成し、各ブロックの値を、検査表Aの当該ブロックの値と検査表Bの当該ブロックの値の否定との論理積を計算して得られた値とする(図29のステップSTED13)。ここで作成される検査表Dは、図32の(A)のようになる。
この検査表Dの各ブロックにおいて、1であるブロックに対応する状態とイベントの組は、状態遷移格納ファイルに状態遷移が登録されているものの、受理可能状態表ファイルにおいては当該状態において当該イベントが受理可能とはされていないものの組である。
続いて、異常状態付状態遷移図生成部13は、状態遷移格納ファイルから、検査表Dの値が1の各ブロックに対応する状態を遷移前状態とし、対応するイベントの受理を状態遷移名とする行を削除する(図29のステップSTED14)。この操作により、状態遷移格納ファイルは図32の(B)のようになる。
以上の操作により生成される図32の(B)が、出力される異常状態付状態遷移格納ファイルである。なお、生成されるサブシステムの異常状態付状態遷移図は、図32の(C)である。
異常状態到達可能性検査部23の他の例として、ループを考慮した(今までに通過した状態へ来たら深さ優先の検索を止め、次の状態遷移へ移る)深さ優先探索アルゴリズムを用いて初期状態から異常状態へ到達する状態遷移列が存在するかどうかを検査するようにしてもよい。
例えば、図11のシステム全体の複合状態遷移図に対し、“e1>e2>e3>i1”という順序でループを考慮した深さ優先探索アルゴリズムを用いる。
まず、初期状態(SA,S1,SC)よりイベントe1による状態遷移によりシステムの状態は(SA,S2,SC)へ遷移する。
続いて、さらに、イベントe1による状態遷移によりシステムの状態は(SA,S2,SC)となる。これは、今までに通過した状態であり、深さ優先検索を止め、次の状態遷移の検索へ移る。
次に検索する状態遷移として初期状態からイベントe1に続いてイベントe2による状態遷移を考えると、システムは、これらのイベントによる状態遷移により状態(SA,S1,SC)へ遷移することとなるが、この状態は初期状態であり、今までに通過した状態へ来たので深さ優先検索を止め、次の状態遷移の検索へ移る。
次に検索する状態遷移として初期状態からイベントe1に続いてイベントe3による状態遷移を考えると、システムは、これらのイベントによる状態遷移により状態(SA,EB,SC)に遷移する。この状態遷移により異常状態に到達したので、検索を終了する。
この検索の結果から、初期状態から異常状態へ到達する状態遷移列(e1,e3)が存在することが確認できる。
さらに、異常状態到達可能性検査部23の他の例として、ループを考慮した幅優先探索アルゴリズムを用いて初期状態から異常状態へ到達する状態遷移列が存在するかどうかを検査するようにしてもよい。
例えば、図11のシステム全体の複合状態遷移図に対し、“e1>e2>e3>i1”という順序でループを考慮した幅優先探索アルゴリズムを用いる。
まず、システムは、イベントe1による状態遷移により、初期状態(SA,S1,SC)より状態(SA,S2,SC)へ遷移する。
また、システムは、内部処理i1により初期状態のままに留まる。
続いて、システムは、イベントe1に続くイベントe1による状態遷移により、初期状態より状態(SA,S2,SC)へ遷移する。
また、システムは、イベントe1に続くイベントe2による状態遷移により、初期状態より状態(SA,S1,SC)へ遷移する。
さらに、システムは、イベントe1に続くイベントe3による状態遷移により、初期状態より状態(SA,EB,SC)へ遷移する。異常状態に到達したので、検索を終了する。
この検索の結果から、初期状態から異常状態へ到達する状態遷移列(e1,e3)が存在することが確認できる。
図33に記載された状態遷移データ検証支援装置45は、サブシステムの状態遷移表を状態遷移図へ変換する状態遷移表変換部47を有し、状態遷移表変換部47により変換して得られた状態遷移図に基づいて異常状態付状態遷移図を生成して検証を行うものである。
ここで、状態遷移表は、図34にあるように、一方の軸に状態の組、他方の軸にイベントの組を取り、状態とイベントで定まるブロックに、その状態でそのイベントを受理したときに実施するアクション群を記述した表である。記述されたアクション群は、最後のみ状態変更アクションである。図34において、状態1とイベントAで定まるブロックにおける状態変更アクションは「goto状態2」であり、状態2とイベントBで定まるブロックにおける状態変更アクションは「goto状態1」である。ある状態においてあるイベントが発生しないと設計者が判断した場合、そのブロックには×印などのマークをつけ、このブロックを異常ブロックと呼ぶ。図34においては、状態1とイベントBで定まるブロックと状態2とイベントAで定まるブロックが異常ブロックである。
図35は、外部環境とシステム間及びシステム間連携と各サブシステムの状態遷移表の例を示す図である。図35の(A)にあるように、外部環境(ユーザ)はイベント“ボタン1押下”、“ボタン2押下”を発火し、これらのイベント“ボタン1押下”、“ボタン2押下”をサブシステムGへ送る。また、サブシステムGはイベントe1とe2を発火し、これらのイベントをサブシステムHへ送る。
図35の(B)は、サブシステムGの状態遷移表を表す図である。サブシステムGの初期状態は状態SGである。状態SGにおいてイベント“ボタン1押下”を受理すると、まずイベントe1を発火し、次にイベントe2を発火し、その後状態SGへ遷移する(遷移前状態が状態SGなので状態は変わらない)。また、状態SGにおいてイベント“ボタン2押下”を受理すると、まず内部処理を行い、次にイベントe2を発火し、その後状態SGへ遷移する(現状態が状態SGなので状態は変わらない)。
図35の(C)は、サブシステムHの状態遷移表を表す図である。サブシステムGの初期状態は状態SH1である。状態SH1においてイベントe1を受理すると状態SH2へ移行する。状態SH2においてイベントe2を受理すると状態SH1へ移行する。また、状態SH1とイベントe2、状態SH2とイベントe1で定まるブロックは異常ブロックである。
図36と図37は、状態遷移表に状態遷移図で意味づけをする一方法を示すフロー図である。
まず、状態遷移表変換部47は、状態遷移表を入力する(図36のステップSTTC1)。
続いて、状態遷移表変換部47は、中身を空で状態遷移格納表を作成する(図36のステップSTTC2)。ここで、空とは何も追加されていないことをいう。
状態遷移表変換部47は、N19を状態の総数とし、K19を0とする(図36のステップSTTC3)。ここで、状態遷移表の状態は、状態0,・・・,状態(K19),・・・,状態(N19−1)であると仮定する。
続いて、状態遷移表変換部47は、K19とN19の値を比較して判断する(図36のステップSTTC4)。K19の値がN19の値よりも小さいならば図36のステップSTTC5の処理を行い、小さくないならば状態遷移格納表を状態遷移図の状態遷移格納ファイルとして出力して(図36のステップSTTC21)図36の処理を終了する。
図36のステップSTTC5において、状態遷移表変換部47は、N20をイベントの総数とし、K20を0とする。
続いて、状態遷移表変換部47は、K20とN20の値を比較して判断を行う(図36のステップSTTC6)。K20の値がN20の値よりも小さいならば図36のステップSTTC7の処理を行い、小さくないならばR(K19)を状態(K19)に対応する新しい状態とし、K19の値を1増加して(図36のステップSTTC20)図36のステップSTTC4の判断処理に戻る。
図36のステップSTTC7において、状態遷移表変換部47は、K19番目の状態とK20番目のイベントで定まるブロックが異常ブロックかの判断を行う。異常ブロックであれば図36のステップSTTC8の処理を行い、異常ブロックでないならば図37のステップSTTC9の処理を行う。
図36のステップSTTC8において、状態遷移表変換部47は、K20を1増加して図36のステップSTTC6の判断処理に戻る。
図37のステップSTTC9において、状態遷移表変換部47は、AEを新しい状態とする。このAEはイベント受理後の状態を表す。
続いて、状態遷移表変換部47は、R(K19)を遷移前状態とし、K20番目のイベントのイベント受理を状態遷移名とし、AEを遷移後状態とする組を状態遷移格納表に追加する(図37のステップSTTC10)。
続いて、状態遷移表変換部47は、N21を状態変更アクションを除くアクションの総数とし、K21を0とする(図37のステップSTTC11)。
続いて、状態遷移表変換部47は、BAをAEとする(図37のステップSTCC12)。BAは、アクション実行前の状態である。
続いて、状態遷移表変換部47は、K21とN21の値を比較して判断を行う(図37のステップSTTC13)。K21の値がN21の値よりも小さいならば図37のステップSTTC14の処理を行い、小さくないならば図37のステップSTTC18の処理を行う。
図37のステップSTTC14において、状態遷移表変換部47は、AAを新しい状態とする。AAは、アクション実行後の状態である。
続いて、状態遷移表変換部47は、BAを遷移前状態とし、K21番目のアクションを状態遷移名とし、AAを遷移後状態とする組を状態遷移格納表に追加して(図36のステップSTTC15)、BAをAAとし(図36のステップSTTC16)、K21の値を1増加して(図36のステップSTTC17)図36のステップSTTC13の判断処理に戻る。BAは、アクション実行後の状態である。
図37のステップSTTC18において、状態遷移表変換部47は、AAを状態変更アクション実行後の状態とする。AAは、アクション実行後の状態である。続いて、BAを遷移前状態とし、状態変更アクションを状態遷移名とし、AAを遷移後状態とする組を状態遷移格納表に追加する(図36のステップSTTC19)。そして、図36のステップSTTC8の処理に戻る。
図36と図37に示される方法により、図35に示されるサブシステムの状態遷移表に対する処理は、以下のように行われる。
まず、状態遷移表の各状態nに対し、状態遷移図上にイベント群を受理可能な状態Rnが割り当てられる。
続いて、状態nの列で異常ブロックにならない行のイベントevtに対し状態遷移図上に状態Uevt0が割り当てられ、状態Rnから状態Uevt0への遷移としてevtのイベント受理が割り当てられる。
続いて、状態nとイベントevtで定まるブロックにおいて、状態変更アクション以外のアクション(イベント発火又は内部処理)に対し状態遷移図上に状態UevtK(Kは1から始まるブロック内のアクションの上からの位置)が割り当てられ、状態Uevt(K−1)から状態UevtKへの遷移としてブロック内の上からK番目のアクション(イベント発火又は内部処理)が割り当てられる。
最後に、状態変更アクションがN番目のアクションで状態mへ状態を変更する場合、状態Uevt(N−1)から状態Rmへの遷移としてこの状態変更アクション(内部処理)が割り当てられる。
サブシステムGの場合、状態SGに対応するイベント群を受理可能な状態は図38の(A)の状態R1である。図35の(B)において状態SGの列に異常ブロックはないので、イベント“ボタン1押下”、“ボタン2押下”で定まるブロックに対し上記処理を行うことになる。イベント“ボタン1押下”に対する状態Uevt0,・・・,Uevt(N−1)は図38の(A)の状態U1、U2、U3である。また、イベント“ボタン2押下”に対する状態Uevt0,・・・,Uevt(N−1)は図38の状態U4、U5、U6である。
サブシステムHの場合、状態SH1、SH2に対応するイベント群を受理可能な状態はそれぞれ図38の(B)の状態R2、R3である。図35の(C)において異常ブロックにならないブロックは、状態SH1の場合はイベントe1、状態SH2の場合はイベントe2で定まるブロックである。状態SH1とイベントe1で定まるブロックに対して上記処理を行うと、状態Uevt0,・・・,Uevt(N−1)は図38の(B)の状態U7である。状態SH2とイベントe2で定まるブロックに対し上記処理を行うと、状態Uevt0,・・・,Uevt(N−1)は図38の(B)の状態U8である。
変換したことで得られた状態遷移図上でシステム連携方法を議論すると、その一例として以下の二つが考えられる。一つ目は、サブシステムGの状態R1はイベント群{ボタン1押下,ボタン2押下}の受理可能状態であり、サブシステムHの状態R2、R3はイベント群{e1,e2}の受理可能状態であることである。二つ目は、同じ名前の非環境イベントの非環境イベント発火と非環境イベント受理とは同時に発生することである。
異常状態付状態遷移図生成部13は、状態遷移表変換部47により変換して生成された状態遷移図に基づいて異常状態付状態遷移図を生成する。異常状態付状態遷移図生成部13により生成されたサブシステムGとHの異常状態付状態遷移図は、それぞれ図39の(A)と(B)となる。
複合状態遷移図生成部17は、生成された異常状態付状態遷移図に基づいて複合状態遷移図を生成する。
サブシステムGとHの初期状態がそれぞれR1とR2であるため、システム全体の初期状態は(R1,R2)である(図40では括弧は省略されている)。R1とR2のいずれかからの能動的状態遷移は、イベント“ボタン1押下”、“ボタン2押下”の環境イベント受理であり、受動的状態遷移はイベントe1の非環境イベント受理である。
システム連携方法では、同じ名前の非環境イベントの非環境イベント発火と非環境イベント受理とは同時に発生することにしているため、(R1,R2)からの状態遷移は“ボタン1押下”、“ボタン2押下”の環境イベント受理のみである。
(R1,R2)から“ボタン1押下”の環境イベント受理という状態遷移により、(U1,R2)に遷移する。U1とR2のいずれかからの能動的状態遷移はイベントe1の非環境イベント発火であり、受動的状態遷移はイベントe1の非環境イベント受理である。したがって、上記システム連携方法に基づき、(U1,R2)からの状態遷移はイベントe1の非環境イベント発火(非環境イベント受理)である。
同様にして図40に示されるシステム全体の複合状態遷移図が得られる。
複合状態遷移図検査部19は、複合状態遷移図生成部17により生成された複合状態遷移図を検査する。また、表示部21は、複合状態遷移図検査部19の出力を表示する。
なお、瑣末遷移区別部27は、入力となる重要な状態遷移の組として、使用者が興味のあるサブシステムの状態遷移表の横軸のイベント受理をとると、問題状態遷移列が、このサブシステム上のどのブロック上を移動するかがわかり、デバッグの際有効である。
さらに、状態遷移図の記述にBDD(Binary Decision Diagram)というデータ構造を用い、異常状態到達可能性検査部23に記号モデル検査技術を用いることも考えられる。
図41は、図1の検証支援装置1の他の例を示す概略ブロック図である。図41において、状態遷移図検証支援装置51は、システムの異常状態への遷移の検証と到達可能性のない状態を検証する。
状態遷移図検証支援装置51は、異常状態付状態遷移図生成部13と到達可能状態検査部53を備える。
異常状態付状態遷移図生成部13は、サブシステムの状態遷移図とシステム連携方法に基づいて異常状態付状態遷移図を生成する。ここでは、図29のフロー図による処理により異常状態付状態遷移図が生成されたとする。
前述のように、サブシステムF(図30の(A)参照)の状態遷移図に対する図29のフロー図による処理により図32の(C)の異常状態付状態遷移図が生成される。この異常状態付状態遷移図の状態遷移格納ファイルは図32の(B)である。
到達可能状態検査部53は、異常状態付状態遷移図生成部13により生成されたサブシステムの異常状態付状態遷移図に基づいて、システムの異常状態への遷移の検証と到達可能性のない状態を検証する。
図42と図43は、到達可能状態検査部53の動作を示すフロー図である。
まず、到達可能状態検査部53は、サブシステムの異常状態付状態遷移図の状態遷移格納ファイルを入力する(図42のステップSTCK1)。
続いて、到達可能状態検査部53は、状態遷移格納ファイルから、遷移前状態と遷移後状態のリストの組を記述した状態遷移記述表を作成する(図42のステップSTCK2)。ここで、状態遷移記述表は、図44にあるように、状態遷移格納ファイルにおける遷移前状態と当該遷移前状態に対応する遷移後状態の集合との組で表されるものである。
続いて、到達可能状態検査部53は、到達可能性状態集合をSとし、S={初期状態}と初期化する(図42のステップSTCK3)。図32の(C)の例においては、S={SF1}と初期化する。
続いて、到達可能状態検査部53は、差分集合をdSとし、dS={初期状態}と初期化する(図42のステップSTCK4)。
続いて、到達可能状態検査部53は、dSに正常状態が含まれるかの判断を行う(図43のステップSTCK5)。dSに正常状態が含まれるならば図43のステップSTCK6の処理を行い、含まれないならば図43のステップSTCK12の処理を行う。
図43のステップSTCK6において、到達可能状態検査部53は、N23を状態遷移記述表の列数とし、K23を0とし、dS’を0とする。
続いて、到達可能状態検査部53は、K23とN23の値を比較して判断を行う(図43のステップSTCK7)。K23の値がN23の値よりも小さいならば図43のステップSTCK8の処理を行い、小さくないならば図43のステップSTCK11の処理を行う。
図43のステップSTCK8において、到達可能状態検査部53は、K23番目の遷移前状態がdSに含まれるかの判断を行う。含まれるならば図43のステップSTCK9の処理を行い、含まれないならば図43のステップSTCK10の処理を行う。
図43のステップSTCK9において、到達可能状態検査部53は、dS’(K23)をK23番目の遷移後状態の集合とし、dS’とdS’(K23)の和集合を新たにdS’とする。そして、図43のステップSTCK10の処理を行う。
図43のステップSTCK10において、到達可能状態検査部53は、K23の値を1増加して図43のステップSTCK7の判断処理に戻る。
図43のステップSTCK11において、到達可能状態検査部53は、集合dS’から集合Sに属する要素を除いたものをdSとし、dSとSの和集合を新たにSとする。そして、図43のステップSTCK5の判断処理に戻る。
図43のステップSTCK12において、到達可能状態検査部53は、Sに異常状態が含まれるかの判断を行う。異常状態が含まれるならば異常状態に到達可能と出力し(図43のステップSTCK13)、図43のステップSTCK15の処理を行う。異常状態が含まれないならば異常状態に到達しないと出力し(図43のステップSTCK14)、図43のステップSTCK15の処理を行う。
図43のステップSTCK15において、到達可能状態検査部53は、正常状態の集合をALLとし、ALLから集合Sに属する要素を除いたものをS’とする。
続いて、到達可能状態検査部53は、S’が空集合かの判断を行う(図43のステップSTCK16)。空集合であるならば未到達状態が存在しないと出力して(図43のステップSTCK17)図43の処理を終了する。空集合でないならばS’を未到達状態として出力して(図43のステップSTCK18)図43の処理を終了する。
以上より、到達可能状態検査部53は、異常状態に到達する可能性の検査と未到達状態の検出を行うことができる。
なお、到達可能状態検査部53は、図42と図45のフロー図の処理を行うことにより、システムの異常状態到達可能性のみを検査することができる。図45のフロー図は、図43のフロー図におけるステップSTCK15〜STCK18の処理を除いたものである。
また、到達可能状態検査部53は、図42と図46のフロー図の処理を行うことにより、未到達状態のみを検出することができる。図46のフロー図は、図43のフロー図におけるステップSTCK12〜STCK14の処理を除いたものである。
さらに、複合状態遷移図に対して同様の処理を行うことにより、システム全体の初期状態からの異常状態への到達可能性の検査や未到達状態の検出を行うことができる。
【0002】
[0007]
そこで、本発明の目的は、状態遷移データと関係データの検証を支援することに適合する検証支援装置、検証支援方法、その検証支援方法をコンピュータに実行させることが可能なプログラム、及び、そのプログラムを記録した記録媒体を提供することにある。
【課題を解決するための手段】
[0008]
請求項1に係る発明は、システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援装置であって、前記状態遷移データに異常状態への状態遷移を特定可能なデータを自動的に追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成手段と、前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査手段と、を備えるものである。
[0009]
なお、請求項1に係る発明において、異常状態付状態遷移データ検査手段が到達する可能性のある状態を検査し、さらに例えば異常状態への到達可能性を検査することにより、以下のことがいえる。
[0010]
例えば状態遷移図の記述者は、通常、システム全体の動作を思い浮かべながら各サブシステムの状態遷移図を記述する。しかしながら、複雑なシステムの場合、サブシステムが多く存在しており、イベント発火の発生タイミングを完全に把握することは非常に困難である。すなわち、受理可能イベントの中には、サブシステムの組合せ方によっては絶対に受理しないものがある。例えば、システムがサブシステム1とサブシステム2との組合せでできており、サブシステム1の状態1の受理可能イベントがe1、e2であり、また、サブシステム2ではe1のみが発火可能であるとする。この組合せでは、サブシステム1の状態1ではe2は絶対に受理しない受理可能イベントである。逆に、一見受理しなさそうではあるが受理してしまうものもある。メモリを削減するために前者を受理したときの処理を削減することはよく行われるが、後者を前者と間違えて処理を削減してしまうこと(後者のイベント、すなわち、想定外の受理可能イベントが来ること)がしばしば起こり得る。したがって、状態遷移図の記述者が受理可能イベントの
【0004】
となり、例えば、想定外のイベントを受理してサブシステムが想定外の動作をする可能性の検証をすることが可能となる。
[0013]
さらに、請求項1に係る発明において、異常状態付状態遷移データ検査手段が到達する可能性のある状態を検査し、さらに例えば異常状態付状態遷移データ検査手段がシステムの初期状態からの状態遷移により到達する可能性のある遷移前状態及び遷移後状態並びに成立する可能性のある遷移条件を検査するようにしてもよい。
[0014]
さらに、請求項1に係る発明において、異常状態付状態遷移データ検査手段が到達する可能性のある状態を検査し、さらに例えば異常状態付状態遷移データ検査手段がシステムの初期状態からの状態遷移により到達する可能性のない状態又は成立する可能性のない遷移条件を検査することにより、以下のことがいえる。
[0015]
複数のサブシステムが組み合わされてシステムが作成されるとき、あるサブシステムのある状態において、例えばある受理可能イベントを受理しないことがある。受理可能イベントの中には、サブシステムの組合せ方によっては、絶対に受理しないものがある。例えば、システムがサブシステム1とサブシステム2との組合せでできており、サブシステム1の状態1の受理可能イベントがe1、e2であり、また、サブシステム2ではe1のみが発火可能であるとする。この組合せでは、サブシステム1の状態1ではe2は絶対に受理しない受理可能イベントである。このとき、この状態におけるその受理可能イベントの処理は無駄になり、この処理を削除することでシステムのメモリ量を削減することが可能になる。同様に、初期状態からの状態遷移により到達する可能性のない状態が存在することもある。
[0016]
一方、請求項1に係る発明であって異常状態付状態遷移データ検査手段が到達する可能性のある状態を検査し、さらに例えば異常状態付状態遷移データ検査手段がシステムの初期状態からの状態遷移により到達する可能性のない状態又は成立する可能性のない遷移条件を検査することにより、例えば、到達可能性のない状態や受理可能性のないイベントの存在を検証することが可能となる。
[0017]
請求項2に係る発明は、システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援装置であって、前記状態遷移
【0005】
データにはシステム設計者により生じ得ないとされた状態遷移を特定可能なデータが含まれず又はシステム設計者により生じ得ないとされた状態遷移を特定可能なデータがシステム設計者により生じ得るとされた状態遷移を特定可能なデータに対して識別可能に含まれ、前記関係データにはイベント群と前記イベント群の各イベントについて受理可能な状態の組合せを特定可能なデータが含まれ、前記イベント群の各イベントについて前記状態遷移データに当該イベントを受理したことを遷移条件とし当該イベントを受理可能な状態を遷移前状態とする状態遷移がシステム設計者により生じ得ないとされている場合に、前記状態遷移データに対して当該イベントを受理したことを遷移条件とし当該イベントを受理可能な状態を遷移前状態とし異常状態を遷移後状態とするデータを自動的に追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成手段と、前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査手段と、を備える。
[0018]
請求項3に係る発明は、請求項2記載の検証支援装置であって、前記関係データには同時に遷移する状態遷移群を特定可能なデータが含まれており、前記異常状態付状態遷移データ検査手段が、前記システム設計者により生じ得ると判断された状態遷移を特定可能なデータ及び前記異常状態付状態遷移データ生成手段により追加された異常状態への状態遷移を特定可能なデータ並びに同時に遷移する状態遷移群を特定可能なデータに基づいてシステムの初期状態からの状態遷移により到達する可能性のある遷移前状態及び遷移後状態並びに成立する可能性のある遷移条件を特定可能な複合状態遷移データを生成する複合状態遷移データ生成手段と、複合状態遷移データに基づいて、システムの初期状態からの状態の遷移により到達する可能性のある状態を検査する複合状態遷移データ検査手段を有する。
[0019]
請求項4に係る発明は、請求項3記載の検証支援装置であって、前記複合状態遷移データ検査手段が前記到達する可能性のある状態に異常状態が含まれるか否かを判断する異常状態到達可能性検査手段を有するものである。
[0020]
請求項4に係る発明により、異常状態への到達可能性を検査することによって、例えば、状態遷移図などの記述者が受理可能イベントの受理時の処理を記述し忘れていないかの検証をすることが可能となる。
[0021]
請求項5に係る発明は、システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援装置であって、前記関係データには同時に遷移する状態遷移群を特定可能なデータが含まれており、前記状態遷移データに異常状態への状態遷移を特定可能なデータを追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成手段と、前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査手段と、表示装置に対して情報を表示させる表示制御手段と、を備え、前記異常状態付状態遷移データ検査手段は、同時に遷移する状態遷移群を特定可能なデータと前記異常状態付状態遷移データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある遷移前状態及び遷移後状態並びに成立する可能性のある遷移条件を特定可能な複合状態遷移データを生成する複合状態遷移データ生成手段と、複合状態遷移データに基づいてシステムの初期状態からの状態の遷移により到達する可能性のある状態を検査する複合状態遷移データ検査手段とを有し、前記複合状態遷移データ検査手段は、前記到達する可能性のある状態に異常状態が含まれるか否かを判断する異常状態到達可能性検査手段を有し、前記表示制御手段は、前記異常状態到達可能性検査手段により異常状態が含まれると判断された場合に表示装置に対して初期状態から異常状態への状態遷移のうち異常状態に近い状態遷移を示す情報を優先して表示させるものである。
[0022]
請求項6に係る発明は、請求項5記載の検証支援装置であって、前記表示制御手段が異常状態への状態遷移のうち重要状態遷移として指定された状態遷移とそれ以外の状態遷移とを区別する瑣末遷移区別手段を有し、表示装置に対して重要状態遷移として指定された状態遷移を優先して表示させるものである。
[0023]
この構成により、例えば前記異常状態到達可能性検査手段は初期状態からの状態遷移により異常状態に到達する可能性がある場合に初期状態から異常状態に到達する状態遷移列である問題状態遷移列を生成し、前記瑣末遷移区別手段は前記問
【0006】
題状態遷移列のうち重要状態遷移として指定される状態遷移群に含まれるものを重要状態遷移とし、含まれないものを瑣末状態遷移とし、前記表示手段は前記問題状態遷移列を異常状態への状態遷移から順番に、重要状態遷移と瑣末状態遷移とを区別しながら表示する。例えば、重要状態遷移は黒色で表示し、瑣末状態遷移は黄色で表示する。したがって、使用者の関心のない状態遷移群に関するものを区別し、かつ、多くの場合に使用者が問題点を探す異常状態の近くから状態遷移列を表示することにより問題点が発見されやすくなる。なお、表示手段は、瑣末状態遷移を表示せずに重要状態遷移のみを表示してもよい。
[0024]
請求項7に係る発明は、請求項3又は4に記載の検証支援装置であって、前記複合状態遷移データ検査手段が前記状態遷移データに到達可能性のない状態又は受理可能性のないイベントに関するデータが含まれているか否かの判断を行う受理可能イベント不受理検査手段を有するものである。
[0025]
請求項7に係る発明によれば、例えば、前述のように、到達可能性のない状態や受理可能性のないイベントの存在を検証することが可能となる。
[0026]
さらに、請求項1から7のいずれかに記載の発明であって、例えば、状態遷移データは状態遷移図でもよい。また、状態遷移データは、ステートチャートやクリプキ構造でもよい。
[0027]
請求項8に係る発明は、請求項2、3、4及び7のいずれかに記載の検証支援装置であって、前記サブシステムが取り得る状態と前記サブシステムにおいて生じ得るイベントの組合せに対してその状態においてそのイベントによる処理は存在しないこと又はその状態においてそのイベントが発生した場合に行われる処理を特定可能なイベント処理データに基いて前記状態遷移データを生成する状態遷移データ生成手段を備え、前記異常状態付状態遷移データ生成手段は、前記状態遷移データ生成手段により生成された状態遷移データに基づいて異常状態付状態遷移データを生成するものである。
[0028]
請求項9に係る発明は、請求項8記載の検証支援装置であって、前記イベント処理データが状態遷移表に対応するデータであり、前記状態遷移データが状態遷移図に対応するデータである。
【0007】
[0029]
請求項8及び9に係る発明によれば、例えば、検証支援装置の利用者が、状態遷移表などにより、単にサブシステムが取り得る状態において発生可能性のあると考えるイベントに対する処理だけでなく発生可能性のないと考えるイベントについても指示することにより、サブシステムの状態遷移について利用者自身が人手で検証することが可能となり、さらに、検証支援装置が状態遷移図などを生成して検証を行うことにより、状態遷移表に基づいて利用者自身が人手で検証を行うことと比較して工数を削減し、正確さを向上させることが出来る。
[0030]
請求項10に係る発明は、システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援方法であって、異常状態付状態遷移データ生成手段が前記状態遷移データに異常状態への状態遷移を特定可能なデータを自動的に追加して異常状態付状態遷移データを生成するステップと、異常状態付状態遷移データ検査手段が前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査するステップと、を含むものである。
[0031]
請求項11に係る発明は、請求項10に記載の検証支援方法をコンピュータに実行させることが可能なプログラムである。
[0032]
請求項12に係る発明は、請求項11記載のプログラムをコンピュータが実行することが可能にて記録した記録媒体である。
[0033]
なお、他の検証支援装置として、サブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援装置であって、前記状態遷移データと前記関係データに基づいて前記状態遷移データに異常状態への状態遷移を特定可能なデータを追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成手段と、前記異常状態付状態遷移データに基づいてサブシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査手段と、を備えるものであってもよい。
【発明の効果】