(57)【要約】【課題】システム及びソフトウェアの検証において、半順序関係により規定される挙動を、入力した検査対象の形式に依存せず汎用的に検査することができる検証装置を提供する。【解決手段】検査装置は、システムまたはソフトウェアを定義する検査対象を入力し、当該検査対象が定義する半順序関係を表現する半順序関係表現モデルを作成する半順序関係表現モデル作成手段１と、前記半順序関係表現モデルを検査するモデル検査手段２とを備える。【選択図】図１
2014115960.tif 000002
【特許請求の範囲】
【請求項１】
システムまたはソフトウェアを定義する検査対象を入力し、当該検査対象が定義する半順序関係を表現する半順序関係表現モデルを作成する半順序関係表現モデル作成手段と、
前記半順序関係表現モデルを検査するモデル検査手段とを備えた
ことを特徴とする検証装置。
【請求項２】
半順序関係表現モデル作成手段は、
検査対象の形式に応じて差し替えられることが可能である
請求項１記載の検証装置。
【請求項３】
半順序関係表現モデル作成手段は、
検査対象に用いられる形式に対応した複数のモデル作成手段を含む
請求項１または請求項２記載の検証装置。
【請求項４】
半順序関係表現モデル作成手段が用いるモデル作成手段を、検査対象の形式に応じて選択するモデル作成選択手段を備えた
請求項３記載の検証装置。
【請求項５】
半順序関係表現モデルを入力し、当該半順序関係表現モデルを状態遷移表現に変換してモデル検査手段に出力するモデル検査入力作成手段を備えた
請求項１から請求項４のうちのいずれか１項に記載の検証装置。
【請求項６】
モデル検査入力作成手段は、
差し替えられることが可能である
請求項５記載の検証装置。
【請求項７】
システムまたはソフトウェアを定義する検査対象を入力し、当該検査対象が定義する半順序関係を表現する半順序関係表現モデルを作成し、
前記半順序関係表現モデルを検査する
ことを特徴とする検証方法。
【請求項８】
コンピュータに、
システムまたはソフトウェアを定義する検査対象を入力し、当該検査対象が定義する半順序関係を表現する半順序関係表現モデルを作成する半順序関係表現モデル作成処理と、
前記半順序関係表現モデルを検査するモデル検査処理とを
実行させるための検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム及びソフトウェアの検証を行う検証装置、検証方法及び検証プログラムに関し、特にシステム及びソフトウェアの挙動を規定する半順序関係がシステム及びソフトウェアの機能面で問題を引き起こさないことを検証する検証装置、検証方法及び検証プログラムに関する。
【背景技術】
【０００２】
システムやソフトウェアの挙動を定義する際には、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）等のモデルやプログラムを用いて挙動を定義する。この定義される挙動の中で重要なものとして、半順序関係が含まれることが多い。しかし、この半順序により実際に起こる順序関係は、わかりにくく、バグの原因となることが多い。このような、挙動の順序関係に関するバグを検査するために、モデル検査技術を用いて機能検証する技術が様々提案されている。
【０００３】
例えば、特許文献１には、プログラム言語で記述されたソースコードを、モデル検査技術で用いる専用言語で記述した動作仕様情報に変換し、モデル検査プログラムを用いてソフトウェアプログラムを検査する技術が開示されている。
【０００４】
また、例えば、特許文献２には、クラス図とステートマシン図で記述されたソフトウェアの構成及び挙動を表わす検査対象モデルが、予め定められた検査式を満たすか否かの検査を実行する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−０２２５３６
【特許文献２】特開２００９‐２２３７１１
【発明の概要】
【発明が解決しようとする課題】
【０００６】
第１の問題点は、同一のシステムもしくはソフトウェアの定義であっても定義形式によって検査できる場合とできない場合があるということである。その理由は、定義からモデル検査技術で用いられる専用言語による動作仕様記述への変換手段が、特定の定義の形式に依存しているからである。
【０００７】
第２の問題点は、想定した定義形式と異なる形式で表現されたシステムもしくはソフトウェア等の検査対象に対しては意味のある検査ができず、汎用性がないということである。ここで想定する定義形式とは、ＵＭＬ等のモデルによる設計の記述や、プログラミング言語による実装の記述等である。汎用性がない理由は、各装置は想定した定義形式に適した検査を行うという特定の目的を持つため、想定した定義形式と異なる検査対象に対しては、仮にその検査対象を装置が検査できる形式に変換したとしても、もとの検査対象に適した検査ができないためである。
【０００８】
検査対象の定義形式に適した検査とは、定義の目的に合致した検査である。例えば、設計の記述の検査であれば、設計段階で検査すべき挙動の大枠（例えば外部に現れる状態の変化）が検査される。また、例えば、実装の記述の検査であれば、実装レベルの細かい挙動（例えばＮＵＬＬポインタを参照するかどうか）が検査される。したがって、装置が想定する検査対象と異なる検査対象を、装置の想定に合致するように変換して検査しようとすると、検査対象がもつ情報が意図しない形で欠落する可能性があり、適切な検査ができない。
【０００９】
本発明の目的は、システム及びソフトウェアの検証において、半順序関係により規定される挙動を、入力した検査対象の形式に依存せず汎用的に検査することができる検証装置、検証方法及び検証プログラムを提供することである。
【課題を解決するための手段】
【００１０】
本発明による半順序関係検証装置は、システムまたはソフトウェアを定義する検査対象を入力し、当該検査対象が定義する半順序関係を表現する半順序関係表現モデルを作成する半順序関係表現モデル作成手段と、前記半順序関係表現モデルを検査するモデル検査手段とを備えたことを特徴とする。
【００１１】
本発明による半順序関係検証方法は、システムまたはソフトウェアを定義する検査対象を入力し、当該検査対象が定義する半順序関係を表現する半順序関係表現モデルを作成し、前記半順序関係表現モデルを検査することを特徴とする。
【００１２】
本発明による半順序関係検証プログラムは、コンピュータに、システムまたはソフトウェアを定義する検査対象を入力し、当該検査対象が定義する半順序関係を表現する半順序関係表現モデルを作成する半順序関係表現モデル作成処理と、前記半順序関係表現モデルを検査するモデル検査処理とを実行させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、システム及びソフトウェアの検証において、半順序関係により規定される挙動を、入力した検査対象の形式に依存せず汎用的に検査することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明による検証装置の第１の実施形態の構成を示すブロック図である。
【図２】検査対象の一例であるアクティビティを示す図である。
【図３】本発明による検証装置の第１の実施形態の動作を示すフローチャートである。
【図４】本発明による検証装置の第２の実施形態の構成を示すブロック図である。
【図５】本発明による検証装置の第２の実施形態の動作を示すフローチャートである。
【図６】本発明による検証装置の第３の実施形態の構成を示すブロック図である。
【図７】本発明による検証装置の第３の実施形態の動作を示すフローチャートである。
【図８】本発明による検証装置の主要部の構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
実施形態１．
図１は、本発明による検証装置の第１の実施形態（実施形態１）の構成を示すブロック図である。なお、図において、実線は処理の流れを示し、破線はデータの流れを示す。図１に示すように、本実施形態の検証装置は、半順序関係表現モデル作成手段１と、モデル検査手段２とを含む。本実施形態の検証装置の各手段は、例えば、特定の演算処理等を行うよう設計されたハードウェア、またはプログラムに従って動作するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の情報処理装置によって実現される。
【００１６】
半順序関係表現モデル作成手段１は、システムまたはソフトウェアを定義する検査対象（例えば、モデル、ソースコード等）を入力する。そして、半順序関係表現モデル作成手段１は、検査対象が定義する半順序関係を抽出し、抽出した半順序関係を表現するモデルである半順序関係表現モデルを作成する。半順序関係表現モデル作成手段１は、入力された検査対象の形式により異なるものであり、検査対象の形式に応じて差し替え可能なものである。半順序関係を表現する表現形式には、順序対を列挙したテキスト表現、または半順序を方向付きのエッジで表現した有向グラフ等の複数の形式があり、どの形式を用いてもよい。いずれかの形式が半順序関係表現モデルの表現形式として定められる。
【００１７】
モデル検査手段２は、半順序関係表現モデル作成手段１が作成した半順序関係表現モデルを入力し、半順序関係表現モデルが表現する半順序関係を状態の遷移として表現し直したモデル検査用の状態遷移記述に変換する。そして、モデル検査手段２は、その状態遷移記述により表現された半順序関係表現モデルをモデル検査して、その結果を出力する。モデル検査手段２は、検査対象によらずその形式が固定な半順序関係表現モデルを検査するため、半順序関係表現モデル作成手段１に依存しない。
【００１８】
次に、検査対象としてＵＭＬのアクティビティ図を用いた例を、図面を用いて説明する。図２は、検査対象の一例であるアクティビティを示す図である。図２に示すアクティビティ図は、ａ１，ａ２１，ａ２２，ａ２３，ａ４という順序でアクティビティが実行され、かつ、ａ１，ａ３１，ａ３２，ａ４という順序でアクティビティが実行されることを示す。つまり、図２に示すアクティビティ図は、アクティビティの半順序関係を示している。したがって、半順序関係表現モデル作成手段１は、この半順序関係を取りだし、半順序関係表現モデルを作成する。
【００１９】
次に、本実施形態の検証装置の動作を説明する。図３は、本発明による検証装置の第１
の実施形態の動作を示すフローチャートである。
【００２０】
半順序関係表現モデル作成手段１は、システムまたはソフトウェアを定義する検査対象（例えば、モデルまたはソースコード）を入力し、検査対象から半順序関係を抽出する（ステップＡ１）。半順序関係表現モデル作成手段１は、検査対象に半順序関係が含まれるかどうか判定し（ステップＡ２）、含まれていなければ動作は終了する。半順序関係表現モデル作成手段１は、検査対象に半順序関係が含まれていれば、それを半順序関係表現モデルとして書き出す（ステップＡ３）。
【００２１】
次に、モデル検査手段２は、半順序関係表現モデルを入力し、半順序関係表現モデルを状態遷移記述に変換する（ステップＡ４）。半順序関係を状態遷移に変換する方法は複数あるが、どの方法を用いてもよい。例えば、モデル検査手段２は、半順序関係を構成する要素それぞれを状態遷移における状態に対応付け、半順序関係を構成する要素間の順序関係を遷移に対応付けることにより半順序関係を状態遷移に変換する。または、モデル検査手段２は、順序関係を構成する要素の次の要素がひとつの場合は、順序関係で結ばれた連続した要素群をひとつの状態としてまとめ、次の要素が複数ある場合には、それぞれを新しい状態として前の要素との順序関係を遷移に対応付けてもよい。
【００２２】
そして、モデル検査手段２は、状態遷移記述をモデル検査により検査する（ステップＡ５）。最後に、モデル検査手段２は、モデル検査の結果が正常であれば（ステップＡ６のＹＥＳ）、検査が正常終了したことを出力する（ステップＡ７）。モデル検査の結果がエラーであれば（ステップＡ６のＮＯ）、モデル検査手段２は、エラー及びモデル検査が出力するエラー時の反例を出力する（ステップＡ８）。
【００２３】
本実施形態の検証装置は、システムまたはソフトウェアの半順序関係の正しさを、その定義形式が異なっていても共通の方法及び装置で検査できる。その理由は、検査対象の形式に依存し半順序関係を抽出する半順序関係表現モデル作成手段１と、半順序関係の正しさを検査するモデル検査手段２とが別々の手段であり、それぞれ独立しているため、半順序関係表現モデル作成手段１が検査対象の形式に応じて差し替え可能だからである。
【００２４】
また、本実施形態の検証装置は、同一のシステムもしくはソフトウェアの開発において、開発プロセスの各フェーズで容易に検査を実施できる。具体的には、上記のように半順序関係表現モデル作成手段１を差し替えることにより定義形式が異なる検査対象を共通の方法及び装置で検査できるため、各フェーズで使用される異なる形式で定義されたモデルやソースコードを共通に検査できる。
【００２５】
また、本実施形態の検証装置は、システムもしくはソフトウェアの半順序関係の正しさを厳密に検査できる。その理由は、厳密な検査が可能な技術であるモデル検査を、半順序関係の検査に用いているためである。また、検査対象の全てをモデルに変換するのではなく、半順序関係のみを半順序関係の検査に適したモデルに変換するため、半順序関係の検査に影響する情報の欠落を抑制することができる。
【００２６】
実施形態２．
次に、本発明の第２の実施形態（実施形態２）を、図面を参照して説明する。図４は、本発明による検証装置の第２の実施形態の構成を示すブロック図である。図４において、実線は処理の流れを示し、破線はデータの流れを示す。本実施形態の検証装置は、モデル作成選択手段１１と、半順序関係表現モデル作成手段１２と、モデル検査手段２とを含む。本実施形態の検証装置の各手段は、例えば、特定の演算処理等を行うよう設計されたハードウェア、またはプログラムに従って動作するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の情報処理装置によって実現される。
【００２７】
モデル作成選択手段１１は、検査対象の形式に応じたモデル作成手段を選択する。
【００２８】
半順序関係表現モデル作成手段１２は、内部に複数のモデル作成手段を含む。それぞれのモデル作成手段は、それぞれ特有の形式に対応している。半順序関係表現モデル作成手段１２に含まれるモデル作成手段のうち、モデル作成選択手段１１が選択したモデル作成手段が、半順序関係表現モデルを作成する。
【００２９】
モデル検査手段２は、半順序関係表現モデル作成手段１２が作成した半順序表現モデル３を検査し、結果を出力する。
【００３０】
なお、半順序関係表現モデル作成手段１２内の各モデル作成手段の機能は、実施形態１の半順序関係表現モデル作成手段１と同じである。またモデル検査手段２の機能は、実施形態１のモデル検査手段２と同じである。
【００３１】
次に、本実施形態の検証装置の動作を説明する。図５は、本発明による検証装置の第２の実施形態の動作を示すフローチャートである。本実施形態の検証装置の動作について、図５に示すフローチャートは、ステップＡ９以外は図３に示すフローチャートと同様である。以下、第１の実施形態と同一の動作については説明を省略する。
【００３２】
ステップＡ２において、検査対象に反順序関係があると判定された場合、モデル作成選択手段１１は、検査対象のモデル形式に応じたモデル作成手段を選択する（ステップＡ９）。また、選択されたモデル作成手段は、半順序関係表現モデルを作成する（ステップＡ３）。
【００３３】
本実施形態の検証装置は、半順序関係表現モデル作成手段１２が、複数のモデル作成手段を内包し、モデル作成選択手段１１が、入力した検査対象の形式に応じたモデル作成手段を選択するため、複数の異なる形式の検査対象を検査することができる。また、複数の異なる形式の検査対象に対して、モデル検査手段２は共通のものが使用される。そのため、本実施形態の検証装置は、同じシステムまたはソフトウェアの挙動が複数の形式で定義されている場合に、その複数の形式に対して同じ検査を実施することができ、検査結果を比較することも可能になる。
【００３４】
実施形態３．
次に、本発明の第３の実施形態（実施形態３）を、図面を参照して説明する。図６は、本発明による検証装置の第３の実施形態の構成を示すブロック図である。図６において、実線は処理の流れを示し、破線はデータの流れを示す。図６に示すように、本実施形態の検証装置は、半順序関係表現モデル作成手段１と、モデル検査入力作成手段２１と、モデル検査手段２２とを含む。本実施形態の検証装置の各手段は、例えば、特定の演算処理等を行うよう設計されたハードウェア、またはプログラムに従って動作するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の情報処理装置によって実現される。
【００３５】
半順序関係表現モデル作成手段１は、システムまたはソフトウェアを定義する検査対象（例えば、モデル、ソースコード等）を入力する。そして、半順序関係表現モデル作成手段１は、検査対象が定義する半順序関係を抽出し、抽出した半順序関係を表現するモデルである半順序関係表現モデルを作成する。半順序関係表現モデル作成手段１は、入力された検査対象の形式により異なるものであり、検査対象の形式に応じて差し替え可能なものである。
【００３６】
モデル検査入力作成手段２１は、半順序関係表現モデル作成手段１が作成した半順序関係表現モデルを入力し、モデル検査入力モデルを作成する。モデル検査入力モデルは、半順序関係表現モデルが表現する半順序関係を状態の遷移として表現し直したモデル検査用の状態遷移記述である。また、モデル検査入力作成手段２１は、差し替えが可能であるので、ユーザは、より最適なモデル検査入力作成手段２１を使用することができる。
【００３７】
モデル検査手段２２は、モデル検査入力モデルを入力し、モデル検査を実施し、その結果を出力する。
【００３８】
なお、本実施形態の検証装置は、半順序関係表現モデル作成手段１の代わりに、第２の実施形態で示したモデル作成選択手段１１及び半順序関係表現モデル作成手段１２を備えていてもよい。
【００３９】
次に、本実施形態の検証装置の動作を説明する。図７は、本発明による検証装置の第３の実施形態の動作を示すフローチャートである。まず、半順序関係表現モデル作成手段１は、システムまたはソフトウェアを定義する検査対象（モデルやソースコード）を入力し、検査対象から半順序関係を抽出する（ステップＢ１）。半順序関係表現モデル作成手段１は、検査対象に半順序関係が含まれるかどうか判定し（ステップＢ２）、検査対象に半順序関係が含まれていなければ、動作は終了する。半順序関係表現モデル作成手段１は、半順序関係があれば、それを半順序関係表現モデルに書き出す（ステップＢ３）。
【００４０】
次に、モデル検査入力作成手段２１は、半順序関係表現モデルを入力し、半順序関係表現モデルを、状態遷移を記述したモデル検査入力モデルに変換する（ステップＢ４）。モデル検査手段２２は、モデル検査入力モデルを入力し、モデル検査により検査を行う（ステップＢ５）。最後に、モデル検査手段２２は、モデル検査の結果が正常であれば（ステップＢ６のＹＥＳ）、検査結果として検査が正常終了したことを出力する（ステップＢ７）。モデル検査手段２２は、モデル検査の結果がエラーであれば（ステップＢ６のＮＯ）、エラー及びモデル検査が出力するエラー時の反例を出力する（ステップＢ８）。
【００４１】
本実施形態の検証装置は、モデル検査入力モデルを作成するモデル検査入力作成手段２１が、モデル検査手段２２から分離されているため、モデル検査入力作成手段２１を差し替えて使うことができる。一般的なモデル検査の実施においては、検査する状態数が膨大となり現実的な時間でモデル検査が実施できない状態爆発の問題が起こり得る。しかし、本実施形態の検証装置では、モデル検査入力作成手段２１は、差し替えが可能であるので、ユーザは、よりコンパクトなモデルを作成するために最適なモデル検査入力作成手段２１を使用することができる。よって、本実施形態の検証装置は、状態爆発が起きる可能性をより低減することができる。
【００４２】
図８は本発明による検証装置の主要部を示すブロック図である。図８に示すように、本発明の検査装置は、主要な構成として、システムまたはソフトウェアを定義する検査対象を入力し、当該検査対象が定義する半順序関係を表現する半順序関係表現モデルを作成する半順序関係表現モデル作成手段１と、半順序関係表現モデルを検査するモデル検査手段２とを備える。
【００４３】
また、上記の各実施形態には、以下の（１）〜（６）に示す検証装置も開示されている。
【００４４】
（１）システムまたはソフトウェアを定義する検査対象を入力し、当該検査対象が定義する半順序関係を表現する半順序関係表現モデルを作成する半順序関係表現モデル作成手段（例えば、半順序関係表現モデル作成手段１または半順序関係表現モデル作成手段１２）と、半順序関係表現モデルを検査するモデル検査手段（モデル検査手段２またはモデル検査手段２２）とを備えた検証装置。
【００４５】
（２）検証装置は、半順序関係表現モデル作成手段が、検査対象の形式に応じて差し替えられることが可能であるように構成されていてもよい。このような検証装置によれば、定義形式が異なる検査対象を共通の方法及び装置で検査できるため、各フェーズで使用される異なる形式で定義されたモデルやソースコードを共通に検査できる。
【００４６】
（３）検証装置は、半順序関係表現モデル作成手段（例えば、半順序関係表現モデル作成手段１２）が、検査対象に用いられる形式に対応した複数のモデル作成手段を含むように構成されていてもよい。このような検証装置によれば、同じシステムまたはソフトウェアの挙動が複数の形式で定義されている場合に、その複数の形式に対して同じ検査を実施することができ、検査結果を比較することも可能になる。
【００４７】
（４）検証装置は、半順序関係表現モデル作成手段が用いるモデル作成手段を、検査対象の形式に応じて選択するモデル作成選択手段（例えば、モデル作成選択手段１１）を備えるように構成されていてもよい。
【００４８】
（５）検証装置は、半順序関係表現モデルを入力し、当該半順序関係表現モデルを状態遷移表現に変換してモデル検査手段に出力するモデル検査入力作成手段（例えば、モデル検査入力作成手段２１）を備えるように構成されていてもよい。
【００４９】
（６）検証装置は、モデル検査入力作成手段が、差し替えられることが可能であるように構成されていてもよい。
【産業上の利用可能性】
【００５０】
本発明は、ソフトウェア開発において、その仕様、設計、及びソースコードの正しさを検査する用途に適用できる。
【符号の説明】
【００５１】
１，１２  半順序関係表現モデル作成手段
２，２２  モデル検査手段
１１  モデル作成選択手段
２１  モデル検査入力作成手段
【図１】
2014115960.tif 000003
【図２】
2014115960.tif 000004
【図３】
2014115960.tif 000005
【図４】
2014115960.tif 000006
【図５】
2014115960.tif 000007
【図６】
2014115960.tif 000008
【図７】
2014115960.tif 000009
【図８】
2014115960.tif 000010