JPH1173322A - ソフトウエアコンポーネント解析のための装置及びその方法 - Google Patents
ソフトウエアコンポーネント解析のための装置及びその方法Info
- Publication number
- JPH1173322A JPH1173322A JP10192254A JP19225498A JPH1173322A JP H1173322 A JPH1173322 A JP H1173322A JP 10192254 A JP10192254 A JP 10192254A JP 19225498 A JP19225498 A JP 19225498A JP H1173322 A JPH1173322 A JP H1173322A
- Authority
- JP
- Japan
- Prior art keywords
- class
- software component
- property
- information
- properties
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【課題】 アプリケーションビルダツール内のソフトウ
ェアコンポーネントを解析するための方法、ソフトウェ
ア、および装置を提供する。 【解決手段】 本発明は、コンピュータ上で稼動してい
るアプリケーションビルダツール内部で視覚的に移動さ
れることができるソフトウェアコンポーネントを解析す
るためのメソッドに関する。本方法は、解析されるソフ
トウェアコンポーネントを入手し(302)、関連した
情報クラスをそのソフトウェアコンポーネントが有する
かどうかを決定する(304)ことを含む。関連した情
報クラスをソフトウェアコンポーネントが有すると決定
されると、その情報クラスはその内部に格納されている
情報について質問され(306)、そうでなければ、そ
のクラスを解析するために設計パターンを用いた自動解
析が適用される(310)。情報クラス内の格納情報
は、メソッド、プロパティ、およびイベントに関する。
ェアコンポーネントを解析するための方法、ソフトウェ
ア、および装置を提供する。 【解決手段】 本発明は、コンピュータ上で稼動してい
るアプリケーションビルダツール内部で視覚的に移動さ
れることができるソフトウェアコンポーネントを解析す
るためのメソッドに関する。本方法は、解析されるソフ
トウェアコンポーネントを入手し(302)、関連した
情報クラスをそのソフトウェアコンポーネントが有する
かどうかを決定する(304)ことを含む。関連した情
報クラスをソフトウェアコンポーネントが有すると決定
されると、その情報クラスはその内部に格納されている
情報について質問され(306)、そうでなければ、そ
のクラスを解析するために設計パターンを用いた自動解
析が適用される(310)。情報クラス内の格納情報
は、メソッド、プロパティ、およびイベントに関する。
Description
【0001】
【発明の属する技術分野】本発明は、一般にアプリケー
ション開発ツールに使うための方法および装置に関連す
る。特に、本発明は、ソフトウェアコンポーネントを精
査するための方法および装置に関連する。
ション開発ツールに使うための方法および装置に関連す
る。特に、本発明は、ソフトウェアコンポーネントを精
査するための方法および装置に関連する。
【0002】
【従来の技術】コンピュータの利用が次第に広まるにつ
れて、特定のユーザのニーズに固有の特化(custom)コ
ンピュータアプリケーションの要望も増大している。ビ
ジュアルビルダツールまたはアプリケーションビルダツ
ールを使うと、コンピュータアプリケーションを容易に
生成する(create)ことが可能になる。一般的に、ビル
ダツールは、特注された(custom-built)アプリケーシ
ョンを生成するために相互にリンクすることができるソ
フトウェアモジュールの標準的なセットを含む。
れて、特定のユーザのニーズに固有の特化(custom)コ
ンピュータアプリケーションの要望も増大している。ビ
ジュアルビルダツールまたはアプリケーションビルダツ
ールを使うと、コンピュータアプリケーションを容易に
生成する(create)ことが可能になる。一般的に、ビル
ダツールは、特注された(custom-built)アプリケーシ
ョンを生成するために相互にリンクすることができるソ
フトウェアモジュールの標準的なセットを含む。
【0003】ワシントン、レイモンドのマイクロソフト
社(Microsoft, Inc. of Reymond,Washington)から入
手できる、例えば Visual Basic のように、視覚に基づ
く(visual based)多くのアプリケーションビルダツー
ル(application builder tool)は、「ツールボック
ス(toolbox)」や「フォームウィンドウ(form windo
w)」や「プロパティシート(property sheet)」を含
むグラフィックユーザインターフェースを有する。ツー
ルボックスは、典型的には、異なったクラスのコンポー
ネントまたはソフトウェアモジュールを表わすアイコン
を含む。代わりに、ツールボックスは、異なったクラス
のコンポーネントを表わすテキストを含むこともある。
異なった多くのクラスのコンポーネントが存在すること
もあることを理解すべきである。例示として、異なった
クラスは、複雑なコンポーネント、例えばデータベース
ビューア、および単純なコンポーネント、例えばボタン
を含む。フォームウィンドウは、アプリケーションが作
り上げられる(composed)可能性のある表示ウィンドウ
である。ツールボックスから選択されたコンポーネント
は、フォームウィンドウ内側に「ドロップ」されたり、
またはさもなければ置かれたりすることができる。プロ
パティシートは、選択されたコンポーネントに関するプ
ロパティ、またはアトリビュート(属性)を表示する。
プロパティには、選択されたウィンドウのサイズ、色、
および名前に関連する情報を含むことができるが、これ
らに限られるものではない。
社(Microsoft, Inc. of Reymond,Washington)から入
手できる、例えば Visual Basic のように、視覚に基づ
く(visual based)多くのアプリケーションビルダツー
ル(application builder tool)は、「ツールボック
ス(toolbox)」や「フォームウィンドウ(form windo
w)」や「プロパティシート(property sheet)」を含
むグラフィックユーザインターフェースを有する。ツー
ルボックスは、典型的には、異なったクラスのコンポー
ネントまたはソフトウェアモジュールを表わすアイコン
を含む。代わりに、ツールボックスは、異なったクラス
のコンポーネントを表わすテキストを含むこともある。
異なった多くのクラスのコンポーネントが存在すること
もあることを理解すべきである。例示として、異なった
クラスは、複雑なコンポーネント、例えばデータベース
ビューア、および単純なコンポーネント、例えばボタン
を含む。フォームウィンドウは、アプリケーションが作
り上げられる(composed)可能性のある表示ウィンドウ
である。ツールボックスから選択されたコンポーネント
は、フォームウィンドウ内側に「ドロップ」されたり、
またはさもなければ置かれたりすることができる。プロ
パティシートは、選択されたコンポーネントに関するプ
ロパティ、またはアトリビュート(属性)を表示する。
プロパティには、選択されたウィンドウのサイズ、色、
および名前に関連する情報を含むことができるが、これ
らに限られるものではない。
【0004】一旦、コンポーネントがフォームウィンド
ウ上に置かれると、それらのコンポーネントは共にリン
クされてアプリケーションを生成することができる。言
い換えると、アプリケーションは、フォームウィンドウ
においてコンポーネントを相互にリンクすることによっ
て、グラフィカルに作り上げられることができる。実行
時だけでなくアプリケーションビルダの環境においても
同様に、どのメソッド、プロパティ、およびイベント
が、所与のクラス、より明確には、所与のクラスの一部
のコンポーネント、によってサポートされている(supp
orted)かを決めることが必要である。メソッドは、一
般的には手続きであり、この手続は、その手続きが関連
つけられるコンポーネント以外のコンポーネントからア
クセスできる。プロパティは、コンポーネントに関連付
けられるアトリビュートとして定義されることができ
る。前に述べたように、プロパティの例には、コンポー
ネントのサイズがある。イベントは、一般的には、コン
ポーネント、例えばソースオブジェクトが、状態変化の
他のオブジェクト、例えばリスナ(listener)オブジェ
クト、に通知することを可能にするメカニズムである。
ウ上に置かれると、それらのコンポーネントは共にリン
クされてアプリケーションを生成することができる。言
い換えると、アプリケーションは、フォームウィンドウ
においてコンポーネントを相互にリンクすることによっ
て、グラフィカルに作り上げられることができる。実行
時だけでなくアプリケーションビルダの環境においても
同様に、どのメソッド、プロパティ、およびイベント
が、所与のクラス、より明確には、所与のクラスの一部
のコンポーネント、によってサポートされている(supp
orted)かを決めることが必要である。メソッドは、一
般的には手続きであり、この手続は、その手続きが関連
つけられるコンポーネント以外のコンポーネントからア
クセスできる。プロパティは、コンポーネントに関連付
けられるアトリビュートとして定義されることができ
る。前に述べたように、プロパティの例には、コンポー
ネントのサイズがある。イベントは、一般的には、コン
ポーネント、例えばソースオブジェクトが、状態変化の
他のオブジェクト、例えばリスナ(listener)オブジェ
クト、に通知することを可能にするメカニズムである。
【0005】
【発明が解決しようとする課題】特定のクラスまたはコ
ンポーネントによってサポートされているメソッド、プ
ロパティ、またはイベントを識別するプロセスは、従来
においては、コンポーネントの検査すること(inspecti
on)であると考えられている。コンポーネントによって
サポートされるメソッド、プロパティ、またはイベント
を識別するために、典型的には、そのコンポーネント自
体は検査されないことを認識すべきである。むしろ、コ
ンポーネントに関連付けられたコンポーネント記述子
(ディスクリプタ)ファイルが検査される。
ンポーネントによってサポートされているメソッド、プ
ロパティ、またはイベントを識別するプロセスは、従来
においては、コンポーネントの検査すること(inspecti
on)であると考えられている。コンポーネントによって
サポートされるメソッド、プロパティ、またはイベント
を識別するために、典型的には、そのコンポーネント自
体は検査されないことを認識すべきである。むしろ、コ
ンポーネントに関連付けられたコンポーネント記述子
(ディスクリプタ)ファイルが検査される。
【0006】コンポーネントは、典型的には、例えばC
++プログラム言語のような標準のプログラム言語を使っ
て生成される一方で、コンポーネント記述子ファイル
は、通常は、インターフェース記述言語(IDL)とい
った、仕様言語を使って生成される。コンポーネント記
述子ファイルは、そのコンポーネント記述子ファイルが
関連付けられるコンポーネントによってサポートされる
メソッド、プロパティ、またはイベントを識別するファ
イルである。したがって、プログラマにとって、コンポ
ーネントを生成し、かつ、そのコンポーネントの記述を
与えるためには、プログラミング言語、例えばC++、お
よびインターフェース記述言語の両方を収得しなければ
ならない。2つの言語を会得する過程は時間がかかり、
結果として非効率である。さらに、コンポーネントの記
述は、そのコンポーネントのインプリメンテーションを
記述するタイプライブラリにコンパイルされなくてはな
らない。すなわち、プログラムまたはアプリケーション
の異なった部分は、そのコンポーネントのインプリメン
テーションを決定するためにバイナリの記述を検査でき
るように、そのコンポーネントのバイナリ記述が生成さ
れなければならない。それから、このバイナリの記述
は、コンポーネントが変化するたびに更新されなければ
ならず、これは時間がかかるものであり、そのため非効
率になることがしばしば明らかになる。必要とされるも
のは、したがって、特定のクラスによってサポートされ
るメソッド、プロパティ、およびイベントをアプリケー
ションビルダツールが容易に識別する、ことを可能にす
る効率的な装置およびプロセスである。
++プログラム言語のような標準のプログラム言語を使っ
て生成される一方で、コンポーネント記述子ファイル
は、通常は、インターフェース記述言語(IDL)とい
った、仕様言語を使って生成される。コンポーネント記
述子ファイルは、そのコンポーネント記述子ファイルが
関連付けられるコンポーネントによってサポートされる
メソッド、プロパティ、またはイベントを識別するファ
イルである。したがって、プログラマにとって、コンポ
ーネントを生成し、かつ、そのコンポーネントの記述を
与えるためには、プログラミング言語、例えばC++、お
よびインターフェース記述言語の両方を収得しなければ
ならない。2つの言語を会得する過程は時間がかかり、
結果として非効率である。さらに、コンポーネントの記
述は、そのコンポーネントのインプリメンテーションを
記述するタイプライブラリにコンパイルされなくてはな
らない。すなわち、プログラムまたはアプリケーション
の異なった部分は、そのコンポーネントのインプリメン
テーションを決定するためにバイナリの記述を検査でき
るように、そのコンポーネントのバイナリ記述が生成さ
れなければならない。それから、このバイナリの記述
は、コンポーネントが変化するたびに更新されなければ
ならず、これは時間がかかるものであり、そのため非効
率になることがしばしば明らかになる。必要とされるも
のは、したがって、特定のクラスによってサポートされ
るメソッド、プロパティ、およびイベントをアプリケー
ションビルダツールが容易に識別する、ことを可能にす
る効率的な装置およびプロセスである。
【0007】
【課題を解決するための手段】本発明は、ある側面で
は、アプリケーションビルダツール内部でソフトウェア
コンポーネントを解析する方法に関する。アプリケーシ
ョンビルダツール内部において視覚的に移動されること
ができるソフトウェアコンポーネントを解析する方法
は、まず、解析されるソフトウェアコンポーネントを得
ることを伴う。一旦、ソフトウェアコンポーネントが獲
得されると、関連した情報クラスをそのソフトウェアコ
ンポーネントが有するかどうかに関して決定がなされ
る。そのソフトウェアコンポーネントが、関連した情報
クラスを有するならば、その情報クラス内部に記憶され
る情報に関して質問がなされる。ある実施例では、情報
クラス内に格納されている情報には、メソッド、プロパ
ティ、およびイベントが含まれる。
は、アプリケーションビルダツール内部でソフトウェア
コンポーネントを解析する方法に関する。アプリケーシ
ョンビルダツール内部において視覚的に移動されること
ができるソフトウェアコンポーネントを解析する方法
は、まず、解析されるソフトウェアコンポーネントを得
ることを伴う。一旦、ソフトウェアコンポーネントが獲
得されると、関連した情報クラスをそのソフトウェアコ
ンポーネントが有するかどうかに関して決定がなされ
る。そのソフトウェアコンポーネントが、関連した情報
クラスを有するならば、その情報クラス内部に記憶され
る情報に関して質問がなされる。ある実施例では、情報
クラス内に格納されている情報には、メソッド、プロパ
ティ、およびイベントが含まれる。
【0008】別の実施例においては、関連した情報クラ
スをソフトウェアコンポーネントが有していないことが
決定されたときは、第1のクラスに関連付けられた一組
のメソッドが識別される。そして、そのソフトウェアコ
ンポーネントに関連付けられた第1のプロパティを識別
するために少なくとも1つの設計パターンが適用され
る。このような実施例においては、そのソフトウェアコ
ンポーネントに関連付けられた第1のプロパティを識別
するために少なくとも1つの設計パターンを適用するこ
とは、第1のプロパティを定義する少なくとも1つのメ
ソッドを探索することを伴う。
スをソフトウェアコンポーネントが有していないことが
決定されたときは、第1のクラスに関連付けられた一組
のメソッドが識別される。そして、そのソフトウェアコ
ンポーネントに関連付けられた第1のプロパティを識別
するために少なくとも1つの設計パターンが適用され
る。このような実施例においては、そのソフトウェアコ
ンポーネントに関連付けられた第1のプロパティを識別
するために少なくとも1つの設計パターンを適用するこ
とは、第1のプロパティを定義する少なくとも1つのメ
ソッドを探索することを伴う。
【0009】本発明の別の側面に従って、ソフトウェア
コンポーネントに関連付けられた情報を収集するための
コンピュータシステムは、そのソフトウェアコンポーネ
ントを解析するように設けられた(arrange)ビルダツ
ールを収容する(hold)コンピュータを含む。そのコン
ピュータは、ビルダツールによって解析されるべきであ
るソフトウェアコンポーネントを得るように配置されて
いる。ソフトウェアコンポーネントは、第1のクラスの
一部であり、視覚的に操作可能で(manipulatable)あ
る。コンピュータは、関連した情報クラスを有するかど
うかをそのソフトウェアコンポーネントが決定するため
に使用される。関連した情報クラスは、メソッド、プロ
パティ、および/またはイベントを含む。この情報クラ
スは、関連した情報クラスがあるとき、この情報クラス
に格納されている情報について質問がなされる。
コンポーネントに関連付けられた情報を収集するための
コンピュータシステムは、そのソフトウェアコンポーネ
ントを解析するように設けられた(arrange)ビルダツ
ールを収容する(hold)コンピュータを含む。そのコン
ピュータは、ビルダツールによって解析されるべきであ
るソフトウェアコンポーネントを得るように配置されて
いる。ソフトウェアコンポーネントは、第1のクラスの
一部であり、視覚的に操作可能で(manipulatable)あ
る。コンピュータは、関連した情報クラスを有するかど
うかをそのソフトウェアコンポーネントが決定するため
に使用される。関連した情報クラスは、メソッド、プロ
パティ、および/またはイベントを含む。この情報クラ
スは、関連した情報クラスがあるとき、この情報クラス
に格納されている情報について質問がなされる。
【0010】本発明のさらに別の側面に従うと、コンピ
ュータ上で稼動している(running)ビルダツール内部
において視覚的に移動されることができるソフトウェア
コンポーネントは、情報クラスによって定義され、また
第1のクラスによってサポートされる情報クラス、メソ
ッド、プロパティ、および/またはイベントを含んでい
る。ある実施例においては、メソッド、プロパティ、お
よび/またはイベントは、第1のクラスとは別個の第2
のクラスからアクセス可能である。
ュータ上で稼動している(running)ビルダツール内部
において視覚的に移動されることができるソフトウェア
コンポーネントは、情報クラスによって定義され、また
第1のクラスによってサポートされる情報クラス、メソ
ッド、プロパティ、および/またはイベントを含んでい
る。ある実施例においては、メソッド、プロパティ、お
よび/またはイベントは、第1のクラスとは別個の第2
のクラスからアクセス可能である。
【0011】本発明のこのような利点および他の利点
は、以下の詳細な記述を読み、そして様々な図面を検討
する(study)ことによって明らかになる。
は、以下の詳細な記述を読み、そして様々な図面を検討
する(study)ことによって明らかになる。
【0012】この発明は、その更なる利点と共に、添付
図面に関連する以下の記述を参照することによって十分
よく理解されることができる。
図面に関連する以下の記述を参照することによって十分
よく理解されることができる。
【0013】
【発明の実施の形態】添付図面に関連して行われる以下
の記述を参照することによって、本発明、さらには本発
明の有利な点を最も良く理解できる。
の記述を参照することによって、本発明、さらには本発
明の有利な点を最も良く理解できる。
【0014】添付図面を参照しながら、ソフトウェアコ
ンポーネントを検査する(inspect)ための装置および
方法の、ある実施例を以下に説明する。
ンポーネントを検査する(inspect)ための装置および
方法の、ある実施例を以下に説明する。
【0015】図1は、本発明を実行するために適した、
典型的な汎用のコンピュータシステムを示している。コ
ンピュータシステム130は、一次記憶デバイス134
(典型的には、読み出し専用メモリ、または、ROM)
および一次記憶デバイス136(典型的には、ランダム
アクセスメモリ、または、RAM)を含むメモリデバイ
スに結合されている任意の数の(中央演算ユニット、つ
まりCPU、としても参照される)プロセッサ132を
含む。本技術分野においてよく知られているように、R
OM 134は、CPU 132に一方向にデータおよび
命令を転送するように作動する(act)一方、RAM 1
36は、典型的には、双方向方式でデータおよび命令を
転送するように作動する。両方の一次記憶デバイス13
4、136には、任意の適当なコンピュータで読み出し
可能な媒体が含まれことができる。マスメモリデバイス
(mass memory device)138は、双方向にCPU 1
32へ結合されて、追加のデータ蓄積容量を提供する。
マスメモリデバイス 138は、プログラム、データ等
を格納するために使用されることができ、そして典型的
には、1次記憶デバイス134、136よりも低速であ
る、ハードディスクといった、2次記憶媒体である。大
容量メモリ記憶デバイス(mass memory storage devic
e)138は、磁気テープリーダ若しくは紙テープリー
ダ、または良く知られている他のデバイスの形式をとる
ことができる。マスメモリデバイス 138内に保持さ
れている情報は、適切な場合においては、仮想メモリと
して、RAM 136の部分として、標準的な形式で取
り入れられることができることが認識される。CD−R
OM 134といった、特定の大容量記憶デバイスも、
CPUへ一方向にデータを転送できる。
典型的な汎用のコンピュータシステムを示している。コ
ンピュータシステム130は、一次記憶デバイス134
(典型的には、読み出し専用メモリ、または、ROM)
および一次記憶デバイス136(典型的には、ランダム
アクセスメモリ、または、RAM)を含むメモリデバイ
スに結合されている任意の数の(中央演算ユニット、つ
まりCPU、としても参照される)プロセッサ132を
含む。本技術分野においてよく知られているように、R
OM 134は、CPU 132に一方向にデータおよび
命令を転送するように作動する(act)一方、RAM 1
36は、典型的には、双方向方式でデータおよび命令を
転送するように作動する。両方の一次記憶デバイス13
4、136には、任意の適当なコンピュータで読み出し
可能な媒体が含まれことができる。マスメモリデバイス
(mass memory device)138は、双方向にCPU 1
32へ結合されて、追加のデータ蓄積容量を提供する。
マスメモリデバイス 138は、プログラム、データ等
を格納するために使用されることができ、そして典型的
には、1次記憶デバイス134、136よりも低速であ
る、ハードディスクといった、2次記憶媒体である。大
容量メモリ記憶デバイス(mass memory storage devic
e)138は、磁気テープリーダ若しくは紙テープリー
ダ、または良く知られている他のデバイスの形式をとる
ことができる。マスメモリデバイス 138内に保持さ
れている情報は、適切な場合においては、仮想メモリと
して、RAM 136の部分として、標準的な形式で取
り入れられることができることが認識される。CD−R
OM 134といった、特定の大容量記憶デバイスも、
CPUへ一方向にデータを転送できる。
【0016】CPU 132は、また、1つ以上の入力
/出力装置140に結合され、この装置には、これらに
限られないものではないが、ビデオモニタ、トラックボ
ール、マウス、キーボード、マイクロフォン、タッチセ
ンスディスプレイ、トランスジューサカードリーダ、磁
気テープリーダ若しくは紙テープリーダ、タブレット、
スタイラス、音声認識装置若しくは手書き文字認識装
置、または、もちろん他のコンピュータといった、他の
よく知られた入力デバイスがある。最後に、CPU 1
32は、一般的には112において示されるようにネッ
トワーク結合を用いて、コンピュータまたは遠隔通信ネ
ットワーク、例えばインターネットネットワークまたは
イントラネットネットワーク、に結合されることもでき
る。このようなネットワーク結合を用いて、上で説明し
た方法ステップを実行する過程において、CPU 13
2は、ネットワークから情報を受けることもあり、また
は情報をネットワークに出力することもある。上で述べ
たデバイスおよび構成要素(materials)は、コンピュ
ータのハードウェアおよびソフトウェアの技術分野にお
ける当業者におなじみのものである。
/出力装置140に結合され、この装置には、これらに
限られないものではないが、ビデオモニタ、トラックボ
ール、マウス、キーボード、マイクロフォン、タッチセ
ンスディスプレイ、トランスジューサカードリーダ、磁
気テープリーダ若しくは紙テープリーダ、タブレット、
スタイラス、音声認識装置若しくは手書き文字認識装
置、または、もちろん他のコンピュータといった、他の
よく知られた入力デバイスがある。最後に、CPU 1
32は、一般的には112において示されるようにネッ
トワーク結合を用いて、コンピュータまたは遠隔通信ネ
ットワーク、例えばインターネットネットワークまたは
イントラネットネットワーク、に結合されることもでき
る。このようなネットワーク結合を用いて、上で説明し
た方法ステップを実行する過程において、CPU 13
2は、ネットワークから情報を受けることもあり、また
は情報をネットワークに出力することもある。上で述べ
たデバイスおよび構成要素(materials)は、コンピュ
ータのハードウェアおよびソフトウェアの技術分野にお
ける当業者におなじみのものである。
【0017】多くのアプリケーションビルダツールは、
アプリケーションを生成するために、アプリケーション
ビルダツールの内部で操作できるソフトウェアコンポー
ネントを使用する。さらに、カスタマイズできるソフト
ウェアコンポーネントは、高度にカスタマイズされたア
プリケーションをユーザが生成することを可能にする。
JavaTM Beanは、コンピュータシステム上のビ
ルダツール内で視覚的に(ビジュアルに)移動され、ま
たは操作されることができる再利用可能でカスタマイズ
可能なソフトウェアコンポーネントとして定義されるこ
とができる。ビルダツールは、一般に、インターネット
ネットワーク、または、より具体的には、ワールドワイ
ドウェブとして知られているインターネットネットワー
クの側面の利用のための、これらに限られるものではな
いが、ビジュアルアプリケーションビルダ及びウェブペ
ージビルダを含む。JavaTM Beanは、ボタンと
いった、グラフィック・ユーザ・インターフェース・エ
レメントの例のように、単純なエレメントであることが
できることを認識すべきである。または、JavaTM
Beanは、データベース・ビューワの例のように、も
っと複雑なエレメントであることができる。
アプリケーションを生成するために、アプリケーション
ビルダツールの内部で操作できるソフトウェアコンポー
ネントを使用する。さらに、カスタマイズできるソフト
ウェアコンポーネントは、高度にカスタマイズされたア
プリケーションをユーザが生成することを可能にする。
JavaTM Beanは、コンピュータシステム上のビ
ルダツール内で視覚的に(ビジュアルに)移動され、ま
たは操作されることができる再利用可能でカスタマイズ
可能なソフトウェアコンポーネントとして定義されるこ
とができる。ビルダツールは、一般に、インターネット
ネットワーク、または、より具体的には、ワールドワイ
ドウェブとして知られているインターネットネットワー
クの側面の利用のための、これらに限られるものではな
いが、ビジュアルアプリケーションビルダ及びウェブペ
ージビルダを含む。JavaTM Beanは、ボタンと
いった、グラフィック・ユーザ・インターフェース・エ
レメントの例のように、単純なエレメントであることが
できることを認識すべきである。または、JavaTM
Beanは、データベース・ビューワの例のように、も
っと複雑なエレメントであることができる。
【0018】ソフトウェアコンポーネント、例えばJa
vaTM Bean、を操作するアプリケーションビルダ
ツールを用いてアプリケーションが作りあげられると
き、アプリケーションビルダツールは、どのメソッド、
プロパティ、およびイベントがコンポーネントに関連付
けられているかをまず決定し、そしてどのようにコンポ
ーネントを提供するかを決定するためにコンポーネント
を解析しなければならない。JavaTM Beanクラ
スの一部分であるJavaTM Beanコンポーネント
は、どのようにJavaTM Beanコンポーネントを
提供、例えば、表示するかを決定するために、ビルダツ
ールが使用できるJavaTM Beanのメソッド、プ
ロパティ、およびイベントに関連する(pertain)詳細
を指定する(specify)関連付けられたクラスを有する
ことができる。このクラスは「BeanInfo」クラ
スとして知られており、これは情報クラスであると考え
られている。BeanInfoクラスは、典型的には、
JavaTM Beanに関連付けられたメソッド、プロ
パティ、およびイベントについての情報を提供したり、
またはさもなければこれらを識別したりするために使用
できる記述名を提供する文字列を含んでいる。一般的
に、JavaTM Beanは、視覚的な表現、または、
グラフィカルユーザインターフェースの一部として表示
できる表現を有する。しかしながら、いくつかの実施例
においては、JavaTM Beanは、視覚的な表現を
有するのではなく、代わりに、標準的なプロパティシー
トなどを用いて変形可能である。
vaTM Bean、を操作するアプリケーションビルダ
ツールを用いてアプリケーションが作りあげられると
き、アプリケーションビルダツールは、どのメソッド、
プロパティ、およびイベントがコンポーネントに関連付
けられているかをまず決定し、そしてどのようにコンポ
ーネントを提供するかを決定するためにコンポーネント
を解析しなければならない。JavaTM Beanクラ
スの一部分であるJavaTM Beanコンポーネント
は、どのようにJavaTM Beanコンポーネントを
提供、例えば、表示するかを決定するために、ビルダツ
ールが使用できるJavaTM Beanのメソッド、プ
ロパティ、およびイベントに関連する(pertain)詳細
を指定する(specify)関連付けられたクラスを有する
ことができる。このクラスは「BeanInfo」クラ
スとして知られており、これは情報クラスであると考え
られている。BeanInfoクラスは、典型的には、
JavaTM Beanに関連付けられたメソッド、プロ
パティ、およびイベントについての情報を提供したり、
またはさもなければこれらを識別したりするために使用
できる記述名を提供する文字列を含んでいる。一般的
に、JavaTM Beanは、視覚的な表現、または、
グラフィカルユーザインターフェースの一部として表示
できる表現を有する。しかしながら、いくつかの実施例
においては、JavaTM Beanは、視覚的な表現を
有するのではなく、代わりに、標準的なプロパティシー
トなどを用いて変形可能である。
【0019】プロパティ及びイベントは、典型的には、
メソッドをグループ化することによって識別されるの
で、BeanInfoクラス、または、BeanInf
oクラスの一部であるオブジェクトは、一般的にはJa
vaTM Beanを記述するメソッドを含む。Bean
Infoクラスは、任意の数のメソッドを含むことがで
きるけれど、ある実施例においては、BeanInfo
クラスは以下のような8つのメソッドを有する。それら
は、現在のまたは関連付けられたJavaTM Bean
に関係する情報を有する他のBeanInfoオブジェ
クトを返すメソッド(「getAdditionalBeanInfo」)、
現在のJavaTM Beanについての全体の情報を提
供するメソッド(「getBeanDescriptor」)、デフォル
トのイベントのインデックスを返すメソッド(「getDef
aultEventIndex」)、デフォルトのプロパティ・インデ
ックスを返すメソッド(getDefaultPropertyIndex)、
現在のJavaTM Beanによってエクスポート(移
出、export)されることができるイベントを記述するア
レイを返すメソッド(「getEventSetDescriptors」)、
現在のJavaTM Beanによってサポートされてい
る、外部から見える、すなわちパブリック(public)で
ある、メソッドのアレイを返すメソッド(「getMethodD
escriptors」)、現在のJavaTM Beanによって
サポートされている編集可能なプロパティのアレイを返
すメソッド(「getPropertyDescriptors」)である。
メソッドをグループ化することによって識別されるの
で、BeanInfoクラス、または、BeanInf
oクラスの一部であるオブジェクトは、一般的にはJa
vaTM Beanを記述するメソッドを含む。Bean
Infoクラスは、任意の数のメソッドを含むことがで
きるけれど、ある実施例においては、BeanInfo
クラスは以下のような8つのメソッドを有する。それら
は、現在のまたは関連付けられたJavaTM Bean
に関係する情報を有する他のBeanInfoオブジェ
クトを返すメソッド(「getAdditionalBeanInfo」)、
現在のJavaTM Beanについての全体の情報を提
供するメソッド(「getBeanDescriptor」)、デフォル
トのイベントのインデックスを返すメソッド(「getDef
aultEventIndex」)、デフォルトのプロパティ・インデ
ックスを返すメソッド(getDefaultPropertyIndex)、
現在のJavaTM Beanによってエクスポート(移
出、export)されることができるイベントを記述するア
レイを返すメソッド(「getEventSetDescriptors」)、
現在のJavaTM Beanによってサポートされてい
る、外部から見える、すなわちパブリック(public)で
ある、メソッドのアレイを返すメソッド(「getMethodD
escriptors」)、現在のJavaTM Beanによって
サポートされている編集可能なプロパティのアレイを返
すメソッド(「getPropertyDescriptors」)である。
【0020】JavaTM Beanを解析するアプリケ
ーションビルダツールまたは他のツールには、自己検査
(introspection)プロセスと一緒に使用される様々な
設計パターンおよびインターフェースに関係する情報を
含む自己検査(イントロスペクタ、Introspector)クラ
スを提供するようにしてもよい。さらに、自己検査クラ
スは、特定のJavaTM Beanを記述するBean
Infoオブジェクトを入手することを可能にする。J
avaTM Bean、例えばターゲットJavaTM Be
anによってサポートされるメソッド、プロパティ、お
よびイベントに関係する情報を集めるために、Introspe
ctorは、典型的には、JavaTM Beanが関連付け
られるクラス、例えばターゲットクラス、を解析し対応
するBeanInfoクラスが存在するかどうかを決定
する。BeanInfoクラスが存在するイベントにお
いては、どのようにJavaTM Beanを提供するか
の決定において、Introspectorは、BeanInfoク
ラスから入手した情報を使用する。
ーションビルダツールまたは他のツールには、自己検査
(introspection)プロセスと一緒に使用される様々な
設計パターンおよびインターフェースに関係する情報を
含む自己検査(イントロスペクタ、Introspector)クラ
スを提供するようにしてもよい。さらに、自己検査クラ
スは、特定のJavaTM Beanを記述するBean
Infoオブジェクトを入手することを可能にする。J
avaTM Bean、例えばターゲットJavaTM Be
anによってサポートされるメソッド、プロパティ、お
よびイベントに関係する情報を集めるために、Introspe
ctorは、典型的には、JavaTM Beanが関連付け
られるクラス、例えばターゲットクラス、を解析し対応
するBeanInfoクラスが存在するかどうかを決定
する。BeanInfoクラスが存在するイベントにお
いては、どのようにJavaTM Beanを提供するか
の決定において、Introspectorは、BeanInfoク
ラスから入手した情報を使用する。
【0021】ある実施例においては、BeanInfo
クラスが、特定のJavaTM Beanのためには存在
しないこともある。BeanInfoクラスが存在しな
いならば、アプリケーションビルダツールは、自動的な
解析(automatic analysis)、または「リフレクション
(reflection)」プロセスおよび「設計パターン(desi
gn pattern)」解析の組み合わせを使用することによっ
て、JavaTM Beanに関連付けられたメソッド、
プロパティ、イベントを識別できる。リフレクションプ
ロセスは、当業者に知られているように、一般には、ソ
フトウェアコンポーネントに関連付けられたメソッドを
決定するために実行時におけるプログラムの一部である
ソフトウェアコンポーネント、例えばJavaTM Be
an、の一部分を調べる(study)ことを伴う。設計パ
ターンは、特定のメソッドを特徴付けるパターンまたは
シンタックス(syntax)である。従って、設計パターン
解析は、ソフトウェアコンポーネントに関連付けられた
メソッドを識別するためのシンタックス解析である。プ
ロパティおよびイベントは、通常は、メソッドをグルー
プ化することによって識別されるので、設計パターン解
析は、また、プロパティおよびイベントを識別するため
に役立つ。一般に、自動的な解析は、リフレクションの
プロセスおよびメカニズムを使用しJavaTM Bea
nによってサポートされるメソッドを決定して、その後
に、どのプロパティ、イベント、およびパブリックなメ
ソッドがサポートされているかをメソッドに基づいて決
定するために設計パターンを適用する。従って、自動解
析(automatic analysis)を使用すると、BeanIn
foクラスが特定のJavaTM Beanのために存在
しないというイベントにおいて、メソッド、故に、プロ
パティおよびイベント、を効率的に識別することが可能
になる。しかしながら、BeanInfoクラスがたと
え存在しても、自動的な解析が、同様に、使用されるこ
とがあるを認識すべきである。
クラスが、特定のJavaTM Beanのためには存在
しないこともある。BeanInfoクラスが存在しな
いならば、アプリケーションビルダツールは、自動的な
解析(automatic analysis)、または「リフレクション
(reflection)」プロセスおよび「設計パターン(desi
gn pattern)」解析の組み合わせを使用することによっ
て、JavaTM Beanに関連付けられたメソッド、
プロパティ、イベントを識別できる。リフレクションプ
ロセスは、当業者に知られているように、一般には、ソ
フトウェアコンポーネントに関連付けられたメソッドを
決定するために実行時におけるプログラムの一部である
ソフトウェアコンポーネント、例えばJavaTM Be
an、の一部分を調べる(study)ことを伴う。設計パ
ターンは、特定のメソッドを特徴付けるパターンまたは
シンタックス(syntax)である。従って、設計パターン
解析は、ソフトウェアコンポーネントに関連付けられた
メソッドを識別するためのシンタックス解析である。プ
ロパティおよびイベントは、通常は、メソッドをグルー
プ化することによって識別されるので、設計パターン解
析は、また、プロパティおよびイベントを識別するため
に役立つ。一般に、自動的な解析は、リフレクションの
プロセスおよびメカニズムを使用しJavaTM Bea
nによってサポートされるメソッドを決定して、その後
に、どのプロパティ、イベント、およびパブリックなメ
ソッドがサポートされているかをメソッドに基づいて決
定するために設計パターンを適用する。従って、自動解
析(automatic analysis)を使用すると、BeanIn
foクラスが特定のJavaTM Beanのために存在
しないというイベントにおいて、メソッド、故に、プロ
パティおよびイベント、を効率的に識別することが可能
になる。しかしながら、BeanInfoクラスがたと
え存在しても、自動的な解析が、同様に、使用されるこ
とがあるを認識すべきである。
【0022】今までに述べたように、典型的には、アプ
リケーションビルダツールは、どのメソッド、プロパテ
ィ、およびイベントがコンポーネントに関連付けられて
いるかを決めるために、アプリケーションビルダツール
内部で使用されるソフトウェアコンポーネントを解析し
なければならない。クラス、つまりコンポーネントが導
かれるようなクラス、が生成される時点で、コンポーネ
ントが、そのコンポーネントに関連付けられたメソッ
ド、プロパティ、およびイベントに関係がある情報を含
むべきなら、そのコンポーネント情報のためのクラスも
生成される。図2は、本発明の実施例に従う新しいクラ
スを生成することに関連付けるステップを図示するプロ
セス流れ図である。プロセス 200が始まって、ステ
ップ202においてオブジェクトクラスが生成される。
クラスは任意の適切なクラスであってもよいけれど、記
載された実施例では、生成されるクラスはJavaTM
Beanクラスである。クラスが生成された後、コンポ
ーネント情報、または所与のアプリケーション構築ツー
ル(application construction tool)に関したクラス
によって提供されたインターフェースのカタログ、が生
成されるべきかどうかに関して、ステップ204におい
て決定がなされる。コンポーネント情報、または、コン
ポーネント情報クラスは、一般的に、ステップ202に
おいて生成されたクラスのインスタンスおよびコンポー
ネントのためのプロパティ、メソッド、およびイベント
を含むことができる。記載されている実施例において
は、ステップ204は、基本的には、前述したように
「BeanInfo」オブジェクトが生成されるべきか
どうかに関して決定することである。コンポーネント情
報が生成されるべきかどうかの決定は、任意の適切な基
準(criteria)に基づくことができる。例として、アプ
リケーション構築ツールにおけるコンポーネントのシミ
ュレーションが、アプリケーション構築ツールにとって
外部のコンポーネント情報を与えることが有益かどうか
を確認するために、実行されることができる。
リケーションビルダツールは、どのメソッド、プロパテ
ィ、およびイベントがコンポーネントに関連付けられて
いるかを決めるために、アプリケーションビルダツール
内部で使用されるソフトウェアコンポーネントを解析し
なければならない。クラス、つまりコンポーネントが導
かれるようなクラス、が生成される時点で、コンポーネ
ントが、そのコンポーネントに関連付けられたメソッ
ド、プロパティ、およびイベントに関係がある情報を含
むべきなら、そのコンポーネント情報のためのクラスも
生成される。図2は、本発明の実施例に従う新しいクラ
スを生成することに関連付けるステップを図示するプロ
セス流れ図である。プロセス 200が始まって、ステ
ップ202においてオブジェクトクラスが生成される。
クラスは任意の適切なクラスであってもよいけれど、記
載された実施例では、生成されるクラスはJavaTM
Beanクラスである。クラスが生成された後、コンポ
ーネント情報、または所与のアプリケーション構築ツー
ル(application construction tool)に関したクラス
によって提供されたインターフェースのカタログ、が生
成されるべきかどうかに関して、ステップ204におい
て決定がなされる。コンポーネント情報、または、コン
ポーネント情報クラスは、一般的に、ステップ202に
おいて生成されたクラスのインスタンスおよびコンポー
ネントのためのプロパティ、メソッド、およびイベント
を含むことができる。記載されている実施例において
は、ステップ204は、基本的には、前述したように
「BeanInfo」オブジェクトが生成されるべきか
どうかに関して決定することである。コンポーネント情
報が生成されるべきかどうかの決定は、任意の適切な基
準(criteria)に基づくことができる。例として、アプ
リケーション構築ツールにおけるコンポーネントのシミ
ュレーションが、アプリケーション構築ツールにとって
外部のコンポーネント情報を与えることが有益かどうか
を確認するために、実行されることができる。
【0023】ステップ204において、コンポーネント
情報を生成する必要はないと決定されるならば、新しい
クラスを生成するプロセスは208において終了する。
一方、コンポーネント情報の生成が必要であるならば、
または、有益であるということがステップ204におい
て決定されるならば、ステップ206においてコンポー
ネント情報が生成される。記載された実施例において
は、BeanInfoオブジェクトは、beanクラス
を記述するプロパティ、メソッド、およびイベントを一
般的には含むのであり、特に、beanクラスについて
の全体の情報、例えばディスプレイ名を提供する「getB
eanDescriptor」メソッドを含み得る。コンポーネント
情報が生成された後、新しいクラスを生成するプロセス
は208において終了する。
情報を生成する必要はないと決定されるならば、新しい
クラスを生成するプロセスは208において終了する。
一方、コンポーネント情報の生成が必要であるならば、
または、有益であるということがステップ204におい
て決定されるならば、ステップ206においてコンポー
ネント情報が生成される。記載された実施例において
は、BeanInfoオブジェクトは、beanクラス
を記述するプロパティ、メソッド、およびイベントを一
般的には含むのであり、特に、beanクラスについて
の全体の情報、例えばディスプレイ名を提供する「getB
eanDescriptor」メソッドを含み得る。コンポーネント
情報が生成された後、新しいクラスを生成するプロセス
は208において終了する。
【0024】以前に述べたように、ソフトウェアコンポ
ーネントを使用するアプリケーション構築ツールは、そ
のコンポーネントがどのように働くかを解析するため
に、そのコンポーネントを自己検査する(introspect)
ことができる。クラスの一部であるそのコンポーネント
は、そのコンポーネントに関連付けられたメソッド、プ
ロパティ、およびイベントを決定するために、一般的に
自己検査される。一旦、アプリケーション構築ツール
が、そのコンポーネントに関連付けられたメソッド、プ
ロパティ、およびイベントを決定すると、アプリケーシ
ョン構築ツールは、そのコンポーネントを与え、例えば
視覚的に表示することができる。
ーネントを使用するアプリケーション構築ツールは、そ
のコンポーネントがどのように働くかを解析するため
に、そのコンポーネントを自己検査する(introspect)
ことができる。クラスの一部であるそのコンポーネント
は、そのコンポーネントに関連付けられたメソッド、プ
ロパティ、およびイベントを決定するために、一般的に
自己検査される。一旦、アプリケーション構築ツール
が、そのコンポーネントに関連付けられたメソッド、プ
ロパティ、およびイベントを決定すると、アプリケーシ
ョン構築ツールは、そのコンポーネントを与え、例えば
視覚的に表示することができる。
【0025】どのメソッド、プロパティ、イベントがク
ラスに関連付けられるかの決定は、順次的に(sequenti
ally)起こり、すなわち、メソッド、プロパティ、およ
びイベントは別個のプロセスにおいて識別されることが
できる。代わりに、メソッド、プロパティ、およびイベ
ントが単一のプロセスの一部として、共に識別されるこ
とができる。メソッド、プロパティ、およびイベントを
順次的に識別することの1つの実施例は、図3、図4、
および図8を参照しながら以下に説明がなされる。
ラスに関連付けられるかの決定は、順次的に(sequenti
ally)起こり、すなわち、メソッド、プロパティ、およ
びイベントは別個のプロセスにおいて識別されることが
できる。代わりに、メソッド、プロパティ、およびイベ
ントが単一のプロセスの一部として、共に識別されるこ
とができる。メソッド、プロパティ、およびイベントを
順次的に識別することの1つの実施例は、図3、図4、
および図8を参照しながら以下に説明がなされる。
【0026】図3は、本発明の実施例に従って、情報ク
ラスを含むことができるクラスに関連付けられるメソッ
ドを識別することに伴うステップを図示するプロセス流
れ図である。典型的には、クラスに関連付けられるメソ
ッドは、他のコンポーネントまたはクラスからコールさ
れることができる。メソッドを識別するプロセス300
が始まって、ステップ302において、解析されるべき
クラスが入手される。適切なアプリケーションを使用し
てクラスの解析が実行されることができる間に、一般
に、アプリケーションビルダ、および類したツールが、
そのクラスを解析するために使用される。記載された実
施例においては、解析されるべきクラスはbeanクラ
スである。一旦、解析されるべきクラスが獲得される
と、ステップ304において解析されるべきクラスに関
連付けられる情報(info)クラスまたはコンポーネ
ント情報クラスが存在するかどうかに関して決定がなさ
れる。
ラスを含むことができるクラスに関連付けられるメソッ
ドを識別することに伴うステップを図示するプロセス流
れ図である。典型的には、クラスに関連付けられるメソ
ッドは、他のコンポーネントまたはクラスからコールさ
れることができる。メソッドを識別するプロセス300
が始まって、ステップ302において、解析されるべき
クラスが入手される。適切なアプリケーションを使用し
てクラスの解析が実行されることができる間に、一般
に、アプリケーションビルダ、および類したツールが、
そのクラスを解析するために使用される。記載された実
施例においては、解析されるべきクラスはbeanクラ
スである。一旦、解析されるべきクラスが獲得される
と、ステップ304において解析されるべきクラスに関
連付けられる情報(info)クラスまたはコンポーネ
ント情報クラスが存在するかどうかに関して決定がなさ
れる。
【0027】関連したコンポーネント情報クラス、例え
ば記載された実施例におけるBeanInfoクラス、
が存在しているならば、ステップ306において、情報
クラスは、その情報クラスの内部に含まれるメソッドに
ついて質問される。ステップ307において、情報クラ
スが、解析されているクラスに関連付けられたすべての
メソッドを「知っている」か、つまり含んでいるか、が
決定される。もし、すべてのメソッドが情報クラスに知
られていることが決定されるならば、クラスに関連付け
られたメソッドを識別するプロセスは、309において
終了する。すべてのメソッドが情報クラスに知られてい
ないことが決定されるならば、そのとき、ステップ30
8において、解析されているクラスに関連付けられたす
べてのメソッドが見つけられる。メソッドを見つけるた
めに任意の適切なメソッドを使用することができる一方
で、クラスに関連付けられたすべてのメソッドを識別す
るために、典型的にはリフレクションのプロセスまたは
メカニズムが使用される。以前に述べたように、リフレ
クションは、解析されているクラスを含んでいるプログ
ラムの異なる部分を、どのメソッド、どのプロパティ、
およびどのイベントがそのクラスに関係付けられている
かを決定するために、実行時において調べる(study)
ことを伴う。
ば記載された実施例におけるBeanInfoクラス、
が存在しているならば、ステップ306において、情報
クラスは、その情報クラスの内部に含まれるメソッドに
ついて質問される。ステップ307において、情報クラ
スが、解析されているクラスに関連付けられたすべての
メソッドを「知っている」か、つまり含んでいるか、が
決定される。もし、すべてのメソッドが情報クラスに知
られていることが決定されるならば、クラスに関連付け
られたメソッドを識別するプロセスは、309において
終了する。すべてのメソッドが情報クラスに知られてい
ないことが決定されるならば、そのとき、ステップ30
8において、解析されているクラスに関連付けられたす
べてのメソッドが見つけられる。メソッドを見つけるた
めに任意の適切なメソッドを使用することができる一方
で、クラスに関連付けられたすべてのメソッドを識別す
るために、典型的にはリフレクションのプロセスまたは
メカニズムが使用される。以前に述べたように、リフレ
クションは、解析されているクラスを含んでいるプログ
ラムの異なる部分を、どのメソッド、どのプロパティ、
およびどのイベントがそのクラスに関係付けられている
かを決定するために、実行時において調べる(study)
ことを伴う。
【0028】すべてのメソッドが識別された後に、ステ
ップ310において、パブリックなメソッドを識別する
ために設計パターンが適用される。設計パターンは、典
型的には、解析されているクラスに関連付けられるイク
スポートされる(exported)ことができる、パブリック
なメソッド、またはメソッドの部分集合、を識別するた
めに使用されることができる標準の設計パターンであ
る。次に、パブリックなメソッドは、その後に、ステッ
プ312において識別される。一旦、パブリックなメソ
ッドがステップ314において識別されると、解析され
るべき別のクラスまたはベースクラスがあるかどうかに
関して決定がなされる。トップレベルのベースクラスが
すでに解析されたと決定されると、プロセスの流れは、
ステップ314から、メソッドを識別するプロセスが終
了するステップ309に移動する。もし、ベースクラス
があることがステップ314において決定されると、そ
れ後、そのベースクラスが解析されるべきクラスとな
り、そしてプロセスの流れは、解析されるべきクラスを
入手するステップ、ステップ302に戻る。
ップ310において、パブリックなメソッドを識別する
ために設計パターンが適用される。設計パターンは、典
型的には、解析されているクラスに関連付けられるイク
スポートされる(exported)ことができる、パブリック
なメソッド、またはメソッドの部分集合、を識別するた
めに使用されることができる標準の設計パターンであ
る。次に、パブリックなメソッドは、その後に、ステッ
プ312において識別される。一旦、パブリックなメソ
ッドがステップ314において識別されると、解析され
るべき別のクラスまたはベースクラスがあるかどうかに
関して決定がなされる。トップレベルのベースクラスが
すでに解析されたと決定されると、プロセスの流れは、
ステップ314から、メソッドを識別するプロセスが終
了するステップ309に移動する。もし、ベースクラス
があることがステップ314において決定されると、そ
れ後、そのベースクラスが解析されるべきクラスとな
り、そしてプロセスの流れは、解析されるべきクラスを
入手するステップ、ステップ302に戻る。
【0029】解析されるべきクラスに関する関連付けら
れた情報クラスが存在しないとステップ304において
決定されるならば、その後、プロセスの流れは、解析さ
れるべきクラスに関連付けられるすべてのメソッドが識
別されるステップ304からステップ308に進む。記
載された実施例においては、解析されるクラスに関連付
けられる情報クラスが欠如することは、解析されるべき
beanクラスのためにBeanInfoクラスが存在
しないことを意味する。
れた情報クラスが存在しないとステップ304において
決定されるならば、その後、プロセスの流れは、解析さ
れるべきクラスに関連付けられるすべてのメソッドが識
別されるステップ304からステップ308に進む。記
載された実施例においては、解析されるクラスに関連付
けられる情報クラスが欠如することは、解析されるべき
beanクラスのためにBeanInfoクラスが存在
しないことを意味する。
【0030】図4は、本発明の実施例に従う、クラスに
関連付けられたプロパティを識別することを伴うステッ
プを図示するプロセス流れ図である。プロパティは、一
般にはクラスに関連付けられた名前付きのアトリビュー
トであり、そのクラスに関連付けられた適当なメソッド
をコールすることによって読み込み、または書き込みで
きる。プロパティは幅広く変化し得るでことを認識すべ
きである。例として、プロパティは、単純なプロパテ
ィ、ブーリアン(論理値)プロパティ、およびインデッ
クス付き(indexed)プロパティがあるが、これらに限
られない。
関連付けられたプロパティを識別することを伴うステッ
プを図示するプロセス流れ図である。プロパティは、一
般にはクラスに関連付けられた名前付きのアトリビュー
トであり、そのクラスに関連付けられた適当なメソッド
をコールすることによって読み込み、または書き込みで
きる。プロパティは幅広く変化し得るでことを認識すべ
きである。例として、プロパティは、単純なプロパテ
ィ、ブーリアン(論理値)プロパティ、およびインデッ
クス付き(indexed)プロパティがあるが、これらに限
られない。
【0031】プロパティを識別するプロセス400が開
始して、ステップ402において、解析されるべきクラ
スが入手される。典型的には、アプリケーションビル
ダ、およびそれに類するツールが、そのクラスを解析す
るために使用される。記載された実施例においては、解
析されるべきクラスはbeanクラスである。一旦、解
析されるべきクラスが獲得されると、解析されるべきそ
のクラスに関連付けられる情報クラス(infoクラ
ス)またはコンポーネント情報クラスが存在するかどう
かがステップ404において決定される。
始して、ステップ402において、解析されるべきクラ
スが入手される。典型的には、アプリケーションビル
ダ、およびそれに類するツールが、そのクラスを解析す
るために使用される。記載された実施例においては、解
析されるべきクラスはbeanクラスである。一旦、解
析されるべきクラスが獲得されると、解析されるべきそ
のクラスに関連付けられる情報クラス(infoクラ
ス)またはコンポーネント情報クラスが存在するかどう
かがステップ404において決定される。
【0032】関連したコンポーネント情報クラスが存在
しているならば、その情報クラスは、ステップ406に
おいて、情報クラス内に含まれるプロパティについて質
問される。ステップ407において、情報クラスは、解
析されているクラスに関連付けられるすべてのプロパテ
ィを「知っている」、つまり含むかどうかが決定され
る。すべてのプロパティが情報クラスに知られているこ
とが決定されたら、その後、クラスに関連付けられたプ
ロパティを識別するプロセスは、409において終了す
る。すべてのプロパティが情報クラスに知られていない
ことが決定されたら、解析されているクラスに関連付け
られたすべてのメソッドが、ステップ408において見
つけられる。メソッドをさがすために任意の適切なメソ
ッドを使用できる一方、典型的には、クラスに関連付け
られたメソッドを識別するためにリフレクションメカニ
ズムが使用される。
しているならば、その情報クラスは、ステップ406に
おいて、情報クラス内に含まれるプロパティについて質
問される。ステップ407において、情報クラスは、解
析されているクラスに関連付けられるすべてのプロパテ
ィを「知っている」、つまり含むかどうかが決定され
る。すべてのプロパティが情報クラスに知られているこ
とが決定されたら、その後、クラスに関連付けられたプ
ロパティを識別するプロセスは、409において終了す
る。すべてのプロパティが情報クラスに知られていない
ことが決定されたら、解析されているクラスに関連付け
られたすべてのメソッドが、ステップ408において見
つけられる。メソッドをさがすために任意の適切なメソ
ッドを使用できる一方、典型的には、クラスに関連付け
られたメソッドを識別するためにリフレクションメカニ
ズムが使用される。
【0033】すべてのメソッドが識別された後で、設計
パターンが、ステップ410において、パブリックなプ
ロパティを識別するために適用される。以前に述べたよ
うに、プロパティには、単純プロパティ、ブーリアンプ
ロパティ、およびインデックス付きプロパティが含まれ
る。パブリック・プロパティは、他のクラスにイクスポ
ートされる(exported)ことができるプロパティであ
る。パブリックな単純プロパティを識別するために設計
パターンを使用することに関連付けられたステップは、
図5に関連してもっと詳細に以下に記述され、パブリッ
クなブーリアンプロパティおよびパブリックなインデッ
クス付きプロパティを識別するために設計パターンを適
用することに関連付けられたステップは、図6および図
7を参照して、より詳細に以下に、それぞれ述べられ
る。設計パターンがステップ410において適用された
後に、ステップ412においてパブリックなプロパティ
が識別される。
パターンが、ステップ410において、パブリックなプ
ロパティを識別するために適用される。以前に述べたよ
うに、プロパティには、単純プロパティ、ブーリアンプ
ロパティ、およびインデックス付きプロパティが含まれ
る。パブリック・プロパティは、他のクラスにイクスポ
ートされる(exported)ことができるプロパティであ
る。パブリックな単純プロパティを識別するために設計
パターンを使用することに関連付けられたステップは、
図5に関連してもっと詳細に以下に記述され、パブリッ
クなブーリアンプロパティおよびパブリックなインデッ
クス付きプロパティを識別するために設計パターンを適
用することに関連付けられたステップは、図6および図
7を参照して、より詳細に以下に、それぞれ述べられ
る。設計パターンがステップ410において適用された
後に、ステップ412においてパブリックなプロパティ
が識別される。
【0034】一旦、パブリックなプロパティが識別され
ると、ステップ414にベースクラスがあるかに関して
決定がなされる。残っているベースクラスがないこと、
すなわちトップレベルのベースクラスがすでに解析され
てしまったことが決定されたなら、その後、プロパティ
を識別するプロセスは409において終了する。ベース
クラスが残っていることがステップ414において決定
されたなら、その後、プロセスの流れは、解析されるべ
きクラスとしてベースクラスが獲得されるステップ40
2に戻る。
ると、ステップ414にベースクラスがあるかに関して
決定がなされる。残っているベースクラスがないこと、
すなわちトップレベルのベースクラスがすでに解析され
てしまったことが決定されたなら、その後、プロパティ
を識別するプロセスは409において終了する。ベース
クラスが残っていることがステップ414において決定
されたなら、その後、プロセスの流れは、解析されるべ
きクラスとしてベースクラスが獲得されるステップ40
2に戻る。
【0035】解析されるべきクラスのための関連した情
報クラスが存在しないことが、ステップ404において
決定されると、プロセスの流れは、ステップ404か
ら、解析されているクラスに関連付けられるすべてのプ
ロパティが識別されるステップ408に進む。記載され
た実施例においては、解析されるクラスに関連付けられ
た情報クラスが欠けることは、解析されるべきbean
クラスのためにBeanInfoが存在しないことを意
味する。
報クラスが存在しないことが、ステップ404において
決定されると、プロセスの流れは、ステップ404か
ら、解析されているクラスに関連付けられるすべてのプ
ロパティが識別されるステップ408に進む。記載され
た実施例においては、解析されるクラスに関連付けられ
た情報クラスが欠けることは、解析されるべきbean
クラスのためにBeanInfoが存在しないことを意
味する。
【0036】図5を参照して、パブリックな単純な読み
書きプロパティを識別するために設計パターンを適用す
ることに関連付けられたステップが、本発明の実施例に
従って記述される。単純な読み書きプロパティは、単純
なプロパティの1タイプであり、一般的に、「set」
メソッド及び「get」メソッドによって識別されるこ
とができる。例として、単純プロパティ「foo」は、
「getFoo」および「setFoo」メソッドを探
すことによって、識別されるか、または配置される(lo
cated)ことができる。
書きプロパティを識別するために設計パターンを適用す
ることに関連付けられたステップが、本発明の実施例に
従って記述される。単純な読み書きプロパティは、単純
なプロパティの1タイプであり、一般的に、「set」
メソッド及び「get」メソッドによって識別されるこ
とができる。例として、単純プロパティ「foo」は、
「getFoo」および「setFoo」メソッドを探
すことによって、識別されるか、または配置される(lo
cated)ことができる。
【0037】パブリックの単純な読み書きプロパティを
識別するために設計パターンを適用するプロセスはステ
ップ502において始まり、ここではプロセスは、変数
iの値がインクリメントされるループに入る。言い換え
ると、パブリックの単純な読み書きプロパティを識別す
る際にチェックされる(checked)べきメソッドの数を
追跡するために、カウンタが使用される。そのループ
は、解析されているクラスに関連付けられることができ
るすべてのメソッド「i」にわたるループである。チェ
ックされるべきメソッドがないならば、または、代わり
に、すべての利用可能なメソッドがチェックされてしま
ったならば、そのとき、単純な読み書きプロパティを識
別するプロセスは503において終了する。ステップ5
04においては、メソッド「i」が「get<string>」
の形式をしているかどうかに関して決定がなされ、ここ
で、一般に、「<string>」は、配置されるべき単純な
プロパティの名前である。上述のように、単純な読み書
きプロパティは、典型的には、setメソッドおよびg
etメソッドによって識別されることができる。ステッ
プ504における決定が、メソッド「i」が「get<str
ing>」の形式を有しないことであるならば、プロセス
の流れは、「i」、つまりカウンタがインクリメントさ
れるステップ502にループして戻って、もしあれば、
次のメソッドが入手される。
識別するために設計パターンを適用するプロセスはステ
ップ502において始まり、ここではプロセスは、変数
iの値がインクリメントされるループに入る。言い換え
ると、パブリックの単純な読み書きプロパティを識別す
る際にチェックされる(checked)べきメソッドの数を
追跡するために、カウンタが使用される。そのループ
は、解析されているクラスに関連付けられることができ
るすべてのメソッド「i」にわたるループである。チェ
ックされるべきメソッドがないならば、または、代わり
に、すべての利用可能なメソッドがチェックされてしま
ったならば、そのとき、単純な読み書きプロパティを識
別するプロセスは503において終了する。ステップ5
04においては、メソッド「i」が「get<string>」
の形式をしているかどうかに関して決定がなされ、ここ
で、一般に、「<string>」は、配置されるべき単純な
プロパティの名前である。上述のように、単純な読み書
きプロパティは、典型的には、setメソッドおよびg
etメソッドによって識別されることができる。ステッ
プ504における決定が、メソッド「i」が「get<str
ing>」の形式を有しないことであるならば、プロセス
の流れは、「i」、つまりカウンタがインクリメントさ
れるステップ502にループして戻って、もしあれば、
次のメソッドが入手される。
【0038】ステップ504における決定が、メソッド
「i」が「get<string>」の形式を有しているという
ものであれば、そのとき、ステップ506において「se
t<string>」という名のメソッドに関して探索(searc
h)がなされ、ここで「<string>」は「get<string
>」および「set<string>」の両方において同じであ
る。同じクラスに配置され得る「set<string>」と名
付けられたメソッドを求めて「get<string>」に名付
けられたメソッドを捜す(search)ために、任意の適切
なアルゴリズムが採用されてもよいことを認識すべきで
ある。「set<string>」と名付けられたメソッドが見
つかったかどうかが、ステップ508において判断され
る。「set<string>」という名のメソッドが見つかっ
ていなければ、プロセスの流れは、「i」がインクリメ
ントされるステップ502に戻る。「get<string>」
という名のメソッドのみが見つかったときは、「<stri
ng>」として識別されたプロパティは読み出し専用であ
り得ることを理解するべきである。代わりに、「set<s
tring>」として名付けられたメソッドが見つかったな
らば、そのときステップ510において、単純読み書き
プロパティのための設計パターンが満たされた(met)
かどうかに関する決定がなされる。単純な読み書きプロ
パティのための設計パターンが任意の適切な形式を呈す
るけれど、記載された実施例においては、設計パターン
は、「set<string>」がボイド(void)を戻して、ま
た1つの引数を有し、一方、「get<string>」は結果を
返し、それは「set<string>」への引数と同じタイプ
であり、引数を有しない、というようなものである。
「i」が「get<string>」の形式を有しているという
ものであれば、そのとき、ステップ506において「se
t<string>」という名のメソッドに関して探索(searc
h)がなされ、ここで「<string>」は「get<string
>」および「set<string>」の両方において同じであ
る。同じクラスに配置され得る「set<string>」と名
付けられたメソッドを求めて「get<string>」に名付
けられたメソッドを捜す(search)ために、任意の適切
なアルゴリズムが採用されてもよいことを認識すべきで
ある。「set<string>」と名付けられたメソッドが見
つかったかどうかが、ステップ508において判断され
る。「set<string>」という名のメソッドが見つかっ
ていなければ、プロセスの流れは、「i」がインクリメ
ントされるステップ502に戻る。「get<string>」
という名のメソッドのみが見つかったときは、「<stri
ng>」として識別されたプロパティは読み出し専用であ
り得ることを理解するべきである。代わりに、「set<s
tring>」として名付けられたメソッドが見つかったな
らば、そのときステップ510において、単純読み書き
プロパティのための設計パターンが満たされた(met)
かどうかに関する決定がなされる。単純な読み書きプロ
パティのための設計パターンが任意の適切な形式を呈す
るけれど、記載された実施例においては、設計パターン
は、「set<string>」がボイド(void)を戻して、ま
た1つの引数を有し、一方、「get<string>」は結果を
返し、それは「set<string>」への引数と同じタイプ
であり、引数を有しない、というようなものである。
【0039】単純な読み書きプロパティのための設計パ
ターンが満たさて(met)いないならば、プロセスの流
れは、「i」がインクリメントされるステップ502に
戻る。単純な読み書きプロパティのための設計パターン
に合っている(meet)ならば、そのとき、「<string
>」は、見つかっているすべての単純な読み書きプロパ
ティのリストに追加される。見つかっているすべての単
純な読み書きプロパティのリストに「<string>」が追
加された後に、プロセスの流れは、「i」が増加される
ステップ502に戻る。ステップ502を通して512
までは、メソッド「i」が「get<string>」形式を有
しているかどうかを決定するために、チェックされるべ
きメソッドが、もはや残っていなくなるまで繰り返され
る。チェックされるべきメソッドがもう残っていないと
き、単純読み書きプロパティを見つけるためのプロセス
は503において終了する。
ターンが満たさて(met)いないならば、プロセスの流
れは、「i」がインクリメントされるステップ502に
戻る。単純な読み書きプロパティのための設計パターン
に合っている(meet)ならば、そのとき、「<string
>」は、見つかっているすべての単純な読み書きプロパ
ティのリストに追加される。見つかっているすべての単
純な読み書きプロパティのリストに「<string>」が追
加された後に、プロセスの流れは、「i」が増加される
ステップ502に戻る。ステップ502を通して512
までは、メソッド「i」が「get<string>」形式を有
しているかどうかを決定するために、チェックされるべ
きメソッドが、もはや残っていなくなるまで繰り返され
る。チェックされるべきメソッドがもう残っていないと
き、単純読み書きプロパティを見つけるためのプロセス
は503において終了する。
【0040】次に図6を参照すると、本発明の実施例に
従って、パブリックのブーリアン(論理値)プロパティ
を識別するために設計パターンを適用することに関連付
けられたステップが記述される。ある実施例において
は、ブーリアンプロパティは通常は、「is」メソッド
および対応する「set」メソッドの存在により識別さ
れる。あるケースでは、対応する「get」メソッド
が、「is」メソッドに加えて存在することができる。
ブーリアンプロパティ、例えば、「booleanprop」と名
付けられたブーリアンプロパティは、「isBooleanpro
p」および[setBooleanprop」メソッドを探すことによ
って、識別され、または配置されたりすることができ
る。
従って、パブリックのブーリアン(論理値)プロパティ
を識別するために設計パターンを適用することに関連付
けられたステップが記述される。ある実施例において
は、ブーリアンプロパティは通常は、「is」メソッド
および対応する「set」メソッドの存在により識別さ
れる。あるケースでは、対応する「get」メソッド
が、「is」メソッドに加えて存在することができる。
ブーリアンプロパティ、例えば、「booleanprop」と名
付けられたブーリアンプロパティは、「isBooleanpro
p」および[setBooleanprop」メソッドを探すことによ
って、識別され、または配置されたりすることができ
る。
【0041】パブリックのブーリアンプロパティを識別
するために設計パターンを適用するプロセスの1つの実
施例は、変数「i」がインクリメントされるループにプ
ロセスが入るステップ602において始まる。ループ
は、解析されているクラスに関連付けられ得るすべての
メソッド「i」にわたるループである。チェックされる
べきメソッドが無いならば、または、すべての利用可能
なメソッドがチェックされてしまったならば、そのと
き、ブーリアンプロパティを識別するプロセスは、60
3において終了する。ステップ604において、メソッ
ド「i」が「is<string>」の形式を有しているかどう
かに関する決定がなされる。ステップ604における決
定は、メソッド「i」が「is<string>」の形式を有し
ていないならば、プロセスの流れは、「i」がインクリ
メントされるステップ602にループして戻る。
するために設計パターンを適用するプロセスの1つの実
施例は、変数「i」がインクリメントされるループにプ
ロセスが入るステップ602において始まる。ループ
は、解析されているクラスに関連付けられ得るすべての
メソッド「i」にわたるループである。チェックされる
べきメソッドが無いならば、または、すべての利用可能
なメソッドがチェックされてしまったならば、そのと
き、ブーリアンプロパティを識別するプロセスは、60
3において終了する。ステップ604において、メソッ
ド「i」が「is<string>」の形式を有しているかどう
かに関する決定がなされる。ステップ604における決
定は、メソッド「i」が「is<string>」の形式を有し
ていないならば、プロセスの流れは、「i」がインクリ
メントされるステップ602にループして戻る。
【0042】ステップ604における決定が、メソッド
「i」が「is<string>」の形式を有するというもので
あるならば、「set<string>」という名前のメソッド
の探索がなされ、ここで、「<string>」は「is<stri
ng>」および「set<string>」の両方において同じで
ある。「set<string>」という名前のメソッドを探索
するために、任意の適切なアルゴリズムが採用され得る
ことを認識すべきである。ステップ608においては、
「set<string>」という名前のメソッドが見つかった
か否かが決定される。「set<string>」と名付けられ
たメソッドが見つかっていなければ、プロセスの流れ
は、「i」の値が増加されるステップ602に戻る。し
かしながら、「set<string>」と名付けられたメッソ
ドが見つかったならば、そのとき、ステップ610にお
いて、ブーリアンプロパティのための設計パターンが満
たされたか否かに関しての決定がなされる。ブーリアン
プロパティのための設計パターンは、任意の適切な形式
をとることができることを認識すべきである。例とし
て、記載された実施例では、設計パターンは「set<str
ing>」がボイドを返して1つのブーリアン引数を有し、
一方「is<string>」がブーリアンを返して引数を有さ
ないというもので有り得る。
「i」が「is<string>」の形式を有するというもので
あるならば、「set<string>」という名前のメソッド
の探索がなされ、ここで、「<string>」は「is<stri
ng>」および「set<string>」の両方において同じで
ある。「set<string>」という名前のメソッドを探索
するために、任意の適切なアルゴリズムが採用され得る
ことを認識すべきである。ステップ608においては、
「set<string>」という名前のメソッドが見つかった
か否かが決定される。「set<string>」と名付けられ
たメソッドが見つかっていなければ、プロセスの流れ
は、「i」の値が増加されるステップ602に戻る。し
かしながら、「set<string>」と名付けられたメッソ
ドが見つかったならば、そのとき、ステップ610にお
いて、ブーリアンプロパティのための設計パターンが満
たされたか否かに関しての決定がなされる。ブーリアン
プロパティのための設計パターンは、任意の適切な形式
をとることができることを認識すべきである。例とし
て、記載された実施例では、設計パターンは「set<str
ing>」がボイドを返して1つのブーリアン引数を有し、
一方「is<string>」がブーリアンを返して引数を有さ
ないというもので有り得る。
【0043】ブーリアンプロパティのための設計パター
ンが満たされていないならば、プロセスの流れは、
「i」がインクリメントされるステップ602に戻る。
一方、ブーリアンプロパティのための設計パターンに合
っているならば、そのとき「<string>」は、ステップ
612において見いだされた全ブーリアンプロパティの
リストに追加される。「<string>」は、見いだされた
全ブーリアンプロパティのリストに追加された後に、プ
ロセスの流れは、「i」がインクリメントされるステッ
プ602に戻る。メソッド「i」が「is<string>」の
形式をしているかどうかを決定するために、チェックさ
れるべきメソッドがもはや残らなくなるまで、ステップ
602から612が繰り返される。チェックされるべき
メソッドがもう残っていないとき、ブーリアンプロパテ
ィを見つけるプロセスは603において終了する。
ンが満たされていないならば、プロセスの流れは、
「i」がインクリメントされるステップ602に戻る。
一方、ブーリアンプロパティのための設計パターンに合
っているならば、そのとき「<string>」は、ステップ
612において見いだされた全ブーリアンプロパティの
リストに追加される。「<string>」は、見いだされた
全ブーリアンプロパティのリストに追加された後に、プ
ロセスの流れは、「i」がインクリメントされるステッ
プ602に戻る。メソッド「i」が「is<string>」の
形式をしているかどうかを決定するために、チェックさ
れるべきメソッドがもはや残らなくなるまで、ステップ
602から612が繰り返される。チェックされるべき
メソッドがもう残っていないとき、ブーリアンプロパテ
ィを見つけるプロセスは603において終了する。
【0044】次いで図7を参照すると、本発明の実施例
に従う、パブリックなインデックス付きプロパティを識
別するために設計パターンを適用することに関連付けら
れたステップが記述される。インデックス付きプロパテ
ィは、そのタイプがアレイであり、一般に、「set」
メソッドおよび「get」メソッドによって識別される
ことができるプロパティである。例として、インデック
ス付きプロパティ「indexprop」は、「getIndexprop」
および「setIndexprop」メソッドを探すことによって識
別されることができ、または配置されることができる。
に従う、パブリックなインデックス付きプロパティを識
別するために設計パターンを適用することに関連付けら
れたステップが記述される。インデックス付きプロパテ
ィは、そのタイプがアレイであり、一般に、「set」
メソッドおよび「get」メソッドによって識別される
ことができるプロパティである。例として、インデック
ス付きプロパティ「indexprop」は、「getIndexprop」
および「setIndexprop」メソッドを探すことによって識
別されることができ、または配置されることができる。
【0045】ある実施例に従う、パブリックなインデッ
クス付きプロパティを識別するために設計パターンを適
用するプロセスは、変数「i」がインクリメントされる
ループにプロセスが入るステップ702において始ま
る。そのループは、解析されているクラスに関連付けら
れ得る全メソッド「i」を通したループである。チェッ
クされるべきメソッドがない場合、または、すべての利
用可能なメソッドがチェックされてしまった場合、その
とき、インデックス付きプロパティを認識するプロセス
は、703において終了する。ステップ704におい
て、メソッド「i」が「get<string>」の形式を有す
るかどうかに関して決定がなされる。上に述べたよう
に、インデックス付きプロパティは、典型的には、se
tメソッドおよびgetメソッドによって識別されるこ
とができる。ステップ704における決定が、メソッド
「i」が「get<string>」という形式を有しないとい
う決定ならば、プロセスの流れは、「i」がインクリメ
ントされるステップ702にループして戻る。
クス付きプロパティを識別するために設計パターンを適
用するプロセスは、変数「i」がインクリメントされる
ループにプロセスが入るステップ702において始ま
る。そのループは、解析されているクラスに関連付けら
れ得る全メソッド「i」を通したループである。チェッ
クされるべきメソッドがない場合、または、すべての利
用可能なメソッドがチェックされてしまった場合、その
とき、インデックス付きプロパティを認識するプロセス
は、703において終了する。ステップ704におい
て、メソッド「i」が「get<string>」の形式を有す
るかどうかに関して決定がなされる。上に述べたよう
に、インデックス付きプロパティは、典型的には、se
tメソッドおよびgetメソッドによって識別されるこ
とができる。ステップ704における決定が、メソッド
「i」が「get<string>」という形式を有しないとい
う決定ならば、プロセスの流れは、「i」がインクリメ
ントされるステップ702にループして戻る。
【0046】ステップ704における決定が、メソッド
「i」が確かに「get<string>」の形式を有するとい
うものならば、そのときステップ706において、「se
t<string>」と名付けられたメソッドの探索がなさ
れ、ここで「<string>」は「get<string>」と「set
<string>」において同じである。「get<string>」
と名付けられたメソッドと同じクラスに配置され得る
「set<string>」と名付けられたメソッドを探索する
ために、任意の適切なアルゴリズムを採用できることを
認識すべきである。ステップ708では、「set<strin
g>」と名付けられたメソッドが見いだされたかどうか
が決定される。「set<string>」と名付けられたメソ
ッドが見つからなかったならば、プロセスの流れは、
「i」が増加されるステップ702に戻る。代わりに、
「set<string>」と名付けられたメソッドが見つかっ
たならば、そのときステップ710において、インデッ
クス付きプロパティのための設計パターンが満たされた
かどうかに関する決定がなされる。インデックス付きプ
ロパティのための設計パターンは任意の適切な形式をと
ることができるけれど、記載された実施例においては、
設計パターンは、「get<string>」は結果を返して1つ
の整数引数をとり、一方、「set<string>」はボイド
を返して2との引き数をとり、第1引数は整数であり、
第2引数は「get<string>」によって返される結果と
同じタイプであるというようなものである。
「i」が確かに「get<string>」の形式を有するとい
うものならば、そのときステップ706において、「se
t<string>」と名付けられたメソッドの探索がなさ
れ、ここで「<string>」は「get<string>」と「set
<string>」において同じである。「get<string>」
と名付けられたメソッドと同じクラスに配置され得る
「set<string>」と名付けられたメソッドを探索する
ために、任意の適切なアルゴリズムを採用できることを
認識すべきである。ステップ708では、「set<strin
g>」と名付けられたメソッドが見いだされたかどうか
が決定される。「set<string>」と名付けられたメソ
ッドが見つからなかったならば、プロセスの流れは、
「i」が増加されるステップ702に戻る。代わりに、
「set<string>」と名付けられたメソッドが見つかっ
たならば、そのときステップ710において、インデッ
クス付きプロパティのための設計パターンが満たされた
かどうかに関する決定がなされる。インデックス付きプ
ロパティのための設計パターンは任意の適切な形式をと
ることができるけれど、記載された実施例においては、
設計パターンは、「get<string>」は結果を返して1つ
の整数引数をとり、一方、「set<string>」はボイド
を返して2との引き数をとり、第1引数は整数であり、
第2引数は「get<string>」によって返される結果と
同じタイプであるというようなものである。
【0047】インデックス付きプロパティのための設計
パターンが満たされなければ、そのとき、プロセスの流
れは、「i」がインクリメントされるステップ702に
戻る。インデックス付きプロパティのための設計パター
ンに合ったならば、そのときステップ712において、
「<string>」は、見いだされたインデックス付きプロ
パティのリストに追加される。「<string>」が見つけ
られた全インデックス付きプロパティのリストに追加さ
れた後に、プロセスの流れは、「i」がインクリメント
されるステップ702に戻る。メソッド「i」が「get
<string>」の形式を持つかどうかを決定するために、
ステップ702から712は、チェックされるべきメソ
ッドがもはや残らなくなるまで繰り返される。チェック
されるべきメソッドがもう残っていないとき、単純なプ
ロパティを見つけるプロセスは、703において終了す
る。
パターンが満たされなければ、そのとき、プロセスの流
れは、「i」がインクリメントされるステップ702に
戻る。インデックス付きプロパティのための設計パター
ンに合ったならば、そのときステップ712において、
「<string>」は、見いだされたインデックス付きプロ
パティのリストに追加される。「<string>」が見つけ
られた全インデックス付きプロパティのリストに追加さ
れた後に、プロセスの流れは、「i」がインクリメント
されるステップ702に戻る。メソッド「i」が「get
<string>」の形式を持つかどうかを決定するために、
ステップ702から712は、チェックされるべきメソ
ッドがもはや残らなくなるまで繰り返される。チェック
されるべきメソッドがもう残っていないとき、単純なプ
ロパティを見つけるプロセスは、703において終了す
る。
【0048】一旦、クラスに関連付けられたメソッドお
よびプロパティが識別されると、ある実施例では、その
とき、そのクラスに関連付けられたイベントが識別され
る。図8は、本発明の実施例に従う、クラスに関連付け
られたイベントを識別することを伴うステップを図示す
るプロセス流れ図である。イベントは、典型的には、関
心のある何かが起こることを他のコンポーネントに通知
するために、あるコンポーネントのための方法を提供す
る。イベントを識別するプロセス800が始まり、ステ
ップ802において、解析されるべきクラスが入手され
る。前に述べたように、クラスの解析は、例えばアプリ
ケーションビルダのような任意の適切なアプリケーショ
ンを用いて実行されることができる。解析されるべきク
ラスは任意の適切なクラスであることができるけれど、
記載された実施例においては、解析されるべきクラスは
beanクラスである。一旦、解析されるべきクラスが
獲得されると、ステップ804においては、解析される
クラスに関連付けられた情報(info)クラス、つま
りコンポーネント情報クラス、が存在するかどうかに関
する決定がなされる。
よびプロパティが識別されると、ある実施例では、その
とき、そのクラスに関連付けられたイベントが識別され
る。図8は、本発明の実施例に従う、クラスに関連付け
られたイベントを識別することを伴うステップを図示す
るプロセス流れ図である。イベントは、典型的には、関
心のある何かが起こることを他のコンポーネントに通知
するために、あるコンポーネントのための方法を提供す
る。イベントを識別するプロセス800が始まり、ステ
ップ802において、解析されるべきクラスが入手され
る。前に述べたように、クラスの解析は、例えばアプリ
ケーションビルダのような任意の適切なアプリケーショ
ンを用いて実行されることができる。解析されるべきク
ラスは任意の適切なクラスであることができるけれど、
記載された実施例においては、解析されるべきクラスは
beanクラスである。一旦、解析されるべきクラスが
獲得されると、ステップ804においては、解析される
クラスに関連付けられた情報(info)クラス、つま
りコンポーネント情報クラス、が存在するかどうかに関
する決定がなされる。
【0049】関連したコンポーネント情報クラスが存在
しているならば、そのときステップ806において、そ
の情報クラスは、その情報クラス内に含まれたイベント
について質問される。ステップ807において、その情
報クラスが、解析されるべきクラスに関連付けられた全
イベントを含むかどうかが決定される。全イベントがそ
の情報クラスに知られているという決定がなされると、
そのとき、クラスに関連付けられたイベントを識別する
プロセスは、809において終了する。情報クラスに全
イベントが知られていないと決定されると、そのときス
テップ808において、解析されるべきクラスに関連付
けられた全メソッドが見つけられる。メソッドを見つけ
るために任意の適切なメソッドを使用できる一方で、典
型的には、リフレクションメカニズムが、クラスに関連
付けられた全イベントを識別するために使用される。前
に述べたように、リフレクションは、どのメソッド、プ
ロパティ、およびイベントがそのクラスに関連付けられ
ているかを決定するために実行時にプログラムの異なっ
た部分を調べることを伴う。
しているならば、そのときステップ806において、そ
の情報クラスは、その情報クラス内に含まれたイベント
について質問される。ステップ807において、その情
報クラスが、解析されるべきクラスに関連付けられた全
イベントを含むかどうかが決定される。全イベントがそ
の情報クラスに知られているという決定がなされると、
そのとき、クラスに関連付けられたイベントを識別する
プロセスは、809において終了する。情報クラスに全
イベントが知られていないと決定されると、そのときス
テップ808において、解析されるべきクラスに関連付
けられた全メソッドが見つけられる。メソッドを見つけ
るために任意の適切なメソッドを使用できる一方で、典
型的には、リフレクションメカニズムが、クラスに関連
付けられた全イベントを識別するために使用される。前
に述べたように、リフレクションは、どのメソッド、プ
ロパティ、およびイベントがそのクラスに関連付けられ
ているかを決定するために実行時にプログラムの異なっ
た部分を調べることを伴う。
【0050】全メソッドが識別された後に、ステップ8
10において、設計パターンが、パブリックなイベント
を識別するために適用される。設計パターンは、解析さ
れようとしているクラスに関連付けられたパブリックな
イベントを識別するために使用されることができる標準
の設計パターンである。パブリックなイベントは、その
パブリックなイベントが関連付けられるクラス以外のク
ラスにアクセス可能である、例えばイクスポートされる
ことができる、イベントである。パブリックなイベント
を識別する一つの適切なプロセスが、図9を参照しなが
ら以下により詳細に述べられる。そして、パブリックな
イベントは、ステップ812において識別される。一
旦、パブリックなイベントが識別されると、ステップ8
14において、ベースクラスがあるかどうかに関する決
定がなされる。トップレベルのベースクラスがすでに解
析されたという決定がなされると、プロセスの流れは、
ステップ814から、イベントを識別するプロセスが完
了する809へ移動する。ベースクラスがあることがス
テップ814において決定されると、そのとき、そのベ
ースクラスが解析されるべきクラスになり、プロセスの
流れはステップ802に戻り、そのステップは解析され
るべきクラスを獲得することである。
10において、設計パターンが、パブリックなイベント
を識別するために適用される。設計パターンは、解析さ
れようとしているクラスに関連付けられたパブリックな
イベントを識別するために使用されることができる標準
の設計パターンである。パブリックなイベントは、その
パブリックなイベントが関連付けられるクラス以外のク
ラスにアクセス可能である、例えばイクスポートされる
ことができる、イベントである。パブリックなイベント
を識別する一つの適切なプロセスが、図9を参照しなが
ら以下により詳細に述べられる。そして、パブリックな
イベントは、ステップ812において識別される。一
旦、パブリックなイベントが識別されると、ステップ8
14において、ベースクラスがあるかどうかに関する決
定がなされる。トップレベルのベースクラスがすでに解
析されたという決定がなされると、プロセスの流れは、
ステップ814から、イベントを識別するプロセスが完
了する809へ移動する。ベースクラスがあることがス
テップ814において決定されると、そのとき、そのベ
ースクラスが解析されるべきクラスになり、プロセスの
流れはステップ802に戻り、そのステップは解析され
るべきクラスを獲得することである。
【0051】解析されるべきクラスのための関連した情
報クラスが存在しないことがステップ804において決
定されると、そのとき、プロセスの流れはステップ80
4から、解析されるべきクラスに関連付けられた全イベ
ントが識別される808へ進む。記載された実施例にお
いては、解析されるべきクラスに関連付けられた情報ク
ラスが欠けていることは、解析されるべきbeanクラ
スのためにBeanInfoクラスが存在しないことを
意味する。
報クラスが存在しないことがステップ804において決
定されると、そのとき、プロセスの流れはステップ80
4から、解析されるべきクラスに関連付けられた全イベ
ントが識別される808へ進む。記載された実施例にお
いては、解析されるべきクラスに関連付けられた情報ク
ラスが欠けていることは、解析されるべきbeanクラ
スのためにBeanInfoクラスが存在しないことを
意味する。
【0052】次に図9を参照すると、本発明の実施例に
従う、パブリックなイベントを識別するために設計パタ
ーンを適用することに関連付けられたステップが記述さ
れる。パブリックなイベントを識別するために設計パタ
ーンを適用するプロセスの1つの実施例は、ステップ9
02において始まり、プロセスは、変数「i」がインク
リメントされるループに入る。このループは、解析され
ているクラスに関連付けられることができる全メソッド
「i」を通してのループである。チェックされるべきメ
ソッドが無い場合、または、全ての利用可能なメソッド
がチェックされた場合、そのとき、パブリックなイベン
トを識別するプロセスは、903において終了し、プロ
セスの流れは、図8のステップ812へ移動する。ステ
ップ904では、メソッド「i」が「add<string>lis
tener」の形式を有するかどうかに関する決定がなされ
る。一般的に、イベントは、addメソッドおよびre
moveメソッドによって識別されることができる。ス
テップ904における決定が、メソッド「i」が「add
<string>listener」の形式を有さないというものであ
れば、プロセスの流れは、「i」がインクリメントされ
るステップ902にループして戻る。
従う、パブリックなイベントを識別するために設計パタ
ーンを適用することに関連付けられたステップが記述さ
れる。パブリックなイベントを識別するために設計パタ
ーンを適用するプロセスの1つの実施例は、ステップ9
02において始まり、プロセスは、変数「i」がインク
リメントされるループに入る。このループは、解析され
ているクラスに関連付けられることができる全メソッド
「i」を通してのループである。チェックされるべきメ
ソッドが無い場合、または、全ての利用可能なメソッド
がチェックされた場合、そのとき、パブリックなイベン
トを識別するプロセスは、903において終了し、プロ
セスの流れは、図8のステップ812へ移動する。ステ
ップ904では、メソッド「i」が「add<string>lis
tener」の形式を有するかどうかに関する決定がなされ
る。一般的に、イベントは、addメソッドおよびre
moveメソッドによって識別されることができる。ス
テップ904における決定が、メソッド「i」が「add
<string>listener」の形式を有さないというものであ
れば、プロセスの流れは、「i」がインクリメントされ
るステップ902にループして戻る。
【0053】ステップ904における決定が、メソッド
「i」が「add<string>listener」の形式を有すると
いうものであれば、そのときステップ906において、
「remove<string>listener」と名付けられたメソッド
の探索がなされ、ここで、「add<string>listener」
および「remove<string>listener」において「<stri
ng>」は同じである。「add<string>listener」と名
付けられたメソッドと同じクラスに配置されることがで
きる、「add<string>listener」と名付けられたメソ
ッドを探索するために、任意の適切なアルゴリズムを採
用できることを認識すべきである。ステップ908にお
いて、「remove<string>listener」と名付けられたメ
ソッドが見つかったかどうかが決定される。「remove<
string>listener」と名付けられたメソッドが見つかっ
ていないならば、プロセスの流れは、「i」が増加され
るステップ902に戻る。代わりに、「remove<string
>listener」と名付けられたメソッドが見つかったなら
ば、ステップ910において、パブリックなイベントの
ための設計パターンが満たされたかどうかに関して決定
がなされる。パブリックなイベントのために設計パター
ンが任意の適切な形式をとることができるけれど、記載
された実施例においては、設計パターンは、「add<str
ing>listener」はボイドを返して1つの引数を有し、そ
して、「remove<string>listener」はボイドを返し
て、「add<string>listener」の引数と同じタイプの
1つの引数を有する、というようなものである。
「i」が「add<string>listener」の形式を有すると
いうものであれば、そのときステップ906において、
「remove<string>listener」と名付けられたメソッド
の探索がなされ、ここで、「add<string>listener」
および「remove<string>listener」において「<stri
ng>」は同じである。「add<string>listener」と名
付けられたメソッドと同じクラスに配置されることがで
きる、「add<string>listener」と名付けられたメソ
ッドを探索するために、任意の適切なアルゴリズムを採
用できることを認識すべきである。ステップ908にお
いて、「remove<string>listener」と名付けられたメ
ソッドが見つかったかどうかが決定される。「remove<
string>listener」と名付けられたメソッドが見つかっ
ていないならば、プロセスの流れは、「i」が増加され
るステップ902に戻る。代わりに、「remove<string
>listener」と名付けられたメソッドが見つかったなら
ば、ステップ910において、パブリックなイベントの
ための設計パターンが満たされたかどうかに関して決定
がなされる。パブリックなイベントのために設計パター
ンが任意の適切な形式をとることができるけれど、記載
された実施例においては、設計パターンは、「add<str
ing>listener」はボイドを返して1つの引数を有し、そ
して、「remove<string>listener」はボイドを返し
て、「add<string>listener」の引数と同じタイプの
1つの引数を有する、というようなものである。
【0054】パブリックなイベントの設計パターンが満
たされないときは、その後、プロセスの流れは、「i」
がインクリメントされるステップ902に戻る。パブリ
ックなイベントのための設計パターンに合ったならば、
「<string>」がステップ912において見つかった全
パブリックのイベントのリストに追加される。見つかっ
た全パブリックなイベントのリストに「<string>」が
追加された後に、プロセスの流れは、「i」がインクリ
メントされるステップ902に戻る。メソッド「i」が
「add<string>listener」の形式を有するかどうかを
決定するために、チェックされるべきメソッドがもう無
くなるまで、ステップ902から912が繰り返され
る。チェックされるべきメソッドがもはや残っていない
ときは、パブリックなイベントを見つけるプロセスは9
03において終了する。
たされないときは、その後、プロセスの流れは、「i」
がインクリメントされるステップ902に戻る。パブリ
ックなイベントのための設計パターンに合ったならば、
「<string>」がステップ912において見つかった全
パブリックのイベントのリストに追加される。見つかっ
た全パブリックなイベントのリストに「<string>」が
追加された後に、プロセスの流れは、「i」がインクリ
メントされるステップ902に戻る。メソッド「i」が
「add<string>listener」の形式を有するかどうかを
決定するために、チェックされるべきメソッドがもう無
くなるまで、ステップ902から912が繰り返され
る。チェックされるべきメソッドがもはや残っていない
ときは、パブリックなイベントを見つけるプロセスは9
03において終了する。
【0055】本発明のいくつかの実施例のみが記述され
てきたけれど、本発明は、本発明の精神および範囲から
離れることなく、多くの他の具体的な形式において具体
化されることができるということを理解すべきである。
例として、単純なプロパティ、ブーリアンプロパティ、
およびインデックス付きプロパティは、1つのプロセス
に結合されることができる。さらに、クラスを解析する
ことに伴われるステップは、順序を変えることができ
る。本発明の精神や範囲を離れることなく、ステップが
削除されたり、また追加されたりできる。従って、記載
された実施例は、例示的であって、制限的ではないとと
らえるべきであり、そして、発明は、特許請求の範囲お
よび均等物の全範囲によって定められるべきである。
てきたけれど、本発明は、本発明の精神および範囲から
離れることなく、多くの他の具体的な形式において具体
化されることができるということを理解すべきである。
例として、単純なプロパティ、ブーリアンプロパティ、
およびインデックス付きプロパティは、1つのプロセス
に結合されることができる。さらに、クラスを解析する
ことに伴われるステップは、順序を変えることができ
る。本発明の精神や範囲を離れることなく、ステップが
削除されたり、また追加されたりできる。従って、記載
された実施例は、例示的であって、制限的ではないとと
らえるべきであり、そして、発明は、特許請求の範囲お
よび均等物の全範囲によって定められるべきである。
【図1】図1は、本発明をインプリメントするために適
したコンピュータシステムのダイアグラム図である。
したコンピュータシステムのダイアグラム図である。
【図2】図2は、本発明の実施例に従う、新しいクラス
を生成することに関連付けられたステップを図示するプ
ロセス流れ図である。
を生成することに関連付けられたステップを図示するプ
ロセス流れ図である。
【図3】図3は、本発明の実施例に従う、クラスに関連
付けられたメソッドを識別することに関係するステップ
を図示するプロセス流れ図である。
付けられたメソッドを識別することに関係するステップ
を図示するプロセス流れ図である。
【図4】図4は、本発明の実施例に従う、クラスに関連
付けられたプロパティを識別することに関係するステッ
プを図示するプロセス流れ図である。
付けられたプロパティを識別することに関係するステッ
プを図示するプロセス流れ図である。
【図5】図5は、本発明の実施例に従う、パブリックな
単純な読み書きのプロパティを識別するために設計パタ
ーンを適用することに関係するステップを図示するプロ
セス流れ図である。
単純な読み書きのプロパティを識別するために設計パタ
ーンを適用することに関係するステップを図示するプロ
セス流れ図である。
【図6】図6は、本発明の実施例に従う、パブリックな
ブーリアンプロパティを識別するために設計パターンを
適用することに関係するステップを図示するプロセス流
れ図である。
ブーリアンプロパティを識別するために設計パターンを
適用することに関係するステップを図示するプロセス流
れ図である。
【図7】図7は、本発明の実施例に従う、パブリックな
インデックス付きプロパティを識別するために設計パタ
ーンを適用することに関係するステップを図示するプロ
セス流れ図である。
インデックス付きプロパティを識別するために設計パタ
ーンを適用することに関係するステップを図示するプロ
セス流れ図である。
【図8】図8は、本発明の実施例に従う、クラスに関連
付けられたイベントを識別することに関連するステップ
を表示するプロセス流れ図である。
付けられたイベントを識別することに関連するステップ
を表示するプロセス流れ図である。
【図9】図9は、本発明の実施例に従う、イベントに関
連付けられたパブリックなイベントを識別するために関
連するステップを図示するプロセス流れ図である。
連付けられたパブリックなイベントを識別するために関
連するステップを図示するプロセス流れ図である。
112…ネットワーク結合、130…コンピュータシス
テム、132…プロセッサ、134、136…一次記憶
デバイス、138…マスメモリデバイス、140…入力
/出力装置
テム、132…プロセッサ、134、136…一次記憶
デバイス、138…マスメモリデバイス、140…入力
/出力装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ローレンス ピー.ジー. ケーブル アメリカ合衆国, カリフォルニア州, マウンテン ヴュー, ヴェラード スト リート295
Claims (20)
- 【請求項1】 コンピュータ上で稼動しているアプリケ
ーションビルダツール内において視覚的に移動されるこ
とができるソフトウェアコンポーネントを解析する方法
であって、前記ソフトウェアコンポーネントは第1のク
ラスの一部であり、 解析されるべき前記ソフトウェアコンポーネントを得る
ステップと、 関連した情報クラスを前記ソフトウェアコンポーネント
が有するかどうかを決定するステップと、 前記関連した情報クラスを前記ソフトウェアコンポーネ
ントが有することが決定されたとき、前記情報クラス内
部に格納された情報について前記情報クラスに質問する
ステップと、ことを備えるソフトウェアコンポーネント
を解析する方法。 - 【請求項2】 前記情報クラス内に格納された前記情報
は、少なくとも1つのメソッド、プロパティ、およびイ
ベントに関係している、請求項1に記載のソフトウェア
コンポーネントを解析する方法。 - 【請求項3】 関連した情報クラスを前記ソフトウェア
コンポーネントが有さないということが決定されたと
き、更に、 前記第1のクラスに関連付けられた一組のメソッドを識
別するステップを備え、 前記ソフトウェアコンポーネントに関連付けられた第1
のプロパティを識別するために少なくとも1つの設計パ
ターンを適用するステップを備え、前記第1のプロパテ
ィは、前記第1のクラスに関連付けられた一組のプロパ
ティの一部であり、 前記ソフトウェアコンポーネントに関連付けられた前記
第1のプロパティを識別するステップを備える、先行す
る請求項のいずれか1つに記載のソフトウェアコンポー
ネントを解析する方法。 - 【請求項4】 前記ソフトウェアコンポーネントに関連
付けられた前記第1のプロパティを識別するために少な
くとも1つの設計パターンを適用する前記ステップは、
前記第1のプロパティを定義する少なくとも1つのメソ
ッドを探索するサブステップを含む、請求項3に記載の
ソフトウェアコンポーネントを解析する方法。 - 【請求項5】 前記一組のプロパティは、リフレクショ
ンプロセスを使用して識別される、請求項3および4の
いずれか1つに記載のソフトウェアコンポーネントを解
析する方法。 - 【請求項6】 関連した情報クラスを前記ソフトウェア
コンポーネントが有さないということが決定されたと
き、更に、 前記第1のクラスに関連付けられた一組のメソッドを識
別するステップを備え、 前記ソフトウェアコンポーネントに関連付けられた第1
のイベントを識別するために少なくとも1つの設計パタ
ーンを適用するステップを備え、前記第1のイベント
は、前記第1のクラスに関連付けられた前記一組のイベ
ントの一部であり、 前記ソフトウェアコンポーネントに関連付けられた前記
第1のイベントを識別するステップを備える、先行する
請求項のいずれか1つに記載のソフトウェアコンポーネ
ントを解析する方法。 - 【請求項7】 関連した情報クラスを前記ソフトウェア
コンポーネントが有さないということが決定されたと
き、更に、 前記第1のクラスに関連付けられた一組のメソッドを識
別するステップを備え、 前記ソフトウェアコンポーネントに関連付けられた第1
のメソッドを識別するために少なくとも1つの設計パタ
ーンを適用するステップを備え、前記第1のメソッド
は、前記第1のクラスに関連付けられた前記一組のメソ
ッドの一部であり、 前記ソフトウェアコンポーネントに関連付けられた前記
第1のメソッドを識別するステップを備える、先行する
請求項のいずれか1つに記載のソフトウェアコンポーネ
ントを解析する方法。 - 【請求項8】 コンピュータ上で稼動しているアプリケ
ーションビルダツール内部において視覚的に移動される
ことができるソフトウェアコンポーネントを解析する方
法あって、前記ソフトウェアコンポーネントは、第1の
クラスの一部であり、 解析されるべき前記ソフトウェアコンポーネントを得る
ステップを備え、 前記第1のクラスに関連付けられた一組のメソッドを識
別するステップを備え、 前記ソフトウェアコンポーネントに関連付けられた第1
のプロパティを識別するために少なくとも1つの設計パ
ターンを適用するステップを備え、前記第1のプロパテ
ィは、前記第1のクラスに関連付けられた一組のプロパ
ティの一部であり、 前記ソフトウェアコンポーネントに関連付けられた前記
第1のプロパティを識別するステップを備え、ソフトウ
ェアコンポーネントを解析する方法。 - 【請求項9】 前記ソフトウェアコンポーネントに関連
付けられた前記第1のプロパティを識別するために少な
くとも1 つの設計パターンを適用する前記ステップは、
前記第1のプロパティを定義する少なくとも1つのメソ
ッドを探索するサブステップを含む、請求項8に記載の
ソフトウェアコンポーネントを解析する方法。 - 【請求項10】 前記第1のプロパティを定義する少な
くとも1つの前記メソッドを探索する前記サブステップ
は、 前記第1のプロパティが前記設計パターンを満たすかど
うかを決定するステップと、 前記第1のプロパティが前記設計パターンを満たすとい
うことが決定されたとき、前記ソフトウェアコンポーネ
ントに関連付けられたプロパティのリストに前記第1の
プロパティを追加するステップと、を備える請求項9に
記載のソフトウェアコンポーネントを解析する方法。 - 【請求項11】 ソフトウェアコンポーネントに関連付
けられた情報を収集するためのコンピュータシステムで
あって、 その内にビルダツールを収容する少なくとも1つのメモ
リデバイスと結合されたコンピュータを備え、前記ビル
ダツールは前記コンピュータ上で動作し、前記ビルダツ
ールは前記ソフトウェアコンポーネントを解析するよう
に設けられ、前記コンピュータは、(a)前記ビルダツ
ールによって解析されるべき前記ソフトウェアコンポー
ネントを得るように設けられ、前記ソフトウェアコンポ
ーネントは第1のクラスの一部であり、前記ソフトウェ
アコンポーネントは前記ビルダツール内において視覚的
に操作可能であり、(b)関連した情報クラスを前記ソ
フトウェアコンポーネントが有するかを決定するように
設けられ、前記情報クラスは、少なくとも1つのメソッ
ド、プロパティ、およびイベント含み、(c)前記関連
した情報クラスが存在していることが決定されたとき、
前記情報クラス内に格納された情報について、前記情報
クラスに質問するように配置される、ソフトウェアコン
ポーネントに関連付けられた情報を収集するためのコン
ピュータシステム。 - 【請求項12】 前記コンピュータは、更に、 前記関連した情報クラスが存在していないことが決定さ
れたとき、前記第1ののクラスに関連付けられた一組の
プロパティを識別するように設けられ、 前記ソフトウェアコンポーネントに関連付けられた第1
のプロパティを識別するために少なくとも1つの設計パ
ターンを適用するように設けられ、前記第1のプロパテ
ィは、前記第1のクラスに関連付けられた前記一組のプ
ロパティの一部であり、 前記ソフトウェアコンポーネントに関連付けられた前記
第1のプロパティを識別するように設けられた、請求項
11に記載のソフトウェアコンポーネントに関連付けら
れた情報を収集するためのコンピュータシステム。 - 【請求項13】 コンピュータで読み出し可能な媒体で
あってコンピュータが、(A)前記コンピュータ上にお
いてソフトウェアプログラムを動作することを引き起こ
すように構成され(configured)、前記ソフトウェアプ
ログラムは、アプリケーションビルダツールであり、
(B)前記ソフトウェアプログラムによって解析される
べきソフトウェアコンポーネントを得ることを引き起こ
すように構成され、前記ソフトウェアコンポーネントは
第1のクラスの一部であり、前記ソフトウェアコンポー
ネントは前記ソフトウェアプログラム内において視覚的
に操作可能であり、(C)関連した情報クラスを前記ソ
フトウェアコンポーネントが有するかどうかを決定する
ことを引き起こすように構成され、前記情報クラスは少
なくとも1つのメソッド、プロパティ、およびイベント
を含み、(D)前記関連した情報クラスが存在している
ことが決定されるとき、前記情報クラス内に格納された
情報について前記情報クラスに質問することを引き起こ
すように構成された、コンピュータで読み出し可能なプ
ログラムコードデバイスを備えるコンピュータで読み出
し可能な媒体。 - 【請求項14】 該プログラムコードデバイスは、更
に、 前記関連した情報クラスが存在していないことが決定さ
れたとき、前記第1のクラスに関連付けられた一組のメ
ソッドを識別するように設けられ、 前記ソフトウェアコンポーネントに関連付けられた第1
のプロパティを識別するために少なくとも1つの設計パ
ターンを適用するように設けられ、前記第1のプロパテ
ィは、前記第1のクラスに関連付けられた一組のプロパ
ティの一部であり、 前記ソフトウェアコンポーネントに関連付けられた前記
第1のプロパティを識別するように設けられた、請求項
13に記載の、コンピュータで読み出し可能なプログラ
ムコードデバイスを備えるコンピュータで読み出し可能
な媒体。 - 【請求項15】 該プログラムコードデバイスは、更
に、前記第1のプロパティを定義する少なくとも1つの
メソッドを探索するように設けられた、請求項13およ
び14のいずれか1つに記載の、コンピュータで読み出
し可能なプログラムコードデバイスを備えるコンピュー
タで読み出し可能な媒体。 - 【請求項16】 前記第1のプロパティを定義する少な
くとも1つのメソッドを探索するように配置された該プ
ログラムコードデバイスは、更に、 前記第1のプロパティが前記設計パターンを満たすかど
うかを決定するように設けられ、 前記第1のプロパティが前記設計パターンを満たすとい
うことが決定されるとき、前記ソフトウェアコンポーネ
ントに関連付けられたプロパティのリストに前記第1の
プロパティを追加するように設けられた、請求項15に
記載の、コンピュータで読み出し可能なプログラムコー
ドデバイスを備えるコンピュータで読み出し可能な媒
体。 - 【請求項17】 該プログラムコードデバイスは、更
に、 前記関連した情報クラスが存在していないことが決定さ
れるとき、前記第1のクラスに関連付けらた一組のメソ
ッドを識別するように設けられ、 前記ソフトウェアコンポーネントに関連付けられた第1
のメソッドを識別するために少なくとも1つの設計パタ
ーンを適用するように設けられ、前記第1のメソッドは
前記第1のクラスに関連付けられた前記一組のメソッド
の一部であり、 前記ソフトウェアコンポーネントに関連付けられた前記
第1のメソッドを識別するように設けられた、請求項1
3、14、15、および16のいずれか1つに記載の、
コンピュータで読み出し可能なプログラムコードデバイ
スを備えるコンピュータで読み出し可能な媒体。 - 【請求項18】 コンピュータ上で動作するビルダツー
ル内において視覚的に移動されることができるソフトウ
ェアコンポーネントであって、前記ソフトウェアコンポ
ーネントは第1のクラスの一部であり、 情報クラスを備え、 少なくとも1つのメソッド、プロパティ、およびイベン
トを備え、前記少なくとも1つのメソッド、プロパテ
ィ、およびイベントは、前記情報クラスに関連付けら
れ、前記第1のクラスによってサポートされている、ソ
フトウェアコンポーネント。 - 【請求項19】 前記メソッドは、第2のクラスへアク
セス可能な少なくとも1つのメソッドを含み、前記第2
のクラスは、前記第1のクラスとは別個である、請求項
18に記載のソフトウェアコンポーネント。 - 【請求項20】 前記プロパティは、第2ののクラスへ
アクセス可能な少なくとも1つのプロパティを含み、前
記第2のクラスは、前記第1のクラスとは別個である、
請求項18および19のいずれか1つに記載のソフトウ
ェアコンポーネント。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/868,290 US6209125B1 (en) | 1997-06-03 | 1997-06-03 | Method and apparatus for software component analysis |
US08/868290 | 1997-06-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1173322A true JPH1173322A (ja) | 1999-03-16 |
Family
ID=25351385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10192254A Pending JPH1173322A (ja) | 1997-06-03 | 1998-06-03 | ソフトウエアコンポーネント解析のための装置及びその方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US6209125B1 (ja) |
EP (1) | EP0883057B1 (ja) |
JP (1) | JPH1173322A (ja) |
DE (1) | DE69831443D1 (ja) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6415334B1 (en) * | 1997-05-14 | 2002-07-02 | Microsoft Corporation | Method and system for accessing objects of different thread types |
WO1999004349A1 (en) * | 1997-07-15 | 1999-01-28 | Koninklijke Philips Electronics N.V. | A method and system for designing a graphical user interface for an electronic consumer product |
US6438744B2 (en) | 1998-07-15 | 2002-08-20 | Microsoft Corporation | Dynamic mapping of component interfaces |
US6434740B1 (en) * | 1998-07-15 | 2002-08-13 | International Business Machines Corporation | Apparatus and method for visual construction simplification |
US6522343B2 (en) | 1998-07-15 | 2003-02-18 | Microsoft Corporation | Hosting objects in a windowed environment |
US6556218B1 (en) * | 1998-12-10 | 2003-04-29 | International Business Machines Corporation | Method and apparatus for generating dips for use with Java beans |
US6261103B1 (en) | 1999-04-15 | 2001-07-17 | Cb Sciences, Inc. | System for analyzing and/or effecting experimental data from a remote location |
US6637021B1 (en) * | 1999-06-30 | 2003-10-21 | Sun Microsystems, Inc. | JavaBean activation framework-common desktop environment bridge |
US6934934B1 (en) | 1999-08-30 | 2005-08-23 | Empirix Inc. | Method and system for software object testing |
GB2356946B (en) * | 1999-12-01 | 2003-11-05 | Int Computers Ltd | Computer system user interface design |
US6775824B1 (en) | 2000-01-12 | 2004-08-10 | Empirix Inc. | Method and system for software object testing |
US6871345B1 (en) * | 2000-04-04 | 2005-03-22 | Motive, Inc. | Self managing software agents with introspection |
US7353295B1 (en) | 2000-04-04 | 2008-04-01 | Motive, Inc. | Distributed services architecture through use of a dynamic service point map |
US7334038B1 (en) | 2000-04-04 | 2008-02-19 | Motive, Inc. | Broadband service control network |
US7000224B1 (en) * | 2000-04-13 | 2006-02-14 | Empirix Inc. | Test code generator, engine and analyzer for testing middleware applications |
US6505342B1 (en) * | 2000-05-31 | 2003-01-07 | Siemens Corporate Research, Inc. | System and method for functional testing of distributed, component-based software |
US8041782B1 (en) | 2000-08-31 | 2011-10-18 | Alcatel Lucent | System of automated configuration of network subscribers for broadband communication |
WO2002075553A1 (en) * | 2001-03-19 | 2002-09-26 | Empirix Inc. | Component/web services tracking |
GB0108913D0 (en) | 2001-04-10 | 2001-05-30 | Salamander Organization The Lt | A method and apparatus for accessing software-based systems |
US6996602B2 (en) * | 2001-06-18 | 2006-02-07 | Ford Global Technologies, Llc | Server-side page table framework for client application definition and execution |
KR100404908B1 (ko) * | 2001-12-27 | 2003-11-07 | 한국전자통신연구원 | 엔터프라이즈 자바 빈즈 컴포넌트의 인터페이스 시험 장치및 방법 |
KR100426315B1 (ko) * | 2002-01-16 | 2004-04-06 | 한국전자통신연구원 | 서블릿 프로그램에서 ejb 컴포넌트 추출을 위한 분석장치 및 그 방법 |
CA2371646A1 (en) * | 2002-02-13 | 2003-08-13 | Ibm Canada Limited-Ibm Canada Limitee | Configuration model for configuring an adapter software component to selectively access software objects and object editor using instance of same |
US7343596B1 (en) * | 2002-03-19 | 2008-03-11 | Dloo, Incorporated | Method and system for creating self-assembling components |
US7562022B2 (en) * | 2002-04-12 | 2009-07-14 | International Business Machines Corporation | Packaging and distributing service elements |
US7302400B2 (en) * | 2002-04-12 | 2007-11-27 | International Business Machines Corporation | System and method for the development and deployment of service elements |
US7440902B2 (en) * | 2002-04-12 | 2008-10-21 | International Business Machines Corporation | Service development tool and capabilities for facilitating management of service elements |
US7533026B2 (en) * | 2002-04-12 | 2009-05-12 | International Business Machines Corporation | Facilitating management of service elements usable in providing information technology service offerings |
US20030199757A1 (en) * | 2002-04-22 | 2003-10-23 | Toth Thomas L. | Method and apparatus of modulating radiation filtering during radiographic imaging |
KR100501412B1 (ko) * | 2002-12-10 | 2005-07-18 | 한국전자통신연구원 | 엔터프라이즈 자바 빈 컴포넌트 테스팅 장치 및 그 방법 |
US7765281B1 (en) | 2003-03-10 | 2010-07-27 | Motive, Inc. | Large-scale targeted data distribution system |
US7346890B1 (en) | 2003-03-17 | 2008-03-18 | Dloo, Incorporated | Method and system for creating linkable programming languages |
GB0311026D0 (en) | 2003-05-14 | 2003-06-18 | Salamander Organisation The Lt | Organisation representation framework and design process |
GB0319783D0 (en) | 2003-08-22 | 2003-09-24 | Salamander Organisation The Lt | A method and apparatus for definition referencing and navigation across multiple perspectives of an organisation |
US7607126B2 (en) * | 2004-05-21 | 2009-10-20 | Bea Systems, Inc. | System and method for external override of annotations |
US7451433B2 (en) * | 2004-05-21 | 2008-11-11 | Bea Systems, Inc. | System and method for descriptor classes |
US8117591B1 (en) | 2005-01-07 | 2012-02-14 | Interactive TKO, Inc. | Graphical model for test case viewing, editing, and reporting |
US8543379B1 (en) | 2005-01-07 | 2013-09-24 | Interactive TKO, Inc. | System and method for parsing a text buffer using a graphical user interface |
US20060195411A1 (en) * | 2005-02-28 | 2006-08-31 | Microsoft Corporation | End user data activation |
US20070074157A1 (en) * | 2005-09-23 | 2007-03-29 | Wdn Holdings, Llc | Method and system for runtime graphical assembly of running applications |
US8250518B2 (en) * | 2006-03-30 | 2012-08-21 | Microsoft Corporation | Per user file associations |
US8332827B2 (en) | 2006-12-01 | 2012-12-11 | Murex S.A.S. | Produce graph oriented programming framework with scenario support |
US7865872B2 (en) | 2006-12-01 | 2011-01-04 | Murex S.A.S. | Producer graph oriented programming framework with undo, redo, and abort execution support |
US8307337B2 (en) | 2006-12-01 | 2012-11-06 | Murex S.A.S. | Parallelization and instrumentation in a producer graph oriented programming framework |
US8191052B2 (en) | 2006-12-01 | 2012-05-29 | Murex S.A.S. | Producer graph oriented programming and execution |
US7890923B2 (en) * | 2006-12-01 | 2011-02-15 | International Business Machines Corporation | Configurable pattern detection method and apparatus |
US8713535B2 (en) * | 2008-06-30 | 2014-04-29 | Microsoft Corporation | Reliable and accurate usage detection of a software application |
US9111019B2 (en) | 2008-09-30 | 2015-08-18 | Interactive TKO, Inc. | Modeling and testing interactions between components of a software system |
US9235490B2 (en) | 2010-10-26 | 2016-01-12 | Ca, Inc. | Modeling and testing of interactions between components of a software system |
US9122803B1 (en) | 2010-10-26 | 2015-09-01 | Interactive TKO, Inc. | Collaborative software defect detection |
US8966454B1 (en) | 2010-10-26 | 2015-02-24 | Interactive TKO, Inc. | Modeling and testing of interactions between components of a software system |
US8984490B1 (en) | 2010-10-26 | 2015-03-17 | Interactive TKO, Inc. | Modeling and testing of interactions between components of a software system |
US9110496B1 (en) | 2011-06-07 | 2015-08-18 | Interactive TKO, Inc. | Dynamic provisioning of a virtual test environment |
US9292260B2 (en) * | 2012-06-22 | 2016-03-22 | Oracle International Corporation | Method and system for implementing a pattern viewer |
US10025839B2 (en) | 2013-11-29 | 2018-07-17 | Ca, Inc. | Database virtualization |
US9727314B2 (en) | 2014-03-21 | 2017-08-08 | Ca, Inc. | Composite virtual services |
US9531609B2 (en) | 2014-03-23 | 2016-12-27 | Ca, Inc. | Virtual service automation |
US9898390B2 (en) | 2016-03-30 | 2018-02-20 | Ca, Inc. | Virtual service localization |
US10114736B2 (en) | 2016-03-30 | 2018-10-30 | Ca, Inc. | Virtual service data set generation |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5123103A (en) * | 1986-10-17 | 1992-06-16 | Hitachi, Ltd. | Method and system of retrieving program specification and linking the specification by concept to retrieval request for reusing program parts |
US5361355A (en) * | 1991-02-08 | 1994-11-01 | Fujitsu Limited | Software asset systemizer |
US5805885A (en) * | 1992-12-24 | 1998-09-08 | Microsoft Corporation | Method and system for aggregating objects |
US5619709A (en) * | 1993-09-20 | 1997-04-08 | Hnc, Inc. | System and method of context vector generation and retrieval |
US5689711A (en) * | 1995-04-21 | 1997-11-18 | Bardasz; Theodore | Method and apparatus for representing data dependencies in software modeling systems |
US5872973A (en) * | 1995-10-26 | 1999-02-16 | Viewsoft, Inc. | Method for managing dynamic relations between objects in dynamic object-oriented languages |
US5878425A (en) * | 1996-08-21 | 1999-03-02 | International Business Machines Corp. | Intuitive technique for visually creating resource files |
US5784583A (en) * | 1996-09-09 | 1998-07-21 | International Business Machine Corp. | Intuitive technique for building graphical menus |
US6002395A (en) * | 1996-10-31 | 1999-12-14 | Ncr Corporation | System and method for building, testing and integrating a graphical touch user interface |
US5842220A (en) * | 1997-05-02 | 1998-11-24 | Oracle Corporation | Methods and apparatus for exposing members of an object class through class signature interfaces |
-
1997
- 1997-06-03 US US08/868,290 patent/US6209125B1/en not_active Expired - Fee Related
-
1998
- 1998-05-29 EP EP98304259A patent/EP0883057B1/en not_active Expired - Lifetime
- 1998-05-29 DE DE69831443T patent/DE69831443D1/de not_active Expired - Lifetime
- 1998-06-03 JP JP10192254A patent/JPH1173322A/ja active Pending
-
2000
- 2000-12-21 US US09/748,402 patent/US6668371B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US6668371B2 (en) | 2003-12-23 |
EP0883057B1 (en) | 2005-09-07 |
US6209125B1 (en) | 2001-03-27 |
EP0883057A2 (en) | 1998-12-09 |
DE69831443D1 (de) | 2005-10-13 |
EP0883057A3 (en) | 2003-01-29 |
US20010001882A1 (en) | 2001-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH1173322A (ja) | ソフトウエアコンポーネント解析のための装置及びその方法 | |
Lee et al. | Implementation of a BIM domain-specific language for the building environment rule and analysis | |
Baldi et al. | A theory of aspects as latent topics | |
US7571431B2 (en) | Processing macro information and displaying via GUI in different tools | |
US5758160A (en) | Method and apparatus for building a software program using dependencies derived from software component interfaces | |
US7587668B2 (en) | Using existing content to generate active content wizard executables for execution of tasks | |
CA2299113C (en) | Techniques for mapping graphical user interfaces of applications | |
JPH06295290A (ja) | データ処理システム及びデータ処理方法 | |
KR100692172B1 (ko) | 종합 문자열 분석기 및 그 분석 방법 | |
JPH06282459A (ja) | データ処理システム及びデータ処理方法 | |
JP2009129179A (ja) | プログラム並列化支援装置およびプログラム並列化支援方法 | |
CN101171571A (zh) | 分析和组织软件应用程序中的物件的设备 | |
US8918756B2 (en) | Generating constraints in a class model | |
Cunningham et al. | Developing language processing components with GATE (a user guide) | |
Bossung et al. | Automated data mapping specification via schema heuristics and user interaction | |
US20240036829A1 (en) | Providing resolution suggestions in a program development tool | |
Blouin et al. | Assessing the use of slicing-based visualizing techniques on the understanding of large metamodels | |
EP1909170A1 (en) | Method and system for automatically generating a communication interface | |
Scapin et al. | Transferring knowledge of user interfaces guidelines to the web | |
US6625805B1 (en) | Dynamic byte code examination to detect whether a GUI component handles mouse events | |
Park et al. | Parallel programming and performance evaluation with the ursa tool family | |
Gabrijelčič | Mastering Delphi Programming: A Complete Reference Guide: Learn all about building fast, scalable, and high performing applications with Delphi | |
CN115185535A (zh) | 依赖关系显示方法及装置、存储介质及电子设备 | |
US10846198B2 (en) | Automatic navigation from log statement to code | |
Gabrijelčič | Delphi High Performance: Build fast Delphi applications using concurrency, parallel programming and memory management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050602 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070904 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080219 |