JPH08234985A - ビジュアル・アプリケーション・ビルダの枠組において代理オブジェクトを履行実行する方法およびシステム - Google Patents

ビジュアル・アプリケーション・ビルダの枠組において代理オブジェクトを履行実行する方法およびシステム

Info

Publication number
JPH08234985A
JPH08234985A JP7309124A JP30912495A JPH08234985A JP H08234985 A JPH08234985 A JP H08234985A JP 7309124 A JP7309124 A JP 7309124A JP 30912495 A JP30912495 A JP 30912495A JP H08234985 A JPH08234985 A JP H08234985A
Authority
JP
Japan
Prior art keywords
information
proxy
proxy object
visual
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP7309124A
Other languages
English (en)
Inventor
Chou Chunghen
チュンヘン・チョウ
William Fonteyn James Jr
ジェイムス・ウィリアム・フォンテイン、ジュニア
Lim Reims Rene
リーネ・リム・レイムス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH08234985A publication Critical patent/JPH08234985A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 ソース・コードの変更や書き換えなしにメン
テナンスできるビジュアル・ビルダを提供すること。 【解決手段】 各代理オブジェクトは対応するターゲッ
ト・オブジェクトのクラス、表示情報、特性およびIDL
属性とオペレーションにマップする方法等の情報項目を
付随させている。その一部はインターフェース収納部に
記憶され、代理オブジェクトに含まれるそのインターフ
ェース収納部からこの情報を回収するために必要な知識
によって簡単に変更可能な形で記憶される。この情報
は、代理オブジェクトを実行するソース・コードを変更
することなく変えることができる。代理オブジェクト用
のインターフェース宣言はインターフェース収納部に記
憶させた対応のIDLファイル内に準備させる。そのファ
イルの実行文は、代理オブジェクト情報の容易に編集可
能な部分をエンコードする変更子を可能とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はコンピュータ処理の
オブジェクト指向技術に関し、より詳細には対話型ユー
ザ・インターフェース開発システムおよび方法に関する
ものである。
【0002】
【従来の技術】オブジェクト指向プログラミングの開発
以前は、プログラミングのフォームは組織化したプログ
ラミングとして開発されて知られており、今なお広く使
われている。この技術では、種々のファンクションが初
めに定義され、そして、プログラムは、アプリケーショ
ン・プログラムの全体的なオブジェクトを有効にするた
め適切な時間でこの定義したファンクションを呼び出す
工程から成っている。組織化したプログラミングはモジ
ュラー化したアプローチの機会を提供し、デバッグや維
持が困難だった絡まりあったコードに対する大幅な改善
となった。しかし、プログラムによりモデル化された世
界における概念と実在との間の意味的なギャップ、プロ
グラミング言語における概念、プログラム・コードのテ
キスト的特性、コード・モジュールの再利用の限界など
のような、組織化したプログラミングの欠点がいくつか
残っている。
【0003】そして、新しいプログラミング・パラダイ
ムが開発され、それはオブジェクト指向プログラミング
と称された。この技術では、ファンクションを定義する
代わりに、オブジェクトが(それらのクラスを定義する
ことにより)定義される。オブジェクトの内部が構築さ
れるのとは対照的に、オブジェクトの外部インターフェ
ースとオブジェクトにより何がなされるのかだけをエン
ド・ユーザのために指定する。
【0004】何に似ているか、あるいは内部で何をする
かを記述する必要なくオブジェクトの外観を記述するこ
の技術の簡潔な例として、また、このオブジェクト指向
プログラミングの顕著な利点を説明するために、オブジ
ェクト指向の手法によりモデル化可能な一般に使用され
ている家庭用のトースタを類推により想像してみる。ト
ースタの外部インターフェースは、トーストの焼き加減
を調節するパラメータを表示する「つまみ」、パンを入
れるスロット、およびパンを押し下げてトーストを開始
するレバーから構成する。重要な考え方は、こうした器
具のエンド・ユーザは使用に際してトースタの内部、例
えば、熱が電気により供給されるか、あるいは化学的に
供給されるか、他の手段によるものかどうか、等を知る
必要がないということである。ユーザがすべき事は、ト
ースタの外部と適切にインターフェースをとることであ
る。
【0005】類推を続ければ、プログラミングにおける
この進化の美点は、オブジェクトの設計者が、トースタ
をモデル化するプログラミング・コードのモジュールと
考えられ、そのトースタ内部の改良に焦点をあてること
である。たとえば、その内部がユーザに対し分かりやす
いと、ユーザの使用能力に影響をあたえることなく、ト
ースタを更に効果的にする。従って、もう少し抽象的に
言えば、オブジェクト指向技術はオブジェクトの実行か
らオブジェクトのインターフェースを分離する利点を提
供するものとして実質的に知られるだろう。ソフトウェ
ア的状況では、オブジェクトの内部はその技術により書
き直され、かつ、外部の「つまみ」や、それらの所望の
動作などが変化しない限りアプリケーション・プログラ
ミング全体を書き直す必要なく改良される。
【0006】上記説明はオブジェクト指向技術の二つの
重要な特徴の一方について、つまり、「内包」について
述べたものである。もう一方の特徴は「継承」であり、
広く述べるなら、オブジェクトは別の類似のオブジェク
トからインターフェースあるいは実行の一部または全部
を「継承し」(あるいは修得し)、この共通の特徴の記
述を重複する必要性を回避する。例えば、車輌(Wheele
dCarrier)というオブジェクトのクラスを定義すると、
車輪を有し、人を運搬できるという一般的特徴と定義を
有する。次に、自動車(Car)というオブジェクトのク
ラスを定義でき、これは車輌からの説明の一部を受け継
いでいる。同様に、飛行機(Airplane)というオブジェ
クトのクラスも定義でき、これも車輌(WheeledCarrie
r)から受け継いでいる。(オブジェクト指向技術用語
では、自動車クラスは車輌クラスの下位クラスであり、
飛行機も車輌クラスの下位クラスであり、車輌は自動車
と飛行機の上位クラスである。もちろん、自動車は飛行
機とは異なり、互いの全体的な説明は相違を反映するも
のであるが、継承の利用により、車輪を有し、人を運搬
できるという共通した特徴の重複した説明が回避され
る。
【0007】本発明の理解を容易にするためオブジェク
ト指向技術に関する一般的な背景について参考文献をあ
げると、David A. Taylor著、Servio Corporation 1990
年の版権による、Object Oriented Technology - A Man
ager's Guideがある。
【0008】オブジェクト指向プログラミングの開発に
伴い、いくつかの「オブジェクト・モデル」がさらに洗
練、開発された。すなわち、そのオブジェクト・モデル
はオブジェクト、および、それらの外部インターフェー
スを定義することである方法を条件として指定した。こ
れら種々のオブジェクト・モデルは上記した内包および
継承の特徴を与える。高水準では、これらの種々のオブ
ジェクト・モデルはきわめて類似しており、例えば、Sy
stem Object Model (SOM)、Common Lisp Object System
(CLOS)、Smalltalk、C++ などである。本質的には、
これらのオブジェクト・モデルは、単に、オブジェクト
が何であるかという疑問に答える規則の集合体であり、
低水準で検査される時には若干異なった回答を提供す
る。例えば、種々のオブジェクト・モデルは言語シンタ
ックスが異なり、また内包および継承作業の方法も異な
る。
【0009】そうした違いの直接的な結果として、異な
ったオブジェクト指向言語、およびオブジェクト・モデ
ルの有効性による問題が生じ、それは特に国際語の操作
性に生じた。例えば、オブジェクト・プログラムは言語
の混ぜ合わせによって書くことはできず、それどころ
か、オブジェクト指向技術の主だった保証事項の一部に
打撃を与える。つまり、コードを再使用不可能にしてし
まう。工業的な難題であるこの問題に取り組む努力の
中、Common Object Request Broker Architecture(CORB
A、共通オブジェクト条件ブローカ・アーキテクチャ)が
委員会によって得られ、それは標準化したInterface De
finition Language (IDL、インターフェース定義言語)
を含むものであった。要するに、あるオブジェクトのイ
ンターフェースの指定方法、つまり、ある売り主によっ
て定義されたオブジェクトを別の人が利用可能なように
オブジェクト・インターフェースを定義するための基
準、に関する当業界内での合意であった。こうして、複
数の言語においてアプリケーションの履行実行を容易に
するために、オブジェクトが似ているものの言語を均一
に定義することが容易になるように、CORBAを用いた努
力が開始された。
【0010】上記のSystem Object Model (SOM、システ
ム・オブジェクト・モデル) は、CORBA および IDL に
適合する一オブジェクト・モデルである。適合とは、SO
Mオブジェクトが CORBA 意味論に従い、SOM オブジェク
トが IDL シンタックス内で定義されることを意味す
る。上記の重要性は、発明の背景として後述する本発明
の詳細な説明により容易に明らかになると思われる。
【0011】さて、このオブジェクト指向技術の応用、
特に、当業界を悩まし、本発明が主として取り組んでき
た該技術に関連の問題について、より詳細に説明する。
オブジェクト指向技術の重要な利用の一つは、ビジュア
ル・プログラミング用の改良された「ビジュアル・ビル
ダ」環境の実行にある。ビジュアル・ビルダは本質的に
は、(従来のテキスト的記述コードの方法によるものに
代わり)ビジュアルにプログラムを書くことができるア
プリケーション記述用ツールである。このツールの有用
性は、グラフィック・ユーザ・インターフェース (GUI)
を有するプログラムの記述に関して認められる。後述
するように、本発明はそれ自体がビジュアルなものに基
づいたプログラム記述用ツールを提供する。
【0012】(GUIがインターフェースする根元的なコ
ードや機能性とは対照的に)実際のGUI、あるいはユー
ザに提供されたGUIをコード化するに多大な時間を費や
すことが現在のプログラミング技術の特徴であり、本発
明は部分的に、これらの作業を簡素化することを目的と
している。ビジュアル・ビルダにより意味するものをよ
り明確にし、単純にするため、たとえば従来のテキスト
的プログラミングとは対照的にユーザ・インターフェー
スあるいはGUIを介するアイコンの作成、移動および相
互接続によりプログラムを記述しやすくするツールがあ
る。
【0013】ビジュアル・ビルダの単純な例は、米国マ
イクロソフト社製の「ビジュアル・ベーシック(Visual
Basic)」に見られ、その中では種々のウィンドウ、プ
ルダウン・メニュ、ボタン、スクロール・バー等のユー
ザ・インターフェースがビジュアルに作られている。ビ
ジュアル・ビルダ・システムは実際の機能を果たすイン
ターフェースにたいしてビルト・アプリケーションが実
施される時に現れるように設定し、そのインターフェー
スを実行するためのテキスト的プログラムを書くプログ
ラマの仕事を軽減する。後述するように、たとえば、コ
ンピュータ・プログラマの従来からの概念に関連させた
コンピュータ・プログラミング言語等の詳細な知識を持
たない「ビジュアル・プログラマ」によって、アプリケ
ーションをビジュアルに、かつ効果的にプログラムする
ための能力を容易に得るという要望が増大している。こ
の要望は、マルチメディアの驚異的な増大により部分的
にあおられてきた。本発明は、このビジュアル・プログ
ラミングの考え方に関連した問題を部分的に取り組むも
のである。
【0014】有用なビジュアル・ビルダを実施する主た
る課題は、図4のツリー型グラフ構造のビジュアル・エ
ディタのファンクションを提供することである(しか
し、後述するように、オブジェクト等に関連の特性を編
集するための能力を提供することなどのように、付加的
な要求を必然的に有する)。
【0015】本発明のより一層の理解のために、本発明
の背景について、上記ビジュアル・ビルダの要求に関す
る一般的な説明をおこなう。
【0016】初めに図2を参照にすると、同図には典型
的なユーザ・インターフェース40が示されており、ユ
ーザが所望のアプリケーションをビジュアルにプログラ
ミングするプロセスの際に図1のモニタ38に表示され
るものである。このインターフェースの目的は、スライ
ダ、ボタン等のビジュアル・アイテムによりコンピュー
タとプログラマ間の対話と仲介を提供し、これによりプ
ログラマはエンド・ユーザ・アプリケーションを構成
し、組立、定義するための処理をおこなえる。アプリケ
ーションそのものも、たとえばスライダ、ウィンドウ、
ボタン、等の図2のアプリケーション組立ツール・スク
リーンに示されたものと同様のアイテムを使用するグラ
フィックなユーザ・インターフェースを含むことが可能
である。
【0017】より詳細には、インターフェース40は、
スライダ・バー42、46(スライダ・サム43、4
9、エンド・ボタン41、45、47、48等を伴
う)、ウィンドウ52、56、ボタン50、58、スピ
ーカ・アイコン44のようなアイコン、プルダウン・メ
ニュ54等の種々のアイコンを含む。
【0018】直覚的に明らかではない図2のインターフ
ェース40の一つの特徴は、これらのアイテムは平らに
(階層を有していないように)見えるが、実際には図
3、図4に示されているようにビジュアル・オブジェク
トの組み合わされた入れ子状の階層として構成される。
従って、図2と図3を比較すると、例えばボタン58は
制御手段としの単なる平坦な構成というより入れ子状の
関係として表示され、階層的に説明すればボタン58は
ボックス56内にあり、ボックス56もボックス52内
にあり、さらにボックス40内にある。
【0019】GUI において実施するような、またそれを
実行する対応のプログラミング・コードのような、入れ
子状の関係を表示する従来の方法は、階層をさらに分か
り易く表示している図4に示されたツリー形状として一
般に知られているデータ構造による。アイコン、スライ
ダ・バー等の各々は図4では、後述するオブジェクト指
向技術の考え方における「オブジェクト」を示すノード
あるいは円として表されている。
【0020】ユーザ・インターフェース・プログラムを
書くための従来の方法では、図4と同様のツリーをテキ
スト的にプログラムしている。図4のオブジェクトによ
り示された種々のノード、子ノード、孫ノード等が、通
常C言語、C++言語のような高水準言語のコーディング
により図4のツリーが組立られる。既に指摘したよう
に、このプロセスは正確な論証、構文、意味等を要求す
る文を有する高水準言語の全ての欠点を含み、しかも非
常に単調で長い。
【0021】上記した事由により、前述の「ビジュアル
・ビルダ」を提供することが望ましくなってきた。すな
わち、例えばC言語プログラムを書くことによりも、こ
の手段により遥かに簡単におこなえるので、種々のアイ
コン(図2に示したもののような)を対話的に作成し、
移動し、相互接続する手段により図4の所望の実行時ツ
リーを基本的に組み立てるプログラムを作成可能となっ
た。
【0022】従って、この要求に応じて、売り主側はこ
れらの包含構造またはツリーを対話的に組み立てるため
にビジュアル・ビルダを提供する仕事を始めた。
【0023】図2の種々のアイテムとの対話は図4の実
行時ツリーに必ずしも悪い影響を与えないことに注意す
る必要がある。例えば、ボタン58のクリックは図4の
ツリー構造を必ずしも改変しない。しかし、ボックス5
6から外側の位置60へのボタン58の移動は、図4で
示されるようにこのオブジェクトの階層構造を変更する
ことになる。ボタン58が外側の位置60へ移動させら
れた後、オブジェクト56Aから伸びたオブジェクト5
8A(ボックス56内に含まれるボタン58に対応)
は、オブジェクト52Aから伸びているオブジェクト6
0Aとしてツリー内で表される(よって、位置60のボ
タン58がボックス52に含まれる新たな階層を表
す)。このようにして、一般に、図2のインターフェー
スのアイテムを操作することは図4の対応するオブジェ
クト・ツリーを改変することが分かる。
【0024】有用なビジュアル・ビルダを履行実行する
主な作業は図4のツリー構造のビジュアル・エディタの
ファンクションを付与することである。(しかし、後述
するように、そのオブジェクト等に関連した特性を編集
する能力を付与すること等のように、新たな要件が必要
となる。)
【0025】ビジュアル・ビルダおよびユーザ・インタ
ーフェースの要件に関する一般的な背景説明を続ける
と、例えばC言語またXおよびOSF/Motifのようなライ
ブラリ、あるいはシステムを操作するOS/2のPresentati
on Managerライブラリを使用するGUIアプリケーション
のテキスト型プログラミングは、いくつかの別の作業が
初期ツリーの作成後に必要となることを示している。ツ
リーの種々のノードの初期特性は設定しなければなら
ず、あるいは、一般的にプログラマが各有効な特性につ
いて、その初期値を指定するか、省略時の初期値を受け
入れるか決定しなければならない。(図2のインターフ
ェースにおけるノードの特性の例は、ボックス49の
色、スライダ・サム43の初期位置、プルダウン・メニ
ュ54の内容、等である。)こうしたオブジェクトの特
性を設定したり省略したりする作業に加え、オブジェク
ト間を接続する作業もあり、特定の事象が起きた時に行
うべき動作を指定する。例えば、ユーザがボタン50を
押すなら、所望の動作は例えばスピーカ44のビーとい
う音である。スライダ43の位置が変わったら、所望の
動作は適切にスクロールするためのウィンドウに対する
ものである。
【0026】つまり、ツリーが作成された後、種々のオ
ブジェクト特性が設定され、特定の事象で行うべき動作
が指定され、GUIアプリケーション(ビジュアル・ビル
ダにより作成あるいはテキスト的(textual)にプログ
ラムされたもの)が行うべき最終作業が実行時に事象ル
ープに加えられる。ある事象が発生すると、そのプログ
ラムは対応の動作を実行し、次の事象の発生を待つ。通
常の望ましい行動は、そのアプリケーション・プログラ
ムについて、ボタン50等の作動のような事象に応じ、
無限事象ループ内で実行させることである。
【0027】上記のように、ユーザ・インターフェース
・アプリケーションは図4のようなツリーによって表さ
れ、そのツリーもオブジェクトの階層を表しており、ま
た、このテキスト的なツリーの構造は極めて長いもの
で、ビジュアル・ビルダの開発のもとになったことが容
易に分かる。しかし、ビジュアル・ビルダの存在によっ
ても、やはり、いくつかの深刻な問題は残った。
【0028】まず、これらのオブジェクトそのもの(図
4のノードに見られるもののように)は、通常、従来の
プログラミング技術に基づいて書かれており、オブジェ
クトはビジュアル・ビルダ環境で操作されるように意図
されていないどころか、低水準オブジェクト指向のツー
ルキット・ライブラリの一部とされるものである。つま
り、高水準のビジュアル・プログラマに対するこれらの
オブジェクトの有用性は最重要な検討対象とされず、あ
るいはこれらのオブジェクトを実施する上で全く検討す
らされてなく、従って、本発明の以前にそれらの特性は
ビジュアル・プログラマに直覚的に理解できるものとし
て現れていない。
【0029】本システムにおける問題は、ビジュアル・
プログラマに提供された実行時オブジェクトのインター
フェースがオブジェクトの定義により特定されるものと
されることである。従って本システムは、まさに同じイ
ンターフェース(例えば、Smalltalk法、CLOS 属ファン
クション、および CORBA 、IDL属性、またそのオブジェ
クトの定義により特定されたオペレーションへの拡張に
よるもの)のようにビジュアル・プログラマへの提供が
制限される。このインターフェースは、たとえば実際的
でない属性、あるいはオペレーション名、またビジュア
ル・ビルダのユーザ親密性をかなり損なうほど低い水準
にある属性、あるいはオペレーション等を含む。
【0030】本発明の先願発明である、94年12月12日付
で米国へ出願された米国特許出願番号(US.Patent SN.35
7,834)、発明の名称「視覚アプリケーション・ビルダ構
造を提供するシステムおよび方法(SYSTEM AND METHOD
FOR PROVIDING A VISUAL APPLICATION BUILDER FRAMEWO
RK)」は、これらの問題を解決し、あるビジュアル・ビ
ルダを提供した。そのビジュアル・ビルダでは、ビルダ
・ユーザにより見られるオブジェクト・インターフェー
スがオブジェクト・モデル・インターフェースにより指
定されたものから分離させることが可能であった。
【0031】特に、より直覚的な特性の任意のマッピン
グおよび、属性に対するオブジェクトのオペレーション
や特定のオブジェクト・モデルにより指示された実行時
オブジェクトのオペレーション等を規定した。不必要な
オブジェクトの詳述でビジュアル・プログラミングを圧
倒するのを避けるため、編集可能な特性や実行時オブジ
ェクトのオペレーションがビジュアル・ビルダのユーザ
に提供されるという方法で、より多くの制御が付与され
た。本発明はビジュアル・ビルダのユーザに提供された
抽象概念の高水準でのオブジェクトの新しい特性を定義
することを容易にし、編集可能な実行時オブジェクトを
より直覚的なものにした。
【0032】上記の事は、「代理オブジェクト(proxy
object)」と、代理オブジェクト・ツリーを視覚的に作
成し、編集するためのシステムと方法を提供することに
より達成された。作成時間での代理オブジェクト・ツリ
ーの各代理オブジェクトは、対応の実行時ターゲット・
オブジェクト・ツリーでの相関ターゲット・オブジェク
トに対応した。
【0033】ビジュアル・ビルダに見えるような代理オ
ブジェクト・インターフェースは、ターゲット・オブジ
ェクトの特定のオブジェクト・モデルにより指定された
インターフェースから切り放された。この方法では、代
理オブジェクトはあつらえることができたので、ビジュ
アル・ビルダ・システムはユーザにたいし、所定のオブ
ジェクト・モデルにより指示されたターゲット・オブジ
ェクトの正確な属性およびオペレーションを提供するよ
うに強制されなかった。
【0034】これらの代理オブジェクトは各々、その代
理オブジェクトに対応のターゲット・オブジェクトのク
ラスなどの情報、代理オブジェクトがユーザにどのよう
に提供されるかという表示情報、特定の代理オブジェク
トの特性、かつ、それらをIDL属性にマップする方法等
の多量の情報を必要とした。それら情報の詳細は後述す
る。
【0035】上記の代理オブジェクトの考え方を使用す
るビジュアル・ビルダを履行実行する際に現れた深刻な
問題は、これら膨大な代理オブジェクト情報をどのよう
にして効率的かつ効果的に記憶させ、アクセスするかで
あった。
【0036】一つの方法は各代理オブジェクトに必要な
すべての情報を、実際の代理オブジェクトそのものを履
行実行するなかでハード・コードすることである。
【0037】これはハードコード化に関連した特別な実
行長所を有するのだが、いくつかの深刻な欠点もハード
コード化の性質に関連してやはり存在する。
【0038】この欠点の一つは、これら代理オブジェク
トの変更がその代理オブジェクトを履行実行するソース
・コードを変更することを要求し、またプログラム・コ
ードを書く複雑さに精通したプログラマを必要としたこ
とである。
【0039】また、別の重要な欠点は、ソース・コード
の変更はソース・コードの最終的な再編集を必要とした
ことであった。
【0040】
【発明が解決しようとする課題】上記に鑑み、本発明の
目的はメンテナンスおよび変更が容易なビジュアル・ビ
ルダを提供することである。
【0041】本発明の別の目的は、ソース・コードの変
更あるいは書き換えの必要がなくメンテナンス可能なビ
ジュアル・ビルダを提供することである。
【0042】さらに、本発明の他の目的は代理オブジェ
クトを使用するオブジェクト・モデルの履行実行に基づ
き改善され、この代理オブジェクトに対する改良が容易
となるビジュアル・ビルダを提供することである。
【0043】さらにまた、本発明の他の目的は、この代
理オブジェクトに対する改良が複雑なプログラミングを
行えない人でも容易に実現可能である、オブジェクトに
基づくビジュアル・ビルダを提供することである。
【0044】さらにまた、本発明の他の目的は、この代
理オブジェクトのソース・コードを再編集する必要がな
く、改良が代理オブジェクトにたいして行えるビジュア
ル・ビルダを提供することである。
【0045】
【課題を解決するための手段】上記目的を達成するた
め、本発明により提供されるオブジェクト・モデルを基
礎としたビジュアル・ビルダは、作成時間に代理オブジ
ェクトを含み、各々が実行時のターゲット・オブジェク
トに対応する。各代理オブジェクトはいくつかの情報項
目を付随させており、それは代理オブジェクトに対応す
るターゲット・オブジェクトのクラス、表示情報、特性
およびIDL属性とオペレーションにマップする方法、タ
ーゲット・オブジェクトで有効な事象、そのターゲット
・オブジェクトに支持されたオペレーション等を含む。
この情報の一部はシステム・オブジェクト・モデル(SO
M)インターフェース収納部のようなインターフェース
収納部に記憶させられる。この記憶させられる情報は、
代理オブジェクトそのものに含まれるそのインターフェ
ース収納部からこの情報を回収するために必要な知識に
よって簡単に変更可能な形で記憶させられる。インター
フェース収納部に記憶させられた情報は、代理オブジェ
クトそのものを履行実行するソース・コードを変更した
り、再編成することなく変えることができる。代理オブ
ジェクト用のインターフェース宣言は、インターフェー
ス収納部に記憶させた対応のIDLファイル内に準備させ
る。そのファイルの履行実行文は、代理オブジェクト情
報の容易に編集可能な部分をエンコードする変更子を可
能とする。
【0046】
【発明の実施の形態】上述のように、ビジュアル・ビル
ダあるいは対話式ユーザ・インターフェース開発システ
ムの一般的利点は既に明らかにされている。本発明の詳
細な特徴を説明する前に、ビジュアル・ビルダに対する
要件に関連して補足説明を行う。
【0047】前述のように、ビジュアル・ビルダの初め
の作業はツリー・エディタのファンクションを実行する
ことと、図4に示されたようなツリーの組み立てを、通
常、各ノードを作成したり、それを適切な親に着けるた
めに必要とするコードをテキスト的コードで書く場合よ
り易しくすることである。ビジュアル・ビルダ環境の出
現により、ビジュアル・プログラマは単に、図2のボタ
ン58のように所望のオブジェクトを別の位置60にド
ラッグする。内部的には、ビジュアル・ビルダ・コード
は自動的に対応のオブジェクト・ツリーをどのように変
えるか理解し、図4に示すような新たなツリーを作る。
【0048】上述のように、本発明のビジュアル・ビル
ダにより提供される第二の作業は図4のような実行時オ
ブジェクトの特性の設定を容易にすることである。つま
り、ビジュアル・ビルダは特性エディタとなることであ
る。これはビルダがプログラマ記述コードの必要性なし
にオブジェクトの初期特性を対話的に編集することを意
味する。例えば、プログラマは図2の押しボタンのどれ
か一つのようなオブジェクトをクリックすることが可能
で、そのボタン・オブジェクトの特性の一覧が設定する
ために示される。この特性は、たとえば前景および背景
の色などである。
【0049】本発明によるビジュアル・エディタにより
おこなわれる第三のファンクションは、おこなうべき動
作を指定するためのユーザの能力を楽にすることであ
る。すなわち、以下に一例を示すように接続モデルが提
供される。例えば、ユーザが適切な位置決め装置によっ
て図2のボタン50をクリックする際に、スピーカ44
によって音が発生することを望むとする。この例を用い
て、実行すべき動作を指定するためのシステムの望まし
い履行実行は、スピーカ44のような所望のオブジェク
トにたいしてボタン50をクリックした後にユーザがカ
ーソルをドラッギングすることを可能とする。矢印62
は、特定されたターゲット・オブジェクト44にたいし
てオペレーションが実行されることを知らせるものとし
て表示される。望ましくは、矢印62で示されるこの接
続を編集する時にダイアログ・ボックスが現れ、スピー
カ44について指定したオペレーションを呼び出すボタ
ン50の事象をビジュアル・プログラマが指定できるよ
うにする。そのボタンに関連して起こり得る事象は「ク
リック」事象(ボタンを押した時におきる)、「開示」
事象(ボタンが初めに現れる時か、それを覆うウィンド
ウが移動させられる時におきる)、あるいは「サイズ変
更」事象(ボタンのサイズが変更可能ならボタンのサイ
ズを変更する時におきる)が考えられる。
【0050】ビジュアル・ビルダが動作を指定しなくて
はならない事象を有するオブジェクトの別の例は、図2
のスライダ・オブジェクト42が考えられる。このスラ
イダの場合では、サム43または49の位置が変わった
なら通常の事象は「変更ずみ」事象であり、ウィンドウ
をスクロールする動作が必要となる。同様に、この「ク
リック」に応じて、端のボタン41、45、47、また
は48上の位置決め装置によるクリック動作がウィンド
ウ内のページによるスクロールを起こす。
【0051】上記した説明より、ある事象が起きる時に
実行すべき動作を対話的に指定するために、何らかの方
法を提供することが分かる。すなわち、本発明によるビ
ジュアル・ビルダの所望の履行実行がインターフェース
に関連したオブジェクト・ツリーを組み立て、そのオブ
ジェクトの特性を設定することを容易にし、また、ある
事象が起きた時に実行すべき動作を指定することも容易
にする。
【0052】本発明に基づいたあるビジュアル・ビルダ
の構成の操作方法について詳細な説明をおこなう。
【0053】図4は「実行時ターゲット・オブジェクト
階層ツリー」という名称をつけられている。この図の7
2のようなノードは、エンド・ユーザのアプリケーショ
ンが実行する時に作成すべき実際のオブジェクトを表し
ている。実現化の際、本発明のビジュアル・ビルダを組
み込んだアプリケーションは、実行の時に図4の「実行
時」オブジェクト・ツリーを作成する。次に、図4に示
したノードあるいはターゲット・オブジェクトの種々の
特性を設定するために呼び出され、最終的に矢印84で
示されるようなリンケージの全てを有効とする(所定の
オブジェクトに事象の一つが起きるなら、これも別の
(いくつか可能性がある)オブジェクトのオペレーショ
ンを呼び出すという事を指定する)。したがって、図4
は実行の時にアプリケーションが作成しなくてはならな
いオブジェクトを示しているので、「実行時」という名
称をつけられている。
【0054】ビジュアル・ビルダが図4のオブジェクト
を実際に作成していない間の実行時と「組立時」とを識
別することは重要である。この「組立時」(図5に示
す)の間にビジュアル・ビルダにより「代理」オブジェ
クトが作成され、これらの編集可能な代理「ソース」オ
ブジェクトが図4の対応する実行時「ターゲット」オブ
ジェクトにマップすることは本発明の重要な特徴であ
る。
【0055】標準的なテキスト的プログラミングにおけ
る類似性により、エンド・ユーザのアプリケーションが
書かれている最中である「組立時」に、プログラマは実
際に実行可能なフォームではないソース・コード・テキ
ストを編集している。したがって、本発明のビジュアル
・ビルダの場合には、ビジュアル・ビルダは部分的に、
標準的なテキスト的プログラミングでの従来の編集プロ
セスにおけるテキストを基本としたソース・コード・エ
ディタと同様なファンクションを実行する「ソース・コ
ード」エディタと考えることができる。その違いは、ビ
ジュアル・ビルダによって編集される「ソース」が ASC
II テキスト文字の流れではなく、図5に示したように
「代理」オブジェクトのツリーである。
【0056】ところが実行時(図4)では、ビジュアル
・ビルダにとってゴールは「ターゲット・オブジェク
ト」のツリーを組み立てることであり、組立時(図5)
では、対応の代理オブジェクトのツリーを作成し、編集
し、組み立てることがビジュアル・ビルダにとって望ま
しい。図4と図5の比較は、それらが一対一の対応を視
覚的に示しているターゲット・オブジェクトと代理オブ
ジェクト間の類似パターンと、代理オブジェクト・ツリ
ーとターゲット・オブジェクト・ツリー間の構造上の類
似を見せている。
【0057】本発明のビジュアル・ビルダは、組立時間
にビジュアル・プログラマによって操作、編集される
「ソース」である代理オブジェクトを用いた、部分的に
代理ツリーあるいはグラフ・エディタに実際には見え
る。図5の代理オブジェクト・ツリーが必要とされる理
由は、代理オブジェクトが後述するような重要な点にお
いてターゲット・オブジェクトとは異なることである。
【0058】前述のように、図4のターゲット・オブジ
ェクトの各々(70、72、等々)は、スクロール・バ
ー、ウィンドウ、フォーム等のオブジェクトのような、
組み立てる必要のある最終的な実際の実行時オブジェク
トを示している。検討例はビジュアル実行時オブジェク
トに焦点をあてているが、実行時オブジェクトも視覚的
ではないことに注意する必要があり、たとえばそれらは
実行時で視覚的表示を必ずしも持つ必要がない。反対
に、図5のノードにより示されたオブジェクトは、各々
が実行時に対応のターゲット・オブジェクトを有すると
いう意味で「代理」オブジェクトである(また、「代
用」オブジェクト、あるいは「影」オブジェクトと様々
に考えられている)。これは、一例として、ターゲット
・オブジェクトに「70」、代理オブジェクトに「70
A」という番号を付けて説明している。
【0059】「代理」オブジェクトの概念が本発明の根
本的な考え方として紹介されてきたので、実行可能なフ
ァンクションを詳細に説明する必要がある。これらのフ
ァンクションを以下に示す。
【0060】代表的代理ファンクション 1.組立時にそれ自体を表示する。 2.特性値に対する記憶手段、およびアクセスを提供す
る。 3.対応のターゲット・オブジェクトに有効な事象につ
いての情報を提供する。 4.対応のターゲット・オブジェクトに有効なオペレー
ションについての情報を提供する。 5.それ自体を持続的な媒体にセーブし、かつその媒体
からリストアする。 6.それ自体をコピーする。 7.それ自体を実現し、実現したターゲット・オブジェ
クト・ツリーからそれ自体を分離し、破棄する。
【0061】この代理オブジェクト全ての第一ファンク
ション、例えば組立時にそれ自体を表示することについ
て述べると、これは対話的に操作可能とするように各代
理オブジェクトがそれ自体のビジュアルな表示を図1の
適切なモニタ38に表示可能であることを意味する。従
って、図示のように、図2のボタン58に対する代理オ
ブジェクトのファンクションは、ビジュアル・プログラ
マに組み立てたターゲット・オブジェクトにボタン・タ
ーゲット・オブジェクトが存在することを示すようにユ
ーザ・インターフェースにビジュアルな画像を表示する
ことである。
【0062】代理オブジェクトのファンクション2に関
しては、本発明のビジュアル・ビルダが特性エディタと
して機能することが前述の説明から分かる。すなわち、
ビジュアル・ビルダは代理オブジェクトの様々な特性を
編集する機能を提供する。従って、これらの特性、例え
ば名前および現在値等が何かということのトラックを維
持するための機能、を設ける必要があることが明白とな
る。一例として、押しボタン・ターゲット・オブジェク
トと、対応の代理オブジェクトは、前景と背景の色、ボ
タンの高さ、幅、および、その上部左隅の位置等を特性
として有する。対応の代理オブジェクトは、それゆえタ
ーゲット・ボタンのオブジェクトに関連したこの特性情
報を記憶する。つまり、一例として、ボタン代理オブジ
ェクトは上記の特性およびそれらの現在値を「知る」
(すなわち、記憶およびアクセスが可能である)ことに
なる。
【0063】代理オブジェクトのファンクション3およ
び4に関しては、本発明のビジュアル・ビルダが代理オ
ブジェクト間の相互接続を行う機能を有しつつあるな
ら、有効となる事象やオペレーションを知る機能がなく
てはならない。たとえば、代理オブジェクト74Aが押
しボタン・ターゲット・オブジェクト74に対応してい
るなら、その代理オブジェクト74Aの追加ファンクシ
ョンは「クリック」のような、そのボタンに起こり得る
事象についての情報を持つ。すなわち、代理オブジェク
トは、プログラマが所望の動作を付属させる適切なもの
を選べるように有効な事象を知らなくてはならない。動
作は通常、他のオブジェクトのオペレーションの呼出し
である。それゆえ、代理オブジェクトは、プログラマが
ある事象に応じて適切なものを選び、かつ呼び出せるよ
うに、対応のターゲット・オブジェクトによって支援さ
れるオペレーションの情報を持たなくてはならない。た
とえば、「スピーカ」オブジェクトのオペレーションを
呼び出すことが望ましいなら、スピーカ代理オブジェク
トはその対応するターゲット・オブジェクトが「ビーと
鳴る」オペレーションを支援することを知らなくてはな
らない。
【0064】代理オブジェクトのファンクション5に関
して述べると、アプリケーションのビジュアル・プログ
ラミングの中で、プログラムの作成を一時停止すること
が望ましい。この代理オブジェクトのファンクション
は、各代理オブジェクトが対応の代理ツリー情報と関連
のデータをセーブ可能であることを単純に意味する。す
なわち、代理オブジェクトは、特定のアプリケーション
のビジュアル・プログラミングを再開する時のファイル
・システムのような永続性のある媒体に、それ自体をセ
ーブし、また、後にその媒体からリストアする能力を持
たなくてはならない。このファンクションは、テキスト
的なソース・コードをセーブし、後に編集を再開する多
くのテキスト・エディタの能力に類似している。
【0065】代理オブジェクトのファンクション6につ
いて述べると、この代理オブジェクトはそれ自体を複製
することができる。この機能はビジュアル・プログラミ
ングで必要とされるもの、つまり組立時にオブジェクト
のコピーを作成することを可能とする。
【0066】最後に、代理オブジェクトのファンクショ
ン7は代理オブジェクトがそれ自体を実現し、続いて、
実現したターゲット・オブジェクト・ツリーから分離
し、破棄することが可能であることを意味する。代理オ
ブジェクトは、対応のターゲット・オブジェクトにたい
して基本的に代役である「代行者」として考えられる。
いくつかの点では、組み立てられたプログラムを実行す
ることが望ましく、また、図4に示されたツリーの例の
ような実行時ツリーを作成し、初期化することが必要と
なる。代理オブジェクトのコレクションは、それが本質
的に対応のアプリケーション(図4)に対する「青写
真」あるいは「ソース・コード」(図5)なので、プロ
グラムの実行を効果的にするための必須の情報を有して
いる。「実現する」という用語は単に、代理オブジェク
トが関連のターゲット・オブジェクトを作成することが
できることを意味している。
【0067】代理オブジェクトのビジュアル・ビルダお
よび図5の代理オブジェクト・ツリーを提供することに
多くの利点がある。図5の代理オブジェクト・ツリーは
理解しにくいので、後に詳細な説明をする。これらの利
点の説明も、この代理オブジェクトや対応のビジュアル
・ビルダが本発明に基づいて実行される方法をさらに述
べる。
【0068】現在説明しているビジュアル・ビルダの履
行実行の主な利点は従来のビジュアル・ビルダとは重大
な違いを提供するものであり、この代理オブジェクトの
提供により、ビジュアル・ビルダのユーザに知られたよ
うな代理オブジェクト・インターフェースがターゲット
・オブジェクトの定義によって指定されたインターフェ
ースから分離させられることである。
【0069】図4のターゲット・オブジェクトは、現在
説明中の本発明の履行実行の場合では、SOMのようなあ
るオブジェクト・モデル内で定義される。これらのター
ゲット・オブジェクトは、ターゲット・オブジェクトの
属性とオペレーションが何であるか定義するIDL定義を
有している。
【0070】ビジュアル・ビルダの作成では、種々の代
理オブジェクトが事前定義され、特別に仕立てられるよ
うに履行実行を行われるので、本発明のシステムはビジ
ュアル・ビルダのユーザに図4のターゲット・オブジェ
クトの正確な属性やオペレーションを表示することを強
いられない。それどころか、異なった組を定義する柔軟
性が与えられている。
【0071】上述の例はその重要性を理解するうえで役
に立つ。IDLによって書かれたように、図4のオブジェ
クト72のようなターゲット・オブジェクトに関連した
オペレーションは極めて低水準の可能性がある。同様
に、そのターゲット・オブジェクト72の属性は長くか
つ読むのが困難な名前を有している可能性がある。本発
明は代理オブジェクト用の機能を提供するので、ターゲ
ット・オブジェクトに関する対応の属性をマップする特
性の異なった組をビジュアル・プログラマに提供するこ
とができる。一例として、ターゲット・オブジェクト7
2がこれらの属性、つまりスクリーン上のオブジェクト
の部分のRGB特性の構成要素である「赤」、「緑」、
「青」を有すると考える。(各構成要素は関連の原色の
量を制御する)。
【0072】ビジュアル・ビルダのレベルでは、ビジュ
アル・プログラマにこの特定のターゲット・オブジェク
トが「赤」、「緑」、「青」(以下、R,G,Bと称する)
の3つの特性を有するという情報を提示することは望ま
しくない。プログラマにたいしては、オブジェクト72
が「色」の特性を有し、その値はピンク、紫色、オレン
ジ色などのように一覧表にしたものの形をとることを単
に知らせることが望ましい。そして、これらの色は、所
望の色を有効にするためIDL属性が提供する必要なR,G,B
成分に翻訳される。
【0073】つまり、所定のターゲット・オブジェクト
がそのインターフェース定義における「色」の属性を提
供しない可能性がある。むしろ、色(たとえば、R,G,
B)を集合的に作り上げる3つの分かれた属性を有す
る。ビジュアル・プログラマにたいして、これはプログ
ラマが色を指定することを要求されるという過度に低水
準の方法として現れる可能性がある。プログラマは赤1
00%、緑50%、青0%というように所望の色を指定
する方法によるのではなく、単にオレンジ色というよう
に所望の色を選び出すことだけを求められるという方法
が、より望ましい。
【0074】従って、代理オブジェクトを提供する際
に、本発明は「色」と同様な単一の特性が定義され、プ
ログラマに提供されることを可能とし、このユーザが指
定した「オレンジ色」の色値をターゲット・オブジェク
トの属性、つまり赤100%、緑50%、青0%に翻訳
するための情報を代理オブジェクトが有する。比較的高
水準のユーザにたいして、本発明は、必要な目的属性に
翻訳(ユーザに明白に)する新たなオブジェクト特性を
定義する能力を助長する。それゆえターゲット・オブジ
ェクトの属性は、この代理オブジェクトによりビジュア
ル・プログラマに対して、より直覚的に提供することが
可能である。
【0075】別の方法を述べると、代理オブジェクトは
オブジェクトの特性に抽象概念を導入し、かつ実際に定
義したインターフェースにその概念をマッピングするた
めのメカニズムを提供する。対応のボタン代理オブジェ
クトでボタンの「色」特性を定義したなら、この代理オ
ブジェクトはターゲット・オブジェクト内の対応する適
切な R,G,B IDL属性を高水準の「色」特性に設定する方
法を知るに必要な情報を含むことになる。詳細は後述す
るが、高水準な代理オブジェクト特性をターゲット・オ
ブジェクトの属性にマップする方法の知識は、組立時お
よび実現化時間に役立たてられ、その知識は特定の代理
オブジェクトが設計される際にその代理オブジェクトに
組み込まれる。
【0076】本発明は代理オブジェクトの特性を一つ以
上の属性(たとえば、説明した履行実行におけるIDL属
性)にマッピングすることのみに限定される必要はな
い。本発明は特に、特性とオペレーションの任意の組み
合わせに代理オブジェクトの特性を追加的にマッピング
することを意図している。
【0077】一例として、前の説明に続き、R,G,B成分
で「色」を指定することは望ましい。ターゲット・オブ
ジェクトは3つのIDL属性R,G,Bを有することはなく、代
わりに「R組」、「G組」、「B組」のような3つのID
Lオペレーションを有する。ビルダのユーザが再度
「色」特性を設定するように求められることをさらに望
む場合がある。この場合には、代理オブジェクトは、こ
の「色」を3つのオペレーション「R組」、「G組」、
「B組」に対する呼出しに翻訳するため必要な情報を含
むことになる。これは、属性というより、いくつかのオ
ペレーションにマップされた「色」のような代理オブジ
ェクト特性の一例である。オブジェクトの「オペレーシ
ョン」は、オブジェクトについて実施する、あるいは呼
び出す、「属性」とは違い、「色」あるいは「速度」の
ような設定あるいは問い合わせられるデータである何か
であることに注意を要する。しかし、SOMを含んだ、ほ
とんどのオブジェクト・モデルでは、属性がまさにオペ
レーションの特別な場合である。
【0078】上記により、代理オブジェクトを定義する
能力を提供することは、ユーザにオブジェクトが向く方
法を変えること、および、実行時ターゲット・オブジェ
クトの有効なインターフェースにより強制されないこと
を可能にすることが明らかである。
【0079】特定のターゲット・オブジェクトにたいし
て代理オブジェクトを設計する際、新しい特性の組が既
存の有効な属性やオペレーションにマップ可能である限
り、そのターゲット・オブジェクト特性を加えたり、除
去したり、あるいは再定義することが可能であった。
【0080】また、代理オブジェクトを有することの別
の重要な利点がある。特に、代理オブジェクトを設ける
ことは代理オブジェクトの特性およびオペレーションの
可視性あるいは「公開」制御の履行実行を助長する。
【0081】通常、ビジュアル・プログラマは、実行時
ターゲット・オブジェクトの全ての有効な編集可能特性
あるいは呼出し可能オペレーションを見る必要性に圧倒
されることを望まないだろう。代理オブジェクトを設け
ることは、ビジュアル・ビルダの設計において、より組
織化された方法でビジュアル・プログラマにたいしてこ
れらの特性やオペレーションを提示可能とする。それら
は関連のグループに分類可能であり、ユーザはあるグル
ープの特性を見るためにボタンをクリックするような肯
定ステップを取ることを要求される。これは可視性ある
いは公開制御である。ユーザは初め、編集あるいは選択
を必要とされる特性のみ示される。代理オブジェクト
は、いつでもビジュアル・ビルダのユーザが知り、かつ
編集可能である特性を制御するためのメカニズムを提供
する。
【0082】技術用語に関する説明は混乱を避けるため
に必要である。例えば、高水準では、「特性」、「属
性」、「特徴」という用語は同意語であり、互換性があ
るものとして使用される。しかし、取り決めによれば、
ターゲット・オブジェクトのIDLで定義したインターフ
ェースに関する時「属性」および「オペレーション」と
いう用語を使用し、ビジュアル・プログラマが分かるよ
うな「代理」により定義したインターフェースに関する
時に「特性」と「オペレーション」という用語を使用す
る。
【0083】本発明の背景で説明したように、ビジュア
ル・ビルダの履行実行がターゲット・オブジェクトの設
計とそれらの明細を制御可能なら、ビジュアル・プログ
ラマが見た特性の組を再定義したり、あるいはその可視
性を制御する必要性はない。しかし、実際には、通常、
ターゲット・オブジェクトは異なった使用モデルの拘束
下で別のプログラマにより既に書かれているので、この
能力は存在しない。
【0084】代理オブジェクト構造はビジュアル・ビル
ダの履行実行者(より正確には、そのビジュアル・ビル
ダ内で所望のオブジェクトを使用したり操作したりでき
る人)や、所望の目的や要求に適合するように新たな
「世界」を定義する柔軟性を提供する。通常、こうした
要求の最重要なものの一つは、ビジュアル・ビルダがユ
ーザに友好的であり、従属的に、所望の能力特性を示す
ことである。この柔軟性は、代理オブジェクト世界をタ
ーゲット・オブジェクト世界に翻訳する機能を有してい
る限り提供される。ビルダのユーザに見えるある代理オ
ブジェクトの特性は、ターゲット・オブジェクトのIDL
属性に一致させる必要はない。逆に、例えば、代理オブ
ジェクトにより提供される「バーチャル」特性を目的特
性にマップさせることが可能なかぎり、ユーザとの友好
性という目的に対する異なった特性の組を定義する柔軟
性を有する。
【0085】本発明は特性のマッピングに限定されるも
のではない。ビジュアル・ビルダ環境内から分かるよう
に、オブジェクト・オペレーションの組を再定義するも
のでもある。ビジュアル・プログラマが見るオペレーシ
ョンは対応のターゲット・オブジェクトにより支援され
るオペレーションと同一である必要はない。代理オブジ
ェクト特性を有する場合におけるように、全てのターゲ
ット・オブジェクト・オペレーションが代理オブジェク
ト・オペレーションとして示されるという必要条件を緩
和することが可能である。つまり、代理オブジェクト
は、新たなオペレーションをターゲット・オブジェクト
の属性やオペレーションに翻訳する機能を付与する限
り、オペレーションの異なった組を公然のものとするこ
とができる。特性の可視性制御についての前述の説明
は、またオブジェクト間の事象−動作を指定する際にビ
ジュアル・プログラマが見るオペレーションにも適用す
る。
【0086】本発明により提供される別の重要な特徴お
よび利点は、前記のようにビジュアル・ビルダおよび代
理構成の履行実行において、組立アプリケーション実行
時に実現化を実行した後の代理ツリーの分離および破壊
であり、それによりメモリの消費が節約できる。
【0087】この特徴を説明するため、代理オブジェク
トの重要なファンクションは、代理オブジェクトがそれ
自体を「実現」できる、つまり、それらの対応する実行
時ターゲット・オブジェクトを作成することである。ア
プリケーション実行時に、図5の代理ツリーは、図4の
対応するターゲット・オブジェクト・ツリーの組立を容
易にし、代理オブジェクト特性に基づいたターゲット・
オブジェクトの特性を設定し(代理オブジェクトは、属
性を設定し、ターゲット・オブジェクトについての適切
なオペレーションを呼び出すために必要なマッピング知
識を全て含んでいるので)、そして、例えば、事象Eが
オブジェクトX上に発生すると、オペレーションPがオ
ブジェクトY上に呼び出される、という事を示す接続を
確立する。
【0088】この時点で、図4の必要な実行時オブジェ
クト・ツリーは存在しており、制御は前述の事象ループ
に入ることが可能であるという「ゴーサイン」が読み取
られる。代理ツリー(「ソース」コードとして考えられ
ている可能性がある)は、そのジョブを実行し、かつ、
その画像を作成していたので、さらにメモリを消費する
必要はない。従って、代理オブジェクトが図4のターゲ
ット・オブジェクトツリーの実現化を実行時に有効とし
た後、実際のメモリ内の代理オブジェクトの分離、破壊
を行うことが本発明の特徴である。
【0089】図6に示したように、アプリケーション実
行時のはじめの僅かな時間では、代理ツリー(図5)は
実メモリ内に作られ、図4の実行時ツリーを組み立てる
ために必要とされる。しかし、全てのターゲット・オブ
ジェクトが組み立てられ、適切な属性が設定され、オブ
ジェクトの状態を初期化するためにオペレーションが呼
び出され、事象−動作接続が確立させられた後に、代理
オブジェクトはメモリから除去させられることが可能で
ある。グラフ90は、本発明が履行実行される図1のよ
うなシステムの実メモリ使用を示している。その中に見
られる初期スパイク96は、その代理オブジェクトに関
連したダイナミック・リンク・ライブラリ(DLL)の実メ
モリへのロード、およびアプリケーション実行の開始時
の代理ツリーの復帰によるものである。これらDLLは全
ての代理オブジェクトの方法に関連したコードを含んで
いる。スパイクの後の急激な沈み込み94は、図5の代
理オブジェクト・ツリーの破壊と、ターゲット・オブジ
ェクト・ツリーの構築後の代理オブジェクト・ツリーの
DLLのロード解除に対応したメモリ使用における重大な
下降を示している。すなわち、スパイク96は、代理オ
ブジェクト・ツリーと同様に実メモリにロードした代理
関係のコードのDLLに大部分起因している。DLLのロード
解除および代理ツリーのデータ構造の破壊の際、つまり
もう必要とされず、実メモリ使用は94で示されるよう
に極端に下降する。
【0090】代理オブジェクトによって実施される7つ
のファンクションが列挙されたが、関連の考察は、これ
らのファンクションを実行するために代理オブジェクト
が含まなくてはならない情報が何であるかということで
ある。その情報は以下のように類別することができる。
【0091】1.代理オブジェクトに対応のターゲット
・オブジェクトのクラス。 2.表示情報。 3.特性および、それをIDL属性およびオペレーション
にマップする方法。 4.ターゲット・オブジェクトに有効な事象。 5.ターゲット・オブジェクトにより支援されるオペレ
ーション。
【0092】代理オブジェクトが含まなくてはならない
情報の項目に関して、より詳細な説明をおこなう。
【0093】ターゲット・オブジェクトのクラスに関し
て、一例として、代理オブジェクトが代表、あるいは
「プレジデント」オブジェクトの「代理」なら(つま
り、ターゲット・オブジェクトのクラスが「プレジデン
ト」クラスである)、実現化の時、代理オブジェクトは
それ自体(「プレジデント」代理オブジェクト)に対応
する「プレジデント」ターゲット・オブジェクトを作成
しなくてはならない事を知らなくてはならない。
【0094】代理オブジェクトが含まなくてはならない
情報の第2カテゴリに関して、代理オブジェクトの一つ
のファンクションは組立時にそれ自体を見せる(つま
り、スクリーン上に何かを表示する)ことである点を想
起する。それゆえ、代理オブジェクトはこの表示を効果
的にするために必要な情報を含まなくてはならない。代
理オブジェクトはユーザに表示するオブジェクトが何で
あり、また例えばユーザがオブジェクトをアイコン化し
ているなら、何のアイコンを表示するのか知らなくては
ならない。
【0095】代理オブジェクトに含まれる情報、例えば
「特性」、の第3項目に関しては、組立時にビジュアル
・ビルダのユーザがこの特性を編集するので、編集可能
な特性を代理オブジェクトが知らなくてはならないとい
う事実をこれが示している。代理オブジェクトは、各特
性の名称、特性のデータ形式(例えば、整数、ブール、
ストリング、等)、現在値、そして可視性制御に関する
情報を知る必要がある。前述のように、全ての特性をユ
ーザに示す必要がないことと、特性あるいはオペレーシ
ョンの内容開示または組分けの異なった水準を履行実行
することが特徴である。代理オブジェクトは、特性をID
L属性とオペレーションにマップする方法についての知
識も含まなくてはならない。
【0096】第4は、代理オブジェクトはターゲット・
オブジェクトに有効な事象に関する情報を含まなくては
ならない。「プレジデント」の例を使用すると、代理オ
ブジェクトが「プレジデント」ターゲット・オブジェク
トを示すなら、その代理オブジェクトはそのターゲット
・オブジェクトの有効な「事象」を知らなくてはならな
い。例えば、「プレジデント」ターゲット・オブジェク
トが有効な「話す」事象を持つことを代理オブジェクト
が知らなくてはならない。
【0097】最後は、ターゲット・オブジェクトが支援
し、オペレーション名、要旨、戻り値についての情報、
およびそれらがIDL属性およびオペレーションにどのよ
うにマップするかという情報を有する、オペレーション
を示している情報を代理オブジェクトが含まなくてはな
らない。
【0098】ビジュアル・ビルダを履行実行するうえで
の問題は、上記した情報を含むために代理オブジェクト
の必要性があるとするなら、この情報をどのようにして
効率良く、かつ効果的に記憶させ、アクセスするかとい
うことである。
【0099】一つの方法は、代理オブジェクトの各クラ
スにたいし上記のように列記した情報の全てを、その代
理オブジェクト(そのクラス)内でハード・コードする
ことである。
【0100】この代理オブジェクト情報をハード・コー
ドする利点は、ハード・コードに通常関連した実行利得
である。しかし、重大な欠点はハード・コードにやはり
関連した柔軟性の欠如、つまり、付随の欠点の全てを有
し、ソース・コードを変更し、かつ再編成する要求を変
えることである。一例として、「プレジデント」代理オ
ブジェクトで、唯一有効な事象が「話す」であるように
ハード・コードされ、後に、「食べる」事象を加えるこ
とが望まれるなら、これはプレジデント代理オブジェク
トのソース・コードを変更し再編集することを必要とす
る。
【0101】従って、ほかの場所に記憶させ、代理オブ
ジェクトにより単に照合させる事象の一覧を提供するこ
とは、本発明の一つの特徴である。上述した情報の全て
をハード・コードする代理オブジェクトの代わりに、そ
の情報をどのように、そしてどこから検索するか知るこ
とが代理オブジェクトにとって十分である。そうするこ
とにより、代理オブジェクト・コードを変えるための必
要条件はなく、むしろ代理オブジェクト・コードから分
離維持される事象の一覧を単に変えることである。
【0102】一般的に、本発明により採用された方法
は、代理オブジェクトに必要な全ての情報あるいは一部
の情報をその代理オブジェクト(のクラス)のIDL定義
にはめ込むというものであり、その定義は後述するイン
ターフェース収納部内に現れ、またインターフェース収
納部からアクセス可能である。インターフェース収納部
から情報を検索する方法の知識は(代理オブジェクトの
クラス・オブジェクト内に)ハード・コードされる。
【0103】図7は上記の考え方を説明するものであ
り、図5のような代理オブジェクト・ツリーの一例が示
されている。また、SOMインターフェース収納部100
も示されている。あるターゲット・オブジェクトに有効
な事象の一覧がインターフェース収納部100に記憶さ
せられている。あるターゲット・オブジェクトに対する
代理オブジェクト76Aは、この情報ディレクトリに記
憶することより、インターフェース収納部100からこ
の一覧をどのように検索するか知っている。この方法で
は、事象の一覧を変更する必要があり、これはその一覧
を含んでいるインターフェース収納部100の一部分1
06を単純に編集することにより成され、代理オブジェ
クト・コードを再編成する要求を回避する。
【0104】一般的に、各代理オブジェクトに対するキ
ャプション102により示されるように代理オブジェク
トより求められる情報108の全てをハード・コードす
るよりむしろ、この情報108の一部分を、再編成する
必要性なしに容易に変えることができるインターフェー
ス収納部100のどこか別の所に必要に応じて記憶させ
る。インターフェース収納部100に情報を配置するた
めに種々の代理オブジェクトが必要とする情報あるいは
知識は、代理オブジェクトにハード・コードさせるもの
である。インターフェース収納部100は、単に、ファ
イル・システムを介するような、種々の方法で実行可能
な情報記憶部である。
【0105】当業界で公知の数々の研究が、履行実行に
対し、代理オブジェクトが必要とする情報の上記のよう
に列挙した項目のどれが代理オブジェクト内でハード・
コードさせるか、またインターフェース収納部100に
どれを記憶させるのが望ましいか決めることになる。こ
こで説明の履行実行では、図7の番号108で示された
情報項目1乃至5の全ては、特性およびオペレーション
をマッピングする知識を除いてインターフェース収納部
100内に提供される。一方では、この情報の全ては代
理オブジェクトにハード・コード可能であり、他方で
は、インターフェース収納部100に情報の多数が記憶
可能である。後者の場合、言語プロセッサかコマンド解
析機能の開発を必要とすることになる。従って、ハード
・コード方法対洗練された言語プロセッサの開発の決定
に関して当業界で公知の交換条件的取捨選択方法が現れ
ることが考えられる。検討中の履行実行において、極度
に単純化させるように、代理オブジェクトに対する情報
の項目を、容易に処理できる一覧として表示可能なイン
ターフェース収納部100内に入れたが、一方、より容
易にハード・コードできる他の項目を代理オブジェクト
に入れた。
【0106】インターフェース収納部100内の記憶収
納は再編成を避けられるという利点をもたらすが、たと
えば、多量の代理オブジェクト情報を記憶する欠点の一
つは、インターフェース収納部100を履行実行する従
来の方法であるDASD等のような大容量記憶装置に対する
入出力制限という能力に関することである。
【0107】図8を参照して説明する本発明の技術の特
定の例を用いて、どのようにして適切な代理オブジェク
ト情報がインターフェース収納部に記憶させるかという
詳細な説明を細部に関して行う。本発明の技術は収納部
100に情報を記憶するために使用するメカニズムであ
るSOM IDL変更子を用いている。この変更子はSOMのクラ
ス定義の別のシンタックスである。
【0108】図8は代表的なIDLファイル112を示し
ており、「プレジデント代理」オブジェクト・クラス1
10が定義されている。この例では、インターフェース
定義は前述のIDLシンタックスによる。ファイル112
には「プレジデント代理」オブジェクトの属性およびオ
ペレーション114が示されている。前述したように、
IDLシンタックスのオブジェクトを定義することはCORBA
により指令されたような属性とオペレーション114を
要求するという事である。
【0109】また、SOMはIDL従順であるが、追加の意味
およびシンタックスを定義する際にIDLおよびCORBAの必
要条件を越えることも説明した。SOMはインターフェー
ス宣言内で履行実行文118を規定し、またその宣言は
図示したように「事象」および「オペレーション」変更
子のような任意の変更し120を含むことができる。SO
Mの変更子120の基本的な考えや原理は、一つのクラ
スについて宣言させることが望ましい可能性のある全て
の事を予測することは不可能であるということである。
したがって、SOM IDLシンタックスがフォームの限定し
た組のみ含むように制限することより、「逃がし弁」を
SOMコンパイラが無視する変更子120のフォーム内に
設けた。しかし、変更子120はSOMコンパイラによりS
OMインターフェース収納部100に記憶されており、そ
れにより、SOMコンパイラそのものが情報を利用する方
法を知らなくても、どのプログラムによってもアクセス
が有効になる。
【0110】インターフェース収納部100に記憶させ
ることが望ましい代理オブジェクト情報の「一覧」を、
変更子の議論を考慮して、変更子120としてIDLファ
イル112に入れることができる。編成プロセスの一部
として、インターフェース収納部100にアクセスする
方法を知っているプログラムに対して有効となるよう
に、SOMコンパイラはインターフェース収納部100に
インターフェース定義(変更子情報120を含む)をい
れる。(もちろん、インターフェース収納部はオブジェ
クトの情報の適切な代理オブジェクトによるアクセスお
よび検索を効果的にするコードを含んでいる。)
【0111】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0112】(1)ビジュアル・ビルダにおける代理オ
ブジェクトを支援する方法において、上記代理オブジェ
クト内の該代理オブジェクトに対応する情報の第一部分
を記憶する段階とインターフェース収納部の上記代理オ
ブジェクトを少なくとも部分的に定義する上記情報の第
二部分を記憶する段階を含む方法。 (2)上記第一部分は、上記インターフェース収納部か
ら上記第二部分の検索を可能とすることを特徴とする上
記(1)に記載の方法。 (3)上記情報の上記第二部分は上記代理オブジェクト
のクラスのIDL変更子に、はめ込むことを特徴とする上
記(2)に記載の方法。 (4)上記インターフェース収納部はシステム・オブジ
ェクト型インターフェース収納部であることを特徴とす
る上記(1)に記載の方法。 (5)上記情報の第一部分をハード・コードすることを
特徴とする上記(4)に記載の方法。 (6)上記情報の第二部分は編集可能のテキストである
ことを特徴とする上記(5)に記載の方法。 (7)上記第一部分は上記代理オブジェクトのメタクラ
スを定義することを特徴とする上記(6)に記載の方
法。 (8)上記情報の第二部分は、上記代理オブジェクトの
特性と上記代理オブジェクトのオペレーションを有する
グループから選択することを特徴とする上記(7)に記
載の方法。 (9)上記IDL変更子はシステム・オブジェクト型IDL変
更子であることを特徴とする上記(3)に記載の方法。 (10)上記情報の第一部分は、少なくとも部分的に上
記代理オブジェクトを定義することを特徴とする上記
(1)に記載の方法。 (11)ビジュアル・ビルダにおける代理オブジェクト
を支援するためのコンピュータ処理システムにおいて、
上記代理オブジェクト内の該代理オブジェクトに対応す
る情報の第一部分を記憶する手段とインターフェース収
納部の上記代理オブジェクトを少なくとも部分的に定義
する上記情報の第二部分を記憶する手段を含むコンピュ
ータ処理システム。 (12)上記第一部分は、上記インターフェース収納部
から上記第二部分の検索を可能とすることを特徴とする
上記(11)に記載のシステム。 (13)上記情報の上記第二部分は上記代理オブジェク
トのクラスのIDL変更子に、はめ込むことを特徴とする
上記(12)に記載のシステム。 (14)上記インターフェース収納部はシステム・オブ
ジェクト型インターフェース収納部であることを特徴と
する上記(11)に記載のシステム。 (15)上記情報の第一部分をハード・コードすること
を特徴とする上記(14)に記載のシステム。 (16)上記情報の第二部分は編集可能のテキストであ
ることを特徴とする上記(15)に記載のシステム。 (17)上記第一部分は上記代理オブジェクトのメタク
ラスを定義することを特徴とする上記(16)に記載の
システム。 (18)上記情報の第二部分は、上記代理オブジェクト
の特性と上記代理オブジェクトのオペレーションを有す
るグループから選択することを特徴とする上記(17)
に記載のシステム。 (19)上記IDL変更子はシステム・オブジェクト型IDL
変更子であることを特徴とする上記(13)に記載のシ
ステム。 (20)上記情報の第一部分は少なくとも部分的に上記
代理オブジェクトを定義することを特徴とする上記(1
1)に記載のシステム。
【0113】
【発明の効果】本発明によれば、代理オブジェクトを使
用するオブジェクト・モデルの履行実行に基づき改善さ
れ、この代理オブジェクトに対する改良が容易となるビ
ジュアル・ビルダを提供でき、また、この代理オブジェ
クトに対する改良が複雑なプログラミングを行えない人
でも容易に実現可能な、オブジェクトに基づくビジュア
ル・ビルダを提供でき、さらにまた、この代理オブジェ
クトのソース・コードを再編集する必要がなく、改良が
代理オブジェクトにたいして行えるビジュアル・ビルダ
を提供できる。
【図面の簡単な説明】
【図1】本発明を実行する際に使用するパーソナル・コ
ンピュータ・システムを示すブロック図。
【図2】本発明を用いて実行可能なプログラムのグラフ
ィックなユーザ・インターフェースの一部分を説明する
概略図。
【図3】階層特性を説明する図2のユーザ・インターフ
ェースの構成部品を示す概略図。
【図4】図3に対応する本発明の実行時ターゲット・オ
ブジェクト階層ツリーを示す概略図。
【図5】図4のツリーに対応する本発明による作成/編
集/組立の代理オブジェクト・ツリーを示す概略図。
【図6】本発明によるリアル・メモリ使用の際の改善を
示したグラフ。
【図7】インターフェース収納部の選択した代理オブジ
ェクト情報の記憶を示す説明図。
【図8】代理オブジェクトのある形態および図7に示し
たインターフェース収納部に記憶した関連のIDLファイ
ルの例を示した説明図。
【符号の説明】
40 ユーザ・インターフェース 41 エンド・ボタン 42 スライダ・バー 43 スライダ・サム 44 スピーカ・アイコン 45 エンド・ボタン 46 スタイダ・バー 47 エンド・ボタン 48 エンド・ボタン 49 スライダ・サム 50 ボタン 52 ウィンドウ 54 プルダウン・メニュ 56 ウィンドウ 58 ボタン
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェイムス・ウィリアム・フォンテイン、 ジュニア アメリカ合衆国78759、テキサス州、オー スチン、ベイリッジ・コーブ 10705 (72)発明者 リーネ・リム・レイムス アメリカ合衆国78759、テキサス州、オー スチン、ナンバー2008、ジョリービル・ロ ード 11316

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】ビジュアル・ビルダにおける代理オブジェ
    クトを支援する方法において、 上記代理オブジェクト内の該代理オブジェクトに対応す
    る情報の第一部分を記憶する段階とインターフェース収
    納部の上記代理オブジェクトを少なくとも部分的に定義
    する上記情報の第二部分を記憶する段階を含む方法。
  2. 【請求項2】上記第一部分は、上記インターフェース収
    納部から上記第二部分の検索を可能とすることを特徴と
    する請求項1に記載の方法。
  3. 【請求項3】上記情報の上記第二部分は上記代理オブジ
    ェクトのクラスのIDL変更子に、はめ込むことを特徴と
    する請求項2に記載の方法。
  4. 【請求項4】上記インターフェース収納部はシステム・
    オブジェクト型インターフェース収納部であることを特
    徴とする請求項1に記載の方法。
  5. 【請求項5】上記情報の第一部分をハード・コードする
    ことを特徴とする請求項4に記載の方法。
  6. 【請求項6】上記情報の第二部分は編集可能のテキスト
    であることを特徴とする請求項5に記載の方法。
  7. 【請求項7】上記第一部分は上記代理オブジェクトのメ
    タクラスを定義することを特徴とする請求項6に記載の
    方法。
  8. 【請求項8】上記情報の第二部分は、上記代理オブジェ
    クトの特性と上記代理オブジェクトのオペレーションを
    有するグループから選択することを特徴とする請求項7
    に記載の方法。
  9. 【請求項9】上記IDL変更子はシステム・オブジェクト
    型IDL変更子であることを特徴とする請求項3に記載の
    方法。
  10. 【請求項10】上記情報の第一部分は、少なくとも部分
    的に上記代理オブジェクトを定義することを特徴とする
    請求項1に記載の方法。
  11. 【請求項11】ビジュアル・ビルダにおける代理オブジ
    ェクトを支援するためのコンピュータ処理システムにお
    いて、 上記代理オブジェクト内の該代理オブジェクトに対応す
    る情報の第一部分を記憶する手段とインターフェース収
    納部の上記代理オブジェクトを少なくとも部分的に定義
    する上記情報の第二部分を記憶する手段を含むコンピュ
    ータ処理システム。
  12. 【請求項12】上記第一部分は、上記インターフェース
    収納部から上記第二部分の検索を可能とすることを特徴
    とする請求項11に記載のシステム。
  13. 【請求項13】上記情報の上記第二部分は上記代理オブ
    ジェクトのクラスのIDL変更子に、はめ込むことを特徴
    とする請求項12に記載のシステム。
  14. 【請求項14】上記インターフェース収納部はシステム
    ・オブジェクト型インターフェース収納部であることを
    特徴とする請求項11に記載のシステム。
  15. 【請求項15】上記情報の第一部分をハード・コードす
    ることを特徴とする請求項14に記載のシステム。
  16. 【請求項16】上記情報の第二部分は編集可能のテキス
    トであることを特徴とする請求項15に記載のシステ
    ム。
  17. 【請求項17】上記第一部分は上記代理オブジェクトの
    メタクラスを定義することを特徴とする請求項16に記
    載のシステム。
  18. 【請求項18】上記情報の第二部分は、上記代理オブジ
    ェクトの特性と上記代理オブジェクトのオペレーション
    を有するグループから選択することを特徴とする請求項
    17に記載のシステム。
  19. 【請求項19】上記IDL変更子はシステム・オブジェク
    ト型IDL変更子であることを特徴とする請求項13に記
    載のシステム。
  20. 【請求項20】上記情報の第一部分は少なくとも部分的
    に上記代理オブジェクトを定義することを特徴とする請
    求項11に記載のシステム。
JP7309124A 1994-12-16 1995-11-28 ビジュアル・アプリケーション・ビルダの枠組において代理オブジェクトを履行実行する方法およびシステム Pending JPH08234985A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/357,838 US6038395A (en) 1994-12-16 1994-12-16 System and method for implementing proxy objects in a visual application builder framework
US357838 1994-12-16

Publications (1)

Publication Number Publication Date
JPH08234985A true JPH08234985A (ja) 1996-09-13

Family

ID=23407238

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7309124A Pending JPH08234985A (ja) 1994-12-16 1995-11-28 ビジュアル・アプリケーション・ビルダの枠組において代理オブジェクトを履行実行する方法およびシステム

Country Status (2)

Country Link
US (1) US6038395A (ja)
JP (1) JPH08234985A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001063400A3 (en) * 2000-02-22 2002-06-20 World Wide Objects Application programming system and method of operation thereof
JP2010128839A (ja) * 2008-11-28 2010-06-10 Yamatake Corp 画面作成表示システム
WO2015025609A1 (ja) 2013-08-21 2015-02-26 日東電工株式会社 入力装置
CN112685028A (zh) * 2020-12-29 2021-04-20 苏州德创测控科技有限公司 一种机器视觉的可视化编程的方法、装置及存储介质

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5847953A (en) * 1996-09-23 1998-12-08 National Instruments Corporation System and method for performing class checking of objects in a graphical data flow program
US6990652B1 (en) * 1997-03-04 2006-01-24 National Instruments Corporation System and method for determining methods and properties to be invoked on objects in a graphical program
US6571297B1 (en) * 1997-08-20 2003-05-27 Bea Systems, Inc. Service interface repository application programming models
JP2000122886A (ja) * 1998-10-10 2000-04-28 Advantest Corp 半導体試験装置のプログラム作成方式
US6637020B1 (en) 1998-12-03 2003-10-21 International Business Machines Corporation Creating applications within data processing systems by combining program components dynamically
US6336118B1 (en) * 1998-12-03 2002-01-01 International Business Machines Corporation Framework within a data processing system for manipulating program objects
US7117446B2 (en) * 1999-02-01 2006-10-03 Sonic Solutions, Inc. User interface method and system for application programs implemented with component architectures
US6574635B2 (en) * 1999-03-03 2003-06-03 Siebel Systems, Inc. Application instantiation based upon attributes and values stored in a meta data repository, including tiering of application layers objects and components
US6526571B1 (en) * 1999-03-16 2003-02-25 International Business Machines Corporation Method for identifying calls in java packages whose targets are guaranteed to belong to the same package
US6418447B1 (en) * 1999-06-14 2002-07-09 International Business Machines Corporation Registration of object factories under multiple interface names
US6772408B1 (en) * 2000-11-22 2004-08-03 Hyperion Solutions Corporation Event model using fixed-format text strings to express event actions
US6891552B1 (en) * 2001-05-08 2005-05-10 Microsoft Corporation Specifiable user interfaces
US6826729B1 (en) * 2001-06-29 2004-11-30 Microsoft Corporation Gallery user interface controls
US20030028859A1 (en) * 2001-07-31 2003-02-06 Nigel Street Method of collecting, visualizing and analyzing object interaction
US6810516B2 (en) * 2001-10-30 2004-10-26 Hewlett-Packard Development Company, L.P. Mechanism allowing separation of graphical display of object status from underlying data
FR2838217B1 (fr) * 2002-04-05 2004-06-25 De Chelle Yvonne Auberlet Procede et dispositif de generation de logiciels executables sur mesure et evolutifs sans programmation informatique
US20030220870A1 (en) * 2002-05-22 2003-11-27 Afshin Bayrooti Visual editor system and method for specifying a financial transaction
US20030220856A1 (en) * 2002-05-22 2003-11-27 Afshin Bayrooti System and method for specifying a financial transaction
US20030226068A1 (en) * 2002-05-28 2003-12-04 Rule John Scott Run time method of control system interface design and device control
US20040034860A1 (en) * 2002-08-15 2004-02-19 Microsoft Corporation Dynamically extensible application program framework including message and notification routing
US9715678B2 (en) 2003-06-26 2017-07-25 Microsoft Technology Licensing, Llc Side-by-side shared calendars
US8799808B2 (en) * 2003-07-01 2014-08-05 Microsoft Corporation Adaptive multi-line view user interface
US20050005249A1 (en) * 2003-07-01 2005-01-06 Microsoft Corporation Combined content selection and display user interface
US7392249B1 (en) * 2003-07-01 2008-06-24 Microsoft Corporation Methods, systems, and computer-readable mediums for providing persisting and continuously updating search folders
US7707255B2 (en) 2003-07-01 2010-04-27 Microsoft Corporation Automatic grouping of electronic mail
US7716593B2 (en) * 2003-07-01 2010-05-11 Microsoft Corporation Conversation grouping of electronic mail records
US7650593B2 (en) * 2004-03-25 2010-01-19 Microsoft Corporation Proxy objects for display
US8117542B2 (en) * 2004-08-16 2012-02-14 Microsoft Corporation User interface for displaying selectable software functionality controls that are contextually relevant to a selected object
US7895531B2 (en) * 2004-08-16 2011-02-22 Microsoft Corporation Floating command object
US9015621B2 (en) 2004-08-16 2015-04-21 Microsoft Technology Licensing, Llc Command user interface for displaying multiple sections of software functionality controls
US8255828B2 (en) 2004-08-16 2012-08-28 Microsoft Corporation Command user interface for displaying selectable software functionality controls
US8146016B2 (en) 2004-08-16 2012-03-27 Microsoft Corporation User interface for displaying a gallery of formatting options applicable to a selected object
US7703036B2 (en) 2004-08-16 2010-04-20 Microsoft Corporation User interface for displaying selectable software functionality controls that are relevant to a selected object
US7747966B2 (en) * 2004-09-30 2010-06-29 Microsoft Corporation User interface for providing task management and calendar information
US8117591B1 (en) 2005-01-07 2012-02-14 Interactive TKO, Inc. Graphical model for test case viewing, editing, and reporting
US8060864B1 (en) * 2005-01-07 2011-11-15 Interactive TKO, Inc. System and method for live software object interaction
US20060200738A1 (en) * 2005-03-02 2006-09-07 Tira Wireless Inc. System and method for modifying a mobile device application
US8239882B2 (en) * 2005-08-30 2012-08-07 Microsoft Corporation Markup based extensibility for user interfaces
US8689137B2 (en) * 2005-09-07 2014-04-01 Microsoft Corporation Command user interface for displaying selectable functionality controls in a database application
US7984107B2 (en) * 2005-09-09 2011-07-19 Microsoft Corporation Proxy assembly for simulating real assembly features on a remote device
US9542667B2 (en) * 2005-09-09 2017-01-10 Microsoft Technology Licensing, Llc Navigating messages within a thread
US8627222B2 (en) 2005-09-12 2014-01-07 Microsoft Corporation Expanded search and find user interface
US8605090B2 (en) * 2006-06-01 2013-12-10 Microsoft Corporation Modifying and formatting a chart using pictorially provided chart elements
US9727989B2 (en) 2006-06-01 2017-08-08 Microsoft Technology Licensing, Llc Modifying and formatting a chart using pictorially provided chart elements
US20080126376A1 (en) * 2006-09-22 2008-05-29 Avraham Leff Enabling multi-view applications based on a relational state machine paradigm
US7865868B2 (en) * 2007-03-28 2011-01-04 Microsoft Corporation .NET ribbon model for a ribbon user interface
US8201103B2 (en) 2007-06-29 2012-06-12 Microsoft Corporation Accessing an out-space user interface for a document editor program
US8762880B2 (en) 2007-06-29 2014-06-24 Microsoft Corporation Exposing non-authoring features through document status information in an out-space user interface
US8484578B2 (en) * 2007-06-29 2013-07-09 Microsoft Corporation Communication between a document editor in-space user interface and a document editor out-space user interface
US9588781B2 (en) 2008-03-31 2017-03-07 Microsoft Technology Licensing, Llc Associating command surfaces with multiple active components
US9665850B2 (en) * 2008-06-20 2017-05-30 Microsoft Technology Licensing, Llc Synchronized conversation-centric message list and message reading pane
US8402096B2 (en) * 2008-06-24 2013-03-19 Microsoft Corporation Automatic conversation techniques
US8645559B2 (en) * 2008-09-22 2014-02-04 Microsoft Corporation Redirection of multiple remote devices
US9111019B2 (en) 2008-09-30 2015-08-18 Interactive TKO, Inc. Modeling and testing interactions between components of a software system
WO2010107476A1 (en) * 2009-03-19 2010-09-23 Duke University Inhibiting gsnor
US9046983B2 (en) 2009-05-12 2015-06-02 Microsoft Technology Licensing, Llc Hierarchically-organized control galleries
US9116708B2 (en) * 2010-03-05 2015-08-25 Nec Corporation Program creation support apparatus, program, and information system
US8566792B2 (en) * 2010-05-07 2013-10-22 Salesforce, Inc. Validating visual components
US8984490B1 (en) 2010-10-26 2015-03-17 Interactive TKO, Inc. Modeling and testing of interactions between components of a software system
US8966454B1 (en) 2010-10-26 2015-02-24 Interactive TKO, Inc. Modeling and testing of interactions between components of a software system
US20120173997A1 (en) * 2010-12-30 2012-07-05 International Business Machines Corporation System and method for capturing a state of a running application
US8566778B2 (en) 2011-06-03 2013-10-22 Microsoft Corporation Using enterprise management application proxies for developing projects in program development tools
US8386457B2 (en) * 2011-06-22 2013-02-26 International Business Machines Corporation Using a dynamically-generated content-level newsworthiness rating to provide content recommendations
KR101185354B1 (ko) * 2011-10-10 2012-09-21 한화에스앤씨주식회사 스마트 텔레비전 및 스마트 셋톱 박스에 기반하는 폐쇄 이용자 그룹들 간의 연계된 서비스를 제공하는 장치
US8990777B2 (en) 2013-05-21 2015-03-24 Concurix Corporation Interactive graph for navigating and monitoring execution of application code
US9734040B2 (en) * 2013-05-21 2017-08-15 Microsoft Technology Licensing, Llc Animated highlights in a graph representing an application
US20140189650A1 (en) * 2013-05-21 2014-07-03 Concurix Corporation Setting Breakpoints Using an Interactive Graph Representing an Application
US9280841B2 (en) 2013-07-24 2016-03-08 Microsoft Technology Licensing, Llc Event chain visualization of performance data
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
EP3069267A4 (en) 2013-11-13 2017-09-27 Microsoft Technology Licensing, LLC Software component recommendation based on multiple trace runs
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
EP3106897A1 (en) * 2015-06-19 2016-12-21 Centre National d'Etudes Spatiales Gnss receiver with an on-board capability to implement an optimal error correction mode
US10114736B2 (en) 2016-03-30 2018-10-30 Ca, Inc. Virtual service data set generation
US9898390B2 (en) 2016-03-30 2018-02-20 Ca, Inc. Virtual service localization
WO2025129576A1 (en) * 2023-12-21 2025-06-26 Siemens Aktiengesellschaft Method and system for assisting programming, and computer-readable storage medium

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4943932A (en) * 1986-11-25 1990-07-24 Cimflex Teknowledge Corporation Architecture for composing computational modules uniformly across diverse developmental frameworks
US4860204A (en) * 1987-02-05 1989-08-22 Softron, Inc. Computer based workstation for development of graphic representation of computer programs
US5262761A (en) * 1987-09-08 1993-11-16 Intelligent Micro Systems, Inc. Displaying hierarchical tree-like designs in windows
US5067072A (en) * 1987-11-06 1991-11-19 Visystems, Inc. Virtual software machine which preprocesses application program to isolate execution dependencies and uses target computer processes to implement the execution dependencies
US5315709A (en) * 1990-12-03 1994-05-24 Bachman Information Systems, Inc. Method and apparatus for transforming objects in data models
US5497463A (en) * 1992-09-25 1996-03-05 Bull Hn Information Systems Inc. Ally mechanism for interconnecting non-distributed computing environment (DCE) and DCE systems to operate in a network system
US5485600A (en) * 1992-11-09 1996-01-16 Virtual Prototypes, Inc. Computer modelling system and method for specifying the behavior of graphical operator interfaces
US5339433A (en) * 1992-11-19 1994-08-16 Borland International, Inc. Symbol browsing in an object-oriented development system
US5315703A (en) * 1992-12-23 1994-05-24 Taligent, Inc. Object-oriented notification framework system
US5517663A (en) * 1993-03-22 1996-05-14 Kahn; Kenneth M. Animated user interface for computer program creation, control and execution
JP3365576B2 (ja) * 1993-06-14 2003-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクトの実行方法および装置
US5487141A (en) * 1994-01-21 1996-01-23 Borland International, Inc. Development system with methods for visual inheritance and improved object reusability
US5642511A (en) * 1994-12-16 1997-06-24 International Business Machines Corporation System and method for providing a visual application builder framework
US5737607A (en) * 1995-09-28 1998-04-07 Sun Microsystems, Inc. Method and apparatus for allowing generic stubs to marshal and unmarshal data in object reference specific data formats
US5872973A (en) * 1995-10-26 1999-02-16 Viewsoft, Inc. Method for managing dynamic relations between objects in dynamic object-oriented languages
US5848273A (en) * 1995-10-27 1998-12-08 Unisys Corp. Method for generating OLE automation and IDL interfaces from metadata information
US5842017A (en) * 1996-01-29 1998-11-24 Digital Equipment Corporation Method and apparatus for forming a translation unit
US5867647A (en) * 1996-02-09 1999-02-02 Secure Computing Corporation System and method for securing compiled program code
US5862325A (en) * 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
US5862052A (en) * 1996-04-12 1999-01-19 Fisher-Rosemount Systems, Inc. Process control system using a control strategy implemented in a layered hierarchy of control modules
US5857191A (en) * 1996-07-08 1999-01-05 Gradient Technologies, Inc. Web application server with secure common gateway interface

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001063400A3 (en) * 2000-02-22 2002-06-20 World Wide Objects Application programming system and method of operation thereof
US7571442B2 (en) 2000-02-22 2009-08-04 Worldwide Objects International Limited Systems and methods for application programming using persistent objects
JP2010128839A (ja) * 2008-11-28 2010-06-10 Yamatake Corp 画面作成表示システム
WO2015025609A1 (ja) 2013-08-21 2015-02-26 日東電工株式会社 入力装置
CN112685028A (zh) * 2020-12-29 2021-04-20 苏州德创测控科技有限公司 一种机器视觉的可视化编程的方法、装置及存储介质

Also Published As

Publication number Publication date
US6038395A (en) 2000-03-14

Similar Documents

Publication Publication Date Title
JPH08234985A (ja) ビジュアル・アプリケーション・ビルダの枠組において代理オブジェクトを履行実行する方法およびシステム
US5642511A (en) System and method for providing a visual application builder framework
Olsen Jr MIKE: The menu interaction kontrol environment
US5432940A (en) System and methods for improved computer-based training
US5613122A (en) Object-oriented operating system
US5850548A (en) System and methods for visual programming based on a high-level hierarchical data flow model
US6704743B1 (en) Selective inheritance of object parameters in object-oriented computer environment
US5630131A (en) Method and apparatus for importing and exporting archive files for a graphical user interface
US5652884A (en) Method and apparatus for dynamic update of an existing object in an object editor
US6263492B1 (en) Run time object layout model with object type that differs from the derived object type in the class structure at design time and the ability to store the optimized run time object layout model
US5818445A (en) Method and system for creating computer-program-based applications with developer specified look and feel
US5604907A (en) Computer system for executing action slots including multiple action object classes
US6216149B1 (en) Method and system for efficient control of the execution of actions in an object oriented program
JP2735780B2 (ja) オブジェクト指向プログラミング・システムにおけるウィンドウ環境の管理方法及び装置
Koivunen et al. HutWindows: an improved architecture for a user interface management system
Grolaux et al. Qtk: An integrated model-based approach to designing executable user interfaces
WO1996015493A1 (en) Object-oriented operating system
Paynter et al. Domain-independent programming by demonstration in existing applications
WO1996015492A1 (en) Object-oriented operating system
Guarna et al. A portable user interface for a scientific programming environment
Shigesada et al. Design of VACL: a visual script language system which controls and extends applications on a graphical user interface environment
Beaudouin-Lafon et al. Graphics in the Avis UIMS
Frankowski et al. The engineering information system user interface management system (EIS-UIMS)
WO1996015491A1 (en) Object-oriented operating system
Ooi et al. DUET—A database user interface design environment