(57)【特許請求の範囲】
【請求項１】
ビジュアルユーザインターフェイスを有するアプリケーションプログラムであるビジュアルプログラムを作成するビジュアルプログラミング装置であって、
入力装置からの利用者の操作入力により指示されてビジュアルプログラムで用いられる全ての画面または一部未作成部分を有するビジュアルプログラムで使用するベースとなる画面のフレームを作成する画面作成手段と、
入力装置からの利用者の操作入力により前記画面作成手段により作成された複数の画面の間の関連付けが各画面の間の処理をも含めて指示されて複数の画面の間の処理の流れを示す画面フローを作成する画面フロー作成手段と、
前記画面フロー作成手段により作成された画面フローから関連づけデータを抽出して画面フロー管理テーブルのデータとして格納する画面フロー情報抽出手段と、
前記画面フロー作成手段を用いて作成された画面フローに対応する画面フロー管理テーブルを用いて、画面表示、画面フロー上の各処理制御を示すノード要素に関するソースコードの自動作成を行い更に自動生成された以外のプログラムコードを入力装置からの利用者の操作入力のデータにより作成して、複数の各画面に対応づけたプログラムファイルを作成するソースコード作成手段と、
作成された各画面に対応づけたプログラムファイルと、画面フローに対応する画面フロー管理テーブルと、ビジュアルプログラムで用いる各画面の内容のデータにより実行可能なビジュアルプログラムを作成するプログラム作成手段と
を備えることを特徴とするビジュアルプログラミング装置。
【請求項２】
請求項１に記載のビジュアルプログラミング装置において、更に、
ビジュアルプログラムで使用する画面の縮小された画面を登録する画面フロー管理テーブルを備え、
前記画面フロー管理テーブルは登録された縮小画面のそれぞれの間の関連づけを含む
ことを特徴とするビジュアルプログラミング装置。
【請求項３】
請求項１に記載のビジュアルプログラミング装置において、更に、
ビジュアルプログラムで使用する画面の縮小された画面を登録する画面フロー管理テーブルを備え、
前記画面フロー管理テーブルは、画面フロー管理テーブルに登録された縮小画面のそれぞれの画面におけるプログラム部品と前記画面フロー管理テーブルのそれぞれの縮小された画面との間を関連づけを含む
ことを特徴とするビジュアルプログラミング装置。
【請求項４】
請求項１に記載のビジュアルプログラミング装置において、更に、
ビジュアルプログラムで使用する画面の縮小された画面を登録する画面フロー管理テーブルを備え、
前記画面フロー管理テーブルは、前記画面フロー管理テーブルに登録された縮小画面のそれぞれの画面における項目と前記画面フロー管理テーブルのそれぞれの縮小された画面との間を関連づけを含む
ことを特徴とするビジュアルプログラミング装置。
【請求項５】
請求項１に記載のビジュアルプログラミング装置において、
ビジュアルプログラムで使用する画面の縮小された画面を登録する画面フロー管理テーブルを備え、
前記画面フロー管理テーブルは、登録した各縮小画面におけるプログラム部品と各縮小画面の間を関連づける属性情報を登録する
ことを特徴とするビジュアルプログラミング装置。
【請求項６】
請求項１に記載のビジュアルプログラミング装置において、
ビジュアルプログラムで使用する画面の縮小された画面を登録する画面フロー管理テーブルを備え、
前記画面フロー管理テーブルにおいて、縮小された画面の所属画面ノード識別子、フロー開始ノード識別子、ファイル名、関数名、接続ノード識別子の属性情報を登録する
ことを特徴とするビジュアルプログラミング装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画面フローというフローチャートを用いて、ビジュアルユーザインタフェースを持つプログラムを設計し、作成し、更には、検査することのできる画面フローによるビジュアルプログラミング装置に関する。
【０００２】
【従来の技術】
これまでに、ビジュアルユーザインタフェースを持つプログラム、例えば、Visual Ｃ++、Visual Basic などで開発されるプログラムのための開発ツールが提供されている。
【０００３】
この種の開発ツールを用いて、プログラム開発を行う場合、その開発支援のためのツールによると、ビジュアルユーザインタフェースを持つアプリケーションプログラム（以下ビジュアルプログラムと略称する）を作成するプログラム作成方法では、まず、１つの画面の上にボタン等のプログラムの部品をそれぞれ個別に作成し、作成したプログラムの部品を組み合わせて、１つの画面を構成し、その画面を構成する各プログラムの部品の間の関連づけなど、各プログラム部品を個別に特徴づけて、最終的にプログラムを完成させる。すなわち、下から積み上げる方法（ボトムアップ）で、ビジュアルプログラムの開発が行われている。
【０００４】
この種のビジュアルプログラムを作成するプログラマは、まず、最初にベースとなる画面を作成し、続いて、そのベースとなる画面上の各々のプログラム部品のコードを記述しなければならない。
【０００５】
一般的に、アプリケーションプログラムは、多くのビジュアルユーザインタフェースを持つことが多く、また、そのための多くのユーザインタフェース画面を有している。このため、プログラムを開発する場合には、多数の画面を作成することが必要とされる。多数の画面を作成するために、プログラマは、各画面の作成のために同じ作成工程を繰り返さなければならない。つまり、最初に画面を作成し、次にその画面に結合されるコードを組み立てて構成することを繰り返さなければならない。この作業工程は煩雑であり、しかも、プログラマが数枚の画面を作成した後、作成意欲を容易に失うようになる。
【０００６】
また、このようにして作成した多くの画面の各画面の間の関係は、明示的にプログラムコードによって記述しなければならない。例えば、画面１のボタンＢがマウスによってクリックされたときに、画面２が生成され、また、画面２のボタンＤがマウスによってクリックされたときに、画面３が生成されるような簡単なビジュアルプログラムにおいて、もし、プログラマが、これら２つの画面の間の関係を変更しようとする場合、対応のコードを変更しなければならず、これは容易に行うことはできない。
【０００７】
【発明が解決しようとする課題】
このように、複数の画面を有するビジュアルプログラムにおける各画面同士の関連性は、プログラムの作成時には見えにくく、多くの画面を持つビジュアルプログラムの作成においては、別に、各々の画面の間の関係を処理の流れとして描くことが所望されるが、プログラマはプログラムの仕様書により、その流れを把握しなければならなかった。
【０００８】
また、ある画面を他の画面から出力させるといったプログラムコードを書く作業は、１つ１つが手作業であり、画面識別子などを間違えてしまうと、他の画面を出力させてしまうことがあるという問題がある。更に、作成されたビジュアルプログラムを検査する際には、そのプログラムの仕様書と照らし合わせて検査を行うが、そのような仕様書さえないまま、各コードを目視により検査を行っていたという問題があった。
【０００９】
このように、従来においては、ビジュアルプログラムを作成する場合に、各画面同士の関連が把握しにくいという問題点があり、また、画面の関連に関する仕様書を作成しても、その仕様書からプログラムコードにする作業は、手作業の作業であり、間違いを犯しやすいという問題点があった。
【００１０】
また、更に、作成されたビジュアルプログラムを検査する場合においても、各画面の推移を手作業により画面フローのない仕様書と比較するか、その仕様書さえない状態で実際のプログラムをテストしていたので、間違いを犯しやすいという問題があった。
【００１１】
したがって、本発明の第１の目的は、画面フローを用いて、ビジュアルプログラムを設計し、作成し、更には検査することが容易に行える画面フローによるビジュアルプログラミング装置を提供することにある。
【００１２】
また、本発明の第２の目的は、ビジュアルプログラムを作成する場合に、設計で用いる画面フローを、プログラムの作成や検査に用いることができ、プログラムコード作成時の間違いを減らし、また、その一部を自動化するツールとなるプログラミング装置を提供することにある。
【００１３】
【課題を解決するための手段】
上記のような目的を達成するため、本発明によるビジュアルプログラミング装置は、基本的な構成として、概略的には、ビジュアルプログラムを作成するビジュアルプログラミング装置であって、プログラムで使用する複数の画面のデータを格納する画面格納手段（４）と、プログラムで使用する複数の画面のデータを生成して、前記画面格納手段に格納する画面生成手段（１）と、前記画面格納手段に格納した複数の画面のデータから画面を縮小して編集画面上に表示し、編集画面上で複数の縮小した画面の間の関連を指示して、処理の流れを示す画面フローを作成する画面フロー作成手段（２）と、前記画面フロー作成手段により作成された前記画面フローから、その関連づけデータを抽出する画面フロー情報抽出手段（３）と、前記画面フロー情報抽出手段により抽出された関連づけデータと前記画面のデータからソースコードを生成するコード生成手段（５）とを備える。
【００１５】
また、本発明によるビジュアルプログラミング装置において、前記画面フロー作成手段は、更に、アプリケーションプログラムで使用する画面の縮小された画面を登録し、画面の中のボタン等の各プログラム部品を起点とする画面間の処理の流れ等の関連を登録する画面フロー管理テーブルを備え、前記画面フロー管理テーブルにおいて複数の画面の間を関連づけることを特徴とする。
【００１６】
このような様々な特徴を有する本発明によるビジュアルプログラミング装置においては、ビジュアルプログラムを作成するために、まず、ビジュアルプログラムにおいて使用する複数の画面を作成し、その画面を縮小して編集画面上に表示し、その縮小した画面の間の関連を指示して、処理の流れを示す画面フローを作成する。その際には、編集画面上において、作成した複数の画面を縮小してノード要素として配置し、その上にボタン等のプログラム部品のノード要素を配置し、さらに、縮小した画面のノード要素の間には、プログラム処理に関するノード要素として処理制御ノードを配置して、画面フローを作成する。また、その場合において、編集画面上に配置するノード要素は、少なくとも開始ノードおよび終了ノードを含みプログラム処理の流れを示すようにして、画面フローを作成する。そして、編集画面上に表示した縮小した画面のノード要素および配置した複数のノード要素の間のそれぞれの関連を、開始ノードから終了ノードに至る処理フローとして指示して、その関連により編集画面上で縮小した画面のノード要素を含むノード要素の間の処理の流れの方向を示す矢印により表示した処理の流れを示す画面フローを作成する。
【００１７】
画面フローが作成されると、その画面フローを用いて、それぞれの画面の間の関連による処理のプログラムコードを作成して、プログラムの全体を設計し、ビジュアルプログラムを作成することができる。また、作成したビジュアルプログラムを検査する際にも、その画面フローを用いて、順番に処理の流れをノード要素ごとに追っていくことができる。これにより、ビジュアルプログラムの設計、作成、および検査を、画面フローを用いて、一貫して行うことができ、能率よくプログラム開発を行うことができる。また、ここでの画面フローから、プログラム部品の一部のプログラムコードについては、自動的にそのコードを作成するように構成することもできる。
【００１８】
【発明の実施の形態】
以下、本発明を実施する場合の形態について、具体的に図面を参照して説明する。図１は、本発明の実施例のビジュアルプログラミング装置の構成の要部を示す図である。図１において、１はプログラム作成ツール、２は画面フロー作成エディタ、３は画面フロー情報抽出処理部、４はビジュアルプログラムで使用する画面などを格納するユーザプログラム領域、５はビジュアルプログラムのソースコード生成のためのソースコード生成部、６はシステム制御のためのオペレーティングシステム等のシステム制御部、７はビジュアルプログラムの実行および停止を制御するプログラム実行制御部、１０は計算機システム装置、１１はディスプレイ装置、１２はハードディスク装置などの外部記憶装置、１３はキーボード装置などの入力装置である。２０は画面フローを格納する画面フロー管理テーブルであり、図２において詳述するデータ構造を有するテーブルである。
【００１９】
本発明によるビジュアルプログラミング装置は、ハードウェア構成として、計算機システム装置１０に、ディスプレイ装置１１，外部記憶装置１２，および入力装置１３が接続されたものが利用され、ソフトウェア構成として、プログラム作成ツール１，プログラム実行制御部７，およびオペレーティングシステム等のシステム制御部６が備えられる。
【００２０】
プログラム作成ツール１には、少なくとも、画面フロー作成エディタ２、画面フロー情報抽出処理部３、画面フロー管理テーブル２０が備えられ、その他に、図示していないが、ビジュアルプログラムで使用する画面などを作成するためのテキストエディタ、画像エディタ、図面エディタなどの画面作成ツールが備えられる。これらのソフトウェア構成のため、外部記憶装置１２の記憶領域が割り当てられ、ソフトウェアがインストールされている。ビジュアルプログラムを作成する操作時には、計算機システム装置１０の中に組み込まれたメモリ装置に、動作に必要なソフトウェア要素が読み込まれ、計算機システム装置１０の中の制御処理装置（ＣＰＵ）が、オペレーティングシステム等のシステム制御部６の制御にしたがって、それぞれのソフトウェア要素のプログラムおよびデータ内容にしたがって、データ処理を行う。また、オペレーティングシステム等のシステム制御部６は、複数の編集ウィンドウ画面を開いて、オペレータの入力操作を行いやすくするグラフィカルユーザインタフェースの動作環境を提供する。
【００２１】
このような構成のビジュアルプログラミング装置において、ビジュアルプログラムを作成する場合、まず、ビジュアルプログラムで使用する複数の画面のデータを格納しておくために、ユーザプログラム領域４を確保する。そして、プログラム作成ツール１を起動し、その中のエディタ等の画面作成ツールを利用して、ビジュアルプログラムで使用する複数の画面のデータを生成し、ユーザプログラム領域４に、作成したいプログラムで使用する複数の画面のデータを格納する。
【００２２】
プログラム作成ツール１の中に設けられる画面フロー作成エディタ２は、先に作成してユーザプログラム領域４に格納した複数の画面のデータから画面を縮小して編集ウィンドウ画面上に表示し、編集ウィンドウ画面上に表示された複数の縮小した画面の間の関連を、更に、処理制御のためのノード要素を加えて表示し、ビジュアルプログラムの処理の流れを示す画面フローを作成する。
【００２３】
画面フロー情報抽出処理部３は、画面フロー作成エディタ２により作成された画面フローから、その関連データを抽出して、画面フロー管理テーブル２０のデータとして格納する。
【００２４】
そして、ソースコード生成部５が、ここでの画面フロー情報抽出処理部３により抽出された関連づけデータと、プログラムで使用する複数の画面のデータから、プログラムのソースコードをユーザプログラム領域４に生成して、ビジュアルプログラムを完成させる。また、ソースコード生成部５は、コンパイラ等を含めて構成すると、直接に実行プログラム等を生成して出力するようにできる。
【００２５】
プログラム実行制御部７は、ソースコード生成部５で作成されたソースコードから作成された実行プログラム等を逐次読み出して実行する。その場合に、プログラム処理フローの確認のため、作成されたプログラムに対応する画面フローをプログラムデバッグ用のウィンドウ画面を開いて、そのウィンドウ画面に表示し、当該実行プログラムを実行し、処理の実行過程をウィンドウ画面上の画面フローの該当位置に表示する。
【００２６】
具体例で説明すると、作成するビジュアルプログラムのユーザの要求仕様が決まった段階で、その仕様に従った形で、プログラムで必要とする全ての画面を設計して作成する。また、一部の未確定部分が残っていても、ビジュアルプログラムで使用するベースとなる画面のフレームは設計して作成しておく。画面設計時の一つ一つの画面の情報は、画面フロー管理テーブル２０（図２）により管理し、その画面の情報の本体部分は、別に設けた画面情報格納領域に格納する。
【００２７】
図２は、画面フロー管理テーブルのデータ構造を説明する図である。図２に示すように、画面フロー管理テーブル２０は、所属画面ノード識別子フィールド２１、フロー開始ノード識別子フィールド２２、各画面対応コード用のファイル名フィールド２３、各プログラム部品対応の関数名フィールド２４、および接続ノード識別子フィールド２５から構成されている。
【００２８】
画面フロー管理テーブル２０において、画面フローのデータ管理のため、画面フロー上の各ノードに割り当てられる識別子等について説明すると、画面フロー上の画面ノード、プログラム部品、更にはプログラム処理に関するノード（開始ノード、終了ノード、出口ノード、処理ノード、分岐ノード等）には、一意の識別子がつけられる。これをノード識別子という。各画面ノード中のプログラム部品は、その画面ノードに所属し、また、プログラム処理に関する各ノードは、開始ノードを除いて、そのプログラム処理ノードに一番近い、その処理の起点となる側の画面ノードに属するものとする。これらの所属関係は、所属画面ノード識別子フィールド２１に、その対応する画面ノードのノード識別子を格納して指示する。ただし、開始ノードだけは、所属する画面ノードを持たないため、“０”など、ノード識別子として使用されない識別子が格納される。
【００２９】
画面フローの各要素（ノード要素）は、画面フロー上の２つのリンクを張られたノードごとに画面フロー管理テーブル２０の１レコード（図２の画面フロー管理テーブルの１行）として登録される。この２つのリンクを張られたノードの起点側のノードは、フロー開始ノードと呼び、フロー開始ノードフィールド２２に格納される。終点側は、接続ノードと呼び、接続ノード識別子フィールド２５に格納される。ファイル名フィールド２３には、各画面に対応するコードを記述しているファイル名が格納される。関数名フィールド２４には、各画面ノード中のプログラム部品のマウスのクリック操作等の各イベントに対応する関数名が格納される。
【００３０】
画面フロー作成エディタ２により、画面ノードの間を関連付けて、ビジュアルプログラムの画面フローが作成されると、その画面フロー上の各ノード間の関係情報が抽出されて、この画面フロー管理テーブル２０に格納される。この画面フローに対応する画面フロー管理テーブル２０の情報に基づいて、プログラムコードの一部の自動生成、及びプログラムの画面の推移を検査する。
【００３１】
図３は、本実施例のビジュアルプログラミング装置によるビジュアルプログラム作成の全体の処理を説明するフローチャートである。図３を参照して説明する。処理を開始すると、まず、ステップ３１において、ビジュアルプログラムで用いられる全ての画面、または、一部の未作成部分があってもビジュアルプログラムで使用するベースとなる画面のフレーム（画面のデータ）を、プログラム作成ツールの画面作成エディタを用いて作成する。
【００３２】
次に、ステップ３２において、作成された複数の画面の間の関連付けを、各画面の間の処理をも含めて指示し、プログラム作成ツールの中の画面フロー作成エディタを用いて、画面フローを作成する。次にステップ３３において、作成した画面フローに対応する画面フロー管理テーブルを用いて、画面表示、画面フロー上の各処理制御を示すノード要素に関するソースコードの自動作成を行う。
【００３３】
更に続いて、ステップ３４において各画面に対応づけられたプログラムファイルに、ステップ３３で自動生成された以外のプログラムコードを手作業で記述する。そして、次のステップ３５において、これまでに作成したプログラムファイルと、画面フローと、対応する画面フロー管理テーブルと、ビジュアルプログラムで用いる各画面の内容により、コンパイラ、リンカ等を用いて、最終的な実行可能なビジュアルプログラムを完成させる。
【００３４】
次に、具体例により、本発明のビジュアルプログラミング装置によるビジュアルプログラムの作成について、具体的な操作例と共に説明する。図４は、プログラム作成ツールの中の画面フロー作成エディタのウィンドウ画面の一例を示す図である。図４において、４１はプログラム作成ツールにおける画面フロー作成エディタの編集ウィンドウ画面、４２はユーザプログラムで使用するメニューを示すノード要素（メニューノード）、４３ａ〜４３ｆはユーザプログラムで使用する画面を縮小表示した画面要素（画面ノード）、４４はビジュアルプログラムの画面中で使用するボタンを示すノード要素（ボタンノード）、４５はビジュアルプログラムの画面中で使用する情報表示フィールド、４６はプログラム開始を示すノード要素（開始ノード）、４７はプログラムの終了の処理制御を示すノード要素（出口ノード）、４８はその画面を消滅させる処理制御を示すノード要素（終了ノード）、４９は画面出力以外の処理制御を示すノード要素（処理ノード、分岐ノードなど）である。
【００３５】
前述したように、ここで作成するビジュアルプログラムのプログラム要求仕様が決まった段階で、プログラム作成ツール１の中の画面フロー作成エディタ２を用いて、そのビジュアルプログラムに必要な全ての画面を、または一部の未作成部分があってもビジュアルプログラムで使用するベースとなる画面のフレームを作成する（ステップ３１）。
【００３６】
次に、画面フロー作成エディタ２を起動すると、編集ウィンドウ画面４１が開かれて、編集ウィンドウ画面４１の中に、先に作成されたビジュアルプログラムで使用する画面が縮小され、画面ノード４３ａ〜４３ｆとして表示される。この画面が縮小されて表示される画面ノード４３ａ〜４３ｆの中には、更に、ビジュアルプログラムの画面中で使用するボタンを示すボタンノード４４や、ビジュアルプログラムで使用するメニューを示すメニューノード４２や、ビジュアルプログラムの画面中で使用する情報表示フィールド４５が、そのまま、先に作成した画面の中の位置関係等を保ったまま表示される。
【００３７】
次にプログラマは、画面フロー作成エディタ２を用いて、編集ウィンドウ画面４１の中に表示された複数の画面ノード４３ａ〜４３ｆの間の関係を付与し、画面フローを作成する。この場合、画面フロー作成エディタ２の編集ツールメニューの中から、まず、最初に表示する画面の画面ノード４３ａに対し、編集ウィンドウ画面４１の中の適当な位置にプログラム処理の開始を示すノード要素（開始ノード）４６を貼り付けて、開始画面にリンクを張る。これにより、プログラムの開始時に表示される第１番目の画面が画面フロー上で決定される。
【００３８】
次に、第１番目の画面ノード４３ａの中のプログラム部品のメニューノード４２に対し、マウスによるボタンのクリック等のイベント発生により行われる処理の処理ノード４９を画面フロー上に貼り付け、メニューノード４２からこの処理ノード４９へとリンクを張る。そして、その処理ノードから、処理後に表示される画面の画面ノード４３ｄに対しリンクを張る。また、画面ノード４３ａ中のボタンノード（ボタンＡ、ボタンＢ）４４から、そのボタンのクリック等のイベントによって表示される次の画面の画面ノード４３ｂ、４３ｃに対してリンクを張る。これらのリンクにより、画面ノード４３ａと画面ノード４３ｂ，４３ｃの関係が付与される。同様にして、必要に応じて画面ノードや処理ノード等の間のリンクを張る。そして、画面フロー上にプログラムの終了の処理制御を示す出口ノード４７や、画面を消滅させる処理制御を示す終了ノード４８を貼り付け、適当な画面のプログラム部品とのリンクを張って、画面フローを作成する（ステップ３２）。
【００３９】
ここでの具体的な操作例としては、編集ウィンドウ画面４１において、画面フロー作成エディタ２の編集ツールメニューの中から、ボタンノードおよびメニューノードなどを含む画面ノード、開始ノード、終了ノード、画面表示、画面フロー上の各処理制御を示すノード要素に関する処理ノード、分岐ノードなどを貼り付け、その間にリンクを張る操作を行うだけであり、従来のグラフィカルユーザインタフェースによる画面作成の操作と同様である。各ノードの間は、方向を示す線（矢印）により、そのリンクの関係が示される。
【００４０】
このようにして作成された画面フローによって、先に作成されたビジュアルプログラムで用いられる複数の画面と、それらの画面に設けられるプログラム部品との間の関連付けが行われているので、これらの関連付けの情報を抽出し、画面フロー管理テーブル２０（図２）を用いて管理する。
【００４１】
例えば、図４に示すように画面フローが作成された場合には、図２に示すように、画面フロー管理テーブル２０の中に、関連付け情報が格納される。前述したように、画面フロー上の画面ノード、プログラム部品、更にはプログラム処理に関するノード（開始ノード、終了ノード、出口ノード、処理ノード、分岐ノード等）には、一意の識別子であるノード識別子がつけられており、図２に示す画面フロー管理テーブル２０においては、これらのノード識別子を格納し、これにより、各々のノードを識別して管理する。
【００４２】
また、各画面ノード中のプログラム部品は、その画面ノードに属するものとし、また、プログラム処理に関する各ノードは、開始ノードを除き、当該プログラム処理のノードに一番近くて、そのプログラム処理の起点となる側の画面ノードに属するものとして、所属する画面ノードのノード識別子が、所属画面ノード識別子フィールド２１に格納されるので、図４において、処理ノード４９は、画面ノード４３ａに属するものとされる。これは、図２に示す画面フロー管理テーブルにおいては、第５行目のレコードとして登録されている。
【００４３】
開始ノード４６は、図２に示す画面フロー管理テーブルにおいては、第１行目のレコードとして登録されている。この開始ノード４６は、所属する画面ノードを持たないため、所属画面ノード識別子フィールド２１には、ノード識別子として使用されない“０”が格納される。
【００４４】
図２に示す画面フロー管理テーブルによる説明例では、図４の中における図面番号をノード識別子として用いて説明している。ただし、ボタンに関しては、その区別を付けるため、ボタンの名称をノード識別子として用いる。ノード識別子４６の開始ノードは、ノード識別子４３ａの画面にリンクが張られており、この画面がプログラムの開始画面であることが分かる。開始ノード４６はそれが属する画面ノードがないため、所属画面ノード識別子フィールド２１には“０”が格納される。
【００４５】
また、ノード識別子４３ａ（所属画面ノード識別子フィールド２１）の画面ノード中のボタンＡ（フロー開始ノード識別子フィールド２２）がマウスによりクリックされた時に処理されるコードは、ファイル名“start.cpp”というファイル（各画面対応コード用のファイル名フィールド２３）のＢＵＴＴＯＮ＿Ａ＿ＣＬＩＣＫという関数（各プログラム部品対応の関数名フィールド２４）に格納されており、ボタンＡのマウスクリックのイベントによって出力される画面は、ノード識別子４３ｂの画面となることが、画面フロー管理テーブル２０に登録される。
【００４６】
このように、画面フローは画面フロー上の２つのリンクを張られたノードごとに画面フロー管理テーブルの１レコード（図２のテーブルの１行）として登録され、この２つのリンクを張られたノードの起点側のノードのフロー開始ノードは、フロー開始ノードフィールド２２に格納される。また、終点側のノードの接続ノードは、接続ノード識別子フィールド２５に格納される。
【００４７】
同様にして、ノード識別子４３ａの画面中のボタンＢがマウスによるクリックされた時に処理されるコードは、ファイル名“start.cpp”というファイルのＢＵＴＴＯＮ＿Ｂ＿ＣＬＩＣＫという関数に格納されており、これによって出力されるボタンは、ノード識別子４３ｃの画面であることが画面フロー管理テーブルに登録される。
【００４８】
ノード識別子４３ａの画面中のメニューＣ（ノード識別子Ｃ）に関するコードは、ファイル名“start.cpp”のＭＥＮＵ＿Ｃ＿ＣＬＩＣＫという関数に格納されており、このメニューＣがクリックされたときにはノード識別子４９の処理ノードＰＲＯＣＥＳＳ１が実行されることになる。したがって、フロー開始ノードはメニューＣであり、この識別子Ｃがフロー開始ノードフィールド２２に格納され、接続ノードはノード識別子４９のＰＲＯＣＥＳＳ１であるため、接続ノード識別子フィールド２５には、“４９”が格納される。さらに、このＰＲＯＣＥＳＳ１は、その後、ノード識別子４３ｄの画面ノードに接続される。つまり、ＰＲＯＣＥＳＳ１の処理実行後にノード識別子４３ｄの画面を表示することを意味する。したがって、画面フロー管理テーブル２０の次のレコードのフロー開始ノード識別子は“４９”であり、コード用ファイル名は“start.cpp”であり、ＰＲＯＣＥＳＳ１と同様に、対応する関数名はＭＥＮＵ＿Ｃ＿ＣＬＩＣＫであることが登録される。
【００４９】
次の段階で、プログラム作成ツールを用いて、自動的に、画面を出力するコード及び、画面フロー上の各終了ノード、出口ノード、処理ノード、分岐ノード等に関するコードの作成を行う。プログラム作成ツールは、自動的にコードを出力する旨の命令を受け取ると、画面フロー管理テーブル２０の接続ノードフィールド２５に画面ノード、終了ノード、出口ノード、処理ノード、分岐ノード等があれば、該当するコード用ファイルの然るべき関数にその処理に関するコードを自動的に挿入する（ステップ３３）。その後、自動的に挿入されたコード以外のコードを従来と同様に手作業により入力して、プログラムコードを完成させる（ステップ３４）。最後にこれらのコードをコンパイラ、リンカー等を通して、プログラムを完成させることになる（ステップ３５）。
【００５０】
ここで作成したビジュアルプログラムの画面フローを用いて、作成したビジュアルプログラムを検査する場合は、後述するように、プログラム作成ツールとデバッガを同時に起動させ、検査するビジュアルプログラムに対応する画面フローを表示し、デバッガの一部であるプログラム実行制御部７を起動して、作成したビジュアルプログラムをステップ実行して処理を進め、画面フローで対応する処理ステップのノード要素の位置を表示し、仕様どおりに処理が進み、画面が推移するか否かを目視により確認する。
【００５１】
以上、説明したように、本実施例の画面フローによるビジュアルプログラミング装置によれば、ビジュアルプログラムの設計画面をプログラムの画面に移行する手間が省け、同時に移行の際に発生するおそれのある間違いをなくすことができる。また、設計時に画面フローを用いることにより、プログラム作成の一部を自動化することができ、更には、プログラムの検査に画面フローを用いることにより、検査時の間違いを減らすことができる。
【００５２】
ここでは、プログラマは、最初に、必要とされるビジュアルプログラムで使用する全ての画面を作成する。例えば、図５に示すように、画面５１、画面５２、画面５３の３枚の画面を作成する。このような画面が作成された結果、画面５１には、プログラム部品として、Ａボタン５１ａと、Ｂボタン５１ｂと、情報表示フィールド５１ｃが貼り付けられる。画面５２には、プログラム部品として、Ｃボタン５２ａと、Ｄボタン５２ｂと、Ｅボタン５２ｃと、３個のラジオボタン（Radio 1, Radio 2, Radio 3）が貼り付けられる。また、画面５３は、画面フレームだけが作成される。その中に貼り付けるプログラム部品はまだ作成されていない。
【００５３】
次に、画面フロー作成エディタを起動して、このように作成された３つの画面を、編集ウィンドウ画面に表示すると、編集ウィンドウ画面上にはそれぞれの画面が縮小されて、それぞれにプログラム部品のボタンに対応するボタンノードを含む画面ノード（画面５１、画面５２、画面５３）として表示される。この画面ノードの間の関係を、他の処理制御を示すノード要素（開始ノード、処理ノード、分岐ノード、終了ノード、出口ノードなど）と共に、必要に応じて貼り付けて、これらのノード要素の間の関係をも含めて、画面ノードに含まれたボタンノードと画面ノードの間を結ぶ指示（矢印の線で結ぶ操作）を行い、図５に示すような画面フローを作成する。
【００５４】
図５に示す画面フロー上には、開始ノード５０が設けられ、画面ノード５１にリンクが張られており、この画面ノードがプログラム開始時に表示されることが指示される。また、画面ノード５１中のＡボタン５１ａのボタンノードからは、出口ノード５４にリンクが張られ、Ａボタン５１ａのクリックにより、ここでプログラム全体を終了することが指示される。画面ノード５１のＢボタン５１ｂのボタンノードからは、画面ノード５２にリンクが張られている。これにより、Ｂボタン５１ｂのクリックにより、画面ノード５２を表示することが指示される。これらの各ノード間の関係は、前述したように、画面フロー管理テーブル２０に登録される。すなわち、画面フローと画面フロー管理テーブル２０は、１対１に対応する。
【００５５】
このように、画面フローにおいて、画面ノードに含まれたプログラム部品と他の画面ノード、及び他の処理制御を示すノード要素等の間にリンクを張ることによって、各画面に対するプログラムコードの内容を指示することができる。その結果、画面フロー管理テーブル２０に登録される画面フローの情報によって、各画面に対して作成するプログラムコードが自動生成できる。図６Ａ、図６Ｂは、それぞれ画面ノード５１、５２に対し、プログラムコードを自動生成した内容を示している。ここで用いられているプログラム言語は、仮想のものであるが、このプログラム言語の関数表記の方法、ｉｆ文の表記の方法は、Ｃ言語と同様である。例えば、Ａボタン５１ａに対応するプログラムコード６１の中の「Exit();」や、Ｃボタンに対応するプログラムコード６３の中の「Endialog();」はそれぞれプログラム終了の関数、画面消滅の関数を示している。このように、作成するビジュアルプログラムで用いるプログラム言語は、予めプログラマが指定し、プログラム作成ツールが認識できるようにする。このようなプログラムコードの自動生成は、後述するように、プログラム作成ツールが、図９に示すようなプログラミング言語テーブル９０を用いて行う。
【００５６】
次に、プログラミング言語テーブルについて説明する。図９は、プログラミング言語テーブルの一例を示す図である。図９に示すように、プログラミング言語テーブル９０は、処理制御ノード種別フィールド９１のデータに対応して、その挿入コードフィールド９２のデータとして、特定のプログラミング言語のプログラムコードが登録されている。このプログラミング言語テーブルは、プログラマが使用する１つのプログラム言語に対応して設けられている。図９のプログラミング言語テーブルの例は、図６Ａ，図６Ｂで用いられたプログラム言語に対応している。このテーブルの中で、処理制御ノード種別フィールド９１には、画面フロー上のプログラム処理に関する処理制御ノードの種別が登録され、これに対応して、挿入コードフィールド９２には、各プログラム処理に関する処理制御ノードに対応するプログラムコードが登録されている。
【００５７】
ここで、図６Ａに示すように、画面ノード５１から、その中のプログラム部品のプログラムコード６１，６２が、自動生成される仕組みについて詳細に説明する。図５および図９を参照する。図５に示すように、画面フロー（図５）より、画面ノード５１中のＡボタン５１ａは、このＡボタンに対するイベントによりプログラムを終了する。このような画面ノード５１のＡボタンに対するイベント、および、画面ノード５１または画面ノード５２の中のその他のボタンに対するイベントとしては、例えば、マウスの「クリック」、「ダブルクリック」、または「右ボタンクリック」など様々なものがあるが、ここでは、画面フロー作成時にプログラマが「クリック」であることを指定したことを仮定している。
【００５８】
このようなビジュアルプログラムの画面上のプログラム部品の特定のイベントにより呼び出される関数を、特定のファイルに作成する技術は、既存のビジュアルプログラミング技術と同様である。
【００６０】
また、画面ノード５１中のＡボタン５１ａがクリックされた時に呼び出される関数内の命令文としては、プログラムコード６１の中に示すように、“Exit();”が挿入されている。これは、図９に示すプログラミング言語テーブル９０によって、出口ノードに対しては、その挿入コードとして、“Exit();”が挿入されるように、予め設定されているからである。
【００６１】
同様に、図６Ａに示す画面ノード５１の中のＢボタン５１ｂについては、図５の画面フローを参照すると、Ｂボタン５１ｂからは画面ノード５２へリンクが張られているので、画面ノード５２を出力するコードを挿入することになる。この場合には、図９に示すプログラミング言語テーブル９０によって、画面出力ノードのための挿入コードは、“Display( argument )”文となっている。この“argument”は、どの画面を出力するかを指定する引数であり、この引数で指定する画面ノード識別子は、既存のビジュアルプログラミング技術により各画面を作成した時に割り当てられる識別子である。これは、プログラム作成ツールにおいて、画面フロー作成エディタを起動し、各画面を縮小して画面フローとして表示した時に認識される。このようにして、図６Ａに示されるコードが自動生成される。
【００６２】
同様にして、図６Ｂに示すように、画面ノード５２から、その中のプログラム部品に対応してプログラムコード６３，６４，６５が自動生成される仕組みについて詳細に説明する。同じく、図５および図９を参照して説明すると、対応する画面フロー（図５）により、画面ノード５２の中のＣボタン５２ａは、マウスでクリックされることにより、この画面自身を消滅する終了ノードにリンクされているので、Ｃボタン５２ａがクリックされた時に呼び出される関数内の命令文は、プログラムコード６３の中に示すように、“Endialog()；”が挿入される。これは、プログラム言語テーブル９０によって、終了ノードに対する挿入コードは“Endialog()；”として特定されるからである。
【００６３】
また、画面ノード５２中のＤボタン５２ｂは、対応する画面フロー（図５）により、画面ノード５３とリンクが張られている。これは、図６ＡのＢボタン５１ｂと同様であり、したがって、図６Ｂのプログラムコード６４には、“Display(argument)”文が挿入される。画面ノード５２の中のＥボタン５２ｃは、対応する画面フロー（図５）により、分岐ノード５６にリンクが張られている。プログラミング言語テーブル９０により、分岐ノードに対する挿入コードは、“if ( argument ) { //Caption } else {}”となっており、ここでは、プログラムコード６５として、“if ( 1 ) { //Branch１ Display( Screen３ ) ; } else { }”が挿入される。
【００６４】
この時の分岐の条件は、ここでは“１”が指定されているが、プログラマが後で分岐の条件を手作業で入力する。通常、自動コード生成時にはデフォルトの値を決めておき、プログラマが何もしなくても処理がどちらかに流れるようにしておく。図６Ｂに示すプログラムコード６５に示される例では、“１”という値が設定されている。こうすることによって、プログラマが何も手を加えなくても自動的に生成されたコードだけでコンパイル等を行うことが可能となる。
【００６５】
更に、“//Caption”は、画面フローにおいて、その中の分岐ノード５６に書かれた文字がコメントとして自動的に挿入されることを示す。また、分岐ノードによる処理では、条件によって処理の内容が異なる。つまり、分岐の結果が“Ｙｅｓ”の時には画面ノード５３を出力し、“Ｎｏ”の時には、処理ノード５７の処理の後、終了ノード５８を実行する。ここでは、画面ノード５３の出力に関するコードは、Ｄボタン５２bに関するプログラムコード６４と同様である。このコードは、上記の分岐に関するコードの分岐条件が“Ｙｅｓ”の場合のコードとして、プログラムコード６５の中に挿入される。同様に、分岐条件が“Ｎｏ”の場合のコードは、処理ノード５７、そして引き続いて画面の消滅処理の終了ノード５８に関するコードを挿入する。これらに関するコードは、プログラミング言語テーブル９０により、それぞれ、“//Caption”，“Endialog()；”である。
【００６６】
前者の“//”は、コメントを意味する。ここには、ユーザの任意の処理を記入してもらうことになる。そして、“Caption”には、図５の画面フロー上の処理ノード５７に書かれた文字（キャプション）が自動的に挿入される。また、終了ノード５８に関しては、Ｃボタン５２ａについてのプログラムコード６３と同様のコードが挿入される。分岐のプログラムコードとしては、これ以外にも多様なものがある。例えば、Ｃ言語を使って表記すれば、“if () {} else”文、“if () {} else if () else {}”文、“switch”文等があり、目的とするコードにより、分岐ノードの種類を増やしていけば、より使いやすいものとなる。
【００６７】
上記のように、画面フローを用いることにより、各画面に対するプログラムコードはその一部を自動生成することができる。これにより、ビジュアルプログラムの作成作業を効率よく進められるようになる。また、画面フローの一部を再利用することも可能になる。図７は、画面フローの編集操作により、新たに作成するビジュアルプログラムに既存のビジュアルプログラムの画面フローの一部を再利用した例である。
【００６８】
この画面フローの再利用を、図７を用いて説明する。図７の編集画面７０に示すように、再利用したい部分７１を有する既存の画面フローを、画面フロー作成エディタを起動して表示する。その画面フローより、再利用する部分を指定し、コピー操作を行う。次に新たに作成する画面フローを、画面フロー作成エディタを起動して、編集画面７２に表示し、必要な部分に貼り付ける操作を行う。これらのコピー操作、貼り付け操作は従来の画面編集を行う操作と同様である。
【００６９】
そして、内部のデータ構造は、編集画面７０に対応する画面フローに関する画面フロー管理テーブルから、編集画面７２に対応する画面フローに関する画面フロー管理テーブル内に、再利用する部分７１の画面フローの対応部分がコピーされ、編集画面７２において作成される新たな画面フローのために必要な画面フロー管理テーブル中の識別子、ファイル名等が自動的に変更される。
【００７０】
この時の画面フロー管理テーブルのデータの変化を、図１０および図１１に示している。ここで、図１０および図１１用いて図７におけるコピー操作時の画面フロー管理テーブルの変化を説明する。図１０図は、図７に示す編集画面７０の画面フローに対応する画面フロー管理テーブルの一部を示す図であり、また、図１１は図７に示す編集画面７２の画面フローに対応する画面フロー管理テーブルの一部を示す図である。
【００７１】
編集画面７０において、この中の画面フロー７１に示される画面フロー管理テーブルの情報は、図１０に示す画面フロー管理テーブル１２０のノード要素レコード群１３１に示される部分に相当する。このノード要素レコード群１３１に示される部分が、画面フローのコピー操作により内部データとしてコピーされる。次に、図７の編集画面７２において、画面フロー７１の部分の貼り付け操作を行うと、ノード要素レコード群１３１に示される部分が、編集画面７２に対応する画面フロー管理テーブルにコピーされ、更に、識別子、ファイル名等が変更されて、図１１に示すように、そのノード要素レコード群１３２に示される部分として追加される。
【００７２】
識別子、ファイル名の変更が必要なのは、例えば、図７の編集画面７２に示す画面フローの画面ノード７２１より以前に使用されている識別子やファイル名がコピー前のものと重なってしまう場合が考えられるためである。しかし、コピー後の画面フロー管理テーブルに追加された情報は、コピー前の各プログラム部品、各ノード等の相対関係は保っている。最後に図７の編集画面７２において画面ノード７２１中のＹボタン７２４から画面ノード７２６に対して、リンク７３４を張り、このリンク７３４に関する情報が、自動的にリンクレコード１３３として画面フロー管理テーブル１４０に追加される。
【００７３】
このように、画面フローの一部を再利用することにより、各画面中のプログラム部品を再利用するだけでなく、画面フローの中の１つのまとまりのある処理単位をも再利用することができる。さらに、画面フロー中の処理制御に関するノードに対応して書かれたコードもコピー前の画面フローから検索してコピーすることができる。
【００７４】
この画面フローの再利用方法をさらに拡張し、再利用したい画面フローの一部をマクロとして登録しておくこともできる。こうすることによって、頻繁に利用する画面フローがある場合、再利用元の画面フローをいちいち表示しなくても、登録してあるマクロから画面フローの一部を再利用することができる。
【００７５】
また、本発明の画面フローを用いれば、これにより作成されたビジュアルプログラムに対する、テストケースを自動生成したり、デバッグを容易にすることも出来る。図８は、画面フローよりテストケースを自動生成する例、及びデバッグを容易にする例を説明する図である。図８の▲１▼，▲２▼，▲３▼はそれぞれ、自動生成されたテストケース１，２，３に対応している。これらのテストケースを以下に説明する。
テストケース１は、画面ノード１０１中のＡボタン１０２をクリックし、ビジュアルプログラムを終了するケースである。
テストケース２は、画面ノード１０１のＢボタン１０４をクリックし、分岐ノード１０５において、“Ｙｅｓ”の結果を得、画面ノード１０６を出力し、画面ノード１０６中のＣボタン１０７をクリックし、画面ノード１０８を出力、画面ノード１０８において、Ｅボタン１０９をクリックし画面を消滅させるケースである。
テストケース３は、画面ノード１０１においてＢボタン１０４をクリック、分岐ノード１０５において、“Ｎｏ”の結果を得、処理ノード１１１を実行し、画面ノード１０８を出力、その後画面ノード１０８のＦボタン１１２をクリックするケースである。
【００７６】
これらのテストケースは、画面フローの最初に表示される画面ノードから開始される画面フローを画面フロー管理テーブルを用いて追って行くことにより生成される。
【００７７】
さらに、これらのテストケース生成後、画面フローを用いることにより、それぞれのテストケースの経路にしたがって処理をステップ毎に実行し、ビジュアルプログラムのデバッグを行うことができる。図８に示すように、そのビジュアルプログラムに対応する画面フローを表示し、対応する処理ステップのノード等の位置を画面フロー上に表示して、仕様通りに画面フローが推移するか否かを確認する。
【００７８】
図８は、処理ノード１１１でプログラムが停止している様子を示している。この時、この処理ノード１１１の表示が変化しているため、プログラムの処理がここまで進んだことをビジュアルに把握することができる。プログラムをステップ毎に実行し、それがソースコードのどこに対応するかを表示する技術は既存のビジュアルプログラミング技術により確立されており、そのソースコードが画面フローのどの位置に対応するかを表示するのは、画面フローがプログラムのソースコードを自動生成できることから明らかである。このプログラムのステップ毎の実行に関しては、デバッガに含まれたプログラム実行制御部７を起動し、プログラムの実行ファイルから命令語をステップ毎に取り出して実行させたり停止させたりすることによって可能である。また、停止した処理ノードを指定することによって、その処理ノードに対応するソースコードを見ることもでき、デバッグ作業を能率よく進めることができる。
【００７９】
また、画面フローを用いれば、同じオペレーティングシステム上で、同じビジュアルプログラムを、異なるプログラミング言語を用いて作成することが容易になる。例えば、“Windows NT”オペレーティングシステム上で画面フローを作成し、Visual C++でプログラムを作成し、後にVisual Basicを用いて同じプログラムを作成する必要がある場合には、同じ画面フローを使用することができる。これには、自動コード生成時に使用する言語の指定を変更するだけでよい。この操作により、プログラム作成ツールは、Visual Basic用のプログラミング言語テーブル（図９）を使用するため、自動生成されるコードがVisual Basicとなる。今までは、既存のビジュアルプログラムを異なる言語で作成する場合、最初からプログラムの作成のし直しなど大変な労力を要したが、画面フローを用いることによりずっと容易になる。
【００８０】
このように、異なるプログラミング言語で同じプログラムを作成しなければならないケースは、例えば、プログラミング言語がバージョンアップされた場合や、オペレーティングシステムがバージョンアップされた場合、また、既存のプログラミング言語に関する技術者が不足してきたときなど、将来的に既存のプログラムのメンテナンスが不安定になるときには重要な技術となる。最近のＰＣのプログラミング言語や、オペレーティングシステムのバージョンアップは頻繁であり、常に新しい言語や新しいオペレーティングシステムに精通した技術者を確保することも容易ではなくなってきており、このような技術は更に重要となっていくことが考えられる。その上、既存のプログラムを作成したときに生成したテストケースもそのまま使用することとができるため、プログラム全体で考えた場合、非常に有利になる。
【００８１】
更には、既存の画面フローを用いて、他のオペレーティングシステム上で動作するプログラムのソースコードを作成することができる。例えば、ここに画面フローを用いて作成した“Windows NT”オペレーティングシステム上で実行されるVisual C++ 言語のプログラムがあるとする。この画面フローを用いて、同じプログラムを“ＵＮＩＸ”オペレーティングシステム上で実行されるTc1/Tk言語で作成されたプログラムは、一般的に“ＵＮＩＸ”オペレーティングシステム上でなければ実行されないが、ソースコードだけならば作成することができる。このように、例えば、ＰＣのような安価な開発マシンを使って、ＵＮＩＸマシンのような高価なマシンのためのプログラムコード作成や、テストケース作成ができるため、非常に有利になる。
【００８２】
このように画面フローを用いれば、様々なオペレーティングシステム、及びプログラミング言語に対してビジュアルプログラムを容易に作成することができる。また、同じオペレーティングシステムやプログラミング言語でも、それらの異なるバージョンのプログラムを容易に作成することができる。
【００８３】
また、このような画面フローを用いたプログラムの作成方法は、ＨＴＭＬ(Hyper Text Markup Language)のような文書記述言語を作成する場合にも適用できる。インターネット上のホームページで見られる典型的ＨＴＭＬで作成された文書は、複数の画面、ボタン、テキスト等で構成されている。そのテキスト自身にも、他のプログラム部品とリンクを張られたものさえある。しかし、これもプログラム部品、画面ノード、処理制御に関するノード等の組み合わせや関連付けによって構成できることは、他のプログラム言語と変わりがない。したがって、画面フローにより自動的にソースコードを生成したり、テストケースを生成したりすることができる。
【００８４】
以上に説明したように、本発明による画面フローによるビジュアルプログラミング装置を用いて、プログラムを作成することにより、次のような利点が期待できる。
（１）画面間の関係の視覚的な認識
一つのビジュアルプログラムにおいて、複数の画面を必要とする場合には、現在の技術では、それらの関係を視覚的に示すことができず、プログラムを作成することが煩雑である。画面フローによるプログラムの作成方法を用いることにより、プログラマは、複数の画面間の関係を視覚的に見ることができる。
（２）画面フローの視覚的な認識
プログラマが、画面フローを使用することにより、プログラムの全体のフローを認識することが容易になり、プログラムを理解する上での助けとなる。
（３）自動コード生成
画面フローを作成すると、そのビジュアルプログラムのフレームとなるコードを自動的に生成することができ、プログラムのフレームとなるコードに関する誤りを防ぐことができる。
（４）画面フローの一部の再利用
画面フローの一部をコピーすることにより、他の画面フロー、もしくはその画面フローの中で再利用することができ、ビジュアルプログラム作成の能率を大幅に向上できる。
（５）マクロの使用
画面フローの一部をマクロとして保存することにより、後で他の画面フローで再利用することができる。
（６）視覚的なデバッグ
デバッグをする際に、プログラム実行、停止を繰り返すことがあるが、現在プログラム中で処理が行われている箇所を画面フロー上で示すことができ、デバッグ効率を向上させることができる。
（７）テストケースの自動生成
画面フローを用いて、プログラムのテストケースを自動的に生成することができる。
（８）異なる複数のプログラミング言語でのプログラム作成
１つの画面フローより、異なる複数のプログラミング言語によるビジュアルプログラムを容易に作成することができる。これにより、プログラミング言語がバージョンアップした場合や、オペレーティングシステムがバージョンアップした場合、その他、現在使用しているプログラミング言語の技術者が不足した時に他のプログラミング言語に変更して技術者の不足していないプログラミング言語によりプログラムをメインテナンスするような場合等に、非常に容易にプログラミング言語を変更することができる。さらには、最初に作成したテストケースはそのまま使用できる。
（９）異なるオペレーティングシステム上での開発
画面フローを用いることにより、プログラムを作成するオペレーティングシステムと、プログラムを実行するオペレーティングシステムが異なっても、プログラムのフレームに関する限りコードを自動生成することができる。これにより、例えば、ＰＣのような安価な開発マシンでＵＮＩＸマシンのような高価なマシン用のプログラム作成や、テストケース作成を行うことができる。
【図面の簡単な説明】
【図１】  本発明の実施例のビジュアルプログラミング装置の構成の要部を説明する図である。
【図２】  画面フロー管理テーブルの構造を説明する図である。
【図３】  本実施例のビジュアルプログラミング装置によるビジュアルプログラム作成の全体の処理を説明するフローチャートである。
【図４】  プログラム作成ツールの中の画面フロー作成エディタのウィンドウ画面の一例を示す図である。
【図５】  画面フローを用いるプログラム開発方法の操作例を説明する図である。
【図６】  図６Ａおよび図６Ｂはプログラムコードの自動作成を説明する図である。
【図７】  画面フローの編集操作によりプログラムコードの編集操作を行う操作例を説明する図、
【図８】  画面フローに基づいて生成するテストケースの一例を説明する図である。
【図９】  プログラミング言語テーブルの一例を示す図である。
【図１０】  図７に示す編集画面７０の画面フローに対応する画面フロー管理テーブルの一部を示す図である。
【図１１】  図７に示す編集画面７２の画面フローに対応する画面フロー管理テーブルの一部を示す図である。
【符号の説明】
１…プログラム作成ツール、２…画面フロー作成エディタ、３…画面フロー情報抽出処理部、４…ユーザプログラム領域、５…ソースコード生成部、６…システム制御部、７…プログラム実行制御部、１０…計算機システム装置、１１…ディスプレイ装置、１２…外部記憶装置、１３…入力装置、２０…画面フロー管理テーブル、
【図１】
0003729640.tif 000002
【図２】
0003729640.tif 000003
【図３】
0003729640.tif 000004
【図４】
0003729640.tif 000005
【図５】
0003729640.tif 000006
【図６】
0003729640.tif 000007
【図７】
0003729640.tif 000008
【図８】
0003729640.tif 000009
【図９】
0003729640.tif 000010
【図１０】
0003729640.tif 000011
【図１１】
0003729640.tif 000012