(57)【特許請求の範囲】
【請求項１】
コンピュータを、
検証対象の仕様の変更前および変更後の仕様書を用いて、前記変更後の仕様書に含まれる複数の仕様項目であって、各々の仕様項目が、前記検証対象の機能、前記検証対象の機能を実現する一連の操作を定義するシナリオ、前記一連の操作に含まれる操作のいずれかをあらわす前記複数の仕様項目の中から変更箇所を特定する特定手段、
前記特定手段によって特定された変更箇所のうち一の仕様項目を選択する選択手段、
前記変更後の仕様書に含まれる仕様項目をノードとして有向グラフ化された遷移グラフを参照して、前記選択手段によって選択された一の仕様項目を起点として遷移元となる仕様項目を順次辿ることにより、前記仕様変更により影響を受ける仕様項目からなる経路を探索する探索手段、
前記一の仕様項目から前記探索手段によって探索された経路上の他の仕様項目に辿り着くまでの遷移回数に基づいて、前記経路上の仕様項目ごとの検証の必要性をあらわす優先度を算出する算出手段、
前記算出手段によって算出された算出結果を出力する出力手段、
として機能させることを特徴とする検証支援プログラム。
【請求項２】
前記コンピュータを、
前記探索手段によって探索された探索結果に基づいて、前記仕様変更により影響を受ける仕様項目がノード化され、前記算出手段によって算出された仕様項目ごとの優先度がそれぞれ対応するノードに付与された影響範囲グラフを作成する作成手段として機能させ、
前記出力手段は、
前記作成手段によって作成された影響範囲グラフを出力することを特徴とする請求項１に記載の検証支援プログラム。
【請求項３】
前記算出手段は、
前記経路上の仕様項目のうち、前記検証対象の機能を実現する一連の操作を定義するシナリオをあらわす仕様項目ごとの優先度を算出することを特徴とする請求項１または２に記載の検証支援プログラム。
【請求項４】
前記コンピュータを、
前記算出手段によって前記経路上の仕様項目の優先度が複数回算出された場合、前記複数の優先度を相対評価することにより、前記経路上の仕様項目の優先度を決定する決定手段として機能させ、
前記作成手段は、
前記決定手段によって決定された仕様項目ごとの優先度がそれぞれ対応するノードに付与された影響範囲グラフを作成することを特徴とする請求項２に記載の検証支援プログラム。
【請求項５】
前記探索手段は、
前記選択手段によって前記検証対象の機能をあらわす一の仕様項目が選択された場合、前記機能に属するシナリオをあらわす仕様項目を起点とする前記経路を探索することを特徴とする請求項１〜４のいずれか一つに記載の検証支援プログラム。
【請求項６】
前記探索手段は、
前記選択手段によって前記検証対象の機能を実現するために実行される操作をあらわす一の仕様項目が選択された場合、前記操作の属するシナリオをあらわす仕様項目を起点とする前記経路を探索することを特徴とする請求項１〜５のいずれか一つに記載の検証支援プログラム。
【請求項７】
検証対象の仕様の変更前および変更後の仕様書を用いて、前記変更後の仕様書に含まれる複数の仕様項目であって、各々の仕様項目が、前記検証対象の機能、前記検証対象の機能を実現する一連の操作を定義するシナリオ、前記一連の操作に含まれる操作のいずれかをあらわす前記複数の仕様項目の中から変更箇所を特定する特定手段と、
前記特定手段によって特定された変更箇所のうち一の仕様項目を選択する選択手段と、
前記変更後の仕様書に含まれる仕様項目をノードとして有向グラフ化された遷移グラフを参照して、前記選択手段によって選択された一の仕様項目を起点として遷移元となる仕様項目を順次辿ることにより、前記仕様変更により影響を受ける仕様項目からなる経路を探索する探索手段と、
前記一の仕様項目から前記探索手段によって探索された経路上の他の仕様項目に辿り着くまでの遷移回数に基づいて、前記経路上の仕様項目ごとの検証の必要性をあらわす優先度を算出する算出手段と、
前記算出手段によって算出された算出結果を出力する出力手段と、
を備えることを特徴とする検証支援装置。
【請求項８】
制御手段および記憶手段を備えるコンピュータが、
前記制御手段により、前記記憶手段に記憶されている検証対象の仕様の変更前および変更後の仕様書を用いて、前記変更後の仕様書に含まれる複数の仕様項目であって、各々の仕様項目が、前記検証対象の機能、前記検証対象の機能を実現する一連の操作を定義するシナリオ、前記一連の操作に含まれる操作のいずれかをあらわす前記複数の仕様項目の中から変更箇所を特定する特定工程と、
前記制御手段により、前記特定工程によって特定された変更箇所のうち一の仕様項目を選択する選択工程と、
前記制御手段により、前記記憶手段に記憶されている前記変更後の仕様書に含まれる仕様項目をノードとして有向グラフ化された遷移グラフを参照して、前記選択工程によって選択された一の仕様項目を起点として遷移元となる仕様項目を順次辿ることにより、前記仕様変更により影響を受ける仕様項目からなる経路を探索する探索工程と、
前記制御手段により、前記一の仕様項目から前記探索工程によって探索された経路上の他の仕様項目に辿り着くまでの遷移回数に基づいて、前記経路上の仕様項目ごとの検証の必要性をあらわす優先度を算出する算出工程と、
前記制御手段により、前記算出工程によって算出された算出結果を出力する出力工程と、
を実行することを特徴とする検証支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソフトウェアやハードウェアなどの設計対象の仕様検証を支援する技術に関する。
【背景技術】
【０００２】
近年、ソフトウェアやハードウェアの開発においては、設計技術の進歩によりソフトウェアやハードウェアの開発対象が大規模化している。一方で、開発工程全体における検証工程の占める割合が増加する傾向にある。検証工程では、設計者によって作成されたテストシナリオを用いて、開発対象が仕様通りに動作するか否かの検証がおこなわれる。
【０００３】
また、バグの発見や顧客の要望により、開発対象の仕様を変更する場合がある。この場合、仕様変更に合わせてテストシナリオを再作成し、開発対象を再検証する必要がある。ところが、仕様が変更される度に、すべてのテスト項目について再検証するとなると、リグレッションテストにかかる作業コストが膨大なものとなってしてしまう。
【０００４】
従来において、仕様変更にともなうリグレッションテストの作業効率を向上させるために、優先順位の高いテストシナリオを選択して実行する技術が提供されている。
【０００５】
【特許文献１】特開２００２−０１４８４７号公報
【特許文献２】特開平１１−３９３６３号公報
【特許文献３】特開２００６−２５２４８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した特許文献１〜３に記載の従来技術では、開発対象に与えるテストシナリオの優先順位が仕様変更に合わせて再計算されないため、仕様変更により間接的に影響を受ける箇所を特定することが難しいという問題があった。このため、依然としてリグレッションテストにかかる作業コストが増大してしまい、ひいては設計期間の長期化を招くという問題があった。
【０００７】
この発明は、上述した従来技術による問題点を解消するため、検証対象の仕様変更に合わせてテストシナリオの優先順位を再計算することで、再検証に必要となるテストシナリオを絞り込むことができ、検証作業の効率化および設計期間の短縮化を図ることを目的とする。
【課題を解決するための手段】
【０００８】
検証対象の仕様の変更前および変更後の仕様書を用いて、前記変更後の仕様書に含まれる複数の仕様項目の中から変更箇所を特定し、特定された変更箇所のうち一の仕様項目を選択し、前記変更後の仕様書に含まれる仕様項目に関する遷移グラフを参照して、選択された一の仕様項目を起点として遷移元となる仕様項目を順次辿ることにより、前記仕様変更により影響を受ける仕様項目からなる経路を探索し、探索された探索結果を出力することを要件とする。
【０００９】
この技術によれば、検証対象の仕様変更により影響を受ける機能を特定し、再検証に必要となるテストシナリオを絞り込むことができる。
【発明の効果】
【００１０】
検証対象の仕様変更に合わせてテストシナリオの優先順位を再計算することで、再検証に必要となるテストシナリオを絞り込むことができ、検証作業の効率化および設計期間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１１】
以下に添付図面を参照して、好適な実施の形態を詳細に説明する。本実施の形態では、ソフトウェアやハードウェアなどの検証対象の仕様変更により影響を受ける機能を探索し、その機能の動作を検証するテストシナリオを特定することで、再検証に必要となるテストシナリオを絞りこむ。
【００１２】
（本実施の形態の概要）
まず、本実施の形態の概要について説明する。図１は、本実施の形態の概要を示す説明図である。図１において、まず、検証支援装置１００は、ソフトウェアやハードウェアなどの検証対象の仕様変更前後の仕様書Ｍ１，Ｍ２の入力を受け付ける。
【００１３】
このあと、変更後の仕様書Ｍ１と変更前の仕様書Ｍ２との差分を特定して、差分集合（仕様変更により変更された変更箇所）として保持する。つぎに、変更後の仕様書Ｍ１に関する遷移グラフを参照して、差分集合として保持されている変更箇所により影響を受ける範囲を探索する。
【００１４】
さらに、探索された範囲をグラフ化することで、仕様変更により影響を受ける仕様項目を特定する影響範囲グラフを作成する。また、影響範囲グラフ内の変更箇所の仕様項目（シナリオ）から他の仕様項目に辿り着くまでの距離（遷移回数）に基づいて、影響範囲グラフ内の各仕様項目（シナリオ）の優先度を算出する。最後に、各仕様項目に優先度が付与された影響範囲グラフを出力する。
【００１５】
本実施の形態では、上述したように、仕様変更により影響を受ける機能を網羅的に特定し、再検証の必要性をあらわす優先度をシナリオごとに算出する。これにより、再検証が必要となるテストシナリオを系統的に特定することができる。この結果、予め設定されているテストシナリオの優先順位（たとえば、シナリオの属性をもとに設定された優先順位）を仕様変更に応じて変更し、再検証に必要となるテストシナリオを絞り込むことで、検証作業の効率化を図る。
【００１６】
（仕様書のデータ構造）
つぎに、仕様書Ｍ１，Ｍ２のデータ構造について説明する。図２は、仕様書のデータ構造をモデル化して示す説明図である。図２において、仕様モデル２００には、検証対象の機能Ｆ１，Ｆ２，・・・と、シナリオＳ１，・・・、Ｓｉと、操作Ｏｐ１，・・・、Ｏｐｊと、パラメータＰ１，・・・、Ｐｋと、が階層構造化されて表現されている。
【００１７】
機能Ｆ（たとえば、機能Ｆ１）は、シナリオＳ（たとえば、シナリオＳ１，・・・、Ｓｉ）を含む構成となっている。シナリオＳは、基本、代替、例外のいずれかの属性を持ち、それぞれ実行条件（事前条件、事後条件、不変条件）が定義されている。また、各シナリオＳには、それぞれ対応するテストパターンが付属している。シナリオＳは、各機能Ｆを実現するための操作Ｏｐ（たとえば、Ｏｐ１，・・・、Ｏｐｊ）を含む構成となっている。
【００１８】
操作Ｏｐは、機能Ｆを実現するために実行される操作であり、実行すべき順序を示している。各操作には、実行条件（事前条件、事後条件、不変条件）が定義されている。また、操作Ｏｐには、基本操作または別の機能Ｆを呼び出す場合がある。パラメータＰは、操作Ｏｐに与える引数である。
【００１９】
（検証支援装置のハードウェア構成）
つぎに、実施の形態にかかる検証支援装置１００のハードウェア構成について説明する。図３は、検証支援装置のハードウェア構成を示すブロック図である。図３において、検証支援装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、磁気ディスクドライブ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）３０４と、磁気ディスク（Ｈａｒｄ  Ｄｉｓｋ）３０５と、光ディスクドライブ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）３０６と、光ディスク（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）３０７と、ディスプレイ３０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０９と、キーボード３１０と、マウス３１１と、スキャナ３１２と、プリンタ３１３と、を備えている。また、各構成部はバス３００によってそれぞれ接続されている。
【００２０】
ここで、ＣＰＵ３０１は、検証支援装置１００の全体の制御を司る。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。磁気ディスクドライブ３０４は、ＣＰＵ３０１の制御にしたがって磁気ディスク３０５に対するデータのリード／ライトを制御する。磁気ディスク３０５は、磁気ディスクドライブ３０４の制御で書き込まれたデータを記憶する。
【００２１】
光ディスクドライブ３０６は、ＣＰＵ３０１の制御にしたがって光ディスク３０７に対するデータのリード／ライトを制御する。光ディスク３０７は、光ディスクドライブ３０６の制御で書き込まれたデータを記憶したり、光ディスク３０７に記憶されたデータをコンピュータに読み取らせたりする。
【００２２】
ディスプレイ３０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ３０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２３】
インターフェース（以下、「Ｉ／Ｆ」と略する。）３０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク３１４に接続され、このネットワーク３１４を介して他の装置に接続される。そして、Ｉ／Ｆ３０９は、ネットワーク３１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２４】
キーボード３１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス３１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００２５】
スキャナ３１２は、画像を光学的に読み取り、検証支援装置１００内に画像データを取り込む。なお、スキャナ３１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ３１３は、画像データや文書データを印刷する。プリンタ３１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００２６】
（検証支援装置の機能的構成）
つぎに、検証支援装置１００の機能的構成について説明する。図４は、検証支援装置の機能的構成を示すブロック図である。検証支援装置１００は、入力部４０１と、特定部４０２と、選択部４０３と、探索部４０４と、作成部４０５と、出力部４０６と、算出部４０７と、決定部４０８と、を含む構成である。この制御部となる機能（入力部４０１〜決定部４０８）は、具体的には、たとえば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０９により、その機能を実現する。
【００２７】
まず、入力部４０１は、検証対象の機能をあらわす仕様書の入力を受け付ける機能を有する。検証対象とは、たとえば、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）などのハードウェアや各種ソフトウェアなどの開発対象である。仕様書は、たとえば、マークアップ言語であるＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）によって記述された電子情報である。
【００２８】
具体的には、たとえば、図１に示した検証対象の仕様変更により変更された変更後の仕様書Ｍ１と、仕様変更により変更される変更前の仕様書Ｍ２との入力を受け付ける。なお、仕様書Ｍ１，Ｍ２は、検証支援装置１００に直接入力することとしてもよく、また、外部のコンピュータ装置から取得することとしてもよい。また、入力された仕様書は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００２９】
仕様書Ｍ１，Ｍ２は、たとえば、検証対象の機能（ユースケース）、シナリオ、操作、パラメータをあらわす複数の仕様項目から構成されている。機能とは、検証対象に要求される機能である。シナリオとは、機能を実現するために実行される一連の操作を定義するものである。シナリオと操作には、事前条件、事後条件、不変条件が定義されている。
【００３０】
事前条件とは、機能を実現する一連の操作の実行前に満たすべき（真となる）条件である。事後条件とは、一連の操作の実行後に満たすべき条件である。不変条件とは、事後条件が発生するまでの間（一連の操作の実行中）に要求される不変の条件である。仕様書Ｍ１，Ｍ２がＸＭＬによって記述されている場合、仕様項目は、たとえば、開始タグと終了タグとが設定された各要素（または、要素群）となる。
【００３１】
また、仕様変更とは、たとえば、機能の変更・追加・削除である。仕様変更には、他の機能に影響を与える変更と、他の機能に影響を与えない変更とがある。他の機能に影響を与える変更には、たとえば、シナリオの変更・追加・削除がある。より具体的には、事前条件、事後条件、不変条件の変更や操作一連の変更（たとえば、操作の順番の変更）などがある。操作の変更には、新たな操作を定義して操作一連に挿入するものがある。また、操作の仕様変更がある。この場合、アルゴリズムの変更またはパラメータの変更（引数の数が変わる、パラメータの有効範囲が変わる）がある。
【００３２】
特定部４０２は、検証対象の仕様の変更前および変更後の仕様書Ｍ１，Ｍ２を用いて、変更後の仕様書Ｍ１に含まれる複数の仕様項目の中から変更箇所を特定する機能を有する。具体的には、たとえば、既存の差分検出プロフラム（たとえば、ｄｉｆｆコマンド）を用いて、仕様書Ｍ１と仕様書Ｍ２との差分を検出することで、仕様変更により変更された変更箇所を特定することができる。差分集合は、たとえば、ＸＭＬによって記述された仕様項目の集合となる。なお、特定された特定結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００３３】
ここで、仕様変更により変更された変更箇所をあらわす差分集合について説明する。図５は、差分集合の具体例を示す説明図である。図５において、差分集合５００は、仕様変更前後の仕様書Ｍ１，Ｍ２の差分をあらわす仕様項目の集合である。この差分集合５００は、ＸＭＬによって記述された仕様項目の集合である。
【００３４】
差分集合５００において、行頭に「＋」が付されている仕様項目は、変更後の仕様書Ｍ１にのみ記述されている仕様項目である。また、行頭に「−」が付されている仕様項目は、変更前の仕様書Ｍ２にのみ記述されている仕様項目である（図５では不図示）。
【００３５】
また、差分集合５００において、記号「＠＠」の間の数値５０１は仕様書Ｍ１，Ｍ２内の行数を特定するためのものである。この数値５０１を参照することで、変更箇所の仕様書Ｍ１，Ｍ２内における位置を特定することができる。たとえば、変更箇所の仕様書Ｍ１内における位置は「＋３２，４５」から特定することができる。
【００３６】
選択部４０３は、特定部４０２によって特定された変更箇所のうち一の仕様項目を選択する機能を有する。たとえば、図５に示した差分集合５００の中から一の仕様項目を選択する。具体的には、たとえば、ＸＭＬタグが＜Ｆｕｎｃｔｉｏｎ＞、＜Ｓｃｅｎａｒｉｏ＞、＜Ｏｐｅｒａｔｉｏｎ＞のいずれかの仕様項目を選択することとしてもよい。
【００３７】
なお、選択された一の仕様項目が上記以外であった場合、その一の仕様項目が属する上位のＸＭＬタグ（上記いずれかとなる）を特定し、そのＸＭＬタグの仕様項目を選択する。たとえば、差分集合５００の中から仕様項目５０２が選択された場合、仕様項目５０２が属する上位の＜Ｓｃｅｎａｒｉｏ＞を特定して選択する。なお、選択された選択結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００３８】
探索部４０４は、変更後の仕様書Ｍ１に含まれる仕様項目に関する遷移グラフを参照して、選択部４０３によって選択された一の仕様項目を起点として遷移元となる仕様項目を順次辿ることにより、仕様変更により影響を受ける仕様項目からなる経路を探索する機能を有する。
【００３９】
具体的には、一の仕様項目から特定されるシナリオをあらわす仕様項目を起点として遷移元となる仕様項目を順次辿ることにより、仕様変更により影響を受ける仕様項目からなる経路を探索する。ここで、一の仕様項目が機能をあらわす場合、その機能に属するシナリオをあらわす仕様項目を特定し、その仕様項目を起点とする経路を探索する。
【００４０】
また、一の仕様項目が操作をあらわす場合、その操作の属するシナリオをあらわす仕様項目を起点とする経路を探索する。また、一の仕様項目がシナリオをあらわす場合には、一の仕様項目を起点とする経路を探索する。なお、探索された探索結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００４１】
ここで、遷移グラフとは、たとえば、図２に示した仕様モデル２００のデータ構造を表現する有向グラフである。具体的には、たとえば、仕様書Ｍ１の記述内容に基づいて、機能ＦとシナリオＳとがノード化され、各ノード間のリンク関係を表現する遷移グラフを作成することとしてもよい。
【００４２】
さらに、仕様書Ｍ１に含まれる仕様項目から特定されるシナリオＳのみをノードとし、機能ＦとシナリオＳとのリンク関係をもとに各ノード間が接続された遷移グラフを作成することとしてもよい。また、仕様書Ｍ２のデータ構造を表現する遷移グラフに、選択部４０３によって選択された一の仕様項目から特定されるシナリオをノードとして追加することで、仕様変更後のデータ構造を表現する遷移グラフを作成することとしてもよい。
【００４３】
探索部４０４による探索処理の具体例としては、たとえば、既存の探索アルゴリズムを用いて遷移グラフを参照することで、起点となるシナリオをあらわすノードからリンク関係を逆方向に辿ることにより、仕様変更により影響を受けるノードからなる経路を探索する。なお、遷移グラフおよび探索結果の具体例は、後述する実施例において説明する。
【００４４】
作成部４０５は、探索部４０４によって探索された探索結果に基づいて、仕様変更により影響を受ける範囲を特定する影響範囲グラフを作成する機能を有する。具体的には、たとえば、探索部４０４によって探索された複数の経路を連結することで、仕様変更により影響を受ける範囲をあらわす影響範囲グラフを作成する。なお、作成された作成結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。また、影響範囲グラフの具体例については、後述する実施例において説明する。
【００４５】
出力部４０６は、探索部４０４によって探索された探索結果を出力する機能を有する。具体的には、たとえば、探索部４０４によって探索された経路上に存在するシナリオをリスト化して出力することとしてもよい。また、作成部４０５によって作成された影響範囲グラフを出力することとしてもよい。出力部４０６による出力形式は、ディスプレイ３０８での画面表示、プリンタ３１３での印刷出力、メモリへのデータ出力（保存）、外部のコンピュータ装置への送信のいずれであってもよい。
【００４６】
設計者は、出力部４０６による出力結果（たとえば、影響範囲グラフ）を参照することで、仕様変更により影響を受ける機能を特定することができる。この結果、不具合が発生する可能性が高い機能のシナリオを特定することができ、再検証が必要となるテストシナリオ（なぜなら、テストシナリオはシナリオに属している）を絞り込むことができる。
【００４７】
算出部４０７は、一の仕様項目から探索部４０４によって探索された経路上の他の仕様項目に辿り着くまでの遷移回数に基づいて、経路上の仕様項目の検証の必要性をあらわす優先度を算出する機能を有する。具体的には、経路上の起点となるシナリオ（仕様項目）から他の仕様項目へのリンクを逆方向に辿ることで、各シナリオ（仕様項目）に辿り着くまでの遷移回数を計数し、その計数結果を用いて優先度を算出する。
【００４８】
このとき、計数された遷移回数を各仕様項目の優先度としてもよい。この場合、数値が大きいほど優先度が低く、数値が小さいほど優先度が高いことをあらわしている。また、計数された遷移回数に基づいて、遷移回数が少ないほど高い数値となる優先度を算出することとしてもよい。なお、算出された算出結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００４９】
また、決定部４０８は、算出部４０７によって経路上の仕様項目の優先度が複数回算出された場合、複数の優先度を相対評価することにより、経路上の仕様項目の優先度を決定する機能を有する。具体的には、一つのシナリオに対して複数の優先度が算出された場合、優先度が最も高い優先度を、そのシナリオの優先度として決定する。なお、決定された決定結果は、ＲＡＭ３０３、磁気ディスク３０５、光ディスク３０７などの記憶領域に記憶される。
【００５０】
出力部４０６は、算出部４０７によって算出された算出結果（または、決定部４０８によって決定された決定結果）を出力する機能を有する。具体的には、シナリオと優先度とを関連付けてあらわす算出結果を出力することとしてもよく、作成部４０５によって作成された影響範囲グラフ内の各シナリオに優先度が付与されたものを出力することとしてもよい。
【００５１】
設計者は、出力部４０６による出力結果（たとえば、優先度が付与された影響範囲グラフ）を参照することにより、不具合が発生する可能性が高い機能のシナリオの優先度を特定することができ、再検証をおこなうべきテストシナリオの優先順位を認識することができる。これにより、再検証が必要となるテストシナリオをさらに絞り込むことができる。
【００５２】
（検証支援装置の検証支援処理手順）
つぎに、本実施の形態にかかる検証支援装置１００の検証支援処理手順について説明する。まず、仕様変更により影響を受ける範囲を特定する影響範囲グラフを作成する検証支援処理手順について説明する。図６は、検証支援装置の検証支援処理手順の一例を示すフローチャート（その１）である。図６のフローチャートにおいて、まず、入力部４０１により、仕様変更による変更後および変更前の仕様書Ｍ１，Ｍ２の入力を受け付けたか否かを判断する（ステップＳ６０１）。
【００５３】
ここで、仕様書Ｍ１，Ｍ２が入力されるのを待って（ステップＳ６０１：Ｎｏ）、入力された場合（ステップＳ６０１：Ｙｅｓ）、特定部４０２により、仕様書Ｍ１と仕様書Ｍ２との差分を検出することで、検証対象の仕様変更により変更された変更箇所を特定する（ステップＳ６０２）。そして、変更後の仕様書Ｍ１に含まれる仕様項目に関する遷移グラフを作成する（ステップＳ６０３）。
【００５４】
このあと、選択部４０３により、特定部４０２によって特定された変更箇所のうち一の仕様項目を選択する（ステップＳ６０４）。ここで、選択された一の仕様項目が「操作」であった場合（ステップＳ６０５：Ｙｅｓ）、仕様書Ｍ１を参照して、その「操作」が属する「シナリオ」を特定して（ステップＳ６０６）、ステップＳ６０９に移行する。
【００５５】
一方、選択された一の仕様項目が「操作」ではなかった場合（ステップＳ６０５：Ｎｏ）、一の仕様項目は「シナリオ」か否かを判断する（ステップＳ６０７）。ここで、「シナリオ」ではなかった場合（ステップＳ６０７：Ｎｏ）、仕様書Ｍ１を参照して、一の仕様項目があらわす「機能」に属する「シナリオ」を特定して（ステップＳ６０８）、ステップＳ６０９に移行する。
【００５６】
一方、一の仕様項目が「シナリオ」であった場合（ステップＳ６０７：Ｙｅｓ）、探索部４０４により、ステップＳ６０３において作成された遷移グラフを参照して、選択された「シナリオ」（あるいは、ステップＳ６０６またはＳ６０８において特定された「シナリオ」）を起点として遷移元となる仕様項目を順次辿ることにより、仕様変更により影響を受ける仕様項目からなる経路を探索する（ステップＳ６０９）。
【００５７】
このあと、ステップＳ６０２において特定された変更箇所のうち、選択されていない未選択の仕様項目があるか否かを判断し（ステップＳ６１０）、未選択の仕様項目がある場合（ステップＳ６１０：Ｙｅｓ）、ステップＳ６０４に戻って、未選択の仕様項目の中から一の仕様項目を選択する。
【００５８】
一方、未選択の仕様項目がない場合（ステップＳ６１０：Ｎｏ）、作成部４０５により、ステップＳ６０９において探索された探索結果に基づいて、仕様変更により影響を受ける範囲を特定する影響範囲グラフを作成して（ステップＳ６１１）、出力部４０６により、作成された影響範囲グラフを出力して（ステップＳ６１２）、本フローチャートによる一連の処理を終了する。
【００５９】
つぎに、仕様変更により影響を受ける範囲内にあるシナリオの優先度を算出する検証支援処理手順について説明する。図７は、検証支援装置の検証支援処理手順の一例を示すフローチャート（その２）である。図７のフローチャートにおいて、まず、選択部４０３により、図６に示したステップＳ６０２において特定された変更箇所のうち一の仕様項目を選択する（ステップＳ７０１）。
【００６０】
このあと、選択された一の仕様項目が「操作」か否かを判断し（ステップＳ７０２）、一の仕様項目が「操作」であった場合（ステップＳ７０２：Ｙｅｓ）、仕様書Ｍ１を参照して、その「操作」が属する「シナリオ」を特定して（ステップＳ７０３）、ステップＳ７０６に移行する。
【００６１】
一方、選択された一の仕様項目が「操作」ではなかった場合（ステップＳ７０２：Ｎｏ）、一の仕様項目は「シナリオ」か否かを判断する（ステップＳ７０４）。ここで、「シナリオ」ではなかった場合（ステップＳ７０４：Ｎｏ）、仕様書Ｍ１を参照して、一の仕様項目があらわす「機能」に属する「シナリオ」を特定して（ステップＳ７０５）、ステップＳ７０６に移行する。
【００６２】
一方、一の仕様項目が「シナリオ」であった場合（ステップＳ７０４：Ｙｅｓ）、探索部４０４により、図６に示したステップＳ６１１において作成された影響範囲グラフを参照して、選択された「シナリオ」（あるいは、ステップＳ７０３またはＳ７０５において特定された「シナリオ」）から他の「シナリオ」（図６に示したステップＳ６０９において探索された経路上）に辿り着くまでの遷移回数に基づいて、各「シナリオ」の検証の必要性をあらわす優先度を算出する（ステップＳ７０６）。
【００６３】
このあと、変更箇所のうち選択されていない未選択の仕様項目があるか否かを判断し（ステップＳ７０７）、未選択の仕様項目がある場合（ステップＳ７０７：Ｙｅｓ）、ステップＳ７０１に戻って、未選択の仕様項目の中から一の仕様項目を選択する。
【００６４】
一方、未選択の仕様項目がない場合（ステップＳ７０７：Ｎｏ）、決定部４０８により、各「シナリオ」の検証の必要性をあらわす優先度を決定する（ステップＳ７０７）。具体的には、ステップＳ７０６において、一つの「シナリオ」の優先度が複数回算出された場合に、複数の優先度を相対評価することにより、その「シナリオ」の優先度を決定する。また、一つの「シナリオ」について、優先度が一回のみ算出された場合、算出された優先度をその「シナリオ」の優先度に決定する。
【００６５】
このあと、作成部４０５により、影響範囲グラフ内の各「シナリオ」に、決定部４０８によって決定された優先度が付与された影響範囲グラフを作成し（ステップＳ７０９）、出力部４０６により、作成された優先度が付与された影響範囲グラフを出力して（ステップＳ７１０）、本フローチャートによる一連の処理を終了する。
【００６６】
以上説明したように、本実施の形態によれば、検証対象の仕様変更により直接的および間接的に影響を受ける機能、すなわち、仕様変更により不具合が発生する可能性が高い機能を網羅的に特定することができる。これにより、検証対象の再検証に必要となるテストシナリオを絞り込むことができる。
【００６７】
また、検証対象の仕様変更により直接的および間接的に影響を受ける機能に関するシナリオごとに、再検証の必要性の度合を示す優先度を算出することで、各シナリオに属するテストシナリオの優先順位を特定することができる。そして、テストシナリオの優先順位を参照することで、検証対象の再検証に必要となるテストシナリオをさらに絞り込むことができる。
【００６８】
たとえば、検証期間に余裕がある場合は、絞り込まれたすべてのテストシナリオを実行することで、不具合の発生の可能性を漏れなく検証することができる。一方、検証期間に余裕がなく、絞り込まれたすべてのテストシナリオを実行することができない場合は、優先順位が高い（たとえば、上位３つ）のテストシナリオを実行することで、重大な不具合の発生の可能性を検証することができる。
【００６９】
このように、本実施の形態によれば、検証対象の仕様変更に合わせてテストシナリオの優先順位を再計算することで、再検証に必要となるテストシナリオを絞り込むことができ、検証作業の効率化および設計期間の短縮化を図ることができる。
【００７０】
（本実施の形態の実施例）
つぎに、本実施の形態の実施例について説明する。実施例では、検証対象となるＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラのＤＭＡ転送を制御する機能を例に挙げて説明する。このＤＭＡ転送では、４チェンネルまでの転送をプログラム可能であり、チャンネルの優先順位を設定可能とする。
【００７１】
また、機能を利用する際のパラメータの入力値は、転送に使用するチャンネル（初期値「０」、チェンネルとして「０〜３」のいずれかを設計可能）、チャンネルの優先順位（初期値「０」、優先度として「０または１」を設定可能）、転送元のアドレス、転送先のアドレス、転送データのサイズ（制約：１６の倍数、１０２４まで）、転送開始・完了ビット（初期値「０」、転送終了後、終了したチャンネルに該当するビットが「１」となる）である。また、出力値は、各チャンネルの転送終了フラグである。
【００７２】
ここで、仕様変更される変更前のＤＭＡコントローラの仕様書Ｍ２について説明する。図８は、仕様変更される変更前のＤＭＡコントローラの仕様書を示す説明図である。図８において、仕様書Ｍ２には、ＤＭＡコントローラのＤＭＡ転送を制御する機能がＸＭＬによって記述されている。なお、図面では、仕様書Ｍ２の一部を抜粋して表示している。
【００７３】
つぎに、ＤＭＡコントローラのＤＭＡ転送を制御する各機能を実現するために実行される一連の操作を定義するシナリオについて説明する。図９は、ＤＭＡコントローラのシナリオを示す説明図である。図９において、シナリオＳ１『ＤＭＡ転送』は、機能Ｆ１『ＤＭＡ転送を行なう』を実現するために実行される操作Ｏｐ１，Ｏｐ２を定義するシナリオである。
【００７４】
シナリオＳ２『チェンネル転送』は、機能Ｆ２『該当チャンネルのＤＭＡ転送を行なう』を実現するために実行される操作Ｏｐ３〜Ｏｐ７を定義するシナリオである。シナリオＳ３『Ｒｅｓｅｔ』は、機能Ｆ３『ハードリセットを行なう』を実現するために実行される操作Ｏｐ８，Ｏｐ９を定義するシナリオである。
【００７５】
つぎに、図８に示した仕様書Ｍ２に記述されている仕様をモデル化してあらわす遷移グラフについて説明する。図１０は、ＤＭＡコントローラの仕様をモデル化してあらわす遷移グラフである。なお、図面では、簡単のため一部のリンクを省略して表示している。
【００７６】
図１０において、遷移グラフ１０００は、ＤＭＡコントローラの機能Ｆ１〜Ｆ３と、シナリオＳ１〜Ｓ３との間の遷移をあらわす有向グラフである。シナリオＳ１から機能Ｆ２への遷移は、操作Ｏｐ２を実行することで機能Ｆ２が呼び出されることをあらわしている。この遷移グラフ１０００を参照することで、機能Ｆ１〜Ｆ３とシナリオＳ１〜Ｓ３との間のリンク関係を認識することができる。
【００７７】
以下、上述した事例（ＤＭＡコントローラ）を用いて、本実施の形態の実施例１〜３について説明する。なお、以降において、実施の形態で示した構成と同一構成については同一符号を付し、その説明を省略する。
【実施例１】
【００７８】
まず、実施例１について説明する。実施例１では、ＤＭＡコントローラの仕様変更により、新たな機能が追加された場合について説明する。具体的には、『割り込み発生』の機能が追加され、入力パラメータに『割り込みを利用するフラグ』が追加され、出力パラメータに『割り込み信号（割り込み要因）』が追加されている。
【００７９】
ここで、仕様変更された変更後のＤＭＡコントローラの仕様書Ｍ１について説明する。図１１は、仕様変更された変更後のＤＭＡコントローラの仕様書を示す説明図である。図１１において、仕様書Ｍ１には、仕様変更された変更後のＤＭＡコントローラのＤＭＡ転送を制御する機能がＸＭＬによって記述されている。なお、図面では、仕様書Ｍ１の一部を抜粋して表示している。
【００８０】
ここでは、検証対象のＤＭＡコントローラに『割り込みの発生』の機能を追加する仕様変更がおこなわれている（図１１中、符号１１０１）。詳細は後述するが、『割り込みの発生』の機能の追加とともに、シナリオ（図１２に示すシナリオＳ４，Ｓ５）の追加、実行条件の変更などもおこなわれている。また、入力パラメータに『割り込みを利用するフラグ』が追加され、出力パラメータに『割り込み信号』が追加されている。
【００８１】
つぎに、実施例１における各機能を実現するために実行される一連の操作を定義するシナリオについて説明する。図１２は、実施例１におけるＤＭＡコントローラのシナリオを示す説明図である。図１２において、ＤＭＡコントローラの仕様変更により、シナリオＳ４およびシナリオＳ５が追加されている。
【００８２】
シナリオＳ４『チャンネル転送後、割り込み』は、機能Ｆ２『該当チャンネルのＤＭＡ転送を行なう』を実現するために実行される操作Ｏｐ１０〜Ｏｐ１５を定義するシナリオである。シナリオＳ５『割り込み』は、機能Ｆ４『割り込みの発生』を実現するために実行される操作Ｏｐ１６〜Ｏｐ１８を定義するシナリオである。また、シナリオＳ２の事前条件が変更されている。
【００８３】
つぎに、図１１に示した仕様書Ｍ１に記述されている仕様をモデル化してあらわす遷移グラフについて説明する。図１３は、実施例１におけるＤＭＡコントローラの仕様をモデル化してあらわす遷移グラフである。なお、図面では、簡単のため一部のリンクを省略して表示している。
【００８４】
図１３において、遷移グラフ１３００は、ＤＭＡコントローラの機能Ｆ１〜Ｆ４と、シナリオＳ１〜Ｓ５との間の遷移をあらわす有向グラフである。シナリオＳ４から機能Ｆ４への遷移は、操作Ｏｐ１５を実行することで機能Ｆ４が呼び出されることをあらわしている。この遷移グラフ１３００を参照することで、機能Ｆ１〜Ｆ４とシナリオＳ１〜Ｓ４との間のリンク関係を認識することができる。
【００８５】
つぎに、特定部４０２によって特定される変更箇所をあらわす差分集合について説明する。図１４は、実施例１における差分集合を示す説明図である。図１４において、差分集合１４００は、図８に示した仕様書Ｍ２と図１１に示した仕様書Ｍ１との差分をあらわす仕様項目の集合である。なお、図面では、差分集合の一部を抜粋して表示している。
【００８６】
差分集合１４００において、たとえば、行頭に「＋」が付されている仕様項目『＜Ｐｏｓｔｃｏｎｄｉｔｉｏｎ＞入力パラメータと割り込みフラグが０＜／Ｐｏｓｔｃｏｎｄｉｔｉｏｎ＞』は、変更後の仕様書Ｍ１にのみ記述されている仕様項目である。また、行頭に「−」が付されている仕様項目『＜Ｐｏｓｔｃｏｎｄｉｔｉｏｎ＞入力パラメータが０＜／Ｐｏｓｔｃｏｎｄｉｔｉｏｎ＞』は、変更前の仕様書Ｍ２にのみ記述されている仕様項目である。
【００８７】
各仕様項目（差分項目）の仕様書Ｍ１，Ｍ２における位置は、差分集合１４００内の「＠＠・・・＠＠」に記述された行数を参照して、ＸＭＬ記述を操作するソフトウェアライブラリなどを利用することで特定することができる。
【００８８】
以下、影響範囲グラフを作成する一連の処理について説明する。まず、選択部４０３により、差分集合１４００の中から一の仕様項目を選択する。ここで、操作Ｏｐ８をあらわす一の仕様項目が選択された場合、操作Ｏｐ８が属するシナリオＳ３を特定する。具体的には、ＸＭＬ記述を操作するソフトウェアライブラリなどを利用することで特定する。
【００８９】
このあと、探索部４０４により、シナリオＳ３を参照する機能を特定する。具体的には、仕様書Ｍ１内のシナリオＳ３が属する機能Ｆ３の配下にあるＸＭＬタグ＜ＲｅｆｅｒｅｎｃｅｄＳｃｅｎａｒｉｏ＞を参照することで特定する。ここでは、シナリオＳ３『Ｒｅｓｅｔ』を参照する機能は存在しない。このため、探索部４０４により、遷移グラフ１３００を参照して、仕様変更により影響を受ける経路Ｐａ１が探索される（図１３参照）。
【００９０】
つぎに、選択部４０３により、差分集合１４００の中からシナリオＳ４をあらわす一の仕様項目が選択されたとする。この場合、探索部４０４により、シナリオＳ４を参照する機能、シナリオを特定する。具体的には、仕様書Ｍ１内のシナリオＳ４が属する機能Ｆ２の配下にあるＸＭＬタグ＜ＲｅｆｅｒｅｎｃｅｄＳｃｅｎａｒｉｏ＞を参照することで特定する。
【００９１】
ここでは、シナリオＳ４を参照するシナリオＳ１（機能Ｆ１の配下にあるシナリオ）が特定される。さらに、機能Ｆ１の配下にあるシナリオ（ここでは、特定されたシナリオＳ１のみ）を参照する機能、シナリオを特定する。ここでは、シナリオＳ１を参照する機能、シナリオは存在しない。このため、探索部４０４により、遷移グラフ１３００を参照して、仕様変更により影響を受ける経路Ｐａ２が探索される（図１３参照）。
【００９２】
つぎに、選択部４０３により、差分集合１４００の中から機能Ｆ４をあらわす一の仕様項目が選択されたとする。この場合、機能Ｆ４の配下にあるシナリオＳ５を特定する。具体的には、ＸＭＬ記述を操作するソフトウェアライブラリなどを利用することで特定する。このあと、探索部４０４により、シナリオＳ５を参照する機能、シナリオを特定する。具体的には、仕様書Ｍ１内のシナリオＳ５が属する機能Ｆ４の配下にあるＸＭＬタグ＜ＲｅｆｅｒｅｎｃｅｄＳｃｅｎａｒｉｏ＞を参照することで特定する。
【００９３】
ここでは、シナリオＳ５を参照するシナリオＳ４（機能Ｆ２の配下にあるシナリオ）が特定される。さらに、機能Ｆ２の配下にあるシナリオ２，シナリオＳ４を参照する機能、シナリオを特定する。ここでは、シナリオＳ４を参照するシナリオＳ１が特定される。このため、探索部４０４により、遷移グラフ１３００を参照して、仕様変更により影響を受ける経路Ｐａ３が探索される（図１３参照）。
【００９４】
以上で、差分集合１４００の中からすべての変更箇所が選択部４０３により選択されたこととなる。最後に、探索部４０４によって探索された経路Ｐａ１，Ｐａ２，Ｐａ３を連結することで、『割り込み発生』の機能を追加する仕様変更により影響を受ける仕様項目（ここでは、機能、シナリオ）がノード化された影響範囲グラフ１５００（後述する図１５参照）を作成する。
【００９５】
つぎに、検証の必要性をあらわす優先度を付与する一連の処理について説明する。図１５〜図１７は、実施例１における優先度付与の概要を示す説明図である。以下、探索部４０４により探索された経路Ｐａ１，Ｐａ２，Ｐａ３上のシナリオをあらわす仕様項目に優先度を付与する（機能をあらわす仕様項目は単なる経由点として扱う）。なお、優先度は「０」を含む整数とし、値が低いほど優先順位が高いことをあらわしている。
【００９６】
具体的には、影響範囲グラフ１５００内の各経路Ｐａ１，Ｐａ２，Ｐａ３上の起点となる仕様項目からリンクを逆方向に辿っていくことで、起点となる仕様項目からの遷移回数に基づく優先度を付与する。ここでは、算出部４０７は、各シナリオの優先度を遷移回数が少ない順に「０，１，…」と算出する。なお、起点となる仕様項目は、選択部４０３によって選択された一の仕様項目から特定されるシナリオをあらわす仕様項目である。
【００９７】
まず、図１５において、経路Ｐａ１では、シナリオＳ３が起点となる。この場合、シナリオＳ３が属する機能Ｆ３から他のシナリオへのリンクは存在しないため、シナリオＳ３にのみ優先度が付与される。優先度の値は、シナリオＳからの遷移回数は０回のため「０」となる。
【００９８】
つぎに、図１６において、経路Ｐａ２では、シナリオＳ４が起点となる。この場合、経路Ｐａ２上のシナリオＳ４からリンクを逆方向に辿っていくと『シナリオＳ４「０」→機能Ｆ２「１」→シナリオＳ１「２」→機能Ｆ１「３」』となる（「」は遷移回数）。このため、シナリオＳ４の優先度は「０」、シナリオＳ１の優先度は「１」となる。
【００９９】
最後に、図１７において、経路Ｐａ３では、シナリオＳ５が起点となる。この場合、経路Ｐａ３上のシナリオＳ５からリンクを逆方向に辿っていくと『シナリオＳ５「０」→機能Ｆ４「１」→シナリオＳ４「２」→機能Ｆ２「３」→シナリオＳ１「４」→機能Ｆ１「５」』となる（「」は遷移回数）。
【０１００】
また、既に優先度が付与されているシナリオＳ４，Ｓ１については、決定部４０８により、値が小さい優先度を各シナリオＳ４，Ｓ１の優先度して決定する。このため、シナリオＳ５の優先度は「０」、シナリオＳ４の優先度は「０」、シナリオＳ１の優先度は「１」となる。
【０１０１】
この場合、設計者は、優先度が付与された影響範囲グラフ１５００を参照することで、シナリオＳ３，Ｓ４，Ｓ５に属するテストシナリオの優先順位が最も高く、次いでシナリオＳ１に属するテストシナリオの優先順位が高いことを把握することができる。
【実施例２】
【０１０２】
つぎに、実施例２について説明する。実施例２では、ＤＭＡコントローラの仕様変更により、操作が変更された場合について説明する。具体的には、ＤＭＡ転送において、設定可能なチャンネル数が４から８に変更され、パラメータの有効範囲が変更されている。
【０１０３】
まず、実施例２における各機能を実現するために実行される一連の操作を定義するシナリオについて説明する。図１８は、実施例２におけるＤＭＡコントローラのシナリオを示す説明図である。図１８において、ＤＭＡコントローラの仕様変更により、操作Ｏｐ１，Ｏｐ３，Ｏｐ８の入力パラメータの有効範囲が変更されている。また、操作Ｏｐ７の出力パラメータの有効範囲が変更されている。
【０１０４】
この場合、各シナリオＳ１〜Ｓ３に属する操作（操作Ｏｐ１，Ｏｐ３，Ｏｐ７，Ｏｐ８）が変更されているため、すべてのシナリオＳ１〜Ｓ３が探索部４０４により探索される経路の起点となる。したがって、各シナリオＳ１〜Ｓ３に付与される優先度は「０」となる。
【０１０５】
図１９は、実施例２における影響範囲グラフを示す説明図である。図１９において、影響範囲グラフ１９００内のシナリオＳ１，Ｓ２，Ｓ３には、それぞれ優先度「０」が付与されている。この場合、設計者は、影響範囲グラフ１９００を参照することで、すべてのシナリオＳ１〜Ｓ３に付属するテストシナリオの優先順位が高いことを把握することができる。
【実施例３】
【０１０６】
つぎに、実施例３について説明する。実施例３では、ＤＭＡコントローラの仕様変更により、シナリオが変更された場合について説明する。具体的には、機能を利用する際のパラメータの入力値である転送元のアドレスおよび転送先のアドレスの有効範囲が変更され、さらに、機能を利用する際のパラメータの出力値であるエラーフラグが新たに追加されている。
【０１０７】
まず、実施例３における各機能を実現するために実行される一連の操作を定義するシナリオについて説明する。図２０および図２１は、実施例３におけるＤＭＡコントローラのシナリオを示す説明図である。
【０１０８】
図２０において、ＤＭＡコントローラの仕様変更により、シナリオＳ２の事前条件と事後条件が変更されている。さらに、操作Ｏｐ７の出力パラメータの有効範囲が変更されている。また、操作Ｏｐ８の入力パラメータの有効範囲および初期値が変更され、操作Ｏｐ９の出力パラメータの有効範囲および初期値が変更されている。
【０１０９】
図２１において、ＤＭＡコントローラの仕様変更により、新たなシナリオＳ６が追加されている。この場合、シナリオＳ２は、事前条件と事後条件とが変更され、操作Ｏｐ７の出力パラメータの有効範囲が変更されているため、探索部４０４により探索される経路の起点となる。
【０１１０】
また、シナリオＳ３は、操作Ｏｐ８の入力パラメータの有効範囲および初期値が変更され、操作Ｏｐ９の出力パラメータの有効範囲および初期値が変更されているため、探索部４０４により探索される経路の起点となる。シナリオＳ６は、新たに追加されたシナリオのため、探索部４０４により探索される経路の起点となる。したがって、各シナリオＳ２，Ｓ３，Ｓ６に付与される優先度は「０」となる。
【０１１１】
また、シナリオＳ１は、機能Ｆ２の配下にあるシナリオＳ６を参照するため（ここでは、仕様書Ｍ１内の機能Ｆ２の配下にあるＸＭＬタグ＜ＲｅｆｅｒｅｎｃｅｄＳｃｅｎａｒｉｏ＞にシナリオＳ１が記述されていると仮定する）、シナリオＳ６の遷移元となる。このため、シナリオＳ１に付与される優先度は「１」となる。
【０１１２】
図２２は、実施例３における影響範囲グラフを示す説明図である。図２２において、影響範囲グラフ２２００内のシナリオＳ２，Ｓ３，Ｓ６には、それぞれ優先度「０」が付与されており、シナリオＳ１には優先度「１」が付与されている。この場合、設計者は、影響範囲グラフ２２００を参照することで、シナリオＳ２，Ｓ３，Ｓ６に付属するテストシナリオの優先順位が最も高く、次いでシナリオＳ１に付属するテストシナリオの優先順位が高いことを把握することができる。
【０１１３】
なお、本実施の形態で説明した検証支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１１４】
また、本実施の形態で説明した検証支援装置１００は、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）によっても実現することができる。具体的には、たとえば、上述した検証支援装置１００の機能（入力部４０１〜決定部４０８）をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、検証支援装置１００を製造することができる。
【０１１５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１１６】
（付記１）コンピュータを、
検証対象の仕様の変更前および変更後の仕様書を用いて、前記変更後の仕様書に含まれる複数の仕様項目の中から変更箇所を特定する特定手段、
前記特定手段によって特定された変更箇所のうち一の仕様項目を選択する選択手段、
前記変更後の仕様書に含まれる仕様項目に関する遷移グラフを参照して、前記選択手段によって選択された一の仕様項目を起点として遷移元となる仕様項目を順次辿ることにより、前記仕様変更により影響を受ける仕様項目からなる経路を探索する探索手段、
前記探索手段によって探索された探索結果を出力する出力手段、
として機能させることを特徴とする検証支援プログラム。
【０１１７】
（付記２）前記コンピュータを、
前記一の仕様項目から前記探索手段によって探索された経路上の他の仕様項目に辿り着くまでの遷移回数に基づいて、前記経路上の仕様項目の検証の必要性をあらわす優先度を算出する算出手段として機能させ、
前記出力手段は、
前記算出手段によって算出された算出結果を出力することを特徴とする付記１に記載の検証支援プログラム。
【０１１８】
（付記３）前記コンピュータを、
前記探索手段によって探索された探索結果に基づいて、前記仕様変更により影響を受ける仕様項目がノード化された影響範囲グラフを作成する作成手段として機能させ、
前記出力手段は、
前記作成手段によって作成された影響範囲グラフを出力することを特徴とする付記２に記載の検証支援プログラム。
【０１１９】
（付記４）前記作成手段は、
前記探索手段によって探索された探索結果に基づいて、前記仕様変更により影響を受ける仕様項目がノード化され、前記算出手段によって算出された仕様項目ごとの優先度がそれぞれ対応するノードに付与された影響範囲グラフを作成することを特徴とする付記３に記載の検証支援プログラム。
【０１２０】
（付記５）前記算出手段は、
前記経路上の仕様項目のうち、前記検証対象の機能を実現する一連の操作を定義するシナリオをあらわす仕様項目の優先度を算出することを特徴とする付記２〜４のいずれか一つに記載の検証支援プログラム。
【０１２１】
（付記６）前記コンピュータを、
前記算出手段によって前記経路上の仕様項目の優先度が複数回算出された場合、前記複数の優先度を相対評価することにより、前記経路上の仕様項目の優先度を決定する決定手段として機能させ、
前記出力手段は、
前記決定手段によって決定された決定結果を出力することを特徴とする付記２〜５のいずれか一つに記載の検証支援プログラム。
【０１２２】
（付記７）前記探索手段は、
前記選択手段によって前記検証対象の機能をあらわす一の仕様項目が選択された場合、前記機能に属するシナリオをあらわす仕様項目を起点とする前記経路を探索することを特徴とする付記２〜６のいずれか一つに記載の検証支援プログラム。
【０１２３】
（付記８）前記探索手段は、
前記選択手段によって前記検証対象の機能を実現するために実行される操作をあらわす一の仕様項目が選択された場合、前記操作の属するシナリオをあらわす仕様項目を起点とする前記経路を探索することを特徴とする付記２〜７のいずれか一つに記載の検証支援プログラム。
【０１２４】
（付記９）検証対象の仕様の変更前および変更後の仕様書を用いて、前記変更後の仕様書に含まれる複数の仕様項目の中から変更箇所を特定する特定手段と、
前記特定手段によって特定された変更箇所のうち一の仕様項目を選択する選択手段と、
前記変更後の仕様書に含まれる仕様項目に関する遷移グラフを参照して、前記選択手段によって選択された一の仕様項目を起点として遷移元となる仕様項目を順次辿ることにより、前記仕様変更により影響を受ける仕様項目からなる経路を探索する探索手段と、
前記探索手段によって探索された探索結果を出力する出力手段と、
を備えることを特徴とする検証支援装置。
【０１２５】
（付記１０）制御手段および記憶手段を備えるコンピュータが、
前記制御手段により、前記記憶手段に記憶されている検証対象の仕様の変更前および変更後の仕様書を用いて、前記変更後の仕様書に含まれる複数の仕様項目の中から変更箇所を特定する特定工程と、
前記制御手段により、前記特定工程によって特定された変更箇所のうち一の仕様項目を選択する選択工程と、
前記制御手段により、前記記憶手段に記憶されている前記変更後の仕様書に含まれる仕様項目に関する遷移グラフを参照して、前記選択工程によって選択された一の仕様項目を起点として遷移元となる仕様項目を順次辿ることにより、前記仕様変更により影響を受ける仕様項目からなる経路を探索する探索工程と、
前記制御手段により、前記探索工程によって探索された探索結果を出力する出力工程と、
を実行することを特徴とする検証支援方法。
【図面の簡単な説明】
【０１２６】
【図１】本実施の形態の概要を示す説明図である。
【図２】仕様書のデータ構造をモデル化して示す説明図である。
【図３】検証支援装置のハードウェア構成を示すブロック図である。
【図４】検証支援装置の機能的構成を示すブロック図である。
【図５】差分集合の具体例を示す説明図である。
【図６】検証支援装置の検証支援処理手順の一例を示すフローチャート（その１）である。
【図７】検証支援装置の検証支援処理手順の一例を示すフローチャート（その２）である。
【図８】仕様変更される変更前のＤＭＡコントローラの仕様書を示す説明図である。
【図９】ＤＭＡコントローラのシナリオを示す説明図である。
【図１０】ＤＭＡコントローラの仕様をモデル化してあらわす遷移グラフである。
【図１１】仕様変更された変更後のＤＭＡコントローラの仕様書を示す説明図である。
【図１２】実施例１におけるＤＭＡコントローラのシナリオを示す説明図である。
【図１３】実施例１におけるＤＭＡコントローラの仕様をモデル化してあらわす遷移グラフである。
【図１４】実施例１における差分集合を示す説明図である。
【図１５】実施例１における優先度付与の概要を示す説明図（その１）である。
【図１６】実施例１における優先度付与の概要を示す説明図（その２）である。
【図１７】実施例１における優先度付与の概要を示す説明図（その３）である。
【図１８】実施例２におけるＤＭＡコントローラのシナリオを示す説明図である。
【図１９】実施例２における影響範囲グラフを示す説明図である。
【図２０】実施例３におけるＤＭＡコントローラのシナリオを示す説明図（その１）である。
【図２１】実施例３におけるＤＭＡコントローラのシナリオを示す説明図（その２）である。
【図２２】実施例３における影響範囲グラフを示す説明図である。
【符号の説明】
【０１２７】
１００  検証支援装置
４０１  入力部
４０２  特定部
４０３  選択部
４０４  探索部
４０５  作成部
４０６  出力部
４０７  算出部
４０８  決定部
Ｍ１，Ｍ２  仕様書
【図１】
0005256829.tif 000002
【図２】
0005256829.tif 000003
【図３】
0005256829.tif 000004
【図４】
0005256829.tif 000005
【図５】
0005256829.tif 000006
【図６】
0005256829.tif 000007
【図７】
0005256829.tif 000008
【図８】
0005256829.tif 000009
【図９】
0005256829.tif 000010
【図１０】
0005256829.tif 000011
【図１１】
0005256829.tif 000012
【図１２】
0005256829.tif 000013
【図１３】
0005256829.tif 000014
【図１４】
0005256829.tif 000015
【図１５】
0005256829.tif 000016
【図１６】
0005256829.tif 000017
【図１７】
0005256829.tif 000018
【図１８】
0005256829.tif 000019
【図１９】
0005256829.tif 000020
【図２０】
0005256829.tif 000021
【図２１】
0005256829.tif 000022
【図２２】
0005256829.tif 000023