JPH0981397A - ソフトウェア制御機構 - Google Patents

ソフトウェア制御機構

Info

Publication number
JPH0981397A
JPH0981397A JP7236957A JP23695795A JPH0981397A JP H0981397 A JPH0981397 A JP H0981397A JP 7236957 A JP7236957 A JP 7236957A JP 23695795 A JP23695795 A JP 23695795A JP H0981397 A JPH0981397 A JP H0981397A
Authority
JP
Japan
Prior art keywords
execution
address
information
processing
start condition
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
JP7236957A
Other languages
English (en)
Inventor
Tetsuo Yamazaki
哲男 山崎
Makoto Tanaka
田中  誠
Nobusane Nishiuchi
信実 西内
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP7236957A priority Critical patent/JPH0981397A/ja
Publication of JPH0981397A publication Critical patent/JPH0981397A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 ソフトウェア内部における処理の起動関係の
カスタマイズを簡単に行えるソフトウェア制御機構を得
る。 【解決手段】 起動条件コード部C01は、処理プログ
ラムの起動条件となるイベント内容と、条件成立時にポ
インタ用配列C02のうち一の配列ARiに格納された
処理実行アドレスAD(i)を参照することを指示する
アドレス格納領域情報とからなる複数のコードを記述し
ている。ポインタ登録部C03は、外部より登録要求を
受け、該登録要求に基づき、ポインタ用配列C02のう
ち、登録要求の指示する一の配列ARj(1≦j≦N)
内に、登録要求情報C25からの登録要求の指示するア
ドレス内容で処理実行アドレスAD(j)を登録する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、イベントの発生
に伴って処理を進行させていく、イベント駆動型のソフ
トウェア処理のソフトウェア制御機構に関するものであ
る。
【0002】
【従来の技術】ソフトウェア処理の一つとして、図形表
現を使用して設計を行うCAD(Computer Aided Desig
n)、CAE(Computer Aided Engineering)、CASE(Com
puter Aided Software Engineering)等のグラフィック
エディタを有するツールがある。
【0003】図10はグラフィックエディタにおける処
理の一例を示す説明図である。同図に示すように、2つ
の回路101,102間の配線がなされている。回路1
01は入力端子P11と出力端子P01とを有し、回路
102は入力端子P12と出力端子P02,P03とを
有している。そして、回路101の入力端子P11と回
路102の出力端子P02とが配線L1により電気的に
接続され、回路101の出力端子P03とが配線L2に
より電気的に接続されている。
【0004】ここで、特定アプリケーション分野向けの
グラフィックエディタを作成する場合を考える。このよ
うな場合、グラフィックエディタの基本操作が実現され
ているグラフィックエディタに対して特定アプリケーシ
ョン向けの機能変更、機能追加を容易に行うことが可能
であるならば、目的とするグラフィックエディタを一か
ら作成するのと比較して大変効率的である。
【0005】特定アプリケーション分野向けの機能と
は、例えば、図10に示す、配線L1,L2接続をチェ
ックする機能である。グラフィックエディタの基本操作
として端子間の接続という機能は一般的である。しか
し、特定のアプリケーション分野では、端子の種類を区
別して、接続の妥当性をチェックしたい場合もある。図
10の場合では、端子として入力端子と出力端子の2種
類があり、出力端子同士は接続できないというアプリケ
ーション分野の規則がある。そして、規則違反を発見し
たら、図10に示すようにメッセージを出して警告する
という仕様である。このように、端子間の接続の機能と
いっても、単純に端子間を接続するだけのものもあれ
ば、接続時に妥当性をチェックして警告を発するものも
ある。こうした機能の変更は、ソフトウェア内部におい
て処理を起動する機構を有する従来のソフトウェア制御
機構では困難であった。
【0006】従来のソフトウェア制御機構は、関数呼出
しを使用して条件分岐等の制御手段と組み合わせる方法
と、図14(「C++言語入門」STEPHEN C.
DEWHURST 他 著 小山裕司 監訳 アスキ
ー出版局 1990年 69〜70頁)に示すように、
関数へのポインタを使用して条件分岐等の制御手段と組
み合わせる方法等を用いてソフトウェア内部において処
理を起動していた。
【0007】図14はlessthanとgreaterthanという2
つの関数の使用をdescendingの値によって選択するとい
うことを関数へのポインタを使用して実現したものであ
る。関数呼出しによる方法、関数へのポインタによる方
法をそれぞれ図11、図12を用いて説明する。
【0008】関数呼出しによる方法は、図11に示した
ように、「イベントと処理の関係を定義するコード部」
B01において条件と固定的に関係づけされているソフ
トウェア処理を、条件分岐等の制御手段によって選択的
に実行する。すなわち、例えば、条件1が成立すれば、
処理1を実行する。このイベントから処理を起動する関
係は、コード部B01を書き直さなければ変更すること
ができない。
【0009】関数へのポインタによる方法では、図12
に示したように、「イベントと処理の関係を定義するコ
ード部」C01において条件と処理の関係づけは、関数
へのポインタ用の処理実行アドレス格納領域を有するポ
インタ用配列C02を介して行っている。すなわち、例
えば、条件1が成立すれば、ポインタ用配列C02のL
番目に格納されているポインタ(処理実行アドレス)を
使用して、そのポインタが指している処理1を実行す
る。したがって、ポインタ用配列C02に格納するポイ
ンタを変更することにより、イベントから起動される処
理を変更することができる。
【0010】
【発明が解決しようとする課題】従来のソフトウェア制
御機構は以上のように構成されており、ソフトウェア内
部において処理を起動する場合、イベントに対する処理
を変更することは、プログラムを作成する段階では比較
的簡単であった。
【0011】しかし、従来のソフトウェア制御機構は、
プログラム完成後において、ソフトウェア内部における
処理の起動関係をカスタマイズする機構が整備できてお
らず、カスタマイズしようとすると雑で多大な変更が必
要であった。
【0012】例えば、図12で説明した、ポインタ用配
列C02に格納するポインタを変更する処理のソフトウ
ェア(プログラム)をカスタマイズしたいそれぞれの場
面で作成しなければならず、その処理は大変であった。
【0013】また、ソフトウェアが図13に示すように
「グラフィックエディタ基本部」D01と「特定アプリ
ケーション分野依存部」D02とで構成される場合、図
12で示した、「特定アプリケーション分野依存部」D
02からポインタ用配列C02に格納するポインタを変
更することができないため、ソフトウェア内部における
処理の起動関係をカスタマイズすることができないとい
う問題点があった。
【0014】図13で示すようにソフトウェアが構成さ
れる状況は、市販のソフトウェアを購入したユーザが自
身でそのソフトウェアをカスタマイズする場合には一般
的に発生する。すなわち、「グラフィックエディタ基本
部」D01を市販品のソフトウェアとして購入し、機能
変更、機能追加のために、「特定アプリケーション分野
依存部」D02を作成して、全体を特定アプリケーショ
ン分野向けのグラフィックエディタとしてリンクして構
成したい場合である。
【0015】この発明は上記問題点を解決するためにな
されたもので、ソフトウェア内部における処理の起動関
係のカスタマイズを簡単に行えるソフトウェア制御機構
を得ることを目的とする。
【0016】
【課題を解決するための手段】この発明にかかる請求項
1記載のソフトウェア制御機構は、イベント発生時に、
該イベントに基づき、処理実行アドレス空間上にある実
行処理情報で規定されたソフトウェア処理を実行する制
御機構であって、各々が処理実行アドレスを登録可能な
複数の処理実行アドレス格納領域を有する処理実行アド
レス登録部と、少なくとも1つの起動条件情報を有する
起動条件情報登録部とを備え、前記少なくとも1つの起
動条件情報は、条件処理実行の起動条件となるイベント
内容である起動条件内容と、該起動条件内容に対応して
前記複数の処理実行アドレス格納領域のうち一の領域を
規定したアドレス格納領域情報とを有し、前記処理実行
アドレス空間内に設定されたアドレスを実行開始アドレ
スとして実行されるソフトウェア処理を規定した実行処
理情報を登録した実行処理登録部と、登録要求を受け、
該登録要求に基づき、前記複数の処理実行アドレス格納
領域のうち一の領域に処理実行アドレスを登録する処理
実行アドレス登録部と、イベント発生時に、該イベント
に基づき所定の処理手順を経てソフトウェア処理を実行
する処理実行部とをさらに備え、前記所定の処理手順
は、(a)イベント発生時に、前記起動条件情報登録部か
ら、発生したイベントに該当する起動条件内容を規定し
た起動条件情報を認識するステップと、(b)前記処理実
行アドレス登録部の前記複数の処理実行アドレス格納領
域のうち、前記ステップ(a)で認識した起動条件情報の
アドレス格納領域情報で規定された処理実行アドレス格
納領域に対し、その領域内に登録された処理実行アドレ
スを認識するステップと、(c)前記実行処理登録部か
ら、前記ステップ(b)で認識した前記処理実行アドレス
を実行開始アドレスとする実行処理情報を認識するステ
ップと、(d)前記ステップ(c)で認識した実行処理情報の
指示するソフトウェア処理を実行するステップとからな
る。
【0017】また、請求項2記載のソフトウェア制御機
構のように、前記登録要求は、前記起動条件情報登録部
に登録された前記少なくとも1つの起動条件情報のうち
一の起動条件情報を、所定の実行開始アドレスを有する
特定の実行処理情報に関係づけるアタッチ要求を含み、
前記処理実行アドレス登録部は、前記アタッチ要求に基
づき、前記複数の処理実行アドレス格納領域のうち、前
記特定の実行処理情報に関係づけられた起動条件情報の
アドレス格納領域情報が規定した処理実行アドレス格納
領域に、前記所定の実行開始アドレスを登録するように
構成してもよい。
【0018】また、請求項3記載のソフトウェア制御機
構のように、前記ソフトウェア処理はグラフィックエデ
ィタ処理であり、前記イベントは前記グラフィックエデ
ィタ処理の基本的操作であってもよい。
【0019】
【発明の実施の形態】
<基本構成>図1はこの発明の基本構成であるソフトウ
ェア制御機構の構成を示すブロック図である。同図に示
すように、基本構成のソフトウェア制御機構は、グラフ
ィックエディタ用であり、グラフィックエディタ基本部
F01、特定アプリケーション分野依存部F02及びプ
ログラム処理実行部F03から構成される。なお、グラ
フィックエディタ基本部F01は予め作成された既存の
ソフトウェアであり、特定アプリケーション分野依存部
F02はユーザ等がグラフィックエディタ基本部F01
の作成後に新たに作成されたソフトウェアである。
【0020】グラフィックエディタ基本部F01は起動
条件コード部C01、ポインタ用配列C02、ポインタ
登録部C03及び処理プログラムC11〜C13から構
成される。
【0021】ポインタ用配列C02は、複数の配列AR
1〜ARNからなり、各配列ARi(1≦i≦N)内に
処理実行アドレス空間上の一のアドレスである処理実行
アドレスが格納可能である。
【0022】起動条件コード部C01には、処理プログ
ラムの起動条件となるイベント内容と、条件成立時にポ
インタ用配列C02のうち一の配列ARiに格納された
処理実行アドレスAD(i)を参照することを指示する
アドレス格納領域情報とをそれぞれが有する複数のコー
ドが記述されている。
【0023】例えば、発生したイベントにより条件1が
成立した場合、配列ARKに格納される処理実行アドレ
スAD(K)の参照が指示される。
【0024】処理プログラムC11〜C13はそれぞれ
実行すべき処理内容を指示する実行処理情報であり、そ
の実行開始アドレスとして上記処理実行アドレス空間上
の一アドレスが割り当てられる。
【0025】ポインタ登録部C03は、外部より登録要
求を受け、該登録要求に基づき、ポインタ用配列C02
のうち、登録要求の指示する一の配列ARj(1≦j≦
N)内に、登録要求の指示するアドレス内容で処理実行
アドレスAD(j)を登録する。
【0026】一方、特定アプリケーション分野依存部F
02は、処理プログラムC21〜C23と登録要求情報
C25とからなる。処理プログラムC21〜C23はそ
れぞれ実行すべきソフトウェア処理を規定した実行処理
情報であり、その実行開始アドレスとして上記処理実行
アドレス空間上の一アドレスが割り当てられる。
【0027】登録要求情報C25は、ポインタ用配列C
02内で登録を所望する配列ARjと登録したいアドレ
ス値とからなる登録要求内容が記述された情報である。
【0028】プログラム処理実行部F03は、グラフィ
ックエディタ基本部F01及び特定アプリケーション分
野依存部F02を参照して、イベント発生時に、該イベ
ントに基づき所定の処理手順を経てソフトウェア処理を
実行する。以下にその処理手順を述べる。
【0029】(a) イベント発生時に、起動条件コード部
C01から、発生したイベントに該当する条件を記述し
たコードを認識する。
【0030】(b) ポインタ用配列C02から、配列AR
1〜ARNのうち、上記(a)で認識したコードのアドレ
ス格納情報で指示された配列(仮に、ARXとする。)
に登録された処理実行アドレスAR(X)を認識する。
【0031】(c) グラフィックエディタ基本部F01の
処理プログラムC11〜C13及び特定アプリケーショ
ン分野依存部F02の処理プログラムC21〜C23か
ら、上記(b)で認識した処理実行アドレスAR(X)を
実行開始アドレスとする処理プログラムを認識する。
【0032】(d) 上記(c)で認識した処理プログラムを
実行する。
【0033】このように、この発明の基本構成であるソ
フトウェア制御機構におけるポインタ登録部C03は、
グラフィックエディタ基本部F01外部からの登録要求
に基づき、ポインタ用配列C02内の一配列に登録する
処理実行アドレスを登録可能にしている。
【0034】例えば、グラフィックエディタ基本部F0
1の作成後に、グラフィックエディタ基本部F01の処
理プログラムC11〜C13をそれぞれ特定アプリケー
ション分野依存部F02の処理プログラムC21〜C2
3に変更したい場合、ポインタ用配列C02の配列AR
K,ARL及びARMのそれぞれの処理実行アドレスA
D(K)、AR(L)及びAR(M)として処理プログ
ラムC21〜C23の実行開始アドレスそれぞれの登録
を指示する登録要求情報C25を特定アプリケーション
分野依存部F02内に記述することよって簡単に実現す
ることができる。
【0035】すなわち、新たに作成した特定の処理プロ
グラムの実行を所望する場合、ポインタ用配列C02の
うち、上記所望の処理プログラムの起動条件イベントを
規定したコードが指示するアドレス格納領域情報に対し
て、上記特定の処理プログラムの実行開始アドレスを指
示する登録要求情報C25をポインタ登録部C03に与
えればよい。
【0036】その結果、ソフトウェア内部における処理
の起動関係を簡単にカスタマイズすることができる。
【0037】<オブジェクト指向型言語用の構成>図2
はこの発明によるプログラム制御装置をオブジェクト指
向型言語用に構成した場合を示す説明図である。
【0038】図2に示すように、オブジェクト指向型言
語用のソフトウェア制御機構は、起動条件コード部C0
1、ポインタ用配列C02、ポインタ登録部C03及び
コマンドCM11〜CM13から構成される。
【0039】ポインタ用配列C02は、複数の配列AR
1〜ARNからなり、各配列ARi(1≦i≦N)内に
処理実行アドレス空間上の一のアドレスである処理実行
アドレスが格納可能である。
【0040】起動条件コード部C01としてアクション
A1〜A3を記述する。アクションとはオブジェクト内
で定義された起動条件イベントであり、各アクションA
1〜A3はそれぞれ起動条件イベントの成立時にポイン
タ用配列C02のうち一の配列ARiに格納された処理
実行アドレスAD(i)を参照することを指示する。
【0041】例えば、発生したイベントがアクションA
1の起動条件イベントに該当した場合、配列ARKに格
納される処理実行アドレスAD(K)の参照が指示され
る。
【0042】コマンドCM11〜CM13はそれぞれオ
ブジェクト内で定義された処理内容を指示する実行処理
情報であり、その実行開始アドレスとして上記処理実行
アドレス空間上の一アドレスが割り当てられる。
【0043】ポインタ登録部C03は、外部よりアタッ
チ要求を受け、該アタッチ要求に基づき、ポインタ用配
列C02のうち、アタッチ要求で記述されたアクション
が指示する配列ARj(1≦j≦N)内に、アタッチ要
求の指示するコマンドの実行開始アドレスを処理実行ア
ドレスAD(j)として登録する。
【0044】一方、特定アプリケーション分野依存部F
02は、コマンドCM21〜CM23とアタッチ処理C
M30とからなる。コマンドCM21〜CM23はそれ
ぞれオブジェクト内で定義された処理内容を指示する実
行処理情報であり、その実行開始アドレスとして上記処
理実行アドレス空間上の一アドレスが割り当てられる。
【0045】アタッチ処理CM30は、コマンドにアク
ションを関係づける処理であり、例えば、コマンドCM
21をアクションA1に関係づけることを所望する場
合、「attach(アクションA1,コマント゛CM21)」と記述すればよ
い。
【0046】図3はアタッチ処理の説明のための説明図
である。同図に示すように、エディタ基本機能E01中
にアクションE02が既に存在して、新たに、アクショ
ンE02の起動条件イベントの成立時にアプリケーショ
ン独自機能E03のコマンドE04を実行させることを
所望する場合、同図の実線で示すように、コマンドE0
4をアクションE02にアタッチすればよい。
【0047】アタッチ処理後に、アクションE02が成
立するイベントが発生すると、アクションE02からコ
マンドE04の実行開始を促すインアクトが起動される
ことにより、コマンドE04が実行される。なお、イン
アクトとはアクションからアクションとアタッチ関係に
あるコマンドを起動する操作を意味する。
【0048】図2に戻って、プログラム処理実行部F0
3は、グラフィックエディタ基本部F01及び特定アプ
リケーション分野依存部F02を参照して、イベント発
生時に、該イベントに基づき所定の処理手順を経てソフ
トウェア処理を実行する。以下にその処理手順を述べ
る。
【0049】(a) イベント発生時に、アクションA1〜
A3から、発生したイベントに該当する起動条件イベン
トを記述したものを認識する。
【0050】(b) ポインタ用配列C02から、配列AR
1〜ARNのうち、上記(a)で認識したアクションで指
示された配列(仮に、ARXとする。)に登録された処
理実行アドレスAR(X)を認識する。
【0051】(c) グラフィックエディタ基本部F01の
コマンドCM11〜CM13及び特定アプリケーション
分野依存部F02のコマンドCM21〜CM23から、
上記(b)で認識した処理実行アドレスAR(X)を実行
開始アドレスとするコマンドを認識する。
【0052】(d) 上記(c)で認識したコマンドを実行す
る。
【0053】このように、この発明のオブジェクト指向
型言語用のソフトウェア制御機構におけるポインタ登録
部C03は、グラフィックエディタ基本部F01外部か
らのアタッチ要求に基づき、ポインタ用配列C02内で
アタッチ対象となるアクションを指示する配列への実行
開始アドレスを登録可能にしている。
【0054】したがって、グラフィックエディタ基本部
F01の作成後に、グラフィックエディタ基本部F01
のコマンドCM11を特定アプリケーション分野依存部
F02のコマンドCM21に変更したい場合、アタッチ
処理CM30としてコマンドCM21をアクションA1
にアタッチする記述を行うことにより、ポインタ用配列
C02の配列ARKの処理実行アドレスAD(K)とし
て処理プログラムC21の実行開始アドレスの登録を行
うことができる。
【0055】すなわち、新たに作成した特定のコマンド
の実行を所望するユーザは、ポインタ用配列C02の内
容を熟知せずとも、コマンドにアクションを関係づける
アタッチ要求をポインタ登録部C03に与えるだけで、
所望のコマンドで規定されたソフトウェア処理を既存の
アクションに対応させて実行させることができる。
【0056】その結果、ソフトウェア内部における処理
の起動関係を至極簡単にカスタマイズすることができき
効果を奏する。
【0057】<実施の形態1.>以下では、C++言語
を使用したオブジェクト指向型プログラミング言語でウ
ィンドウシステムを利用してグラフィックエディタを作
成する場合を例にとって説明する。
【0058】なお、オブジェクト(データ構造とそれに
対する操作を一体化したもの)、メソッド(手続き)と
いう用語はオブジェクト指向プログラミングの用語であ
り、コールバック関数(ウィンドウ上の基本操作を認識
するツール)はウィンドウシステムの用語である。
【0059】図4は、この発明の実施の形態1であるオ
ブジェクト指向型言語用のプログラム記述形態を示す説
明図である。
【0060】同図に示すように、グラフィックエディタ
基本部F01はオブジェクト11〜14からなり、特定
アプリケーション分野依存部F02はオブジェクト17
からなる。オブジェクト11にはアクション定義部11
Aが記述され、オブジェクト14にはコマンド定義部1
4Cが記述される。また、オブジェクト17にはコマン
ド定義部17Cが記述される。
【0061】図4において、オブジェクト間を結んでい
る線は、オブジェクト間の所有/被所有関係を表現して
いる。線の両端のうち、丸がついている方の端がつなが
っているオブジェクトが、他方の端がつながっているオ
ブジェクトを所有しているという関係である。オブジェ
クトに重なって描かれている四角形内には、オブジェク
トに属するアクションまたはコマンドが示されている。
【0062】ソフトウェア内部において処理を起動する
機構は、基本的に以下の要素と手順で実現される。
【0063】アクション:オブジェクト内で定義される
起動条件イベント コマンド:オブジェクト内で定義された処理 アタッチ:コマンドをアクションに関係づける操作 インアクト:アクションからそのアクションにアタッチ
されているコマンドを起動する操作 エグゼキュート:コマンドのメソッドを動作させる操作 以上の要素を以下の手順で使用して実現する。
【0064】アクションに対応するメソッドをウィン
ドウシステム等のイベントのコールバック関数に設定す
る。
【0065】コマンドをアクションにアタッチする。
【0066】マウス等の操作によってウィンドウイベ
ント等が発生する。
【0067】アクションに対応するメソッドがコール
バックによって起動され、アクションにアタッチされて
いるコマンドをインアクトする。
【0068】コマンドに対応するメソッドをエグゼキ
ュートする。
【0069】コマンドのメソッドが起動されて処理が
行われる。
【0070】図4に戻って、ListsComponentというトグ
ルボタンのオブジェクト11がメニューバーのオブジェ
クト12に所有されており、メニューバーのオブジェク
ト12はエディタウィンドウのオブジェクト13に所有
されており、さらにエディタウィンドウのオブジェクト
13はモデルエディタのオブジェクト14に所有されて
いる。トグルボタンのオブジェクト11のアクション定
義部11AにはSet、UnSet、ValueChangedからなる3つ
のアクションが定義されている。モデルエディタのオブ
ジェクト14のコマンド定義部14CにはShowDialog、
HideDialogの2つのコマンドが定義されている。
【0071】トグルボタンのオブジェクト11のアクシ
ョン定義部11Aにユーザアプリケーションのオブジェ
クト17のコマンド定義部17Cがアタッチされてい
る。すなわち、アクション定義部11AのSet及びUnSet
それぞれに対し、コマンド定義部17CのShowUserDial
og及びHideUserDialogがアタッチされている。
【0072】そして、トグルボタン22のマウスクリッ
クに対するコールバック関数としてトグルボタンのオブ
ジェクト11のアクションであるSetに対応するメソッ
ドを定義しておく。
【0073】このようなグラフィックエディタ基本部F
01及び特定アプリケーション分野依存部F02からな
るプログラム記述を行って、図5に召すように、メニュ
ーバー21にあるトグルボタン22をマウスクリックし
てダイアログ23を表示させる場合を考える。
【0074】この場合、トグルボタン22をマウスでク
リックすると、前述したコールバック関数として定義し
たアクション定義部11AのSetというアクションに対
応するメソッドが起動される。その処理の中で、Setと
いうアクションにアタッチされているコマンドをインア
クトし、その結果、コマンドに対応するメソッドをエグ
ゼキュートする。
【0075】アクション定義部11AのSetというアク
ションでインアクトされるコマンドはコマンド定義部1
7CのShowUserDialogというコマンドであるため、Show
UserDialogというコマンドに対応するメソッドがエグゼ
キュートされると、その処理の中で、図5に示すよう
に、ダイアログ23の表示が行われる。
【0076】このように、特定アプリケーション分野依
存部F02のユーザアプリケーションのオブジェクト1
7のコマンド定義部17C中のShowUserDialog及びShow
HideDialogというコマンドを、グラフィックエディタ基
本部F01のアクション定義部11AのSet及びUnSetと
いうアクションにそれぞれアタッチすることにより、グ
ラフィックエディタ基本部F01に含まれるモデルエデ
ィタのオブジェクト14のコマンド定義部14C中のSh
owDialog及びHideDialogというコマンドそれぞれに替え
て、特定アプリケーション分野依存部F02中のコマン
ド定義部17CのShowUserDialog及びShowHideDialogと
いうコマンドに対応するメソッドをエグゼキュートさせ
ることができる。
【0077】したがって、グラフィックエディタ基本部
F01で当初設定されていたダイアログ23の表示内容
を、特定アプリケーション分野依存部F02に適合する
ように簡単にカスタマイズすることができる。
【0078】このように、カスタマイズしたい処理をオ
ブジェクト中のコマンドに記述し、そのコマンドを所望
の起動条件イベントを記述したアクションにアタッチす
ることにより、グラフィックエディタのカスタマイズ変
更を至極簡単に実現することができる。
【0079】<実施の形態2.>図6及び図7は、この
発明の実施の形態2であるオブジェクト指向型言語用の
プログラム記述形態を示す説明図である。
【0080】これらの図に示すように、グラフィックエ
ディタ基本部F01はオブジェクト31〜40からな
り、特定アプリケーション分野依存部F02はオブジェ
クト50からなる。オブジェクト31にはアクション定
義部31Aが記述され、オブジェクト32〜37にはそ
れぞれコマンド定義部32C〜37C及びアクション定
義部32A〜37Aがそれぞれ記述され、オブジェクト
40にはコマンド定義部40Cが記述される。また、オ
ブジェクト50にはコマンド定義部50Cが記述され
る。
【0081】実施の形態2は、図8に示すリスト47か
ら項目を選択すると、6つのプッシュボタン41〜46
が選択不可能状態から選択可能状態に移行し、さらに、
プッシュボタン41をマウスでクリックするとモデルエ
ディタ49がリスト48を表示する場合等のグラフィッ
ク処理を行うプログラム記述である。
【0082】図6及び図7に示すように、リストのオブ
ジェクト31のアクション定義部31Aには、ItemSele
cted、ItemUnSelected、NewListの3つのアクションが
定義されている。
【0083】オブジェクト31〜37はオブジェクト3
8に所有されており、オブジェクト38はオブジェクト
40に所有されいる。そして、図8で示した6種類のプ
ッシュボタン41〜46に対応するオブジェクト32〜
37のコマンド定義部32C〜37CそれぞれにEnable
及びDisableの2つのコマンドが定義されている。プッ
シュボタンのオブジェクト32〜37それぞれのコマン
ド定義部32C〜37Cがリストのオブジェクト31の
アクション定義部31Aに共通にアタッチされる。すな
わち、コマンド定義部32C〜27CそれぞれのEnable
というコマンドはアクション定義部31AのItemSelect
edというアクションに共通にアタッチされ、コマンド定
義部32C〜27CのDisableというコマンドはアクシ
ョン定義部31AのItemUnSelected及びNewListという
アクションに共通にアタッチされる。
【0084】また、6種類のプッシュボタンのオブジェ
クト32〜37のアクション定義部32A〜37Aにそ
れぞれActivateというアクションが定義されている。モ
デルエディタのオブジェクト40のコマンド定義部40
Cには、ViewSelectedElementSubject、EditSelectedEl
ementSubject、DeleteSelectedElements、RenameSelect
edElement、SelectElementView、UnSetMenuButtonの6
つのコマンドが定義されている。コマンド定義部40C
のうちViewSelectedElementSubjectを除く5つのコマン
ドがプッシュボタンのオブジェクト33〜37のアクシ
ョン定義部33A〜37Aがアタッチされる。すなわ
ち、コマンド定義部40CのEditSelectedElementSubje
ct、DeleteSelectedElements、RenameSelectedElemen
t、SelectElementView、UnSetMenuButtonがそれぞれア
クション定義部33A〜37AそれぞれのActivateにア
タッチされる。
【0085】そして、ユーザアプリケーションのオブジ
ェクト50のコマンド定義部50CのViewSubjecという
コマンドが、オブジェクト32のアクション定義部32
AのActivateというアクションにアタッチされる。
【0086】このようなグラフィックエディタ基本部F
01及び特定アプリケーション分野依存部F02からな
るプログラム記述に基づき、図8に示すように、6つの
プッシュボタン41〜46が選択不可能状態から選択可
能状態に移行し、さらに、プッシュボタン41をマウス
でクリックしてモデルエディタ49上にリスト48を表
示される場合を考える。
【0087】この場合、リスト47から項目が選択され
ると、リストのオブジェクト31のアクションItemSele
ctedがアタッチされているコマンド定義部32C〜37
CそれぞれのEnableをインアクトすることによって6つ
のプッシュボタンのオブジェクト32〜37のコマンド
定義部32C〜37CのEnableというコマンドに対する
メソッドがエグゼキュートされて起動され、図8に示す
ように、プッシュボタン41〜46が選択不可能状態
(図中、無地)から選択可能状態(図中、ハッチング)
に移行する。
【0088】プッシュボタン41〜46選択可能状態に
移行した後、プッシュボタン41をクリックすると、ク
リックされたプッシュボタン41のオブジェクト32の
アクションで32AのActivateに対応するメソッドが起
動される。起動されたアクション定義部32AのActiva
teに対応するメソッドの中で、アタッチされているコマ
ンドであるオブジェクト50のコマンド定義部50Cの
ViewSelectedElementSubjectがインアクトされ、それに
対するメソッドが起動され、特定アプリケーション分野
依存部F02で追加作成したリスト48が表示される。
【0089】このように、特定アプリケーション分野依
存部F02のユーザアプリケーションのオブジェクト5
0のコマンド定義部50C中のViewsubjectというコマ
ンドを、グラフィックエディタ基本部F01のアクショ
ン定義部32AのActivateというアクションにアタッチ
することにより、グラフィックエディタ基本部F01に
含まれるモデルエディタのオブジェクト50のコマンド
定義部50C中のViewSelectedElementSubjectというコ
マンドに替えて、特定アプリケーション分野依存部F0
2中のコマンド定義部50CのViewsubjectというコマ
ンドに対応するメソッドをエグゼキュートさせることが
できる。
【0090】したがって、特定アプリケーション分野依
存部F02に適合するように、リスト48表示を簡単に
カスタマイズすることができる。
【0091】このように、実施の形態2は、カスタマイ
ズしたい処理をオブジェクト中のコマンドとして記述
し、そのコマンドを実行条件となる起動条件イベントを
記述したアクションにアタッチすることにより、グラフ
ィックエディタのカスタマイズ変更を至極簡単に実現す
ることができる。
【0092】<実施の形態3.>図9は、この発明の実
施の形態3であるオブジェクト指向型言語用のプログラ
ム記述形態を示す説明図である。
【0093】同図に示すように、グラフィックエディタ
基本部F01はオブジェクト51〜55からなる。オブ
ジェクト51にはアクション定義部51Aが記述され、
オブジェクト52にはアクション定義部52A及びコマ
ンド定義部52Cが記述され、オブジェクト53にはア
クション定義部53A及びコマンド定義部53Cが記述
され、オブジェクト54にはアクション定義部54Aが
記述され、オブジェクト55にはアクション定義部55
A及び55Cが記述される。
【0094】オブジェクト51はユーザアプリケーショ
ン60からの信号をトリガとし、オブジェクト52に所
有されており、オブジェクト52はオブジェクト53に
所有されており、さらにオブジェクト53はオブジェク
ト54とともにオブジェクト55に所有されている。
【0095】そして、アトリビュートのオブジェクト5
1のアクション定義部51Aには、AttributeValueChan
gedというアクションが定義されている。サブジェクト
のオブジェクト52のコマンド定義部52CにはAttrib
uteValueChangedというコマンドが定義され、アクショ
ン定義部52AにはAttributeValueChanged始めとする
4つのアクションが定義されている。エレメントのオブ
ジェクト53のコマンド定義部53Cには、AttributeV
alueChangedを始めとする4つのコマンドが定義され、
アクション定義部53AにはAttributeValueChangedを
始めとする4つのアクションが定義されている。
【0096】さらに、サブジェクトのオブジェクト54
のアクション定義部54AにはAttributeValueChanged
始めとする4つのアクションが定義されており、モデル
のオブジェクト55のコマンド定義部55Cには、Elem
entAttributeValueChangedを始めとする8つのコマンド
が定義され、アクション定義部55AにはElementAttri
buteValueChangedを始めとする8つのアクションが定義
されている。
【0097】アトリビュートのオブジェクト51のAttr
ibuteValueChangedというアクションには、サブジェク
トのオブジェクト52のコマンド定義部52AのAttrib
uteValueChangedというコマンドがアタッチされてい
る。このコマンド定義部52CのAttributeValueChange
dはアクション定義部52AのAttributeValueChangedの
起動を指示している。
【0098】サブジェクトのオブジェクト52のアクシ
ョン定義部52AのAttributeValueChangedというアク
ションには、エレメントのオブジェクト53のコマンド
定義部53CのAttributeValueChangedというコマンド
がアタッチされている。このコマンド定義部53CのAt
tributeValueChangedはアクション定義部53AのAttri
buteValueChangedの起動を指示している。
【0099】エレメントのオブジェクト53のアクショ
ン定義部53AのAttributeValueChangedというアクシ
ョンには、モデルのオブジェクト55のコマンド定義部
55CのElementAttributeValueChangedというコマンド
がアタッチされている。このコマンド定義部55CのEl
ementAttributeValueChangedはアクション定義部55A
のElementAttributeValueChangedの起動を指示してい
る。
【0100】アトリビュートのオブジェクト51のアク
ション定義部51AのAttributeValueChangedというア
クションに対するメソッドは、ユーザーアプリケーショ
ン60がアトリビュートを変更することに伴ってコール
バック関数から呼ばれることによって起動される。起動
されたアクション定義部51AのAttributeValueChange
dというアクションに対するメソッドの処理の中で、ア
タッチされているサブジェクトのオブジェクト52のコ
マンド定義部52CのAttributeValueChangedというコ
マンドがインアクトされ、該コマンドに対応するメソッ
ドが起動される。
【0101】そして、起動されたコマンド定義部52C
のAttributeValueChangedというコマンドに対応するメ
ソッドの中でサブジェクトのオブジェクト52のアクシ
ョン定義部52AのAttributeValueChangedというアク
ションに対応するメソッドがコールバック関数によら
ず、自動的に起動される。
【0102】このように、実施の形態3は、実施の形態
1及び実施の形態2と異なり、コマンドに対応するメソ
ッドからアクションに対応するメソッドを直接起動する
という手法を新たに取り入れている。この手法によっ
て、オブジェクト間でアクションとコマンドを連鎖して
いくことが実現できる。
【0103】実施の形態3では、オブジェクト内でのコ
マンドからアクションへの連鎖は特定アプリケーション
分野依存部でカスタマイズできないが、オブジェクト間
でのアクションからコマンドへの連鎖は、実施の形態1
及び実施の形態2のように、特定アプリケーション分野
依存部でカスタマイズできるので、全体としてアクショ
ンとコマンドの連鎖をカスタマイズできる機構となって
いる。
【0104】起動されたサブジェクトのオブジェクト5
2のアクション定義部52AのAttributeValueChanged
というアクションに対するメソッドの処理の中で、アタ
ッチされているエレメントのオブジェクト53のコマン
ド定義部53CのAttributeValueChangedというコマン
ドがインアクトされ、該コマンドに対応するメソッドが
起動される。起動されたエレメントのオブジェクト53
のコマンド定義部53CのAttributeValueChangedとい
うコマンドに対応するメソッドの中でエレメントのオブ
ジェクト53のコマンド定義部53CのAttributeValue
Changedというアクションに対応するメソッドが起動さ
れる。
【0105】起動されたエレメントのオブジェクト53
のアクション定義部53AのAttributeValueChangedと
いうアクションに対するメソッドの処理の中で、アタッ
チされているモデルのオブジェクト55のコマンド定義
部55CElementAttributeValueChangedというコマンド
がインアクトされ、該コマンドに対応するメソッドが起
動される。
【0106】起動されたモデルのオブジェクト55のEl
ementAttributeValueChangedというコマンドに対応する
メソッドの中でモデルのオブジェクト55のアクション
定義部55AのElementAttributeValueChangedというア
クションに対応するメソッドが起動される。
【0107】既述のようにアクションとコマンドをつな
いでいくことができる。1つのオブジェクト内にアクシ
ョンとコマンドを定義し、コマンドの実行でアクション
を起動することによって、大本のアクションアクション
定義部51Aから次々とオブジェクト間で伝播させてい
く例でもある。これによって、より上位のオブジェクト
に大本のアクションを伝播していくことができる。すな
わち、アクションの抽象度を順次上げていくことができ
る。
【0108】
【発明の効果】以上説明したように、この発明における
請求項1記載のソフトウェア制御機構は、登録要求を受
け、該登録要求に基づき、複数の処理実行アドレス格納
領域のうち一の領域に処理実行アドレスを登録する処理
実行アドレス登録部を備えている。
【0109】したがって、新たに作成した特定の実行処
理情報によるソフトウェア処理の実行を所望する場合、
複数の処理実行アドレス格納領域のうち、上記特定の実
行処理情報の起動条件内容を規定した起動条件情報のア
ドレス格納領域情報が規定する領域に対して、上記特定
の実行処理情報の実行開始アドレスの登録を指示する登
録要求を処理実行アドレス登録部に与えればよい。
【0110】その結果、特定の実行処理情報で規定され
たソフトウェア処理を既存の起動条件イベントに対応さ
せて簡単に実行させることができるため、ソフトウェア
内部における処理の起動関係を簡単にカスタマイズする
ことができる。
【0111】また、請求項2記載のソフトウェア制御機
構において、登録要求は、起動条件情報登録部に登録さ
れた少なくとも1つの起動条件情報にうち一の起動条件
情報を、所定の実行開始アドレスを有する特定の実行処
理情報に関係づけるアタッチ要求を含み、処理実行アド
レス登録部は、アタッチ要求に基づき、複数の処理実行
アドレス格納領域のうち、上記特定の実行処理情報に関
係づけられた起動条件情報のアドレス格納領域情報が規
定した処理実行アドレス格納領域に、上記所定の実行開
始アドレスを登録している。
【0112】したがって、新たに特定の実行処理情報を
作成した者は、処理実行アドレス登録部の内容を熟知す
ることなく、アタッチ要求を処理実行アドレス登録部に
与えるだけで、特定の実行処理情報で規定されたソフト
ウェア処理を既存の起動条件イベントに対応させて実行
させることができる。
【0113】また、請求項3記載のソフトウェア制御機
構は、イベントはグラフィックエディタ処理の基本的操
作であるため、グラフィックエディタの端子間接続操作
等を簡単にカスタマイズすることができる。
【図面の簡単な説明】
【図1】 この発明のソフトウェア制御機構の基本構成
を示す説明図である。
【図2】 この発明のソフトウェア制御機構のオブジェ
クト指向型言語用の構成を示す説明図である。
【図3】 アタッチ処理説明用の説明図である。
【図4】 この発明の実施の形態1であるオブジェクト
指向型言語用のプログラム記述形態を示す説明図であ
る。
【図5】 実施の形態1の動作説明用の説明図である。
【図6】 この発明の実施の形態2であるオブジェクト
指向型言語用のプログラム記述形態を示す説明図であ
る。
【図7】 この発明の実施の形態2であるオブジェクト
指向型言語用のプログラム記述形態を示す説明図であ
る。
【図8】 実施の形態2の動作説明用の説明図である。
【図9】 この発明の実施の形態3であるオブジェクト
指向型言語用のプログラム記述形態を示す説明図であ
る。
【図10】 グラフィックエディタの一操作例を示す説
明図である。
【図11】 従来の関数呼出しによる方法によるプログ
ラム制御を模式的に示した模式図である。
【図12】 従来の関数へのポインタによる方法による
プログラム制御を模式的に示した模式図である。
【図13】 従来のプログラム制御の問題点を指摘した
説明図である。
【図14】 C++言語の記述の一例を示す図である。
【符号の説明】
F01 グラフィックエディタ基本部、F02 特定ア
プリケーション分野依存部、F03 プログラム処理実
行部、C01 起動条件コード部C01、C02 ポイ
ンタ用配列、C03 ポインタ登録部、C11〜C1
3,C21〜C23 処理プログラム。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 イベント発生時に、該イベントに基づ
    き、処理実行アドレス空間上にある実行処理情報で規定
    されたソフトウェア処理を実行するソフトウェア制御機
    構であって、 各々が処理実行アドレスを登録可能な複数の処理実行ア
    ドレス格納領域を有する処理実行アドレス登録部と、 少なくとも1つの起動条件情報を有する起動条件情報登
    録部とを備え、前記少なくとも1つの起動条件情報は、
    条件処理実行の起動条件となるイベント内容である起動
    条件内容と、該起動条件内容に対応して前記複数の処理
    実行アドレス格納領域のうち一の領域を規定したアドレ
    ス格納領域情報とを有し、 前記処理実行アドレス空間内に設定されたアドレスを実
    行開始アドレスとして実行されるソフトウェア処理を規
    定した実行処理情報を登録した実行処理登録部と、 登録要求を受け、該登録要求に基づき、前記複数の処理
    実行アドレス格納領域のうち一の領域に処理実行アドレ
    スを登録する処理実行アドレス登録部と、 イベント発生時に、該イベントに基づき所定の処理手順
    を経てソフトウェア処理を実行する処理実行部とをさら
    に備え、前記所定の処理手順は、 (a) イベント発生時に、前記起動条件情報登録部から、
    発生したイベントに該当する起動条件内容を規定した起
    動条件情報を認識するステップと、 (b) 前記処理実行アドレス登録部の前記複数の処理実行
    アドレス格納領域のうち、前記ステップ(a)で認識した
    起動条件情報のアドレス格納領域情報で規定された処理
    実行アドレス格納領域に対し、その領域内に登録された
    処理実行アドレスを認識するステップと、 (c) 前記実行処理登録部から、前記ステップ(b) で認識
    した前記処理実行アドレスを実行開始アドレスとする実
    行処理情報を認識するステップと、 (d) 前記ステップ(c)で認識した実行処理情報の指示す
    るソフトウェア処理を実行するステップとからなる、ソ
    フトウェア制御機構。
  2. 【請求項2】 前記登録要求は、前記起動条件情報登録
    部に登録された前記少なくとも1つの起動条件情報のう
    ち一の起動条件情報を、所定の実行開始アドレスを有す
    る特定の実行処理情報に関係づけるアタッチ要求を含
    み、 前記処理実行アドレス登録部は、前記アタッチ要求に基
    づき、前記複数の処理実行アドレス格納領域のうち、前
    記特定の実行処理情報に関係づけられた起動条件情報の
    アドレス格納領域情報が規定した処理実行アドレス格納
    領域に、前記所定の実行開始アドレスを登録する、請求
    項1記載のソフトウェア制御機構。
  3. 【請求項3】 前記ソフトウェア処理はグラフィックエ
    ディタ処理であり、 前記イベントは前記グラフィックエディタ処理の基本的
    操作である、請求項1記載のソフトウェア制御機構。
JP7236957A 1995-09-14 1995-09-14 ソフトウェア制御機構 Pending JPH0981397A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7236957A JPH0981397A (ja) 1995-09-14 1995-09-14 ソフトウェア制御機構

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7236957A JPH0981397A (ja) 1995-09-14 1995-09-14 ソフトウェア制御機構

Publications (1)

Publication Number Publication Date
JPH0981397A true JPH0981397A (ja) 1997-03-28

Family

ID=17008276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7236957A Pending JPH0981397A (ja) 1995-09-14 1995-09-14 ソフトウェア制御機構

Country Status (1)

Country Link
JP (1) JPH0981397A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009087119A (ja) * 2007-10-01 2009-04-23 Hitachi Ltd 操作支援プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009087119A (ja) * 2007-10-01 2009-04-23 Hitachi Ltd 操作支援プログラム

Similar Documents

Publication Publication Date Title
US6966039B1 (en) Method for facilitating microcontroller programming
US7086014B1 (en) Automatic generation of application program interfaces, source code, interrupts, and datasheets for microcontroller programming
US6477435B1 (en) Automated programming system for industrial control using area-model
US7010773B1 (en) Method for designing a circuit for programmable microcontrollers
US20030081002A1 (en) Method and system for chaining and extending wizards
Jacob A specification language for direct-manipulation user interfaces
US5911070A (en) Development system with methods for bi-directional application program code generation
US5568397A (en) Logic circuit diagram editor system
US5802334A (en) Method for displaying object oriented class information and content information
US6518979B1 (en) Automatically-maintained customizable user interfaces
JP2939021B2 (ja) ウィンドウ管理情報入出力装置
US5812805A (en) Method and editing system for setting tool button
Williams et al. A visual language for image processing
JP2001051842A (ja) オブジェクトの動作を強化するためにランタイム期間にアプリケーション内にコードを追加する方法
JPH0439092B2 (ja)
JPH0981397A (ja) ソフトウェア制御機構
US6211857B1 (en) Interaction support system and method
JP3204842B2 (ja) Cadシステムにおける編集装置および編集方法
JPH0573630A (ja) 分散設計支援方法およびシステム
KR20010011272A (ko) 객체 기반 로봇 프로그래밍 시스템 및 방법
JPH1097559A (ja) コンピュータ支援作業装置とそのガイダンス編成方法
JP2560191B2 (ja) グラフィカルユーザインタフェースを備えたコンピュータシステムの制御方法
JPH06149598A (ja) コンピュータ・ユーザ・インタフェース・システム
JP7338096B2 (ja) データ処理装置およびデータ処理方法
JP3486607B2 (ja) システム開発方法及び装置並びに記録媒体