(57)【要約】【課題】被検証装置に対する検証作業を簡単かつ効率的におこなって設計期間の短縮化を図ること。【解決手段】検証支援装置６００は、正常に動作するか否かの検証がおこなわれる被検証装置の機能をあらわす機能的構成情報を入力する機能的構成情報入力部６０１と、被検証装置に与える入出力シーケンスに関する条件を入力する条件入力部６０３と、機能的構成情報入力部６０１によって入力された機能的構成情報に基づいて、条件入力部６０３によって入力された入出力シーケンスに関する条件をすべて満足する検証項目関数を生成する検証項目関数生成部６０５と、検証項目関数生成部６０５によって生成された検証項目関数に基づいて、機能的構成情報を構成する構成要素の組み合わせを、検証項目として抽出する検証項目抽出部６０９と、を備える。【選択図】      図６
2004185592.tif 000002
【特許請求の範囲】
【請求項１】
正常に動作するか否かの検証がおこなわれる被検証装置の機能をあらわす機能的構成情報を入力する機能的構成情報入力工程と、
前記被検証装置に与える入出力シーケンスに関する条件を入力する条件入力工程と、
前記機能的構成情報入力工程によって入力された機能的構成情報に基づいて、前記条件入力工程によって入力された入出力シーケンスに関する条件をすべて満足する検証項目関数を生成する検証項目関数生成工程と、
前記検証項目関数生成工程によって生成された検証項目関数に基づいて、前記機能的構成情報を構成する構成要素の組み合わせを、検証項目として抽出する検証項目抽出工程と、
を含んだことを特徴とする検証支援方法。
【請求項２】
前記検証項目関数は、二分決定グラフによって表現されており、
前記検証項目抽出工程は、前記二分決定グラフによって表現された検証項目関数に基づいて前記検証項目を抽出することを特徴とする請求項１に記載の検証支援方法。
【請求項３】
前記入出力シーケンスに関する条件は、前記機能的構成情報を構成する構成要素の中の機能素子に関するリソース制約条件を含むことを特徴とする請求項１または２に記載の検証支援方法。
【請求項４】
前記入出力シーケンスに関する条件は、前記機能的構成情報を構成する構成要素のうち検証対象となる構成要素を制限する条件を含むことを特徴とする請求項１または２に記載の検証支援方法。
【請求項５】
前記機能的構成情報入力工程によって入力される機能的構成情報を構成する機能素子には、あらかじめ検証の優先度をあらわす優先情報が付加されており、
前記検証項目抽出工程によって抽出された検証項目に含まれている機能素子の優先情報から得られる検証優先度を、前記検証項目ごとに算出する優先度算出工程を含んだことを特徴とする請求項１または２に記載の検証支援方法。
【請求項６】
あらかじめ前記検証項目抽出工程によって抽出される検証項目の数を入力する検証項目数入力工程を含み、
前記検証項目抽出工程は、前記検証項目数入力工程によって入力された検証項目数の検証項目を抽出することを特徴とする請求項１または２に記載の検証支援方法。
【請求項７】
前記機能的構成情報のうち、前記機能的構成情報を構成する機能素子の動作が記述されている機能素子記述情報を、前記機能素子の動作が記述されていない情報に変換する変換工程を含み、
前記機能的構成情報入力工程は、前記変換工程によって変換された情報が含まれている機能的構成情報を入力することを特徴とする請求項１または２に記載の検証支援方法。
【請求項８】
前記被検証装置に入出力されるデータの流れを規定する検証環境を入力する検証環境入力工程と、
前記検証環境入力工程によって入力された検証環境と、前記検証項目抽出工程によって抽出された検証項目と、に基づいて、前記被検証装置に与える入出力シーケンスを作成する入出力シーケンス作成工程と、
を含み、
前記機能的構成情報入力工程は、所定の情報端末装置から、ネットワークを介して前記機能的構成情報を入力し、
前記条件入力工程は、前記所定の情報端末装置から、前記ネットワークを介して前記入出力シーケンスに関する条件を入力し、
前記検証環境入力工程は、前記所定の情報端末装置から、前記ネットワークを介して前記検証環境を入力し、
前記検証項目抽出工程は、前記所定の情報端末装置へ、前記ネットワークを介して前記検証項目を出力し、
前記入出力シーケンス作成工程は、前記所定の情報端末装置へ、前記ネットワークを介して前記入出力シーケンスを出力することを特徴とする請求項１または２に記載の検証支援方法。
【請求項９】
正常に動作するか否かの検証がおこなわれる被検証装置の機能をあらわす機能的構成情報を入力させる機能的構成情報入力工程と、
前記被検証装置に与える入出力シーケンスに関する条件を入力させる条件入力工程と、
前記機能的構成情報入力工程によって入力された機能的構成情報に基づいて、前記条件入力工程によって入力された入出力シーケンスに関する条件をすべて満足する検証項目関数を生成させる検証項目関数生成工程と、
前記検証項目関数生成工程によって生成された検証項目関数に基づいて、前記機能的構成情報を構成する構成要素の組み合わせを、検証項目として抽出させる検証項目抽出工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【請求項１０】
正常に動作するか否かの検証がおこなわれる被検証装置の機能をあらわす機能的構成情報を入力する機能的構成情報入力手段と、
前記被検証装置に与える入出力シーケンスに関する条件を入力する条件入力手段と、
前記機能的構成情報入力手段によって入力された機能的構成情報に基づいて、前記条件入力手段によって入力された入出力シーケンスに関する条件をすべて満足する検証項目関数を生成する検証項目関数生成手段と、
前記検証項目関数生成手段によって生成された検証項目関数に基づいて、前記機能的構成情報を構成する構成要素の組み合わせを、検証項目として抽出する検証項目抽出手段と、
を備えることを特徴とする検証支援装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、テストパタンと呼ばれる入出力シーケンスを作成するための検証項目を生成する検証支援方法、検証支援プログラムおよび検証支援装置に関する。
【０００２】
【従来の技術】
ＬＳＩ設計では、従来から設計期間の短縮による作業効率化が要求されている一方、ＬＳＩが正しく動作するかどうかを検証する検証作業が必要不可欠であり、特に、大規模化、高機能化、高速化および低消費電力化が要求されているＬＳＩについては、高品質を維持するためにもこの検証作業は重要である。
【０００３】
ＬＳＩの検証作業では、まず、テストパタンと呼ばれる一連の入出力シーケンスを作成する。つぎに、この入出力シーケンスに基づいてＬＳＩに入力信号を与え、ＬＳＩから出力される出力信号が期待値と合っているかどうか確認する。これにより、被検証装置が期待値通りに動作するかどうかを検証することができる。しかし、上述のように、大規模化、高機能化、高速化および低消費電力化が進んでいるＬＳＩでは、ＬＳＩ内の機能素子の個数が膨大となっている。このような状況では、人手によって、すべての機能素子間のデータの流れ（シーケンス）を列挙することは困難であり、上述した入出力シーケンス（テストパタン）の生成作業が複雑であった。
【０００４】
そこで、従来から、所定の記述言語によって作成された機能ブロック図から入出力シーケンスを抽出する手法がある。この手法では、機能ブロック図によって、被検証装置が、機能素子と、機能素子間のデータの流れで表されている。そして、この機能素子をノード、機能素子間のデータの流れをエッジに置き換えたグラフを作成する。このグラフ上の１つのパスを辿ることによって、１つのシーケンスを特定することができる。これにより、被検証装置に与える入出力シーケンスを列挙することができる（たとえば、下記非特許文献１参照。）。
【０００５】
【非特許文献１】
Ｊ．Ｒｙｓｅｒ，Ｍ，Ｇｌｉｎｚ，  ”Ａ  Ｓｃｅｎａｒｉｏ−Ｂａｓｅｄ  Ａｐｐｒｏａｃｈ  ｔｏ  Ｖａｌｉｄａｔｉｎｇ  ａｎｄ  Ｔｅｓｔｉｎｇ  Ｓｏｆｔｗａｒｅ  Ｓｙｓｔｅｍｓ  Ｕｓｉｎｇ  Ｓｔａｔｅｃｈａｒｓ”，  １２ｔｈ  Ｉｎｔｌ．  Ｃｏｎｆ．  ｏｎ  ＳｏｆｔｗａｒｅＥｎｇｉｎｅｅｒｉｎｇ  ａｎｄ  ｔｈｅｉｒ  Ａｐｐｌｉｃａｔｉｏｎｓ，  Ｄｅｃ．１９９９．
【０００６】
【発明が解決しようとする課題】
しかしながら、ＬＳＩはハードウェアの並列実行性によって各機能素子が並列に動作するため、上述した非特許文献１に記載の従来技術では、グラフ上のパスを１本ずつしか辿ることができず、複数のシーケンスが同時に実行される場合を考慮することができないという問題があった。また、上述した非特許文献１に記載の従来技術では、ＬＳＩなどの被検証装置における、機能素子の共有や排他利用などハードウェア特有のリソース制約が考慮されていないという問題があった。
【０００７】
したがって、上述した非特許文献１に記載の従来技術によって列挙される入出力シーケンスには、実際には実行不可能な入出力シーケンスが含まれてしまうこととなる。そして、この実行不可能な入出力シーケンスによって検証作業をおこなっても検証できないため、作業時間や作業労力が無駄になり、設計期間が長期化するという問題があった。
【０００８】
本発明は上記問題点を解決するためになされたものであって、被検証装置に対する検証作業を簡単かつ効率的におこなうことにより設計期間の短縮化を図ることができる検証支援方法、検証支援プログラムおよび検証支援装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、この発明の検証支援方法、検証支援プログラムおよび検証支援装置は、正常に動作するか否かの検証がおこなわれる被検証装置の機能をあらわす機能的構成情報を入力し、前記被検証装置に与える入出力シーケンスに関する条件を入力し、入力された機能的構成情報に基づいて、入力された入出力シーケンスに関する条件をすべて満足する検証項目関数を生成し、生成された検証項目関数に基づいて、前記機能的構成情報を構成する構成要素の組み合わせを、検証項目として抽出することを特徴とする。この発明の検証支援方法、検証支援プログラムおよび検証支援装置によれば、実行可能な入出力シーケンスに必要な検証項目を抽出することができる。
【００１０】
【発明の実施の形態】
以下に、この発明の検証支援方法、検証支援プログラムおよび検証支援装置の各実施形態について、添付図面を参照しつつ詳細に説明する。この検証支援装置は、被検証装置が正常に動作するか否かを検証するため、テストパタンと呼ばれる入出力シーケンスの作成元となる検証項目を抽出する。そして、この検証項目から得られる入出力シーケンスを被検証装置に与えることにより、被検証装置の検証をおこなうことができる。
【００１１】
（実施の形態１）
（検証支援装置のハードウェア構成）
図１は、この発明の実施の形態１にかかる検証支援装置のハードウェア構成を示すブロック図である。検証支援装置は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インターフェース）１０９と、キーボード１１０と、マウス１１１と、スキャナ１１２と、プリンタ１１３と、を備えている。また、各構成部はバス１００によってそれぞれ接続されている。
【００１２】
ここで、ＣＰＵ１０１は、検証支援装置の全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００１３】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶したり、ＦＤ１０７に記憶されたデータを検証支援装置に読み取らせたりする。
【００１４】
着脱可能な記録媒体として、ＦＤ１０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００１５】
Ｉ／Ｆ１０９は、通信回線を通じてインターネットなどのネットワークに接続され、このネットワークを介して他の装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワーク１１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００１６】
キーボード１１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００１７】
スキャナ１１２は、画像を光学的に読み取り、検証支援装置内に画像データを取り込む。なお、スキャナ１１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１１３は、画像データや文書データを印刷する。プリンタ１１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００１８】
（被検証装置の機能的構成情報）
つぎに、被検証装置の機能的構成情報について説明する。図２は、被検証装置の機能的構成情報を示す説明図である。また、この機能的構成情報は、たとえば、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）などの所定の記述言語によって作成することができる。また、機能的構成情報の一例として、たとえば、ユースケース図やシーケンス図などが挙げられる。ここでは、被検証装置として、たとえば、ＤＶＤ／ＨＤＤビデオレコーダを用いた場合について説明する。
【００１９】
図２に示すように、被検証装置としてのＤＶＤ／ＨＤＤビデオレコーダ２００は、ビデオ入力部２０１、ＨＤ入力部２０２、ＤＶＤ−Ｒ／Ｗ入力部２０３、エンコーダ２０４、デコーダ２０５、ビデオ出力部２０６、ＨＤ出力部２０７、ＤＶＤ−Ｒ／Ｗ出力部２０８からなる機能素子と、各機能素子間を接続する信号線２１１〜２１８と、からなる構成要素によって構成されている。
【００２０】
ビデオ入力部２０１はビデオデータを入力する。ＨＤ入力部２０２は、ＨＤ（ハードディスク）から読み出されたＭＰＥＧデータを入力する。ＤＶＤ−Ｒ／Ｗ入力部２０３は、ＤＶＤ−Ｒ／Ｗから読み出されたＭＰＥＧデータを入力する。エンコーダ２０４は、ビデオ入力部２０１から入力されたビデオデータを、ＭＰＥＧデータにエンコードする。
【００２１】
デコーダ２０５は、ＨＤ入力部２０２またはＤＶＤ−Ｒ／Ｗ入力部２０３から入力されたＭＰＥＧデータをビデオデータにデコードする。ビデオ出力部２０６は、ビデオ入力部２０１から入力されたビデオデータまたはデコーダ２０５によってデコードされたビデオデータを出力する。ＨＤ出力部２０７およびＤＶＤ−Ｒ／Ｗ出力部２０８は、エンコーダ２０４によってエンコードされたＭＰＥＧデータを出力し、それぞれＨＤ、ＤＶＤ−Ｒ／Ｗに書き込む。
【００２２】
つぎに、図２に示す機能ブロック図を変換したグラフについて説明する。図３は、図２に示す機能ブロック図を変換したグラフを示す説明図である。このグラフ３００は、図２に示す機能ブロック図における機能素子（ビデオ入力部２０１、ＨＤ入力部２０２、ＤＶＤ−Ｒ／Ｗ入力部２０３、エンコーダ２０４、デコーダ２０５、ビデオ出力部２０６、ＨＤ出力部２０７、ＤＶＤ−Ｒ／Ｗ出力部２０８）をノード３０１〜３０８、各機能素子間を接続する信号線２１１〜２１８をエッジ３１１〜３１７に変換したものである。そして、各ノード３０１〜３０８とエッジ３１１〜３１７に対して、以下に示すブール変数を与える。
【００２３】
図３の例では、ノード３０１〜３０８として以下の８つが定義されており、図４に示すように、各ノード３０１〜３０８にはそれぞれブール変数が対応付けされている。また、変換された各エッジ３１１〜３１７には、図５に示すように、以下のブール変数が対応付けされている。
【００２４】
（検証支援装置の機能的構成）
つぎに、この発明の実施の形態１にかかる検証支援装置の機能的構成について説明する。図６は、この発明の実施の形態１にかかる検証支援装置の機能的構成を示すブロック図である。検証支援装置６００は、機能的構成情報入力部６０１と、グラフ変換部６０２と、条件入力部６０３と、論理式変換部６０４と、検証項目関数生成部６０５と、検証項目関数記憶部６０６と、検証コストデータベース６０７と、検証コスト算出部６０８と、検証項目抽出部６０９と、から構成されている。
【００２５】
機能的構成情報入力部６０１は、被検証装置の機能的構成をあらわした機能的構成情報を入力する。この機能的構成情報とは、具体的には、上述した図２に示したような、被検証装置の機能的構成を示す機能ブロック図２００であり、機能素子２０１〜２０８と、機能素子間の接続線２１１〜２１８（機能素子間のデータの流れ）と、からなる構成要素によって構成されている。
【００２６】
グラフ変換部６０２は、機能的構成情報入力部６０１に入力された被検証装置の機能ブロック図２００（図２参照）を、ノード３０１〜３０８とエッジ３１１〜３１７からなるグラフ３００（図３を参照）に変換する。すなわち、機能ブロック図２００の機能素子２０１〜２０８はノード３０１〜３０８に変換され、機能素子間を接続する信号線２１１〜２１８（機能素子間のデータの流れ）はエッジ３１１〜３１７に変換される。
【００２７】
条件入力部６０３は、被検証装置に与える入出力シーケンスに関する条件を入力する。この入出力シーケンスに関する条件とは、たとえば、入出力シーケンスの始点と終点の条件（条件１）、各エッジの接続条件（条件２）、各機能素子のファンアウト条件（条件３）、各機能素子のファンイン条件（条件４）、機能素子のリソース制約条件（条件５）、機能ブロック図を構成する構成要素のうち検証対象となる構成要素を制限する条件（条件６）などが挙げられる。
【００２８】
論理式変換部６０４は、グラフ変換部６０２によって得られたノード３０１〜３０８およびエッジ３１１〜３１７からなるグラフ３００と、条件入力部６０３によって入力された入出力シーケンスに関する条件と、に基づいて、論理式に変換する。この論理式は、たとえば、ブール代数によって生成される。この論理式への変換の詳細については後述する。
【００２９】
検証項目関数生成部６０５は、生成された論理式に基づいて、２分グラフ（Ｂｉｎａｒｙ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍ  、以下「ＢＤＤ」という）を用いて、検証項目関数を生成する。生成された検証項目関数は、検証項目関数記憶部６０６に記憶される。ＢＤＤとは、たとえば図７に示すようなグラフを使って論理関数をコンパクトに表現するデータ構造である。ＢＤＤについては、以下の文献に詳細が説明されている。
Ｒ．  Ｅ．  Ｂｒｙａｎｔ，  ”Ｇｒａｐｈ−ｂａｓｅｄ  Ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  Ｂｏｏｌｅａｎ  Ｆｕｎｃｔｉｏｎ  Ｍａｎｉｐｕｌａｔｉｏｎ”，  ＩＥＥＥ  Ｔｒａｎｓ．  ｏｎ  Ｃｏｍｐｕｔｅｒｓ，  Ｃ−３５，  Ａｕｇｕｓｔ  １９８６．
【００３０】
検証コストデータベース６０７は、図８に示すように、図４に示したブール変数ごとに、重みとなるコスト値を対応付けて記憶する。このコスト値を用いて、そのブール変数に対応する機能素子２０１〜２０８（ノード３０１〜３０８）について検証の重要度をあらわすことができる。たとえば、コスト値が「１」のブール変数に対応する機能素子は既存設計、コスト値が「２」のブール変数に対応する機能素子は流用設計、コスト値が「５」のブール変数に対応する機能素子は新規設計と定義することができる。すなわち、コスト値が大きいほど検証の重要性が高く、コスト値が小さいほど検証の重要性は低いこととなる。
【００３１】
検証コスト算出部６０８は、検証項目抽出部６０９によって抽出された検証項目に関する検証コストを算出する。たとえば、あらかじめグラフ変換部６０２によって得られるノード３０１〜３０８に重みとなるコスト値を付加しておき、抽出された検証項目に含まれるノードのコスト値を加算することによって、検証コストを算出する。算出された検証コストは、検証項目抽出部６０９に出力する。
【００３２】
検証項目抽出部６０９は、検証項目関数記憶部６０６に記憶されている検証項目関数から、機能的構成情報を構成する構成要素の組み合わせを、検証項目として抽出する。具体的には、検証項目関数の値が１になるようなブール変数の組を求めることによって、検証項目を抽出する。この検証項目は、上述したＢＤＤを用いることによって抽出することができる。
【００３３】
また、検証項目抽出部６０９は、あらかじめ設定された個数ｎの検証項目を抽出する。この場合、検証コスト算出部６０８によって算出された各検証項目のコスト値に基づいて、個数ｎの検証項目を抽出する。たとえば、検証項目を検証コスト順に並べて、上位ｎ番目までの検証項目を抽出することとしてもよい。また、以下の文献で紹介されている手法を使うことによって、算出されたコスト順に、ｎ個の検証項目を生成することができる。
「島田剛一他編集，”アルゴリズム辞典”，”最短経路（グラフ）”の項，ｐｐ．２７９−２８０，  共立出版，１９９４  」
【００３４】
また、上述した機能的構成情報入力部６０１、グラフ変換部６０２、条件入力部６０３、論理式変換部６０４、検証項目関数生成部６０５、検証コスト算出部６０８および検証項目抽出部６０９は、具体的には、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などに記録されたプログラムをＣＰＵ１０１が実行することによって、またはＩ／Ｆ１０９によって、その機能を実現する。また、検証項目関数記憶部６０６および検証コストデータベース６０７は、具体的には、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などによって、その機能を実現する。
【００３５】
（入出力シーケンスに関する条件から論理式への変換）
つぎに、入出力シーケンスに関する条件から論理式への変換について説明する。入出力シーケンスに関する条件は、上述したように、入出力シーケンスの始点と終点の条件（条件１）、各エッジの接続条件（条件２）、各機能素子のファンアウト条件（条件３）、各機能素子のファンイン条件（条件４）、機能素子のリソース制約条件（条件５）、機能ブロック図２００を構成する構成要素２０１〜２０８、２１１〜２１８のうち検証対象となる構成要素を制限する条件（条件６）がある。
【００３６】
また、ブール代数における否定、論理和、論理積、含意、同値を、それぞれ、「！」、「＋」、「＊」、「→」、「≡」によって表している（「Ａ→Ｂ」は「！Ａ＋Ｂ」と同じ意味であり、また、「Ａ≡Ｂ」は「（Ａ→Ｂ）＊（Ｂ→Ａ）」と同じ意味を表している。）。
【００３７】
まず、条件１（入出力シーケンスの始点と終点の条件）から論理式への変換について説明する。入出力シーケンスの始まりとなるノードを「始点」、入出力シーケンスの終わりとなるノードを「終点」とする。入出力シーケンスを成立させるためには、始点となっているノードのブール変数の論理和が「１」になることが必要である。同様に、終点となっているノードのブール変数の論理和も「１」になることが必要である。上述した図２および図３の例では、始点となるノードは、ノード３０１〜３０３である。また、終点となるノードは、ノード３０６〜３０８である。したがって、ブール変数を用いることによって、下記の論理式に変換することができる。
ｉｎＶｉｄｅｏ  ＋ｉｎＤＶＤ  ＋ｉｎＨＤＤ  ・・・（１）
ｏｕｔＶｉｄｅｏ＋ｏｕｔＤＶＤ＋ｏｕｔＨＤＤ・・・（２）
【００３８】
つぎに、条件２（各エッジの接続条件）から論理式への変換について説明する。各エッジ３１１〜３１７について、そのエッジ上にデータが流れる場合、エッジの両端のノードに対応する機能素子が作動している必要がある。そして、図３のエッジ３１１（ブール変数：ｉｎＶｉｄｅｏ＿ｏｕｔＶｉｄｅｏ）については、以下の論理式によってあらわすことができる。
ｉｎＶｉｄｅｏ＿ｏｕｔＶｉｄｅｏ→ｉｎＶｉｄｅｏ＊ｏｕｔＶｉｄｅｏ  ・・・（３）
【００３９】
その他のエッジ３１２〜３１７についても同様の論理式を作ると、以下の論理式によってあらわすことができる。
ｉｎＶｉｄｅｏ＿ｅｎｃＭＰＥＧ  →ｉｎＶｉｄｅｏ＊ｅｎｃＭＰＥＧ・・・・（４）
ｉｎＤＶＤ＿ｄｅｃＭＰＥＧ→ｉｎＤＶＤ＊ｄｅｃＭＰＥＧ  ・・・・・・（５）
ｉｎＨＤＤ＿ｄｅｃＭＰＥＧ→ｉｎＨＤＤ＊ｄｅｃＭＰＥＧ  ・・・・・・（６）
ｄｅｃＭＰＥＧ＿ｏｕｔＶｉｄｅｏ→ｄｅｃＭＰＥＧ＊ｏｕｔＶｉｄｅｏ  ・・・（７）
ｅｎｃＭＰＥＧ＿ｏｕｔＤＶＤ→ｅｎｃＭＰＥＧ＊ｏｕｔＤＶＤ  ・・・・・（８）
ｅｎｃＭＰＥＧ＿ｏｕｔＨＤＤ→ｅｎｃＭＰＥＧ＊ｏｕｔＨＤＤ  ・・・・・（９）
【００４０】
つぎに、条件３（各機能素子のファンアウト条件）から論理式への変換について説明する。あるノードに対応する機能素子が作動すれば、データは、そのファンアウトエッジの中のいずれかのエッジを通って次のノードに対応する機能素子に伝達する。反対に、あるノードに対応する機能素子のファンアウトエッジのいずれかがデータを伝達しているときは、その機能素子は作動していなくてはならない。このような条件を以下の論理式で表す。
【００４１】
たとえば、図３のノード３０１（ブール変数：ｉｎＶｉｄｅｏ  ）は、ファンアウトエッジとして、エッジ３１１（ブール変数：ｉｎＶｉｄｅｏ＿ｏｕｔＶｉｄｅｏ  ）とエッジ３１２（ブール変数：ｉｎＶｉｄｅｏ＿ｅｎｃＭＰＥＧ  ）を有しているので、以下の論理式によって表現することができる。
ｉｎＶｉｄｅｏ  ≡ｉｎＶｉｄｅｏ＿ｏｕｔＶｉｄｅｏ＋ｉｎＶｉｄｅｏ＿ｅｎｃＭＰＥＧ・・・（１０）
【００４２】
同様に、他の機能素子のファンアウトについても、以下の論理式によって表現することができる。
ｉｎＤＶＤ  ≡ｉｎＤＶＤ＿ｄｅｃＭＰＥＧ  ・・・・・・・・・・・・・・（１１）
ｉｎＨＤＤ  ≡ｉｎＨＤＤ＿ｄｅｃＭＰＥＧ  ・・・・・・・・・・・・・・（１２）
ｄｅｃＭＰＥＧ  ≡ｄｅｃＭＰＥＧ＿ｏｕｔＶｉｄｅｏ・・・・・・・・・・・・（１３）
ｅｎｃＭＰＥＧ  ≡ｅｎｃＭＰＥＧ＿ｏｕｔＤＶＤ＋ｅｎｃＭＰＥＧ＿ｏｕｔＨＤＤ  ・・・・（１４）
【００４３】
つぎに、条件４（各機能素子のファンイン条件）から論理式への変換について説明する。この条件４は、条件３と同様である。すなわち、あるノードに対応する機能素子が作動すれば、データは、そのファンインエッジの中のいずれかのエッジを通って、前段の機能素子から伝達してくる。反対に、あるノードに対応する機能素子のファンインエッジのいずれかがデータを伝達しているときは、その機能素子が作動していなくてはならない。このような条件を以下の論理式によってあらわす。
【００４４】
たとえば、図３のノード３０５（ブール変数：ｄｅｃＭＰＥＧ  ）は、ファンインエッジとしてエッジ３１３（ブール変数：ｉｎＤＶＤ＿ｄｅｃＭＰＥＧ  ）とエッジ３１４（ブール変数：ｉｎＨＤＤ＿ｄｅｃＭＰＥＧ  ）を有しているので以下の論理式によってあらわすことができる。
ｄｅｃＭＰＥＧ≡ｉｎＤＶＤ＿ｄｅｃＭＰＥＧ＋ｉｎＨＤＤ＿ｄｅｃＭＰＥＧ  ・・・・・・（１５）
【００４５】
同様に、他の機能素子のファンインについても、以下の論理式によって表現することができる。
ｅｎｃＭＰＥＧ≡ｉｎＶｉｄｅｏ＿ｅｎｃＭＰＥＧ  ・・・・・・・・・・・・・（１６）
ｏｕｔＶｉｄｅｏ≡ｉｎＶｉｄｅｏ＿ｏｕｔＶｉｄｅｏ＋ｄｅｃＭＰＥＧ＿ｏｕｔＶｉｄｅｏ・・・（１７）
ｏｕｔＤＶＤ≡ｅｎｃＭＰＥＧ＿ｏｕｔＤＶＤ  ・・・・・・・・・・・・・・（１８）
ｏｕｔＨＤＤ≡ｅｎｃＭＰＥＧ＿ｏｕｔＨＤＤ  ・・・・・・・・・・・・・・（１９）
【００４６】
つぎに、条件５（機能素子のリソース制約条件）から論理式への変換について説明する。複数の入出力シーケンスを同時に実行しようとしても、あるノードに対応する機能素子のリソースの制約によって不可能な場合が考えられる。例えば、あるノードに対応する機能素子が複数のファンインエッジを持っていても、その機能素子内部のリソース制約から、全ての入力を同時処理できないというケースが考えられる。
【００４７】
ここでは、そのような機能素子におけるハードウェア上のリソース制約に起因する条件を論理式として表す。たとえば、図３のノード３０５（ブール変数：ｄｅｃＭＰＥＧ  ）とノード３０６（ブール変数：ｏｕｔＶｉｄｅｏ）について、入力データが高々１つしか受け付けられない場合、以下の論理式としてあらわすことができる。
！（ｉｎＤＶＤ＿ｄｅｃＭＰＥＧ＊ｉｎＨＤＤ＿ｄｅｃＭＰＥＧ  ）  ・・・・・（２０）
！（ｉｎＶｉｄｅｏ＿ｏｕｔＶｉｄｅｏ＊ｄｅｃＭＰＥＧ＿ｏｕｔＶｉｄｅｏ）・・・（２１）
【００４８】
たとえば、上記式（２１）については、上述したリソース制約がある場合、エッジ３１３（ブール変数：ｉｎＤＶＤ＿ｄｅｃＭＰＥＧ  ）またはエッジ３１４（ブール変数：ｉｎＨＤＤ＿ｄｅｃＭＰＥＧ  ）のいずれか一方のエッジが「０」でなければならないことを意味している。また、ＤＶＤ−Ｒ／Ｗの動作速度が遅いためデータの読み出しと書き込みを同時に行えない場合の制約条件は、以下の論理式によってあらわすことができる。
！（ｉｎＤＶＤ＊ｏｕｔＤＶＤ  ）・・・（２２）
【００４９】
つぎに、条件６（機能ブロック図２００を構成する構成要素２０１〜２０８、２１１〜２１８のうち検証対象となる構成要素を制限する条件）から論理式への変換について説明する。この条件６からの論理式への変換は、換言すれば、必要に応じて検証対象となる構成要素を絞り込むことである。具体的には、検証対象となる構成要素のうち、すでに検証済とされている部分（たとえば既存設計の機能素子）があり検証から除外したい場合や、特定の構成要素のみを検証すればよい場合には、検証対象を絞り込む論理式を追加することができる。
【００５０】
たとえば、図３において、エンコーダ２０４が使われる入出力シーケンスのみが必要であると設計者が判断する場合、下記の論理式によって表現される制約を追加すればよい。
ｅｎｃＭＰＥＧ≡１・・・（２３）
【００５１】
（検証支援装置における検証項目抽出処理手順）
つぎに、検証支援装置における検証項目抽出処理手順について説明する。図９は、検証支援装置における検証項目抽出処理手順を示すフローチャートである。まず、図２に示す機能的構成情報である機能ブロック図２００が入力されたか否かを判断する（ステップＳ９０１）。機能ブロック図２００が入力された場合（ステップＳ９０１：Ｙｅｓ）、機能ブロック図２００を、図３に示すグラフ３００に変換する（ステップＳ９０２）。
【００５２】
そして、上述した入出力シーケンスに関する条件１〜６が入力されたか否かを判断する（ステップＳ９０３）。入出力シーケンスに関する条件１〜６が入力された場合（ステップＳ９０３：Ｙｅｓ）、ブール代数を用いて条件１〜６を論理式（１）〜（２３）に変換する（ステップＳ９０４）。そして、変換によって得られた論理式（１）〜（２３）から、検証項目関数を生成する（ステップＳ９０５）。
【００５３】
ここで、検証項目関数の生成について具体的に説明する。図３の例では、上述した論理式（１）〜（２２）がすべて「１」にならなければならない。したがって、これらの論理式（１）〜（２２）のすべての論理積を取ったものが、検証項目関数となる。たとえば、被検証装置が大規模なＬＳＩの場合、この検証項目関数は非常に複雑な論理式によって表現される可能性が高い。
【００５４】
そのような場合は、検証項目関数を、上述した図７に示したＢＤＤを用いてあらわすことが望ましい。この検証項目関数の一例を、図１０〜図１２に示す。図１０〜図１２に示す検証項目関数は、図７に示したＢＤＤのグラフを用いて表現すると大きなグラフになることから、便宜上、表の形式で示したものである。
【００５５】
図１０〜図１２において、「０＿エッジ側ノード」とは、図１１に示すブール変数の値が「０」のときに辿るエッジに接続されているノードを指し、「１＿エッジ側ノード」とは、ブール変数の値が「１」のときに辿るエッジに接続されているノードを指す。また、「ｖａｌ＿０」、「ｖａｌ＿１」は、それぞれ定数０および１のノードをあらわす。
【００５６】
つぎに、生成された検証項目関数から検証項目を抽出する（ステップＳ９０６）。この検証項目の抽出は、検証項目関数の論理積の値が「１」になるようなブール変数の組を列挙することである。すなわち、検証項目関数の変数値を「０」または「１」に変えて、その条件を満たす変数のすべての組み合わせを抽出すればよい。
【００５７】
すなわち、上述したＢＤＤを用いて、「１＿ノード」へのパスを辿ることにより、下記に示す（ａ）〜（ｍ）に示す１３個の検証項目を抽出することができる。
（ａ）「ｉｎＶｉｄｅｏ、ｉｎＤＶＤ、ｄｅｃＭＰＥＧ、ｅｎｃＭＰＥＧ、ｏｕｔＶｉｄｅｏ、ｏｕｔＨＤＤ、
ｉｎＶｉｄｅｏ＿ｅｎｃＭＰＥＧ、ｉｎＤＶＤ＿ｄｅｃＭＰＥＧ、ｄｅｃＭＰＥＧ＿ｏｕｔＶｉｄｅｏ、ｅｎｃＭＰＥＧ＿ｏｕｔＨＤＤ  」
（ｂ）「ｉｎＶｉｄｅｏ、ｉｎＨＤＤ、ｄｅｃＭＰＥＧ、ｅｎｃＭＰＥＧ、ｏｕｔＶｉｄｅｏ、ｏｕｔＤＶＤ、ｏｕｔＨＤＤ、ｉｎＶｉｄｅｏ＿ｅｎｃＭＰＥＧ、ｉｎＨＤＤ＿ｄｅｃＭＰＥＧ、ｄｅｃＭＰＥＧ＿ｏｕｔＶｉｄｅｏ、ｅｎｃＭＰＥＧ＿ｏｕｔＤＶＤ、ｅｎｃＭＰＥＧ＿ｏｕｔＨＤＤ  」
（ｃ）「ｉｎＶｉｄｅｏ、ｉｎＨＤＤ、ｄｅｃＭＰＥＧ、ｅｎｃＭＰＥＧ、ｏｕｔＶｉｄｅｏ、ｏｕｔＤＶＤ、
ｉｎＶｉｄｅｏ＿ｅｎｃＭＰＥＧ、ｉｎＨＤＤ＿ｄｅｃＭＰＥＧ、ｄｅｃＭＰＥＧ＿ｏｕｔＶｉｄｅｏ、ｅｎｃＭＰＥＧ＿ｏｕｔＤＶＤ  」
（ｄ）「ｉｎＶｉｄｅｏ、ｉｎＨＤＤ、ｄｅｃＭＰＥＧ、ｅｎｃＭＰＥＧ、ｏｕｔＶｉｄｅｏ、ｏｕｔＨＤＤ、
ｉｎＶｉｄｅｏ＿ｅｎｃＭＰＥＧ、ｉｎＨＤＤ＿ｄｅｃＭＰＥＧ、ｄｅｃＭＰＥＧ＿ｏｕｔＶｉｄｅｏ、ｅｎｃＭＰＥＧ＿ｏｕｔＨＤＤ  」
（ｅ）「ｉｎＶｉｄｅｏ、ｅｎｃＭＰＥＧ、ｏｕｔＶｉｄｅｏ、ｏｕｔＤＶＤ、ｏｕｔＨＤＤ、ｉｎＶｉｄｅｏ＿ｏｕｔＶｉｄｅｏ、ｉｎＶｉｄｅｏ＿ｅｎｃＭＰＥＧ、ｅｎｃＭＰＥＧ＿ｏｕｔＤＶＤ、ｅｎｃＭＰＥＧ＿ｏｕｔＨＤＤ  」
（ｆ）「ｉｎＶｉｄｅｏ、ｅｎｃＭＰＥＧ、ｏｕｔＶｉｄｅｏ、ｏｕｔＤＶＤ、ｉｎＶｉｄｅｏ＿ｏｕｔＶｉｄｅｏ、
ｉｎＶｉｄｅｏ＿ｅｎｃＭＰＥＧ、ｅｎｃＭＰＥＧ＿ｏｕｔＤＶＤ  」
（ｇ）「ｉｎＶｉｄｅｏ、ｅｎｃＭＰＥＧ、ｏｕｔＶｉｄｅｏ、ｏｕｔＨＤＤ、ｉｎＶｉｄｅｏ＿ｏｕｔＶｉｄｅｏ、
ｉｎＶｉｄｅｏ＿ｅｎｃＭＰＥＧ、ｅｎｃＭＰＥＧ＿ｏｕｔＨＤＤ  」
（ｈ）「ｉｎＶｉｄｅｏ、ｅｎｃＭＰＥＧ、ｏｕｔＤＶＤ、ｏｕｔＨＤＤ、ｉｎＶｉｄｅｏ＿ｅｎｃＭＰＥＧ、ｅｎｃＭＰＥＧ＿ｏｕｔＤＶＤ、ｅｎｃＭＰＥＧ＿ｏｕｔＨＤＤ  」
（ｉ）「ｉｎＶｉｄｅｏ、ｅｎｃＭＰＥＧ、ｏｕｔＤＶＤ、ｉｎＶｉｄｅｏ＿ｅｎｃＭＰＥＧ、  ｅｎｃＭＰＥＧ＿ｏｕｔＤＶＤ  」
（ｊ）「ｉｎＶｉｄｅｏ、ｅｎｃＭＰＥＧ、ｏｕｔＨＤＤ、ｉｎＶｉｄｅｏ＿ｅｎｃＭＰＥＧ、ｅｎｃＭＰＥＧ＿ｏｕｔＨＤＤ  」
（ｋ）「ｉｎＶｉｄｅｏ、ｏｕｔＶｉｄｅｏ、ｉｎＶｉｄｅｏ＿ｏｕｔＶｉｄｅｏ  」
（ｌ）「ｉｎＤＶＤ、ｄｅｃＭＰＥＧ、ｏｕｔＶｉｄｅｏ、ｉｎＤＶＤ＿ｄｅｃＭＰＥＧ、ｄｅｃＭＰＥＧ＿ｏｕｔＶｉｄｅｏ  」
（ｍ）「ｉｎＨＤＤ、ｄｅｃＭＰＥＧ、ｏｕｔＶｉｄｅｏ、ｉｎＨＤＤ＿ｄｅｃＭＰＥＧ、ｄｅｃＭＰＥＧ＿ｏｕｔＶｉｄｅｏ  」
【００５８】
この検証項目（ａ）〜（ｍ）のうち、例えば、検証項目（ａ）に着目すると、図３に示したグラフ３００における以下の２つのパスを得ることができる。
パス１：ノード３０１→エッジ３１２→ノード３０４→エッジ３１７→ノード３０８
パス２：ノード３０２→エッジ３１３→ノード３０５→エッジ３１５→ノード３０６
【００５９】
なお、パス１をブール変数によってあらわすと、
「ｉｎＶｉｄｅｏ」→「ｉｎＶｉｄｅｏ＿ｅｎｃＭＰＥＧ」→「ｅｎｃＭＰＥＧ」→「ｅｎｃＭＰＥＧ＿ｏｕｔＨＤＤ」→「ｏｕｔＨＤＤ」となり、パス２をブール変数によってあらわすと、
「ｉｎＤＶＤ」→「ｉｎＤＶＤ＿ｄｅｃＭＰＥＧ」→「ｄｅｃＭＰＥＧ」→「ｄｅｃＭＰＥＧ＿ｏｕｔＶｉｄｅｏ」→「ｏｕｔＶｉｄｅｏ」となる。
【００６０】
そして、上記のように検証項目からパスを抽出し、抽出したパスから実行可能な入出力シーケンスを得る。具体的には、抽出した各パスに沿ってデータが流れるような制御コマンドなどの検証環境を作成することにより、実行可能な入出力シーケンスを生成することができる。そして、この検証環境によりテストパタンとなる入出力シーケンスを流してＬＳＩなどの被検証装置を検証することができる。
【００６１】
このように、この発明の実施の形態１によれば、多数存在する機能素子２０１〜２０８の組み合わせの中から実行可能な入出力シーケンスを得るための手掛かりとなる検証項目を抽出することができる。これにより、設計者の検証作業効率の向上を図ることができる。
【００６２】
また、検証項目関数が複雑な場合は、検証項目の総数が多くなりすぎて、すべての検証項目を列挙するのは現実的ではない場合が考えられる。そして、検証項目の総数を求める場合、検証項目関数をＢＤＤによって表現しているため、上述した「１＿ノード」へのパスを辿ることによってパス数を数えることにより、検証項目の総数を計算することができる。
【００６３】
このように、この発明の実施の形態１によれば、検証項目関数をＢＤＤによって表現することにより、検証項目を列挙する必要はなく、検証項目数の算出を効率的におこなうことができる。したがって、設計者は、算出された検証項目数を参照することにより、検証項目を削減するかどうかの判断をおこなうことができ、不要な検証項目については検証作業をおこなわなくすることで、検証作業効率の向上を図ることができる。
【００６４】
また、この発明の実施の形態１によれば、算出された検証項目数を数えた結果、検証項目数が多すぎると判断した場合は、以下のようにして検証項目の数を削減することができる。たとえば、上述した条件６（機能ブロック図２００を構成する構成要素２０１〜２０８、２１１〜２１８のうち検証対象となる構成要素を制限する条件）から得られる論理式を追加して、再度検証項目の抽出をおこなうことである。
【００６５】
これにより、設計者の判断によって重要ではない検証項目を除外することができる。たとえば、エンコーダ２０４が使われる検証項目だけが必要であると設計者が判断する場合には、上述したように、論理式（２３）である「ｅｎｃＭＰＥＧ≡１」を制約に加えればよい。
【００６６】
また、抽出される検証項目に優先順位をつけて、あらかじめ設定した個数ｎ分の検証項目を抽出することにより、検証項目数を削減することとしてもよい。この処理手順について、図１３を用いて説明する。まず、検証項目抽出部６０９によって検証項目が抽出されたか否かを判定する（ステップＳ１３０１）。検証項目が抽出されたと判定された場合（ステップＳ１３０１：Ｙｅｓ）、検証項目の制限個数ｎがあらかじめ入力されているか否かを判定する（ステップＳ１３０２）。
【００６７】
検証項目の制限個数ｎがあらかじめ入力されている場合（ステップＳ１３０２：Ｙｅｓ）、抽出された検証項目数が制限個数ｎよりも大きいか否かを判定する（ステップＳ１３０３）。大きいと判定された場合（ステップＳ１３０３：Ｙｅｓ）、検証コストデータベース６０７を参照して、各検証項目の検証コストを算出する（ステップＳ１３０４）。
【００６８】
そして、検証コストの最も大きい検証項目から上位ｎ番目までの検証項目を出力する（ステップＳ１３０５）。一方、検証項目の制限個数ｎがあらかじめ入力されていない場合（ステップＳ１３０２：Ｎｏ）、および抽出された検証項目数が制限個数ｎ以下の場合（ステップＳ１３０３：Ｎｏ）、ステップＳ１３０１によって抽出された検証項目をそのまま出力する（ステップＳ１３０６）。
【００６９】
これによれば、予め定められた個数分の検証項目について検証コストを付加することにより、検証に際し重要な検証項目を優先して抽出することができる。したがって、設計者は、検証項目の重要度に応じた検証をおこなうことができ、被検証装置に対する検証精度の向上を図ることができる。
【００７０】
（実施の形態２）
つぎに、本発明にかかる検証支援方法、検証支援プログラムおよび検証支援装置の実施の形態２について説明する。実施の形態１では、単一の検証支援装置によって被検証装置の検証作業を支援することとしているが、実施の形態２では、ネットワークを用いてシステム化することによって、被検証装置の検証を支援する。図１４は、その検証支援システムの概略構成を示す説明図である。
【００７１】
図１４に示すように、検証支援システム１４００は、サーバとして機能する検証支援装置１４０１および情報端末装置１４０２が、インターネット、ＬＡＮ、ＷＡＮなどのネットワーク１４０３によって相互に交信可能に接続されている。この検証支援装置１４０１と情報端末装置１４０２のハードウェア構成については、図１と同一であるため、その説明を省略する。
【００７２】
（情報端末装置の機能的構成）
まず、情報端末装置１４０２の機能的構成について説明する。図１５は、情報端末装置１４０２の機能的構成を示すブロック図である。この実施の形態２の情報端末装置１４０２は、検証項目の抽出をおこなうための機能的構成情報を作成して、サーバとして機能する検証支援装置１４０１に送信する。
【００７３】
また、作成される機能的構成情報は、たとえば、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）などの所定の記述言語によって作成することができる。また、機能的構成情報の一例として、たとえば、ユースケース図やシーケンス図などが挙げられる。この実施の形態２では、ユースケース図によって機能的構成情報を作成した場合について説明することとする。
【００７４】
図１５に示すように、情報端末装置１４０２は、入力部１５０１と、ユースケース表示情報データベース１５０２と、ユースケース記述情報データベース１５０３と、アクター記述情報データベース１５０４と、情報作成部１５０５と、記述情報変換部１５０６と、通信部１５０７と、出力部１５０８と、から構成されている。
【００７５】
入力部１５０１は、情報作成部１５０５に操作入力をおこなう。この入力部１５０１は、具体的には、図１に示すキーボード１１０またはマウス１１１によってその機能を実現する。ユースケース表示情報データベース１５０２は、被検証装置の機能的構成をあらわすユースケース図のうち、機能素子の表示情報であるユースケースを記憶する。図１６は、ユースケース表示情報データベース１５０２に記憶されているデータ構造を示す説明図である。図１６に示すように、ユースケース表示情報データベース１５０２には、機能素子の設計情報とユースケースとが対応付けられて記憶されている。
【００７６】
また、ユースケース記述情報データベース１５０３は、ユースケース内に挿入するユースケース記述情報を記憶する。図１７は、ユースケース記述情報データベース１５０３のデータ構造を示す説明図である。図１７に示すように、ユースケース記述情報データベース１５０３には、機能素子の動作をあらわす機能が記述されており、符号化されたコード情報Ａ〜Ｏと対応付けされている。
【００７７】
さらに、アクター記述情報データベース１５０４は、ユースケース図に表示されるアクターの名称を記憶する。図１８は、アクター記述情報データベース１５０４のデータ構造を示す説明図である。図１８に示すように、アクター記述情報データベース１５０４には、アクターとなる機能素子の名称が記述されており、符号化されたコード情報ａａａａａ〜ｇｇｇｇｇと対応付けされている。
【００７８】
ユースケース表示情報データベース１５０２、ユースケース記述情報データベース１５０３およびアクター記述情報データベース１５０４は、具体的には、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などによって、その機能を実現する。
【００７９】
また、図１５に示すように、情報作成部１５０５は、入力部１５０１からの操作入力にしたがい、機能素子表示情報に記憶されているユースケースと、ユースケース記述情報データベース１５０３に記憶されているユースケース記述情報などを用いて、ユースケース図を作成する。作成されたユースケース図の一例を図１９に示す。
【００８０】
また、情報作成部１５０５は、入力部１５０１からの操作入力にしたがい、ユースケース記述情報データベース１５０３に記憶されているユースケース記述情報などを用いて、検証環境を作成する。検証環境とは、検証項目から抽出した各パスに沿ってデータが流れることを規定する制御コマンドなどであり、たとえば、パス上のノードに対応する機能素子の動作タイミングを規定する条件や、そのパスを通過するノードに対応する機能素子の順序を規定する条件、その機能素子に対し入出力するデータの内容などが挙げられる。
【００８１】
記述情報変換部１５０６は、情報作成部１５０５によって作成されたユースケース図に記述されているユースケース記述情報およびアクター記述情報を、図１７および図１８に示すコード情報に変換する。変換されたユースケース図を図２０に示す。また、ネットワーク１４０３を介して検証支援装置１４０１から送信されてくる情報に含まれているコード情報を、図１７および図１８に示すユースケース記述情報に変換する。
【００８２】
また、上述した情報作成部１５０５および記述情報変換部１５０６は、具体的には、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などに記録されたプログラムをＣＰＵ１０１が実行することによって、またはＩ／Ｆ１０９によって、その機能を実現する。
【００８３】
通信部１５０７は、記述情報変換部１５０６によって変換されたユースケース図や検証環境を、ネットワーク１４０３を介して検証支援装置１４０１に送信する。また、ネットワーク１４０３を介して検証支援装置１４０１から送信されてくる情報を受信する。この通信部１５０７は、具体的には、図１に示したＩ／Ｆ１０９によって、その機能を実現する。
【００８４】
出力部１５０８は、情報作成部１５０５によって作成されたユースケース図（図１９を参照）、記述情報変換部１５０６によって変換されたユースケース図（図２０を参照）、その他、ネットワーク１４０３を介して検証支援装置１４０１から送信されてくる情報を出力する。この出力部１５０８は、具体的には、図１に示したディスプレイ１０８またはプリンタ１１３によって、その機能を実現する。
【００８５】
（検証支援装置の機能的構成）
つぎに、実施の形態２にかかる検証支援装置１４０１の機能的構成について説明する。図２１は、検証支援装置１４０１の機能的構成を示すブロック図である。この検証支援装置１４０１は、サーバとして機能するものであり、図２１に示すように、通信部２１００と、グラフ変換部６０２と、論理式変換部６０４と、検証項目関数生成部６０５と、検証項目関数記憶部６０６と、検証項目抽出部２１０１と、検証コスト算出部２１０２と、検証コストデータベース２１０３と、入出力シーケンス作成部２１０４と、から構成されている。なお、グラフ変換部６０２、論理式変換部６０４、検証項目関数生成部６０５および検証項目関数記憶部６０６は、図６に示した実施の形態１の構成と同一であるため、その説明を省略する。
【００８６】
検証項目抽出部２１０１は、検証項目関数記憶部６０６から検証項目を抽出する。また、検証コスト算出部２１０２は、検証項目抽出部２１０１から抽出された検証項目と、検証コストデータベース２１０３からコスト値と、に基づいて、検証コストを算出する。
【００８７】
図２２は、検証コストデータベース２１０３のデータ構造を示す説明図である。検証コストデータベース２１０３は、ユースケースごとにコスト値が対応付けられている。図２２によれば、既存設計のユースケースにはコスト値「１」、流用設計のユースケースにはコスト値「２」、新規設計のユースケースにはコスト値「５」が対応付けられている。
【００８８】
また、入出力シーケンス作成部２１０４は、情報端末装置１４０２から送信されてくる検証環境と、検証項目抽出部２１０１によって抽出された検証項目と、に基づいて、入出力シーケンスを作成する。また、上述した検証項目抽出部２１０１、検証コスト算出部２１０２および入出力シーケンス作成部２１０４は、具体的には、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などに記録されたプログラムをＣＰＵ１０１が実行することによって、またはＩ／Ｆ１０９によって、その機能を実現する。また、検証コストデータベース２１０３は、具体的には、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などによって、その機能を実現する。
【００８９】
つぎに、実施の形態２にかかる検証支援装置の処理手順について説明する。図２３は、実施の形態２にかかる検証支援装置の処理手順を示すフローチャートである。まず、情報端末装置１４０２から、アクター記述情報およびユースケース記述情報がコード化されたユースケース図（図２０を参照）を受信した場合（ステップＳ２３０１：Ｙｅｓ）、入出力シーケンスに条件が受信されたか否かを判定する（ステップＳ２３０２）。入出力シーケンスに関する条件が受信された場合（ステップＳ２３０２：Ｙｅｓ）、受信したユースケース図および入出力シーケンスに関する条件に基づいて、検証項目抽出処理を実行する（ステップＳ２３０３）。
【００９０】
この検証項目抽出処理は、上述した実施の形態１にかかる処理手順ステップＳ９０１〜ステップＳ９０６（図９を参照）と同一であるため、その説明を省略する。そして、抽出された検証項目から検証コストを算出し（ステップＳ２３０４）、検証項目及び検証コストを情報端末装置１４０２に送信する（ステップＳ２３０５）。図２４は、抽出された検証項目とその検証コストを示す説明図である。
【００９１】
図２４では、Ｎｏ．１〜５までの５種類の検証項目がある。たとえば、検証項目Ｎｏ．１では、入力機器ａａａａａから入力されたデータは、機能素子Ａ、機能素子Ｉを経由して機能素子Ｎに入力される。また、入力機器ｂｂｂｂｂから入力されたデータは、機能素子Ｂ、機能素子Ｊを経由して機能素子Ｎに入力される。そして、機能素子Ｉおよび機能素子Ｊからデータは、機能素子Ｎ、機能素子Ｅを経由して出力機器ｄｄｄｄｄから出力される。
【００９２】
ここで、機能素子Ａのユースケースのコスト値は「１」、機能素子Ｂのユースケースのコスト値は「１」、機能素子Ｉのユースケースのコスト値は「１」、機能素子Ｊのユースケースのコスト値は「１」、機能素子Ｎのユースケースのコスト値は「１」、機能素子Ｅのユースケースのコスト値は「２」である。したがって、検証項目Ｎｏ．１の検証コストは、これらのコスト値の合計値「７」となる。
【００９３】
同様にして、検証項目Ｎｏ．２〜５についても検証コストを算出すると、図２４に示すように、検証項目Ｎｏ．２の検証コストは「１８」、検証項目Ｎｏ．３の検証コストは「６」、検証項目Ｎｏ．４の検証コストは「１８」、検証項目Ｎｏ．５の検証コストは「４」となる。
【００９４】
また、情報端末装置１４０２に送信された検証項目および検証コストは、情報端末装置１４０２において、ユースケース記述情報データベース１５０３およびアクター記述情報データベース１５０４を参照して、受信した検証項目および検証コストをデコードする。図２５は、デコードされた検証項目および検証コストを示す説明図である。図２５によれば、検証項目Ｎｏ．２および４の検証コストが最も大きいことがわかる。これにより、検証者は、検証コストが大きい検証項目から優先的に検証をおこなうことができる。
【００９５】
また、検証項目にはユースケースも表示されているため、検証項目を構成する機能素子が、既存設計、流用設計および新規設計のいずれに該当するかを判別することができ、検証コストとともに、検証作業を優先すべき検証項目を選択する判断の手掛かりとすることができる。
【００９６】
たとえば、検証項目Ｎｏ．１の検証コストは「７」であり、検証項目Ｎｏ．３の検証コストは「６」であるため、検証項目Ｎｏ．３よりも検証項目Ｎｏ．１を優先して検証をおこなうこととなるが、検証項目Ｎｏ．１では流用設計のユースケースが１つである一方、検証項目Ｎｏ．３の流用設計のユースケースは２つあるため、設計者は、設計の事情に応じて、ユースケースを参照することにより、検証項目Ｎｏ．１よりも検証項目Ｎｏ．３を優先して検証をおこなうことができる。
【００９７】
つぎに、入出力シーケンスの作成処置手順について説明する。図２６は、入出力シーケンスの作成処理手順を示すフローチャートである。まず、検証項目が抽出されたか否かを判定する（ステップＳ２６０１）。検証項目が抽出されたと判定された場合（ステップＳ２６０１：Ｙｅｓ）、検証環境が受信されているか否かを判定する（ステップＳ２６０２）。検証環境が受信された場合（ステップＳ２６０２：Ｙｅｓ）、入出力シーケンスを作成する（ステップＳ２６０３）。そして、作成された入出力シーケンスを情報端末装置１４０２に送信する（ステップＳ２６０４）。
【００９８】
ここで、入出力シーケンスの具体例について、たとえば、図２７に示すような検証環境が与えられた場合について説明する。この図２７によれば、検証環境は、たとえば、時刻０のときはｒｅｓｅｔ＝１、時刻１以上のときはｒｅｓｅｔ＝０であり、かつ、コード情報（Ａ）ならば、ｄａｔａ＿Ａ＝Ｄ１、コード情報（Ｂ）ならばｄａｔａ＿Ｂ＝Ｄ２、コード情報（Ｅ）ならばｍｏｄｅ＿Ｅ＝１である。
【００９９】
そして、この検証環境と、検証項目抽出部６０９によって抽出された検証項目と、に基づいて入出力シーケンスを作成する。たとえば、図２４に示す検証項目Ｎｏ．１については、図２８に示すような入出力シーケンスが作成される。具体的には、検証項目Ｎｏ．１からは、機能素子Ａによってアナログ音声を入力し、機能素子Ｂによってアナログ映像を入力し、機能素子ＥによってＭＰＥＧストリームを出力するというパスが抽出される。
【０１００】
そして、検証環境が与えられると、図２９に示すようなタイムチャート（入出力シーケンス）を作成することができる。このタイムチャートによれば、時刻１以降において、機能素子Ａによってアナログ音声Ｄ１を入力し、機能素子Ｂによってアナログ映像Ｄ２を入力し、機能素子ＥによってＭＰＥＧストリームを出力することとなる。
【０１０１】
これによれば、設計者に対し入出力シーケンスを提供することができ、設計者自ら入出力シーケンスを作成する必要なく、提供された入出力シーケンスを直接被検証装置に与えることができる。これにより、検証作業の効率化を図ることができる。
【０１０２】
このように、この発明の実施の形態２によれば、情報端末装置１４０２では、作成したユースケース図を構成する入力機器、出力機器および機能素子がコード化されているため、ユースケース図の秘匿化を図ることができる。また同様に、抽出された検証項目も、コード化された入力機器、出力機器および機能素子によって抽出されているため、検証項目の秘匿化を図ることができる。
【０１０３】
したがって、ユースケース図の提供者である設計者は、ユースケース図の内容を秘匿しながら、ユースケース図を検証支援装置に提供することができ、検証支援装置では、ユースケース図に含まれている記述情報がコード化されていても、検証項目を抽出することができる。これにより、安全性の高い検証支援をおこなうことができる。
【０１０４】
また、上述した実施の形態２では、情報端末装置１４０２において、ユースケース記述情報およびアクター記述情報をコード情報に変換することにより、ユースケース記述情報およびアクター記述情報の秘匿化を図ることとしているが、ユースケース記述情報およびアクター記述情報の文字列自体を、周知の暗号化技術によって暗号化することとしてもよい。これにより、上述した場合と同様、安全性の高い検証支援をおこなうことができる。
【０１０５】
この実施の形態１および２にかかる検証支援装置１４０１によれば、実行可能な入出力シーケンスに必要な検証項目を抽出することができる。したがって、被検証装置に対する検証作業を簡単かつ効率的におこなうことができ、設計期間の短縮化を図ることができる。
【０１０６】
また、上述した実施の形態１および２で説明した検証支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１０７】
上述した実施の形態１および２で説明した検証支援装置は、たとえば、ＤＶＤ／ＨＤＤビデオレコーダ、携帯電話、ナビゲーションシステムなど、ＬＳＩを用いた電子機器の検証作業を支援することに適している。
【０１０８】
（付記１）正常に動作するか否かの検証がおこなわれる被検証装置の機能をあらわす機能的構成情報を入力する機能的構成情報入力工程と、
前記被検証装置に与える入出力シーケンスに関する条件を入力する条件入力工程と、
前記機能的構成情報入力工程によって入力された機能的構成情報に基づいて、前記条件入力工程によって入力された入出力シーケンスに関する条件をすべて満足する検証項目関数を生成する検証項目関数生成工程と、
前記検証項目関数生成工程によって生成された検証項目関数に基づいて、前記機能的構成情報を構成する構成要素の組み合わせを、検証項目として抽出する検証項目抽出工程と、
を含んだことを特徴とする検証支援方法。
【０１０９】
（付記２）前記検証項目関数は、二分決定グラフによって表現されており、
前記検証項目抽出工程は、前記二分決定グラフによって表現された検証項目関数に基づいて前記検証項目を抽出することを特徴とする付記１に記載の検証支援方法。
【０１１０】
（付記３）前記入出力シーケンスに関する条件は、前記機能的構成情報を構成する構成要素の中の機能素子に関するリソース制約条件を含むことを特徴とする付記１または２に記載の検証支援方法。
【０１１１】
（付記４）前記入出力シーケンスに関する条件は、前記機能的構成情報を構成する構成要素のうち検証対象となる構成要素を制限する条件を含むことを特徴とする付記１または２に記載の検証支援方法。
【０１１２】
（付記５）前記機能的構成情報入力工程によって入力される機能的構成情報を構成する機能素子には、あらかじめ検証の優先度をあらわす優先情報が付加されており、
前記検証項目抽出工程によって抽出された検証項目に含まれている機能素子の優先情報から得られる検証優先度を、前記検証項目ごとに算出する優先度算出工程を含んだことを特徴とする付記１または２に記載の検証支援方法。
【０１１３】
（付記６）あらかじめ前記検証項目抽出工程によって抽出される検証項目の数を入力する検証項目数入力工程を含み、
前記検証項目抽出工程は、前記検証項目数入力工程によって入力された検証項目数の検証項目を抽出することを特徴とする付記１または２に記載の検証支援方法。
【０１１４】
（付記７）前記機能的構成情報のうち、前記機能的構成情報を構成する機能素子の動作が記述されている機能素子記述情報を、前記機能素子の動作が記述されていない情報に変換する変換工程を含み、
前記機能的構成情報入力工程は、前記変換工程によって変換された情報が含まれている機能的構成情報を入力することを特徴とする付記１または２に記載の検証支援方法。
【０１１５】
（付記８）前記被検証装置に入出力されるデータの流れを規定する検証環境を入力する検証環境入力工程と、
前記検証環境入力工程によって入力された検証環境と、前記検証項目抽出工程によって抽出された検証項目と、に基づいて、前記被検証装置に与える入出力シーケンスを作成する入出力シーケンス作成工程と、
を含んだことを特徴とする付記１または２に記載の検証支援方法。
【０１１６】
（付記９）前記機能的構成情報入力工程は、所定の情報端末装置から、ネットワークを介して前記機能的構成情報を入力し、
前記条件入力工程は、前記所定の情報端末装置から、前記ネットワークを介して前記入出力シーケンスに関する条件を入力し、
前記検証項目抽出工程は、前記所定の情報端末装置へ、前記ネットワークを介して前記検証項目を出力することを特徴とする付記７に記載の検証支援方法。
【０１１７】
（付記１０）前記機能的構成情報入力工程は、所定の情報端末装置から、ネットワークを介して前記機能的構成情報を入力し、
前記条件入力工程は、前記所定の情報端末装置から、前記ネットワークを介して前記入出力シーケンスに関する条件を入力し、
前記検証環境入力工程は、前記所定の情報端末装置から、前記ネットワークを介して前記検証環境を入力し、
前記検証項目抽出工程は、前記所定の情報端末装置へ、前記ネットワークを介して前記検証項目を出力し、
前記入出力シーケンス作成工程は、前記所定の情報端末装置へ、前記ネットワークを介して前記入出力シーケンスを出力することを特徴とする付記８に記載の検証支援方法。
【０１１８】
（付記１１）正常に動作するか否かの検証がおこなわれる被検証装置の機能をあらわす機能的構成情報を入力させる機能的構成情報入力工程と、
前記被検証装置に与える入出力シーケンスに関する条件を入力させる条件入力工程と、
前記機能的構成情報入力工程によって入力された機能的構成情報に基づいて、前記条件入力工程によって入力された入出力シーケンスに関する条件をすべて満足する検証項目関数を生成させる検証項目関数生成工程と、
前記検証項目関数生成工程によって生成された検証項目関数に基づいて、前記機能的構成情報を構成する構成要素の組み合わせを、検証項目として抽出させる検証項目抽出工程と、
をコンピュータに実行させることを特徴とする検証支援プログラム。
【０１１９】
（付記１２）正常に動作するか否かの検証がおこなわれる被検証装置の機能をあらわす機能的構成情報を入力する機能的構成情報入力手段と、
前記被検証装置に与える入出力シーケンスに関する条件を入力する条件入力手段と、
前記機能的構成情報入力手段によって入力された機能的構成情報に基づいて、前記条件入力手段によって入力された入出力シーケンスに関する条件をすべて満足する検証項目関数を生成する検証項目関数生成手段と、
前記検証項目関数生成手段によって生成された検証項目関数に基づいて、前記機能的構成情報を構成する構成要素の組み合わせを、検証項目として抽出する検証項目抽出手段と、
を備えることを特徴とする検証支援装置。
【０１２０】
【発明の効果】
以上説明したように、この発明によれば、実行可能な入出力シーケンスに必要な検証項目を抽出することができる。したがって、被検証装置に対する検証作業を簡単かつ効率的におこなうことができ、設計期間の短縮化を図ることができるという効果を奏する。
【図面の簡単な説明】
【図１】この発明の実施の形態１および２にかかる検証支援装置、ならびに実施の形態２にかかる情報端末装置のハードウェア構成を示すブロック図である。
【図２】この発明の実施の形態１にかかる被検証装置の機能的構成情報を示す説明図である。
【図３】この発明の実施の形態１にかかる被検証装置の機能的構成情報を変換したグラフを示す説明図である。
【図４】この発明の実施の形態１にかかる被検証装置におけるノード番号とブール変数との対応関係を示す説明図である。
【図５】この発明の実施の形態１にかかる被検証装置におけるエッジ番号とブール変数との対応関係を示す説明図である。
【図６】この発明の実施の形態１にかかる検証支援装置の機能的構成を示すブロック図である。
【図７】この発明の実施の形態１にかかる検証支援装置に適用される二分決定グラフ（ＢＤＤ）の一例を示す説明図である。
【図８】この発明の実施の形態１にかかる検証支援装置の検証コストデータベースのデータ構造を示す説明図である。
【図９】この発明の実施の形態１にかかる検証支援装置の検証項目抽出処理手順を示すフローチャートである。
【図１０】この発明の実施の形態１にかかる検証支援装置によって生成された検証項目関数をＢＤＤによって表現した表（その１）の一例を示す説明図である。
【図１１】この発明の実施の形態１にかかる検証支援装置によって生成された検証項目関数をＢＤＤによって表現した表（その２）の一例を示す説明図である。
【図１２】この発明の実施の形態１にかかる検証支援装置によって生成された検証項目関数をＢＤＤによって表現した表（その３）の一例を示す説明図である。
【図１３】この発明の実施の形態１にかかる検証支援装置の検証項目抽出処理手順の他の例を示すフローチャートである。
【図１４】この発明の実施の形態２にかかる検証支援システムを示す概略構成図である。
【図１５】この発明の実施の形態２にかかる情報端末装置の機能的構成を示すブロック図である。
【図１６】この発明の実施の形態２にかかる情報端末装置のユースケース表示情報データベースのデータ構造を示す説明図である。
【図１７】この本発明の実施の形態２にかかる情報端末装置のユースケース記述情報データベースのデータ構造を示す説明図である。
【図１８】この発明の実施の形態２にかかる情報端末装置のアクター記述情報データベースのデータ構造を示す説明図である。
【図１９】この発明の実施の形態２にかかる情報端末装置において作成された被検証装置のユースケース図である。
【図２０】図１９のユースケース図に含まれている記述情報を変換したユースケース図である。
【図２１】この発明の実施の形態２にかかる検証支援装置の機能的構成を示すブロック図である。
【図２２】この発明の実施の形態２にかかる検証支援装置の検証コストデータベースのデータ構造を示す説明図である。
【図２３】この発明の実施の形態２にかかる検証支援装置の処理手順の他の例を示すフローチャートである。
【図２４】この発明の実施の形態２にかかる検証支援装置において抽出された検証項目および検証コストを示す説明図である。
【図２５】図２４の検証項目および検証コストに含まれているコード情報が元の記述情報に変換された検証項目および検証コストを示す説明図である。
【図２６】この発明の実施の形態２にかかる検証支援装置の入出力シーケンス作成処理手順の他の例を示すフローチャートである。
【図２７】この発明の実施の形態２にかかる情報端末装置において作成された検証環境の一例を示す説明図である。
【図２８】この発明の実施の形態２にかかる検証支援装置において作成された入出力シーケンスを示す説明図である。
【図２９】図２８の入出力シーケンスを示すタイムチャートである。
【符号の説明】
６００  検証支援装置
６０１  機能的構成情報入力部
６０３  条件入力部
６０５  検証項目関数生成部
６０９  検証項目抽出部
【図１】
2004185592.tif 000003
【図２】
2004185592.tif 000004
【図３】
2004185592.tif 000005
【図４】
2004185592.tif 000006
【図５】
2004185592.tif 000007
【図６】
2004185592.tif 000008
【図７】
2004185592.tif 000009
【図８】
2004185592.tif 000010
【図９】
2004185592.tif 000011
【図１０】
2004185592.tif 000012
【図１１】
2004185592.tif 000013
【図１２】
2004185592.tif 000014
【図１３】
2004185592.tif 000015
【図１４】
2004185592.tif 000016
【図１５】
2004185592.tif 000017
【図１６】
2004185592.tif 000018
【図１７】
2004185592.tif 000019
【図１８】
2004185592.tif 000020
【図１９】
2004185592.tif 000021
【図２０】
2004185592.tif 000022
【図２１】
2004185592.tif 000023
【図２２】
2004185592.tif 000024
【図２３】
2004185592.tif 000025
【図２４】
2004185592.tif 000026
【図２５】
2004185592.tif 000027
【図２６】
2004185592.tif 000028
【図２７】
2004185592.tif 000029
【図２８】
2004185592.tif 000030
【図２９】
2004185592.tif 000031