(57)【要約】【課題】モデル検査方式を用いて効率的なソースコード検証を可能とするモデル生成装置を提供する。【解決手段】モデル生成装置１００は、既存モデル情報と新規モデル情報とを比較して差分の有無を判定するモデル比較部１１２と、モデル比較部１１２により差分有りと判定されたとき、差分論理式と既存論理式とを抽出する論理式抽出部１１３と、既存検証結果ファイルから既存論理式の検証結果を抽出し、モデル検証装置２００による検証結果が既存論理式の検証結果と同じとなる定数式に既存論理式を変換する既存論理式変換部１１４と、既存論理式変換部１１４により生成された定数式と論理式抽出部１１３により抽出された差分論理式とをマージして差分モデル情報を生成する差分モデル生成部１１５を含む。【選択図】図１
2010198558.tif 000002
【特許請求の範囲】
【請求項１】
ソースコードで記述されたソースファイルを論理式で記述されたモデル情報に変換し、前記新規モデル情報を検証して検証結果ファイルを生成するモデル検証装置が変更前の前記ソースファイルを変換することにより生成された既存モデル情報と、前記モデル検証装置が前記既存モデル情報を検証したことにより生成された既存検証結果ファイルとを記憶している記憶手段と、
前記モデル検証装置が変更後の前記ソースファイルを変換することにより生成される新規モデル情報を受け付ける受付手段と、
前記記憶手段から読み出した前記既存モデル情報と前記受付手段が受け付けた前記新規モデル情報とを比較して差分の有無を判定するモデル比較手段と、
前記モデル比較手段により差分有りと判定されたとき、当該新規モデル情報に含まれる論理式のうち前記既存モデル情報に含まれる論理式とは異なる差分論理式と、前記既存モデル情報に含まれる論理式と重複する既存論理式と、を抽出する論理式抽出手段と、
前記記憶手段から読み出した前記既存検証結果ファイルから前記既存論理式の検証結果を抽出し、前記モデル検証装置による検証結果が前記既存論理式の検証結果と同じとなる定数式に前記既存論理式を変換する既存論理式変換手段と、
前記既存論理式変換手段により生成された前記定数式と前記論理式抽出手段により抽出された前記差分論理式とをマージして差分モデル情報を生成する差分モデル生成手段と、
を備えることを特徴とするモデル生成装置。
【請求項２】
請求項１に記載のモデル生成装置において、
前記モデル検証装置が前記モデル情報として前記差分モデル情報を検証することにより生成された差分検証結果ファイルを、前記受付手段が受け付けたとき、受け付けた前記差分検証結果ファイルと前記記憶手段から読み出した前記既存検証結果ファイルとを比較して差分の有無を判定する検証結果比較手段と、
前記検証結果比較手段により差分有りと判定されたとき、当該差分検証結果ファイルに含まれる検証結果のうち前記既存検証結果ファイルに含まれる検証結果とは異なる検証結果差分を抽出する検証結果差分抽出手段と、
前記検証結果差分抽出手段により抽出された前記検証結果差分に基づいて前記差分モデル情報を更新する差分モデル更新手段と、
を備えることを特徴とするモデル生成装置。
【請求項３】
請求項２に記載のモデル生成装置において、
前記受付手段が受け付けた前記新規モデル情報に含まれる論理式のうち前記検証結果差分により示される未検証論理式と、当該差分検証結果ファイルに含まれる検証結果のうち前記既存検証結果ファイルに含まれる検証結果により示される検証済論理式と、を抽出する検証論理式抽出手段と、
前記記憶手段から読み出した前記既存検証結果ファイルから前記検証済論理式の検証結果を抽出し、前記モデル検証装置による検証結果が前記検証済論理式の検証結果と同じとなる定数式に前記検証済論理式を変換する検証済論理式変換手段と、を備え、
前記差分モデル更新手段は、前記検証済論理式変換手段により生成された前記定数式と前記検証論理式抽出手段により抽出された前記未検証論理式とをマージして生成された情報を前記差分モデル情報とすることを特徴とするモデル生成装置。
【請求項４】
請求項２または３に記載のモデル生成装置において、
前記受付手段が前記差分検証結果ファイルを受け付けたとき、
前記記憶手段は、受け付けた前記差分検証結果ファイルを記憶し、
前記検証結果比較手段により差分無しと判定されたとき、前記記憶手段に記憶された一つまたは複数の前記差分検証結果ファイルをマージして統合検証結果ファイルを生成する検証結果マージ手段を備えることを特徴とするモデル生成装置。
【請求項５】
請求項４に記載のモデル生成装置において、
前記検証結果比較手段により差分無しと判定されたとき、
前記記憶手段は、
前記検証結果比較手段により比較された前記差分検証結果ファイルの元となった前記差分モデル情報を前記既存モデル情報として記憶し、
前記検証結果マージ手段により生成された前記統合検証結果ファイルを前記既存検証結果ファイルとして記憶することを特徴とするモデル生成装置。
【請求項６】
請求項１乃至５いずれかに記載のモデル生成装置において、
前記受付手段が前記新規モデル情報を受け付けて、前記記憶手段が当該新規モデル情報に対応する前記既存モデル情報を記憶していないとき、
前記記憶手段は、
当該新規モデル情報を前記既存モデル情報として記憶し、
前記モデル検証装置が当該新規モデル情報を検証することにより生成される新規検証結果ファイルを前記既存検証結果ファイルとして記憶することを特徴とするモデル生成装置。
【請求項７】
ソースコードで記述されたソースファイルを論理式で記述されたモデル情報に変換し、前記新規モデル情報を検証して検証結果ファイルを生成するモデル検証装置が変更前の前記ソースファイルを変換することにより生成された既存モデル情報と、前記モデル検証装置が前記既存モデル情報を検証したことにより生成された既存検証結果ファイルとを記憶する記憶ステップと、
前記モデル検証装置が変更後の前記ソースファイルを変換することにより生成される新規モデル情報を受け付けるモデル受付ステップと、
前記記憶ステップにおいて記憶した前記既存モデル情報と前記モデル受付ステップにおいて受け付けた前記新規モデル情報とを比較して差分の有無を判定するモデル比較ステップと、
前記モデル比較ステップにおいて差分有りと判定されたとき、当該新規モデル情報に含まれる論理式のうち前記既存モデル情報に含まれる論理式とは異なる差分論理式と、前記既存モデル情報に含まれる論理式と重複する既存論理式と、を抽出する論理式抽出ステップと、
前記記憶ステップにおいて記憶した前記既存検証結果ファイルから前記既存論理式の検証結果を抽出し、前記モデル検証装置による検証結果が前記既存論理式の検証結果と同じとなる定数式に前記既存論理式を変換する既存論理式変換ステップと、
前記既存論理式変換ステップにより生成された前記定数式と前記論理式抽出ステップにより抽出された前記差分論理式とをマージして差分モデル情報を生成する差分モデル生成ステップと、
を備えることを特徴とするモデル生成方法。
【請求項８】
請求項７に記載のモデル生成方法において、
前記モデル検証装置が前記モデル情報として前記差分モデル情報を検証することにより生成された差分検証結果ファイルを受け付ける検証結果受付ステップと、
前記検証結果受付ステップにおいて受け付けた前記差分検証結果ファイルと前記記憶ステップにおいて記憶した前記既存検証結果ファイルとを比較して差分の有無を判定する検証結果比較ステップと、
前記検証結果比較ステップにおいて差分有りと判定されたとき、当該差分検証結果ファイルに含まれる検証結果のうち前記既存検証結果ファイルに含まれる検証結果とは異なる検証結果差分を抽出する検証結果差分抽出ステップと、
前記検証結果差分抽出ステップにおいて抽出された前記検証結果差分に基づいて前記差分モデル情報を更新する差分モデル更新ステップと、
を備えることを特徴とするモデル生成方法。
【請求項９】
請求項８に記載のモデル生成方法において、
前記モデル受付ステップにおいて受け付けた前記新規モデル情報に含まれる論理式のうち前記検証結果差分により示される未検証論理式と、当該差分検証結果ファイルに含まれる検証結果のうち前記既存検証結果ファイルに含まれる検証結果により示される検証済論理式と、を抽出する検証論理式抽出ステップと、
前記記憶ステップにおいて記憶した前記既存検証結果ファイルから前記検証済論理式の検証結果を抽出し、前記モデル検証装置による検証結果が前記検証済論理式の検証結果と同じとなる定数式に前記検証済論理式を変換する検証済論理式変換ステップと、を備え、
前記差分モデル更新ステップは、前記検証済論理式変換ステップにおいて生成された前記定数式と前記検証論理式抽出ステップにおいて抽出された前記未検証論理式とをマージして生成された情報を前記差分モデル情報とすることを特徴とするモデル生成方法。
【請求項１０】
請求項８または９に記載のモデル生成方法において、
前記検証結果受付ステップにおいて前記差分検証結果ファイルを受け付けたとき、受け付けた前記差分検証結果ファイルを記憶する検証結果記憶ステップと、
前記検証結果比較ステップにおいて差分無しと判定されたとき、前記検証結果記憶ステップにおいて記憶した一つまたは複数の前記差分検証結果ファイルをマージして統合検証結果ファイルを生成する検証結果マージステップと、
を備えることを特徴とするモデル生成方法。
【請求項１１】
請求項１０に記載のモデル生成方法において、
前記検証結果比較ステップにおいて差分無しと判定されたとき、
前記記憶ステップは、
前記検証結果比較ステップにおいて比較された前記差分検証結果ファイルの元となった前記差分モデル情報を前記既存モデル情報として記憶し、
前記検証結果マージステップにおいて生成された前記統合検証結果ファイルを前記既存検証結果ファイルとして記憶することを特徴とするモデル生成方法。
【請求項１２】
請求項７乃至１１いずれかに記載のモデル生成方法において、
前記モデル受付ステップにおいて前記新規モデル情報を受け付けて、前記記憶ステップにおいて当該新規モデル情報に対応する前記既存モデル情報を記憶していないとき、
前記記憶ステップは、
当該新規モデル情報を前記既存モデル情報として記憶し、
前記モデル検証装置が当該新規モデル情報を検証することにより生成される新規検証結果ファイルを前記既存検証結果ファイルとして記憶することを特徴とするモデル生成方法。
【請求項１３】
ソースコードで記述されたソースファイルを変換して、論理式で記述されたモデル情報を生成するモデル生成手段と、
前記新規モデル情報を検証して検証結果ファイルを生成するモデル検証手段と、
前記モデル生成手段が変更前の前記ソースファイルを変換することにより生成された既存モデル情報と、前記モデル検証手段が前記既存モデル情報を検証したことにより生成された既存検証結果ファイルとを記憶している記憶手段と、
前記モデル生成手段が変更後の前記ソースファイルを変換することにより生成される新規モデル情報を受け付ける受付手段と、
前記記憶手段から読み出した前記既存モデル情報と前記受付手段が受け付けた前記新規モデル情報とを比較して差分の有無を判定するモデル比較手段と、
前記モデル比較手段により差分有りと判定されたとき、当該新規モデル情報に含まれる論理式のうち前記既存モデル情報に含まれる論理式とは異なる差分論理式と、前記既存モデル情報に含まれる論理式と重複する既存論理式と、を抽出する論理式抽出手段と、
前記記憶手段から読み出した前記既存検証結果ファイルから前記既存論理式の検証結果を抽出し、前記モデル検証手段による検証結果が前記既存論理式の検証結果と同じとなる定数式に前記既存論理式を変換する既存論理式変換手段と、
前記既存論理式変換手段により生成された前記定数式と前記論理式抽出手段により抽出された前記差分論理式とをマージして差分モデル情報を生成する差分モデル生成手段と、
を備えることを特徴とするソースコード検証システム。
【請求項１４】
請求項１３に記載のソースコード検証システムにおいて、
前記モデル検証手段が前記モデル情報として前記差分モデル情報を検証することにより生成された差分検証結果ファイルを、前記受付手段が受け付けたとき、前記記憶手段から前記既存検証結果ファイルを読み出して、受け付けた前記差分検証結果ファイルと読み出した前記既存検証結果ファイルとを比較して差分の有無を判定する検証結果比較手段と、
前記検証結果比較手段により差分有りと判定されたとき、当該差分検証結果ファイルに含まれる検証結果のうち前記既存検証結果ファイルに含まれる検証結果とは異なる検証結果差分を抽出する検証結果差分抽出手段と、
前記検証結果差分抽出手段により抽出された前記検証結果差分に基づいて前記差分モデル情報を更新する差分モデル更新手段と、
を備えることを特徴とするソースコード検証システム。
【請求項１５】
コンピュータで読出し可能な記憶媒体に格納されるプログラムであって、
ソースコードで記述されたソースファイルを論理式で記述されたモデル情報に変換し、前記新規モデル情報を検証して検証結果ファイルを生成するモデル検証装置が変更前の前記ソースファイルを変換することにより生成された既存モデル情報と、前記モデル検証装置が前記既存モデル情報を検証したことにより生成された既存検証結果ファイルとを記憶する記憶処理と、
前記モデル検証装置が変更後の前記ソースファイルを変換することにより生成される新規モデル情報を受け付けるモデル受付処理と、
前記記憶処理において記憶した前記既存モデル情報と前記モデル受付処理において受け付けた前記新規モデル情報とを比較して差分の有無を判定するモデル比較処理と、
前記モデル比較処理において差分有りと判定されたとき、当該新規モデル情報に含まれる論理式のうち前記既存モデル情報に含まれる論理式とは異なる差分論理式と、前記既存モデル情報に含まれる論理式と重複する既存論理式と、を抽出する論理式抽出処理と、
前記記憶処理において記憶した前記既存検証結果ファイルから前記既存論理式の検証結果を抽出し、前記モデル検証装置による検証結果が前記既存論理式の検証結果と同じとなる定数式に前記既存論理式を変換する既存論理式変換処理と、
前記既存論理式変換処理により生成された前記定数式と前記論理式抽出処理により抽出された前記差分論理式とをマージして差分モデル情報を生成する差分モデル生成処理と、
を前記コンピュータに実行させることを特徴とするプログラム。
【請求項１６】
請求項１５に記載のプログラムにおいて、
前記モデル検証装置が前記モデル情報として前記差分モデル情報を検証することにより生成された差分検証結果ファイルを受け付ける検証結果受付処理と、
前記検証結果受付処理において受け付けた前記差分検証結果ファイルと前記記憶処理において記憶した前記既存検証結果ファイルとを比較して差分の有無を判定する検証結果比較処理と、
前記検証結果比較処理において差分有りと判定されたとき、当該差分検証結果ファイルに含まれる検証結果のうち前記既存検証結果ファイルに含まれる検証結果とは異なる検証結果差分を抽出する検証結果差分抽出処理と、
前記検証結果差分抽出処理により抽出された前記検証結果差分に基づいて前記差分モデル情報を更新する差分モデル更新処理と、
を前記コンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モデル生成装置、モデル生成方法、ソースコード検証システムおよびプログラムに関する。
【背景技術】
【０００２】
近年、プログラム検証の効率化を目的として、検査対象のプログラムの一部または全てを変更して検証するプログラム検証ツールが種々提案されている。
【０００３】
この種の技術として、特許文献１（特開２００７−１１６９０号公報）には次のようなプログラムの検証装置が記載されている。この検証装置は、複数の関数からなる並行プログラムを検証対象とする。そして、この検証装置は、変更前のプログラムと変更後のプログラムを読み込んで比較し、変更された箇所と、変更の影響を受ける箇所と、当該プログラムの制御構造に関する箇所と、それ以外の箇所とを切り出す。さらに、この検証装置は、切り出された箇所それぞれに基づいて変更前のプログラムと変更後のプログラムとをそれぞれモデル化し、これらのモデルを比較することで検証を行う。これにより、モデルの生成時間および検証時間を短縮することができる。
【０００４】
また、この種の技術として、特許文献２（特開２００５−３５２６７０号公報）には次のようなプログラム検査のシミュレーション装置が記載されている。このシミュレーション装置は、サブシステムを構成するブロック群のうち、入力ポートブロックを所定のメモリ領域から読み出した値を取得する変数読出ブロックに変更し、出力ポートブロックを所定のメモリ領域に値を記憶する変数書込ブロックに変更する。そして、このシミュレーション装置は、上記変更を行ったのちにサブシステムのシミュレーションを行う。これにより、入力ポートブロックよび出力ポートブロックに関するシミュレーションの処理時間を短縮することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１１６９０号公報
【特許文献２】特開２００５−３５２６７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら上記技術は、以下の点で改善の余地を有していた。特許文献１に記載の技術は、プログラム検証の度に変更前後で重複する箇所（変更のない箇所）についても他の箇所と同様の検証を行い、差分検証ができないので、同じプログラムの検証を繰り返す場合、その処理負荷は全て一度目と同等である。また、特許文献２に記載の技術は、予め用意されたテストパターンに当てはめて、該当する箇所を入力ポートブロックまたは出力ポートブロックとして定める。すなわち、特許文献２に記載の技術はテストパターンに当てはまらないプログラムの検証には適用できない。
【０００７】
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、モデル検査方式を用いて効率的なソースコード検証を可能とするモデル生成装置、モデル生成方法、ソースコード検証システムおよびプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明によれば、ソースコードで記述されたソースファイルを論理式で記述されたモデル情報に変換し、前記新規モデル情報を検証して検証結果ファイルを生成するモデル検証装置が変更前の前記ソースファイルを変換することにより生成された既存モデル情報と、前記モデル検証装置が前記既存モデル情報を検証したことにより生成された既存検証結果ファイルとを記憶している記憶手段と、前記モデル検証装置が変更後の前記ソースファイルを変換することにより生成される新規モデル情報を受け付ける受付手段と、前記記憶手段から読み出した前記既存モデル情報と前記受付手段が受け付けた前記新規モデル情報とを比較して差分の有無を判定するモデル比較手段と、前記モデル比較手段により差分有りと判定されたとき、当該新規モデル情報に含まれる論理式のうち前記既存モデル情報に含まれる論理式とは異なる差分論理式と、前記既存モデル情報に含まれる論理式と重複する既存論理式と、を抽出する論理式抽出手段と、前記記憶手段から読み出した前記既存検証結果ファイルから前記既存論理式の検証結果を抽出し、前記モデル検証装置による検証結果が前記既存論理式の検証結果と同じとなる定数式に前記既存論理式を変換する既存論理式変換手段と、前記既存論理式変換手段により生成された前記定数式と前記論理式抽出手段により抽出された前記差分論理式とをマージして差分モデル情報を生成する差分モデル生成手段と、を備えることを特徴とするモデル生成装置が提供される。
【０００９】
また、本発明によれば、ソースコードで記述されたソースファイルを論理式で記述されたモデル情報に変換し、前記新規モデル情報を検証して検証結果ファイルを生成するモデル検証装置が変更前の前記ソースファイルを変換することにより生成された既存モデル情報と、前記モデル検証装置が前記既存モデル情報を検証したことにより生成された既存検証結果ファイルとを記憶する記憶ステップと、前記モデル検証装置が変更後の前記ソースファイルを変換することにより生成される新規モデル情報を受け付けるモデル受付ステップと、前記記憶ステップにおいて記憶した前記既存モデル情報と前記モデル受付ステップにおいて受け付けた前記新規モデル情報とを比較して差分の有無を判定するモデル比較ステップと、前記モデル比較ステップにおいて差分有りと判定されたとき、当該新規モデル情報に含まれる論理式のうち前記既存モデル情報に含まれる論理式とは異なる差分論理式と、前記既存モデル情報に含まれる論理式と重複する既存論理式と、を抽出する論理式抽出ステップと、前記記憶ステップにおいて記憶した前記既存検証結果ファイルから前記既存論理式の検証結果を抽出し、前記モデル検証装置による検証結果が前記既存論理式の検証結果と同じとなる定数式に前記既存論理式を変換する既存論理式変換ステップと、前記既存論理式変換ステップにより生成された前記定数式と前記論理式抽出ステップにより抽出された前記差分論理式とをマージして差分モデル情報を生成する差分モデル生成ステップと、を備えることを特徴とするモデル生成方法が提供される。
【００１０】
さらに、本発明によれば、ソースコードで記述されたソースファイルを変換して、論理式で記述されたモデル情報を生成するモデル生成手段と、前記新規モデル情報を検証して検証結果ファイルを生成するモデル検証手段と、前記モデル生成手段が変更前の前記ソースファイルを変換することにより生成された既存モデル情報と、前記モデル検証手段が前記既存モデル情報を検証したことにより生成された既存検証結果ファイルとを記憶している記憶手段と、前記モデル生成手段が変更後の前記ソースファイルを変換することにより生成される新規モデル情報を受け付ける受付手段と、前記記憶手段から読み出した前記既存モデル情報と前記受付手段が受け付けた前記新規モデル情報とを比較して差分の有無を判定するモデル比較手段と、前記モデル比較手段により差分有りと判定されたとき、当該新規モデル情報に含まれる論理式のうち前記既存モデル情報に含まれる論理式とは異なる差分論理式と、前記既存モデル情報に含まれる論理式と重複する既存論理式と、を抽出する論理式抽出手段と、前記記憶手段から読み出した前記既存検証結果ファイルから前記既存論理式の検証結果を抽出し、前記モデル検証手段による検証結果が前記既存論理式の検証結果と同じとなる定数式に前記既存論理式を変換する既存論理式変換手段と、前記既存論理式変換手段により生成された前記定数式と前記論理式抽出手段により抽出された前記差分論理式とをマージして差分モデル情報を生成する差分モデル生成手段と、を備えることを特徴とするソースコード検証システムが提供される。
【００１１】
さらに、本発明によれば、コンピュータで読出し可能な記憶媒体に格納されるプログラムであって、ソースコードで記述されたソースファイルを論理式で記述されたモデル情報に変換し、前記新規モデル情報を検証して検証結果ファイルを生成するモデル検証装置が変更前の前記ソースファイルを変換することにより生成された既存モデル情報と、前記モデル検証装置が前記既存モデル情報を検証したことにより生成された既存検証結果ファイルとを記憶する記憶処理と、前記モデル検証装置が変更後の前記ソースファイルを変換することにより生成される新規モデル情報を受け付けるモデル受付処理と、前記記憶処理において記憶した前記既存モデル情報と前記モデル受付処理において受け付けた前記新規モデル情報とを比較して差分の有無を判定するモデル比較処理と、前記モデル比較処理において差分有りと判定されたとき、当該新規モデル情報に含まれる論理式のうち前記既存モデル情報に含まれる論理式とは異なる差分論理式と、前記既存モデル情報に含まれる論理式と重複する既存論理式と、を抽出する論理式抽出処理と、前記記憶処理において記憶した前記既存検証結果ファイルから前記既存論理式の検証結果を抽出し、前記モデル検証装置による検証結果が前記既存論理式の検証結果と同じとなる定数式に前記既存論理式を変換する既存論理式変換処理と、前記既存論理式変換処理により生成された前記定数式と前記論理式抽出処理により抽出された前記差分論理式とをマージして差分モデル情報を生成する差分モデル生成処理と、を前記コンピュータに実行させることを特徴とするプログラムが提供される。
【発明の効果】
【００１２】
上記発明によれば、新規モデル情報と既存モデル情報とで重複する既存論理式は、モデル検証装置による検証結果が既存論理式の検証結果と同じとなる定数式に変換される。そして、上記発明によれば、新規モデル情報と既存モデル情報との差分に該当する差分論理式と上記定数式とをマージして差分モデル情報を生成する。この差分モデル情報を検証することにより、実質的には差分箇所のみが検証範囲となるので、ソースコード検証の効率化を図ることができる。
【００１３】
本発明によれば、モデル検査方式を用いて効率的なソースコード検証を可能とするモデルを生成するモデル生成装置、モデル生成方法、ソースコード検証システムおよびプログラムが提供される。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態に係るモデル生成装置を備えるソースコード検証システムの構成図である。
【図２】本発明の第１の実施形態に係るモデル生成方法を示すフローチャートである。
【図３】本発明の第２の実施形態に係るモデル生成装置を備えるソースコード検証システムの構成図である。
【図４】本発明の第２の実施形態に係るモデル生成方法を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００１６】
〔第１の実施形態〕
図１は、本発明の第１の実施形態に係るモデル生成装置１００を備えるソースコード検証システム１０００の構成図である。本実施形態のソースコード検証システム１０００は、モデル生成装置１００およびモデル検証装置２００を備える。
【００１７】
本実施形態のモデル検証装置２００は、ソースコードで記述されたソースファイルを変換して、論理式で記述されたモデル情報を生成するモデル生成部２１０と、モデル情報を検証して検証結果ファイルを生成するモデル検証部２２０と、を含む。そして、モデル検証装置２００は、モデル生成部２１０により生成されたモデル情報とモデル検証部２２０により生成された検証結果ファイルとをモデル生成装置１００に送出する。なお、モデル生成部２１０が処理するソースファイルはモデル検証装置２００に含まれる記憶媒体（図示せず）から読み出してもよいし、外部のネットワーク（図示せず）や他装置（図示せず）から受け付けてもよい。
【００１８】
本実施形態のモデル生成装置１００は、モデル検証装置２００（モデル生成部２１０）が変更前のソースファイルを変換することにより生成された既存モデル情報と、モデル検証装置２００（モデル検証部２２０）が既存モデル情報を検証したことにより生成された既存検証結果ファイルとを記憶している記憶部１３０を含む。また、モデル生成装置１００は、モデル検証装置２００（モデル生成部２１０）が変更後のソースファイルを変換することにより生成される新規モデル情報を受け付ける受付部１１１を含む。さらに、モデル生成装置１００は、記憶部１３０から読み出した既存モデル情報と受付部１１１が受け付けた新規モデル情報とを比較して差分の有無を判定するモデル比較部１１２を含む。さらに、モデル生成装置１００は、モデル比較部１１２により差分有りと判定されたとき、当該新規モデル情報に含まれる論理式のうち既存モデル情報に含まれる論理式とは異なる差分論理式と、既存モデル情報に含まれる論理式と重複する既存論理式と、を抽出する論理式抽出部１１３を含む。さらに、モデル生成装置１００は、記憶部１３０から読み出した既存検証結果ファイルから既存論理式の検証結果を抽出し、モデル検証装置２００（モデル検証部２２０）による検証結果が既存論理式の検証結果と同じとなる定数式に既存論理式を変換する既存論理式変換部１１４を含む。さらに、モデル生成装置１００は、既存論理式変換部１１４により生成された定数式と論理式抽出部１１３により抽出された差分論理式とをマージして差分モデル情報を生成する差分モデル生成部１１５を含む。
【００１９】
本実施形態において受付部１１１、モデル比較部１１２、論理式抽出部１１３、既存論理式変換部１１４および差分モデル生成部１１５は、情報処理部１１０に内包されている。
【００２０】
これらの情報処理部１１０に内包される構成の全部または一部は、ハードウェアで実現されてもよいし、あるいは、プロセッサに処理を実行させるプログラム（またはプログラムコード）で実現されてもよい。
【００２１】
情報処理部１１０に内包される構成がプログラムによって実施される場合、当該プログラムはプロセッサ（コンピュータ）で読み出し可能な記憶媒体に格納される。そして、当該プログラムは、モデル検証装置２００が変更前のソースファイルを変換することにより生成された既存モデル情報と、モデル検証装置２００が既存モデル情報を検証したことにより生成された既存検証結果ファイルとを記憶する記憶処理をプロセッサに実行させる。また、当該プログラムは、モデル検証装置２００が変更後のソースファイルを変換することにより生成される新規モデル情報を受け付けるモデル受付処理をプロセッサに実行させる。さらに、当該プログラムは、記憶処理において記憶した既存モデル情報とモデル受付処理において受け付けた新規モデル情報とを比較して差分の有無を判定するモデル比較処理をプロセッサに実行させる。さらに、当該プログラムは、モデル比較処理において差分有りと判定されたとき、当該新規モデル情報に含まれる論理式のうち既存モデル情報に含まれる論理式とは異なる差分論理式と、既存モデル情報に含まれる論理式と重複する既存論理式と、を抽出する論理式抽出処理をプロセッサに実行させる。さらに、当該プログラムは、記憶処理において記憶した既存検証結果ファイルから既存論理式の検証結果を抽出し、モデル検証装置２００による検証結果が既存論理式の検証結果と同じとなる定数式に既存論理式を変換する既存論理式変換処理をプロセッサに実行させる。さらに、当該プログラムは、既存論理式変換処理により生成された定数式と論理式抽出処理により抽出された差分論理式とをマージして差分モデル情報を生成する差分モデル生成処理をプロセッサに実行させる。
【００２２】
なお、本実施形態において、プロセッサは情報処理部１１０であってもよく、記憶媒体は記憶部１３０であってもよい。
【００２３】
情報処理部１１０は記憶部１３０から種々の情報やプログラムを適宜読み出してもよい。また、情報処理部１１０は、情報処理部１１０が処理した種々の情報を記憶部１３０に適宜格納させてもよい。
【００２４】
受付部１１１が新規モデル情報を受け付けて、記憶部１３０が当該新規モデル情報に対応する既存モデル情報を記憶していないとき、記憶部１３０は、当該新規モデル情報を既存モデル情報として記憶し、モデル検証装置２００が当該新規モデル情報を検証することにより生成される新規検証結果ファイルを既存検証結果ファイルとして記憶してもよい。
【００２５】
ここで、記憶部１３０が新規検証結果ファイルを取得する経路は種々考えられるが、例えば以下のような経路でも実現可能である。モデル生成装置１００は、受付部１１１が新規モデル情報を受け付けて、記憶部１３０が当該新規モデル情報に対応する既存モデル情報を記憶していないとき、既存モデル情報がないことを示す情報をモデル検証装置２００に送出する。当該情報を受け付けたモデル検証装置２００は、モデル生成部２１０から取得した新規モデル情報をモデル検証部２２０により検証して新規検証結果ファイルを生成する。そして、モデル検証装置２００は新規検証結果ファイルをモデル生成装置１００に送出して、モデル生成装置１００は新規検証結果ファイルを既存検証結果ファイルとして記憶部１３０に記憶する。
【００２６】
論理式抽出部１１３において差分論理式または既存論理式を抽出するとは、モデル情報から差分論理式または既存論理式そのものを抽出してもよいし、モデル情報における差分論理式または既存論理式が存在する位置を示す情報を抽出してもよい。論理式抽出部１１３において差分論理式または既存論理式を抽出するとは、いずれか一方を抽出して、それを除く論理式を他方とすることを含んでもよい。
【００２７】
既存論理式変換部１１４において、定数式の検証結果が既存論理式の検証結果と同じとなるとは、完全一致に限らずモデル検証装置２００（モデル検証部２２０）による検証に支障がない範囲で、一致しない部分が含まれてもよい。
【００２８】
差分モデル生成部１１５は既存論理式から変換された定数式と差分論理式とをマージして、モデル検証装置２００（モデル検証部２２０）がモデル情報として検証可能な形式の差分モデル情報を生成する。なお、差分モデル生成部１１５は、差分モデル情報がモデル情報として検証可能な範囲で、差分モデル情報に定数式および差分論理式を除くデータ（例えばタイムスタンプや電子署名等）を内包させてもよい。
【００２９】
差分モデル生成部１１５により生成された差分モデル情報は、モデル検証装置２００（モデル検証部２２０）に送出されて、モデル検証装置２００（モデル検証部２２０）にモデル情報として検証されてもよい。また、当該差分モデル情報はモデル検証装置２００以外の装置に送出されてもよい。さらに、当該差分モデル情報は記憶部１３０に格納されてもよい。
【００３０】
モデル生成装置１００は、モデル比較部１１２が差分なしと判定したとき、受付部１１１が受け付けたモデル情報をモデル検証装置２００（モデル検証部２２０）に送出してもよい。このとき、モデル検証装置２００（モデル検証部２２０）は、モデル生成装置１００から受け付けたモデル情報を検証してもよい。
【００３１】
また、モデル生成装置１００は、モデル比較部１１２が差分なしと判定したとき、受付部１１１が受け付けたモデル情報に基づいて差分モデル情報を生成できないことを示す情報をモデル検証装置２００（モデル検証部２２０）に送出してもよい。このとき、モデル検証装置２００（モデル検証部２２０）は、モデル生成部２１０から取得したモデル情報を検証してもよい。
【００３２】
図２は、本発明の第１の実施形態に係るモデル生成方法を示すフローチャートである。本実施形態のモデル生成方法は、ソースコードで記述されたソースファイルを論理式で記述されたモデル情報に変換し、新規モデル情報を検証して検証結果ファイルを生成するモデル検証装置２００が変更前のソースファイルを変換することにより生成された既存モデル情報と、モデル検証装置２００が既存モデル情報を検証したことにより生成された既存検証結果ファイルとを記憶する記憶ステップ（ステップＳ１）を備える。
【００３３】
また、このモデル生成方法は、新規モデル情報を受け付けたとき（ステップＳ２のＹＥＳ）、モデル検証装置２００が変更後のソースファイルを変換することにより生成される新規モデル情報を受け付けるモデル受付ステップ（ステップＳ３）を備える。なお、このモデル生成方法は、新規モデル情報を受け付けない間（ステップＳ２のＮＯ）は、それ以降のステップに移行しない。
【００３４】
さらに、このモデル生成方法は、記憶ステップ（ステップＳ１）において記憶した既存モデル情報とモデル受付ステップ（ステップＳ３）において受け付けた新規モデル情報とを比較して差分の有無を判定するモデル比較ステップ（ステップＳ５）を備える。さらに、このモデル生成方法は、モデル比較ステップにおいて差分有りと判定されたとき（ステップＳ６のＹＥＳ）、当該新規モデル情報に含まれる論理式のうち既存モデル情報に含まれる論理式とは異なる差分論理式と、既存モデル情報に含まれる論理式と重複する既存論理式と、を抽出する論理式抽出ステップ（ステップＳ７）を備える。さらに、このモデル生成方法は、記憶ステップ（ステップＳ１）において記憶した既存検証結果ファイルから既存論理式の検証結果を抽出し、モデル検証装置２００による検証結果が既存論理式の検証結果と同じとなる定数式に既存論理式を変換する既存論理式変換ステップ（ステップＳ８）を備える。さらに、このモデル生成方法は、既存論理式変換ステップ（ステップＳ８）により生成された定数式と論理式抽出ステップ（ステップＳ７）により抽出された差分論理式とをマージして差分モデル情報を生成する差分モデル生成ステップ（ステップＳ９）を備える。
【００３５】
モデル比較ステップにおいて差分なしと判定されたとき（ステップＳ６のＮＯ）、このモデル生成方法のフローは終了としてもよい。
【００３６】
このモデル生成方法は、モデル受付ステップ（ステップＳ３）において新規モデル情報を受け付けて、記憶ステップにおいて当該新規モデル情報に対応する既存モデル情報を記憶していないとき（ステップＳ４のＮＯ）、記憶ステップ（ステップＳ１）に移行する。そして、記憶ステップ（ステップＳ１）は、当該新規モデル情報を既存モデル情報として記憶し、モデル検証装置２００が当該新規モデル情報を検証することにより生成される新規検証結果ファイルを既存検証結果ファイルとして記憶する。
【００３７】
ここで、第１の実施形態の効果について説明する。本実施形態は、新規モデル情報と既存モデル情報とで重複する既存論理式は、モデル検証装置による検証結果が既存論理式の検証結果と同じとなる定数式に変換される。そして、本実施形態は、新規モデル情報と既存モデル情報との差分に該当する差分論理式と上記定数式とをマージして差分モデル情報を生成する。この差分モデル情報は、受付部１１１が受け付けたモデル情報と比して既存論理式が定数化されている分、検証処理にかかる負荷を軽減することができ、検証処理にかかる時間も短縮することができる。この差分モデル情報を用いることにより、ソースコード検証システム１０００（モデル検証装置２００）は効率的なソースコード検証が可能となる。
【００３８】
プログラム開発において、一般的にはプログラム修正を複数回繰り返し、修正の都度ソースコード検証を実行する。よって、本実施形態を適用すれば格段に検証時間を短縮することができる。
【００３９】
また、本実施形態は、受け付けた新規モデル情報に対応する既存モデル情報を記憶していないときは、当該新規モデルを既存モデル情報として記憶し、当該新規モデルを検証することにより生成される新規検証結果ファイルを既存検証結果ファイルとして記憶する。これにより、いずれのモデル情報からも既存モデル情報および既存モデル検証結果ファイルを生成して記憶することが可能となる。これにより、当該既存モデル情報の元となったソースファイルが変更されて、当該ソースファイルから生成された新規モデル情報を受け付けたとき、本実施形態は差分モデル情報を生成することができる。
【００４０】
〔第２の実施形態〕
図３は、本発明の第２の実施形態に係るモデル生成装置１００を備えるソースコード検証システム１０００の構成図である。本実施形態のソースコード検証システム１０００は、モデル生成装置１００およびモデル検証装置２００を備える。
【００４１】
本実施形態のモデル検証装置２００は、第１の実施形態と同様に、モデル生成部２１０とモデル検証部２２０とを含む。
【００４２】
本実施形態のモデル生成装置１００は、第１の実施形態と同様に、記憶部１３０、情報処理部１１０、受付部１１１、モデル比較部１１２、論理式抽出部１１３、既存論理式変換部１１４および差分モデル生成部１１５を含む。
【００４３】
さらに、本実施形態のモデル生成装置１００は、モデル検証装置２００（モデル検証部２２０）がモデル情報として差分モデル情報を検証することにより生成された差分検証結果ファイルを、受付部１１１が受け付けたとき、受け付けた差分検証結果ファイルと記憶部１３０から読み出した既存検証結果ファイルとを比較して差分の有無を判定する検証結果比較部１１６を含む。さらに、モデル生成装置１００は、検証結果比較部１１６により差分有りと判定されたとき、当該差分検証結果ファイルに含まれる検証結果のうち既存検証結果ファイルに含まれる検証結果とは異なる検証結果差分を抽出する検証結果差分抽出部１１７を含む。さらに、モデル生成装置１００は、検証結果差分抽出部１１７により抽出された検証結果差分に基づいて差分モデル情報を更新する差分モデル更新部１２１を含む。
【００４４】
上述の検証結果比較部１１６、検証結果差分抽出部１１７および差分モデル更新部１２１も、情報処理部１１０に内包されている。
【００４５】
これらの情報処理部１１０に内包される構成の全部または一部も、ハードウェアで実現されてもよいし、あるいは、プロセッサに処理を実行させるプログラム（またはプログラムコード）で実現されてもよい。
【００４６】
情報処理部１１０に内包される構成がプログラムによって実施される場合、当該プログラムはプロセッサ（コンピュータ）で読み出し可能な記憶媒体に格納される。そして、当該プログラムは、モデル検証装置２００から検証結果ファイルを受け付ける検証結果受付処理をプロセッサに実行させる。また、当該プログラムは、検証結果受付処理において受け付けた検証結果ファイルを記憶部１３０に記憶する検証結果記憶処理をプロセッサに実行させる。さらに、当該プログラムは、モデル検証装置２００がモデル情報として差分モデル情報を検証することにより生成された差分検証結果ファイルを、受付処理において受け付けたとき、記憶部１３０から既存検証結果ファイルを読み出して、受け付けた差分検証結果ファイルと読み出した既存検証結果ファイルとを比較して差分の有無を判定する検証結果比較処理をプロセッサに実行させる。さらに、当該プログラムは、検証結果比較処理において差分有りと判定されたとき、当該差分検証結果ファイルに含まれる検証結果のうち既存検証結果ファイルに含まれる検証結果とは異なる検証結果差分を抽出する検証結果差分抽出処理をプロセッサに実行させる。さらに、当該プログラムは、検証結果差分抽出処理において抽出された検証結果差分に基づいて差分モデル情報を更新する差分モデル更新処理をプロセッサに実行させる。
【００４７】
差分モデル更新部１２１により更新された差分モデル情報は、モデル検証装置２００（モデル検証部２２０）に送出されて、モデル検証装置２００（モデル検証部２２０）にモデル情報として検証されてもよい。また、当該差分モデル情報はモデル検証装置２００以外の装置に送出されてもよい。さらに、当該差分モデル情報は記憶部１３０に格納されてもよい。
【００４８】
さらに、差分モデル更新部１２１により更新された差分モデル情報を検証した結果を受付部１１１が受け付けたとき、モデル生成装置１００は、上記の処理を繰り返して差分モデルをさらに更新してもよい。
【００４９】
なお、モデル生成装置１００は、受付部１１１が受け付けた新規モデル情報に含まれる論理式のうち検証結果差分により示される未検証論理式と、当該差分検証結果ファイルに含まれる検証結果のうち既存検証結果ファイルに含まれる検証結果により示される検証済論理式と、を抽出する検証論理式抽出部１１８を含んでもよい。さらに、モデル生成装置１００は、記憶部１３０から読み出した既存検証結果ファイルから検証済論理式の検証結果を抽出し、モデル検証装置２００による検証結果が検証済論理式の検証結果と同じとなる定数式に検証済論理式を変換する検証済論理式変換部１１９を含んでもよい。このとき、差分モデル更新部１２１は、検証済論理式変換部１１９により生成された定数式と検証論理式抽出部１１８により抽出された未検証論理式とをマージして生成された情報を差分モデル情報とすることができる。
【００５０】
検証論理式抽出部１１８において未検証論理式または検証済論理式を抽出するとは、モデル情報から未検証論理式または検証済論理式そのものを抽出してもよいし、モデル情報における未検証論理式または検証済論理式が存在する位置を示す情報を抽出してもよい。また、検証論理式抽出部１１８において未検証論理式または検証済論理式を抽出するとは、いずれか一方を抽出して、それを除く論理式を他方とすることを含んでもよい。
【００５１】
さらに、受付部１１１が差分検証結果ファイルを受け付けたとき、記憶部１３０は、受け付けた差分検証結果ファイルを記憶してもよい。そして、モデル生成装置１００は、検証結果比較部１１６により差分無しと判定されたとき、記憶部１３０に記憶された一つまたは複数の差分検証結果ファイルをマージして統合検証結果ファイルを生成する検証結果マージ部１２２を含んでもよい。
【００５２】
なお、検証結果比較部１１６により差分無しと判定されたとき、記憶部１３０は、検証結果比較部１１６により比較された差分検証結果ファイルの元となった差分モデル情報を既存モデル情報として記憶してもよく、検証結果マージ部１２２により生成された統合検証結果ファイルを既存検証結果ファイルとして記憶してもよい。
【００５３】
ここで、記憶部１３０に記憶された差分検証結果ファイルが一つの場合、検証結果マージ部１２２は、一つの差分検証結果ファイルをそのまま統合検証結果ファイルとしてもよいし、何らかのデータを付加して統合検証結果ファイルを生成してもよい。また、記憶部１３０に記憶された差分検証結果ファイルが複数とは、受付部１１１が一度に複数の差分検証結果ファイルを受け付けて、それらを記憶部１３０に記憶している場合を含んでもよいし、受付部１１１が複数回に分けて差分検証結果ファイルを受け付けて、それらを記憶部１３０に記憶している場合を含んでもよい。
【００５４】
検証結果マージ部１２２は、モデル検証装置２００が検証することにより認証された論理式に関する検証結果（検証して不具合なしと判定された箇所に関する情報）を統合検証結果ファイルから削除してもよい。この場合、検証結果マージ部１２２は、差分モデル更新部１２１が差分モデル情報を更新する度に認証された論理式に関する検証結果を検証結果ファイルから削除してもよいし、統合検証結果ファイルを生成するときに一括して削除してもよい。これにより、修正の必要な箇所を示す情報のみを残すことができ、統合検証結果ファイルのデータ容量を圧縮することができるので好適である。
【００５５】
また、検証結果マージ部１２２は、統合検証結果ファイルを生成した後、記憶部１３０からマージされた差分検証結果ファイルを削除してもよい。これにより、記憶部１３０に記憶される差分検証結果ファイルのデータ容量を圧縮または削減することができる。
【００５６】
モデル生成装置１００は、記憶部１３０に記憶されている既存検証結果ファイルを利用者が認識可能な形式で出力する出力部１４０を含んでもよい。出力部１４０は、統合検証結果ファイルを表示出力するディスプレイ装置でもよく、統合検証結果ファイルを印字出力する印刷装置でもよく、統合検証結果ファイルを音声出力するスピーカ装置でもよい。
【００５７】
図４は、本発明の第２の実施形態に係るモデル生成方法を示すフローチャートである。本実施形態のモデル生成方法が備える記憶ステップ（ステップＴ１）は、図２で説明した記憶ステップ（ステップＳ１）と同様のステップである。差分モデル生成ステップ（ステップＴ３）は、図２で説明したステップＳ２〜ステップＳ９を全て含んでいる。そして、このモデル生成方法は、差分モデル生成ステップ（ステップＴ３）において生成された差分モデル情報を、モデル検証装置２００により検証するモデル検証ステップ（ステップＴ４）を備える。
【００５８】
さらに、このモデル生成方法は、モデル検証装置２００がモデル情報として差分モデル情報を検証することにより生成された差分検証結果ファイルを受け付ける検証結果受付ステップ（ステップＴ５）を備える。さらに、このモデル生成方法は、検証結果受付ステップ（ステップＴ５）において受け付けた差分検証結果ファイルと記憶ステップ（ステップＴ１）において記憶した既存検証結果ファイルとを比較して差分の有無を判定する検証結果比較ステップ（ステップＴ７）を備える。さらに、このモデル生成方法は、検証結果比較ステップにおいて差分有りと判定されたとき（ステップＴ８のＹＥＳ）、当該差分検証結果ファイルに含まれる検証結果のうち既存検証結果ファイルに含まれる検証結果とは異なる検証結果差分を抽出する検証結果差分抽出ステップ（ステップＴ９）を備える。さらに、このモデル生成方法は、検証結果差分抽出ステップ（ステップＴ９）により抽出された検証結果差分に基づいて差分モデル情報を更新する差分モデル更新ステップ（ステップＴ１２）を備える。
【００５９】
さらに、このモデル生成方法は、差分モデル生成ステップ（モデル受付ステップ）（ステップＴ３）において受け付けた新規モデル情報に含まれる論理式のうち検証結果差分により示される未検証論理式と、当該差分検証結果ファイルに含まれる検証結果のうち既存検証結果ファイルに含まれる検証結果により示される検証済論理式と、を抽出する検証論理式抽出ステップ（ステップＴ１０）を備える。さらに、このモデル生成方法は、記憶ステップ（ステップＴ１）において記憶した既存検証結果ファイルから検証済論理式の検証結果を抽出し、モデル検証装置２００による検証結果が検証済論理式の検証結果と同じとなる定数式に検証済論理式を変換する検証済論理式変換ステップ（ステップＴ１１）と、を備える。このとき、差分モデル更新ステップ（ステップＴ１２）は、検証済論理式変換ステップ（ステップＴ１１）において生成された定数式と検証論理式抽出ステップ（ステップＴ１０）において抽出された未検証論理式とをマージして生成された情報を差分モデル情報とすることができる。
【００６０】
このモデル生成方法は、差分モデル更新ステップ（ステップＴ１２）において差分モデル情報が更新されると、モデル検証ステップ（ステップＴ４）に移行して、ステップＴ４以降のステップを繰り返す。
【００６１】
さらに、このモデル生成方法は、検証結果受付ステップ（ステップＴ５）において差分検証結果ファイルを受け付けたとき、受け付けた差分検証結果ファイルを記憶する検証結果記憶ステップ（ステップＴ６）を備える。さらに、このモデル生成方法は、検証結果比較ステップにおいて差分無しと判定されたとき（ステップＴ８のＮＯ）、検証結果記憶ステップ（ステップＴ６）において記憶した一つまたは複数の差分検証結果ファイルをマージして統合検証結果ファイルを生成する検証結果マージステップ（ステップＴ１３）を備える。
【００６２】
ここで、検証結果比較ステップにおいて差分無しと判定されたとき（ステップＴ８のＮＯ）、記憶ステップ（ステップＴ１）は、検証結果比較ステップ（ステップＴ７）において比較された差分検証結果ファイルの元となった差分モデル情報を既存モデル情報として記憶し、検証結果マージステップ（ステップＴ１３）において生成された統合検証結果ファイルを既存検証結果ファイルとして記憶する。
【００６３】
さらに、このモデル生成方法は、記憶ステップ（ステップＴ１）において記憶された既存検証結果ファイルを出力するとき（ステップＴ２のＹＥＳ）、利用者が認識可能な形式で出力する出力ステップ（ステップＴ１４）を備える。このモデル生成方法のフローは、出力ステップ（ステップＴ１４）を終えて終了となる。記憶ステップ（ステップＴ１）において記憶された既存検証結果ファイルを出力しない間（ステップＴ２のＮＯ）、このモデル生成方法はステップＴ３以降のステップを繰り返してもよい。
【００６４】
ここで、第２の実施形態の効果について説明する。本実施形態は、差分モデル情報を検証して生成される差分検証結果ファイルと既存検証結果ファイルとを比較するので、モデル形式における比較では一致しても検証結果が一致しないエラーを検知することができる。モデル検査方式を用いたソースコード検証は、ソースファイルおよびサブルーチンに跨った検証を行うため、上記のようなエラーが発生する場合があるが、このようなエラーを漏れなく検知することができる。
【００６５】
また、本実施形態は、差分検証結果ファイルと既存検証結果ファイルで差分有りと判定されたとき、差分モデル情報を更新して再び検証するので、上述のようなエラーを確実に解決することができる。
【００６６】
さらに、本実施形態は、上述のようなエラーが検知されなくなると、検証を繰り返して生成された差分検証結果ファイルをマージして統合検証結果ファイルを生成する。この統合検証結果ファイルを次回以降の既存検証結果ファイルとして記憶し、最後に生成された差分モデル情報を既存モデル情報として記憶するので、また新たに新規モデル情報を受け付けたときには、これまでの検証結果が全て反映された既存検証結果ファイルと既存モデル情報とに基づいて差分モデル情報を生成することができる。
【００６７】
さらに、統合検証結果ファイルを既存検証結果ファイルとして利用者に出力するので、利用者は不要な検証結果に煩わされることがない。
【００６８】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【００６９】
図１および図３において、モデル検証装置２００とモデル生成装置１００との間の情報伝達経路は、一本の有線で図示しているが、これに限らなくてもよい。例えば、複数の有線が用いられてもよいし、無線通信を用いられてもよい。さらに、モデル検証装置２００とモデル生成装置１００との間の情報伝達経路は、何らかの外部ネットワークや他装置を介してもよい。
【００７０】
また、第２の実施形態において、モデル生成装置１００は、検証論理式抽出部１１８、検証済論理式変換部１１９、検証結果マージ部１２２および出力部１４０を含むように説明したが、これに限らなくてもよく、上述の構成要素のうち一部または全部を矛盾しない範囲で省いてもよい。
【００７１】
さらに、第１および第２の実施形態において、モデル生成装置１００により生成された差分モデル情報は、モデル検証装置２００に送出されて検証されたが、他の装置に送出されてもよいし、必ずしも検証されなくてもよい。
【００７２】
なお、当然ながら、上述した実施の形態および複数の変形例は、その内容が相反しない範囲で組み合わせることができる。また、上述した実施の形態および変形例では、各構成要素の機能などを具体的に説明したが、その機能などは本願発明を満足する範囲で各種に変更することができる。
【符号の説明】
【００７３】
１００    モデル生成装置
１１０    情報処理部
１１１    受付部
１１２    モデル比較部
１１３    論理式抽出部
１１４    既存論理式変換部
１１５    差分モデル生成部
１１６    検証結果比較部
１１７    検証結果差分抽出部
１１８    検証論理式抽出部
１１９    検証済論理式変換部
１２１    差分モデル更新部
１２２    検証結果マージ部
１３０    記憶部
１４０    出力部
２００    モデル検証装置
２１０    モデル生成部
２２０    モデル検証部
１０００  ソースコード検証システム
【図１】
2010198558.tif 000003
【図２】
2010198558.tif 000004
【図３】
2010198558.tif 000005
【図４】
2010198558.tif 000006