幾つかの実施の形態においては、ハードウェアイクイップメントを表現するための、またハードウェアの表現を複数の言語でドキュメンテーション及びソフトウェアに翻訳するためのシステム及び方法が提供される。
幾つかの実施の形態においては、イクイップメント又ツールの記述をそのツールに関してユーザ定義された機能、例えばツールドキュメンテーション又はツールにおいて実行されるソフトウェアプログラムに翻訳するためのプログラムを含むツールコンパイラのためのシステム及び方法が提供される。
幾つかの実施の形態においては、例えばツールコンパイラによってイクイップメント又はツールを、ユーザ定義された機能、例えばツール表現、ツールマニュアル又はツールソフトウェアに翻訳するために使用することができる、高水準言語記述開発のためのシステム及び方法が提供される。
幾つかの実施の形態においては、データベース、テンプレート又はルールベースコンポーネントを使用して、所望のツール表現の提供を支援し、例えばデフォルトコンポーネント又はデフォルト機能を追加するか、利用可能なコンポーネントからの派生コンポーネント又は派生機能を追加するか、若しくは、例えば安全規則又は標準規則のような規則を満たすためのコンポーネントを追加又は修正する、ツール翻訳における単純化されたオペレータ環境のためのシステム及び方法が提供される。
幾つかの実施の形態においては、イクイップメント又はツールに関するドキュメンテーション及びソフトウェアを、対応するドキュメンテーション及びソフトウェアとの間で自動的に同期しながら、自動的に生成するためのシステム及び方法が提供される。この方法は、ツールのモデル表現を生成するステップと、それに続いて、対応するドキュメンテーション及びソフトウェアを生成するための入力としてツールモデルを使用してプログラムを実行するステップと、を備えることができる。ツールモデルは、ツールが更新されると更新することができ、例えばコンポーネントが追加されるか、あるコンポーネントが異なるコンポーネントに置換されるか、又は、ツールのあるコンポーネントが除去される。プログラムを更新されたツールモデルにおいて、例えば更新されたツールモデルを新たな入力として使用することによって実行し、更新されたドキュメンテーション及び/又はソフトウェアを生成することができる。
幾つかの実施の形態においては、ツールコンパイラプログラムが提供され、このツールコンパイラプログラムは、ツールのツールモデル表現の入力を受け取り、またツールに関するドキュメンテーション又はソフトウェアのようなユーザ定義された機能であってよい所望の出力を生成することができる。ツールモデル入力の要求を単純化するために、ツールコンパイラをライブラリ、データベース、テンプレート又は他のプログラムにリンクさせることができる。例えば、ツールコンパイラを、フォーマッティングテンプレート及び/又はスタイルテンプレートにリンクさせ、所望のフォーマット及びスタイルを有するツールドキュメンテーション又はツールソフトウェアを生成することができる。例えば、テンプレートプログラムは、ツールのグラフィック表現、プレースホルダコマンド及びテキスト情報を有することができる。ツールモデルとのリンケージは、プレースホルダコンポーネントを実際のデータに置換し、ソフトウェアをそのツールに特化したものにすることができる。ツールの標準化要求を満たすツールドキュメンテーション又はツールソフトウェアを生成するために、ツールコンパイラを標準ドキュメンテーション又はプログラムにリンクさせることができる。ツールモデルの生成を単純化するために、ツールコンパイラをデフォルトの又は派生のドキュメント、プログラム又はテンプレートにリンクさせることができ、また、ツールコンパイラは、必要とされるコンポーネント及び要素を有しているツールドキュメンテーション又はツールソフトウェアも生成する。例えば、ツールのシーケンスに関する状態モデルを、ツールの状態又はコンポーネントを知ることによって追加することができる。
ドキュメンテーション及びソフトウェアを、単一のツールモデルから生成することができ、従って自動的な同期を保証することができる。例えば、ツールモデルを更新してツールモデルの新たなヴァージョンを作成することができ、その新たなヴァージョンのツールモデルを、ドキュメンテーション及びソフトウェアの新たなヴァージョンを生成するために使用することができる。更新はソフトウェアの更新でよく、その更新によって、更新されたツールモデルを介して、対応するドキュメンテーションを自動的に更新することができる。また更新は、ドキュメンテーションの更新でもよく、その更新によって、更新されたツールモデルを介して、対応するソフトウェアを自動的に更新することができる。
図1には、幾つかの実施の形態による、ツールをモデリングするためのプロセスが概略的に示されている。イクイップメント又はツール110をツールモデル120に翻訳することができ、このツールモデル120はハードウェア記述言語表現、例えばテキスト表現、図形表現、シンボル表現又はオブジェクトコード表現を含む。ツールモデル120を、例えばソフトウェアプログラム又はツールコンパイラ122又は124によって、それぞれドキュメント180又はソフトウェアプログラム190に翻訳又は変換することができる。付加的な要素130をツールモデル120に組み込むことができ、例えばデフォルトコンポーネント、既存のコンポーネントから派生したコンポーネント、又は、標準規則を満たすために追加されるコンポーネントを追加することができる。更には、ドキュメンテーション180の自動的な生成に、ドキュメントテンプレート140を利用することができる。ソフトウェアプログラム190の自動的な生成に、ソフトウェアテンプレート150を利用することもできる。
幾つかの実施の形態においては、ドキュメンテーション180はソフトウェアプログラム190のマニュアルであってよい。ドキュメント180及びソフトウェア190は同一のツールモデル120から生成されるので、マニュアルとプログラムとの間での自動的な同期185を保証することができる。自動的な同期を、ソフトウェア又はマニュアルの更新中に達成することができる。
幾つかの実施の形態においては、ツールモデルと、ツールモデルを作成するための方法と、が提供される。ツールモデルは、関連するイクイップメント又はツールの変換可能な表現であってよい。そのような表現は、他の形式のツールモデル、例えば対応する詳細なツールモデル、例えば付加的なデフォルト要素、派生コンポーネント、又は、確立された標準の適合を可能にするコンポーネントを有するツールモデルに翻訳することができる。
幾つかの実施の形態においては、一つの大きいツールをモデリングするために、複数のモデルをリンクさせることができる。例えば、一つの大きいツールに関するツールモデルは、複数のツールモデルモジュールを含むことができ、更にそれらのツールモデルモジュールを、それらのモジュールのサブセットに分割することができる。モジュールのサブセットをリンクさせ、一つの大きいツールモデルに関するツールモデルを作成するための効率的な方法を提供することができる。
幾つかの実施の形態においては、ツールのツールモデル表現を生成するためのシステム及び方法が提供される。ツールモデルは、ツールのテキスト表現、グラフィック表現、シンボル表現及びプログラム表現を含むことができる。例えば、ツールモデルは、ツールが実行することができるコマンドを含む、ツール機能の記述のような、ツールのテキスト記述及びグラフィック記述を含むことができる。ツールのテキスト記述及びグラフィック記述は、ツールのコンポーネント、例えばモータ、センサ、圧力計、ロボットハンドラ等の記述も含むことができる。そのような記述はテキスト及び図形を含むことができる。ツールモデルは、ソフトウェアプログラム、例えば、ツールとのインタフェースを提供することができるソースコード又はオブジェクトコードを含むことができるので、それによりツールはコマンドを実行することができる。例えば、ツールモデルは、ソフトウェアプログラムによるリンケージでもって、ハードウェア通信が確立された後のセンサ状態の読み出しを可能にする、センサに関するオブジェクトコードを含むことができる。
幾つかの実施の形態においては、ツールモデルは、ツールの完全な表現又は部分的な表現を含むことができる。更に、ツールモデルの完全性を、ツールモデルの目的に応じて決定することができる。例えば、ドキュメンテーションを生成するために設計された完全なツールモデルは、プログラムコンポーネントを含まずに、テキスト情報及びグラフィック情報を有することができる。
幾つかの実施の形態においては、ツールモデルは、冗長性を全く持たない、ツールの単純化された表現、例えば、最小限度の記述を含むことができる。例えば、ツールモデルは、ツールの異なる状態又は機能、ツールの安全性に関する記述、又は、ツールの標準適合を含まずに、ツールのコンポーネントの記述を含むことができる。
図2には、幾つかの実施の形態による、ツールモデルが概略的に示されている。ツール210、例えば半導体処理ツールのようなイクイップメントを、簡潔なツールモデル220に翻訳240することができる。簡潔なツールモデル220は、機械的な記述、電気的な記述、機能記述、コマンド記述、プログラム225を含むことができる。択一的に、ツール210をより詳細なツールモデル260に翻訳(参照番号245)することができる。この翻訳を人間によって、例えばツールの記述を提供することによって実行することができる。変換によって、ツールのハードコピー又はソフトコピー、例えばツールの表現を含むファイルを生成することができる。変換を人間によって実行することができ、つまり、簡潔なツールモデル220を生成し、その簡潔なツールモデル220を続けて、プログラム250によって自動的に変換することができる。プログラム250は、より詳細なツールモデル260に対する入力としてのデフォルト、派生、標準の要素230も受け取ることができる。変換を支援するために、データベース、テンプレート、若しくはその他のファイル又はプログラムを、プログラム250にリンクさせることができる。続けて、ツールモデル220又は260を所望の機能、例えばツール210に関するドキュメント又はプログラムへと変換又は翻訳(参照番号270又は275)することができる。
図3には、幾つかの実施の形態による、ツールをモデリングするためのプロセスが概略的に示されている。イクイップメント又はツールをツールモデル310に翻訳することができる。ツールモデル310を、例えばソフトウェアプログラム又はツールコンパイラ340によって、種々のマニュアル、例えばユーザマニュアル370、ソフトウェアマニュアル372、サービスマニュアル374、メンテナンスマニュアル376、修理マニュアル378又は他の種類のマニュアルに翻訳又は変換することができる。ツールモデル310を、種々のソフトウェアプログラム、例えばオペレーティングソフトウェア380、テストソフトウェア390、診断ソフトウェア、ビルドソフトウェア又は他の種類のソフトウェアに翻訳又は変換することができる。種々のファイル325をプログラム340に組み込み、ツールモデルに関する、デフォルトコンポーネント、派生コンポーネント、標準コンポーネント、又はその他の付加的なコンポーネントを提供することができる。更に、データベーステンプレート360、例えば、ドキュメントのフォーマット又はスタイルのテンプレートを使用して、ドキュメンテーションに対する所望のフォーマット又はスタイル370〜378を提供することができる。ソフトウェアのフォーマット又はスタイルのテンプレートを使用して、ソフトウェア380又は390に対して所望のフォーマット又はスタイルを提供することができる。
択一的に、ツールモデル310を、プログラム320によって、より詳細なツールモデル330に変換することができる。より詳細なツールモデル330は、データベース又はファイル325から、デフォルトコンポーネント、派生コンポーネント及び標準コンポーネントを取り込むことができる。ツールモデル330を、例えばソフトウェアプログラム又はツールコンパイラ350によって、種々のマニュアル、例えばユーザマニュアル370、ソフトウェアマニュアル372、サービスマニュアル374、メンテナンスマニュアル376、修理マニュアル378又は他の種類のマニュアルに翻訳又は変換することができる。ツールモデル330を、種々のソフトウェアプログラム、例えばオペレーティングソフトウェア380、テストソフトウェア390、診断ソフトウェア、ビルドソフトウェア又は他の種類のソフトウェアに翻訳又は変換することができる。データベーステンプレート365、例えば、ドキュメントのフォーマット又はスタイルのテンプレートを使用して、ドキュメンテーションに対する所望のフォーマット又はスタイル370〜378を提供することができる。ソフトウェアのフォーマット又はスタイルのテンプレートを使用して、ソフトウェア380又は390に対して所望のフォーマット又はスタイルを提供することができる。
幾つかの実施の形態においては、ツールモデルをツールの設計又は解析によって作成することができる。ツールモデル表現を、ツールの要素又はコンポーネントを、対応するテキスト表現、グラフィック表現、シンボル表現、又は、オブジェクトコードによる表現に記述することによって作成することができる。例えばツールの各要素又はコンポーネントを、例えばモータ、センサ等のハードウェア要素に関して、又は、例えば位置0への回転、位置90への回転等のような機能に関して、又は、例えば位置0、位置90、位置0から位置90への回転等のような状態又は状態モデルに関して記述することができる。
幾つかの実施の形態においては、ユーザによって選択された機能に従い、イクイップメントの表現を作成するためにシステム及び方法を実施することができる。例えば、ユーザはシステムを使用して、イクイップメントに関係するドキュメントを作成することができる。例えば、システムは適切なインタフェース、データベース及び/又はテンプレートを使用して、ツールモデル表現をユーザマニュアル、サービスマニュアル、修理マニュアル、オペレーティングソフトウェアのマニュアル及び対応するオペレーティングソフトウェアユーザマニュアル、又は、ビルド/テスト/診断ソフトウェアのマニュアル及び対応するソフトウェアのユーザマニュアルに翻訳することができる。
ツールモデル表現は、ツールの他のターゲットオブジェクトへの翻訳又は変換を容易にすることができる。例えば、ターゲットオブジェクトはマニュアル、例えばツールのドキュメンテーション、又はソフトウェア、例えばツールを実行するためのプログラムを含むことができる。ツールコンパイラは、幾つかの実施の形態において、各オブジェクトの編集、派生及び/又は変更を容易にすることができる。
幾つかの実施の形態においては、イクイップメントにおける各モジュールをツールモデルモジュールとして実施することができる。各ツールモデルモジュールは、例えば、ツールモデルモジュールによって表されるモジュールに関連するメソッド、プロパティ、関数及び/又はその他の特性を表す。ツールモデルベースの表現を、ツールモデルの編集及び変更を容易にするために使用することができる。更に、他の要素又はコンポーネントを、ツールモデル表現におけるモジュールから派生させることができる。
図4には、幾つかの実施の形態による、ツールモデルの生成が概略的に示されている。レチクル保管部400は、種々のモジュール、例えばロードロックモジュール410及び420、回転モジュール430、ロボットハンドラモジュール440、保管モジュール450及び支持モジュール460を含むことができる。ポッドに保管されているレチクルを、ロードロック410又はロードロック420に供給することができ、ロボットハンドラ440によって拾い上げることができる。レチクルを回転ステーション430に置き、位置合わせして、レチクルの識別子を読み取ることができる。その後、レチクルを再び拾い上げて、保管部450に置くことができる。支持モジュール460は、レチクル保管システム400の動作に関する、真空による支持、ガス供給、出力制御及びソフトウェア制御を提供することができる。レチクル保管システム400をツールモデル405に翻訳(参照番号490)することができ、このツールモデル405は、レチクル保管部400の記述を含むことができる。
図5には、幾つかの実施の形態による、ツールモデルが概略的に示されている。ツールモデル530は、名前部分560を含むことができ、この名前部分560はツールの記述も含むことができる。例えば、レチクル保管部に関しては、この名前部分560はレチクルストッカの名前と、そのレチクルストッカがレチクルの保管部であることの記述と、を含むことができる。ツールモデル530は、状態モデル部分561を含むことができ、この状態モデル部分561は、ツールの状態、例えばオンライン状態、オフライン状態、レチクルは搬送の準備ができているという状態、レチクルは回転ステーションにある状態等を含むことができる。また状態の遷移は、オンライン状態からオフライン状態への遷移、又は、レチクルがロードロックにある状態からレチクルが回転ステーションにある状態への遷移を含むことができる。状態モデル561は、状態間の種々のリンク及びツールに関する状態遷移を示す図を含むことができる。ツールモデル530は、コマンド部分562を含むことができ、このコマンド部分562は、レチクルを積み入れるコマンド、レチクルを取り出すコマンド、レチクルを回転させるコマンド、レチクルIDを読み取るコマンドを含むことができる。ツールモデル530は、ステータス部分563を含むことができる。ツールモデル530は、イクイップメント部分564を含むことができ、このイクイップメント部分564は、ロードロックモジュール、回転モジュール、ロボットモジュール、保管モジュール及び支持モジュールを含むことができる。モジュールの個々のイクイップメントを記述することもできる。ツールモデル530は、言語部分565、例えばi18nファイルを含むことができ、この言語部分565は、ツールモデルを種々の言語に機械翻訳して出力することができる。i18nファイルは、ソフトウェアアプリケーションを設計するプロセスを参照するものであり、潜在的には、エンジニアリングを変更することなく、局地的に特化したコンポーネント及び翻訳テキストを追加することによって特定の地域又は言語に国際化ソフトウェアを適合させるプロセスを用いて、種々の言語及び地域に適合させることができる。ツールモデル530は、標準部分566を含むことができ、この標準部分566によって、規則又は標準が要求するコンポーネントを取り込むことができる。ツールモデル530は、シミュレーション部分567を含むことができ、このシミュレーション部分567は、ツールシミュレーションを生成することができ、例えば、幾つかのコンポーネントを必要とせずにツールを実行することができる。ツールモデル530は、ツールモデルをソフトウェアプログラムに変換することができるサブルーチン部分568、例えばモータを回転させるためのオブジェクトコード又はセンサを読み取るためのオブジェクトコードを含むことができる。それ以外の部分、例えば外部ファイルへのリンケージ、例えばツールモデルを読みやすくするためのリンケージを含むこともできる。
幾つかの実施の形態においては、一つのツールモデルが、異なるモジュールに関する複数のツールモデルのような複数の部分を含むことができる。ツールモジュールは、一つのツールの複数のハードウェアコンポーネントのセットであってよい。例えば、ツールモジュールはモータであってよいが、回転可能なモータ及び動きの位置を検出する複数のセンサを含む回転ステーションであってもよい。
図6には、幾つかの実施の形態による、ツールのマルチモジュールツールモデルへの翻訳が概略的に示されている。レチクル保管部600は、種々のモジュール、例えばロードロックモジュール610及び620、回転モジュール630、ロボットハンドラモジュール640、保管モジュール650及び支持モジュール660を含むことができる。レチクル保管部600をツールモデル605に翻訳することができ、このツールモデル605は、それぞれが一つのツールモジュールに対応する種々のツールモデルモジュールを含んでいる。例えば、ツールモデル605は、ツール600の全てのモジュールの統合体の表現であるツールモデル675を含むことができる。ツールモデル605は、それぞれがロードロックモジュール610及び620の記述を含んでいるツールモデル615及び625を含むことができる。ツールモデル605は、回転ステーションモジュール630を含んでいるツールモデル635を含むことができる。ツールモデル605は、ロボットハンドラモジュール640の記述を含んでいるツールモデル645を含むことができる。ツールモデル605は、保管モジュール650の記述を含んでいるツールモデル655を含むことができる。ツールモデル605は、支持モジュール660の記述を含んでいるツールモデル665を含むことができる。
図7には、幾つかの実施の形態による、レチクルストッカのモジュール統合体に関するツールモデルの一例が示されている。ツールモデル780は、モジュール統合体の名前部分760、状態部分761、コマンド部分762、ステータス部分763、イクイップメント部分764及びエラー部分765を含むことができる。ツールモデル780は、それら複数のモジュールに特化した記述に関する別個のツールモデルと共に、種々のモジュールの統合体の記述を含んでいる。例えば、ツールモデル780の状態部分761は、ツール700の種々の状態、例えばメンテナンス状態、初期設定状態、テスト実行サイクル状態及び生産状態を含むことができる。コマンド部分762は、ツールの運転に関するコマンド、例えばレチクルの積み入れに関するコマンド又はレチクルの取り出しに関するコマンドを含むことができる。ステータス部分763は、ツールのステータス、例えば、全体ステータス、真空ステータス、出力ステータス、気圧ステータス、メンテナンスステータス、エラーステータス、及び、緊急遮断(EMO:emergency off)ステータスを含むことができる。イクイップメント部分764は、ロードロック710及び720、回転ステーション730、ロボットハンドラ740、保管チャンバ750及び支持モジュール770を含むことができる。エラー部分765は、ロードロックエラー、回転ステーションエラー、ロボットエラー、保管チャンバエラー、支持エラー、接続エラー、イクイップメントエラー、初期設定エラー及び未知のエラーを含むことができる。
図8には、幾つかの実施の形態による、回転ステーションモジュールに関するツールモデルの一例が示されている。回転ステーション810は、回転モータ811を含むことができ、この回転モータ811は、基板816を回転させるように構成されている。回転ステーション810は、センサ812も含むことができ、このセンサ812は、基板816の存在を検出するように構成されている。回転ステーション810は、複数のセンサ813,814及び815も含むことができ、それらのセンサ813,814及び815は、回転の種々の位置を検出するように構成されている。例えば、レチクルは回転ステーションにおいて、IDを読み取ることができない位置に配置される可能性がある。従って、モータ811は、レチクルのIDがカメラのような読み取り機構に晒されるように種々の位置に回転させることができる。
回転モジュール810に関するツールモデル880は、回転モジュールの名前部分860、状態部分863、コマンド部分861、ステータス部分865、イクイップメント部分864及びエラー部分862を含むことができる。ツールモデル880は、回転ステーションの個々のコンポーネントに関する記述と共に、回転ステーション810の記述を含むことができる。例えば、ツールモデル880の状態部分863は、回転ステーション810の種々の状態、例えば位置0にある状態、位置90にある状態、位置180にある状態及びレチクルが検出された状態及びレチクルが検出されない状態を含むことができる。コマンド部分861は、回転ステーションの運転に関するコマンド、例えば、レチクルを位置0へと回転させるコマンド、レチクルを位置90へと回転させるコマンド、レチクルを位置180へと回転させるコマンド、及び、障害クリアコマンド又は回転停止コマンドのようなその他のコマンドを含むことができる。ステータス部分865は、回転ステーション810のステータス、例えば、レチクルが存在するか否か、モータが位置0にあるか否か、モータが位置90にあるか否か、モータが位置180にあるか否か、又は、回転ステーションにエラーがあるか否かを含むことができる。イクイップメント部分864は、モータ811、レチクルセンサ812及び位置センサ813〜815を含むことができる。エラー部分862は、モータエラー、位置センサエラー、レチクル検出センサエラー、接続エラー、イクイップメントエラー、初期設定エラー及び未知のエラーを含むことができる。
図9A及び図9Bには、幾つかの実施の形態による、ツールモデルを生成するためのフローチャートが示されている。図9Aにおいては、ツールモデルをツールから提供することができる。ツールモデルはツールの表現を含むことができ、従って、ツールに関する種々の機能、例えばツールドキュメンテーション又はツールソフトウェアを生成することができる。オペレーション900において、ツールモデルがツールから提供される。ツールモデルは、テキスト記述、イメージ記述、シンボル記述又はプログラム記述を含んでいる。テキスト記述は、ツールを記述するパラグラフ、例えばツール又はコンポーネントの機能を記述するパラグラフ、若しくは、ツールの目的又は状態を記述するパラグラフを含むことができる。イメージ記述は、図形を含むことができるか、又は、プログラムを使用して編集することができるソフトウェアファイル(例えばズーム、移動又は回転を行うことができる3Dファイルを)を含むことができる。シンボル記述は、例えば、ツールの付加的な情報又は記述を提供することができる外部のファイル又は要素へのリンクを含むことができる。プログラム記述は、オブジェクトコード又はソースコードを含むことができ、それらのコードによってソフトウェアプログラムは、例えばプログラムとのリンクによって、ツールを運転させることができる。
図9Bにおいては、複数のツールモジュールを含んでいるツールモデルをツールから提供することができる。オペレーション910においては、それぞれがツールの一つのツールモジュールに対応している、個々の複数のツールモデルを提供することができる。個々のツールモデルは、テキスト記述、イメージ記述、シンボル記述又はプログラム記述を含むことができる。オペレーション920においては、統合されたツールモデルが提供される。統合されたツールモデルは、テキスト記述、イメージ記述、シンボル記述又はプログラム記述を含むことができる。統合されたツールモデルは、モジュール間のインタラクションの情報及び記述を含むことができる。オペレーション930においては、ツールに関するツールモデルが提供され、その際、ツールモデルは個々のツールモデル及び統合されたツールモデルを含んでいる。
幾つかの実施の形態においては、イクイップメント又はツールをイクイップメントのツールモデル表現、又はイクイップメントのユーザ選択された機能、例えばドキュメンテーション又はソフトウェアに変換するために、ツールコンパイラを提供することができる。ツールコンパイラを高水準言語で提供することができ、また更には、低水準言語、例えば実行可能なアセンブリ言語又は中間言語へとソフトウェアコンパイルすることができる。
コンパイラプログラムは、変換プロセスを、例えばツールモデル表現変換を、所望の機能へと、例えばツールドキュメンテーション又はソフトウェアへと、又は、対応する低水準言語へと、又は、実行可能な言語表現へと、又は、中間言語表現へと変換するためにも使用することができる。コンパイラは、例えば、ツールモデルを例えばドキュメンテーションに変換することができるコンパイラインタフェースを使用することができる。コンパイラインタフェースは、コンパイルプロセスの結果、例えば対応するオブジェクトコード、コンパイルプロセスに関連する何らかのエラーの示唆、及び/又は、生成されたアセンブリについてのポインタ又はファイル名を戻すことができる。
幾つかの実施の形態においては、ツールを対応するツールモデル表現(例えばテキスト表現、グラフィック表現、シンボル表現又は実行可能なプログラム表現)に変換するためにツールコンパイラを使用することができる。例えば、ツールコンパイラは、単純化された又は簡潔なツールモデルをツールの所望のツールモデル表現に変換することができる、関連するインタフェースコンポーネントを有しているインタフェースを使用することができる。例えば、インタフェースコンポーネントは、デフォルトオブジェクト、提供されたオブジェクトからの派生したオブジェクト、及び、規則、例えば標準規則又は安全規則を満たすオブジェクトに関する表現を生成するために各コンポーネントを含むことができる。ツールモデル表現は、いずれかの特定の言語への変換を可能にする国際的なコンポーネント、例えばi18nファイルも含むことができる。
幾つかの実施の形態においては、ツール又はイクイップメントをモデリングするためにツールハードウェア記述言語(THDL:Tool Hardware Description Language)を用いる高水準言語(HLL)のファンクションの使用に関するシステム及び方法が提供される。それらの方法は、HLLのファンクションをツールのツールモデル表現に組み込むステップを備えることができる。またそれらの方法は、ツールのツールモデル表現の属性を識別するステップと、属性の派生物、例えばデフォルトコンポーネント、派生コンポーネント、又は規則を満たすコンポーネントを求めるステップと、を備えている。
幾つかの実施の形態においては、ツールをその記述表現に変換するため、また記述表現をユーザ定義された機能、例えばツールに関するソフトウェアのドキュメンテーションに変換するためのシステム及び方法が提供される。ユーザ定義された機能へのツールモデル表現の変換を、上述の方法を実行するツールコンパイラを使用して達成することができる。
幾つかの実施の形態においては、コンパイラは関連するリンクを読み出すことができるか、又はロードすることができる。リンクファイルは、大きいツールをコンパイルするために使用されるべきモジュール式アプローチ又はインクリメンタルアプローチを容易にすることができ、またそのようなアプローチを実現することができる。またリンクファイルは、その他の必要とされるコンポーネント又は要素を含むことを容易にすることができ、またそれを実現することができる。例えば、複数のモジュールを有している一つのツールを、多数のモデルモジュールによって表現することができる。
幾つかの実施の形態においては、同一のツールのツールモデル入力に基づいて、より詳細なツールモデル表現を生成するためのシステム及び方法が提供される。単純化されたツールモデル表現を人間によって準備することができる。この単純化ツールモデルを、例えばソフトウェアプログラムによって処理して、より詳細な、又はより完全なツールモデル表現を戻すことができる。
幾つかの実施の形態においては、詳細なツールモデルを、ツールモデル入力に基づくプロセスの生成を提供するためにライブラリ、データベース、テンプレート又はその他のコンポーネントにリンクさせることができるプログラムから生成することができる。幾つかの実施の形態においては、詳細なツールモデルを、ユーザからの入力に基づいて付加的な情報を提供することができるインタラクティブなテンプレート又はプログラムから生成することができる。
幾つかの実施の形態においては、単純化されたツールモデル表現はツールの記述を含むことができ、また、人間が要する労力及び時間が最小限となるように設計することができる。例えば、ツールの重要な要素を、単純化されたツールモデルに入力することができる。その他の要素又はコンポーネントを、例えば、ライブラリ、テンプレート又はプログラムによって自動的に生成することができる。
単純化されたツールモデルは、ツールの物理的なハードウェア、例えばモータ、センサ、計器、流量コントローラ、圧力コントローラ、真空ポンプ及びヒータを含むことができる。単純化されたツールモデルは、ツールのハードウェアモジュール、例えば回転ステーション、ロボットハンドラ、保管チャンバ、支持システム、例えば真空アセンブリ、ガス供給アセンブリ、電気的な搬送部、及びホスト通信アセンブリを含むことができる。例えば、回転ステーションを、回転モータ、回転されるように構成されている基板の存在を検出するセンサ、回転モータの位置、例えば回転モータが0°、90°又は180°のいずれかの位置にあることを検出する複数のセンサを有するように記述することができる。レチクル保管部は、ロードロックモジュール、回転ステーションモジュール、ロボットハンドラモジュール、保管チャンバモジュール、及び機械的な支持、電気的な支持、真空による支持及び通信による支持を提供する支持モジュールを有するように記述することができる。
その他の記述、例えばツールの機能又は状態も使用することができる。例えば、回転ステーションを、回転されるように構成されている基板の存在を検出する機能、基板を0°、90°又は180°のいずれかの位置へと回転させる機能を有するように記述することができる。択一的に、回転ステーションを、複数の状態を有するように、例えば基板が存在する状態、基板が存在しない状態、0°の位置へと回転する状態、90°の位置へと回転する状態又は180°の位置へと回転する状態を有するように記述することができる。レチクル保管部を、保管チャンバに保管されるべきレチクルを収容する機能、保管チャンバからレチクルを取り出す機能、保管チャンバに保管されているレチクルを識別する機能、レチクルを保管するために利用可能な保管コンパートメントをカウントする機能、及び、ホストシステムと通信するためのコマンドを有するように記述することができる。
図10Aから図10Cには、幾つかの実施の形態による、単純化されたツールモデルの種々の実施例が示されている。図10Aにおいて、ツールモデル1030は、ツール又はツールモジュールの名前1060及びコマンド記述1061を含むことができる。他の記述を、ツールモデル1030から生成して、より詳細なツールモデルを提供することができる。図10Bにおいて、ツールモデル1033は、ツール又はツールモジュールの名前1060及びイクイップメント記述1062を含むことができる。他の記述を、ツールモデル1033から生成して、より詳細なツールモデルを提供することができる。図10Cにおいて、ツールモデル1036は、ツール又はツールモジュールの名前1060及び状態記述1063を含むことができる。他の記述を、ツールモデル1036から生成して、より詳細なツールモデルを提供することができる。
幾つかの実施の形態においては、ツールモデルに関する最小限の記述を使用することができる。最小限のツールモデルが十分でないことが分かれば、付加的な記述を追加することもできる。ツールモデルの最小限の記述を、ツールモデルの目的に応じて決定することができる。例えば、ソフトウェアを生成するために設計されている最小限のツールモデルは、ツールのコンポーネントの物理的な記述は含まずに、ツールの種々のコンポーネントと通信するため、また種々のコンポーネントを運転するためのオブジェクトコードを有することができる。
幾つかの実施の形態においては、単純化されたツールモデルを、より詳細なツールモデル又はより完全なツールモデルに変換することができる。この変換は、デフォルトコンポーネント、記述されたコンポーネントから派生したコンポーネント、又は、特定のルール又は規則を順守するために生成されたコンポーネントの取り込みを含むことができる。その他のコンポーネント、例えばホスト通信、イクイップメント通信及びオペレーションプログラム等も変換プロセスに含めることができる。
幾つかの実施の形態においては、ツールモデルに関する完全な記述を、単純化されたツールモデルから生成することができる。ツールモデルの完全な記述を、ツールモデルの目的に応じて決定することができる。例えば、修理ドキュメンテーションのために設計された完全なツールモデルは、プログラムコンポーネントを含まずに、コンポーネントの導入及びテストに関する情報を有することができる。更には、例えばツールモデルコンフィギュレーションの目的であるツールのソフトウェアのコンフィギュレーションのようなアウトプットを生成している間に、付加的な記述を提供することができる。
上述の方法は、ツールのツールモデル表現の合成の間に、属性に関する派生物を使用するステップを備えることができる。派生物の決定は、デフォルトコンポーネント、派生コンポーネント又は標準コンポーネントを自動的に生成するファンクションの呼び出し及び実行を含むことができる。属性は、コンポーネント、モジュール、状態モデル、又は、ツールの機能であってもよく、派生物の決定は、所定の要求に従うツールモデルの提供を含むことができる。
上述の方法は更に、ツールのツールモデル表現のコンパイルの間にアクセスされるべきライブラリを特定するステップを備えることができる。ライブラリは、ツール又はツール産業に関する標準、データベース、ルールドキュメント又はテンプレートを含むことができる。
幾つかの実施の形態においては、変換プロセスは、デフォルトコンポーネントの生成を含むことができる。例えば、回転ステーションの単純化されたツールモデルは、回転モータを位置0へと回転させるためのコマンドを含むことができる。変換プロセスは、モータを回転させるコマンドの他に、例えばコントローラからモータへの通信確立コマンド又は初期設定コマンドを生成することができる。更に、位置0にあるセンサのステータスの変化を検出する検出コマンド及び停止コマンドを生成し、モータを位置0へと回転させるコマンドを完全なものにすることができる。その他のデフォルトコンポーネント、例えば、回転ステーションの経過及びステータスを記録するためのログコマンド;回転動作の間に発せられた何らかの警告を記憶する警告ログコマンド;エラーが深刻なものである場合にオペレータに対して警告するか、若しくは、エラーが深刻でないか又はリカバリ可能である場合にエラーを無視するか又はコマンドを繰り返す、プロセスエラーに対するエラーリカバリコマンド;あらゆるエラーをクリアするための障害クリアコマンドも生成することができる。デフォルトコンポーネントを事前に規定し、変換プロセスにリンクさせることができる。デフォルトコンポーネントは、利用可能なコンポーネントを、その利用可能なコンポーネントに関連するその他の種々のコンポーネントにリンクさせるルールセットから生成することができる。デフォルトコンポーネントの生成は、変換プロセスにリンクされたライブラリ又はデータベースフォーマットに提供することができる付加的な情報を要求することができる。
幾つかの実施の形態においては、変換プロセスは、派生コンポーネント、例えば既存のコンポーネントからの派生する付加的なコンポーネントの生成を含むことができる。例えば、単純化されたツールモデルは、ツールの物理的なハードウェアコンポーネント及び/又はモジュールを含むことができる。変換プロセスは、ツールハードウェアから派生するその他のコンポーネント、例えばコマンド、ステータス、状態、状態モデル又はプログラムコードを生成することができる。例えば、回転ステーションの単純化されたツールモデルは、回転するモータを、そのモータの位置を検出し、また、基板が存在するか否かを検出するための複数のセンサと共に、含むことができる。モータ及びセンサを、コマンドコンポーネントの派生に使用することができる。例えば、変換プロセスは、回転モータを、位置センサによって検出された位置へと回転させるコマンド、及び、基板の存在を検出するコマンドを生成することができる。その他の派生コンポーネント、例えば、回転ステーションのステータス、例えば基板が存在するか否か、又は、モータの位置;回転ステーションの状態、例えば位置0,90,180についての状態0〜2、基板が検出される状態3及び基板が検出されない状態4;種々の状態間の状態遷移、状態及び状態遷移を含む状態モデル、及び、回転モータを運転させるため、またセンサを読み取るためのソフトウェアコードも、生成することができる。
派生コンポーネントを事前に規定し、変換プロセスにリンクさせることができる。派生コンポーネントは、利用可能なコンポーネントを、その利用可能なコンポーネントに関連するその他の種々のコンポーネントにリンクさせるルールセットから生成することができる。派生コンポーネントの生成は、変換プロセスにリンクされたライブラリ又はデータベースフォーマットに提供することができる付加的な情報を要求することができる。
図11には、幾つかの実施の形態による、ツールモデルからのその他の記述の生成が示されている。図11には、モータ1111、レチクルセンサ1112及び複数の位置センサ1113〜1115を有している、回転ステーション1110が示されている。回転ステーション1110に関するツールモデル1180は、名前1160及びコマンドの記述1161を含むことができ、このコマンドの記述1161は、回転させるコマンド、レチクルを検出するコマンド、障害クリア及び停止コマンドを含んでいる。それらのコマンドに関するプレコンディション、例えば、コマンドを実行できる前にツール又は回転ステーションはイネーブル状態にあるという要求を含ませることができる。その他のプレコンディションは、モータが回転する前に要求されるレチクルの検出であってよい。ツールモデル1180を、状態記述1163、イクイップメント記述1164、ステータス記述1165及びエラー記述1162のような付加的な記述を含むことができるより詳細なツールモデル1182に変換(参照番号1170)することができる。
状態記述1163は、回転するモータの種々の状態、例えば位置0にある状態、位置90にある状態及び位置180にある状態を含むことができる。状態記述はまた、レチクルが検出された状態又はレチクルが検出されない状態も含むことができる。それらの状態をコマンド記述1161から派生させることができる。例えば、位置0へと回転させるコマンドを使用して、位置0にある状態を派生させて追加することができる。レチクルを検出するコマンドを使用して、レチクルが検出された状態又はレチクルが検出されない状態を派生させて追加することができる。
イクイップメント記述1164は、回転ステーションの種々のイクイップメント、例えば回転モータ1111、レチクルセンサ1112、位置0、位置90及び位置180にある複数の位置センサ1113〜1115を含むことができる。このイクイップメント記述をコマンド記述1161から派生させることができる。例えば、位置0へと回転させるコマンドを使用して、モータのイクイップメント及び位置0にあるセンサのイクイップメントを派生させて追加することができる。レチクルを検出するコマンドを使用して、レチクルセンサのイクイップメントを派生させて追加することができる。
ステータス記述1165は、回転ステーションの種々のステータス、例えば、レチクルが検出されるか否か、モータが位置0にあるか否か、モータが位置90にあるか否か、又は、モータが位置180にあるか否か、また、回転ステーションにエラーがあるか否かを含むことができる。それらのステータスをコマンド記述1161から派生させることができる。例えば、位置0へと回転させるコマンドを使用して、モータが位置0にあるか否かのステータス、またシステムにエラーがあるか否かのステータスを派生させて追加することができる。レチクルを検出するコマンドを使用して、レチクルが存在するか否かのステータスを派生させて追加することができる。
エラー記述1162は、回転ステーションの種々のエラー、例えば、モータにエラーがあるか否か、位置0にあるセンサにエラーがあるか否か、位置90にあるセンサにエラーがあるか否か、位置180にあるセンサにエラーがあるか否か、レチクルセンサにエラーがあるか否か、接続エラーがあるか否か、イクイップメントエラーがあるか否か、初期設定エラーが存在するか否か、及び、未知のエラーがあるか否かを含むことができる。それらのエラーをコマンド記述1161から派生させることができる。例えば、位置0へと回転させるコマンドを使用して、モータにエラーがあるか否かのエラー、位置0にあるセンサにエラーがあるか否かのエラー、接続エラーがあるか否かのエラー、イクイップメントエラーがあるか否かのエラー、初期設定エラーがあるか否かのエラー、及び、未知のエラーがあるか否かのエラーを派生させて追加することができる。
図12には、幾つかの実施の形態による、ツールモデルからのその他の記述の生成が示されている。図12には、モータ1211、レチクルセンサ1212及び複数の位置センサ1213〜1215を有している、回転ステーション1210が示されている。回転ステーションに関するツールモデル1280は、名前1260及びイクイップメントの記述1264を含むことができ、このイクイップメントの記述1264は、回転モータ1211、レチクルセンサ1212、位置0、位置90及び位置180にある複数の位置センサ1213〜1215を含んでいる。
ツールモデル1280を、状態記述1263、コマンド記述1261、ステータス記述1265及びエラー記述1262のような付加的な記述を含むことができるより詳細なツールモデル1282に変換(参照番号1270)することができる。
状態記述1263は、回転するモータの種々の状態、例えば位置0にある状態、位置90にある状態及び位置180にある状態を含むことができる。状態記述はまた、レチクルが検出された状態又はレチクルが検出されない状態も含むことができる。それらの状態をイクイップメント記述1264から派生させることができる。例えば、モータ及び位置0にある位置センサを使用して、位置0にある状態を派生させて追加することができる。レチクルセンサを使用して、レチクルが検出された状態又はレチクルが検出されない状態を派生させて追加することができる。
コマンド記述1261は、回転ステーションの種々のコマンド、例えば、回転させるコマンド、レチクルを検出するコマンド、障害クリア及び停止コマンドを含むことができる。それらのコマンドに関するプレコンディション、例えば、コマンドを実行できる前にツール又は回転ステーションはイネーブル状態にあるという要求を含ませることができる。その他のプレコンディションは、モータが回転する前に要求されるレチクルの検出であってよい。それらのコマンドをイクイップメント記述1264から派生させることができる。例えば、モータ及び位置0にある位置センサを使用して、位置0へと回転させるコマンドを派生させて追加することができる。レチクルセンサを使用して、レチクルを検出するコマンドを派生させて追加することができる。
ステータス記述1265は、回転ステーションの種々のステータス、例えば、レチクルが検出されるか否か、モータが位置0にあるか否か、モータが位置90にあるか否か、又は、モータが位置180にあるか否か、また、回転ステーションにエラーがあるか否かを含むことができる。それらの状態をイクイップメント記述1264から派生させることができる。例えば、モータ及び位置0にある位置センサを使用して、モータが位置0にあるか否かのステータス、またシステムにエラーがあるか否かのステータスを派生させて追加することができる。レチクルセンサ及びレチクルを検出するコマンドを使用して、レチクルが存在するか否かのステータスを派生させて追加することができる。
エラー記述1262は、回転ステーションの種々のエラー、例えば、モータにエラーがあるか否か、位置0にあるセンサにエラーがあるか否か、位置90にあるセンサにエラーがあるか否か、位置180にあるセンサにエラーがあるか否か、レチクルセンサにエラーがあるか否か、接続エラーがあるか否か、イクイップメントエラーがあるか否か、初期設定エラーが存在するか否か、及び、未知のエラーがあるか否かを含むことができる。それらのエラーをイクイップメント記述1264から派生させることができる。例えば、モータ及び位置0にある位置センサを使用して、モータにエラーがあるか否かのエラー、位置0にあるセンサにエラーがあるか否かのエラー、接続エラーがあるか否かのエラー、イクイップメントエラーがあるか否かのエラー、初期設定エラーがあるか否かのエラー、及び、未知のエラーがあるか否かのエラーを派生させて追加することができる。
幾つかの実施の形態においては、変換プロセスは、標準コンポーネント、例えば、ルール、規則又は標準を満たすために要求される付加的なコンポーネントを含むことができる。例えば、変換プロセスは、例えば、高温のヒータ又は危険な化学物質に関する安全警報を生成することができる。変換プロセスは、ツールの標準化を満たすために要求されるコンポーネントを生成することもできる。例えば、半導体製造装置に関する標準はホスト通信プロトコルを含むことができ、例えば製造装置のベンダによって管理される製造装置コンピュータ及びコンポーネントにアクセスするために、設備システムによって管理されるリモートホストを半導体製造装置が提供するという要求を含むことができる。変換プロセスは、半導体製造装置に関する標準要求を生成することができ、例えば、例外管理の標準(例えばSemi E41標準)を満たすための警告リカバリアクション、警告タイプ、警告識別;又は、ホストに報告されるべきデータ及びイベントを、種々のコマンドと共に、ホストによって実行し、SECS/GEM(Semi Equipment Communications Standard/Generic Equipment Model, Semi E30 standard)の標準を満たすことができる。
例えば、変換プロセスは、半導体製造装置に関する標準コンポーネント、例えばレチクル保管部、データ、イベント報告、例外又は状態モデルを生成することができる。
例えば、標準変換プロセスは、ホスト通信コマンド、例えばコマンド識別子、コマンドパラメータ、ホストイベントレポート、例えばコマンドが拒絶された、コマンドがまもなく送信される、コマンドが送信された等のレポートを生成することができる。標準変換プロセスは、例外管理、例えば接続の問題、初期設定の問題、コンポーネントの問題等を生成することができ、それらはID番号、メッセージ及びリカバリアクションをそれぞれ有している。標準変換プロセスは、ツールに関する複数の状態及び状態遷移を含んでいる状態モデルを生成することができる。例えば、レチクル保管イクイップメントは、レチクル搬送状態モデル、アクセス状態モデル、レチクルポッド状態モデルのステータス等を有することができる。
標準コンポーネントを事前に規定し、変換プロセスにリンクさせることができる。標準コンポーネントは、例えば、ツールに関連する標準ドキュメントから変換されるルールセットから生成することができる。標準コンポーネントの生成は、変換プロセスにリンクされたライブラリ又はデータベースフォーマットに提供することができる付加的な情報を要求することができる。
図13には、幾つかの実施の形態による、ツールモデルからの標準記述の生成が示されている。図13には、モータ1311、レチクルセンサ1312及び複数の位置センサ1313〜1315を有している、回転ステーション1310が示されている。回転ステーションに関するツールモデル1380は、名前1360及びその他の記述を含むことができる。
ツールモデル1380を、半導体製造装置に関するSemi標準のような標準要求1363を満たす付加的な記述を含むことができるより詳細なツールモデル1382に変換(参照番号1370)することができる。標準記述は、リモートユニークID1373、変数1371、イベント報告1372、警告1374、状態モデル1375及びリモートコマンド1376を含むことができる。標準記述を、半導体製造装置に関するSemi標準、例えばホスト通信に関する標準E30、例外管理に関する標準E41及びレチクル管理に関する標準E109から派生させることができる。
リモートユニークID1373を、特定のイベントに関するユニークな識別を提供するために、カウンタから生成することができる。変数記述は、ツールのステータス及び状態を知るために、ホストによってポーリングすることができるデータを含むことができる。変数は、実行されたコマンドを識別することができるコマンド識別子、ツールを識別することができるイクイップメント識別子、コマンドに対して提供されるコマンドパラメータ、コマンドが実行されない理由を識別する、コマンドが拒絶された理由を含むことができる。その他の変数も追加することができる。
イベント報告1372は、コマンドが拒絶されたことを報告する、拒絶されたコマンドのイベント、コマンドがまもなく送信されることを報告する、まもなく送信されるコマンドのイベント、コマンドが送信されたことを報告する、送信されたコマンドのイベントを含むことができる。報告のためにその他のイベントも含ませることもできる。
警告1374は、PLCコントローラによってエラーが存在することを通知するPLC(programmable logic controller)警告、及び、レチクルがストッカにおいて検出され、従ってストッカを初期状態にできないことを通知する初期設定警告を含むことができる。その他の警告も含ませることができる。
状態モデル1375は、レチクルロードポートへのポッドのホストビューを規定する関連性状態モデル、イクイップメントアクセスモードのホストビューを規定するアクセスモード状態モデル、レチクルポッドのホストビューを規定するアクセス状態モデルを含むことができる。その他の状態モデル、例えばレチクル搬送状態モデル、レチクルIDステータス状態モデル、又は、ポッドスロットマップステータス状態モデルを含ませることができる。
リモートコマンド1376は、ホストシステムがツールに提供することができるコマンドを含むことができる。リモートコマンドは、レチクルIDのようなパラメータに関連させて、レチクルを配置するコマンドを含むことができる。その他のリモートコマンド、例えばポッドを配置するためのコマンドを含ませることができる。
図14には、幾つかの実施の形態による、ツールモデルからの状態モデルの生成が示されている。図14には、モータ1411、レチクルセンサ1412及び複数の位置センサ1413〜1415を有している、回転ステーション1410が示されている。回転ステーションに関するツールモデル1480は、名前1460及びその他の記述を含むことができる。
ツールモデル1480を、標準要求を満たす付加的な記述を含むことができるより詳細なツールモデル1482に変換(参照番号1470)することができる。標準記述は、状態モデル1463を含むことができる。
状態モデル1463は、レチクルロードポートへのポッドのホストビューを規定する結合状態モデル1421を含むことができる。関連性状態モデルは、ロードポートに対してポッドの関連性が存在しないことを表す、関連性のない状態を含むことができる。関連性状態モデルは、ポッドIDがレチクルロードポートに関連付けられていることを表す、関連性のある状態を含むことができる。その場合には、そのロードポートを、新たなロードポートの関連付けに対して利用することはできない。関連性状態モデルは、状態間の種々の遷移、例えば、システムリセット遷移を規定する遷移#1、レチクルロードポートにポッドIDが関連付けられたことを規定する、関連性のない状態から関連性のある状態への遷移#2、及び、関連性が解消されたことを規定する、関連性のある状態から関連性のない状態への遷移#3を含むことができる。
状態モデル1463は、アクセスモードを切り換えるためのイクイップメントとのホストインタラクションと共に、イクイップメントアクセスモードのホストビューを規定する、アクセスモード状態モデル1422を含むことができる。アクセスモード状態モデルは、手動でのみポッド搬送が許可されていることを表すマニュアル状態、及び、自動的なポッド搬送が許可されていることを表すオート状態を含むことができる。アクセスモード状態モデルは、状態間の複数の遷移、例えば、システムリセット遷移を規定する遷移#1、アクセスサービスのオート状態への変更が実行されたことを規定する、マニュアル状態からオート状態への遷移#2、アクセスサービスのマニュアル状態への変更が実行されたことを規定する、オート状態からマニュアル状態への遷移#3を含むことができる。
図15Aから図15Eには、幾つかの実施の形態による、ツールモデルを生成するためのフローチャートが示されている。図15Aにおいて、オペレーション1510では、人間がツールモデルを含んでいるファイルを作成する。ツールモデルは、ツールのテキスト記述、図形記述、シンボル記述又はプログラム記述を含んでいる。
図15Bにおいて、オペレーション1520では、人間がツールモデルを含んでいるファイルを作成するためにテンプレートを満たす。ツールモデルは、ツールのテキスト記述、図形記述、シンボル記述又はプログラム記述を含んでいる。
図15Cにおいて、オペレーション1530では、人間がツールモデルを含んでいるファイルを作成するためにテンプレートを満たす。ツールモデルは、ツールのテキスト記述、図形記述、シンボル記述又はプログラム記述を含んでおり、またテンプレートは入力に基づいて、プロンプト及びデータの自動生成と相互作用する。
図15Dにおいて、オペレーション1540では、入力としての単純化されたツールモデルを使用して、より詳細なツールモデルを含んでいるファイルを作成するためにプログラムが実行される。ツールモデルは、ツールのテキスト記述、図形記述、シンボル記述又はプログラム記述を含んでいる。
図15Eにおいて、オペレーション1550では、入力としての単純化されたツールモデルを使用して、より詳細なツールモデルを含んでいるファイルを作成するためにプログラムが実行される。ツールモデルは、ツールのテキスト記述、図形記述、シンボル記述又はプログラム記述を含んでおり、またテンプレートは入力に基づいて、データ及びプロンプトの自動生成と相互作用する。
図16A及び図16Bには、幾つかの実施の形態による、ツールモデルを生成するためのフローチャートが示されている。図16Aにおいて、オペレーション1600では単純化されたツールモデルが準備される。オペレーション1610では、単純化されたツールモデルがデータベースにリンクされる。データベースは、デフォルトコンポーネント、簡潔なツールモデルから派生したコンポーネント、又は、単純化されたツールモデルに関する標準を含んでいる。オペレーション1620では、単純化されたツールモデル及びデータベースから、より詳細なツールモデルが生成される。
図16Bにおいて、オペレーション1650では、標準がプログラムルールに変換されるか、又は、派生コンポーネントのデフォルトを生成するためにプログラムルールが形成される。オペレーション1660では、単純化されたツールモデルをモード詳細ツールモデルに変換するためのプログラムルールを使用してプログラムが生成される。
幾つかの実施の形態においては、例えば、ツールモデル入力から、より詳細なツールモデルを生成するテンプレートのためのシステム及び方法が提供される。デフォルトコンポーネント、派生コンポーネント、標準コンポーネント及び他のコンポーネントを含むファイルを作成し、より詳細なツールモデルの生成を支援することができる。例えば、デフォルトコンポーネント、派生コンポーネント、標準コンポーネント及びその他のコンポーネントを生成するために生成されたルールを、ライブラリ又はテンプレートに組み込むことができる。
幾つかの実施の形態においては、詳細なツールモデルを生成するためにプログラムによってテンプレートをリンクさせることができる。例えば、SECS/GEMテンプレートは、特定のコマンド及びプロトコルと共に、ホスト通信を生成するためのルールを含むことができる。例外管理テンプレートは、コマンド及び情報に関する警告、例えば警告ID、警告タイプ、警告メッセージ又は警告リカバリアクションを生成するためのルールを含むことができる。レチクル管理に関する標準は、イクイップメントに関連するレチクルに対して使用することができ、また、状態、状態遷移及びレチクルの活動に関する状態モデルを生成するためのルールを含むことができる。その他のテンプレートを、安全規則に対して使用することができるか、デフォルトコンポーネントを生成するために使用することができるか、又は、派生コンポーネントを生成するために使用することができる。
幾つかの実施の形態においては、詳細なツールモデルを生成するために相互対話によってテンプレートをリンクさせることができる。例えば、ユーザがツールコンポーネントを入力した後に、相互対話によって、考えられるホスト通信コマンド、考えられる警告条件及び考えられる状態モデルを生成することができる。生成されたコンポーネントを自動的に受け取ることができるか、又は、ユーザは、詳細なツールモデルに含まれるべき適切なコンポーネントを選択することができる。更には、例えば、デフォルトコンポーネント、派生コンポーネント又は標準コンポーネントの生成を完全なものにするために、相互対話はユーザに対して付加的な情報の入力を要求することができる。例えば、対話は、例外管理標準が処理されているか否か、又はホスト通信が含まれるべきか否かを問い合わせることができる。
幾つかの実施の形態においては、ツールモデルをユーザ定義された機能、例えばツールドキュメンテーション又はツールソフトウェアプログラムに変換するためのシステム及び方法が提供される。それらの方法は、イクイップメント又はツールの翻訳、若しくは、ユーザ定義された機能、例えばツールドキュメンテーション又はツールソフトウェアプログラムへの翻訳を含むことができる。
幾つかの実施の形態においては、ツールのハードウェア記述であるツールモデル表現が、ユーザ定義された機能、例えば詳細なツールモデル、ツールのドキュメンテーション又はツールに関するソフトウェアへの変換が行われる。
幾つかの実施の形態においては、ハードウェア記述ツールモデル表現をユーザ定義された機能に変換又は翻訳するためのツールコンパイラが提供される。幾つかの実施の形態においては、それらの方法は、本方法を実行できるツールコンパイラを使用した、ツールモデルによって表される、ツールの少なくとも一つのセクションの、ユーザ定義された機能への変換を含むことができる。本発明に関して、ツールの「セクション」とは、ツールのコンポーネント、モジュール又は要素のコレクションを表す。
幾つかの実施の形態においては、ツールコンパイラ又は、本方法のステップを実行するようにプログラミングされているコンピュータプログラムによって本方法を実施することができる。更には、コンパイラは、本発明による方法が実行されるユーザ定義された制約条件を受け取ることができる。そのような制約条件及び、それらの制約条件をコンパイラに引き渡すプロセッサは、デフォルトコンポーネントの追加、利用可能なコンポーネントから派生したコンポーネントの追加、又は、ツール規則を満たすために必要とされるコンポーネントの追加を含むことができる。
幾つかの実施の形態においては、ツールモデル入力に基づいて、ツールのドキュメンテーションを生成するためのシステム及び方法が提供される。ドキュメンテーションとして、ユーザマニュアル、ソフトウェアオペレーションマニュアル、サービスマニュアル、メンテナンスマニュアル、修理マニュアル、又は、他のいずれかの種類のドキュメンテーションが考えられる。ツールモデルは、ドキュメントを生成できるようにするためのツールのコンポーネントの記述を有する、ジェネリックツールモデルでよい。またツールモデルは、特定のドキュメントを生成できるようにするためのツールのコンポーネントの記述を有する、特化ツールモデルであってよい。例えば、コマンド記述を有しているツールモデルを、ソフトウェアオペレーションマニュアルを生成するために使用することができる。物理的なハードウェアコンポーネントの詳細な記述を有しているツールモデルを、修理マニュアルを生成するために使用することができる。システム又はコンポーネントの信頼性に関する記述を有しているツールモデルを、メンテナンスマニュアルを生成するために使用することができる。
幾つかの実施の形態においては、ツールモデルは、ドキュメントの生成を可能にする適切な記述を含むことができる。例えば、半導体標準に準拠するユーザマニュアルを生成するために、SECS/GEMコンポーネント、例外管理コンポーネント及び状態モデルコンポーネントを有しているツールモデルを、ドキュメントの生成に使用することができる。
幾つかの実施の形態においては、ツールモデルは、ドキュメントを生成できるようにするために必要とされる記述を生成することができる。例えば、半導体標準に準拠するユーザマニュアルを生成するために、ツールモデルは、標準コンポーネントは含まれていないことが確認された後に、SECS/GEMコンポーネント、例外管理コンポーネント及び状態モデルコンポーネントを収集するために、ドキュメントのその収集を継続する前に、標準テンプレートにアクセスすることができる。
図17には、幾つかの実施の形態による、ツールモデルからのドキュメントの生成が概略的に示されている。ツールモデル1710を、例えばソフトウェアプログラム又はツールコンパイラ1740によって、ドキュメンテーション1770、例えばユーザマニュアル、ソフトウェアマニュアル、サービスマニュアル、メンテナンスマニュアル、修理マニュアル又はその他の種類のマニュアルを作成するために翻訳又は変換することができる。種々のデータベース1760をプログラム1740に組み込み、ツールモデルに関する、デフォルトコンポーネント、派生コンポーネント、標準コンポーネント、又はその他の付加的なコンポーネントを提供することができる。更に、テンプレート1765、例えば、ドキュメントのフォーマット又はスタイルのテンプレートを使用して、ドキュメンテーションに対する所望のフォーマット又はスタイルを提供することができる。
図18には、幾つかの実施の形態による、別のやり方でのツールモデルからのドキュメントの生成が概略的に示されている。ツールモデル1820を、図形テンプレート1810及びテキストテンプレート1830と共に、テンプレートエンジン1840に提供することができ、このテンプレートエンジン1840は、テキストファイル1860と図形ファイル1850とを別個に形成するソフトウェアプログラムであってよい。テキストファイル1860及び図形ファイル1850をプロセッサ1870に供給し、ドキュメントを、例えばMicrosoft Wordフォーマット1880、Adobe Portable Documentフォーマット(PDF)1882又はハイパーテキストマークアップ言語(HTML)フォーマット1884で提供することができる。
幾つかの実施の形態においては、ドキュメンテーション生成プロセスは、所望のフォーマットを有しているドキュメントを提供するためにフォーマットテンプレへのリンクを含むことができる。例えば、フォーマットテンプレートは紙面上でのドキュメントの見栄え、例えばフォントタイプ、フォントサイズ、段落間の間隔、見出しの太字等に関する指示を含むことができる。フォーマットテンプレートは、ドキュメントにスタイルを提供するスタイルテンプレートを含むことができる。フォーマットテンプレートは、ドキュメント内の図形を管理する図形テンプレートを含むことができる。フォーマットテンプレートは、ドキュメントを種々の言語で提供するための国際テンプレート、例えばi18nファイルを含むことができる。フォーマットテンプレートは、その他のテンプレート、例えば特定の客層に提供される特殊テンプレート又はカスタムテンプレートを含むことができる。
幾つかの実施の形態においては、ドキュメンテーション生成プロセスは、テキストテンプレート、例えばDocBookテンプレート、及び、画像テンプレート、例えばdotテンプレートの作成を含むことができる。ツールモデルを、DocBookテンプレート及びdotテンプレートと共に、テンプレートエンジンに入力し、ツールモデルのテキスト情報を含んでいるDocBookドキュメントをDocBookフォーマットで生成し、また、ツールモデルの画像情報を含んでいるdotファイルを生成するために更に処理することができるdotドキュメントを生成することができる。DocBookドキュメント及びdotファイルを、オプションとしてのスタイルシートテンプレート共に、プロセッサに入力して、最終的なドキュメントを形成することができる。
図19には、幾つかの実施の形態による、別のやり方でのツールモデルからのドキュメントの生成が概略的に示されている。ツールモデル1920を、図形用のdotテンプレート1910及びテキスト用のDocBookテンプレート1915と共に、テンプレートエンジン1930に提供することができ、このテンプレートエンジン1930は、DocBookテキストドキュメント1945とdot図形ファイル1940とを別個に形成するソフトウェアプログラムであってよい。国際テンプレート1935、例えばi18nファイルをテンプレートエンジン1930に供給し、DocBookドキュメント及びdotファイルを異なる言語で形成することができる。dot図形ファイル1940をdotプログラム1950によって処理し、DocBookドキュメント1945と共に、XSLTプロセッサ1960に供給することができる。XSLTプロセッサ1960はXSL-FOドキュメント1970を作成することができ、このXSL-FOドキュメント1970をXSL-FOプロセッサ1980に供給し、ドキュメントを、例えばMicrosoft Wordフォーマット1990、Adobe Portable Documentフォーマット(PDF)1992又はハイパーテキストマークアップ言語(HTML)フォーマット1994で提供することができる。
図20には、幾つかの実施の形態による、ツールモデルからのドキュメンテーションの生成に関するフローチャートが示されている。オペレーション2010では、ツールモデルが受け取られる。オペレーション2020では、ドキュメントテンプレートが受け取られる。オペレーション2030では、ツールモデルがドキュメントテンプレートにマッピングされて、ツールに関するドキュメントが生成される。ドキュメントは、ユーザマニュアル、ソフトウェアマニュアル、サービスマニュアル及び修理マニュアルのうちの少なくとも一つを含んでいる。
幾つかの実施の形態においては、ツールモデル入力に基づいて、ツールのソフトウェアプログラムを生成するためのシステム及び方法が提供される。ソフトウェアプログラムは、オペレーティングソフトウェア、ビルドソフトウェア、サービスソフトウェア、信頼性試験ソフトウェア、診断ソフトウェア、又はその他のいずれかのソフトウェアプログラムであってよい。ツールモデルは、ハードウェアモジュールを動作させるための考えられるコマンドと共に、ソフトウェアコンポーネント、例えば、ハードウェアコンポーネントにアクセスできるようにするためのオブジェクトコード又はソースコードを含むことができる。
幾つかの実施の形態において、ツールモデルは、オブジェクトコードファイル又はソースコードファイルへのリンクを有することができ、このリンクは、ツールのコマンド、コンポーネント又はモジュールに関するソフトウェアの実行を含むことができる。例えば、ツールモデルは、モータコンポーネント、及び、モータを動かすため又はモータを停止するため又はモータに関するパラメータをセットするためのコマンドを含んでいるファイルへのリンクを有することができる。ツールモデルは、センサ、及び、センサを読み出すためのコマンドを含んでいるファイルへのリンクを有することができる。ツールモデルは、ロボットハンドラ、及び、ロボットを動かすためのコマンド、例えばロボットを回転させるため又はロボットアームを伸縮させるため又はロボットに関するパラメータ、例えばロボットの速度又は加速度を設定するためのパラメータをセットするためのコマンドを含んでいるファイルへのリンクを有することができる。
幾つかの実施の形態においては、ソフトウェア生成プロセスは、所望の機能を有しているソフトウェアプログラムを提供するためにフォーマットテンプレートへのリンクを含むことができる。例えば、フォーマットテンプレートはモニタ画面上でのプログラムの見栄え、例えばフォントタイプ、フォントサイズ、段落間の間隔、太字等に関するグラフィックページを含むことができる。フォーマットテンプレートは、ディスプレイ内の図形を管理する図形テンプレートを含むことができる。フォーマットテンプレートは、ソフトウェアプログラムによって実行される動作を提供するためのプレースホルダコマンドを含むことができる。フォーマットテンプレートは、見栄え、指示又はメッセージを種々の言語で提供するための国際テンプレート、例えばi18nファイルを含むことができる。フォーマットテンプレートは、その他のテンプレート、例えば特定の客層に提供される特殊テンプレート又はカスタムテンプレートを含むことができる。
幾つかの実施の形態においては、ソフトウェア生成プロセスは、ソフトウェアテンプレートのプレースホルダコマンドの、ツールモデルからのコマンドへの置換を含むことができる。ソフトウェアテンプレートを、ツールモデルからのコマンドでカスタマイズすることができ、従って、特にツールモデルの目的に応じて使用することができる。
幾つかの実施の形態においては、ツールモデル入力に基づいて、ツールのオペレーティングソフトウェアプログラムを生成するためのシステム及び方法が提供される。オペレーティングソフトウェアプログラムは、ツールを運転させ、データを収集し、ホストシステムに報告するために使用することができる。例えば、レチクル保管部に関するオペレーティングソフトウェアは、レチクルをロードロックから保管チャンバへと搬送するため、レチクルを保管チャンバからロードロックへと戻すため、保管チャンバ内のレチクルの在庫を供給するため、付加的なレチクルを保管するための保管チャンバ内の空場所、例えば利用可能なスペースをカウントするために使用することができる。オペレーティングソフトウェアは、例えば半導体製造装置に関するSECS/GEM標準に準拠するホスト通信を含むことができ、ファシリティのホストコンピュータはツールと通信することができ、例えばツールの状態を検索することができるか、又は、ツールに対するリモートコマンドを発行することができるか、又は、発行されたコマンド又はツールのその他の態様に関するツールの状態を受信することができる。
幾つかの実施の形態においては、例えば、プレースホルダコマンド、グラフィック要素、ソフトウェアテンプレートの入力ファイル及び出力ファイルを、ツールモデルからの対応する要素で置換することによって、ツールモデルをソフトウェアテンプレートにマッピングすることができる。オペレーティングソフトウェアを、ソフトウェアテンプレートのフォーマット、ツールモデルからのコマンド及び指示を有するように生成することができる。
図21には、幾つかの実施の形態による、ツールモデルからのオペレーティングソフトウェアの生成が概略的に示されている。ツールモデル2110を、ソフトウェアテンプレート2120及びライブラリプログラム2130と共に、ソフトウェアプログラム又はツールコンパイラ2170に供給して、オペレーティングソフトウェアプログラム2180を作成することができる。ソフトウェアテンプレート2120は、テンプレートの特別なグラフィック及びコマンドがツールモデルからのデータで置換されている、オペレーティングソフトウェア2180に関するフレームワークを提供することができる。ライブラリプログラム2130は、ソフトウェアプログラムの作成に関する付加的な情報、例えば、デフォルトコンポーネント、派生コンポーネント、標準コンポーネント、又はその他の付加的なコンポーネントを提供することができる。
図22には、幾つかの実施の形態による、オペレーティングソフトウェアに関するソフトウェアテンプレートの一例が示されている。ソフトウェアテンプレート2200は、プレースホルダコマンド及び情報と共に、オペレーティングソフトウェアのフレームワークを含むことができる。例えば、テンプレートは、ツールモデルからの特定のデータによって置換することができる、企業及びツール名のプレースホルダ情報を含むことができる。テンプレートはプレースホルダコマンド、例えば、コマンド2230のコレクション、特定のコマンド2231〜2233を含むことができ、それらをツールモデルからの特定のデータによって置換することができる。テンプレートは、ツールモデルからの特定のデータによって置換することができる、プレースホルダグラフィック2220を含むことができる。テンプレートは、オペレーティングソフトウェアフレームワーク、例えばオペレーション2210、レシピ2211及びステータス2212の複数のページを有しているフレームワークを、ツールの複数の態様、例えばジョブ2270、システム2271、ログ2272、警告2278及びヘルプ2279間の切換のための複数のボタンと共に含むことができる。テンプレートは、データを入力又は選択するための複数のフィールド、例えばレシピ選択2240又はコマンド選択2250のためのフィールドを含むことができる。
図23には、幾つかの実施の形態による、ツールモデルとソフトウェアテンプレートとの間のオペレーションのマッピングの一例が示されている。レチクルストッカ2320を表すツールモデル2310を、オペレーティングソフトウェアテンプレート2380に関する特定のデータ及び情報を作成するために使用することができる。ツールモデル2310は、コマンド2330に関するツール記述、例えばレチクルの積み入れ2331及びレチクルの取り出し2332、及び、グラフィック記述2340、例えばロードロック1 2341及びロードロック2 2342を含むことができる。ツールモデル2310は、ツールのモジュールに関するツール記述、例えば回転ステーションモジュール2350を含むことができ、この回転ステーション2350は、コマンド2360に関する記述、例えば位置0への回転2361及び位置90への回転2362、並びに、ステータス2370に関する記述、例えばレチクルは位置0にある2371及びレチクルは位置90にある2372を含むことができる。
コマンド2330及び2360を、テンプレートのプレースホルダコマンドをツールモデルからの特定のコマンドで置換することによって、ソフトウェアテンプレート2380のコマンドセクション2331にマッピングすることができる。同様に、グラフィック2340を、テンプレートのプレースホルダグラフィックコマンドをツールモデルからの特定のグラフィックで置換することによって、ソフトウェアテンプレート2380のグラフィックセクション2321にマッピングすることができる。テンプレートのその他のジェネリックセクション、例えばオペレーションセクション2310、レシピセクション2311及びステータスセクション2312は変更せずに維持することができる。
幾つかの実施の形態においては、ツールモデル入力に基づいて、ツールのテストソフトウェアプログラムを生成するためのシステム及び方法が提供される。テストソフトウェアプログラムを、ツールとそのモジュール及びコンポーネントをテストするために、ツールが完全に構成される前であっても、使用することができる。例えば、モジュールがビルドされると即座に、レチクル保管部に関するテストソフトウェアを、個々のモジュール、例えばロードロックモジュール、回転ステーションモジュール、ロボットモジュール、保管モジュール又は支持モジュールをテストするために使用することができる。更に、テストソフトウェアはビルドされたモジュール間の接続をテストすることができる。コンポーネント、モジュール及びシステムの信頼性を、例えば、テストプロシージャ又はテストシーケンスを繰り返すことによって、評価することができる。更には、カスタムシーケンスを提供して、顧客が何らかの特定のシーケンスを設計及びテストできるようにすることができる。
幾つかの実施の形態においては、例えば、プレースホルダコマンド、グラフィック要素、ソフトウェアテンプレートの入力ファイル及び出力ファイルを、ツールモデルからの対応する要素で置換することによって、ツールモデルをソフトウェアテンプレートにマッピングすることができる。テストソフトウェアを、ソフトウェアテンプレートのフォーマット、ツールモデルからのコマンド及び指示を有するように生成することができる。
図24には、幾つかの実施の形態による、ツールモデルからのテストソフトウェア又は診断ソフトウェアの生成が概略的に示されている。ツールモデル2410を、ソフトウェアテンプレート2420及びライブラリプログラム2430と共に、ソフトウェアプログラム又はツールコンパイラ2470に供給して、テストソフトウェアプログラム又は診断ソフトウェアプログラム2480を作成することができる。ソフトウェアテンプレート2420は、テンプレートの特別なグラフィック及びコマンドがツールモデルからのデータで置換されている、テストソフトウェア又は診断ソフトウェア2480に関するフレームワークを提供することができる。ライブラリプログラム2430は、ソフトウェアプログラムの作成に関する付加的な情報、例えば、デフォルトコンポーネント、派生コンポーネント、標準コンポーネント、又はその他の付加的なコンポーネントを提供することができる。
図25には、幾つかの実施の形態による、テストソフトウェア又は診断ソフトウェアに関するソフトウェアテンプレートの一例が示されている。ソフトウェアテンプレート2500は、プレースホルダコマンド及び情報と共に、テストソフトウェア又は診断ソフトウェアのフレームワークを含むことができる。例えば、テンプレートは、ツールモデルからの特定のデータによって置換することができる、企業及びツール名のプレースホルダ情報を含むことができる。テンプレートはプレースホルダコマンド、例えば、コマンド2540のコレクション、特定のコマンド2541〜2543を含むことができ、それらをツールモデルからの特定のデータによって置換することができる。テンプレートはプレースホルダステータス2530、例えば、ステータス1〜3 2531〜2533、モジュール2520〜2529含むことができ、それらをツールモデルからの特定のデータによって置換することができる。テンプレートは、テストソフトウェアフレームワーク又は診断ソフトウェアフレームワーク、例えば一般的なイクイップメント2580のオペレーションの複数のページ及びテストプロシージャを有しているフレームワークを、ツールの複数の態様、例えばジョブ2570、システム2571、ログ2572、警告2578及びヘルプ2579間の切換のための複数のボタンと共に含むことができる。テンプレートは、データを入力又は選択するための複数のフィールド、例えばコマンド選択2550のためのフィールドを含むことができる。テンプレートは、データを報告するためのフィールド、例えばログ選択2560のためのフィールドを含むことができる。テンプレートは、コマンドを選択することができるか、又はテストのための新たなコマンドシーケンスを形成することができる。新たなシーケンスを、将来における使用のために保管することができる。並列なシーケンスを形成することができる。
図26には、幾つかの実施の形態による、ツールモデルとソフトウェアテンプレートとの間のオペレーションのマッピングの一例が示されている。レチクルストッカ2611を表すツールモデル2610を、オペレーティングソフトウェアテンプレート2640に関する特定のデータ及び情報を作成するために使用することができる。ツールモデル2610は、コマンド2650に関するツール記述、例えばレチクルの積み入れ2651及びレチクルの取り出し2652、及び、ステータス記述2660、例えばレチクルを積み入れているステータス2661及びレチクルを積み入れ終わったステータス2662を含むことができる。ツールモデル2610は、ツールのモジュールに関するツール記述、例えば回転ステーションモジュール2612を含むことができ、この回転ステーション2612は、コマンド2670に関する記述、例えば位置0への回転2671及び位置90への回転2672、並びに、ステータス2690に関する記述、例えばレチクルは位置0にある2691及びレチクルは位置90にある2692を含むことができる。
コマンド2650及び2670を、テンプレートのプレースホルダコマンドをツールモデルからの特定のコマンドで置換することによって、ソフトウェアテンプレートのコマンドセクション2641にマッピングすることができる。同様に、ステータス2660及び2690を、テンプレートのプレースホルダステータス報告をツールモデルからの特定のグラフィックで置換することによって、ソフトウェアテンプレート2640のステータスセクション2630〜2633にマッピングすることができる。また、モジュール2611及び2612を、テンプレートのプレースホルダモジュールをツールモデルからの特定のモジュール情報で置換することによって、ソフトウェアテンプレート2640のモジュールセクション2620〜2623にマッピングすることができる。テンプレートのその他のジェネリックセクション、例えば一般的なイクイップメントセクション2680及びテストプロシージャセクション2681は変更せずに維持することができる。
図27には、幾つかの実施の形態による、ソフトウェアテンプレートの生成に関するフローチャートが示されている。オペレーション2700では、ソフトウェアプログラムの機能、例えばオペレーティングソフトウェア又はテストソフトウェアが規定される。オペレーション2710では、機能を実行するためのソフトウェアプログラムテンプレートが生成される。ソフトウェアプログラムは、プレースホルダコマンドと、コマンド構造と、グラフィックインタフェースと、デフォルト機能と、を含んでいる。
図28には、幾つかの実施の形態による、ソフトウェアテンプレートへのツールモデルのマッピングに関するフローチャートが示されている。オペレーション2810では、ツールモデルが受け取られる。オペレーション2820では、ソフトウェアテンプレートが受け取られる。オペレーション2830では、ツールモデルがソフトウェアテンプレートにマッピングされる。
図29A及び図29Bには、幾つかの実施の形態による、ソフトウェアテンプレートの生成に関するフローチャートが示されている。図29Aにおいて、オペレーション2900では、ソフトウェアテンプレートが生成される。ソフトウェアテンプレートプログラムは、ツールを運転するように構成されており、またソフトウェアテンプレートプログラムはプレースホルダコマンドを含んでいる。
図29Bにおいて、オペレーション2920では、ツールの複数のモジュールが生成される。オペレーション2930では、各モジュールに関するコマンド及びステータスが生成される。オペレーション2940では、ツールを実行するためのコマンド及びステータスが生成される。オペレーション2950では、データ収集プロシージャが生成される。オペレーション2960では、コマンド及びステータスを置換するためのマッピングプロシージャが生成される。
図30A及び図30Bには、幾つかの実施の形態による、ソフトウェアテンプレートの生成に関するフローチャートが示されている。図30Aにおいて、オペレーション3000では、ソフトウェアテンプレートが生成される。ソフトウェアテンプレートプログラムは、ツールのコンポーネントをテストするように構成されており、またソフトウェアテンプレートプログラムはプレースホルダコマンドを含んでいる。
図30Bにおいて、オペレーション3020では複数のモジュールが生成される。オペレーション3030では、各モジュールに関するコマンド及びステータスが生成される。オペレーション3040では、ユーザ定義されたコマンドを作成するためのプロシージャが生成される。オペレーション3050では、データ収集プロシージャが生成される。オペレーション3060では、コマンド及びステータスを置換するためのマッピングプロシージャが生成される。
図31A及び図31Bには、幾つかの実施の形態による、ソフトウェアの生成に関するフローチャートが示されている。図31Aにおいて、オペレーション3110ではツールのツールモデルが生成される。オペレーション3120では、ツールモデルに基づいて、ツールのドキュメンテーションが自動的に生成される。オペレーション3130では、ツールモデルに基づいて、ツールのソフトウェアが自動的に生成され、その際に、ドキュメンテーションとソフトウェアが自動的に同期される。
図31Bにおいて、オペレーション3150ではツールのツールモデルが変更される。オペレーション3160では、変更されたツールモデルに基づいて、ツールのドキュメンテーションが自動的に生成される。オペレーション3170では、変更されたツールモデルに基づいて、ツールのソフトウェアが自動的に生成され、その際に、ドキュメンテーションとソフトウェアがその変更に関して自動的に同期される。
幾つかの実施の形態においては、ツールモデル入力から、ソフトウェアプログラムを生成するソフトウェアテンプレートのためのシステム及び方法が提供される。ソフトウェアテンプレートを、ツールに関する機能を実行するように設定することができる。ソフトウェアテンプレートは、プレースホルダコマンド、グラフィック要素、入力ファイル及び出力ファイルを含むことができる。ツールモデルをソフトウェアテンプレートにマッピングすることによって、そのツールに特化したソフトウェアプログラムを自動的に生成することができる。
幾つかの実施の形態においては、本明細書において記載した種々のステップを機械に実行させる、及び/又は、コンポーネント及び/又は構造を機械にインプリメントさせる、複数のコードセクションを有しているコンピュータプログラムが記憶されている、機械読み出し可能な媒体が提供される。
幾つかの実施の形態においては、上述の方法をハードウェア、ソフトウェア、又は、ハードウェアとソフトウェアを組み合わせたもので実現することができる。上述の方法を、データ処理システム、例えばコンピュータシステムにおいて中央集中的なやり方で実現することができるか、又は、種々の要素が、相互接続されている種々のコンピュータシステムに分散されている分散的なやり方で実現することができる。本明細書に記載した方法の実行に適したものであれば、いずれのコンピュータシステム又はその他の装置も使用することができる。ハードウェア及びソフトウェアの典型的な組み合わせは、コンピュータシステムを制御することができるコンピュータプログラムを有している汎用コンピュータシステムであってよく、それによって、コンピュータシステムは本方法を実行することができる。また本方法を、本方法を実施できる複数の機能を含んでおり、且つ、コンピュータシステムにロードされると本方法を実行することができる、コンピュータプログラム製品に組み込むことができる。
本明細書の文脈において、用語「コンピュータプログラム」、「ソフトウェア」、「アプリケーション」、それらの変形体及び/又は組み合わせは、情報処理能力を有しているシステムに、特定の機能を直接的に実行させることを意図した一連の命令の、いずれかの言語、コード又は表記法でのあらゆる表現を意味している。それらの機能は、他の言語、コード又は表記法、若しくは複製の、異なる有形形態への変換を含むことができる。例えば、コンピュータプログラムは、サブルーチン、ファンクション、プロシージャ、オブジェクトメソッド、オブジェクトインプリメンテーション、実行可能なアプリケーション、アプレット、サーブレット、ソースコード、オブジェクトコード、共有ライブラリ/動的ロードライブラリ、及び/又は、コンピュータのようなデータ処理システムにおける実行のために設計されたその他の一連の命令を含むことができる。
幾つかの実施の形態において、上述の方法をデータ処理システム、例えば汎用コンピュータシステムを使用して実施することができる。汎用コンピュータシステムは、グラフィック情報及びテキスト情報を表示するための画面を備えているグラフィックディスプレイモニタ、情報をテキスト入力するためのキーボード、グラフィックデータを入力するためのマウス、及びコンピュータプロセッサを含むことができる。幾つかの実施の形態においては、コンピュータプロセッサは、上述の方法を実施するためのプログラムコードを含むことができる。その他のデバイス、例えばライトペン(図示せず)をマウスの代わりに使用することができる。この汎用コンピュータは当業者には公知の種々のタイプの汎用コンピュータ、例えばメインフレームコンピュータ、ミニコンピュータ、ワークステーション又はパーソナルコンピュータのうちの一つであってよい。
従って、上記においては、本発明の特定の有利な実施の形態について説明したが、特許請求の範囲に記載の事項によって特定される本発明は、上記において述べた特定の詳細な事項によって制限されるべきではなく、それらの多くのヴァリエーションを、特許請求の範囲に記載の事項の精神又は範囲から逸脱することなく実現できると解するべきである。