以下、本発明の一実施例を図面を用いて詳細に説明する。図1は本発明を実現するプログラム作成システムの機能構成の一例を示した。実線116は本システムの機能間の制御関係を示し、破線117は前記機能のデータ読み書き関係を示す。折れ線118はネットワークの接続回線を示す。利用者による要求はキーボードやポインティングデバイス等の入力装置101やネットワーク接続された計算機115を経て要求入力102により入力される。解析制御103は前記要求内容を解析し、結果にしたがってプログラム編集104、ナビゲータ105、コネクタ生成106、解釈/実行107のうち必要に応じた機能を呼び出し、結果を応答出力113に渡す。応答出力113は結果を表示装置114またはネットワーク接続された計算機115に出力する。プログラム編集104は編集対象となるプログラム情報109とプログラムの構成要素となるモジュール情報108の読み込み、書き出し、編集を行なう。ナビゲータ105は前記編集時にモジュールとモジュールとの組み合わせ方法を誘導するナビゲート情報110とナビゲート情報110の利用を利用者のレベルによって制限するユーザレベル111を読み込み、前記誘導を行なう。コネクタ生成106は前記誘導結果からモジュールとモジュールとの組み合わせるモジュールを生成し、生成したモジュール(以下コネクタと呼ぶ)をコネクタ112に書き込み、生成元となった組み合わせたモジュールと生成されたモジュールの関係をプログラム情報110に書き込む。解釈/実行107はプログラム情報109、モジュール情報108、コネクタ112を読み込み、解釈して実行をする。
図2は本システムの概略処理フローを示した。処理201は利用者から入力された本システムへの要求を判定する。プログラムの編集なら処理202、プログラムの実行なら処理211、終了なら本システムの処理を終了する。
処理202は本システムの初期画面を表示する。図3に本システム初期画面を示した。本システムの画面は2つから構成される。画面301はプログラムを編集するプログラミングエディタ画面、画面302はプログラムを構成するモジュールの一覧を図形で表示するモジュール一覧画面である。プログラム編集画面301はプログラムを表示、編集するプログラム編集領域303とプログラム編集領域303を前後にスクロールするスライダー304と左右にスクロールするスライダー305から構成される。モジュール一覧画面302はモジュールを図形で表示するモジュール表示領域306とモジュール表示領域306を左右にスクロールするスライダー307から構成される。
処理203はプログラムの構成要素となるモジュールをモジュール情報108を読み込み本システムがアクセス可能なモジュール情報テーブルに展開してメモリーにロードする。メモリーにロードされたモジュール情報テーブル108の構成を図4に示した。
モジュール情報テーブルのレコード構成を401に示した。レコード401はモジュールの型を記憶するモジュール型402、モジュールの名称を記憶するモジュール名403、モジュールの有する変数の一覧リストのポインタを記憶する変数リストポインタ404、モジュールの有する手続きの一覧リストのポインタを記憶する手続きリストポインタ405、モジュールの有するイベントの一覧リストのポインタを記憶するイベントリストポインタ406、モジュールをプログラム編集画面301に表示するための図形種、色、位置等を記憶する表示情報ポインタ407から構成される。変数リストポインタ404の記憶先の変数一覧リストの構成を408に示した。レコード408は変数の型を記憶する型409と変数の名称を記憶する変数名410から構成される。手続きリストポインタ405の記憶先の手続き一覧リストの構成を411に示した。レコード411は手続きの名称を記憶する手続き名412と手続きのアドレスを記憶するアドレス413から構成される。イベントリストポインタ406の記憶先のイベント一覧リストの構成を414に示した。レコード411はイベントの名称を記憶するイベント名414で構成される。
処理204は処理203がプログラムの構成要素となるモジュールをモジュール情報108から読み込み、メモリーに展開したモジュール情報テーブルのレコード401単位ごとに表示情報415を読み込み、表示情報415に則りモジュールを表した図形をモジュール表示領域306に表示する。
図5には、モジュールをモジュール一覧画面302に表示した一例を示した。モジュール表示領域306には4つのモジュールを表示している(破線501で囲んだ領域)。モジュール表示領域306に表示された図形をモジュール図形と呼ぶ。
図6はモジュール一覧画面302にモジュールを表示するためにメモリに記憶するモジュール一覧表示テーブルの構成を示した。モジュール一覧表示テーブルのレコード構成を601に示した。レコード601はモジュール一覧画面302に表示したモジュール図形の識別子を記憶するモジュール表示ID602、モジュール一覧画面302に表示したモジュール図形がモジュール情報テーブル401に記憶したどのモジュールを表示したのかを識別するモジュール名603とから構成される。
処理205は編集するプログラムが新規作成なのか、既存プログラムの編集なのかを判定する。新規プログラムの作成ならば処理207へ制御が渡る。既存プログラムの編集ならば処理206に制御が渡る。
処理206は指定されたプログラムをプログラム情報109から読み込むみ本システムがアクセス可能なプログラム情報テーブルに展開してメモリーにロードする。メモリーにロードされたプログラム情報テーブル109の構成を図7に示した。
プログラム情報テーブルのレコード構成を701に示した。レコード701はプログラムの名称を記憶するプログラム名702、プログラムを構成するモジュールリストのポインタを記憶するモジュールリストポインタ703、プログラムを構成するモジュール間を接続するコネクタリストのポインタを記憶するコネクタリストポインタ704から構成される。モジュールリストポインタ703の記憶先のモジュールリストの構成を705に示した。レコード705はモジュールの名称を記憶するモジュール名706と、前記モジュールがモジュール情報テーブルに記憶したどのモジュールから生成したかを記憶する生成元モジュール名707と、プログラムを構成するモジュールをプログラム編集領域303に表示するための図形種、色、位置等を記憶する表示情報708から構成される。コネクタリストポインタ704の記憶先のコネクタリストの構成を709に示した。レコード709はコネクタの名称を記憶するコネクタ名710と、前記コネクタのアドレスを記憶するアドレス711と、前記コネクタの実行する契機を記憶するイベント名712と、コネクタの接続元を記憶する接続元モジュール名713と、コネクタの接続先を記憶する接続先モジュール名714と、コネクタをプログラム編集領域303に表示するための図形種、色、位置等を記憶する表示情報715から構成される。
処理207は処理206がプログラムをプログラム情報109から読み込み、メモリーに展開したプログラム情報テーブルのレコード701単位ごとにプログラムを構成するモジュールの表示情報708とコネクタの表示情報715を読み込み、表示情報708と715に則り図形をプログラム編集領域303に表示する。図8にプログラムをプログラム編集領域303に表示した一例を示した。
プログラム編集領域303には3つのモジュール(801、802、803)と1つのコネクタ(804)を表示している。プログラム編集領域303に表示された図形を編集モジュール図形と呼ぶ。図9にプログラム編集領域303にプログラムを表示するためにメモリに記憶するプログラム表示テーブルの構成を示した。
プログラム表示テーブルのレコード構成を901に示した。レコード901はプログラム編集領域303に表示した編集モジュール図形の識別子を記憶する編集モジュール表示ID902と、プログラム編集領域303に表示した編集モジュール図形がプログラム情報テーブル701のモジュールリストポインタ703の記憶先であるモジュールリストのどのモジュールを表示したのかを識別するモジュール名903と、プログラム編集領域303に表示したコネクタ図形の識別子を記憶するコネクタ表示ID904と、プログラム編集領域303に表示したコネクタ図形がプログラム情報テーブル701のコネクタリストポインタ704の記憶先であるコネクタリストのどのコネクタを表示したのかを識別するコネクタ名905とから構成される。
処理208はプログラムの編集処理を行なう。処理208は、後に、図10を用いて詳細に説明する。処理209は利用者から入力された本システムへの要求を判定する。プログラム編集の終了なら処理210、プログラム編集の継続なら処理208へ制御を渡す。
処理210は処理208で編集したプログラムを格納する。処理211は処理210で格納したプログラムを実行するためメモリーにロードする。処理212は処理211がメモリーにロードしたプログラムを解釈/実行107が解釈し実行する。
次に、処理208を詳細に説明をする。処理208の詳細フローを図10に示した。図10は利用者からのプログラム編集要求を受付、解析し、プログラム編集コマンド処理に制御を振り分けるまでを示した。プログラム編集コマンド処理の種類は生成処理、削除処理、複写処理、ナビゲートプログラム検索処理、及び、図形移動処理がある。以下、処理を説明する。
処理1001はプログラム編集画面301とモジュール一覧画面302に対して編集操作の入力を受け付ける。編集操作例を図11に示した。波線枠で囲んだ領域1101にモジュール間を接続する操作例を示した。接続するモジュールはプログラム編集領域303上に表示したユーザモジュール901とユーザモジュール903である。接続操作は接続元のユーザモジュール901をマウスでクリック(1102)したまま移動し、接続先のユーザモジュール903上でユーザモジュール901を重ねる(1103)。前記操作例をもとに図10の説明を続ける。
処理1002は編集操作の対象となった画面を判定する。プログラム編集画面301への操作ならば処理1003へ、モジュール一覧画面302ならば処理1004に制御が渡る。処理1004の生成処理は後述図を用いて詳細に説明する。前記操作例ではプログラム編集領域303でユーザモジュール901をマウスでクリックしたので処理1003に制御が渡る。
処理1003は入力対象を判定する。入力対象が編集モジュール図形(以下接続元モジュール図形と呼ぶ)ならば処理1005へ、コマンドなら処理1014に制御が渡る。前記操作例ではユーザモジュール901をクリックしたので処理1005に制御が渡る。処理1005の説明の前に処理1014から1016の説明をする。
処理1014は処理1003で判定したコマンドの種類を判定する。前記コマンドが削除コマンドなら処理1015で接続元モジュール図形を削除する。あるいは、前記コマンドが複写コマンドなら処理1016で接続元モジュール図形を複写する。本実施例では処理1015と処理1016の詳細な説明は省略する。これより、処理1005の説明をする。
処理1005は接続元モジュール図形からモジュール名を取得する。取得する方法は前記接続元モジュール図形の表示IDとプログラム表示テーブルのレコード901のモジュール表示ID902に記憶されている編集モジュール表示IDとを比較する。前記表示IDと前記編集モジュール表示IDと合致したプログラム表示テーブルのレコード901からモジュール名903に記憶されているモジュール名を取得する。取得したモジュール名を接続元モジュール名とする。
処理1006は接続元モジュール図形が移動されたかを判定する。選択のみで他の編集モジュール図形が再選択された場合には本フローを終了し、接続元モジュール図形を移動した場合は処理1007に制御が渡る。前記操作例ではプログラム編集領域303でユーザモジュール901を移動したので処理1007に制御が渡る。
処理1007は接続元モジュール図形が移動中かどうか判定する。移動中なら処理1007を繰り返し行なう。図形の移動が終わったら処理1008に制御が渡る。
処理1008は、接続元モジュール図形の移動先がプログラム編集領域303内かどうかを判定する。プログラム編集領域303内なら処理1009へ、プログラム編集領域303外なら本フローを終了する。前記操作例では、プログラム編集領域303でユーザモジュール901を移動したので処理1009に制御が渡る。
処理1009は接続元モジュール図形の移動先に他の編集モジュール図形(以下接続先モジュール図形と呼ぶ)が表示されているかどうを判定する。移動先に接続先モジュール図形が表示されていない場合は処理1011へ、移動先に接続先モジュール図形が表示されている場合は処理1010へ制御を渡す。前記操作例ではプログラム編集領域303でユーザモジュール901をプログラム編集領域303内のユーザモジュール903を重ねたので処理1010に制御が渡る。
処理1010は接続先モジュール図形のモジュール名を取得する。取得する方法は接続先モジュール図形の表示IDとプログラム表示テーブルのレコード901の編集モジュール表示ID902に記憶されているモジュール表示IDとを比較する。前記表示IDと前記編集モジュール表示IDと合致したプログラム表示テーブルのレコード901からモジュール名903に記憶されているモジュール名を取得する。取得したモジュール名を接続先モジュール名とする。
処理1011は接続元モジュール図形の移動先に接続先モジュール図形がないので接続元モジュール図形の表示位置の移動として処理する。本実施例では処理1011の詳細な説明は省略する。
処理1012は接続元モジュール名と接続先モジュール名とからコネクタを生成するナビゲートプログラムの検索処理を行なう。処理1012は図を用いて詳細に説明する。
図12に処理1012の詳細フローを示した。処理1012はナビゲータ105のナビゲートプログラム検索処理である。ナビゲートプログラム検索処理は処理1005で取得した接続元モジュール名と処理1010で取得した接続先モジュール名とから、接続元モジュールと接続先モジュールを接続するコネクタを生成するナビゲートプログラムの検索する。以下、図12を詳細に説明する。
処理1201は、コネクタを生成するナビゲートプログラムをナビゲート情報110を読み込み本システムがアクセス可能なナビゲート情報テーブルに展開してメモリーにロードする。メモリーにロードされたナビゲート情報テーブル110の構成を図13に示した。ナビゲート情報テーブルのレコード構成を1301に示した。レコード1301は接続元モジュールの名称を記憶する接続元モジュール名1302、接続先モジュールの名称を記憶する接続先モジュール名1303、接続元モジュールと接続先モジュールを接続するコネクタを生成するナビゲートプログラムの名称を記憶するナビゲート名1303、前記ナビゲートプログラムの所在を示すアドレス1305から構成される。
処理1202は処理1201がメモリーに展開したナビゲート情報テーブルのレコード1301の接続元モジュール名1302に記憶されている接続元モジュール名と処理1005で取得した接続元モジュール名とを比較する。接続元モジュール名1302に記憶されている接続元モジュール名と処理1005で取得した接続元モジュール名が合致したナビゲート情報テーブルのレコード1301を全て記憶する。
次に、前記記憶したナビゲート情報テーブルのレコード1301の接続先モジュール名1303に記憶されている接続先モジュール名と処理1010で取得した接続先モジュール名とを比較する。接続先モジュール名1303に記憶されている接続先モジュール名と処理1010で取得した接続先モジュール名が合致したナビゲート情報テーブルのナビゲート名1304に記憶されたナビゲート名を全て取得する。
処理1203は処理1202で取得したナビゲート名を一覧表示する。図14にナビゲート名を一覧表示した画面の一例を示した。
ナビゲート名一覧画面1401はナビゲータ105からの誘導メッセージを表示するメッセージ1402、処理1202で取得したナビゲート名を表示するナビゲート名リスト1403、ナビゲータ105の有する機能を選択させるボタンを表示するコマンドボタン群1404とから構成される。ボタンの種類は選択コマンドボタン1406、キャンセルコマンドボタン1407である。ナビゲート名リスト1403には一例として3つのナビゲート名を処理1202で取得した結果として表示している。
処理1204は処理1203がナビゲート名リスト1403に表示したナビゲート名を選択操作する入力を受け付ける。選択操作はナビゲート名リスト1403に表示したナビゲート名をマウスでクリックする。図14では3行目に表示されているナビゲート名がマウスでクリック(1405)されている。
処理1205は処理1204でクリックしたナビゲート名を取得する。処理1206は処理1203がコマンドボタン群1404に表示したナビゲータ105の有する機能を選択操作する入力を受け付ける。選択操作はコマンドボタン群に表示されたボタンをマウスでクリックする。図14では選択コマンドボタン1406がマウスでクリック(1408)されている。
処理1207は処理1206で入力されたコマンドを判定する。選択コマンドボタン1406が入力された場合は処理1208へ制御を渡す。キャンセルコマンドボタン1407が入力された場合は本フローを終了する。処理1208はナビゲートプログラムを実行する。処理1208は図を用いて詳細に説明する。
図15に処理1208の詳細フローを示した。処理1208はナビゲータ105のナビゲートプログラム実行処理である。以下、図15を詳細に説明する。処理1501は処理1205で取得したナビゲート名と、処理1201がメモリーに展開したナビゲート情報テーブルのレコード1301のナビゲート名1304に記憶されているナビゲート名と比較する。ナビゲート名1304に記憶されているナビゲート名と処理1205で取得したナビゲート名が合致したナビゲート情報テーブルのレコード1301のアドレス1305に記憶されているアドレスを取得する。取得したアドレスからナビゲートプログラムを読み込む。
処理1502は処理1501の読み込んだナビゲートプログラムを実行し画面を表示する。図16にナビゲートプログラムの実行画面の一例を示した。ナビゲートプログラム画面1601はナビゲートプログラムからの誘導メッセージを表示するメッセージ1602、ナビゲートプログラムの有する機能を表現した図形群を表示するナビゲート領域1603、ナビゲートを誘導するボタンを表示するコマンドボタン群1604とから構成される。ボタンの種類は次へコマンドボタン1407、キャンセルコマンドボタン1406である。ナビゲート領域1603には一例として5つのナビゲート機能を図形で表示している。
処理1503は処理1501がナビゲート領域1603に表示した図形群を選択操作する入力を受け付ける。選択操作はナビゲート領域1603に表示した前記図形群から任意の図形をマウスでクリックする。図15では”処理1”と表示された図形1605がマウスでクリック(1608)されている。
処理1504は処理1503で図形をクリックすることにより、図形にバインドされているナビゲート処理名を取得する。ナビゲート処理の構造を図17に示した。ナビゲート処理は波線枠1701で示した構造を持つ。前記構造はナビゲート処理の型1702と処理名1703と処理内容1704からなる。処理内容1704は複数の文1705からなる。文1705の一例を波線枠1707で示した。文1707は代入文である。前記代入文の文法の一例を波線枠1707に示した。文法1709はモジュール名と変数をピリオドで接続した文字列を左辺にとり値とイコールで結んだものである。波線枠1710は図形1605にバインドされているナビゲート処理の一例を示した。処理1503ではナビゲート処理1710からをナビゲート処理名1711を取得する。
処理1505は処理1502がコマンドボタン群1604に表示したナビゲートプログラムの有する機能を選択操作する入力を受け付ける。選択操作はコマンドボタン群に表示されたボタンをマウスでクリックする。図16では次ヘコマンドボタン1607がマウスでクリック(1609)されている。
処理1506は処理1505で入力されたコマンドを判定する。次へコマンドボタン1606が入力された場合は処理1507へ制御を渡す。キャンセルコマンドボタン1606が入力された場合は本フローを終了する。
処理1507は次へコマンドボタン1606にバインドされているナビゲートプログラムがあれば処理1501に、なければ処理1508に制御を渡す。
処理1508は処理1504で取得したナビゲート処理名からコネクタ生成する。処理1508は図を用いて詳細に説明する。
図18に処理1508の詳細フローを示した。処理1508はコネクタ生成106コネクタを生成する処理である。以下、図18を詳細に説明する。
処理1801は生成するコネクタの実行契機を設定する画面を表示する。図19に実行契機設定画面を示した。
実行契機設定画面1901は誘導メッセージを表示するメッセージ1902、実行契機を設定する実行契機設定領域1903、実行契機設定画面1901を操作するボタンを表示するコマンドボタン群1904とから構成される。ボタンの種類は追加コマンドボタン1913、削除コマンドボタン1914、キャンセルコマンドボタン1915、完了コマンドボタン1916である。実行契機設定領域1903にはプログラム編集領域303内に表示している編集モジュール図形から該当するモジュールの型をモジュール情報テーブルのレコード401のモジュール型402に記憶されているモジュールの型を検索し、検索とした前記モジュールの型を一覧表示するモジュールの型リスト1905と、モジュールの型リスト1905に表示された型を選択することによって、前記型をもつプログラム編集領域303内に表示している編集モジュール図形から該当するモジュール名をモジュール情報テーブルのレコード401のモジュール名403に記憶されているモジュール名を検索し、検索した前記モジュール名を一覧表示するモジュール名リスト1907と、モジュール名リスト1907に表示されたモジュール名を選択することによって、前記モジュール名からモジュール情報テーブルのレコード401のイベントリストポインタ406からイベント名414に記憶されているイベント名を一覧表示するイベント名リスト1909と、モジュールの型リスト1905から任意の型とモジュール名リスト1907から任意のモジュール名とイベント名リスト1909から任意のイベント名を指定することにより、実行契機を表示する実行契機リスト1911とからなる。
処理1802は処理1801が実行契機設定領域1903に表示したモジュールの型リスト1905、モジュール名リスト1907、イベント名リスト1909を選択操作する入力を受け付ける。選択操作はモジュールの型リスト1905に表示された任意の型(1906)をマウスでクリック(1917)し、次に、モジュール名リスト1907に表示された任意のモジュール名(1908)をマウスでクリック(1918)後、イベント名リスト1909に表示された任意のイベント名(1910)をマウスでクリック(1919)する。
処理1803は処理1802で入力した選択対象を判定する。モジュールの型リスト1905に表示された任意の型をマウスでクリックした場合は処理1804へ、モジュール名リスト1907に表示された任意のモジュール名をマウスでクリックした場合は処理1805へ、イベント名リスト1909に表示された任意のイベント名をマウスでクリックした場合は処理1806へ制御を渡す。
処理1804は処理1203でクリックしたモジュールの型を取得する。処理1805は処理1203でクリックしたモジュール名を取得する。処理1806は処理1203でクリックしたイベント名を取得する。
処理1807は実行契機となるモジュール名とイベント名の入力が完了したかどうか判定する。入力が完了ならば処理1808へ、未完ならば処理1802に制御を渡す。
処理1808は処理1804、処理1805、処理1806で取得したモジュールの型、モジュール名、イベント名から実行契機(1912)を実行契機リスト1911に表示する。
処理1809は処理1808がコマンドボタン群1904に表示した実行契機設定画面1901の有する機能を選択操作する入力を受け付ける。選択操作はコマンドボタン群に表示されたボタンをマウスでクリックする。図19では追加コマンドボタン1916がマウスでクリック(1920)されている。
処理1810は処理1809で入力されたコマンドを判定する。追加コマンドボタン1913が入力された場合は処理1812へ、削除コマンドボタン1914が入力された場合は処理1811へ制御を渡す。キャンセルコマンドボタン1915が入力された場合は本フローを終了する。
処理1811は実行契機リスト1911に表示にした実行契機を削除する。処理1811の詳細な説明は省略する。処理1812は生成するコネクタのひな形を生成する。図20にコネクタのひな形を示した。
コネクタのひな形は波線枠2001で示した構造を持つ。前記構造はコネクタの型2002とコネクタ名2003とコネクタの処理内容2004からなる。コネクタの処理内容2004は複数のコール文2005からなる。
処理1813は処理1812の生成したコネクタの型2002とコネクタ名2003を設定する。コネクタ2006にコネクタの型とコネクタ名を設定した一例を示す。コネクタの型とコネクタ名はデフォルトで設定される。コネクタの型は”TypeDefault”となり、コネクタ名は文字列”Connect”にコネクタ112内に格納されている数をインデックスとして付加した名称とする。例えば、コネクタが既に99個あれば”Connect101”(2007)となる。
処理1814は処理1504で取得したナビゲート処理名をコネクタの処理内容2004のコール文として追加する。波線枠2009に処理1504で取得したナビゲート処理名”Navigate1_Proc1()”がコール文として追加されている。処理1815は処理1812から1814で生成したコネクタをコネクタ112に格納する。
処理1816は処理206がメモリーに展開したプログラム情報テーブルのレコード701のコネクタリストポインタ704のさすレコード709を追加し、追加したレコードのコネクタ名710に処理1813で生成したコネクタ名を記憶し、レコード709のアドレス711に処理1815で格納したコネクタ112のアドレスを記憶し、レコード709のイベント712に処理1806で取得したイベント名を記憶し、レコード709の接続元モジュール713に処理1005で取得した接続元モジュール名を記憶し、レコード709の接続先モジュール714に処理1011で取得した接続先モジュール名を記憶する。
処理1817は接続元モジュール図形と接続先モジュール図形間にコネクト図形をプログラム編集領域303に表示する。図11の波線枠1104に表示の一例を示した。矢印1105が表示されたコネクト図形である。
これより、処理1004の生成処理を図を用いて詳細に説明する。図21に処理1004のフローを示した。処理2101はモジュール表示領域306で入力対象となったモジュール図形からモジュール名を取得する。取得する方法は前記モジュール図形の表示IDとモジュール表示テーブルのレコード601のモジュール表示ID902に記憶されているモジュール表示IDとを比較する。前記表示IDと前記モジュール表示IDと合致したモジュール表示テーブルのレコード601からモジュール名903に記憶されているモジュール名を取得する。取得したモジュール名を継承モジュール名とする。
処理2102はモジュール図形が移動されたかを判定する。選択のみで他のモジュール図形が再選択された場合には本フローを終了し、モジュール図形を移動した場合は処理2103に制御が渡る。
処理2103はモジュール図形が移動中かどうか判定する。移動中なら処理2103を繰り返し行なう。図形の移動が終わったら処理2104に制御が渡る。処理2104はモジュール図形の移動先がプログラム編集領域303内かどうかを判定する。プログラム編集領域303内なら処理2105へ、プログラム編集領域303外なら本フローを終了する。
処理2105はモジュール図形の移動先に編集モジュール図形が表示されているかどうを判定する。移動先にモジュール図形が表示されていない場合は、処理2106へ、移動先にモジュール図形が表示されている場合は本フローを終了する。処理2106は生成されるモジュール名の入力を受け付ける。
処理2107はプログラム情報テーブルのレコード701のモジュールリスト703のさすレコード705を追加し、追加したレコードのモジュールの名称を記憶するモジュール名706に処理2101で取得した継承モジュール名、どのモジュールから生成したかを記憶する生成元モジュール名707に2101で取得した継承モジュール名、プログラム編集領域303に表示する表示情報708に前記移動先の位置を記憶する。
以上説明したように、表示装置にビジュアル表示されたモジュールを操作することにより、記憶装置に格納されているモジュール間の組み合わせを誘導するナビゲートプログラムを検索表示し、表示装置に表示されたナビゲートプログラム群から任意のナビゲートプログラムを撰択するとナビゲートプログラムが動作し、ナビゲートプログラムはモジュール間の組み合わせを誘導するパラメータを出力し、このパラメータを指定することにより、モジュール間を組み合わせを可能とするコネクタを生成され、生成したコネクタを記憶装置に格納することが可能になる。
図22は図12にナビゲートプログラムの検索方法と前記検索結果の表示、及び、ナビゲートプログラムが自情報処理装置外にある場合の処理を付加したフローである。図12で説明した処理は省略する。
処理2201は、コネクタを生成するナビゲートプログラムをナビゲート情報110を読み込み本システムがアクセス可能なナビゲート情報テーブルに展開してメモリーにロードする。メモリーにロードされたナビゲート情報テーブルの構成を図23に示した。前記ナビゲート情報テーブルは図13を拡張したものである。前記ナビゲート情報テーブルの拡張点を説明する。レコード2301に頻度2302、許可レベル2303を追加した。頻度2302はレコード2301が撰択された回数を管理する。許可レベル2303は利用者によって実行を制限するフラグである。前記フラグはN段階に設定できる。
処理2202は処理1202と同様の処理である。処理2203は本システムを利用する利用者のユーザレベルをユーザレベル112から取得する。
処理2204は処理処理2202で取得したナビゲート情報テーブルのレコード2301の許可レベル2303に記憶した許可レベルと処理2203で取得したユーザレベルとを比較し、前記ユーザレベルと同じかまたは低い許可レベルを持つナビゲート情報テーブルのレコード2301のナビゲート名1304からナビゲート名を取得する。
処理2205は処理2204で取得したナビゲート名をナビゲート情報テーブルのレコード2301の頻度2302に記憶した頻度の高い順に一覧表示する。処理2206は処理1204との処理同様である。
処理2207は処理2206で選択したナビゲート名からナビゲート情報テーブルのレコード2301の頻度2302の記憶する値に1を加算する。
処理2208は処理1205と同様の処理である。処理2209は処理1206の処理と同様である。処理2210は処理1207の処理と同様である。
処理2211は処理2206で選択したナビゲート名からナビゲート情報テーブルのレコード2301のアドレス1305の記憶するアドレスを判定する。前記アドレスが他情報処理装置上ならば処理2213へ、自情報処理装置上ならば処理2212へ制御を渡す。
処理2212は処理1208の処理と同様である。処理2213前記アドレスより該当する情報処理装置にナビゲートプログラムの読み込む。
以上説明したように、記憶装置に格納されているナビゲートプログラムの検索を利用者の権限に応じて行い、検索したナビゲートプログラム群を撰択頻度の多い順に応じて表示装置に表示することが可能になる。また、自情報処理装置外にある記憶装置に格納されているナビゲートプログラムを読み込むことが可能になる。
101・・・入力装置、 102・・・要求入力、103・・・解析制御、 104・・・プログラム編集、105・・・ナビゲート、 106・・・コネクタ生成、107・・・解釈/実行、 108・・・モジュール情報、109・・・プログラム情報、110・・・ナビゲート情報、111・・・ユーザレベル、 112・・・コネクタ、113・・・応答出力、 114・・・表示装置、115・・・情報処理装置、 116・・・制御線、117・・・データ入出力線、118・・・ネットワーク回線