(57)【特許請求の範囲】
【請求項１】
設計対象の処理を時系列に表現した図表を修正することにより、修正後の図表によってあらわされた設計対象の論理検証を支援する検証支援装置であって、
前記修正後の図表の入力を受け付ける図表入力手段と、
修正元の図表と、前記図表入力手段によって入力された修正後の図表とに基づいて、修正された処理（以下、「修正処理」という）を検出する修正処理検出手段と、
前記修正元の図表によってあらわされた設計対象の論理検証に用いられたテストベンチが、前記修正後の図表によってあらわされた設計対象の論理検証に流用可能かどうかを、前記修正処理検出手段によって検出された修正処理に基づいて判定する流用判定手段と、
前記流用判定手段によって判定された判定結果に基づいて前記テストベンチを出力するテストベンチ出力手段と、を備え、
前記流用判定手段は、
前記設計対象をあらわす修正後の図表において外部からデータの入力をおこなう外部実体群の中から、当該データを入力することによって前記修正処理検出手段によって検出された修正処理を実行させる外部実体を検出する外部実体検出手段と、
前記外部実体検出手段によって検出された外部実体が前記修正元の図表に含まれているかどうかを判定する外部実体判定手段と、を備え、
前記外部実体判定手段によって判定された判定結果に基づいて、前記修正元の図表によってあらわされた設計対象の論理検証に用いられたテストベンチが、前記修正後の図表によってあらわされた設計対象の論理検証に流用可能かどうかを判定することを特徴とする検証支援装置。
【請求項２】
設計対象の処理を時系列に表現した図表を修正することにより、修正後の図表によってあらわされた設計対象の論理検証を支援する検証支援装置であって、
前記修正後の図表の入力を受け付ける図表入力手段と、
前記設計対象におこなった論理検証に関する情報を生成する論理検証情報生成手段と、
前記論理検証情報生成手段によって生成された論理検証に関する情報に基づいて、前記図表入力手段によって入力された修正後の図表によってあらわされた設計対象が論理検証に合格したかどうかを判定する合否判定手段と、
前記合否判定手段によって論理検証に合格していないと判定された場合、前記図表入力手段によって入力された修正後の図表と修正元の図表とを比較して、修正された処理（以下、「修正処理」という）を検出する修正処理検出手段と、
前記修正元の図表によってあらわされた設計対象の論理検証に用いられたテストベンチが、前記修正後の図表によってあらわされた設計対象の論理検証に流用可能かどうかを、前記修正処理検出手段によって検出された修正処理に基づいて判定する流用判定手段と、
前記流用判定手段によって判定された判定結果に基づいて前記テストベンチを出力するテストベンチ出力手段と、
を備えることを特徴とする検証支援装置。
【請求項３】
前記流用判定手段は、
前記設計対象をあらわす修正後の図表において外部からデータの入力をおこなう外部実体群の中から、当該データを入力することによって前記修正処理検出手段によって検出された修正処理を実行させる外部実体を検出する外部実体検出手段と、
前記外部実体検出手段によって検出された外部実体が前記修正元の図表に含まれているかどうかを判定する外部実体判定手段と、を備え、
前記外部実体判定手段によって判定された判定結果に基づいて、前記修正元の図表によってあらわされた設計対象の論理検証に用いられたテストベンチが、前記修正後の図表によってあらわされた設計対象の論理検証に流用可能かどうかを判定することを特徴とする請求項１に記載の検証支援装置。
【請求項４】
図表入力手段と、修正処理検出手段と、流用判定手段と、テストベンチ出力手段と、を備え、設計対象の処理を時系列に表現した図表を修正することにより、修正後の図表によってあらわされた設計対象の論理検証を支援する検証支援装置が、
前記図表入力手段により、前記修正後の図表の入力を受け付ける図表入力工程と、
前記修正処理検出手段により、修正元の図表と、前記図表入力工程によって入力された修正後の図表とに基づいて、修正された処理（以下、「修正処理」という）を検出する修正処理検出工程と、
前記流用判定手段により、前記修正元の図表によってあらわされた設計対象の論理検証に用いられたテストベンチが、前記修正後の図表によってあらわされた設計対象の論理検証に流用可能かどうかを、前記修正処理検出工程によって検出された修正処理に基づいて判定する流用判定工程と、
前記テストベンチ出力手段により、前記流用判定工程によって判定された判定結果に基づいて前記テストベンチを出力するテストベンチ出力工程と、を実行し、
前記流用判定工程は、
前記流用判定手段により、前記設計対象をあらわす修正後の図表において外部からデータの入力をおこなう外部実体群の中から、当該データを入力することによって前記修正処理検出工程によって検出された修正処理を実行させる外部実体を検出する外部実体検出工程と、
前記外部実体検出工程によって検出された外部実体が前記修正元の図表に含まれているかどうかを判定する外部実体判定工程と、を実行し、
前記外部実体判定工程によって判定された判定結果に基づいて、前記修正元の図表によってあらわされた設計対象の論理検証に用いられたテストベンチが、前記修正後の図表によってあらわされた設計対象の論理検証に流用可能かどうかを判定することを特徴とする検証支援方法。
【請求項５】
図表入力手段と、論理検証情報生成手段と、合否判定手段と、修正処理検出手段と、流用判定手段と、テストベンチ出力手段と、を備え、設計対象の処理を時系列に表現した図表を修正することにより、修正後の図表によってあらわされた設計対象の論理検証を支援する検証支援装置が、
前記図表入力手段により、前記修正後の図表の入力を受け付ける図表入力工程と、
前記論理検証情報生成手段により、前記設計対象におこなった論理検証に関する情報を生成する論理検証情報生成工程と、
前記合否判定手段により、前記論理検証情報生成工程によって生成された論理検証に関する情報に基づいて、前記図表入力工程によって入力された修正後の図表によってあらわされた設計対象が論理検証に合格したかどうかを判定する合否判定工程と、
前記修正処理検出手段により、前記合否判定工程によって論理検証に合格していないと判定された場合、前記図表入力工程によって入力された修正後の図表と修正元の図表とを比較して、修正された処理（以下、「修正処理」という）を検出する修正処理検出工程と、
前記流用判定手段により、前記修正元の図表によってあらわされた設計対象の論理検証に用いられたテストベンチが、前記修正後の図表によってあらわされた設計対象の論理検証に流用可能かどうかを、前記修正処理検出工程によって検出された修正処理に基づいて判定する流用判定工程と、
前記テストベンチ出力手段により、前記流用判定工程によって判定された判定結果に基づいて前記テストベンチを出力するテストベンチ出力工程と、
を実行することを特徴とする検証支援方法。
【請求項６】
前記流用判定工程は、
前記流用判定手段により、前記設計対象をあらわす修正後の図表において外部からデータの入力をおこなう外部実体群の中から、当該データを入力することによって前記修正処理検出工程によって検出された修正処理を実行させる外部実体を検出する外部実体検出工程と、
前記外部実体検出工程によって検出された外部実体が前記修正元の図表に含まれているかどうかを判定する外部実体判定工程と、を実行し、
前記外部実体判定工程によって判定された判定結果に基づいて、前記修正元の図表によってあらわされた設計対象の論理検証に用いられたテストベンチが、前記修正後の図表によってあらわされた設計対象の論理検証に流用可能かどうかを判定することを特徴とする請求項５に記載の検証支援方法。
【請求項７】
設計対象の処理を時系列に表現した図表を修正することにより、修正後の図表によってあらわされた設計対象の論理検証を支援させる検証支援プログラムであって、
前記修正後の図表を入力させる図表入力工程と、
修正元の図表と、前記図表入力工程によって入力された修正後の図表とに基づいて、修正された処理（以下、「修正処理」という）を検出させる修正処理検出工程と、
前記修正元の図表によってあらわされた設計対象の論理検証に用いられたテストベンチが、前記修正後の図表によってあらわされた設計対象の論理検証に流用可能かどうかを、前記修正処理検出工程によって検出された修正処理に基づいて判定させる流用判定工程と、
前記流用判定工程によって判定された判定結果に基づいて前記テストベンチを出力させるテストベンチ出力工程と、をコンピュータに実行させ、
前記流用判定工程は、
前記設計対象をあらわす修正後の図表において外部からデータの入力をおこなう外部実体群の中から、当該データを入力することによって前記修正処理検出工程によって検出された修正処理を実行させる外部実体を検出させる外部実体検出工程と、
前記外部実体検出工程によって検出された外部実体が前記修正元の図表に含まれているかどうかを判定させる外部実体判定工程と、をコンピュータに実行させ、
前記外部実体判定工程によって判定された判定結果に基づいて、前記修正元の図表によってあらわされた設計対象の論理検証に用いられたテストベンチが、前記修正後の図表によってあらわされた設計対象の論理検証に流用可能かどうかを判定させることを特徴とする検証支援プログラム。
【請求項８】
設計対象の処理を時系列に表現した図表を修正することにより、修正後の図表によってあらわされた設計対象の論理検証を支援させる検証支援プログラムであって、
前記修正後の図表を入力させる図表入力工程と、
前記設計対象におこなった論理検証に関する情報を生成させる論理検証情報生成工程と、
前記論理検証情報生成工程によって生成された論理検証に関する情報に基づいて、前記図表入力工程によって入力された修正後の図表によってあらわされた設計対象が論理検証に合格したかどうかを判定させる合否判定工程と、
前記合否判定工程によって論理検証に合格していないと判定された場合、前記図表入力工程によって入力された修正後の図表と修正元の図表とを比較して、修正された処理（以下、「修正処理」という）を検出させる修正処理検出工程と、
前記修正元の図表によってあらわされた設計対象の論理検証に用いられたテストベンチが、前記修正後の図表によってあらわされた設計対象の論理検証に流用可能かどうかを、前記修正処理検出工程によって検出された修正処理に基づいて判定させる流用判定工程と、
前記流用判定工程によって判定された判定結果に基づいて前記テストベンチを出力させるテストベンチ出力工程と、をコンピュータに実行させることを特徴とする請求項７に記載の検証支援プログラム。
【請求項９】
前記設計対象をあらわす修正後の図表において外部からデータの入力をおこなう外部実体群の中から、当該データを入力することによって前記修正処理検出工程によって検出された修正処理を実行させる外部実体を検出させる外部実体検出工程と、
前記外部実体検出工程によって検出された外部実体が前記修正元の図表に含まれているかどうかを判定させる外部実体判定工程と、を前記コンピュータに実行させ、
前記流用判定工程は、
前記外部実体判定工程によって判定された判定結果に基づいて、前記修正元の図表によってあらわされた設計対象の論理検証に用いられたテストベンチが、前記修正後の図表によってあらわされた設計対象の論理検証に流用可能かどうかを判定させることを特徴とする検証支援プログラム。
ることを特徴とする請求項８に記載の検証支援プログラム。
【請求項１０】
請求項７〜９のいずれか一つに記載の検証支援プログラムを記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＬＳＩ設計の検証作業を支援する検証支援装置、検証支援方法、検証支援プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
ＬＳＩ設計では、市場に競争力のある製品を早く供給するため、従来から設計期間の短縮による作業効率化が要求されている一方、ＬＳＩが正しく動作するかどうかを検証する検証作業が設計期間中に必要不可欠であり、特に、大規模化、高機能化、高速化および低消費電力化が要求されているＬＳＩについては、高品質を維持するためにもこの検証作業は重要である。
【０００３】
ここで、従来のＬＳＩ設計の設計期間中における検証作業について具体的に説明する。あるＬＳＩを開発した場合、この開発されたＬＳＩを改良して次期ＬＳＩを開発することがある。次期ＬＳＩと改良元のＬＳＩとは、回路の一部分のみが異なり、他の部分は共通している。また、一般に、ＬＳＩ全体を検証する場合、論理を検証する様々なテストを用意して、ＬＳＩをテストしている。したがって、次期ＬＳＩの全体を検証する場合、改良元のＬＳＩにおこなったテストを再利用して検証することが一般的である。具体的には、次期ＬＳＩに対し、改良元のＬＳＩにおこなったテストを全部用いて検証作業をおこなったり、設計者の経験に基づいて改良元のＬＳＩにおこなったテストの中から必要なテストを選んで検証作業をおこなったり、次期ＬＳＩのプログラム構造を解析して、改良元のＬＳＩにおこなったテストの中から改良した部分に関係するテストを流すことにより検証作業をおこなっている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述のようにＬＳＩは大規模化および高機能化されているため、改良元のＬＳＩに対しておこなったテスト数が膨大であり、検証作業に要する時間が長期化し、結果的に設計期間の長期化を招くという問題があった。また、設計者の経験に基づいて検証作業をおこなう場合、改良箇所に関係のないテストを選択してしまう場合があり、検証作業に要する時間が長期化し、結果的に設計期間の長期化を招くという問題があった。さらに、次期ＬＳＩのプログラム構造を解析して検証作業をおこなう場合、必要なテストのみを選択することができるが、プログラムの解析に時間がかかり、結果的に設計期間の長期化を招くという問題があった。
【０００５】
この発明は、上述した従来技術による問題点を解消するため、簡単かつ効率的に流用可能なテストベンチを検出することにより検証作業の支援をおこなうことができる検証支援装置、検証支援方法、検証支援プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するため、この検証支援装置、検証支援方法、検証支援プログラムおよび記録媒体は、設計対象の処理を時系列に表現した図表を修正することにより、修正後の図表によってあらわされた設計対象の論理検証を支援する検証支援装置、検証支援方法、検証支援プログラムおよび記録媒体であって、前記修正後の図表の入力を受け付け、修正元の図表と、入力された修正後の図表とに基づいて、修正された処理（以下、「修正処理」という）を検出し、前記設計対象をあらわす修正後の図表において外部からデータの入力をおこなう外部実体群の中から、当該データを入力することによって検出された修正処理を実行させる外部実体を検出し、検出された外部実体が前記修正元の図表に含まれているかどうかを判定し、その判定結果に基づいて、前記修正元の図表によってあらわされた設計対象の論理検証に用いられたテストベンチが、前記修正後の図表によってあらわされた設計対象の論理検証に流用可能かどうかを判定し、判定された判定結果に基づいて前記テストベンチを出力することを要件とする。
【０００７】
また、この検証支援装置、検証支援方法、検証支援プログラムおよび記録媒体は、設計対象の処理を時系列に表現した図表を修正することにより、修正後の図表によってあらわされた設計対象の論理検証を支援する検証支援装置、検証支援方法、検証支援プログラムおよび記録媒体であって、前記修正後の図表の入力を受け付け、前記設計対象におこなった論理検証に関する情報を生成し、生成された論理検証に関する情報に基づいて、入力された修正後の図表によってあらわされた設計対象が論理検証に合格したかどうかを判定し、論理検証に合格していないと判定された場合、前記図表入力手段によって入力された修正後の図表と修正元の図表とを比較して、修正された処理（以下、「修正処理」という）を検出し、前記修正元の図表によってあらわされた設計対象の論理検証に用いられたテストベンチが、前記修正後の図表によってあらわされた設計対象の論理検証に流用可能かどうかを、検出された修正処理に基づいて判定し、判定された判定結果に基づいて前記テストベンチを出力することを要件とする。これらによれば、修正元の図表によってあらわされた設計対象に用いられたテストベンチを、修正後の図表を入力するだけで検出することができる。
【発明の効果】
【０００８】
この検証支援装置、検証支援方法、検証支援プログラムおよび記録媒体によれば、修正元の図表によってあらわされた設計対象に用いられたテストベンチを、修正後の図表を入力するだけで検出することができるため、流用可能なテストベンチのみを簡単かつ効率的に検出することにより検証作業の支援をおこなうことができるという効果を奏する。
【発明を実施するための最良の形態】
【０００９】
以下に添付図面を参照して、この発明にかかる検証支援装置、検証支援方法、検証支援プログラムおよび記録媒体の好適な実施の形態を詳細に説明する。
【００１０】
（実施の形態１）
（検証支援システムの概略構成）
まず、この発明の実施の形態にかかる検証支援システムの概略構成について説明する。第１図は、この発明の実施の形態にかかる検証支援システム１００の概略構成を示す説明図である。検証支援システム１００は、検証支援装置１０１と、複数の端末装置１０２とが、ＬＡＮ、ＷＡＮ、インターネットなどのネットワーク１０３を介して相互に通信可能に接続されている。
【００１１】
検証支援装置１０１は、設計対象の処理を時系列に表現した図表（たとえば、シーケンス図）を修正することにより、修正後の図表によってあらわされた設計対象の論理検証を支援する。具体的には、修正後の図表によってあらわされた設計対象に用いられたテストベンチを出力する。また、検証支援装置１０１は、シーケンス図データベース１０４と、テストベンチデータベース１０５と、シーケンス図−テストベンチ対応テーブル１０６と、ソースコードデータベース１０７と、レグレッションテストログデータベース１０８と、を備えている。これらのデータベースおよびテーブルについては後述する。端末装置１０２は、ユーザによる入力操作により、ネットワーク１０３を介して検証支援装置１０１から出力されたテストベンチを受信する。
【００１２】
（検証支援装置１０１および端末装置１０２のハードウェア構成）
つぎに、この発明の実施の形態にかかる検証支援装置１０１および端末装置１０２のハードウェア構成について説明する。第２図は、この発明の実施の形態にかかる検証支援装置および端末装置のハードウェア構成を示すブロック図である。
【００１３】
第２図において、検証支援装置１０１および端末装置１０２はそれぞれ、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＨＤＤ（ハードディスクドライブ）２０４と、ＨＤ（ハードディスク）２０５と、ＦＤＤ（フレキシブルディスクドライブ）２０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）２０７と、ディスプレイ２０８と、Ｉ／Ｆ（インターフェース）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３と、を備えている。また、各構成部はバス２００によってそれぞれ接続されている。
【００１４】
ここで、ＣＰＵ２０１は、検証支援装置１０１および端末装置１０２の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ＨＤＤ２０４は、ＣＰＵ２０１の制御にしたがってＨＤ２０５に対するデータのリード／ライトを制御する。ＨＤ２０５は、ＨＤＤ２０４の制御で書き込まれたデータを記憶する。
【００１５】
ＦＤＤ２０６は、ＣＰＵ２０１の制御にしたがってＦＤ２０７に対するデータのリード／ライトを制御する。ＦＤ２０７は、ＦＤＤ２０６の制御で書き込まれたデータを記憶したり、ＦＤ２０７に記憶されたデータを検証支援装置１０１および端末装置１０２に読み取らせたりする。
【００１６】
着脱可能な記録媒体として、ＦＤ２０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００１７】
Ｉ／Ｆ２０９は、通信回線を通じてインターネットなどのネットワーク１０３に接続され、このネットワーク１０３を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク１０３と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００１８】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００１９】
スキャナ２１２は、画像を光学的に読み取り、検証支援装置１０１および端末装置１０２内に画像データを取り込む。なお、スキャナ２１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００２０】
（各データベースおよびテーブルの記憶内容）
つぎに、第１図に示したシーケンス図データベース１０４、テストベンチデータベース１０５、シーケンス図−テストベンチ対応テーブル１０６、ソースコードデータベース１０７およびレグレッションテストログデータベース１０８に記憶されている内容について第３図〜第７図を用いて説明する。まず、シーケンス図データベース１０４について説明する。第３図は、シーケンス図データベースの記憶内容を示す説明図である。
【００２１】
第３図において、シーケンス図データベース１０４は、設計対象ごとに、シーケンス図、シーケンス図のバージョン番号およびレグレッションテストのバージョン番号が記憶されている。このシーケンス図は、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）などのコンピュータに読み取り可能な記述言語によって作成された図であり、設計対象の処理を時系列に表現した図表の一例である。ここでは、シーケンス図を例に挙げたが、ユースケース図を用いてデータの流れを時系列にあらわすこととしてもよい。
【００２２】
また、シーケンス図のバージョン番号は、シーケンス図がシーケンス図データベース１０４に記憶されるときに付与される番号である。さらに、レグレッションテストのバージョン番号は、シーケンス図によってあらわされる設計対象が論理検証（レグレッションテスト）に合格した場合に付与される番号である。論理検証をおこなっていない場合、または論理検証が不合格であった場合には、レグレッションテストのバージョン番号は付与されない。
【００２３】
ここで、第３図に示した例について具体的に説明すると、設計対象の「○○装置」については、２つのシーケンス図３００、３０１が記憶されている。バージョン番号１．０のシーケンス図３００は、バージョン番号５．０のレグレッションテストに合格している。また、バージョン番号１．１のシーケンス図３０１は、バージョン番号１．０のシーケンス図を修正したシーケンス図であり、バージョン番号５．１のレグレッションテストに合格している。
【００２４】
つぎに、テストベンチデータベース１０５の記憶内容について説明する。第４図は、テストベンチデータベース１０５の記憶内容を説明する説明図である。第４図において、テストベンチデータベース１０５には、テストベンチｔｅｓｔ１．ｃｐｐ〜ｔｅｓｔ３．ｃｐｐと、そのテストベンチｔｅｓｔ１．ｃｐｐ〜ｔｅｓｔ３．ｃｐｐのバージョン番号と、レグレッションテストのバージョン番号が記憶されている。テストベンチｔｅｓｔ１．ｃｐｐ〜ｔｅｓｔ３．ｃｐｐは、設計対象の動作、たとえば、クロックの発生、入力パターンの発生、期待値との比較などを検証するための記述であり、第３図に示したシーケンス図３００、３０１のアクターから与えられる。
【００２５】
また、テストベンチｔｅｓｔ１．ｃｐｐ〜ｔｅｓｔ３．ｃｐｐのバージョン番号は、テストベンチｔｅｓｔ１．ｃｐｐ〜ｔｅｓｔ３．ｃｐｐがテストベンチデータベース１０５に記憶されるときに付与される番号である。さらに、レグレッションテストのバージョン番号は、テストベンチが与えられた設計対象が論理検証に合格した場合に付与される番号である。論理検証をおこなっていない場合、または論理検証が不合格であった場合には、レグレッションテストのバージョン番号は付与されない。
【００２６】
つぎに、シーケンス図−テストベンチ対応テーブル１０６について説明する。第５図は、シーケンス図−テストベンチ対応テーブル１０６を示す説明図である。第５図において、シーケンス図−テストベンチ対応テーブル１０６には、設計対象をあらわすシーケンス図と、このシーケンス図によってあらわされる設計対象に用いられたテストベンチが対応付けされている。第５図に示した例では、第３図に示したバージョン番号５．０のレグレッションテストがおこなわれた設計対象をあらわすシーケンス図３００と、第４図に示したバージョン番号５．０のレグレッションテストに用いられたテストベンチｔｅｓｔ１．ｃｐｐ〜ｔｅｓｔ３．ｃｐｐとが、対応付けされている。
【００２７】
つぎに、ソースコードデータベース１０７の記憶内容について説明する。第６図は、ソースコードデータベース１０７に記憶されている記憶内容を示す説明図である。第６図において、ソースコードデータベース１０７には、シーケンス図ごとに、ソースコードと、ソースコードのバージョン番号と、が記憶されている。ソースコードは、シーケンス図によってあらわされる設計対象の設計内容を示した設計データである。また、ソースコードのバージョン番号は、ソースコードがソースコードデータベース１０７に記憶されるときに付与される番号である。
【００２８】
第６図に示した例では、第３図に示したシーケンス図３００についてソースコードＡＡＡ，ＢＢＢ，ＣＣＣが記憶されている。バージョン番号１．０のソースコードＡＡＡは、シーケンス図３００を元に設計されたデータである。バージョン番号１．１のソースコードＢＢＢは、ソースコードＡＡＡを修正したデータである。バージョン番号１．２のソースコードＣＣＣは、ソースコードＢＢＢを修正したデータである。
【００２９】
つぎに、レグレッションテストログデータベース１０８の記憶内容について説明する。第７図は、レグレッションテストログデータベース１０８の記憶内容を示す説明図である。第７図において、レグレッションテストログデータベース１０８には、レグレッションテストのテスト実行日時、レグレッションテストをおこなったソースコード、レグレッションテストに用いられたテストベンチ、レグレッションテストによる論理検証の合否判定結果が記憶されている。たとえば、第６図に示したソースコードＡＡＡについては、テストベンチｔｅｓｔ１．ｃｐｐ〜ｔｅｓｔ３．ｃｐｐが用いられ、すべて合格している。
【００３０】
つぎに、第３図に示したシーケンス図データベース１０４に記憶されているシーケンス図の一例について具体的に説明する。第８図および第９図は、第３図に示したシーケンス図データベース１０４に記憶されているシーケンス図３００、３０１の一例を示す説明図である。第８図において、シーケンス図３００には、アクター８００とオブジェクト８１０が記述されている。アクター８００は、シーケンス図３００において外部からデータの入力をおこなう抽象的な外部実体をあらわしている。第８図に示したアクター８００としては、ユーザ８０１と、画像入力装置８０２と、テレビインターフェース（ＴＶ  Ｉ／Ｏ）８０３とが記述されている。
【００３１】
ここで、オブジェクト８１０は、設計対象内部の構成（ハードウェア、ソフトウェア含む）をあらわしている。第８図に示したオブジェクト８１０としては、インスタンス化された８つのクラス８１１〜８１８（制御ソフト８１１、ストリーム受信部８１２、ストリーム解析部８１３、イントラ伸張部８１４、インター伸張部８１５、画像出力部８１６、画像バッファ８１７、伸張後データ転送部８１８）が記述されている。なお、各アクター８００およびクラスの縦軸は、各アクター８００およびクラスの生存線と呼ばれ、一部のクラスの生存線上には、生存期間を示す活性区間（生存線上の矩形）が記述されている。また、オブジェクト８１０間、またはアクター８００とオブジェクト８１０との間には、アクター８００やオブジェクト８１０（クラス８１１〜８１８）の処理（メソッド）８２１〜８３６があらわされている。この処理８２１〜８３６は、オブジェクト８１０の動的な性質をあらわす「操作」と呼ばれ、メンバー関数として記述されている。
【００３２】
ここで、この第８図に示したシーケンス図３００の処理の流れについて説明する。この設計対象は、ここではＤＶＤプレーヤをあらわしている。まず、ユーザ８０１から「デコード開始」の処理８２１が入力されると、制御ソフト８１１は、「ストリーム受信開始」の処理８２２をおこなう。そして、画像入力装置８０２から画像データの書き込み処理（「ｗｒｉｔｅ（ストリーム）」）８２３によってストリーム受信がおこなわれると、ストリーム受信部８１２は、ストリーム解析部８１３に対し、受信した画像データ（ストリームデータ）の送信開始信号を送信する処理（「ｓｔａｒｔ（）」）８２４をおこなう。ストリーム解析部８１３は、ストリーム受信部８１２に対し、解析する画像データの読取処理（「ｒｅａｄ（）」）８２５をおこない、一定量の画像データが蓄積されると、ストリーム解析部８１３に対し、受信した画像データの送信処理（「ストリームデータ」）８２６をおこなう。
【００３３】
ストリーム解析部８１３は、受信した画像データを解析して、イントラデータおよびインターデータを抽出する。そして、抽出したイントラデータをイントラ伸張部８１４に送信する送信処理（「ｗｒｉｔｅ（イントラデータ）」）８２７と、抽出したインターデータをインター伸張部８１５に送信する送信処理（「ｗｒｉｔｅ（インターデータ）」）８２８をおこなう。イントラ伸張部８１４は、イントラ伸張したデータを、伸張後データ転送部８１８に送信する送信処理（「ｗｒｉｔｅ（イントラ伸張後データ）」）８２９をおこなう。この送信処理８２９は、１枚分の画像が処理されるまで繰り返す。インター伸張部８１５は、画像バッファ８１７に対して参照画像データの読取処理（「ｒｅａｄ」）８３０をおこない、画像バッファ８１７は、参照画像データをインター伸張部８１５に送信する送信処理（「参照画像データ」）８３１をおこなう。そして、インター伸張部８１５は、インター伸張したデータを、伸張後データ転送部８１８に送信する送信処理（「ｗｒｉｔｅ（インター伸張後データ）」）８３２をおこなう。
【００３４】
伸張後データ転送部８１８は、画像データを画像バッファ８１７に送信する送信処理（「ｗｒｉｔｅ」）８３３をおこなう。この送信処理８３３は、１枚分の画像が処理されるまで繰り返す。そして、１枚分の画像が処理された場合、画像バッファ８１７は、伸張後データ転送部８１８に対してその旨を送信する処理（「ｓｕｃｃｅｓｓｆｕｌ」）８３４をおこなう。また、画像出力部８１６は、３枚分の画像のフィルタリングをおこなった場合、その画像の読取処理（「ｒｅａｄ」）８３５をおこなう。そして、画像出力部８１６は、テレビインターフェース８０３に、読取処理８３５で読み取った画像を送信する送信処理（「ｗｒｉｔｅ（ｄａｔａ）」）８３６をおこなう。
【００３５】
つぎに、第９図に示したシーケンス図３０１について説明する。第９図に示したシーケンス図３０１は、第８図に示したシーケンス図３００を修正した図である。具体的には、ストリーム解析部８１３とイントラ伸張部８１４との間に、逆量子化部８１９を追加した図であり、それ以外はシーケンス図３００と同一であるため、同一符号を付し、その説明を省略する。この逆量子化部８１９を追加したことにより、ストリーム解析部８１３は、抽出したイントラデータを逆量子化部８１９に送信する送信処理（「ｗｒｉｔｅ（イントラデータ）」）８２７ａと、抽出したインターデータを逆量子化部８１９に送信する送信処理（「ｗｒｉｔｅ（インターデータ）」）８２８ａをおこなう。逆量子化部８１９は、受信したイントラデータを逆量子化して、イントラ伸張部８１４に送信する送信処理（「ｗｒｉｔｅ（データ）」）８２７ｂをおこなう。この送信処理８２７ｂは、１枚分の画像が処理されるまで繰り返す。また、逆量子化部８１９は、受信したインターデータを逆量子化して、インター伸張部８１５に送信する送信処理（「ｗｒｉｔｅ（データ）」）８２８ｂをおこなう。
【００３６】
（検証支援装置１０１の機能的構成）
つぎに、この発明の実施の形態にかかる検証支援装置１０１の機能的構成について説明する。第１０図は、この発明の実施の形態にかかる検証支援装置１０１の機能的構成を示す説明図である。第１０図において、検証支援装置１０１は、図表記憶部１００１と、テストベンチ記憶部１００２と、ソースコード記憶部１００３と、レグレッションテストログ記憶部１００４と、図表作成／修正部１００５と、図表抽出部１００６と、論理検証情報生成部１００７と、合否判定部１００８と、修正処理検出部１００９と、流用判定部１０１０と、テストベンチ出力部１０１１と、論理検証部１０１２と、ソースコード作成／修正部１０１３と、を備えている。
【００３７】
図表記憶部１００１は、設計対象の処理を時系列に表現した図表およびこの図表に関する情報を記憶する。図表記憶部１００１は、具体的には、第８図または第９図に示したシーケンス図３００、３０１を記憶するものであり、より具体的には、第３図に示したシーケンス図データベース１０４によって構成される。テストベンチ記憶部１００２は、設計対象の論理検証に用いられるテストベンチを記憶する。テストベンチ記憶部１００２は、具体的には、第４図に示したテストベンチデータベース１０５によって構成される。
【００３８】
ソースコード記憶部１００３は、設計対象の設計内容をあらわすソースコードを記憶する。ソースコード記憶部１００３は、具体的には、第６図に示したソースコードデータベース１０７によって構成される。レグレッションテストログ記憶部１００４は、レグレッションテストのログを記憶する。レグレッションテストログ記憶部１００４は、具体的には、第７図に示したレグレッションテストログデータベース１０８によって構成される。また、図表記憶部１００１、テストベンチ記憶部１００２、ソースコード記憶部１００３、およびレグレッションテストログ記憶部１００４は、具体的には、たとえば、第２図に示したＲＯＭ２０２、ＲＡＭ２０３、ＨＤ２０５、ＦＤ２０７などによってその機能を実現することができる。
【００３９】
図表作成／修正部１００５は、設計対象の処理を時系列に表現した図表の作成および修正をおこなう。具体的には、たとえば、設計者の操作によって、第８図に示したシーケンス図３００を作成し、作成されたシーケンス図３００を第９図に示したシーケンス図３０１に修正する。作成および修正したシーケンス図３００、３０１は、図表記憶部１００１に記憶される。
【００４０】
図表抽出部１００６は、図表記憶部１００１に記憶されている図表を抽出する。具体的には、設計者の操作によって、第３図に示したシーケンス図３００の中から任意のシーケンス図、たとえば、図表作成／修正部１００５によって修正された、修正後のシーケンス図３０１を抽出する。
【００４１】
論理検証情報生成部１００７は、設計対象におこなった論理検証に関する情報を生成する。具体的には、論理検証（レグレッションテスト）に合格した場合、論理検証に関する情報として、そのレグレッションテストのバージョン番号を生成し、レグレッションテストに合格した設計対象の処理をあらわすシーケンス図、合格したレグレッションテストに用いられたテストベンチ、レグレッションテストに合格した設計対象の設計内容をあらわすソースコードに付与する。
【００４２】
合否判定部１００８は、論理検証情報生成部１００７によって生成された論理検証に関する情報に基づいて、図表抽出部１００６によって抽出された修正後の図表によりあらわされた設計対象が、論理検証に合格したかどうかを判定する。具体的には、図表抽出部１００６によって抽出された修正後のシーケンス図３０１に、レグレッションテストのバージョン番号が付与されているかどうかによって判定する。
【００４３】
修正処理検出部１００９は、修正元の図表と、図表抽出部１００６によって抽出された修正後の図表とを比較して、修正された処理（以下、修正処理）を検出する。具体的には、同一設計対象において、第３図に示した修正元となるバージョン番号１．０のシーケンス図３００（第８図を参照）と、第３図に示した修正後となるバージョン番号１．１のシーケンス図３０１（第９図を参照）を比較する。そして、修正後となるバージョン番号１．１のシーケンス図３０１の中から、逆量子化部８１８の活性区間に入力される処理８２７ａ、８２８ａを修正処理として検出する。また、修正処理検出部１００９は、合否判定部１００８によって論理検証に合格していないと判定された場合、修正後の図表と修正元の図表とを比較して、修正された処理を検出することとしてもよい。
【００４４】
流用判定部１０１０は、修正処理検出部１００９によって検出された修正処理８２７ａ、８２８ａに基づいて、修正元の図表によってあらわされた設計対象の論理検証に用いられたテストベンチが、修正後の図表によってあらわされた設計対象の論理検証に流用可能かどうかを判定する。この流用判定部１０１０の具体的内容については後述する。
【００４５】
テストベンチ出力部１０１１は、流用判定部１０１０によって判定された判定結果に基づいてテストベンチを出力する。具体的には、流用判定部１０１０によって判定された判定結果から、流用可能なテストベンチをテストベンチ記憶部１００２から抽出して論理検証部１０１２に出力する。論理検証部１０１２は、テストベンチ出力部１０１１から出力されたテストベンチを用いて、ソースコードのレグレッションテストをおこなう。
【００４６】
ソースコード作成／修正部１０１３は、設計対象の設計内容をあらわすソースコードの作成および修正をおこなう。具体的には、たとえば、設計者の操作によって、第６図に示したソースコードＡＡＡを作成し、また、作成されたソースコードＡＡＡをソースコードＢＢＢに修正したり、さらに、修正したソースコードＢＢＢをソースコードＣＣＣに修正する。作成および修正したソースコードは、ソースコード記憶部１００３に記憶する。
【００４７】
つぎに、流用判定部１０１０について具体的に説明する。第１０図において、流用判定部１０１０は、外部実体検出部１０２１と、外部実体判定部１０２２と、流用判定実行部１０２３とを備えている。外部実体検出部１０２１は、設計対象をあらわす修正後の図表において外部からデータの入力をおこなう外部実体群の中から、当該データを入力することによって修正処理検出部１００９により検出された修正処理を実行させる外部実体を検出する。
【００４８】
具体的には、第９図に示した修正後のシーケンス図３０１に記述されている外部実体としての複数のアクター８００（第８図を参照）の中から、修正処理８２７ａ、８２８ａを実行させるアクター８００を検出する。より具体的には、修正処理である画像データの送信処理（「ｗｒｉｔｅ（イントラデータ）」）８２７ａをおこなうクラスであるストリーム解析部８１３を検出し、検出したストリーム解析部８１３が解析をおこなうストリームデータ（画像データ）を送信する送信処理（「ストリームデータ」）８２６をおこなうクラスであるストリーム受信部８１２を検出し、検出したストリーム受信部８１２にストリームデータ（画像データ）の送信処理（「ｗｒｉｔｅ（ストリーム）」）８２３をおこなうアクター８００である画像入力装置８０２を検出する。
【００４９】
外部実体判定部１０２２は、外部実体検出部１０２１によって検出された外部実体が修正元の図表に含まれているかどうかを判定する。具体的には、外部実体検出部１０２１によって検出された画像入力装置８０２が、修正元のシーケンス図３００に記述されているかどうかを判定する。そして、記述されていない場合は、外部実体検出部１０２１によって検出された外部実体が修正元の図表に含まれていないと判定する。一方、記述されている場合は、修正後のシーケンス図３０１に記述されている画像入力装置８０２（検出されたアクター８００）がおこなう処理８２３と、修正元のシーケンス図３００に記述されている画像入力装置８０２がおこなう処理８２３と、が一致するかどうかを判定する。一致しない場合は、外部実体検出部１０２１によって検出されたアクター８００が修正元のシーケンス図３００に含まれていないと判定する。一方、一致する場合は、外部実体検出部１０２１によって検出されたアクター８００が修正元のシーケンス図３００に含まれていると判定する。
【００５０】
流用判定実行部１０２３は、外部実体判定部１０２２によって判定された判定結果に基づいて、修正元の図表によってあらわされた設計対象の論理検証に用いられたテストベンチが、修正後の図表によってあらわされた設計対象の論理検証に流用可能かどうかを判定する。具体的には、外部実体判定部１０２２により、外部実体検出部１０２１によって検出されたアクター８００が修正元のシーケンス図３００に含まれていると判定された場合は、その修正元のシーケンス図３００によってあらわされる設計対象に用いられたテストベンチが流用可能であると判定する。より具体的には、第９図に示したシーケンス図３０１に対応するソースコードに対し、第８図に示したシーケンス図３００に対応するソースコードの論理検証に用いられたテストベンチを流用することができる。
【００５１】
また、流用判定部１０１０は、ソースコード抽出部１０２４と、修正記述検出部１０２５と、処理検索部１０２６と、処理判定部１０２７と、を備えている。ソースコード抽出部１０２４は、合否判定部１００８によって論理検証に合格したと判定された場合、当該論理検証に合格した設計対象の設計内容をあらわすソースコード群の中から、当該合格した論理検証に用いられたソースコードと、当該ソースコードを修正した修正後のソースコードを抽出する。論理検証に用いられたソースコードを修正した修正後のソースコードは、ソースコードのバージョン番号を比較することにより特定することができる。たとえば、第６図において、合格した論理検証に用いられたソースコードがソースコードＢＢＢである場合、ソースコードＢＢＢのバージョン番号より最新のバージョン番号が付与されているソースコードＣＣＣを抽出する。
【００５２】
修正記述検出部１０２５は、ソースコード抽出部１０２４によって抽出されたソースコードどうしを比較して、修正された記述（以下、修正記述）を検出する。具体的には、ｄｉｆｆコマンドを用いて修正記述を検出する。
【００５３】
処理検索部１０２６は、修正記述検出部１０２５によって検出された修正記述によりあらわされた処理を、論理検証に合格した設計対象をあらわす図表以外の他の図表から検索する。具体的には、図表記憶部１００１を検索して、検出された修正記述（メンバー関数）によってあらわされる処理を、論理検証に合格した設計対象をあらわすシーケンス図以外の他のシーケンス図から抽出する。
【００５４】
処理判定部１０２７は、処理検索部１０２６によって検索された処理が、論理検証に合格した設計対象をあらわす図表に含まれているかどうかを判定する。具体的には、処理検索部１０２６によって検索された処理が、論理検証に合格した設計対象をあらわすシーケンス図に含まれている場合、テストベンチ出力部１０１１は、第５図に示したシーケンス図−テストベンチ対応テーブル１０６を参照して、処理検索部１０２６によって検索された処理を含むシーケンス図に対応するテストベンチをテストベンチ記憶部１００２から抽出する。
【００５５】
なお、上述した図表作成／修正部１００５、図表抽出部１００６、論理検証情報生成部１００７、合否判定部１００８、修正処理検出部１００９、流用判定部１０１０、テストベンチ出力部１０１１、論理検証部１０１２、およびソースコード作成／修正部１０１３は、具体的には、たとえば、第２図に示したＲＯＭ２０２、ＲＡＭ２０３、ＨＤ２０５、ＦＤ２０７などに記録されたプログラムをＣＰＵ２０１が実行することによって、またはＩ／Ｆ２０９によって、その機能を実現する。
【００５６】
（検証支援処理手順）
つぎに、この発明の実施の形態にかかる検証支援処理手順について説明する。第１１図は、この発明の実施の形態にかかる検証支援処理手順を示すフローチャートである。第１１図において、まず、初期データ登録処理（ステップＳ１１０１）をおこなう。この処理では、設計対象の１次開発の設計データであるバージョン番号１．０のシーケンス図３００、テストベンチｔｅｓｔ１．ｃｐｐ〜ｔｅｓｔ３．ｃｐｐ、バージョン番号１．０のソースコードＡＡＡを各データベース１０４、１０５、１０７に登録する。つぎに、初期データ登録処理によって登録されたデータによって１次レグレッションテストをおこなう（ステップＳ１１０２）。この初期データ登録処理（ステップＳ１１０１）および１次レグレッションテスト（ステップＳ１１０２）は、１次開発工程と呼ばれる。そして、レグレッションテストに合格したソースコードを確定するリリース処理をおこなう（ステップＳ１１０３）。
【００５７】
つぎに、シーケンス図更新処理によってシーケンス図の更新（修正）をおこない（ステップＳ１１０４）、ソースコード更新処理によってソースコードの更新（修正）をおこなう（ステップＳ１１０５）。そして、テストベンチ検索処理をおこなう（ステップＳ１１０６）。具体的には、修正元のシーケンス図またはソースコードに用いられたテストベンチの中から、修正後のシーケンス図またはソースコードに流用可能なテストベンチを検索する。そして、検索されたテストベンチを流用してｎ＋１次レグレッションテストをおこなう（ステップＳ１１０７）。このシーケンス図更新処理からレグレッションテストまでの処理工程（ステップＳ１１０４〜ステップＳ１１０７）は、ｎ＋１次開発工程（ｎ＝１，２，３，…）と呼ばれる。ｎ＋１次レグレッションテストに合格した場合は（ステップＳ１１０８：Ｙｅｓ）、リリース処理に移行し（ステップＳ１１０３）、不合格の場合は（ステップＳ１１０８：Ｎｏ）、つぎのｎ＋１次開発工程に移行する（ステップＳ１１０４）。
【００５８】
（レグレッションテストの処理手順）
つぎに、第１１図に示した１次レグレッションテストの処理手順について説明する。第１２図は、第１１図に示した１次レグレッションテストの処理手順を示すフローチャートである。第１２図において、まず、ソースコードデータベース１０７から任意のソースコードを抽出する（ステップＳ１２０１）。また、テストベンチデータベース１０５から任意のテストベンチを抽出する（ステップＳ１２０２）。そして、抽出されたテストベンチが、抽出されたソースコードにすでに使用されているかどうかを判定する（ステップＳ１２０３）。すでに使用されている場合は（ステップＳ１２０３：Ｙｅｓ）、ステップＳ１２１０に移行する。一方、使用されていない場合は（ステップＳ１２０３：Ｎｏ）、抽出されたテストベンチを用いて、ソースコードによって設計された設計対象の動作を検証するシミュレーションをおこなう（ステップＳ１２０４）。
【００５９】
シミュレーションに不合格であった場合は（ステップＳ１２０５：Ｎｏ）、ステップＳ１２０９に移行する。一方、シミュレーションに合格した場合は（ステップＳ１２０５：Ｙｅｓ）、レグレッションテストのバージョン番号を生成する（ステップＳ１２０６）。そして、このソースコードに対応するシーケンス図に、レグレッションテストのバージョン番号を付与し（ステップＳ１２０７）、使用したテストベンチに、レグレッションテストテストログデータベース１０８を更新する（ステップＳ１２０９）。
【００６０】
シミュレーションをおこなっていないテストベンチがある場合は（ステップＳ１２１０：Ｙｅｓ）、ステップＳ１２０２に移行する。一方、シミュレーションをおこなっていないテストベンチがない場合は（ステップＳ１２１０：Ｎｏ）、１次レグレッションテストを終了する。
【００６１】
（シーケンス図更新処理手順およびソースコード更新処理手順）
つぎに、第１１図に示したシーケンス図更新処理手順およびソースコード更新処理手順について説明する。第１３図は、第１１図に示したシーケンス図更新処理手順およびソースコード更新処理手順を示すフローチャートである。第１３図において、シーケンス図を修正しない場合は（ステップＳ１３０１：Ｎｏ）、ステップＳ１３０６に移行する。一方、シーケンス図を修正する場合は（ステップＳ１３０１：Ｙｅｓ）、修正するシーケンス図を抽出する（ステップＳ１３０２）。そして、抽出したシーケンス図を修正する（ステップＳ１３０３）。そして、シーケンス図データベース１０４を、修正したシーケンス図にバージョン番号を付与し（ステップＳ１３０４）、修正後のシーケンス図およびバージョン番号に更新する（ステップＳ１３０５）。
【００６２】
そして、ソースコードを修正しない場合は（ステップＳ１３０６：Ｎｏ）、一連の処理を終了する。一方、ソースコードを修正する場合は（ステップＳ１３０６：Ｙｅｓ）、修正するソースコードを抽出し（ステップＳ１３０７）、抽出したソースコードを修正する（ステップＳ１３０８）。そして、修正したソースコードにバージョン番号を付与し（ステップＳ１３０９）、修正後のソースコードおよびバージョン番号に更新する（ステップＳ１３１０）。
【００６３】
（テストベンチ検索処理手順）
つぎに、第１１図に示したテストベンチ検索処理手順について説明する。第１４図は、第１１図に示したテストベンチ検索処理手順を示すフローチャートである。第１４図において、まず、シーケンス図データベース１０４から、任意の設計対象の最新バージョンのシーケンス図を抽出する（ステップＳ１４０１）。そして、抽出したシーケンス図にレグレッションテストのバージョン番号が付与されているかどうかを判定する（ステップＳ１４０２）。
【００６４】
レグレッションテストのバージョン番号が付与されていない場合は（ステップＳ１４０２：Ｎｏ）、抽出されたシーケンス図によってあらわされる設計対象は、未検証の設計対象である。したがって、抽出したシーケンス図よりのバージョン番号よりも過去のバージョン番号のシーケンス図（修正元のシーケンス図）の中から、レグレッションテストのバージョン番号を有する最新バージョンのシーケンス図を抽出する（ステップＳ１４０３）。
【００６５】
つぎに、抽出したシーケンス図どうしを比較して、修正処理を検出する（ステップＳ１４０４）。そして、修正処理が検出されなかった場合は（ステップＳ１４０５：Ｎｏ）、一連の処理を終了する。一方、修正処理が検出された場合は（ステップＳ１４０５：Ｙｅｓ）、第５図に示したシーケンス図−テストベンチ対応テーブル１０６を参照することにより、過去のバージョン番号のシーケンス図によってあらわされる設計対象に用いられたテストベンチが流用可能であるかどうかを判定する（ステップＳ１４０６）。
【００６６】
流用可能でない場合は（ステップＳ１４０６：Ｎｏ）、一連の処理を終了する。この場合、ユーザ８０１は、テストベンチのバージョンアップをおこなうことによって、第５図に示したシーケンス図−テストベンチ対応テーブル１０６を更新する。一方、流用可能である場合は（ステップＳ１４０６：Ｙｅｓ）、流用可能と判定されたテストベンチをテストベンチデータベース１０５から抽出する（ステップＳ１４０７）。
【００６７】
また、レグレッションテストのバージョン番号が付与されている場合は（ステップＳ１４０２：Ｙｅｓ）、レグレッションテストログデータベース１０８を参照して、論理検証に合格した最新バージョンのシーケンス図によってあらわされる設計対象の設計内容をあらわすソースコード群の中から、レグレッションテスト（論理検証）に合格した設計対象の設計内容をあらわすソースコードを抽出する（ステップＳ１４０８）。
【００６８】
また、ソースコードデータベース１０７を参照して、論理検証に合格した最新バージョンのシーケンス図によってあらわされる設計対象の設計内容をあらわすソースコード群の中から、最新バージョンのソースコードを抽出する（ステップＳ１４０９）。そして、ステップＳ１４０８およびステップＳ１４０９で抽出されたソースコードどうしを比較して（ステップＳ１４１０）、修正記述を検出する（ステップＳ１４１１）。
【００６９】
修正記述が検出されなかった場合は（ステップＳ１１４１：Ｎｏ）、一連の処理を終了する。一方、修正記述が検出された場合は（ステップＳ１４１１：Ｙｅｓ）、レグレッションテストに合格した設計対象をあらわすシーケンス図以外の他のシーケンス図から、検出された修正記述によりあらわされた処理を検索する（ステップＳ１４１２）。
【００７０】
そして、ステップＳ１４１２で検索された処理が、ステップＳ１４０１で抽出した最新バージョンのシーケンス図に含まれているかどうかを判定する（ステップＳ１４１３）。処理検索部１０２６によって検索された処理が、ステップＳ１４０１で抽出した最新バージョンのシーケンス図に含まれていない場合は（ステップＳ１４１３：Ｎｏ）、一連の処理を終了する。一方、処理検索部１０２６によって検索された処理が、ステップＳ１４０１で抽出した最新バージョンのシーケンス図に含まれている場合は（ステップＳ１４１３：Ｙｅｓ）、第５図に示したシーケンス図−テストベンチ対応テーブル１０６を参照して、ステップＳ１４１２で検索された処理を含むシーケンス図に対応するテストベンチを抽出する（ステップＳ１４０７）。
【００７１】
（ｎ＋１次レグレッションテストの処理手順）
つぎに、第１１図に示したｎ＋１次レグレッションテスト処理手順について説明する。第１５図は、ｎ＋１次レグレッションテスト処理手順を示すフローチャートである。第１５図において、まず、ソースコードデータベース１０７から最新バージョンのシーケンス図に対応するソースコードを抽出する（ステップＳ１５０１）。そして、抽出されたテストベンチが、抽出されたソースコードにすでに使用されているかどうかを判定する（ステップＳ１５０２）。すでに使用されている場合は（ステップＳ１５０２：Ｙｅｓ）、ステップＳ１５０９に移行する。一方、使用されていない場合は（ステップＳ１５０２：Ｎｏ）、抽出されたテストベンチを用いて、ソースコードによって設計された設計対象の動作を検証するシミュレーションをおこなう（ステップＳ１５０３）。
【００７２】
シミュレーションに不合格であった場合は（ステップＳ１５０４：Ｎｏ）、ステップＳ１５０８に移行する。一方、シミュレーションに合格した場合は（ステップＳ１５０４：Ｙｅｓ）、レグレッションテストのバージョン番号を生成する（ステップＳ１５０５）。そして、このソースコードに対応するシーケンス図に、レグレッションテストのバージョン番号を付与し（ステップＳ１５０６）、使用したテストベンチに、レグレッションテストのバージョン番号を付与する（ステップＳ１５０７）。そして、レグレッションテストログデータベース１０８を更新する（ステップＳ１５０８）。
【００７３】
シミュレーションをおこなっていないテストベンチがある場合は（ステップＳ１５０９：Ｙｅｓ）、ステップＳ１５０２に移行する。一方、シミュレーションをおこなっていないテストベンチがない場合は（ステップＳ１５０９：Ｎｏ）、ｎ＋１次レグレッションテストを終了する。
【００７４】
この実施の形態にかかる検証支援装置１０１によれば、修正元のシーケンス図３００から、修正後のシーケンス図３０１における修正処理を検出することができるため、設計者は、ｎ＋１次開発の際に、過去の開発に用いたテストベンチを容易かつ効率的に検出することができる。したがって、検証作業に要する時間を大幅に短縮することができ、検証作業の効率化を図ることができる。また、不要なテストベンチを流用することもないため、無駄なレグレッションテストをおこなうことがなく、検証作業の効率化を図ることができる。
【００７５】
また、シーケンス図の修正を要しないソースコードのみの簡易な修正をおこなった場合であっても、ソースコードどうしを比較することによって修正記述を検出することができるため、設計者は、上述した場合と同様に、ｎ＋１次開発の際に、過去の開発に用いたテストベンチを容易かつ効率的に検出することができる。したがって、検証作業に要する時間を大幅に短縮することができ、検証作業の効率化を図ることができる。
【００７６】
なお、本実施の形態で説明した検証支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００７７】
以上説明したように、この発明にかかる検証支援装置、検証支援方法、検証支援プログラムおよび記録媒体によれば、修正元の図表によってあらわされた設計対象に用いられたテストベンチを、修正後の図表を入力するだけで検出することができるため、流用可能なテストベンチのみを簡単かつ効率的に検出することにより検証作業の支援をおこなうことができるという効果を奏する。
【産業上の利用可能性】
【００７８】
以上のように本発明は、ＬＳＩ設計の検証作業を支援する検証支援装置、検証支援方法、検証支援プログラムおよび記録媒体に有用である。
【図面の簡単な説明】
【００７９】
【図１】第１図は、この発明の実施の形態にかかる検証支援システムの概略構成を示す説明図である。
【図２】第２図は、この発明の実施の形態にかかる検証支援装置および端末装置のハードウェア構成を示すブロック図である。
【図３】第３図は、シーケンス図データベースの記憶内容を示す説明図である。
【図４】第４図は、テストベンチデータベースの記憶内容を説明する説明図である。
【図５】第５図は、シーケンス図−テストベンチ対応テーブルを示す説明図である。
【図６】第６図は、ソースコードデータベースに記憶されている記憶内容を示す説明図である。
【図７】第７図は、レグレッションテストログデータベースの記憶内容を示す説明図である。
【図８】第８図は、第３図に示したシーケンス図データベースに記憶されているシーケンス図の一例を示す説明図（その１）である。
【図９】第９図は、第３図に示したシーケンス図データベースに記憶されているシーケンス図の一例を示す説明図（その２）である。
【図１０】第１０図は、この発明の実施の形態にかかる検証支援装置の機能的構成を示す説明図である。
【図１１】第１１図は、この発明の実施の形態にかかる検証支援処理手順を示すフローチャートである。
【図１２】第１２図は、第１１図に示した１次レグレッションテストの処理手順を示すフローチャートである。
【図１３】第１３図は、第１１図に示したシーケンス図更新処理手順およびソースコード更新処理手順を示すフローチャートである。
【図１４】第１４図は、第１１図に示したテストベンチ検索処理手順を示すフローチャートである。
【図１５】第１５図は、ｎ＋１次レグレッションテスト処理手順を示すフローチャートである。
【符号の説明】
【００８０】
１００  検証支援システム
１０１  検証支援装置
１０２  端末装置
１０４  シーケンス図データベース
１０５  テストベンチデータベース
１０６  テストベンチ対応テーブル
１０７  ソースコードデータベース
１０８  レグレッションテストテストログデータベース
１０８  レグレッションテストログデータベース
１００２  テストベンチ記憶部
１００３  ソースコード記憶部
１００４  レグレッションテストログ記憶部
１００５  修正部
１００７  論理検証情報生成部
１００８  合否判定部
１００９  修正処理検出部
１０１０  流用判定部
１０１１  テストベンチ出力部
１０１２  論理検証部
１０１３  修正部
１０２１  外部実体検出部
１０２２  外部実体判定部
１０２３  流用判定実行部
１０２４  ソースコード抽出部
１０２５  修正記述検出部
１０２６  処理検索部
１０２７  処理判定部
【図１】
0004116660.tif 000002
【図２】
0004116660.tif 000003
【図３】
0004116660.tif 000004
【図４】
0004116660.tif 000005
【図５】
0004116660.tif 000006
【図６】
0004116660.tif 000007
【図７】
0004116660.tif 000008
【図８】
0004116660.tif 000009
【図９】
0004116660.tif 000010
【図１０】
0004116660.tif 000011
【図１１】
0004116660.tif 000012
【図１２】
0004116660.tif 000013
【図１３】
0004116660.tif 000014
【図１４】
0004116660.tif 000015
【図１５】
0004116660.tif 000016