JP2011044131A - 設計検証プログラム、設計検証方法および設計検証装置 - Google Patents

設計検証プログラム、設計検証方法および設計検証装置 Download PDF

Info

Publication number
JP2011044131A
JP2011044131A JP2010109257A JP2010109257A JP2011044131A JP 2011044131 A JP2011044131 A JP 2011044131A JP 2010109257 A JP2010109257 A JP 2010109257A JP 2010109257 A JP2010109257 A JP 2010109257A JP 2011044131 A JP2011044131 A JP 2011044131A
Authority
JP
Japan
Prior art keywords
verification
scenario
sequence chart
message sequence
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010109257A
Other languages
English (en)
Inventor
Rafael Kazumiti Morizawa
ラファエル・カズミチ・モリザワ
Praveen Kumar Murthy
クマール ムルティ プラヴィーン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2011044131A publication Critical patent/JP2011044131A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/08Intellectual property [IP] blocks or IP cores

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】効率的な検証工程の情報を提供すること。
【解決手段】生成部2は、設計対象の設計仕様が備える複数の処理手順(処理のシナリオ)が備える処理単位それぞれに設計仕様の検証対象となる部位(検証対象部位)を識別する識別情報(ラベル)を関連付けた、検証用情報を生成する。処理優先度付与部3は、識別情報7の入力に応じて、検証用情報に処理優先度を付与する。出力部4は、処理優先度が付与された検証用情報6a、6bを識別する情報を、処理優先度を明示して出力する。
【選択図】図1

Description

本発明は設計検証プログラム、設計検証方法および設計検証装置に関する。
近年、設計技術の進歩により、ソフトウェアやハードウェアの開発対象が大規模化している。
設計開発時には、開発対象に対する動作検証を行い、開発対象の動作を確認しつつ、設計を進めることが行われている。
前述した開発対象の大規模化により、開発工程全体における検証工程の占める割合が増加する傾向にある。
一方で、納期短縮等による設計期間の短縮化や、工数が当初の見積もりより大きくなる等の理由により、設計期間が足りなくなることはしばしばある。
このため、検証効率の向上のため、例えば、検証工程の検証項目を抽出し、設計期間の短縮化を図る技術が知られている。
米国特許第7275231号明細書 特開2006−85710号公報 特開2004−185592号公報
抽出した全ての検証工程についての検証を順不同に実行すると、優先的に検証したい工程が最後の方に存在した場合、エラーを検出するまでに時間がかかり、検証の処理効率が低くなる。
このため、膨大な数の検証工程から検証したい工程を優先的に検証したい場合は、設計者や検証者(ユーザ)の経験により、膨大な数の検証工程から検証を行うための検証手順を選択して検証を行うことが行われている。
しかしながら、設計者や検証者の経験が浅い場合、適切な検証手順の選択を誤る場合があり、誤って選択された検証手順によっては、やはり検証の処理効率が低いという問題がある。
本発明はこのような点に鑑みてなされたものであり、効率的な検証工程の情報を提供することができる設計検証プログラム、設計検証方法および設計検証装置を提供することを目的とする。
上記目的を達成するために、開示の設計検証プログラムが提供される。この設計検証プログラムは、コンピュータに、生成手順、処理優先度付与手順、出力手順を実行させる。
生成手順では、設計対象の設計仕様が備える複数の処理手順が備える処理単位それぞれに設計仕様の検証対象部位を識別する識別情報を関連付けた検証用情報を生成する。
処理優先度付与手順では、識別情報の入力に応じて、検証用情報に処理優先度を付与する。
出力手順では、処理優先度が付与された検証用情報を識別する情報を、処理優先度を明示して出力する。
開示の設計検証プログラムによれば、効率的な検証工程の情報を提供することができる。
第1の実施の形態の設計検証装置を説明する図である。 第1の実施の形態の設計検証装置を説明する図である。 実施の形態のシステムを示す図である。 実施の形態のLSIの設計仕様の構成を示す図である。 LSIの設計仕様のデータ構造の一例を示す図である。 メッセージ・シーケンス・チャート間の関係と階層構造を説明する図である。 メッセージ・シーケンス・チャートの構成を説明する図である。 メッセージ・シーケンス・チャートの他の例を示す図である。 設計検証装置のハードウェア構成例を示す図である。 設計検証装置の機能を示すブロック図である。 設計検証装置の全体処理を示すフローチャートである。 検証用シナリオ生成処理を示すフローチャートである。 検証用シナリオ生成処理を示すフローチャートである。 ラベル付与処理を示すフローチャートである。 優先順位付与処理を示すフローチャートである。 LSIの設計仕様のデータ構造の具体例を示す図である。 メッセージ・シーケンス・チャートの具体例を示す図である。 LSIの設計仕様にラベルを付与する具体例を示す図である。 LSIの設計仕様にラベルを付与する具体例を示す図である。 LSIの設計仕様にラベルを付与する具体例を示す図である。 ラベルを付与したLSIの設計仕様のデータ構造例を示す図である。 LSIの設計仕様にラベルを付与する他の具体例を示す図である。 有限ステートマシンに変換する処理を説明するメッセージ・シーケンス・チャートを示す図である。 図23に示すメッセージ・シーケンス・チャートに関連する状態マトリックスを示す図である。 状態マトリックスに関する状態図を示す図である。 有限ステートマシンにラベルを付与する具体例を示す図である。 有限ステートマシンにラベルの付与が終了したときの状態を示す図である。 状態マトリックスに関する状態図を示す図である。 有限ステートマシンのデータ構造例を示す図である。 検証用シナリオ格納部に格納されている検証用シナリオを示す図である。 優先順位が付与された検証用シナリオのデータ構造を示す図である。 優先順位が付与された検証用シナリオのデータ構造を示す図である。 優先順位リストの具体例を示す図である。 第3の実施の形態のシステムを示すブロック図である。 第3の実施の形態の設計検証装置の全体処理を示すフローチャートである。 第3の実施の形態の検証用シナリオ生成処理を示すフローチャートである。 検証用シナリオ抽出処理を示すフローチャートである。 第3の実施の形態のLSIの設計仕様のデータ構造の具体例を示す図である。 第3の実施の形態のメッセージ・シーケンス・チャート間の関係と階層構造を説明する図である。 シナリオ「照会」のメッセージ・シーケンス・チャートを示す図である。 第3の実施の形態のLSIの設計仕様にラベルを付与する具体例を示す図である。 第3の実施の形態のLSIの設計仕様にラベルを付与する具体例を示す図である。 ラベル付与が完了した状態の有向グラフを示す図である。 ラベルを付与したLSIの設計仕様のデータ構造例を示す図である。 オブジェクト名をラベルに追加する具体例を示す図である。 有限ステートマシンにラベルの付与が終了したときの状態を示す図である。 メッセージ名と送受信側のオブジェクト名をラベルに追加した状態の有限ステートマシンのデータ構造を示す図である。 抽出した検証用シナリオの集合積を行う様子を示す図である。 抽出した検証用シナリオの集合積を行う様子を示す図である。
以下、実施の形態を、図面を参照して詳細に説明する。
まず、第1の実施の形態の設計検証装置について説明し、その後、第2の実施の形態以降、設計検証装置をより具体的に説明する。
<第1の実施の形態>
図1および図2は、第1の実施の形態の設計検証装置を説明する図である。
実施の形態の設計検証装置1は、生成部2と、処理優先度付与部3と、出力部4とを有している。
生成部2は、設計対象の設計仕様が備える複数の処理手順(処理のシナリオ)が備える処理単位それぞれに、設計仕様の検証対象となる部位(検証対象部位)を識別する識別情報(ラベル)を関連付けた、検証用情報を生成する。この検証用情報は、処理手順を検証(例えば処理手順の成否を検証)するものである。
ここで、設計対象は、設計検証装置1によるテストおよび検証対象となるハードウェアコンポーネントまたはシステムやソフトウェアモジュールである。
この設計対象の設計仕様は、実装が守るべき約束事を記したものであり、少なくとも1つの機能により実現される。
図1では、機能5aと機能5bとを有する設計仕様5を示している。機能5aは、機能5aを実現する2つの処理手順50aと処理手順50bを有している。
処理手順50aは、機能5aの基本動作についての処理手順であり、処理手順50bは、基本動作に取って替わる代替動作についての処理手順である。
図1では、処理手順50aは枝構造を有しており、ノードとなる部分に基本動作の実行すべき処理単位が設定されている。この処理単位としては、例えば、機能5aの実現に関わっている全てのオブジェクト間のやり取りを明確にした仕様であるメッセージ・シーケンス・チャート(Message Sequence Chart)等が挙げられる。なお、メッセージ・シーケンス・チャートについては、特許文献1と特許文献2を参照のこと。
処理手順50aと処理手順50bとの関係は、図2に示す構造体6によって示される。
この構造体6を用いることで、設計仕様5をコンパクトに表示することができる。
構造体6は、第1のシーケンス、第2のシーケンス、および、第3のシーケンスと、これら各シーケンス間の関係を示すブランチ(branch)およびマージ(merge)を有している。
各シーケンスのブロックを接続する矢印は、機能が実行される順序を記述する。
処理手順50aは、第1のシーケンス、第2のシーケンスの順番に処理が行われることを示している。
処理手順50bは、第1のシーケンス、第3のシーケンスの順番に処理が行われることを示している。
従って、構造体6は、これら2つの処理手順が第1のシーケンスまで同じ動作を有するが、それ以降の動作は異なっていることを示す。
構造体6のエッジは有向であり、ガード条件が付与されている。
ガード条件は、各シーケンスの終了後、ガード条件が成立すればエッジ先のシーケンスに遷移することを示している。
図2では、第1のシーケンスの処理後、i>0のガード条件が成立すれば、第2のシーケンスに移行する。一方、i<=0のガード条件が成立すれば、第3のシーケンスに移行する。
図1に示す機能5aの場合、生成部2は、処理手順50a、すなわち、基本動作に対し、処理手順50aが備える第1のシーケンスおよび第2のシーケンスそれぞれに設計仕様の検証対象部位を識別する識別情報を関連付けた検証用情報を生成する。
検証対象部位は、例えば、機能、処理手順、処理単位等が挙げられる。図2では、第1のシーケンス、第2のシーケンスそれぞれに、機能5aを識別する識別情報「機能#1」、処理手順50aを識別する識別情報「基本動作」を関連付ける。
また、生成部2は、処理手順50b、すなわち、代替動作に対し、処理手順50bが備える第1のシーケンスおよび第3のシーケンスそれぞれに設計仕様の検証対象部位を関連付けた検証用情報を生成する。
図2では、第1のシーケンス、第3のシーケンスそれぞれに、機能5aを識別する識別情報「機能#1」、処理手順50bを識別する識別情報「代替動作」を関連付ける。
この結果、第1のシーケンスには、識別情報「機能#1:基本動作」、「機能#1:代替動作」が関連付けられる。第2のシーケンスには、識別情報「機能#1:基本動作」が関連付けられる。第3のシーケンスには、識別情報「機能#1:代替動作」が関連付けられる。
そして、生成部2は、同じ識別情報を備えるシーケンスを抽出し、抽出したシーケンスの集合をそれぞれ検証用情報とする。
図2では、識別情報「基本動作」を備える第1のシーケンスおよび第2のシーケンスの集合を1つの検証用情報とする。また、識別情報「代替動作」を備える第1のシーケンスおよび第3のシーケンスの集合を1つの検証用情報とする。
再び図1に戻って説明する。
処理優先度付与部3は、識別情報7の入力に応じて、検証用情報に処理優先度を付与する。
例えば、識別情報7として、「基本動作」および「代替動作」が入力されたものとする。
図1に示すように、基本動作の処理優先度が代替動作の処理優先度より高い場合、検証用情報6aに、検証用情報6bより高い優先度「1」を付与する。また、検証用情報6bに優先度「2」を付与する。
出力部4は、処理優先度が付与された検証用情報6a、6bを識別する情報を、処理優先度を明示して出力する。
図1では、優先度「1」に検証用情報6aを示す検証用情報#1を関連付けたレコードと、優先度「2」に検証用情報6bを示す検証用情報#2を関連付けたレコードとを備える出力結果8を出力する。
このような設計検証装置1によれば、生成部2が、検証用情報6a、6bを生成し、処理優先度付与部3が、設計仕様の複数の検証対象部位およびこれら検証対象部位の処理優先度情報の入力に応じて、検証用情報毎に処理優先度を付与するようにした。
これにより、検証対象の単位に応じて行うべき処理優先度を容易に把握することができる。従って、ユーザは、この処理優先度の順に検証用情報を用いて検証対象の検証を行うことにより、効率よく検証を行うことができる。
なお、本実施の形態では、処理優先度付与部3が、生成部2によって生成された検証用情報6a、6bを直接処理したが、これに限らず、検証用情報6a、6bを格納する格納部を設け、ユーザの検証対象部位の入力を待機して処理を行うようにしてもよい。
以下、実施の形態をより具体的に説明する。
<第2の実施の形態>
図3は、実施の形態のシステムを示す図である。
システム100は、設計検証装置10と、信号インタフェース200とテスト対象装置300とを有している。
設計検証装置10は、テスト対象装置300が設計仕様に従って動作するか判断するため、設計仕様が備えるシナリオ毎に、これらシナリオを検証するための検証用シナリオを生成する。
そして、設計検証装置10は、検証用シナリオに優先順位を付与する。
さらに、設計検証装置10は、優先順位が付与された検証用シナリオを利用して、テスト対象装置300がこの検証用シナリオに従って動作するか否かを判断するため、信号インタフェース200を介しテスト対象装置300と通信する。
この際、付与した優先順位に従って、検証用シナリオをテスト対象装置300に流す。
信号インタフェース200は、設計検証装置10とテスト対象装置300とを接続するための装置を表す。信号インタフェース200は、設計検証装置10により通信される信号を設計検証装置10による利用に適した信号に変換する。
なお、例えば、設計検証装置10とテスト対象装置300が互換的な信号を使用する場合、信号インタフェース200は省略されてもよい。
テスト対象装置300は、設計検証装置10によるテストおよび検証対象となるハードウェアコンポーネントまたはシステムやソフトウェアモジュールを表す。
テスト対象装置300は、製品開発中に製造される設計プロトタイプであってもよいし、設計検証装置10によって生成されるステートマシン(State Machine)であってもよい。以下、テスト対象装置300がLSI(Large Scale Integration)である場合を例にとって説明する。
<LSIの設計仕様>
図4は、実施の形態のLSIの設計仕様の構成を示す図である。
前述したように、設計仕様とは、実装が守るべき約束事を記したものであり、複数の機能により実現される。
なお、設計仕様は、リスト構造で表現される。このリスト構造は、例えば、XML(Extensible Markup Language)形式で表現される。
各機能ブロック21、22、23には、それぞれ1つの機能が対応付けられている。対応付けられた各機能は、例えば、ソフトウェアにより呼び出されるハードウェアで実現する機能であり、または、ハードウェアに依存するソフトウェアで実現する機能である。
各機能ブロック21、22、23は、それぞれ、1つまたは複数のシナリオブロックを有している。例えば、機能ブロック21は、シナリオブロック21aとシナリオブロック21bとを有している。
各シナリオブロック21a、21bには、それぞれ、1つのシナリオが対応付けられている。対応付けられた各シナリオは、機能の実体であり、呼び出し時の条件により複数存在する。
より詳しくは、シナリオは、機能を実現するために実行される一連の操作を定義するものである。言い換えると、シナリオは、オブジェクト間で送受信されるメッセージの順序および組み合わせを表すものである。
各シナリオブロック21a、21bは、それぞれ、1つまたは複数のメッセージ・シーケンス・チャートブロック(以下、「MSCブロック」と言う)を有している。例えば、シナリオブロック21aは、MSCブロック211aと、MSCブロック212aとを有している。
MSCブロック211a、212aには、それぞれ、1つのメッセージ・シーケンス・チャートが対応付けられている。
メッセージ・シーケンス・チャートは、シナリオが備えるサブ機能群である。具体的には、メッセージ・シーケンス・チャートは、機能の実現に関わっている全てのオブジェクト間のやり取りを明確にしたものである。このオブジェクトは、LSI20が備える機能や、このLSI20を含むシステムに干渉する外部環境を含む。
<LSIの設計仕様のデータ構造>
次に、LSI20の設計仕様のデータ構造を説明する。
図5は、LSIの設計仕様のデータ構造の一例を示す図である。
前述したように、LSI20の設計仕様は、複数の機能により実現される。図5では、図4に示した設計仕様をツリー構造で示し、そのうちの1つの機能を示している。
前述したように、機能ブロック21に対応付けられている機能は、シナリオブロック21aに対応付けられているシナリオA1とシナリオブロック21bに対応付けられているシナリオA2とを有している。
シナリオA1、A2は、それぞれ、「基本動作」、「代替動作」、「例外動作」のいずれか1つの属性を有している。その属性が、種類として記載されている。
また、各シナリオA1、A2それぞれには、実行条件として、事前条件、事後条件、不変条件(の1つまたは複数)が定義されている場合がある。
事前条件とは、機能を実現する一連の操作の実行前に満たすべき(真となる)条件である。
事後条件とは、一連の操作の実行後に満たすべき条件である。
不変条件とは、事後条件が発生するまでの間(一連の操作の実行中)に要求される条件である。
図5では、シナリオA1は、基本動作についてのシナリオであり、事前条件と、事後条件と、不変条件とを有している。
シナリオA2は、シナリオA1に対する代替動作についてのシナリオであり、基本動作と同様に、事前条件と、事後条件と、不変条件とを有している。
MSCブロック211a、212aに対応付けられているメッセージ・シーケンス・チャートは、メッセージ・シーケンス・チャートを識別するための名前(識別名)を有している。MSCブロック211aに対応付けられているメッセージ・シーケンス・チャートの識別名は、「MSC1の動作」であり、MSCブロック212aに対応付けられているメッセージ・シーケンス・チャートの識別名は、「MSC2の動作」である。
メッセージ・シーケンス・チャートは、実行条件として、事前条件、事後条件、不変条件(の1つまたは複数)が定義されている場合がある。
メッセージ・シーケンス・チャート「MSC1の動作」は、事前条件と、不変条件と、事後条件とを有している。
メッセージ・シーケンス・チャート「MSC2の動作」は、事前条件と、不変条件と、事後条件とを有している。
なお、シナリオブロック21bも少なくとも1つのMSCブロックを有しているが、図5ではその図示を省略している。
ところで、LSI20の設計仕様は、複数のメッセージ・シーケンス・チャートを含む単一の有向グラフによって表されてもよいし、単一の平坦化されたメッセージ図によって表されてもよい。
この平坦化されたメッセージ・シーケンス・チャートは、オブジェクト間で通信されるメッセージの順序を示すものである。
さらに、LSI20の設計仕様は、互いに埋め込まれた複数の有向グラフと複数のメッセージ・シーケンス・チャートによって表されてもよい。
図6は、メッセージ・シーケンス・チャート間の関係と階層構造を説明する図である。
本実施の形態では、LSI20の設計仕様は、有向グラフ30によって、階層的に形成されている。
この有向グラフ30を用いることで、LSI20の設計仕様をコンパクトに表示することができる。
前述したように、有向グラフ30は、複数のメッセージ・シーケンス・チャートと、これらメッセージ・シーケンス・チャート間の関係を示すブランチおよびマージを有している。この関係は、メッセージ・シーケンス・チャートを1以上のシーケンスに順序付けするものである。
他方、各メッセージ・シーケンス・チャートは、オブジェクト間の関係を示すものである。メッセージ・シーケンス・チャートは、オブジェクト間で通信されるメッセージを特定し、少なくとも一部のメッセージが通信される順序を示すものである。
有向グラフ30は、将来的なユーザを認証するため、ある機能によって実行される複数の機能の関係を記述する。これら機能は、形状によって表されるメッセージ・シーケンス・チャートによって規定される。各メッセージ・シーケンス・チャートは、機能によって表現されている。各ブロックを接続する矢印は、機能が実行される順序を記述する。
また、有向グラフ30のエッジは有向であり、ガード条件が付与されている場合がある。
図6に示すように、有向グラフ30は、各自がメッセージ・シーケンス・チャート32、メッセージ・シーケンス・チャート33およびhメッセージ・シーケンス・チャート34によって表される独立したメッセージ・シーケンス・チャートによって規定される3つの機能を有している。
ここで、hメッセージ・シーケンス・チャート34は、複数のメッセージ・シーケンス・チャートの階層構造をまとめて表したものである。
初期状態ブロック31は、仮想的な状態であり、エントリポイントを有向グラフ30に提供する。具体的には、どのメッセージ・シーケンス・チャートが最初に「起動」されるかを指定する。
従って、初期状態ブロック31とメッセージ・シーケンス・チャート32との間の矢印は、メッセージ・シーケンス・チャート32に関連するメッセージ・シーケンス・チャートが有向グラフ30へのエントリ後に直面することを示す。
メッセージ・シーケンス・チャート32により表されるメッセージ・シーケンス・チャートに規定されるメッセージの通信後、メッセージ・シーケンス・チャート33またはhメッセージ・シーケンス・チャート34のいずれかに実行が継続される。
従って、有向グラフ30は、2つのシナリオを含む。
1つのシナリオは、初期状態ブロック31、メッセージ・シーケンス・チャート32およびメッセージ・シーケンス・チャート33を介し進行するパスに関する。
他のシナリオは、初期状態ブロック31、メッセージ・シーケンス・チャート32およびhメッセージ・シーケンス・チャート34を介し進行するパスに関する。
従って、有向グラフ30は、これら2つのシナリオがメッセージ・シーケンス・チャート32まで同じ動作を有するが、メッセージ・シーケンス・チャート32からの動作は異なっていることを示す。
有向グラフ30のエッジは有向であり、ガード条件が付与されている。
ガード条件は、メッセージ・シーケンス・チャートに記述されたメッセージのシーケンスの終了後、ガード条件が成立すればエッジ先のメッセージ・シーケンス・チャート、または、その階層内のメッセージ・シーケンス・チャートへ遷移する。
図6では、メッセージ・シーケンス・チャート32の処理後、i>0のガード条件が成立すれば、メッセージ・シーケンス・チャート33に移行する。一方、i<=0のガード条件が成立すれば、hメッセージ・シーケンス・チャート34に移行する。
この情報は、2つのシナリオの共通部分が設計に関する有向グラフ30を完全にテストするのに繰り返される必要はないため、検証および検証目的に有用に利用される。
ここで、有向グラフ30が有する各メッセージ・シーケンス・チャートは、同一のオブジェクト群を利用してもよい。さらに、あるメッセージ・シーケンス・チャートによって規定される各メッセージが、次のメッセージ・シーケンス・チャートがパスに沿って実行可能となる前に実行される必要があるということを示すルールが、有向グラフ30に関連して設けられていてもよい。
次に、メッセージ・シーケンス・チャートの一般的な構成を説明する。
<メッセージ・シーケンス・チャート>
図7は、メッセージ・シーケンス・チャートの構成を説明する図である。
前述したように、メッセージ・シーケンス・チャートは、機能の実現に関わっている全てのオブジェクト間のやり取りを明確にしたものである。
メッセージ・シーケンス・チャートは、LSIが備えるハードウェアブロック、または、システムと干渉する外部環境であるオブジェクトを有している。
図7に示すメッセージ・シーケンス・チャート(MSC)40には、複数のオブジェクトとして、ハードウェア(HW)41、42、43が設けられている。
これらのオブジェクトが生成された後、データ・イベント・メッセージはオブジェクト間で通信されるものとして示される。
このデータ・イベント・メッセージは、ユーザにより指定されるものである。ユーザは当該メッセージがどのオブジェクト間で通信されるか指定することができる。
例えば、ユーザにより、1つのオブジェクトが選択され、その後に図示しないポインティングツールを用いて第2のオブジェクトが選択される。
メッセージ・シーケンス・チャート40の生成時には、送信イベントを有する第1オブジェクトと受信イベントを有する第2オブジェクトからなる示された2つのオブジェクトの間においてデータ・イベント・メッセージが生成される。このようにして、データ・イベント・メッセージm1〜m4の矢印が、メッセージ・シーケンス・チャート40に示されるハードウェア41、42、43間で送受信されるデータ・イベント・メッセージm1〜m4の4個のメッセージを表すよう生成される。
具体的には、オブジェクトライン44、45、46を相互接続する水平矢印は、データ・イベント・メッセージが、オブジェクト間で送受信されることを示す。
各データ・イベント・メッセージは、送信オブジェクトと受信オブジェクトを関連付けている。オブジェクトライン44、45、46とデータ・イベント・メッセージm1〜m4とが交差する位置は、イベントと呼ばれる。
各データ・イベント・メッセージは、送信オブジェクトに関連する送信イベントと、受信オブジェクトに関連する受信イベントを含む。例えば、データ・イベント・メッセージm1は、オブジェクトライン45とオブジェクトライン44とを接続する。
このため、データ・イベント・メッセージm1は、ハードウェア41および送信オブジェクトと、ハードウェア42および受信オブジェクトとを関連付ける。
さらに、データ・イベント・メッセージm1のオブジェクトライン44との交点は送信イベントを生成し、データ・イベント・メッセージm1とオブジェクトライン45との交点は受信イベントを生成する。
ここで、メッセージ・シーケンス・チャートによって特定される関係について、以下の2つのルールが設けられている。
第1のルール:任意のデータ・イベント・メッセージmに対して、送信イベント(s(m))は、対応する受信イベント(r(m))の前に発生する。
従って、s(m)<r(m)となる。
第2のルール:オブジェクトライン上のイベントは、上から下に順序付けされる。
これら2つのルールは、メッセージ・シーケンス・チャートがオブジェクト間で送受信されるデータ・イベント・メッセージの順序を記述することを示している。
例えば、第1のルールにより、メッセージ・シーケンス・チャート40は、データ・イベント・メッセージm1に関する送信イベントが同じメッセージに関する受信イベントの前に発生することを示している。
また、第2のルールにより、メッセージ・シーケンス・チャート40は、データ・イベント・メッセージm2に関する送信イベントが、データ・イベント・メッセージm4に関する受信イベントの前に発生するということを示している。
図7に示すデータ・イベント・メッセージの送信は受信より先に起きる。
ハードウェア41の時間軸ではデータ・イベント・メッセージm1とデータ・イベント・メッセージm2とが、この順番に送信される。その後、データ・イベント・メッセージm4が受信される。
ハードウェア42の時間軸ではデータ・イベント・メッセージm1が受信された後、データ・イベント・メッセージm3が受信される
ハードウェア43の時間軸ではデータ・イベント・メッセージm2が受信されてから、データ・イベント・メッセージm3とデータ・イベント・メッセージm4とを、この順番に送信する。
ここで、上記ルールは推移的である。例えば、イベントe1がイベントe2(e1<e2)の前に発生し、イベントe2がイベントe3(e2<e3)の前に発生する場合、イベントe1は、イベントe3(e1<e3)の前に発生する。
しかしながら、これら2つのルールは、全てのデータ・イベント・メッセージの間の順序付けされた関係を規定するものではない。
例えば、4つのオブジェクトを含むが、2つのデータ・イベント・メッセージしか含まないメッセージ・シーケンス・チャートを考える。
第1のデータ・イベント・メッセージが第1オブジェクトと第2オブジェクトとの間で送受信され、第2のデータ・イベント・メッセージが第3オブジェクトと第4オブジェクトとの間で送受信される場合、これら2つのデータ・イベント・メッセージの間の順序付けされた関係はこれら2つのルールによっては規定されない。この場合、2つのデータ・イベント・メッセージは任意の順序で発生する。
図7では、ハードウェア42とハードウェア43は時間軸の順序関係を共有しないため、データ・イベント・メッセージm1とデータ・イベント・メッセージm2の受信順序は図7に表現した順序と異なってもかまわない。
ハードウェア41とハードウェア42は時間軸の順序関係を共有しないため、データ・イベント・メッセージm3とデータ・イベント・メッセージm4の受信順序は、図7に表現した順序と異なってもかまわない。
図8は、メッセージ・シーケンス・チャートの他の例を示す図である。
メッセージ・シーケンス・チャート40aには、複数のオブジェクトとして、ハードウェア41、42、43が設けられている。
メッセージ・シーケンス・チャート40aは、同時性制約、タイムアウト制約および同期エッジの3つの(先進的)機能を有している。
同時性制約およびタイムアウト制約については、イベントを包囲するボックスが描画されている。
同時性制約を示すボックス47には、このボックス47がこれらのイベントを同時イベントにグループ化することを示す「simul」がラベル付けされている。
ボックス47は、データ・イベント・メッセージm5とデータ・イベント・メッセージm6に関する送信イベントをグループ化している。
タイムアウト制約を示すボックス48には、タイムアウト制約のタイムアウト値を表す整数がラベル付けされている。
実行がタイムアウト制約に直面すると、示されたタイムアウト期間が経過するまで実行が停止される。時限実行モデルでは、タイムアウト期間が経過して始めて実行が継続する。
従って、データ・イベント・メッセージm7は、ボックス48のラベルに付されている「3」時刻単位後経過した後に、送信される。
同期エッジは、データ・イベント・メッセージの順序を特定するために用いられる。同期エッジの表示は、名前「synch」が同期エッジに利用可能であるという点を除いて、データ・イベント・メッセージと同様に描かれている。
「synch」とラベル付けされたデータ・イベント・メッセージ(以下、「同期メッセージ」と言う)を利用して、順序付けされた関係を確立する。例えば、ハードウェア42に関する送信イベントと、ハードウェア41に関する受信イベントを含む同期エッジを考える。同期メッセージは、ハードウェア42がデータ・イベント・メッセージm8を受信した後に送信されるものとして示される。同期メッセージは、また、データ・イベント・メッセージm9が送信されるまでにハードウェア41により受信されるものとして示される。
メッセージ・シーケンス・チャート40aによれば、ハードウェア42におけるデータ・イベント・メッセージm8の受信は、ハードウェア41におけるデータ・イベント・メッセージm9の送信前に発生する必要がある。
ここで、同期エッジは関連性のないオブジェクト間の関係を生成する。しかしながら、ある実施例によると、同期エッジによって関連するオブジェクト間において実際にメッセージは送受信されない。
同期メッセージは、データ・イベント・メッセージm7およびデータ・イベント・メッセージm8と、データ・イベント・メッセージm5およびデータ・イベント・メッセージm6とを比較して、これらの間の順序を生成するものではない。
しかしながら、同期メッセージは、データ・イベント・メッセージm7とデータ・イベント・メッセージm8に関する受信イベントの後にデータ・イベント・メッセージm9に関する送信イベントを発生させる。
次に、設計検証装置10の構成を説明する。
<設計検証装置>
図9は、設計検証装置のハードウェア構成例を示す図である。
設計検証装置10は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス109を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、外部補助記憶装置106、インタフェース107および通信インタフェース108が接続されている。
CPU101は、入力インタフェース105、外部補助記憶装置106、インタフェース107および通信インタフェース108から受信した情報を処理するよう動作する。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
HDD103には、OSやアプリケーションプログラムが格納される。また、HDD103内には、XML(Extensible Markup Language)形式で表現されたリスト構造や、プログラムファイルが格納される。
グラフィック処理装置104には、モニタ104aが接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ104aの画面に表示させる。入力インタフェース105には、キーボード105aとマウス105bとが接続されている。入力インタフェース105は、キーボード105aやマウス105bから送られてくる信号を、バス109を介してCPU101に送信する。
外部補助記憶装置106は、記録媒体に書き込まれた情報を読み取ったり、記録媒体に情報を書き込んだりする。外部補助記憶装置106で読み書きが可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、HDD、フレキシブルディスク(FD)、磁気テープ等が挙げられる。光ディスクとしては、例えば、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等が挙げられる。光磁気記録媒体としては、例えば、MO(Magneto-Optical disk)等が挙げられる。
インタフェース107は、設計検証装置10に接続された装置から情報を送受信するよう動作可能なハードウェアである。具体的には、インタフェース107は、信号インタフェース200およびテスト対象装置300と通信する。
通信インタフェース108は、ネットワーク400に接続されている。通信インタフェース108は、ネットワーク400を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。このようなハードウェア構成の設計検証装置10内には、以下のような機能が設けられる。
図10は、設計検証装置の機能を示すブロック図である。
設計検証装置10は、検証用シナリオ生成部11と、検証用シナリオ格納部12と、優先順位付与部13と、出力部14とを有している。
検証用シナリオ生成部11は、図4および図5にて説明したLSI20の設計仕様のデータを有している。また、検証用シナリオ生成部11は、シナリオブロック21a、21bに対応付けられたシナリオを実現するメッセージ・シーケンス・チャートのデータも有している。なお、メッセージ・シーケンス・チャートは、設計検証装置10の外部から読み込むようにしてもよい。
検証用シナリオ生成部11は、入力されたLSI20の設計仕様に従って、シナリオ毎に検証用シナリオを生成する。
検証用シナリオは、LSI20の設計仕様の各シナリオが備えるメッセージ・シーケンス・チャートそれぞれに設計仕様のラベル(検証対象部位を識別する識別情報)を関連付けた情報である。なお、検証対象部位としては、例えば、機能、シナリオ、メッセージ・シーケンス・チャート等が挙げられる。
この検証用シナリオは、優先順位付与部13の処理対象となる中間的なデータである。
また、検証用シナリオ生成部11は、検証用シナリオを生成する際に作成するデータを一時記憶する機能も有している。
検証用シナリオ格納部12は、検証用シナリオ生成部11により生成された検証用シナリオを保管する機能を有している。
優先順位付与部13は、ユーザにより入力されるパターンを参照し、検証用シナリオに優先順位(処理優先度)を付与する。
このパターンは、項目として、識別情報と同様の情報を有している。例えば、機能名、シナリオ名、シナリオの種類(基本動作、代替動作、例外動作)、メッセージ・シーケンス・チャート名、上記の論理的な組み合わせのうちの少なくとも1つを有している。
また、パターンには処理優先度情報を有していてもよい。
処理優先度情報を有するシナリオの種類のパターンの一例としては、例外動作より基本動作を優先するパターン(基本動作>例外動作)等が挙げられる。また、処理優先度情報を有するメッセージ・シーケンス・チャート名のパターンの一例としては、問い合わせより認証成功を優先するパターン(認証成功>問い合わせ)が挙げられる。さらに、認証成功より認証失敗を優先するパターン(認証失敗>認証成功>問い合わせ)等が挙げられる。
出力部14は、優先順位付与部13が付与した優先順位の順番に検証用シナリオを並べる。
また、出力部14は、優先順位を付与した検証用シナリオのシナリオ名を、予め用意されたフォーマットに従って作成したリスト(優先順位リスト)を出力する。
なお、出力部14は、ユーザにより入力されたソート条件に従って検証用シナリオを並べるようにしてもよい。
また、図示していないが、設計検証装置10は、他にもメッセージ・シーケンス・チャートを生成するツールや、設計の実現形態の動作を検証するため、メッセージ・シーケンス・チャートに基づくステートマシン(State Machine)を生成するためのツールを有していてもよい。
次に、設計検証装置10の全体処理を説明する。
図11は、設計検証装置の全体処理を示すフローチャートである。
まず、検証用シナリオ生成部11が、ユーザにより入力されたLSI20の設計仕様に基づいて、検証用シナリオ生成処理を行って検証用シナリオを生成する(ステップS1)。生成した検証用シナリオは、検証用シナリオ格納部12に格納する。
次に、優先順位付与部13が、ユーザにより入力されたパターンおよび検証用シナリオ格納部12に格納されている検証用シナリオに基づいて、優先順位付与処理を行って検証用シナリオに優先順位を付与する(ステップS2)。
次に、出力部14が、ソート処理を行って付与した優先順位の順番に検証用シナリオを並べる(ステップS3)。
そして、出力部14が、優先順位を付与した検証用シナリオのシナリオ名を、優先順位リストとして出力する(ステップS4)。
以上で、全体処理の説明を終了する。
なお、検証用シナリオ生成処理を予め行って生成した検証用シナリオを検証用シナリオ格納部12に格納しておいて、ユーザによるパターンの入力を待って優先順位付与処理以降を行うようにしてもよい。また、ユーザによるパターンの入力時に、検証用シナリオ生成処理を開始するようにしてもよい。
次に、ステップS1に示す検証用シナリオ生成処理を説明する。
図12および図13は、検証用シナリオ生成処理を示すフローチャートである。
まず、LSI20の設計仕様にラベルを付与する(ステップS11)。この処理については、後に詳述する。
次に、ステップS11にて付与された設計仕様において、メッセージ・シーケンス・チャートを備える有向グラフを平坦化(Flatten)する(ステップS12)。具体的には、有向グラフの階層構造を取り払う。
次に、平坦化した有向グラフからメッセージ・シーケンス・チャートを1つ選択する(ステップS13)。
次に、選択したメッセージ・シーケンス・チャートを有限ステートマシン(FSM)に変換する(ステップS14)。これにより、一連のメッセージ・シーケンス・チャートを組み合わせたデータ・イベント・メッセージのやり取りを有限ステートマシンで表現する。この処理については、後に詳述する。
次に、変換された有限ステートマシンの各ステートに、メッセージ・シーケンス・チャートに付されていたラベルを付与する(ステップS15)。
ステップS14およびステップS15の処理により、有限ステートマシンの各ステートにラベルが付与される。各ステートにラベルが付与された有限ステートマシンは、検証用シナリオ生成部11が一時記憶する。
次に、未処理のメッセージ・シーケンス・チャートが存在するか否かを判断する(ステップS16)。
未処理のメッセージ・シーケンス・チャートが存在する場合(ステップS16のYes)、ステップS13に移行して未処理のメッセージ・シーケンス・チャートを選択し、選択したメッセージ・シーケンス・チャートについて、ステップS14以降の処理を引き続き行う。
一方、未処理のメッセージ・シーケンス・チャートが存在しない場合(ステップS16のNo)、ステップS11にてラベルが付与された設計仕様を参照し、設計仕様が備えるメッセージ・シーケンス・チャートを1つ選択する(ステップS17)。
次に、メッセージ・シーケンス・チャートの制約(synchやtimeout等)から、選択したメッセージ・シーケンス・チャートの有限ステートマシンの不要なステートを刈る(ステップS18)。この処理は後に詳述する。
次に、未処理のメッセージ・シーケンス・チャートが存在するか否かを判断する(ステップS19)。
未処理のメッセージ・シーケンス・チャートが存在する場合(ステップS19のYes)、ステップS17に移行し、未処理のメッセージ・シーケンス・チャートを選択する。そして、選択したメッセージ・シーケンス・チャートについてステップS18以降の処理を引き続き行う。
一方、未処理のメッセージ・シーケンス・チャートが存在しない場合(ステップS19のNo)、ステップS11にてラベルが付与されたLSI20の設計仕様を参照し、設計仕様が備える機能を選択する(図13のステップS20)。
次に、選択された機能からシナリオを選択する(ステップS21)。
次に、ステップS15にてラベルが付与された有限ステートマシンから、選択したシナリオと同じラベルを有する有限ステートマシンを抽出する(ステップS22)。
次に、選択したシナリオと同じラベルを有する有限ステートマシンの部分(以下、「部分有限ステートマシン」と言う)を抽出する(ステップS23)。検証用シナリオ生成部11は、抽出した有限ステートマシンの部分を一時記憶する。
次に、ステップS23にて抽出した有限ステートマシンの部分から検証用シナリオを生成し、生成した検証用シナリオを検証用シナリオ格納部12に格納する(ステップS24)。なお、有限ステートマシンの部分から検証用シナリオを生成する方法は、後に詳述する。
次に、ステップS20にて選択した機能に、未処理のシナリオが存在するか否かを判断する(ステップS25)。
未処理のシナリオが存在する場合(ステップS25のYes)、ステップS21に移行し、未処理のシナリオを選択し、選択したシナリオについてステップS22以降の処理を引き続き行う。
一方、ステップS20にて選択した機能に、未処理のシナリオが存在しない場合(ステップS25のNo)、LSI20の設計仕様に、未処理の機能が存在するか否かを判断する(ステップS26)。
未処理の機能が存在する場合(ステップS26のYes)、ステップS20に移行し、未処理の機能を選択し、選択した機能についてステップS21以降の処理を引き続き行う。
一方、未処理の機能が存在しない場合(ステップS26のNo)、処理を終了する。
以上で、検証用シナリオ生成処理の説明を終了する。
次に、ステップS11のラベルの付与の処理(ラベル付与処理)を詳しく説明する。
図14は、ラベル付与処理を示すフローチャートである。
まず、LSI20の設計仕様を参照し、機能を1つ選択する(ステップS31)。
次に、選択した機能からシナリオを1つ選択する(ステップS32)。
次に、選択したシナリオに付属するメッセージ・シーケンス・チャートを1つ選択する(ステップS33)。
次に、選択したメッセージ・シーケンス・チャートに、ステップS31にて選択した機能名(現在選択されている機能名)およびステップS32にて選択したシナリオ名(現在選択されているシナリオ名)をラベルとして付与する(ステップS34)。また、既にラベルが付与されている場合は、ラベルを追加する。
なお、ラベルには、機能名・シナリオ名に加え、メッセージ・シーケンス・チャート名を付するようにしてもよい。
次に、当該シナリオ内に未処理のメッセージ・シーケンス・チャートが存在するか否かを判断する(ステップS35)。
当該シナリオ内に未処理のメッセージ・シーケンス・チャートが存在する場合(ステップS35のYes)、ステップS33に移行し、当該シナリオ内の未処理のメッセージ・シーケンス・チャートを選択し、選択したメッセージ・シーケンス・チャートについてステップS34以降の処理を引き続き行う。
一方、当該シナリオ内に未処理のメッセージ・シーケンス・チャートが存在しない場合(ステップS35のNo)、未処理のシナリオが存在するか否かを判断する(ステップS36)。
未処理のシナリオが存在する場合(ステップS36のYes)、ステップS32に移行し、未処理のシナリオを選択し、選択したシナリオについてステップS33以降の処理を引き続き行う。
一方、未処理のシナリオが存在しない場合(ステップS36のNo)、未処理の機能が存在するか否かを判断する(ステップS37)。
未処理の機能が存在する場合(ステップS37のYes)、ステップS31に移行し、未処理の機能を選択し、選択した機能についてステップS32以降の処理を引き続き行う。
一方、未処理の機能が存在しない場合(ステップS37のNo)、処理を終了する。
以上で、ラベル付与処理の説明を終了する。
次に、図11のステップS2に示す優先順位付与処理を説明する。
図15は、優先順位付与処理を示すフローチャートである。
まず、パラメータi=1にセットする(ステップS41)。
次に、入力されたパターンの中から、優先順位の最も高い項目を選択する(ステップS42)。例えば、入力されたパターンが、(基本動作>例外動作)である場合は、基本動作を選択する。
次に、選択した項目を含むラベルが全てのステートに付与されている検証用シナリオを全て取得する(ステップS43)。
次に、取得した全ての検証用シナリオの優先順位をiとする(ステップS44)。
次に、パラメータiを更新(i=i+1)する(ステップS45)。
次に、優先順位の項目が残っているか否かを判断する(ステップS46)。
残っている場合(ステップS46のYes)、ステップS42に移行し、未処理の項目のうち最も優先順位の高い項目を選択し、ステップS43以降の処理を引き続き行う。
一方、残っていない場合(ステップS46のNo)、処理を終了する。
以上で、優先順位付与処理の説明を終了する。
<具体例>
次に、ラベル付与処理の具体例を説明する。
図16は、LSIの設計仕様のデータ構造の具体例を示す図である。
図16に示すLSI20の設計仕様は、ATM(Automatic Teller Machine)取引に関する機能を表している。
この設計仕様は、ATMカードおよびPIN(Personal Identification Number)を用いてATMの将来的なユーザを認証する簡単化された記述を提供する。
具体的には、機能ブロック51にはATM取引開始機能が設定されている。
図16に示すLSI20の設計仕様には、2つのシナリオが用意されている。
第1のシナリオは、機能ブロック51が有する機能、シナリオブロック51aに対応付けられているシナリオ、シナリオブロック51aに対応付けられているシナリオを実現するための検証用シナリオを開始、進行するパスに関する。
この検証用シナリオは、MSCブロック511a、512aに対応付けられているメッセージ・シーケンス・チャートによって実現される。
この第1のシナリオは、将来的なユーザによって提供されるPINを受け付けるATMと関連付けされている。
第2のシナリオは、機能ブロック51に対応付けられている機能、シナリオブロック51bに対応付けられているシナリオ、シナリオブロック51bに対応付けられているシナリオを実現するための検証用シナリオを開始、進行するパスに関する。
この検証用シナリオは、MSCブロック511b、512bに対応付けられているメッセージ・シーケンス・チャートによって実現される。
この第2のシナリオは、将来的なユーザによって提供されるPINを拒否するATMと関連付けされている。
以下、第1のシナリオをシナリオ「成功」と言い、第2のシナリオをシナリオ「失敗」と言う。
図17は、メッセージ・シーケンス・チャートの具体例を示す図である。
図17(a)〜図17(c)は、それぞれ、検証用シナリオに関するメッセージ・シーケンス・チャートを示す図である。
図17(a)に示すメッセージ・シーケンス・チャート40bは、MSCブロック511aに対応付けられているメッセージ・シーケンス・チャートの識別名「問い合わせ」に関するメッセージ・シーケンス・チャート(以下、単にメッセージ・シーケンス・チャート「問い合わせ」と言う)である。
図17(a)に示すオブジェクトは、ユーザインタフェース(I/F)41a、ATM42aおよびデータベース43aによって表される。
各オブジェクトはまた、ユーザインタフェースライン44a、ATMライン45aおよびデータベースライン46aを含むオブジェクトラインを含む。
前述したルールを利用して、メッセージ・シーケンス・チャート40bは、以下の処理を行う。
まず、ATM42aはカード挿入依頼メッセージ(Insert_Card)をユーザインタフェース41aに送信する(ステップS51)。
カード挿入依頼メッセージの受信後、ユーザインタフェース41aは、カード挿入メッセージ(Card_Inserted)をATM42aに送信する(ステップS52)。
カード挿入メッセージの送信後、ユーザインタフェース41aは、入力されたパスワード(PIN)をATM42aに送信する(ステップS53)。
ATM42aが、パスワードを受信した後、ATM42aは認証依頼(PIN_verify)メッセージをデータベース43aに送信する(ステップS54)。
図17(b)に示すメッセージ・シーケンス・チャート40cは、MSCブロック512aに対応付けられているメッセージ・シーケンス・チャートの識別名「認証成功」に関するメッセージ・シーケンス・チャート(以下、単にメッセージ・シーケンス・チャート「認証成功」と言う)である。
メッセージ・シーケンス・チャート40cは、ユーザインタフェース41a、ATM42aおよびデータベース43aに関するメッセージ・シーケンス・チャートにおいて用いられる同一のオブジェクトの表示を含む。
前述したルールを利用して、メッセージ・シーケンス・チャート40cは、以下の処理を行う。
すなわち、データベース43aは、ユーザデータをATM42aに送信する(ステップS55)。ATM42aがユーザデータを受信した後、ATM42aは、メニュー表示をユーザインタフェース41aに送信する(ステップS56)。
図17(c)に示すメッセージ・シーケンス・チャート40dは、MSCブロック512bに対応付けられているメッセージ・シーケンス・チャートの識別名「認証失敗」に関するメッセージ・シーケンス・チャート(以下、単にメッセージ・シーケンス・チャート「認証失敗」と言う)である。
メッセージ・シーケンス・チャート40dは、ユーザインタフェース41a、ATM42aおよびデータベース43aに関連するメッセージ・シーケンス・チャートで用いられる同一のオブジェクトの表現を含む。
前述したルールを利用して、メッセージ・シーケンス・チャート40dは、以下の処理を行う。
データベース43aは、エラーをATM42aに送信する(ステップS57)。ATM42aがエラーを受信した後、ATM42aは、エラーメッセージをユーザインタフェース41aに送信する(ステップS58)。
図18〜図20は、LSIの設計仕様にラベルを付与する具体例を示す図である。
まず、LSI20の設計仕様を参照し、機能ブロック51に対応付けられている機能「ATM取引開始」を選択する。
次に、選択した機能からシナリオブロック51aに対応付けられているシナリオ「成功」を選択する。
次に、選択したシナリオ「成功」に対応付けられているメッセージ・シーケンス・チャート「問い合わせ」を選択する。
次に、選択したメッセージ・シーケンス・チャート「問い合わせ」にラベルを付与する。
前述したように、ラベルとして、現在選択されている機能名および現在選択されているシナリオ名を付与する。またラベルは、機能名・シナリオ名:シナリオの種類の順に付与する。従って、図18に示す例では、「ATM取引開始・成功:基本動作」のラベル511a1を付与する。
図18ではここまでの例を示している。
次に、当該シナリオブロック51a内に未処理のメッセージ・シーケンス・チャートが存在するか否かを判断すると、未処理のメッセージ・シーケンス・チャート「認証成功」が存在する。従って、このメッセージ・シーケンス・チャート「認証成功」を選択する。
次に、選択したメッセージ・シーケンス・チャート「認証成功」に「ATM取引開始・成功:基本動作」のラベル512a1を付与する。
次に、当該シナリオブロック51a内に未処理のメッセージ・シーケンス・チャートが存在するか否かを判断すると、当該シナリオブロック51a内に未処理のメッセージ・シーケンス・チャートは存在しない。
従って、機能ブロック51内に未処理のシナリオが存在するか否かを判断すると、シナリオブロック51bの未処理のシナリオ「失敗」が存在する。
そこで、このシナリオ「失敗」を選択する。
次に、選択したシナリオ「失敗」に対応付けられているメッセージ・シーケンス・チャート「問い合わせ」を選択する。
次に、選択したメッセージ・シーケンス・チャート「問い合わせ」に「ATM取引開始・失敗:例外動作」のラベルを付与する。ここでは、既にラベル511a1が付与されているので、「ATM取引開始・失敗:例外動作」のラベルをラベル511a1に追加する。
図19ではここまでの例を示している。
次に、当該シナリオ内に未処理のメッセージ・シーケンス・チャートが存在するか否かを判断すると、未処理のメッセージ・シーケンス・チャート「認証失敗」が存在する。従って、このメッセージ・シーケンス・チャート「認証失敗」を選択する。
次に、選択したメッセージ・シーケンス・チャート「認証失敗」に「ATM取引開始・失敗:例外動作」のラベル512b1を付与する。
次に、当該シナリオブロック51b内に未処理のメッセージ・シーケンス・チャートが存在するか否かを判断すると、当該シナリオブロック51b内に未選択のメッセージ・シーケンス・チャートは存在しない。
従って、機能ブロック51内に未処理のシナリオが存在するか否かを判断すると、未処理のシナリオは存在しない。
従って、処理を終了する。
図20は、ここまでの処理を示している。
図21は、ラベルを付与したLSIの設計仕様のデータ構造例を示す図である。
ラベルを付与したLSI20のデータ60は、XML形式で表現されている。
記述61は、メッセージ・シーケンス・チャート40bに関する記述部分を示している。また、記述62は、メッセージ・シーケンス・チャート40cに関する記述部分を示している。また、記述63は、メッセージ・シーケンス・チャート40dに関する記述部分を示している。
ここで、記述61a、62a、63aは、それぞれ、ラベル付与処理によって追記された行である。ラベル付与処理によって追記された行には、ラベル名であることを識別するXMLタグ<label name>が付されている。また、タグ内の内容は、それぞれ付与されたラベルの内容を示している。
なお、前述したように、ラベルには、機能名・シナリオ名:シナリオの種類に加え、メッセージ・シーケンス・チャート名を付与するようにしてもよい。これにより、優先順位のパターンとしてメッセージ・シーケンス・チャート名が入力された場合においてもシナリオに優先順位を付与することができる。
図22は、LSIの設計仕様にラベルを付与する他の具体例を示す図である。
図22に示すラベル511a1、512a1、512b1には、いずれも機能名・シナリオ名:シナリオの種類に加え、メッセージ・シーケンス・チャート名が付与されている。
次に、ステップS14の、メッセージ・シーケンス・チャートを有限ステートマシンに変換する処理を、具体例を用いて説明する。
図23は、有限ステートマシンに変換する処理を説明するメッセージ・シーケンス・チャートを示す図である。
有向グラフを有限ステートマシンに変換するため、有向グラフの備える各メッセージ・シーケンス・チャートによって規定されるイベントを用いて、有限ステートマシンのステートを特定する。
メッセージ・シーケンス・チャートは可能なイベント順序を規定し、各オブジェクトにおいて完了されたイベントは状態に対応する。例えば、初期状態はいずれのオブジェクトにおいても完了されないイベントに対応する。最終状態は、各オブジェクトにおいて完了した全てのイベントに対応する。
ここで、メッセージ・シーケンス・チャート70を検討すると、メッセージ・シーケンス・チャート70の一部が、オブジェクトの一部のイベント群を考慮することによって有限ステートマシンに投影される。
図23に示すオブジェクトは、送信オブジェクト71、長距離送信オブジェクト72、受信オブジェクト73および長距離受信オブジェクト74によって表される。
例えば、メッセージ・シーケンス・チャート70では、有限ステートマシンが、送信オブジェクト71と受信オブジェクト73に対して生成される。図示されるように、送信オブジェクト71は送信イベントt1〜t5を有している。受信オブジェクト73は、受信イベントr1〜r6を有している。
ここで、送信オブジェクト71と受信オブジェクト73は、メッセージを交換することなく、2つの同期エッジによって関連付けされる。
図24は、図23に示すメッセージ・シーケンス・チャートに関連する状態マトリックスを示す図である。
状態マトリックス80を利用して、有限ステートマシンの生成方法をさらに説明する。
2つのみしかオブジェクトが存在しない場合、メッセージ・シーケンス・チャート70の有限ステートマシンは、2次元の状態マトリックス80として可視化することができる。
状態マトリックス80の各ブロックは、送信オブジェクト71が送信イベントtiを終了させ、受信オブジェクト73が受信イベントrjを終了させた状態に対応している。
このため、状態マトリックス80の各ブロックは、状態(ti,rj)を規定する。
ここで、状態マトリックス80の原点は、左上隅に設けられている。初期状態は、記号⊥を用いて各オブジェクトに対して示される。
状態マトリックス80の左上隅の状態が初期状態であるため、状態遷移は各状態から右下にトレースすることによって特定される。最終状態は、右下隅に示す状態となる。
送信オブジェクト71と受信オブジェクト73とが2つの同期エッジによっては関連付けされていない場合、状態マトリックス80は、(n×m)の完全な2次元の状態マトリックスとなる(ただし、nは、送信オブジェクト71により送信されるメッセージの個数であり、mは、受信オブジェクト73によって受信されるメッセージの個数である)。
しかしながら、メッセージ・シーケンス・チャート70の同期エッジの存在は、状態マトリックス80に示されるような有効な状態の個数を減少させる。
同期エッジにより、状態マトリックス80に示される一部の状態は有効とはならず、2次元マトリックスから「クロスアウト(cross out)」させることが可能である。
例えば、送信イベントt3が送信オブジェクト71から受信オブジェクト73への同期エッジに対応する送信イベントであると仮定する。
受信イベントr3は、同一の同期エッジに関連する対応する受信イベントである。受信イベントr2の後に発生する受信オブジェクト73におけるいずれのイベントも、送信イベントt3の後に発生する必要がある。従って、受信イベントr3〜r6は送信イベントt3の前に発生することはできない。
このオブジェクトを利用して、無効状態に対応する状態マトリックス80の領域81は、クロスアウトされる。同様のオブジェクトを用いて、メッセージ・シーケンス・チャート70の第2同期エッジに関連する領域82をクロスアウトする。
残りのマトリックスは、メッセージ・シーケンス・チャート70を正確に表している。送信イベントt2や受信イベントr1等の状態は、送信オブジェクト71が送信イベントt2を終了させ、受信オブジェクト73が受信イベントr1を終了させた状態を表す。
図25は、状態マトリックスに関する状態図を示す図である。
状態図90に示す1つのステート91は、図24に示した状態マトリックス80の1つの領域に対応している。
ステート91内の値は、状態を示している。
状態図90の各水平方向への遷移は、メッセージの受信に対応している。このため有限ステートマシンによるメッセージの送信として実現される。
同様に、状態図90の各垂直方向への遷移は、メッセージの送信に対応している。このため、有限ステートマシンによるメッセージの受信待機として実現される。
現在、状態図90の水平方向への遷移と垂直方向への遷移の両方が行われうる状態(i,j)であるとき、水平方向への遷移は適切なメッセージを送信することにより行われる。
その後、垂直方向への遷移が予想されるメッセージが受信されたか判断することによって試行される。後者の状態が満たされる場合、垂直方向への遷移が行われてもよく、次の状態は状態(i+1,j+1)となる。
後者の状態が満たされていない場合、水平方向への遷移のみが行われ、次の状態は(i+1,j)となる。
オブジェクトが永久に待機することがないように、メッセージの受信待機中にタイマが利用される。
すなわち、適切なタイムアウト期間後に待機は終了する。垂直または水平のみの遷移しかある状態から行うことができない場合、これらの動作のみが生成される。
遷移方向が生成可能な有限ステートマシンに影響する1つの変数である一方、他の変数はあるステートに関する特定のタイプのイベントである。
例えば、図23に示す送信オブジェクト71と受信オブジェクト73において、オブジェクトラインに関連する各イベントは3つのタイプのうちの1つである。送信オブジェクト71では、これらのタイプはメッセージ送信イベント、タイマ始動イベントおよびタイムアウト信号受信イベントである。
受信オブジェクト73では、これらのタイプは、メッセージ受信イベント、タイマ始動イベントおよびタイムアウト信号受信イベントである。各オブジェクトのこれら3つのタイプのイベントは、有限ステートマシンの各ステートに対して生成されるコードが当該状態の正確な組み合わせに依存するため、有限ステートマシン変換中に考慮される9つの組み合わせを生じさせる。
これらの技術を利用して、有限ステートマシンがメッセージ・シーケンス・チャートに対して生成される。
シナリオに対する有限ステートマシンを生成するため、有限ステートマシンがパスに沿って各メッセージ・シーケンス・チャートに対して生成され、必要に応じて合成される。例えば、1つのメッセージ・シーケンス・チャートの終わりの次の状態は、パスに沿った次のメッセージ・シーケンス・チャートの開始状態となる。
信号および変数宣言の全てを組み合わせることによって、有限ステートマシンを自動的に生成、編集することができる。また、生成、編集された有限ステートマシンを用いてテスト対象装置300の動作をシミュレートすることができる。
次に、ステップS15に示す有限ステートマシンにラベルを付与する処理を具体的に説明する。
図26は、有限ステートマシンにラベルを付与する具体例を示す図である。
まず、前述した方法にて生成した有限ステートマシン90aのステート1つ1つに対し、対応するメッセージ・シーケンス・チャートのラベルを付与する。
図26では、メッセージ・シーケンス・チャート「問い合わせ」から有限ステートマシンのステートSt1、St2、St3、St4が生成されている。
ここで、メッセージ・シーケンス・チャート「問い合わせ」には、「ATM取引開始・成功:基本動作」のラベルと「ATM取引開始・失敗:例外動作」のラベルとが付与されている。
従って、これらステートSt1、St2、St3、St4それぞれにも、「ATM取引開始・成功:基本動作」のラベルと「ATM取引開始・失敗:例外動作」のラベルとを付与する。
図27は、有限ステートマシンにラベルの付与が終了したときの状態を示す図である。
図27では、メッセージ・シーケンス・チャート「認証成功」からステートSt5、St6が生成されている。
ここで、メッセージ・シーケンス・チャート「認証成功」には、「ATM取引開始・成功:基本動作」のラベルが付与されている。
従って、これらステートSt5、St6それぞれにも、「ATM取引開始・成功:基本動作」のラベルを付与する。
また、メッセージ・シーケンス・チャート「認証失敗」からステートSt7、St8が生成されている。
ここで、メッセージ・シーケンス・チャート「認証失敗」には、「ATM取引開始・失敗:例外動作」のラベルが付与されている。
従って、これらステートSt7、St8それぞれにも、「ATM取引開始・失敗:例外動作」のラベルを付与する。
次に、ステップS18のメッセージ・シーケンス・チャートの制約から有限ステートマシンの状態を刈る処理を、具体例を用いて説明する。
図28は、状態マトリックスに関する状態図を示す図である。
同期イベントは、実際の動作イベントの部分的順序付けを外部または他の装置により限定するのに利用されているだけであるため、状態図90から削除してもよい。同期イベントを削除することにより、図28に示される簡単化された状態図92が得られる。
図29は、有限ステートマシンのデータ構造例を示す図である。
有限ステートマシンのデータ110は、XML形式で表現されている。
記述110aは、有限ステートマシン90aの識別子に関する記述部分を示している。当該記述110aには、有限ステートマシンであることを識別する有限ステートマシンタグ<fsm name>が付されている。また、タグ内の内容は、それぞれ付与されたラベルの内容を示している。
また、記述111〜118は、それぞれ各ステートSt1〜St8に関する記述部分を示している。
また、記述119は、各ステートSt1〜St8に関する遷移方向を示している。
次に、図16に示すLSI20の設計仕様および図27に示すラベル付与済みの有限ステートマシンを用いてシナリオ毎の検証用シナリオを生成する具体例を説明する。
まず、図16に示す設計仕様から機能ブロック51に対応付けられている機能「ATM取引開始」を選択する。
次に、選択した機能「ATM取引開始」からシナリオ「成功」を選択する。
次に、選択したシナリオ「成功」と同じラベルを備える有限ステートマシンを抽出する。
具体的には、図27に示す有限ステートマシンを抽出する。
次に、選択したシナリオと同じラベルを持つ有限ステートマシンの部分を抽出する。
図27に示すように、シナリオ「成功」は、「ATM取引開始・成功:基本動作」のラベルを備えているため、このラベルと同じラベルを備えるステートSt1、St2、St3、St4、St5、St6を抽出する。
次に、抽出した有限ステートマシンの部分を、シナリオ「成功」を検証する検証用シナリオとして検証用シナリオ格納部12に格納する。
次に、選択した機能に未処理のシナリオが残っているか否かを判断すると、シナリオ「失敗」が残っている。
従って、選択した機能「ATM取引開始」からシナリオ「失敗」を選択する。
次に、選択したシナリオ「失敗」と同じラベルを備える有限ステートマシンを抽出する。
具体的には、図27に示す有限ステートマシンを抽出する。
次に、選択したシナリオと同じラベルを持つ有限ステートマシンの部分を抽出する。
図27に示すように、シナリオ「失敗」は、「ATM取引開始・失敗:例外動作」のラベルを備えているため、このラベルと同じラベルを備えるステートSt1、St2、St3、St4、St7、St8を抽出する。
次に、抽出した部分有限ステートマシンを、シナリオ「失敗」を検証する検証用シナリオとして検証用シナリオ格納部12に格納する。
次に、選択した機能に未処理のシナリオが残っているか否かを判断すると、残っていない。
次に、未処理の機能が残っているか否かを判断すると、残っていない。
従って、処理を終了する。
図30は、検証用シナリオ格納部に格納されている検証用シナリオを示す図である。
図30に示すように、シナリオ「成功」を検証する検証用シナリオSc1およびシナリオ「失敗」を検証する検証用シナリオSc2が存在する。
次に、検証用シナリオ生成処理におけるステップS24の有限ステートマシンの部分から検証用シナリオを生成する方法を詳しく説明する。
<検証用シナリオの生成>
前述した具体例では、有限ステートマシンの部分から検証用シナリオを容易に作成することができた。
しかしながら、有限ステートマシンの部分のステートがループしている場合等がある。 この場合、検証用シナリオ生成部11は、有限ステートマシンの部分を、いくつかの構成単位に「切断」または分割した、検証用シナリオを生成する。
例えば、有限ステートマシンの部分は、パスにおいて再出現するステートに従って切断されてもよい。代わりに、または加えて、「少なくとも最小数または最大数以下のステートが各検証用シナリオにおいて特定されることを要求する」という制約を有する複数の検証用シナリオに切断されてもよい。
例えば、以下の有限ステートマシンの部分が抽出されたものとする。
St2→St4→St6→St7→St2→St3→St6→St7→St2→St3→St5→St7→St2→St3→St5→St2
有限ステートマシンの部分を分割する1つの論理的方法は、再出現するステートを切断することである。
例えば、ステートSt2は、この長い有限ステートマシンの部分を4つの検証用シナリオに切断するのに利用される。
(1)St2→St4→St6→St7
(2)St2→St3→St6→St7
(3)St2→St3→St5→St7
(4)St2→St3→St5→St2
より長い検証用シナリオを生成するため、検証用シナリオ生成部11は、ステートSt2を用いて切断処理を実行すると共に、各検証用シナリオが少なくとも5つのステートを含むことを要求することができる。
これらの制約を用いて、以下の2つの検証用シナリオが特定される。
(5)St2→St4→St6→St7→St2→St3→St6→St7
(6)St2→St3→St5→St7→St2→St3→St5→St2
次に、優先順位付与処理の具体例を説明する。
まず、パラメータi=1に設定する。
次に、パターンの中から、優先順位の最も高い項目を取り出す。
ここでは、パターンに基本動作を例外動作よりも優先するパターン(基本動作>例外動作)が設定されているものとする。従って、優先順位の最も高い基本動作をパターンから取り出す。
次に、検証用シナリオ格納部12を参照し、基本動作を含むラベルが全てのステートに付与されている検証用シナリオを全て取得する。
図30に示すように、本具体例では、基本動作を含むラベルが全てのステートに付与されている検証用シナリオSc1を取得する。
そして、取得した検証用シナリオSc1の優先順位を「i=1」に設定する。また、パラメータi=1+1=2とする。
優先順位項目がパターンに残っているか否かを判断すると、まだ残っているので、次に優先順位の高い例外動作を取り出す。
次に、検証用シナリオ格納部12を参照し、例外動作を含むラベルが全てのステートに付与されている検証用シナリオを全て取得する。
図30に示すように、本具体例では、例外動作を含むラベルが全てのステートに付与されている検証用シナリオSc2を取得する。
そして、取得した検証用シナリオSc2の優先順位を「i=2」に設定する。また、パラメータi=2+1=3とする。
優先順位項目が残っているか否かを判断すると、もう残っていないので、処理を終了する。
図31および図32は、優先順位が付与された検証用シナリオのデータ構造を示す図である。
図31は、検証用シナリオSc1のデータ構造を示している。
3行目は、<fsm name=“ATM取引開始FSM” type=“scenario” priority=“1”>と記述されている。この「type=“scenario”」が検証用シナリオであることを示している。また、「priority=“1”」が、検証用シナリオの優先順位を示している。
図32は、検証用シナリオSc2のデータ構造を示している。
3行目は、<fsm name=“ATM取引開始FSM” type=“scenario” priority=“2”>と記述されている。この「type=“scenario”」が検証用シナリオであることを示している。また、「priority=“2”」が、検証用シナリオの優先順位を示している。
次に、出力されるシナリオ名のイメージを説明する。
図33は、優先順位リストの具体例を示す図である。
優先順位リスト14aには、優先順位の欄と検証用シナリオの欄が設けられている。
優先順位の欄には、優先順位を識別する値が設定されている。
検証用シナリオの欄の1行目には、優先順位の欄の「1」に対応する「priority=“1”」を有する検証用シナリオSc1が設定されている。また、検証用シナリオの欄の2行目には、優先順位の欄の「2」に対応する「priority=“2”」を有する検証用シナリオSc2が設定されている。
パターンの欄には、入力されたパターンを識別する情報が設定されている。
以上述べたように、設計検証装置10によれば、検証用シナリオ生成部11が、LSI20の設計仕様が備える複数のシナリオが備えるメッセージ・シーケンス・チャートそれぞれにラベルを関連付けた検証用シナリオを生成するようにした。
具体的には、以下の処理を行った。
メッセージ・シーケンス・チャートそれぞれに、ラベルを関連付けた。これにより、1つのシナリオが備えるメッセージ・シーケンス・チャートを特定することができる。
そして、メッセージ・シーケンス・チャートから有限ステートマシンの生成を行った。ただし、有限ステートマシンを生成する際、各ステートに対応するメッセージ・シーケンス・チャートのラベルを付与するようにした。これにより、1つのシナリオが備えるステートを特定することができる。
そして、LSI20の設計仕様の各シナリオに対応する有限ステートマシンを抽出し、抽出した各有限ステートマシンの検証用シナリオを生成するようにした。
これにより、入力されるパターンの入力に対応する(設計・検証の段階に応じた)検証用シナリオを生成することができる。
そして、優先順位付与部13が、ユーザが指定した優先順位のパターンの入力に応じて、検証用シナリオに優先順位を付与するようにした。
そして、出力部14が、優先順位が付与された検証用シナリオを識別する情報を、処理順位とともに出力するようにした。
これにより、ユーザは、この優先順位リスト14aに記載された順番にシナリオを実行することにより、効率的に設計検証を行うことができる。
また、優先順位付与部13は、パターンの入力に応じて、入力されたパターンにより示される検証対象部位に関連する全ての検証用シナリオに同じ優先順位を付与するようにした。
これにより、設計検証に必要な全ての検証用シナリオに同じ優先順位が付与される。従って、検証漏れをなくすことができるため、処理を簡易なものとすることができる。
また、優先順位付与部13は、処理優先度情報を有するパターンの入力に応じて、検証用シナリオに処理優先度情報に応じた優先順位を付与するようにした。
これにより、より細かい処理優先度の付与の処理を実行できる。
なお、入力されるパターン項目としては特に限定されないが、例えば以下に示す例が挙げられる。
(1)検証を開始して間もない場合は、シナリオの基本パス、代替パス、例外パスの順に検証用シナリオに優先順位を付けるのが好ましい。従って、パターンの項目として「基本動作>代替動作>例外動作」を入力するのが好ましい。
(2)不具合修正後のリグレッションテストの場合は、不具合を発見したシナリオを最優先に検証し、その次に修正した箇所を直接検証するシナリオを検証し、その他のシナリオを検証するのが好ましい。従って、パターン項目として「不具合を発見したシナリオ名>修正した箇所を直接検証するシナリオ名>その他のシナリオ名」を入力するのが好ましい。
(3)設計最終段階では、例外ケースを集中的に確認したいことが多い。この場合には、シナリオの例外パスを優先的に検証し、その次に代替パス、基本パスを検証するのが好ましい。従って、パターン項目として「例外動作>代替動作>基本動作」を入力するのが好ましい。
(4)設計の途中で機能に仕様変更があったとき、その機能が関わる箇所のシナリオを優先的に検証するのが好ましい。従って、パターン項目として「その機能が関わる箇所のシナリオ」を入力するのが好ましい。
ところで、検証作業の効率化を図るための検証方法として、カバレッジドリブン検証が知られている。
カバレッジドリブン検証とは検証対象の設計情報から測定可能なプロパティと検証終了基準を予め決め、検証をその基準を満たすまで行う検証方法である。典型的なプロパティとして、実装の「行数」や「分岐」が用いられる。なお、カバレッジを用いた検証方法をサポートする手法としてOVM(Open Verification Methodology)やVMM(Verification Methodology Manual)等が知られている。
実用レベルの検証網羅性を確保するためには、いくつかの検証用のカバレッジ基準を採用し、それぞれの数値を総合して十分かどうかを判断することが行われる。
ここで、カバレッジ基準とは、検証の網羅性の尺度(Metricsとも呼ばれる)となるものである。このカバレッジ基準は、LSIの設計または検証の状況に応じて動的に変化する。
なお、カバレッジ基準が変更される状況としては、例えば、プログラムを変更した際に、その変更によって予想外の影響が現れていないか否かを検証するリグレッションテスト(regression test)時や、仕様を変更したとき等が挙げられる。
以下に示す第3の実施の形態の設計検証装置は、カバレッジ基準の入力に基づいて、そのカバレッジ基準を満たす検証用シナリオを出力する装置である。
<第3の実施の形態>
次に、第3の実施の形態のシステムについて説明する。
以下、第3の実施の形態のシステムについて、前述した第2の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
図34は、第3の実施の形態のシステムを示すブロック図である。
図34に示す第3の実施の形態のシステムは、設計検証装置10aが、カバレッジ基準が変更されたときに、その変更要件を検証することができる検証用シナリオを生成する機能を有している点が、第2の実施の形態と異なっている。
カバレッジ基準を定義する際には、まず尺度を定義する。
本実施の形態では、LSI20の仕様から尺度として使える項目(測定可能である)として、機能、シナリオ、シナリオの種類、データ・イベント・メッセージ、メッセージの送り手のオブジェクトと受け手とのオブジェクトのセット、オブジェクト等が挙げられる。
本実施の形態では、機能は、該当機能に含まれる全てのシナリオを利用することとする。シナリオは、該当するシナリオを利用することとする。シナリオの種類は、LSI20の仕様に含まれる該当シナリオの種類を全て利用することとする。データ・イベント・メッセージは、特定のメッセージを利用することとする。これは、該当するメッセージが含まれる全てのシナリオを利用することに等しい。オブジェクトは、特定のオブジェクトが含まれる全ての検証用シナリオを利用することとする。
また、尺度を構成する要素を論理式として組み合わせたカバレッジ基準を定義することもできる。これらの要素の論理式を組み合わせることで、カバレッジ基準の細かな調整が可能になる。
なお、論理式としては、特に限定されないが、例えば、AND、OR、NOT、NAND、NOR等が挙げられる。
第3の実施の形態の設計検証装置10aは、検証用シナリオ生成部11、優先順位付与部13の代わりに、検証用シナリオ生成部11aとシナリオ抽出部15とを有している。
検証用シナリオ生成部11aは、検証用シナリオ生成部11が有する機能に加え、検証用シナリオを生成する際に、メッセージ名と送受信側のオブジェクト名をラベルに追加する機能を有している。
シナリオ抽出部15は、入力されるカバレッジ基準に基づいて、検証用シナリオ格納部12に格納された検証用シナリオから、入力されたカバレッジ基準を満たす検証用シナリオを抽出する。なお、カバレッジ基準の入力は、ユーザが入力するようにしてもよいし、ユーザが予め用意したカバレッジ基準から選択するものであってもよい。
また、出力部14は、シナリオ抽出部15によって抽出されたカバレッジ基準を満たす検証用シナリオのシナリオ名を出力する。
次に、設計検証装置10aの全体処理を説明する。
図35は、第3の実施の形態の設計検証装置の全体処理を示すフローチャートである。
まず、検証用シナリオ生成部11aが、ユーザにより入力されたLSI20の設計仕様に基づいて、検証用シナリオ生成処理を行って検証用シナリオを生成する(ステップS1a)。生成した検証用シナリオは、検証用シナリオ格納部12に格納する。
次に、シナリオ抽出部15が、検証用シナリオ抽出処理を行う(ステップS2a)。具体的には、入力されるカバレッジ基準に基づいて、検証用シナリオ格納部12に格納された検証用シナリオから、カバレッジ基準を満たす検証用シナリオを抽出する。
そして、出力部14が、抽出された検証用シナリオのシナリオ名を出力する(ステップS3a)。
以上で、全体処理の説明を終了する。
次に、第3の実施の形態の検証用シナリオ生成処理を説明する。
図36は、第3の実施の形態の検証用シナリオ生成処理を示すフローチャートである。
ステップS11〜ステップS15:第2の実施の形態の検証用シナリオ生成処理と同様の処理を行う。
[ステップS15a]
メッセージ名と送受信オブジェクト名をラベルに追加する。その後、ステップS16に遷移する。
ステップS16〜ステップS26:第2の実施の形態の検証用シナリオ生成処理と同様の処理を行う。
以上で、第3の実施の形態の検証用シナリオ生成処理の説明を終了する。
なお、図36では、ステップS20以降の処理は、図13のものと同様であるため図示を省略している。
次に、検証用シナリオ抽出処理を説明する。
図37は、検証用シナリオ抽出処理を示すフローチャートである。
まず、入力されるカバレッジ基準から要素を1つ選択する(ステップS61)。
次に、選択したカバレッジ基準に基づいて、検証用シナリオ格納部12に格納された検証用シナリオから、カバレッジ基準を満たす検証用シナリオを抽出する(ステップS62)。
次に、未選択の要素が存在するか否かを判断する(ステップS63)。
未選択の要素が存在する場合(ステップS63のYes)、ステップS61に移行し、未選択の要素を1つ選択する。その後、ステップS62以降の処理を引き続き行う。
一方、未選択の要素が存在しない場合(ステップS63のNo)、すなわち、全ての要素を選択し終わった場合、ステップS62にて抽出した検証用シナリオの集合から、カバレッジ基準の論理式を評価する(ステップS64)。具体的には、入力されるカバレッジ基準が論理式を含んでいる場合は、その論理式を演算し、その演算結果を出力部14に送る。また、入力されるカバレッジ基準の要素が1つだけである場合は、ステップS62にて抽出した検証用シナリオの集合を出力部14に送る。その後、処理を終了する。
以上で、検証用シナリオ抽出処理の説明を終了する。
次に、第3の実施の形態の設計検証装置10aの処理を具体例を用いて説明する。
図38は、第3の実施の形態のLSIの設計仕様のデータ構造の具体例を示す図である。
機能ブロック52には残高照会機能が設定されている。また、機能ブロック53には、(現金)引き出し機能が設定されている。
図38に示すLSI20の設計仕様には、5つのシナリオが用意されている。
本実施の形態の第1のシナリオは、機能ブロック52に対応付けられている機能、シナリオブロック52aに対応付けられているシナリオ、シナリオブロック52aに対応付けられているシナリオを実現するための検証用シナリオを開始、進行するパスに関する。
この検証用シナリオは、MSCブロック521a〜525aに対応付けられているメッセージ・シーケンス・チャートによって実現される。
この第1のシナリオは、将来的なユーザによって提供されるパスワードの入力(PIN)を受け付けて残高を表示するATMと関連付けされている。
本実施の形態の第2のシナリオは、機能ブロック52に対応付けられている機能、シナリオブロック52bに対応付けられているシナリオ、シナリオブロック52bに対応付けられているシナリオを実現するための検証用シナリオを開始、進行するパスに関する。
この第2のシナリオは、将来的なユーザによって提供されるパスワードの入力を拒否するATMと関連付けされている。
本実施の形態の第3のシナリオは、機能ブロック53に対応付けられている機能、シナリオブロック53aに対応付けられているシナリオ、シナリオブロック53aに対応付けられているシナリオを実現するための検証用シナリオを開始、進行するパスに関する。
この第3のシナリオは、将来的なユーザによって提供されるパスワードの入力を拒否するATMと関連付けされている。
本実施の形態の第4のシナリオは、機能ブロック53に対応付けられている機能、シナリオブロック53bに対応付けられているシナリオ、シナリオブロック53bに対応付けられているシナリオを実現するための検証用シナリオを開始、進行するパスに関する。
この第4のシナリオは、将来的なユーザによって提供されるパスワードの入力を受け付けて現金が引き出されたときのメッセージを表示するATMと関連付けされている。
本実施の形態の第5のシナリオは、機能ブロック53に対応付けられている機能、シナリオブロック53cに対応付けられているシナリオ、シナリオブロック53cに対応付けられているシナリオを実現するための検証用シナリオを開始、進行するパスに関する。
この第5のシナリオは、将来的なユーザによって提供されるパスワードの入力を受け付けて残高不足メッセージを表示するATMと関連付けされている。
なお、図38では、シナリオブロック52b、53a、53b、53cが有するMSCブロックの図示を省略している。
以下、第1のシナリオをシナリオ「照会」と言う。第2のシナリオをシナリオ「照会認証失敗」と言う。第3のシナリオをシナリオ「引き出し認証失敗」と言う。第4のシナリオをシナリオ「引き出し成功」と言う。第5のシナリオをシナリオ「残高不足」と言う。
次に、第3の実施の形態の有向グラフを説明する。
図39は、第3の実施の形態のメッセージ・シーケンス・チャート間の関係と階層構造を説明する図である。
有向グラフ30aは、初期状態ブロック31a、メッセージ・シーケンス・チャート32a〜39a、130a、131aによって表される10個の機能を有している。この10個の機能の組み合わせにより、図38に示したシナリオブロック52a、52b、53a、53b、53cに対応付けられているシナリオの処理が実現される。
例えば、メッセージ・シーケンス・チャート32aは、シナリオブロック52aが有するMSCブロック521aのメッセージ・シーケンス・チャート「Query」に対応していることを示している。これは、シナリオブロック52aのシナリオ「照会」の処理が、メッセージ・シーケンス・チャート32aの処理を含んでいることを示している。
以下、各シナリオの処理の流れについて説明する。
シナリオ「照会」は、初期状態ブロック31a、メッセージ・シーケンス・チャート32a、33a、34a、35a、36aを介し進行するパスに関する。具体的には、メッセージ・シーケンス・チャート32aの処理後、V==trueのガード条件が成立すれば、メッセージ・シーケンス・チャート33aに移行する。メッセージ・シーケンス・チャート33aの処理後、メッセージ・シーケンス・チャート34aに移行する。メッセージ・シーケンス・チャート34aの処理後、option==Balanceのガード条件が成立すれば、メッセージ・シーケンス・チャート35aに移行する。メッセージ・シーケンス・チャート35aの処理後、メッセージ・シーケンス・チャート36aに移行する。メッセージ・シーケンス・チャート36aの処理が終了すると、シナリオ「照会」の処理が終了する。
シナリオ「照会認証失敗」は、初期状態ブロック31a、メッセージ・シーケンス・チャート32a、37aを介し進行するパスに関する。具体的には、メッセージ・シーケンス・チャート32aの処理後、V==falseのガード条件が成立すれば、メッセージ・シーケンス・チャート37aに移行する。メッセージ・シーケンス・チャート37aの処理が終了すると、シナリオ「照会認証失敗」の処理が終了する。
シナリオ「引き出し認証失敗」は、シナリオ「照会認証失敗」と同様の処理を行う。具体的には、メッセージ・シーケンス・チャート32aの処理後、V==falseのガード条件が成立すれば、メッセージ・シーケンス・チャート37aに移行する。メッセージ・シーケンス・チャート37aの処理が終了すると、シナリオ「引き出し認証失敗」の処理が終了する。
シナリオ「引き出し成功」は、初期状態ブロック31a、メッセージ・シーケンス・チャート32a、33a、34a、38a、39a、130a、36aを介し進行するパスに関する。具体的には、メッセージ・シーケンス・チャート32aの処理後、V==trueのガード条件が成立すれば、メッセージ・シーケンス・チャート33aに移行する。メッセージ・シーケンス・チャート33aの処理後、メッセージ・シーケンス・チャート34aに移行する。メッセージ・シーケンス・チャート34aの処理後、option==Withdrawalのガード条件が成立すれば、メッセージ・シーケンス・チャート38aに移行する。メッセージ・シーケンス・チャート38aの処理後、Balance>=0のガード条件が成立すれば、メッセージ・シーケンス・チャート39aに移行する。メッセージ・シーケンス・チャート39aの処理が終了すると、メッセージ・シーケンス・チャート130aに移行する。メッセージ・シーケンス・チャート130aの処理が終了すると、メッセージ・シーケンス・チャート36aに移行する。メッセージ・シーケンス・チャート36aの処理が終了すると、シナリオ「引き出し成功」の処理が終了する。
シナリオ「残高不足」は、初期状態ブロック31a、メッセージ・シーケンス・チャート32a、33a、34a、38a、131a、36aを介し進行するパスに関する。具体的には、メッセージ・シーケンス・チャート32aの処理後、V==trueのガード条件が成立すれば、メッセージ・シーケンス・チャート33aに移行する。メッセージ・シーケンス・チャート33aの処理後、メッセージ・シーケンス・チャート34aに移行する。メッセージ・シーケンス・チャート34aの処理後、option==Withdrawalのガード条件が成立すれば、メッセージ・シーケンス・チャート38aに移行する。メッセージ・シーケンス・チャート38aの処理後、Balance<0のガード条件が成立すれば、メッセージ・シーケンス・チャート131aに移行する。メッセージ・シーケンス・チャート131aの処理が終了すると、メッセージ・シーケンス・チャート36aに移行する。メッセージ・シーケンス・チャート36aの処理が終了すると、シナリオ「残高不足」の処理が終了する。
次に、シナリオ「照会」を例にとって、処理の流れの詳細を説明する。
図40は、シナリオ「照会」のメッセージ・シーケンス・チャートを示す図である。
図40に示すメッセージ・シーケンス・チャート40eは、シナリオ「照会」に関するメッセージ・シーケンス・チャートである。
このメッセージ・シーケンス・チャート40eは、メッセージ・シーケンス・チャート32a〜36aが有する全ての処理を示したものである。
図40に示すオブジェクトは、ユーザインタフェース(I/F)41a、ATM42aおよびデータベース43aによって表される。
各オブジェクトはまた、ユーザインタフェースライン44a、ATMライン45aおよびデータベースライン46aを含むオブジェクトラインを含む。
前述したルールを利用して、メッセージ・シーケンス・チャート40eは、以下の処理を行う。
まず、ATM42aはカード挿入依頼メッセージ(Insert_Card)をユーザインタフェース41aに送信する(ステップS51a)。
カード挿入依頼メッセージの受信後、ユーザインタフェース41aは、カード挿入メッセージ(Card_Inserted)をATM42aに送信する(ステップS52a)。
カード挿入メッセージの送信後、ユーザインタフェース41aは、入力されたパスワード(PIN)をATM42aに送信する(ステップS53a)。
ATM42aが、パスワードを受信した後、ATM42aは認証依頼(V=PIN_Verify)メッセージをデータベース43aに送信する(ステップS54a)。ここまでが、メッセージ・シーケンス・チャート32aの有するシナリオである。
データベース43aは、OKメッセージ(OK)をATM42aに送信する(ステップS55a)。ここまでが、メッセージ・シーケンス・チャート33aの有するシナリオである。
ATM42aがOKメッセージを受信した後、ATM42aは、メニュー表示(Menu)をユーザインタフェース41aに送信する(ステップS56a)。
その後、ユーザインタフェース41aがオプション入力メッセージ(Option=Enter_option)を受け付けると、ATM42aに送信する(ステップS57a)。ここまでが、メッセージ・シーケンス・チャート34aの有するシナリオである。
ATM42aがオプション入力メッセージを受信した後、ATM42aは、残高照会要求メッセージ(Req_Balance)をデータベース43aに送信する(ステップS58a)。
データベース43aは、残高照会情報(Balance=Balance_info)をATM42aに送信する(ステップS59a)。
ATM42aは、残高照会情報表示(Show_Balance)をユーザインタフェース41aに送信する(ステップS60a)。ここまでが、メッセージ・シーケンス・チャート35aの有するシナリオである。
ATM42aは、トランザクション終了メッセージ(End_Transaction_Message)をユーザインタフェース41aに送信する(ステップS61a)。
ATM42aは、カード返却メッセージ(Return_card)をユーザインタフェース41aに送信する。ここまでが、メッセージ・シーケンス・チャート36aの有するシナリオである。
次に、第3の実施の形態のLSI20の設計仕様にラベルを付与する具体例を説明する。
図41、図42は、第3の実施の形態のLSIの設計仕様にラベルを付与する具体例を示す図である。
まず、LSI20の設計仕様を参照し、機能ブロック52に対応付けられている機能「残高照会」を選択する。
次に、選択した機能ブロック52からシナリオブロック52aに対応付けられているシナリオ「照会」を選択する。
次に、選択したシナリオ「照会」に含まれるメッセージ・シーケンス・チャート32aを選択する。
次に、選択したメッセージ・シーケンス・チャート32aにラベルを付与する。
前述したように、ラベルは、現在選択されている機能名および現在選択されているシナリオ名を付与する。またラベルは、機能名・シナリオ名:シナリオの種類の順に付与する。従って、図41に示す例では、ラベル521a1として「残高照会・照会:基本動作」を付与する。
図41は、ここまでの処理を示している。
以降、第2の実施の形態と同様に、メッセージ・シーケンス・チャートにラベルを付与する。
具体的には、選択したシナリオ「照会」に含まれるメッセージ・シーケンス・チャート33aを選択する。そして、選択したメッセージ・シーケンス・チャート33aに「残高照会・照会:基本動作」のラベルを付与する。
次に、選択したシナリオ「照会」に含まれるメッセージ・シーケンス・チャート34aを選択する。そして、選択したメッセージ・シーケンス・チャート34aに「残高照会・照会:基本動作」のラベルを付与する。
次に、選択したシナリオ「照会」に含まれるメッセージ・シーケンス・チャート35aを選択する。そして、選択したメッセージ・シーケンス・チャート35aに「残高照会・照会:基本動作」のラベルを付与する。
次に、選択したシナリオ「照会」に含まれるメッセージ・シーケンス・チャート36aを選択する。そして、選択したメッセージ・シーケンス・チャート36aに「残高照会・照会:基本動作」のラベルを付与する。
選択したシナリオ「照会」に含まれる各メッセージ・シーケンス・チャートについてラベルの付与が完了したので、次に、選択した機能ブロック52からシナリオブロック52bに対応付けられているシナリオ「認証失敗」を選択する。そして、選択したシナリオ「認証失敗」に含まれるメッセージ・シーケンス・チャートを順次、選択する。そして、選択したメッセージ・シーケンス・チャートにラベルを付与する。
図42は、ここまでの処理を示している。図42に示す例では、ラベル521a1に「残高照会・認証失敗:例外動作」が追加されている。なお、図42では、説明を分かりやすくするために、メッセージ・シーケンス・チャート33a、34a、35a、36aに付与されたラベルの図示を省略している。
選択したシナリオ「認証失敗」に含まれるメッセージ・シーケンス・チャートについて、ラベルの付与が完了すると、機能ブロック52が有する全てのシナリオブロック52a、52bについてラベルの付与が完了する。
従って、LSI20の設計仕様を参照し、機能ブロック53に対応付けられている機能「引き出し」を選択する。
そして、選択した機能ブロック53からシナリオブロック53aに対応付けられているシナリオ「認証失敗」を選択する。そして、選択したシナリオ「認証失敗」に含まれるメッセージ・シーケンス・チャートを順次、選択する。そして、選択したメッセージ・シーケンス・チャートにラベルを付与する。
選択したシナリオ「認証失敗」に含まれる全てのメッセージ・シーケンス・チャートについて、ラベルの付与が完了すると、次に、選択した機能ブロック53からシナリオブロック53bに対応付けられているシナリオ「引き出し成功」を選択する。そして、選択したシナリオ「引き出し成功」に含まれるメッセージ・シーケンス・チャートを順次、選択する。そして、選択したメッセージ・シーケンス・チャートにラベルを付与する。
選択したシナリオ「引き出し成功」に含まれる全てのメッセージ・シーケンス・チャートについて、ラベルの付与が完了すると、次に、選択した機能ブロック53からシナリオブロック53cに対応付けられているシナリオ「残高不足」を選択する。そして、選択したシナリオ「残高不足」に含まれるメッセージ・シーケンス・チャートを順次、選択する。そして、選択したメッセージ・シーケンス・チャートにラベルを付与する。
選択したシナリオ「残高不足」に含まれる全てのメッセージ・シーケンス・チャートについて、ラベルの付与が完了すると、機能ブロック53が有する全てのシナリオブロック53a、53b、53cについてラベルの付与が完了する。
従って、LSI20の設計仕様を参照する。他の機能が存在しないため、ラベル付与の処理を終了する。
図43は、ラベル付与が完了した状態の有向グラフを示す図である。
例えば、メッセージ・シーケンス・チャート32aは、シナリオ「照会」、シナリオ「照会認証失敗」、シナリオ「引き出し認証失敗」、シナリオ「引き出し成功」、シナリオ「残高不足」の全てのシナリオに含まれているため、これら全てのシナリオに関するラベルが付与されている。また、メッセージ・シーケンス・チャート35aは、シナリオ「照会」のみに含まれているシナリオであるため、シナリオ「照会」に関するラベルが付与されている。
図44は、ラベルを付与したLSIの設計仕様のデータ構造例を示す図である。
ラベルを付与したLSI20のデータ160は、XML形式で表現されている。
記述161は、メッセージ・シーケンス・チャート32aに関する記述部分を示している。また、記述162は、メッセージ・シーケンス・チャート33aに関する記述部分を示している。また、記述163は、メッセージ・シーケンス・チャート37aに関する記述部分を示している。
ここで、記述161a、162a、163aは、それぞれ、ラベル付与処理によって追記された行である。ラベル付与処理によって追記された行には、ラベル名であることを識別するXMLタグ<label name>が付されている。また、タグ内の内容は、それぞれ付与されたラベルの内容を示している。
次に、ステップS15aの具体例を説明する。
図45は、オブジェクト名をラベルに追加する具体例を示す図である。
まず、第2の実施の形態と同様の方法にて生成した有限ステートマシン90bのステート1つ1つに対し、対応するメッセージ・シーケンス・チャートのデータ・イベント・メッセージをラベルとして付与する。
図45では、メッセージ・シーケンス・チャート32aから有限ステートマシンのステートSt11、St12、St13、St14が生成されている。
ここで、メッセージ・シーケンス・チャート32aには、「残高照会・照会:基本動作」、「残高照会・認証失敗・例外動作」、「引き出し・引き出し成功:基本動作」、「引き出し・残高不足:代替動作」、「引き出し・認証失敗:例外動作」のラベルが付与されている。
従って、これらステートSt11、St12、St13、St14それぞれにも、「残高照会・照会:基本動作」、「残高照会・認証失敗・例外動作」、「引き出し・引き出し成功:基本動作」、「引き出し・残高不足:代替動作」、「引き出し・認証失敗:例外動作」のラベルを付与する。
さらに、ステートSt11、St12、St13、St14それぞれのラベルにメッセージ名とメッセージの送り手と受け手のオブジェクト名を追加する。
図45では、ステートSt11のラベルには、メッセージ名「Insert_Card」と、メッセージの送り手であるATM42aと、メッセージの受け手であるユーザI/F41aを追加する。
ステートSt12のラベルには、メッセージ名「Card_Inserted」と、メッセージの送り手であるユーザI/F41aと、メッセージの受け手であるATM42aを追加する。ステートSt13のラベルには、メッセージ名「PIN」と、メッセージの送り手であるユーザI/F41aと、メッセージの受け手であるATM42aを追加する。ステートSt14のラベルには、メッセージ名「V=PIN_Verify」と、メッセージの送り手であるATM42aと、メッセージの受け手であるデータベース43aを追加する。
以後、メッセージ・シーケンス・チャート33a〜39a、130a、131aについても同様の処理を行う。なお、既にメッセージ名と、メッセージの送り手と、メッセージの受け手がラベルに付与されている場合は、付与処理を省略するようにしてもよいし、上書きするようにしてもよい。
図46は、有限ステートマシンにラベルの付与が終了したときの状態を示す図である。
図46では、メッセージ・シーケンス・チャート33aからステートSt15、・・・が生成されている。
ここで、メッセージ・シーケンス・チャート33aには、「残高照会・照会:基本動作」、「引き出し・引き出し成功:基本動作」、「引き出し・残高不足:代替動作」のラベルが付与されている。
従って、これらステートSt15にも、「残高照会・照会:基本動作」、「引き出し・引き出し成功:基本動作」、「引き出し・残高不足:代替動作」のラベルが付与されている。
さらに、ステートSt15のラベルには、メッセージ名「OK」と、メッセージの送り手であるデータベース43aと、メッセージの受け手であるATM42aが追加されている。
また、メッセージ・シーケンス・チャート37aからステートSt16、St17、St18が生成されている。
ここで、メッセージ・シーケンス・チャート37aには、「残高照会・認証失敗:例外動作」、「引き出し・認証失敗:例外動作」のラベルが付与されている。
従って、これらステートSt16、St17、St18それぞれにも、「残高照会・認証失敗:例外動作」、「引き出し・認証失敗:例外動作」のラベルが付与されている。
さらに、ステートSt16のラベルには、メッセージ名「PIN」と、メッセージの送り手であるデータベース43aと、メッセージの受け手であるATM42aが追加されている。ステートSt17のラベルには、メッセージ名「Rejected」と、メッセージの送り手であるATM42aと、メッセージの受け手であるユーザI/F41aが追加されている。ステートSt18のラベルには、メッセージ名「Return_Card」と、メッセージの送り手であるATM42aと、メッセージの受け手であるユーザI/F41aが追加されている。
図47は、メッセージ名と送受信側のオブジェクト名をラベルに追加した状態の有限ステートマシンのデータ構造を示す図である。
有限ステートマシンのデータ120は、XML形式で表現されている。
記述120aは、有限ステートマシン90bの識別子に関する記述部分を示している。当該記述120aには、有限ステートマシンであることを識別する有限ステートマシンタグ<fsm name>が付されている。また、タグ内の内容は、それぞれ付与されたラベルの内容を示している。
また、記述121〜124は、それぞれ各ステートSt11〜St14に関する記述部分を示している。ステートSt15、・・・、St16〜St18に関する記述部分については、図示を省略している。
次に、図40に示すメッセージ・シーケンス・チャート40e、図43に示す有向グラフ30a、および、図46に示す有限ステートマシン90bを用いて検証用シナリオ抽出処理の具体例を説明する。
<検証用シナリオ抽出処理の具体例1>
最初に、入力されたカバレッジ基準が(message=”PIN_Error”)である場合を例に説明する。
まず、カバレッジ基準の要素(message=”PIN_Error”)を選択する。
そして、選択した要素(message=”PIN_Error”)を有限ステートマシン90bのステートに付与したラベルに含む検証用シナリオを抽出する。
図46を参照すると、ステートSt16に付与したラベルに「PIN_Error」が含まれている。従って、このラベルに含まれる「残高照会・認証失敗:例外動作」、「引き出し・認証失敗:例外動作」が付与されている検証用シナリオを検証用シナリオ格納部12から抽出する。
次に、未選択の要素が存在するか否かを判断すると、存在しない。また、入力されるカバレッジ基準の要素が1つだけである。従って、抽出された検証用シナリオを、カバレッジ基準を満たす検証用シナリオとして、出力部14に送る。これにより、出力部14が、抽出された検証用シナリオのシナリオ名として「残高照会・認証失敗:例外動作」および「引き出し・認証失敗:例外動作」を出力する。
<検証用シナリオ抽出処理の具体例2>
次に、入力されたカバレッジ基準が、(message=“Menu”)&&(scenariotype=“altscenario”)である場合を例に説明する。なお、「&&」は集合積を示している。また、(scenariotype=“altscenario”)は、代替動作を選択していることを示している。
まず、カバレッジ基準の要素(message=“Menu”)を選択する。
そして、選択した要素(message=“Menu”)を有限ステートマシン90bのステートに付与したラベルに含む検証用シナリオを検証用シナリオ格納部12から抽出する。
図40に示すメッセージ・シーケンス・チャート40eおよび図43に示す有向グラフ30aを参照すると、メッセージ・シーケンス・チャート34aの中にのみ要素(message=“Menu”)が含まれている。
従って、このメッセージ・シーケンス・チャート34aのラベルに含まれる「残高照会・照会:基本動作」、「引き出し・引き出し成功:基本動作」、「引き出し・残高不足:代替動作」が付与されている検証用シナリオを検証用シナリオ格納部12から抽出する。
次に、未選択の要素が存在するか否かを判断すると、未選択の要素(scenariotype=“altscenario”)が存在する。従って、カバレッジ基準の要素(scenariotype=“altscenario”)を選択する。
そして、選択した要素(scenariotype=“altscenario”)を有限ステートマシン90bのステートに付与したラベルに含む検証用シナリオを検証用シナリオ格納部12から抽出する。
代替動作を含むシナリオは、「引き出し・残高不足:代替動作」のみである。従って、「引き出し・残高不足:代替動作」をラベルに含む検証用シナリオを検証用シナリオ格納部12から抽出する。
次に、未選択の要素が存在するか否かを判断すると、存在しない。そこで、抽出した検証用シナリオの集合の集合積を行う。
図48は、抽出した検証用シナリオの集合積を行う様子を示す図である。
図48では、要素(message=“Menu”)に対応して抽出した検証用シナリオの集合500と、要素(scenariotype=“altscenario”)に対応して抽出した検証用シナリオの集合600を図示している。
なお、図48では、検証用シナリオを識別するために、付与されたラベルの機能名・シナリオ名:シナリオの種類を用いている。
これら2つに共通する検証用シナリオは、「引き出し・残高不足:代替動作」である。従って、共通する検証用シナリオ「引き出し・残高不足:代替動作」を、カバレッジ基準を満たす検証用シナリオ700として、出力部14に送る。これにより、出力部14が、この検証用シナリオ700のシナリオ名を出力する。
<検証用シナリオ抽出処理の具体例3>
次に、入力されたカバレッジ基準が、(message=“Menu”)&&(object=“ATM”)である場合を例に説明する。
まず、カバレッジ基準の要素(message=“Menu”)を選択する。
そして、選択した要素(message=“Menu”)を有限ステートマシン90bのステートに付与したラベルに含む検証用シナリオを検証用シナリオ格納部12から抽出する。
図40に示すメッセージ・シーケンス・チャート40eおよび図43に示す有向グラフ30aを参照すると、メッセージ・シーケンス・チャート34aの中にのみ要素(message=“Menu”)が含まれている。
従って、このメッセージ・シーケンス・チャート34aのラベルに含まれる「残高照会・照会:基本動作」、「引き出し・引き出し成功:基本動作」、「引き出し・残高不足:代替動作」が付与されている検証用シナリオを検証用シナリオ格納部12から抽出する。
次に、未選択の要素が存在するか否かを判断すると、未選択の要素(object=“ATM”)が存在する。従って、カバレッジ基準の要素(object=“ATM”)を選択する。
そして、選択した要素(object=“ATM”)を有限ステートマシン90bのステートに付与したラベルに含む検証用シナリオを検証用シナリオ格納部12から抽出する。
ここでは、「残高照会・照会:基本動作」、「残高照会・認証失敗:例外動作」、「引き出し・引き出し成功:基本動作」、「引き出し・残高不足:代替動作」、「引き出し・認証失敗:例外動作」をラベルに含む検証用シナリオを検証用シナリオ格納部12から抽出する。
次に、未選択の要素が存在するか否かを判断すると、存在しない。そこで、抽出した検証用シナリオの集合の集合積を行う。
図49は、抽出した検証用シナリオの集合積を行う様子を示す図である。
図49では、要素(message=“Menu”)に対応して抽出した検証用シナリオの集合501と、要素(object=“ATM”)に対応して抽出した検証用シナリオの集合601を図示している。
なお、図49では、検証用シナリオを識別するために、付与されたラベルの機能名・シナリオ名:シナリオの種類を用いている。
これら2つに共通するシナリオは、「残高照会・照会:基本動作」、「引き出し・引き出し成功:基本動作」、「引き出し・残高不足:代替動作」である。
従って、共通する検証用シナリオ「残高照会・照会:基本動作」、「引き出し・引き出し成功:基本動作」、「引き出し・残高不足:代替動作」を、カバレッジ基準を満たす検証用シナリオ701として、出力部14に送る。これにより、出力部14が、この検証用シナリオ701のシナリオ名を出力する。
この第3の実施の形態のシステムによれば、第2の実施の形態のシステムと同様の効果が得られる。
そして、第3の実施の形態のシステムによれば、さらに、設計・検証フェーズの中でカバレッジ基準を動的に変更することができる。
具体的には、カバレッジ基準の変更によって、変更したカバレッジ基準を満たす新たな検証用シナリオを容易に抽出することができる。
抽出された検証用シナリオを実行することにより、設計フェーズに応じた検証が可能となる。
また、既存の実装に着目したカバレッジ基準とは異なる視点(仕様のレベル)でカバレッジ基準を設定し、実装に着目したカバレッジ基準を用いた検証を補うことができる。従って、検証効率の向上を図ることができる。
なお、入力されるカバレッジ基準としては特に限定されないが、例えば以下に示す例が挙げられる。
(1)オブジェクトの仕様が変更されたときや、あるオブジェクトを集中的に検証したい場合は、変更されたオブジェクトを利用する全ての検証用シナリオを網羅するのが好ましい。従って、カバレッジ基準として「オブジェクト名」を入力するのが好ましい。
(2)データ・イベント・メッセージの実装の不具合を修正した後には、修正したデータ・イベント・メッセージが含まれる全ての検証用シナリオを網羅するのが好ましい。従って、カバレッジ基準として「データ・イベント・メッセージ名」を入力するのが好ましい。
(3)検証作業の初期段階では、基本動作が集中的に検証され、例外動作は集中的に検証されない場合がある。この場合、例外動作を含むシナリオを、設計期間の終盤に集中的に検証したい場合がある。この場合は、特定のオブジェクトを利用する例外動作を含む全ての検証用シナリオを網羅するのが好ましい。従って、カバレッジ基準として、「オブジェクト名」&&「代替動作」を入力するのが好ましい。
なお、設計検証装置10、10aが行った処理が、複数の装置によって分散処理されるようにしてもよい。例えば、1つの装置が、検証用シナリオ生成処理を行って検証用シナリオを生成しておき、他の装置が、その検証用シナリオを用いて優先順位付与処理を行うようにしてもよい。
以上、本発明の設計検証プログラム、設計検証方法および設計検証装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
また、本発明は、前述した各実施の形態のうちの、任意の2以上の構成(特徴)を組み合わせたものであってもよい。
例えば、第3の実施の形態にて生成した検証用シナリオを用いて、優先度を付与する処理を行うようにしてもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、設計検証装置10が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等が挙げられる。光ディスクとしては、例えば、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等が挙げられる。光磁気記録媒体としては、例えば、MO(Magneto-Optical disk)等が挙げられる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
設計検証プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上の第1〜第3の実施の形態に関し、さらに以下の付記を開示する。
(付記1) 設計対象の設計仕様が備える複数の処理手順が備える処理単位それぞれに前記設計仕様の検証対象部位を識別する識別情報を関連付けた検証用情報を生成する生成部と、
前記識別情報の入力に応じて、前記検証用情報に処理優先度を付与する処理優先度付与部と、
前記処理優先度が付与された前記検証用情報を識別する情報を、前記処理優先度を明示して出力する出力部と、
を有することを特徴とする設計検証装置。
(付記2) 前記生成部は、同じ前記識別情報を備える前記処理単位を抽出し、抽出した前記処理単位の集合をそれぞれ前記検証用情報とすることを特徴とする付記1記載の設計検証装置。
(付記3) 前記処理単位は、オブジェクト間で送受信される信号の関係を示すシーケンスを備えており、前記生成部は、前記シーケンスそれぞれに、前記識別情報を関連付けることを特徴とする付記1記載の設計検証装置。
(付記4) 前記生成部は、前記シーケンスに対応したステートマシンを生成し、生成した前記ステートマシンのステートそれぞれに当該ステートマシンの元となる前記シーケンスが備える前記識別情報を付与することを特徴とする付記3記載の設計検証装置。
(付記5) 前記識別情報は、前記検証対象部位を示す機能、前記処理手順、前記シーケンスのうちの少なくとも1つの情報を有しており、
前記生成部は、同じ前記識別情報を備える前記ステートマシンを抽出し、抽出した前記ステートマシンの部分を前記検証用情報とすることを特徴とする付記4記載の設計検証装置。
(付記6) 前記シーケンスの制約に基づいて、前記シーケンスそれぞれの処理に対応したステートの数を減らすことを特徴とする付記4記載の設計検証装置。
(付記7) 前記処理優先度付与部は、前記識別情報の入力に応じて、入力された前記識別情報により示される前記検証対象部位に関連する全ての前記検証用情報に同じ処理優先度を付与することを特徴とする付記1記載の設計検証装置。
(付記8) 前記処理優先度付与部は、複数の前記識別情報および前記識別情報により示される前記検証対象部位の処理優先度情報の入力に応じて、前記検証用情報に前記処理優先度情報に応じた前記処理優先度を付与することを特徴とする付記1記載の設計検証装置。
(付記9) 前記処理優先度付与部は、入力された前記識別情報の前記検証対象部位を優先的に処理する前記処理優先度を付与することを特徴とする付記7記載の設計検証装置。
(付記10) コンピュータが、
設計対象の設計仕様が備える複数の処理手順が備える処理単位それぞれに前記設計仕様の検証対象部位を識別する識別情報を関連付けた検証用情報を生成し、
前記識別情報の入力に応じて、前記検証用情報に処理優先度を付与し、
前記処理優先度が付与された前記検証用情報を識別する情報を、前記処理優先度を明示して出力する、
ことを特徴とする設計検証方法。
(付記11) コンピュータを、
設計対象の設計仕様が備える複数の処理手順が備える処理単位それぞれに前記設計仕様の検証対象部位を識別する識別情報を関連付けた検証用情報を生成する生成手段、
前記識別情報の入力に応じて、前記検証用情報に処理優先度を付与する処理優先度付与手段、
前記処理優先度が付与された前記検証用情報を識別する情報を、前記処理優先度を明示して出力する出力手段、
として機能させることを特徴とする設計検証プログラム。
(付記12) 設計対象の設計仕様が備える複数の処理手順が備える処理単位それぞれに前記設計仕様の検証対象部位をオブジェクト単位で識別する識別情報を関連付けた検証用情報を生成する生成部と、
外部からの入力に応じて前記生成部によって生成された前記検証用情報のうち、少なくとも1つの前記検証用情報を選択する選択部と、
前記選択部によって選択された前記検証用情報を識別する情報を出力する出力部と、
を有することを特徴とする設計検証装置。
(付記13) 前記識別情報は、オブジェクト間で送受信される信号を識別する信号名と前記オブジェクトを識別するオブジェクト名とを有し、
前記選択部は、オブジェクト名の前記入力に応じて、入力された前記オブジェクト名を含む前記識別情報が関連付けられた前記検証用情報を選択することを特徴とする付記12記載の設計検証装置。
(付記14) 前記選択部は、オブジェクト名の前記入力が論理式を含んでいる場合、前記論理式を満たす前記検証用情報を選択することを特徴とする付記13記載の設計検証装置。
(付記15) 前記生成部は、同じ前記識別情報を備える前記処理単位を抽出し、抽出した前記処理単位の集合をそれぞれ前記検証用情報とすることを特徴とする付記12記載の設計検証装置。
(付記16) 前記処理単位は、オブジェクト間で送受信される信号の関係を示すシーケンスを備えており、前記生成部は、前記シーケンスそれぞれに、前記識別情報を関連付けることを特徴とする付記12記載の設計検証装置。
(付記17) 前記生成部は、前記シーケンスに対応したステートマシンを生成し、生成した前記ステートマシンのステートそれぞれに当該ステートマシンの元となる前記シーケンスが備える前記識別情報を付与することを特徴とする付記16記載の設計検証装置。
(付記18) 前記識別情報は、前記検証対象部位を示す機能、前記処理手順、前記シーケンスのうちの少なくとも1つの情報を有しており、
前記生成部は、同じ前記識別情報を備える前記ステートマシンを抽出し、抽出した前記ステートマシンの部分を前記検証用情報とすることを特徴とする付記17記載の設計検証装置。
(付記19) 前記シーケンスの制約に基づいて、前記シーケンスそれぞれの処理に対応したステートの数を減らすことを特徴とする付記17記載の設計検証装置。
(付記20) コンピュータが、設計対象の設計仕様が備える複数の処理手順が備える処理単位それぞれに前記設計仕様の検証対象部位をオブジェクト単位で識別する識別情報を関連付けた検証用情報を生成し、
外部からの入力に応じて、生成された前記検証用情報のうち、少なくとも1つの前記検証用情報を選択する選択し、
選択された前記検証用情報を識別する情報を出力する、
ことを特徴とする設計検証方法。
(付記21) コンピュータを、
設計対象の設計仕様が備える複数の処理手順が備える処理単位それぞれに前記設計仕様の検証対象部位をオブジェクト単位で識別する識別情報を関連付けた検証用情報を生成する生成手段、
外部からの入力に応じて前記生成手段によって生成された前記検証用情報のうち、少なくとも1つの前記検証用情報を選択する選択手段、
前記選択手段によって選択された前記検証用情報を識別する情報を出力する出力手段、
として機能させることを特徴とする設計検証プログラム。
1、10、10a 設計検証装置
2 生成部
3 処理優先度付与部
4、14 出力部
5 設計仕様
5a、5b 機能
6 構造体
6a、6b 検証用情報
7 識別情報
8 出力結果
11、11a 検証用シナリオ生成部
12 検証用シナリオ格納部
13 優先順位付与部
14a 優先順位リスト
15 シナリオ抽出部
21、51、52、53 機能ブロック
21a、21b、51a、51b、52a、52b、53a、53b、53c シナリオブロック
30、30a 有向グラフ
31、31a 初期状態ブロック
32、33、32a〜39a、40、40a〜40e、70、130a、131a メッセージ・シーケンス・チャート(MSC)
34 hメッセージ・シーケンス・チャート(hMSC)
41、42、43 ハードウェア(HW)
41a ユーザインタフェース
42a ATM
43a データベース
44、45、46 オブジェクトライン
44a ユーザインタフェースライン
45a ATMライン
46a データベースライン
47、48 ボックス
50a、50b 処理手順
60、110、120、160 データ
61、62、63、61a〜63a、110a、111〜119、120a、121〜124、161〜163、161a〜163a 記述
71 送信オブジェクト
72 長距離送信オブジェクト
73 受信オブジェクト
74 長距離受信オブジェクト
80 状態マトリックス
81、82 領域
91、St1〜St8 ステート
90、92 状態図
90a、90b 有限ステートマシン
100 システム
200 信号インタフェース
211a、212a、321a、322a、511a、512a、511b、512b、521a〜530a MSCブロック
300 テスト対象装置
400 ネットワーク
500、501、600、601 集合
511a1、512a1、512b1、521a1 ラベル
700、701 Sc1、Sc2 検証用シナリオ
e1、e2、e3 イベント
m、m1〜m9 データ・イベント・メッセージ
r1〜r6、rj 受信イベント
t1〜t5、ti 送信イベント

Claims (5)

  1. コンピュータに、
    設計対象の設計仕様が備える複数の処理手順が備える処理単位それぞれに前記設計仕様の検証対象部位を識別する識別情報を関連付けた検証用情報を生成する生成手順、
    前記識別情報の入力に応じて、前記検証用情報に処理優先度を付与する処理優先度付与手順、
    前記処理優先度が付与された前記検証用情報を識別する情報を、前記処理優先度を明示して出力する出力手順、
    を実行させることを特徴とする設計検証プログラム。
  2. 前記生成手順では、同じ前記識別情報を備える前記処理単位を抽出し、抽出した前記処理単位の集合をそれぞれ前記検証用情報とすることを特徴とする請求項1記載の設計検証プログラム。
  3. 前記処理単位は、オブジェクト間で送受信される信号の関係を示すシーケンスを備えており、前記生成手順では、前記シーケンスそれぞれに、前記識別情報を関連付けることを特徴とする請求項1記載の設計検証プログラム。
  4. コンピュータが、
    設計対象の設計仕様が備える複数の処理手順が備える処理単位それぞれに前記設計仕様の検証対象部位を識別する識別情報を関連付けた検証用情報を生成し、
    前記識別情報の入力に応じて、前記検証用情報に処理優先度を付与し、
    前記処理優先度が付与された前記検証用情報を識別する情報を、前記処理優先度を明示して出力する、
    ことを特徴とする設計検証方法。
  5. 設計対象の設計仕様が備える複数の処理手順が備える処理単位それぞれに前記設計仕様の検証対象部位を識別する識別情報を関連付けた検証用情報を生成する生成部と、
    前記識別情報の入力に応じて、前記検証用情報に処理優先度を付与する処理優先度付与部と、
    前記処理優先度が付与された前記検証用情報を識別する情報を、前記処理優先度を明示して出力する出力部と、
    を有することを特徴とする設計検証装置。
JP2010109257A 2009-08-19 2010-05-11 設計検証プログラム、設計検証方法および設計検証装置 Pending JP2011044131A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US27213509P 2009-08-19 2009-08-19
US12/654,896 US20110046938A1 (en) 2009-08-19 2010-01-07 Verification apparatus and design verification program

Publications (1)

Publication Number Publication Date
JP2011044131A true JP2011044131A (ja) 2011-03-03

Family

ID=43606038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010109257A Pending JP2011044131A (ja) 2009-08-19 2010-05-11 設計検証プログラム、設計検証方法および設計検証装置

Country Status (2)

Country Link
US (1) US20110046938A1 (ja)
JP (1) JP2011044131A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015156076A (ja) * 2014-02-20 2015-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 生成装置、生成方法、及び、プログラム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5067317B2 (ja) * 2008-08-27 2012-11-07 富士通株式会社 検証支援プログラム、検証支援装置、および検証支援方法
US9721058B2 (en) * 2015-04-13 2017-08-01 Synopsys, Inc. System and method for reactive initialization based formal verification of electronic logic design
US9689467B2 (en) 2015-04-24 2017-06-27 Allison Transmission, Inc. Multi-speed transmission
US11336682B2 (en) * 2019-07-09 2022-05-17 Nice Ltd. System and method for generating and implementing a real-time multi-factor authentication policy across multiple channels

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62262144A (ja) * 1986-05-07 1987-11-14 Hironori Terada 図的言語処理方式
JPH0728862A (ja) * 1993-07-14 1995-01-31 Toshiba Corp 階層化状態遷移モデル
JPH07253905A (ja) * 1994-01-26 1995-10-03 Toshiba Corp テストケース作成装置及びテストケース作成方法
JPH1040316A (ja) * 1996-07-18 1998-02-13 Toshiba Corp 図式のテスト支援装置及びテスト支援方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4355525B2 (ja) * 2002-10-09 2009-11-04 富士通マイクロエレクトロニクス株式会社 検証支援方法、検証支援プログラムおよび検証支援装置
US7275231B2 (en) * 2004-09-15 2007-09-25 Fujitsu Limited High level validation of designs and products

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62262144A (ja) * 1986-05-07 1987-11-14 Hironori Terada 図的言語処理方式
JPH0728862A (ja) * 1993-07-14 1995-01-31 Toshiba Corp 階層化状態遷移モデル
JPH07253905A (ja) * 1994-01-26 1995-10-03 Toshiba Corp テストケース作成装置及びテストケース作成方法
JPH1040316A (ja) * 1996-07-18 1998-02-13 Toshiba Corp 図式のテスト支援装置及びテスト支援方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015156076A (ja) * 2014-02-20 2015-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 生成装置、生成方法、及び、プログラム
US10394676B2 (en) 2014-02-20 2019-08-27 International Business Machines Corporation Generation device, generation method, and program

Also Published As

Publication number Publication date
US20110046938A1 (en) 2011-02-24

Similar Documents

Publication Publication Date Title
JP5540887B2 (ja) 設計検証プログラム、設計検証方法および設計検証装置
JP4619245B2 (ja) 設計検証方法、装置、論理及びシステム
JP3912895B2 (ja) 構造化データ管理システム、構造化データ管理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び構造化データ管理方法
US7644370B2 (en) Method of componentisation of a graphically defined formula
CN100472434C (zh) 智能ui记录和重放结构
US9081924B2 (en) Method and apparatus for transaction recording and visualization
US20120266131A1 (en) Automatic program generation device, method, and computer program
JP2011044131A (ja) 設計検証プログラム、設計検証方法および設計検証装置
JP2011165166A (ja) 設計検証装置および設計検証プログラム
US7519947B2 (en) Orchestration designer
JP5026925B2 (ja) 制御プログラム作成装置および制御プログラム作成方法
CN1670715B (zh) 在公共语言运行时语言中的资源地址支持
US7949509B2 (en) Method and tool for generating simulation case for IC device
Bai et al. An approach to generate the thin-threads from the UML diagrams
KR100922526B1 (ko) 비즈니스 프로세스 수행시 메타데이터 규정을 통한 데이터품질관리 방법 및 시스템
JP6950437B2 (ja) 情報処理システム、情報処理装置及びプログラム
US8458110B2 (en) Verification support apparatus, verification support method, and computer product
JP2009075886A (ja) 仕様欠陥検証システム、その方法及びプログラム
JP2011238151A (ja) 画面プログラム生成装置
CN103729286A (zh) 用于嵌入式设备的自动化测试平台
JP5605087B2 (ja) 設計支援装置、設計支援方法および設計支援プログラム
JP2005222371A (ja) 論理回路の機能検証システムおよび方法
JP5799589B2 (ja) 検証方法及び検証プログラム
JP4988367B2 (ja) 約款に係る業務システム開発方法
JP5248762B2 (ja) 設計データ依存関係管理装置、設計データ依存関係管理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130403

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131212

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140114