(57)【要約】【課題】ソフトウェアの設計者が検討していない状態遷移を検出する状態遷移検証装置を得ること。【解決手段】本発明は、仕様情報ファイル５を入力とし、仕様情報ファイル５に記載されたすべての状態について状態遷移の接続関係を抽出し、得られた接続関係を状態情報ファイル６として出力する仕様情報解釈部２と、状態情報ファイル６の内容と過去に発生した障害である意図しない状態遷移を示す障害情報データベース４の内容とを比較し、設計者が未検討の状態遷移を検出する類似状態検索部３と、を備える。【選択図】        図３
2010003084.tif 000002
【特許請求の範囲】
【請求項１】
設計者が検討した状態遷移である検証対象ソフトウェアの仕様情報を入力とし、当該仕様情報に記載されたすべての状態について、状態遷移の接続関係を抽出し、得られた接続関係を状態情報とする仕様情報解釈手段と、
前記状態情報と、過去に発生した障害である意図しない状態遷移を示す障害情報とを比較し、設計者が未検討の状態遷移を検出する類似状態検索手段と、
を備えることを特徴とする状態遷移検証装置。
【請求項２】
前記仕様情報解釈手段は、
前記仕様情報に記載されたすべての状態について、終点で接続しているイベントとそのイベントに始点で接続している状態との第１の接続関係、および始点で接続しているイベントとそのイベントに終点で接続している状態との第２の接続関係、をそれぞれ抽出し、得られた各接続関係を前記状態情報とすることを特徴とする請求項１に記載の状態遷移検証装置。
【請求項３】
前記類似状態検索手段は、
前記障害情報に記載された障害発生直前の状態に終点で接続しているイベントとそのイベントに始点で接続している状態との接続関係を第３の接続関係とし、
前記障害情報に記載された障害発生直前の状態に始点で接続しているイベントとそのイベントに終点で接続している状態との接続関係を第４の接続関係とし、
前記状態情報として得られたすべての第１の接続関係と、すべての第３の接続関係との比較による類似判断により、当該第１の接続関係の中から前記意図しない状態遷移に移行する可能性のある第１の接続関係を特定し、
前記特定された第１の接続関係に対応する第２の接続関係のイベントと、前記特定された第１の接続関係と類似する第３の接続関係に対応する第４の接続関係のイベントとの比較により、当該第４の接続関係のイベントが未検討イベントかどうかを判断し、
未検討イベントであると判断した場合、前記第４の接続関係を、前記設計者が未検討の状態遷移とすることを特徴とする請求項２に記載の状態遷移検証装置。
【請求項４】
設計者が検討した状態遷移である検証対象ソフトウェアの仕様情報を入力とし、当該仕様情報に記載されたすべての状態について、状態遷移の接続関係を抽出し、得られた接続関係を状態情報とする仕様情報解釈ステップと、
前記状態情報と、過去に発生した障害である意図しない状態遷移を示す障害情報とを比較し、設計者が未検討の状態遷移を検出する状態遷移検出ステップと、
を含むことを特徴とする状態遷移検証方法。
【請求項５】
前記仕様情報解釈ステップは、
前記仕様情報に記載された特定の状態に終点で接続しているイベントとそのイベントに始点で接続している状態との第１の接続関係を抽出する第１の接続関係抽出ステップと、
前記特定の状態に始点で接続しているイベントとそのイベントに終点で接続している状態との第２の接続関係を抽出する第２の接続関係抽出ステップと、
を含み、
前記特定の状態を変更しながら前記仕様情報に記載されたすべての状態について、前記第１の接続関係抽出ステップおよび前記第２の接続関係抽出ステップを実行し、得られたすべての接続関係を前記状態情報とすることを特徴とする請求項４に記載の状態遷移検証方法。
【請求項６】
前記障害情報に記載された障害発生直前の状態に終点で接続しているイベントとそのイベントに始点で接続している状態との接続関係を第３の接続関係とし、
前記障害情報に記載された障害発生直前の状態に始点で接続しているイベントとそのイベントに終点で接続している状態との接続関係を第４の接続関係とし、
前記状態遷移検出ステップは、
前記状態情報として得られたすべての第１の接続関係と、すべての第３の接続関係との比較による類似判断により、当該第１の接続関係の中から前記意図しない状態遷移に移行する可能性のある第１の接続関係を特定する特定ステップと、
前記特定された第１の接続関係に対応する第２の接続関係のイベントと、前記特定された第１の接続関係と類似する第３の接続関係に対応する第４の接続関係のイベントとの比較により、当該第４の接続関係のイベントが未検討イベントかどうかを判断する判断ステップと、
前記判断ステップにより未検討イベントであると判断された場合に、前記第４の接続関係を、前記設計者が未検討の状態遷移であると決定する決定ステップと、
を含むことを特徴とする請求項５に記載の状態遷移検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの設計者が検討していない状態遷移を指摘する状態遷移検証装置に関する。
【背景技術】
【０００２】
ソフトウェアの不具合を検証する従来技術として、設計者がシステムに状態遷移図（または状態遷移表）で表した仕様を入力すると、システムがテストケースを自動生成して検証する技術が下記特許文献１〜４に開示されている。また、ソフトウェアの開発支援をする従来技術として、設計者がシステムに設計仕様の特徴を入力すると、システムが非正常系仕様を折り込んだ仕様を自動作成し提示する技術が下記特許文献５に開示されている。
【０００３】
【特許文献１】特開２０００−５７０１４号公報
【特許文献２】特開平１１−３０６０４６号公報
【特許文献３】特開平９−２２３０４０号公報
【特許文献４】特開平６−１６１７５９号公報
【特許文献５】特開２００６−８５６６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の技術（特許文献１〜４）で開示された検証システムは、状態遷移図または状態遷移表で定義された状態遷移の不具合を抽出することで不具合を検出している。そのため、状態遷移図または状態遷移表に定義していない状態遷移による不具合は検出できない、という問題があった。
【０００５】
また、上記従来の技術（特許文献５）によれば、設計者は、非正常系仕様のモデルに従い、別途、情報伝達過程に関するインスタンス図等を作成する必要がある。そのため、本来の設計とは別の作業を必要とする、という問題があった。
【０００６】
本発明は、上記に鑑みてなされたものであって、設計者が作成した状態遷移図を用いて、設計者が検討していない状態遷移を指摘する状態遷移検証装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明にかかる状態遷移検証装置は、設計者が検討した状態遷移である検証対象ソフトウェアの仕様情報を入力とし、当該仕様情報に記載されたすべての状態について、状態遷移の接続関係を抽出し、得られた接続関係を状態情報とする仕様情報解釈手段と、状態情報と、過去に発生した障害である意図しない状態遷移を示す障害情報とを比較し、設計者が未検討の状態遷移を検出する類似状態検索手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
この発明によれば、設計者が作成した状態遷移図を用いて、設計者が検討していない状態遷移を指摘することができる、という効果を奏する。
【発明を実施するための最良の形態】
【０００９】
以下に、本発明にかかる状態遷移検証装置および状態遷移検証方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１０】
実施の形態．
本実施の形態は、ＵＭＬ（Unified  Modeling  Language）モデルにおける状態遷移図を対象とする。具体的に、例をあげて説明する。図１および図２は状態遷移の一例を示す図である。図１は、状態１１と、イベント１２および状態１３から構成される。状態１１は、イベント１２によって状態１３に遷移する。図２は、図１に、さらにイベント１４と状態１５を加えたものである。状態１１は、図１の場合に加え、イベント１４によって状態１５に遷移する。たとえば、図１のように、設計者が、状態１１がイベント１２によって状態１３へ遷移する遷移状態のみを検討していた場合を想定する。しかしながら、図２に示すように、実際には、状態１１はイベント１４によって状態１５に遷移する場合もある。本実施の形態では、設計者が検討していない状態遷移を検出する。
【００１１】
図３は、本実施の形態の状態遷移検証装置の構成例を示す図である。図３の状態遷移検証装置１は、仕様情報解釈部２、類似状態検索部３および障害情報データベース（ＤＢ）４を備える。仕様情報解釈部２は、仕様情報ファイル５を受け取ると、仕様情報ファイル５に記載されている状態の一つに着目し、後述の処理により状態情報ファイル６を出力する。類似状態検索部３は、状態情報ファイル６に記載されている状態遷移（状態およびイベント）のデータを、障害情報ＤＢ４が格納している状態遷移（状態およびイベント）のデータと比較し、状態情報ファイル６に未定義の状態遷移があった場合、その状態遷移を未定義状態遷移情報ファイル７として出力する。
【００１２】
障害情報ＤＢ４は、過去に発生した障害である意図しない状態遷移を示す障害情報を格納したデータベースである。具体的には、障害の状態を含んだ部分的な状態遷移の情報が格納される。図４は、障害の状態を含んだ部分的な状態遷移の情報の一例を示す図である。図４では、障害発生前の状態を状態４２とし、状態４２で起こったイベントをイベント４３とし、障害となっている状態を状態４４とする。また、状態４２の遷移前の状態を状態４０とし、状態４０で起こったイベントをイベント４１とする。
【００１３】
図５は、障害情報ＤＢ４に格納されている障害情報の構成例を示す図である。障害情報は、属性名と、状態（図４の状態４２）の属性と、終点で接続しているイベント（図４のイベント４１）の属性と、終点で接続しているイベントに始点で接続している状態（図４の状態４０）の属性と、始点で接続しているイベント（図４のイベント４３）の属性と、始点で接続しているイベントに終点で接続している状態（図４の状態４４）の属性によって構成されている。属性名としては、たとえば、「状態名・イベント名」や「状態・イベントの種別」等の項目がある。状態の属性は、たとえば、「Ｒ開始可能」や「初期」等であることを表している。終点で接続しているイベントの属性は、たとえば、「Ｊ要求」や「開始」等であることを表している。終点で接続しているイベントに始点で接続している状態の属性は、たとえば、「Ｊ要求」や「開始」等であることを表している。始点で接続しているイベントの属性は、たとえば、「Ｊ要求」や「開始」等であることを表している。始点で接続しているイベントに終点で接続している状態の属性は、たとえば、「Ａアイドル」や「終了」等であることを表している。
【００１４】
つづいて、設計者が仕様情報として状態遷移検証装置に入力する仕様情報ファイル５について説明する。仕様情報ファイル５は、検証する製品の状態遷移図による仕様情報である。図６は、仕様情報の一例を示す図である。図６の状態遷移図は、状態２１と、状態２２と、状態２３と、イベント２４と、イベント２５と、イベント２６と、イベント２７と、イベント２８と、イベント２９と、イベント３０から構成されている。たとえば、状態２１はイベント２５によって状態２２へ遷移し、状態２２はイベント２９によって状態２３へ遷移すること、等が示されている。
【００１５】
また、図７および図８は、仕様情報ファイル５の仕様情報の構成例を示す図であり、詳細には、要素（状態またはイベント）の種類等を表している。図７は、仕様情報に含まれる状態の種類を表したものであり、ここでは、図６の状態遷移図における状態の種類が示されている。具体的には、図６の状態遷移図に、状態２１、状態２２および状態２３が存在していることが示されている。図８は、仕様情報に含まれるイベントの種類およびイベントに接続している状態を表したものであり、ここでは、図６の状態遷移図におけるイベントの種類と、イベントと状態の接続関係が示されている。たとえば、イベント２５は、イベントの終点で状態２２と接続し、イベントの始点で状態２１と接続している。なお、状態およびイベントの要素ＩＤとは、各要素に付した任意の符号であり、ここでは、符号と同一とする。
【００１６】
また、図７および図８に示す要素のそれぞれに属性情報を付加したものが、個々の要素の仕様情報となる。図９が、ある状態における仕様情報の構成例を示す図であり、図１０が、あるイベントにおける仕様情報の構成例を示す図である。図９の仕様情報は、状態の要素ＩＤと状態の属性から構成される。たとえば、状態の要素ＩＤ２１の状態では、状態名が「Ａアイドル」、状態の種別が「初期」等であることが示されている。図１０の仕様情報は、イベントの要素ＩＤと、終点の状態の要素ＩＤと、始点の状態の要素ＩＤと、イベントの属性から構成される。たとえば、イベントの要素ＩＤ２９のイベントでは、終点で状態の要素ＩＤ２３の状態と接続し、始点で状態の要素ＩＤ２２の状態と接続している。イベントの属性としては、イベント名が［Ｆ要求」、イベントの種別が「開始」等であることが示されている。
【００１７】
また、図１１は、仕様情報に入力する属性の例を示す図である。属性名には属性の項目が示され、属性の例には各項目に属性として入力する具体的な内容が示されている。たとえば、属性名が状態名の項目には、「Ａアイドル」、「Ｂ開始可能」等の属性を入力する。状態遷移検証装置１の類似状態検索部３は、この各要素の属性情報と、障害情報ＤＢ４が格納している各要素の属性情報を比較することで、未定義状態遷移を抽出することができる。なお、仕様情報ファイル５のデータには、状態遷移図の各要素の図形としてのデータ（たとえば図６に示す状態遷移図）は含まない。
【００１８】
つづいて、本実施の形態の状態遷移検証装置の動作を図面に基づいて説明する。図３において、状態遷移検証装置１に仕様情報ファイル５を入力すると、仕様情報解釈部２が状態情報ファイル６を出力するための動作を行う。ここで、仕様情報解釈部２の動作を説明する。図１２は、仕様情報解釈部２の動作を示すフローチャートである。
【００１９】
最初に、状態遷移検証装置１に状態遷移図による仕様情報ファイル５を入力すると（ステップＳ１）、仕様情報解釈部２は、特定の状態を基準にして仕様情報ファイル５に記載されているイベントとの接続関係を状態遷移として抽出するため、仕様情報に含まれる状態の１つについて着目する（ステップＳ２）。つぎに、仕様情報解釈部２は、状態に接続するイベントをカウントするための「ｃｎｔ１」および「ｃｎｔ２」を「０」にする（ステップＳ３）。ここで「ｃｎｔ１」は、着目した状態に終点で接続しているイベントの個数を表し、「ｃｎｔ２」は、着目した状態に始点で接続しているイベントの個数を表す。
【００２０】
つぎに、仕様情報解釈部２は、ステップＳ２で着目した状態と、仕様情報ファイル５に記載されているイベントとの接続関係を状態遷移として抽出するため、仕様情報に含まれるイベントの１つについて着目する（ステップＳ４）。着目した状態と、着目したイベントの終点で接続している状態が同一である場合（ステップＳ５：Ｙｅｓ）、仕様情報解釈部２は、「ｃｎｔ１」に１を追加（ステップＳ６）するとともに、このときのイベントの要素ＩＤを記録し（ステップＳ７）、また、このイベントに始点で接続している状態の要素ＩＤを記録する（ステップＳ８）。
【００２１】
上記処理（ステップＳ８）後、または、着目した状態と着目したイベントの終点で接続している状態が異なる場合（ステップＳ５：Ｎｏ）、仕様情報解釈部２は、ステップＳ９へ進む。つぎに、着目した状態と、着目したイベントの始点で接続している状態が同一である場合（ステップＳ９：Ｙｅｓ）、仕様情報解釈部２は、「ｃｎｔ２」に１を追加（ステップＳ１０）するとともに、このときのイベントの要素ＩＤを記録し（ステップＳ１１）、また、このイベントに終点で接続している状態の要素ＩＤを記録する（ステップＳ１２）。
【００２２】
上記処理（ステップＳ１２）後、または、着目した状態と着目したイベントの始点で接続している状態が異なる場合（ステップＳ９：Ｎｏ）、仕様情報解釈部２は、ステップＳ１３へ進む。ここで、仕様情報解釈部２は、ステップＳ２で着目した状態の１つと仕様情報ファイル５に記載されている全てのイベントについて、確認が終了していない場合（ステップＳ１３：Ｎｏ）、ステップＳ４へ戻り別のイベントに着目して同様の確認を繰り返す（ステップＳ４〜Ｓ１２）。
【００２３】
全てのイベントについて確認が終了した場合（ステップＳ１３：Ｙｅｓ）、仕様情報解釈部２は、「ｃｎｔ１」の数を、着目した状態に終点で接続しているイベントの個数として、「ｃｎｔ２」の数を、着目した状態に始点で接続しているイベントの個数として、それぞれ記録する（ステップＳ１４）。
【００２４】
ここで、仕様情報解釈部２は、仕様情報に記載されている全ての状態について確認が終了していない場合（ステップＳ１５：Ｎｏ）、ステップＳ２へ戻り別の状態に着目して同様の処理を繰り返し実行する（ステップＳ２〜Ｓ１４）。全ての状態について処理が終了すると（ステップＳ１５：Ｙｅｓ）、仕様情報解釈部２は、記録した情報を状態情報ファイル６として出力（ステップＳ１６）し、上記の動作を終了する。
【００２５】
状態情報ファイル６は、ある状態を基準にして部分的な状態遷移を表すものである。図１３は、状態情報ファイル６に記載された各状態やイベントの関係を状態遷移図で表した図である。たとえば、状態３３を基準とした場合に、状態３３に終点で接続しているイベントがイベント３２，イベント３７であり、それらのイベントと始点で接続している状態が状態３１，状態３６である。また、状態３３に始点で接続しているイベントがイベント３４，イベント３８であり、それらのイベントと終点で接続している状態が状態３５，状態３９である。
【００２６】
また、図１４および図１５は、状態情報ファイル６の状態情報の構成例を示す図である。図１４は、状態の要素ＩＤと、始点で接続しているイベントの個数と、終点で接続しているイベントの要素ＩＤと、イベントの始点で接続している状態の要素ＩＤから構成される。特定の要素ＩＤで示される状態（例：上記状態３３）に終点で接続しているイベント（例：上記イベント３２、イベント３７）、およびそのイベントに始点で接続している状態（例：上記状態３１、状態３６）の情報が示されている。また、上記状態に終点で接続しているイベントの個数が示されている。同様に、図１５は、状態の要素ＩＤと、始点で接続しているイベントの個数と、始点で接続しているイベントの要素ＩＤと、イベントの終点で接続している状態の要素ＩＤから構成される。特定の要素ＩＤで示される状態（例：上記状態３３）に始点で接続しているイベント（例：上記イベント３４、イベント３８）、およびそのイベントに終点で接続している状態（例：上記状態３５、状態３９）の情報が示されている。また、上記状態に始点で接続しているイベントの個数が示されている。
【００２７】
つぎに、状態遷移検証装置１では、仕様情報解釈部２が状態情報ファイル６を出力すると、その状態情報ファイル６を類似状態検索部３に入力する。類似状態検索部３で、状態情報ファイル６に記載されている状態遷移の情報と、状態遷移検証装置１に備える障害情報ＤＢ４が格納している各状態遷移の情報とを比較する。ここで、類似状態検索部３の動作を説明する。図１６は、類似状態検索部３の動作を示すフローチャートである。
【００２８】
最初に、状態情報ファイル６を受け取ると（ステップＳ２１）、類似状態検索部３は、まず、状態情報ファイル６に記載されている状態の１つ（以降（Ａ）とする）について着目する（ステップＳ２２）。つぎに、類似状態検索部３は、着目した状態に終点で接続しているイベントと、このイベントに始点で接続している状態の状態遷移の１つ（以降（Ｂ）とする）について着目する（ステップＳ２３）。具体的には、図１３で示す状態３３とイベント３２と状態３１（または状態３３とイベント３７と状態３６）の部分の状態遷移を表す。また、この状態遷移は、図１４に示す状態情報ファイル６から、状態とイベントを読み取ることができる。
【００２９】
つぎに、類似状態検索部３は、障害情報ＤＢ４が格納している状態の１つ（以降（Ｃ）とする）について着目し（ステップＳ２４）、さらに、着目した状態に終点で接続しているイベントと、このイベントに始点で接続している状態の状態遷移の１つ（以降（Ｄ）とする）について着目する（ステップＳ２５）。具体的には、図４で示す状態４２とイベント４１と状態４０の部分の状態遷移を表す。
【００３０】
そして、類似状態検索部３は、（Ｂ）と（Ｄ）が類似しているか否かを判断するため、状態情報ファイル６の各状態遷移と、障害情報ＤＢ４が格納している各障害の状態遷移の類似度を計算する（ステップＳ２６）。たとえば、類似度は、各状態、各イベントの属性値を比較し、属性値が一致する場合は類似度の数値として１を加算する。具体的には、図１３で示す状態情報ファイル６の状態遷移と、図４で示す障害情報ＤＢ４が格納している状態遷移において、状態３３と状態４２、イベント３２とイベント４１、および状態３１と状態４０のそれぞれの属性値（または、状態３３と状態４２、イベント３７とイベント４１、および状態３６と状態４０のそれぞれの属性値）を比較する。
【００３１】
状態遷移が類似しているか否かを判断するため、予め既定したしきい値を用いる。ここではしきい値（Ｘ）とする。類似度の値がしきい値（Ｘ）未満の場合、類似状態検索部３は、状態情報ファイル６で着目した状態遷移（Ｂ）と、障害情報ＤＢ４が格納している状態遷移（Ｄ）との間で類似していないと判断する。すなわち、状態遷移（Ｂ）からは、障害情報ＤＢ４が格納している障害は起こらないことを表している。この場合、ステップＳ３６へ進む（ステップＳ２７：Ｎｏ）。
【００３２】
一方、類似度の値がしきい値（Ｘ）以上の場合、類似状態検索部３は、状態情報ファイル６に記載されている状態遷移（Ｂ）と、障害情報ＤＢ４が格納している状態遷移（Ｄ）が類似していると判断して（ステップＳ２７：Ｙｅｓ）、つぎに、状態遷移（Ｂ）の状態（Ａ）に始点で接続しているイベントの１つ（以降（Ｅ）とする）について着目する（ステップＳ２８）。具体的には、図１３で示すイベント３４（またはイベント３８）の部分のイベントを表す。さらに、類似状態検索部３は、状態遷移（Ｄ）の状態（Ｃ）に始点で接続しているイベントの１つ（以降（Ｆ）とする）について着目する（ステップＳ２９）。具体的には、図４で示すイベント４３の部分のイベントを表す。
【００３３】
そして、類似状態検索部３は、（Ｅ）と（Ｆ）が類似しているか否かを判断するため、状態情報ファイル６のイベントと、障害情報ＤＢ４が格納しているイベントとの類似度を計算する（ステップＳ３０）。たとえば、類似度は、各イベントの属性値を比較し、属性値が一致する場合は類似度の数値として１を加算する。具体的には、図１３で示す状態情報ファイル６の状態遷移および図４で示す障害情報ＤＢ４で管理する状態遷移において、イベント３４とイベント４３の属性値（またはイベント３８とイベント４３の属性値）を比較する。
【００３４】
イベントが類似しているか否かを判断するため、予め既定したしきい値を用いる。ここではしきい値（Ｙ）とする。類似度の値がしきい値（Ｙ）未満の場合（ステップＳ３１：Ｎｏ）、類似状態検索部３は、障害情報ＤＢ４が格納しているイベントと類似するイベントが状態情報ファイル６にはないとして、これを未定義のイベントとして障害情報ＤＢ４が格納しているイベントの要素ＩＤを記録する（ステップＳ３２）。また、このイベントに終点で接続している状態（障害情報ＤＢ４が格納している状態）の要素ＩＤを記録する（ステップＳ３３）。
【００３５】
ここで、類似状態検索部３が未定義のイベントを検出した場合とは、検証した仕様情報ファイル５には過去に障害を起こした状態遷移と類似する状態遷移があったが、障害を起こしたイベントがなかった（設計者が障害を起こしたイベントを検討していなかった）ことを意味する。
【００３６】
上記処理（ステップＳ３３）後、または、類似度の値がしきい値（Ｙ）以上の場合（ステップＳ３１：Ｙｅｓ）、類似状態検索部３は、障害情報ＤＢ４が格納しているイベントと類似するイベントが、状態情報ファイル４に定義されているとしてステップＳ３４へ進む。
【００３７】
ここで、類似度の値がしきい値（Ｙ）以上の場合とは、検証した仕様情報ファイル５には過去に障害を起こした状態遷移と類似する状態遷移があったが、障害を起こしたイベントもあった（設計者が障害を起こしたイベントを検討していた）ことを意味する。
【００３８】
つぎに、類似状態検索部３は、ステップＳ２８で着目した（Ｅ）の１つと全ての（Ｆ）についての確認が終了していない場合（ステップＳ３４：Ｎｏ）、ステップＳ２９へ戻り別のイベントに着目して同様の確認を繰り返す（ステップＳ２９〜Ｓ３３）。全ての（Ｆ）について確認が終了した場合（ステップＳ３４：Ｙｅｓ）、ステップＳ３５へ進む。
【００３９】
つぎに、類似状態検索部３は、ステップＳ２７で類似度がしきい値（Ｘ）以上であると判断した（Ｂ）に接続している全ての（Ｅ）についての確認が終了していない場合（ステップＳ３５：Ｎｏ）、ステップＳ２８へ戻り別のイベントに着目して同様の確認を繰り返す（ステップＳ２８〜Ｓ３４）。全ての（Ｅ）について確認が終了した場合（ステップＳ３５：Ｙｅｓ）、ステップＳ３６へ進む。また、ステップＳ２７で、類似度がしきい値（Ｘ）未満であった場合についても、同様にステップＳ３６へ進む。
【００４０】
つぎに、類似状態検索部３は、ステップＳ２４で着目した（Ｃ）の全ての（Ｄ）についての確認が終了していない場合（ステップＳ３６：Ｎｏ）、ステップＳ２５へ戻り別の状態遷移に着目して同様の確認を繰り返す（ステップＳ２５〜Ｓ３５）。全ての（Ｄ）について確認が終了した場合（ステップＳ３６：Ｙｅｓ）、ステップＳ３７へ進む。
【００４１】
つぎに、類似状態検索部３は、ステップＳ２３で着目した（Ｂ）に対して全ての（Ｃ）についての確認が終了していない場合（ステップＳ３７：Ｎｏ）、ステップＳ２４へ戻り障害情報ＤＢ４が格納している別の状態に着目して同様の確認を繰り返す（ステップＳ２４〜Ｓ３６）。全ての（Ｃ）について確認が終了した場合（ステップＳ３７：Ｙｅｓ）、ステップＳ３８へ進む。
【００４２】
つぎに、類似状態検索部３は、ステップＳ２２で着目した（Ａ）の全ての（Ｂ）についての確認が終了していない場合（ステップＳ３８：Ｎｏ）、ステップＳ２３へ戻り別の状態遷移に着目して同様の確認を繰り返す（ステップＳ２３〜Ｓ３７）。全ての（Ｂ）について確認が終了した場合（ステップＳ３８：Ｙｅｓ）、ステップＳ３９へ進む。
【００４３】
つぎに、類似状態検索部３は、状態情報ファイル６の全ての（Ａ）についての確認が終了していない場合（ステップＳ３９：Ｎｏ）、ステップＳ２２へ戻り別の状態に着目して同様の確認を繰り返す（ステップＳ２２〜Ｓ３８）。全ての（Ａ）について確認が終了した場合（ステップＳ３９：Ｙｅｓ）、記録した情報を未定義状態遷移情報ファイル７として出力（ステップＳ４０）し、上記の動作を終了する。
【００４４】
未定義状態遷移情報ファイル７は、類似状態検索部３で、状態情報ファイル６と障害情報ＤＢ４の内容を比較した結果である。図１７は、未定義状態遷移情報ファイル７の構成例を示す図である。未定義状態遷移情報ファイル７は、仕様情報の状態の要素ＩＤと、未定義の状態遷移から構成され、未定義の状態遷移は、障害Ｎｏ．と、状態の属性（図４の状態４２）と、始点で接続しているイベント（図４のイベント４３）の属性と、始点で接続しているイベントに終点で接続している状態（図４の状態４４）の属性を含む。
【００４５】
以上説明したように、本実施の形態によれば、状態遷移検証装置１は、入力された仕様情報に基づき生成した状態情報と過去の障害情報とを比較し、設計者が検討していない未定義の状態遷移を検出することとした。これにより、設計者は、検出された未定義の状態遷移に基づいて効率的に検証を行うことができ、ソフトウェアの完成度を高めることができる。
【産業上の利用可能性】
【００４６】
以上のように、本発明にかかる状態遷移検証装置は、ソフトウェア設計に有用であり、特に、ソフトウェアの設計仕様について検証する場合に適している。
【図面の簡単な説明】
【００４７】
【図１】状態遷移図である。
【図２】状態遷移図である。
【図３】本発明にかかる状態遷移検証装置の構成例を示す図である。
【図４】状態遷移図である。
【図５】障害情報の構成例を示す図である。
【図６】状態遷移図である。
【図７】仕様情報の構成例を示す図である。
【図８】仕様情報の構成例を示す図である。
【図９】仕様情報の構成例を示す図である。
【図１０】仕様情報の構成例を示す図である。
【図１１】仕様情報に属性として入力する属性の例を示す図である。
【図１２】仕様情報解釈部の動作を示すフローチャートである。
【図１３】状態遷移図である。
【図１４】状態情報の構成例を示す図である。
【図１５】状態情報の構成例を示す図である。
【図１６】類似状態検索部の動作を示すフローチャートである。
【図１７】未定義状態遷移情報の構成例を示す図である。
【符号の説明】
【００４８】
１  状態遷移検証装置
２  仕様情報解釈部
３  類似状態検索部
４  障害情報データベース（ＤＢ）
５  仕様情報ファイル
６  状態情報ファイル
７  未定義状態遷移情報ファイル
１１，１３，１５，２１，２２，２３，３１，３５，３６，３９，４０，４２，４４  状態
１２，１４，２４，２５，２６，２７，２８，２９，３０，３２，３４，３７，３８，４１，４３  イベント
【図１】
2010003084.tif 000003
【図２】
2010003084.tif 000004
【図３】
2010003084.tif 000005
【図４】
2010003084.tif 000006
【図５】
2010003084.tif 000007
【図６】
2010003084.tif 000008
【図７】
2010003084.tif 000009
【図８】
2010003084.tif 000010
【図９】
2010003084.tif 000011
【図１０】
2010003084.tif 000012
【図１１】
2010003084.tif 000013
【図１２】
2010003084.tif 000014
【図１３】
2010003084.tif 000015
【図１４】
2010003084.tif 000016
【図１５】
2010003084.tif 000017
【図１６】
2010003084.tif 000018
【図１７】
2010003084.tif 000019