JPH0334018A - コンピュータプログラムのカプセル化方法及びその装置 - Google Patents

コンピュータプログラムのカプセル化方法及びその装置

Info

Publication number
JPH0334018A
JPH0334018A JP2138141A JP13814190A JPH0334018A JP H0334018 A JPH0334018 A JP H0334018A JP 2138141 A JP2138141 A JP 2138141A JP 13814190 A JP13814190 A JP 13814190A JP H0334018 A JPH0334018 A JP H0334018A
Authority
JP
Japan
Prior art keywords
tools
tool
event
message
application
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
JP2138141A
Other languages
English (en)
Inventor
Brian D Fromme
ブライアン・デー・フローメ
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH0334018A publication Critical patent/JPH0334018A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明はコンピュータ支援ソフトウェアエンジニアリン
グの方法及び装置に関するものであり、更に詳細には、
アプリケーションプログラムを統合コンピュータ支援ソ
フトウェア展開システムに組込む方法及び装置に関する
(従来の技術) 次に挙げる出願は本出願と関連している。出願人整理番
号188449、「連係プログラムローダによる共有ラ
イブラリ(Shared Libraries Imp
lemented With Linking Pro
gram Loader)J 、出願人整理番号188
447、「コンピュータ支援ソフトウェアエンジニアリ
ングにおけるツールの実行を制御する方法及び装置(M
ethod and Apparatus for C
ontrolling Execution of T
ools inA Computer Aided S
oftware Engineering Syste
m)」、出願人の整理番号188450、「コンピュー
タ支援ソフトウェアエンジニアリングにおけるツール間
の通信方法及び装置(Method and Appa
ratus for Communication B
etween Tools 1nAided Soft
ware Engineering System)J
 、及び1988年2月10日出願の米国特許出願第0
7/154684号、「ソフトウェア分岐解析の方法及
びその装jij[(Method and Appar
atus For Software Branch 
Analysis)J。
コンピュータ支援ソフトウェアエンジニアリング(CA
 S E : Computer Aided Sof
tware Engineering))システムは、
複合コンピュータソフトウェアの構成、試験、及び保守
に際しコンピュータプログラマを支援するように開発さ
れている。このようなシステムはプログラムを構築又は
コンパイルするにあたり、又はプログラムを静的及び動
的に解析するにあたりプログラマを支援する。最近のC
ASEシステムはプログラマのチームが複合プログラム
の開発に関して作業する環境で動作させるようにしてい
る。
多くの場合、CASEシステムはウィンドウ式ユーザイ
ンタフェースで動作する。
CASEシステムはプログラムの開発を支援するように
設計された多数の異なるツール、すなわちプログラムを
伴うのが普通である。このようなツールは典型的にはプ
ログラム編集ツール、構築ツール、デバッグツール、及
びバージョン管理ツールを備えている。ツールはソフト
ウェア開発タスクの自動化を更に容易にするように問題
領域にわたり協働するように組込むか又は開発すること
ができる。CASEシステムは典型的にはUNIXオペ
レーティングシステム又は修正UNIXオペレーティン
グシステムを利用している。(UNIXはアメリカ合衆
国及び他の諸国におけるAT&Tの登録商標である。)
ソフトウェアはプログラマが開発ツール又は下層のオペ
レーティングシステムを詳細に知っていなくてもCAS
Eシステムに関して効率よく開発することができる。
従来のCASEシステムの一つの欠点はシステムを特定
の用途について特製することができないことであった。
特定の産業又は技術分野のプログラマが、自分達が開発
中のプログラムの性質上、専門プログラム、又は開発ツ
ールに依存することは珍しいことではない。例えば、エ
ンジニアリング設計プログラムで作業するプログラマは
一つ以上の専門開発ツールに依存しており、また、通信
プログラムで作業するプログラマは全く異なる組合せの
専門開発ツールに依存している。このようなツールには
、例えば、頻繁には使用しないUNIXシステムツール
、又は特定の用途について特別に開発されているツール
がある。従って、CASEシステムがこのような専門開
発ツールを利用する能力を備え、プログラマがCASE
システムから与えられる自動化及び効率の他に専門ツー
ルの望ましい特徴を利用することができるようになるの
が望ましい。
従来は、専門開発ツールをCASEシステムに組込むこ
とは困難であるか又は不可能であった。ツールについて
2進コードしか利用できないときは、組込みは実行不可
能であった。ソースコードを利用できるときは、ツール
をCASEシステムに組込むにはツールを処理しなおす
必要があり、多くの月日と多くの人手のプログラミング
労力を必要とすることが屡々であった。
従って、従来のCASEシステムは特定の用途について
特製するのが困難であった。
(発明が解決しようとする課題) コンピュータ支援ソフトウェア開発システムにアプリケ
ーションツールを組込み、利用する方法及び装置を提供
するのが本発明の一般的な目的である。
アプリケーションツールの2進コードだけを利用するコ
ンピュータ支援ソフトウェア開発システムにアプリケー
ションツールを組込む方法及び装置を提供するのが本発
明の他の目的である。
コンピュータ支援ソフトウェア開発システムにアプリケ
ーションツールを組込み、アプリケーションツールとソ
フトウェア開発システムを構成する他のツールとの間の
通信ができるようにする方法及び装置を提供するのが本
発明の更に他の目的である。
本発明の更に他の目的はコンピュータ支援ソフトウェア
開発システムにアプリケーションツールを組込み、ソフ
トウェア開発システム内の他のツールがアプリケーショ
ンツールにより動作をトリガすることができる方法及び
装置を提供することである。
本発明のなお他の目的はコンピュータ支援ソフトウェア
開発システムにアプリケーションツールを組込み、アプ
リケーションツールにソフトウェア開発システムに適合
できるユーザインタフェースが設けられるようにするツ
ール及び装置を提供することである。
本発明の更に他の目的はコンピュータ支援ソフトウェア
開発システムにアプリケーションツールを処理しなおす
ことなくアプリケーションツールを組込む方法及び装置
を提供することである。
本発明のなお他の目的はコンピュータ支援ソフトウェア
開発システムにアプリケーションツールを組込み、アプ
リケーションツールがローカルホストコンピュータ又は
遠隔ホストコンピュータで実行することができるように
する方法及び装置を提供することである。
(課題を解決するための手段) 本発明によれば、これらの及び他の目的及び利点は、ユ
ーザインタフェース、オペレーティングシステム、及び
所定のタスクを行う一つ以上の組込みソフトウェア開発
ツールを備えたコンピュータ支援ソフトウェア開発シス
テムにアプリケーションツールをカプセル化する方法に
より遠戚される。この方法は、開発ツールから及びユー
ザインタフェースから受取った所定の事象に応じて所要
動作を規定するインタフェース記述ファイルを所要動作
を表す一組のデータ構造に変換する段階、開発ツールか
ら及びユーザインタフェースから受取った所定の事象に
応じて所定の事象に対応するデータ構造の部分を評価す
ると共に、そこに規定された動作を実行する段階、及び
データ構造の部分により要求されたときアプリケーショ
ンツールにより動作を要求する段階、から構成される。
インタフェース記述ファイルを変換する段階は典型的に
、インタフェース記述ファイルをコンパイルしてインタ
フェース記述ファイルにある記号を規定する記号テーブ
ル、及びインタフェース記述ファイルにある動作を規定
する命令文テーブルを作製する段階を含んでいる。イン
タフェース記述ファイルを変換する段階は典型的に更に
、記号テーブル及び命令文テーブルを評価して、所定の
事象に応答するとき行うことができる動作を規定する事
象を含む対象を発生する段階を含んでいる。
事象は、ユーザインタフェース、開発ツール、アプリケ
ーションツール、及びオペレーティングシステムから受
取る。対象は受取った各事象について行うべき指定動作
を備えている。所定の事象に応じて、受取った事象に対
応する対象に含まれている一つ以上の動作が評価され、
且つ実行される。受取った事象はそれに対応する動作を
識別するために対応する対象に記憶されている事象パタ
ーンに対して調節して合せられる。
アプリケーションツールにより動作を要求する際に、サ
ブプロセス制御器がネットワークを介してローカルホス
トコンピュータか遠隔ホストコンピュータかによりアプ
リケーションツールと通信できるようにする。サブプロ
セス制御器はアプリケーションツールをローカルで実行
すべきか遠隔ホストコンピュータで実行すべきかを判断
する。アプリケーションツールをローカルに実行すべき
ときは、要求が直接アプリケーションツールに送られる
。アプリケーションツールを遠隔ホストコンピュータで
実行スべきときは、要求が遠隔ホストコンピュータに送
られる。
本発明によるプログラムカプセル化の方法ではアプリケ
ーションツールの2進コードにアクセスせずに且つアプ
リケーションツールを処理しなおすことなくアプリケー
ションツールをコンピュータ支援ソフトウェア開発シス
テムに組込むことができる。アプリケーションツールは
ソフトウェア開発システムのユーザインタフェースと適
合可能なユーザインタフェースを備えている。その他に
、アプリケーションツールはシステム内の他の開発ツー
ルとの間で動作の要求を送受することができる。その他
、アプリケーションツールの動作はユーザの介在なしに
システム内で発生する事象により自動的にトリガするこ
とができる。
アプリケーションツールをソフトウェア開発システムに
カプセル化するために、所定の事象に応じて所要動作を
規定するインタフェース記述ファイルがインタフェース
記述言語を用いて準備される。インタフェース記述ファ
イルはコンパイルされ、翻訳されて、動作を規定する一
組のデータ構造を発生する。次に制御が、ユーザインタ
フェース、開発ツール、アプリケーションツール、及び
オペレーティングシステムから事象を受取る事象ハンド
ラに移される。事象に対する応答は対応するデータ構造
を参照し且つデータ構造に入っている動作を実行するこ
とにより決定される。
本発明の他の特徴によれば、アプリケーションツールを
上述のようにコンピュータ支援ソフトウェア開発システ
ムにカプセル封入する装置が提供される。
(実施例) コンピュータ支援ソフトウェアエンジニアリングシステ
ムの第1図に絵画的に示す。システムは、編集ツール1
0、構築ツール12、デバッグツール14、静的解析ツ
ール16、及びバージョン管理ツール18を備えた一組
のプログラム開発ツールを備えている。「ツール」とい
う語はここでは所定の機能又は機能の組合せを行うソフ
トウェアルーチン又はプログラムを表すのに使用する。
今後説明するように、ツールは完全なCASEシステシ
ステムように統合されている。
編集ツール10及び構築ツール12はプログラムの構成
に関連しているが、デバッグツール14及び静的解析ツ
ール16はプログラムの解析及び試験に関連している。
ツールto、 12.14.16、及び18はツール統
合プラットホーム20として知られているオペレーティ
ングシステムにより制御され、統合される。ツール統合
プラットホーム20は、ツール間の通信、作業域の管理
、分散式ツールの実行、ユーザインタフェースの管理、
及び後に詳細に述べるように、特性アプリケーションツ
ールのカプセル化の機能を行う。
ファイルに関する最も普通の動作の一つはこれを編集す
ることである。編集ツールlOはマウス及びメニュー式
ソースファイルエディタである。構築ツール12の主要
機能はコンパイルである。構築ツール12はコンパイラ
を呼出し、発生するコンパイル時間又は連係時間の誤差
を通してユーザと歩調を合せる。プログラムの構築が完
了すると、システムはデバッグツール14に実行可能な
コードで開始するように指令を受ける。
デバッグツール14は、マルチウィンドウソースレベル
記号式デバッグを行う。ユーザは制御された環境で指定
のプログラムを実行して動的挙動を検討することができ
、データ構造を検討又は監視することができる。プログ
ラムの状態局面を理解するために、ユーザは静的解析ツ
ール16を呼出すことができる。静的解析ツール16は
、呼び出し構造、形式規定、及び範囲に関する疑問に答
える。バージョン管理ツール18は、アクセス/変更の
制御、前のプログラムバージョンの保持、及び改訂番号
、日付、記号名称、及び/又は開放日付によるプログラ
ムの探索、を行う。プログラム開発ツール1O112,
14,16、及び18の詳細は本発明の範囲外であり、
これ以上説明しないことにする。第1図に示すCΔSE
システシステムて異なるツールを置き換えたり、又は付
加したりすることができることを理解するであろう。例
えば、開発中のプログラムの形式により異なるデバッグ
ツールを利用することができる。
ツール統合プラットホーム20には、今後更に詳細に説
明するようにツール間通信の有効なツールとなるメツセ
ージサーバがある。作業域管理に関しては、ユーザは作
業域を指定することができる。作業域はユーザが作業中
の計画を作り上げるファイルの集まりである。例えば、
ユーザは単に作業域を指定するだけで静的解析ツール1
6を始動することができる。こうして解析ツールは解析
する適切なファイルを決定する。
ツール統合プラットホーム20は分散式ツール実行を支
援する。数台のマシンで実行するツールは、すべてが単
一プロセッサで実行しているかのように正確に通信し、
対話する。ツール統合プラットホーム20はユーザイン
タフェースを管理するが、これは非常に図式的で且つウ
ィンドウ式、対話的、且つタスク向きである。
CASEシステムの重要な特徴は、分散式計算環境で複
数のユーザによるプログラム開発を支援するということ
である。従って、ツールはローカルホストコンピュータ
又は遠隔ソフトコンピュータで運転することができ、フ
ァイルは遠隔システムによりアクセスすることができる
しかし、プロセスの分散式性格はユーザに対して透明で
ある。ここに記したCASEシステムはヒユーレットパ
ラカード社が製造するシリーズ300又はシリーズ80
0ワークステーシヨンで動作することができる。いずれ
のワークステーションに対しても典型的なハードウェア
の必要事項としては8又は16メガバイトRAM、高解
像度デイスプレィ、キーボード及びマウス、150又は
300メガバイトデイスクがある。CASEシステムは
HP−UXオペレーティングシステム、UNIX基準オ
ペレーティングシステム、及びXllウィンドウ、及び
ウィンドウ式動作を支援するシステム、で運転される。
しかし、本発明は上述のハードウェア及びソフトウェア
で使用されることに限定されるものではなく、どんな適
切な汎用コンピュータにも使用することができる。
上述のように、CASEシステムは多数ワークステーシ
ョン環境を支援する。典型的なシステム構成を第2図に
示す。ワークステーション22.24.26、及び28
は回路網30により相互に接続されている。ワークステ
ーション22.24.26は上述のように構成されてい
るが、ワークステーション28にはディスク記憶ユニッ
トが存在しない。ワークステーションは各々他のワーク
ステーションの資源にアクセスすることができる。
ワークステーション28は他のワークステーションの一
つにあるディスクを利用する。第2図に示す形式の分散
式システムにはどんな数のワークステーションをも利用
することができる。
本発明によるプログラムのカプセル化を理解するために
は、CASEシステム内部の通信を規定する必要がある
。上述のように、CASEシステムはツール統合プラッ
トホーム20により支援される複数のプログラム開発ツ
ールを備えている。構築ツール12のようなツールとの
通信を第3図に示す。ツール12はユーザ要求を受取り
、ユーザインタフェースを経由してユーザ応答を提示す
る。本発明のウィンドウ式CASEシステムでは、ユー
ザはX−ウィンドウシステム34を通して通信する。(
X−ウィンドウシステムはMITの商標である。)従っ
て、例えば、ユーザがマウスクリックを介してオプショ
ンを選択するか又はキーボードを介して情報を入れると
、その情報はX−ウィンドウシステム34を通してツー
ル12に送られる。X−ウィンドウシステムに関するそ
の他の事項は1985年のXツールキットイントリンシ
ックス、X−ウィンドウシステム、Xバージョン11、
レリーズ2 (X To。
1kit Intrinsics、 X Window
 System、 X WindowSystem、 
X Version 11. Re1ease 2)に
より利用可能である。ツール12はシステム信号33を
介してオペレーティングシステムと通信する。
ユーザから見たプログラミング環境の重要な局面は、個
々のツールが互いに如何に良く通信し、協働するか、及
び環境がツール向きに見えるかタスク向きに見えるか、
ということである。
従来のほとんどのプログラミング環境では、ツールの協
働は、ツールの対話が最も簡単な場合でも、ユーザの一
致団結により達成された。ここに記したCASEシステ
ムは、ユーザの介在を必要とするのではなく、ツールに
他のツールによる動作を要求する設備を設けてプログラ
マの生産性を改善している。
他のツールとの通信はすべて第3図及び第4図に示すよ
うにメツセージインタフェース35及びメツセージサー
バ36を通して行われる。ツールは要求をメツセージサ
ーバ36に送ることにより一つ以上の他のツールによる
動作を要求する。
次にメツセージサーバ36は要求を適切な一つ以上のツ
ールに送る。要求を実行するツールは、サーバとして知
られている。要求された動作が終了してから、成功又は
失敗の通知がサーバによりメツセージサーバ36に送ら
れる。通知はメツセージサーバ36により要求元ツール
に、及びそれを受取りたい他のツールに送られる。
メツセージサーバ36は所定のパターンに従って、各メ
ツセージを送るツールを決定する。頻繁に、要求又は通
知が幾つかのツールに送られる。メツセージサーバ36
を介するツール間の通信はこのようにして各ツール内で
発生する事象により駆動される。典型的に、すべてのツ
ールがサービスしなければならない一組のメツセージ、
及び一種類のツールに特有の一組のメツセージがある。
以下はツール間通信の例である。CASEンステム内の
成るツールがファイルを修正すると、そノツールはrF
ILE MODIFrED (7yイルを修正した)」
通知を送出する。参照ファイルを表示している他のツー
ルが次に、ファイルのビューが古いものであること(o
ut of date)を知らされる。ファイルの新し
いバージョンを自動的に再ロードすることができ、又は
ユーザに彼のファイルのビューが古いものであることを
知らせることができる。
上述の事象駆動通信の他の例は、編集ツールlOにユー
ザがソースファイルをセーブすることから始まる。編集
ツール10は通知メツセージをメツセージサーバ36に
送り、ファイルがセーブされたことを述べると共に、フ
ァイルバスを供給する。次にメツセージサーバ36はメ
ツセージをバージョン管理ツール18に送る。バージョ
ン管理ツール18は、現在の状態を回復することができ
るようにファイルの新しいバージョンをバージョン制御
に記録する。次にファイルがセーブ済みであることを述
べる通知を送る。メツセージサーバ36は通知を受取っ
てこの情報を構築ツール12及び静的解析ツール16の
双方に送る。
構築ツール12は新しいソースファイルのコンパイルを
開始し、静的解析ツール16はそのデータベースを新し
いソースファイルで更新する。
メツセージは典型的にはストリングとして送られる。メ
ツセージには次の形がある。発信元(originat
or)、要求識別子(request ID)、メツセ
ージ形式(message type)、ツールの種類
(to。
1 class)、動作(operat 1on)、文
脈〔引き数〕(context [a、rgument
s])。発信元フィールドはメツセージを送出するツー
ルを示す。要求識別子のフィールドはメツセージ番号、
プロセス識別子、及びホストから構成される特殊識別子
である。特殊識別子を設けることにより、応答をその元
の要求と関連づけることができる。メツセージの種類の
フィールドは要求メツセージ、成功通知、又は失敗通知
から収る。ツールの種類はメツセージが送られているツ
ールの種類(編集、デバッグなど)である。動作は送ら
れている命令(記憶、ファイル、同調、停止なと)であ
る。文脈のフィールドはホスト、基本ディレクトリ、及
びそれに基いて動作を行うべきデータの位置を示すファ
イル情報を備えている。
各メツセージは別の情報を示す引き数を備えることがで
きる。CASEシステムでのツール間の通信に関する更
に別の情報は「コンピュータ支援ソフトウェアエンジニ
アリングシステムにおけるツールの実行を制御する方法
及び装置」と題する前述の出願書に示されている。
上述のCASE構成の重要な特徴はトリガの使用である
。トリガはCASEのツールの任意の組合せを連係する
ことができる因果関係である。トリガはシステム事象又
はユーザ事象により作動し、システム又はユーザが規定
した動作を発生させることができる。これらの動作には
メツセージを他のツールに送ること及び任意の命令又は
ルーチンを実行することがある。今後説明するように、
トリガはカプセル化アプリケーションツールに関連して
特に有効である。カプセル化アプリケーションツールに
関連するトリガはユーザが規定することができる。トリ
ガの例としては、 1、プログラム解放が行われた時に、メールをマネージ
ャ及び/又はチームに送らせる。
2、システムがプログラムの構築に成功した時に、メー
ルをチームに送らせる。
3、ファイルがバージョン制御に記録された時に、コン
パイルを行わせる。
4、特定の時刻にコンパイルを行わせる。
5、解放されたプログラムをテープ記録させる。
6、構築が成功した場合に、制御流れ情報を収集させる
7、構築が成功した場合に、プログラムのリストを印刷
させる。
8、バージョン制御にチエツクされた場合に、ファイル
をディスクに記入させる。
9、解放された場合に、解放プログラムを圧縮し、アー
カイブする。
10、プログラムを実行してから性能データを表示させ
る。
11、構築が成功した場合に、デバッガに再ロードさせ
る。
12、ファイルが編集ツールにセーブされた場合に、計
量値(metrics)を収集させる。
CASEシステシステムグラム開発に必要な基本ツール
があるが、特定の産業又は特定の技術分野では基本シス
テムに入っていないツールを使用する必要のあることが
ある。これらツールには、頻繁には使用されないためC
ASEシステシステムていないが容易に利用可能なツー
ル、及び特定の目的のためユーザが既に開発しているツ
ール、がある。このような専門アプリケーションツール
をCASEシステシステムしてこれらを利用することが
できるようにするのが望ましい。完全な統合には通常、
アプリケーションツールとのユーザインタフェースをC
ASEシステシステムザインタフェースに適合させるこ
とが必要であり、また通常、アプリケーションツールが
、システム内の他のツールと通信することができなけれ
ばならない。アプリケーションツールの2進実行可能コ
ードだけしかユーザに利用できない場合には、このよう
な統合は以前には不可能であった。アプリケーションツ
ールのソースコードが利用できるときでも、統合にはア
プリケーションツールを処理しなおすことが必要であり
、屡々多くの人数と月日がかかる労力が必要である。
本発明によれば、アプリケーションツールをカプセル化
し、これをCASEシステシステムに統合する方法が提
供されている。本発明の方法ではアプリケーションツー
ルの2進実行可能コードだけがあれば良く、そのコード
の修正は不必要である。本発明によるアプリケーション
ツールの統合は、通常、たとえソースコードが利用可能
であっても、CASEシステシステムするためアプリケ
ーションツールを処理しなおすのに必要になる労力、よ
りはるかに少い労力で達成することができる。
本発明はアプリケーションツールをCASEシステシス
テムに統合する方法を提供する。アプリケーションツー
ルをCASEシステシステムするプロセスはカプセル化
として知られており、カプセル化を行うプログラムはカ
プセル化プログラム又はカプセル化システムとして知ら
れている。第5図を参照すると、カプセル化プログラム
は、入力をアプリケーションツール42に送り、出力を
アプリケーションツール42から受取る実行時間インタ
フェースプログラム40を備えている。インタフェース
プログラム40はCASEシステムの標準ツールと同じ
様式でCASEシステムと通信する。このようにしてイ
ンタフェースプログラム40はユーザインタフェース4
4を介してX−ウィンドウシステム34と通信し、メツ
セージインタフェース46を介してメツセージサーバ3
6と通信し、システム信号47を介してオペレーティン
グシステムと通信する。
異なるアプリケーションツール42を異なるユーザによ
りカプセル化することができるから、インタフェースプ
ログラム40は各場合で異なる。
更に、同じアプリケーションツール42に対してさえ、
異なるユーザがCASEシステム内の他のツールに対し
て異なるユーザインタフェース又は異なるメツセージを
要求することができる。
本発明によれば、インタフェースプログラム40はイン
タフェース記述言語(IDL)を利用して容易に発生す
ることができる。インタフェース記述言語によればユー
ザがアプリケーションツール及び他のツールとの通信を
規定し、アプリケーションツールとのインタフェースを
規定することができる。インタフェース記述言語は特定
のアプリケーションツールに特有のインタフェース記述
ファイル(IDF)48を開発するのに使用することが
できる。IDFはインタフェースプログラムにより利用
されるすべての動作及びデータ構造を規定する。
本発明によるカプセル化のための選択されるアプリケー
ションツールは通信のUNIXバイブモデルに合致しな
ければならない。アプリケーションツールとの通信は文
字ストリング入力及び文字ストリング出力の形になって
いる。カプセル化に好適な標準UNIXツールは500
を超えている。その他、ユーザはUNIXパイプモデル
に基いて専門ツールを開発しており、これもカプセル化
に好適である。UNIXシステムに関するこの他の事項
は、ラシエル・モーガン(Rachel Morgan
)他のrUrlXシステムVの導入(Introduc
ing UNIX System V)J  (マグロ
−ヒル、1987年)で得られる。
カプセル化システムの主プログラム流れを第5A図に示
す。最初、段階70でインタフェース記述ファイルをユ
ーザが作製する。インタフェース記述ファイル48は段
階72で専門コンパイラ50によりコンパイルされて、
記号テーブル52及び命令文テーブル54(第5図)か
ら成る中間レベルコードを作る。次に、段階73でイン
タプリタ58が中間レベルコードを評価し、対象テーブ
ル60を作製する。次に段階74で制御が事象ハンドラ
62に移る。事象ハンドラ62は実行時間動作を制御す
る。事象ハンドラ62は段階76で入力事象をユーザイ
ンタフェース、メツセージサーバ、アプリケーションツ
ール、及びオペレーティングシステムから受取る。
事象ハンドラ62は入力事象をユーザから受取り、出力
をX−ウィンドウ システム34を通してユーザに供給
する。事象ハンドラ62はまたメツセージサーバ36に
対して送受されるメツセージ事象を介してCASEシス
テム内の他のツールと通信する。更に、オペレーティン
グシステムからのシステム事象がシステム信号の形で事
象ハンドラ62に送られる。カプセル化アプリケーショ
ンツール42との通信はサブプロセス制御器68を通し
て行われる。後に説明するように、プロセス制御器68
は、アプリケーション42をユーザによる介在なしにロ
ーカルホストコンピュータ、又は遠隔ホストコンピュー
タで実行させる。事象ハンドラ62は段階78でユーザ
事象、メツセージ事象、システム事象、及びアプリケー
ション事象に応答してインタプリタ58を呼出し、後に
説明するように、対象テーブル60に規定されている機
能を実行する。
インタフェース記述言語 アプリケーションツールをカプセル化するために、ユー
ザはインタフェース記述言語を使用してインタフェース
プログラムにより行うべき機能を指定する。IDLはイ
ンタフェースプログラムにより利用される記述ファイル
を措戊する簡単なC類似言語である。IDLは、対象属
性及び対象事象を作製する構文を規定すると共に対象の
実行時間環境を巧妙に処理する簡単な制御構文を備えて
いる。IDLは、対象、事象、対象位置、対象属性、及
び論理(Boolean)、整数、及びストリングのよ
うな、簡単なデータ形式、をも備えている。IDLはウ
ィンドウ式ユーザインタフェース用に設計されているが
、ウィンドウ対象、その属性、及びその事象はどんなウ
ィンドウシステム構戒とも無関係である。
IDLによりユーザはそれ自身のアプリケーションツー
ルを、簡単な高水準言語を使用してCASEシステムに
統合するこ之ができる。
アプリケーションツールがカプセル化に対して選択され
ており且つそれが行うタスクがわかっていると、ユーザ
はIDLを使用してインタフェースプログラムが行うべ
き機能を規定し、インタフェース記述ファイルを作り出
す。実施すべき特別のタスクには次のものがある。
1、アプリケーションツールが行うタスクを達成する命
令ツリーを規定する。
2、ユーザ入力域及びプログラム出力域を含むウィンド
ウ域を配置する。
3、メニュー、対話ボックス、選択、及びアプリケーシ
ョン動作、の間の関係のプログラムを作る。
4、アプリケーションツールへのメツセージインタフェ
ースを規定する。
5、メツセージサーバを通して他のCASEシステムツ
ールと通信するメツセージを規定する。
インタフェース記述ファイルは、コメント、宣言、命令
文、及び関数を含む一連のIDL文から構成される。I
DLの宣言はC言語の宣言と類似しており、データ形式
の指定で始まり、宣言される名前がこれに続き、この後
に随意的に名前に対する初期値が続く。各変数は使用す
る前に宣言しなければならない。IDLの命令文及び関
数は、カプセル化プログラムの動作を指定するもので、
表示対象の属性を設定し、検知すべき事象を記述し、事
象に応じて行うべき動作を指定し、カプセル化されてい
るアプリケーションツールに対するウィンドウインタフ
ェース及びアプリケーションツールインタフェースを指
定するのに使用される。
下記はインタフェース記述言語に利用されるデータ形式
である。
1、属  性(Attribute) 属性は、対象がウィンドウ内にどのようにして表示され
るか、及び動作が対象に対して行われたとき対象が何を
行うか、のような対象の挙動の仕方を規定するデータで
ある。属性は、典型的なウィンドウ特性の最も頻繁に行
われる表現であって、ストリング又は識別子と名付ける
ことができる。属性は組合せ演算子と組合せて属性リス
トを形成することができる。属性リストは挙動を記述す
るか又は値を設定することができる。挙動の記述を使用
するときは、属性の名前だけを指定する。値を欲しいと
きは、属性の組合せを使用する。値の部分(右側)は表
現の範囲内で識別子の部分(左側)と関連している。次
の属性はカプセル化システムであらかじめ規定されてい
る。
a)rAPPENDJは、対象に、表示されるデータを
現在の位置に挿入するのではなく付加すべきことを知ら
せる。
b)rBGcOLORJは、ストリングにより、対象に
その背景色を表示により支持されている最も近い色に設
定するように伝える。
c)rcENTEREDJは、対象に、そのラベルが対
象内の中心にあることを知らせる。
d)rcODEEDITJは、編集対象に、構文特有の
編集命令を支持するコード編集用具(widget)を
使用すべきことを伝える。
e)rEDITs I ZEJは、整数により、対象に
編集プログラムバッファに割当てるバイトの数を知らせ
る。
f)rFGcOLORJは、ストリングにより、対象に
その背景色を表示により支持されている最も近い色に設
定するよう伝える。
g)rFONTJは、ストリングにより、対象に、対象
が印刷するテキストを表示するための所定の字体を使用
するように伝える。
h)rlMAGEJは、ストリングにより、対象に映像
対象を表すファイルの名前を知らせる。
1)rlNsENs IT IVEJ Lt、対象ニ、
その行動にアクセスできないようにそれ自身を灰色に表
示するよう伝える。
j)rIloJは、整数により、対象に、対象内部の編
集プログラムバッファが指定整数を持つ他の対象により
アクセスされることができることを知らせる。整数は、
特定の編集プログラムバッファの内容にアクセスする一
定の所定の関数により使用される。
K)rHE IGHTJは、整数により、対象に、表示
対象の画素の高さを知らせる。
1)rLEFTJUsTIFIEDJは、対象に、その
ラベルが対象内部で左揃えされていることを知らせる。
m)rPO8TL INEJは、対象に、事象動作を行
ってから新しい行を標準表示装置に出力すべきことを伝
える。
n)rPRELINJは、対象に、事象動作を行う前に
新しい行を標準表示装置に出力すべきことを伝える。
o)rQUIETJは、標準出力に関連していない編集
対象に、通常は前記用具に進むアプリケーション出力を
表示しないように知らせる。
p)rRI GHTJUSTI FI EDJは、対象
に、そのラベルが対象内で右揃えされていることを知ら
せる。
Q)rsRcTYPEjは、ストリングにより、コード
編集対象に言語特有の構文に適切な挙動を用いるように
伝える。
r)Is INGLEL I NEJは、対象に、すべ
てのテキストを同じ行に表示すべきことを伝える。
5)rsTDINJは、編集対象に、そのバッファがア
プリケーションツールの標準穴ツjと関連すべきか又は
アプリケーションツールの標準入力として挙動すべきこ
とを知らせる。
t)rsTDOUTjは、編集対象に、そのバッファが
アプリケーションツールの標準出力と関連すべきか又は
アプリケーションツールの標準出力として挙動すべきこ
とを伝える。
u)rSTDERRJは、編集対象に、そのバッファが
アプリケーションツールの標準エラーに関連すべきか又
はアプリケーションツールの標準エラーとして挙動すべ
きことを伝える。
v)rUNMAPPEDJは、対象に、対象が初期設定
されたときは見えないようにすべきことを知らせる。
w)rVERBO8EJは、対象に、その事象呼出し中
にrsend commandJに送られるストリング
に応答するように伝える。
x)rWIDTHJは、整数により、対象に、表示対象
の画素の幅を知らせる。
2、論  理(Boolean) 論理データ値は真か偽である。
3、事  象(Event) 事象は指定パターンに一致するとき対象に関して行うべ
き行動を記述する。事象は4種類の入力、すなわちユー
ザ、アプリケーションツール、メツセージ、及びシステ
ム、を認識するように規定することができる。対象はそ
れに取付ける事象の各種類の一つ以上を備えることがで
きる。ユーザ事象はユーザがアプリケーションウィンド
ウのボタンを選択するというような成るウィンドウ式行
動を行うとき生ずる。アプリケーションツール事象はデ
ータをカプセル化アプリケーションツールから受取ると
生ずる。メツセージ事象はインタフェースプログラムが
メツセージをメツセージサーバから受取ると生ずる。シ
ステム事象はインタフェースプログラムがシステム信号
をオペレーティングシステムから受取ると生ずる。
事象宣言の構文は event  event  var = <type、  pattern、  actio
n>であり、rtypeJはユーザ、アプリケーション
ツール、メツセージ、又はシステム識別子である。rp
atternJは合わせるべきストリングパターンであ
る。ractionJはパターンが合ったとき行うべき
行動である。「actionJは命令又は関数呼出し、
又は括弧で囲んだ一連の命令文又は関数呼出しとするこ
とができる。
4、整  数(Integer) 整数はコンピュータ語に適合する符号化された数である
。現在の実施例では、整数は32ビット表現である。
5、ロケーション(Location)ロケーションは
画面上の対象の論理的位置をあたかも画面がマトリック
スであるかのように、行を第1の数として、列を第2の
数として記述する整数の組合せである。
最初のロケーションは(1,1)で、ウィンドウの物理
的左上である。
6、対  象(Object) 2種類の対象が存在する。マネージャであるもの(マネ
ージャ対象)、及び管理されなければならないもの(プ
リミティブ対象)である。
マネージャ対象は他のマネージャ又はプリミティブ対象
を管理することができる。マネージャ対象には最高マネ
ージャ及びプルダウンマネージャがある。
プリミティブ対象はそれに関して動作を行うことができ
るデータを表す。対象は画面上に現われる動作の最も頻
繁な表現である。しかし、画面データを決して備えない
対象もある。対象は次のパラメータを備えている。
1、マネージャ:対象を制御するマネージャウィンドウ
対象。
2、名前:対象に対する一義的識別子。
3、形式二対象の形式。形式は次の識別子の一つでなけ
ればならない。命令、編集、映像、ラベル、リスト、メ
ニューボタン、メツセージ、又はトグル。
4、ラベル二対象上に表示すべきラベル。
5、ロケーション:マトリックスの形でテーブルわした
対象の論理的位置。
6、属性:対象の属性。
7、事象:アプリケーションツール、ユーザ、メツセー
ジサーバ、又はオペレーティングシステムから識別され
た事象。
7、ストリング(String) ストリングは文字の連鎖である。ストリングには「\n
」のようなエスケープ文字を入れることができる。スト
リングは空白で終端する。
一定の形式の人力に合わせるのにパターンが使用される
。人力は、アプリケーションツールからテキストとして
、ユーザからウィンドウ事象として、メツセージサーバ
からCASEシステム内の他のツールからのメツセージ
として、又はオペレーティングシステムから信号として
到来することができる。パターンは任意の入力組合せに
合わせるのに使用されるストリング表現である。パター
ンは使用すべき事象の形式に基いて異なるデータを備え
ることができる。例えば、ユーザ事象パターンはウィン
ドウシステムからの名前付き事象(例えば、選択、解放
、実行、人口(エンター)、退去(Leave) )に
正確に合わなければならないストリングである。
メツセージ事象パターンは、後に述べるように呼びから
所定の関数Make message pattern
に戻されたデータである。アプリケーションツール事象
パターンはパターン整合設備に受入れ可能なストリング
である。システム事象パターンはオペレーティングシス
テム信号の一つの名前と正確に合わなければならないス
トリングである。
インタフェース記述言語での関数はあらかじめ規定され
るか、ユーザにより規定される。あらかじめ規定された
関数(規定関数)はインタプリタに組込まれ、規定しな
おすことはできない。規定関数は対象形成のような標準
動作に使用される。ユーザ規定の関数はユーザにより一
組のIDL命令又は式として規定され、命令の論理内組
分けに使用することができるが、事象の呼出された手順
として最も有用である関数宣言には次の形がある。
function function name (p
arameter list)parameter 5
peciHers(function body) IDLの関数宣言の形は、パラメータ指定子が随意選択
のデフォルト指定子を備えている以外はC言語の関数宣
言の形と同じである。function bodyはロ
ーカルの及び全体的変数宣言の他に常数宣言をも入れる
ことができる。
下記はインタフェース記述言語による所定関数を指定す
るものである。
1 、  rAdd attribute (対象、属
性)」は指定対象の属性リストにある指定属性を加える
2、  rAll text(n)Jはn番目の人出力
バッファのテキストを戻す。
3 、  l” Append (対象、ストリング)
」は指定ストリングを指定対象に書く。
4、  rAppend to (対象)」は現在規定
されている出力対象を指定対象に変更する。
5、  rclear(対象)」はすべてのデータを指
定対象から動かす。
6、  rcurrent 5election ()
 Jはウィンドウシステム内部の現在強調されているテ
キストを戻す。
7、  rDialog (形式、プロンプト)」は対
話ボックスに現われるプロンプトストリングを指定する
8 、  r DLsplay (J象[:、obj]
) Jは指定対象をウィンドウ対象に写像する。
9 、  r Epilog (命令)」は、ユーザが
ファイルメニューからrQUITJを選択してからアプ
リケーションツールに送るべきストリングを指定する。
10、「Error(メツセージ、支援、重大度(se
verity)、標題)」は、これがエラー状態を示し
、アプリケーションツール及びカプセル化プログラムを
終結するのに使用できる他は、対話関数と同じである。
エラーメツセージは対話ボックス内に表示される。
11、rError query (命令、パターン、
成功、タイムアウト)」は、アプリケーションツールに
送られた命令の成功又は失敗を判定する機構である。
12、rExclusive (標題、題目[、ite
mコ)」は、その要素がυト他的選択であるポツプアッ
プメニューを持出す。
13、「Execute (n) Jはn番目のバッフ
ァの最後の行をオペレーティングシステムのシェルに送
る。実行した行の結果をストリングとして戻す。
14、rFetch(対象、指標)」は指定された編集
可能対象内部の指示された行を戻す。
15、l”Fetch 5elected (対象)」
は指定された編集可能対象から所定の行又は行(複数)
を戻す。
16、rFind object (名前)」指定され
た名前の付いた対象を探す。
17、rGet attribute (対象)」は指
定対象の属性リストを得る。
18、「Get context dfrectory
 □ Jは現在の文脈ディレクトリを戻す。
19、「Get context file □ Jは
現在の文脈ファイルを戻す。
20、rGet context host □ Jは
現在の文脈ホストを戻す。
21、  r Invocation (命令、ホスト
、モード)」は呼出すべきアプリケーションツールを指
定する。アプリケーションツールを実行すべきホストを
指定することができる。
22、rMake manager (親、形式、名前
)」はマネージャ対象を作り出す。
23、rMake message pattern 
(形式、種類、命令、ホスト、ディレクトリ、ファイル
、データ、ID、及びツール名)」は指定フィールドを
一杯にした状態でメツセージ事象を宣言するとき使用す
るメツセージパターンストリングを作り出す。
24、「Make object (7ネージヤ、名前
、形式、ラベル、ロケーション、属性、事象[even
tl) Jは対象を作り出す。対象のパラメータは(a
)マネージャ、すなわちこの対象を制御するマネージャ
ウィンドウ対象、(b)名前、すなわち対象に対する一
義的識別子、(C)形式、すなわち対象の形式、(d)
ラベル、すなわち対象上に表示すべきラベル、(e)ロ
ケーション、すなわち対象のマトリックス形でテーブル
わした論理的位置、(f)属性、すなわち対象の属性、
及び(g)アプリケーションツール、ユーザ、メツセー
ジサーバ、又はオペレーティングシステムから認識され
ている事象、である。次の対象形式識別子が利用される
。命令、編集、映像、ラベル、リスト、メニューボタン
、メツセージ、及びトグル。
25、「Message class □ Jは現在の
メツセージの種類フィールドを戻す。
26、rMessage command □ Jは現
在のメツセージの命令フィールドを戻す。
27、rMessage data (n) Jは現在
のメツセージのn番目のフィールドを戻す。
28、「Message directory □ J
は現在のメツセージのディレクトリ文脈フィールドを戻
す。
29、l”Message file □ Jは現在の
メツセージのファイル文脈フィール、ドを戻す。
30、rMessage hostJは現在のメツセー
ジのホスト文脈フィールドを戻す。
31、rMessage toolJは現在のメツセー
ジのツールフィールドを戻す。
32、rMessage type □ Jは現在のメ
ツセージの形式フィールドを戻す。
33、rPreamble (命令)」は最高レベルウ
ィンドウの表示前にアプリケーションツールに送るべき
テキストを指定する。この関数は初期化指令を送るため
に用いられる。
34、rPrint (パラメータ[、paraml)
 Jは成るデータ形式のパラメータの成る数を取り、こ
れらを標準出力を印刷する。
35、rQuit OJはカプセル化アプリケーション
ツールを出る。これは通常カプセル化プログラムをも出
る。
36、rReplace (対象、指標、データ)」は
指定データを備えた編集可能対象内の指示された行を置
き換える。
37、rsearch (対象、データ、指標)」ハ指
定データに対する編集可能な対象を探す。
随意選択の指標は特定の行に関する探索を開始するのに
使用することができる。
38、rselect (対象、指標、終端指標)」は
、編集可能対象内の指示された行又は行(複数)を選択
する。終端指標が無であれば、指示された行だけが選択
される。「end 1ndexJが指定されれば、指標
からrend 1ndexJまでを含む行が選択される
。選択された行が戻される。
39、rsend command (テキスト、論理
)はストリングデータをアプリケーションツールに送る
。rError queryJ関数が指定されれば、「
5end commandJはr Error que
ryJパターンが合うまで待機する。次にr Send
commandJは「queryJパターンが合ったか
否かに基いて真又は偽を戻す。
40、rSend event (対象、事象)」はユ
ーザが対象に関する事象をプログラム的に作ることがで
きるようにする。
41、  rSend message (形式、ツー
ルの種類、命令、データ)」はメツセージをメツセージ
サーバを介して送る。ユーザはメツセージの形式、種類
、命令、及びデータ部分を指定することができる。現在
の文脈はメゾセージの文脈部分に使用される。
42、「Set context (ホストストリング
、デイレクトリストリング、ファイルストリング)は現
在の文脈の値を内部で設定する。
43、rset context directory
 (デイレクトリストリング)」は現在の文脈ディレク
トリの値を内部で設定する。
44.1set context file (ファイ
ルストリング)」はファイル文脈の値を内部で設定する
45、rSet context host (ホスト
ストリング)はホスト文脈の値を内部で設定する。
46、rstart (命令、ホスト、接続子)」ハ制
御をインタプリタから事象ハンドラに移し、アプリケー
ションツールを直ちに始動する。これはウィンドウ環境
が作り出されてからに限ってIDFに現われるべきであ
る。
47、rstring compare (ストリング
1、ストリング2、ケース感度、長さ)は二つのストリ
ングを比較する。ケースの感度及び長さを随意に指定す
ることができる。
48、「string 1ndex (データ、指標)
」は指示された行を指定データから戻す。
49、rstring length (ストリング)
」は指定ストリングの長さを戻す。
50、  rString 1ines (データ)」
は指定デー」 夕の行の数を戻す。
51、rString make 1ines (スト
リング、[str])」は指定ストリングから戊る行が
分離された新行のストリングを戻す。
52、rstring portion (ストリング
、開始、終点)」は指定始点から指定終点までの指定ス
トリングの部分を示す。
53、rstring position (ストリン
グ1、ストリング2、ケース感度、rev)Jは他のス
トリング内の指定ストリングの位置を戻す。ケース感度
を随意に指定することかできる。
54、rSystem (指令、ホスト)」はシェル内
の指令を実行する。
55、「Tool class (種類)」はカプセル
化期間全体に対するツールの種類を設定する。
カプセル化 カプセル化システムのデータ流れ図を第6図に示す。デ
ータの流れはブロック間の実線で表しであるが、制御機
能は破線で表しである。コンパイラ50はファイルシス
テム80からインタフェース記述ファイルを読取り、記
号テーブル52及び命令文テーブル54を含む中間コー
ド表現を作る。コンパイラ50はインタフェース記述言
語のBackus Naur形による表現をUNIXツ
ールのyacc及びlexに供給することにより実現さ
れる。yacc及びlexの各ツールはBackus 
Naur形で動作し、コイバイラ50を発生する。
コンパイラ50により作られた記号テーブル52は変数
及び関数と名付けられたルックアップ用のテーブルであ
る。コンパイラ50は新しい記号及び関連する記号特性
を記号テーブル52に供給する。記号テーブルには名前
、形式、値、及び関数のフィールドがある。名前フィー
ルドは記号の印刷可能な名前である。形式フィールドは
記号がローカルであるか全体であるかを、及びデータ形
式を指定する。値フィールドは現在記号と関連している
値を指定する。関数フィールドは現在記号と関連してい
る関数コードを指定する。
記号はハツシュアルゴリズムを使用して記号テーブルに
記憶される。ハツシュアルゴリズムは、記号の印刷可能
な名前の文字に基づき一次ハッシングを、及び−次ハッ
シングが衝突を生ずるとき二次ハツシングを、行う。二
つ以上の記号が記号テーブル内に同じ指標を発生すると
衝突が起こる。ハツシュアルゴリズムは記号データの記
憶に使用される指標を発生する。記号データはハツシュ
アルゴリズムを再び使用して記号テーブル内に設置され
る。記号テーブルの簡単な例を第7図に示す。
コンパイラ50は命令文テーブル54をも発生する。コ
ンパイラは新しい命令文及び関連する命令文情報を命令
文テーブル54に供給する。命令文テーブルには三つの
フィールド、すなわち、タグ、左側、及び右側、がある
。タグは要素の形式の識別子である。左側及び右側はデ
ータ又は命令文テーブルの他の記述項を指すポインタと
することができる。命令文テーブルの簡単な例を第8図
に示す。
コンパイラ50がインタフェース記述ファイルに基いて
記号テーブル52及び命令文テーブル54を発生してか
ら、インクブリタラ8における評価ルーチンが命令文テ
ーブル54にある命令を評価する。評価ルーチンの流れ
図を第9図に示す。
評価プログラムは段階102で命令文テーブル54の始
まりを指すポインタを利用してテーブルの最初の記述項
のタグフィールドにアクセスする。
評価フィールドは段階104でタグフィールドを評価し
、段階106で最初の記述項のタグフィールドに指定さ
れている動作を行うコードまでジャンプする。評価を完
了するためには、命令文テーブル記述項の左側(LH3
)及び右側(RH3)を評価しなければならない。評価
プログラムを再び呼出して左側を評価し、段階108で
結果をスタックに押上げる。左側及び右側に対する値は
命令文テーブルフィールドから、又は記号テーブルを参
照して得ることができる。命令文テーブルが記号を参照
すると、評価プログラムは記号テーブルにジャンプし、
指定記号の値を調べる。段階110で右側を評価し、結
果をスタックに押上げる。段階112で、命令文の左側
及び右側を評価し終わってから、指定の動作を行い、命
令文の値を戻す。次に評価プログラムは命令文テーブル
の次の記述項に進み、評価を繰返す。この手順を命令文
テーブルが完全に評価されてしまうまで続ける。評価に
より後に説明するように実行時間動作中に使用される対
象が構築される。
命令文テーブルは通常上に説明した所定の関数を一つ以
上載せている。所定の関数をユーザが指定すると、評価
プログラムは所定の関数を表すコードにジャンプする。
所定の関数は記号テーブルにそれら関数のコードを指す
ポインタの付いた所定の記述項(entry)を備えて
いる。
評価プログラムに関連するのは評価プロセス中値を記憶
するスタックである。命令文テーブル記述項の左側及び
右側を評価すると、戻された値がスタックに押上げられ
る。成る場合には、命令文の左側及び右側がそれぞれ単
一の値であり、他の場合にはどちらか又は双方が値のリ
ストである。命令文テーブル記述項に指定されている動
作を実行すると、値がスタックからポツプアップされて
、動作の値が決定される。
典型的には、IDFの終りにある最後の命令文は所定の
関数5tartの呼出しである。評価プログラムが命令
文テーブルの5tart関数に達すると、制御が事象ハ
ンドラ62に移る。
次にIDF、記号テーブル52、及び命令文テーブル5
4の間の関係を示す簡単な例を挙げることにする。例の
IDFは下記のように指定される。
event  e  =  <User、  ”5el
ect″、  DoLt□>。
attribute a = Quiet l Wid
th:100;make object、 (Pare
nt、  ’Button 1”Command、”5
earch” [1,1]、  a、 e); 5tart  (): 上の例に対応する記号テーブル及び命令文テーブルをそ
れぞれ第7図及び第8図に示す。上の例に対応する記号
テーブルには四つの記述項、変数e及びal及び関数M
ake object及び5tart、が入っている。
命令文テーブルにはe及びaを規定する宣言及び規定の
関数Make object及び5tartへの呼びが
入っている。
上に示したように、対象はユーザインタフェース及び事
象データを備えているデータ構造である。インタフェー
ス記述ファイルを作製するプログラマは対陣を作り出し
、且つ処理してデータをユーザに提示する。2種類の対
象、マネージャ及びプリミティブ、がある。マネージャ
対象はプリミティブかマネージャかのいずれかになり得
るサブ対象を備えることができる。プリミティブ対象は
どんなサブ対象をも備えることができない。対象はすべ
て、階層の最上位である最高レベルの対象を除き、親を
持っている。
対象のインタフェースデータの幾つかは表示対象の挙動
を指定する属性に記憶されている。プリミティブ対象だ
けが関連する事象又は作用を備えることができる。
規定の関数Make manager (7ネージヤ、
形式、名前、属性)及びMake object (7
ネージヤ、名前、形式、ラベル、ロケーション、属性、
事象)は対象を作り出すのに使用される。すべての対象
(最高レベルの対象を除く)は親を持っているから、最
初のパラメータはマネージャ対象である。これは対象を
階層のどこに置くべきかを示すものである。形式パラメ
ータはどの形式の対象が作り出されているかを示す単な
る識別子である。名前パラメータ及びラベルパラメータ
は、それぞれ、対象の内部名称及び表示可能ラベルとし
て使用されるストリングである。
ロケーションは対象をマトリックス配置のどこに置くべ
きかを記述する。ロケーション[1,1]はマトリック
スの左上隅である。属性は、属性パラメータを伝えるこ
とにより作り出されるとき対象に割当てることができる
。マネージャ対象には関連する事象が無いが、プリミテ
ィブ対象にはどんな数の事象をも指定することができる
。事象は後に検索したり探したりできるように対象内部
の事象リストに記憶される。
規定の関数Find object (名前)はストリ
ングパラメータを取り、指定された名前の対象について
Make object関数を通して作り出された対象
の階層を探索する。見つかったら所定の対象を戻し、見
つからなければ無を戻す。
規定の関数Add attribute (対象、属性
)は対象及び属性をパラメータとして取り、指定の属性
データを対象に組合せる。この関数は対象が作り出され
てから対象の特性を変更するのに使用される。
規定の関数Add、event (対象、事象)は対象
データ構造内のリストを指すポインタを事象データ構造
に割当てることにより事象を対象と関係づける。
動作中に、ユーザはインタフェース記述ファイルを作製
してインタフェースプログラムの所要機能を実施する。
コンパイラ50はIDFを読取り、第7図及び第8図に
示すように記号テーブル52及び命令文テーブル54を
作製する。次に、評価プログラムを呼出し、上述のよう
に命令文テーブル54を評価する。規定の関数Make
 objeCtは各対象に対する指定のパラメータを使
用して対象テーブル60の中に記述項を作製する。
評価プログラムが規定の関数5tartに達すると、制
御が事象ハンドラ62に移り、システムがユーザ、メツ
セージサーバ、アプリケーションツール、及びオペレー
ティングシステムから事象を受ける態勢が整う。
上に示したように、事象ハンドラ62はカプセル化シス
テムの実行時間動作を取扱う。事象ハンドラ62は事象
を、ユーザインタフェースから、メツセージサーバから
、アプリケーションツールから、及びオペレーティング
システムから、受取る。事象ハンドラ62は、IDFに
より確定され、記号テーブル52、命令文テーブル54
、及び対象テーブル60に変換された規則に従って事象
入力に応答する。従って、例えば、ユーザインタフェー
スでボタンを押すと、又はメツセージを他のツールから
メツセージサーバを経由して受取ると、規定の行動が取
られる。これらの行動にはメツセージをユーザインタフ
ェース、メツセージサーバ、アプリケーションツール、
及び/又はオペレーティングシステム、に送ることを含
むことができる。
現在の実施例では、事象ハンドラ62はX−ウィンドウ
システム34のコールバックの特徴を活用している。ウ
ィンドウシステムに表示されるべき対象は対象テーブル
60に規定されている。
X−ウィンドウシステム34は入力データに基き適切な
表示を発生するルーチンを備えている。
X−ウィンドウシステム34はマサチューセッツ工科大
学でX−コンソーシアムにより開発された標準ウィンド
ウ制御器である。対象を表示するときは、X−ウィンド
ウシステム34は事象ハンドラ62に対してコールバッ
クを行い、対象テーブル60の指定の対象を指すポイン
タを受取る。
このようにして、事象ハンドラ62はウィンドウ式表示
装置に対象を発生するにあたりX−ウィンドウシステム
34を活用している。対象テープル60の中のデータは
表示すべき対象の特性を規定する。
対象テーブル60の中の対象の大部分はそれに関連する
行動又は動作を備えている。行動は対象と関連する事象
として指定される。事象を受取ったことに応じて対象が
呼ばれると、対象に関して指定された関連事象が、事象
により指定された関数又は記述を実行するインタプリタ
58を呼出すことにより、実行される。
X−ウィンドウシステム34は、人力をユーザからマウ
ス入力及びキーボード入力の形で受取る。このような人
力はユーザ事象を構成する。
X−ウィンドウシステム34は事象をメツセージサーバ
から及びアプリケーションツールから受取るのにも利用
される。このような場合には、X−ウィンドウシステム
34は対象テーブル60の適切な対象に対してコールバ
ックを行う。事象ハンドラ62はインタプリタ58を通
して対象により指定された所要動作を実行する。
異なる入力事象形式を取扱うルーチンを第10A図〜第
10D図に示す。事象を受取ると、適切なハンドラルー
チンが呼出される。
段階120でX−ウィンドウシステム34がユーザ事象
を受取ると、段階122で示すように、事象ハンドラ6
2の適切なユーザ対象に対してコールバックが行われる
。ユーザ事象の場合には、X−ウィンドウシステム34
は所要ウィンドウ表示を作製するデータを対象から得る
。その他、対象は典型的にユーザ事象に応じて取るべき
行動を規定する一つ以上の関連事象を備えている。
行動は、段階124で示したように、事象の規定に関し
てインタプリタ58を呼出すことにより実行される。こ
のようにして、必要なら、ユーザ事象はウィンドウ表示
を発生し、メツセージをアプリケーションツールに又は
メツセージサーバに送るというような他の行動を起こす
ことができる。
今度は第10B図を参照すると、段階130でメツセー
ジ事象をメツセージサーバからX−ウィンドウシステム
により受取ると、事象ハンドラ62のメツセージ対象に
対してコールバックが行われる(段階132)。メツセ
ージ対象は典型的には、それぞれが上述のようにパター
ンを備えている多数の事象を備えている。受取ったパタ
ーンは、段階134で示すように、メツセージ対象に含
まれている各記憶事象パターンに対して整合させられる
。整合が見つかると、整合事象に含まれている行動が事
象に含まれている行動規定に関してインタプリタ58を
呼出すことにより実行される(段階136)。整合が見
つからなければ、段階138で、事象が標準出力上に表
示される。典型的には、標準出力はウィンドウ式表示装
置である。
今度は第10C図を参照すると、アプリケーションツー
ル事象がメツセージ事象と同じ仕方で処理される。段階
140でアプリケーションツール事象をX−ウィンドウ
システム34が受取ると、段階142で事象ハンドラ6
2のアプリケーションツール対象に対してコールバック
が行われる。
受取ったデータはアプリケーションツール対象に入って
いる記憶事象パターンに対して整合するまで合せられる
(段階144)。段階146で、整合が見つかると、整
合事象に含まれている行動が実行される。整合が見つか
らなければ、段階148でアプリケーションツール事象
が標準出力に表示される。
上述のように、ユーザ事象、メツセージ事象、及びアプ
リケーションツール事象はX−ウィンドウシステム34
により受取られる。この構成はX−ウィンドウシステム
の能力を利用して事象を受取る。論理的観点からは、事
象は実際には事象ハンドラ62から受取られる。
今度は第10D図を参照すると、段階150でオペレー
ティングシステムからのシステム信号が(X−ウィンド
ウシステム34により受取られるのではなく)事象ハン
ドラ62により受取られる。
段階152でシステム対象が呼出され、受取った信号が
段階!54でシステム対象に記憶されている事象パター
ンに対して整合させられる。整合が見つかると、整合事
象により指定された動作が段階156で実行される。シ
ステム信号の場合には、信号の名前を表すストリングが
整合に使用される。システム信号には終結命令又は割込
命令のような標L:$UNIXオペレーティングシステ
ム信号がある。
上述の多数の規定関数は事象ハンドラ62の実施時に使
用される。規定の関数Display (最高レベル対
象)は指定の各最高レベル対象の他に各最高レベル対象
の下にあるすべてのサブ対象に対するX−ウィンドウシ
ステム表現を作り出す責任がある。指定された対象が最
高レベルの対象でなければ、その対象は無視される。表
示関数は対象階層を指定の各最高レベル対象から始め、
横断することにより実施される。各対象について、X−
ウィンドウシステム34に対して呼出しを行い、その対
象を説明する。すなわち、データ空間が作り出されて詰
込まれ、対象が表示画面上に写像される。最高レベル対
象より下のすべての対象が作り出されてしまうと、ウィ
ンドウ全体が実現する、すなわち表示される。
規定の関数5tart (命令、ホスト、接続子)には
二つの主要な責務がある。この関数はカプセル化アプリ
ケーションツール42を始動させようとし、またプログ
ラム制御を事象ハンドラ62に渡す。事象ハンドラ62
は事象をX−ウィンドウシステム34から受入れ、事象
ハンドラ内の適切なルーチンを呼出してその事象を処理
する単なるループである。関数の命令及びホストパラメ
ータはストリングである。命令は実行すべきオペレーテ
ィングシステム命令か又はアプリケーションツール42
に対するプログラム呼出しである。ホストは命令を実行
すべきマシンの名前である。接続子はアプリケーション
ツールを接続するモードを識別する識別子である。モー
ドは端子又はバイブとすることができる。端子モードは
アプリケーションツールが端子で実行するよう指示され
ているとき使用される。パイプモードは生データをアプ
リケーションツール42の出ツノから読取ることができ
るほとんどの用途に使用される。関数5tartは後に
説明するようにサブプロセス制御器68の呼出しを経て
実施される。5PCOpen命令はアプリケーションツ
ールとの接続を確立し、S P CSpawnは命令ス
トリングを実行する。
制御は5tart関数により事象ハンドラに渡されるの
で、5tart関数はアプリケーションツールがQui
t関数により、すなわち、ユーザが主ウィンドウのファ
イルメニュー内のQuitメニュー項目を選択して、中
止(quit)するまで戻らない。
規定の関数Qui tは制御を事象ハンドラ62からイ
ンタプリタ58に逆に戻すのに使用される。
これは戻ることができる事象ハンドラ処理ループを指示
する変数を設定することにより行われる。処理ループは
5tart関数で呼出されたものであるから、評価プロ
グラムはその呼出し後その点でのユーザコードの処理を
続ける。
規定の関数Return from (対象)は表示関
数を使用して前に初期設定したウィンドウを動かすのに
使用される。Return from関数は表示画面か
らウィンドウを除去するが、それに対するメモリを除去
しないので、対象を表示するため更に呼出しを行うとウ
ィンドウが関数を呼出したときと同し状態に戻されるこ
とになる。
規定の関数5top (コールバック)はアプリケーシ
ョンツール42にそれを終結するよう指示するUNIX
信号を送ることによりアプリケーションツール42を抹
殺(kill) I、ようとする。これはサブプロセス
制御器68のS P CK11l Processを呼
出して行う。論理パラメータが真であれば、5top関
数はまた、アプリケーションツールが実際に終結すると
き、ユーザによりその関数が規定されれば、Termi
nationという名のユーザ規定可能な関数を呼出す
規定の関数Error query (クエリ−、パタ
ーン、成功、タイムアウト)は5end命令関数と関連
して使用され、エラー状態を確認(verify)して
アプリケーションツールによる命令の処理完了を待つ。
Error query関数は指定のパラメータデータ
を簡単に記録するが、このデータは5end comm
and関数により使用される。クエリ−パターン及び成
功パラメータはストリングであり、タイムアウトパラメ
ータは整数である。
規定の関数5end comrnand (命令、新行
)はインタフェースプログラム40からのデータをアプ
リケーションツール42に渡す。命令パラメータは渡す
べきストリングであり、新行パラメータはストリングの
終りに新行を送るか否かを示す論理である。この関数は
、後に記すようにサブプロセス制御器68のルーチンの
一つである5PCWriteにより実施される。ストリ
ングデータはアプリケーションツール42の人力記述フ
ァイルに書かれる。5end command関数は命
令ストリングをアプリケーションツールに書くことがで
きない場合の他は、真に戻る。
5end command関数の挙動は、ユーザが前に
Error querY関数の呼出しを行ったとき修正
されている。Error query関数はエラー状態
を確認して命令の処理完了を待つのに使用される。
Error query関数が呼出されていれば、5e
nd cornmand関数が命令ストリングを書込ん
でからクエリ−ストリングを手渡す。次にクエリ−スト
リングが命令ストリングの後アプリケーションツールに
より実行される。次に5end command関数は
、やはりError query関数で指定されている
パターンストリングを整合させようとする。整合すると
、そのストリングをError query関数からの
成功ストリングと比較する。
これらストリングが同じであれば、5end comt
nand関数が真に戻る。その他の場合は偽になる。
探しているパターンがError query関数のタ
イムアウトパラメータにより指定される秒数内で見つけ
ることができなければ、5end command関数
が偽に戻る。
規定の関数5end event (対象、事象)はユ
ーザが対象に関する事象をプログラム的に作製できるよ
うにする。典型的には、ユーザ事象のような事象、すな
わちウィンドウシステムにより発生するもの、はユーザ
が対象ウィンドウを実際に選択するとき発生する。5e
nd event関数はユーザが事象を発生していれば
呼出されている同じハンドラルーチンを呼出す。
規定の関数System (命令、ホスト)をユーザが
任意のオペレーティングシステム命令を、ローカルに又
は遠隔に、実行することができる一つの方法である。二
つのパラメータはストリングである。命令ストリングは
実行すべきオペレーティングシステム命令であり、どん
なオペレーティングシステム命令又はプログラム呼出し
をも備えることができる。ホストは実行を試みようとす
るマシンの名前である。システム関数は実行命令の出力
として書かれたデータであるストリングを、又は命令を
実行することができないかホストを見つけることができ
ない場合には無のストリングを、戻す。
システム関数はサブプロセス制御器68を呼出すことに
より実施される。ルーチン5PCOpenの呼出しはサ
ブプロセスを実行する接続を確立するのに使用される。
次に、S P CSpawnに対する呼出しはシェル内
の指定命令ストリングを実行するのに使用される。
メツセージはメツセージサーバにより送られるストリン
グである。規定の関数5end message(形式
、種類、命令、データ)はメツセージをメツセージサー
バに手渡す。この関数は、最初に、ストリングである指
定パラメータに基いてメツセージストリングを作製し、
次にそのメツセージストリングをメツセージサーバに書
込む。5end message関数は現在設定されて
いる文脈を、メツセージを手渡す前に、新しく作製され
たメツセージストリングに挿入する。
規定の関数Make message pattern
 (形式、種類、命令、ホスト、ディレクトリ、ファイ
ル、データ、ID、名前)は、メツセージサーバに送ら
れるストリングを作製する。他のツールからメツセージ
サーバにより受取られ、このパターンに整合するメツセ
ージはカプセル化システムに伝えられる。Make m
essage pattern関数はメツセージパター
ンの構成要素として使用されるストリングパラメータを
取る。パラメータが無であれば、ワイルドカードがその
パラメータの代りに置き換えられる。このことはトーク
ンがすべてその特定のフィールドに整合することを意味
している。この関数は新しく作製されたストリングを戻
すが、このストリングは次にメツセージ事象要求により
メツセージサーバに送られる。
規定の各関数Message tool、Messag
e I D。
Message type、、Message cla
ss、 Message commandXMessa
ge host、 Message director
y、 Message fee、及びMessage 
data (指標)は、最も最近に受取ったメツセージ
のフィールドであるストリングを戻す。例えば、Mes
sage command関数は到達した最後のメツセ
ージの命令フィールドを戻す。Message dat
a関数は一つから指示された検索すべきデータフィール
ドを示す一つのパラメータを取る。すなわち、Mess
age data(2)は受取った最後のメツセージの
2番目のデータフィールドを戻す。MessageはO
又はそれ以上のデータフィールドを備えることができ、
上限はない。
規定の関数Tool class (種類)はストリン
グパラメータを取り、ツールの種類をカプセル化アプリ
ケーションツール42に割当てる。ツールの種類はどの
種類のメツセージをメツセージシステムに渡すべきかを
決定するのに使用される。
「文脈(context) Jという用語はツールがそ
れにより動作しているデータの現在の位置を記すのに使
用される。カプセル化システムでは、現在の文脈は現在
の動作ディレクトリとしても使用される。換言すれば、
ユーザが文脈を設定すると、カプセル化システムはその
現在のディレクトリを同じ文脈に設定しようとする。規
定の関数Get context、 Get dire
ctorySGet context file、及び
Get context hostはパラメータを取ら
ず、各々は現在の文脈又はその構成要素を反映するスト
リングを戻す。
規定の関数Set context (ホスト、ディレ
クトリ、ファイル) 、Set context ho
st (ホスト)Set context direc
tory (ディレクトリ)、及びSet conte
xt file (ファイル)はストリングパラメータ
を取り、現在の文脈の一つ以上の構成要素を設定しよう
とする。これら関数は現在の文脈が既知のマシンについ
ての既知のディレクトリであれば真を戻す。そうでない
場合には、偽を戻す。また、文脈が見つかれば、カプセ
ル化システムの現在の作業ディレクトリが同じ文脈に設
定される。
規定の関数Make filename (ホスト、デ
ィレクトリ、ファイル、存在)はバス名である新しいス
トリングを作り、ファイルに戻す。ファイルはローカル
又は遠隔のいずれかにすることができる。Make f
ilename関数は下層プラットホーム分散データ機
構を使用してストリングを作・製する。ホスト、ディレ
クトリ、及びファイルのパラメータはストリングである
が、存在パラメータは論理である。ホストパラメータ又
はディレクトリパラメータのいずれかが現実のマシン又
はディレクトリを表わさなければ、無ストリングが戻さ
れる。また、ユーザが存在論理に対して値、真、を伝え
れば、Make filename関数だけが、ファイ
ルが存在する場合パス名ストリングを戻す。そうでない
場合は無ストリングを戻す。
事象ハンドラ62は、アプリケーションツール42との
通信にあたり、サブプロセス制御器68を使用する。サ
ブプロセス制御器68はサブプロセスをローカルに又は
遠隔で実行させるCASEシステムのライブラリルーチ
ンである。サブプロセス制御器68はライブラリを呼出
すことによりアプリケーションツール42を実行させる
標準UNIXシステムでは、プロセス制御呼出しrFo
rkJを使用してサブプロセス用空間を作り出し、呼出
しrExecJを使用してサブプロセスを実行する。サ
ブプロセスとの通信は、簡単にはデータのストリングで
あるUNIXバイブによる(バイブモード)か、又は「
pty」、すなわち、データを端末(端末モード)と同
じ仕方で様式化するUNIXモードによることができる
。端末モードでは、サブプロセスは端末と通信している
ように見える。標準UNIXシステムでのFork、E
xec。
バイブモード、及び端末モードの使用はローカル動作に
限られる。
本発明のサブプロセス制御器68によればアプリケーシ
ョンツール42は、カプセル化システムに実行をローカ
ルに又は遠隔で呼出す方法を知らせる必要なしにローカ
ルに又は遠隔で実行することができる サブプロセス制御機構の構造を第11図に示す。
サブプロセス制御器の動作の流れ図を第12図に示す。
プロセス170(事象ハンドラ62のような)がサブプ
ロセス172又は174(アプリケーションツール42
のような)と通信したいときは、段階200でサブプロ
セス制御器176 (S P C)が呼出される。段階
201でチャンネルがサブプロセッサに対してあらかじ
め開いているか否かを判定するチエツクが行われる。サ
ブプロセスへのチャンネルが開いていなければ、最初の
命令はチャンネルをサブプロセスに対して開かせること
である(段階202)。開チャンネル命令はSPC0p
en (ホスト、入出力モード)の形のものである。開
命令はサブプロセスを実行させるべきホストを指定し、
入出力モードは、バイブモード又は端末モードのような
チャンネル挙動、及び書込み、出力、及びエラーの各動
作が行われるか、の記述を含んでいる。サブプロセス制
御器はローカルコンピュータ180によるローカルサブ
プロセス172、又は遠隔コンピュータ182による遠
隔サブプロセス174、との通信を確立するチャンネル
ルーチン178を備えている。サブプロセス制御器はま
た開いた各チャンネルに対して、チャンネルに関連する
、ホスト及び入出力モードの情報を含む、データを備え
たチャンネルデータ構造を備えている。チャンネルルー
チン178が段階203でホスト情報からローカル実行
が必要であることを判定すると、段階204でサブプロ
セスがあらかじめ始動しているか否かを決定するチエツ
クが行われる。指定の入出力モードに従ってFork 
呼出し及びExec 呼出しを直接利用してローカルサ
ブプロセス用の空間を作り、ローカルサブプロセスを実
行する(段階205)。次に段階206で命令をサブプ
ロセスに伝える。
段階203でチャンネルルーチン178がホスト情報か
ら遠隔実行が必要であること判定すると、命令内のパラ
メータが段階208で翻訳され、回路網を通して遠隔コ
ンピュータ182に送られる(段階21O)プロトコル
に変換される。プロトコルは命令識別子、チャンネル番
号、及びデータのストリングを備えた文字ストリングで
ある。
遠隔コンピュータ182はSPCデーモン184として
知られているルーチンを備えている。SPCデーモン1
84はデータ用回路網で聴き、適切な行動を取る。SP
Cデーモンはプロトコルを翻訳し、あたかもサブプロセ
スのローカル実行であるかのように必要な動作を行う。
段階211でサブプロセスが前に始動してしまっている
か判定するチエツクを行う。サブプロセスが始動してい
なければ、SPCデーモンは遠隔コンピュータ182で
Fork及びExrec を呼び、パイプ又は端末の通
信モードを使用して遠隔サブプロセス174の空間を作
り、遠隔サブプロセス174を実行する(段階212)
。次に段階214で命令をサブプロセスに伝える。
チャンネルがサブプロセス、又はアプリケーションツー
ルに対して開いてから、スポーソ(Spa wn )命
令を使用してサブプロセスを呼出す。
スポーソ命令はS P CSpawn (チャンネル、
プロセス、データ)の形をしている。SPC8pawn
命令はチャンネルが開いてからだけ送られる。
サブプロセス制御器が使用する別のプロセス制御関数に
は、チャンネルを開いてサブプロセスを呼出すS P 
C0pen and Spawn、あらかじめ開いてい
るチャンネルで新しいサブプロセスを再始動させるS 
P CExecute Process、チャンネルを
リセットするS P CRe5et、チャンネルを閉じ
てそれに割当てられている資源を解放するS P CC
1oses及び現在実行中のプロセスをチャンネルに取
付けるS P CAttachがある。
チャンネルが開き、サブプロセスが呼出されると、カプ
セル化システムはアプリケーションツールと通信するこ
とができる。アプリケーションツールと通信するには下
記関数が利用される。
1、  rsPc ReadJはSPCチャンネルから
バッファに読込む。
2、  rsPc WriteJバッファからspcチ
ャンネルに書込む。
3、  rSPCK11l ProcessJは実行サ
ブプロセスを指定のSPCチャンネルを通して停止させ
る。
4  r S P CK11l ProcessesJ
はすべての実行サブプロセスを停止させる。
5、 rSPCInterrupt 5ubproce
ssesjはSPCチャンネル上のサブプロセスを翻訳
する。
6、  rsPc Signal ProcessJは
特定のオペレーティングシステム信号をSPCチャンネ
ルで実行サブプロセスに送る。
7 、  r S P CRegister TerI
T+1natorJはサブプロセスが終息したとき呼出
すべきコールバックを登録する。
8、  rSPCAdd InputJはサブプロセス
からの入力か利用可能であるとき呼出すべきコールバッ
クを登録する。
一般に、サブプロセス制御器は任意数のチャンネルをロ
ーカルに又は遠隔に割当てられた任意数のサブプロセス
に対して開くのに利用することができる。各サブプロセ
スはパイプモードか端末モードかで動作することができ
、書込み専用、読取専用、エラー専用、及びその組合せ
、を含むどんな通信モードも各チャンネルに利用するこ
とができる。サブプロセス制御器を使用することにより
、カプセル化システムがローカル通信又は遠隔通信の詳
細を知ることは不必要である。サブプロセス制御器はカ
プセル化システムと組合せての使用に限定されない。こ
の制御器はすべてのプロセス又はツールとすべてのサブ
プロセスとの間の通信に使用することができる。
カプセル化システムの主制御ループは、第6図に制御器
56として示しであるが、インタフェース記述ファイル
のコンパイル及び評価を制御する。第13図に示すよう
に、制御器56は段階222でカプセル化システムを初
期設定する。IDFがコンパイルされていなければ、制
御器56はコンパイラ50にファイルシステム80から
IDFにロードし、結果を記号テーブル52及び命令文
テーブル54にコンパイルするように指示する(段階2
24)。IDFが前にコンパイルされており、記号テー
ブル及び命令文テーブルがファイルシステムに記憶され
ていれば、制御器56はダンプ/ロードユニット82に
ファイルシステム80から記号テーブル及び命令文テー
ブルにロードするように指示し、記号テーブル52及び
命令文テーブル54を評価に利用できるようにする。
次に段階226で、制御器56はインタプリタ58を呼
出し、上述のように命令文テーブル54を評価させる。
次に、段階228で制御がインタプリタ58から事象ハ
ンドラ62に送られる。制御が事象ハンドラ62に伝え
られると、カプセル化システムは実行時間動作の準備が
整い、制御器56はもはや無関係になる。段階230で
制御器56が整理(clean up)されて出る。
上述のように、ダンプ/ロードユニット82はあらかじ
めコンパイルされているIDFにロードし、コンパイル
されたIDFを将来の使用のためファイルシステム80
に記憶するのに使用される。ダンプ/ロードユニット8
2はカプセル化システムを読取り専用構成で利用する能
力を示す。IDFは特定のアプリケーションツールにつ
いて開発されており、IDFは記号テーブル及び命令文
テーブルを作製するようにコンパイルされている。コン
パイルされたIDFは続いて同じシステムで、又は異な
るシステムで使用することができる。従って、IDFは
一度作製され、コンパイルされたIDFが他のユーザに
提供される。バス名アナライザ84はカプセル化システ
ムと関連してユーザにより呼出されたフアイルを探すの
に使用される。
カプセル化アプリケーションツールのウィンドウ表示の
一例を第14図に示す。テープファイル記録用のツール
であるUNIXシステムツール「tarJが本発明によ
りカプセル化された。
第14図のウィンドウ表示にはプルダウンメニュー域2
50、プロジェクトチーブ装置及びディスクファイルの
識別、及びカプセル化テープ記録ツールからの出力を示
す編集ウィンドウ252、がある。
本発明のカプセル化システムについて、X−ウィンドウ
システム34によるユーザインタフェース、メツセージ
サーバへのメツセージインタフェース、オペレーティン
グシステムへのシステムインタフェース、及びアプリケ
ーションツール42へのアプリケーションインタフェー
ス、を備えるものとしてここに説明してきた。これはカ
プセル化システムの最も一般的な形である。
成る場合には、各種インタフェースを省略することもあ
る。ユーザインタフェースは、アプリケーションツール
がメツセージ入力に基いて機能を自動的に行うようにな
っていれば、省略することができる。例えば、システム
内の他の一つ以上からのメツセージによりアプリケーシ
ョンツールがユーザの介在なしにファイルをテープに記
憶することができる。他の場合には、CASEシステム
内の他のツールとのメツセージインタフェースが不必要
で、アプリケーションツール42とのすべての対話がユ
ーザインタフェースを通して行われる。更に他の状況で
は、アプリケーションツールそれ自身を省略することが
でき、カプセル化システムをアプリケーションツールに
干渉することなくCASEシステムで所要機能を行うの
に利用することができる。
これらすべての場合において、インタフェース記述言語
が一つ以上の源からの事象に応じて行われるべき動作を
規定するIDFを作製するのに使用される。
(発明の効果) 以上のように、本発明によれば、コンピュータ支援ソフ
トウェア開発システムにアプリケーションツールを組込
み、利用する方法及び装置が提供される。
さらに、本発明によれば、アプリケーションツールの2
進コードだけを利用するコンピュータ支援ソフトウェア
開発システムにアプリケーションツールを組込む方法及
び装置が提供される。
さらに、本発明によれば、コンピュータ支援ソフトウェ
ア開発システムにアプリケーションツールを組込み、ア
プリケーションツールとソフトウェア開発システムを構
成する他のツールとの間の通信ができるようにする方法
及び装置が提供される。
さらに、本発明によれば、本発明の更に他の目的はコン
ピュータ支援ソフトウェア開発システムにアプリケーシ
ョンツールを組込み、ソフトウェア開発システム内の他
のツールがアプリケーションツールにより動作をトリガ
することができる方法及び装置が提供される。
さらに、本発明によれば、本発明のなお他の目的はコン
ピュータ支援ソフトウェア開発システムにアプリケーシ
ョンツールを組込み、アプリケーションツールにソフト
ウェア開発システムに適合できるユーザインタフェース
が設けられるようにするツール及び装置が提供される。
さらに、本発明によれば、本発明の更に他の目的はコン
ピュータ支援ソフトウェア開発システムにアプリケーシ
ョンツールを処理しなおすことなくアプリケーションツ
ールを組込む方法及び装置が提供される。
さらに、本発明によれば、本発明のなお他の目的はコン
ピュータ支援ソフトウェア開発システムにアプリケーシ
ョンツールを組込み、アプリケーションツールがローカ
ルホストコンピュータ又は遠隔ホストコンピュータで実
行することができるようにする方法及び装置が提供され
る。
本発明をCASEシステムに関連して説明してきたが、
本発明はCASEシステムでの使用に限定されない。シ
ステム内の他のツールにより行われる特定の機能は本発
明に無関係であることを理解するであろう。
現在のところ本発明の好適実施例と考えられるものにつ
いて図示し、説明してきたが、当業者には付記した特許
請求の範囲で規定した本発明の精神から逸脱することな
く変更及び修正を行うことができることが明らかであろ
う。
【図面の簡単な説明】
第1図は、コンピュータ支援ソフトウェアエンジニアリ
ングシステムのアーキテクチャを示す図であり、 第2図は、CASEシステムが実行される分散式計算シ
ステムのブロック図であり、第3図は、CASEシステ
ムのツールに対する通信インタフェースを示したブロッ
ク図であり、 第4図は、CASEシステムのツール間の通信を示した
ブロック図であり、 第5図は、本発明のカプセル化システムを説明したブロ
ック図であり、 第5A図は、CASEシステム内のアプリケーションプ
ログラムをカプセル化するための方法の高位の流れ図を
示し、 第6図は、本発明のカプセル化システムのデータ流れ図
を示しており、 第7図は、カプセル化システムに用いられる記号テーブ
ルの例を示しており、 第8図は、カプセル化システムに用いられる命令文テー
ブルの例を示しており、 第9図は、評価手段の動作を示す流れ図であり、 第10A図乃至第10D図は、それぞれ、人力事象に応
答して事象ハンドラによって実行されるルーチンを示す
流れ図であり、 第11図は、サブプロセス制御器の構造を示すブロック
図であり、 第12図は、サブプロセス制御器の動作を示す流れ図で
あり、 第13図は、カプセルか制御器の動作を示す流れ図であ
り、さらに、 第14図は、テープアーカイブツールのカプセル化され
たバージョンのウィンドウ表示の例を示している。 34・・・X−ウィンドウシステム、 36・・・メツセージサーバ、 42・・・アプリケーションツール、 48・・・インタフェース記述ファイル、50・・・コ
ンパイラ、 52・・・記号テーブル、 54・・・命令文テーブル、 58・・・インタプリタ、 60・・・対象テーブル、 62・・・事象ハンドラ、 68・・・サブプロセス制御器、

Claims (1)

  1. 【特許請求の範囲】 1 ユーザインタフェース、オペレーティングシステム
    、及び所定のタスクを行う一つ以上の組込みソフトウェ
    ア開発ツールを備えたコンピュータ支援ソフトウェア開
    発システムにアプリケーションツールをカプセル化する
    方法であって、 開発ツールから及びユーザインタフェース から受取った所定の事象に応じて所要動作を規定するイ
    ンタフェース記述ファイルを所要動作を表す一組のデー
    タ構造に変換する段階、開発ツールから及びユーザイン
    タフェース から受取った所定の事象に応じて所定の事象に対応する
    データ構造の部分を評価すると共に、そこに規定された
    動作を実行する段階、及び データ構造の部分により要求されたときア プリケーションツールにより動作を要求する段階、 から構成されることを特徴とする方法。
JP2138141A 1989-05-26 1990-05-28 コンピュータプログラムのカプセル化方法及びその装置 Pending JPH0334018A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/358,962 US5075847A (en) 1989-05-26 1989-05-26 Method and apparatus for computer program encapsulation
US358962 1989-05-26

Publications (1)

Publication Number Publication Date
JPH0334018A true JPH0334018A (ja) 1991-02-14

Family

ID=23411747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2138141A Pending JPH0334018A (ja) 1989-05-26 1990-05-28 コンピュータプログラムのカプセル化方法及びその装置

Country Status (3)

Country Link
US (1) US5075847A (ja)
EP (1) EP0399822A3 (ja)
JP (1) JPH0334018A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799192A (en) * 1993-06-11 1998-08-25 Mitsubishi Denki Kabushiki Kaisha Tool encapsulating method and apparatus thereof

Families Citing this family (125)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2025160A1 (en) * 1989-09-28 1991-03-29 John W. White Portable and dynamic distributed applications architecture
US5291608A (en) * 1990-02-13 1994-03-01 International Business Machines Corporation Display adapter event handler with rendering context manager
FR2658934B1 (fr) * 1990-02-28 1992-04-30 Bull Sa Architecture de systeme et utilisation de cette architecture dans un procede de remplacement de cartes.
US5265250A (en) * 1990-03-29 1993-11-23 At&T Bell Laboratories Apparatus and methods for performing an application-defined operation on data as part of a system-defined operation on the data
US5231577A (en) * 1990-04-06 1993-07-27 Microsoft Corporation Method and system for processing formatting information in a spreadsheet
US5699310A (en) * 1990-06-29 1997-12-16 Dynasty Technologies, Inc. Method and apparatus for a fully inherited object-oriented computer system for generating source code from user-entered specifications
AU639802B2 (en) * 1990-08-14 1993-08-05 Oracle International Corporation Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment
AU628264B2 (en) * 1990-08-14 1992-09-10 Oracle International Corporation Methods and apparatus for providing a client interface to an object-oriented invocation of an application
US5175432A (en) * 1990-10-31 1992-12-29 Gruman Aerospace Corporation Infrared detector module test system
US5390320A (en) * 1991-01-22 1995-02-14 Grumman Aerospace Corporation Automatically converting structured analysis tool database outputs into an integrated simulation model via transportable standardized metafile
EP0501613A3 (en) * 1991-02-28 1993-09-01 Hewlett-Packard Company Heterogeneous software configuration management apparatus
US5418954A (en) * 1991-06-19 1995-05-23 Cadence Design Systems, Inc. Method for preparing and dynamically loading context files
US5452449A (en) * 1991-07-03 1995-09-19 Itt Corporation Interactive multi-module source code analyzer that matches and expands call and entry statement parameters
US5603018A (en) * 1991-07-15 1997-02-11 Mitsubishi Denki Kabushiki Kaisha Program developing system allowing a specification definition to be represented by a plurality of different graphical, non-procedural representation formats
JP2613326B2 (ja) * 1991-07-15 1997-05-28 財団法人ニューメディア開発協会 情報処理装置の履歴内容提示方法、及びその装置
US5261098A (en) * 1991-08-28 1993-11-09 Sun Microsystems, Inc. Method and apparatus for deriving object type and obtaining object type attribute values
JPH05324295A (ja) * 1991-09-12 1993-12-07 Fujitsu Ltd ソフトウエアの設計支援装置
JP2749020B2 (ja) * 1991-11-14 1998-05-13 日立ソフトウエアエンジニアリング株式会社 ダイアグラム認識システム
US5361350A (en) * 1991-12-12 1994-11-01 International Business Machines Corporation Object oriented method management system and software for managing class method names in a computer system
JPH05233326A (ja) * 1991-12-19 1993-09-10 Internatl Business Mach Corp <Ibm> コンピュータシステムにおいて事象を取り扱う方法及びシステム
DE69225389T2 (de) * 1991-12-20 1998-09-10 Int Computers Ltd Programmattributsteuerung in einem Rechnersystem
US5587935A (en) * 1991-12-23 1996-12-24 International Business Machines Corporation Integrated software development system including group decision support subsystem, application development subsystem, and bridge subsystem therebetween
US5592675A (en) 1992-01-08 1997-01-07 Hitachi, Ltd. Computer controlled method and system capable of preserving information representing plural work states and recovering the work states
US5765006A (en) * 1992-04-30 1998-06-09 Ricoh Company, Ltd. Method and system to process external entities in a document processing language
US5485615A (en) * 1992-06-10 1996-01-16 Telefonaktiebolaget L M Ericsson System and method of interactively developing desired computer programs by using plurality of tools within a process described in graphical language
US5432941A (en) * 1992-10-13 1995-07-11 Microsoft Corporation Method and system for dynamically configuring a software system using configuration groups
JPH0772999A (ja) * 1992-10-20 1995-03-17 Hewlett Packard Co <Hp> 画面対応ソフトウェアアプリケーションツールにおける表示画面事象をモニターする方法と装置
US5390325A (en) * 1992-12-23 1995-02-14 Taligent, Inc. Automated testing system
FR2701580B1 (fr) * 1993-02-10 1995-03-24 Bull Sa Procédé d'administration d'applications avec des protocoles standards.
US5819283A (en) * 1993-05-11 1998-10-06 Apple Computer, Inc. Method and system for the extensibility of objects
US5692194A (en) * 1993-05-24 1997-11-25 Hughes Aircraft Company Sequential information integration service for automatically transferring a most recent data entity between a plurality of program modules and a storage in a computer
US5715460A (en) * 1993-06-14 1998-02-03 International Business Machine Corp. Template based facility for formatting compiler output
US5748961A (en) * 1993-07-12 1998-05-05 Digital Equipment Corporation Efficient method and apparatus for compiling and linking modules of computer code in a large software system
US5500881A (en) * 1993-07-12 1996-03-19 Digital Equipment Corporation Language scoping for modular, flexible, concise, configuration descriptions
GB9316948D0 (en) * 1993-08-14 1993-09-29 Ibm Programming aid for distributed computing systems
US5710926A (en) * 1993-09-03 1998-01-20 Maurer; Joseph Clark Developers tool for object-oriented programming
US5548779A (en) * 1993-12-21 1996-08-20 Taligent System for providing system services for a device to a client using stack definition and stack description of a stack having top, intermediate, and bottom service objects
EP0760124B1 (en) * 1994-05-16 2000-08-02 Apple Computer Inc. Dialog item interface definition object
DE4418208C2 (de) * 1994-05-25 1996-11-07 Siemens Ag Verfahren und Service-Personalcomputer zum Administrieren und Warten von Kommunikationssystemen
SE503376C2 (sv) * 1994-06-13 1996-06-03 Ericsson Telefon Ab L M Kundprofilerad telekommunikationstjänst
WO1996003690A1 (en) * 1994-07-22 1996-02-08 Debenedictis Erik P Method and apparatus for controlling connected computers without programming
US5721920A (en) * 1994-08-05 1998-02-24 Telefonaktiebolaget Lm Ericsson Method and system for providing a state oriented and event driven environment
EP0713182A1 (en) * 1994-11-18 1996-05-22 Kommunedata I/S A method for the presentation of information and a system for the transfer and presentation of information
US5630066A (en) * 1994-12-20 1997-05-13 Sun Microsystems, Inc. System and method for locating object view and platform independent object
US6948070B1 (en) 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US7143290B1 (en) 1995-02-13 2006-11-28 Intertrust Technologies Corporation Trusted and secure techniques, systems and methods for item delivery and execution
US6658568B1 (en) 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US6157721A (en) 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US7069451B1 (en) 1995-02-13 2006-06-27 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7124302B2 (en) 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7133845B1 (en) 1995-02-13 2006-11-07 Intertrust Technologies Corp. System and methods for secure transaction management and electronic rights protection
US20120166807A1 (en) 1996-08-12 2012-06-28 Intertrust Technologies Corp. Systems and Methods Using Cryptography to Protect Secure Computing Environments
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7133846B1 (en) 1995-02-13 2006-11-07 Intertrust Technologies Corp. Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management
US7165174B1 (en) 1995-02-13 2007-01-16 Intertrust Technologies Corp. Trusted infrastructure support systems, methods and techniques for secure electronic commerce transaction and rights management
CN1312549C (zh) 1995-02-13 2007-04-25 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
US5943422A (en) 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
US5675730A (en) * 1995-07-07 1997-10-07 Sun Microsystems, Inc. Method and apparatus for extensible type-specific data presentation by a debugger
US5881315A (en) * 1995-08-18 1999-03-09 International Business Machines Corporation Queue management for distributed computing environment to deliver events to interested consumers even when events are generated faster than consumers can receive
FI103155B (fi) * 1995-10-11 1999-04-30 Nokia Telecommunications Oy Menetelmä tietokoneohjattujen palvelujen tuottamiseksi
SE515343C2 (sv) * 1995-10-19 2001-07-16 Ericsson Telefon Ab L M Stödfunktion för nätelement
US5787245A (en) * 1995-11-13 1998-07-28 Object Technology Licensing Corporation Portable debugging service utilizing a client debugger object and a server debugger object
US6158045A (en) * 1995-11-13 2000-12-05 Object Technology Licensing Corporation Portable debugging services utilizing a client debugger object and a server debugger object with flexible addressing support
US5778230A (en) * 1995-11-13 1998-07-07 Object Technology Licensing Corp. Goal directed object-oriented debugging system
US5812850A (en) * 1995-11-13 1998-09-22 Object Technology Licensing Corp. Object-oriented symbolic debugger using a compiler driven database and state modeling to control program execution
US5815653A (en) * 1995-11-13 1998-09-29 You; Lawrence L. Debugging system with portable debug environment-independent client and non-portable platform-specific server
US5956479A (en) * 1995-11-13 1999-09-21 Object Technology Licensing Corporation Demand based generation of symbolic information
US5790132A (en) * 1995-12-07 1998-08-04 Object Technology Licensing Corp. Image rendering system with extensible mechanism for providing visual user feedback when an image graphic is selected
US5822580A (en) * 1996-01-19 1998-10-13 Object Technology Licensing Corp. Object oriented programming based global registry system, method, and article of manufacture
US20010011253A1 (en) 1998-08-04 2001-08-02 Christopher D. Coley Automated system for management of licensed software
US5809235A (en) * 1996-03-08 1998-09-15 International Business Machines Corporation Object oriented network event management framework
US5946490A (en) * 1996-03-22 1999-08-31 Northeastern University Automata-theoretic approach compiler for adaptive software
US5745570A (en) * 1996-04-15 1998-04-28 International Business Machines Corporation Object-oriented programming environment that provides object encapsulation via encryption
US5838969A (en) * 1996-05-10 1998-11-17 Apple Computer, Inc. System and method for collecting and dispatching selected events in a computer application program
US5877768A (en) 1996-06-19 1999-03-02 Object Technology Licensing Corp. Method and system using a sorting table to order 2D shapes and 2D projections of 3D shapes for rendering a composite drawing
US7590853B1 (en) 1996-08-12 2009-09-15 Intertrust Technologies Corporation Systems and methods using cryptography to protect secure computing environments
FR2755268B1 (fr) * 1996-10-31 1998-11-27 Bull Sa Outil d'integration d'applications pour plate-forme informatique
US5812759A (en) * 1996-11-08 1998-09-22 Allen Bradley Company, Inc. Fault handling with loaded functions
US5953524A (en) * 1996-11-22 1999-09-14 Sybase, Inc. Development system with methods for runtime binding of user-defined classes
US6263376B1 (en) 1997-02-24 2001-07-17 Novell, Inc. Generic run-time binding interpreter
US7092914B1 (en) 1997-11-06 2006-08-15 Intertrust Technologies Corporation Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US6041333A (en) * 1997-11-14 2000-03-21 Microsoft Corporation Method and apparatus for automatically updating a data file from a network
US6862732B1 (en) * 1998-02-25 2005-03-01 Metaserver, Inc. Method and apparatus for event-driven processing of data
US7233948B1 (en) 1998-03-16 2007-06-19 Intertrust Technologies Corp. Methods and apparatus for persistent control and protection of content
US6219659B1 (en) 1998-07-08 2001-04-17 Electronics For Imaging, Inc. Configuration description language system
US6484311B2 (en) * 1998-07-15 2002-11-19 Microsoft Corporation Coalescing properties, methods and events
US6324681B1 (en) * 1998-10-01 2001-11-27 Unisys Corporation Automated development system for developing applications that interface with both distributed component object model (DCOM) and enterprise server environments
US6341338B1 (en) * 1999-02-04 2002-01-22 Sun Microsystems, Inc. Protocol for coordinating the distribution of shared memory
US7243236B1 (en) 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
US7430670B1 (en) 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
EP1531383A3 (en) 1999-07-30 2005-07-27 Intertrust Technologies Corp. Methods and systems for transaction record delivery using thresholds and multi-stage protocol
US7150000B1 (en) * 1999-08-17 2006-12-12 Nash Controlware, Inc. Component development with autonomous and compiled components to implement and consume services with components operate in edit and run mode
US7406603B1 (en) 1999-08-31 2008-07-29 Intertrust Technologies Corp. Data protection systems and methods
US6985885B1 (en) 1999-09-21 2006-01-10 Intertrust Technologies Corp. Systems and methods for pricing and selling digital goods
US7035989B1 (en) 2000-02-16 2006-04-25 Sun Microsystems, Inc. Adaptive memory allocation
DE10007791A1 (de) * 2000-02-21 2001-09-20 Daidalos Software Gmbh Verfahren zur Modellierung und Steuerung realer Abläufe in einer Datenverarbeitungsanlage und eine Datenverarbeitungsanlage zur Durchführung des Verfahrens
US6546359B1 (en) 2000-04-24 2003-04-08 Sun Microsystems, Inc. Method and apparatus for multiplexing hardware performance indicators
US6802057B1 (en) 2000-05-03 2004-10-05 Sun Microsystems, Inc. Automatic generation of fortran 90 interfaces to fortran 77 code
US6647546B1 (en) 2000-05-03 2003-11-11 Sun Microsystems, Inc. Avoiding gather and scatter when calling Fortran 77 code from Fortran 90 code
US6986130B1 (en) 2000-07-28 2006-01-10 Sun Microsystems, Inc. Methods and apparatus for compiling computer programs using partial function inlining
US6910107B1 (en) 2000-08-23 2005-06-21 Sun Microsystems, Inc. Method and apparatus for invalidation of data in computer systems
US7406681B1 (en) 2000-10-12 2008-07-29 Sun Microsystems, Inc. Automatic conversion of source code from 32-bit to 64-bit
US6957208B1 (en) 2000-10-31 2005-10-18 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for performance analysis using semantic knowledge
US20020188927A1 (en) * 2001-06-06 2002-12-12 Laurence Bellagamba internet provided systems engineering tool business model
US6971090B1 (en) * 2001-06-08 2005-11-29 Emc Corporation Common Information Model (CIM) translation to and from Windows Management Interface (WMI) in client server environment
US6799173B2 (en) * 2001-11-14 2004-09-28 Sun Microsystems, Inc. Method and apparatus for sharing code containing references to non-shared objects
US20040128305A1 (en) * 2002-12-27 2004-07-01 International Business Machines Corporation Data consolidation component for integration of heterogeneous sources of control events
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
US7590589B2 (en) 2004-09-10 2009-09-15 Hoffberg Steven M Game theoretic prioritization scheme for mobile ad hoc networks permitting hierarchal deference
MY135555A (en) * 2004-12-14 2008-05-30 Axiomatic Solutions Sdn Bhd Compile time linking via hashing technique
US7818755B1 (en) * 2004-12-22 2010-10-19 Apple Inc. Window server event taps
GB2423382A (en) * 2005-01-27 2006-08-23 Microgen Plc Generating business process programs using a symbolic representation of operators in a graphical interface
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US7512631B2 (en) * 2006-03-23 2009-03-31 International Business Machines Corporation Method for identifying database triggers
US20110161917A1 (en) * 2009-12-29 2011-06-30 Microgen Plc Processing collections of data items
US8140894B2 (en) 2009-12-29 2012-03-20 Microgen Aptitude Limited Transaction regions in graphical computer-implemented methods of processing data
US8438534B2 (en) * 2009-12-29 2013-05-07 Microgen Aptitude Limited Transformation of data between hierarchical data formats
US8549353B2 (en) * 2009-12-29 2013-10-01 Microgen Aptitutde Limited Batch processing error handling modes
US20110161371A1 (en) * 2009-12-29 2011-06-30 Microgen Plc Sql generation
US8683431B2 (en) * 2009-12-29 2014-03-25 Microgen Aptitude Limited Applying rules to data
US8464229B2 (en) * 2009-12-29 2013-06-11 Microgen Aptitude Limited Creation of form-based software application in a graphical user interface (GUI) environment
US8732596B2 (en) * 2009-12-29 2014-05-20 Microgen Aptitude Limited Transformation of hierarchical data formats using graphical rules
US8694558B2 (en) * 2010-05-28 2014-04-08 Salesforce.Com, Inc. Methods and systems for tracking work in a multi-tenant database environment
US8392473B2 (en) 2010-09-07 2013-03-05 Microgen Aptitude Limited Fast hierarchical enrichment
KR101920239B1 (ko) * 2012-03-06 2018-11-20 삼성전자주식회사 파일 시스템 기능을 제공하는 단말기의 장치 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4536840A (en) * 1982-09-30 1985-08-20 Ronald Borta Autogrammer
JPS63181033A (ja) * 1987-01-23 1988-07-26 Hitachi Ltd プログラム自動生成方式
US4809170A (en) * 1987-04-22 1989-02-28 Apollo Computer, Inc. Computer device for aiding in the development of software system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799192A (en) * 1993-06-11 1998-08-25 Mitsubishi Denki Kabushiki Kaisha Tool encapsulating method and apparatus thereof

Also Published As

Publication number Publication date
EP0399822A2 (en) 1990-11-28
US5075847A (en) 1991-12-24
EP0399822A3 (en) 1992-05-06

Similar Documents

Publication Publication Date Title
JPH0334018A (ja) コンピュータプログラムのカプセル化方法及びその装置
US6633888B1 (en) Method and apparatus for visually creating and testing object oriented components
US6002867A (en) Development system with methods providing visual form inheritance
US6968536B2 (en) Frame component container
EP1474753B1 (en) Component model for real time system control
US6385769B1 (en) Text based object oriented program code with a visual program builder and parser support for predetermined and not predetermined formats
US5761510A (en) Method for error identification in a program interface
US5301270A (en) Computer-assisted software engineering system for cooperative processing environments
US7555706B2 (en) Human machine interface
US5475843A (en) System and methods for improved program testing
US6067641A (en) Demand-based generation of symbolic information
US6810522B2 (en) Method and system for associating parameters of containers and contained objects
US5815653A (en) Debugging system with portable debug environment-independent client and non-portable platform-specific server
US5787245A (en) Portable debugging service utilizing a client debugger object and a server debugger object
US8423969B2 (en) Inheritance breakpoints for use in debugging object-oriented computer programs
US6430556B1 (en) System and method for providing a query object development environment
US20020199034A1 (en) System and method for visual application development without programming
EP0496494A2 (en) Software maintenance system
US20110093527A1 (en) Distributed hypermedia method and system for automatically invoking external applications providing interaction and display of embedded objects via a scripting platform
JPH06295290A (ja) データ処理システム及びデータ処理方法
US20150020057A1 (en) Controlling application features
EP0575073A2 (en) Objects with run-time classes
US5818445A (en) Method and system for creating computer-program-based applications with developer specified look and feel
GB2321731A (en) Remote compiling of computer source code for cross development
US5991538A (en) System for generating and using programs in an object-oriented environment with a message dispatch architecture