JP3729640B2 - 画面フローによるビジュアルプログラミング装置 - Google Patents

画面フローによるビジュアルプログラミング装置 Download PDF

Info

Publication number
JP3729640B2
JP3729640B2 JP13739498A JP13739498A JP3729640B2 JP 3729640 B2 JP3729640 B2 JP 3729640B2 JP 13739498 A JP13739498 A JP 13739498A JP 13739498 A JP13739498 A JP 13739498A JP 3729640 B2 JP3729640 B2 JP 3729640B2
Authority
JP
Japan
Prior art keywords
screen
program
node
visual
flow
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.)
Expired - Fee Related
Application number
JP13739498A
Other languages
English (en)
Other versions
JPH10307716A (ja
Inventor
知晴 澤幡
ツァイ ウェイ・テク
彰 小野間
ジャン タオ
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.)
University of Minnesota
Original Assignee
University of Minnesota
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 University of Minnesota filed Critical University of Minnesota
Publication of JPH10307716A publication Critical patent/JPH10307716A/ja
Application granted granted Critical
Publication of JP3729640B2 publication Critical patent/JP3729640B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画面フローというフローチャートを用いて、ビジュアルユーザインタフェースを持つプログラムを設計し、作成し、更には、検査することのできる画面フローによるビジュアルプログラミング装置に関する。
【0002】
【従来の技術】
これまでに、ビジュアルユーザインタフェースを持つプログラム、例えば、Visual C++、Visual Basic などで開発されるプログラムのための開発ツールが提供されている。
【0003】
この種の開発ツールを用いて、プログラム開発を行う場合、その開発支援のためのツールによると、ビジュアルユーザインタフェースを持つアプリケーションプログラム(以下ビジュアルプログラムと略称する)を作成するプログラム作成方法では、まず、1つの画面の上にボタン等のプログラムの部品をそれぞれ個別に作成し、作成したプログラムの部品を組み合わせて、1つの画面を構成し、その画面を構成する各プログラムの部品の間の関連づけなど、各プログラム部品を個別に特徴づけて、最終的にプログラムを完成させる。すなわち、下から積み上げる方法(ボトムアップ)で、ビジュアルプログラムの開発が行われている。
【0004】
この種のビジュアルプログラムを作成するプログラマは、まず、最初にベースとなる画面を作成し、続いて、そのベースとなる画面上の各々のプログラム部品のコードを記述しなければならない。
【0005】
一般的に、アプリケーションプログラムは、多くのビジュアルユーザインタフェースを持つことが多く、また、そのための多くのユーザインタフェース画面を有している。このため、プログラムを開発する場合には、多数の画面を作成することが必要とされる。多数の画面を作成するために、プログラマは、各画面の作成のために同じ作成工程を繰り返さなければならない。つまり、最初に画面を作成し、次にその画面に結合されるコードを組み立てて構成することを繰り返さなければならない。この作業工程は煩雑であり、しかも、プログラマが数枚の画面を作成した後、作成意欲を容易に失うようになる。
【0006】
また、このようにして作成した多くの画面の各画面の間の関係は、明示的にプログラムコードによって記述しなければならない。例えば、画面1のボタンBがマウスによってクリックされたときに、画面2が生成され、また、画面2のボタンDがマウスによってクリックされたときに、画面3が生成されるような簡単なビジュアルプログラムにおいて、もし、プログラマが、これら2つの画面の間の関係を変更しようとする場合、対応のコードを変更しなければならず、これは容易に行うことはできない。
【0007】
【発明が解決しようとする課題】
このように、複数の画面を有するビジュアルプログラムにおける各画面同士の関連性は、プログラムの作成時には見えにくく、多くの画面を持つビジュアルプログラムの作成においては、別に、各々の画面の間の関係を処理の流れとして描くことが所望されるが、プログラマはプログラムの仕様書により、その流れを把握しなければならなかった。
【0008】
また、ある画面を他の画面から出力させるといったプログラムコードを書く作業は、1つ1つが手作業であり、画面識別子などを間違えてしまうと、他の画面を出力させてしまうことがあるという問題がある。更に、作成されたビジュアルプログラムを検査する際には、そのプログラムの仕様書と照らし合わせて検査を行うが、そのような仕様書さえないまま、各コードを目視により検査を行っていたという問題があった。
【0009】
このように、従来においては、ビジュアルプログラムを作成する場合に、各画面同士の関連が把握しにくいという問題点があり、また、画面の関連に関する仕様書を作成しても、その仕様書からプログラムコードにする作業は、手作業の作業であり、間違いを犯しやすいという問題点があった。
【0010】
また、更に、作成されたビジュアルプログラムを検査する場合においても、各画面の推移を手作業により画面フローのない仕様書と比較するか、その仕様書さえない状態で実際のプログラムをテストしていたので、間違いを犯しやすいという問題があった。
【0011】
したがって、本発明の第1の目的は、画面フローを用いて、ビジュアルプログラムを設計し、作成し、更には検査することが容易に行える画面フローによるビジュアルプログラミング装置を提供することにある。
【0012】
また、本発明の第2の目的は、ビジュアルプログラムを作成する場合に、設計で用いる画面フローを、プログラムの作成や検査に用いることができ、プログラムコード作成時の間違いを減らし、また、その一部を自動化するツールとなるプログラミング装置を提供することにある。
【0013】
【課題を解決するための手段】
上記のような目的を達成するため、本発明によるビジュアルプログラミング装置は、基本的な構成として、概略的には、ビジュアルプログラムを作成するビジュアルプログラミング装置であって、プログラムで使用する複数の画面のデータを格納する画面格納手段(4)と、プログラムで使用する複数の画面のデータを生成して、前記画面格納手段に格納する画面生成手段(1)と、前記画面格納手段に格納した複数の画面のデータから画面を縮小して編集画面上に表示し、編集画面上で複数の縮小した画面の間の関連を指示して、処理の流れを示す画面フローを作成する画面フロー作成手段(2)と、前記画面フロー作成手段により作成された前記画面フローから、その関連づけデータを抽出する画面フロー情報抽出手段(3)と、前記画面フロー情報抽出手段により抽出された関連づけデータと前記画面のデータからソースコードを生成するコード生成手段(5)とを備える。
【0015】
また、本発明によるビジュアルプログラミング装置において、前記画面フロー作成手段は、更に、アプリケーションプログラムで使用する画面の縮小された画面を登録し、画面の中のボタン等の各プログラム部品を起点とする画面間の処理の流れ等の関連を登録する画面フロー管理テーブルを備え、前記画面フロー管理テーブルにおいて複数の画面の間を関連づけることを特徴とする。
【0016】
このような様々な特徴を有する本発明によるビジュアルプログラミング装置においては、ビジュアルプログラムを作成するために、まず、ビジュアルプログラムにおいて使用する複数の画面を作成し、その画面を縮小して編集画面上に表示し、その縮小した画面の間の関連を指示して、処理の流れを示す画面フローを作成する。その際には、編集画面上において、作成した複数の画面を縮小してノード要素として配置し、その上にボタン等のプログラム部品のノード要素を配置し、さらに、縮小した画面のノード要素の間には、プログラム処理に関するノード要素として処理制御ノードを配置して、画面フローを作成する。また、その場合において、編集画面上に配置するノード要素は、少なくとも開始ノードおよび終了ノードを含みプログラム処理の流れを示すようにして、画面フローを作成する。そして、編集画面上に表示した縮小した画面のノード要素および配置した複数のノード要素の間のそれぞれの関連を、開始ノードから終了ノードに至る処理フローとして指示して、その関連により編集画面上で縮小した画面のノード要素を含むノード要素の間の処理の流れの方向を示す矢印により表示した処理の流れを示す画面フローを作成する。
【0017】
画面フローが作成されると、その画面フローを用いて、それぞれの画面の間の関連による処理のプログラムコードを作成して、プログラムの全体を設計し、ビジュアルプログラムを作成することができる。また、作成したビジュアルプログラムを検査する際にも、その画面フローを用いて、順番に処理の流れをノード要素ごとに追っていくことができる。これにより、ビジュアルプログラムの設計、作成、および検査を、画面フローを用いて、一貫して行うことができ、能率よくプログラム開発を行うことができる。また、ここでの画面フローから、プログラム部品の一部のプログラムコードについては、自動的にそのコードを作成するように構成することもできる。
【0018】
【発明の実施の形態】
以下、本発明を実施する場合の形態について、具体的に図面を参照して説明する。図1は、本発明の実施例のビジュアルプログラミング装置の構成の要部を示す図である。図1において、1はプログラム作成ツール、2は画面フロー作成エディタ、3は画面フロー情報抽出処理部、4はビジュアルプログラムで使用する画面などを格納するユーザプログラム領域、5はビジュアルプログラムのソースコード生成のためのソースコード生成部、6はシステム制御のためのオペレーティングシステム等のシステム制御部、7はビジュアルプログラムの実行および停止を制御するプログラム実行制御部、10は計算機システム装置、11はディスプレイ装置、12はハードディスク装置などの外部記憶装置、13はキーボード装置などの入力装置である。20は画面フローを格納する画面フロー管理テーブルであり、図2において詳述するデータ構造を有するテーブルである。
【0019】
本発明によるビジュアルプログラミング装置は、ハードウェア構成として、計算機システム装置10に、ディスプレイ装置11,外部記憶装置12,および入力装置13が接続されたものが利用され、ソフトウェア構成として、プログラム作成ツール1,プログラム実行制御部7,およびオペレーティングシステム等のシステム制御部6が備えられる。
【0020】
プログラム作成ツール1には、少なくとも、画面フロー作成エディタ2、画面フロー情報抽出処理部3、画面フロー管理テーブル20が備えられ、その他に、図示していないが、ビジュアルプログラムで使用する画面などを作成するためのテキストエディタ、画像エディタ、図面エディタなどの画面作成ツールが備えられる。これらのソフトウェア構成のため、外部記憶装置12の記憶領域が割り当てられ、ソフトウェアがインストールされている。ビジュアルプログラムを作成する操作時には、計算機システム装置10の中に組み込まれたメモリ装置に、動作に必要なソフトウェア要素が読み込まれ、計算機システム装置10の中の制御処理装置(CPU)が、オペレーティングシステム等のシステム制御部6の制御にしたがって、それぞれのソフトウェア要素のプログラムおよびデータ内容にしたがって、データ処理を行う。また、オペレーティングシステム等のシステム制御部6は、複数の編集ウィンドウ画面を開いて、オペレータの入力操作を行いやすくするグラフィカルユーザインタフェースの動作環境を提供する。
【0021】
このような構成のビジュアルプログラミング装置において、ビジュアルプログラムを作成する場合、まず、ビジュアルプログラムで使用する複数の画面のデータを格納しておくために、ユーザプログラム領域4を確保する。そして、プログラム作成ツール1を起動し、その中のエディタ等の画面作成ツールを利用して、ビジュアルプログラムで使用する複数の画面のデータを生成し、ユーザプログラム領域4に、作成したいプログラムで使用する複数の画面のデータを格納する。
【0022】
プログラム作成ツール1の中に設けられる画面フロー作成エディタ2は、先に作成してユーザプログラム領域4に格納した複数の画面のデータから画面を縮小して編集ウィンドウ画面上に表示し、編集ウィンドウ画面上に表示された複数の縮小した画面の間の関連を、更に、処理制御のためのノード要素を加えて表示し、ビジュアルプログラムの処理の流れを示す画面フローを作成する。
【0023】
画面フロー情報抽出処理部3は、画面フロー作成エディタ2により作成された画面フローから、その関連データを抽出して、画面フロー管理テーブル20のデータとして格納する。
【0024】
そして、ソースコード生成部5が、ここでの画面フロー情報抽出処理部3により抽出された関連づけデータと、プログラムで使用する複数の画面のデータから、プログラムのソースコードをユーザプログラム領域4に生成して、ビジュアルプログラムを完成させる。また、ソースコード生成部5は、コンパイラ等を含めて構成すると、直接に実行プログラム等を生成して出力するようにできる。
【0025】
プログラム実行制御部7は、ソースコード生成部5で作成されたソースコードから作成された実行プログラム等を逐次読み出して実行する。その場合に、プログラム処理フローの確認のため、作成されたプログラムに対応する画面フローをプログラムデバッグ用のウィンドウ画面を開いて、そのウィンドウ画面に表示し、当該実行プログラムを実行し、処理の実行過程をウィンドウ画面上の画面フローの該当位置に表示する。
【0026】
具体例で説明すると、作成するビジュアルプログラムのユーザの要求仕様が決まった段階で、その仕様に従った形で、プログラムで必要とする全ての画面を設計して作成する。また、一部の未確定部分が残っていても、ビジュアルプログラムで使用するベースとなる画面のフレームは設計して作成しておく。画面設計時の一つ一つの画面の情報は、画面フロー管理テーブル20(図2)により管理し、その画面の情報の本体部分は、別に設けた画面情報格納領域に格納する。
【0027】
図2は、画面フロー管理テーブルのデータ構造を説明する図である。図2に示すように、画面フロー管理テーブル20は、所属画面ノード識別子フィールド21、フロー開始ノード識別子フィールド22、各画面対応コード用のファイル名フィールド23、各プログラム部品対応の関数名フィールド24、および接続ノード識別子フィールド25から構成されている。
【0028】
画面フロー管理テーブル20において、画面フローのデータ管理のため、画面フロー上の各ノードに割り当てられる識別子等について説明すると、画面フロー上の画面ノード、プログラム部品、更にはプログラム処理に関するノード(開始ノード、終了ノード、出口ノード、処理ノード、分岐ノード等)には、一意の識別子がつけられる。これをノード識別子という。各画面ノード中のプログラム部品は、その画面ノードに所属し、また、プログラム処理に関する各ノードは、開始ノードを除いて、そのプログラム処理ノードに一番近い、その処理の起点となる側の画面ノードに属するものとする。これらの所属関係は、所属画面ノード識別子フィールド21に、その対応する画面ノードのノード識別子を格納して指示する。ただし、開始ノードだけは、所属する画面ノードを持たないため、“0”など、ノード識別子として使用されない識別子が格納される。
【0029】
画面フローの各要素(ノード要素)は、画面フロー上の2つのリンクを張られたノードごとに画面フロー管理テーブル20の1レコード(図2の画面フロー管理テーブルの1行)として登録される。この2つのリンクを張られたノードの起点側のノードは、フロー開始ノードと呼び、フロー開始ノードフィールド22に格納される。終点側は、接続ノードと呼び、接続ノード識別子フィールド25に格納される。ファイル名フィールド23には、各画面に対応するコードを記述しているファイル名が格納される。関数名フィールド24には、各画面ノード中のプログラム部品のマウスのクリック操作等の各イベントに対応する関数名が格納される。
【0030】
画面フロー作成エディタ2により、画面ノードの間を関連付けて、ビジュアルプログラムの画面フローが作成されると、その画面フロー上の各ノード間の関係情報が抽出されて、この画面フロー管理テーブル20に格納される。この画面フローに対応する画面フロー管理テーブル20の情報に基づいて、プログラムコードの一部の自動生成、及びプログラムの画面の推移を検査する。
【0031】
図3は、本実施例のビジュアルプログラミング装置によるビジュアルプログラム作成の全体の処理を説明するフローチャートである。図3を参照して説明する。処理を開始すると、まず、ステップ31において、ビジュアルプログラムで用いられる全ての画面、または、一部の未作成部分があってもビジュアルプログラムで使用するベースとなる画面のフレーム(画面のデータ)を、プログラム作成ツールの画面作成エディタを用いて作成する。
【0032】
次に、ステップ32において、作成された複数の画面の間の関連付けを、各画面の間の処理をも含めて指示し、プログラム作成ツールの中の画面フロー作成エディタを用いて、画面フローを作成する。次にステップ33において、作成した画面フローに対応する画面フロー管理テーブルを用いて、画面表示、画面フロー上の各処理制御を示すノード要素に関するソースコードの自動作成を行う。
【0033】
更に続いて、ステップ34において各画面に対応づけられたプログラムファイルに、ステップ33で自動生成された以外のプログラムコードを手作業で記述する。そして、次のステップ35において、これまでに作成したプログラムファイルと、画面フローと、対応する画面フロー管理テーブルと、ビジュアルプログラムで用いる各画面の内容により、コンパイラ、リンカ等を用いて、最終的な実行可能なビジュアルプログラムを完成させる。
【0034】
次に、具体例により、本発明のビジュアルプログラミング装置によるビジュアルプログラムの作成について、具体的な操作例と共に説明する。図4は、プログラム作成ツールの中の画面フロー作成エディタのウィンドウ画面の一例を示す図である。図4において、41はプログラム作成ツールにおける画面フロー作成エディタの編集ウィンドウ画面、42はユーザプログラムで使用するメニューを示すノード要素(メニューノード)、43a〜43fはユーザプログラムで使用する画面を縮小表示した画面要素(画面ノード)、44はビジュアルプログラムの画面中で使用するボタンを示すノード要素(ボタンノード)、45はビジュアルプログラムの画面中で使用する情報表示フィールド、46はプログラム開始を示すノード要素(開始ノード)、47はプログラムの終了の処理制御を示すノード要素(出口ノード)、48はその画面を消滅させる処理制御を示すノード要素(終了ノード)、49は画面出力以外の処理制御を示すノード要素(処理ノード、分岐ノードなど)である。
【0035】
前述したように、ここで作成するビジュアルプログラムのプログラム要求仕様が決まった段階で、プログラム作成ツール1の中の画面フロー作成エディタ2を用いて、そのビジュアルプログラムに必要な全ての画面を、または一部の未作成部分があってもビジュアルプログラムで使用するベースとなる画面のフレームを作成する(ステップ31)。
【0036】
次に、画面フロー作成エディタ2を起動すると、編集ウィンドウ画面41が開かれて、編集ウィンドウ画面41の中に、先に作成されたビジュアルプログラムで使用する画面が縮小され、画面ノード43a〜43fとして表示される。この画面が縮小されて表示される画面ノード43a〜43fの中には、更に、ビジュアルプログラムの画面中で使用するボタンを示すボタンノード44や、ビジュアルプログラムで使用するメニューを示すメニューノード42や、ビジュアルプログラムの画面中で使用する情報表示フィールド45が、そのまま、先に作成した画面の中の位置関係等を保ったまま表示される。
【0037】
次にプログラマは、画面フロー作成エディタ2を用いて、編集ウィンドウ画面41の中に表示された複数の画面ノード43a〜43fの間の関係を付与し、画面フローを作成する。この場合、画面フロー作成エディタ2の編集ツールメニューの中から、まず、最初に表示する画面の画面ノード43aに対し、編集ウィンドウ画面41の中の適当な位置にプログラム処理の開始を示すノード要素(開始ノード)46を貼り付けて、開始画面にリンクを張る。これにより、プログラムの開始時に表示される第1番目の画面が画面フロー上で決定される。
【0038】
次に、第1番目の画面ノード43aの中のプログラム部品のメニューノード42に対し、マウスによるボタンのクリック等のイベント発生により行われる処理の処理ノード49を画面フロー上に貼り付け、メニューノード42からこの処理ノード49へとリンクを張る。そして、その処理ノードから、処理後に表示される画面の画面ノード43dに対しリンクを張る。また、画面ノード43a中のボタンノード(ボタンA、ボタンB)44から、そのボタンのクリック等のイベントによって表示される次の画面の画面ノード43b、43cに対してリンクを張る。これらのリンクにより、画面ノード43aと画面ノード43b,43cの関係が付与される。同様にして、必要に応じて画面ノードや処理ノード等の間のリンクを張る。そして、画面フロー上にプログラムの終了の処理制御を示す出口ノード47や、画面を消滅させる処理制御を示す終了ノード48を貼り付け、適当な画面のプログラム部品とのリンクを張って、画面フローを作成する(ステップ32)。
【0039】
ここでの具体的な操作例としては、編集ウィンドウ画面41において、画面フロー作成エディタ2の編集ツールメニューの中から、ボタンノードおよびメニューノードなどを含む画面ノード、開始ノード、終了ノード、画面表示、画面フロー上の各処理制御を示すノード要素に関する処理ノード、分岐ノードなどを貼り付け、その間にリンクを張る操作を行うだけであり、従来のグラフィカルユーザインタフェースによる画面作成の操作と同様である。各ノードの間は、方向を示す線(矢印)により、そのリンクの関係が示される。
【0040】
このようにして作成された画面フローによって、先に作成されたビジュアルプログラムで用いられる複数の画面と、それらの画面に設けられるプログラム部品との間の関連付けが行われているので、これらの関連付けの情報を抽出し、画面フロー管理テーブル20(図2)を用いて管理する。
【0041】
例えば、図4に示すように画面フローが作成された場合には、図2に示すように、画面フロー管理テーブル20の中に、関連付け情報が格納される。前述したように、画面フロー上の画面ノード、プログラム部品、更にはプログラム処理に関するノード(開始ノード、終了ノード、出口ノード、処理ノード、分岐ノード等)には、一意の識別子であるノード識別子がつけられており、図2に示す画面フロー管理テーブル20においては、これらのノード識別子を格納し、これにより、各々のノードを識別して管理する。
【0042】
また、各画面ノード中のプログラム部品は、その画面ノードに属するものとし、また、プログラム処理に関する各ノードは、開始ノードを除き、当該プログラム処理のノードに一番近くて、そのプログラム処理の起点となる側の画面ノードに属するものとして、所属する画面ノードのノード識別子が、所属画面ノード識別子フィールド21に格納されるので、図4において、処理ノード49は、画面ノード43aに属するものとされる。これは、図2に示す画面フロー管理テーブルにおいては、第5行目のレコードとして登録されている。
【0043】
開始ノード46は、図2に示す画面フロー管理テーブルにおいては、第1行目のレコードとして登録されている。この開始ノード46は、所属する画面ノードを持たないため、所属画面ノード識別子フィールド21には、ノード識別子として使用されない“0”が格納される。
【0044】
図2に示す画面フロー管理テーブルによる説明例では、図4の中における図面番号をノード識別子として用いて説明している。ただし、ボタンに関しては、その区別を付けるため、ボタンの名称をノード識別子として用いる。ノード識別子46の開始ノードは、ノード識別子43aの画面にリンクが張られており、この画面がプログラムの開始画面であることが分かる。開始ノード46はそれが属する画面ノードがないため、所属画面ノード識別子フィールド21には“0”が格納される。
【0045】
また、ノード識別子43a(所属画面ノード識別子フィールド21)の画面ノード中のボタンA(フロー開始ノード識別子フィールド22)がマウスによりクリックされた時に処理されるコードは、ファイル名“start.cpp”というファイル(各画面対応コード用のファイル名フィールド23)のBUTTON_A_CLICKという関数(各プログラム部品対応の関数名フィールド24)に格納されており、ボタンAのマウスクリックのイベントによって出力される画面は、ノード識別子43bの画面となることが、画面フロー管理テーブル20に登録される。
【0046】
このように、画面フローは画面フロー上の2つのリンクを張られたノードごとに画面フロー管理テーブルの1レコード(図2のテーブルの1行)として登録され、この2つのリンクを張られたノードの起点側のノードのフロー開始ノードは、フロー開始ノードフィールド22に格納される。また、終点側のノードの接続ノードは、接続ノード識別子フィールド25に格納される。
【0047】
同様にして、ノード識別子43aの画面中のボタンBがマウスによるクリックされた時に処理されるコードは、ファイル名“start.cpp”というファイルのBUTTON_B_CLICKという関数に格納されており、これによって出力されるボタンは、ノード識別子43cの画面であることが画面フロー管理テーブルに登録される。
【0048】
ノード識別子43aの画面中のメニューC(ノード識別子C)に関するコードは、ファイル名“start.cpp”のMENU_C_CLICKという関数に格納されており、このメニューCがクリックされたときにはノード識別子49の処理ノードPROCESS1が実行されることになる。したがって、フロー開始ノードはメニューCであり、この識別子Cがフロー開始ノードフィールド22に格納され、接続ノードはノード識別子49のPROCESS1であるため、接続ノード識別子フィールド25には、“49”が格納される。さらに、このPROCESS1は、その後、ノード識別子43dの画面ノードに接続される。つまり、PROCESS1の処理実行後にノード識別子43dの画面を表示することを意味する。したがって、画面フロー管理テーブル20の次のレコードのフロー開始ノード識別子は“49”であり、コード用ファイル名は“start.cpp”であり、PROCESS1と同様に、対応する関数名はMENU_C_CLICKであることが登録される。
【0049】
次の段階で、プログラム作成ツールを用いて、自動的に、画面を出力するコード及び、画面フロー上の各終了ノード、出口ノード、処理ノード、分岐ノード等に関するコードの作成を行う。プログラム作成ツールは、自動的にコードを出力する旨の命令を受け取ると、画面フロー管理テーブル20の接続ノードフィールド25に画面ノード、終了ノード、出口ノード、処理ノード、分岐ノード等があれば、該当するコード用ファイルの然るべき関数にその処理に関するコードを自動的に挿入する(ステップ33)。その後、自動的に挿入されたコード以外のコードを従来と同様に手作業により入力して、プログラムコードを完成させる(ステップ34)。最後にこれらのコードをコンパイラ、リンカー等を通して、プログラムを完成させることになる(ステップ35)。
【0050】
ここで作成したビジュアルプログラムの画面フローを用いて、作成したビジュアルプログラムを検査する場合は、後述するように、プログラム作成ツールとデバッガを同時に起動させ、検査するビジュアルプログラムに対応する画面フローを表示し、デバッガの一部であるプログラム実行制御部7を起動して、作成したビジュアルプログラムをステップ実行して処理を進め、画面フローで対応する処理ステップのノード要素の位置を表示し、仕様どおりに処理が進み、画面が推移するか否かを目視により確認する。
【0051】
以上、説明したように、本実施例の画面フローによるビジュアルプログラミング装置によれば、ビジュアルプログラムの設計画面をプログラムの画面に移行する手間が省け、同時に移行の際に発生するおそれのある間違いをなくすことができる。また、設計時に画面フローを用いることにより、プログラム作成の一部を自動化することができ、更には、プログラムの検査に画面フローを用いることにより、検査時の間違いを減らすことができる。
【0052】
ここでは、プログラマは、最初に、必要とされるビジュアルプログラムで使用する全ての画面を作成する。例えば、図5に示すように、画面51、画面52、画面53の3枚の画面を作成する。このような画面が作成された結果、画面51には、プログラム部品として、Aボタン51aと、Bボタン51bと、情報表示フィールド51cが貼り付けられる。画面52には、プログラム部品として、Cボタン52aと、Dボタン52bと、Eボタン52cと、3個のラジオボタン(Radio 1, Radio 2, Radio 3)が貼り付けられる。また、画面53は、画面フレームだけが作成される。その中に貼り付けるプログラム部品はまだ作成されていない。
【0053】
次に、画面フロー作成エディタを起動して、このように作成された3つの画面を、編集ウィンドウ画面に表示すると、編集ウィンドウ画面上にはそれぞれの画面が縮小されて、それぞれにプログラム部品のボタンに対応するボタンノードを含む画面ノード(画面51、画面52、画面53)として表示される。この画面ノードの間の関係を、他の処理制御を示すノード要素(開始ノード、処理ノード、分岐ノード、終了ノード、出口ノードなど)と共に、必要に応じて貼り付けて、これらのノード要素の間の関係をも含めて、画面ノードに含まれたボタンノードと画面ノードの間を結ぶ指示(矢印の線で結ぶ操作)を行い、図5に示すような画面フローを作成する。
【0054】
図5に示す画面フロー上には、開始ノード50が設けられ、画面ノード51にリンクが張られており、この画面ノードがプログラム開始時に表示されることが指示される。また、画面ノード51中のAボタン51aのボタンノードからは、出口ノード54にリンクが張られ、Aボタン51aのクリックにより、ここでプログラム全体を終了することが指示される。画面ノード51のBボタン51bのボタンノードからは、画面ノード52にリンクが張られている。これにより、Bボタン51bのクリックにより、画面ノード52を表示することが指示される。これらの各ノード間の関係は、前述したように、画面フロー管理テーブル20に登録される。すなわち、画面フローと画面フロー管理テーブル20は、1対1に対応する。
【0055】
このように、画面フローにおいて、画面ノードに含まれたプログラム部品と他の画面ノード、及び他の処理制御を示すノード要素等の間にリンクを張ることによって、各画面に対するプログラムコードの内容を指示することができる。その結果、画面フロー管理テーブル20に登録される画面フローの情報によって、各画面に対して作成するプログラムコードが自動生成できる。図6A、図6Bは、それぞれ画面ノード51、52に対し、プログラムコードを自動生成した内容を示している。ここで用いられているプログラム言語は、仮想のものであるが、このプログラム言語の関数表記の方法、if文の表記の方法は、C言語と同様である。例えば、Aボタン51aに対応するプログラムコード61の中の「Exit();」や、Cボタンに対応するプログラムコード63の中の「Endialog();」はそれぞれプログラム終了の関数、画面消滅の関数を示している。このように、作成するビジュアルプログラムで用いるプログラム言語は、予めプログラマが指定し、プログラム作成ツールが認識できるようにする。このようなプログラムコードの自動生成は、後述するように、プログラム作成ツールが、図9に示すようなプログラミング言語テーブル90を用いて行う。
【0056】
次に、プログラミング言語テーブルについて説明する。図9は、プログラミング言語テーブルの一例を示す図である。図9に示すように、プログラミング言語テーブル90は、処理制御ノード種別フィールド91のデータに対応して、その挿入コードフィールド92のデータとして、特定のプログラミング言語のプログラムコードが登録されている。このプログラミング言語テーブルは、プログラマが使用する1つのプログラム言語に対応して設けられている。図9のプログラミング言語テーブルの例は、図6A,図6Bで用いられたプログラム言語に対応している。このテーブルの中で、処理制御ノード種別フィールド91には、画面フロー上のプログラム処理に関する処理制御ノードの種別が登録され、これに対応して、挿入コードフィールド92には、各プログラム処理に関する処理制御ノードに対応するプログラムコードが登録されている。
【0057】
ここで、図6Aに示すように、画面ノード51から、その中のプログラム部品のプログラムコード61,62が、自動生成される仕組みについて詳細に説明する。図5および図9を参照する。図5に示すように、画面フロー(図5)より、画面ノード51中のAボタン51aは、このAボタンに対するイベントによりプログラムを終了する。このような画面ノード51のAボタンに対するイベント、および、画面ノード51または画面ノード52の中のその他のボタンに対するイベントとしては、例えば、マウスの「クリック」、「ダブルクリック」、または「右ボタンクリック」など様々なものがあるが、ここでは、画面フロー作成時にプログラマが「クリック」であることを指定したことを仮定している。
【0058】
このようなビジュアルプログラムの画面上のプログラム部品の特定のイベントにより呼び出される関数を、特定のファイルに作成する技術は、既存のビジュアルプログラミング技術と同様である。
【0060】
また、画面ノード51中のAボタン51aがクリックされた時に呼び出される関数内の命令文としては、プログラムコード61の中に示すように、“Exit();”が挿入されている。これは、図9に示すプログラミング言語テーブル90によって、出口ノードに対しては、その挿入コードとして、“Exit();”が挿入されるように、予め設定されているからである。
【0061】
同様に、図6Aに示す画面ノード51の中のBボタン51bについては、図5の画面フローを参照すると、Bボタン51bからは画面ノード52へリンクが張られているので、画面ノード52を出力するコードを挿入することになる。この場合には、図9に示すプログラミング言語テーブル90によって、画面出力ノードのための挿入コードは、“Display( argument )”文となっている。この“argument”は、どの画面を出力するかを指定する引数であり、この引数で指定する画面ノード識別子は、既存のビジュアルプログラミング技術により各画面を作成した時に割り当てられる識別子である。これは、プログラム作成ツールにおいて、画面フロー作成エディタを起動し、各画面を縮小して画面フローとして表示した時に認識される。このようにして、図6Aに示されるコードが自動生成される。
【0062】
同様にして、図6Bに示すように、画面ノード52から、その中のプログラム部品に対応してプログラムコード63,64,65が自動生成される仕組みについて詳細に説明する。同じく、図5および図9を参照して説明すると、対応する画面フロー(図5)により、画面ノード52の中のCボタン52aは、マウスでクリックされることにより、この画面自身を消滅する終了ノードにリンクされているので、Cボタン52aがクリックされた時に呼び出される関数内の命令文は、プログラムコード63の中に示すように、“Endialog();”が挿入される。これは、プログラム言語テーブル90によって、終了ノードに対する挿入コードは“Endialog();”として特定されるからである。
【0063】
また、画面ノード52中のDボタン52bは、対応する画面フロー(図5)により、画面ノード53とリンクが張られている。これは、図6AのBボタン51bと同様であり、したがって、図6Bのプログラムコード64には、“Display(argument)”文が挿入される。画面ノード52の中のEボタン52cは、対応する画面フロー(図5)により、分岐ノード56にリンクが張られている。プログラミング言語テーブル90により、分岐ノードに対する挿入コードは、“if ( argument ) { //Caption } else {}”となっており、ここでは、プログラムコード65として、“if ( 1 ) { //Branch1 Display( Screen3 ) ; } else { }”が挿入される。
【0064】
この時の分岐の条件は、ここでは“1”が指定されているが、プログラマが後で分岐の条件を手作業で入力する。通常、自動コード生成時にはデフォルトの値を決めておき、プログラマが何もしなくても処理がどちらかに流れるようにしておく。図6Bに示すプログラムコード65に示される例では、“1”という値が設定されている。こうすることによって、プログラマが何も手を加えなくても自動的に生成されたコードだけでコンパイル等を行うことが可能となる。
【0065】
更に、“//Caption”は、画面フローにおいて、その中の分岐ノード56に書かれた文字がコメントとして自動的に挿入されることを示す。また、分岐ノードによる処理では、条件によって処理の内容が異なる。つまり、分岐の結果が“Yes”の時には画面ノード53を出力し、“No”の時には、処理ノード57の処理の後、終了ノード58を実行する。ここでは、画面ノード53の出力に関するコードは、Dボタン52bに関するプログラムコード64と同様である。このコードは、上記の分岐に関するコードの分岐条件が“Yes”の場合のコードとして、プログラムコード65の中に挿入される。同様に、分岐条件が“No”の場合のコードは、処理ノード57、そして引き続いて画面の消滅処理の終了ノード58に関するコードを挿入する。これらに関するコードは、プログラミング言語テーブル90により、それぞれ、“//Caption”,“Endialog();”である。
【0066】
前者の“//”は、コメントを意味する。ここには、ユーザの任意の処理を記入してもらうことになる。そして、“Caption”には、図5の画面フロー上の処理ノード57に書かれた文字(キャプション)が自動的に挿入される。また、終了ノード58に関しては、Cボタン52aについてのプログラムコード63と同様のコードが挿入される。分岐のプログラムコードとしては、これ以外にも多様なものがある。例えば、C言語を使って表記すれば、“if () {} else”文、“if () {} else if () else {}”文、“switch”文等があり、目的とするコードにより、分岐ノードの種類を増やしていけば、より使いやすいものとなる。
【0067】
上記のように、画面フローを用いることにより、各画面に対するプログラムコードはその一部を自動生成することができる。これにより、ビジュアルプログラムの作成作業を効率よく進められるようになる。また、画面フローの一部を再利用することも可能になる。図7は、画面フローの編集操作により、新たに作成するビジュアルプログラムに既存のビジュアルプログラムの画面フローの一部を再利用した例である。
【0068】
この画面フローの再利用を、図7を用いて説明する。図7の編集画面70に示すように、再利用したい部分71を有する既存の画面フローを、画面フロー作成エディタを起動して表示する。その画面フローより、再利用する部分を指定し、コピー操作を行う。次に新たに作成する画面フローを、画面フロー作成エディタを起動して、編集画面72に表示し、必要な部分に貼り付ける操作を行う。これらのコピー操作、貼り付け操作は従来の画面編集を行う操作と同様である。
【0069】
そして、内部のデータ構造は、編集画面70に対応する画面フローに関する画面フロー管理テーブルから、編集画面72に対応する画面フローに関する画面フロー管理テーブル内に、再利用する部分71の画面フローの対応部分がコピーされ、編集画面72において作成される新たな画面フローのために必要な画面フロー管理テーブル中の識別子、ファイル名等が自動的に変更される。
【0070】
この時の画面フロー管理テーブルのデータの変化を、図10および図11に示している。ここで、図10および図11用いて図7におけるコピー操作時の画面フロー管理テーブルの変化を説明する。図10図は、図7に示す編集画面70の画面フローに対応する画面フロー管理テーブルの一部を示す図であり、また、図11は図7に示す編集画面72の画面フローに対応する画面フロー管理テーブルの一部を示す図である。
【0071】
編集画面70において、この中の画面フロー71に示される画面フロー管理テーブルの情報は、図10に示す画面フロー管理テーブル120のノード要素レコード群131に示される部分に相当する。このノード要素レコード群131に示される部分が、画面フローのコピー操作により内部データとしてコピーされる。次に、図7の編集画面72において、画面フロー71の部分の貼り付け操作を行うと、ノード要素レコード群131に示される部分が、編集画面72に対応する画面フロー管理テーブルにコピーされ、更に、識別子、ファイル名等が変更されて、図11に示すように、そのノード要素レコード群132に示される部分として追加される。
【0072】
識別子、ファイル名の変更が必要なのは、例えば、図7の編集画面72に示す画面フローの画面ノード721より以前に使用されている識別子やファイル名がコピー前のものと重なってしまう場合が考えられるためである。しかし、コピー後の画面フロー管理テーブルに追加された情報は、コピー前の各プログラム部品、各ノード等の相対関係は保っている。最後に図7の編集画面72において画面ノード721中のYボタン724から画面ノード726に対して、リンク734を張り、このリンク734に関する情報が、自動的にリンクレコード133として画面フロー管理テーブル140に追加される。
【0073】
このように、画面フローの一部を再利用することにより、各画面中のプログラム部品を再利用するだけでなく、画面フローの中の1つのまとまりのある処理単位をも再利用することができる。さらに、画面フロー中の処理制御に関するノードに対応して書かれたコードもコピー前の画面フローから検索してコピーすることができる。
【0074】
この画面フローの再利用方法をさらに拡張し、再利用したい画面フローの一部をマクロとして登録しておくこともできる。こうすることによって、頻繁に利用する画面フローがある場合、再利用元の画面フローをいちいち表示しなくても、登録してあるマクロから画面フローの一部を再利用することができる。
【0075】
また、本発明の画面フローを用いれば、これにより作成されたビジュアルプログラムに対する、テストケースを自動生成したり、デバッグを容易にすることも出来る。図8は、画面フローよりテストケースを自動生成する例、及びデバッグを容易にする例を説明する図である。図8の▲1▼,▲2▼,▲3▼はそれぞれ、自動生成されたテストケース1,2,3に対応している。これらのテストケースを以下に説明する。
テストケース1は、画面ノード101中のAボタン102をクリックし、ビジュアルプログラムを終了するケースである。
テストケース2は、画面ノード101のBボタン104をクリックし、分岐ノード105において、“Yes”の結果を得、画面ノード106を出力し、画面ノード106中のCボタン107をクリックし、画面ノード108を出力、画面ノード108において、Eボタン109をクリックし画面を消滅させるケースである。
テストケース3は、画面ノード101においてBボタン104をクリック、分岐ノード105において、“No”の結果を得、処理ノード111を実行し、画面ノード108を出力、その後画面ノード108のFボタン112をクリックするケースである。
【0076】
これらのテストケースは、画面フローの最初に表示される画面ノードから開始される画面フローを画面フロー管理テーブルを用いて追って行くことにより生成される。
【0077】
さらに、これらのテストケース生成後、画面フローを用いることにより、それぞれのテストケースの経路にしたがって処理をステップ毎に実行し、ビジュアルプログラムのデバッグを行うことができる。図8に示すように、そのビジュアルプログラムに対応する画面フローを表示し、対応する処理ステップのノード等の位置を画面フロー上に表示して、仕様通りに画面フローが推移するか否かを確認する。
【0078】
図8は、処理ノード111でプログラムが停止している様子を示している。この時、この処理ノード111の表示が変化しているため、プログラムの処理がここまで進んだことをビジュアルに把握することができる。プログラムをステップ毎に実行し、それがソースコードのどこに対応するかを表示する技術は既存のビジュアルプログラミング技術により確立されており、そのソースコードが画面フローのどの位置に対応するかを表示するのは、画面フローがプログラムのソースコードを自動生成できることから明らかである。このプログラムのステップ毎の実行に関しては、デバッガに含まれたプログラム実行制御部7を起動し、プログラムの実行ファイルから命令語をステップ毎に取り出して実行させたり停止させたりすることによって可能である。また、停止した処理ノードを指定することによって、その処理ノードに対応するソースコードを見ることもでき、デバッグ作業を能率よく進めることができる。
【0079】
また、画面フローを用いれば、同じオペレーティングシステム上で、同じビジュアルプログラムを、異なるプログラミング言語を用いて作成することが容易になる。例えば、“Windows NT”オペレーティングシステム上で画面フローを作成し、Visual C++でプログラムを作成し、後にVisual Basicを用いて同じプログラムを作成する必要がある場合には、同じ画面フローを使用することができる。これには、自動コード生成時に使用する言語の指定を変更するだけでよい。この操作により、プログラム作成ツールは、Visual Basic用のプログラミング言語テーブル(図9)を使用するため、自動生成されるコードがVisual Basicとなる。今までは、既存のビジュアルプログラムを異なる言語で作成する場合、最初からプログラムの作成のし直しなど大変な労力を要したが、画面フローを用いることによりずっと容易になる。
【0080】
このように、異なるプログラミング言語で同じプログラムを作成しなければならないケースは、例えば、プログラミング言語がバージョンアップされた場合や、オペレーティングシステムがバージョンアップされた場合、また、既存のプログラミング言語に関する技術者が不足してきたときなど、将来的に既存のプログラムのメンテナンスが不安定になるときには重要な技術となる。最近のPCのプログラミング言語や、オペレーティングシステムのバージョンアップは頻繁であり、常に新しい言語や新しいオペレーティングシステムに精通した技術者を確保することも容易ではなくなってきており、このような技術は更に重要となっていくことが考えられる。その上、既存のプログラムを作成したときに生成したテストケースもそのまま使用することとができるため、プログラム全体で考えた場合、非常に有利になる。
【0081】
更には、既存の画面フローを用いて、他のオペレーティングシステム上で動作するプログラムのソースコードを作成することができる。例えば、ここに画面フローを用いて作成した“Windows NT”オペレーティングシステム上で実行されるVisual C++ 言語のプログラムがあるとする。この画面フローを用いて、同じプログラムを“UNIX”オペレーティングシステム上で実行されるTc1/Tk言語で作成されたプログラムは、一般的に“UNIX”オペレーティングシステム上でなければ実行されないが、ソースコードだけならば作成することができる。このように、例えば、PCのような安価な開発マシンを使って、UNIXマシンのような高価なマシンのためのプログラムコード作成や、テストケース作成ができるため、非常に有利になる。
【0082】
このように画面フローを用いれば、様々なオペレーティングシステム、及びプログラミング言語に対してビジュアルプログラムを容易に作成することができる。また、同じオペレーティングシステムやプログラミング言語でも、それらの異なるバージョンのプログラムを容易に作成することができる。
【0083】
また、このような画面フローを用いたプログラムの作成方法は、HTML(Hyper Text Markup Language)のような文書記述言語を作成する場合にも適用できる。インターネット上のホームページで見られる典型的HTMLで作成された文書は、複数の画面、ボタン、テキスト等で構成されている。そのテキスト自身にも、他のプログラム部品とリンクを張られたものさえある。しかし、これもプログラム部品、画面ノード、処理制御に関するノード等の組み合わせや関連付けによって構成できることは、他のプログラム言語と変わりがない。したがって、画面フローにより自動的にソースコードを生成したり、テストケースを生成したりすることができる。
【0084】
以上に説明したように、本発明による画面フローによるビジュアルプログラミング装置を用いて、プログラムを作成することにより、次のような利点が期待できる。
(1)画面間の関係の視覚的な認識
一つのビジュアルプログラムにおいて、複数の画面を必要とする場合には、現在の技術では、それらの関係を視覚的に示すことができず、プログラムを作成することが煩雑である。画面フローによるプログラムの作成方法を用いることにより、プログラマは、複数の画面間の関係を視覚的に見ることができる。
(2)画面フローの視覚的な認識
プログラマが、画面フローを使用することにより、プログラムの全体のフローを認識することが容易になり、プログラムを理解する上での助けとなる。
(3)自動コード生成
画面フローを作成すると、そのビジュアルプログラムのフレームとなるコードを自動的に生成することができ、プログラムのフレームとなるコードに関する誤りを防ぐことができる。
(4)画面フローの一部の再利用
画面フローの一部をコピーすることにより、他の画面フロー、もしくはその画面フローの中で再利用することができ、ビジュアルプログラム作成の能率を大幅に向上できる。
(5)マクロの使用
画面フローの一部をマクロとして保存することにより、後で他の画面フローで再利用することができる。
(6)視覚的なデバッグ
デバッグをする際に、プログラム実行、停止を繰り返すことがあるが、現在プログラム中で処理が行われている箇所を画面フロー上で示すことができ、デバッグ効率を向上させることができる。
(7)テストケースの自動生成
画面フローを用いて、プログラムのテストケースを自動的に生成することができる。
(8)異なる複数のプログラミング言語でのプログラム作成
1つの画面フローより、異なる複数のプログラミング言語によるビジュアルプログラムを容易に作成することができる。これにより、プログラミング言語がバージョンアップした場合や、オペレーティングシステムがバージョンアップした場合、その他、現在使用しているプログラミング言語の技術者が不足した時に他のプログラミング言語に変更して技術者の不足していないプログラミング言語によりプログラムをメインテナンスするような場合等に、非常に容易にプログラミング言語を変更することができる。さらには、最初に作成したテストケースはそのまま使用できる。
(9)異なるオペレーティングシステム上での開発
画面フローを用いることにより、プログラムを作成するオペレーティングシステムと、プログラムを実行するオペレーティングシステムが異なっても、プログラムのフレームに関する限りコードを自動生成することができる。これにより、例えば、PCのような安価な開発マシンでUNIXマシンのような高価なマシン用のプログラム作成や、テストケース作成を行うことができる。
【図面の簡単な説明】
【図1】 本発明の実施例のビジュアルプログラミング装置の構成の要部を説明する図である。
【図2】 画面フロー管理テーブルの構造を説明する図である。
【図3】 本実施例のビジュアルプログラミング装置によるビジュアルプログラム作成の全体の処理を説明するフローチャートである。
【図4】 プログラム作成ツールの中の画面フロー作成エディタのウィンドウ画面の一例を示す図である。
【図5】 画面フローを用いるプログラム開発方法の操作例を説明する図である。
【図6】 図6Aおよび図6Bはプログラムコードの自動作成を説明する図である。
【図7】 画面フローの編集操作によりプログラムコードの編集操作を行う操作例を説明する図、
【図8】 画面フローに基づいて生成するテストケースの一例を説明する図である。
【図9】 プログラミング言語テーブルの一例を示す図である。
【図10】 図7に示す編集画面70の画面フローに対応する画面フロー管理テーブルの一部を示す図である。
【図11】 図7に示す編集画面72の画面フローに対応する画面フロー管理テーブルの一部を示す図である。
【符号の説明】
1…プログラム作成ツール、2…画面フロー作成エディタ、3…画面フロー情報抽出処理部、4…ユーザプログラム領域、5…ソースコード生成部、6…システム制御部、7…プログラム実行制御部、10…計算機システム装置、11…ディスプレイ装置、12…外部記憶装置、13…入力装置、20…画面フロー管理テーブル、

Claims (6)

  1. ビジュアルユーザインターフェイスを有するアプリケーションプログラムであるビジュアルプログラムを作成するビジュアルプログラミング装置であって、
    入力装置からの利用者の操作入力により指示されてビジュアルプログラムで用いられる全ての画面または一部未作成部分を有するビジュアルプログラムで使用するベースとなる画面のフレームを作成する画面作成手段と、
    入力装置からの利用者の操作入力により前記画面作成手段により作成された複数の画面の間の関連付けが各画面の間の処理をも含めて指示されて複数の画面の間の処理の流れを示す画面フローを作成する画面フロー作成手段と、
    前記画面フロー作成手段により作成された画面フローから関連づけデータを抽出して画面フロー管理テーブルのデータとして格納する画面フロー情報抽出手段と、
    前記画面フロー作成手段を用いて作成された画面フローに対応する画面フロー管理テーブルを用いて、画面表示、画面フロー上の各処理制御を示すノード要素に関するソースコードの自動作成を行い更に自動生成された以外のプログラムコードを入力装置からの利用者の操作入力のデータにより作成して、複数の各画面に対応づけたプログラムファイルを作成するソースコード作成手段と、
    作成された各画面に対応づけたプログラムファイルと、画面フローに対応する画面フロー管理テーブルと、ビジュアルプログラムで用いる各画面の内容のデータにより実行可能なビジュアルプログラムを作成するプログラム作成手段と
    を備えることを特徴とするビジュアルプログラミング装置。
  2. 請求項1に記載のビジュアルプログラミング装置において、更に、
    ビジュアルプログラムで使用する画面の縮小された画面を登録する画面フロー管理テーブルを備え、
    前記画面フロー管理テーブルは登録された縮小画面のそれぞれの間の関連づけを含む
    ことを特徴とするビジュアルプログラミング装置。
  3. 請求項1に記載のビジュアルプログラミング装置において、更に、
    ビジュアルプログラムで使用する画面の縮小された画面を登録する画面フロー管理テーブルを備え、
    前記画面フロー管理テーブルは、画面フロー管理テーブルに登録された縮小画面のそれぞれの画面におけるプログラム部品と前記画面フロー管理テーブルのそれぞれの縮小された画面との間を関連づけを含む
    ことを特徴とするビジュアルプログラミング装置。
  4. 請求項1に記載のビジュアルプログラミング装置において、更に、
    ビジュアルプログラムで使用する画面の縮小された画面を登録する画面フロー管理テーブルを備え、
    前記画面フロー管理テーブルは、前記画面フロー管理テーブルに登録された縮小画面のそれぞれの画面における項目と前記画面フロー管理テーブルのそれぞれの縮小された画面との間を関連づけを含む
    ことを特徴とするビジュアルプログラミング装置。
  5. 請求項1に記載のビジュアルプログラミング装置において、
    ビジュアルプログラムで使用する画面の縮小された画面を登録する画面フロー管理テーブルを備え、
    前記画面フロー管理テーブルは、登録した各縮小画面におけるプログラム部品と各縮小画面の間を関連づける属性情報を登録する
    ことを特徴とするビジュアルプログラミング装置。
  6. 請求項1に記載のビジュアルプログラミング装置において、
    ビジュアルプログラムで使用する画面の縮小された画面を登録する画面フロー管理テーブルを備え、
    前記画面フロー管理テーブルにおいて、縮小された画面の所属画面ノード識別子、フロー開始ノード識別子、ファイル名、関数名、接続ノード識別子の属性情報を登録する
    ことを特徴とするビジュアルプログラミング装置。
JP13739498A 1997-05-06 1998-05-06 画面フローによるビジュアルプログラミング装置 Expired - Fee Related JP3729640B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/852033 1997-05-06
US08/852,033 US6055369A (en) 1997-05-06 1997-05-06 Apparatus for visual programming with screen flow

Publications (2)

Publication Number Publication Date
JPH10307716A JPH10307716A (ja) 1998-11-17
JP3729640B2 true JP3729640B2 (ja) 2005-12-21

Family

ID=25312345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13739498A Expired - Fee Related JP3729640B2 (ja) 1997-05-06 1998-05-06 画面フローによるビジュアルプログラミング装置

Country Status (2)

Country Link
US (1) US6055369A (ja)
JP (1) JP3729640B2 (ja)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792594B1 (en) * 1998-03-20 2004-09-14 Information System Development Institute Apparatus for producing software and method for producing software
WO2000057271A1 (fr) * 1999-03-24 2000-09-28 Fujitsu Limited Appareil d'assistance a l'ecriture d'un programme d'interface utilisateur graphique, procede d'assistance associe et support d'enregistrement pour programme d'assistance a l'ecriture
AU5760100A (en) * 1999-06-22 2001-01-09 Privity Ventures, Inc. Process automation
US6889359B1 (en) * 1999-10-07 2005-05-03 International Business Machines Corporation Method for providing a visual representation of dynamic HTML table attributes
DE10017775A1 (de) 2000-04-10 2001-10-18 Siemens Ag Eingabeverfahren für die Programmierung von industriellen Steuerungen
US6763497B1 (en) * 2000-04-26 2004-07-13 Microsoft Corporation Method and apparatus for displaying computer program errors as hypertext
JP2002008013A (ja) * 2000-06-27 2002-01-11 Matsushita Electric Works Ltd 外観検査プログラム作成装置およびその方法
US6981226B2 (en) * 2000-08-07 2005-12-27 Siemens Aktiengesellschaft Flowchart programming for industrial controllers, in particular motion controllers
US6748583B2 (en) * 2000-12-27 2004-06-08 International Business Machines Corporation Monitoring execution of an hierarchical visual program such as for debugging a message flow
US7174514B2 (en) * 2001-03-28 2007-02-06 Siebel Systems, Inc. Engine to present a user interface based on a logical structure, such as one for a customer relationship management system, across a web site
US7136865B1 (en) 2001-03-28 2006-11-14 Siebel Systems, Inc. Method and apparatus to build and manage a logical structure using templates
US7584283B2 (en) * 2001-03-28 2009-09-01 Siebel Systems, Inc. Method and apparatus to save and resume a session associated with a logical structure
US7152226B2 (en) * 2001-09-04 2006-12-19 James Pangburn Flexible horizontal stack display and editor
WO2003093988A1 (en) * 2002-05-03 2003-11-13 Cedar Point Communications, Inc. Service description and development processes
US6880130B2 (en) * 2002-06-24 2005-04-12 National Instruments Corporation Specifying timing and triggering functionality in a graphical program using graphical program nodes
US20040104946A1 (en) 2002-09-23 2004-06-03 Yufeng Li System and method for automated positioning of graphic objects
US7574690B2 (en) * 2003-08-07 2009-08-11 National Instruments Corporation Graphical program which executes a timed loop
US7340715B2 (en) * 2004-03-10 2008-03-04 Hanbai Liu Visual programming method and system thereof
US7650594B2 (en) * 2004-05-27 2010-01-19 National Instruments Corporation Graphical program analyzer with framework for adding user-defined tests
US20050281202A1 (en) * 2004-06-22 2005-12-22 Intel Corporation Monitoring instructions queueing messages
US7761847B2 (en) * 2004-07-16 2010-07-20 National Instruments Corporation Timed sequence for a graphical program
US7594183B2 (en) * 2004-08-12 2009-09-22 International Business Machines Corporation Capturing a workflow
US7483880B2 (en) * 2004-09-30 2009-01-27 Microsoft Corporation User interface for database display
WO2006080913A1 (en) * 2005-01-26 2006-08-03 Efunds Corporation Report generating systems and methods
US20060168560A1 (en) * 2005-01-26 2006-07-27 Pandey Sanjay K Report generating systems and methods
JP2007072546A (ja) * 2005-09-05 2007-03-22 Nomura Research Institute Ltd フロー編集装置及びフロー編集方法
US7949995B2 (en) * 2005-09-14 2011-05-24 Sadlek James M Visual programming method
US8332764B2 (en) * 2005-12-05 2012-12-11 International Business Machines Corporation Editing device, information processing device, editing method, and editing program product
US20070226732A1 (en) * 2006-03-16 2007-09-27 Timekeeping Systems, Inc. Flow chart programmable data collector
US8112232B2 (en) * 2007-02-02 2012-02-07 Beckman Coulter, Inc. System and method for autoverifying laboratory test results
US20080242362A1 (en) * 2007-03-26 2008-10-02 Helio, Llc Rapid Content Association Methods
US20080242343A1 (en) * 2007-03-26 2008-10-02 Helio, Llc Modeless electronic systems, methods, and devices
US7949422B1 (en) * 2007-06-22 2011-05-24 Vermont Machine Tool Corporation Machine tool control system
US20100162143A1 (en) * 2008-12-22 2010-06-24 Moshe Ben Abou Systems and methods for business driven application development
TW201106251A (en) 2009-04-24 2011-02-16 Ibm Editing apparatus, editing method and program
JP2012038068A (ja) * 2010-08-06 2012-02-23 Mitsubishi Heavy Ind Ltd プログラム作成装置及び画像制御システム
US8566923B2 (en) 2011-02-01 2013-10-22 Rockwell Automation Technologies, Inc. Enhanced organization and automatic navigation of display screens facilitating automation control
JP5318977B2 (ja) * 2012-01-04 2013-10-16 株式会社三菱東京Ufj銀行 オンラインシステム、プログラム生成装置および画面制御プログラム生成装置
JP2013164861A (ja) * 2013-04-19 2013-08-22 Bank Of Tokyo-Mitsubishi Ufj Ltd オンラインシステム、プログラム生成装置および画面制御プログラム生成装置
GB2520488A (en) * 2013-11-20 2015-05-27 Ibm Visually modeling screen-flows in component-oriented web-based system
US10157046B2 (en) 2013-11-25 2018-12-18 Infragistics, Inc. Method and apparatus for generating an explorer for user interface prototyping
US9971572B2 (en) * 2015-10-30 2018-05-15 International Business Machines Corporation GUI-driven symbol management and code generator
CN110494843B (zh) * 2017-04-03 2023-10-10 创首公司 混合模式编程
US10812654B2 (en) * 2018-06-29 2020-10-20 At&T Intellectual Property I, L.P. Interactive voice response system design, development and testing tool
US10754626B2 (en) 2018-11-30 2020-08-25 Shopify Inc. Visual and code views in a process workflow user interface
JP7184410B1 (ja) * 2022-06-16 2022-12-06 株式会社Pentagon アプリケーション開発の支援装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2647239B1 (fr) * 1989-05-22 1991-07-05 Bull Sa Procede de generation d'interfaces pour applications-utilisateurs visualisables sur l'ecran d'un systeme informatique et dispositif pour mettre en oeuvre ledit procede
US5287514A (en) * 1990-01-08 1994-02-15 Microsoft Corporation Method and system for customizing a user interface in a computer system
JPH07111675B2 (ja) * 1992-02-28 1995-11-29 インターナショナル・ビジネス・マシーンズ・コーポレイション ウィンドウ表示装置および方法
JPH0855019A (ja) * 1994-08-10 1996-02-27 Hitachi Ltd 視覚的プログラミング方法

Also Published As

Publication number Publication date
JPH10307716A (ja) 1998-11-17
US6055369A (en) 2000-04-25

Similar Documents

Publication Publication Date Title
JP3729640B2 (ja) 画面フローによるビジュアルプログラミング装置
EP0785510B1 (en) Program debugging system for debugging a program having a graphical user interface
US6421822B1 (en) Graphical user interface for developing test cases using a test object library
US6415396B1 (en) Automatic generation and maintenance of regression test cases from requirements
US6978440B1 (en) System and method for developing test cases using a test object library
US6598222B2 (en) Programming method for concurrent programs and program supporting apparatus thereof
US20160170719A1 (en) Software database system and process of building and operating the same
JPH11161398A (ja) コンピュータを利用したドキュメンテーション及びインストラクション
US20060271824A1 (en) Auto-recording tool for developing test harness files
US8640105B2 (en) Method and system for debugging a job running on a legacy system
US7203925B1 (en) Graphical compiler
CN112181483B (zh) 等离子体控制系统软件开发平台及方法
EP1248189A1 (en) Program reproducing method and device, and medium on which a program for program reproduction recording
US8839097B2 (en) System and method for information encapsulation for providing multiple deliverable formats from one information source
Reis Live docker containers
US11995146B1 (en) System and method for displaying real-time code of embedded code in a browser-window of a software application
EP4261678A1 (en) Generation of a technical instruction
EP3907620A1 (en) Dynamic user interface testing and reconciliation
Zimmermann et al. Continuous Integration and Delivery in Open Source Development and Pattern Publishing: Lessons Learned With Tool Setup and Pipeline Evolution
Blouin Contribution to the Engineering of User Interfaces
JP2007226739A (ja) ソフトウェア開発装置およびプログラム
JP2006243996A (ja) ジョブネット管理システム
JPH01260548A (ja) デバッグ用ソースリスト出力処理方式
JPH07334358A (ja) 手順編集装置
JPH05134854A (ja) ソフトウエア開発支援装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20011106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050621

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051004

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081014

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081014

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111014

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111014

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141014

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees