(57)【要約】【課題】プログラム作成者にＧＵＩベースのフォーム上において容易にアプリケーションを作成することができるプログラム作成支援装置およびプログラム作成支援方法を提供する。【解決手段】出力装置５上の表示画面１１９に複数のエレメントを配置し、エレメントは、少なくとも１つ以上の入出力用のポートを有している。２つの異なるエレメントのうち、第１のエレメントのポート（例えば、出力ポート１１１）と、第２のエレメントのポート（例えば、入力ポート１２４）とをリンクする指示要求されたとき、制御部２は、リンク１２３の３次曲線で表示画面１１９に表示し、リンク情報を記憶部３に記憶する。【選択図】図１
2008146379.tif 000002
【特許請求の範囲】
【請求項１】
プログラム作成画面上に複数のエレメントを組み合せてプログラムを作成するプログラム作成支援装置であって、
前記エレメントは、少なくとも１つ以上の入出力用のポートを有し、前記エレメントおよび複数の前記エレメントの結合関係を表示する表示部と、
前記表示部に表示された前記エレメントに関する機能情報および複数の前記エレメント間の結合情報を記憶する記憶部と、
前記表示部に表示された複数の前記エレメント間が結合指示されたときに、前記結合指示の処理を行う制御部とを備え、
前記表示部に表示された２つの異なる前記エレメントのうち、第１のエレメントのポートと、第２のエレメントのポートとを結合する結合指示がされたとき、
前記制御部は、ポート間を自由曲線の結合線で結合して前記表示部に表示し、前記記憶部に結合情報を記憶する
ことを特徴とするプログラム作成支援装置。
【請求項２】
前記自由曲線は、エルミート曲線、ベジェ曲線、Ｂ−スプライン曲線、カットマル−ロム曲線のうちいずれかの曲線である
ことを特徴とする請求項１に記載のプログラム作成支援装置。
【請求項３】
前記制御部は、前記表示部上の前記エレメントが選択されたとき、前記エレメントのポートに結合した結合線の表示色を変える
ことを特徴とする請求項１に記載のプログラム作成支援装置。
【請求項４】
前記制御部は、前記エレメントの機能に応じて、前記エレメントを前記表示部に異なる表示色で表示する
ことを特徴とする請求項１に記載のプログラム作成支援装置。
【請求項５】
前記制御部は、前記結合線の一端が前記ポートの所定の距離以内に入ると、接続可能な前記ポートのうち、最も近いポートに結合する
ことを特徴とする請求項１に記載のプログラム作成支援装置。
【請求項６】
前記記憶部は、前記ポートに対して所定の値を格納することができ、
前記制御部は、前記所定の値の有無により前記ポートの表示色を変える
ことを特徴とする請求項１に記載のプログラム作成支援装置。
【請求項７】
前記エレメントのポートのうち出力用ポートは、前記エレメントの内部ロジックのエラーを表示するエラー表示ポートを備え、
前記制御部は、前記エラーがプログラムの実行時に発生したとき、前記エラー表示ポートにエラー情報を設定する
ことを特徴とする請求項１に記載のプログラム作成支援装置。
【請求項８】
少なくとも１つ以上の入出力用のポートを有するエレメントおよび複数の前記エレメントの結合関係を表示する表示部と、前記表示部に表示された前記エレメントに関する機能情報および複数のエレメント間の結合情報を記憶する記憶部と、前記表示部に表示された複数の前記エレメント間が結合指示されたときに、前記結合指示の処理を行う制御部とを備え、前記表示部上で複数のエレメントを組み合せてプログラムを作成するプログラム作成支援装置のプログラム作成支援方法であって、
前記表示部に表示された２つの異なる前記エレメントのうち、第１のエレメントのポートと、第２のエレメントのポートとを結合する要求指示がされたとき、
前記制御部は、ポート間を自由曲線の結合線で結合して前記表示部に表示し、前記記憶部に結合情報を記憶する
ことを特徴とするプログラム作成支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＧＵＩベースのフォームを用いて、アプリケーションプログラムを作成するのに好適なプログラム作成支援装置およびプログラム作成支援方法に関する。
【背景技術】
【０００２】
ＧＵＩベースのフォームを用いたアプリケーションプログラムに、制御プログラム、解析プログラムなどがある。従来、制御プログラムのプログラム作成支援装置は、データフローを作成するための作成画面を備え、データフロー図を作成する際、ユーザが、フォームにエレメント（ファンクションブロック）を配置し、順次信号線で結線していく方式がとられている。この場合、データが左から右へ、さらに上から下に順番に実行されるような前提でエレメントが並べられ、エレメントの信号線は、直線または折れ線により結線されている（例えば、特許文献１参照）。
【０００３】
また、電気回路系の解析プログラムにおいては、回路作成のためのプリプロセッサを有し、ユーザが、マウスを使用してあらかじめ定められたエレメント（コンポーネント）を選んでパレット上に配置し、順次、エレメントの入出力端子を直線または折れ線により結線し、電気回路を構築することができる。また、回路の図面に基づいて、解析用のデータおよびプログラムが生成され、そのプログラムを実行することにより解析結果が得られる（例えば、非特許文献１参照）。
【特許文献１】特開平８−１０６３８０号公報
【非特許文献１】H. Kr. Hoidalen、"ATPDraw-Graphical Preprocessor to ATP-EMTP”、[online]、[平成１８年１０月２７日]、<URL:http://www.ece.mtu.edu/atp/ATPDraw/ATPDraw.html>
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載されたプログラム作成装置においては、フォームにエレメントを配置する際、ユーザは、データフローを思い描きながら、上下左右の位置関係に注意しながらエレメントを配置し、しかも、信号線が重ならないように注意しながら結線する必要があり、データフロー図作成に時間を要する問題があった。
【０００５】
非特許文献１に記載された解析プログラムのプリプロセッサにおいては、ユーザは、パレット上に、エレメントを自由に配置することができる。しかしながら、エレメントの入出力端子を結線する際、結線がエレメント上に描かれたりする場合があり、最終的な回路図を作成するには、熟練度が必要である。
【０００６】
本発明は、前記の課題を解決するための発明であって、ＧＵＩベースのフォーム上において容易にアプリケーションを作成することができるプログラム作成支援装置およびプログラム作成支援方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
前記目的を達成するため、ＧＵＩベースのフォーム上に配置するエレメントは、少なくとも１つ以上の入出力用のポートを有し、２つの異なるエレメントのうち、第１のエレメントのポート（例えば、出力ポート１１１）と、第２のエレメントのポート（例えば、入力ポート１２４）とをリンクする要求指示がされたとき、制御部（例えば、制御部２）は、ポート間を自由曲線の結合線（例えば、リンク１２３）で結合して表示部（例えば、表示画面１１９）に表示し、記憶部（例えば、記憶部３）にリンク情報を記憶することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、プログラム作成者がＧＵＩベースのフォーム上において容易にアプリケーションを作成することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施形態について図面を参照して説明する。
図１は、本発明の実施形態に係るプログラム作成支援装置の構成および出力装置上に表示される画面の一例を示す図である。電子計算機１は、制御部２、記憶部３、マウス（ポインティングデバイス）などの入力装置４、ディスプレイなどの出力装置５を具備している。
【００１０】
制御部２は、具体的には、プログラムに従って動作するＣＰＵ（Central Processing Unit）によって実現され、出力装置５にプログラム作成用ツールの画面を表示させ、プログラム作成用ツールを実行し、また、プログラム作成用ツールを使って作成したプログラムを実行する。
【００１１】
記憶部３は、プログラム作成用ツールによって提供される基本エレメントＡ１１５、基本エレメントＢ１１６、基本エレメントＣ１１７などの各種基本エレメントに関する基本エレメント情報６、プログラム作成用ツールによって提供される汎用エレメント１１８に関する汎用エレメント情報７、プログラム作成用ツールの利用者が作成したアプリケーションロジックであるアプリケーションロジック情報１０、図示を省略するが、プログラム作成用ツールを利用するために必要な情報などが格納されている。
【００１２】
アプリケーションロジック情報１０は、後述するリンク情報９、汎用エレメント内部ロジック情報１１、描画領域内エレメント情報１２で構成される。ここで、エレメントとは、ある１つの機能を持ったプログラムロジックをいう。エレメントは、後述する基本エレメントと汎用エレメントで構成される。
【００１３】
基本エレメントとは、エレメントのうち、プログラム作成用ツールによってあらかじめ機能、入力ポートの数、出力ポートの数、および、それぞれのポートが保有することのできる値の型が定められており、プログラム作成用ツールの利用者によって、それらを変更することのできないエレメントをいう。図１の場合は、基本エレメント１１０において、四角形の左側に、入力ポートを示す円を２つ、四角形の右側に、出力ポートを示す円を１つ描くことによって、基本エレメント１１０が入力ポートを２つ、出力ポートを１つ持っていることを示している。
【００１４】
汎用エレメントとは、エレメントのうち、プログラム作成用ツールによって機能、入力ポートの数、出力ポートの数、および、それぞれのポートが保有することのできる値の型が定められておらず、プログラム作成用ツールの利用者によって、それらを変更することができるエレメントをいう。
【００１５】
入力ポートとは、基本エレメントまたは汎用エレメントによって表現されているプログラムロジックにおける引数を、出力装置５上の表示画面１１９に図形で表したものである。図１では、円で表示している。出力ポートとは、基本エレメントまたは汎用エレメントによって表現されているプログラムロジックにおける戻り値を、出力装置５上の描画領域１２２に図形で表したものである。図１では、円で表示している。
【００１６】
リンクとは、ある基本エレメントに含まれる出力ポート、例えば図１の場合、基本エレメント１１０の出力ポート１１１と、それとは別に配置された汎用エレメントの入力ポート、例えば図１の場合、汎用エレメント１１２の入力ポート１１３を関連付けるものであり、具体的には、出力ポートの値と同じ値を入力ポートに代入する。図１ではリンク１１４のように曲線で表示している。同様に、出力ポート１１１と入力ポート１２４を関連付けるために、リンク１２３で結合している。
【００１７】
基本エレメント情報６は、各々の基本エレメントの特徴を表してプログラム作成用ツールの利用者がその機能を理解しやすくするためにつけられたエレメント名や、基本エレメントが持つプログラムロジック、入力ポートの数および各々の入力ポートの値の型、出力ポートの数および各々の出力ポートの値の型で構成される。
【００１８】
汎用エレメント情報７は、汎用エレメントであることを表すためにつけられたエレメント名や、描画領域１２２に表示するために必要な画像データなどで構成される。
【００１９】
リンク情報９は、リンクによって結ばれている一組の出力ポートと入力ポートの組み合わせと、リンクの色や曲線の形状に関するデータで構成される。ただし、汎用エレメント内部で使われるリンクについては、汎用エレメント内部ロジック情報１１に含まれる。
【００２０】
汎用エレメント内部ロジック情報１１は、汎用エレメントに設定された入力ポートの数、出力ポートの数や各ポートの値の型、汎用エレメントのプログラムロジックを示す、汎用エレメント内部において構成される基本エレメントや汎用エレメントに関するデータおよびそれらの関係を示すリンクに関するデータで構成される。汎用エレメントの内部ロジックを、基本エレメントだけでなく汎用エレメントを用いて構成してもよく、この場合、汎用エレメント内部ロジック作成に用いられた汎用エレメントについてさらにその内部ロジックを定義する必要がある。しかし、これに関しても基本エレメント、汎用エレメント、およびリンクを用いて構成すれば、ソースコードを見ることなく、汎用エレメント内部ロジックを作成することができる。
【００２１】
描画領域内エレメント情報１２は、描画領域１２２内に配置されたエレメントに関する情報や、エレメントが持つ入力ポートあるいは出力ポートに設定されているプロパティで構成される。
【００２２】
表示画面１１９上のエレメントリストボックス１２１には、描画領域１２２に配置できる基本エレメントが表示されている。例えば、描画領域１２２に基本エレメントＡ１１５を配置したい場合、マウスなどの入力装置４を使ったドラッグアンドドロップの操作を行うことにより実現できる。図１では、エレメントリストボックス１２１内の基本エレメントＡ１１５、基本エレメントＢ１１６、基本エレメントＣ１１７などを文字列で表現しているが、文字列でなく、各々の基本エレメントの特徴を示す、例えば画像などであってもよい。エレメントリストボックス１２１に表示されているエレメントのリストの最後尾に、汎用エレメント１１８を示す文字列を示している。汎用エレメント１１８を描画領域１２２に配置する場合も基本エレメントＡ１１５同様の操作により実現できる。図１では、エレメントリストボックス１２１内の汎用エレメント１１８を文字列で表現しているが、文字列でなく、汎用エレメントの特徴を示す、例えば画像などであってもよい。
【００２３】
ツールバー１２０は、プログラム作成用ツールを使用するときの各種の操作をマウスなどの入力装置４を使った操作により実現できる。ツールバー１２０を用意するかわりに、キーボードのいくつかのボタンを組み合わせて同時に押すショートカットキーを用意することにより、プログラム作成用ツールで使用する各種操作を行わせてもよい。ツールバーとショートカットキーの両方を同時に提供してもよい。
【００２４】
図２は、基本エレメントと汎用エレメントを説明する図である。基本エレメント２０１は、ある１つの機能を持ったプログラムロジックを示したものである。図２では、これを四角形で表しているが、例えば三角形や楕円などの四角形でない形状であってもよい。基本エレメント２０１は、プログラムロジックの他に、入力ポート、出力ポートのいずれかまたは両方を持つ。これらは、数値や文字列などの値を持つことができる。また各々のポートは、持つことのできる値の型が決まっており、値の型は、例えば、string型(文字列)、int型(整数)などがある。基本エレメントの場合、持つことのできる入力ポートおよび出力ポートの数および各々のポートの値の型は既に決められている。各々のポートは、あるエレメントが持つ出力ポートとそれとは別のエレメントが持つ入力ポートを線でつないで一組のポートを関連付けることのできるリンクを接続することができる。
【００２５】
図２（ａ）は、基本エレメントの例を示す。基本エレメント２０１は、入力ポートとして入力ポート２０２、入力ポート２０３、入力ポート２０４の３個を、出力ポートとして出力ポート２０５、出力ポート２０６の２個を有している。各入力ポート２０２，２０３，２０４の右側に０、１、２、各出力ポート２０５，２０６の左側に０、１といった数字を記しているが、これは、複数個の入力ポート、または、出力ポートを区別するために割り振って表記したものであり、数字の変わりに、Ａ、Ｂといったアルファベットや、ポートの性質を現す語句、例えば「ＣＯＭポート番号」や「実行周期」などと表記して描画領域１２２にこれらエレメントを表示してもよい。また、エレメントのレイアウトを簡略化するために、特に必要がなければ、数字やアルファベットなどの記号や、性質を表す語句を省略して、表示しなくてもよい。
【００２６】
図２（ｂ）は、汎用エレメントの例を示す。汎用エレメント２１１は、画面上において入力ポートの数およびポートが保持できる値の型を設定することができ、また、出力ポートについても入力ポート同様に、出力ポートの数およびポートが保持できる値の型を設定することができる。図２（ｂ）に示すように、入力ポート２１２、入力ポート２１３、入力ポート２１４などの入力ポートを（ｍ＋１）個、出力ポート２１５、出力ポート２１６、出力ポート２１７、出力ポート２１８などの出力ポートを（ｎ＋１）個有している。また、図２（ｂ）では、入力ポート２１３と入力ポート２１４の間、および、出力ポート２１７と出力ポート２１８の間を点で記しているが、これらはポートの数が可変であることを示している。
【００２７】
図３は、プログラム作成用ツールを使用したアプリケーション作成処理を示すフローチャートである。まず、出力装置５（図１参照）上に表示されているプログラム作成用ツールを起動するためのショートカットアイコンをダブルクリックするなどのプログラム作成用ツールの起動を要求する操作が、プログラム作成用ツールの利用者によって、入力装置４（図１参照）を使って行われる。図１を参照して説明する。
【００２８】
制御部２は、プログラム作成用ツールが起動すると、記憶部３からプログラム作成用ツールの実行に必要な情報を読み出して、出力装置５にプログラム作成用ツールの表示画面を表示する（Ｓ３０１）。次に、ツール利用者が、プログラム作成用ツールの表示画面１１９の中の、ツールバー１２０や、あるいは描画領域１２２を新規作成するためのショートカットキーが使うことによって、描画領域１２２の新規作成の要求が行われると、制御部２は、描画領域１２２の新規作成処理を行い（Ｓ３０２）、表示画面１１９内に新規の描画領域１２２を作成する。なお、プログラム作成用ツール利用者による操作なしに、プログラム作成用ツール起動と同時に、自動的に描画領域１２２の新規作成を行っておいてもよいし、前記のとおりプログラム作成用ツール利用者による操作が行われてから、描画領域１２２を新規作成してもよい。
【００２９】
次に、ツール利用者が、マウスなどの入力装置４によってエレメントリストボックス１２１に表示されているエレメントのうちの１つを選択し（Ｓ３０３）、それをドラッグアンドドロップなどの操作によって、描画領域１２２に移動すると、制御部２は、描画領域１２２上で該エレメントを表示する（Ｓ３０４）。例えば、描画領域１２２に基本エレメントＡ１１５を配置したい場合、ツール利用者がマウスなどの入力装置４を使ったドラッグアンドドロップの操作により実現できる。
【００３０】
基本エレメントは、ある１つの機能を持ったプログラムロジックなので、１つであってもアプリケーションとして動作させることもできるが、本実施形態では、複数のエレメントを利用し、エレメント間にリンクを使用することによってアプリケーションを作成することにする。上記と同様の操作によって、２つ目以降のエレメントを配置する。
【００３１】
次にリンクを作成する手順を説明する。あるエレメントの出力ポートを示す図形、例えば、出力ポート１１１（図１参照）のような円の上で入力装置４による操作が行われると、例えば、マウスの左ボタンがドラッグされると、リンクを示す曲線状のリンク１２３を描画領域１２２に表示する。曲線の端のうち一方は出力ポート１１１につながっているが、この時点では、もう一方は、どの入力ポートにもつながっていない。ドラッグしたまま、別のエレメントの入力ポートを示す図形、例えば、入力ポート１２４のような円の上で、押していたマウスのボタンがリリースされると、制御部２は、該入力ポートに曲線のもう一方の端がつながった状態でリンク１２３を表示し、リンクの両端のポート情報をリンク情報９に記憶し、２つのポート間にリンクを生成する（Ｓ３０５）。リンクの曲線の表示方法については、図４を参照して後述する。
【００３２】
プログラム作成用ツール利用者によって、必要なエレメントの選択、およびリンクの接続が完了したら、入力装置４によってアプリケーションの実行指示を受け付けると、制御部２は、記憶部３に記憶されたアプリケーションロジック情報１０を読み出して、プログラム作成ツール利用者によって作成されたアプリケーションを実行する（Ｓ３０６）。
【００３３】
図４は、リンクの曲線の表示方法を説明する図である。図４（ａ）、図４（ｂ）は、比較例であり、図４（ｃ）は、本実施形態による例である。図４（ａ）の比較例の場合、リンクがエレメントの下に隠れて、どのポートから曲線がでているかがわからない。図４（ｂ）の比較例の場合、リンクの曲線をエレメントの背面でなく、エレメントの前面に表示することができるが、エレメント上の文字列（例えば、ＲＦＩＤ  Ｏｂｊ）が読みにくくなる場合があり、リンクの表示方法としてはよいとは言えない。これに対し、図４（ｃ）は、本実施形態による例であるが、リンクの曲線を一旦、出力ポートの右側、入力ポートの左側に引くことにより、どのポートから出ているかをわかりやすくしている。なお、ＲＦＩＤとは、Radio Frequency Identificationの略であり、Ｏｂｊは、Objectの略である。
【００３４】
次に、詳細なリンクの表示方法について説明する。リンク１１４，１２３（図１参照）は、自由曲線である。自由曲線は、どのような曲線でもよいが、エルミート曲線、ベジェ曲線、Ｂ−スプライン曲線、カットマル−ロム曲線などがある。ここでは、３次ベジェ曲線として説明する。この場合、始点、第１制御点、第２制御点、終点の４点を設定する必要がある。始点と終点は、エレメントのポートの位置とする。
【００３５】
ここでは、始点は、あるエレメントの出力ポート（出力ポートは、エレメントの右側に表示するものとする。）、終点は、あるエレメントとは別のエレメントの入力ポート（入力ポートは、エレメントの左側に表示するものとする。）とする。第１制御点を始点（出力ポート）の右側、第２制御点を終点（入力ポート）の左側に置くこととする。また、始点と終点を結ぶ直線上に第１制御点、第２制御点の両方がプロットされないようにする。始点と第１制御点を結ぶ直線が始点における曲線の接線になり、第２制御点と終点を結ぶ直線が終点における曲線の接線になるので、出力ポートの右側（エレメントの外側）、入力ポートの左側に向かって曲線が引かれる。エレメントの背面に隠れて、どのポートから曲線が出ているかわからないということがないように制御点を設定する。
【００３６】
表示フォームの描画領域１２２（図１参照）は、網の目上に縦横をＮ等分されている（メッシュ）。それぞれのメッシュには、エレメントの有無や、リンクの有無、３次ベジエ曲線の始点、制御点、終点の有無などの情報が設定されている。あるメッシュ上にエレメントが配置されている場合には、例えば、エレメント有無：１（またはｔｒｕｅ）のようになり、逆にエレメントがないメッシュでは、エレメント有無：０（またはｆａｌｓｅ）のようにしてエレメント有無情報を設定する。エレメントの大きさは、エレメントの種類によって異なり、また、ユーザによって大きさを変更することができるため、エレメントは、いくつかのメッシュにまたがることができる。エレメントが配置されていて、エレメント有無情報が「１（ｔｒｕｅ）」に設定されているメッシュには、別のエレメントを新たに配置することができない。リンクの終点についても、同様に、別のリンクの終点の上に重ねておくことはできない。リンクの終点が同じ場合、２つの異なる値を同一エレメントの同一入力ポートに設定することになるのを防止するためである。
【００３７】
リンクの始点については、前記の制約はない。同じ出力値を複数の入力ポートに設定することは可能である。リンクがエレメントの描画領域の右側にはみ出さないでエレメントの背面に隠れてしまう場合（始点：出力ポートの場合）、また、エレメントの描画領域の左側にはみ出さないでエレメントの背面に隠れてしまう場合（終点：入力ポートの場合）は、制御点を取り直して、リンクがエレメントの描画領域外にはみ出して表示されるまで繰り返す。制御点を設定する方法は、例えば乱数を発生させてランダムに制御点を定め、リンクが適切に表示されるまで繰り返す。リンクがエレメントの描画領域に隠れてしまうかどうかは、各メッシュのエレメント有無情報、リンク有無情報により判定することができる。
【００３８】
エレメントを移動した場合、そのエレメントにつけられているリンクの始点（または終点）も同時に移動して、各メッシュの情報も移動に伴って再設定される。制御点については上記と同様な方法で再プロットされて、リンクが再描画される。
【００３９】
本実施形態では、あるエレメントが選択されたときにそのエレメント上のポートにつながったリンクが、例えば、色が変わることによって強調表示してもよい。
【００４０】
本実施形態では、リンクをポートに近づけると自動的に入出力振り分けを行ってもよい。例えば、ある入力ポートの周辺のメッシュには、入力ポートの周辺であることを示す情報を設定しておく。また、その入力ポートが受け入れることのできる値の型（ｉｎｔやｓｔｒｉｎｇなど）に関する情報を設定しておく。また、リンクの終点が置かれているメッシュにも値の型に関する情報を設定しておく。
【００４１】
プログラム作成用ツール利用者が、ある出力ポートの上でマウスを左クリックし、左ボタンを押したまま、入力ポート付近に近づけると、エレメントのある一定の距離以内に近づいたときに、接続可能な入力ポートのうち、最も近いものに自動的に接続され、そのままでよい場合は、そのまま左ボタンをリリースすると接続が確定する。左ボタンを押したまま、移動しつづけると、そのとき最も近いものに順次自動的に接続されて、左ボタンをリリースするまでこの状態が続くようにするとよい。
【００４２】
本実施形態では、ポートに値が入力されているときといないとき、ポートの色を変えてもよい。各ポートにユニークなＩＤを割り当て、データベース（ＤＢ）に格納しておく。それぞれのポートに、有効な値が格納されているか否かの情報を設定することができる。有効な値が格納されている場合は、有効値格納有無情報が、例えば、１（あるいはｔｒｕｅ）などになり、そのポートの表示色に関するプロパティが、有効な値が格納されていないポートの色（例えば、白色）とは異なる色（例えば、緑色）に設定される。このようにすれば、どのポートに誤りがあるか、誤っているエレメントやポートの位置を特定することができる。
【００４３】
また、本実施形態では、エレメントの出力ポートにエラーを表示するポートを備え、エラーがあるときは、エラーに関する情報がそのポートに設定されて、ポートの色をかえて表示してもよい。例えば、ＲＦＩＤの読み取りを実行するときにＲＦＩＤリーダライタが接続されていない場合「リーダライタが接続されていません。」といった文字列が、エラー表示用の出力ポートのＩＤに紐付けられてＤＢに格納される。このときにポートの色が、例えば緑に設定される。これにより、エラー情報が出力されていることがわかり、エレメント上にマウスのカーソルを移動すると、エラーに関する情報が例えば別ウィンドウが表示されてエラー情報が表示される。
【００４４】
図５は、汎用エレメントの作成処理を示すフローチャートである。随時図１を参照して説明する。初期状態において汎用エレメントは、入力ポート、出力ポートのどちらも備えていない。制御部２は、ツール利用者が入力ポートを必要な数を追加指示すると、汎用エレメント内部ロジック情報１１に記憶する（Ｓ４０１）。制御部２は、処理Ｓ４０１において追加した各々の入力ポートの値の型を設定し、汎用エレメント内部ロジック情報１１に記憶する（Ｓ４０２）。
【００４５】
次に、プログラム作成用ツール利用者が出力ポートを必要な数を追加指示すると、制御部２は、汎用エレメント内部ロジック情報１１に記憶する（Ｓ４０３）。制御部２は、処理Ｓ４０３において追加した各々の出力ポートの値の型を設定し、記憶部３の汎用エレメント内部ロジック情報１１に記憶する（Ｓ４０４）。制御部２は、最後に、プログラム作成用ツール利用者が基本エレメント、汎用エレメントおよびリンクにより、汎用エレメントの内部のプログラムロジックを作成すると、汎用エレメント内部ロジック情報１１に記憶する（Ｓ４０５）。
【００４６】
なお、汎用エレメント内部ロジックを生成する前に、プログラム作成用ツール利用者に、例えば、描画領域１２２に表示された汎用エレメント１１２上をマウスでダブルクリックさせることにより、汎用エレメントの内部のプログラムロジックを作成するための、描画領域１２２とは別の描画領域を描画領域１２２に重なり合わせて出力する。汎用エレメントの内部のプログラムロジックの作成処理のフローは、図３と同じである。汎用エレメントの内部のプログラムロジックの作成処理の終了後に、ツールバー１２０やキーボードのショートカットを使用させることによって、もとのアプリケーションロジック生成用の描画領域１２２を表示する。
【００４７】
図６は、汎用エレメントの内部ロジック作成処理時の画面表示の一例を示す図である。汎用エレメント入力側エレメント５０１は、入力ポート５０２、入力ポート５０３、入力ポート５０４などの（ｍ＋１）個の入力ポートで構成される。これらの入力ポートは、汎用エレメントの入力ポートであるが、図６の内部ロジック設定用画面では、汎用エレメント入力側エレメント５０１の出力ポートとして機能する。汎用エレメント出力側エレメント５０５は、出力ポート５０６、出力ポート５０７、出力ポート５０８、出力ポート５０９などの（ｎ＋１）個の出力ポートで構成される。これらの出力ポートは、汎用エレメントの出力ポートであるが、図６の内部ロジック設定用画面では、汎用エレメント出力側エレメント５０５の入力ポートとして機能する。
【００４８】
内部ロジックを生成するために、ここでは、基本エレメント５１０、基本エレメント５１１、基本エレメント５１２などの、（ｋ＋１）個の基本エレメントが使用されていることを示している。これらの基本エレメントの組み合わせや各々の基本エレメントの種類については自由に選択させることができる。また、基本エレメントだけでなく、内部ロジックの生成においても、汎用エレメントが使われてもよい。内部ロジックを生成するために配置された、基本エレメント、汎用エレメント、およびそれらが持つ入力ポートまたは出力ポートを関連付けるためのリンクによって、プログラムロジックを生成する。
【００４９】
図７は、汎用エレメントの入力ポートの数および値の型を設定するときの画面の一例を示す図である。随時図１を参照して説明する。汎用エレメント入力ポート情報設定ウィンドウ６０１内で、汎用エレメント入力側エレメント５０１の入力ポート５０２、入力ポート５０３、入力ポート５０４などの入力ポートの情報を表示する。入力ポートリストボックス６０２内で、汎用エレメント入力側エレメント５０１の入力ポートの一覧を表示する。追加ボタン６０３がマウスなどの入力装置４によってクリックされるか、あるいはショートカットキーの使用などによってポート追加の指示を受け付けると、制御部２は、入力ポートを１つ追加して、入力ポート情報を汎用エレメント内部ロジック情報１１に記憶し、入力ポートリストボックス６０２内のリストの最後尾に「入力ポートｍ」などと追記して表示する。この処理を、入力ポートがまったくない状態から、例えば（ｍ＋１）回行うことによって、記憶部３の汎用エレメント内部ロジック情報１１に、汎用エレメント１１２用に、入力ポート５０２から入力ポート５０４までの（ｍ＋１）個の入力ポート情報を記憶する。
【００５０】
制御部２は、入力装置４によって入力ポートリストボックス６０２に表示されているある１つの入力ポート、例えば「入力ポート０」の選択を受け付けると、ポート情報表示領域６０４に、選択された、入力ポートの表示名６０５および、値の型６０６を表示する。
入力ポートの表示名６０５および、値の型６０６は、初期設定として、例えば、図７のように、表示名６０５は「入力ポート０」、値の型６０６は「Ｏｂｊｅｃｔ」が初期値として設定されていて、入力ポート追加時に、汎用エレメント内部ロジック情報１１に記憶する。ただし、これら初期値は、必ずしも図７と同じでなく別の値であってもよい。
【００５１】
制御部２は、入力装置４によって表示名６０５の変更の指示を受け付けると、編集モードに移行し、例えば、「表示名：入力ポート０」と表示されている箇所で、マウスの左ボタンがダブルクリックされると、表示名を変更するためのウィンドウを表示する。あるいは「入力ポート０」の部分だけ編集可能状態になる。キーボードなどの入力装置４によって、新しい名称、例えば、「ＣＯＭポート番号」や「実行周期」などの名称が入力されて、その後に、エンターキーが押されると、名称の変更を受け付けて、汎用エレメント内部ロジック情報１１に記憶する。同様にして、値の型６０６も変更することができる。プログラム作成用ツールの利用者に、キーボードを使って「Ｓｔｒｉｎｇ」「ｉｎｔ」などと入力させてもよいし、これらをリスト表示して、その中から選択させてもよい。
【００５２】
制御部２は、入力ポートのうちの１つが選択された状態で、入力装置４によって該入力ポートの削除の指示を受け付けると、例えば、マウスにより削除ボタン６０７がクリックされると、選択された入力ポートに関する情報を汎用エレメント内部ロジック情報１１から削除し、該入力ポートを削除し、入力ポートリストボックス６０２の入力ポートのリストから該入力ポートの表示を削除する。
【００５３】
図８は、汎用エレメントの出力ポートの数および値の型を設定するときの画面の一例を示す図である。随時図１を参照して説明する。制御部２は、汎用エレメント出力ポート情報設定ウィンドウ７０１内で、汎用エレメント出力側エレメント５０５が持つ出力ポート５０６、出力ポート５０７、出力ポート５０８、出力ポート５０９などの出力ポートの情報を表示する。制御部２は、出力ポートリストボックス７０２内で、汎用エレメント出力側エレメント５０５の出力ポートの一覧を表示する。制御部２は、追加ボタン７０３がマウスなどの入力装置４によってクリックされるか、あるいはショートカットキーの使用などによってポート追加の指示を受け付けると、出力ポート情報を汎用エレメント内部ロジック情報１１に記憶し、出力ポートを１つ追加して、出力ポートリストボックス７０２内のリストの最後尾に追記して表示する。この処理を出力ポートがまったくない状態から、例えば（ｎ＋１）回行うことによって、汎用エレメント内部ロジック情報１１に、汎用エレメント１１２用に、出力ポート５０６から出力ポート５０９までの（ｎ＋１）個の出力ポート情報を記憶する。
【００５４】
制御部２は、入力装置４によって出力ポートリストボックス７０２に表示されているある１つの出力ポート、例えば「出力ポート０」の選択を受け付けると、ポート情報表示画面７０４に、選択された、出力ポートの表示名７０５および、値の型７０６を表示する。
出力ポートの表示名７０５および、値の型７０６は、初期設定として、例えば、図８のように、表示名７０５は「出力ポート０」、値の型７０６は「Ｏｂｊｅｃｔ」が初期値として設定されていて、出力ポート追加のときに、汎用エレメント内部ロジック情報１１に記憶する。ただし、これら初期値は、必ずしも図８と同じでなくてもよい。
【００５５】
制御部２は、入力装置４によって表示名７０５の変更の指示を受け付けると、編集モードに移行し、例えば、「表示名：出力ポート０」と表示されている箇所で、マウスの左ボタンをダブルクリックされると、表示名を変更するためのウィンドウを表示する。あるいは「出力ポート０」の部分だけ編集可能状態になる。制御部２は、キーボードなどの入力装置４によって、新しい名称、例えば、「正常終了イベント」や「タグデータ」などの名称が入力されて、エンターキーが押されると、名称の変更を受け付けて、汎用エレメント内部ロジック情報１１に記憶する。同様にして、値の型７０６も変更することができる。プログラム作成用ツールの利用者が、キーボードを使って「Ｓｔｒｉｎｇ」「ｉｎｔ」などと入力させてもよいし、これらをリスト表示して、その中から選択させてもよい。
【００５６】
制御部２は、出力ポートのうちの１つが選択された状態で、入力装置４によって該出力ポートの削除の指示を受け付けると、例えばマウスにより削除ボタン７０７がクリックされると、選択された出力ポートに関する情報を汎用エレメント内部ロジック情報１１から削除し、該出力ポートを削除し、出力ポートリストボックス７０２の出力ポートのリストから該出力ポートの表示を削除する。
【００５７】
なお、図７、図８を用いて説明した入力ポート、または、出力ポートの追加および削除の処理は、図６を用いて説明した汎用エレメントの内部ロジックを生成する処理の前に行ってもよいし、汎用エレメントの内部ロジックを生成する処理の後に不要な入力ポートまたは出力ポートを削除するなどの処理をおこなってもよい。
【００５８】
次に、ＲＦＩＤリーダライタを例にリンクのつなぎ換えの例を示す。
図９は、リーダライタ制御のプログラムの構成を示す図である。プログラム構成は、フォーム９０１、フォームを表示させるためのエレメント９０２、ＲＦＩＤデバイス９０３、エレメント中の部品９０４，９０５、ＲＦＩＤのタグ読み取りを実行するためのＲＦＩＤリーダ９０６、タグ設定をするためのエレメント９０７で構成されている。プログラム作成者は、個別のエレメントの詳細な仕様を把握していなくても、リンクで各エレメントを結合することにより、リーダライタの制御プログラムを構成することができる。この状態において、ＲＦＩＤデバイス９０３を、ＲＦＩＤデバイス９０８に入れ換える場合、ＲＦＩＤデバイス９０８のエレメントを描画領域１２２（図１参照）に表示させ、ＲＦＩＤリーダ９０６へのリンクを９０３から９０８へとつなぎ換えることによって、アプリケーションプログラムを修正することができる。
【００５９】
本実施形態では、エレメントの表示色が機能によって分けられてもよい。フォーム９０１、ＲＦＩＤデバイス９０３，９０８（ミューチップリーダなど）は、青色で示される。エレメント中の部品９０４，９０５（例えば作成したフォームに含まれているテキストボックスやボタン）は、緑色で示される。実行するためのエレメントで、例えば、フォームを表示させるためのエレメント９０２、ＲＦＩＤのタグ読み取りを実行するためのＲＦＩＤリーダ９０６、タグ設定をするためのエレメント９０７は、赤色で示される。
【００６０】
本発明の実施形態では、２つのポート間のリンクを自由曲線として説明した。リンクを曲線としているため、出力ポートと入力ポートの組み合わせがまったく同じでなければ、２本の線が全て重なって１本に見えるということがなくなる。例えば、リンクによってつないでいる出力ポートと入力ポートが２組あって、それらの両方の組が一直線上にある場合、リンクが直線のときは、２本の線は重なり合って、組み合わせがわかりにくくなり、エレメントが表示されている位置を、入力装置４によって移動させなければならない。しかし、曲線であれば、エレメントの位置を移動することなく、ポート間のつながりを確認することができる。
【００６１】
本発明によれば、あるひとつの特定の、ＧＵＩベースのフォーム上のみにおいて、オブジェクトに入力されるデータとオブジェクトから出力されるデータを画面閲覧者が区別して見分けられるようにし、また、オブジェクト間の関係を把握できるようにし、アプリケーション作成者がプログラムのソースコードを見ることなく、ＧＵＩベースのフォーム上において容易にアプリケーションを作成できるようになる。また、本発明によれば、画面上のオブジェクトの配置がどのような状態であっても、オブジェクト間の関係を把握できるようになる。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施形態に係る装置の構成および出力装置上に表示される画面の一例を示す図である。
【図２】基本エレメントと汎用エレメントの画面表示の一例を示す図である。
【図３】プログラム作成用ツールを使用したアプリケーション作成処理を示すフローチャートである。
【図４】リンクの曲線の表示方法を説明する図である。
【図５】汎用エレメントの作成処理を示すフローチャートである。
【図６】汎用エレメントの内部ロジック作成処理時の画面表示の一例を示す図である。
【図７】汎用エレメントの入力ポートの数および値の型を設定するときの画面の一例を示す図である。
【図８】汎用エレメントの出力ポートの数および値の型を設定するときの画面の一例を示す図である。
【図９】リーダライタ制御のプログラムの構成を示す図である。
【符号の説明】
【００６３】
１    電子計算機
２    制御部
３    記憶部
４    入力装置
５    出力装置
６    基本エレメント情報
７    汎用エレメント情報
９    リンク情報
１０    アプリケーションロジック情報
１１    汎用エレメント内部ロジック情報
１２    描画領域内エレメント情報
１１０    基本エレメント
１１１    出力ポート
１１２    汎用エレメント
１１３    入力ポート
１１４    リンク
１１９    表示画面
１２０    ツールバー
１２１    エレメントリストボックス
１２２    描画領域
１２３    リンク
１２４    入力ポート
２０１    基本エレメント
２１１    汎用エレメント
５０１    汎用エレメント入力側エレメント
５０５    汎用エレメント出力側エレメント
６０１    汎用エレメント入力ポート情報設定ウィンドウ
６０２    入力ポートリストボックス
６０４    ポート情報表示領域
７０１    汎用エレメント出力ポート情報設定ウィンドウ
７０２    出力ポートリストボックス
７０４    ポート情報表示領域
【図１】
2008146379.tif 000003
【図２】
2008146379.tif 000004
【図３】
2008146379.tif 000005
【図４】
2008146379.tif 000006
【図５】
2008146379.tif 000007
【図６】
2008146379.tif 000008
【図７】
2008146379.tif 000009
【図８】
2008146379.tif 000010
【図９】
2008146379.tif 000011