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

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

Info

Publication number
JPH10307716A
JPH10307716A JP10137394A JP13739498A JPH10307716A JP H10307716 A JPH10307716 A JP H10307716A JP 10137394 A JP10137394 A JP 10137394A JP 13739498 A JP13739498 A JP 13739498A JP H10307716 A JPH10307716 A JP H10307716A
Authority
JP
Japan
Prior art keywords
screen
program
flow
node
screen 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.)
Granted
Application number
JP10137394A
Other languages
English (en)
Other versions
JP3729640B2 (ja
Inventor
Tomoharu Sawahata
智晴 澤幡
Teku Tsuai Uei
ツァイ ウェイ・テク
Akira Onoma
彰 小野間
Jan Tao
ジャン タオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Software Engineering Co Ltd
University of Minnesota Twin Cities
Original Assignee
Hitachi Software Engineering Co Ltd
University of Minnesota Twin Cities
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Software Engineering Co Ltd, University of Minnesota Twin Cities filed Critical Hitachi Software Engineering Co Ltd
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

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)

Abstract

(57)【要約】 【課題】 画面フローを用いてビジュアルプログラムを
設計し、作成し、更には検査することが容易に行える画
面フローによるビジュアルプログラミング装置を提供す
る。 【解決手段】ビジュアルプログラミング装置は、プログ
ラムで使用する複数の画面のデータを格納する画面格納
手段と、プログラムで使用する複数の画面のデータを生
成して、前記画面格納手段に格納する画面生成手段と、
前記画面格納手段に格納した複数の画面のデータから画
面を縮小して編集画面上に表示し、編集画面上で複数の
縮小した画面の間の関連を指示して、処理の流れを示す
画面フローを作成する画面フロー作成手段と、前記画面
フロー作成手段により作成された前記画面フローから、
その関連づけデータを抽出する画面フロー情報抽出手段
と、前記画面フロー情報抽出手段により抽出された関連
づけデータと前記画面のデータからソースコードを生成
するコード生成手段とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、画面フローという
フローチャートを用いて、ビジュアルユーザインタフェ
ースを持つプログラムを設計し、作成し、更には、検査
することのできる画面フローによるビジュアルプログラ
ミング装置に関する。
【0002】
【従来の技術】これまでに、ビジュアルユーザインタフ
ェースを持つプログラム、例えば、Visual C++、Visua
l 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)とを備えることを特徴
とする。
【0014】また、本発明によるビジュアルプログラミ
ング装置は、上記の特徴の構成に加えて、更に、画面フ
ロー作成手段により作成された画面フローを編集画面に
表示し、前記コード生成手段により生成したソースコー
ドを実行ファイルを作成するなどして実行し、処理の実
行過程を前記編集画面上の画面フローの該当位置に表示
する実行手段(7)を備えることを特徴とする。
【0015】また、本発明によるビジュアルプログラミ
ング装置において、前記画面フロー作成手段は、更に、
アプリケーションプログラムで使用する複数の画面の中
のボタン等の各プログラム部品を起点とする画面間の処
理の流れ等を登録する画面フロー管理テーブルを備え、
前記画面フロー管理テーブルにおいて複数の画面の間を
関連付けることを特徴とする。
【0016】このような様々な特徴を有する本発明によ
るビジュアルプログラミング装置においては、ビジュア
ルプログラムを作成するために、まず、ビジュアルプロ
グラムにおいて使用する複数の画面を作成し、その画面
を縮小して編集画面上に表示し、その縮小した画面の間
の関連を指示して、処理の流れを示す画面フローを作成
する。
【0017】画面フローが作成されると、その画面フロ
ーを用いて、それぞれの画面の間の関連による処理のプ
ログラムコードを作成して、プログラムの全体を設計
し、ビジュアルプログラムを作成することができる。ま
た、作成したビジュアルプログラムを検査する際にも、
その画面フローを用いて、順番に処理の流れを追ってい
くことができる。これにより、ビジュアルプログラムの
設計、作成、および検査を、画面フローを用いて、一貫
して行うことができ、能率よくプログラム開発を行うこ
とができる。また、ここでの画面フローから、プログラ
ム部品の一部のプログラムコードについては、自動的に
そのコードを作成するように構成することもできる。
【0018】
【発明の実施の形態】以下、本発明を実施する場合の形
態について、具体的に図面を参照して説明する。図1
は、本発明の実施例のビジュアルプログラミング装置の
構成の要部を示す図である。図1において、1はプログ
ラム作成ツール、2は画面フロー作成エディタ、3は画
面フロー情報抽出処理部、4はビジュアルプログラムで
使用する画面などを格納するユーザプログラム領域、5
はビジュアルプログラムのソースコード生成のためのソ
ースコード生成部、6はシステム制御のためのオペレー
ティングシステム等のシステム制御部、7はビジュアル
プログラムの実行および停止を制御するプログラム実行
制御部、10は計算機システム装置、11はディスプレ
イ装置、12はハードディスク装置などの外部記憶装
置、13はキーボード装置などの入力装置である。20
は画面フローを格納する画面フロー管理テーブルであ
り、図2において詳述するデータ構造を有するテーブル
である。
【0019】本発明によるビジュアルプログラミング装
置は、ハードウェア構成として、計算機システム装置1
0に、ディスプレイ装置11,外部記憶装置12,およ
び入力装置13が接続されたものが利用され、ソフトウ
ェア構成として、プログラム作成ツール1,プログラム
実行制御部7,およびオペレーティングシステム等のシ
ステム制御部6が備えられる。
【0020】プログラム作成ツール1には、少なくと
も、画面フロー作成エディタ2、画面フロー情報抽出処
理部3、画面フロー管理テーブル20が備えられ、その
他に、図示していないが、ビジュアルプログラムで使用
する画面などを作成するためのテキストエディタ、画像
エディタ、図面エディタなどの画面作成ツールが備えら
れる。これらのソフトウェア構成のため、外部記憶装置
12の記憶領域が割り当てられ、ソフトウェアがインス
トールされている。ビジュアルプログラムを作成する操
作時には、計算機システム装置10の中に組み込まれた
メモリ装置に、動作に必要なソフトウェア要素が読み込
まれ、計算機システム装置10の中の制御処理装置(C
PU)が、オペレーティングシステム等のシステム制御
部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により、画面ノ
ードの間を関連付けて、ビジュアルプログラムの画面フ
ローが作成されると、その画面フロー上の各ノード間の
関係情報が抽出されて、この画面フロー管理テーブル2
0に格納される。この画面フローに対応する画面フロー
管理テーブル20の情報に基づいて、プログラムコード
の一部の自動生成、及びプログラムの画面の推移を検査
する。
【0031】図3は、本実施例のビジュアルプログラミ
ング装置によるビジュアルプログラム作成の全体の処理
を説明するフローチャートである。図3を参照して説明
する。処理を開始すると、まず、ステップ31におい
て、ビジュアルプログラムで用いられる全ての画面、ま
たは、一部の未作成部分があってもビジュアルプログラ
ムで使用するベースとなる画面のフレーム(画面のデー
タ)を、プログラム作成ツールの画面作成エディタを用
いて作成する。
【0032】次に、ステップ32において、作成された
複数の画面の間の関連付けを、各画面の間の処理をも含
めて指示し、プログラム作成ツールの中の画面フロー作
成エディタを用いて、画面フローを作成する。次にステ
ップ33において、作成した画面フローに対応する画面
フロー管理テーブルを用いて、画面表示、画面フロー上
の各処理制御を示すノード要素に関するソースコードの
自動作成を行う。
【0033】更に続いて、ステップ34において各画面
に対応づけられたプログラムファイルに、ステップ33
で自動生成された以外のプログラムコードを手作業で記
述する。そして、次のステップ35において、これまで
に作成したプログラムファイルと、画面フローと、対応
する画面フロー管理テーブルと、ビジュアルプログラム
で用いる各画面の内容により、コンパイラ、リンカ等を
用いて、最終的な実行可能なビジュアルプログラムを完
成させる。
【0034】次に、具体例により、本発明のビジュアル
プログラミング装置によるビジュアルプログラムの作成
について、具体的な操作例と共に説明する。図4は、プ
ログラム作成ツールの中の画面フロー作成エディタのウ
ィンドウ画面の一例を示す図である。図4において、4
1はプログラム作成ツールにおける画面フロー作成エデ
ィタの編集ウィンドウ画面、42はユーザプログラムで
使用するメニューを示すノード要素(メニューノー
ド)、43a〜43fはユーザプログラムで使用する画
面を縮小表示した画面要素(画面ノード)、44はビジ
ュアルプログラムの画面中で使用するボタンを示すノー
ド要素(ボタンノード)、45はビジュアルプログラム
の画面中で使用する情報表示フィールド、46はプログ
ラム開始を示すノード要素(開始ノード)、47はプロ
グラムの終了の処理制御を示すノード要素(出口ノー
ド)、48はその画面を消滅させる処理制御を示すノー
ド要素(終了ノード)、49は画面出力以外の処理制御
を示すノード要素(処理ノード、分岐ノードなど)であ
る。
【0035】前述したように、ここで作成するビジュア
ルプログラムのプログラム要求仕様が決まった段階で、
プログラム作成ツール1の中の画面フロー作成エディタ
2を用いて、そのビジュアルプログラムに必要な全ての
画面を、または一部の未作成部分があってもビジュアル
プログラムで使用するベースとなる画面のフレームを作
成する(ステップ31)。
【0036】次に、画面フロー作成エディタ2を起動す
ると、編集ウィンドウ画面41が開かれて、編集ウィン
ドウ画面41の中に、先に作成されたビジュアルプログ
ラムで使用する画面が縮小され、画面ノード43a〜4
3fとして表示される。この画面が縮小されて表示され
る画面ノード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_C
LICKという関数(各プログラム部品対応の関数名フ
ィールド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)に関するコードは、ファイル名“st
art.cpp”のMENU_C_CLICKという関数に格
納されており、このメニューCがクリックされたときに
はノード識別子49の処理ノードPROCESS1が実
行されることになる。したがって、フロー開始ノードは
メニューCであり、この識別子Cがフロー開始ノードフ
ィールド22に、接続ノードはノード識別子49のPR
OCESS1であるため、接続ノード識別子フィールド
25には、“49”が格納される。さらに、このPRO
CESS1は、その後、ノード識別子43dの画面ノー
ドに接続されている。つまり、PROCESS1の処理
実行後にノード識別子43dの画面を表示することを意
味する。したがって、画面フロー管理テーブル20の次
のレコードのフロー開始ノード識別子は“49”であ
り、コード用ファイル名は“start.cpp”であり、PR
OCESS1と同様に、対応する関数名はMENU_C
_CLICKであることが登録される。
【0049】次の段階で、プログラム作成ツールを用い
て、自動的に、画面を出力するコード及び、画面フロー
上の各終了ノード、出口ノード、処理ノード、分岐ノー
ド等に関するコードの作成を行う。プログラム作成ツー
ルは、自動的にコードを出力する旨の命令を受け取る
と、画面フロー管理テーブル20の接続ノードフィール
ド25に画面ノード、終了ノード、出口ノード、処理ノ
ード、分岐ノード等があれば、該当するコード用ファイ
ルの然るべき関数にその処理に関するコードを自動的に
挿入する(ステップ33)。その後、自動的に挿入され
たコード以外のコードを従来と同様に手作業により入力
して、プログラムコードを完成させる(ステップ3
4)。最後にこれらのコードをコンパイラ、リンカー等
を通して、プログラムを完成させることになる(ステッ
プ35)。
【0050】ここで作成したビジュアルプログラムの画
面フローを用いて、作成したビジュアルプログラムを検
査する場合は、後述するように、プログラム作成ツール
とデバッガを同時に起動させ、検査するビジュアルプロ
グラムに対応する画面フローを表示し、デバッガの一部
であるプログラム実行制御部7を起動して、作成したビ
ジュアルプログラムをステップ実行して処理を進め、画
面フローで対応する処理ステップのノード要素の位置を
表示し、仕様どおりに処理が進み、画面が推移するか否
かを目視により確認する。
【0051】以上、説明したように、本実施例の画面フ
ローによるビジュアルプログラミング装置によれば、ビ
ジュアルプログラムの設計画面をプログラムの画面に移
行する手間が省け、同時に移行の際に発生するおそれの
ある間違いをなくすことができる。また、設計時に画面
フローを用いることにより、プログラム作成の一部を自
動化することができ、更には、プログラムの検査に画面
フローを用いることにより、検査時の間違いを減らすこ
とができる。
【0052】ここでは、プログラマは、最初に、必要と
されるビジュアルプログラムで使用する全ての画面を作
成する。例えば、図5に示すように、画面51、画面5
2、画面53の3枚の画面を作成する。このような画面
が作成された結果、画面51には、プログラム部品とし
て、Aボタン51aと、Bボタン51bと、情報表示フ
ィールド51cが貼り付けられる。画面52には、プロ
グラム部品として、Cボタン52aと、Dボタン52b
と、Eボタン52cと、3個のラジオボタン(Radio 1,
Radio 2, Radio 3)が貼り付けられる。また、画面5
3は、画面フレームだけが作成される。その中に貼り付
けるプログラム部品はまだ作成されていない。
【0053】次に、画面フロー作成エディタを起動し
て、このように作成された3つの画面を、編集ウィンド
ウ画面に表示すると、編集ウィンドウ画面上にはそれぞ
れの画面が縮小されて、それぞれにプログラム部品のボ
タンに対応するボタンノードを含む画面ノード(画面5
1、画面52、画面53)として表示される。この画面
ノードの間の関係を、他の処理制御を示すノード要素
(開始ノード、処理ノード、分岐ノード、終了ノード、
出口ノードなど)と共に、必要に応じて貼り付けて、こ
れらのノード要素の間の関係をも含めて、画面ノードに
含まれたボタンノードと画面ノードの間を結ぶ指示(矢
印の線で結ぶ操作)を行い、図5に示すような画面フロ
ーを作成する。
【0054】図5に示す画面フロー上には、開始ノード
50が設けられ、画面ノード51にリンクが張られてお
り、この画面ノードがプログラム開始時に表示されるこ
とが指示される。また、画面ノード51中のAボタン5
1aのボタンノードからは、出口ノード54にリンクが
張られ、Aボタン51aのクリックにより、ここでプロ
グラム全体を終了することが指示される。画面ノード5
1のBボタン51bのボタンノードからは、画面ノード
52にリンクが張られている。これにより、Bボタン5
1bのクリックにより、画面ノード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は、処理制御ノード種別フィールド9
1のデータに対応して、その挿入コードフィールド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に
よって、終了ノードに対する挿入コードは“Endialo
g();”として特定されるからである。
【0063】また、画面ノード52中のDボタン52b
は、対応する画面フロー(図5)により、画面ノード5
3とリンクが張られている。これは、図6AのBボタン
51bと同様であり、したがって、図6Bのプログラム
コード64には、“Display(argument)”文が挿入され
る。画面ノード52の中のEボタン52cは、対応する
画面フロー(図5)により、分岐ノード56にリンクが
張られている。プログラミング言語テーブル90によ
り、分岐ノードに対する挿入コードは、“if ( argumen
t ) { //Caption } else {}”となっており、ここで
は、プログラムコード65として、“if ( 1 ) { //Bra
nch1 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() {} e
lse if () else {}”文、“switch”文等があり、目的
とするコードにより、分岐ノードの種類を増やしていけ
ば、より使いやすいものとなる。
【0067】上記のように、画面フローを用いることに
より、各画面に対するプログラムコードはその一部を自
動生成することができる。これにより、ビジュアルプロ
グラムの作成作業を効率よく進められるようになる。ま
た、画面フローの一部を再利用することも可能になる。
図7は、画面フローの編集操作により、新たに作成する
ビジュアルプログラムに既存のビジュアルプログラムの
画面フローの一部を再利用した例である。
【0068】この画面フローの再利用を、図7を用いて
説明する。図7の編集画面70に示すように、再利用し
たい部分71を有する既存の画面フローを、画面フロー
作成エディタを起動して表示する。その画面フローよ
り、再利用する部分を指定し、コピー操作を行う。次に
新たに作成する画面フローを、画面フロー作成エディタ
を起動して、編集画面72に表示し、必要な部分に貼り
付ける操作を行う。これらのコピー操作、貼り付け操作
は従来の画面編集を行う操作と同様である。
【0069】そして、内部のデータ構造は、編集画面7
0に対応する画面フローに関する画面フロー管理テーブ
ルから、編集画面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の部
分の貼り付け操作を行うと、ノード要素レコード群13
1に示される部分が、編集画面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は、画面
ノード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 Lan
guage)のような文書記述言語を作成する場合にも適用で
きる。インターネット上のホームページで見られる典型
的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…画面フロー管理テーブル、
───────────────────────────────────────────────────── フロントページの続き (72)発明者 澤幡 智晴 神奈川県横浜市中区尾上町6丁目81番地 日立ソフトウェアエンジニアリング株式会 社内 (72)発明者 ウェイ・テク ツァイ アメリカ合衆国ミネソタ州ミネアポリス市 スーツ4−192 ユニオンストリート 200 ミネソタ大学コンピュータ・サイエンス 学部内 (72)発明者 小野間 彰 神奈川県横浜市中区尾上町6丁目81番地 日立ソフトウェアエンジニアリング株式会 社内 (72)発明者 タオ ジャン アメリカ合衆国ミネソタ州ミネアポリス市 スーツ4−192 ユニオンストリート 200 ミネソタ大学コンピュータ・サイエンス 学部内

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 ビジュアルユーザインターフェイスを有
    するプログラムを作成するビジュアルプログラミング装
    置であって、 プログラムで使用する複数の画面のデータを格納する画
    面格納手段と、 プログラムで使用する複数の画面のデータを生成して前
    記画面格納手段に格納する画面生成手段と、 前記画面格納手段に格納した複数の画面のデータから画
    面を縮小して編集画面上に表示し、編集画面上で複数の
    縮小した画面とノード要素の間の関連を指示して、処理
    の流れを示す画面フローを作成する画面フロー作成手段
    と、 前記画面フロー作成手段により作成された前記画面フロ
    ーから、その関連づけデータを抽出する画面フロー情報
    抽出手段と、 前記画面フロー情報抽出手段により抽出された関連づけ
    データと前記画面のデータからソースコードを生成する
    コード生成手段とを備えることを特徴とするビジュアル
    プログラミング装置。
  2. 【請求項2】 請求項1に記載のビジュアルプログラミ
    ング装置において、更に、 画面フロー作成手段により作成された画面フローを編集
    画面に表示し、前記コード生成手段により生成したソー
    スコードを実行ファイルを作成して実行し、処理の実行
    過程を前記編集画面上の画面フローの該当位置に表示す
    る実行手段を備えることを特徴とするビジュアルプログ
    ラミング装置。
  3. 【請求項3】 請求項1に記載のビジュアルプログラミ
    ング装置において、更に、 プログラムで使用する複数の画面を登録する画面フロー
    管理テーブルを備え、 前記画面フロー管理テーブルにおいて登録した各画面を
    関連付けることを特徴とするビジュアルプログラミング
    装置。
  4. 【請求項4】 請求項1に記載のビジュアルプログラミ
    ング装置において、更に、 プログラムで使用する複数の画面を登録する画面フロー
    管理テーブルを備え、 前記画面フロー管理テーブルにおいて登録した各画面に
    おけるプログラム部品と各画面の間を関連付けることを
    特徴とするビジュアルプログラミング装置。
  5. 【請求項5】 請求項1に記載のビジュアルプログラミ
    ング装置において、更に、 プログラムで使用する複数の画面を登録する画面フロー
    管理テーブルを備え、 前記画面フロー管理テーブルにおいて登録した各画面に
    おける項目と各画面の間を関連付けることを特徴とする
    ビジュアルプログラミング装置。
  6. 【請求項6】 請求項1に記載のビジュアルプログラミ
    ング装置において、 前記画面フロー生成手段は、プログラムで使用する複数
    の画面を登録する画面フロー管理テーブルを備え、 前記画面フロー管理テーブルは、登録した各画面におけ
    るプログラム部品と各画面の間を関連付ける属性情報を
    登録することを特徴とするビジュアルプログラミング装
    置。
  7. 【請求項7】 請求項1に記載のビジュアルプログラミ
    ング装置において、 前記画面フロー生成手段は、プログラムで使用する複数
    の画面を登録する画面フロー管理テーブルを備え、 前記画面フロー管理テーブルにおいて、所属画面ノード
    識別子、フロー開始ノード識別子、ファイル名、関数
    名、接続ノード識別子の属性情報を登録することを特徴
    とするビジュアルプログラミング装置。
  8. 【請求項8】 請求項1に記載のビジュアルプログラミ
    ング装置において、 前記画面フロー生成手段は、前記画面格納手段に格納し
    た複数の画面のデータから画面を縮小して編集画面上に
    表示する場合、前記画面の各々の画面上に設けられた各
    プログラム部品の位置関係の保持した状態で表示するこ
    とを特徴とするビジュアルプログラミング装置。
  9. 【請求項9】 ビジュアルユーザインターフェイスを有
    するプログラムを作成するプログラム作成方法であっ
    て、 プログラムで使用する複数の画面を生成して格納する第
    1ステップと、 格納された複数の画面を縮小して編集画面上に表示し、
    編集画面上で複数の縮小した画面の間の関連を指示し
    て、処理の流れを示す画面フローを作成する第2ステッ
    プと、 前記画面フローから、その関連づけデータを抽出する第
    3ステップと、 前記関連づけデータと前記画面のデータからソースコー
    ドを生成する第4ステップとからなることを特徴とする
    プログラム作成方法。
  10. 【請求項10】 請求項9に記載のプログラム作成方法
    において、 第2ステップで、前記画面格納手段に格納した複数の画
    面を縮小して編集画面上に表示する場合、前記画面の各
    々の画面上に設けられた各プログラム部品の位置関係の
    保持した状態で表示することを特徴とするプログラム作
    成方法。
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 true JPH10307716A (ja) 1998-11-17
JP3729640B2 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)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007072546A (ja) * 2005-09-05 2007-03-22 Nomura Research Institute Ltd フロー編集装置及びフロー編集方法
US7337406B2 (en) 1999-03-24 2008-02-26 Fujitsu Limited Creation supporting apparatus and creation supporting method of graphical user interface program, and recording medium recorded with creation supporting program
JP2010518488A (ja) * 2007-02-02 2010-05-27 ベックマン・コールター・インコーポレーテッド 検査室試験結果を自動検証するシステムおよび方法
WO2012017992A1 (ja) * 2010-08-06 2012-02-09 三菱重工業株式会社 プログラム作成装置及び画像制御システム
JP2012064250A (ja) * 2012-01-04 2012-03-29 Bank Of Tokyo-Mitsubishi Ufj Ltd オンラインシステム、プログラム生成装置および画面制御プログラム生成装置
JP4993303B2 (ja) * 2005-12-05 2012-08-08 インターナショナル・ビジネス・マシーンズ・コーポレーション 編集装置、編集方法および編集プログラム
JP2013164861A (ja) * 2013-04-19 2013-08-22 Bank Of Tokyo-Mitsubishi Ufj Ltd オンラインシステム、プログラム生成装置および画面制御プログラム生成装置
JP2023120274A (ja) * 2019-08-23 2023-08-29 グーグル エルエルシー ノーコーディング機械学習パイプライン
JP2023183515A (ja) * 2022-06-16 2023-12-28 株式会社Pentagon アプリケーション開発の支援装置

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1301362A (zh) * 1998-03-20 2001-06-27 信息系统发展协会 软件生成装置和软件生成方法
WO2000079350A1 (en) * 1999-06-22 2000-12-28 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 外観検査プログラム作成装置およびその方法
US7302676B2 (en) * 2000-08-07 2007-11-27 Siemens Aktiengesselschaft Method for debugging flowchart programs for industrial 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
AU2003228887A1 (en) * 2002-05-03 2003-11-17 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
EP1660994A2 (en) * 2003-08-07 2006-05-31 National Instruments Corporation A 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
US20060168560A1 (en) * 2005-01-26 2006-07-27 Pandey Sanjay K Report generating systems and methods
WO2006080913A1 (en) * 2005-01-26 2006-08-03 Efunds Corporation Report generating systems and methods
US7949995B2 (en) * 2005-09-14 2011-05-24 Sadlek James M Visual programming method
US20070226732A1 (en) * 2006-03-16 2007-09-27 Timekeeping Systems, Inc. Flow chart programmable data collector
US20080242343A1 (en) * 2007-03-26 2008-10-02 Helio, Llc Modeless electronic systems, methods, and devices
US20080242362A1 (en) * 2007-03-26 2008-10-02 Helio, Llc Rapid Content Association Methods
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
US8566923B2 (en) * 2011-02-01 2013-10-22 Rockwell Automation Technologies, Inc. Enhanced organization and automatic navigation of display screens facilitating automation control
JP6175844B2 (ja) * 2013-03-27 2017-08-09 株式会社ジェイテクト 操作盤の画面定義装置
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
US10684830B2 (en) * 2017-04-03 2020-06-16 Innovation First, Inc. Mixed mode programming
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

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 視覚的プログラミング方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7337406B2 (en) 1999-03-24 2008-02-26 Fujitsu Limited Creation supporting apparatus and creation supporting method of graphical user interface program, and recording medium recorded with creation supporting program
JP2007072546A (ja) * 2005-09-05 2007-03-22 Nomura Research Institute Ltd フロー編集装置及びフロー編集方法
JP4993303B2 (ja) * 2005-12-05 2012-08-08 インターナショナル・ビジネス・マシーンズ・コーポレーション 編集装置、編集方法および編集プログラム
US8332764B2 (en) 2005-12-05 2012-12-11 International Business Machines Corporation Editing device, information processing device, editing method, and editing program product
JP2010518488A (ja) * 2007-02-02 2010-05-27 ベックマン・コールター・インコーポレーテッド 検査室試験結果を自動検証するシステムおよび方法
WO2012017992A1 (ja) * 2010-08-06 2012-02-09 三菱重工業株式会社 プログラム作成装置及び画像制御システム
JP2012038068A (ja) * 2010-08-06 2012-02-23 Mitsubishi Heavy Ind Ltd プログラム作成装置及び画像制御システム
CN102959509A (zh) * 2010-08-06 2013-03-06 三菱重工业株式会社 程序生成装置以及图像控制系统
KR101498877B1 (ko) * 2010-08-06 2015-03-05 미츠비시 히타치 파워 시스템즈 가부시키가이샤 프로그램 작성 장치 및 화상 제어 시스템
JP2012064250A (ja) * 2012-01-04 2012-03-29 Bank Of Tokyo-Mitsubishi Ufj Ltd オンラインシステム、プログラム生成装置および画面制御プログラム生成装置
JP2013164861A (ja) * 2013-04-19 2013-08-22 Bank Of Tokyo-Mitsubishi Ufj Ltd オンラインシステム、プログラム生成装置および画面制御プログラム生成装置
JP2023120274A (ja) * 2019-08-23 2023-08-29 グーグル エルエルシー ノーコーディング機械学習パイプライン
JP2023183515A (ja) * 2022-06-16 2023-12-28 株式会社Pentagon アプリケーション開発の支援装置

Also Published As

Publication number Publication date
US6055369A (en) 2000-04-25
JP3729640B2 (ja) 2005-12-21

Similar Documents

Publication Publication Date Title
JPH10307716A (ja) 画面フローによるビジュアルプログラミング装置
US6415396B1 (en) Automatic generation and maintenance of regression test cases from requirements
JP4195479B2 (ja) インクリメンタル生成システム
US8806429B2 (en) Dynamic generation of formatted user interfaces in software environments
US7979849B2 (en) Automatic model-based testing
US6978440B1 (en) System and method for developing test cases using a test object library
JP2795244B2 (ja) プログラムデバッグシステム
CN100573503C (zh) 自动生成内容的方法和系统
CN100399241C (zh) 自动文本生成
CN108351764B (zh) 数据处理方法和系统
US8370811B2 (en) Modularizing and aspectizing graphical user interface directed test scripts
US20070005300A1 (en) Systems and methods for graphically defining automated test procedures
Elkoutbi et al. Generating user interface prototypes from scenarios
US10489122B1 (en) Inline text editor elements as an abstraction layer for graphical code editing
JP5147240B2 (ja) リバーシブルなデザイン・ツリーの変換のための方法とシステム
CN112181483A (zh) 等离子体控制系统软件开发平台及方法
US7203925B1 (en) Graphical compiler
JPH09244921A (ja) ソフトウエア試験の自動化システム
JP4387288B2 (ja) 制御用表示装置、エディタ装置、プログラムおよび記録媒体
US11995146B1 (en) System and method for displaying real-time code of embedded code in a browser-window of a software application
JPH11232136A (ja) オブジェクト指向ソフトウエア開発支援装置
JPH07160536A (ja) 対話型システムのプログラムテスト支援装置
JPH10222356A (ja) アプリケーション作成装置及びアプリケーション作成方法
Fox Writing R Commander Plug-in Packages
CN121349425A (zh) 一种可视化组态编程方法

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