JPH08115207A - プログラム合成方法 - Google Patents

プログラム合成方法

Info

Publication number
JPH08115207A
JPH08115207A JP6249075A JP24907594A JPH08115207A JP H08115207 A JPH08115207 A JP H08115207A JP 6249075 A JP6249075 A JP 6249075A JP 24907594 A JP24907594 A JP 24907594A JP H08115207 A JPH08115207 A JP H08115207A
Authority
JP
Japan
Prior art keywords
node
arc
program
diagram
connection
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
JP6249075A
Other languages
English (en)
Inventor
Akihiro Yoshikawa
彰弘 吉川
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6249075A priority Critical patent/JPH08115207A/ja
Publication of JPH08115207A publication Critical patent/JPH08115207A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】本発明は情報処理装置を用いたプログラム開発
に関し、特にノードとアークとの組み合わせからなるグ
ラフ型の図を編集する機能と、図中の構成要素に対する
何らかの処理機能とを兼ね備えたプログラムを簡単に作
成するものである。 【構成】ノードの絵を16に記憶し、アークの絵を17
に記憶し、どのノードとどのノードとをどのアークを用
いて接続するかを18に記憶し、これらの組み合わせを
15に記憶する。ノードやアークに指示された操作と実
行する処理の対応を20に記憶する。図の編集機能や、
ノードとアークの接続が正しいか検査する機能を27に
予め備える。その他の処理は本システムの利用者が別途
作成し21に登録する。20に記憶した規則に従って、
これらを合成し23を作成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は情報処理装置を用いたプ
ログラム開発に関し、特にノードとアークを組み合わせ
てグラフ型の図を編集する編集機能と、ノードやアーク
に対する何らかの処理機能とを併せ持つアプリケーショ
ンプログラムの開発に好適な、宣言的な図の定義に従っ
てプログラムを自動的に合成するプログラム合成システ
ムに関する。
【0002】
【従来の技術】計算機を利用する作業者に対して、情報
を分かりやすく表示する手段として図がよく用いられ
る。図にはさまざまな種類があるが、ノードとアークと
で構成されるグラフ型の図が最も多く利用されている。
例えば階層的ファイルシステムの構造を示す図、本明細
書にも用いているフローチャートやブロック図、集合を
分かりやすく表現するベン図などがある。
【0003】通常、図中の構成要素はなんらかの意味が
与えられていて、例えば前記の例の場合はファイルを表
していたり、処理を表していたり、集合の要素を表して
いたりする。作業者はこれらの図中の構成要素に対して
何らかの処理を指示したいことがよくある。例えばファ
イルに対してその内容を確認したいとか、フローチャー
トの処理に対して処理内容を定義したいとか、あるいは
集合の要素を別の集合へ移動させたいなどである。
【0004】このように、図で情報を表現し、あるとき
は図を作成したり、またあるときは図中の構成要素に対
して何らかの処理をさせることのできるアプリケーショ
ンは既にさまざまなものが作成されている。
【0005】このようなアプリケーションを作成すると
き、従来はプログラミング言語でアプリケーションの処
理を記述して実現していた。図の表示などの部分には、
ウィンドウシステムが提供するウィンドウの操作ライブ
ラリや、グラフィックライブラリがあった。
【0006】またいわゆるワープロソフトの中には、線
や四角形を組み合わせて図を作画する機能を有するもの
があった。これを用いればグラフ型の図を編集すること
ができた。図中の個々の構成要素を指定して、これを削
除したり複写したり色を変えたりすることができた。
【0007】またいわゆるユーザインタフェース構築ツ
ールには、メニューやボタンなどの組み合わせを指定し
て、プログラミング言語を用いることなく、画面を設計
できるものがあった。
【0008】また状態遷移図を、定義に従って状態が遷
移する様子を画面に表示する状態遷移シミュレータがあ
った。状態遷移図を画面に表示することができた。ある
時点における状態がどの状態であるかを表示することが
できた。
【0009】またカットシステム社発行、S.ヘマクト
プール著の「Templa Graphica」という
書籍にはプログラムが付属しており、このプログラムに
よれば、ノードやアークの絵を定義し、どのノードとど
のノードとを接続できるかを定義することで、これらの
ノードやアークを互いに接続して図を編集することがで
きた。ノードとノードを接続するとき、接続できると定
義されているか調べることができた。ノードの位置を移
動したときはこれに接続されたアークもノードの移動に
伴って自動的に移動した。
【0010】
【発明が解決しようとする課題】プログラミング言語で
アプリケーションの処理を記述する前記従来技術では、
処理の論理を組み立てるのが困難で、またこれをプログ
ラミング言語で表現する作業にはたいへんな労力を必要
としていた。図の表示などの部分には、ウィンドウシス
テムが提供するウィンドウの操作ライブラリや、グラフ
ィックライブラリが使えたが、これらの扱いは一般に難
しく、プログラムを作成する生産性は低かった。
【0011】さらに、このようなライブラリの一般的特
徴として、使用上の手順が複雑であるという問題があっ
た。例えば直線を描画するときの一般的な手順は、先ず
初期化関数を呼び出し、次に描画のための領域を作成
し、直線の太さや色や形状を指定し、直線の座標を指定
し、最後に描画処理の終了を指示する関数を呼び出す、
という手順となる。このように複雑なので、プログラム
中のさまざまな部分が互いに関連し合うという性質があ
った。このため一旦作成されたプログラムに新しい機能
を後から付加することが困難であった。このため、先ず
簡単な機能を有する試作品を作成し、徐々に機能を付加
しながら完成品に近づけて行くという、段階的な開発が
困難であった。
【0012】図を作画できるワープロソフトに見られる
前記従来技術では、グラフ型の図を編集することはでき
たが、図中の個々の構成要素にはなんら意味が与えられ
ていなかった。このため例えばノードの絵は表現できた
が、ノードの位置を移動してもノードに接続されたアー
クが自動的に移動することはなく、ノードとアークの接
続関係はノードを移動するだけで簡単にくずれてしまう
ものだった。またノードやアークを削除したり複写した
り色を変えたりすることはできたが、例えばノードで表
現したプリンタはあくまで絵にすぎなかった。このため
図中のプリンタの絵に対する操作で、現実のプリンタに
対して印刷の中断などの処理を指示することはできなか
った。
【0013】またユーザインタフェース構築ツールに見
られる前記従来技術では、作成された画面は静止画面で
あって、画面上の構成要素の位置を変更させたり、新し
い構成要素を加えたりするためには再度ユーザインタフ
ェース構築ツールを用いて作成し直さなければならなか
った。従って例えばパソコンの絵とプリンタの絵を線で
結んで作成するシステム構成図のような場合、システム
構成が変化しない場合には適用できたが、システム構成
を変更する必要がある場合には適用できなかった。また
作成できるのはいわゆるメニューやボタンの組み合わせ
であって、ノードとアークの組み合わせからなるグラフ
型の図の作成には不向きであった。
【0014】また状態遷移シミュレータに見られる前記
従来技術では、画面に表示されるのは状態遷移図であっ
た。従って状態遷移図以外の図を画面に表示し、図中の
構成要素の状態が、状態遷移図で別途定義した内容に従
って遷移する様子を表示することはできなかった。また
状態遷移図を編集する機能はあったが、任意のノードと
アークの組み合わせで構成されるグラフ型の図を編集す
る機能はなかった。このため例えば前記のシステム構成
図において、システム構成を編集する機能もないし、シ
ステムの構成要素の状態の変化を表示する機能もなかっ
た。
【0015】また「Templa Graphica」
付属のプログラムに見られる前記従来技術では、グラフ
型の図の定義と図の編集ができたが、図中の構成要素に
対して、編集操作以外の処理を行わせることはできなか
った。例えばノードで表現したプリンタはあくまで絵に
すぎなかった。このため図中のプリンタの絵に対する操
作で、現実のプリンタに対して印刷の中断などの処理を
指示することはできなかった。
【0016】またある2個のノード間を同じアークで何
本も無制限に接続するのを禁止することはできなかっ
た。従って例えばシステム構成図において、パソコンと
ディスプレイ装置との間には電源ケーブルと画像信号線
の2本の線が必要になるという制約があることを定義す
ることはできなかった。このため、予め決められている
規則通りに図が描かれているかを検査することができな
かった。
【0017】またノードとアークとの接点の位置は、常
にノードの中心点からアークの方向へ延ばした半直線と
ノードの外周との交点の位置に固定されていた。このた
め例えば論理回路図のようにノードとアークの接点の位
置に意味がある図の作図には不向きであった。
【0018】またアークを接続するときには、どのアー
クで接続するかを作業者が必ず指示しなければならなか
った。このためアークを接続する操作が煩雑であった。
【0019】また複数のノードやアークの組み合わせで
新しいアークを定義することはできなかった。このた
め、ある特定のノードとアークの組み合わせからなる構
造物を多数繰り返し記述しなければならないような図の
作成では、作業者がそのような構造物を組み合わせる操
作を指示しなければならなかった。またノードを移動し
たとき、それに伴って自動的に移動するアークはノード
に直接接続されているアークだけであって、ノードやア
ークの組み合わせからなる構造物全体が移動するのでは
なかった。このためそのような構造物のうち、最初に移
動したノードに直接接続されていない部分は作業者が指
示して移動させなければならなかった。
【0020】また図の種類によっては、複数のノードや
アークで構成されたアークに対して特別な意味が与えら
れている場合がある。作業者が作成した図を他のプログ
ラムで解釈して他の何らかの目的に利用したいとき、複
雑なアークの構造をプログラムが解釈するためには、ど
のノードとどのアークが組になって複雑なアークを構成
しているかという組み合わせを予め定義する必要があっ
た。しかしそのような定義ができなかったので、プログ
ラムで機械的に複雑なノードの構造を解釈することはで
きなかった。
【0021】またアークの両端は必ずノードでなければ
ならなかったので、アークとアークの間を別のアークで
接続することがあるような図を扱うことができなかっ
た。
【0022】また他の構成要素を包含する種類のノード
を定義することはできなかった。このため、大きなノー
ドの中に他の小さなノードを位置づけても、それらは単
に重なっているだけであった。従って大きなノードの位
置を移動しても、その中にある小さなノードの位置は変
化しなかった。また作業者が小さなノードを移動させ
て、大きなノードの外に出しても、そのことを検出して
特別な処理を実行することはできなかった。
【0023】また2種類の図を編集することはできた
が、それらの図の間で相互に図の変換を自動的に行うこ
とはできなかった。従って例えば作業者がER図を作成
し、さらにその図とよく似ているが種類の違う図を作成
したいと考えたとする。しかしER図で作成した図は印
刷することはできたが、他の種類の図の中に複写するこ
とはできなかったので、他の図の作成には利用できなか
った。
【0024】
【課題を解決するための手段】本発明の一実施例によれ
ばプログラミング言語で処理を記述することなく、グラ
フ型の図の編集機能を備えたプログラムを合成するプロ
グラム合成システムが提供される。また図中の構成要素
に対して編集以外の何らかの処理を行いたい場合は、そ
の部分のみプログラミング言語で処理を記述して与えれ
ば、これを図の編集機能と合成するプログラム合成シス
テムが提供される。
【0025】そのために本発明ではノードやアークの絵
の定義と、これらを互いに接続する規則と、ノードやア
ークの編集の動作や編集以外の処理の動作に関する規則
とを記憶し、それらの定義や規則に従って予め備えたラ
イブラリを合成することでプログラムを作成する。
【0026】図の定義においてはノードやアークの絵を
自由に定義できるエディタを備えている。またそれらの
接続における規則を定義するエディタを備えている。ま
た、定義通りの絵を表示する機能、規則通りの接続か否
かを検査する機能を実現するプログラムをライブラリに
備えており、これを用いてプログラムを合成するので、
任意の絵を持つノードやアークで構成されるグラフ型の
図を編集できる。
【0027】またアークの本数の制限を定義できるする
ことで、ある2個のノード間を同じアークで何本も無制
限に接続するのを禁止できる。
【0028】本発明の他の実施例によれば、ノードの定
義において、そのノードのどの位置にアークを接続すべ
きかを定義できるようにすることで、アークの接続位置
を自動的に計算することができ、作業者が始点と終点の
構成要素を選択するだけで、アークを適切な位置に接続
できる。
【0029】本発明の他の実施例によれば、既に定義さ
れているノードやアークを組み合わせで新しいアークを
定義できるようにすることで、複雑なアークを簡単に定
義できる。また作業者は、複数の構成要素の組み合わせ
で一つのアークとして定義されているものを用いて、一
回の操作でこれら複数の構成要素を記述できる。
【0030】また、作業者の指示に従ってノードを移動
させた場合、接続されているアークが複数の構成要素か
らなるアークの場合は、それら全体をノードの移動に伴
って移動する。
【0031】本発明の他の実施例によれば、アークとア
ークの間を別のアークで接続するような接続の規則を定
義できるようにする。
【0032】本発明の他の実施例によれば、他の構成要
素を包含する種類のノードを定義できるようにする。作
業者が包含ノードを移動させることを指示したときは、
それに伴って、包含ノードに包含されている構成要素も
移動する。また包含ノードから、他の構成要素を出し入
れしたときに行う動作を定義できるようにする。
【0033】本発明の他の実施例によれば、状態に応じ
て動作が変化する複雑なノードやアークを状態遷移図を
用いて定義する。またノードやアークとその状態との組
み合わせに対して処理を規定することで、ノードがある
状態のときだけ特定の処理を実行するようにすることが
できる。また、ノードやアークの表示において、状態に
応じて色や絵を変化させることで作業者が容易に状態を
確認できるようにすることができる。
【0034】本発明の他の実施例によれば、2種類の図
を構成する構成要素間の対応関係を定義できるようにす
る。これにより、それらの図の間で相互に図の変換を自
動的に行うことができる。
【0035】
【作用】本発明では図の編集機能を実現するプログラム
をライブラリに備えているので、プログラミング言語で
処理を記述することなく、編集機能を有するプログラム
を合成できる。また接続の規則通りの接続か否かを検査
する機能をもライブラリに備えているので、規則通りの
図を描けるプログラムを合成できる。
【0036】ノードやアークの絵は自由に定義できる。
またどのノードとどのノードを接続できるかを定義する
ことができる。またノードやアークに対してマウスクリ
ックなどの操作をしたときの動作を定義することができ
る。特に、図の編集機能以外の特有の処理をさせたい場
合は、その処理を実現するプログラムを別途作成して与
えることで、これを合成することができる。
【0037】ノードやアークなどの定義の相互の依存性
が低いので、プログラムの段階的な作成ができる。例え
ばノードの種類が10種類あっても、先ず1種類だけで
動作を確認し、徐々に増加させてゆくようなプログラム
作成の方法をとることができる。
【0038】またアークの本数の制限の定義があると
き、この定義通りか検査し、違反しているとき作業者に
警告することで、誤った図の作成を防止できる。
【0039】ノードの定義において、そのノードのどの
位置にアークを接続すべきかを定義することで、作業者
は始点と終点の構成要素を選択するだけで、アークを適
切な位置に接続できる。
【0040】ノードやアークを組み合わせて定義された
アークを用いることで、一回の操作でこれら複数の構成
要素を記述できる。また、ノードを移動させた場合に、
接続されているアークが複数の構成要素からなるアーク
のときは、この複雑なアーク全体が自動的に移動する。
アークを回転させるときも同様に、アーク全体が回転す
るが、例えば文字列など、回転しない方が良い場合は、
アークの構成要素のうちどれを回転させたくないか予め
定義することで、ある部分は回転し、ある部分は回転し
ないようにすることもできる。
【0041】また、アークとアークの間を別のアークで
接続するような図を描けるので、例えば通信プロトコル
の設計に用いられるシーケンスチャート、列車ダイヤを
表現するダイヤグラムなどの図を描ける。
【0042】また、他の構成要素を包含する種類のノー
ドが定義できるので、作業者が包含ノードを移動させる
ことを指示したときは、それに伴って、包含ノードに包
含されている構成要素も移動する。また包含ノードか
ら、他の構成要素を出し入れしたときに行う動作を定義
できるので、例えば包含ノードにライブラリを対応さ
せ、関数に対応させたノードを包含ノードから出し入れ
する操作で、実際のライブラリ内の関数モジュールの出
し入れの処理を図上で操作できるようになる。
【0043】また、状態に応じて動作が変化する複雑な
ノードやアーク定義できるので、例えばノードがある状
態のときだけ位置を移動できるように定義することで、
作業者が操作を誤って構成要素の位置を移動してしまう
のを防止するために位置を一時的に固定することができ
る。あるいはシステム構成図において、プリンタが印刷
要求を許可するかしないかを状態に対応させ、作業者が
簡単な操作でこれを制御できるように構成することもで
きる。
【0044】また、状態に応じてノードやアークの色や
絵を変化させることができるので、例えば空のポストと
郵便物が届いているポストの絵をそれぞれ異なる状態に
対応させるこにより、電子メールシステムと組み合わせ
て使用することで、メールが届いているか否かを状態に
対応させて表示することができる。
【0045】また、複数の種類の図の間で相互に図の変
換を自動的に行うことができるので、例えばER図を用
いて作成した内容とよく似た、DFDの図を作成すると
き、ER図からDFDに変換することで、DFDの図を
描くための労力を削減できる。
【0046】
【実施例】本発明に係るプログラム合成システムが合成
するプログラムはグラフ型の図を編集できる。以下、グ
ラフ型の図について説明する。グラフ型の図はノードと
アークで構成される。ノードにもアークにもさまざまな
種類がある。ノードは図中の任意の位置に置かれ、大き
さや絵もさまざまである。絵や大きさや色などの違いに
より、どの種類のノードであるかが視覚的に判別できる
ようになっている。アークは伸縮自在の線であり、主に
2個のノードを接続する線分に用いられる。しかし図に
よっては両端にノードがないアークも許されるし、ある
いは片側だけにノードがある場合もありうる。アークも
ノードと同様に、絵や大きさや線の太さや色や矢印など
の違いにより、どの種類のアークであるかが視覚的に判
別できるようになっている。図には様々な種類がある
が、その図に含まれるノードやアークの種類と、それら
を互いに接続するときの規則や配置の規則と、ノードや
アークや接続規則や位置関係に対して定められた意味と
が一つの種類の図を定義する。意味は機械的に解釈でき
ないので、本発明に係るプログラム合成システムはこれ
らのうち意味以外のものを解釈して、さまざまな図を編
集できるプログラムを合成する。なお、以下ではさまざ
まな種類のノードやアークを総称して図の構成要素と呼
ぶ。
【0047】以下、本発明の一実施例を図面を用いて詳
細に説明する。
【0048】図1と図2は本発明に係るプログラム合成
システムの構成を示すブロック図である。図1はデータ
やプログラムの関係を示し、図2は装置の構成を示す。
【0049】図1において、23は本発明に係るプログ
ラム合成システムを用いて合成するアプリケーションで
ある。アプリケーション23は例えば図9のような図の
編集機能と、図中の構成要素に対する何らかの操作とを
兼ね備えたプログラムである。本発明に係るプログラム
合成システムはこのようなプログラムを自動的に作成す
るものである。アプリケーション23は例えば図9のよ
うな図を作成し、その図を図ファイル25に格納する。
アプリケーション23を一旦終了した後で、再び実行し
たときは図ファイル25を読み込むことで図を再現でき
る。
【0050】15〜18はアプリケーション23が編集
できる図を定義するものである。アプリケーション23
はこれらの定義に従う図を編集できる。15は図の構成
を定義する図構成定義であり、どのようなノードやアー
クや接続規則が図に含まれるかを定義する。図に含まれ
るノードやアークや接続規則の詳細な内容は、次に述べ
る16〜18で定義する。16はノードの名前や絵を定
義するノード定義である。17はアークの名前や絵を定
義するアーク定義である。18はノードやアークが互い
にどのように接続されるべきかを定義する接続規則であ
る。
【0051】11〜14はそれぞれ15〜18に対応
し、図を定義する機能を有するプログラムモジュールで
ある。11は図構成定義15を定義する図構成定義エデ
ィタである。12はノード定義16を定義するノード定
義エディタである。13はアーク定義17を定義するア
ーク定義エディタである。14は接続規則18を定義す
る接続規則エディタである。
【0052】20はアプリケーション23の動作を規定
する動作規則である。動作とはアプリケーション23の
実行の処理の単位である。例えば図ファイル25の保存
や図中の要素の位置の変更などが一つの動作である。ア
プリケーション23に対する作業者の指示は対話端末1
などを用いて入力する。この入力操作と動作との対応を
規定するのが動作規則である。29は本発明の第6の実
施例において用いる、ノードやアークの状態遷移の規則
を規定する状態遷移規則である。19は動作規則20と
状態遷移規則29とを定義する動作定義エディタであ
る。
【0053】アプリケーションライブラリ27はアプリ
ケーション23を合成する元となるプログラムモジュー
ルの集まりである。本発明に係るアプリケーション23
はグラフ型の図を編集したり図ファイルの読み込んだり
保存したりする。これらの処理は合成されるどんなアプ
リケーション23でも共通しているので、本発明に係る
プログラム合成システムでは共通の処理を実現するプロ
グラムモジュールを、予めアプリケーションライブラリ
27に格納してある。21はアプリケーションライブラ
リ27には含まれていない、ある特定の1個または複数
の図においてのみ必要とされる処理を実現するユーザ関
数である。本発明に係るプログラム合成システムを用い
てアプリケーション23を作成する開発者は、予めアプ
リケーションライブラリ27に用意された処理では達成
できない処理を別途作成して、これをユーザ関数21に
登録することで、作成するアプリケーション23に組み
込むことができる。
【0054】26は本発明の第7の実施例において用い
る、複数の種類の図に含まれる図の要素間の対応関係を
規定する図要素対応表である。
【0055】22は動作規則20と状態遷移規則27と
アプリケーションライブラリ27とユーザ関数21と図
要素対応表26とを合成してアプリケーション23を作
成するプログラム合成処理である。
【0056】図2において、1は対話端末であり、本発
明に係るプログラム合成システムを用いてアプリケーシ
ョン23を作成する開発者や、アプリケーション23を
用いて図を編集したりする作業者の指示を取得したり結
果を表示したりする装置である。2はプログラムを実行
するCPUである。3はプログラムやデータを記憶する
メモリである。4はプログラムやデータを記憶する、ハ
ードディスクドライブやテープドライブなどの外部記憶
装置である。
【0057】以下、図1〜図9を用いて本発明の第1の
実施例を説明する。
【0058】第1の実施例は開発者が定義した任意のグ
ラフ型の図の編集機能と、その図中の構成要素に対して
開発者が定義した操作を実行する機能とを兼ね備えたプ
ログラムを合成する方法を示すものである。アプリケー
ション23を利用する作業者は、合成されたアプリケー
ション23に対して対話端末を用いて指示を与えること
で、開発者が定義した図を編集したり、図中の構成要素
に対する所定の操作を実行させたりすることができる。
【0059】第1の実施例を説明するため、グラフ型の
図の定義方法と、そのグラフ型の図の編集機能と図中の
構成要素に対する何らかの操作とを兼ね備えたプログラ
ムである、アプリケーション23の処理内容と、アプリ
ケーション23を合成する方法とを順に説明する。
【0060】先ず、第1の実施例を説明するため、図4
〜図9を用いてグラフ型の図の定義方法を説明する。
【0061】図4はノード定義エディタ12を用いてノ
ード定義16を定義する画面の一例である。41はノー
ド定義で定義するノードの名称を示している。この場合
は”N1”である。42と43とはノードの絵を示して
おり、この場合は長方形と平行四辺形とを用いてパソコ
ンの絵を表現している。ノードの名称を、”N1”の代
わりに例えば”パソコン”などとして分かりやすくする
こともできる。44はアーク接続位置を示している。ア
ーク接続位置とは、このノードにアークを接続するとき
の接点となる位置である。この例では44で示された破
線上のどこかの点にアークを接続しなければならないこ
とを定義している。
【0062】図5はアーク定義エディタ13を用いてア
ーク定義17を定義する画面の一例である。51はアー
ク定義で定義するアークの名称を示している。この場合
は”A1”である。52はアークの絵を示しており、こ
の場合は実線である。左側の点、53はアークの始点を
表す。アークには方向があり、始点から終点の方向を向
いている。右側の点、54はアークの終点を表す。
【0063】図6は接続規則エディタ14を用いて接続
規則18を定義する画面の一例である。この画面は表で
あって、61の列は始点に接続する図の構成要素を示
し、62の列は接続線に用いる図の構成要素を表し、6
3の列は終点に接続する図の構成要素を示す。図の構成
要素はその名称によって指定する。複数の構成要素を指
定する場合は”,”(コンマ)で区切って複数の名称を
指定する。また、任意の構成要素を指定する場合は”
*”(アスタリスク)で指定する。ここで用いた記号
は、他の記号でもって表すきまりにすることもできるの
は言うまでもない。
【0064】グラフ型の図はノードとノードをアークで
接続するのが一般的であるが、第4の実施例で説明する
ように、アークとアークの間をアークで接続するような
図もありうる。この場合は始点や終点の構成要素にアー
クの名称を指定する。また、接続に用いる図6におい
て、例えば64の行によれば、”N1”又は”A1”を
始点とし、任意の構成要素を終点として、”A1”を接
続線に用いて接続できることを示している。また、65
の行によれば、任意の構成要素を始点とし、”N1”又
は”A1”を終点として、”A1”を接続線に用いて接
続できることを示している。従って例えば図中に”N
1”という名称に対応するノードが2個あったとき、こ
れらの間を”A1”で接続することは64の行と65の
行との両方で許されている。少くとも一つの行で許され
ていればよいので、例えば図中にさらに”N2”という
名称に対応する他のノードがあったとき、このノードか
ら”N1”という名称に対応するあるノードとの間を”
A1”で接続することは、64の行では許されていない
が65の行で許されているので、接続することができ
る。
【0065】図7は図構成定義エディタ11を用いて図
構成定義15を定義する画面の一例である。71はここ
で定義する図の種類の名称を示している。この場合は名
称を”システム構成図”と定義している。72と73と
はシステム構成図を構成するノードを示しており、この
場合は”N1”と”N2”のノードを使用することが示
されている。例えばN1は図4のように定義することが
できて、パソコンの絵を表している。N2も同様にして
例えばプリンタの絵を定義することができる。ここで列
挙したノードだけが、システム構成図の作図に使用でき
るので、ノード定義エディタで他のノードを定義して
も、システム構成図の作図には使用できない。74はシ
ステム構成図を構成するアークを示しており、この場合
は”A1”のアークを使用することが示されている。
【0066】また図7の画面から、開発者の指示に従っ
てノード定義エディタ、アーク定義エディタ、接続規則
エディタを起動することができる。例えば72の部分の
マウスカーソルを合わせてマウスのボタンをクリックす
る指示で、図4に示すような”N1”のノード定義画面
を表示し、ノード定義を開始できるように構成すること
ができる。同様に74の部分の選択によって図5に示す
ような”A1”のアーク定義画面を表示し、アーク定義
を開始できるように構成することもできる。あるいは図
中には示されていないが、メニューの選択などによって
図6に示すような接続規則エディタの画面を表示し、シ
ステム構成図に対する接続規則を定義できるように構成
することもできる。
【0067】以上に述べたように、図構成定義エディタ
では図の種類の名称と、その図を構成するすべてのノー
ドやアークの名称と、その図に対応する接続規則とを定
義する。
【0068】以上のように11〜14のエディタを用い
て15〜18を定義する。15〜18の組み合わせで一
つの種類の図を定義することができる。以下、これらの
定義情報をまとめて図定義情報28と呼ぶことにする。
【0069】図8は動作定義エディタ19を用いて動作
規則20を定義する画面の一例である。動作定義エディ
タ19を用いて状態遷移規則27を定義することもでき
るが、これは第6の実施例において述べる。
【0070】既に述べたように、動作とはアプリケーシ
ョン23の実行の処理の単位である。例えば図ファイル
25の保存や図中の要素の位置の変更などが一つの動作
である。アプリケーション23に対する作業者の指示は
対話端末1などを用いて入力する。この入力操作と動作
との対応を規定するのが動作規則である。作業者は、0
個以上の図中の構成要素の指定と、それに対するイベン
トとで動作を指示する。イベントとは対話端末1などを
用いて入力する操作である。例えばキーボードの改行キ
ーを押下する操作をイベントとすることもである。ある
いは例えば図中のある構成要素にマウスカーソルを合わ
せてマウスボタンをクリックする操作によって、構成要
素の指定と、マウスクリックというイベントの両方を一
度に指示できるように構成することもできる。構成要素
を一つも指定せずにイベントだけを指定する操作も考え
られる。また、構成要素の指定とイベントとは順序を逆
にすることもできて、例えばメニューを用いて”mov
e”のイベントを指定してから、次に構成要素を指定で
きるように構成することもできる。
【0071】図8は表であって、81の列は作業者によ
って指示された構成要素を示し、82の列は作業者によ
って指示されたイベントを示し、83の列は作業者の指
示に対応する動作を示す。例えば84の行は”N1”に
対してマウスボタンを押すイベントを作業者が指示した
ときには”F1”の動作を実行することを定義してい
る。予め定められた特定の動作についてはアプリケーシ
ョンライブラリ27を用いて実現できる。本実施例で
は”F1”や”F2”の動作を実現するプログラムモジ
ュールはアプリケーションライブラリ27には含まれて
いないと仮定して説明する。アプリケーション23を作
成する開発者は”F1”の動作を実現するプログラムモ
ジュールを別途作成し、これをユーザ関数21に登録し
なければならない。
【0072】図8において、85の行は”N1”に対し
てマウスボタンを押しながらマウスを移動するイベント
を作業者が指示したときには”move”の動作を実行
することを定義している。この動作はこのノードの図中
の位置を移動するものであり、特定の種類の図に依らな
い一般的な処理なので、アプリケーションライブラリ2
7を用いて実現できる。86の行は84の行と同様であ
る。
【0073】以上のように定義した図定義情報28によ
れば、ノードN1とノードN2の2種類のノードをアー
クA1で互いに接続して表現できるシステム構成図が定
義された。ノードとアークの組み合わせは無限に何通り
も存在するが、例えば図9の右側の図はその一例であ
る。図9は作成されたアプリケーション23の画面例で
あって、左側には使用できるノードとアークが表示され
ている。
【0074】図9において、94と95と96とは図4
のようにして定義されたノードN1が配置された例であ
る。97は別途ノード定義エディタで定義されたノード
N2で、プリンタを表している。98は図5のようにし
て定義されたアークA1である。94と98の間はさら
に別のアークA1で接続されており、これは図6の接続
規則の例で64の行で示された規則を満たしている。9
9と930とはアークA1であって、95と96との間
を接続している。この図によれば、3台のパソコンと1
台のプリンタが互いに接続されたようすが表現されてお
り、94と95と97とは98を介在して互いに接続さ
れている様子が表現されている。また95と96は2本
の線で接続されていることが表現されている。
【0075】次に、第1の実施例を説明するため、図3
と図9を用いてアプリケーション23の処理内容を説明
する。図3の処理手順の説明では、図4〜図8のように
して定義されたシステム構成図とその動作規則を例にと
りあげて説明する。
【0076】図3はアプリケーション23の処理手順を
示すフローチャートである。図9はアプリケーション2
3の画面の一例である。
【0077】図3において、先ず変数や画面を初期化す
る(ステップ900)。
【0078】次に図構成定義15に従って図に含まれる
ノードとアークの名称を取得し、それらに対応する定義
をノード定義16とアーク定義17から取得して、図9
に示すように、それらを画面左側に一覧表示する(ステ
ップ901)。
【0079】次に図ファイル25を読み込む(ステップ
902)。ただし新規に図を作成する場合はステップ9
02は実行しない。
【0080】次に前記のステップ902で読み込んだ内
容に従って図を表示する(ステップ903)。ただし新
規に図を作成する場合は画面を白紙の状態にする。
【0081】次に対話端末1などから、作業者の操作を
取得する(ステップ904)。
【0082】次に作業者の操作の内容に応じて処理を分
岐する。ノード挿入の場合(ステップ905)、ノード
を挿入する位置を取得し(ステップ906)、その位置
にノードを挿入する(ステップ907)。ノードを挿入
する位置は例えばマウスカーソルで指定できるよう構成
することもできる。またノードの種類は例えば図9の左
側のように、ノードの一覧を表示し、この中から選択で
きるように構成することもできる。
【0083】アーク挿入の場合(ステップ908)も同
様に、アークを接続する位置を取得し(ステップ90
9)、その位置にアークを挿入する(ステップ91
0)。アークを接続する位置は、例えば始点及び終点と
なる図中の構成要素を選択することで指定できるように
構成することもできる。その場合さらに、図4のアーク
接続位置44で定義された位置の中から適当な位置を決
定することもできる。例えば、始点及び終点となる図中
の構成要素のそれぞれの中心点間を線分で結び、その直
線とアーク接続位置44との交点を接続位置に決定でき
る。また図の種類によっては、他の構成要素と接続しな
いアークが許される場合もある。この場合は作業者が始
点と終点の座標を指定できるように構成することもでき
る。
【0084】図ファイル保存及び終了(ステップ91
1)の場合は、ファイル名を取得し(ステップ91
2)、その名称で図ファイル25を保存する(ステップ
913)。ただしステップ902で図ファイルを読み込
んだ場合は、同じ図ファイルに保存することもでき、こ
の場合はファイル名が決っているのでステップ912は
実行しないように構成することもできる。図ファイルを
保存した後、実行を終了する。
【0085】ステップ904で取得した作業者の操作が
その他の操作であれば動作規則20を参照して対応する
動作を取得する(ステップ914)。例えば作業者が指
定した図中の構成要素の種類が”N1”であって、指定
したイベントが”push”であれば”F1”の動作と
なる。次にその動作がユーザ関数21に登録されている
ものなら(ステップ915)、そのユーザ関数を実行す
る(ステップ916)。ユーザ関数21に登録されてい
ないものなら、アプリケーションライブラリ27に備え
られた処理を実行する(ステップ917)。
【0086】最後に図の編集操作が接続規則18に適合
しているかを検査する(ステップ918)。検査の結
果、規則に違反していることが判明した場合は、これを
画面に表示して違反の内容を作業者に警告することもで
きる。あるいは、違反が発生する前の状態に編集状態を
戻す、いわゆるアンドゥ処理を行なうように構成するこ
ともできる。
【0087】以上の処理を繰り返し実行することで、作
業者の指示に従って図を編集したり、図中の構成要素に
対してユーザ関数を実行することができる。アプリケー
ションライブラリ27には図中の構成要素の位置の移動
処理や、複写して別の構成要素を作成する処理や、構成
要素を削除する処理などを登録しておくことで、図の基
本的な編集機能を予め備えたプログラム合成システムを
構成できる。
【0088】次に、第1の実施例を説明するため、アプ
リケーション23を合成する方法を説明する。
【0089】アプリケーション23の合成は、名前で識
別される複数のプログラムモジュールを合成して一つの
プログラムを作成する従来技術を応用して達成できる。
本発明に係るプログラム合成システムでは、図3に示す
処理手順を実現するメインプログラムを予めアプリケー
ションライブラリ27に備えている。このメインプログ
ラムから、ノード挿入(ステップ907)やアーク挿入
(ステップ910)や図ファイル保存(ステップ91
3)を呼び出す部分では、前記従来技術と同様にして、
対応する処理をアプリケーションライブラリ27から取
得して、これをメインプログラムに合成する。その他の
処理(ステップ917)の呼び出しでも同様である。ユ
ーザ関数の実行(ステップ916)では、動作規則18
に従って対応する動作を呼び出すように構成する必要が
ある。この部分は例えば、作業者が指示した構成要素の
種類とイベントとに対応するものを動作規則18から検
索する処理を合成し、さらに検索結果に応じてユーザ関
数を呼び出せるようにユーザ関数を合成する構成にする
ことができる。
【0090】以上に述べた、本発明の第1の実施例によ
れば、図1の11〜14を用いて図定義情報28を定義
することでさまざまな図を簡単に定義することができ、
さらに動作定義エディタ19を用いて動作規則20を定
義するとともにユーザ関数21を与えるだけで、定義通
りの図を編集する機能と図中の構成要素に対する処理機
能とを有するアプリケーション23を合成できるプログ
ラム合成システムを構成できる。
【0091】例えば図9に示すシステム合成図ではプリ
ンタのオンライン/オフライン切替や使用料の設定や使
用を許可するユーザの管理などを行なう処理を”F2”
という名称でユーザ関数21に登録しておく。作成され
たアプリケーション23を使用する作業者は先ず職場に
あるプリンタやパソコンを図に表現する。このとき図の
編集機能が必要であるが、これはアプリケーションライ
ブラリ27に備えられているので、アプリケーション2
3の開発者は編集機能を実現するプログラムを作成する
必要がない。次に作業者はプリンタを選択しマウスボタ
ンを押す。図8に示すような動作定義がなされていれ
ば、このときアプリケーション23は”F2”という名
称で登録されたユーザ関数を実行するので、プリンタに
関する操作ができる。同様にしてパソコンに対して例え
ばユーザの管理や、ネットワークの設定などを行なう処
理を”F1”という名称でユーザ関数21に登録してお
けば、作業者はパソコンを選択してパソコンの管理を行
なうことができる。
【0092】また例えば階層的ディレクトリを有するフ
ァイルシステムを管理するアプリケーションも簡単に作
成できる。先ずノード定義エディタ11でファイルやデ
ィレクトリに対応するノードを定義する。次にアーク定
義エディタ12でディレクトリとそのディレクトリに含
まれるファイルとを接続するアークを定義する。次に接
続規則エディタ14でディレクトリからファイルに接続
できることを定義する。階層的ディレクトリではさら
に、ディレクトリからディレクトリにも接続できること
をさらに定義する。動作規則では例えばディレクトリに
ついて”F1”を、ファイルについて”F2”を定義す
る。次にディレクトリが選択されたときにその内容を表
示するユーザ関数を”F1”という名称で登録し、また
ファイルの内容を表示するユーザ関数を”F2”という
名称で登録する。ディレクトリの内容を表示するユーザ
関数では、アプリケーションライブラリ27に予め備え
られた図の編集機能を利用することで、そのディレクト
リに含まれるファイルやディレクトリの一覧を図に付け
加える処理を実現することができる。
【0093】上記のようにして作成したファイル管理ア
プリケーションによれば、作業者がディレクトリを選択
すると、そのディレクトリに含まれるファイルやディレ
クトリを表すノードが新たに図に付け加えられるので、
ディレクトリの内容を図を見て知ることができる。付け
加えられたディレクトリをさらに選択することで、その
ディレクトリに含まれるファイルやディレクトリをさら
に表示させることもできる。この繰り返しにより任意の
深さにあるファイルを探索できる。またファイルを選択
することでその内容を確認することもできる。
【0094】本実施例によれば、前記のファイル管理ア
プリケーションは簡単な図の定義と、2個のユーザ関数
を与えるだけで作成できるので、複雑なウィンドウシス
テムを扱うプログラムを新規に作成することに比べて飛
躍的な生産性の向上が図られる。
【0095】さらにディレクトリとファイルとの接続関
係を変更させる作業者の操作に対応する動作を”F3”
という名称で動作規則20に定義して、ファイルを移動
させるユーザ関数を付け加えれば、さらにファイルの移
動もできるように拡張できる。このように本発明にかか
るプログラム合成システムによれば、まず必要性の高い
ものを作成し、その後他の機能を付け加えるなど、段階
的にアプリケーションを作成することもできる。これに
より、いわゆるバグというプログラムの誤りが発生する
部分は新たに付け加えた部分に限定できるのでさらに生
産性が向上する。
【0096】本実施例の適用によって簡単に作成できる
アプリケーションの一例として、パソコンやプリンタを
管理するシステム構成図、ファイルの管理をするファイ
ル管理アプリケーションについて述べた。この他にも、
本実施例を適用できる例は無数に有る。例えばC++や
OOCOBOLなどのオブジェクト指向言語のライブラ
リを管理するツールでは、クラスという管理の単位があ
って、サブクラス関係といわれる複数のクラス間の関係
を管理する必要がある。この場合はクラスを表現するノ
ードを定義し、サブクラス関係を表現するアークを定義
することで前記ファイル管理アプリケーションと同様に
してクラスを管理するアプリケーションが簡単に構成で
きる。
【0097】あるいは仕事の流れを表現し、その流れの
順にデータを移動させたりツールを起動したりすること
で仕事の遂行を支援する、いわゆるワークフローという
アプリケーションも簡単に作成できる。この場合は次の
ようにして作成する。仕事の流れを構成する、例えば”
経理課”や”資材課”や”資料庫”などの構成要素を定
め、これらをノード定義エディタで定義する。それぞれ
の構成要素は、特有の処理が必要であって、例えば経理
課は経理伝票を処理する。このような処理をすべてユー
ザ関数に登録すればよい。このような構成でワークフロ
ーを作成できる。
【0098】以下、第1の実施例を応用した他のプログ
ラム合成方法を述べる。
【0099】図6に示す接続規則18の定義において、
重複数を指定する列をさらに設け、重複する接続線の制
限を定義できるように接続規則18を拡張することもで
きる。重複する接続線とは、複数の接続線の関係を示
し、それらすべての接続線が図中のある一つの構成要素
を共通の始点としていて、しかもそれらすべての接続線
が図中のある一つの構成要素を共通の終点としている場
合を言う。重複数の列に対する指定は例えば、最小数と
最大数とを”:”(コロン)で区切って指定することが
できる。最大数に制限がないことを指定する場合は、例
えば最大数に”n”を指定することで示すこともでき
る。例えば重複数の列に”1:n”と指定された場合の
意味は、重複する接続線は任意の個数でよいことを示
す。また例えば、”2:3”と指定された場合の意味
は、重複する接続線は2本又は3本でなければならず、
従って図中のある2個の構成要素の間を接続するときに
1本の接続線だけで接続することは許されないという規
則を表す。また例えば重複数の列に”1:1”と指定さ
れた場合、重複数は1本だけが許されているので、図9
の99と930のように重複数が2本となるアークを引
くことは許されない。このような構成にすることで、例
えば図6のシステム構成図にさらにディスプレイ装置を
記述できるようにしたとき、ある種のパソコンとディス
プレイ装置との間には電源ケーブルと画像信号線の2本
の線が必要になるという制約があることを接続規則に定
義することができるようになる。
【0100】以下、図1〜図3と図13〜図15を用い
て本発明の第2の実施例を説明する。
【0101】第2の実施例は、第1の実施例の接続規則
18にさらに、アークの接続位置に関する規則を定義で
きるように構成することで、アプリケーションを利用す
る作業者が接続位置を指定する手間を省略したり、接続
位置の誤りを作業者に警告できるようにしたものであ
る。
【0102】図10は接続位置の指定ができるように接
続規則18を拡張したものである。図10において、6
1と62と63の列は図6と同様であって、それぞれ接
続する始点となる構成要素、接続に用いる構成要素、接
続する終点となる構成要素を示す。101の列は始点と
なる構成要素のどの接続位置に接続できるかを示す。同
様に102の列は終点について示している。接続位置は
例えば名前を用いて指定することができて、例えば10
3の行によれば始点は”N3”という構成要素の”b”
で示される位置から、終点は”N3”という構成要素
の”t”で示される位置に接続できることを示してい
る。また、どこにでも接続できることを”*”で指定し
たり、複数の接続位置を”,”で区切って指定すること
もできて、例えば104の行によれば始点は”N4”の
構成要素のどこにでも接続できて、終点は”N3”の”
l”又は”r”の接続位置に接続できることを示してい
る。
【0103】図11は接続位置を詳細に定義できるよう
にしたノード定義エディタの一画面例である。図11に
おいて、111の長方形はノードの絵を示している。1
12は左辺の接続位置を示している。112に対して”
l”の名称が与えられている。同様に113は上辺の接
続位置を示している。他の辺も同様にして、都合4辺の
接続位置が示されている。
【0104】図10と図11の定義の例によれば、”N
3”同士を接続する場合は長方形の下辺を始点として、
他の”N3”の長方形の上辺を終点として接続しなけれ
ばならないことが定義されている。また”N4”から”
N3”に接続する場合は”N3”の左辺又は右辺に接続
しなければならないことが定義されている。
【0105】第2の実施例の処理手順は図3に示す第1
の実施例の処理手順と同様であるが、ただし、ステップ
909のアーク接続位置を取得するステップは図12に
示す処理手順に従って実行する。図13〜図14はアプ
リケーション23の画面である。図13はアークを接続
する前の段階を示し、図14は図13の状態から、アー
クを2本接続した後の段階を示す。以下、図12に従っ
て作業者が始点や終点を詳細に指定する手間を削減する
方法を説明する。
【0106】図12において、先ず始点・終点となる構
成要素を取得する(ステップ122)。例えば作業者が
図13における131を始点に指定し、133を終点に
指定したとする。131は”N4”の種類のノードであ
り、133は図11のように定義された”N3”の種類
のノードであると想定する。
【0107】次に、図10に示す位置指定付接続規則か
ら規則を取得する(ステップ123)。上記の想定によ
れば、”N4”の種類のノードから”N3”の種類のノ
ードに接続しようとしているので、図10によれば10
4の行が該当する。この規則によれば、始点位置は指定
なし、終点位置は”l”又は”r”の位置が指定されて
いる。
【0108】次に、始点、終点の座標を計算する(ステ
ップ124)。前記の規則より、終点位置は”l”又
は”r”である。図11によれば”l”は112に対応
している。図13の位置関係によれば、”l”の方が”
r”よりも始点に近いので、終点位置は線分”l”の中
点となる。
【0109】以上の方法により始点と終点の座標を得た
ので、図3に戻ってステップ910でアークを挿入す
る。挿入したアークの様子を図14の144に示す。同
様に図13において作業者が132を始点に指定し、1
33を終点に指定すると、132の下辺の中点と133
の下辺の中点を接続する。接続したアークの様子を図1
4の145に示す。
【0110】本実施例によれば、作業者は始点と終点の
構成要素を選択するだけで、接続線となるアークの接続
位置を自動的に計算して適切な位置に接続できる。さら
に図10によれば、始点と終点となる構成要素の組み合
わせから、接続線となる構成要素が一意的に決定でき
る。このような場合は、作業者は接続線とする構成要素
を指定する必要すらない。従って作業者の操作が簡便と
なる。
【0111】図11のノード定義では、接続位置を線分
で指定したが、図15に示すように点で指定することも
できる。例えばフローチャートの分岐処理では図15の
151のようなひし形の絵が用いられる。フローチャー
トの作図上の規則によれば、処理の流れを表す線は、4
個の点のどれかに接続しなければならない。図15はこ
のことを定義しているのであって、例えば上から流れて
来た処理を表す接続線は153に接続する。また分岐を
表す接続線は152から他の処理へと接続される。
【0112】以下、図1〜図3と図16〜図19を用い
て本発明の第3の実施例を説明する。
【0113】第3の実施例は、第1の実施例のアーク定
義17を拡張し、他の構成要素の組み合わせでアークの
定義ができるように構成したものである。
【0114】図16は拡張したアーク定義エディタ13
の一画面例である。図16において167は他のアーク
定義で定義された”A3”という名称のアークである。
161にはこの名称が定義されている。またアークの方
向は第1の実施例でも述べたように左側を始点、右側を
終点として右の方向を向いている。”A3”のノードの
定義で矢印記号がついている側を終点として定義された
ものと想定すると、167は逆の方向を向いている。こ
のことは162で”逆方向”と定義してある。同様に1
68は他のノード定義で定義された”N7”という名称
のノードであって、163にこの名称が定義されてい
る。164は図16で定義している”A4”というアー
ク全体の向きに合わせてノードの向きを回転させるかど
うかを定義している。この場合はアークの回転に合わせ
てノードも回転させることを定義している。
【0115】図18は図16のように定義されたアーク
に対する接続規則の定義の一例を示す。”N6”という
名称の構成要素は長方形の絵で表されるノードを想定し
ている。
【0116】図17は図16と図18のように定義され
たアークの使用例を示すための、アプリケーション23
の画面例である。図17において、171は図16のよ
うに定義されたアークである。172は”N6”という
名称のノードである。173と174は”A4”のノー
ドを構成する構成要素である。作業者が173と174
とを組み合わせて171のような図を作成する事もでき
るが、171を用いた方が簡便である。作成された図の
例によれば、172のノードを3個配置し、それらの間
を171を用いて接続している。175と176は17
1を用いて接続したアークである。図16において”N
7”を”回転”と定義したので、176のひし形の部分
はアーク全体の向きに合わせて回転して表示されてい
る。
【0117】本実施例によれば、既に定義されているノ
ードやアークを組み合わせるだけで新しいアークを定義
できるため、複雑なアークを簡単に定義できる。また作
業者は、複数の構成要素からなる複雑なアークを描くと
きに個々の構成要素を組み合わせて描くよりも、これら
の組み合わせで一つのアークとして定義されているもの
を用いる方が操作が簡便である。特に、図17における
176のひし形の部分のように、構成要素のノードを全
体の角度に合わせて回転する必要があるときには、ノー
ドを回転させる操作も省略できるのでさらに操作が簡便
となる。
【0118】また図17の例では、ER図によって図を
記述している。このER図はデータベースの設計などに
よく用いられ、データの関連などを定義するためのもの
である。定義された内容に従って、データベースの構成
が規定される。定義の内容は図ファイル25に保存され
ているので、このファイルを用いてデータベースの構成
定義を自動的に行う事もできる。そのとき、”A4”の
アークはER図において一つの意味に対応付けられてい
るので、”A4”を用いて図が描かれていると意味の解
釈が容易となる。もし図が”A3”や”A7”などの構
成要素の組み合わせで描かれていると、これらの接続の
様子から、どれとどれとの組み合わせが一つの意味に対
応しているかを調べる処理が必要となる。
【0119】また、図17において作業者の指示に従っ
て長方形のノードをどれか一つ移動させた場合、接続さ
れているアークも自動的に移動する。このとき、171
を用いて描かれたアークでは、長方形のノードの移動に
伴って、複数の構成要素からなるアーク全体が回転した
り伸縮したりする。しかし173と174を用いて描か
れていた場合は長方形のノードに直接接続されているア
ークは174のアークであるから、ノードの移動に伴っ
て移動するのはこの174のアークだけである。どちら
が望ましいかは、作業者の作業の内容に依存するが、一
般に前者のように複数の構成要素からなるアーク全体が
移動する方が望ましいことが多い。このような場合にも
図16のような複数の構成要素からなるアークが有効で
ある。
【0120】また図19はオブジェクト指向設計で用い
られるオブジェクト図と呼ばれる図の例である。本実施
例によればこのような図も扱う事ができる。193はノ
ードである。191と192とは、複数の構成要素から
なるアークであって、192の部分は193と同じノー
ドが用いられている。従って192の部分はアークの一
部分を構成すると同時に、193と同様のノードでもあ
る。例えば193のノードに、線で区切られた3個の領
域内に文字列を記入する事ができるようにしたとき、1
92においても同様に文字列の記入ができるようにな
る。また193の位置を移動した場合は、それに伴って
191の部分が移動し、さらにそれに伴って192の部
分も自動的に移動する。
【0121】このように図19の例によれば、193の
ように単独のノードとしても利用できるし、192のよ
うに他のノードを構成する一部としても利用できる、そ
のようなノードを定義することもできる。これにより、
例えばノードの内部に文字列を記入する処理は193と
192とで共通化できる。
【0122】以下、図1〜図3と図20〜図22を用い
て本発明の第4の実施例を説明する。
【0123】第4の実施例は第1の実施例をさらに、ア
ークとアークとを別のアークとを接続できるように拡張
するものである。
【0124】図20はアークとアークとを接続するアー
クを定義するための、接続規則18の定義の一例であ
る。図20において、201の行は実施例1と同様の定
義方法であって、2個の”N6”のノードを”A3”の
アークで接続する例である。202の行は本実施例で説
明する、2個の”A3”のアークを”A4”という別の
アークで接続する例である。
【0125】図21は図20の定義に従って記述した図
の一例である。図21において、211と212とは、
長方形の絵で示された”N6”のノードの間を接続す
る”A3”のアークである。213はこれら2個の”A
3”のアークの間を接続する”A4”のアークである。
【0126】本実施例によれば、アークとアークの間を
別のアークで接続することがあるような図を扱うことが
できる。図21は例えばプログラム間のデータの流れを
表す図に応用できる。211や212はデータの流れを
表していて、213はそれらのデータ間の関係を表して
いる。
【0127】また図22は通信プロトコルの設計によく
用いられるシーケンスチャートの例である。このような
図も本実施例で扱うことができる。図22において、2
21は始点が長方形のノードで終点にはなにも接続され
ていないアークである。222は221に用いられたア
ークの間を接続するアークと定義された他のアークであ
る。このような定義を行うことで、図22のようなシー
ケンスチャートを記述できるアプリケーション23を作
成することができる。
【0128】以下、図1〜図3と図23〜図26を用い
て本発明の第5の実施例を説明する。
【0129】第5の実施例は第1の実施例のノード定義
16にさらに、他のノードやアークを包含する種類のノ
ードを定義できるように拡張したものである。このよう
に他の構成要素を包含するノードを特に包含ノードと呼
ぶことにする。
【0130】図23は拡張したノード定義エディタの画
面の一例で、包含ノードを定義しているところである。
図23において、234は包含ノードを表す絵を定義し
ている。236はこの包含ノードにアークを接続すると
きの接続位置を示している。235は包含する構成要素
を配置する領域を示している。この領域内に他のアーク
やノードを配置する。232はこのノードか包含ノード
であることを定義している。232を”N”とすれば、
実施例1のような包含ノードでないノードも定義でき
る。231はこのノードと交差することのできる構成要
素を定義している。この例では”N9”となっているの
で、包含ノード同士は交差できることが定義されてい
る。233は包含ノードに包含される図の種類を示して
いる。ここでは”ER図”となっているので、図17の
ような図をこの包含ノードの235の領域内に包含でき
ることを示している。
【0131】図24はアーク定義17にさらに、他の構
成要素との交差ができるか否かを定義できるように拡張
したアーク定義エディタ13の画面の一例である。図2
4において、241はこのアークが”N9”のノードと
交差できることを示している。
【0132】図25は接続規則18の定義の例を示して
いる。251の行は包含ノード同士を”A3”というア
ークで接続できることを示している。252の行は実施
例4と同様に、”N6”という長方形のノード同士を図
24に示すような”A4”というアークで接続できるこ
とを示している。
【0133】図26は図23〜図25のような定義によ
って記述できる図の一例である。図26において、26
1と262と263とは”N9”という包含ノードであ
る。例えば264は”N6”というノードであって、こ
れは261と263の両方の包含ノードに包含されてい
る。265は”A3”というアークであって、図25の
251に従って、包含ノード同士を接続している。
【0134】例えば図26において、261の包含ノー
ドを移動した場合、これに含まれるすべての構成要素も
同時に移動する。例えば264は261の移動に伴っ
て、261との相対的な位置を保持するように移動され
る。従ってさらにこれに伴って、264に接続されてい
るアークも移動される。
【0135】本実施例によれば、他の構成要素を包含す
る種類のノードを定義できる。包含された構成要素は包
含ノードの移動に伴って、包含ノードとの相対的な位置
を保持しながら移動する。作業者は包含ノードを用いる
ことで、図中の複数の構成要素の間の集合関係などを表
現できる。しかも包含ノードを移動するだけで、それに
包含される他の構成要素も同時に移動できるので、移動
の操作が簡便である。
【0136】作業者は、包含ノードに包含されている個
々の構成要素を移動させて、包含ノードから外に出した
り、逆に中に入れたりできる。このような包含ノードか
らの出し/入れを動作規則20のイベントに記述するこ
とで、作業者がある構成要素を包含ノードから出し/入
れしたときに特定の動作をさせるように構成することも
できる。例えば動作規則20において、対象を”N
6”、イベントを”out”、動作を”F3”とするこ
とで、N6のノードが包含ノードから外に出されたとき
に”F3”というユーザ関数が実行されるようにでき
る。従って図26において264を261の領域の外に
移動したときは”F3”が実行される。
【0137】例えば”N9”の包含ノードがフロッピー
ディスクを表し、”N6”のノードがファイルを表す図
を定義することもできる。図26によれば264はファ
イルを表現していて、261と263の両方のフロッピ
ーディスクに保存されている。作業者は264のノード
を261の外に出すことで、261のフロッピーディス
クからファイルを移動させることを指示することができ
る。このときユーザ関数”F3”はファイルの移動の処
理を行う。これにより図中の構成要素の位置を移動させ
るだけでファイルを移動させることができるアプリケー
ション23を作成できる。
【0138】以下、図1〜図3と図27〜図30を用い
て本発明の第6の実施例を説明する。
【0139】第6の実施例は第1の実施例にさらに状態
遷移規則29をさらに備え、動作規則20の動作に状態
の遷移を記述できるように構成し、図中の構成要素の動
作を状態に応じて変化させられるようにしたものであ
る。
【0140】図27は動作定義エディタ19を用いて状
態遷移図で状態遷移規則29を定義する画面の一例であ
る。図27において、272〜274は状態を示してい
る。271はこれらのうちどれが開始状態であるかを示
している。従って272が開始状態である。275〜2
77は遷移を示している。例えば275は272から2
73への状態の遷移を示しており、遷移のときに”be
ep”という動作が実行されることも合わせて示してい
る。同様に273から274への遷移では”F3”が、
274から273への遷移では”F4”が実行される。
【0141】図28は状態と色との対応をしめしてい
る。282の列に状態を、283の列に色を指定する。
例えば281の行は状態S1に”白”が対応することを
示している。
【0142】図29は状態遷移規則29を用いて、状態
の遷移や状態に応じた動作の変更ができるように、動作
規則20を拡張したものである。図29において、29
1の列は動作が起こるための条件を示している。例えば
293の行の規則は”N1”の状態がS1でなければ適
用されない。294の行は状態の指定がないので、どの
ような状態でもよく、従って実施例1と同様に動作す
る。292の行の動作では”transition”が
指定されている。これは図27に示す状態の遷移を起こ
す動作を意味している。従って”N1”のノードに対し
て”push”のイベントが指示されたときは、その時
点での状態に応じて状態の遷移が起き、さらに遷移に伴
う動作を実行する。
【0143】図27〜図29の定義に従って合成された
アプリケーション23では、図中の個々の構成要素が独
立した状態を保持し、図28に示すように状態に応じて
表示を変化させる。例えば”N1”のノードは開始状態
がS1なので、図中に初めてこのノードが挿入されたと
きは状態はS1で、白で表示する。作業者がこのノード
を選択して”push”のイベントを指示すると、”b
eep”の動作を実行した後、状態をS2に遷移させて
赤で表示する。状態は個々の構成要素が独立して保持し
ているので、例えば”N1”のノードが図中に複数個あ
っても、状態がS1からS2に遷移するのは、作業者が
選択したノードだけである。また図29の293の行に
よれば、状態がS2のときだけ移動ができるので、作業
者がノードを移動させたいときは、先ずノードの状態を
遷移させてS2にしてからでないと移動ができない。
【0144】本実施例によれば、状態遷移規則29を用
いてノードやアークの複雑な動作を簡単に定義する事が
できる。例えば前記のようにある状態のときだけ移動で
きるように定義することで、作業者が操作を誤って構成
要素の位置を移動してしまうのを防止するために位置を
一時的に固定することができる。あるいは図9に示すシ
ステム構成図において、プリンタが印刷要求を許可する
かしないかを状態に対応させ、作業者が簡単な操作でこ
れを制御できるように構成することもできる。
【0145】また、図28では状態の変化を表示する手
段として色を変化させて表示する方法を示したが、他の
方法で表示することもできる。例えば図30のようにノ
ードの絵を状態に応じて変化させることもできて、この
場合は空のポストと郵便物が届いているポストの絵をそ
れぞれ301と302に定義している。これにより例え
ば電子メールシステムと組み合わせて使用することで、
メールが届いているか否かを状態に対応させて表示する
ことができる。さらに動作規則20を適当に指定するこ
とで、例えばマウスカーソルで選択するなどの簡単な操
作でメールの内容を確認できるように構成することもで
きる。
【0146】以下、図1〜図3と図31〜図33を用い
て本発明の第7の実施例を説明する。
【0147】第7の実施例は、第1の実施例にさらに図
要素対応表26を備え、複数の種類の図を使用する場合
にそれらの図の間で変換ができるように構成したもので
ある。
【0148】図31は図要素対応表26の例である。図
31において、列は変換する2種類の図に対応してお
り、311の列はER図に対応し、312の列はDFD
に対応している。DFDとは処理とデータの関係を表す
データフロー図を表している。例えば313の行によれ
ば、ER図における”N6”の種類のノードはDFD
の”N10”の種類のノードに対応することが定義され
ている。N6は長方形のノードで、N10も長方形のノ
ードである。同様に314の行によれば、ER図の”N
7”とDFDの”N11”とが対応し、315の行によ
ればER図の”A3”とDFDの”A3”とが対応して
いる。
【0149】図31に示す定義に従えば、例えば図32
のようなER図は図33のようなDFDに変換ができ
る。図32と図33において、321と323はER図
の”N6”のノードで、ER図における実体という概念
を表している。これらはそれぞれ図33の331と33
3に変換される。331と333は”N10”のノード
で、DFDのデータの概念を表している。同様にして図
32の322は、ER図の関連の概念を表すN7のノー
ドであり、これは図33の332に変換される。332
はDFDの処理の概念を表すN11のノードである。変
換においては、ノードの座標は元の図と同じである。ア
ークは、ノードの接続位置の指定に従って位置が修正さ
れるが、接続の関係は元の図と同じである。
【0150】ER図の定義では例えば図16に示すよう
に”A4”のアークを構成する”A3”のアークの一方
は167のように逆方向をむいており、このことは16
2に定義されている。DFDの定義では逆方向を向いて
いないので、従って図32の324は左向きだが、図3
3の334では右向きに変換されている。
【0151】本実施例によれば、本発明にかかるプログ
ラム合成システムを用いて2種類の図を処理するアプリ
ケーション23を作成したとき、それらの図の間で相互
に図の変換を自動的に行うことができる。作業者は例え
ば図32のようなER図を選択し、いわゆるカット&ペ
ーストやドラッグ&ドロップなどの簡単な操作でDFD
に図を複写するだけで、図を構成する個々の要素が自動
的に変換される。また逆に図33のようなDFDから図
32のようなER図に変換することもできる。これによ
り、作業者はDFDとER図の両方を描くとき、一方の
図で描いた内容を他方の図に複写できる。従って図を描
くための労力が半減する。
【0152】
【発明の効果】計算機を利用する作業者に対して、情報
を分かりやすく表示する手段として図がよく用いられ
る。図にはさまざまな種類があるが、ノードとアークと
で構成されるグラフ型の図が最も多く利用されている。
例えば階層的ファイルシステムの構造を示す図、本明細
書にも用いているフローチャートやブロック図、集合を
分かりやすく表現するベン図などがある。
【0153】通常、図中の構成要素はなんらかの意味が
与えられていて、例えば前記の例の場合はファイルを表
していたり、処理を表していたり、集合の要素を表して
いたりする。作業者はこれらの図中の構成要素に対して
何らかの処理を指示したいことがよくある。例えばファ
イルに対してその内容を確認したいとか、フローチャー
トの処理に対して処理内容を定義したいとか、あるいは
集合の要素を別の集合へ移動させたいなどである。
【0154】本発明の第1の実施例によれば、図の定義
と図中の構成要素に対する処理の定義を与えることで、
定義通りの図を編集する機能と図中の構成要素に対する
処理機能とを有するアプリケーションを合成できるプロ
グラム合成システムを構成できる。図の定義においては
ノードやアークの絵を自由に定義でき、それらの接続に
おける規則を定義できる。合成するプログラムは、定義
通りの絵を表示する機能、規則通りの接続か否かを検査
する機能を有している。これらの機能は、本発明に係る
プログラム合成システムに予め備えたアプリケーション
ライブラリを用いて達成できるので、アプリケーション
を作成するときには、図の定義や図中の構成要素に対す
る処理だけを与えるだけでよいので、従来のようにプロ
グラミング言語を用いて複雑なグラフィック処理を実現
する必要がない。このため飛躍的な生産性の向上が達成
される。
【0155】また、最終的に作成したいアプリケーショ
ンが複雑なものであっても、先ず本発明に係るプログラ
ム合成システムを用いて図を定義し、図の編集機能だけ
を有するアプリケーションを作成し、以後段階的に機能
を付加して行き、求めるアプリケーションに近づけて行
くことができる。このように、部分的な機能だけを有す
る試作品を簡単に作成する目的にも本発明は有効であ
る。さらに試作品の完成度を高めるために段階的に機能
を付加する場合も、その機能に対する動作の定義を動作
規則に段階的に定義して行くことができるので、本発明
が有効である。
【0156】本発明によって簡単に作成できるアプリケ
ーションの一例として、パソコンやプリンタを管理する
システム構成図、オブジェクト指向言語のライブラリを
管理するツール、仕事の流れを定義して流れの順にデー
タを移動させたりツールを起動したりするワークフロー
などの例を実施例に述べた。
【0157】またある2個のノード間を同じアークで何
本も無制限に接続するのを禁止するように、接続規則の
定義に重複数の制限を定義できるようにすることもでき
る。例えばシステム構成図において、パソコンとディス
プレイ装置との間には電源ケーブルと画像信号線の2本
の線が必要になるという制約があることを接続規則に定
義することができる。この接続規則を用いることで誤っ
た接続に対して、作業者に警告することができる。
【0158】本発明の第2の実施例によれば、作業者は
始点と終点の構成要素を選択するだけで、接続線となる
アークの接続位置を自動的に計算して適切な位置に接続
できる。さらに、始点と終点となる構成要素の組み合わ
せから、接続線となる構成要素が一意的に決定できる場
合もある。このような場合は、作業者は接続線とする構
成要素を指定する必要すらない。従って作業者の操作が
簡便となる。
【0159】本発明の第3の実施例によれば、既に定義
されているノードやアークを組み合わせるだけで新しい
アークを定義できるため、複雑なアークを簡単に定義で
きる。また作業者は、複数の構成要素からなる複雑なア
ークを描くときに個々の構成要素を組み合わせて描くよ
りも、これらの組み合わせで一つのアークとして定義さ
れているものを用いる方が操作が簡便である。特に、ア
ークの一部分を構成するノードをアーク全体の角度に合
わせて回転する必要があるときには、ノードを回転させ
る操作を自動化できるのでさらに操作が簡便となる。
【0160】また図の種類によっては、複数のノードや
アークで構成されたアークに対して特別な意味が与えら
れている場合がある。作業者が作成した図を他のプログ
ラムで解釈して他の何らかの目的に利用したいとき、複
雑なアークの構造をプログラムが解釈しやすくなるとい
う利点がある。
【0161】また、作業者の指示に従ってノードを移動
させた場合、接続されているアークも自動的に移動す
る。複数のノードやアークがより複雑なアークを構成し
ている場合、この複雑なアーク全体が自動的に移動す
る。もしこのようなアークの構造の定義がなかった場合
は、最初に移動させたノードに接続されている最小単位
のアークが1個だけ移動するにすぎないので、複雑なア
ークを構成する残りの部分は作業者が別に指示して移動
させなければならない。この操作の煩雑さを解消できる
効果を持っている。
【0162】本発明の第4の実施例によれば、アークと
アークの間を別のアークで接続することがあるような図
を扱うことができる。例えば通信プロトコルの設計に用
いられるシーケンスチャート、列車ダイヤを表現するダ
イヤグラムなどに応用できる。
【0163】本発明の第5の実施例によれば、他の構成
要素を包含する種類のノードを定義できる。包含された
構成要素は包含ノードの移動に伴って、包含ノードとの
相対的な位置を保持しながら移動する。作業者は包含ノ
ードを用いることで、図中の複数の構成要素の間の集合
関係などを表現できる。しかも包含ノードを移動するだ
けで、それに包含される他の構成要素も同時に移動でき
るので、移動の操作が簡便である。
【0164】作業者は、包含ノードに包含されている個
々の構成要素を移動させて、包含ノードから外に出した
り、逆に中に入れたりできる。このような包含ノードか
らの出し/入れを動作規則に記述することで、作業者が
ある構成要素を包含ノードから出し/入れしたときに特
定の動作をさせるように構成することもできる。
【0165】例えば集合関係を表現するベン図、ER図
において複数の実体の集まりを表現するサブジェクトエ
リア、ブロック図において複数の装置の集まりを表すア
ッセンブリーモジュールなどの表現に応用できる。
【0166】本発明の第6の実施例によれば、状態に応
じて動作が変化する複雑なノードやアークを状態遷移図
の技術を応用して簡単に定義する事ができる。例えばノ
ードがある状態のときだけ位置を移動できるように定義
することで、作業者が操作を誤って構成要素の位置を移
動してしまうのを防止するために位置を一時的に固定す
ることができる。あるいはシステム構成図において、プ
リンタが印刷要求を許可するかしないかを状態に対応さ
せ、作業者が簡単な操作でこれを制御できるように構成
することもできる。
【0167】また、ノードやアークの表示において、状
態に応じて色や絵を変化させることで作業者が容易に状
態を確認できるようにすることもできる。例えば空のポ
ストと郵便物が届いているポストの絵をそれぞれ異なる
状態に対応させるこにより、電子メールシステムと組み
合わせて使用することで、メールが届いているか否かを
状態に対応させて表示することができる。さらにマウス
カーソルで選択するなどの簡単な操作でメールの内容を
確認できるように構成することもできる。
【0168】本発明の第7の実施例によれば、本発明に
かかるプログラム合成システムを用いて2種類の図を処
理するアプリケーションを作成したとき、それらの図の
間で相互に図の変換を自動的に行うことができる。例え
ばER図とDFDの2種類の図を処理するアプリケーシ
ョンにおいて、作業者はER図を選択し、いわゆるカッ
ト&ペーストやドラッグ&ドロップなどの簡単な操作で
DFDに図を複写するだけで、図を構成する個々の要素
が自動的に変換される。また逆にDFDからER図に変
換することもできる。これにより、作業者はDFDとE
R図の両方を描くとき、一方の図で描いた内容を他方の
図に複写できる。従って図を描くための労力が半減す
る。
【図面の簡単な説明】
【図1】本発明に係るプログラム合成システムの処理と
データの構成を示すブロック図である。
【図2】本発明に係るプログラム合成システムの装置の
構成を示すブロック図である。
【図3】本発明に係る第1の実施例の処理手順を示すフ
ローチャートである。
【図4】ノード定義エディタの一画面例である。
【図5】アーク定義エディタの一画面例である。
【図6】接続規則エディタの一画面例である。
【図7】図構成定義エディタの一画面例である。
【図8】動作定義エディタの一画面例である。
【図9】本発明に係るプログラム合成システムで合成し
たアプリケーションの実行画面の一例である。
【図10】始点と終点の接続位置を指定できるように拡
張した接続規則エディタの一画面例である。
【図11】接続位置を詳細に定義できるようにしたノー
ド定義エディタの一画面例である。
【図12】本発明に係る第2の実施例における、アーク
の接続位置を取得する処理の処理手順を示すフローチャ
ートである。
【図13】本発明に係る第2の実施例を用いて合成した
アプリケーションの、アークを接続する前の画面例であ
る。
【図14】本発明に係る第2の実施例を用いて合成した
アプリケーションの、アークを接続した後の画面例であ
る。
【図15】接続位置を詳細に定義できるようにしたノー
ド定義エディタの他の画面例である。
【図16】他のアーク又はノードの組み合わせでアーク
を定義できるように拡張したアーク定義エディタの一画
面例である。
【図17】他のアーク又はノードの組み合わせで定義し
たアークを用いたアプリケーションの一画面例である。
【図18】他のアーク又はノードの組み合わせで定義し
たアークに対する接続規則の例である。
【図19】他のノード又はアークの組み合わせで定義し
たアークの一例である。
【図20】アークとアークを接続するアークを定義する
接続規則の例である。
【図21】アークとアークを接続するアークの例であ
る。
【図22】アークとアークを接続するアークの他の例で
ある。
【図23】他のノード又はアークを内部に包含するノー
ドを定義できるように拡張したノード定義エディタの一
画面例である。
【図24】アークに交差又は重なることを許す他のノー
ド又はアークを定義できるように拡張したアーク定義エ
ディタの一画面例である。
【図25】他のノード又はアークを内部に包含するノー
ドに対する接続規則の例である。
【図26】他のノード又はアークを内部に包含するノー
ドを用いたアプリケーションの一画面例である。
【図27】状態遷移規則の例である。
【図28】状態に対する色の定義例である。
【図29】状態に応じて動作を変更できるように拡張し
た動作定義エディタの一画面例である。
【図30】状態とノードの絵との対応の定義例である。
【図31】2種類の図を構成する構成要素の対応を示
す、図要素対応表の例である。
【図32】本発明に係る第7の実施例を説明するため
の、ER図の例である。
【図33】本発明に係る第7の実施例を用いて図32の
ER図をDFDという他の種類の図に変換した結果を示
す図である。
【符号の説明】 1…対話端末、 2…CPU、 3…メモ
リ、4…外部記憶装置、 11…図構成定義エディ
タ、12…ノード定義エディタ、 13…アーク定義
エディタ、14…接続規則エディタ、 15…図構
成定義、16…ノード定義、 17…アーク定義、
18…接続規則、19…動作定義エディタ、 2
0…動作規則、 21…ユーザ、22…プログラム合
成処理、 23…アプリケーション、25…図ファイ
ル、 26…図要素対応表、27…アプリケーション
ライブラリ、 28…図定義情報、29…状態遷移規
則。

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】計算機及び対話端末を有する情報処理装置
    において、 ノードとアークの組み合わせでグラフ型の図を定義する
    図構成定義データを記憶するステップと、 ノードの絵を定義するノード定義データを記憶するステ
    ップと、 アークの絵とアークの始点とアークの終点とを定義する
    アーク定義データを記憶するステップと、 始点となるノードと終点となるノードと接続に用いるア
    ークとの組み合わせによって接続の規則を定義する接続
    規則データを記憶するステップと、 ノード又はアークと該ノード又はアークに対する作業者
    の指示と該ノード又はアークに対して行うべき処理との
    組み合わせにより、該グラフ型の図に対して行うべき処
    理の動作を定義する動作規則データを記憶するステップ
    と、 該図構成データに従って該グラフ型の図に使用できるノ
    ードとアークを並べて表示する処理と、該ノード定義デ
    ータに従ってノードを表示する処理と、該アーク定義デ
    ータに従ってアークを表示する処理と、該接続規則デー
    タに従って接続が規則通りか調べる処理との少なくとも
    3個の処理からなるライブラリを記憶するステップと、 該動作規則データに従って該ライブラリ内の処理を呼び
    出すプログラムを合成するステップを有することを特徴
    とするプログラム合成方法。
  2. 【請求項2】請求項1記載のプログラム合成方法におい
    て、 さらにノード又はアークに対する処理を記憶するステッ
    プをさらに有し、 該プログラムを合成するステップは、該動作規則データ
    における該ノード又はアークに対する処理が該ライブラ
    リに含まれない処理の場合は、前記ステップで記憶した
    処理を呼び出すプログラムを合成することを特徴とする
    プログラム合成方法。
  3. 【請求項3】請求項1記載のプログラム合成方法におい
    て、 該ライブラリはさらに、 作業者の指示に従って始点となるノードと終点となるノ
    ードとを選択するステップと、 該接続規則から該始点となるノードと該終点となるノー
    ドとの両方が一致する規則を検索するステップと、 検索された該規則に従って接続に用いるアークを取得す
    るステップとを有する処理をさらに有し、 作業者が始点となるノードと終点となるノードとを指定
    したとき、該処理を実行して接続に用いるアークを取得
    して、該始点となるノードと該終点となるノードとを該
    アークで接続するプログラムを合成するステップをさら
    に有することを特徴とするプログラム合成方法。
  4. 【請求項4】請求項1記載のプログラム合成方法におい
    て、 該ノード定義データはさらに、ノードにアークを接続す
    るときの接続位置を1個又は複数個定義し、 該接続規則データはさらに、始点となるノードの接続位
    置を指定する始点接続位置と、終点となるノードの接続
    位置を指定する終点接続位置を定義し、 該ライブラリ内の該接続規則データに従って接続が規則
    通りか調べる該処理は、さらに始点の接続位置が該始点
    接続位置通りでかつ終点の接続位置が該終点接続位置通
    りであるか調べることを特徴とするプログラム合成方
    法。
  5. 【請求項5】請求項3及び請求項4記載のプログラム合
    成方法において、 該ライブラリ内の処理は、 該接続規則の該始点接続位置と該終点接続位置を取得す
    るステップと、 前記ステップで取得した接続位置に対応する位置を該ノ
    ード定義データに定義された接続位置から取得するステ
    ップと、 該接続規則の接続位置と該ノード定義データの接続位置
    とからアークを接続する位置を自動的に計算するステッ
    プとをさらに有し、 作業者が始点となるノードと終点となるノードとを指定
    したとき、アークで接続するプログラムを合成する該ス
    テップは、さらに前記ライブラリ内の該処理を実行して
    アークを接続する位置を自動的に計算するプログラムを
    さらに合成することを特徴とするプログラム合成方法。
  6. 【請求項6】請求項1記載のプログラム合成方法におい
    て、 該アーク定義データは、1個又は複数個の他のアーク又
    はノードの組み合わせでアークを定義し、 作業者が該アーク定義データに定義された該アークを図
    に描くことを指定したときは、該アークを構成する該1
    個又は複数個の他のアーク又はノードのすべてを図に描
    くプログラムを合成するステップをさらに有することを
    特徴とするプログラム合成方法。
  7. 【請求項7】請求項1記載のプログラム合成方法におい
    て、 該接続規則データは、ノード又はアークを始点とし、ノ
    ード又はアークを終点とし、アークを用いて接続する規
    則を定義し、 該ライブラリ内の、該アーク定義データに従ってアーク
    を表示する該処理は、ノード又はアークを始点とし、ノ
    ード又はアークを終点としてアークを表示することを特
    徴とするプログラム合成方法。
  8. 【請求項8】請求項1記載のプログラム合成方法におい
    て、 該ノード定義データはさらに、他のノード又はアークを
    内部に包含できるか否かを定義し、 該ライブラリにはさらに、ノードの位置を移動する処理
    とアークの位置を移動する処理とをさらに有し、 作業者が第1のノードの移動を指示し、かつ該ノード定
    義データにより該第1のノードが他のノード又はアーク
    を内部に包含できると定義されている場合は、ノードの
    位置を移動する該処理を実行して該第1のノードを移動
    するとともに、該第1のノードが包含するノード又はア
    ークの位置を移動する処理を実行するプログラムを合成
    するステップをさらに有することを特徴とするプログラ
    ム合成方法。
  9. 【請求項9】請求項1記載のプログラム合成方法におい
    て、 該ノード定義データはさらに、定義するノードに交差又
    は重なることを許す他のノード又はアークを定義し、 該アーク定義データはさらに、定義するアークに交差又
    は重なることを許す他のノード又はアークを定義し、 該ライブラリ内の、該ノード定義データに従ってノード
    を表示する該処理は、該ノード定義データにより交差又
    は重なることを許された他のノード又はアークとだけ交
    差又は重なるように配置して表示し、 該ライブラリ内の、該アーク定義データに従ってアーク
    を表示する該処理は、該アーク定義データにより交差又
    は重なることを許された他のノード又はアークとだけ交
    差又は重なるように配置して表示することを特徴とする
    プログラム合成方法。
  10. 【請求項10】請求項1記載のプログラム合成方法にお
    いて、 複数の状態と、状態間の遷移と、遷移のときに実行すべ
    き処理とを定義する状態遷移規則データを記憶するステ
    ップと、 作業者がノード又はアークと、該ノード又はアークに対
    する指示をしたとき、該動作規則データで定義された処
    理が状態の遷移であったときは、該状態遷移規則データ
    に従って該ノード又はアークの状態を遷移するプログラ
    ムを合成するステップをさらに有することを特徴とする
    プログラム合成方法。
  11. 【請求項11】請求項10記載のプログラム合成方法に
    おいて、 該動作規則データはさらに、処理を実行する前提条件と
    して状態を定義し、 該動作規則データに従って該ライブラリ内の処理を呼び
    出すプログラムを合成する該ステップは、作業者が指示
    したノード又はアークの状態が該動作規則に定義された
    前提条件の状態に合致する動作規則を検索し、該動作規
    則で定義された処理を呼び出すプログラムを合成するこ
    とを特徴とするプログラム合成方法。
  12. 【請求項12】請求項10記載のプログラム合成方法に
    おいて、 ノード又はアークの状態を表示するため、該状態遷移規
    則データに定義された複数の状態と、各々の状態に対す
    る表示との対応関係を記憶するステップをさらに有し、 該ライブラリ内の、該ノード定義データに従ってノード
    を表示する該処理は、ノードの状態に対応する表示を行
    うことで状態が視認できるように処理し、 該ライブラリ内の、該アーク定義データに従ってアーク
    を表示する該処理は、アークの状態に対応する表示を行
    うことで状態が視認できるように処理することを特徴と
    するプログラム合成方法。
  13. 【請求項13】請求項1記載のプログラム合成方法にお
    いて、 第1の図を構成するノード又はアークと、第2の図を構
    成するノード又はアークとの対応関係を記憶するステッ
    プと、 作業者の指示に従って第1の図を記憶し、該第1の図に
    含まれる1個又は複数のノード又はアークを該対応関係
    に従って第2の図を構成するノード又はアークに置換す
    ることで第2の図を自動的に作成するプログラムを合成
    するステップをさらに有することを特徴とするプログラ
    ム合成方法。
JP6249075A 1994-10-14 1994-10-14 プログラム合成方法 Pending JPH08115207A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6249075A JPH08115207A (ja) 1994-10-14 1994-10-14 プログラム合成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6249075A JPH08115207A (ja) 1994-10-14 1994-10-14 プログラム合成方法

Publications (1)

Publication Number Publication Date
JPH08115207A true JPH08115207A (ja) 1996-05-07

Family

ID=17187638

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6249075A Pending JPH08115207A (ja) 1994-10-14 1994-10-14 プログラム合成方法

Country Status (1)

Country Link
JP (1) JPH08115207A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008059164A (ja) * 2006-08-30 2008-03-13 Nec Corp フローダイアグラム編集装置、フローダイアグラム編集方法、及びプログラム
WO2012121005A1 (ja) * 2011-03-04 2012-09-13 日本電気株式会社 可用性モデル生成支援装置、可用性モデル生成支援方法、およびプログラム
WO2013031129A1 (ja) * 2011-08-30 2013-03-07 日本電気株式会社 情報処理装置、情報処理方法、及びプログラム
JP2020109558A (ja) * 2018-12-31 2020-07-16 株式会社コンシェルジュ 対話型サービス提供システム、シナリオ生成編集システム及びプログラム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008059164A (ja) * 2006-08-30 2008-03-13 Nec Corp フローダイアグラム編集装置、フローダイアグラム編集方法、及びプログラム
JP4635987B2 (ja) * 2006-08-30 2011-02-23 日本電気株式会社 フローダイアグラム編集装置、フローダイアグラム編集方法、及びプログラム
WO2012121005A1 (ja) * 2011-03-04 2012-09-13 日本電気株式会社 可用性モデル生成支援装置、可用性モデル生成支援方法、およびプログラム
US20130338799A1 (en) * 2011-03-04 2013-12-19 Nec Corporation Availability model generation support device, availability model generation support method, and program
JP6016128B2 (ja) * 2011-03-04 2016-10-26 日本電気株式会社 可用性モデル生成支援装置、可用性モデル生成支援方法、およびプログラム
WO2013031129A1 (ja) * 2011-08-30 2013-03-07 日本電気株式会社 情報処理装置、情報処理方法、及びプログラム
JP5304972B1 (ja) * 2011-08-30 2013-10-02 日本電気株式会社 情報処理装置、情報処理方法、及びプログラム
US8798982B2 (en) 2011-08-30 2014-08-05 Nec Corporation Information processing device, information processing method, and program
JP2020109558A (ja) * 2018-12-31 2020-07-16 株式会社コンシェルジュ 対話型サービス提供システム、シナリオ生成編集システム及びプログラム

Similar Documents

Publication Publication Date Title
JP3660366B2 (ja) 図形を用いたプログラミングシステム
US8117594B2 (en) Graphical editor with incremental development
US5675753A (en) Method and system for presenting an electronic user-interface specification
JP5028151B2 (ja) 改良コンピュータ化された協同作業
Falck et al. Freecad [How-To]
JPH1091414A (ja) 図的プログラミングにおける機能オブジェクトの表示方法
JP5416112B2 (ja) インタラクティブなユーザーインターフェースの定義
JP3487644B2 (ja) グラフィカル・ユーザ・インターフェース作成装置
Spens Automating SOLIDWORKS 2017 Using Macros
JP3663219B2 (ja) 幾何拘束条件表示装置
JPH08115207A (ja) プログラム合成方法
JPH1125126A (ja) システム設計ツール及びデータウエアハウス設計システム及び方法
JPH06187396A (ja) ネットワーク構成設計支援システム
CN115237387A (zh) 一种数字孪生应用的快速开发方法及系统
JP2003288458A (ja) 統合プロジェクト管理ツール
JPH09245035A (ja) ドキュメント管理装置
JPH04294424A (ja) コンピュータシステムの対話的画面制御装置
US6879736B1 (en) Apparatus and method of processing characters
JP3083552B2 (ja) 階層編集処理装置
JPS63220367A (ja) 木構造チヤ−ト作成装置
JP2001117761A (ja) 画面プログラム製造方法及びその装置並びに画面プログラム製造プログラムを記録した記録媒体
JP3557896B2 (ja) 制御設計用コンフィギュレーションツール
JPH09231064A (ja) ソフトウエア開発支援システム及び該システムを記憶した媒体
JP4618405B2 (ja) 3次元オブジェクト統合装置
CN115794717A (zh) 基于模型的接口设计方法、系统、介质及设备