(57)【要約】  本発明の目的は、状態遷移データ及び関係データの検証の支援に適合する検証支援装置等を提供することにある。検証支援装置１は、状態遷移データに異常状態への状態遷移を追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成部３と、異常状態付状態遷移データ及び関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査部５とを備える。【特許請求の範囲】
【請求項１】
システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援装置であって、
前記状態遷移データに異常状態への状態遷移を特定可能なデータを追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成手段と、
前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査手段と、を備える検証支援装置。
【請求項２】
前記関係データにはイベント群と前記イベント群を受理可能な状態の組合せを特定可能なデータが含まれており、
前記異常状態付状態遷移データ生成手段はイベント群と前記イベント群を受理可能な状態の組合せを特定可能なデータに基づいて前記異常状態付状態遷移データを生成する、請求項１記載の検証支援装置。
【請求項３】
前記関係データには同時に遷移する状態遷移群を特定可能なデータが含まれており、
前記異常状態付状態遷移データ検査手段は、
同時に遷移する状態遷移群を特定可能なデータと前記異常状態付状態遷移データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある遷移前状態及び遷移後状態並びに成立する可能性のある遷移条件を特定可能な複合状態遷移データを生成する複合状態遷移データ生成手段と、
複合状態遷移データに基づいてシステムの初期状態からの状態の遷移により到達する可能性のある状態を検査する複合状態遷移データ検査手段を有する、請求項１又は２記載の検証支援装置。
【請求項４】
前記複合状態遷移データ検査手段は前記到達する可能性のある状態に異常状態が含まれるか否かを判断する異常状態到達可能性検査手段を有する、請求項３記載の検証支援装置。
【請求項５】
前記異常状態到達可能性検査手段により異常状態が含まれると判断された場合に表示装置に対して初期状態から異常状態への状態遷移のうち異常状態に近い状態遷移を示す情報を優先して表示させる表示制御手段を備える請求項４記載の検証支援装置。
【請求項６】
前記表示制御手段は異常状態への状態遷移のうち重要状態遷移として指定された状態遷移とそれ以外の状態遷移とを区別する瑣末遷移区別手段を有し、表示装置に対して重要状態遷移として指定された状態遷移を優先して表示させる請求項５記載の検証支援装置。
【請求項７】
前記複合状態遷移データ検査手段は前記状態遷移データに到達可能性のない状態又は受理可能性のないイベントに関するデータが含まれているか否かの判断を行う受理可能イベント不受理検査手段を有する、請求項３から６のいずれかに記載の検証支援装置。
【請求項８】
前記サブシステムが取り得る状態と前記サブシステムにおいて生じ得るイベントの組合せに対してその状態においてそのイベントによる処理は存在しないこと又はその状態においてそのイベントが発生した場合に行われる処理を特定可能なイベント処理データに基いて前記状態遷移データを生成する状態遷移データ生成手段を備え、
前記異常状態付状態遷移データ生成手段は、前記状態遷移データ生成手段により生成された状態遷移データに基づいて異常状態付状態遷移データを生成する、請求項１から７のいずれかに記載の検証支援装置。
【請求項９】
前記イベント処理データは状態遷移表に対応するデータであり、前記状態遷移データは状態遷移図に対応するデータである、請求項８記載の検証支援装置。
【請求項１０】
システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援方法であって、
異常状態付状態遷移データ生成手段が前記状態遷移データに異常状態への状態遷移を特定可能なデータを追加して異常状態付状態遷移データを生成するステップと、
異常状態付状態遷移データ検査手段が前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査するステップと、を含む検証支援方法。
【請求項１１】
請求項１０に記載の検証支援方法をコンピュータに実行させることが可能なプログラム。
【請求項１２】
請求項１１記載のプログラムをコンピュータが実行することが可能にて記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検証支援装置、検証支援方法、その検証支援方法をコンピュータに実行させることが可能なプログラム、及び、そのプログラムを記録した記録媒体に関し、特に、サブシステムの状態遷移データと関係データの検証を支援する検証支援装置等に関する。
【背景技術】
【０００２】
システムの動作は、例えば状態遷移図のように、システムの状態の遷移を特定可能なデータを用いて記述される。そして、従来、例えば特許文献１にあるような装置により、記述された状態遷移図などの検証は支援されている。【０００３】
【特許文献１】特開平６−１６１７５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
システムが複数のサブシステムにより構成される場合、システムの動作は、各サブシステムの例えば状態遷移図のような遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの組合せで記述される。【０００５】
しかしながら、これまで、システムの動作が状態遷移データと関係データの組合せで記述される場合に、これらの検証を支援する装置は知られていなかった。そのため、状態遷移データと関係データの検証は、全サブシステムの状態遷移データと関係データを見比べながら人手でなされていた。【０００６】
このように状態遷移データと関係データの検証が人手なされると、その検証には非常に工数がかかり、また、チェックミスも非常に多い。特に最近ではシステムの構成も複雑になり、全サブシステムの状態遷移データと関係データを人手で検証することは非常に困難である。【０００７】
そこで、本発明の目的は、状態遷移データと関係データの検証を支援することに適合する検証支援装置、検証支援方法、その検証支援方法をコンピュータに実行させることが可能なプログラム、及び、そのプログラムを記録した記録媒体を提供することにある。
【課題を解決するための手段】
【０００８】
請求項１に係る発明は、システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援装置であって、前記状態遷移データに異常状態への状態遷移を特定可能なデータを追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成手段と、前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査手段と、を備えるものである。【０００９】
なお、請求項１に係る発明において、異常状態付状態遷移データ検査手段が到達する可能性のある状態を検査し、さらに例えば異常状態への到達可能性を検査することにより、以下のことがいえる。【００１０】
例えば状態遷移図の記述者は、通常、システム全体の動作を思い浮かべながら各サブシステムの状態遷移図を記述する。しかしながら、複雑なシステムの場合、サブシステムが多く存在しており、イベント発火の発生タイミングを完全に把握することは非常に困難である。すなわち、受理可能イベントの中には、サブシステムの組合せ方によっては絶対に受理しないものがある。例えば、システムがサブシステム１とサブシステム２との組合せでできており、サブシステム１の状態１の受理可能イベントがｅ１、ｅ２であり、また、サブシステム２ではｅ１のみが発火可能であるとする。この組合せでは、サブシステム１の状態１ではｅ２は絶対に受理しない受理可能イベントである。逆に、一見受理しなさそうではあるが受理してしまうものもある。メモリを削減するために前者を受理したときの処理を削減することはよく行われるが、後者を前者と間違えて処理を削減してしまうこと（後者のイベント、すなわち、想定外の受理可能イベントが来ること）がしばしば起こり得る。したがって、状態遷移図の記述者が受理可能イベントの受理時の処理を削減していないかの検証を行うことが必要となる。【００１１】
また、例えば既存のサブシステムを再利用して新規システムを作成する場合に、再利用されるサブシステムからみると、外部の振る舞いはもともとの使用状況と新たな使用状況とでは異なる。そのため、新規システムにおいて、想定外のイベントを受理してサブシステムが想定外の振る舞いをする可能性がある。したがって、想定外のイベントを受理してサブシステムが想定外の動作をする可能性の検証も必要となる。既存のサブシステムを再利用して新規システムを作成すると、サブシステムの組合せ方が変わるため、既存システムにおいては絶対に受理しなかった受理可能イベントが新規サブシステムでは受理してしまうこと（異常状態に到達すること）も起こり得る。例えば、既存システムがサブシステム１とサブシステム２との組合せでできており、サブシステム１の状態１の受理可能イベントがｅ１、ｅ２であり、また、サブシステム２ではｅ１のみが発火可能であるとする。この組合せでは、サブシステム１の状態１ではｅ２は絶対に受理しない受理可能イベントである。新規システムはサブシステム１とサブシステム３の組合せでできており、サブシステム３ではどの状態でもｅ２が発火可能であるとする。このとき、新規システムでは、サブシステム１の状態１においてｅ２が受理される受理可能イベントになる。メモリを削減するために既存システムでは絶対に受理しない受理可能イベントを受理したときの処理を削減していた場合、新規システムでは、この受理可能イベントが発生したとき、行うべき処理が記述されていないという問題が発生する。既存のサブシステムを再利用して新規システムを作成する場合、この問題が発生するかどうかを検証する必要がある。【００１２】
一方、請求項１に係る発明であって異常状態への到達可能性を検査できるものであれば、すなわち、異常状態付状態遷移データ生成手段が、例えば、記述された状態遷移図に基づく状態遷移データにより特定されていないサブシステムの遷移前状態と遷移条件の組み合わせに関して、異常状態を遷移後状態とする状態遷移を特定可能なデータを状態遷移データに追加して異常状態付状態遷移データを生成し、異常状態付状態遷移データ検査手段がシステムの初期状態からの状態遷移により異常状態に到達する可能性を検査することにより、例えば、状態遷移図などの記述者が受理可能イベントの受理時の処理を削減していないかの検証をすることが可能となり、例えば、想定外のイベントを受理してサブシステムが想定外の動作をする可能性の検証をすることが可能となる。【００１３】
さらに、請求項１に係る発明において、異常状態付状態遷移データ検査手段が到達する可能性のある状態を検査し、さらに例えば異常状態付状態遷移データ検査手段がシステムの初期状態からの状態遷移により到達する可能性のある遷移前状態及び遷移後状態並びに成立する可能性のある遷移条件を検査するようにしてもよい。【００１４】
さらに、請求項１に係る発明において、異常状態付状態遷移データ検査手段が到達する可能性のある状態を検査し、さらに例えば異常状態付状態遷移データ検査手段がシステムの初期状態からの状態遷移により到達する可能性のない状態又は成立する可能性のない遷移条件を検査することにより、以下のことがいえる。【００１５】
複数のサブシステムが組み合わされてシステムが作成されるとき、あるサブシステムのある状態において、例えばある受理可能イベントを受理しないことがある。受理可能イベントの中には、サブシステムの組合せ方によっては、絶対に受理しないものがある。例えば、システムがサブシステム１とサブシステム２との組合せでできており、サブシステム１の状態１の受理可能イベントがｅ１、ｅ２であり、また、サブシステム２ではｅ１のみが発火可能であるとする。この組合せでは、サブシステム１の状態１ではｅ２は絶対に受理しない受理可能イベントである。このとき、この状態におけるその受理可能イベントの処理は無駄になり、この処理を削除することでシステムのメモリ量を削減することが可能になる。同様に、初期状態からの状態遷移により到達する可能性のない状態が存在することもある。【００１６】
一方、請求項１に係る発明であって異常状態付状態遷移データ検査手段が到達する可能性のある状態を検査し、さらに例えば異常状態付状態遷移データ検査手段がシステムの初期状態からの状態遷移により到達する可能性のない状態又は成立する可能性のない遷移条件を検査することにより、例えば、到達可能性のない状態や受理可能性のないイベントの存在を検証することが可能となる。【００１７】
請求項２に係る発明は、請求項１記載の検証支援装置であって、前記関係データにはイベント群と前記イベント群を受理可能な状態の組合せを特定可能なデータが含まれており、前記異常状態付状態遷移データ生成手段はイベント群と前記イベント群を受理可能な状態の組合せを特定可能なデータに基づいて前記異常状態付状態遷移データを生成するものである。【００１８】
請求項３に係る発明は、請求項１又は２記載の検証支援装置であって、前記関係データには同時に遷移する状態遷移群を特定可能なデータが含まれており、前記異常状態付状態遷移データ検査手段は、同時に遷移する状態遷移群を特定可能なデータと前記異常状態付状態遷移データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある遷移前状態及び遷移後状態並びに成立する可能性のある遷移条件を特定可能な複合状態遷移データを生成する複合状態遷移データ生成手段と、複合状態遷移データに基づいて、システムの初期状態からの状態の遷移により到達する可能性のある状態を検査する複合状態遷移データ検査手段を有するものである。【００１９】
請求項４に係る発明は、請求項３記載の検証支援装置であって、前記複合状態遷移データ検査手段が前記到達する可能性のある状態に異常状態が含まれるか否かを判断する異常状態到達可能性検査手段を有するものである。【００２０】
請求項４に係る発明により、異常状態への到達可能性を検査することによって、例えば、状態遷移図などの記述者が受理可能イベントの受理時の処理を記述し忘れていないかの検証をすることが可能となる。【００２１】
請求項５に係る発明は、請求項４記載の検証支援装置であって、前記異常状態到達可能性検査手段により異常状態が含まれると判断された場合に表示装置に対して初期状態から異常状態への状態遷移のうち異常状態に近い状態遷移を示す情報を優先して表示させる表示制御手段を備えるものである。【００２２】
請求項６に係る発明は、請求項５記載の検証支援装置であって、前記表示制御手段が異常状態への状態遷移のうち重要状態遷移として指定された状態遷移とそれ以外の状態遷移とを区別する瑣末遷移区別手段を有し、表示装置に対して重要状態遷移として指定された状態遷移を優先して表示させるものである。【００２３】
この構成により、例えば前記異常状態到達可能性検査手段は初期状態からの状態遷移により異常状態に到達する可能性がある場合に初期状態から異常状態に到達する状態遷移列である問題状態遷移列を生成し、前記瑣末遷移区別手段は前記問題状態遷移列のうち重要状態遷移として指定される状態遷移群に含まれるものを重要状態遷移とし、含まれないものを瑣末状態遷移とし、前記表示手段は前記問題状態遷移列を異常状態への状態遷移から順番に、重要状態遷移と瑣末状態遷移とを区別しながら表示する。例えば、重要状態遷移は黒色で表示し、瑣末状態遷移は黄色で表示する。したがって、使用者の関心のない状態遷移群に関するものを区別し、かつ、多くの場合に使用者が問題点を探す異常状態の近くから状態遷移列を表示することにより問題点が発見されやすくなる。なお、表示手段は、瑣末状態遷移を表示せずに重要状態遷移のみを表示してもよい。【００２４】
請求項７に係る発明は、請求項３から６のいずれかに記載の検証支援装置であって、前記複合状態遷移データ検査手段が前記状態遷移データに到達可能性のない状態又は受理可能性のないイベントに関するデータが含まれているか否かの判断を行う受理可能イベント不受理検査手段を有するものである。【００２５】
請求項７に係る発明によれば、例えば、前述のように、到達可能性のない状態や受理可能性のないイベントの存在を検証することが可能となる。【００２６】
さらに、請求項１から７のいずれかに記載の発明であって、例えば、状態遷移データは状態遷移図でもよい。また、状態遷移データは、ステートチャートやクリプキ構造でもよい。【００２７】
請求項８に係る発明は、請求項１から７のいずれかに記載の検証支援装置であって、前記サブシステムが取り得る状態と前記サブシステムにおいて生じ得るイベントの組合せに対してその状態においてそのイベントによる処理は存在しないこと又はその状態においてそのイベントが発生した場合に行われる処理を特定可能なイベント処理データに基いて前記状態遷移データを生成する状態遷移データ生成手段を備え、前記異常状態付状態遷移データ生成手段は、前記状態遷移データ生成手段により生成された状態遷移データに基づいて異常状態付状態遷移データを生成するものである。【００２８】
請求項９に係る発明は、請求項８記載の検証支援装置であって、前記イベント処理データが状態遷移表に対応するデータであり、前記状態遷移データが状態遷移図に対応するデータである。【００２９】
請求項８及び９に係る発明によれば、例えば、検証支援装置の利用者が、状態遷移表などにより、単にサブシステムが取り得る状態において発生可能性のあると考えるイベントに対する処理だけでなく発生可能性のないと考えるイベントについても指示することにより、サブシステムの状態遷移について利用者自身が人手で検証することが可能となり、さらに、検証支援装置が状態遷移図などを生成して検証を行うことにより、状態遷移表に基づいて利用者自身が人手で検証を行うことと比較して工数を削減し、正確さを向上させることが出来る。【００３０】
請求項１０に係る発明は、システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援方法であって、異常状態付状態遷移データ生成手段が前記状態遷移データに異常状態への状態遷移を特定可能なデータを追加して異常状態付状態遷移データを生成するステップと、異常状態付状態遷移データ検査手段が前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査するステップと、を含むものである。【００３１】
請求項１１に係る発明は、請求項１０に記載の検証支援方法をコンピュータに実行させることが可能なプログラムである。【００３２】
請求項１２に係る発明は、請求項１１記載のプログラムをコンピュータが実行することが可能にて記録した記録媒体である。【００３３】
なお、他の検証支援装置として、サブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援装置であって、前記状態遷移データと前記関係データに基づいて前記状態遷移データに異常状態への状態遷移を特定可能なデータを追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成手段と、前記異常状態付状態遷移データに基づいてサブシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査手段と、を備えるものであってもよい。
【発明の効果】
【００３４】
本発明によれば、異常状態付状態遷移データ検査手段がシステムの初期状態からの状態遷移により到達する可能性のある状態を検査することにより、人手による検証と異なり、状態遷移データと関係データの検証を自動化しかつ精度を向上させて支援することが可能となる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施の形態に係る検証支援装置１の概略ブロック図である。
【図２】図１の検証支援装置１の具体例の一つである状態遷移図検証支援装置１１のブロック図である。
【図３】図２の状態遷移図検証支援装置１１の検証対象となるシステムの一例を示す図である。
【図４】図２の異常状態付状態遷移図生成部１３の動作を示すフロー図である。
【図５】図３のサブシステムＢの状態遷移格納ファイル、システム連携方法の一部、及び、受理可能状態表ファイルの例を示す図である。
【図６】図４の処理により作成される検査表及び異常状態付状態遷移図格納用状態遷移格納ファイルの例を示す図である。
【図７】図４の処理により作成される異常状態付状態遷移図の例を示す図である。
【図８】図２の複合状態遷移図生成部１７の動作を示す第１のフロー図である。
【図９】図２の複合状態遷移図生成部１７の動作を示す第２のフロー図である。
【図１０】図８及び図９の処理において用いられる異常状態付状態遷移図格納用状態遷移格納ファイル、同期状態実行遷移組格納ファイル、及び、到達可能正常体表の例を示す図である。
【図１１】生成される複合状態遷移図の例を示す図である。
【図１２】図９のステップＳＴＣＣ１１の処理の詳細の例を示す図である。
【図１３】図９のステップＳＴＣＣ１４の処理の詳細の例を示す第１の図である。
【図１４】図９のステップＳＴＣＣ１４の処理の詳細の例を示す第２の図である。
【図１５】図９のステップＳＴＣＣ１４の処理の詳細の例を示す第３の図である。
【図１６】図９のステップＳＴＣＣ１４の処理の詳細の例を示す第４の図である。
【図１７】図２の異常状態到達可能性検査部２３の動作を示すフロー図である。
【図１８】図１７のステップＳＴＣＨ６の処理を変更して、初期状態から異常状態へ到達する状態遷移列を出力するようにする例を示す図である。
【図１９】図１８の処理において作成される状態遷移格納表の例を示す図である。
【図２０】図２の瑣末遷移区別部２７の動作の一例を示すフロー図である。
【図２１】図２の表示部２１の表示例を示す図である。
【図２２】図２の受理可能イベント不受理検査部２５の動作を示す第１のフロー図である。
【図２３】図２の受理可能イベント不受理検査部２５の動作を示す第２のフロー図である。
【図２４】図２３の処理の検査対象のシステムを構成するサブシステムＤとＥの状態遷移図及び受理可能状態表ファイル並びに複合状態遷移図及び複合状態遷移図格納用状態遷移格納ファイルの例を示す図である。
【図２５】図２の状態遷移図検証支援装置１１の他の一例を示すブロック図である。
【図２６】図２の状態遷移図検証支援装置１１の他の一例を示すブロック図である。
【図２７】長さが１のキューの状態遷移を示す図である。
【図２８】図３のサブシステムＡとＢとＣであって、サブシステムＢとＣとの間に長さ１のキューがあり、このキューにイベントが保持される、とモデル化できると仮定した場合の複合状態遷移図の例である。
【図２９】図２の異常状態付状態遷移図生成部１３の動作の他の例を示すフロー図である。
【図３０】図２９の処理対象の例であるサブシステムＦの状態遷移図、状態遷移格納ファイル、及び、受理可能状態表ファイルの例を示す図である。
【図３１】図３０の各処理において作成される検査表Ａ、Ｂ及びＣ並びに異常状態付状態遷移図格納用状態遷移格納ファイルの例を示す図である。
【図３２】図３０の各処理において作成される検査表Ｄ、異常状態付状態遷移図格納用状態遷移格納ファイル、及び、異常状態付状態遷移図の例を示す図である。
【図３３】図１の検証支援装置１の具体例の他の一つである状態遷移データ検証支援装置４５を示すブロック図である。
【図３４】状態遷移表の例を示す図である。
【図３５】検査対象のシステム並びにこのシステムを構成するサブシステムＧ及びＨの状態遷移表の例を示す図である。
【図３６】図３３の状態遷移表４３の動作を示す第１のフロー図である。
【図３７】図３３の状態遷移表４３の動作を示す第２のフロー図である。
【図３８】図３６と図３７の処理により生成される状態遷移図の例である。
【図３９】図３８の状態遷移図に基づいて生成された異常状態付状態遷移図の例である。
【図４０】図３９の異常状態付状態遷移図に基づいて生成された複合状態遷移図の例である。
【図４１】状態遷移図検査支援装置の他の例を示すブロック図である。
【図４２】図４１の到達可能状態検査部５３の動作の例を示す第１のフロー図である。
【図４３】図４１の到達可能状態検査部５３の動作の例を示す第２のフロー図である。
【図４４】図４２の処理において作成される状態遷移記述表の例を示す図である。
【図４５】図４１の到達可能状態検査部５３の動作の他の例を示すフロー図である。
【図４６】図４１の到達可能状態検査部５３の動作の他の例を示すフロー図である。
【符号の説明】
【００３６】
１    検証支援装置
３    異常状態付状態遷移データ生成部
５    異常状態付状態遷移データ検査部
１１  状態遷移図検証支援装置
１３  異常状態付状態遷移図生成部
１５  異常状態付状態遷移図検査部
１７  複合状態遷移図生成部
１９  複合状態遷移図検査部
２３  異常状態到達可能性検査部
２５  受理可能イベント不受理検査部
４５  状態遷移データ検証支援装置
４７  状態遷移表変換部
【発明を実施するための最良の形態】
【００３７】
初めに、本願において用いられる用語について説明する。【００３８】
まず、システムは、例えばハードウェアやソフトウェアやハードウェアとソフトウェアを組み合わせたものであり、システムを構成する部分もシステム（サブシステム）と呼ぶ。【００３９】
次に、状態は、システムのとりうる状態である。状態の初期値を初期状態という。また、状態の遷移のことを状態遷移という。状態遷移には、能動的状態遷移と受動的状態遷移がある。能動的状態遷移は、システムが単体で動作する場合に能動的に遷移する状態遷移である。能動的状態遷移の例としては、イベント発火、内部処理、環境イベント受理（例えばシステムのユーザからのイベントは、イベント発火のタイミングをシステムでは制御できないので常に発生する可能性がある）などがある。また、受動的状態遷移は、システムが単体で動作する場合、受動的に遷移する状態遷移である。受動的状態遷移の例としては、非環境イベント受理などがある。【００４０】
次に、状態遷移図は、状態と状態遷移とで表される図のことで、システムの動作を記述するために用いられる。【００４１】
次に、システム連携方法は、サブシステム間の連携方法を示すものである。システム連携方法には、各サブシステムの受理可能状態の指定と、同時に遷移する状態遷移群の指定が含まれる。同時に遷移する状態遷移群には、例えば唯一の能動的状態遷移と一つ以上の受動的状態遷移が含まれる。なお、サブシステムが連携する際には、キューなどの状態遷移図で振舞いが定まる媒体を通してサブシステムが連携されることもあるとする。【００４２】
次に、システムの外部又は内部からの刺激のことをイベントという。また、システムが外部又は内部へイベントを発火することをイベント発火という。イベント発火には、システムのユーザなどのシステム外の環境へイベントを発火する環境イベント発火と、同一システムの他サブシステムへイベントを発火する非環境イベント発火が含まれる。さらに、システムが外部又は内部から来たイベントを受理することをイベント受理という。イベント受理には、システムのユーザなどのシステム外の環境から来るイベントを受理する環境イベント受理と、同一システムの他サブシステムから来るイベントを受理する非環境イベント受理が含まれる。さらに、イベント発火、イベント受理以外のシステムが実行する処理のことを内部処理という。【００４３】
次に、受理可能状態とは、システムの状態の中で、イベント群を受理できる状態のことである。また、受理可能イベントとは、システムのあるイベント群の受理可能状態において、そのイベント群に含まれるイベントのことである。【００４４】
次に、アクションとは、イベント受理後にシステムが実施する処理のことで、イベント発火や内部処理などがある。アクションには、システムの状態を変更する状態変更アクションが含まれるとする。
【実施例１】
【００４５】
図１は、本発明の実施の形態に係る検証支援装置１の概略ブロック図である。【００４６】
検証支援装置１は、異常状態付状態遷移データ生成部３と異常状態付状態遷移データ検査部５を備える。【００４７】
異常状態付状態遷移データ生成部３は、サブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データに異常状態への状態遷移を追加して異常状態付状態遷移データを生成する。【００４８】
異常状態付状態遷移データ検査部５は、異常状態付状態遷移データ生成部３により生成された異常状態付状態遷移データ及びサブシステム間の関係（以下では連携方法という）を特定可能な関係データに基づいてシステムの初期状態からの状態遷移を検査して検査結果を出力するものである。
【実施例２】
【００４９】
図２の状態遷移図検証支援装置１１は、図１の検証支援装置１の具体例の一つである。図２において、異常状態付状態遷移図生成部１３と異常状態付状態遷移図検査部１５は、それぞれ図１の異常状態付状態遷移データ生成部３と異常状態付状態遷移データ検査部５に対応する。【００５０】
異常状態付状態遷移図検査部１５は、複合状態遷移図生成部１７と複合状態遷移図検査部１９と表示部２１を有する。また、複合状態遷移図検査部１９は、異常状態到達可能性検査部２３と受理可能イベント不受理検査部２５を有する。また、表示部２１は、瑣末遷移区別部２７を有する。【００５１】
また、状態遷移図検証支援装置１１は、サブシステムの状態遷移格納ファイル２９とシステム連携方法格納ファイル３１と重要状態遷移格納用状態遷移格納ファイル３３と異常状態付状態遷移図格納用状態遷移格納ファイル３５と複合状態遷移図格納用状態遷移格納ファイル３７と問題状態遷移列格納用状態遷移列格納ファイル３９と本質的問題状態遷移列格納用状態遷移列格納ファイル４１を有する。【００５２】
ここで、サブシステムの状態遷移格納ファイル２９は、サブシステムの状態遷移図を特定可能なデータが格納されるものである。また、システム連携方法格納ファイル３１は、サブシステム間の連携方法を特定可能なデータが格納されるものである。さらに、重要状態遷移格納用状態遷移格納ファイル３３は、使用者の興味がある状態遷移群を特定可能なデータが格納されるものである。【００５３】
また、異常状態付状態遷移図格納用状態遷移格納ファイル３５と複合状態遷移図格納用状態遷移格納ファイル３７と問題状態遷移列格納用状態遷移列格納ファイル３９と本質的問題状態遷移列格納用状態遷移列格納ファイル４１は、それぞれ、異常状態付状態遷移図生成部１３と複合状態遷移図生成部１７と異常状態到達可能性検査部２３と瑣末遷移区別部２７の処理結果を特定可能なデータが格納されるものである。【００５４】
図２において、異常状態付状態遷移図生成部１３は、サブシステムの状態遷移格納ファイル２９とシステム連携方法格納ファイル３１に格納されるデータに基づいて、サブシステムの異常状態付状態遷移図を生成する。生成された異常状態付状態遷移図を特定可能なデータは、異常状態付状態遷移図格納用状態遷移格納ファイル３５に格納される。【００５５】
複合状態遷移図生成部１７は、異常状態付状態遷移図格納用状態遷移格納ファイル３５とシステム連携方法格納ファイル３１に格納されるデータに基づいて複合状態遷移図を生成する。ここで、複合状態遷移図とは、各サブシステムの初期状態からなる状態をシステム全体の初期状態とし、システム全体の初期状態から遷移される状態と状態遷移とで表される図である。生成された複合状態遷移図を特定可能なデータは、複合状態遷移図格納用状態遷移格納ファイル３７に格納される。【００５６】
異常状態到達可能性検査部２３は、複合状態遷移図格納用状態遷移格納ファイル３７に格納されたデータに基づいて、システム全体の初期状態からの状態遷移により異常状態に到達する可能性を検査するものである。異常状態に到達する可能性がある場合は異常状態への状態遷移列（問題状態遷移列）を生成し、この問題状態遷移列を特定可能なデータが問題状態遷移列格納用状態遷移列格納ファイル３９に格納される。【００５７】
受理可能イベント不受理検査部２５は、システム連携方法格納ファイル３１のシステム連携方法により受理可能なイベントと指定されているものの、システム全体が動作した場合には受理されないイベントを検査するものである。【００５８】
瑣末遷移区別部２７は、問題状態遷移列格納用状態遷移列格納ファイル３９と重要状態遷移格納用状態遷移格納ファイル３３に格納されたデータに基づいて、問題状態遷移列のうち使用者の興味がある状態遷移列群には関係しないものを除去して本質的な問題状態遷移列を生成するものである。生成された本質的な問題状態遷移列を特定可能なデータは、本質的問題状態遷移列格納用状態遷移列格納ファイル４１に格納される。【００５９】
表示部２１は、複合状態遷移図検査部１９の検査結果を表示するものである。問題状態遷移列に関しては、問題状態遷移列格納用状態遷移列格納ファイル３９と本質的問題状態遷移列格納用状態遷移列格納ファイル４１に格納されたデータに基づいて、重要状態遷移と瑣末状態遷移とを区別しながら表示を行ってもよい。【００６０】
図３は、図２の状態遷移図検証支援装置１１の検証対象となるシステムの一例を示す図である。【００６１】
図３において、検証対象となるシステムは３つのサブシステムＡ、Ｂ、Ｃからなる。なお、図３において、矢印は状態の遷移を意味し、記号ｅ１、・・・はそれぞれイベントｅ１、・・・の発火を意味し、記号：ｅ１、・・・はそれぞれイベントｅ１、・・・の受理を意味するとする。【００６２】
サブシステムＡは、初期状態がＳＡであり、イベントｅ１を発火してサブシステムＢへ送り、状態ＳＡに遷移する（遷移前の状態が状態ＳＡであるため、遷移後の状態も状態ＳＡのままである）。サブシステムＡの状態遷移は、イベントｅ１のイベント発火（能動的状態遷移）のみである。【００６３】
サブシステムＣは、初期状態がＳＣであり、イベントｅ２、ｅ３を発火してサブシステムＢへ送り、状態ＳＣへ遷移する（遷移前の状態が状態ＳＣであるため、イベント発火後も状態は状態ＳＣのままである）。また、図３において、ｉ１はサブシステムＣの内部処理である。サブシステムＣの状態遷移は、ｅ２及びｅ３のイベント発火（能動的状態遷移）並びにｉ１の内部処理（能動的状態遷移）のみである。【００６４】
サブシステムＢは、初期状態がＳ１であり、状態Ｓ１においてイベントｅ１を受理すると状態Ｓ２へ状態遷移し、状態Ｓ２においてイベントｅ１を受理すると状態Ｓ２に遷移し（遷移前の状態が状態Ｓ２であるため、遷移後の状態も状態Ｓ２のままである）、状態Ｓ２においてイベントｅ２を受理すると状態Ｓ１へ遷移する。サブシステムＢの状態遷移は、イベントｅ１とｅ２のイベント受理（受動的状態遷移）のみである。【００６５】
続いて、このシステムにおいて、イベントｅ２とｅ３はイベントｅ１の発火間隔と比べてゆっくりした間隔で発火し、イベントｅ２とｅ３が送られる時のサブシステムＢの状態はＳ２であると仮定する。【００６６】
この場合、このシステムにおけるサブシステム間の連携方法（システム連携方法）としては、以下の三つが考えられる。一つ目は、サブシステムＡとＣは受理可能状態を持たないことである。二つ目は、サブシステムＢの状態Ｓ１とＳ２はイベント｛ｅ１｝の受理可能状態であり、状態Ｓ２はイベント群｛ｅ２,ｅ３｝の受理可能状態であることである。三つ目は、同じ名前のイベントのイベント発火（能動的状態遷移）とイベント受理（受動的状態遷移）とは同時に発生することである。【００６７】
このとき、このシステムにおいては、サブシステムＡの状態ＳＡの受理可能イベントはなく、サブシステムＢの状態Ｓ１の受理可能イベントはイベント｛ｅ１｝であり、状態Ｓ２の受理可能イベントはイベント群｛ｅ１，ｅ２，ｅ３｝であり、サブシステムＣの状態ＳＣの受理可能イベントはない。【００６８】
図４は、異常状態付状態遷移図生成部１３の動作を示すフロー図である。【００６９】
まず、異常状態付状態遷移図生成部１３は、Ｎ１をサブシステムの総数とし、Ｋ１を０とする（図４のステップＳＴＥＳ１）。図３の例において、サブシステムはＡとＢとＣの３つであるため、Ｎ１は３である。【００７０】
次に、異常状態付状態遷移図生成部１３は、Ｋ１とＮ１の値を比較して判断を行う（図４のステップＳＴＥＳ２）。Ｋ１の値がＮ１の値よりも小さいならば図４のステップＳＴＥＳ３の処理を行い、小さくないならば図４の処理を終了する。【００７１】
図４のステップＳＴＥＳ３において、異常状態付状態遷移図生成部１３は、サブシステムの状態遷移格納ファイル２９よりＫ１番目のサブシステムの状態遷移格納ファイルを入力する。サブシステムＢの場合には、状態遷移格納ファイルは図５の（Ａ）のようなものである。図５の（Ａ）において、状態遷移格納ファイルは、状態遷移前の状態である遷移前状態と、状態遷移の条件である状態遷移名と、状態遷移後の状態である遷移後状態の組を備え、各組は０から始まる番号により識別可能であるとする。なお、番号０により識別される組の遷移前状態はシステムの初期状態であるとする。【００７２】
異常状態付状態遷移図生成部１３は、入力した状態遷移格納ファイルから計算される状態のリストをＳＬｉｓｔとする（図４のステップＳＴＥＳ４）。サブシステムＢの場合、ＳＬｉｓｔ＝｛Ｓ１，Ｓ２｝である。【００７３】
続いて、Ｋ１番目のサブシステムの受理可能状態表ファイルを入力する（図４のステップＳＴＥＳ５）。ここで、受理可能状態表ファイルは、システム連携方法格納ファイル３１の一部を等価なデータ構造に変換して作成されるものである。サブシステムＢの場合、システム連携方法ファイル３１の一部には図５の（Ｂ）のようなイベント群とそのイベント群の受理可能状態との組が規定されている。受理可能状態表ファイルは、例えば図５の（Ｃ）にあるように、システム連携方法格納ファイル３１の一部を、状態と当該状態で受理可能なイベントとの組に変換して得られるものである。【００７４】
続いて、入力した受理可能状態表ファイルから計算されるイベントのリストをＥＬｉｓｔとする（図４のステップＳＴＥＳ６）。図５の（Ｃ）の場合、ＥＬｉｓｔ＝｛ｅ１，ｅ２，ｅ３｝である。【００７５】
続いて、縦軸をＳＬｉｓｔの要素とし横軸をＥＬｉｓｔの要素としてＳＬｉｓｔの要素とＥＬｉｓｔの要素との組で定まるブロックからなる検査表を作成し、各ブロックを１で初期化する（図４のステップＳＴＥＳ７）。ここで作成される検査表は、図６の（Ａ）のようになる。【００７６】
続いて、受理可能状態表ファイルに記述された状態と受理可能イベントの組で定まる検査表上の全ブロックを０にする（図４のステップＳＴＥＳ８）。ここで作成される検査表は、図６の（Ｂ）のようになる。【００７７】
続いて、検査表上の、状態遷移格納ファイルに記述された遷移前状態と状態遷移名の組で定まる全ブロックを１にする（図４のステップＳＴＥＳ９）。ただし、状態遷移名がイベント発火、内部処理の場合は何もしない。図４のステップＳＴＥＳ９の処理により作成される検査表は、図６の（Ｃ）のようになる。図６の（Ｃ）の検査表上の０のブロックに対応する状態とイベントの組は、受理可能状態表ファイルにおいて当該状態において当該イベントが受理可能であるとされているものの、状態遷移格納ファイルには当該状態において当該イベントを受理したときの状態遷移が規定されていないものである。【００７８】
続いて、入力した状態遷移格納ファイルをコピーし、異常状態付状態遷移図格納用状態遷移格納ファイル３５を作成する（図４のステップＳＴＥＳ１０）。【００７９】
続いて、検査表上の値が０の全ブロックに対し、異常状態付状態遷移図格納用状態遷移格納ファイル３５に、各ブロックに対応する状態において対応するイベントを受理したときに異常状態へ遷移すること（すなわち、（対応する状態，対応するイベントの受理，異常状態）の組）を追加する（図４のステップＳＴＥＳ１１）。図６の（Ｃ）の場合、検査表上の値が０のブロックは状態Ｓ２とイベントｅ３の組に対応するものである。そのため、異常状態付状態遷移図格納用状態遷移格納ファイル３５は、図６の（Ｄ）にあるように、遷移前状態をＳ２とし、状態遷移名をイベントｅ３の受理とし、遷移後状態を異常状態ＥＢとする組を追加して作成されるものである。【００８０】
続いて、Ｋ１番目のサブシステムの異常状態付状態遷移図格納用状態遷移図格納ファイル３５を出力し（図４のステップＳＴＥＳ１２）、Ｋ１の値を１増加して（図４のステップＳＴＥＳ１３）、図４のステップＳＴＥＳ２の判断処理に戻る。【００８１】
以上の処理により、サブシステムの状態遷移図とシステム連携方法に基づいて各サブシステムの異常状態付状態遷移図が生成される。サブシステムＡ、Ｂ、Ｃの異常状態付状態遷移図は、それぞれ図７の（Ａ）、（Ｂ）、（Ｃ）のようになる。なお、図７において、状態ＥＡ、ＥＢ、ＥＣは、それぞれサブシステムＡ、Ｂ、Ｃの異常状態である。【００８２】
図８と図９は、図２の複合状態遷移図生成部１７の動作を示すフロー図である。【００８３】
複合状態遷移図生成部１７は、Ｎ２をサブシステムの総数とし、Ｋ２を０とする（図８のステップＳＴＣＣ１）。【００８４】
続いて、複合状態遷移図生成部１７は、Ｋ２とＮ２の値を比較して判断を行う（図８のステップＳＴＣＣ２）。Ｋ２の値がＮ２の値より小さいならば図８のステップＳＴＣＣ３の処理を行い、小さくないならば図８のステップＳＴＣＣ５の処理を行う。【００８５】
図８のステップＳＴＣＣ３において、複合状態遷移図生成部１７は、異常状態付状態遷移図格納用状態遷移格納ファイル３５よりＫ２番目のサブシステムの異常状態付状態遷移図格納用状態遷移格納ファイルを入力する。続いて、Ｋ２の値を１増加して（図８のステップＳＴＣＣ４）、図８のステップＳＴＣＣ２の判断処理に戻る。【００８６】
複合状態遷移図生成部１７は、図８のステップＳＴＣＣ１〜４の処理により、全てのサブシステムの異常状態付状態遷移図格納用状態遷移格納ファイルを入力する。サブシステムＡ、Ｂ、Ｃの場合、異常状態付状態遷移図格納用状態遷移格納ファイルはそれぞれ図１０の（Ａ）、（Ｂ）、（Ｃ）である。ここで、各ファイルの番号０の組の遷移前状態が初期状態である。【００８７】
続いて、複合状態遷移図生成部１７は、システム連携方法格納ファイル３１より同期実行状態遷移組格納ファイルを入力する（図８のステップＳＴＣＣ５）。ここで、同期状態実行遷移組格納ファイルは、システム連携方法の一部であって、同時に遷移する状態遷移群（唯一の能動的状態遷移と一つ以上の受動的状態遷移）を指定するものである。この同期状態実行遷移組格納ファイルの一例は、図１０の（Ｄ）にあるように、イベントが発火する場所である発火場所と、発火するイベントを示す能動的状態遷移名と、発火したイベントを受理することを示す受動的状態遷移名の組が規定され、各組は番号により特定可能なものである。【００８８】
続いて、複合状態遷移図生成部１７は、各サブシステムの状態遷移格納ファイルの番号０の遷移前状態（すなわち、各サブシステムの初期状態）を集めて、システム全体の初期状態を構成する（図８のステップＳＴＣＣ６）。例えば、サブシステムＡ、Ｂ、Ｃからなるシステムの場合にはシステム全体の初期状態は（ＳＡ，Ｓ１，ＳＣ）となる。【００８９】
続いて、複合状態遷移図生成部１７は、システム全体の初期状態を構成すると、“番号０，システム全体の初期状態”を初期値として、到達可能状態表を作成する（図８のステップＳＴＣＣ７）。図１０の（Ｅ）は、作成される到達可能状態表の一例を示す図である。【００９０】
続いて、複合状態遷移図生成部１７は、中身が空な複合状態遷移図格納用状態遷移格納ファイルを作成する（図８のステップＳＴＣＣ８）。【００９１】
複合状態遷移図生成部１７は、Ｎ３の値を１とし、Ｋ３の値を０とする（図９のステップＳＴＣＣ９）。ここで、Ｎ３の値は到達可能状態表の列数である。【００９２】
続いて、複合状態遷移図生成部１７は、Ｋ３とＮ３の値を比較して判断を行う（図９のステップＳＴＣＣ１０）。Ｋ３の値がＮ３の値よりも小さいならば図９のステップＳＴＣＣ１１の処理を行い、小さくないならば複合状態遷移図格納用状態遷移格納ファイル３７を出力して（図９のステップＳＴＣＣ２１）、図８と図９の処理を終了する。【００９３】
図９のステップＳＴＣＣ１１において、複合状態遷移図生成部１７は、到達可能状態表におけるＫ３番目のシステム全体の状態を遷移前状態とする能動的状態遷移のリストを作成する。図９のステップＳＴＣＣ１１の処理の詳細は、図１２により後に示される。図１０の（Ｅ）の場合、０番目のシステム全体の状態の能動的状態遷移のリストは、（ｅ１発火，ｅ２発火，ｅ３発火，ｉ１）である。【００９４】
続いて、複合状態遷移図生成部１７は、Ｎ４を能動的状態遷移のリストの長さとし、Ｋ４を０とする（図９のステップＳＴＣＣ１２）。【００９５】
続いて、複合状態遷移図生成部１７は、Ｋ４とＮ４の値を比較して判断を行う（図９のステップＳＴＣＣ１３）。Ｋ４の値がＮ４の値よりも小さいならば図９のステップＳＴＣＣ１４の処理を行い、小さくないならばＫ３の値を１増加して（図９のステップＳＴＣＣ２０）図９のステップＳＴＣＣ１０の判断処理に戻る。【００９６】
図９のステップＳＴＣＣ１４において、複合状態遷移図生成部１７は、到達可能表におけるＫ３番目の状態を遷移前状態、能動的状態遷移のリストのＫ４番目の状態遷移名を状態遷移とするときの遷移後状態を計算する（詳細は図１３〜図１６で示される）。【００９７】
続いて、複合状態遷移図生成部１７は、Ｋ３番目の状態を遷移前状態とし、Ｋ４番目の状態遷移名を状態遷移名とし、計算した遷移後の状態を遷移後状態とする組を複合状態遷移図格納用状態遷移格納ファイル３７に追加する（図９のステップＳＴＣＣ１５）。【００９８】
続いて、複合状態遷移図生成部１７は、計算した遷移後状態が到達可能状態表に登録されているかの判断を行う（図９のステップＳＴＣＣ１６）。登録されている場合には図９のステップＳＴＣＣ１９の処理を行う。登録されていない場合には、図９のステップＳＴＣＣ１７の処理を行う。【００９９】
図９のステップＳＴＣＣ１７において、複合状態遷移図生成部１７は、計算した遷移後状態を到達可能状態表の最後へ追加する。続いて、Ｎ３の値を１増加して（図９のステップＳＴＣＣ１８）図９のステップＳＴＣＣ１９の処理を行う。【０１００】
図９のステップＳＴＣＣ１９において、複合状態遷移図生成部１７は、Ｋ４の値を１増加する。そして、図９のステップＳＴＣＣ１３の判断処理に戻る。【０１０１】
以上に記載されているように図８と図９の処理が行われることにより、システム全体の複合状態遷移図が生成される。図１１は、生成される複合状態遷移図の例を示す図である。【０１０２】
図１２は、図９のステップＳＴＣＣ１１の処理（到達可能状態表におけるＫ３番目のシステム全体の状態を遷移前状態とする能動的状態遷移のリストを作成する処理）の詳細を示す図である。ここで、状態（Ｔ０，・・・，Ｔ（Ｋ５），・・・，Ｔ（Ｎ５−１））は、到達可能状態表におけるＫ３番目のシステム全体の状態であるとする。【０１０３】
まず、複合状態遷移図生成部１７は、Ｎ５をサブシステムの総数とし、Ｋ５を０とする（図１２のステップＳＴＰＳ１）。【０１０４】
続いて、複合状態遷移図生成部１７は、Ｋ５とＮ５の値を比較して判断する（図１２のステップＳＴＰＳ２）。Ｋ５の値がＮ５の値よりも小さいならば図１２のステップＳＴＰＳ３の処理を行い、小さくないならば能動的状態遷移リストを出力して（図１２のステップＳＴＰＳ１０）図１２の処理を終了する。【０１０５】
図１２のステップＳＴＰＳ３において、複合状態遷移図生成部１７は、Ｎ６をＫ５番目のサブシステムの状態遷移格納ファイルの列数とし、Ｋ６を０とする。【０１０６】
続いて、複合状態遷移図生成部１７は、Ｋ６とＮ６の値を比較して判断する（図１２のステップＳＴＰＳ４）。Ｋ６の値がＮ６の値よりも小さいならば図１２のステップＳＴＰＳ５の処理を行い、小さくないならばＫ５の値を１増加して（図１２のステップＳＴＰＳ９）図１２のステップＳＴＰＳ２の判断処理に戻る。【０１０７】
図１２のステップＳＴＰＳ５において、複合状態遷移図生成部１７は、Ｔ（Ｋ５）がＫ６番目の遷移前状態であるかの判断を行う。Ｔ（Ｋ５）がＫ６番目の遷移前状態であれば図１２のステップＳＴＰＳ６の処理を行い、そうでなければ図１２のステップＳＴＰＳ８の処理を行う。【０１０８】
図１２のステップＳＴＰＳ６において、複合状態遷移図生成部１７は、Ｋ６番目の状態遷移が能動的状態遷移かの判断を行う。能動的状態遷移であればＫ６番目の状態遷移を能動的状態遷移のリストへ追加し（図１２のステップＳＴＰＳ７）、図１２のステップＳＴＰＳ８の処理を行う。能動的状態遷移でなければ図１２のステップＳＴＰＳ８の処理を行う。【０１０９】
図１２のステップＳＴＰＳ８において、複合状態遷移図生成部１７は、Ｋ６の値を１増加する。そして、図１２のステップＳＴＰＳ４の判断処理に戻る。【０１１０】
以上のように、複合状態遷移図生成部１７は、図１２の処理を行うことにより図９のステップＳＴＣＣ１１の処理を行うことができる。【０１１１】
図１３〜図１６は、図９のステップＳＴＣＣ１４の処理（Ｋ３番目の状態を遷移前状態、Ｋ４番目の状態遷移を状態遷移とするときの状態後遷移状態を計算する処理)の詳細を示す図である。以下では、Ｋ２番目のシステム全体の状態を（Ｔ０，・・・，Ｔ（Ｋ８），・・・，Ｔ（Ｎ８−１））とし、ＡＴはＫ４番目の状態遷移であるとする。【０１１２】
まず、複合状態遷移図生成部１７は、ＢＫを到達可能状態表におけるＫ３番目のシステム全体の状態とする（図１３のステップＳＴＡＳ１）。続いて、複合状態遷移図生成部１７は、Ｎ７を同期実行状態遷移組格納ファイルの列数とし、Ｋ７を０とする（図１３のステップＳＴＡＳ２）。【０１１３】
続いて、複合状態遷移図生成部１７は、Ｋ７とＮ７の値を比較して判断を行う（図１３のステップＳＴＡＳ３）。Ｋ７の値がＮ７の値より小さいときは図１３のステップＳＴＡＳ４の処理を行い、小さくないとき（すなわち、ＡＴが内部処理の場合）には図１６のステップＳＴＡＳ２３の処理を行う。【０１１４】
図１３のステップＳＴＡＳ４において、複合状態遷移図生成部１７は、ＡＴがＫ７番目の能動的状態遷移であるかの判断を行う。ＡＴがＫ７番目の能動的状態遷移であれば図１３のステップＳＴＡＳ６の処理を行い、ＡＴがＫ７番目の能動的状態遷移でないならばＫ７を１増加して（図１３のステップＳＴＡＳ５）、図１３のステップＳＴＡＳ３の判断処理に戻る。【０１１５】
図１３のステップＳＴＡＳ６において、複合状態遷移図生成部１７は、ＰＬをＫ７番目の発火場所とし、ＩＴをＫ７番目の受動的状態遷移とする。【０１１６】
続いて、複合状態遷移図生成部１７は、Ｎ８をサブシステムの総数とし、Ｋ８を０とする（図１４のステップＳＴＡＳ７）。【０１１７】
続いて、複合状態遷移図生成部１７は、Ｋ８とＮ８の値を比較して判断を行う（図１４のステップＳＴＡＳ８）。Ｋ８の値がＮ８の値よりも小さいならば図１４のステップＳＴＡＳ９の処理を行い、小さくないならば図１６のステップＳＴＡＳ３２の処理を行う。【０１１８】
図１４のステップＳＴＡＳ９において、複合状態遷移図生成部１７は、ＰＬがＫ８番目のサブシステムであるかの判断を行う。ＰＬがＫ８番目のサブシステムであるならば図１４のステップＳＴＡＳ１０の処理を行い、そうでないならば図１５のステップＳＴＡＳ１７の処理を行う。【０１１９】
図１５のステップＳＴＡＳ１０において、複合状態遷移図生成部１７は、Ｎ９をＫ８番目のサブシステムの状態遷移格納ファイルの列数とし、Ｋ９を０とする。【０１２０】
続いて、複合状態遷移図生成部１７は、Ｋ９とＮ９の値を比較して判断する（図１４のステップＳＴＡＳ１１）。Ｋ９の値がＮ９の値よりも小さいならば図１４のステップＳＴＡＳ１２の処理を行い、小さくないならば図１４のステップＳＴＡＳ１６の処理を行う。【０１２１】
図１４のステップＳＴＡＳ１２において、複合状態遷移図生成部１７は、Ｔ（Ｋ８）がＫ９番目の遷移前状態であるかの判断を行う。Ｔ（Ｋ８）がＫ９番目の遷移前状態であれば図１４のステップＳＴＡＳ１３の処理を行い、そうでないならば図１４のステップＳＴＡＳ１５の処理を行う。【０１２２】
図１４のステップＳＴＡＳ１３において、複合状態遷移図生成部１７は、ＡＴがＫ９番目の状態遷移名であるかの判断を行う。ＡＴがＫ９番目の状態遷移名であれば、ＢＫを（Ｂ０，・・・，Ｂ（Ｋ８），・・・，Ｂ（Ｎ８−１））とするとＢＫを（Ｂ０，・・・，Ｋ９番目の遷移後状態，・・・，Ｂ（Ｎ８−１））に変更して（図１４のステップＳＴＡＳ１４）図１４のステップＳＴＡＳ１５の処理を行う。ＡＴがＫ９番目の状態遷移でないならば図１４のステップＳＴＡＳ１５の処理を行う。【０１２３】
図１４のステップＳＴＡＳ１５において、複合状態遷移図生成部１７は、Ｋ９の値を１増加する。そして、図１４のステップＳＴＡＳ１１の判断処理に戻る。【０１２４】
図１４のステップＳＴＡＳ１６において、複合状態遷移図生成部１７は、Ｋ８の値を１増加する。そして、図１４のステップＳＴＡＳ８の判断処理に戻る。【０１２５】
図１５のステップＳＴＡＳ１７において、複合状態遷移図生成部１７は、Ｎ１０をＫ８番目のサブシステムの状態遷移格納ファイルの列数とし、Ｋ１０を０とする。【０１２６】
続いて、複合状態遷移図生成部１７は、Ｋ１０とＮ１０の値を比較して判断を行う（図１５のステップＳＴＡＳ１８）。Ｋ１０の値がＮ１０の値よりも小さいならば図１５のステップＳＴＡＳ１９の処理を行い、小さくないならば図１４のステップＳＴＡＳ１６の処理を行う。【０１２７】
図１５のステップＳＴＡＳ１９において、複合状態遷移図生成部１７は、Ｔ（Ｋ８）がＫ１０番目の遷移前状態であるかの判断を行う。Ｔ（Ｋ８）がＫ１０番目の遷移前状態であれば図１５のステップＳＴＡＳ２０の処理を行い、そうでないならば図１５のステップＳＴＡＳ２２の処理を行う。【０１２８】
図１５のステップＳＴＡＳ２０において、複合状態遷移図生成部１７は、ＩＴがＫ１０番目の状態遷移であるかの判断を行う。ＩＴがＫ１０番目の状態遷移であれば、ＢＫを（Ｂ０，・・・，Ｂ（Ｋ８），・・・，Ｂ（Ｎ８−１））とするとＢＫを（Ｂ０，・・・，Ｋ１０番目の遷移後状態，・・・，Ｂ（Ｎ８−１））に変更して（図１５のステップＳＴＡＳ２１）図１５のステップＳＴＡＳ２２の処理を行う。ＩＴがＫ１０番目の状態遷移でないならば図１５のステップＳＴＡＳ２２の処理を行う。【０１２９】
図１５のステップＳＴＡＳ２２において、複合状態遷移図生成部１７は、Ｋ１０の値を１増加する。そして、図１５のステップＳＴＡＳ１８の判断処理に戻る。なお、図１４のステップＳＴＡＳ１０〜１５の処理は能動的遷移ＡＴを見つける処理であり、図１５のステップＳＴＡＳ１７〜２２の処理は受動的遷移ＩＴを見つける処理である。【０１３０】
図１６のステップＳＴＡＳ２３において、複合状態遷移図生成部１７は、Ｎ１１をサブシステムの総数とし、Ｋ１１を０とする。【０１３１】
続いて、複合状態遷移図生成部１７は、Ｋ１１とＮ１１の値を比較して判断を行う（図１６のステップＳＴＡＳ２４）。Ｋ１１の値がＮ１１の値よりも小さいときは図１６のステップＳＴＡＳ２５の処理を行い、小さくないときは図１６のステップＳＴＡＳ３２の処理を行う。【０１３２】
図１６のステップＳＴＡＳ２５において、複合状態遷移図生成部１７は、Ｎ１２をＫ１１番目のサブシステムの状態遷移格納ファイルの列数とし、Ｋ１２を０とする。【０１３３】
続いて、複合状態遷移図生成部１７は、Ｋ１２とＮ１２の値を比較して判断を行う（図１６のステップＳＴＡＳ２６）。Ｋ１２の値がＮ１２の値よりも小さいならば図１６のステップＳＴＡＳ２７の処理を行い、小さくないならば図１６のステップＳＴＡＳ３１の処理を行う。【０１３４】
図１６のステップＳＴＡＳ２７において、複合状態遷移図生成部１７は、Ｔ（Ｋ１１）がＫ１２番目の遷移前状態であるかの判断を行う。Ｔ（Ｋ１１）がＫ１２番目の遷移前状態であれば図１６のステップＳＴＡＳ２８の処理を行い、Ｔ（Ｋ１１）がＫ１２番目の遷移前状態でないならば図１６のステップＳＴＡＳ３０の処理を行う。【０１３５】
図１６のステップＳＴＡＳ２８において、複合状態遷移図生成部１７は、ＡＴがＫ１２番目の状態遷移名であるかの判断を行う。ＡＴがＫ１２番目の状態遷移名であれば、ＢＫを（Ｂ０，・・・，Ｂ（Ｋ１１），・・・，Ｂ（Ｎ１１−１））とするとＢＫを（Ｂ０，・・・，Ｋ１２番目の遷移後状態，・・・，Ｂ（Ｎ１１−１））に変更し（図１６のステップＳＴＡＳ２９）、図１６のステップＳＴＡＳ３０の処理を行う。ＡＴがＫ１２番目の状態遷移でないならば図１６のステップＳＴＡＳ３０の処理を行う。【０１３６】
図１６のステップＳＴＡＳ３０において、複合状態遷移図生成部１７は、Ｋ１２の値を１増加して図１６のステップＳＴＡＳ２６の処理に戻る。【０１３７】
図１６のステップＳＴＡＳ３１において、複合状態遷移図生成部１７は、Ｋ１１の値を１増加して図１６のステップＳＴＡＳ２４の判断処理に戻る。【０１３８】
図１６のステップＳＴＡＳ３２において、複合状態遷移図生成部１７は、ＢＫを計算結果として出力する。そして、図１３〜図１６の処理を終了する。【０１３９】
以上のように、複合状態遷移図生成部１７は、図１３〜図１６の処理を行うことにより図９のステップＳＴＣＣ１４の処理を行うことができる。【０１４０】
図１７は図２の異常状態到達可能性検査部２３の動作を示すフロー図である。【０１４１】
まず、異常状態到達可能性検査部２３は、複合状態遷移図格納用状態遷移格納ファイル３７を入力する（図１７のステップＳＴＣＨ１）。【０１４２】
続いて、異常状態到達可能性検査部２３は、Ｎ１３を複合状態遷移図格納用状態遷移格納ファイル３７の列数とし、Ｋ１３を０とする（図１７のステップＳＴＣＨ２）。【０１４３】
そして、異常状態到達可能性検査部２３は、Ｋ１３とＮ１３の値を比較して判断を行う（図１７のステップＳＴＣＨ３）。Ｋ１３の値がＮ１３の値よりも小さいならば図１７のステップＳＴＣＨ５の処理を行い、小さくないならば、検査結果として“異常状態へ到達する状態遷移列は存在せず”を出力して（図１７のステップＳＴＣＨ４）図１７に示される処理を終了する。【０１４４】
図１７のステップＳＴＣＨ５において、異常状態到達可能性検査部２３は、Ｋ１３番目の遷移後状態が異常状態かの判断を行う。Ｋ１３番目の遷移後状態が異常状態であるならば検査結果として“異常状態へ到達する状態遷移列が存在”を出力して（図１７のステップＳＴＣＨ６）図１７の処理を終了する。Ｋ１３番目の遷移後状態が異常状態でないならばＫ１３の値を１増加して（図１７のステップＳＴＣＨ７）図１７のステップＳＴＣＨ３の判断処理に戻る。【０１４５】
なお、図１７のステップＳＴＣＨ６の処理を図１８のフロー図にあるように変更することで、以下のように初期状態から異常状態へ到達する状態遷移列を出力することができる。【０１４６】
図１８の処理において、異常状態到達可能性検査部２３は、まず、空を初期値として状態遷移列格納表を作成する（図１８のステップＳＴＣＯ１）。ここで、空とは何も追加されていないことをいう。この処理により作成される状態遷移列格納表は例えば図１９の（Ａ）のようなものであり、状態遷移名を番号により特定可能なものとする。【０１４７】
続いて、異常状態到達可能性検査部２３は、Ｋ１３番目の状態遷移を状態遷移列格納表の最後に追加する（図１８のステップＳＴＣＯ２）。「ｅ３発火」という状態遷移名を追加する場合、図１９の（Ｂ）にあるように、番号を０とし状態遷移名としてｅ３発火とする組を追加する。【０１４８】
続いて、異常状態到達可能性検査部２３は、ＰＳをＫ１３番目の遷移前状態とする（図１８のステップＳＴＣＯ３）。【０１４９】
そして、異常状態到達可能性検査部２３は、ＰＳが０番目の遷移前状態（すなわち、初期状態）であるかの判断を行う（図１８のステップＳＴＣＯ４）。ＰＳが初期状態であれば、状態遷移列格納表を逆順にして、初期状態から異常状態へ到達する状態遷移列を問題状態遷移列格納用状態遷移列格納ファイル３９に出力して（図１８のステップＳＴＣＯ７）、図１８の処理を終了する。ＰＳが初期状態でないならば、図１８のステップＳＴＣＯ５の処理を行う。【０１５０】
図１８のステップＳＴＣＯ５において、異常状態到達可能性検査部２３は、Ｋ１３の値を１減少させる。【０１５１】
続いて、Ｋ１３番目の遷移後状態がＰＳであるかの判断を行う（図１８のステップＳＴＣＯ６）。ＰＳがＫ１３番目の遷移後状態であるならば図１８のステップＳＴＣＯ２の処理に戻り、そうでないならば図１８のステップＳＴＣＯ５の処理に戻る。【０１５２】
図２０は、図２の瑣末遷移区別部２７の動作の一例を示すフロー図である。瑣末遷移区別部２７の一例は、異常状態到達可能性検査部２３が図１８の処理を行うことにより求められる初期状態から異常状態へ到達する状態遷移列（問題状態遷移列）と図２の重要状態遷移格納用状態遷移格納ファイル３３に格納された使用者の興味がある状態遷移群に基づいて、問題状態遷移列から使用者の興味がある状態遷移群に含まれない状態遷移を除去することで得られる状態遷移列を出力するものである。【０１５３】
図２０の処理において、瑣末遷移区別部２７は、まず、問題状態遷移列格納用状態遷移列格納ファイル３９を入力する（図２０のステップＳＴＤＤ１）。【０１５４】
続いて、瑣末遷移区別部２７は、重要状態遷移格納用状態遷移格納ファイル３３を入力する（図２０のステップＳＴＤＤ２）。この重要状態遷移格納用状態遷移格納ファイル３３に格納されるデータは、重要な状態遷移の組（使用者の興味がある状態遷移群）である。【０１５５】
続いて、瑣末遷移区別部２７は、空を初期値として、本質的な問題状態遷移列を格納する状態遷移列格納表を作成する（図２０のステップＳＴＤＤ３）。ここで、空とは何も追加されていないことをいう。【０１５６】
続いて、瑣末遷移区別部２７は、Ｎ１５を状態遷移列格納ファイルの列数とし、Ｋ１５を０とする（図２０のステップＳＴＤＤ４）。【０１５７】
瑣末遷移区別部２７は、Ｋ１５とＮ１５の値を比較して判断を行う（図２０のステップＳＴＤＤ５）。Ｋ１５の値がＮ１５の値よりも小さいならば図２０のステップＳＴＤＤ６の処理を行う。小さくないならば、状態遷移格納表を本質的な問題状態遷移列として本質的問題状態遷移列格納用状態遷移列格納ファイル４１に出力して（図２０のステップＳＴＤＤ９）、図２０の処理を終了する。【０１５８】
図２０のステップＳＴＤＤ６において、瑣末遷移区別部２７は、Ｋ１５番目の状態遷移が重要な状態遷移の組に含まれるかの判断を行う。Ｋ１５番目の状態遷移が重要な状態遷移の組に含まれるならば、Ｋ１５番目の状態遷移を状態遷移格納表の最後に追加して（図２０のステップＳＴＤＤ７）図２０のステップＳＴＤＤ８の処理を行う。含まれないならば、図２０のステップＳＴＤＤ８の処理を行う。【０１５９】
図２０のステップＳＴＤＤ８において、瑣末遷移区別部２７は、Ｋ１５の値を１増加して図２０のステップＳＴＤＤ５の判断処理に戻る。【０１６０】
図２の表示部２１は、図２の異常状態付状態遷移図検査部１５の出力を表示するものである。なお、問題状態遷移列に関しては、本質的問題状態遷移列格納用状態遷移列格納ファイル４１に格納される状態遷移列（瑣末遷移区別部２７により得られる状態遷移列）を表示してもよい。また、表示部２１は表示装置に対して表示制御を行うものであってもよい。【０１６１】
表示部２１の例としては、問題状態遷移列を異常状態への状態遷移に近いものから順番に表示するものである。例えば問題状態遷移列がｅ１，ｅ２，ｅ１，ｅ１，ｅ１，ｅ３であった場合の表示例は図２１のようになる。使用者が問題点を探すのは異常状態の近くからであることが多いため、このように表示することにより問題点が発見されやすくなる。【０１６２】
図２２と図２３は、受理可能イベント不受理検査部２５の動作を示すフロー図である。【０１６３】
図２２と図２３の各ステップの動作は、図２４に示される例を用いて具体例の一つが説明される。ここで、図２４の（Ａ）と（Ｂ）は、それぞれ、検査対象のシステムを構成するサブシステムＤとＥの状態遷移図である。サブシステムＤは、図２４の（Ａ）に示されるように、状態ＳＤ１を初期状態とし、状態ＳＤ１においてイベントｅ１を受理したときに状態ＳＤ３に遷移し、状態ＳＤ３において内部処理ｉ１により状態ＳＤ１に遷移し、状態ＳＤ１においてイベントｅ２を受理したときに状態ＳＤ２に遷移し、状態ＳＤ２において内部処理ｉ２により状態ＳＤ１に遷移するとする。また、サブシステムＥは状態ＳＥを初期状態とし、イベントｅ１を発火して状態ＳＥに遷移する（遷移前状態が状態ＳＥであるため、状態ＳＥのままである）とする。【０１６４】
また、図２４の（Ｃ）は、サブシステムＤの受理可能状態表ファイルである。サブシステムＤは、状態ＳＤ１においてイベント群｛ｅ１，ｅ２｝を受理可能であり、状態ＳＤ２とＳＤ３では受理可能イベントはないものとする。また、図２４の（Ｄ）はサブシステムＥの受理可能状態表ファイルである。サブシステムＥは、受理可能イベントはないものとする。【０１６５】
図２４の（Ｅ）は、サブシステムＤとサブシステムＥを合成したシステム全体の状態遷移を示す図（複合状態遷移図）である。合成したシステムは、状態（ＳＤ１，ＳＥ）を初期状態とし、状態（ＳＤ１，ＳＥ）においてサブシステムＥのｅ１発火（サブシステムＤのｅ１受理）により状態（ＳＤ３，ＳＥ）に状態遷移し、状態（ＳＤ３，ＳＥ）においてサブシステムＤの内部処理ｉ１により状態（ＳＤ１，ＳＥ）に状態遷移するものとする。図２４の（Ｆ）は、図２４の（Ｅ）に示される複合状態遷移図に相当する状態遷移格納ファイルの例である。【０１６６】
まず、受理可能イベント不受理検査部２５は、複合状態遷移図格納用状態遷移格納ファイル３７（システム全体の複合状態遷移図に相当する状態遷移格納ファイル）を入力する（図２２のステップＳＴＮＲ１）。図２４の例においては、図２４の（Ｆ）を入力する。【０１６７】
続いて、受理可能イベント不受理検査部２５は、Ｎ１６をサブシステムの総数とし、Ｋ１６を０とする（図２２のステップＳＴＮＲ２）。図２４の例においてはサブシステムはＤとＥの２つであり、Ｎ１６を２とする。【０１６８】
続いて、受理可能イベント不受理検査部２５は、Ｋ１６とＮ１６の値を比較して判断を行う（図２２のステップＳＴＮＲ３）。Ｋ１６の値がＮ１６の値よりも小さいならば図２２のステップＳＴＮＲ４の処理を行い、小さくないならば図２２の処理を終了する。【０１６９】
図２２のステップＳＴＮＲ４において、受理可能イベント不受理検査部２５は、Ｋ１６番目のサブシステムの受理可能状態表ファイルを読み込む（図２２のステップＳＴＮＲ４）。図２４の例において、サブシステムＤの受理可能状態表ファイルは図２４の（Ｃ）に示されるものであり、サブシステムＥの受理可能状態表ファイルは図２４の（Ｄ）に示されるものである。【０１７０】
続いて、受理可能イベント不受理検査部２５は、Ｎ１７を受理可能状態表ファイルの列数とし、Ｋ１７を０とする（図２２のステップＳＴＮＲ５）。図２４の例において、サブシステムＤの場合にはＮ１７は３であり、サブシステムＥの場合にはＮ１７は１である。【０１７１】
受理可能イベント不受理検査部２５は、Ｋ１７とＮ１７の値を比較して判断を行う（図２２のステップＳＴＮＲ６）。Ｋ１７の値がＮ１７の値よりも小さいならば図２３のステップＳＴＮＲ８の処理を行い、小さくないならばＫ１６の値を１増加して（図２２のステップＳＴＮＲ７）図２２のステップＳＴＮＲ３の判断処理に戻る。【０１７２】
図２３のステップＳＴＮＲ８において、受理可能イベント不受理検査部２５は、Ｎ１８を状態遷移格納ファイルの列数とし、Ｋ１８を０とし、Ａｌｉｓｔを｛｝とする（図２３のステップＳＴＮＲ８）。【０１７３】
続いて、受理可能イベント不受理検査部２５は、Ｋ１８とＮ１８の値を比較して判断を行う（図２３のステップＳＴＮＲ９）。Ｋ１８の値がＮ１８よりも小さいならば図２３のステップＳＴＮＲ１０の処理を行い、小さくないならば図２３のステップＳＴＮＲ１４の処理を行う。【０１７４】
図２３のステップＳＴＮＲ１０において、受理可能イベント不受理検査部２５は、Ｋ１６番目のサブシステムの受理可能状態表ファイルのＫ１７番目の状態が複合状態遷移図に相当する状態遷移格納ファイルのＫ１８番目の遷移前状態のＫ１６項目かの判断を行う。Ｋ１６番目のサブシステムの受理可能状態表ファイルのＫ１７番目の状態が複合状態遷移図に相当する状態遷移格納ファイルのＫ１８番目の遷移前状態のＫ１６項目であれば図２３のステップＳＴＮＲ１１の処理を行い、そうでないならば図２３のステップＳＴＮＲ１３の処理を行う。【０１７５】
図２３のステップＳＴＮＲ１１において、受理可能イベント不受理検査部２５は、Ｋ１８番目の状態遷移名がイベント発火であるかの判断を行う。イベント発火であればＡＬｉｓｔと当該イベントの論理和を計算して得られたものを新たにＡＬｉｓｔとし（すなわち、ＡＬｉｓｔに当該イベントを追加し）（図２３のステップＳＴＮＲ１２）、図２３のステップＳＴＮＲ１３の処理を行う。イベント発火でないならば図２３のステップＳＴＮＲ１３の処理を行う。【０１７６】
図２３のステップＳＴＮＲ１３において、受理可能イベント不受理検査部２５は、Ｋ１８の値を１増加する。そして、図２３のステップＳＴＮＲ９の判断処理に戻る。【０１７７】
図２３のステップＳＴＮＲ１４において、受理可能イベント不受理検査部２５は、Ｋ１７番目の受理可能イベントの集合からＡＬｉｓｔに属する状態を除いた状態からなるリストを新たにＡＬｉｓｔとする。サブシステムＤの状態ＳＤ１の場合（すなわち、Ｋ１６とＫ１７が共に０の場合)、ＡＬｉｓｔは｛ｅ２｝となる。【０１７８】
続いて、受理可能イベント不受理検査部２５は、ＡＬｉｓｔが空集合かの判断を行う（図２３のステップＳＴＮＲ１５）。空集合であればＫ１６番目のサブシステムには不受理な受理可能イベントは存在しないと出力して（図２３のステップＳＴＮＲ１６）図２３のステップＳＴＮＲ１７の処理を行う。空集合でないならば、Ｋ１６番目のサブシステムのＫ１７番目の状態にはＡＬｉｓｔという不受理な受理可能イベントがあると出力して（図２３のステップＳＴＮＲ１８）、図２３のステップＳＴＮＲ１７の処理を行う。【０１７９】
図２３のステップＳＴＮＲ１７において、受理可能イベント不受理検査部２５は、Ｋ１７の値を１増加する。そして、図２２のステップＳＴＮＲ６の判断処理に戻る。【０１８０】
なお、例えば図２５にあるように、複合状態遷移図検査部１９を、受理可能イベント不受理検査部２５を含まずに、異常状態到達可能性検査部２３を有するものとしてもよい。【０１８１】
また、例えば図２６にあるように、複合状態遷移図検査部１９を、異常状態到達可能性検査部２３を含まずに、受理可能イベント不受理検査部２５を有するものとしてもよい。
【実施例３】
【０１８２】
検証対象のシステムが、図３にあるサブシステムＡ、Ｂ、Ｃからなり、サブシステムＢとサブシステムＣとの間に長さ１のキューがあり、このキューにイベントが保持される、とモデル化できると仮定される場合について、図２の状態遷移図検証支援装置１１の動作を説明する。【０１８３】
キューとしてモデル化できるものとして、例えばＬＡＮなどのネットワークがある。なお、キューの長さが１という仮定が崩れる場合には、キューの長さを適切な長さにすればよい。【０１８４】
また、このキューは、イベントを入れる操作（イベント入力）とイベントを取り出す操作（イベント出力）を持つとする。イベント入力はイベント発火により引き起こされるので受動的状態遷移であり、イベント出力はイベント受理を引き起こすので能動的状態遷移である。【０１８５】
図２７は長さ１のキューの状態遷移を示す図である。このキューの状態遷移図は、システム連携方法に含まれる。図２７において、記号！ｅ２，！ｅ３はそれぞれイベントｅ２，ｅ３のイベント入力を意味し、記号！：ｅ２，！：ｅ３はそれぞれイベントｅ２，ｅ３のイベント出力を意味するものとする。【０１８６】
このとき、システム連携方法の一例として、以下の四つが考えられる。一つ目は、サブシステムＡとＣは受理可能状態を持たないことである。二つ目は、サブシステムＢの状態Ｓ１とＳ２はイベント｛ｅ１｝の受理可能状態であり、状態Ｓ２はイベント群｛ｅ２,ｅ３｝の受理可能状態であることである。三つ目は、ｅ１のイベント発火（能動的状態遷移）とイベント受理（受動的状態遷移）とは同時に発生することである。四つ目は、ｅ２（ｅ３）のイベント発火（能動的状態遷移）とｅ２（ｅ３）のイベント入力（受動的状態遷移）、及び、ｅ２（ｅ３）のイベント出力（能動的状態遷移）とｅ２（ｅ３）のイベント受理（受動的状態遷移）とは同時に発生することである。【０１８７】
検査対象のシステムが上記の場合に、状態遷移図検証支援装置１１の動作は下記のようになる。【０１８８】
まず、異常状態付状態遷移図生成部１３は、サブシステムＡ、Ｂ、Ｃの各状態遷移図に対して異常状態付状態遷移図を生成する（図６参照）。【０１８９】
続いて、複合状態遷移図生成部１７は、異常状態付状態遷移図生成部１３が生成した各サブシステムの異常状態付状態遷移図と長さ１のキューの状態遷移図（システム連携方法の一部）に基づいてシステム全体の複合状態遷移図を生成する。【０１９０】
具体的には、サブシステムＡ、Ｂ、Ｃ、キューの初期状態がそれぞれＳＡ、Ｓ１、ＳＣ、Ｑ１なので、システム全体の初期状態は（ＳＡ，Ｓ１，ＳＣ，Ｑ１）である。ＳＡ、Ｓ１、ＳＣ、Ｑ１のいずれかからの能動的状態遷移はｅ１、ｅ２、ｅ３のイベント発火とｉ１の内部処理であり、受動的状態遷移はｅ１のイベント受理とｅ２、ｅ３のイベント入力である。システム連携方法では、ｅ１のイベント発火とイベント受理とは同時発生し、また、ｅ２（ｅ３）のイベント受理とイベント入力とは同時発生することになっているため、（ＳＡ，Ｓ１，ＳＣ，Ｑ１）からの状態遷移は、ｅ１のイベント発火、ｅ２，ｅ３のイベント発火、及び、ｉ１の内部処理である。以下、同様にしてシステム全体の複合状態遷移図が得られる。得られる複合状態遷移図は、図２８に示されるものである。【０１９１】
続いて、複合状態遷移図検査部１９は、複合状態遷移図生成部１７により生成された複合状態遷移図の検査を行う。そして、表示部２１は、複合状態遷移図検査部１９の出力を表示する。
【実施例４】
【０１９２】
図２９は、図２の異常状態付状態遷移図生成部１３の動作の他の例を示すフロー図である。図４のフロー図においては、受理可能状態表ファイルに登録されている状態と受理可能イベントの組であって状態遷移格納ファイルに当該状態を遷移前状態とし当該イベントの受理を状態遷移名とするものが登録されていない場合に当該状態を遷移前状態とし当該イベントの受理を状態遷移名とし異常状態を遷移後状態とする組を状態遷移格納ファイルに追加する処理をしている。【０１９３】
それに対して、図２９のフロー図においては、この処理に加えて、状態遷移格納ファイルに登録された遷移前状態と状態遷移名と遷移後状態の組であって、状態遷移が受動的なものであり、遷移前状態と状態遷移名の組が受理可能状態表ファイルに登録されていないものを削除する（すなわち、状態遷移格納ファイルにおいて、受理可能状態表ファイルにより当該状態の受理可能イベントでないとされるイベント受理の状態遷移を削除する）処理を行うものである。【０１９４】
図３０〜図３２は、図２９の各処理の具体例を示す図である。図３０の（Ａ）は、検査対象のシステムを構成するサブシステムの一つであるサブシステムＦの状態遷移を示す図である。このサブシステムＦは、状態ＳＦ１を初期状態とし、状態ＳＦ１においてイベントｅ１を受理した場合に状態ＳＦ２に遷移し、状態ＳＦ１においてイベントｅ５を受理したときに状態ＳＦ３に遷移し、状態ＳＦ２においてイベントｅ１を受理したときに状態ＳＦ２に遷移し（遷移前状態が状態ＳＦ２であるため、状態ＳＦ２のままである）、状態ＳＦ２においてイベントｅ２を受理した場合に状態ＳＦ１に遷移し、状態ＳＦ２においてイベントｅ４を発火して状態ＳＦ２に遷移し、状態ＳＦ３においてイベントｅ１を受理して状態ＳＦ４に遷移し、状態ＳＦ３においてイベントｅ２を受理して状態ＳＦ１に遷移し、状態ＳＦ４においてイベントｅ２を受理して状態ＳＦ３に遷移し、状態ＳＦ４において内部処理ｉ１により状態ＳＦ４に遷移するとする。このサブシステムＦの状態遷移格納ファイルは、図３０の（Ｂ）に示されるものである。【０１９５】
また、受理可能状態表ファイルは、図３０の（Ｃ）に示されるものである。図３０の（Ｃ）において、状態ＳＦ１における受理可能イベントはイベント｛ｅ１｝であり、状態ＳＦ２における受理可能イベントはイベント群｛ｅ１，ｅ２，ｅ３｝であり、状態ＳＦ３における受理可能イベントはイベント群｛ｅ１，ｅ２｝であり、状態ＳＦ４における受理可能イベントはイベント群｛ｅ２，ｅ３｝である。【０１９６】
図２９において、異常状態付状態遷移図生成部１３は、まず、サブシステムの状態遷移格納ファイルを入力する（図２９のステップＳＴＥＤ１）。【０１９７】
続いて、異常状態付状態遷移図生成部１３は、入力した状態遷移格納ファイルから状態のリストを計算してＳＬｉｓｔとする（図２９のステップＳＴＥＤ２）。図３０の（Ｂ）の場合、ＳＬｉｓｔ＝｛ＳＦ１，ＳＦ２，ＳＦ３，ＳＦ４｝である。【０１９８】
続いて、異常状態付状態遷移図生成部１３は、入力した状態遷移格納ファイルから状態遷移名がイベント受理となるイベントのリストを計算してＥＬｉｓｔ１とする（図２９のステップＳＴＥＤ３）。図３０の（Ｂ）の場合、ＥＬｉｓｔ＝｛ｅ１，ｅ２，ｅ５｝である。【０１９９】
続いて、異常状態付状態遷移図生成部１３は、サブシステムの受理可能状態表ファイルを入力する（図２９のステップＳＴＥＤ４）。【０２００】
続いて、異常状態付状態遷移図生成部１３は、入力した受理可能状態表ファイルから受理可能イベントのリストを計算してＥＬｉｓｔ２とする（図２９のステップＳＴＥＤ５）。図３０の（Ｃ）の場合、ＥＬｉｓｔ２＝｛ｅ１，ｅ２，ｅ３｝である。【０２０１】
続いて、異常状態付状態遷移図生成部１３は、ＥＬｉｓｔ１とＥＬｉｓｔ２の和集合をＥＬｉｓｔとする（すなわち、ＥＬｉｓｔ＝ＥＬｉｓｔ１∪ＥＬｉｓｔ２を計算する）（図２９のステップＳＴＥＤ６）。図３０の場合、ＥＬｉｓｔ＝｛ｅ１，ｅ２，ｅ３，ｅ５｝である。【０２０２】
続いて、異常状態付状態遷移図生成部１３は、各ブロックがＳＬｉｓｔの要素とＥＬｉｓｔの要素の組で定まる検査表Ａを作成し、各ブロックを０で初期化する（図２９のステップＳＴＥＤ７）。このとき、検査表Ａは図３１の（Ａ）に示されるようになる。【０２０３】
続いて、異常状態付状態遷移図生成部１３は、状態遷移格納ファイルに記述された（遷移前状態，イベント受理）の組で定まる検査表Ａ上の全ブロックを１にする（図２９のステップＳＴＥＤ８）。状態遷移名がイベント発火、内部処理の場合は何もしない。状態遷移格納ファイルが図３０の（Ｂ）の場合に、（遷移前状態，イベント受理）の組は（ＳＦ１，ｅ１）、（ＳＦ１，ｅ５）、（ＳＦ２，ｅ１）、（ＳＦ２，ｅ２）、（ＳＦ３，ｅ１）、（ＳＦ３，ｅ２）、（ＳＦ４，ｅ２）であるので、これらの組に対応する検査表Ａ上のブロックを１にする。ここで作成される検査表Ａは、図３１の（Ｂ）のようになる。【０２０４】
続いて、異常状態付状態遷移図生成部１３は、各ブロックがＳＬｉｓｔの要素とＥＬｉｓｔの要素の組で定まる検査表Ｂを作成し、各ブロックを０で初期化する（図２９のステップＳＴＥＤ９）。このとき、検査表Ｂは図３１の（Ｃ）に示されるようになる。【０２０５】
続いて、異常状態付状態遷移図生成部１３は、状態遷移格納ファイルに記述された（状態，受理可能イベント）の組で定まる検査表Ｂ上の全ブロックを１にする（図２９のステップＳＴＥＤ１０）。状態遷移格納ファイルが図３０の（Ｃ）の場合に、（状態，受理可能イベント）の組は（ＳＦ１，ｅ１）、（ＳＦ２，ｅ１）、（ＳＦ２，ｅ２）、（ＳＦ２，ｅ３）、（ＳＦ３，ｅ１）、（ＳＦ３，ｅ２）、（ＳＦ４，ｅ２）、（ＳＦ４，ｅ３）であるので、これらの組に対応する検査表Ｂ上のブロックを１にする。ここで作成される検査表Ｂは、図３１の（Ｄ）のようになる。【０２０６】
続いて、異常状態付状態遷移図生成部１３は、各ブロックがＳＬｉｓｔの要素とＥＬｉｓｔの要素の組で定まる検査表Ｃを作成し、各ブロックの値を、検査表Ａの当該ブロックの値の否定と検査表Ｂの当該ブロックの値との論理積を計算して得られた値とする（図２９のステップＳＴＥＤ１１）。ここで作成される検査表Ｃは、図３１の（Ｅ）のようになる。【０２０７】
この検査表Ｃの各ブロックにおいて、１であるブロックに対応する状態とイベントの組は、受理可能状態表ファイルに記述されている状態とイベントの組であって状態遷移格納ファイルには遷移前状態とイベント受理の組として記述されていないものである。このような状態とイベントの組は、イベントが受理可能な状態とされているが状態遷移格納ファイルにおいては状態遷移が規定されていないものである。【０２０８】
続いて、異常状態付状態遷移図生成部１３は、状態遷移格納ファイルに、検査表Ｃの値が１の各ブロックに対応する（状態，イベント受理，異常状態）の行を追加する（図２９のステップＳＴＥＤ１２）。この操作により、状態遷移格納ファイルは図３１の（Ｆ）のようになる。図２９のステップＳＴＥＤ１２の処理により、受理可能とされているが状態遷移格納ファイルにおいては状態遷移が規定されていないものに関して、異常状態への遷移として状態遷移が追加される。【０２０９】
続いて、異常状態付状態遷移図生成部１３は、各ブロックがＳＬｉｓｔの要素とＥＬｉｓｔの要素の組で定まる検査表Ｄを作成し、各ブロックの値を、検査表Ａの当該ブロックの値と検査表Ｂの当該ブロックの値の否定との論理積を計算して得られた値とする（図２９のステップＳＴＥＤ１３）。ここで作成される検査表Ｄは、図３２の（Ａ）のようになる。【０２１０】
この検査表Ｄの各ブロックにおいて、１であるブロックに対応する状態とイベントの組は、状態遷移格納ファイルに状態遷移が登録されているものの、受理可能状態表ファイルにおいては当該状態において当該イベントが受理可能とはされていないものの組である。【０２１１】
続いて、異常状態付状態遷移図生成部１３は、状態遷移格納ファイルから、検査表Ｄの値が１の各ブロックに対応する状態を遷移前状態とし、対応するイベントの受理を状態遷移名とする行を削除する（図２９のステップＳＴＥＤ１４）。この操作により、状態遷移格納ファイルは図３２の（Ｂ）のようになる。【０２１２】
以上の操作により生成される図３２の（Ｂ）が、出力される異常状態付状態遷移格納ファイルである。なお、生成されるサブシステムの異常状態付状態遷移図は、図３２の（Ｃ）である。
【実施例５】
【０２１３】
異常状態到達可能性検査部２３の他の例として、ループを考慮した（今までに通過した状態へ来たら深さ優先の検索を止め、次の状態遷移へ移る）深さ優先探索アルゴリズムを用いて初期状態から異常状態へ到達する状態遷移列が存在するかどうかを検査するようにしてもよい。【０２１４】
例えば、図１１のシステム全体の複合状態遷移図に対し、“ｅ１＞ｅ２＞ｅ３＞ｉ１”という順序でループを考慮した深さ優先探索アルゴリズムを用いる。【０２１５】
まず、初期状態（ＳＡ，Ｓ１，ＳＣ）よりイベントｅ１による状態遷移によりシステムの状態は（ＳＡ，Ｓ２，ＳＣ）へ遷移する。【０２１６】
続いて、さらに、イベントｅ１による状態遷移によりシステムの状態は（ＳＡ，Ｓ２，ＳＣ）となる。これは、今までに通過した状態であり、深さ優先検索を止め、次の状態遷移の検索へ移る。【０２１７】
次に検索する状態遷移として初期状態からイベントｅ１に続いてイベントｅ２による状態遷移を考えると、システムは、これらのイベントによる状態遷移により状態（ＳＡ，Ｓ１，ＳＣ）へ遷移することとなるが、この状態は初期状態であり、今までに通過した状態へ来たので深さ優先検索を止め、次の状態遷移の検索へ移る。【０２１８】
次に検索する状態遷移として初期状態からイベントｅ１に続いてイベントｅ３による状態遷移を考えると、システムは、これらのイベントによる状態遷移により状態（ＳＡ，ＥＢ，ＳＣ）に遷移する。この状態遷移により異常状態に到達したので、検索を終了する。【０２１９】
この検索の結果から、初期状態から異常状態へ到達する状態遷移列（ｅ１，ｅ３）が存在することが確認できる。
【実施例６】
【０２２０】
さらに、異常状態到達可能性検査部２３の他の例として、ループを考慮した幅優先探索アルゴリズムを用いて初期状態から異常状態へ到達する状態遷移列が存在するかどうかを検査するようにしてもよい。【０２２１】
例えば、図１１のシステム全体の複合状態遷移図に対し、“ｅ１＞ｅ２＞ｅ３＞ｉ１”という順序でループを考慮した幅優先探索アルゴリズムを用いる。【０２２２】
まず、システムは、イベントｅ１による状態遷移により、初期状態（ＳＡ，Ｓ１，ＳＣ）より状態（ＳＡ，Ｓ２，ＳＣ）へ遷移する。【０２２３】
また、システムは、内部処理ｉ１により初期状態のままに留まる。【０２２４】
続いて、システムは、イベントｅ１に続くイベントｅ１による状態遷移により、初期状態より状態（ＳＡ，Ｓ２，ＳＣ）へ遷移する。【０２２５】
また、システムは、イベントｅ１に続くイベントｅ２による状態遷移により、初期状態より状態（ＳＡ，Ｓ１，ＳＣ）へ遷移する。【０２２６】
さらに、システムは、イベントｅ１に続くイベントｅ３による状態遷移により、初期状態より状態（ＳＡ，ＥＢ，ＳＣ）へ遷移する。異常状態に到達したので、検索を終了する。【０２２７】
この検索の結果から、初期状態から異常状態へ到達する状態遷移列（ｅ１，ｅ３）が存在することが確認できる。
【実施例７】
【０２２８】
図３３に記載された状態遷移データ検証支援装置４５は、サブシステムの状態遷移表を状態遷移図へ変換する状態遷移表変換部４７を有し、状態遷移表変換部４７により変換して得られた状態遷移図に基づいて異常状態付状態遷移図を生成して検証を行うものである。【０２２９】
ここで、状態遷移表は、図３４にあるように、一方の軸に状態の組、他方の軸にイベントの組を取り、状態とイベントで定まるブロックに、その状態でそのイベントを受理したときに実施するアクション群を記述した表である。記述されたアクション群は、最後のみ状態変更アクションである。図３４において、状態１とイベントＡで定まるブロックにおける状態変更アクションは「ｇｏｔｏ状態２」であり、状態２とイベントＢで定まるブロックにおける状態変更アクションは「ｇｏｔｏ状態１」である。ある状態においてあるイベントが発生しないと設計者が判断した場合、そのブロックには×印などのマークをつけ、このブロックを異常ブロックと呼ぶ。図３４においては、状態１とイベントＢで定まるブロックと状態２とイベントＡで定まるブロックが異常ブロックである。【０２３０】
図３５は、外部環境とシステム間及びシステム間連携と各サブシステムの状態遷移表の例を示す図である。図３５の（Ａ）にあるように、外部環境（ユーザ）はイベント“ボタン１押下”、“ボタン２押下”を発火し、これらのイベント“ボタン１押下”、“ボタン２押下”をサブシステムＧへ送る。また、サブシステムＧはイベントｅ１とｅ２を発火し、これらのイベントをサブシステムＨへ送る。【０２３１】
図３５の（Ｂ）は、サブシステムＧの状態遷移表を表す図である。サブシステムＧの初期状態は状態ＳＧである。状態ＳＧにおいてイベント“ボタン１押下”を受理すると、まずイベントｅ１を発火し、次にイベントｅ２を発火し、その後状態ＳＧへ遷移する（遷移前状態が状態ＳＧなので状態は変わらない）。また、状態ＳＧにおいてイベント“ボタン２押下”を受理すると、まず内部処理を行い、次にイベントｅ２を発火し、その後状態ＳＧへ遷移する（現状態が状態ＳＧなので状態は変わらない）。【０２３２】
図３５の（Ｃ）は、サブシステムＨの状態遷移表を表す図である。サブシステムＧの初期状態は状態ＳＨ１である。状態ＳＨ１においてイベントｅ１を受理すると状態ＳＨ２へ移行する。状態ＳＨ２においてイベントｅ２を受理すると状態ＳＨ１へ移行する。また、状態ＳＨ１とイベントｅ２、状態ＳＨ２とイベントｅ１で定まるブロックは異常ブロックである。【０２３３】
図３６と図３７は、状態遷移表に状態遷移図で意味づけをする一方法を示すフロー図である。【０２３４】
まず、状態遷移表変換部４７は、状態遷移表を入力する（図３６のステップＳＴＴＣ１）。【０２３５】
続いて、状態遷移表変換部４７は、中身を空で状態遷移格納表を作成する（図３６のステップＳＴＴＣ２）。ここで、空とは何も追加されていないことをいう。【０２３６】
状態遷移表変換部４７は、Ｎ１９を状態の総数とし、Ｋ１９を０とする（図３６のステップＳＴＴＣ３）。ここで、状態遷移表の状態は、状態０，・・・，状態（Ｋ１９），・・・，状態（Ｎ１９−１）であると仮定する。【０２３７】
続いて、状態遷移表変換部４７は、Ｋ１９とＮ１９の値を比較して判断する（図３６のステップＳＴＴＣ４）。Ｋ１９の値がＮ１９の値よりも小さいならば図３６のステップＳＴＴＣ５の処理を行い、小さくないならば状態遷移格納表を状態遷移図の状態遷移格納ファイルとして出力して（図３６のステップＳＴＴＣ２１）図３６の処理を終了する。【０２３８】
図３６のステップＳＴＴＣ５において、状態遷移表変換部４７は、Ｎ２０をイベントの総数とし、Ｋ２０を０とする。【０２３９】
続いて、状態遷移表変換部４７は、Ｋ２０とＮ２０の値を比較して判断を行う（図３６のステップＳＴＴＣ６）。Ｋ２０の値がＮ２０の値よりも小さいならば図３６のステップＳＴＴＣ７の処理を行い、小さくないならばＲ（Ｋ１９）を状態（Ｋ１９）に対応する新しい状態とし、Ｋ１９の値を１増加して（図３６のステップＳＴＴＣ２０）図３６のステップＳＴＴＣ４の判断処理に戻る。【０２４０】
図３６のステップＳＴＴＣ７において、状態遷移表変換部４７は、Ｋ１９番目の状態とＫ２０番目のイベントで定まるブロックが異常ブロックかの判断を行う。異常ブロックであれば図３６のステップＳＴＴＣ８の処理を行い、異常ブロックでないならば図３７のステップＳＴＴＣ９の処理を行う。【０２４１】
図３６のステップＳＴＴＣ８において、状態遷移表変換部４７は、Ｋ２０を１増加して図３６のステップＳＴＴＣ６の判断処理に戻る。【０２４２】
図３７のステップＳＴＴＣ９において、状態遷移表変換部４７は、ＡＥを新しい状態とする。このＡＥはイベント受理後の状態を表す。【０２４３】
続いて、状態遷移表変換部４７は、Ｒ（Ｋ１９）を遷移前状態とし、Ｋ２０番目のイベントのイベント受理を状態遷移名とし、ＡＥを遷移後状態とする組を状態遷移格納表に追加する（図３７のステップＳＴＴＣ１０）。【０２４４】
続いて、状態遷移表変換部４７は、Ｎ２１を状態変更アクションを除くアクションの総数とし、Ｋ２１を０とする（図３７のステップＳＴＴＣ１１）。【０２４５】
続いて、状態遷移表変換部４７は、ＢＡをＡＥとする（図３７のステップＳＴＣＣ１２）。ＢＡは、アクション実行前の状態である。【０２４６】
続いて、状態遷移表変換部４７は、Ｋ２１とＮ２１の値を比較して判断を行う（図３７のステップＳＴＴＣ１３）。Ｋ２１の値がＮ２１の値よりも小さいならば図３７のステップＳＴＴＣ１４の処理を行い、小さくないならば図３７のステップＳＴＴＣ１８の処理を行う。【０２４７】
図３７のステップＳＴＴＣ１４において、状態遷移表変換部４７は、ＡＡを新しい状態とする。ＡＡは、アクション実行後の状態である。【０２４８】
続いて、状態遷移表変換部４７は、ＢＡを遷移前状態とし、Ｋ２１番目のアクションを状態遷移名とし、ＡＡを遷移後状態とする組を状態遷移格納表に追加して（図３６のステップＳＴＴＣ１５）、ＢＡをＡＡとし（図３６のステップＳＴＴＣ１６）、Ｋ２１の値を１増加して（図３６のステップＳＴＴＣ１７）図３６のステップＳＴＴＣ１３の判断処理に戻る。ＢＡは、アクション実行後の状態である。【０２４９】
図３７のステップＳＴＴＣ１８において、状態遷移表変換部４７は、ＡＡを状態変更アクション実行後の状態とする。ＡＡは、アクション実行後の状態である。続いて、ＢＡを遷移前状態とし、状態変更アクションを状態遷移名とし、ＡＡを遷移後状態とする組を状態遷移格納表に追加する（図３６のステップＳＴＴＣ１９）。そして、図３６のステップＳＴＴＣ８の処理に戻る。【０２５０】
図３６と図３７に示される方法により、図３５に示されるサブシステムの状態遷移表に対する処理は、以下のように行われる。【０２５１】
まず、状態遷移表の各状態ｎに対し、状態遷移図上にイベント群を受理可能な状態Ｒｎが割り当てられる。【０２５２】
続いて、状態ｎの列で異常ブロックにならない行のイベントｅｖｔに対し状態遷移図上に状態Ｕｅｖｔ０が割り当てられ、状態Ｒｎから状態Ｕｅｖｔ０への遷移としてｅｖｔのイベント受理が割り当てられる。【０２５３】
続いて、状態ｎとイベントｅｖｔで定まるブロックにおいて、状態変更アクション以外のアクション（イベント発火又は内部処理）に対し状態遷移図上に状態ＵｅｖｔＫ（Ｋは１から始まるブロック内のアクションの上からの位置）が割り当てられ、状態Ｕｅｖｔ（Ｋ−１）から状態ＵｅｖｔＫへの遷移としてブロック内の上からＫ番目のアクション（イベント発火又は内部処理）が割り当てられる。【０２５４】
最後に、状態変更アクションがＮ番目のアクションで状態ｍへ状態を変更する場合、状態Ｕｅｖｔ（Ｎ−１）から状態Ｒｍへの遷移としてこの状態変更アクション（内部処理）が割り当てられる。【０２５５】
サブシステムＧの場合、状態ＳＧに対応するイベント群を受理可能な状態は図３８の（Ａ）の状態Ｒ１である。図３５の（Ｂ）において状態ＳＧの列に異常ブロックはないので、イベント“ボタン１押下”、“ボタン２押下”で定まるブロックに対し上記処理を行うことになる。イベント“ボタン１押下”に対する状態Ｕｅｖｔ０，・・・，Ｕｅｖｔ（Ｎ−１）は図３８の（Ａ）の状態Ｕ１、Ｕ２、Ｕ３である。また、イベント“ボタン２押下”に対する状態Ｕｅｖｔ０，・・・，Ｕｅｖｔ（Ｎ−１）は図３８の状態Ｕ４、Ｕ５、Ｕ６である。【０２５６】
サブシステムＨの場合、状態ＳＨ１、ＳＨ２に対応するイベント群を受理可能な状態はそれぞれ図３８の（Ｂ）の状態Ｒ２、Ｒ３である。図３５の（Ｃ）において異常ブロックにならないブロックは、状態ＳＨ１の場合はイベントｅ１、状態ＳＨ２の場合はイベントｅ２で定まるブロックである。状態ＳＨ１とイベントｅ１で定まるブロックに対して上記処理を行うと、状態Ｕｅｖｔ０，・・・，Ｕｅｖｔ（Ｎ−１）は図３８の（Ｂ）の状態Ｕ７である。状態ＳＨ２とイベントｅ２で定まるブロックに対し上記処理を行うと、状態Ｕｅｖｔ０，・・・，Ｕｅｖｔ（Ｎ−１）は図３８の（Ｂ）の状態Ｕ８である。【０２５７】
変換したことで得られた状態遷移図上でシステム連携方法を議論すると、その一例として以下の二つが考えられる。一つ目は、サブシステムＧの状態Ｒ１はイベント群｛ボタン１押下，ボタン２押下｝の受理可能状態であり、サブシステムＨの状態Ｒ２、Ｒ３はイベント群｛ｅ１，ｅ２｝の受理可能状態であることである。二つ目は、同じ名前の非環境イベントの非環境イベント発火と非環境イベント受理とは同時に発生することである。【０２５８】
異常状態付状態遷移図生成部１３は、状態遷移表変換部４７により変換して生成された状態遷移図に基づいて異常状態付状態遷移図を生成する。異常状態付状態遷移図生成部１３により生成されたサブシステムＧとＨの異常状態付状態遷移図は、それぞれ図３９の（Ａ）と（Ｂ）となる。【０２５９】
複合状態遷移図生成部１７は、生成された異常状態付状態遷移図に基づいて複合状態遷移図を生成する。【０２６０】
サブシステムＧとＨの初期状態がそれぞれＲ１とＲ２であるため、システム全体の初期状態は（Ｒ１，Ｒ２）である（図４０では括弧は省略されている）。Ｒ１とＲ２のいずれかからの能動的状態遷移は、イベント“ボタン１押下”、“ボタン２押下”の環境イベント受理であり、受動的状態遷移はイベントｅ１の非環境イベント受理である。【０２６１】
システム連携方法では、同じ名前の非環境イベントの非環境イベント発火と非環境イベント受理とは同時に発生することにしているため、（Ｒ１，Ｒ２）からの状態遷移は“ボタン１押下”、“ボタン２押下”の環境イベント受理のみである。【０２６２】
（Ｒ１，Ｒ２）から“ボタン１押下”の環境イベント受理という状態遷移により、（Ｕ１，Ｒ２）に遷移する。Ｕ１とＲ２のいずれかからの能動的状態遷移はイベントｅ１の非環境イベント発火であり、受動的状態遷移はイベントｅ１の非環境イベント受理である。したがって、上記システム連携方法に基づき、（Ｕ１，Ｒ２）からの状態遷移はイベントｅ１の非環境イベント発火（非環境イベント受理）である。【０２６３】
同様にして図４０に示されるシステム全体の複合状態遷移図が得られる。【０２６４】
複合状態遷移図検査部１９は、複合状態遷移図生成部１７により生成された複合状態遷移図を検査する。また、表示部２１は、複合状態遷移図検査部１９の出力を表示する。【０２６５】
なお、瑣末遷移区別部２７は、入力となる重要な状態遷移の組として、使用者が興味のあるサブシステムの状態遷移表の横軸のイベント受理をとると、問題状態遷移列が、このサブシステム上のどのブロック上を移動するかがわかり、デバッグの際有効である。【０２６６】
さらに、状態遷移図の記述にＢＤＤ（Ｂｉｎａｒｙ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍ）というデータ構造を用い、異常状態到達可能性検査部２３に記号モデル検査技術を用いることも考えられる。
【実施例８】
【０２６７】
図４１は、図１の検証支援装置１の他の例を示す概略ブロック図である。図４１において、状態遷移図検証支援装置５１は、システムの異常状態への遷移の検証と到達可能性のない状態を検証する。【０２６８】
状態遷移図検証支援装置５１は、異常状態付状態遷移図生成部１３と到達可能状態検査部５３を備える。【０２６９】
異常状態付状態遷移図生成部１３は、サブシステムの状態遷移図とシステム連携方法に基づいて異常状態付状態遷移図を生成する。ここでは、図２９のフロー図による処理により異常状態付状態遷移図が生成されたとする。【０２７０】
前述のように、サブシステムＦ（図３０の（Ａ）参照）の状態遷移図に対する図２９のフロー図による処理により図３２の（Ｃ）の異常状態付状態遷移図が生成される。この異常状態付状態遷移図の状態遷移格納ファイルは図３２の（Ｂ）である。【０２７１】
到達可能状態検査部５３は、異常状態付状態遷移図生成部１３により生成されたサブシステムの異常状態付状態遷移図に基づいて、システムの異常状態への遷移の検証と到達可能性のない状態を検証する。【０２７２】
図４２と図４３は、到達可能状態検査部５３の動作を示すフロー図である。【０２７３】
まず、到達可能状態検査部５３は、サブシステムの異常状態付状態遷移図の状態遷移格納ファイルを入力する（図４２のステップＳＴＣＫ１）。【０２７４】
続いて、到達可能状態検査部５３は、状態遷移格納ファイルから、遷移前状態と遷移後状態のリストの組を記述した状態遷移記述表を作成する（図４２のステップＳＴＣＫ２）。ここで、状態遷移記述表は、図４４にあるように、状態遷移格納ファイルにおける遷移前状態と当該遷移前状態に対応する遷移後状態の集合との組で表されるものである。【０２７５】
続いて、到達可能状態検査部５３は、到達可能性状態集合をＳとし、Ｓ＝｛初期状態｝と初期化する（図４２のステップＳＴＣＫ３）。図３２の（Ｃ）の例においては、Ｓ＝｛ＳＦ１｝と初期化する。【０２７６】
続いて、到達可能状態検査部５３は、差分集合をｄＳとし、ｄＳ＝｛初期状態｝と初期化する（図４２のステップＳＴＣＫ４）。【０２７７】
続いて、到達可能状態検査部５３は、ｄＳに正常状態が含まれるかの判断を行う（図４３のステップＳＴＣＫ５）。ｄＳに正常状態が含まれるならば図４３のステップＳＴＣＫ６の処理を行い、含まれないならば図４３のステップＳＴＣＫ１２の処理を行う。【０２７８】
図４３のステップＳＴＣＫ６において、到達可能状態検査部５３は、Ｎ２３を状態遷移記述表の列数とし、Ｋ２３を０とし、ｄＳ’を０とする。【０２７９】
続いて、到達可能状態検査部５３は、Ｋ２３とＮ２３の値を比較して判断を行う（図４３のステップＳＴＣＫ７）。Ｋ２３の値がＮ２３の値よりも小さいならば図４３のステップＳＴＣＫ８の処理を行い、小さくないならば図４３のステップＳＴＣＫ１１の処理を行う。【０２８０】
図４３のステップＳＴＣＫ８において、到達可能状態検査部５３は、Ｋ２３番目の遷移前状態がｄＳに含まれるかの判断を行う。含まれるならば図４３のステップＳＴＣＫ９の処理を行い、含まれないならば図４３のステップＳＴＣＫ１０の処理を行う。【０２８１】
図４３のステップＳＴＣＫ９において、到達可能状態検査部５３は、ｄＳ’（Ｋ２３）をＫ２３番目の遷移後状態の集合とし、ｄＳ’とｄＳ’（Ｋ２３）の和集合を新たにｄＳ’とする。そして、図４３のステップＳＴＣＫ１０の処理を行う。【０２８２】
図４３のステップＳＴＣＫ１０において、到達可能状態検査部５３は、Ｋ２３の値を１増加して図４３のステップＳＴＣＫ７の判断処理に戻る。【０２８３】
図４３のステップＳＴＣＫ１１において、到達可能状態検査部５３は、集合ｄＳ’から集合Ｓに属する要素を除いたものをｄＳとし、ｄＳとＳの和集合を新たにＳとする。そして、図４３のステップＳＴＣＫ５の判断処理に戻る。【０２８４】
図４３のステップＳＴＣＫ１２において、到達可能状態検査部５３は、Ｓに異常状態が含まれるかの判断を行う。異常状態が含まれるならば異常状態に到達可能と出力し（図４３のステップＳＴＣＫ１３）、図４３のステップＳＴＣＫ１５の処理を行う。異常状態が含まれないならば異常状態に到達しないと出力し（図４３のステップＳＴＣＫ１４）、図４３のステップＳＴＣＫ１５の処理を行う。【０２８５】
図４３のステップＳＴＣＫ１５において、到達可能状態検査部５３は、正常状態の集合をＡＬＬとし、ＡＬＬから集合Ｓに属する要素を除いたものをＳ’とする。【０２８６】
続いて、到達可能状態検査部５３は、Ｓ’が空集合かの判断を行う（図４３のステップＳＴＣＫ１６）。空集合であるならば未到達状態が存在しないと出力して（図４３のステップＳＴＣＫ１７）図４３の処理を終了する。空集合でないならばＳ’を未到達状態として出力して（図４３のステップＳＴＣＫ１８）図４３の処理を終了する。【０２８７】
以上より、到達可能状態検査部５３は、異常状態に到達する可能性の検査と未到達状態の検出を行うことができる。【０２８８】
なお、到達可能状態検査部５３は、図４２と図４５のフロー図の処理を行うことにより、システムの異常状態到達可能性のみを検査することができる。図４５のフロー図は、図４３のフロー図におけるステップＳＴＣＫ１５〜ＳＴＣＫ１８の処理を除いたものである。【０２８９】
また、到達可能状態検査部５３は、図４２と図４６のフロー図の処理を行うことにより、未到達状態のみを検出することができる。図４６のフロー図は、図４３のフロー図におけるステップＳＴＣＫ１２〜ＳＴＣＫ１４の処理を除いたものである。【０２９０】
さらに、複合状態遷移図に対して同様の処理を行うことにより、システム全体の初期状態からの異常状態への到達可能性の検査や未到達状態の検出を行うことができる。
【図１】
2006109558.tif 000002
【図２】
2006109558.tif 000003
【図３】
2006109558.tif 000004
【図４】
2006109558.tif 000005
【図５】
2006109558.tif 000006
【図６】
2006109558.tif 000007
【図７】
2006109558.tif 000008
【図８】
2006109558.tif 000009
【図９】
2006109558.tif 000010
【図１０】
2006109558.tif 000011
【図１１】
2006109558.tif 000012
【図１２】
2006109558.tif 000013
【図１３】
2006109558.tif 000014
【図１４】
2006109558.tif 000015
【図１５】
2006109558.tif 000016
【図１６】
2006109558.tif 000017
【図１７】
2006109558.tif 000018
【図１８】
2006109558.tif 000019
【図１９】
2006109558.tif 000020
【図２０】
2006109558.tif 000021
【図２１】
2006109558.tif 000022
【図２２】
2006109558.tif 000023
【図２３】
2006109558.tif 000024
【図２４】
2006109558.tif 000025
【図２５】
2006109558.tif 000026
【図２６】
2006109558.tif 000027
【図２７】
2006109558.tif 000028
【図２８】
2006109558.tif 000029
【図２９】
2006109558.tif 000030
【図３０】
2006109558.tif 000031
【図３１】
2006109558.tif 000032
【図３２】
2006109558.tif 000033
【図３３】
2006109558.tif 000034
【図３４】
2006109558.tif 000035
【図３５】
2006109558.tif 000036
【図３６】
2006109558.tif 000037
【図３７】
2006109558.tif 000038
【図３８】
2006109558.tif 000039
【図３９】
2006109558.tif 000040
【図４０】
2006109558.tif 000041
【図４１】
2006109558.tif 000042
【図４２】
2006109558.tif 000043
【図４３】
2006109558.tif 000044
【図４４】
2006109558.tif 000045
【図４５】
2006109558.tif 000046
【図４６】
2006109558.tif 000047
【手続補正書】
【提出日】平成18年11月6日(2006.11.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】請求の範囲
【請求項１】  システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援装置であって、
前記状態遷移データに異常状態への状態遷移を特定可能なデータを自動的に追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成手段と、
前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査手段と、を備える検証支援装置。
【請求項２】  システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援装置であって、
前記状態遷移データにはシステム設計者により生じ得ないとされた状態遷移を特定可能なデータが含まれず又はシステム設計者により生じ得ないとされた状態遷移を特定可能なデータがシステム設計者により生じ得るとされた状態遷移を特定可能なデータに対して識別可能に含まれ、
前記関係データにはイベント群と前記イベント群の各イベントについて受理可能な状態の組合せを特定可能なデータが含まれ、
前記イベント群の各イベントについて前記状態遷移データに当該イベントを受理したことを遷移条件とし当該イベントを受理可能な状態を遷移前状態とする状態遷移がシステム設計者により生じ得ないとされている場合に、前記状態遷移データに対して当該イベントを受理したことを遷移条件とし当該イベントを受理可能な状態を遷移前状態とし異常状態を遷移後状態とするデータを自動的に追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成手段と、
前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査手段と、を備える検証支援装置。
【請求項３】  前記関係データには同時に遷移する状態遷移群を特定可能なデータが含まれており、
前記異常状態付状態遷移データ検査手段は、
前記システム設計者により生じ得ると判断された状態遷移を特定可能なデータ及び前記異常状態付状態遷移データ生成手段により追加された異常状態への状態遷移を特定可能なデータ並びに同時に遷移する状態遷移群を特定可能なデータに基づいてシステムの初期状態からの状態遷移により到達する可能性のある遷移前状態及び遷移後状態並びに成立する可能性のある遷移条件を特定可能な複合状態遷移データを生成する複合状態遷移データ生成手段と、
複合状態遷移データに基づいてシステムの初期状態からの状態の遷移により到達する可能性のある状態を検査する複合状態遷移データ検査手段を有する、請求項２記載の検証支援装置。
【請求項４】  前記複合状態遷移データ検査手段は前記到達する可能性のある状態に異常状態が含まれるか否かを判断する異常状態到達可能性検査手段を有する、請求項３記載の検証支援装置。
【請求項５】  システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援装置であって、
前記関係データには同時に遷移する状態遷移群を特定可能なデータが含まれており、
前記状態遷移データに異常状態への状態遷移を特定可能なデータを追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成手段と、
前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査手段と、
表示装置に対して情報を表示させる表示制御手段と、を備え、
前記異常状態付状態遷移データ検査手段は、
同時に遷移する状態遷移群を特定可能なデータと前記異常状態付状態遷移データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある遷移前状態及び遷移後状態並びに成立する可能性のある遷移条件を特定可能な複合状態遷移データを生成する複合状態遷移データ生成手段と、
複合状態遷移データに基づいてシステムの初期状態からの状態の遷移により到達する可能性のある状態を検査する複合状態遷移データ検査手段とを有し、
前記複合状態遷移データ検査手段は、前記到達する可能性のある状態に異常状態が含まれるか否かを判断する異常状態到達可能性検査手段を有し、
前記表示制御手段は、前記異常状態到達可能性検査手段により異常状態が含まれると判断された場合に表示装置に対して初期状態から異常状態への状態遷移のうち異常状態に近い状態遷移を示す情報を優先して表示させる、検証支援装置。
【請求項６】  前記表示制御手段は異常状態への状態遷移のうち重要状態遷移として指定された状態遷移とそれ以外の状態遷移とを区別する瑣末遷移区別手段を有し、表示装置に対して重要状態遷移として指定された状態遷移を優先して表示させる請求項５記載の検証支援装置。
【請求項７】  前記複合状態遷移データ検査手段は前記状態遷移データに到達可能性のない状態又は受理可能性のないイベントに関するデータが含まれているか否かの判断を行う受理可能イベント不受理検査手段を有する、請求項３又は４に記載の検証支援装置。
【請求項８】  前記サブシステムが取り得る状態と前記サブシステムにおいて生じ得るイベントの組合せに対してその状態においてそのイベントによる処理は存在しないこと又はその状態においてそのイベントが発生した場合に行われる処理を特定可能なイベント処理データに基いて前記状態遷移データを生成する状態遷移データ生成手段を備え、
前記異常状態付状態遷移データ生成手段は、前記状態遷移データ生成手段により生成された状態遷移データに基づいて異常状態付状態遷移データを生成する、請求項２、３、４及び７のいずれかに記載の検証支援装置。
【請求項９】  前記イベント処理データは状態遷移表に対応するデータであり、前記状態遷移データは状態遷移図に対応するデータである、請求項８記載の検証支援装置。
【請求項１０】  システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援方法であって、
異常状態付状態遷移データ生成手段が前記状態遷移データに異常状態への状態遷移を特定可能なデータを自動的に追加して異常状態付状態遷移データを生成するステップと、
異常状態付状態遷移データ検査手段が前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査するステップと、を含む検証支援方法。
【請求項１１】  請求項１０に記載の検証支援方法をコンピュータに実行させることが可能なプログラム。
【請求項１２】  請求項１１記載のプログラムをコンピュータが実行することが可能にて記録した記録媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
［０００７］
そこで、本発明の目的は、状態遷移データと関係データの検証を支援することに適合する検証支援装置、検証支援方法、その検証支援方法をコンピュータに実行させることが可能なプログラム、及び、そのプログラムを記録した記録媒体を提供することにある。
【課題を解決するための手段】
［０００８］
請求項１に係る発明は、システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援装置であって、前記状態遷移データに異常状態への状態遷移を特定可能なデータを自動的に追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成手段と、前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査手段と、を備えるものである。
［０００９］
なお、請求項１に係る発明において、異常状態付状態遷移データ検査手段が到達する可能性のある状態を検査し、さらに例えば異常状態への到達可能性を検査することにより、以下のことがいえる。
［００１０］
例えば状態遷移図の記述者は、通常、システム全体の動作を思い浮かべながら各サブシステムの状態遷移図を記述する。しかしながら、複雑なシステムの場合、サブシステムが多く存在しており、イベント発火の発生タイミングを完全に把握することは非常に困難である。すなわち、受理可能イベントの中には、サブシステムの組合せ方によっては絶対に受理しないものがある。例えば、システムがサブシステム１とサブシステム２との組合せでできており、サブシステム１の状態１の受理可能イベントがｅ１、ｅ２であり、また、サブシステム２ではｅ１のみが発火可能であるとする。この組合せでは、サブシステム１の状態１ではｅ２は絶対に受理しない受理可能イベントである。逆に、一見受理しなさそうではあるが受理してしまうものもある。メモリを削減するために前者を受理したときの処理を削減することはよく行われるが、後者を前者と間違えて処理を削減してしまうこと（後者のイベント、すなわち、想定外の受理可能イベントが来ること）がしばしば起こり得る。したがって、状態遷移図の記述者が受理可能イベントの
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
となり、例えば、想定外のイベントを受理してサブシステムが想定外の動作をする可能性の検証をすることが可能となる。
［００１３］
さらに、請求項１に係る発明において、異常状態付状態遷移データ検査手段が到達する可能性のある状態を検査し、さらに例えば異常状態付状態遷移データ検査手段がシステムの初期状態からの状態遷移により到達する可能性のある遷移前状態及び遷移後状態並びに成立する可能性のある遷移条件を検査するようにしてもよい。
［００１４］
さらに、請求項１に係る発明において、異常状態付状態遷移データ検査手段が到達する可能性のある状態を検査し、さらに例えば異常状態付状態遷移データ検査手段がシステムの初期状態からの状態遷移により到達する可能性のない状態又は成立する可能性のない遷移条件を検査することにより、以下のことがいえる。
［００１５］
複数のサブシステムが組み合わされてシステムが作成されるとき、あるサブシステムのある状態において、例えばある受理可能イベントを受理しないことがある。受理可能イベントの中には、サブシステムの組合せ方によっては、絶対に受理しないものがある。例えば、システムがサブシステム１とサブシステム２との組合せでできており、サブシステム１の状態１の受理可能イベントがｅ１、ｅ２であり、また、サブシステム２ではｅ１のみが発火可能であるとする。この組合せでは、サブシステム１の状態１ではｅ２は絶対に受理しない受理可能イベントである。このとき、この状態におけるその受理可能イベントの処理は無駄になり、この処理を削除することでシステムのメモリ量を削減することが可能になる。同様に、初期状態からの状態遷移により到達する可能性のない状態が存在することもある。
［００１６］
一方、請求項１に係る発明であって異常状態付状態遷移データ検査手段が到達する可能性のある状態を検査し、さらに例えば異常状態付状態遷移データ検査手段がシステムの初期状態からの状態遷移により到達する可能性のない状態又は成立する可能性のない遷移条件を検査することにより、例えば、到達可能性のない状態や受理可能性のないイベントの存在を検証することが可能となる。
［００１７］
請求項２に係る発明は、システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援装置であって、前記状態遷移
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
データにはシステム設計者により生じ得ないとされた状態遷移を特定可能なデータが含まれず又はシステム設計者により生じ得ないとされた状態遷移を特定可能なデータがシステム設計者により生じ得るとされた状態遷移を特定可能なデータに対して識別可能に含まれ、前記関係データにはイベント群と前記イベント群の各イベントについて受理可能な状態の組合せを特定可能なデータが含まれ、前記イベント群の各イベントについて前記状態遷移データに当該イベントを受理したことを遷移条件とし当該イベントを受理可能な状態を遷移前状態とする状態遷移がシステム設計者により生じ得ないとされている場合に、前記状態遷移データに対して当該イベントを受理したことを遷移条件とし当該イベントを受理可能な状態を遷移前状態とし異常状態を遷移後状態とするデータを自動的に追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成手段と、前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査手段と、を備える。
［００１８］
請求項３に係る発明は、請求項２記載の検証支援装置であって、前記関係データには同時に遷移する状態遷移群を特定可能なデータが含まれており、前記異常状態付状態遷移データ検査手段が、前記システム設計者により生じ得ると判断された状態遷移を特定可能なデータ及び前記異常状態付状態遷移データ生成手段により追加された異常状態への状態遷移を特定可能なデータ並びに同時に遷移する状態遷移群を特定可能なデータに基づいてシステムの初期状態からの状態遷移により到達する可能性のある遷移前状態及び遷移後状態並びに成立する可能性のある遷移条件を特定可能な複合状態遷移データを生成する複合状態遷移データ生成手段と、複合状態遷移データに基づいて、システムの初期状態からの状態の遷移により到達する可能性のある状態を検査する複合状態遷移データ検査手段を有する。
［００１９］
請求項４に係る発明は、請求項３記載の検証支援装置であって、前記複合状態遷移データ検査手段が前記到達する可能性のある状態に異常状態が含まれるか否かを判断する異常状態到達可能性検査手段を有するものである。
［００２０］
請求項４に係る発明により、異常状態への到達可能性を検査することによって、例えば、状態遷移図などの記述者が受理可能イベントの受理時の処理を記述し忘れていないかの検証をすることが可能となる。
［００２１］
請求項５に係る発明は、システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援装置であって、前記関係データには同時に遷移する状態遷移群を特定可能なデータが含まれており、前記状態遷移データに異常状態への状態遷移を特定可能なデータを追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成手段と、前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査手段と、表示装置に対して情報を表示させる表示制御手段と、を備え、前記異常状態付状態遷移データ検査手段は、同時に遷移する状態遷移群を特定可能なデータと前記異常状態付状態遷移データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある遷移前状態及び遷移後状態並びに成立する可能性のある遷移条件を特定可能な複合状態遷移データを生成する複合状態遷移データ生成手段と、複合状態遷移データに基づいてシステムの初期状態からの状態の遷移により到達する可能性のある状態を検査する複合状態遷移データ検査手段とを有し、前記複合状態遷移データ検査手段は、前記到達する可能性のある状態に異常状態が含まれるか否かを判断する異常状態到達可能性検査手段を有し、前記表示制御手段は、前記異常状態到達可能性検査手段により異常状態が含まれると判断された場合に表示装置に対して初期状態から異常状態への状態遷移のうち異常状態に近い状態遷移を示す情報を優先して表示させるものである。
［００２２］
請求項６に係る発明は、請求項５記載の検証支援装置であって、前記表示制御手段が異常状態への状態遷移のうち重要状態遷移として指定された状態遷移とそれ以外の状態遷移とを区別する瑣末遷移区別手段を有し、表示装置に対して重要状態遷移として指定された状態遷移を優先して表示させるものである。
［００２３］
この構成により、例えば前記異常状態到達可能性検査手段は初期状態からの状態遷移により異常状態に到達する可能性がある場合に初期状態から異常状態に到達する状態遷移列である問題状態遷移列を生成し、前記瑣末遷移区別手段は前記問
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
題状態遷移列のうち重要状態遷移として指定される状態遷移群に含まれるものを重要状態遷移とし、含まれないものを瑣末状態遷移とし、前記表示手段は前記問題状態遷移列を異常状態への状態遷移から順番に、重要状態遷移と瑣末状態遷移とを区別しながら表示する。例えば、重要状態遷移は黒色で表示し、瑣末状態遷移は黄色で表示する。したがって、使用者の関心のない状態遷移群に関するものを区別し、かつ、多くの場合に使用者が問題点を探す異常状態の近くから状態遷移列を表示することにより問題点が発見されやすくなる。なお、表示手段は、瑣末状態遷移を表示せずに重要状態遷移のみを表示してもよい。
［００２４］
請求項７に係る発明は、請求項３又は４に記載の検証支援装置であって、前記複合状態遷移データ検査手段が前記状態遷移データに到達可能性のない状態又は受理可能性のないイベントに関するデータが含まれているか否かの判断を行う受理可能イベント不受理検査手段を有するものである。
［００２５］
請求項７に係る発明によれば、例えば、前述のように、到達可能性のない状態や受理可能性のないイベントの存在を検証することが可能となる。
［００２６］
さらに、請求項１から７のいずれかに記載の発明であって、例えば、状態遷移データは状態遷移図でもよい。また、状態遷移データは、ステートチャートやクリプキ構造でもよい。
［００２７］
請求項８に係る発明は、請求項２、３、４及び７のいずれかに記載の検証支援装置であって、前記サブシステムが取り得る状態と前記サブシステムにおいて生じ得るイベントの組合せに対してその状態においてそのイベントによる処理は存在しないこと又はその状態においてそのイベントが発生した場合に行われる処理を特定可能なイベント処理データに基いて前記状態遷移データを生成する状態遷移データ生成手段を備え、前記異常状態付状態遷移データ生成手段は、前記状態遷移データ生成手段により生成された状態遷移データに基づいて異常状態付状態遷移データを生成するものである。
［００２８］
請求項９に係る発明は、請求項８記載の検証支援装置であって、前記イベント処理データが状態遷移表に対応するデータであり、前記状態遷移データが状態遷移図に対応するデータである。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
［００２９］
請求項８及び９に係る発明によれば、例えば、検証支援装置の利用者が、状態遷移表などにより、単にサブシステムが取り得る状態において発生可能性のあると考えるイベントに対する処理だけでなく発生可能性のないと考えるイベントについても指示することにより、サブシステムの状態遷移について利用者自身が人手で検証することが可能となり、さらに、検証支援装置が状態遷移図などを生成して検証を行うことにより、状態遷移表に基づいて利用者自身が人手で検証を行うことと比較して工数を削減し、正確さを向上させることが出来る。
［００３０］
請求項１０に係る発明は、システムを構成する複数のサブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援方法であって、異常状態付状態遷移データ生成手段が前記状態遷移データに異常状態への状態遷移を特定可能なデータを自動的に追加して異常状態付状態遷移データを生成するステップと、異常状態付状態遷移データ検査手段が前記異常状態付状態遷移データと前記関係データに基づいてシステムの初期状態からの状態遷移により到達する可能性のある状態を検査するステップと、を含むものである。
［００３１］
請求項１１に係る発明は、請求項１０に記載の検証支援方法をコンピュータに実行させることが可能なプログラムである。
［００３２］
請求項１２に係る発明は、請求項１１記載のプログラムをコンピュータが実行することが可能にて記録した記録媒体である。
［００３３］
なお、他の検証支援装置として、サブシステムの遷移前状態、遷移後状態及び遷移条件を特定可能な状態遷移データ並びにサブシステム間の関係を特定可能な関係データの検証を支援する検証支援装置であって、前記状態遷移データと前記関係データに基づいて前記状態遷移データに異常状態への状態遷移を特定可能なデータを追加して異常状態付状態遷移データを生成する異常状態付状態遷移データ生成手段と、前記異常状態付状態遷移データに基づいてサブシステムの初期状態からの状態遷移により到達する可能性のある状態を検査する異常状態付状態遷移データ検査手段と、を備えるものであってもよい。
【発明の効果】
【国際調査報告】
2006109558.tif 000048
2006109558.tif 000049
2006109558.tif 000050
2006109558.tif 000051