JPH08512153A - ダイナミック・ブラウザ・システム - Google Patents

ダイナミック・ブラウザ・システム

Info

Publication number
JPH08512153A
JPH08512153A JP7502763A JP50276394A JPH08512153A JP H08512153 A JPH08512153 A JP H08512153A JP 7502763 A JP7502763 A JP 7502763A JP 50276394 A JP50276394 A JP 50276394A JP H08512153 A JPH08512153 A JP H08512153A
Authority
JP
Japan
Prior art keywords
pane
component
computer program
components
program
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
JP7502763A
Other languages
English (en)
Inventor
マキナーニー,ピーター,ジョーゼフ
ダンス,ジョン,アール.
Original Assignee
タリジェント インコーポレイテッド
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 タリジェント インコーポレイテッド filed Critical タリジェント インコーポレイテッド
Publication of JPH08512153A publication Critical patent/JPH08512153A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors

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)
  • Digital Computer Display Output (AREA)

Abstract

(57)【要約】 人間指向オブジェクト・プログラミング・システムが、オペレーティング・システム及びグラフィック・ユーザ・インタフェース(GUI)を有する大きなアプリケーションのような複合コンピュータ・プログラムの開発を容易にするコンピュータ・プログラムのインクリメンタル生成を支援するために会話型で、かつダイナミック巡航処理を提供する。プログラムは構成要素と呼ばれるユニットの集合としてモデル化される。構成要素は、クラスまたは関数のような単一のコンパイル可能な言語要素を表す。3つの主要な機能性はデータベース、コンパイラおよび生成機構である。このデータベースは構成要素および特性を記憶する。特性のソース・コードをコンパイルすることに加えて、コンパイラは構成要素に関連している従属性を計算する責任を負う。生成機構は、生成処理中構成要素のコンパイルを正確に、かつ効率的に一定の順序に配列するためにコンパイラ生成従属性に加えて構成要素の特性を使用する。

Description

【発明の詳細な説明】 ダイナミック・ブラウザ・システム 説明 発明の分野 本発明は、一般に、コンピュータ支援ソフトウェア・エンジニアリング(CASE) 、特にコンピュータ・プログラムを生成するための対話型でかつダイナミック環 境を提供する人間指向オブジェクト・プログラミング・システム(HOOPS)に関す る。HOOPSは、プログラマが最適化インクリメンタル・コンパイラでコンピュー タ・プログラムにおける細粒度ソース・コード編集を実行することを可能にする 。本発明は、プログラムで参照されるどこからでも、プログラムのいかなる部分 に関するどんな記憶された情報へのアクセスをプログラマに提供するナビゲーシ ョン・システムである。この情報は、プログラムによって巡航する(navigate)直 観的システムをプログラマに提供する、唯一のグラフィック・ユーザ・インタフ ェース(GUI)によって提供される。本発明は、よく用いられているオブジェクト 指向プログラミング(OOP)言語、C++を使用するが、この原理は、オブジェクト指 向および手続の両方の他のコンピュータ・プログラミング言語に適用可能であり 、従来の言語およびOOPの語の両方を使用するプログラムを生成するために使用 されることができるこの好ましい実施例によって開示されている。 従来技術の説明 オブジェクト指向プログラミング(OOP)は、ユーザ・フレンドリなインテリジ ェント・コンピュータ・ソフトウェアを生成するための好ましい環境である。OO Pの主な要素は、データ遮蔽性(data encapsulation)、継承(inheritance)お よび多形態状態(polymorphism)である。これらの要素は、アイコン、マウス・カ ーソルおよびメニューを有するウインドウ環境によって一般に特徴づけられるグ ラフィック・ユーザ・インタフェース(GUI)を生成するために使用されることが できる。これらの3つの主な要素はOOP言語に共通であるが、大抵のOOP言語は3 つの重要な要素を違ったふうに実装している。 OOP言語の例は、Smalltalk、Object PascalおよびC++である。Smalltalk実際 に言語以上のものである。すなわち、それはプログラミング環境としてより正確 に特徴づけられる。Smalltalkは、1970年初期にゼロックス社のパロアルト研究 センタ(PARC)の学習研究グループで開発された。Smalltalkでは、メッセージは オブジェクトそのものを評価するためにオブジェクトに送られる。メッセージは 、従来のプログラミング言語の関数呼出しのタスクと同様なタスクを実行する。 プログラマはデータ・タイプに関心がある必要がない。どちらかといえば、プロ グラマは、メッセージの正しい順序を生成することおよび正しいメッセージを使 用することに関心があるだけを必要とする。Object Pascalは、アップル社のマ ッキントッシュ(登録商標)コンピュータのために使用される言語である。アッ プル社はパスカルの設計者、ニクラウス・ウィルス(Niklaus Wirth)と共同でオ ブジェクト・パスカルを開発した。C++は、Cの拡張として1983年AT&Tのベル研 究所でビョーン・ストラウストラップ(Bjarne Stroustrup)によって開発された 。主なC++のコンセプトはユーザ定義タイプであるクラスである。クラスはオブ ジェクト指向プログラミング機能を与える。C++モジュールは、Cモジュールと 互換性があり、現在のCライブラリを自由にリンクすることができ、C++プログ ラムとともに使用されることができる。最も広く使用されるオブジェクトに基づ くプログラミング言語およびオブジェクト指向プログラミング言語は、ノルウェ ーのO−J・ダール(O−J.Dahl)、B・ミーラウ(B.Myhrhaug)およびK・ニガー ド(K.Nygard)によって1960年に開発されたSimulaにまでその継承を追跡すること ができる。OOPの主題に関する他の情報は、1991年、カリフォルニア州レッドウ ッド市のベンジャミン/カミングス出版社発行のGrady Booch著“ObjectOriente d Design with Application”を参照することによって得られる。 コンピュータ・プログラムを実行することに関する全処理は、オブジェクト・ コードと称される機械で実施可能な形式に、プログラマによって記述されたソー ス・コードの翻訳およびオブジェクト・コードの実行を含んでいる。翻訳処理は 、インタプリタまたはコンパイラによって実行される。インタプリタの場合、プ ログラムが実行されるときに翻訳が行われるのに対して、コンパイラの場合、プ ログラムを実行する前に翻訳が行われ、オブジェクト・コードとして記憶される 。すなわち、通常のコンパイルおよび実行システムでは、変換および実行の2つ のフェーズは独立していて、コンパイルが一度だけ行われる。Smalltalkインタ プリタのようなインタプリティブ・システムでは、2つのフェーズが順次実行さ れる。そのプログラミング環境の特質により、オブジェクトがインプリメントさ れるまで特定のレジスタまたはアドレス空間の指定ができないので、Smalltalk ためのインタプリタが必要とされる。 コンパイラは、3つの部分、すなわち、字句解析部、構文解析部およびコード 生成部から構成される。字句解析部への入力は高レベル言語プログラムを表す一 連の文字である。この字句解析部は、シーケンスを構文解析部への入力である一 連のトークンに分割する。この構文解析部はトークンを命令に分割し、文法規則 のデータベースを使用して各命令が文法的に正しいか否かを決定する。正しくな いならば、エラーメッセージが生成される。正しいならば、命令は、低レベル言 語を生成するためにコード生成部に転送される一連の基本命令に分解される。コ ード生成部そのものは、一般に、3つの部分、すなわち、中間コード生成、コー ド最適化およびコード生成に分割される。基本的に、コード生成部は、構文解析 部からの出力を受取り、マシン言語コードを生成する。 ソフトウェアの開発を支援するために、インクリメンタル・コンパイラが開発 され、このコンパイラは、バッチ処理動作では、他のステートメントのために後 で生成されるコードに関係なく、受取られたときの一つのステートメントまたは ステートメント・グループのためにコードを生成する。インクリメンタル・コン パイルの利点は、コードが記述されたプログラムの一部のためにコードがコンパ イルおよびテストされることができることである。全プログラムが記述されるま でコンパイルを後回しにする場合は、デバッグ処理を必要とする。しかしながら 、伝統的なインクリメンタル・コンパイラは、毎回全モジュールを再処理しな ければならない。 最適化コンパイラは、多くの場合、非最適化コンパイラでよりソース・レベル でデバッグをすることを困難にする非常に最適化されたオブジェクト・コードを 生成する。この問題は、ルーチンは適正な応答をするようにコンパイルされるけ れども、それがその応答を計算する正確な方法がソース・コードで記述された方 法と著しく異なっているという事実にある。最適化コンパイラが行うことができ るいくらかのことは、最終結果に影響を及ぼさないことが知られているコードま たは変数を除去すること、不変コードをループの中から外に移動させること、共 通コードを結合すること、変数がもはや必要とされないとき変数に割当たられた レジスタを再使用すること等を含んでいる。したがって、ソースからオブジェク ト・コードへのおよびオブジェクト・コードからソースへのマッピングは、これ らの所定の最適化においては、難しいことである。変数値を検査することは、変 数値が必ずしもルーチン内のいかなるロケーションでも使用可能ではないので、 難しいことがある。最適化されたコードの変数値を修正することは、不可能では ないが、特に困難である。特にvolalile(揮発性)であるとして宣言されなけれ ば、コンパイラは変数に割当てられた値を“覚えておき”、変数を再読出ししな いで“知っている”値を後のコードで使用する。したがって、その値の変化は、 誤りのあるプログラム結果を生じる。 コンピュータ・プログラムを生成し、テストおよび開発する技術には多くの進 歩があったが、しばしば洞察力のある直観を必要とする公知のソフトウェア・ツ ールは、なおプログラマに相当な負担を負わせる。さらに、伝統的なバッチ指向 プログラミング・システムは、プログラミングの創造的な活動に非常に妨げにな る非常に長い編集ーコンパイルーテストのサイクルを提供する。 ゼロックス社のPARC学習研究グループおよびアップル社のマッキントッシュ( 登録商標)によって開発されたアプリケーション・プログラムのための直観的グ ラフィック・ユーザ・インタフェース(GUI)の開発で、より最近ではマイクロソ フト社のウインドーズ(Windows)およびIBM社のOS/2の導入でかなりの進歩がなさ れた。しかしながら、プログラム設計者は、特にプログラム開発の基本的作業が オペレーティング・システムのような複雑なプログラムに適用する場合、プ ログラム開発の基本的作業で支援するために同様な直観的GUIを提供されなかっ た。 発明の開示 したがって、本発明の目的は、より良いプログラマの焦点および集中を助長し 、この故に、より大きな生産性を促進し、コンピュータ・プログラムの生成のた めの人間指向の対話型でかつダイナミック処理を提供することにある。 本発明の他の目的は、記憶された情報がプログラムで参照されるどこからでも 、プログラムのいかなる部分に関するどんな記憶された情報へのアクセスをフロ グラマに提供することにある。 本発明のさらに他の目的は、コンピュータ・プログラム生成のための対話型で かつダイナミック処理で支援する直観的グラフィック・ユーザ・インタフェース (GUI)をプログラマに提供することにある。 本発明によれば、コンピュータ・プログラム内に巡航するシステムが備えられ ている。これは、構成要素のコレクションとしてコンピュータ・プログラムを最 初にモデル化し、次にメモリにこの構成要素を記憶することによって達成される 。巡航(navigation)機能は、コンピュータ・プログラムに基づいて記憶された構 成要素をアクセスすることによって実行される。このシステムは、ディスプレイ ・スクリーン上の第1のペイン(Pane)に、コンピュータ・プログラムに関連があ る情報を表示することによって、プログラムの一部がユーザ選択に応動する。第 2のペインが形成され、デフォルト・リンクが第1のペインと第2のペインとの 間に生成される。“ワイヤリング(Wiring)”線図として表示され得るこのリンク が、プログラムにおけるさまざまなモジュールの関係を理解する際に、ユーザを 支援する直観的ブラウジング・システムを提供する。 本発明の好ましい実施例は、C++で記述され、C++、Cおよびアセンブラでプロ グラムを生成するために使用される。これらは現在使われている最も人気のある 言語である。本発明を使用して生成されるプログラムは、一般にこれらの言語の 全て3つを使用する。したがって、本発明そのものはオブジェクト指向プログ ラミング言語で記述されているオブジェクト指向プログラムであるが、本発明は オブジェクト指向プログラミング言語でプログラムを生成することに限定されず 、手続言語でプログラムを生成する際に同様に有用である。さらに、本発明は、 C++言語に限定されず、他のプログラミング言語で実施されることができ、かつ 本発明はこれらの3つの言語へのその応用に限定されない。すなわち、本発明の 教示するところはより一般的なアプリケーションの人間指向オブジェクト・プロ グラミング・システムで使用することができる。 図面の簡単な説明 上述の事項および他の目的、態様および利点は、図面に関して本発明の好まし い実施例の下記の詳細な説明からよりよく理解されるだろう。 第1図は、本発明が実施される高分解能グラフィック・ディスプレイ装置およ びマウスのようなカーソル指示装置をサポートすることができる汎用コンピュー タ・システムを示す図である。 第2図は、コンピュータシステムの主要な要素をより詳細に示す第1図に示さ れた汎用コンピュータシステムのブロック図である。 第3図は、好ましい実施例のデータ構造である。 第4図〜第24図は、好ましい実施例による典型的なウィンドウを示すコンピュ ータ・スクリーンの視覚的表現である。 本発明の好ましい実施例の詳細な説明 ここで、図面を参照するに、特に第1図を参照とすると、汎用コンピュータ10 が示されている。コンピュータ10は、システム・ユニット12、陰極線管(CRT)ま たは液晶ディスプレイ(LCD)のような高解像度ディスプレイ装置14を有する。デ ィスプレイの種類は、それがグラフィック・ユーザ・インタフェース(GUI)のウ ィンドウ・システムのために必要とされる高解像度が可能なディスプレイである べきであることを除いて、重要ではない。コンピュータへのユーザ入力は、 キーボード16およびマウス18のようなカーソル指示装置による。マウス18はキー ボード16に接続される。このキーボード16は、今度はシステム・ユニット12に接 続される。その代わりに、マウス18は、システム・ユニット12の専用または直列 ポートに接続されてもよい。第1図に示されたタイプの汎用コンピュータの例は 、アップル社のマッキントッシュ(アップルコンピュータの登録商標)およびIB M社のPS/Vである。他の例は、IBM社のRISCシステム/6000およびサン・マイクロ ・システムズ社のコンピュータのような種々のワークステーションを含んでいる 。 第2図は、第1図に示された汎用コンピュータの主要な構成要素を詳細に示し ている。システム・ユニット12は、中央処理装置(CPU)21、ランダム・アクセス ・メモリ(RAM)22およびバス24に接続される読出し専用メモリ(ROM)23を含んでい る。CPU21は、アップル社のマッキントッシュ(登録商標)コンピュータに一般 に使用されているモトローラ社の68030および68040マイクロプロセッサまたはIB M社のPS/Vコンピュータに一般に使用されているインテル社の80386および80486 マイクロプロセッサのような、種々の商用マイクロプロセッサのいずれでもよい 。ワークステーションに一般に使用されるRISC(reduced instructionset comput ers)コンピュータのような他のマイクロプロセッサもまた、使用することができ る。ROM24は、CPU21のために基本入出力システム(BIOS)を含む基本マイクロコー ドを記憶する。コンピュータ・システム10のためのオペレーティング・システム (OS)はまた、ROM24に記憶されてもよいし、またはその代わりに、OSは初期プロ グラムロード(IPL)の一部としてRAM22に記憶されている。RAM22はまた、アプリ ケーション・プログラムの一部およびプログラムの実行で生成される一時的デー タを記憶するために使用される。バス24は、アップル社のNuBus(登録商標)、I BM社のマイクロチャネル(登録商標)またはISA(industrystandard adapter)あ るいはEISA(extended industry standard adapter)バスのような工業規格の一つ でもよい。 バス24には、ユーザ・インタフェース・アダプタ25およびI/Oアダプタ26を含 む種々の入出力(I/O)アダプタもまた、接続されている。キーボード16はユーザ ・インタフェース・アダプタ25に接続され、I/Oアダプタ26は、フロッピー ディスク駆動装置27およびハードディスク駆動装置28に接続する。フロッピーデ ィスク駆動装置27は、取外し可能な媒体へのデータおよびプログラムの読出しお よび書込みを可能にするのに対し、ハードディスク駆動装置28は、RAM22にペー ジインおよびページアウトされるデータおよびプログラムを一般に記憶する。デ ィスプレイ装置14は、ディスプレイ・アダプタ29を介してバス24に接続されてい る。通信アダプタ30はインタフェースをネットワークに提供する。集積回路(IC) チップの形の他のサポート回路(図示せず)は、バス24および/またはCPU21に 接続されている。これらは、例えば、バス24上のトラフィックを制御するバス・ マスタ・チップを含んでいる。かなりのコンピュータでは、バス24は2つのバス 、すなわちデータバスおよびグラフィック・ユーザ・インタフェースで望ましい 高速ディスプレイ動作を可能にするディスプレイ・バスであってもよい。 発明の概観 本発明による人間指向オブジェクト・プログラミング・システム(HOOPS)は、 新しいプログラムが生成されるべきか、または既存のプログラムが編集されるべ きかによって、プロジェクト名または既存のプロジェクト名のいずれかを入力す ることでコンピュータで開始される。HOOPSがオープンする最初のウィンドウは 、「プロジェクト」構成要素(Project component)の「メンバー」特性(Member p roperty)およびその直接のメンバーを表示する。それは、最初に直接のメンバー を表示するだけであるけれども、同一のウィンドウがプロジェクト構成要素で開 始するあらゆる構成要素を表示するために使用される。 HOOPSダイナミック・プラウザ・システムは、ユーザがプログラム・プレゼン テーションを動的に生成することを可能にする。このシステムは、プレゼンテー ションの迅速で、ダイナミック変更または形成のために設計され、そしてこれら のプレゼンテーションは後で再使用するためにセーブされる。このように、ユー ザはシステムを仕立てることができる。 このシステムは4つの主要な構成要素、すなわち、ビュアー(Viewer)、ペイン (Pane)、ウィンドウ(Window)およびワイヤ(Wire)に基づいている。このシステム は、さまざまなプログラムのアスペクトを表示するために広げることができるビ ュアーのセットを提供する。ビュアーを使用するために、それはウィンドウに表 示されるペインに表示されねばならない。ウィンドウは1つ以上のペイン(およ び、その結果の1つ以上のビュアー)を表示することができ、そしてペインは、 ワイヤを介して接続され、巡航操作を提供する。そして、さまざまな種類の組合 わせが形成される。ビュアーのセットが広げることができるため、システムは形 成されるいろいろのプレゼンテーションに固有の制限を受けていない。 このシステムは、たくさんの相互に関係しているデータのセット、特に、コン ピュータ・プログラムの表現のような現実に階層的またはネットワークされた相 互に関係するデータのセットを有するいかなる領域にも適用可能である。他の領 域の例は、学生、教師およびクラスとこれらの間でいろいろな関係があるスクー ル・データベースである。 定義 プログラム 本発明の説明で使用されるように、HOOPSプログラムは、プロジェクト(Projec t)と呼ばれる一つの非生成可能な構成要素(non-buidable component)および“生 成可能な構成要素(buildable component)”の集合(Collection)からなる。それ はまた、非生成可能な構成要素(non-buidable component)を記憶することが可能 であるが、この説明で、限定されていない構成要素について言及している時はい つでも、意味しているものは“生成可能な構成要素(buildablecomponent)”であ る。非生成可能な構成要素(non-buidable component)はビルド動作中コンパイル されない。 構成要素(Component) 構成要素(Component)は独特な見出しを有し、名前を付けられる。異なる構成 要素は、IDと呼ばれるいくらかの様式の独特な識別子によって識別される。いか なる構成要素にも属しないNullIDと呼ばれる、他とは異なるIDがある。構成要素 が形成され、かつ構成要素の存在中決して変更されない場合、このIDが割当てら れる。構成要素が削除されるならば、そのIDは決して再使用されない。実際、ID は通常数字である。 構成要素(Component)はまた、いかなる余白も含まないテキスト・ストリング (文字列)からなる名前(name)を有する。異なる構成要素が異なる名前を有する 必要はない。その名前がいくつかの所与のテキスト・ストリングにマッチする全 ての構成要素のリスト(多分、空)を得ることは可能である。構成要素の名前は 、構成要素の存在中何回でも変更してよい。 構成要素は意味言語要素(semantic language elements)を表すために使用され る。これが行われる方法は、モデル化されている特定のコンピュータ言語に依存 する。例えば、C++では、構成要素によって表される言語要素の部分リストは、 グローバル・データ(global data)、グローバル関数(global function)、クラス (class)、データメンバー(data member)、メンバー関数(member function)、型 定義(typedef)、列挙(enum)、列挙子(enumerator)、マクロ(macro)、ユニオン(u nion)および構造体(struct)を含んでいる。一般に、各意味構成要素は関連する 異なる種類を有する。 特性(Property) 構成要素(Component)は名前を付けられた特性の集合からなる。特性は、構成 要素に関連があるいくらかのデータに対応する。実際には、特性名は、名前を識 別する番号(このような番号はときにはトークンと呼ばれる)によって通常内部 的に表される。いかなる特性も属しないNullProperty(ヌル特性)と呼ばれる他 とは異なる特性名がある。 所与特性に関連があるデータは、異なる構成要素(Component)に対して異なる 。一つの構成要素に対する所与の特性のためのデータを変更することは、いかな る他の構成要素の同一特性のためのデータを変更することを含まない。しかしな がら、同一または他の構成要素の他の特性の変更を引き起こすことは、構成要素 の一つの特性の変更のために可能である。 全ての構成要素(Component)は、特性の「ネーム(Name)」および「コンテナ(Co ntainer)」を有しなければならない。ネーム特性は構成要素の名前を記憶する。 コンテナ特性は特性名がNullProperty(ヌル特性)である単一のリファレンスを 含んでいる。いかなる構成要素からも開始することおよびそれとその Container ID(コンテナID)によって参照される構成要素とを連続して置換える ことは、常に最後にはプロジェクト構成要素(Project component)で生じる。プ ロジェクトのコンテナIDはNullID(ヌルID)である。したがって、全ての構成要 素はプロジェクトにあるものとして記述されている。 リファレンス(Reference) IDおよび特性名からなる対はリファレンス(Reference)と呼ばれる。リファレ ンスは特定の特性データ・ピースを独特に識別する。しばしば、リファレンスは 、それがあたかも構成要素および/またはそれが参照する特性であるかのように 漠然と使用される。実際には、リファレンスは、一般にプログラム生成で直接使 用されない他の情報を含み、データのどのバージョンおよびデータのどのサブセ クションが参照されているかを識別する。いかなる構成要素または特性も指定し ない顕著なリファレンス、すなわちヌル・リファレンス(null reference)がある 。 種類(Kinds) 各構成要素は種類(kind)を有する。種類は、例えば同一特性または同一言語特 有の挙動を共有するグループに構成要素を分類するために使用されるテキスト・ ストリングである。大部分の種類が特定のコンピュータ言語に特有であり、意味 的に異なった言語要素を指定するように使用される。 しかしながら、システムによって規定されたかなりの種類がある。これらは、 種類「プロジェクト(Project)」、「ライブラリ(Library)」および「コンテナ(C ontainer)」である。これらの種類は非生成可能な構成要素に適用されるのみで ある。「プロジェクト」種類は「プロジェクト」構成要素の種類である。「ライ ブラリ」種類は、共有ライブラリまたはアプリケーションのようなオブジェクト コードの単一の外部ブロックの中に結合されるべきである構成要素のコレクショ ンに適用される。「コンテナ」種類は、編成上の目的のために他の構成要素をグ ループ化するために適用される。実際には、種類は通常内部的には数値で表され る。 ビュアー(Viewer) ビュアーは、特定の構成要素の特性を表示することを意図された図形表示であ る。しかしながら、その特性を表示するための処理では、他の特性からのデータ を含む補助的情報をビュアーが表示することが必要であり、かつ望ましい。ビュ アーは、それの両方がリファレンスである入力と出力を有する。入力は少なくと も構成要素および特性を指定する。それはさらに、特性の情報の部分領域を指定 する。出力は構成要素を最小限度指定する。それもまた特性の情報の特性および 部分領域を指定する。出力は、一般にシステム内のユーザ動作および状態変更に 応じて時間を切り替える。 ペイン(Pane) ビュアーはペイン内に表示される。ペインはそれの両方がリファレンスである 入力と出力を有する。入力は最小限度に構成要素を指定する。それもまた構成要 素の特性および特性の情報の部分領域を指定する。出力は、最小限度に構成要素 を指定し、特性の情報の特性および部分領域を任意に指定する。出力は、一般に システム内のユーザ動作および状態変更に応じて時間を切り替える。 ペインは、ペイン入力からそれを一般に導出することによってそのビュアー入 力を決定する。この導出の性質は、ペイン毎に異なっており、システム状態に基 づいて動的に、または、異なるペインのインプリメンテーションによって静的に 行われる。好ましい実施例は、それにおいてビュアーの入力がペインの入力と同 一である最も簡単な導出だけを提供する。同様に、ペインの出力はビュアーの出 力から導出される。この導出の性質は、システム状態に基づいて動的に、または 、ペインのインプリメンテーションを変更することによって静的に、ペイン毎に 変更する。好ましい実施例は、それにおいてペイン出力がそのビュアーの出力と 同一である最も簡単な導出だけを提供する。 ブラウザ(Brower) ブラウザは1つ以上のペインを表示するウィンドウである。ウィンドウの中の レイアウトおよびペイン数は、ユーザによって動的に制御され得る。ブラウザは リファレンスである入力を有する。ブラウザの入力は、一般にブラウザの上部左 隅を占有するペインであるブラウザの最初のペインへの入力として役立つ。 ワイヤ(Wire) ワイヤは2つのペイン間の接続である。ワイヤの目的は、一方のペイン出力が 他方のペイン入力を制御することを可能にすることにある。ペインおよびビュア ーと同様に、ワイヤはリファレンスである入力と出力を有する。2つの間の接続 を形成するために、一方のペインの出力はワイヤの入力に接続される。同一のワ イヤの出力は第2のペインの入力に接続され、それによって接続を確立する。 ワイヤはその入力からその出力を導出する。この導出の性質は、システム状態 に基づいて動的に、または、異なるペインのインプリメンテーションによって静 的にワイヤ毎に変更することがある。 ワイヤは、ワイヤの出力として送る前にその入力を変換することがある。異な るワイヤのインプリメンテーションが接続を確立するために使用される。各イン プリメンテーションは、異なる変換の種類を組み入れることがある。好ましい実 施例は、最も簡単な導出だけを提供しそれはワイヤ入力がワイヤを通ってその出 力に変更されないまま送るものである。ペインの出力は、いかなる数のワイヤに も接続され得る。これは、単一のペインの出力が、いかなる数の他のペインの入 力も“制御する”機構を提供する。ユーザは、ペイン間の接続を動的に制御する ことができる。 ビュアー・リンケージ(Viewer Linkage)の特性(Property) 同一の特性の異なる表示を容易にするために、かつ異なる特性のために同一の ビュアー・インプリメンテーションの使用を許すために、システムは特性をビュ アーに関連づけるための機構を提供する。 好ましい実施例では、このリンケージは、ビュアー・リストのセットによって 達成され、その各々が、いかなる数の特性とも関連があり得る。ビュアー・リス トは、各仕様がビュアー名およびインプリメンテーション・クラスを定義する指 定されたビュアー仕様のリストである。第3図は、好ましい実施例におけるビュ アー・リストの簡略版を示している。最初のリストはMemberViewersと名前をつ けられる。それは2つのビュアーのための仕様を含む。最初のものはOutlineと 呼ばれ、ViewersのライブラリにおけるTNewOutl ineViewerクラスによって実行 される。リストにおける第2の仕様はTreeと呼ばれ、ビュアーズ・ライブラリに おけるTNewTreeViewerクラスによって実行される。 各特性は、単一のビュアー・リストに関連している。例えば、下記の表は、プ ロジェクト(Project)構成要素の特性および各特性に関連があるビュアー・リス トを示す。 特性(Property) Viewer List メンバー(Members) MembersViewers 記述(Description) DescriptionViewers マクロ変更(Macro Changes) GroupViewers インタフェース変更 GroupViewers (Interface Changes) インプリメンテーション変更 GroupViewers (ImplementationChanges) 生成エラー(Build Errors) ErrorListViewers 生成された構成要素 GroupViewers (ComponentsBui1t) コンパイラ(Compilers) クライアント(Clients) DerivedReferenceViewers リフアレンス(References) DerivedReferenceViewers この例では、メンバー(Members)特性は、MembersViewersのリストで指定され たビュアーによって表示することができる。第3図を参照すると、MembersViewe rsのリストは、2つのビュアー、OutlineのビュアーおよびTreeのビュアーを含 む。したがって、プロジェクト(Project)構成要素のメンバー(Members)特性は、 TreeのビュアーまたはOutlineのビュアーのいずれかによって表示することがで きる。 表はまた、いくらかの特性が同一のビュアー・リストと関連していることを示 し、同一のビュアーが異なる特性のために使用できることを示している。コンパ イラ(Compilers)特性は、コンパイラ(Compilers)特性が全く表示できないことを 指示するコンパイラ特性に関連しているいかなるビュアー・リストも有しな い。表における第1の特性は、ペインには、どの特性およびビュアーを表示する かを決定するとき使用される構成要素のデフォルト特性とみなされる。 手続き 下記はブラウザ・システムのために必須な手続きの記述である。 手続きA:ペインのビュアーのセット 条件:一つのビュアー名 1.表示特性に関連があるビュアー・リストで、ビュアー名をサーチする。 2.ビュアー名が見つかった場合、ステップ5に進む。 3.ビュアー名は見つからなかった場合、ペインを空にする。 4.ステップ8に進む。 5.ビュアー・リストにおけるビュアー名に関連があるクラスのビュアーを例 示する。 6.ビュアーの入力をペイン入力にセットする。 7.ビュアーをペインにインストールし、それを表示する。 8.手続きの終了 手続きB:ペインの特性のセット 条件:一つの特性名 1.ペインの特性名を条件の特性名にセットする。 2.条件の特性名を示すためにペイン・タイトル・バーを更新する。 3.ペイン入力構成要素から条件の名前の特性を得る。 4.特性ビュアー・リストを得る。 5.このリストにただ一つのビュアーがある場合、ステップ7に進む。 6.ビュアー・リストにおける各エントリのために、メニュー項目を形成する ことによってビュアー(Viewer)・メニューを構成する。 7.ビュアー・リストから最初のビュアー名を使用して、ペイン・ビュアーを セットするために手続きAを呼出す。 8.手続きの終了 手続きC:ペインの入力のセット 条件:一つのリフアレンス 1.リファレンスがヌル・リファレンスでない場合、ステップ3に進む。 2.リファレンスはヌルである場合、ペインを空状態にセットする。ステップ 12に進む。 3.ペイン・タイトル・バーにおける構成要素をリファレンスで指定された構 成要素にセットする。 4.特性(Property)ホップアップ・メニューをリファレンスで指定された構成 要素の特性の名前で埋める。 5.ペインがロックされた特性である場合、ステップ9に進む。 6.リファレンスが特性を指定しない場合、ステップ8にスキップする。 7.リファレンスが特性を指定する場合、ペインの特性をリファレンスの特性 をセットするために手続きBを呼出す。ステップ12に進む。 8.リファレンスが特性を指定しない場合、リファレンスによって指定された 構成要素を得て、ペインの特性を構成要素のデフォルトにセットするために手続 きBを呼出す。ステップ12に進む。 9.ぺインはロックされた特性である場合、リファレンスによって指定された 構成要素を得る。構成要素がペインの特性を有しない場合、ステップ11に進む。 10.構成要素はロックされた特性を有する場合、ペインの特性をロックされた 特性にセットするために手続きBを呼出す。ステップ12に進む。 11.構成要素はロックされた特性を有しない場合、いかなるビュアーもペイン にインストールされない。 12.手続きの終了 手続きD:ビュアーの出力のセット 条件:ビュアーは、一般にユーザによって開始されるいくつかの動作を決定し 、ビュアーの出力を変更することを要求する。 1.ビュアーの新しい出力を表すリファレンスを構成する。 2.ペイン出力をセットするために、手続きEを呼出す。 3.手続きの終了 手続きE:ペインの出力のセット 条件:ペインのビュアーを表す一つのリファレンス。 1.ビュアーの出力をペインの出力に変換する。(最も簡単な場合、両方の出 力は同一である。) 2.ペインの出力に接続された各ワイヤに対して、ワイヤの入力をペインの出 力にセットするために手続きFを呼出す。 3.手続きの終了 手続きF:ワイヤの入力のセット 条件:一つのリファレンス 1.条件のリファレンスをワイヤの出力に変換する。(最も簡単な場合、出力 は条件のリファレンスと同一である。) 2.ワイヤの出力に接続されたペインの出力をセットするために、手続きCを 呼出す。 3.手続きの終了 手続きG:2つのペインの接続 条件:入力ペインおよび出力ペイン 1.新しいワイヤを形成する。 2.ワイヤをワイヤの出力ペインのセットに加える。 3.ワイヤを入力ペインに接続する。 4.手続きFを使用して、ワイヤの入力をセットする。 5.手続きの終了 手続きH:ペインの分割 条件:新しいペインの寸法 1.新しいペイン・オブジェクトを形成する。 2.新しいペインの寸法を条件の寸法にセットする。 3.新しいペインの場所を空けるために、現在のペインの寸法をセットする。 4.手続きGを使用して、現在のペインを新しいペインにセットする。 5.手続きの終了 手続きI:ブラウザの形成 条件:ブラウザのための入力として使用するリファレンス 1.ブラウザ・オブジェクトを形成する。 2.ブラウザの入力を条件のリファレンスにセットする。 3.その寸法がブラウザを埋める新しいペイン・オブジェクトを形成する。 4.手続きCを使用して、ペインの入力をブラウザの入力にセットする。 5.手続きの終了 ヒューマン・インタフェース制御 第4図は本発明によるブラウザを示している。各ブラウザ、各ペインおよび各 ビュアーのために特定の制御がある。 各ブラウザは下記の制御を有する。クローズ・アイコン1210は、いつでもウィ ンドウを閉じるために使用することができる。ブラウザの中においてのプロジェ クト(Project)に対してなされたいかなる変更も自動的にセーブされる。ブラウ ザ・ズーム・ボックス1242は、ユーザがブラウザをスクリーンの画面いっぱいに ズームすることを可能にする。 各ペインは下記の制御を有する。ペイン・タイトル・バー1240は、ペインに表 示された特性の名前1230および表示される構成要素の名前1240を示している。ペ イン分割1250は、ユーザが1つのペインを2つのペインに分割し、ペインの大き さを制御することを可能にする。ペイン・ズーム・ボックス1243は、ユーザがウ ィンドウを完全に埋めるために、ペインを動的にズームすることおよびズームさ れたペインをその元の大きさに戻すことを可能にする。特性ポップアップ・メニ ュー1220は、ユーザが入力構成要素1240のいかなる特性も選択することを可能に し、それによってペインで表示された特性を変更する。ペイン特性ロック1211は 、ユーザがペインへの入力に関係なくペインを特定の特性にロックすることを可 能にする。水平および垂直スクロール制御1252は、ユーザがペイン内でビュアー の内容をスクロールすることを可能にする。ビュアー・メニュー・バー1251はペ インで表示されたビュアーに適用可能であるメニューを含んでいる。特に、ペイ ンで表示された特性が2つのビュアー以上によって表示できるならば、このビュ アー・メニュー・バーは、特性を表示するために使用されたビュアーの中から一 つ選択するために、ユーザによって使用することができるビュアー(Viewer)・メ ニュー1253を含んでいる。 ペインの間で互いに接続を確立するための制御もまた存在する。新しいペイン が形成されるとき、デフォルト接続が新しいペインに分割されたペインから形成 される。接続を変更するために、好ましい実施例は、第5図で示されるように図 形ワイヤをブラウザ上に重ね合わせ、そしてユーザは、ペイン接続を変更するた めに新しいワイヤを描くことがあり得る。第5図では、ブラウザの入力は左のペ インの入力に接続され、左のペインの出力は、右側の両方のペインの入力に接続 される。右側のペインの出力はいかなるペインにも接続されない。接続を変更す るためには、例えば、上部の右側のペインの出力を下部の右側のペインの入力に 接続するためには、ユーザは、単に上部の右側のペインから下部の右側のペイン に新しいワイヤを描くだけでよい。 ブラウザ・システム・シナリオ 下記のシナリオは、いかにダイナミック・ブラウザ・システムが実際には、ハ ノイの塔(Towers of Hanoi)と呼ばれる周知のコンピュータ・サイエンス問題に 基づいてプログラムを使用して、使用され得ることを示している。 第6図は、ハノイの塔のプログラミング・プロジェクトを開いた後に表示され るような単一のペインを含んでいるブラウザを示す。ビュアーは、各構成要素が アイコンおよびその名前によって表現されるプロジェクトにおける構成要素の階 層を示す。この階層のある部分は、現在興味あるこれらの構成要素だけを示すた めに壊される。ブラウザは、入力としてのプロジェクト(Project)構成要素に関 して手続きIを使用して形成する。手続きIは、ペインの入力をプロジェクト(P roject)構成要素にセットするために手続きCを呼出す。手続きCもまたペイン の特性をセットするために手続きBを呼出す。プロジェクト(Projectのリファレ ンスが特性を指定しないので、デフォルト特性メンバー(Members)(ツリー・デー タ構造)が使用される。メンバー(Members)特性のビュアー・リストは、2つの ビュアー、TreeおよびOutlineを含んでいる。したがって、ビュアーズ(Viewers) ・メニューは各ビュアーのためのエントリによって構成され、そしてリストに おける最初のビュアー(outline)が表示される。 第7図では、メンバー(Members)特性がTree(ツリー)およびOutline(アウト ライン)と呼ばれる2つのビュアーによって表示され得ることを示すビュアーズ (Viewers) ・メニューが開かれる。ツリー(Tree)・メニュー項目を選択するこ とは、手続きAを呼出し、アウトライン・ビュアーをツリー・ビュアーと置き換 え、その結果が第8図に示される。 第9図では、特性(Properties)ホップアップ・メニューが開かれ、手続きCに よって得られるようなプロジェクト(Project)構成要素の表示可能な特性を示 す。第10図は、ポップアップ・メニューにおける記述(Description)項目を選択 後、結果を示す。これは、プロジェクト構成要素の記述(Description)特性を表 示するために手続きBを呼出す。記述特性に関してはただ一つのビュアーがある のみで、そのため、ビュアーズ(Viewers)・メニューが必要ない。 ユーザが、この特性をリセットとし再度第6図で生じるメンバー(Members)特 性に戻すと仮定する。 第11図は、ユーザが手続きHによって達成される垂直ペイン分割制御を使用し て、ペインを2つのペインに分割した後の結果を示す。右側のペインの入力は、 第12図の矢印で図形的で示されるように、左側のペインの入力に接続される。左 側のペインの出力はヌル・リファレンスであるため、新しいペインもまたヌル・ リファレンスであり、手続きCにより、空のペインを生じる。 第13図は、ユーザが左側のビュアーにおけるクラス(Classes)構成要素を表す アイコンを選択後の結果を示す。これにより左側のビュアーは新しい出力、すな わちクラス(Classes)構成要素のリファレンスを生成する。手続きDが新しい出 力を取扱うために呼出され、それは右側のペインの入力をクラス(Classesのリフ ァレンスにセットするために手続きCを呼出す。リファレンスが特性を指定しな いので、手続きBはクラス(Classes)のデフォルト特性メンバー(Members)を使用 して呼出される。メンバー(Members)特性は、2つのビュアー、すなわちアウト ライン(Outline)およびツリー(Tree)を有するので、手続きBはビュアーズ(View ers)・メニューを構成し、かつ最初のビュアー、すなわちアウトライン(Outline )・ビュアーで手続きAを呼出す。 第14図は、ユーザが左側のビュアーにおけるTPicture構成要素を表すアイコン を選択後の結果を示す。これは、左側のビュアーの出力をTPicture構成要素のリ ファレンスに変更する。手続きDが再度呼出され、それは右側のペインの入力を TPicture構成要素のリファレンスにセットするために手続きCを呼出す。また、 リファレンスが特性を指定しないので、手続きCは、インタフェースと呼ばれる TPictureのデフォルト特性を使用して手続きBを呼出す。記述特性に関してはた だ一つのビュアーがあるのみなので、いかなるビュアー・メニューも形成されな い。そして、このビュアーは手続きAを使用して表示される。 第15図は、ユーザが右側のペインのズーム制御でクリックした後の結果を示す 。それから、ペインは全ブラウザを埋める。ズーム制御に対するクリックは、デ ィスプレイを第14図で示されるディスプレイに戻す。 第16図は、ユーザが右側のペインを水平ペイン分割で分割後の結果を示す。第 17図はペイン接続を示す。ブラウザの入力が左側のペインの入力に接続される。 左側のペインの出力が上部右側のペインの入力に接続される。上部右側のペイン の出力が下部右側のペインの入力に接続される。上部右側のペインの出力がヌル ・リファレンスであるので、下部右側のペインが空白である。 第18図は、上部右側のペインにおける作図(Draw)構成要素を選択後の結果を示 す。これにより、上部右側のビュアーに生成され、新しい出力が手続きDによっ て取扱われる。これは、下部右側のペインのために新しい入力を生成し、手続き Cによって取り扱われる。入力は特性を指定しないため、作図(Draw)構成要素の デフォルト特性、すなわちインプリメンテーション(Implementation)特性が下部 右側のペインに表示される。 第19図は、上部右側のペインにおけるデバッグ(Debug)構成要素を選択した後 の結果を示し、新しい出力が手続きDによって生成され、かつ取り扱われる。 第20図は、左側のペインの出力を両方の右側のペインの入力に接続するために 接続制御の使用を示す。ここでは、両方の右側のペインが同一の入力、この場合 、TPicture構成要素のリファレンスを受取っている。 第21図は、開いた下部右側のペインの特性(Property)メニューを示す。第22図 は、ユーザがメニューから記述(Description)特性を選択後の結果を示す。右側 の両方ペインはなお、同一の入力、すなわちTPictureのリファレンスを有する。 しかしながら、異なる特性が下部右側のペインで選択されるため、各ペインは異 なるTPictureの特性を表示する。 第23図は、ユーザが左側のペインで、TDisk構成要素のアイコンを選択後の結 果を示す。これにより、左側のビュアーが新しい出力、すなわち、TDiskのリフ ァレンスを生成する。そして、TDiskのリファレンスが右側の両方のペインの入 力であるようにする手続きDが呼出される。上部右側のペインは、TDiskのイン タフェース特性を表示し、そして下部右側のペインはTDiskの記述 (Description)特性を表示する。 第24図は、ユーザが左側のペインでクラス(Classes)構成要素のアイコンを選 択後の結果を示す。これにより、左側のビュアーが新しい出力、すなわちクラス (Classes)のリファレンスを生成させる。このリファレンスは特性を指定しない ため、上部右側のペインはその入力のデフォルト特性、この場合メンバー(Membe rs)特性を使用する。下部右側ペインは、その特性にロックされているため、記 述(Description)特性を表示する。
【手続補正書】特許法第184条の8 【提出日】1995年7月6日 【補正内容】 (原文明細書第3頁) ソフトウェアの開発を支援するために、インクリメンタル・コンパイラが開発 され、このコンパイラは、バッチ処理動作では、他のステートメントのために後 で生成されるコードに関係なく、受取られたときの一つのステートメントまたは ステートメント・グループのためにコードを生成する。インクリメンタル・コン パイルの利点は、全体のプログラムを書き終えるまでデバック処理を遅らせるこ とを要求するのとちがい、コードが記述されるにつれてプログラムの一部のため にコードがコンパイルおよびテストされることができることである。しかしなが ら、伝統的なインクリメンタル・コンパイラは、毎回全モジュールを再処理しな ければならない。 最適化コンパイラは、多くの場合、非最適化コンパイラを使うよりもソース・ レベルでデバッグをすることをより困難にする非常に最適化されたオブジェクト ・コードを生成する。この問題は、ルーチンは適正な応答をするようにコンパイ ルされるけれども、それがその応答を計算する正確な方法がソース・コードで記 述された方法と著しく異なっているという事実にある。最適化コンパイラが行う ことができるいくつかのことは、最終結果に影響を及ぼさないことが知られてい るコードまたは変数を除去すること、不変コードをループの中から移動させるこ と、共通コードを結合すること、変数がもはや必要とされないとき変数に割当た られたレジスタを再使用すること等を含んでいる。したがって、ソースからオブ ジェクト・コードへのおよびオブジェクト・コードからソースへのマッピングは 、これらの所定の最適化のいくつかにおいては、難しいことである。変数値を検 査することは、変数値が必ずしもルーチン内のいかなるロケーションでも使用可 能ではないので、難しいことがある。最適化されたコードの変数値を修正するこ とは、不可能ではないが、特に困難である。特に揮発性(volatile)であるとして 宣言されなければ、コンパイラは変数に割当てられた値を“覚えておき”、変数 を再読出ししないで“知っている”値を後のコードで使用する。したがって、そ の値の変化は、誤りのあるプログラム結果を生じる。 コンピュータ・プログラムを生成し、テストおよび開発する技術には多くの進 歩があったが、しばしば洞察力のある直観を必要とする公知のソフトウェア・ツ ールは、なおプログラマに相当な負担を負わせる。さらに、伝統的なバッチ指向 プログラミング・システムは、プログラミングの創造的な活動に非常に妨げにな る非常に長い編集−コンパイル−テストのサイクルを提供する。 ゼロックス社のPARC学習研究グループ(PARC Learning Research Group)および アップル社のマッキントッシュ(登録商標)によって開発されたアプリケーショ ン・プログラムのための直観的グラフィック・ユーザ・インタフェース(GUI)の 開発で、より最近ではマイクロソフト社のウインドーズ(Windows)およびIBM社の OS/2の導入でかなりの進歩がなされた。しかしながら、プログラム設計者は、特 にプログラム開発の基本的作業がオペレーティング・システムのような複雑なプ ログラムに適用する場合、プログラム開発の基本的作業で支援するために同様な 直観的GUIを提供されなかった。ソフトウェア・メインテナンス用の最近のツー ルの例がSoftware Practice & Experience,VIFOR:A Tool for SoftwareMainte nance vol.20,no.1,pp.67-77(1990)に載っている。中規模から大規模なフォー トラン77・プログラムのメインテナンス指向のソフトウェア・ツールが記事で論 じられている。VIFORを使い、プログラムは2つの型、つまりコードとしておよ び図形として表示され編集されうる。VIFORは、また両方向への変換、すなわち コードから図形への変換および図形からスケルトン、コードへの変換を含む。そ れゆえ、VIFORは既存のコードのリエンジニアリングおよびメインテナンスに適 している。特別に設計されたブラウザはグラフィック・インタフェースを実行す る。VIFORは、簡単だが効果的なフォートラン・プログラムのデータ・モデルに 基づくデータベースを含む。このモデルは4つのエンティティ・クラスと3つの リレーションのみをもち、ツールを小さくし実行し易く使い易くする。簡単な照 会言語(query language)によりデータベースの中をブラウズすることができる。 第5図は、フォートラン・サブルーチン・ハッシュに対応するフォートラン・プ ログラムを図示し、前記サブルーチン名がまた、プログラム「メイン(main)」を 構成する他の名前のルーチンをすべて表示する階層型ディスプレイに表示される 。 請求の範囲 1.プログラム情報(1200〜1260)をディスプレイ装置(14)上に表示するためコン ピュータ・プログラムを動的にブラウズ(browse)する方法において、 (a)前記コンピュータ・プログラムを構成要素(1203)の集まりとしてモデル化 し、前記構成要素の集まりの各々が前記構成要素に関連した特性情報と前記構成 要素の集まりのほかの構成要素(1230)へのリファレンスをもち、 (b)前記構成要素、前記特性情報および前記リファレンスをメモリ(22,23,27) に記憶し、 (c)ビュー(view)された構成要素へのリファレンスを受信する入力をもつ第1 ビューイング・ぺイン(first viewing pare)を生成し、前記ビューされた構成要 素の特性情報とほかの構成要素のリファレンスを生成する出力(1220)を前記ディ スプレイ装置に表示し、 (d)第1構成要素のリファレンスを前記第1ビューイング・ペインに適用し、 前記第1構成要素の前記記憶された特性情報と記憶されたリファレンスをアクセ スし前記第1ビューイング・ペインに前記第1構成要素(1203)からの特性情報を 表示させ、 (e)前記表示された特性情報の選択に応答して前記の記憶されたリファレンス を前記第1ビューイング・ぺインの出力(1220)に適用する ステップを具備することを特徴とする方法。 2.(f)ビューされた構成要素へのリファレンスを受信する入力、および前記ビ ューされた構成要素の特性情報と構成要素のリファレンス(1230)を生成する出力 を前記ディスプレイ装置上に表示する手段をもつ第2ビューイング・ペインを生 成し、 (g)前記第1ビューイング・ペインの出力にある前記構成要素のリファレンス を前記第2ビューイング・ペインの入力に適用して、第2構成要素の前記記憶さ れた特性情報と記憶されたリファレンスをアクセスし前記第2ビューイング・ペ インに前記第2構成要素(1230〜1252)からの特性情報を表示させる ステップを具備することを特徴とする請求の範囲第1項に記載の方法。 3.前記第1ビューイング・ペインと前記第2ビューイング・ペインが動的に大 きさを変える(1242,1243,1250,1252,1260)ことができることを特徴とする請求の 範囲第2項に記載の方法。 4.前記構成要素の集まりがプログラム変数を表わす変数構成要素(variablecom ponent)を具備し、前記変数構成要素の前記特性情報が前記プログラム変数を定 義する定義情報を具備し、 前記ステップ(d)が (d1)前記第1構成要素の前記定義情報を表示する(1230) ステップを具備することを特徴とする請求の範囲第1項に記載の方法。 5.前記第1構成要素の前記特性情報が前記第1構成要素を記述する記述情報を 具備し、 前記ステップ(d)が (d2)前記第1構成要素の前記記述情報を表示する(1260) ステップを具備することを特徴とする請求の範囲第1項に記載の方法。 6.前記第1構成要素の前記特性情報が前記第1構成要素により参照される(ref erence)前記構成要素の集まりのほかの構成要素を識別する情報を具備し、前記 ステップ(d)が (d3)前記第1構成要素により参照される前記構成要素の集まりのほかの構成要 素を識別する(1202〜1260、第8図) ステップを具備することを特徴とする請求の範囲第1項に記載の方法。 7.ユーザからのディスプレイ・コマンド(display commands)に応答してプログ ラム情報(1200〜1260)をディスプレイ装置(14)上に表示するためコンピュータ ・プログラムを動的にブラウズするシステムにおいて、 (a)前記ユーザによりコントロールされ、前記コンピュータ・プログラムを構 成要素(1203)の集まりとしてモデル化し、前記構成要素の集まりの各々が前記構 成要素に関連した特性情報と前記構成要素の集まりのほかの構成要素(1230)への リファレンスをもつ手段と、 (b)前記ユーザにコントロールされ、前記構成要素、前記特性情報および前記 リファレンスをメモリ(22,23,27)に記憶する手段と、 (c)前記ディスプレイ・コマンドのひとつに応答して、ビューされた構成要素 へのリファレンスを受信する入力をもつ第1ビューイング・ペインを生成する手 段と、前記ビューされた構成要素の特性情報と構成要素のリファレンス(1220)を 生成する出力を前記ディスプレイ装置に表示する手段と、 (d)ほかの前記ディスプレイ・コマンドに応答して、第1構成要素のリファレ ンスを前記第1ビューイング・ペインへ適用し、前記第1構成要素の前記記憶さ れた特性情報と前記記憶されたリファレンスをアクセスし前記第1ビューイング ・ペインに前記第1構成要素(1203)からの特性情報を表示させる第1手段と、 (e)前記表示された特性情報の選択に応答して前記記憶されたリファレンスを 前記第1ビューイング・ペインの出力(1220)に適用する第2手段と を具備することを特徴とするシステム。 8.(f)前記ディスプレイ・コマンドのひとつに応答して、ビューされた構成要 素へのリファレンスを受信する入力、および前記ビューされた構成要素の特性情 報と構成要素のリファレンス(1230〜1251)を生成する出力を前記ディスプレイ 装置上に表示する手段をもつ第2ビューイング・ペインを生成する手段と、 (g)別の前記ディスプレイ・コマンドに応答して、前記第1ビューイング・ペ インの出力にある前記構成要素のリファレンスを前記第2ビューイング・ペイン の入力に適用して、第2構成要素の前記記憶された特性情報と記憶されたリファ レンスをアクセスし前記第2ビューイング・ペインに前記第2構成要素(1202〜 1260)からの特性情報を表示させる手段と を具備することを特徴とする請求の範囲第7項に記載のシステム。 9.前記第1ビューイング・ペインと前記第2ビューイング・ペインが動的に大 きさを変えることができる(1260)ことを特徴とする請求の範囲第8項に記載のシ ステム。 10.前記構成要素の集まりがプログラム変数を表わす変数構成要素を具備し、前 記変数構成要素の前記特性情報が前記プログラム変数を定義する定義情報を具備 し、前記第2適用手段が前記第1構成要素の前記定義情報を表示する手段(1230) を具備することを特徴とする請求の範囲第7項に記載のシステム。 11.前記第1構成要素の前記特性情報が前記第1構成要素を記述する記述情報を 具備し、前記第2適用手段が前記第1構成要素の前記記述情報を表示する手段(1 260)を具備することを特徴とする請求の範囲第7項に記載のシステム。 12.前記第1構成要素の前記特性情報が前記第1構成要素により参照される前記 構成要素の集まりのほかの構成要素を識別する情報を具備し、前記第2適用手段 が前記第1構成要素により参照される前記構成要素の集まりのほかの構成要素を 識別する前記情報を表示する手段(1202〜1260、第8図)を具備することを特徴 とする請求の範囲第7項に記載のシステム。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FR,GB,GR,IE,IT,LU,M C,NL,PT,SE),OA(BF,BJ,CF,CG ,CI,CM,GA,GN,ML,MR,NE,SN, TD,TG),AT,AU,BB,BG,BR,BY, CA,CH,CN,CZ,DE,DK,ES,FI,G B,HU,JP,KP,KR,KZ,LK,LU,LV ,MG,MN,MW,NL,NO,NZ,PL,PT, RO,RU,SD,SE,SK,UA,UZ,VN

Claims (1)

  1. 【特許請求の範囲】 1.コンピュータ・プログラムの内部で巡航する方法であって、 (a)構成要素の集合としてコンピュータ・プログラムをモデル化するステップ と、 (b)前記構成要素をメモリに記憶するステップと、 (c)前記記憶された構成要素をアクセスし、かつ前記コンピュータ・プログラ ムに基づいてアイコンのディレクトリを表示するステップと、 (d)前記コンピュータ・プログラムに関連している情報を表示することによっ てプログラムの一部の選択に応答するステップとからなることを特徴とする巡航 する方法。 2.別々のウィンドウに前記コンピュータ・プログラムに関連している情報を表 示するステップを含むことを特徴とする請求の範囲第1項に記載の方法。 3.前記ウィンドウが動的にある大きさに作られ得ることを特徴とする請求の範 囲第2項に記載の方法。 4.構成要素のリファレンスから定義情報への直接アクセスを提供するステップ を含むことを特徴とする請求の範囲第1項に記載の方法。 5.構成要素のリファレンスからドキュメンテーション情報への直接アクセスを 提供するステップを含むことを特徴とする請求の範囲第1項に記載の方法。 6.構成要素のリファレンスからクライアント情報への直接アクセスを提供する ステップを含むことを特徴とする請求の範囲第1項に記載の方法。 7.コンピュータ・プログラムの内部で巡航するシステムであって、 (a)構成要素のコレクションとしてコンピュータ・プログラムをモデル化する 手段と、 (b)前記構成要素をメモリに記憶する手段と、 (c)前記記憶された構成要素をアクセスし、かつ前記コンピュータ・プログラ ムに基づいてアイコンのディレクトリを表示する手段と、 (d)前記コンピュータ・プログラムに関連している情報を表示することによっ てプログラムの一部の選択に応答する手段とを備えたことを特徴とする巡航する システム。 8.別々のウィンドウに前記コンピュータ・プログラムに関連している情報を表 示する手段を含むことを特徴とする請求の範囲第7項に記載のシステム。 9.前記ウィンドウが動的にある大きさに作られ得ることを特徴とする請求の範 囲第8項に記載のシステム。 10.構成要素のリファレンスから定義情報へアクセスする手段を含むことを特徴 とする請求の範囲第7項に記載のシステム。 11.構成要素のリファレンスからドキュメンテーション情報へアクセスする手段 を含むことを特徴とする請求の範囲第7項に記載のシステム。 12.構成要素のリファレンスからクライアント情報へアクセスする手段を含むこ とを特徴とする請求の範囲第7項に記載のシステム。 13.コンピュータ・プログラムの内部で巡航する方法であって、 (a)構成要素のコレクションとしてコンピュータ・プログラムをモデル化する ステップと、 (b)前記構成要素をメモリに記憶するステップと、 (c)前記記憶された構成要素をアクセスし、かつ前記コンピュータ・プログラ ムに基づいてアイコンのディレクトリを表示するステップと、 (d)前記コンピュータ・プログラムに関連している情報を表示することによっ てプログラムの一部の選択に応答するステップと、 (e)第2のペインを形成し、かつ第1のペインと第2のペインとの間にデフォ ルトリンクを生成するステップとからなることを特徴とする巡航する方法。 14.前記第1のペインと前記第2のペインとの間のリンクを示す前記第1および 第2のペインを結合する幾何学的図形を生成するステップを含むことを特徴とす る請求の範囲第13項に記載の方法。 15.前記第1のペインと前記第2のペインとの間のリンクの論理的表現を記憶す るステップを含むことを特徴とする請求の範囲第13項に記載の方法。 16.複数のペインを形成し、かつ前記複数のペインの間に複数のリンクを生成す るステップを含むことを特徴とする請求の範囲第13項に記載の方法。 17.前記プログラムの特性を変更するためにリンクを編集するステップを含むこ とを特徴とする請求の範囲第16項に記載の方法。 18.ウィンドウを複数のペインに分割するステップを含むことを特徴とする請求 の範囲第1項に記載の方法。 19.メニュから項目を選択することによってウィンドウで表示される前記情報を 動的に変更するステップを含むことを特徴とする請求の範囲第1項に記載の方法 。 20.メニュから項目を選択することによってディスプレイ上の情報のビューを動 的に変更するステップを含むことを特徴とする請求の範囲第1項に記載の方法。 21.少なくとも一つの情報のタイプにアプリケーションのための複数のビューを 関連づけるステップを含むことを特徴とする請求の範囲第1項に記載の方法。 22.情報を複数のビューに関連づけるステップを含むことを特徴とする請求の範 囲第1項に記載の方法。
JP7502763A 1993-06-28 1994-01-03 ダイナミック・ブラウザ・システム Pending JPH08512153A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8533993A 1993-06-28 1993-06-28
US08/085,339 1993-06-28
PCT/US1994/000080 WO1995000902A1 (en) 1993-06-28 1994-01-03 Dynamic browser system

Publications (1)

Publication Number Publication Date
JPH08512153A true JPH08512153A (ja) 1996-12-17

Family

ID=22190944

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7502763A Pending JPH08512153A (ja) 1993-06-28 1994-01-03 ダイナミック・ブラウザ・システム

Country Status (7)

Country Link
EP (1) EP0692112B1 (ja)
JP (1) JPH08512153A (ja)
CN (1) CN1105508A (ja)
AU (1) AU6019494A (ja)
CA (1) CA2144878A1 (ja)
DE (1) DE69400873T2 (ja)
WO (1) WO1995000902A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5854932A (en) * 1995-08-17 1998-12-29 Microsoft Corporation Compiler and method for avoiding unnecessary recompilation
US6021418A (en) * 1997-02-18 2000-02-01 International Business Machines Corporation Apparatus and method for displaying control-objects
AUPP949599A0 (en) * 1999-03-30 1999-04-22 Griffith University Visual architecture software language
DE10032421C2 (de) * 2000-07-04 2002-11-21 Joerg-Ulrich Woelfel Datenverarbeitungs-Werkzeug
DE10140124A1 (de) * 2001-08-16 2003-03-06 Daimler Chrysler Ag Verfahren zur Darstellung der Architektur eines Softwaresystems
US7640584B1 (en) * 2005-06-24 2009-12-29 Rockwell Collins, Inc. System and method for enhancing computer security

Also Published As

Publication number Publication date
EP0692112B1 (en) 1996-11-06
EP0692112A1 (en) 1996-01-17
WO1995000902A1 (en) 1995-01-05
AU6019494A (en) 1995-01-17
CA2144878A1 (en) 1995-01-05
CN1105508A (zh) 1995-07-19
DE69400873T2 (de) 1997-05-22
DE69400873D1 (de) 1996-12-12

Similar Documents

Publication Publication Date Title
EP0693193B1 (en) Incremental linker system
US6804686B1 (en) System and methodology for providing fixed UML layout for an object oriented class browser
EP0664027B1 (en) Program modeling system
JP4195479B2 (ja) インクリメンタル生成システム
Reiss Interacting with the FIELD environment
US5715432A (en) Method and system for developing network analysis and modeling with graphical objects
JP3014284B2 (ja) ダイアログ・ボックスの表示方法及びシステム
US6286129B1 (en) Method and apparatus for compiling transaction processing workflows
JPH10116185A (ja) リソース・ファイル・ビルダ・ツール及びコンピュータ可読コード
JP2008512794A (ja) オブジェクト処理グラフアプリケーション開発システム
JPH1091449A (ja) 分散オブジェクト・ネットワーク上で分散オブジェクトを利用してアプリケーションプログラムを構成するための視覚的組立ツール
US5991538A (en) System for generating and using programs in an object-oriented environment with a message dispatch architecture
CA2786385A1 (en) Pattern-based user interfaces
US12124820B1 (en) Grid layout setting method for multi device responsive page and computer-readable medium for performing the same
US20030202014A1 (en) Graphical user interface development tool
JPH08512153A (ja) ダイナミック・ブラウザ・システム
JP2001521217A (ja) トラッグおよびドロップのインターフエイスを用いて制御をアブリケーションに結び付けるシステム
JP3447365B2 (ja) オブジェクト指向プログラミング支援装置及びオブジェクト指向プログラミング支援方法
WO2023128793A1 (ru) Система и способ динамической визуализации элементов программного обеспечения
JPH1055339A (ja) オンライン型業務処理システム
US20250348289A1 (en) Extended component generation method in user interface platform development system and program performing this
Asthana et al. Computer graphics for scientists and engineers
Tevis et al. An Ada-Based Framework for an IDEF0 Case Tool Using the X Window System
Jobling Building better graphical user interfaces for CACSD-the case for object-oriented programming
Krueger A development tool environment for configuration, build, and launch of complex applications