JP4619245B2 - 設計検証方法、装置、論理及びシステム - Google Patents

設計検証方法、装置、論理及びシステム Download PDF

Info

Publication number
JP4619245B2
JP4619245B2 JP2005265755A JP2005265755A JP4619245B2 JP 4619245 B2 JP4619245 B2 JP 4619245B2 JP 2005265755 A JP2005265755 A JP 2005265755A JP 2005265755 A JP2005265755 A JP 2005265755A JP 4619245 B2 JP4619245 B2 JP 4619245B2
Authority
JP
Japan
Prior art keywords
message
scenario
granular
messages
design
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.)
Expired - Fee Related
Application number
JP2005265755A
Other languages
English (en)
Other versions
JP2006085710A (ja
Inventor
クマー マーシー パラヴェーン
ピー ラジャン スリーランガ
浩一郎 高山
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 JP2006085710A publication Critical patent/JP2006085710A/ja
Application granted granted Critical
Publication of JP4619245B2 publication Critical patent/JP4619245B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F19/00Complete banking systems; Coded card-freed arrangements adapted for dispensing or receiving monies or the like and posting such transactions to existing accounts, e.g. automatic teller machines
    • G07F19/20Automatic teller machines [ATMs]
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F19/00Complete banking systems; Coded card-freed arrangements adapted for dispensing or receiving monies or the like and posting such transactions to existing accounts, e.g. automatic teller machines
    • G07F19/20Automatic teller machines [ATMs]
    • G07F19/206Software aspects at ATMs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、一般に設計及び製品の検証に関し、より詳細には、ハイレベルの設計及び製品の検証に関する。
ハードウェア及びソフトウェア技術の進歩は、より複雑な設計の基礎を提供してきた。しかしながら、既知の設計テスト技術は、非効率かつ不完全なものである。例えば、現状では回路設計を評価する効率的かつ包括的技術は存在しない。
本発明の課題は、設計及び製品のハイレベルな検証を行うための技術が提供される。
上記課題を解決するため、本発明による技術は、強力な表現機能を有するメッセージ図を用いたハイレベルな抽象化における設計及び製品のテスト及び検証を可能にする。
本発明は、設計のハイレベルな検証のための方法であって、設計に関する入力を受信するステップと、前記入力に応答して、複数のプロセス間で通信されるメッセージの関係を記述するメッセージ図を生成するステップと、前記メッセージ図から該メッセージ図により特定されるメッセージのシーケンスからなる少なくとも1つのシナリオを決定するステップと、前記シナリオに従って前記メッセージ図により特定される前記メッセージの少なくとも一部を送受信するよう動作可能な状態マシーンを生成するステップと、前記状態マシーンを利用して前記設計の実現形態をテストするステップとから構成されることを特徴とする。
また本発明は、設計のハイレベルな検証のための装置であって、設計に関する入力を受信するよう動作可能なユーザインタフェースと、前記入力に応答して、複数のプロセス間で通信されるメッセージの関係を記述するメッセージ図を生成し、前記メッセージ図から該メッセージ図により特定されるメッセージのシーケンスからなる少なくとも1つのシナリオを決定し、前記シナリオに従って前記メッセージ図により特定される前記メッセージの少なくとも一部を送受信するよう動作可能な状態マシーンを生成し、前記状態マシーンを利用して前記設計の実現形態をテストするよう動作可能なコントローラとから構成されることを特徴とする。
また本発明は、設計のハイレベルな検証のための論理であって、当該論理は、メディアに符号化され、実行時に、設計に関する入力を受信するステップと、前記入力に応答して、複数のプロセス間で通信されるメッセージの関係を記述するメッセージ図を生成するステップと、前記メッセージ図から該メッセージ図により特定されるメッセージのシーケンスからなる少なくとも1つのシナリオを決定するステップと、前記シナリオに従って前記メッセージ図により特定される前記メッセージの少なくとも一部を送受信するよう動作可能な状態マシーンを生成するステップと、前記状態マシーンを利用して前記設計の実現形態をテストするステップとを動作可能であることを特徴とする。
さらに本発明は、設計のハイレベルな検証のためのシステムであって、設計に関する入力を受信する手段と、前記入力に応答して、複数のプロセス間で通信されるメッセージの関係を記述するメッセージ図を生成する手段と、前記メッセージ図から該メッセージ図により特定されるメッセージのシーケンスからなる少なくとも1つのシナリオを決定する手段と、前記シナリオに従って前記メッセージ図により特定される前記メッセージの少なくとも一部を送受信するよう動作可能な状態マシーンを生成する手段と、前記状態マシーンを利用して前記設計の実現形態をテストする手段とから構成されることを特徴とする。
本発明によると、設計及び製品の指定、テスト及び検証に利用されるツールが提供される。開発ツールは、設計者がハイレベルの抽象化における入出力プロトコルを指定することを可能にする。例えば、包括的でハイレベルな「ゴールデンモデル(golden model)」設計記述を提供するようメッセージ図が生成されるかもしれない。これらのメッセージ図は、設計及び/または製品のテストに利用される状態マシーンを生成するのに利用されてもよい。メッセージ図はまた、状態マシーン用いてテストされるシナリオを特定するのに利用されてもよい。ある実施例によると、状態マシーンは、記述言語により自動的に生成され、生成時にシミュレーションの準備がされていてもよい。さらに、状態マシーンは、仕様のすべての機能をテストすることが可能とされてもよい。ある実施例によると、上記技術は設計が規格に準拠することを確実なものとするかもしれない。さらに、設計のテスト及び検証に費やされる時間は、大きく低減されるかもしれない。
本発明の他の技術的効果は、以下の図面、説明及び請求項から当業者には容易に明らかとなるであろう。さらに、特定の効果が列挙される一方、各種実施例はこれら列挙された効果のすべてまたは一部を含むかもしれない。
図1は、検証装置12、信号インタフェース14及びテスト対象装置16から構成されるテストシステム10を示す。一般に、検証装置12は、ハイレベルの設計及び製品検証を提供する。より詳細には、検証装置12は、設計仕様書として機能するメッセージ図を生成するツールを有する。検証装置12はまた、設計の実現形態の動作を検証するため、メッセージ図に基づく状態マシーンを生成するためのツールを有する。従って特定の実施例によると、検証装置12は、テスト対象装置16がメッセージ図により示される設計仕様書に従って動作するか判断するため、テスト対象装置16と信号インタフェース14を介し通信する。
検証装置12は、ハイレベルの設計及び製品の検証を提供するよう動作可能なハードウェアとソフトウェアの任意の適切な組み合わせを表す。特定の実施例によると、検証装置12は、オペレーティングシステム及び1以上のアプリケーションプログラムを実行する汎用コンピュータであってもよい。他の実施例によると、検証装置12は、特殊設計された装置、複数接続された汎用コンピュータあるいは適切なハードウェアとソフトウェアの他の任意の適切な組み合わせであってもよい。
信号インタフェース14は、検証装置12とテスト対象装置16とを接続するための装置を表す。信号インタフェース14は、検証装置12により通信される信号をテスト対象装置16による利用に適した信号に変換するようにしてもよい。このため、信号インタフェース14は、ハードウェア及び/またはソフトウェアを有するようにしてもよい。ここで、テストシステム10の他の実施例では、信号インタフェース14を省略してもよい。例えば、検証装置12とテスト対象装置16が互換的な信号を使用する場合、信号インタフェース14を省略してもよい。
テスト対象装置16は、検証装置12によるテスト及び検証対象となるハードウェアコンポーネントまたはシステム及び/またはソフトウェアモジュールを表す。ある実施例によると、テスト対象装置16は、製品開発中に製造される設計プロトタイプである。他の実施例によると、テスト対象装置16は、検証装置12によって生成される状態マシーンである。
動作に関して、検証装置12は、ハイレベルの設計仕様及び設計要求のキャプチャをサポートする。例えば、形式的でない自然言語により典型的には記述される要求は、形式的な視覚的言語を用いて指定されてもよい。形式的な視覚的言語は、何れか適切なプログラミング言語または他のツールを用いて生成されてもよい。例えば、MSC(Message Sequence Chart)、UML(Unified Modeling Language)のシーケンス図モデル、ロンドンのインペリアルカレッジで開発されたLTSA(Labeled Transition System Analyzer)、あるいは他の何れか適切な視覚的モデリング言語またはツールなどの各種視覚的設計言語の何れかが利用または変更されてもよい。形式的な視覚的言語を利用して、ハイレベルの設計仕様が生成されてもよい。例えば、検証装置12が、設計の何れの部分がハードウェアにより製造され、何れの部分がソフトウェアにより製造されるかに関する決定がなされる前に、設計プロセスの初期の段階において設計仕様を記録するよう設計者によって利用されてもよい。
メッセージ図を用いて設計をキャプチャするのに開発ツールを設計者に利用可能にする検証装置12によって、ハイレベルの抽象化が実現されるようにしてもよい。ここで用いられる「メッセージ図」には、プロセス間のメッセージの通信の任意の図解的表現が含まれる。さらに、ここで用いられる「プロセス」とは、情報を通信することが可能なコンカレント処理を表す。従って、プロセスは、メッセージを通信可能な物理的または概念的に独立したエンティティと関連付けされてもよい。
ある実施例によると、メッセージ図は階層的に構成されてもよい。例えば、メッセージ図は、有向グラフ及び複数のグラニュラーメッセージ図(granular message diagram)を含むものであってもよい。この有向グラフは、設計のコンパクト表示を可能にするかもしれない。有向グラフは、複数のグラニュラーメッセージ図をグラニュラーメッセージ図間の関係を示すブランチ及びマージを有するフローチャートに構成するものであってもよい。この関係は、グラニュラーメッセージ図を1以上のシーケンスに順序付けするものであってもよい。他方、各グラニュラーメッセージ図は、プロセス間の関係を示すものであるかもしれない。グラニュラーメッセージ図は、プロセス間で通信されるメッセージを特定し、少なくとも一部のメッセージが通信される順序を示すものであってもよい。
ある実施例によると、設計は、複数のグラニュラーメッセージ図を含む単一の有向グラフによって表されてもよい。しかしながら他の実施例によると、設計は単一の平坦化されたメッセージ図によって表されてもよい。この平坦化されたメッセージ図は、プロセス間で通信されるメッセージの順序を示すものであってもよい。さらに、さらなる他の実施例によると、設計は、互いに埋め込まれた複数の有向グラフと複数のグラニュラーメッセージ図によって表されてもよい。
上述のように、有向グラフとグラニュラーメッセージ図を生成するのに開発ツールが利用されてもよい。ある実施例によると、この開発ツールは、設計者が有向グラフを生成するのを可能にするものであってもよい。例えば、設計者は形状を用いてグラニュラーメッセージ図を描くことによって有向グラフを生成するようにしてもよい。その後、設計者は矢印を用いて形状間を接続することによって、グラニュラーメッセージ図の間の関係を示すようにしてもよい。これらの矢印は、有向グラフを介した可能なパスを示すものであってもよい。さらに、設計者は有向グラフのグラニュラーメッセージ図をラベル付けするようにしてもよい。
設計者はまた、開発ツールを用いてグラニュラーメッセージ図を生成するようにしてもよい。グラニュラーメッセージ図には、プロセスとメッセージが含まれる。設計者は、各形状から延びたラインを有する形状を利用してプロセスを描くことによってグラニュラーメッセージ図を生成するようにしてもよい。このとき、設計者は、プロセス間で通信されるメッセージを示すのに矢印を利用してプロセス間の関係を示すようにしてもよい。例えば、あるプロセスラインと他のプロセスラインを接続するのに矢印が描かれてもよい。さらに、設計者によってプロセスとメッセージがラベル付けされてもよい。メッセージが通信される順序は、矢印の位置によって表されるようにしてもよい。
グラニュラーメッセージ図では、追加的な設計機能及び要求が示されてもよい。同時的なイベントが示されてもよい。例えば、あるプロセスによって送受信される2以上のメッセージが、同時に送受信されることが必要とされるかもしれない。ここで用いられる「同時的」とは、必ずしも「完全な同時性」を意味する必要はなく、「ある所定の期間内」を意味するものであってもよい。この期間は、時間量として規定されてもよい。例えば、この期間は密接に同期したハードウェアの動作を説明するのに用いられる極めて短い期間であってもよい。ある実施例によると、2以上のイベントが同時に発生することを示すため、グラニュラーメッセージ図においてイベント周辺にボックスが描かれてもよい。
他の先進的機能は、タイムアウトを表す機能に関するものである。タイムアウトは、実行の中断を要する。タイムアウトに関する期間は、ユーザによって予め決定または特定されていてもよい。ある実施例によると、タイムアウトが発生すべきであるということを示すため、ボックスがグラニュラーメッセージ図において描かれてもよい。ボックスのラベルは、タイムアウトに関する期間を示すものであってもよい。ここで、ある実施例によると、タイムアウトと同時的イベントが組み合わされるようにしてもよい。例えば、タイムアウト期間の完了により、メッセージが同時的に送受信されてもよい。
さらなる他の先進的な機能は、順序付けされていないメッセージの同期化に関するものである。ある実施例によると、関連しないメッセージ間の順序を生成するため、同期エッジがグラニュラーメッセージ図に含まれてもよい。この同期エッジは、通信されるメッセージを実際に表すものでなく、代わりに2つのプロセス間で通信される他のメッセージの順序を単に表すものであってもよい。ある実施例によると、2つの関連しないメッセージを同期化するため、第3のメッセージが同期エッジとして図示及びラベル付けされてもよい。この同期エッジは、第1メッセージと第2メッセージとの順序付けされた関係を生成するものであってもよい。これら2つの関係は、第1メッセージと第2メッセージとの間の関係を示すものであってもよい。
検証装置12を用いて、入出力動作の観察を通じて動作が検証可能なシステムをテストするようにしてもよい。例えば、環境とやりとりするように動作が規定される応答システムは、入出力動作を純粋に介して検証することができる。従って、メッセージ図におけるメッセージ交換を記述することによって、応答システムはメッセージを用いて検証されてもよい。メッセージ図が応答システムをモデル化する抽象レベルでは、メッセージを外部に送信する1以上の送信プロセスと、メッセージを外部から受信する1以上の受信プロセスとして動作を抽象化するようにしてもよい。同期メッセージは、信号順序付け制約を課すため、送信及び受信モジュール間で送信されてもよい。応答システムの例として、多数のタイプの通信プロトコルのプロトコル及び物理的レイヤ仕様があげられる。そのようなプロトコルの一部には、PCI−express、USB(Universal Serial Bus)、Firewire及び他の適切なプロトコル及び規格があげられる。
従ってある実施例によると、メッセージ図は設計の抽象的かつ形式的なゴールデンモデルとして扱われ、設計の機能的特徴をテストするのに利用されてもよい。例えば、検証装置12は、メッセージ図を用いて設計及び製品の検証に用いられるソフトウェアコードを生成するようにしてもよい。ソフトウェアコードは、メッセージ図に従ってテスト対象装置16とやりとりするための状態マシーンとして機能するようにしてもよい。テスト対象装置16がメッセージ図に従って状態マシーンとやりとりする場合、テスト対象装置16は、メッセージ図の基礎となる規格に準拠すると言われるかもしれない。テスト対象装置16が、メッセージ図に従って状態マシーンとよりとりするのに失敗すると、当該エラーは特定及び検討されるようにしてもよい。従ってある実施例によると、生成されたコードは設計の実現形態の動作をテスト及び検証するのに利用されるゴールデンモデル(golden model)として利用されてもよい。生成されたコードは、テスト対象装置16とやりとりするものであるため、ラベル付けされたインタラクタコードであってもよい。
インタラクタコードを生成するため、検証装置12のユーザは、送信プロセスの役割を実現するモジュールと、受信プロセスの役割を実現するもう1つのモジュールを特定するものであってもよい。ある実施例によると、これらの入力を用いて、検証装置12は、メッセージ図において指定されるシステムと通信するための外部として機能するインタラクタコードを生成するようにしてもよい。具体的には、何れかのシナリオに対して、インタラクタコードは送信プロセスによって送信されたすべてのメッセージを受信し、受信プロセスによって受信されたすべてのメッセージを送信するものであってもよい。このように、インタラクタコードは、システムからの適切な予想されないメッセージを解析することによって、システムの動作を検証することができる。ある実施例によると、インタラクタコードは、Verilogなどのハードウェア記述言語により生成されてもよい。さらに、インタラクタコードは、1以上のシナリオに従ってテスト対象装置16とやりとりする状態マシーンを生成するようにしてもよい。
ここで用いられる「シナリオ」とは、プロセス間で通信されるメッセージの順序及び組み合わせを表す。開発ツールは、メッセージ図を用いてシナリオを特定するかもしれない。例えば、有向グラフを介した各パスは、当該パスにおいてグラニュラーメッセージ図により特定されるメッセージから構成されるシナリオを表す。多数のグラニュラーメッセージ図を含むメッセージ図などの複雑なメッセージ図では、複数のシナリオが可能であるかもしれない。
設計をテストするのに利用されるシナリオを特定するのに、様々な方法が利用可能である。例えば、設計のテストは、有向グラフの各グラニュラーメッセージ図の特定及びテストが含まれてもよい。他の方法では、有向グラフに示される順序により2つのグラニュラーメッセージ図のすべての組み合わせを特定及びテストすることが求められるであろう。この方法は、それが有向グラフのすべてのエッジがテストされることを要求するため、エッジカバレッジと呼ばれるかもしれない。エッジカバレッジは、グラニュラーメッセージ図の各遷移のテストを可能にする。ある実施例によると、エッジカバレッジは、有向グラフの郵便配達員の経路を生成するための郵便配達員アルゴリズムの利用を伴う。設計をテストするさらなる他の方法は、有向グラフを介した可能なすべてのパスの特定及びテストを必要とするであろう。開発ツールは、上記方法の何れかに従って設計をテストするためのシナリオを特定することができるようにしてもよい。しかしながら、有向グラフのすべての可能なパスの特定及びテストは、当該有向グラフのサイズ及び詳細に応じて数千または数十万のシナリオを伴うことを要するかもしれない。従って、エッジカバレッジは、設計をテストするための有用かつ効率的な手段を提供する。
上記方法に加えて、開発ツールは他の方法を用いて他のシナリオを特定およびテストすることができるかもしれない。例えば、ユーザは開発ツールに有向グラフを介しパスをテストするよう指示してもよい。さらに、開発ツールは、テストのためユーザによって特定される2つのグラニュラーメッセージ図の間のすべてのシナリオを特定するようにしてもよい。
上述のインタラクタコードを利用して、状態マシーンは、検証装置12上で実行され、信号インタフェース14を介しテスト対象装置16とやりとりするようにしてもよい。仕様がメッセージ図において規定されているとき、当該仕様に従ってテスト対象装置16がメッセージを送受信するか判断するため、検証装置12とテスト対象装置16との間の信号インタフェース14を介しメッセージを通信するようにしてもよい。シナリオで特定されるメッセージシーケンスを用いて、1以上のテストが実行されてもよい。例えば、エッジカバレッジに従って生成されるシナリオが、テスト対象装置16をテストするのに利用されてもよい。
従って、テストシステム10は、設計の実施形態がテスト及び検証されることを可能にする。検証装置12は、設計のゴールデンモデルを表すメッセージ図を生成し、このメッセージに基づきインタラクタコードを生成し、当該メッセージ図に基づき1以上のシナリオを特定する。インタラクタコード及びシナリオを利用して、検証装置12は、テスト対象装置16がメッセージ図により規定される仕様に従っているか判断するため、信号インタフェース14を介しテスト対象装置16とやりとりする。
図2は、検証装置12の一例となる機能コンポーネントを示すブロック図である。図示された実施例では、検証装置12は、プロセッサ40、ユーザインタフェース42、ネットワークインタフェース44及びメモリ46を含む。これらの機能コンポーネントは、設計及び製品のハイレベルの検証を提供するよう動作可能である。
プロセッサ40は、情報の制御及び処理を実行することが可能な任意のハードウェア及び/または論理要素を表す。プロセッサ40は、検証装置12内の要素の動作及び管理を制御する。例えば、プロセッサ40は、ユーザインタフェース42、ネットワークインタフェース44及びメモリ46から受信した情報を処理するよう動作する。従って、プロセッサ40は、プログラマブル論理装置、コントローラ及び/または他の任意の適切な処理装置であってもよい。
ユーザインタフェース42は、検証装置12と情報を入出力するためのハードウェアを表す。例えば、ユーザインタフェースは、メッセージ図の開発に関する検証装置12のユーザからの入力を受け取るようにしてもよい。ユーザインタフェース42はまた、メッセージ図、インタラクタコード及び/またはシナリオに関する情報を検証装置のユーザに表示するようにしてもよい。従って、ユーザインタフェース42は、キーボード、マウス、ディスプレイ、及び/または情報を入出力するための他の適切な装置を含むものであってもよい。
ネットワークインタフェース44は、検証装置12に接続された装置から情報を受信及び通信するよう動作可能なハードウェア及び/またはソフトウェアを表す。例えば、ネットワークインタフェース44は、信号インタフェース14及び/またはテスト対象装置16と通信するものであってもよい。従って、ネットワークインタフェース44は、検証装置12に接続される要素と情報を通信する任意の適切なハードウェアまたは制御論理を含む。
メモリ46は、情報を格納するのに適した揮発性または不揮発性のローカルまたはリモート装置の組み合わせの何れかを表す。メモリ46は、プロセッサ40による処理及びユーザインタフェース42及び/またはネットワークインタフェース44を用いた通信のため、データ及び他の情報を永久的または一時的に格納する。例えば、メモリ46は、RAM(Random Access Memory)、ROM(Read Only Memory)、磁気記憶装置、光記憶装置、あるいは他の何れか適切な情報記憶装置、または上記装置の組み合わせを含むものであってもよい。図示されるように、メモリ46は、1以上のメモリモジュールを含むものであってもよい。
開発ツール48は、実行時に検証装置12のユーザとやりとりすることが可能な適切なソフトウェア、実行可能なファイル及び/または論理モジュールを含む。例えば、開発ツール48は、ユーザがメッセージ図を開発し、インタラクタコードを生成し、設計を検証するためのシナリオを特定することを可能にする。有向グラフデータベース50は、グラニュラーメッセージ図の間の関係を記述する有向グラフを格納する。グラニュラーメッセージ図データベース52は、プロセスとプロセス間で通信されるメッセージとの間の関係を記述するグラニュラーメッセージ図を格納する。インタラクタコードデータベース54は、有向グラフデータベース50に格納されている有向グラフとグラニュラーメッセージ図データベース52に格納されているグラニュラーメッセージ図とに基づき、検証装置12によって自動生成される設計を検証するのに用いられるインタラクタコードを格納する。シナリオデータベース56は、設計を検証するのにインタラクタコードによって用いられるシナリオを特定するファイルを格納する。解析モジュール58は、実行時に検証装置12とのやりとりにおいてテスト対象装置16の動作を解析することが可能なソフトウェア、実行可能なファイル及び/または適切な論理モジュールを含む。
動作に関して、検証装置12のユーザは、開発ツール48を用いて有向グラフデータベース50に格納される有向グラフと、グラニュラーメッセージ図データベース52に格納されるグラニュラーメッセージ図を生成する。ユーザは、プロセス及びメッセージのグラフィカル表示を特定及び生成するため、ユーザインタフェース42を介し入力を通信するようにしてもよい。さらに、ユーザは、開発ツール48によってサポートされている先進的機能を利用して、同時性制約、タイムアウト制約及び同期エッジを生成するようにしてもよい。従って、開発ツール48を利用して、ユーザは設計の仕様を生成するようにしてもよい。
さらに、ユーザは開発ツール48にインタラクタコードを生成し、それをインタラクタコードデータベース54に格納させるようにしてもよい。例えば、ユーザはインタラクタコードを生成するため、開発ツール48の選択肢を選択するようにしてもよい。ユーザは、受信プロセスと送信プロセスを特定するよう促されてもよい。その後、開発ツール48は、インタラクタコードを自動生成するようにしてもよい。ある実施例によると、インタラクタコードは、テスト対象装置16の動作を検証するようテスト対象装置16とやりとりする状態マシーンとして動作してもよい。インタラクタコードは、テスト対象装置16との間のメッセージの送受信を行う時点を判断するため、1以上のシナリオを利用してもよい。
ユーザは、有向グラフのグラニュラーメッセージ図の関係に基づき、シナリオデータベース56においてシナリオを開発ツール48に特定及び格納させるようにしてもよい。1以上のシナリオが様々な方法によりメッセージ図を解析することによって決定されてもよい。シナリオはまた、有向グラフのすべてのエッジを追跡することによって決定されてもよい。代わりに、または加えて、開発ツール48は、有向グラフのグラニュラーメッセージ図を示すユーザから受信した入力に基づき、シナリオを特定するようにしてもよい。例えば、有向パスを介し特定のパスを特定するユーザによってシナリオが生成されてもよい。シナリオはまた、有向グラフの2つのグラニュラーメッセージ図の間のすべてのパスを決定することに基づき特定されてもよい。さらに、2つのグラニュラーメッセージ図に含まれるメッセージのすべての可能な組み合わせを特定するため、2つのグラニュラーメッセージ図を構成することによって特定されてもよい。
解析モジュール58は、テスト対象装置16のパフォーマンスを解析するようにしてもよい。例えば、解析モジュール58は、予想されない時点にテスト対象装置16からメッセージが通信される時点を特定してもよい。解析モジュール58はまた、メッセージが期待されるときに、テスト対象装置16からメッセージが通信されない時点を特定してもよい。テスト対象装置16の機能を利用して、解析モジュール58は、テスト対象装置16が有向グラフとグラニュラーメッセージ図によって表される仕様に従うものであるか判断してもよい。
従って検証装置12の要素は、ハイレベルの抽象化において設計及び製品を検証するよう動作するようにしてもよい。ユーザは、開発ツール48とやりとりして、有向グラフとグラニュラーメッセージ図を生成するようにしてもよい。開発ツール48は、インタラクタコードを生成し、有向グラフとグラニュラーメッセージ図に基づきシナリオを特定してもよい。インタラクタコードは、ネットワークインタフェース44を介しテスト対象装置16とやりとりする状態マシーンとして動作するようにしてもよい。解析モジュール58は、テスト対象装置16が設計仕様に従っているか判断するためインタラクタコードとやりとりするとき、テスト対象装置16によって通信されるメッセージを解析してもよい。
本例は検証装置12の具体的機能コンポーネントを含んでいるが、検証装置12は、ハイレベルの抽象化において設計及び製品を検証するため、列挙された機能コンポーネントの一部またはすべてを含むコンポーネントの任意の集まり及び構成を含むものであってもよい。さらに、検証装置12は、ハードウェア及び/または論理の任意の適切な組み合わせ及び構成を用いて各機能コンポーネントを実現し、コンピュータ可読媒体に格納されているコンピュータプログラムを用いて何れかの機能を実現するよう構成される。さらに、検証装置12は、スタンドアローン装置として実現されてもよいし、あるいは検証装置12の特徴が各種装置に分散化されていてもよい。
図3Aは、有向グラフ60を示す。有向グラフ60は、ATMカード及びPIN(Personal Identification Number)を用いてATMの将来的なユーザを認証するATM(Automatic Teller Machine)の簡単化された記述を提供する。有向グラフ60は、将来的なユーザを認証するためATMによって実行される複数の機能の関係を記述する。これら機能は、形状によって表されるグラニュラーメッセージ図によって規定される。図示されるように、これらの形状はボックスであってもよい。ボックスを接続する矢印は、機能が実行される順序を記述する。
有向グラフ60は、各自がクエリボックス64、プロシード(proceed)ボックス66及びターミネート(terminate)ボックス68によって表される独立したグラニュラーメッセージ図によって規定される3つの機能を含む。開始ボックス62は、エントリポイントを有向グラフ60に提供する。従って、開始ボックス62とクエリボックス64の間の矢印は、クエリボックス64に関連するグラニュラーメッセージ図が有向グラフ60へのエントリ後に直面することを示す。クエリボックス64により表されるグラニュラーメッセージ図に規定されるメッセージの通信後、プロシードボックス66またはターミネートボックス68の何れかに実行が継続される。
従って、有向グラフ60は2つのシナリオを含む。1つのシナリオは、開始ボックス62、クエリボックス64及びプロシードボックス66を介し進行するパスに関する。この第1のシナリオは、将来的なユーザによって提供されるPINを受付けるATMと関連付けされてもよい。他のシナリオは、開始ボックス62、クエリボックス64及びターミネートボックス68を介しパスに進む。この第2のシナリオは、将来的なユーザによって提供されるPINを拒否するATMに関連付けされてもよい。従って、有向グラフ60は、これら2つのシナリオがクエリボックス64まで同じ動作を有するが、クエリボックス64は異なっていることを示す。この情報は、2つのシナリオの共通部分が設計に関する有向グラフ60を完全にテストするのに繰り返される必要はないため、検証及び検証目的に有用に利用されてもよい。
クエリボックス64における有向グラフ60のブランチは、非決定的なものであるかもしれないということに留意すべきである。言い換えると、有向グラフ60は、クエリボックス64の後にプロシードボックス66とターミネートボックス68の何れが選択されるべきか示すものでなくてもよい。しかしながら代わりに、より表現性の高いモデルが利用されてもよい。パスをアノテートし、実行中にどのパスが採用されるべきかより正確に記述するため、変数が利用されてもよい。例えば、決定的なモデル化を提供するため、グラニュラーメッセージ図の間の遷移に関連して、保護及び状態が利用されてもよい。
ここで、有向グラフ60のボックスによって表される各グラニュラーメッセージ図は、同一のプロセス群を利用してもよいということに留意すべきである。さらに、あるグラニュラーメッセージ図によって規定される各メッセージが、次のグラニュラーメッセージ図をパスに沿って実行可能となる前に実行される必要があるということを求めるルールが、有向グラフ60に関連して利用されてもよい。
図3Bは、クエリボックス64に関するグラニュラーメッセージ図を示す。グラニュラーメッセージ図は、複数のプロセス及びメッセージの表示を含む。これらのプロセスは、ユーザインタフェース70、ATMボックス72及びデータベースボックス74によって表される。各プロセスはまた、ユーザインタフェースライン76、ATMライン78及びデータベースライン80を含むプロセスラインを含む。プロセスラインを相互接続する水平矢印は、メッセージがプロセス間で通信されることを示す。
各メッセージは、送信プロセスと受信プロセスを関連付けする。プロセスラインとメッセージが交差する位置は、イベントと呼ばれるかもしれない。このとき、各メッセージは送信プロセスに関連する送信イベントと、受信プロセスに関連する受信イベントを含む。例えば、メッセージ「insert_card」は、ATMライン78とユーザインタフェースライン76を接続する。このため、メッセージ「insert_card」は、ATM及び送信プロセスとユーザインタフェース及び受信プロセスを関連付ける。さらに、メッセージ「insert_card」のATMプロセスライン78との交点は送信イベントを生成し、メッセージ「insert_card」とユーザインタフェースプロセスライン76との交点は受信イベントを生成する。
グラニュラーメッセージ図によって特定される関係をさらに理解するため、以下の2つのルールが理解されるべきである。
1.任意のメッセージmに対して、送信イベント(s(m))は、対応する受信イベント(r(m))の前に発生する。従って、s(m)<r(m)となる。
2.プロセスライン上のイベントは、上から下に順序付けされる。
これら2つのルールは、グラニュラーメッセージ図がプロセス間で通信されるメッセージの順序を記述することを示している。例えば、第1のルールを用いて、グラニュラーメッセージ図は、メッセージ「insert_card」に関する送信イベントが同じメッセージに関する受信イベントの前に発生するということを要求するようグラニュラーメッセージ図は理解される。第2のルールを用いて、グラニュラーメッセージ図は、メッセージ「insert_card」に関する送信イベントが、メッセージ「card_inserted」に関する受信イベントの前に発生するということを要求するよう理解される。
ここで、上記ルールは推移的であるということに留意されたい。例えば、イベントe1がイベントe2(e1<e2)の前に発生し、イベントe2がイベントe3(e2<e3)の前に発生する場合、イベントe1はイベントe3(e1<e3)の前に発生する。しかしながら、これら2つのルールは、すべてのメッセージの間の順序付けされた関係を規定するものではないかもしれない。例えば、4つのプロセスを含むが、2つのメッセージしか含まないグラニュラーメッセージ図を考える。第1メッセージが第1プロセスと第2プロセスとの間で通信され、第2メッセージが第3プロセスと第4プロセスとの間で通信される場合、これら2つのメッセージの間の順序付けされた関係はこれら2つのルールによっては規定されないであろう。この場合、2つのメッセージは任意の順序で発生するかもしれない。
上述の順序付けルールを利用して、示されたグラニュラーメッセージ図をメッセージがinsert_card、card_inserted、PIN及びPIN_verifyの順序で通信されることを要求するものとして解釈することができる。言い換えると、ATMはinsert_cardメッセージをユーザインタフェースに送信する。insert_cardメッセージの受信後、ユーザインタフェースは、card_insertedメッセージをATMと通信する。card_insertedメッセージの通信後、ユーザインタフェースはPINメッセージをATMと通信する。ATMボックス72がPINメッセージを受信した後、ATMはPIN_verifyメッセージをデータベースと通信する。ここに示される動作は、図示されたグラフに関して上述されたシナリオの両方に共通な動作である。
図3Cは、プロシードボックス66に関するグラニュラーメッセージ図を示す。このグラニュラーメッセージ図は、クエリボックス64に関するグラニュラーメッセージ図において用いられるのと同一のプロセスの表示であるユーザインタフェースボックス70、ATMボックス及びデータベースボックス74を含む。
上述の順序付けルールを利用して、グラニュラーメッセージ図をメッセージがOK及びmenuの順序で通信されることを要求するものとして解釈することができる。言い換えると、データベースは、OKメッセージをATMと通信する。ATMがOKメッセージを受信した後、ATMはメッセージメニューをユーザインタフェースと通信する。
図3Dは、ターミネートボックス68に関するグラニュラーメッセージ図を示す。このグラニュラーメッセージ図は、クエリボックス64に関連するグラニュラーメッセージ図で用いられるのと同一のプロセスの表示であるユーザインタフェースボックス70、ATMボックス72及びデータベースボックス74を含む。
上述の順序付けルールを利用して、グラニュラーメッセージ図をメッセージがnot_OK及びrejectedの順序で通信される必要があるものとして解釈することができる。言い換えると、データベースは、not_OKメッセージをATMと通信する。ATMがnot_OKメッセージを受信した後、ATMはrejectedメッセージをユーザインタフェースと通信する。
図4Aは、有向グラフの確立、シナリオの特定及びインタラクタコードの生成を行うための環境を示す。ウィンドウ100は、開発ツール48によって生成されてもよい。ウィンドウ100は、キャンバス102と共に複数のボタン及びメニューを有する。キャンバス102は、ユーザが有向グラフを構成するための領域を提供する。ボタン120及び122を含むウィンドウ100の各種機能は、有向グラフの構成に関する情報を入力するため、ユーザによって操作されてもよい。さらに、ボタン124、126、128及び130は、有向グラフによって規定されるシナリオを開発ツール48に特定させるようにユーザによって操作されてもよい。さらに、メニューオプション134は、インタラクタコードを生成するための選好を指定するのにユーザによって操作されてもよい。
キャンバス102において、ユーザは有向グラフを生成するかもしれない。ここで、図示されるようなボックス104は、有向グラフへのエントリポイントを特定するのに利用される開始ボックスである。ボックス104は、開発ツール48によって自動的に生成され、各有向グラフのキャンバス102に表示される。図示されるように、キャンバス102は、ボックス106、108、110、112、114及び116により示されるグラニュラーメッセージ図の複数の表示を含む。グラニュラーメッセージ図のこれらの表示を生成するため、ユーザはボタン120を選択するようにしてもよい。ある実施例によると、ボタン120の選択は、ダイアログウィンドウにユーザによる生成されるグラニュラーメッセージ図の名前を促すものであってもよい。
ボックス106が生成された後、ボックス106はボックス104と接続されてもよい。例えば、ユーザはボタン122を選択してもよい。ボタン122を選択した後、ユーザはボックス104を、その後にボックス106をそれぞれ選択するようにしてもよい。この順序でこれら2つのボックスを選択した後、ボックス104からボックス106に矢印が描かれてもよい。矢印118を描くことによって、ユーザはボックス106の実行前に少なくとも1つのシナリオがボックス104の実行に関係していることを示す。同様の手続を利用して、キャンバス102に示される有向グラフなどの複雑な有向グラフが生成されてもよい。ここで、キャンバス102は、すべてのボックスがグラニュラーメッセージ図を表し、トップレベルのみが有向グラフとなる階層の1つのレベルを示している。しかしながら、平坦化されたメッセージ図を含む他の様々なタイプのメッセージ図が生成されてもよい。
グラニュラーメッセージ図を表すボックスの生成後、開発ツール48はユーザにプロセス及び/またはグラニュラーメッセージ図に関するメッセージを規定するよう促すようにしてもよい。プロセス及びメッセージを規定するため、ユーザは編集のためキャンバス102に示されるグラニュラーメッセージ図の1つを選択するようにしてもよい。例えば、ユーザはキャンバス102のボックス106をダブルクリックするようにしてもよい。グラニュラーメッセージ図の構成に関するさらなる詳細が、以下において与えられる。
有向グラフが生成された後、ウィンドウ100を用いてシナリオを特定し、特定されたシナリオに基づきインタラクタコードを生成するようにしてもよい。様々な方法を利用して、シナリオを特定し、ウィンドウ100を用いてインタラクタコードを生成するようにしてもよい。例えば、ユーザはボタン124を選択し、有向グラフを介したパスの識別を含むファイルを特定する。このファイルは、グラニュラーメッセージ図に関するボックスを特定するものであってもよい。開発ツール48は、当該ファイルを読み込み、示されたシナリオが有効であることを検証するようにしてもよい。シナリオが有効であると検証された後、開発ツール48は、当該シナリオに基づきインタラクタコードを生成するようにしてもよい。上述のように、開発ツール48は、テスト対象装置16のテストにおいて検証装置12によって利用されるインタラクタコードを生成するようにしてもよい。
他の例として、ユーザはボタン126を選択し、ユーザによる有向グラフを介したパスの特定を可能にするようにしてもよい。ある実施例によると、ボタン126及び/またはボタン128の選択は、開発ツール48に有向グラフの2つのボックス間のすべての可能なパスを特定させるかもしれない。開発ツール48は、これら特定されたシナリオに基づきインタラクタコードを生成するようにしてもよい。
開発ツール48によって、シナリオが特定されてもよい。例えば、ユーザはボタン128を選択し、開発ツール48に有向グラフを介し最適な経路を特定させるようにしてもよい。ある実施例によると、有向グラフを介した最適経路は有向グラフのエッジカバレッジを伴うものであってもよい。上述のように、エッジカバレッジは、有向グラフの郵便配達員の経路を特定する郵便配達員アルゴリズムの利用を伴うものであってもよい。郵便配達員の経路は、有向グラフの各エッジを少なくとも1回はカバーする。1つのシナリオが、郵便配達員の経路の要求を満足するものとして特定されるかもしれない。しかしながら、強連結有向グラフは長いシナリオを生成するであろうということに留意されたい。従って、郵便配達員の経路が特に複雑な有向グラフに対し長いものであるかもしれないので、開発ツール48は郵便配達員シナリオがいくつかの構成単位に「切断」または分割されることを許容するかもしれない。例えば、郵便配達員シナリオは、パスにおいて再出現するグラニュラーメッセージ図に従って切断されてもよい。代わりに、または加えて、郵便配達員シナリオは、少なくとも最小数または最大数以下のグラニュラーメッセージ図が各構成要素シナリオにおいて特定されることを要求する制約を有する複数のシナリオに切断されてもよい。
郵便配達員アルゴリズムを図4Aに示される有向グラフに適用することにより、以下のシナリオが特定されるかもしれない。
Figure 0004619245
他のシナリオもまた各エッジを少なくとも1度は訪れるかもしれないが、このシナリオは各エッジが少なくとも1度訪問されるという要求を満足する最短シナリオである。ユーザが1つの長いシナリオを利用することを所望しない場合、このシナリオはいくつかのセクションに分割されてもよい。シナリオを分割する1つの論理的方法は、再出現するグラニュラーメッセージ図に関するシナリオを切断することである。例えば、V2はこの長いシナリオを4つの構成要素シナリオに切断するのに利用されるかもしれない。
Figure 0004619245
より長い構成要素シナリオを生成するため、ユーザは切断処理がV2を用いて実行されると共に、各シナリオが少なくとも5つのグラニュラーメッセージ図を含むことを要求することができる。これらの制約を用いて、以下の2つの構成要素シナリオが特定されるかもしれない。
Figure 0004619245
これらの方法を利用して生成されたシナリオはまた、インタラクタコードを生成するのに利用されてもよい。
シナリオを特定し、インタラクタコードを生成する他の方法は、ボタン130を選択するウィンドウ100のユーザに関するものである。ボタン130の選択により、開発ツール48は有向グラフのすべての可能なシナリオに対しインタラクタコードを特定及び生成するかもしれない。
シナリオの特定に加えて、開発ツール48は、シナリオ干渉と呼ばれるものを実行するようにしてもよい。ここで、メッセージとグラニュラーメッセージ図は、上記特定された2つのルールからの演繹に基づき部分的に順序付けされた関係を有するということに留意されたい。これらのルールに従って順序付けされていないメッセージは、一実現形態において任意の順序で発生するかもしれない。例えば、2つのグラニュラーメッセージ図に含まれるメッセージのすべての可能な順序を特定するため、ユーザはこれら2つのグラニュラーメッセージ図に関する2つのボックスとボタン132を選択するようにしてもよい。これに応答して、開発ツール48は、2つの開始されたグラニュラーメッセージ図のメッセージ間のすべての可能な順序付けされた関係を生成し、複数の新しいグラニュラーメッセージ図を生成するようにしてもよい。新しい各グラニュラーメッセージ図は、メッセージの可能な組み合わせを示すものであってもよい。設計者は、何れか可能な組み合わせが設計の実行に関する問題を生成するか判断するため、生成されたグラニュラーメッセージ図を解析するようにしてもよい。
これにより、ウィンドウ100が開発ツール48のユーザによって利用され、有向グラフを構成し、この有向グラフによって規定されるシナリオを特定し、これらのシナリオの少なくとも1つの基づきインタラクタコードを生成し、シナリオ干渉を実行するようにしてもよい。
図4Bは、設計及び製品の検証において用いられるインタラクタコードの生成に対する選好を指定するためのウィンドウを示す。ウィンドウ140は、送信プロセスを特定する領域142と、受信プロセスを特定する領域144とを含む。ある有向グラフが与えられると、開発ツール48は有向グラフに指定されるシステムと通信する外部として機能するため、インタラクタコードを生成する。具体的には、何れかのシナリオに対して、インタラクタコードに従って動作する状態マシーンは、領域142において特定されるプロセスによって送信されるすべてのメッセージを受信し、領域144において特定されるプロセスによって受信されるすべてのメッセージを送信する。このように、状態マシーンは、テスト対象装置16に対してメッセージを送受信することによって、テスト対象装置16の動作を検証するかもしれない。テスト対象装置16がシナリオによって特定されるグラニュラーメッセージ図に従ってメッセージを送信しない場合、エラーが生成及び平坦化されるかもしれない。解析モジュール58は、テスト対象装置16に不具合が存在するか判断するためエラーを解析してもよい。
ウィンドウ140は、ユーザがグラニュラーメッセージ図を特定するための領域146と、ユーザが切断長を特定するための領域148を含む。これらの入力は、シナリオを特定するとき、開発ツール48によって利用されてもよい。上述のように、長いシナリオは領域146と148への入力に従って構成要素部分に切断または分割されてもよい。開発ツール48は、領域146において特定されたノードにおいて長いシナリオを分けるかもしれない。さらに、切断リンクは構成要素シナリオの最小長を決定する領域148において特定されてもよい。
インタラクタコードの生成に関するファイルのディレクトリは、領域150と152を用いて特定されてもよい。例えば、領域150で指定されるディレクトリは、シナリオを特定するファイルを含むものであってもよい。さらに、インタラクタコードが格納されるディレクトリが、領域152において示されてもよい。
ユーザがウィンドウ140の適切な領域を記入すると、ユーザはボタン126を用いて選好を格納することを所望することを表示するようにしてもよい。ボタン128は、選好の格納を取消すのに利用されてもよい。
図4Cは、グラニュラーメッセージ図を確立するための環境を示す。ウィンドウ160は、開発ツール48によって生成されてもよい。ウィンドウ160は、キャンバス162と共に複数のボタン及びメニューを含む。キャンバス162は、ユーザがグラニュラーメッセージ図を構成するための領域を提供する。ボタン172、174、176、178及び184を含むウィンドウ160の各種機能が、グラニュラーメッセージ図の構成に関する情報をユーザが入力するのに操作されてもよい。
キャンバス162では、ユーザは、グラニュラーメッセージ図を描くことが可能である。送信プロセス164、長距離受信プロセス166、受信プロセス168または長距離送信プロセス170などのプロセスを生成するため、ユーザはボタン172を選択するようにしてもよい。ボタン172の選択後、ダイアログボックスはユーザにプロセスの表示を生成する前に生成されるプロセスのラベルを要求するかもしれない。このため、キャンバス124に示されるプロセスを生成するため、ユーザはボタン172を4回選択し、示された名前により各プロセスを入力するようにしてもよい。開発ツール48は、これらプロセスのグラフィカル表示を生成するようにしてもよい。図示されるように、一実施例はプロセス形状及び垂直プロセスラインを含む。しかしながら、各種表示を利用することが可能である。
ここで、何れか1つのグラニュラーメッセージ図にプロセスを含めることは、同じ有向グラフに含まれる他のグラニュラーメッセージ図において同一のプロセスを生成するかもしれないということに留意されたい。従って、これらのプロセスは、同一の有向グラフのグラニュラーメッセージ図に対し1度のみしか生成されなくてもよい。
これらのプロセスが生成された後、メッセージはプロセス間で通信されるものとして示されるかもしれない。メッセージの表示を描画するため、ユーザはボタン174を選択してもよい。ダイアログボックスは、図示されるメッセージの名前を受付け、ユーザは当該メッセージがどのプロセス間で通信されるか指定することが可能とされてもよい。例えば、ユーザは1つのプロセスを選択し、その後にポインティングツールを用いて第2のプロセスを選択するかもしれない。開発ツール48は、送信イベントを有する第1プロセスと受信イベントを有する第2プロセスからなる示された2つのプロセスの間においてメッセージを生成するようにしてもよい。これにより、同様の技術を利用することにより、ms1〜ms10の矢印が、グラニュラーメッセージ図に示されるプロセス間で通信されるms1〜ms10の10個のメッセージを表すよう生成されてもよい。
ここで、ボタン176はプロセスまたはメッセージを削除するのに利用されてもよい。例えば、ユーザは、メッセージの表示を選択し、選択されたメッセージを削除するのにボタン176を押下するかもしれない。同様に、ユーザはプロセスの表示を選択し、その後でボタン176を選択して選択したプロセスを削除するようにしてもよい。
上述のように、グラニュラーメッセージ図は、先進的な機能を有するようにしてもよい。例えば、ボタン178を用いることにより生成されるグラニュラーメッセージ図に制約が追加されてもよい。ある実施例によると、イベントをグループ化するためボックスがプロセスライン上に示されてもよい。あるボックスに含まれるイベントは、当該イベントが同時に発生すべきであると示すかもしれない。従って、ボタン178の選択後、ユーザはイベントを包囲するボックスを描画し、このボックスがこれらのイベントを同時イベントにグループ化することを示すため、当該ボックスを「simul」とラベル付けするようにしてもよい。図示されるように、同時性制約180は、図示されたグラニュラーメッセージ図に含まれていた。同時性制約180aは、メッセージms3とms4に関する送信イベントをグループ化し、同時性制約180bは、メッセージms8とms9に関する受信イベントをグループ化する。
ボタン178はまた、タイムアウトを生成するのに利用されてもよい。実行がタイムアウト制約に直面すると、示されたタイムアウト期間が経過するまで実行が停止されてもよい。時限実行モデルでは、タイムアウト期間が経過して始めて実行が継続する。非時限実行モデルでは、タイムアウト制約は機能を示さない。タイムアウトを特定するため、制約の名前に対して整数が与えられるという点を除いて、ユーザは同時性制約を与えるのと同様のステップに従うかもしれない。この整数はタイムアウト値を表すであろう。ある実施例によると、ボックスがプロセスライン上に描画され、タイムアウトを示す数値によりラベル付けされるかもしれない。従ってボタン178を選択した後、ユーザはイベントを包囲するボックス、またはプロセスライン上のボックスを描き、当該ボックスにタイムアウトイベントの発生を示す数値によりラベル付けするようにしてもよい。図示されるように、タイムアウト制約182は、図示されたグラニュラーメッセージ図に含まれた。タイムアウト制約182aが長さ20のタイムアウトを示す一方、タイムアウト制約182bは長さ6のタイムアウトを示す。ここで、ユーザはタイムアウト制約182により利用される値と関連付けするための時間単位を指定するようにしてもよい。
タイムアウト制約と同時性制約が、タイムアウト制約に対するメッセージを生成することにより合成されてもよい。タイムアウトボックスのメッセージイベントが、タイムアウト期間の完了により同時発生する。例えば、タイムアウト制約182bは、受信プロセス168の受信イベントと一致する。従って、メッセージms7は、タイムアウト制約182bのラベルに指定された長さ6のタイムアウトの経過後まで受信プロセス168によって受信されないであろう。
ここで、制約ボックスを削除するため、ユーザは削除対象の制約ボックスを選択し、削除制約184を選択するようにしてもよい。このプロセスは、タイムアウト制約と同時性制約の両方に対して利用されてもよい。
イベントが共通のプロセスまたは共通のプロセスに関する遷移的な関係を介したプロセスを有するとき、順序付けされた関係を受信する。例えば、送信モジュールと受信モジュールがメッセージを通信しないが、グラニュラーメッセージ図によって規定される通信動作のすべてが外部とのものであるグラニュラーメッセージ図を考える。この場合、グラニュラーメッセージ図は、入力メッセージが出力メッセージとコンカレントであり、順序付けされた関係が設計によって課されないことを示す。
メッセージの順序を特定するため、同期エッジが利用されてもよい。同期エッジの表示は、名前「synch」が同期エッジに利用可能であるというという点を除いて、メッセージと同様に描かれてもよい。「synch」とラベル付けされたメッセージを利用して、推移的演繹を介し順序付けされた関係を確立してもよい。例えば、受信プロセス168に関する送信イベントと、送信プロセス164に関する受信イベントを含む同期エッジ186を考える。同期メッセージ186は、受信プロセス168がメッセージms6を受信した後に送信されるものとして示される。同期メッセージ186はまた、メッセージms3とms4が送信されるまでに送信プロセス164により受信されるものとして示される。従って推移的演繹を利用して、グラニュラーメッセージ図によると、プロセス168におけるメッセージms6の受信は、プロセス164におけるメッセージms3とms4の送信前に発生する必要がある。ここで、同期エッジは関連性のないプロセス間の関係を生成するようにしてもよい。しかしながら、ある実施例によると、同期エッジによって関連するプロセス間において実際にメッセージは通信されないかもしれない。同期メッセージ186は、メッセージms5とms6と比較して、メッセージms1とms2との間の順序を生成するものではない。しかしながら、同期メッセージ186は、メッセージms5とms6に関する受信イベントの後にメッセージms3とms4に関する送信イベントを発生させる。同期メッセージ186はまた、メッセージms7とms2との間の順序付けされた関係を実行するものでない。これらのメッセージの間の順序付けされた関係を実行するため、同期エッジ186は、プロセス164からプロセス168に指示されるべきである。
従って、ウィンドウ100のグラニュラーメッセージ図は、同時性制約180、タイムアウト制約182及び同期エッジ186の3つの先進的機能を含む。
図5Aは、グラニュラーメッセージ図200を示す。グラニュラーメッセージ図200を用いて、インタラクタコードを生成する一方法を示す。有向グラフをインタラクタコードに変換するため、有向グラフの各グラニュラーメッセージ図によって規定されるイベントを用いて、有限状態マシーンの状態を特定するようにしてもよい。グラニュラーメッセージ図は可能なイベント順序を規定し、各プロセスにおいて完了されたイベントは状態に対応する。例えば、初期状態は何れのプロセスにおいても完了されないイベントに対応する。最終状態は、各プロセスにおいて完了したすべてのイベントに対応する。
ここで、グラニュラーメッセージ図200を検討すると、グラニュラーメッセージ図200の一部がプロセスの一部のイベント群を考慮することによって有限状態マシーンに投影される。例えば、グラニュラーメッセージ図200では、有限状態マシーンが送信プロセス202と受信プロセス204に対して生成されてもよい。図示されるように、送信プロセス202はイベントs1〜s5を有し、受信プロセス204は、イベントr1〜r6を有する。ここで、送信プロセス202と受信プロセス204は、メッセージを交換することなく、2つの同期エッジによって関連付けされる。
図5Bは、グラニュラーメッセージ図200に関連する状態マトリックス220を示す。状態マトリックス220を利用して、インタラクタコードの生成方法をさらに説明する。2つのみしかプロセスがない場合、グラニュラーメッセージ図200の状態マシーンは、2次元の状態マトリックスとして可視化することができる。状態マトリックス220の各ボックスは、送信プロセス202がイベントsを終了させ、受信プロセス204がイベントrを終了させた状態に対応している。このため、状態マトリックス220の各ボックスは、状態(s,r)を規定する。ここで、状態マトリックス220の原点は、初期状態が記号⊥を用いて各プロセスに対して示される左上隅である。状態マトリックス220の左上隅が初期状態であるため、状態遷移は各状態から右下にトレースすることによって特定されるかもしれない。最終状態は、右下隅となるであろう。
送信プロセス202と受信プロセス204が2つの同期エッジによっては関連付けされていない場合、状態マトリックス220は、n×mの完全な2次元の状態マトリックスとなるであろう(ただし、nは送信プロセス202により送信されるメッセージの個数であり、mは受信プロセス204によって受信されるメッセージの個数である)。しかしながら、グラニュラーメッセージ図200の同期エッジの存在は、状態マトリックス220に示されるような有効な状態の個数を減少させる。同期エッジにより、状態マトリックス220に示される一部の状態は有効とはならず、2次元マトリックスから「クロスアウト(cross out)」させることが可能である。例えば、イベントs3が送信プロセス202から受信プロセス204への同期エッジに対応する送信イベントであると仮定する。イベントr3は、同一の同期エッジに関連する対応する受信イベントである。受信イベントr2の後に発生する受信プロセス204における何れのイベントも、イベントs3の後に発生する必要がある。従って、イベントr3〜r6はイベントs3の前に発生することはできない。このプロセスを利用して、無効状態に対応する状態マトリックス220の領域222は、クロスアウトされるかもしれない。同様のプロセスを用いて、グラニュラーメッセージ図200の第2同期エッジに関連する領域224をクロスアウトしてもよい。残りのマトリックスは、グラニュラーメッセージ図200を正確に表す。sやrなどの状態は、送信プロセス202が送信イベントsを終了させ、受信プロセス204が受信イベントrを終了させた状態を表す。
図5Cは、状態マトリックス220に関する状態図240を示す。しかしながら、同期イベントは、実際の動作イベントの部分的順序付けを外部または他の装置により限定するのに利用されているだけであるため、状態図240から削除されてもよい。同期イベントを削除することにより、図5Dに示される簡単化された状態図260が得られる。
有限状態マシーンを実現するため、インタラクタコードがVerilogなどの言語により生成されてもよい。インタラクタコードを生成するため、送信プロセス202と受信プロセス204の役割が逆転されてもよい。言い換えると、当該動作がメッセージの受け取りを求める場合、インタラクタコードはメッセージを送信すべきである。当該動作がメッセージの送信を求める場合、インタラクタコードはメッセージを待機するべきである。簡単化された状態図260の各水平遷移は、メッセージの受信に対応し、このためインタラクタコードによるメッセージの送信として実現される。同様に、簡単化された状態図260の各垂直遷移は、メッセージの送信に対応し、このため、インタラクタコードのメッセージの受信待機として実現される。
現在状態が簡単化された状態図260の水平遷移と垂直遷移の両方が行われうる状態(i,j)であるとき、水平遷移は適切なメッセージを送信することにより行われ、その後、垂直遷移が予想されるメッセージが受信されたか判断することによって試行されるようにしてもよい。後者の状態が満たされる場合、垂直遷移が行われてもよく、次の状態は状態(i+1,j+1)となる。後者の状態が満たされていない場合、水平遷移のみが行われ、次の状態は(i+1,j)となる。プロセスが永久に待機することがないように、メッセージの受信待機中にタイマが利用されてもよい。言い換えると、適切なタイムアウト期間後に待機は終了されるようにしてもよい。垂直または水平のみの遷移しかある状態から行うことができない場合、これらの動作のみが生成されるようにしてもよい。
遷移方向が生成可能なインタラクタコードに影響する1つの変数である一方、他の変数はある状態に関する特定のタイプのイベントである。送信プロセス202と受信プロセス204において、プロセスラインに関連する各イベントは3つのタイプのうちの1つである。送信プロセス202では、これらのタイプはメッセージ送信イベント、タイマ始動イベント及びタイムアウト信号受信イベントである。受信プロセス204では、これらのタイプは、メッセージ受信イベント、タイマ始動イベント及びタイムアウト信号受信イベントである。各プロセスのこれら3つのタイプのイベントは、有限状態マシーンの各状態に対して生成されるコードが当該状態の正確な組み合わせに依存するため、コード生成中に考慮される9つの組み合わせを生じさせる。
これらの技術を利用して、インタラクタコードがグラニュラーメッセージ図に対して生成されてもよい。シナリオは有向グラフの単なるパスであることに留意されたい。シナリオに対するインタラクタコードを生成するため、コードがパスに沿って各グラニュラーメッセージ図に対して生成され、必要に応じて合成されるようにしてもよい。例えば、1つのグラニュラーメッセージ図の終わりの次の状態は、パスに沿った次のグラニュラーメッセージ図の開始状態となるべきである。信号及び変数宣言のすべてを組み合わせることによって、インタラクタコードが手動介入されることなくテスト対象装置16に対して生成、編集及びシミュレートすることが可能である。
図6は、1以上のグラニュラーメッセージ図を有する有向グラフを構成するための方法280を示すフローチャートである。ステップ282において、検証装置12は開発ツール48をロードする。ステップ284において、開発ツール48は新しい有向グラフを開く。ステップ286において、開発ツール48は、ユーザが第1のグラニュラーメッセージ図を生成するよう指示したか判断する。
ユーザがグラニュラーメッセージ図を生成するよう指示すると、ステップ288において、ユーザはプロセスの表示を生成することを許可される。ステップ290において、ユーザはメッセージを用いてプロセスの表示をリンクさせるようにしてもよい。さらにステップ294において、ユーザは必要に応じて同期エッジを生成してもよい。ステップ296において、開発ツール48は、ユーザが他のグラニュラーメッセージ図を生成することを所望しているか判断する。ユーザが他のグラニュラーメッセージ図を生成することを所望している場合、方法280はステップ290に戻る。
さらなるグラニュラーメッセージ図が生成されない場合、ステップ298において、ユーザはグラニュラーメッセージ図の表示をリンクさせる。例えば、グラニュラーメッセージ図の表示を互いに接続する矢印が生成されてもよい。これらの矢印は、グラニュラーメッセージ図に示される通信の可能な実行の順序を示す。ステップ300において、開発ツール48は、有向グラフとグラニュラーメッセージ図を含むプロジェクトファイルを保存してもよい。
これにより、方法280はハイレベルの抽象化における設計またはプロジェクトの検証に用いられるメッセージ図を生成するのに実行される各ステップの一実施例を示す。
図7は、有向グラフと1以上のグラニュラーメッセージ図を使用した設計の一実現形態を検証するための方法320を示すフローチャートである。ステップ322において、検証装置12は開発ツール48をロードする。ステップ324において、開発ツール48は、完成された有向グラフとグラニュラーメッセージ図に関するプロジェクトファイルをロードする。
ステップ326において、ユーザは送信プロセスの役割を実行するプロセスを特定する。同様に、ステップ328において、ユーザは受信プロセスの役割を実行するプロセスを特定する。送信及び受信プロセスを特定することによって、ユーザはメッセージ図に指定されるシステムと通信するための外部として機能するプロセスを特定する。
ステップ330において、開発ツール48は1以上のシナリオを決定する。例えば、開発ツール48は、郵便配達員アルゴリズムを利用して、有向グラフのすべてのエッジをカバーするシナリオを特定してもよい。代わりに、または加えて、有向グラフの2つのグラニュラーメッセージ図を特定するユーザと、これら2つの特定されたグラニュラーメッセージ図の間のすべてのシナリオを決定する開発ツール48によって、シナリオが生成されてもよい。さらに、ユーザは、有向グラフを介しパスを特定することによってシナリオを特定してもよい。他の例として、開発ツール48は、有向グラフが与えられたとき、可能なすべてのシナリオを特定してもよい。
ステップ332において、開発ツール48は特定されたシナリオを利用して、テスト対象装置16を検証するためのインタラクタコードを生成する。上述のように、インタラクタコードは、テスト対象装置16とやりとりする状態マシーンとして機能するかもしれない。ある実施例では、テスト対象装置16は、製造されたハードウェアまたはソフトウェアプロダクツであってもよい。従って、インタラクタコードは、有向グラフとグラニュラーメッセージ図に従って製造された製品とやりとりするよう試みてもよい。あるいは、テスト対象装置16は、インタラクタコード自体であってもよい。言い換えると、インタラクタコードは、設計がロウバストであるか判断するため、それの他のコピーと通信するよう試みてもよい。同様の方法により、設計の他の様々な実現形態がテストされるかもしれない。
ステップ334において、検証装置12はインタラクタコードを利用して設計の一実現形態をテストする。有向グラフとグラニュラーメッセージ図に従って、メッセージが実現形態と通信されてもよい。また、メッセージは実現形態から受信されてもよい。ステップ336において、解析モジュール58がテスト結果を解析する。解析には、有向グラフとグラニュラーメッセージ図に従って当該実現形態が通信に失敗した時点を決定することが含まれるかもしれない。ステップ338において、テスト結果と当該テスト結果の解析が出力されてもよい。例えば、テスト結果と解析は、さらなる解析のため開発ツール48によってユーザに出力されてもよい。
方法320は、ハイレベルの抽象化における設計またはプロジェクトを検証するのに実行可能な各ステップの一実施例を示す。この設計の一実現形態は、有向グラフとグラニュラーメッセージ図に記録されている仕様に従って、当該実現形態がメッセージを通信するか解析することによりテストされてもよい。
上記フローチャートは、ハイレベルの抽象化における設計及び製品を検証するのに利用される方法を示す。しかしながら、これらのフローチャートは、単なる一例となる処理方法を示すものであり、本発明は上記機能を実行するのに適した任意の技術、要素及びアプリケーションを想定する。従って、フローチャートの各ステップの多くは、同時に及び/または図示されるものとは異なる順序により実行されてもよい。さらに、本方法が適切なものである限り、本方法は追加されたステップまたはより少数のステップを含むようにしてもよい。
本発明がいくつかの実施例により説明されたが、多数の改良及び変形が当業者には想到されるかもしれず、本発明はそのような改良及び変形を添付された請求項の範囲内のものとして包含する。
(付記1)
設計のハイレベルな検証のための方法であって、
設計に関する入力を受信するステップと、
前記入力に応答して、複数のプロセス間で通信されるメッセージの関係を記述するメッセージ図を生成するステップと、
前記メッセージ図から該メッセージ図により特定されるメッセージのシーケンスからなる少なくとも1つのシナリオを決定するステップと、
前記シナリオに従って前記メッセージ図により特定される前記メッセージの少なくとも一部を送受信するよう動作可能な状態マシーンを生成するステップと、
前記状態マシーンを利用して前記設計の実現形態をテストするステップと、
から構成されることを特徴とする方法。
(付記2)
付記1記載の方法であって、
前記メッセージ図は、前記プロセス間で通信されるメッセージの関係を示すグラフィカル表示から構成されることを特徴とする方法。
(付記3)
付記1記載の方法であって、
前記メッセージ図は、
複数のグラニュラーメッセージ図の間の関係を記述する有向グラフと、
各々が前記メッセージ図に記述される前記メッセージの一部の関係を記述する複数のグラニュラーメッセージ図と、
から構成されることを特徴とする方法。
(付記4)
付記3記載の方法であって、さらに、
2つのグラニュラーメッセージ図を接続する前記有向グラフの各エッジを少なくとも1回巡回する前記メッセージ図を介したパスを特定するステップと、
前記パスに基づき前記シナリオを決定するステップと、
を有することを特徴とする方法。
(付記5)
付記3記載の方法であって、さらに、
第1グラニュラーメッセージ図と第2グラニュラーメッセージ図との間のすべてのパスを特定するステップと、
特定された各パスに対してシナリオを決定するステップと、
を有することを特徴とする方法。
(付記6)
付記3記載の方法であって、さらに、
前記メッセージ図を介したパスの識別を受信するステップと、
前記特定されたパスに基づき前記シナリオを決定するステップと、
を有することを特徴とする方法。
(付記7)
付記3記載の方法であって、さらに、
2つのグラニュラーメッセージ図を特定するステップと、
前記2つのグラニュラーメッセージ図のメッセージ間の順序付けされた関係に基づき、前記2つのグラニュラーメッセージ図の可能なすべての組み合わせを生成するステップと、
を有することを特徴とする方法。
(付記8)
付記1記載の方法であって、さらに、
前記入力に応答して、複数のイベントがある期間内に発生することを要求する同時性制約を生成するステップを有することを特徴とする方法。
(付記9)
付記1記載の方法であって、さらに、
前記入力に応答して、実行がある期間停止することを要求するタイムアウト制約を生成するステップを有することを特徴とする方法。
(付記10)
付記1記載の方法であって、さらに、
前記入力に応答して、順序付けされていないメッセージの間の順序を確立する同期エッジ表示を生成するステップを有することを特徴とする方法。
(付記11)
付記1記載の方法であって、
前記実現形態は、製造された製品から構成され、
前記実現形態をテストするステップは、
前記状態マシーンと前記製造された製品を接続するステップと、
前記シナリオに従って前記製造された製品とのやりとりを試行するステップと、
から構成されることを特徴とする方法。
(付記12)
付記1記載の方法であって、
前記実現形態は、前記シナリオに従って前記メッセージ図によって特定される前記メッセージの少なくとも一部を送受信するよう動作可能な第2の状態マシーンから構成され、
前記実現形態をテストするステップは、
前記状態マシーンと前記第2の状態マシーンを接続するステップと、
前記シナリオに従って前記第2の状態マシーンとのやりとりを試行するステップと、
から構成されることを特徴とする方法。
(付記13)
付記1記載の方法であって、
前記入力は、マウス及びキーボードにより生成される表示系列から構成されることを特徴とする方法。
(付記14)
設計のハイレベルな検証のための装置であって、
設計に関する入力を受信するよう動作可能なユーザインタフェースと、
前記入力に応答して、複数のプロセス間で通信されるメッセージの関係を記述するメッセージ図を生成し、前記メッセージ図から該メッセージ図により特定されるメッセージのシーケンスからなる少なくとも1つのシナリオを決定し、前記シナリオに従って前記メッセージ図により特定される前記メッセージの少なくとも一部を送受信するよう動作可能な状態マシーンを生成し、前記状態マシーンを利用して前記設計の実現形態をテストするよう動作可能なコントローラと、
から構成されることを特徴とする装置。
(付記15)
付記14記載の装置であって、
前記メッセージ図は、前記プロセスと前記メッセージとの関係を示すグラフィカル表示から構成されることを特徴とする装置。
(付記16)
付記14記載の装置であって、
前記メッセージ図は、
複数のグラニュラーメッセージ図の間の関係を記述する有向グラフと、
各々が前記メッセージ図に記述される前記メッセージの一部の関係を記述する複数のグラニュラーメッセージ図と、
から構成されることを特徴とする装置。
(付記17)
付記16記載の装置であって、
前記コントローラはさらに、2つのグラニュラーメッセージ図を接続する前記有向グラフの各エッジを少なくとも1回巡回する前記メッセージ図を介したパスを特定し、前記パスに基づき前記シナリオを決定するよう動作可能であることを特徴とする装置。
(付記18)
付記16記載の装置であって、
前記コントローラはさらに、第1グラニュラーメッセージ図と第2グラニュラーメッセージ図との間のすべてのパスを特定し、特定された各パスに対してシナリオを決定するよう動作可能であることを特徴とする装置。
(付記19)
付記16記載の装置であって、
前記コントローラはさらに、前記メッセージ図を介したパスの識別を受信し、前記特定されたパスに基づき前記シナリオを決定するよう動作可能であることを特徴とする装置。
(付記20)
付記16記載の装置であって、
前記コントローラはさらに、2つのグラニュラーメッセージ図を特定し、前記2つのグラニュラーメッセージ図のメッセージ間の順序付けされた関係に基づき、前記2つのグラニュラーメッセージ図の可能なすべての組み合わせを生成するよう動作可能であることを特徴とする装置。
(付記21)
付記14記載の装置であって、
前記コントローラはさらに、前記入力に応答して、複数のイベントがある期間内に発生することを要求する同時性制約を生成するよう動作可能であることを特徴とする装置。
(付記22)
付記14記載の装置であって、
前記コントローラはさらに、前記入力に応答して、実行がある期間停止することを要求するタイムアウト制約を生成するよう動作可能であることを特徴とする装置。
(付記23)
付記14記載の装置であって、
前記コントローラはさらに、前記入力に応答して、順序付けされていないメッセージの間の順序を確立する同期エッジ表示を生成するよう動作可能であることを特徴とする装置。
(付記24)
付記14記載の装置であって、
前記実現形態は、製造された製品から構成され、
前記実現形態のテストは、前記状態マシーンと前記製造された製品を接続し、前記シナリオに従って前記製造された製品とのやりとりを試行することから構成されることを特徴とする装置。
(付記25)
付記14記載の装置であって、
前記実現形態は、前記シナリオに従って前記メッセージ図によって特定される前記メッセージの少なくとも一部を送受信するよう動作可能な第2の状態マシーンから構成され、
前記実現形態のテストは、前記状態マシーンと前記第2の状態マシーンを接続し、前記シナリオに従って前記第2の状態マシーンとのやりとりを試行することから構成されることを特徴とする装置。
(付記26)
付記14記載の装置であって、
前記入力は、マウス及びキーボードにより生成される表示系列から構成されることを特徴とする装置。
(付記27)
設計のハイレベルな検証のための論理であって、
当該論理は、メディアに符号化され、実行時に、
設計に関する入力を受信するステップと、
前記入力に応答して、複数のプロセス間で通信されるメッセージの関係を記述するメッセージ図を生成するステップと、
前記メッセージ図から該メッセージ図により特定されるメッセージのシーケンスからなる少なくとも1つのシナリオを決定するステップと、
前記シナリオに従って前記メッセージ図により特定される前記メッセージの少なくとも一部を送受信するよう動作可能な状態マシーンを生成するステップと、
前記状態マシーンを利用して前記設計の実現形態をテストするステップと、
を動作可能であることを特徴とする論理。
(付記28)
付記27記載の論理であって、
前記メッセージ図は、前記プロセス間で通信されるメッセージの関係を示すグラフィカル表示から構成されることを特徴とする論理。
(付記29)
付記27記載の論理であって、
前記メッセージ図は、
複数のグラニュラーメッセージ図の間の関係を記述する有向グラフと、
各々が前記メッセージ図に記述される前記メッセージの一部の関係を記述する複数のグラニュラーメッセージ図と、
から構成されることを特徴とする論理。
(付記30)
付記29記載の論理であって、実行時にさらに、
2つのグラニュラーメッセージ図を接続する前記有向グラフの各エッジを少なくとも1回巡回する前記メッセージ図を介したパスを特定するステップと、
前記パスに基づき前記シナリオを決定するステップと、
を動作可能であることを特徴とする論理。
(付記31)
付記29記載の論理であって、実行時にさらに、
第1グラニュラーメッセージ図と第2グラニュラーメッセージ図との間のすべてのパスを特定するステップと、
特定された各パスに対してシナリオを決定するステップと、
を動作可能であることを特徴とする論理。
(付記32)
付記29記載の論理であって、実行時にさらに、
前記メッセージ図を介したパスの識別を受信するステップと、
前記特定されたパスに基づき前記シナリオを決定するステップと、
を動作可能であることを特徴とする論理。
(付記33)
付記29記載の論理であって、実行時にさらに、
2つのグラニュラーメッセージ図を特定するステップと、
前記2つのグラニュラーメッセージ図のメッセージ間の順序付けされた関係に基づき、前記2つのグラニュラーメッセージ図の可能なすべての組み合わせを生成するステップと、
を動作可能であることを特徴とする論理。
(付記34)
付記27記載の論理であって、実行時にさらに、
前記入力に応答して、複数のイベントがある期間内に発生することを要求する同時性制約を生成するステップを動作可能であることを特徴とする論理。
(付記35)
付記27記載の論理であって、実行時にさらに、
前記入力に応答して、実行がある期間停止することを要求するタイムアウト制約を生成するステップを動作可能であることを特徴とする論理。
(付記36)
付記27記載の論理であって、実行時にさらに、
前記入力に応答して、順序付けされていないメッセージの間の順序を確立する同期エッジ表示を生成するステップを動作可能であることを特徴とする論理。
(付記37)
付記27記載の論理であって、
前記実現形態は、製造された製品から構成され、
前記実現形態をテストするステップは、
前記状態マシーンと前記製造された製品を接続するステップと、
前記シナリオに従って前記製造された製品とのやりとりを試行するステップと、
から構成されることを特徴とする論理。
(付記38)
付記27記載の論理であって、
前記実現形態は、前記シナリオに従って前記メッセージ図によって特定される前記メッセージの少なくとも一部を送受信するよう動作可能な第2の状態マシーンから構成され、
前記実現形態をテストするステップは、
前記状態マシーンと前記第2の状態マシーンを接続するステップと、
前記シナリオに従って前記第2の状態マシーンとのやりとりを試行するステップと、
から構成されることを特徴とする論理。
(付記39)
付記27記載の論理であって、
前記入力は、マウス及びキーボードにより生成される表示系列から構成されることを特徴とする論理。
(付記40)
設計のハイレベルな検証のためのシステムであって、
設計に関する入力を受信する手段と、
前記入力に応答して、複数のプロセス間で通信されるメッセージの関係を記述するメッセージ図を生成する手段と、
前記メッセージ図から該メッセージ図により特定されるメッセージのシーケンスからなる少なくとも1つのシナリオを決定する手段と、
前記シナリオに従って前記メッセージ図により特定される前記メッセージの少なくとも一部を送受信するよう動作可能な状態マシーンを生成する手段と、
前記状態マシーンを利用して前記設計の実現形態をテストする手段と、
から構成されることを特徴とするシステム。
(付記41)
付記40記載のシステムであって、
前記メッセージ図は、前記プロセス間で通信されるメッセージの関係を示すグラフィカル表示から構成されることを特徴とするシステム。
(付記42)
付記40記載のシステムであって、
前記メッセージ図は、
複数のグラニュラーメッセージ図の間の関係を記述する有向グラフと、
各々が前記メッセージ図に記述される前記メッセージの一部の関係を記述する複数のグラニュラーメッセージ図と、
から構成されることを特徴とするシステム。
(付記43)
付記42記載のシステムであって、さらに、
2つのグラニュラーメッセージ図を接続する前記有向グラフの各エッジを少なくとも1回巡回する前記メッセージ図を介したパスを特定する手段と、
前記パスに基づき前記シナリオを決定する手段と、
を有することを特徴とするシステム。
(付記44)
付記42記載のシステムであって、さらに、
第1グラニュラーメッセージ図と第2グラニュラーメッセージ図との間のすべてのパスを特定する手段と、
特定された各パスに対してシナリオを決定する手段と、
を有することを特徴とするシステム。
(付記45)
付記42記載のシステムであって、さらに、
前記メッセージ図を介したパスの識別を受信する手段と、
前記特定されたパスに基づき前記シナリオを決定する手段と、
を有することを特徴とするシステム。
(付記46)
付記42記載のシステムであって、さらに、
2つのグラニュラーメッセージ図を特定する手段と、
前記2つのグラニュラーメッセージ図のメッセージ間の順序付けされた関係に基づき、前記2つのグラニュラーメッセージ図の可能なすべての組み合わせを生成する手段と、
を有することを特徴とするシステム。
(付記47)
付記40記載のシステムであって、さらに、
前記入力に応答して、複数のイベントがある期間内に発生することを要求する同時性制約を生成する手段を有することを特徴とするシステム。
(付記48)
付記40記載のシステムであって、さらに、
前記入力に応答して、実行がある期間停止することを要求するタイムアウト制約を生成する手段を有することを特徴とするシステム。
(付記49)
付記40記載のシステムであって、さらに、
前記入力に応答して、順序付けされていないメッセージの間の順序を確立する同期エッジ表示を生成する手段を有することを特徴とするシステム。
(付記50)
付記40記載のシステムであって、
前記実現形態は、製造された製品から構成され、
前記実現形態をテストする手段は、
前記状態マシーンと前記製造された製品を接続する手段と、
前記シナリオに従って前記製造された製品とのやりとりを試行する手段と、
から構成されることを特徴とするシステム。
(付記51)
付記40記載のシステムであって、
前記実現形態は、前記シナリオに従って前記メッセージ図によって特定される前記メッセージの少なくとも一部を送受信するよう動作可能な第2の状態マシーンから構成され、
前記実現形態をテストする手段は、
前記状態マシーンと前記第2の状態マシーンを接続する手段と、
前記シナリオに従って前記第2の状態マシーンとのやりとりを試行する手段と、
から構成されることを特徴とするシステム。
(付記52)
付記40記載のシステムであって、
前記入力は、マウス及びキーボードにより生成される表示系列から構成されることを特徴とするシステム。
設計及び製品のハイレベルな検証のための検証装置を有するテストシステムを示す。 検証装置の一例となる機能コンポーネントを示すブロック図である。 複数のグラニュラーメッセージ図を含む有向グラフを示す。 複数のプロセス及びメッセージを含むグラニュラーメッセージ図を示す。 複数のプロセス及びメッセージを含む第2のグラニュラーメッセージ図を示す。 複数のプロセス及びメッセージを含む第3のグラニュラーメッセージ図を示す。 有向グラフを構成する環境を示す。 設計及び製品の検証に利用されるインタラクタコードを生成するための選好を指定するためのウィンドウを示す。 グラニュラーメッセージ図を構成する環境を示す。 グラニュラーメッセージ図を示す。 状態マトリックスを示す。 状態図を示す。 簡単化された状態図を示す。 1以上のグラニュラーメッセージ図を有する有向グラフを構成するための方法を示すフローチャートである。 1以上のグラニュラーメッセージ図と有向グラフを利用した設計の一実現形態を検証するための方法を示すフローチャートである。
符号の説明
10 テストシステム
12 検証装置
14 信号インタフェース
16 テスト対象装置
40 プロセッサ
42 ユーザインタフェース
44 ネットワークインタフェース
48 開発ツール
50 有向グラフデータベース
52 グラニュラーメッセージ図データベース
54 インタラクタコードデータベース
56 シナリオデータベース
58 解析モジュール

Claims (11)

  1. 計に関する入力を受信するよう動作可能なユーザインタフェースと、
    前記入力に応答して、複数のプロセス間で通信されるメッセージの関係を記述するグラフィカル表示を生成し、前記グラフィカル表示から該グラフィカル表示により特定されるメッセージのシーケンスからなる少なくとも1つのシナリオを決定し、前記シナリオに従って前記グラフィカル表示により特定される前記メッセージの少なくとも一部を送受信するよう動作可能な状態マシーンを生成し、前記状態マシーンを利用して前記設計のプロトタイプをテストするよう動作可能なコントローラと、
    を有し、
    前記グラフィカル表示は、各メッセージ図が前記グラフィカル表示に記述される前記メッセージの一部の関係を記述する複数のメッセージ図と、該複数のメッセージ図の間の関係を記述する有向グラフとから構成される、
    ことを特徴とする設計を検証する装置。
  2. 前記コントローラはさらに、2つのメッセージ図を接続する前記有向グラフの各エッジを少なくとも1回巡回する前記グラフィカル表示を介したパスを特定し、前記パスに基づき前記シナリオを決定するよう動作可能であることを特徴とする請求項1記載の装置。
  3. 前記コントローラはさらに、第1メッセージ図と第2メッセージ図との間のすべてのパスを特定し、特定された各パスに対してシナリオを決定するよう動作可能であることを特徴とする請求項1記載の装置。
  4. 前記コントローラはさらに、前記グラフィカル表示を介したパスの識別を受信し、前記特定されたパスに基づき前記シナリオを決定するよう動作可能であることを特徴とする請求項1記載の装置。
  5. 前記コントローラはさらに、2つのメッセージ図を特定し、前記2つのメッセージ図のメッセージ間の順序付けされた関係に基づき、前記2つのメッセージ図の可能なすべての組み合わせを生成するよう動作可能であることを特徴とする請求項1記載の装置。
  6. 前記コントローラはさらに、前記入力に応答して、複数のイベントがある期間内に発生することを要求する同時性制約を生成するよう動作可能であることを特徴とする請求項1記載の装置。
  7. 前記コントローラはさらに、前記入力に応答して、実行がある期間停止することを要求するタイムアウト制約を生成するよう動作可能であることを特徴とする請求項1記載の装置。
  8. 前記コントローラはさらに、前記入力に応答して、順序付けされていないメッセージの間の順序を確立する同期エッジ表示を生成するよう動作可能であることを特徴とする請求項1記載の装置。
  9. 前記プロトタイプの前記テストは、前記状態マシーンと前記プロトタイプとを接続し、前記シナリオに従って前記プロトタイプとのやりとりを試行することを有することを特徴とする請求項1記載の装置。
  10. 前記入力は、マウス及びキーボードにより生成される表示系列から構成されることを特徴とする請求項1記載の装置。
  11. 計に関する入力を受信する手段と、
    前記入力に応答して、複数のプロセス間で通信されるメッセージの関係を記述するグラフィカル表示を生成する手段と、
    前記グラフィカル表示から該グラフィカル表示により特定されるメッセージのシーケンスからなる少なくとも1つのシナリオを決定する手段と、
    前記シナリオに従って前記グラフィカル表示により特定される前記メッセージの少なくとも一部を送受信するよう動作可能な状態マシーンを生成する手段と、
    前記状態マシーンを利用して前記設計のプロトタイプをテストする手段と、
    を有し、
    前記グラフィカル表示は、各メッセージ図が前記グラフィカル表示に記述される前記メッセージの一部の関係を記述する複数のメッセージ図と、該複数のメッセージ図の間の関係を記述する有向グラフとから構成される、
    ことを特徴とする設計を検証するシステム。
JP2005265755A 2004-09-15 2005-09-13 設計検証方法、装置、論理及びシステム Expired - Fee Related JP4619245B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/941,324 US7275231B2 (en) 2004-09-15 2004-09-15 High level validation of designs and products

Publications (2)

Publication Number Publication Date
JP2006085710A JP2006085710A (ja) 2006-03-30
JP4619245B2 true JP4619245B2 (ja) 2011-01-26

Family

ID=36035526

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005265755A Expired - Fee Related JP4619245B2 (ja) 2004-09-15 2005-09-13 設計検証方法、装置、論理及びシステム

Country Status (2)

Country Link
US (1) US7275231B2 (ja)
JP (1) JP4619245B2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1548581A3 (en) * 2003-12-19 2007-08-08 Klockwork Corp. Methods, apparatus and programs for system development
JP4445480B2 (ja) * 2006-03-23 2010-04-07 富士通株式会社 シナリオ生成方法、シナリオ生成プログラム、シナリオ生成装置
US20080222584A1 (en) * 2006-07-24 2008-09-11 Nazmul Habib Method in a Computer-aided Design System for Generating a Functional Design Model of a Test Structure
EP2074507A4 (en) * 2006-09-20 2011-01-26 Nat Ict Australia Ltd PRODUCTION OF A TRANSITION SYSTEM USED WITH A MODEL CHECK
US20090083690A1 (en) * 2007-09-24 2009-03-26 Nazmul Habib System for and method of integrating test structures into an integrated circuit
US20100251208A1 (en) * 2009-03-31 2010-09-30 Fujitsu Limited Validating Behavioral Diagrams
US8640084B2 (en) * 2009-03-31 2014-01-28 Fujitsu Limited Generating validation test suites
US20110046938A1 (en) * 2009-08-19 2011-02-24 Fujitsu Limited Verification apparatus and design verification program
US8365112B2 (en) * 2009-09-04 2013-01-29 Fujitsu Limited Verification apparatus and design verification program
JP4893811B2 (ja) * 2009-12-04 2012-03-07 富士通株式会社 検証支援プログラム、および検証支援装置
US20110197172A1 (en) * 2010-02-09 2011-08-11 Fujitsu Limited Design verification apparatus and design verification program
US8543983B2 (en) 2010-06-15 2013-09-24 Fujitsu Limited Creating hierarchical message sequence charts for visualizing user-interactive applications
CN103065000B (zh) * 2012-12-11 2016-02-10 南京大学 一种基于模型驱动工程进行SysML状态机图分析验证的方法
CN107003931B (zh) * 2014-12-09 2021-07-02 微福斯有限责任公司 将测试验证从测试执行分离
JP6472929B2 (ja) 2016-03-15 2019-02-20 富士フイルム株式会社 カメラ
US10592212B2 (en) * 2016-10-21 2020-03-17 Samsung Electronics Co., Ltd. System and method for software development based on procedures
US10698802B1 (en) * 2018-03-21 2020-06-30 Cadence Design Systems, Inc. Method and system for generating a validation test

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5508942A (en) * 1993-11-24 1996-04-16 Intel Corporation Intra/inter decision rules for encoding and decoding video signals
JPH1069501A (ja) * 1996-08-29 1998-03-10 Fujitsu Ltd 装置間インタフェース設計管理方式
US5867494A (en) * 1996-11-18 1999-02-02 Mci Communication Corporation System, method and article of manufacture with integrated video conferencing billing in a communication system architecture

Also Published As

Publication number Publication date
US20060059444A1 (en) 2006-03-16
JP2006085710A (ja) 2006-03-30
US7275231B2 (en) 2007-09-25

Similar Documents

Publication Publication Date Title
JP4619245B2 (ja) 設計検証方法、装置、論理及びシステム
US6385765B1 (en) Specification and verification for concurrent systems with graphical and textual editors
US10303581B2 (en) Graphical transaction model
JP5120473B2 (ja) ネットワークシステムの設計支援装置
JPH11296544A (ja) 構造化データ管理システム及び構造化データ管理プログラムを記録したコンピュータ読み取り可能な記録媒体
CN107783758B (zh) 一种智能合约工程方法
JP5540887B2 (ja) 設計検証プログラム、設計検証方法および設計検証装置
JP2008217651A (ja) 設計支援装置、設計支援方法、およびプログラム
JP5026925B2 (ja) 制御プログラム作成装置および制御プログラム作成方法
JP2006512670A (ja) 統合型プロセス・モデラーのための方法及び装置
CN114328278B (zh) 分布式仿真测试方法、系统、可读存储介质及计算机设备
CN117931620A (zh) 一种降低智能终端系统测试技术门槛的自动化测试方法
US20230267255A1 (en) Semiconductor equipment modeling method and device
US20110046938A1 (en) Verification apparatus and design verification program
KR20150066377A (ko) Devs 기반의 시뮬레이션 프레임워크 시스템 및 이를 이용한 시뮬레이션 방법
CN117435483A (zh) 基于Formal工具的仿真验证激励生成方法、装置、介质及终端
CN103377076A (zh) 一种运行时调整任务执行计划的方法和系统
JP4370335B2 (ja) Lsi解析プログラム、該プログラムを記録した記録媒体、lsi解析装置、およびlsi解析方法
JP7277694B2 (ja) 情報処理装置、その制御方法及びプログラム
CN115373696B (zh) 软件资源生成的低代码配置方法、系统、设备及存储介质
CN107220133A (zh) 一种数据交互方法、装置及系统
JPH1139378A (ja) システム設計仕様を規定する装置
CN115168226A (zh) 基于数据与关键字驱动的软件测试用例自动执行方法
Bouarioua et al. From UML sequence diagrams to labeled generalized stochastic Petri net models using graph transformation
JP6477196B2 (ja) デジタル回路シミュレータの波形とソフトウェア設計図との連携方法および連携プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080723

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100709

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101019

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101026

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131105

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees