(57)【要約】  ソースから宛先に試験情報を通信する方法が開示される。本方法は、モジュール式試験システムを提供することを含み、モジュール式試験システムは、少なくとも１つのサイトコントローラを制御するシステムコントローラを備え、少なくとも１つのサイトコントローラは少なくとも１つの試験モジュールを制御する。本方法は、ユーザ定義データログフォーマットの拡張をサポートするデータログフレームワークを提供すること、ユーザ開始データログイベントをサポートするサポートクラスを提供すること、ソースから宛先に入力試験情報を通信するように要求するデータログイベントを受け取ること、宛先、データログフレームワーク及びサポートクラスに基づいて出力試験情報を構成すること、及び出力試験情報を宛先に転送することをさらに含む。
2007528992.tif 000002
【特許請求の範囲】
【請求項１】
ソースから宛先に試験情報を通信する方法であって、
モジュール式試験システムを提供することであって、該モジュール式試験システムは、少なくとも１つのサイトコントローラを制御するシステムコントローラを備え、該少なくとも１つのサイトコントローラは少なくとも１つの試験モジュールを制御するためのものである、モジュール式試験システムを提供すること、
ユーザ定義データログフォーマットの拡張をサポートするデータログフレームワークを提供すること、
ユーザ開始データログイベントをサポートするサポートクラスを提供すること、
前記ソースから前記宛先に入力試験情報を通信するように要求するデータログイベントを受け取ること、
前記宛先、前記データログフレームワーク及び前記サポートクラスに基づいて出力試験情報を構成すること、及び
前記出力試験情報を前記宛先に転送すること
を含む、ソースから宛先に試験情報を通信する方法。
【請求項２】
前記データログフレームワークは、
異なるベンダからの個々のソースの前記入力試験情報をサポートするソースインタフェースと、
データログソース及び宛先のクラスを表すタイプインタフェースと、
フォーマッティング機能を提供するフォーマットインタフェースと、
フォーマットされた試験情報を異なる宛先に転送するストリームインタフェースと、
対応するソース、ストリーム、フォーマット及び宛先に応じてデータログイベントを管理するデータログマネージャと、
を含む、請求項１に記載の方法。
【請求項３】
前記サポートクラスは、
ヘッダ、タイプ及びイベント情報を格納するデータログ値クラスと、
ユーザイベントのタイプ及び名前を結合するデータログフォーマットマップクラスと、
フォーマットマップのグループをバンドルするデータログフォーマットグループクラスと、
ユーザ定義フォーマットクラスをサポートするユーザフォーマットクラスと、
１組の事前定義されたフォーマットクラスをサポートする汎用フォーマットクラスと、
を含む、請求項１に記載の方法。
【請求項４】
前記データログフレームワークを提供するステップは、
１つ又は複数のデータログストリームを生成すること、
１つ又は複数のユーザフォーマットを生成すること、
１つ又は複数のデータログフォーマットマップを生成すること、
１つ又は複数のデータログフォーマットグループを生成すること、及び
前記１つ又は複数のデータログストリーム、前記１つ又は複数のユーザフォーマット、前記１つ又は複数のデータログフォーマットマップ及び前記１つ又は複数のデータログフォーマットグループを対応するデータログマネージャにリンクすること
をさらに含む、請求項１に記載の方法。
【請求項５】
前記データログフレームワークは、入力試験情報の前記ソース及び内容から独立している、請求項１に記載の方法。
【請求項６】
前記データログフレームワークは、出力試験情報の前記宛先及び内容から独立している、請求項１に記載の方法。
【請求項７】
前記出力試験情報のフォーマットは、ユーザによって構成可能である、請求項１に記載の方法。
【請求項８】
前記構成するステップは、
データログ値オブジェクトを生成することであって、該データログ値オブジェクトはタイプ及びイベント情報を含む、データログ値オブジェクトを生成すること、
対応する宛先、データログフレームワーク及びサポートクラスに基づいてデータログフォーマットオブジェクトを確定すること、及び
該データログフォーマットオブジェクトを使用して前記出力試験情報をフォーマットすること
を含む、請求項１に記載の方法。
【請求項９】
モジュール式試験システムであって、
システムコントローラと、
該システムコントローラに結合される少なくとも１つのサイトコントローラと、
少なくとも１つの試験モジュール及びその対応する被試験デバイス（ＤＵＴ）と、
ユーザ定義データログフォーマットの拡張をサポートするように構成されるデータログフレームワークと、
ユーザ開始データログイベントをサポートするように構成される１つ又は複数のサポートクラスと、
前記ソースから前記宛先に入力試験情報を通信するように要求するデータログイベントを受け取る手段と、
前記宛先、前記データログフレームワーク及び前記サポートクラスに基づいて出力試験情報を構成する手段と、
該出力試験情報を前記宛先に転送する手段と、
を具備する、モジュール式試験システム。
【請求項１０】
前記データログフレームワークは、
異なるベンダからの個々のソースの前記入力試験情報をサポートするソースインタフェースと、
データログソース及び宛先のクラスを表すタイプインタフェースと、
フォーマッティング機能を提供するフォーマットインタフェースと、
フォーマットされた試験情報を異なる宛先に転送するストリームインタフェースと、
対応するソース、ストリーム、フォーマット及び宛先に応じてデータログイベントを管理するデータログマネージャと、
を含む、請求項９に記載のシステム。
【請求項１１】
前記サポートクラスは、
ヘッダ、タイプ及びイベント情報を格納するデータログ値クラスと、
ユーザイベントのタイプ及び名前を結合するデータログフォーマットマップクラスと、
フォーマットマップのグループをバンドルするデータログフォーマットグループクラスと、
ユーザ定義フォーマットクラスをサポートするユーザフォーマットクラスと、
１組の事前定義されたフォーマットクラスをサポートする汎用フォーマットクラスと、
を含む、請求項９に記載のシステム。
【請求項１２】
前記データログフレームワークを提供することは、
１つ又は複数のデータログストリームを生成する手段と、
１つ又は複数のユーザフォーマットを生成する手段と、
１つ又は複数のデータログフォーマットマップを生成する手段と、
１つ又は複数のデータログフォーマットグループを生成する手段と、
前記１つ又は複数のデータログストリーム、前記１つ又は複数のユーザフォーマット、前記１つ又は複数のデータログフォーマットマップ及び前記１つ又は複数のデータログフォーマットグループを対応するデータログマネージャにリンクする手段と
をさらに具備する、請求項９に記載のシステム。
【請求項１３】
前記データログフレームワークは、入力試験情報の前記ソース及び内容から独立している、請求項９に記載のシステム。
【請求項１４】
前記データログフレームワークは、出力試験情報の前記宛先及び内容から独立している、請求項９に記載のシステム。
【請求項１５】
前記出力試験情報のフォーマットは、ユーザによって設定できる、請求項９に記載のシステム。
【請求項１６】
前記出力試験情報を構成する手段は、
タイプ及びイベント情報を含むデータログ値オブジェクトを生成する手段と、
対応する宛先、データログフレームワーク及びサポートクラスに基づいてデータログフォーマットオブジェクトを確定する手段と、
該データログフォーマットオブジェクトを使用して前記出力試験情報をフォーマットする手段と
を具備する、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動試験装置（ＡＴＥ）の分野に関する。特に、本発明は、オープンアーキテクチャ試験システムにおいてデータログをサポートする方法及びシステムに関する。
【０００２】
本出願は、参照により本出願に援用される、株式会社アドバンテスト（Advantest Corporation）によって２００４年５月２２日に出願された、「Software Development in an Open Architecture Test System」と題する米国特許仮出願第６０／５７３，５７７号の利益を主張する。
【背景技術】
【０００３】
システム・オン・チップ（System-on-a-Chip）（ＳＯＣ）デバイスの複雑性が増大することと、同時にチップ試験のコストの低減に対する要求が高まることにより、集積回路（ＩＣ）の製造業者とテスタのベンダとはともに、ＩＣ試験をいかに実行すべきかを再考せざるを得なくなった。企業調査によれば、設計し直さない限り、テスタの予測されるコストは、近い将来劇的に上昇し続ける。
【０００４】
試験装置のコストが高い主な理由は、従来のテスタアーキテクチャが特殊化した性質を有するということである。各テスタ製造業者は、アドバンテスト、テラダイン（Teradyne）及びアジレント（Agilent）等の会社間で互換性がないだけでなく、アドバンテストが製造するＴ３３００、Ｔ５５００及びＴ６６００シリーズのテスタ等、一会社内のプラットフォーム間でも互換性がない多数のテスタプラットフォームを有する。これら非互換性のために、各テスタは、それ自体の特殊なハードウェアコンポーネント及びソフトウェアコンポーネントを必要とし、これら特殊なハードウェアコンポーネント及びソフトウェアコンポーネントを他のテスタで使用することができない。さらに、試験プログラムを１つのテスタから別のテスタに移植するべく、且つサードパーティソリューションを開発するために著しい労力が必要である。或るプラットフォームに対してサードパーティソリューションが開発される場合であっても、それを異なるプラットフォームに移植し又はそこで再使用することはできない。１つのプラットフォームから別のプラットフォームへの移行プロセスは、一般に複雑で且つ誤りが発生しやすく、その結果、労力及び時間が追加され試験コストが増大する。
【０００５】
データロギングは、１つの試験又は一続きの試験を実行している時にユーザにステータス情報を提供するために使用される。データログで報告される情報には、被試験デバイス（ＤＵＴ）の合格／不合格ステータス、任意の関連する測定パラメータ、及び試験自体の全体的な実行ステータスが含まれる場合がある。この情報は、通常、試験実行の完了及び試験されているデバイスの実行を評価するためにオフラインで使用される。データログ機能をサポートすることにより、ユーザが、自身の試験情報を指定されたソースから指定された宛先まで所望のフォーマットで出力することができる。
【０００６】
特殊化したテスタアーキテクチャの問題の１つは、所与のテスタに対し、すべてのハードウェア及びソフトウェアが固定の構成のままであるということである。ハードウェアデバイス又はＩＣを試験するために、試験データ、信号、波形並びに電流レベル及び電圧レベルを定義するテスタ機能とともにＤＵＴ応答を収集しＤＵＴの合格／不合格を確定するテスタ機能のうちのいくつか又はすべてを使用する専用テストプログラムが開発されている。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
試験システムは、多種多様の試験モジュールとそれらの対応するＤＵＴとを試験するために広範囲の機能及び動作を行う必要があるので、多種多様の試験モジュールをサポートするように構成することができるオープンアーキテクチャ試験システムが必要とされている。特に、多種多様の試験モジュールをサポートするべく、試験システムの異なるソース及び宛先の異なるフォーマットで作動するように構成することができるオープンアーキテクチャ試験システム内のデータログフレームワークが必要とされている。
【課題を解決するための手段】
【０００８】
本発明の一実施の形態では、ソースから宛先に試験情報を通信する方法は、モジュール式試験システムを提供することを含み、モジュール式試験システムは、少なくとも１つのサイトコントローラを制御するシステムコントローラを備え、少なくとも１つのサイトコントローラは少なくとも１つの試験モジュールを制御する。本方法は、ユーザ定義データログフォーマットの拡張をサポートするデータログフレームワークを提供すること、ユーザ開始データログイベントをサポートするサポートクラスを提供すること、ソースから宛先に入力試験情報を通信するように要求するデータログイベントを受け取ること、宛先、データログフレームワーク及びサポートクラスに基づいて出力試験情報を構成すること、及び出力試験情報を宛先に転送することをさらに含む。
【０００９】
本発明の別の実施の形態では、モジュール式試験システムは、システムコントローラと、システムコントローラに結合される少なくとも１つのサイトコントローラと、少なくとも１つの試験モジュール及びその対応する被試験デバイス（ＤＵＴ）と、ユーザ定義データログフォーマットの拡張をサポートするように構成されるデータログフレームワークと、ユーザ開始データログイベントをサポートするように構成される１つ又は複数のサポートクラスと、を具備する。モジュール式試験システムは、ソースから宛先に入力試験情報を通信するように要求するデータログイベントを受け取る手段と、宛先、データログフレームワーク及びサポートクラスに基づいて出力試験情報を構成する手段と、出力試験情報を宛先に転送する手段と、をさらに具備する。
【００１０】
以下、本発明の上述した特徴及び利点とともにその追加の特徴及び利点について、以下の図面をともに考慮した場合に本発明の実施形態の詳細な説明の結果としてより明確に理解されるであろう。
【発明を実施するための最良の形態】
【００１１】
モジュール式試験システムにおけるデータログサポートのための方法及びシステムを提供する。以下の説明を、当業者が本発明を作成し使用することができるように提示する。特定の技法及び適用の説明は、単に例として提供する。本明細書で説明する例に対するさまざまな変更は、当業者には容易に明らかになるであろう。また、本明細書で定義する一般原理を、本発明の精神及び範囲から逸脱することなく他の例及び適用に応用してもよい。このため、本発明は、説明され且つ示される例に限定されるように意図されておらず、本明細書で開示する原理及び特徴に一致する最も広い範囲を付与される。
【００１２】
図１は、本発明の一実施形態によるオープンアーキテクチャ試験システムを示す。システムコントローラ（ＳｙｓＣ）１０２は、複数のサイトコントローラ（ＳｉｔｅＣ）１０４に結合される。システムコントローラを、関連するファイルにアクセスするためにネットワークに結合してもよい。各サイトコントローラは、モジュール接続イネーブラ１０６を通して、試験サイト１１０に位置する１つ又は複数の試験モジュール１０８に結合される。モジュール接続イネーブラ１０６は、接続されたハードウェアモジュール１０８の再構成を可能にし、且つ、データ転送用のバスとしての役割を果たす（パターンデータをロードする、応答データを収集する、制御を提供する等）。さらに、モジュール接続イネーブラを通して、１つのサイトのモジュールが、別のサイトのモジュールにアクセスすることができる。モジュール接続イネーブラ１０６は、異なる試験サイトが同じか又は異なるモジュール構成を有することができるようにする。言い換えれば、各試験サイトは、異なる数及び異なるタイプのモジュールを採用してもよい。あり得るハードウェアインプリメンテーションには、専用接続、スイッチ接続、バス接続、リング接続及びスター接続が含まれる。モジュール接続イネーブラ１０６を、たとえばスイッチマトリクスによって実施してもよい。各試験サイト１１０は、ＤＵＴ１１２に関連し、ＤＵＴ１１２は、ロードボード１１４を介して対応するサイトのモジュールに接続される。一実施形態では、単一サイトコントローラを複数のＤＵＴサイトに接続してもよい。
【００１３】
システムコントローラ１０２は、全体的なシステムマネージャとしての役割を果たす。システムコントローラ１０２は、サイトコントローラアクティビティを調整し、システムレベルの並列試験戦略を管理し、さらにシステムレベルのデータロギング及びエラー処理サポートとともにハンドラ／プローブ制御を提供する。システムコントローラ１０２は、試験環境を検証しデバッグする際の試験技術者に対する主要な対話点である。システムコントローラ１０２は、サイトコントローラ１０４に対するゲートウェイを提供し、マルチＤＵＴ環境におけるサイトコントローラアクティビティの同期化を管理する。システムコントローラ１０２はさらに、データロググラフィカルユーザインタフェース（DatalogGUI）等のユーザアプリケーション及びツールを実行する。動作設定に応じて、システムコントローラ１０２を、サイトコントローラ１０４の動作とは別のＣＰＵに配置してもよい。別法として、システムコントローラ１０２とサイトコントローラ１０４とが共通のＣＰＵを共有してもよい。同様に、各サイトコントローラ１０４を、それ自体の専用ＣＰＵ（中央処理装置）に配置してもよく、又は同じＣＰＵ内の別々のプロセス又はスレッドとして配置してもよい。
【００１４】
サイトコントローラ１０４は、ＤＵＴを試験するためのテストプランを実行することに関与する。テストプランは、フレームワーククラスと、試験方法をカプセル化する標準テストクラス又はユーザ提供テストクラスとを使用することにより、特定の試験を生成する。さらに、テストプランは、標準インタフェースを使用してハードウェアを構成し、試験フローを定義する。
【００１５】
個々のシステムコンポーネントを、統合されたモノリシックシステムの論理コンポーネントとみなしてもよく、必ずしも分散システムの物理コンポーネントとみなさなくてもよいということを理解して、本発明のシステムアーキテクチャを、概念的に、図１に示す分散システムとして想定してもよい。ハードウェアレベルとソフトウェアレベルとの両方において標準インタフェースを使用することにより、プラグ・アンド・プレイモジュール又は交換可能モジュールが容易になる。テスタオペレーティングシステム（ＴＯＳ）により、ユーザは、テストプランプログラミング言語を使用してテストプランプログラムを書くことができ、且つ特定の被試験デバイス（ＤＵＴ）に特化した方法で試験システムを動作させることができる。また、それにより、ユーザは、一般にテストプランプログラムにおいてライブラリとして使用される試験システム動作のシーケンスをパッケージ化することも可能となる。これらのライブラリを、テストクラス及びテストテンプレートと呼ぶ場合がある。
【００１６】
データログフレームワーク
【００１７】
データログフレームワークは、テストプラン及びシステムフレームワーククラスとともに個々のサイトコントローラにおいて実行する。データログフレームワークは、データログシステムの開発、配備及び管理をサポートするために１組のインタフェース、クラス及びメソッドを提供する。データログフレームワークは、
【００１８】
・ソース、ストリーム及びフォーマッタ等のデータログ要素を管理し、
【００１９】
・データログイベントをディスパッチし、
【００２０】
・新たなデータログイベントの生成を可能にするアプリケーションプログラミングインタフェース（ＡＰＩ）を提供し、
【００２１】
・データロギングをセットアップし制御するＡＰＩを提供し、
【００２２】
・共通のフォーマッティングニーズを処理する汎用フォーマッタを提供し、
【００２３】
・データログフレームワークをオープンする、モジュール式サードパーティ及び／又は顧客データログサービスの統合のためのサポートを提供する。
【００２４】
標準データログインタフェース
【００２５】
図２は、本発明の一実施形態によるデータログフレームワークのインプリメンテーションを示す。データログフレームワークインタフェース及びサポートクラス間の関連のセットを、図２の統一モデリング言語（ＵＭＬ）クラス図を通して示す。データログフレームワーク２００は、データログストリームインタフェース２０２、データログフォーマットインタフェース２０４、データログタイプインタフェース２０６及びデータログソースインタフェース２０８を含む。データログフレームワーク２００は、データログマネージャクラス２１０、データログフォーマットマップクラス２１２、データログフォーマットグループクラス２１４、データログ値クラス２１６、汎用フォーマットクラス２１８及びユーザフォーマットクラス２２０をさらに含む。
【００２６】
テスタオペレーティングシステム（ＴＯＳ）に対する標準データログインタフェースは、純粋抽象Ｃ＋＋クラスとして定義される。データログストリームインタフェース（IDatalogStream）２０２は、出力ファイル又はデバイスを表す。データログシステムは、ストリームに対しフォーマットされた出力を送出する。本システムは、２つの組込みストリーム、すなわちローカルディスクファイルに対して出力を送出するFileStreamと、システムのコンソールアプリケーションに対して出力を送出するConsoleStreamとを提供する。
【００２７】
データログフォーマットインタフェース（IDatalogFormat）２０４は、出力に対するデータログイベントに関連するデータをフォーマットするために要求される必要な命令を表す。フォーマッティング機能の特定の性質は、IDatalogFormatの各インプリメンテーションの内側に隠される。たとえば、組込みGeneralFormatにより、汎用フォーマットストリングを、DatalogValuesオブジェクトから名前付きの値を抽出しそれらをフォーマットされたストリングに挿入するマクロのような機能とともに使用することができる。
【００２８】
データログタイプインタフェース（IDatalogType）２０６は、試験の特定のタイプ等、データログソースのクラス又は「タイプ」を表す。DatalogManager２１０は、部分的にイベントのソースのタイプに基づいてフォーマット及びストリームにイベントをマップする。新たなタイプのソースが生成されると、それらは、それら自体をDatalogManager２１０に登録し、識別子（ＩＤ）値を受け取る。これらのタイプを管理することにより、DatalogManager２１０は、データログソースの特定のインスタンスとともにデータログソースの全クラスを使用可能／使用不能にすることができる。IDatalogTypeオブジェクト２０６は、データログイベントの複数のクラスを生成してもよい。たとえば、或る状態が発生するまで１組のパターンでループするユーザ試験が、TestStart、TestEnd、IterationStart、IterationEnd及びConditionTestデータログイベントを生成してもよい。イベントのこれらのクラスの各々は、それに関連する異なるデータフィールドを有してもよい（以下のDatalogValuesクラスを参照）。
【００２９】
データログソースインタフェース（IDatalogSource）２０８は、データログイベントのソースを表す。IDatalogType２０６は、データログソースオブジェクトのクラス全体を特徴付けるが、IDatalogSource２０８は、個々のソースインスタンスを表す。このインタフェースは、個々のソースのデータロギングを可能／不能にすることができる。
【００３０】
データログサポートクラス
【００３１】
データログフレームワーク２００の中心オブジェクトは、DatalogManagerオブジェクト２１０である。このオブジェクトは、すべてのデータログ出力ストリームを維持することとともに、データログイベント及びそれらの関連データをフォーマットして適当なストリーム（複数可）に送ることに関与する。DatalogManager２１０は、サイトコントローラのテストプランサーバ（ＴＰＳ）に存在する。これは、データログ実行エンジンである。特に、DatalogManager２１０の主な機能には以下が含まれる。
【００３２】
・１組のグローバルデータログストリーム（すなわち、IDatalogStreamインタフェースをインプリメントするオブジェクト）を管理すること。
【００３３】
・１組のデータログフォーマット（すなわち、IDatalogFormatインタフェースをインプリメントするオブジェクト）を管理することであって、それらの各々は１組のデータログイベントの結果としてフォーマットされたストリングを生成する。
【００３４】
・データログイベントをすべての関連するデータログストリームに分配すること。ストリームのすべての宛先を、DatalogManagerを通して制御することができる。
【００３５】
・データログ出力をフィルタリングする効果がある、DatalogMask状態を維持し制御すること。なお、マスクのアプリケーションは、ソースにおいてシステム性能を向上させるために発生する場合があることに留意する。
【００３６】
・データログシステムを起動し／クリーンアップすること。
【００３７】
・データログシステム全体とともに個々のデータログタイプ又はソースを使用可能／使用不能にすること。
【００３８】
データログフォーマットマップクラス２１２は、名前付き＜EventType, EventName, Format＞の組合せである。すなわち、データログフォーマットマップクラス２１２は、EventType（特定のIDatalogTypeオブジェクトを表す）と、EventName（EventTypeオブジェクトによって生成されるデータログイベントのうちの１つを表す）と、Format（IDatalogFormatオブジェクトを表す）とをグループ化する。
【００３９】
データログフォーマットグループクラス２１４は、DatalogFormatMapオブジェクトの集まりである。ユーザは、DatalogFormatMapオブジェクトを単一グループにバンドルし、そのグループを１つのストリーム又はいくつかのストリームに割り当ててもよい。これにより、データログイベントの最終的なフォーマッティングとこれらのフォーマットされたストリングの適当なストリームへのルーティングとに対しユーザレベルの制御が提供される。
【００４０】
データログ値クラス２１６は、データログタイプ識別子及びイベントのようなヘッダ情報と、イベントソースによって設定されるデータログフィールドのリストとを含む。DatalogValuesオブジェクトは、名前から値へ、ストリング間マップとして作用し、フォーマットオブジェクトが名前によって必要な値を抽出しそれらをフォーマットされたストリームに挿入することができる。
【００４１】
汎用フォーマットクラス２１８は、IDatalogFormatのインプリメンテーションである。これにより、汎用フォーマットストリングを、DatalogValuesオブジェクトから名前付きの値を抽出しそれらをフォーマットされたストリングに挿入するマクロのような機能とともに使用することができる。
【００４２】
ユーザフォーマットクラス２２０は、ユーザ定義フォーマットクラスのためのプレースホルダである。提供されるGeneralFormatクラスがユーザの特定の要件を満たさない場合、システムに新たなフォーマットクラスを追加してそれを利用してもよい。
【００４３】
データログソース
一実施形態では、サイトコントローラベースのオブジェクトは、IDatalogSourceインタフェース２０８をインプリメントすることによりデータログイベントのソースとして作用してもよい。たとえば、テストプラン及びテストオブジェクトは、イベントのソースの例である。このようなオブジェクトの各インスタンスは、IDatalogSourceインタフェースをインプリメントする。さらに、このようなオブジェクトの各タイプ、たとえばFuntionalTestは、それに関連するIDatalogTypeインタフェース２０６のインプリメンテーションを有する。これは、データログソースの各タイプに対してクラス全体のスタティックオブジェクトによって達成される。図３は、本発明の一実施形態によるデータログソースのインプリメンテーションを示す。データログソースは、機能試験（functional test()）クラス３０２、データログタイプインプリメンテーション（datalog type implementation()）クラス３０４、データログタイプインタフェース３０６及びデータログソースインタフェース３０８を含む。
【００４４】
図３に示すように、FunctionalTestクラス３０２は、タイプDatalogTypeImpl３０４のクラス全体のスタティックメンバを有する。FunctionalTestのインスタンスは、このメンバ変数をそれが生成される時に検査する。変数が生成されず割り当てられていない場合、コンストラクタは、DatalogTypeImplのインスタンスを生成し、それを初期化し、それをスタティックメンバ変数に割り当て、それをDatalogManagerに登録する。FunctionalTestクラスの後続するインスタンスは、DatalogTypeImplデータメンバにアクセスし、それ自体（すなわち、IDatalogSourceとしてFunctionalTestのインスタンス）を後者のFunctionalTestインスタンスがサービスしているデータログソースインスタンスのDatalogTypeImplのリストに追加する。
【００４５】
別の実施形態では、FunctionalTestクラスのサブクラス、たとえばADifferentFunctionalTestは、FunctionalTestのものとは異なるデータログタイプを確立しようと試みてもよい。ADifferentFunctionalTestのインプリメンテーションは、FunctionalTestに関連するクラス全体のDatalogTypeImplを使用せず、DatalogTypeImplのそれ自体のクラス全体のインスタンスを使用してこれを達成してもよい。なお、FunctionalTestの各インスタンスはIDatalogSourceインタフェースをインプリメントすることに留意する。DatalogTypeImplは、このインタフェースを使用して個々のソースを使用可能／使用不能にする。
【００４６】
ソースタイプ登録
テストプランがロードされる時、データログイベントソースは、DatalogManagerオブジェクトに登録してもよい。この登録からの戻り値は識別子であり、それは後にイベントを生成するために使用される。
【００４７】
図４は、本発明の一実施形態によるソースタイプを登録する方法を示す。ソースタイプを登録する協働するオブジェクトのグループには、TestPlanオブジェクト４０２と、FunctionalTest1オブジェクト４０４と、FunctionalTest2オブジェクト４０６と、DatalogManagerオブジェクト４０８とが含まれる。なお、テストプランが同じタイプの２つのテストインスタンス（FunctionalTest1及びFunctionalTest2）を生成する場合、第１のテストインスタンスはDatalogManagerに新たなデータログタイプを登録することに留意する。
【００４８】
ユーザは、異なるイベントタイプに対してデータログフォーマットを設定してもよい。これを、テストプラン初期化中にデフォルトフォーマットを提供するように行ってもよく、且つ／又はリモートアプリケーションから対話的に行ってもよい。ユーザがデータログストリームを設定することができるように同様の手続きが続く。DatalogManagerは、試験システムを通して特定のタイプのイベントが辿る可能性のあるルートを指定する１組の｛datalog-type, datalog-event｝から対応する１組の｛datalog-format, datalog-stream｝へのマッピングを保持する。ファイルベースのストリームの場合、サイトコントローラのテストクラスは、ストリームをクローズすることによりデータログファイルをシステムコントローラに転送することができるようにしてもよい。そして、ストリームを再オープンしてもよく、又は別のストリームと置き換えてもよい。
【００４９】
データのフォーマッティング及びストリーミング
試験中、オブジェクトは、データストリームにロギングされるデータログイベントを生成してもよい。図５は、本発明の一実施形態によるデータをフォーマットしストリーミングする方法を示す。このタスクを実行する協働するオブジェクト及びインタフェースのグループには、TestPlanオブジェクト５０２と、DatalogValuesオブジェクト５０４と、DatalogManagerオブジェクト５０６と、データログフォーマットインタフェース（IDatalogFormat）５０８と、データログストリームインタフェース（IDatalogStream）５１０とが含まれる。TestPlan５０２は、DatalogValuesオブジェクトインスタンス５０４を生成し、setValue()メソッドを呼び出すことにより適当な値を設定し、このオブジェクトをDatalogManager５０６のdoDatalog()メソッドに渡す。そして、doDatalog()メソッドは、タイプ／イベントの組合せに対して適当なデータログフォーマットオブジェクト５０８を見つけ、このデータログフォーマットオブジェクト５０８に対してapply()メソッドを呼び出すことにより引換えにストリングオブジェクトを取得する。そして、このストリングオブジェクトは、writeMessage()メソッドを使用して、出力されるために関連するデータログストリームオブジェクト５１０に渡される。
【００５０】
データログ初期化
【００５１】
異なる一実施形態では、データログシステムは以下のステップを使用して初期化される。
【００５２】
・データログストリーム（複数可）を生成しそれをDatalogManagerに追加する。
【００５３】
・データログフォーマット（複数可）を生成しそれをDatalogManagerに追加する。
【００５４】
・データログフォーマットマップ（複数可）を生成しそれをDatalogManagerに追加する。
【００５５】
・データログフォーマットグループ（複数可）を生成しそれをDatalogManagerに追加する。
【００５６】
データログアプリケーションプログラミングインタフェース（ＡＰＩ）は、上記タスクを実行する機能を提供する。さらに、試験システムは、１つ又は複数の構成ファイルを読み出し上記ステップを実行するテストクラス、すなわちDatalogSetupTestを提供する。以下の例は、初期化ステップを実行するためにDatalogSetupTest構成ファイルを使用することを示す。データログストリーム、データログフォーマットマップ及びデータログフォーマットグループ内のＤＬＬパラメータは、IDatalogStream２０２又はIDatalogFormat２０４をインプリメントするために使用されるライブラリを指定する。
Version 0.1.0;
# Enable the datalog system 
Enabled;
# Step 1: Stream Creation
# Creates a stream of type FileStream, which logs the message to
# a file. 
Stream FunctionalTestStream
{ 
DLL "FileStream"; 
FileName "FuncDatalogDut<DutID>.log"; 
Overwrite"1";
}
# Step 2: Format Creation
# Adds a format with a line that looks like:
# Signal Info: $SignalInfo
# where $SignalInfo is replaced by the string provided in the datalog
# source. 
Format SignalInfoFormat
{
DLL "GeneralFormat"; 
Format "Signal Info: $SignalInfo";
} # Adds a format with a line that looks like:
# Test Result: $Result
# where $Result is replaced by the string provided in the datalog
# source. 
Format TestResultFormat
{
DLL "GeneralFormat"; 
Format "Test Result: $Result";
}
# Step 3: FormatMap Creation
# Maps format SignalInfoFormat to event DumpSignal from sources
# of type com.Advantest.oai.TestClasses.FunctionalTest. 
FormatMap SignalFormatMap
{
Type com.advantest.oai.TestClasses.FunctionalTest; 
Event DumpSignal; 
Format SignalInfoFormat;
}
# Maps format TestResultFormat to event TestResult from sources
# of type com.Advantest.oai.TestClasses.FunctionalTest. 
FormatMap ResultFormatMap 
{
Type com.advantest.oai.TestClasses.FunctionalTest; 
Event TestResult; 
Format TestResultFormat;
}
# Step 4: FormatGroup Creation
# Creates a group which directs messages from format map
# SignalFormatMap and ResultFormatMap to destination FunctionalTestStream
# and ConsoleStream. 
FormatGroup FunctionalTestGroup
{ 
FormatMap SignalFormatMap; 
FormatMap ResultFormatMap; 
Stream FunctionalTestStream; 
Stream ConsoleStream;
}
【００５７】
データログセットアップファイルのセマンティクス
さらに別の実施形態では、データログセットアップファイルは、４つの異なるタイプのブロック、すなわちデータログフォーマットブロック、データログストリームブロック、データログフォーマットマップブロック及びデータログフォーマットグループブロックを含む。これらのブロックを使用して、データログフォーマット、データログストリーム、データログフォーマットマップ及びデータログフォーマットグループがそれぞれ定義される。これらの４つのブロックのうちの任意のものを、同じセットアップファイルにおいて複数回使用してもよく、複数の別々のデータログセットアップファイルを用いてデータログシステムをセットアップしてもよい。このように、データログシステムセットアップは、モジュール式であり且つ柔軟である。たとえば、Cal/Diagsデータロギングをセットアップするための第１のデータログセットアップファイルと、機能試験のためのデータロギングをセットアップするための第２のデータログセットアップファイルと、パラメータ試験のためのデータロギングをセットアップするための第３のデータログセットアップファイルとがあってもよい。
【００５８】
データログフォーマットブロック
一実施形態では、データログフォーマットブロックを使用してデータログフォーマットが定義される。フォーマットの定義には、フォーマット名、フォーマットＤＬＬ名、メッセージフォーマットストリング及び任意のユーザ定義フォーマットパラメータが含まれてもよい。フォーマットＤＬＬ名がGeneralFormatである場合、事前定義されたGeneralFormatが使用され、そうでない場合、ユーザ定義データログフォーマットが使用される。後者の場合、ユーザは、システム試験ディレクトリにデータログフォーマットＤＬＬを提供する。以下のデータログＡＰＩが呼び出されることにより、データログフォーマットブロックが定義される。
【００５９】
void DatalogManager::addFormat(const OFCString &formatName,
const OFCString &typeName,
const OFCString &format,
const DatalogProperties_t properties); 
and
FormatSignalInfoFormat
{
DLL "GeneralFormat"; 
Format"$SignalInfo"; 
}
は、事前定義されたGeneralFormatを利用するフォーマットSignalInfoFormatを定義する。そのフォーマットストリングは$SignalInfoであり、ここでは、$SignalInfoは、ランタイム中に、引き渡されたデータログレコード（DatalogValues）においてデータログ変数SignalInfoによって置き換えられてもよいトークンである。データログフォーマットブロックを使用して、データログシステムから既存のデータログフォーマットを除去することができる。このシナリオでは、以下のデータログＡＰＩが呼び出される。
void DatalogManager::removeFormat(const OFCString &formatName);
and 
Format AnExistingFormat Disabled;
は、データログシステムからデータログフォーマットAnExistingFormatを除去する。
【００６０】
データログストリームブロック
別の実施形態では、データログストリームブロックを使用してデータログストリームが定義される。データログストリームの定義には、ストリーム名、ストリームＤＬＬ名及び任意のユーザ定義ストリームパラメータが含まれる。ストリームＤＬＬ名がFileStream又はConsoleStreamである場合、組込みデータログストリームFileStream又はConsoleStreamが使用され、そうでない場合、ユーザ定義データログストリームが使用される。後者の場合、ユーザは、システム試験ディレクトリにデータログストリームＤＬＬを提供する。以下のデータログＡＰＩが呼び出されることにより、データログストリームブロックが定義される。
void DatalogManager::addStream(const OFCString &streamName,
const OFCString &typeName,
const DatalogProperties_t properties);
and
Stream FunctionalTestStream
{
DLL "FileStream"; 
FileName "datalog<DutID>.log"; 
Overwrite "0";
}
は、任意のパラメータFileName及びOverwriteとともに組込みストリームFileStreamを利用するストリームFunctionalTestStreamを定義する。なお、FileStreamは、自動変数<DutID>及び<TimeStamp（タイムスタンプ）>を用いてファイル名をサポートすることに留意する。<DutID>は、ランタイム中に現ＤＵＴ  ＩＤに置き換えられ、<TimeStamp>は、Thu_Nov_13_06_40_28_2003等のフォーマットで現日時に置き換えられる。
【００６１】
データログストリームブロックを使用して、データログシステムから既存のデータログストリームを除去することができる。この場合、以下のデータログＡＰＩが呼び出される。
void DatalogManager::removeStream(const OFCString &streamName);
and
Stream AnExistingStream Disabled;
は、データログシステムからデータログストリームAnExistingStreamを除去する。
【００６２】
データログタイプブロック
異なる一実施形態では、データログタイプブロックを使用してデータログタイプに対するユーザ特定特性が定義される。以下のデータログＡＰＩが呼び出されることによりデータログタイプブロックが定義される。
【００６３】
IDatalogType *DatalogManager::getType(const OFCString &typeName)
const;
void IdatalogType::addProperty(const OFCString &propName,
const OFCString &propValue);
and
Type com.Advantest.oai.TestClasses.FunctionalTest
{
Mode "Detailed";
}
は、データログタイプ「com.Advantest. oai.TestClasses. FunctionalTest」に対して値"Detailed"を用いて特性モードを定義する。
【００６４】
データログフォーマットマップブロック
さらに別の実施形態では、データログフォーマットマップブロックを使用してデータログフォーマットマップが定義される。フォーマットマップの定義には、フォーマットマップ名、データログタイプ名及びマップされるそのイベント名、並びにマップされるフォーマット名が含まれる。以下のデータログＡＰＩが呼び出されることにより、データログフォーマットマップブロックが定義される。
void DatalogManager::createFormatMap(const OFCString &mapName,
const OFCString &typeName,
const OFCString &eventName,
const OFCString &formatName);
and
FormatMap SignalFormatMap
{
Type com.Advantest.oai.TestClasses.FunctionalTest;
Event DumpSignal; 
Format SignalInfoFormat;
}
は、データログタイプcom.Advantest.oai.TestClasses.FunctionalTest及びそのイベントDumpSignalをフォーマットSignalInfoFormatにマップするフォーマットマップSignalFormatMapを定義する。
【００６５】
データログフォーマットマップブロックを使用して、データログシステムから既存のデータログフォーマットマップを除去してもよい。この場合、以下のデータログＡＰＩ
void DatalogManager::removeFormatMap(const OFCString &mapName); 
が呼び出されることによりこのタスクが実行される。
【００６６】
データログフォーマットグループブロック
一実施形態では、データフォーマットブロックを使用してデータログフォーマットグループが定義される。Format Groupの定義には、フォーマットグループ名、フォーマットグループが含むフォーマットマップの名前のリスト、及びフォーマットグループから生成されるメッセージがエクスポートされるストリームの名前のリストが含まれる。以下のデータログＡＰＩが呼び出されることにより、データログフォーマットグループブロックが定義される。
voidDatalogManager::createFormatGroup(const OFCString &groupName,
const OFCStringVec_t &mapNames);
voidDatalogManager::setStream(const OFCString &groupName,
const OFCString &streamName);
第１のコールは、フォーマットのベクトルを含むフォーマットグループを生成し、第２のコールは、生成されたフォーマットグループにデータログストリームを追加する。たとえば、
FormatGroup FunctionalTestGroup
{
FormatMap SignalFormatMap; 
FormatMap ResultFormatMap; 
Stream FunctionalTestStream; 
Stream ConsoleStream;
}
は、フォーマットマップSignalFormatMap及びResultFormatMapを含むフォーマットグループFunctionalTestGroupを定義する。フォーマットグループから生成されるメッセージは、データログストリームFunctionalTestStream及びConsoleStreamにエクスポートされる。
【００６７】
データログフォーマットマップブロックを使用して、データログシステムから既存のデータログフォーマットグループを除去してもよい。この場合、データログＡＰＩ
void DatalogManager::removeFormatGroup(const OFCString
&groupName); 
が呼び出されることによりこの機能が実行される。
【００６８】
データログシステムアプリケーション例
以下の例では、DatalogManagerProxy、DatalogHandelerProxy及びDatalogFilterProxy等のプロキシオブジェクトがシステムコントローラで実行しているアプリケーションによって使用されることにより、１つ又は複数のサイトコントローラにおけるデータログフレームワークの現状態及び動作がリモートに制御される。これらのオブジェクトは、サイトコントローラの現実のオブジェクトに対するリモートプロキシとして作用し、これらのオブジェクトに対し、システムコントローラのアプリケーションが通信プロトコルの複雑性ではなくローカルオブジェクトを扱うことができるようにする透過的な通信チャネルを提供する。
【００６９】
図６は、本発明の一実施形態によるデータロギングを動的に可能にすることのインプリメンテーションを示す。このタスクを達成する協働するオブジェクトのグループには、データロググラフィカルユーザインタフェース（DatalogGUI）オブジェクト６０２と、DataloggerProxyオブジェクト６０４（DatalogManagerProxyとも呼ぶ）と、テストオブジェクト６０６と、Dataloggerオブジェクト６０８（DatalogManagerとも呼ぶ）とが含まれる。シーケンス図は、データログシステムを動的に使用可能にするステップを示す。図６に示すように、シーケンス図の各ステップを以下のように説明する。
【００７０】
１．ステップ１において、DatalogGUI６０２又は他のテスタＧＵＩ（たとえば試験制御パネル）は、ボタン又はメニュー項目Enable Datalog（データログを使用可能にする）を含む。ユーザがボタン又はメニュー項目をクリックすると、DatalogGUI６０２は、テストプランサーバプロキシ（TPSProxy）からDataloggerProxyオブジェクト６０４を探索する。
【００７１】
２．DatalogGUI６０２は、返されたDataloggerProxy６０４に対しsetEnable()メソッドを呼び出し、データログシステムを使用可能にすることを意味するパラメータ値「真」を引き渡す。
【００７２】
３．プロキシモデルにより、DataloggerProxy６０４のsetEnable()メソッドは、Datalogger６０８のsetEnableTest()メソッドを呼び出すことによりデータログシステムを使用可能にする。
【００７３】
４．テストオブジェクト６０６は、enteringTest()メソッドを呼び出すことにより、Datalogger６０８にデータログイベントを送出する。
【００７４】
５．Datalogger６０８は、isEnabled()メソッドを呼び出すことによりそれが使用できるか否かを検査する。
【００７５】
６．Datalogger６０８は、使用できる場合、log()メソッドを呼び出すことによりデータロギングを開始する。
【００７６】
図７は、本発明の一実施形態によるデータロギングを動的に不能にすることのインプリメンテーションを示す。このタスクを達成する協働するオブジェクトのグループには、DatalogGUIオブジェクト７０２と、DataloggerProxyオブジェクト７０４と、テストオブジェクト７０４と、Dataloggerオブジェクト７０８とが含まれる。Datalogger７０８は、すべてのデータロギングを不能にするために使用され得る。シーケンス図は、データログシステムを動的に使用不能にするステップを示す。図７に示すように、シーケンス図の各ステップを以下のように説明する。
【００７７】
１．ステップ１において、DatalogGUI７０２又は他のテスタＧＵＩ（たとえば試験制御パネル）は、ボタン又はメニュー項目Disable Datalog（データログを使用不能にする）を含む。ユーザがボタン又はメニュー項目をクリックすると、DatalogGUIは、TPSProxyからシングルトンDataloggerProxyオブジェクト７０４を探索する。
【００７８】
２．DatalogGUI７０２は、返されたDataloggerProxy７０４に対しsetEnable()メソッドを呼び出し、データログシステムを使用不能にすることを意味するパラメータ値「偽」を引き渡す。
【００７９】
３．プロキシモデルにより、DataloggerProxy７０４のsetEnable()メソッドは、Datalogger７０８のsetEnableTest()メソッドを呼び出すことによりデータログシステムを使用不能にする。
【００８０】
４．テストオブジェクト７０６は、enteringTest()メソッドを呼び出すことにより、Datalogger７０８にデータログイベントを送出する。
【００８１】
５．Dataloggerは、それが使用できるか否かを検査する。Dataloggerが使用不能なので、データロギングは起こらない。
【００８２】
図８は、本発明の一実施形態によるデータログフォーマットを動的に変更することのインプリメンテーションを示す。このタスクを達成する協働するオブジェクトのグループには、DatalogGUIオブジェクト８０２と、DatalogFormatterProxyオブジェクト８０４と、DatalogHandlerオブジェクト８０６と、DatalogFormatterオブジェクト８０８とが含まれる。シーケンス図は、データログフォーマットを動的に変更するステップを示す。DatalogHandlerオブジェクト８０６により、ユーザは、データログストリームとフォーマット仕様とを結合して、DatalogManagerがデータログイベントを渡すために使用してもよい単一のエンタイトル（entitle）にすることができる。図８に示すように、シーケンス図の各ステップを以下のように説明する。
【００８３】
１．ステップ１において、DatalogGUI８０２は、選択されたデータログハンドラに関連する利用可能なデータログフォーマッタのリストを表示する。ユーザは、プルダウンメニューを開くことによって任意のデータログフォーマッタを選択してもよく、メニュー項目Edit（編集）を選択する。DatalogGUIのインプリメンテーションは、リストの各データログフォーマッタ項目を対応するデータログフォーマッタプロキシ参照に（ユーザデータパラメータを使用することにより）関連付ける。次に、DatalogFormatterProxyオブジェクト８０４が取得される。
【００８４】
２．DatalogGUI８０２は、DatalogFormatterProxyオブジェクト８０４を使用してgetFormat()メソッドを呼び出すことにより、フォーマットストリング及び関連引数を取得する。
【００８５】
３．プロキシモデルにより、DatalogFormatterProxy８０４のgetFormat()メソッドは、DatalogFormatter８０８の対応するgetFormat()メソッドを呼び出す。
【００８６】
４．DatalogGUI８０２は、選択されたフォーマッタを用いてデータログイベントのフォーマット及び引数を表示する。ユーザは、１組の所定データログフォーマット要件に従ってフォーマット及び引数を変更してもよい。
【００８７】
５．ユーザが変更されたフォーマッタをデータログシステムに適用すると、DatalogGUI８０２は、DatalogFormatterProxy８０４のsetFormat()メソッドを呼び出し、変更されたフォーマットストリング及び引数を渡す。
【００８８】
６．プロキシモデルにより、DatalogFormatterProxy８０４のDatalogFormatterProxy.setFormat()メソッドは、DatalogFormatter８０８の対応するsetFormat()メソッドを呼び出す。
【００８９】
７．次に、DatalogHandler８０６が、データログイベントとともにフォーマットされたメッセージを取得するために、変更されたデータログフォーマッタに対しgetOuptut()メソッドを呼び出すと、変更されたフォーマッタが適用される。
【００９０】
図９は、本発明の一実施形態によるデータログ出力ストリームを動的に割り当てることのインプリメンテーションを示す。このタスクを達成する協働するタスクのグループには、DatalogGUIオブジェクト９０２と、DatalogManagerProxyオブジェクト９０４と、IDatalogHandlerProxyオブジェクト９０６と、IDatalogHandlerオブジェクト９０８と、DatalogManagerオブジェクト９１０とが含まれる。シーケンス図は、データログハンドラに動的に関連付けるようにデータログ出力ストリームを割り当てるステップを示す。図９に示すように、シーケンス図の各ステップを以下のように説明する。
【００９１】
１．ステップ１において、ユーザがその関連するデータログ出力ストリームを編集するためにデータログハンドラを選択すると、DatalogGUI９０２は２つのリストを含むパネルを表示する。すなわち、第１のリストは、データログシステムのデータログストリーム名を表示し、第２のリストは、データログハンドラに関連するデータログストリーム名を表示する。さらに、DatalogGUIはまた、Add（追加）、Remove（除去）、Apply（適用）、OK及びCancel（キャンセル）ボタンも含む。
【００９２】
２．DatalogGUI９０２はDatalogManagerProxy９０４のgetStreamNames()メソッドを呼び出す。
【００９３】
３．プロキシモデルにより、DatalogManagerProxy９０４のgetStreamNames()メソッドは、DatalogManager９１０の対応するgetStreamNames()メソッドを呼び出すことによりデータログシステムに登録されているデータログストリーム名をすべて取得する。
【００９４】
４．DatalogGUI９０２は、第１のリストの取り出されたデータログストリーム名を表示する。
【００９５】
５．そして、DatalogGUI９０２は、IDatalogHandlerProxy９０６のgetStreamNames()メソッドを呼び出す。
【００９６】
６．プロキシモデルにより、IDatalogHandlerProxy９０６の対応するgetStreamNames()メソッドは、IDatalogHandler９０８の対応するgetStreamNames()メソッドを呼び出すことにより選択されたデータログハンドラに目下関連するデータログストリーム名をすべて取得する。
【００９７】
７．DatalogGUI９０２は、第２のリストの選択されたデータログハンドラに関連する取り出されたデータログストリーム名を表示する。
【００９８】
８．そして、ユーザは、ボタンAdd及びRemoveを使用して関連するデータログストリームリストを編集する。ユーザが編集を終了し、変更されたストリームをデータログストリームに適用するようにApply又はOKボタンをクリックした後、DatalogGUI９０２は、IDatalogHandlerProxy９０６に対してsetStreams()メソッドを呼び出し、それを変更されたデータログストリーム名に渡す。
【００９９】
９．プロキシモデルにより、IDatalogHandlerProxy９０６のsetStreams()メソッドは、IDatalogHandler９０８の対応するsetStreams()メソッドを呼び出す。
【０１００】
１０．そして、IDatalogHandler９０８は、各データログストリーム名に対する関連するデータログストリームオブジェクト参照をDatalogManager９１０から取得する。
【０１０１】
１１．そして、IDatalogHandler９０８は、ストリームベクトルにストリームを追加する。その後、IDatalogHandler９０８は、そのデータログ出力に対しストリームベクトルにおいて新たに選択されたデータログストリームを送出する。
【０１０２】
図１０は、本発明の一実施形態によるデータログ出力ストリームを動的に使用不能にすることのインプリメンテーションを示す。このタスクを達成する協働するオブジェクトのグループには、DatalogGUIオブジェクト１００２と、IDatalogStreamProxyオブジェクト１００４と、IDatalogHandlerオブジェクト１００６と、IDatalogStreamオブジェクト１００８とが含まれる。シーケンス図は、データログ出力ストリームを動的に使用不能にするステップを示す。図１０に示すように、シーケンス図の各ステップを以下のように説明する。
【０１０３】
１．ステップ１において、DatalogGUI１００２は、利用可能なデータログストリームのリストを表示する。ユーザは、プルダウンメニューを開くことによって任意のデータログストリームを選択してもよく、メニュー項目Disable（使用不能）を選択する。DatalogGUI１００２のインプリメンテーションは、リストの各データログストリーム項目を対応するIDatalogStreamProxy参照１００４に（ユーザデータパラメータを使用することにより）関連付ける。そして、IDatalogStreamProxy１００４が取得される。
【０１０４】
２．DatalogGUI１００２は、取得されたIDatalogStreamProxyオブジェクト１００４に対しdisable()メソッドを呼び出す。
【０１０５】
３．IDatalogStreamProxy１００４のdisable()メソッドは、プロキシモデルを通してIDatalogStream１００８の対応するdisable()メソッドを呼び出す。
【０１０６】
４．IDatalogHandler１００６は、write()メソッドを呼び出すことにより、フォーマットされたメッセージをストリームに書き出す。
【０１０７】
５．IDatalogStream１００８は、それが使用可能であるか否かを検査する。使用可能である場合、出力ストリームを変更してもよい。
【０１０８】
図１１は、本発明の一実施形態による新たなソースを動的に適合させることのインプリメンテーションを示す。このタスクを達成する協働するオブジェクトのグループには、DatalogGUIオブジェクト１１０２と、DatalogManagerProxyオブジェクト１１０４と、テストオブジェクト１１０６と、Dataloggerオブジェクト１１０８と、DatalogManagerオブジェクト１１１０と、DatalogHandlerProxyオブジェクト１１１２と、DatalogHandlerオブジェクト１１１４と、DatalogFilterProxyオブジェクト１１１６と、DatalogFilterオブジェクト１１１８と、DatalogFormatterオブジェクト１１２０とが含まれる。シーケンス図は、新たなソースを動的に適合させるステップを示す。DatalogFilterオブジェクト１１１８によって、ユーザは、タイプ及びソース識別子によりデータログイベントを選択的にフィルタリングすることができる。このフィルタリングによって、ユーザは、特定のデータログイベントをオン及びオフにすることができる。図１１に示すように、シーケンス図の各ステップを以下のように説明する。
【０１０９】
１．ステップ１において、DatalogGUI１１０２は、DatalogManagerProxyオブジェクト１１０４を見つけ、そのaddHandler()メソッドを呼び出すことにより、新たなソースに対し新たなDatalogHandlerインスタンスを登録する。なお、この手法において、DatalogHandler１１１４は、イベントを異なるデータログフォーマッタに関連付けることに留意する。このモデルを用いて、新たなDatalogHandlerインスタンスが、新たなソース（テストクラス）と作用するように生成される。新たに生成されたDatalogHandlerProxyインスタンスが返される。
【０１１０】
２．プロキシモデルにより、DatalogManagerProxy１１０４のaddHandler()メソッドは、DatalogManager１１１０の対応するaddHandler()メソッドを呼び出す。
【０１１１】
３．次に、DatalogManager１１１０のaddHandler()メソッドは、DatalogHandlerの新たなインスタンスを生成し、その後その新たに生成されたDatalogHandlerインスタンスをDatalogManager１１１０に登録する。
【０１１２】
４．そして、DatalogGUI１１０２は、データログフィルタプロキシを、ステップ１で返されたDatalogHandlerProxy１１０４を通して新たに生成されたデータログハンドラに関連付ける。
【０１１３】
５．プロキシモデルにより、DatalogHandlerProxy１１１２のgetFilter()メソッドは、DatalogHandler１１１４の対応するgetFilter()メソッドを呼び出す。
【０１１４】
６．DatalogFilterProxy１１１６を用いて、DatalogGUI１１０２はそのenableTest()メソッドを呼び出す。
【０１１５】
７．プロキシモデルにより、DatalogFilterProxy１１１６のenableTest()メソッドは、DatalogFilter１１１８の対応するenableTest()メソッドを呼び出す。その結果、新たに生成されたデータログハンドラインスタンスは、新たなテストソースの選択されたイベントを処理する。
【０１１６】
８．DatalogGUI１１０２は、新たに生成されたデータログハンドラの各選択されたデータログイベントに対しそのプロキシを通してフォーマットを設定する。この新たなテストソースに対し、新たな引数のフォーマットをTest.FooArgumentとして指定してもよい。新たなテストソースにおいて、インタフェースIPropertyをインプリメントしてもよく、それを以下のように示す。
class IProperty
{
public: 
OFCString &getProperty(const OFCString &name) const;
void setProperty(const OFCString &name, const OFCString
*value); 
OFCStringVec_t getPropertyNames() const;
};
where FooArgument is one of the properties in the new test source. 
【０１１７】
９．DatalogHandlerProxy１１１２は、対応するDatalogHandler１１１４を通してsetFormat()メソッドを呼び出す。
【０１１８】
１０．DatalogHandler１１１４は、選択されたイベントに対してDatalogFormatterを生成し、それをイベントルートマップに追加する。次に、新たに生成されたデータログハンドラは、新たなソースからのデータログイベントを処理する。そして、新たなソーステストを含むテストプランが開始してもよい。
【０１１９】
１１．ＴＰＳは、新たなソーステストの実行の最後に達すると、データログシステムにexitingTest()データログ要求を送出する。
【０１２０】
１２．Datalogger１１０８は、要求を受け入れ、それをロギングされるデータログイベントに転送する。
【０１２１】
１３．Datalogger１１０８は、新たなデータログイベントをディスパッチするためにDatalogManager１１１０に送る。
【０１２２】
１４．DatalogManager１１１０は、登録されたデータログハンドラにイベントを１つずつ発行する。データログハンドラがイベントを処理することができると、発行プロセスを停止してもよい。
【０１２３】
１５．各データログハンドラにイベントが発行される時、ハンドラは、そのイベントがロギング可能であるか否かを検査する。新たに生成されたDatalogHandlerインスタンスが新たなテストソースをサービスすることができる場合、そのイベントはロギングできる。
【０１２４】
１６．DatalogHandler１１１４は、現イベントに関連するDatalogFormatter１１２０を見つけ、そのgetOuptut()メソッドを呼び出すことにより定義されたフォーマットに基づいてフォーマットされたメッセージを取得する。getOuptut()メソッドは、
【０１２５】
event.getDatalogger->getTest()->getProperty("FooArgument");
【０１２６】
を呼び出すことにより新たなパラメータTest.FooArgument値をフェッチし、フォーマットされた出力メッセージはその後出力データログストリームに送られる。
【０１２７】
開示したデータログフレームワークによって多数の利益が達成される。第１に、データログフレームワークは、データログイベントのソース、性質及び内容から独立している。これにより、データログフレームワークを変更することなく新たなデータログソース及びイベントを追加することができる。さらに、データログ出力をフォーマットすることはデータログフレームワークから独立している。システムにGeneralFormatが提供される場合、それは、フォーマットブロックに対する動的リンクライブラリ（ＤＬＬ）パラメータとして指定され、フレームワークに「ハードコード」されない。さらに、データログイベントのフォーマッティングは、エンドユーザによって構成できる。たとえば、イベントを、人間が読取り可能なテキスト、スプレッドシート又はデータベースのためのコンマ区切りの値、アプリケーション特定のテキスト又はさらに処理するためのバイナリフォーマットにフォーマットしてもよく、又はそれらを完全に無視してもよい。データログフレームワークは、データログストリームの宛先から独立している。さらに、フォーマット及び出力ストリームは拡張できる。すなわち、ユーザは、フレームワークを変更することなくシステムに新たなIDatalogFormat及びIDatalogStreamインプリメンテーションを追加してもよい。テストクラス（及び他のデータログソース）及びそれらの対応するデータログイベントもまた拡張可能であり、そのため、フレームワークは特定のソース又はイベントタイプについて知る必要がない。ユーザが新たなデータログイベントタイプの新たなテストクラスを追加する際、データログフレームワークの変更は不要である。
【０１２８】
関連技術分野の熟練者（当業者）は、依然として同じ基本の根本的なメカニズム及び方法を採用しながら、開示された実施形態の多くのあり得る変更を使用してもよい、ということを理解するであろう。上述した記述は、説明の目的のために、特定の実施形態を参照して述べた。しかしながら、上記例示的な論考は、網羅的であるように、又は本発明を開示した正確な形態に限定するようにも意図されていない。上記教示に鑑みて、多くの変更及び変形が可能である。本発明の原理とその実際的な適用とを説明するように、且つ当業者が、企図された特定の使用に適するよう、本発明及びさまざまな実施形態をさまざまな変更態様で最もよく利用することができるように、実施形態を選択し述べた。
【図面の簡単な説明】
【０１２９】
【図１】本発明の一実施形態によるオープンアーキテクチャ試験システムを示す図である。
【図２】本発明の一実施形態によるデータログフレームワークのインプリメンテーションを示す図である。
【図３】本発明の一実施形態によるデータログソースのインプリメンテーションを示す図である。
【図４】本発明の一実施形態によるソースタイプを登録する方法を示す図である。
【図５】本発明の一実施形態によるデータをフォーマットしストリーミングする方法を示す図である。
【図６】本発明の一実施形態による動的にデータロギングを可能にすることのインプリメンテーションを示す図である。
【図７】本発明の一実施形態による動的にデータロギングを不能にすることのインプリメンテーションを示す図である。
【図８】本発明の一実施形態による動的にデータログフォーマットを変更することのインプリメンテーションを示す図である。
【図９】本発明の一実施形態による動的にデータログ出力ストリームを割り当てることのインプリメンテーションを示す図である。
【図１０】本発明の一実施形態による動的にデータログ出力ストリームを使用不能にすることのインプリメンテーションを示す図である。
【図１１】本発明の一実施形態による動的に新たなソースを適合させることのインプリメンテーションを示す図である。
【図１】
2007528992.tif 000003
【図２】
2007528992.tif 000004
【図３】
2007528992.tif 000005
【図４】
2007528992.tif 000006
【図５】
2007528992.tif 000007
【図６】
2007528992.tif 000008
【図７】
2007528992.tif 000009
【図８】
2007528992.tif 000010
【図９】
2007528992.tif 000011
【図１０】
2007528992.tif 000012
【図１１】
2007528992.tif 000013
【手続補正書】
【提出日】平成19年5月1日(2007.5.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
モジュール式試験システムであって、
システムコントローラと、
該システムコントローラに結合され、ユーザ定義データログフォーマットの拡張をサポートするように構成されるデータログフレームワークを実行する少なくとも１つのサイトコントローラと、
を具備すし、
前記データログフレームワークは、ユーザ開始データログイベントをサポートするように構成される１つ又は複数のサポートクラスを有し、
前記サイトコントローラは、実行する前記データログフレームワークにより、ソースから宛先に入力試験情報を通信するように要求するデータログイベントを受け取り、前記宛先へ転送する出力試験情報を構成し、該出力試験情報を前記宛先に転送するモジュール式試験システム。
【請求項２】
前記データログフレームワークは、
異なるベンダからの個々のソースの前記入力試験情報をサポートするソースインタフェースと、
データログソース及び宛先のクラスを表すタイプインタフェースと、
フォーマッティング機能を提供するフォーマットインタフェースと、
フォーマットされた試験情報を異なる宛先に転送するストリームインタフェースと、
対応するソース、ストリーム、フォーマット及び宛先に応じてデータログイベントを管理するデータログマネージャと、
を含む、請求項１に記載のシステム。
【請求項３】
前記サポートクラスは、
ヘッダ、タイプ及びイベント情報を格納するデータログ値クラスと、
ユーザイベントのタイプ及び名前を結合するデータログフォーマットマップクラスと、
フォーマットマップのグループをバンドルするデータログフォーマットグループクラスと、
ユーザ定義フォーマットクラスをサポートするユーザフォーマットクラスと、
１組の事前定義されたフォーマットクラスをサポートする汎用フォーマットクラスと、
を含む、請求項１に記載のシステム。
【請求項４】
前記データログフレームワークは、
１つ又は複数のデータログストリームを生成する手段と、
１つ又は複数のユーザフォーマットを生成する手段と、
１つ又は複数のデータログフォーマットマップを生成する手段と、
１つ又は複数のデータログフォーマットグループを生成する手段と、
前記１つ又は複数のデータログストリーム、前記１つ又は複数のユーザフォーマット、前記１つ又は複数のデータログフォーマットマップ及び前記１つ又は複数のデータログフォーマットグループを対応するデータログマネージャにリンクする手段と
をさらに具備する、請求項１に記載のシステム。
【請求項５】
前記出力試験情報のフォーマットは、ユーザによって設定できる、請求項１に記載のシステム。
【国際調査報告】
2007528992.tif 000014
2007528992.tif 000015
2007528992.tif 000016