説明

ソースプログラム作成支援システム

【課題】イベント処理を含んだソースプログラムを容易に作成できるようにする。
【解決手段】作成すべきソースプログラムに対応するフロー図をPCスクリーン上に作成することを支援するフロー図作成モジュール10は、フロー図に含まれる入出力線及びボックス等の基本的なプレートの一覧を表示し、ユーザがプレートを選択し、その配置位置をモニタスクリーン上で指定する毎に、該配置位置に選択されたプレートを表示する。イベント処理プログラムを作成するためのイベントボックスが選択されると、仮想イベント待ちボックス及びリターン端子を含んだイベントフロー図初期ボックス群を自動的に表示させる。フロー図解析変換モジュール40は、作成されたフロー図を解析してソースコードに変換することによりソースプログラムに変換するが、仮想イベント待ちボックスが含まれている場合、イベント定義モジュールを読み出してソースプログラムに組み入れる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、CASE(コンピュータ支援ソフトウエアエンジニアリング)ツールであるソースプログラム作成支援システムに関し、より詳細には、コンピュータのソースプログラムを作成する際に、プログラミングの高度な知識を必要とせずに、コンピュータ支援の下で、コンピュータ言語のソースプログラムを容易に作成することができるようにしたシステムに関する。
【背景技術】
【0002】
今日、汎用システムにおけるシステム開発は、通常、システム分析工程、システム設計(機能設計、データ設計)工程、プログラム設計工程、プログラミング工程、テスティング(検証)工程の順で行われる。そして、システム化業務フロー図、システム化機能概要、入出力定義のドキュメントを作成し、該ドキュメントに基づいて、システム、サブシステム、プロセス、プログラム、モジュールと分割を行って、概要から詳細に仕様を定義している。
このような仕様のドキュメントを作成する際、サブシステム関連図、サブシステム概要、プロセス関連図、業務機能フロー図、プロセス概要、プロセスフロー図、プログラム概要、プログラム構造図、モジュール(プログラムモジュール)概要、コーディングと、各工程でその上流工程のドキュメントに基づいて、論理の関連を保持しつつ個々にドキュメントを作成している。
【0003】
このとき、ドキュメント書式は個々に特有なものとなっており、このように形式が多種多様のドキュメントを作成するには、多大な工数及び時間を必要としている。
さらに、プログラミングは、高度なプログラミング知識を有するエキスパートであるプログラマによってなされており、プログラミング知識を有さない要員には不可能である。
【0004】
このような従来例の問題点を解決するために、以下の特許文献1及び2に記載されているような、コンピュータ支援の下で自動的にプラグロミングを作成できるようにした装置及び方法が提案されている。
特許文献1の製造管理プログラム自動作成装置は、C言語ソースプログラムを作成できるようにしているが、この装置は製品の製造管理のプログラムを作成するものであるため、部品の組み合わせでソースプログラムを作成するようにしている。
また、特許文献2の自動プログラミング方法も、C言語ソースプログラムを作成できるようにしているが、この方法はエキスパートシステムを構築するためのものであり、したがって、この方法においても用途が特化されている。
【0005】
さらに、従来、仕様変更が生じた場合及びバグ修正が必要な場合には、異なった形式のドキュメントであるため、これらドキュメントから、複数の工程に渡って関連付けられている論理を追求することが極めて複雑となり、論理の追求にも多大な工数及び時間を必要としている。そのため、ドキュメントを変更せずにソースプログラムのみを変更することが多く、このような場合、仕様書の論理とソースプログラムの論理の同一性が維持されないことになる。
【0006】
また、イベント処理を包含するプログラム(C言語で、画面、キーボード等からの入力処理があるプログラム)において、画面入力処理のプログラムでは、入力画面表示状態で入力待ちの状態となる。また、入力完了の特定信号であるイベント信号(例えば、キーボードからのEnter信号)を受け取るまで、プログラムは処理待ちとなる。このようなイベント処理を包含するプログラムにおいて、複数のイベントがランダムに発生する場合、従来は、イベント待ちの状態をフロー図中に明確かつ適切に表記することが困難であった。
【0007】
なお、以下の特許文献3には、複数のイベント待ちをフロー図上で表示することができるようにしたフローチャート入力装置について記載されている。しかしながら、このフローチャート入力装置においては、複数のイベント及びそれに対応する処理がランダムに行われる場合のイベント待ち状態を適切に表現できるものではない。
例えば、「氏名」、「フリガナ(氏名)」、「郵便番号」、「住所」、「フリガナ(住所)」を画面上で入力するための氏名住所プログラムを作成する場合等のように、入力オペレータが表示された入力画面の表示順に入力しないことを考慮して、プログラムを作成する必要がある。すなわち、通常、オペレータがカーソルを表示された任意項目の入力欄に移動させ、データの入力を行ったり修正を行ったりするが、その場合、カーソルの位置によりイベントがランダムに発生されるので、作成すべきプログラムをランダムに行われる処理に対応させる必要がある。
【0008】
そして、そのようなプログラムを作成するための前提となるフロー図をユーザが作成する際、イベント待ち状態を明確かつ平易に表すことができるようにする必要があるが、特許文献3のフローチャート入力装置においては、該文献の図5及び図8等に記載されているように、1つのイベント処理が終了すると、他のステップに移行してしまい、複数のイベント及びそれに対応する処理がランダムに発生する場合のイベント待ち状態を、フロー図上で適切に表すことができるようにしたものではない。また、仮に、この従来例のフローチャート入力装置を、上記した氏名住所入力プログラムを表すように変更しようとした場合、図15に示すように、極めて複雑なフロー図となってしまう。そして、入力項目が増大するほど複雑度が増大してしまい、したがって、ユーザが正確なフロー図を作成することが困難となってしまう。
【0009】
また、ソースプログラムは、通常、データ定義、画面定義、及びメインプログラムの組み合わせで構成されている。
そして、従来は、データ定義を行うためには、ファイルレイアウト用紙に項目の桁位置を合わせて記述し、項目の追加、削除、又は項目の桁数変更等が発生した場合、改めて桁位置を決め直し、再記述を行っている。さらに、項目の細分化による詳細項目定義も同様な作業を行わなければならない。そして、開発時は頻繁に変更が発生する場合が多く、変更の度にこのような作業を行っているため、手間がかかっている。さらにまた、記述したファイルレイアウト情報は、プログラム毎にコーディングする必要がある。
【0010】
また、従来、画面定義を行うには、画面の概要定義を手作業でラフスケッチし、これを元に画面レイアウトを作成している。画面レイアウトを作成する際、線、項目等の位置を画面上のX−Y座標に対応付ける必要があるが、この座標値も線及び項目属性とともにソースコードで定義しなければならない。また、記述した画面レイアウト情報は、プログラム毎にコーディングする必要がある。したがって、従来手法で画面定義を行うには、煩雑な手順と保守性の困難性から、作業効率が低い。
【特許文献1】特開平6−214769号公報
【特許文献2】特開平9−91146号公報
【特許文献3】特開平11−296357号公報
【発明の開示】
【発明が解決しようとする課題】
【0011】
上記したように、自動プログラミング装置及び方法が既に提案されているが、いずれも特定の用途に特化したものであり、特に、複数のイベント及びそれに対応する処理がランダムに発生する場合のイベント待ち状態を、フロー図上で適切に表すことができるようにしたものではない。
また、上記したように、従来の手法でソースプログラムのデータ定義及び画像定義を作成することは、極めて煩雑であり、作業効率が悪い。
本発明は、このような問題点を解消するためになされたものである。
【0012】
本発明の第1の目的は、複数のイベント及びそれに対応する処理がランダムに発生する場合のイベント待ち状態をフロー図上で適切に表すことができるようにしたフロー図作成手段を備えたソースプログラム作成支援システムを提供することである。
本発明の第2の目的は、上記した第1の目的を達成するフロー図作成手段を備え、かつ任意のソースプログラムを、高度な知識を備えていない人であっても容易に作成できるようにしたソースプログラム作成支援システムを提供することである。
本発明の第3の目的は、上記した第2の目的を達成するソースプログラム作成支援システムにおいて、ソースプログラムに含まれるデータ定義を、高作業効率で作成することができるようにすることである。
本発明の第4の目的は、上記した第2の目的を達成するソースプログラム作成支援システムにおいて、ソースプログラムに含まれる画面定義を、高作業効率で作成することができるようにすることである。
本発明の第5の目的は、上記した第2の目的を達成するソースプログラム作成支援システムにおいて、作成されたソースプログラムの検証を可能にし、その結果をユーザに分かり安い形態で提供することである。
【課題を解決するための手段】
【0013】
上記した目的を達成するために、本発明は、コンピュータにより読み取り可能なプログラムを利用し、ユーザとの対話によりソースプログラムを作成するためのソースプログラム作成支援システムであって、作成すべきソースプログラムに対応するフロー図をモニタスクリーン上に作成することを支援するフロー図作成手段と、該フロー図作成手段によって作成されたフロー図を解析してソースコードに変換することによりソースプログラムに変換するフロー図解析変換手段とを含んでいるソースプログラム作成支援システムにおいて、
フロー図作成手段は、
フロー図に含まれるスタート端子、エンド端子、流入線、流出線、及び複数のボックスを含む基本的なプレート、並びに、ランダムに発生される複数のイベントによりそれぞれ駆動される複数のイベント処理を含むイベント処理プログラムの開始プレートを含む一覧表を、ユーザにより選択可能に表示するプレート一覧表示手段と、
ユーザが表示されたプレート一覧からプレートを選択し、その配置位置をモニタスクリーン上で指定する毎に、該配置位置に選択されたプレートの形状を表示するプレート配置手段であって、
プレート一覧に含まれるイベント処理プログラム開始プレートが選択されたときに、イベント発生の待ち状態を表す仮想イベント待ちボックスと該仮想イベント待ちボックスに流出線が接続されたリターン端子とを含んでいるイベントフロー図初期ボックス群をフロー図作成領域上に表示させる手段と
を含んでいるプレート配置手段と、
モニタスクリーン上に配置されたボックスに処理の内容に対応する仕様をユーザに入力させるための入力欄を表示し、入力された仕様を該ボックスと関連付けて記憶する仕様設定手段と
を備え、
フロー図解析変換手段は、
ソースプログラムに変換すべきフロー図中に仮想イベント待ちボックスが含まれている場合に、イベント処理プログラムであると判定して、使用しているコンピュータにOSの一部としてインストールされているイベント処理定義を読み出す手段と、
フロー図中のボックスの連係を解析して各ボックスの連係情報を得る手段と、
フロー図中の各ボックスに設定された仕様をソースコードに変換し、かつ、変換されたソースコードに該当するボックスの連係情報を組み入れることにより、各ボックスのソースプログラムモジュールを生成する手段と、
読み出されたイベント処理定義、及び、ボックスの連係情報が組み入れられたソースプログラムモジュールを一体化してソースプログラムを生成する手段と
を備えている
ことを特徴とするソースプログラム作成支援システムを提供する。
【0014】
上記した本発明に係るソースプログラム作成支援システムにおいて、イベントフロー図初期ボックス群は、仮想イベント待ちボックス及びリターン端子に加えて、スタート端子と、イベント待ちボックスの下流に直列的に配置された2つの判断ボックスと、該判断ボックスからの流出線により該判断ボックスにそれぞれ接続された2つの処理ボックスであって、その流出線がリターン端子に接続されている処理ボックスとを少なくとも含んでいることが好ましい。
また、フロー図作成手段はさらに、フロー図作成領域に配置されたプレートの削除をユーザが指示したときに、該プレートを削除するプレート削除手段と、イベントフロー図初期ボックス群以外のプレートが新たにフロー図作成領域に配置されたときに、該プレートの下流に処理ボックス及びその流出線を、配置されたプレートとは異なる表示態様で自動的に表示する手段とを備えていることが好ましい。この場合、好ましくは、フロー図作成手段のプレート一覧表示手段により表示されるプレート一覧には、イベント処理プログラム終了プレートが含まれ、プレート配置手段は、フロー図作成領域に表示されているフロー図中に仮想イベント待ちボックスが含まれており、かつ異なる表示態様の処理ボックス及びその流出線が含まれている状態で、プレート一覧に含まれるイベント処理プログラム終了プレートが選択されたときに、異なる表示態様の処理ボックス及びその流出線を自動的に削除し、かつ、最下端の判断ボックスの下方に、リターン端子に一方の流出線が接続された判断ボックスを追加し、該判断ボックスの他方の流出線に接続され、自身の流出線がリターン端子に接続された処理ボックスを追加するよう構成されている。
【0015】
また、上記した本発明に係るソースプログラム作成支援システムにおいて、該システムはさらに、複数の処理内容それぞれに対応するソースプログラムモジュールである複数の関数をその関数名と対応付けて予め記憶しているひな形ライブラリを備えており、フロー図作成手段の仕様設定手段は、ユーザが仕様としてひな形ライブラリに記憶されている関数名を選択的に入力することが可能なるようにするために、ひな形ライブラリ中の複数の関数の内容及びその関数名をユーザに提示する手段を備えており、フロー図解析変換手段は、変換すべきフロー図に、ひな形ライブラリに記憶されている関数名が仕様として設定されているボックスがある場合に、該ライブラリから該関数名に対応する関数を読み出すよう構成されていることが好ましい。
さらに、フロー図作成手段は、上位層のフロー図とその下位層の詳細フロー図を作成するための階層降り機能を実行する手段を備えており、フロー図作成手段の仕様設定手段は、ユーザが上位層のフロー図の仕様として下位層のフロー図を特定するフロー図IDを選択的に入力することが可能となるようにするために、下位層のフロー図の内容及びフロー図IDをユーザに提示する手段を備えており、フロー図解析変換手段は、変換すべきフロー図に、フロー図IDが仕様として設定されているボックスがある場合に、該フロー図IDに対応するプログラムモジュールを記憶手段から読み出すよう構成されていることが好ましい。
【0016】
さらにまた、上記した本発明に係るソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、モニタスクリーン上に配置されたボックスに処理のタイトルを入力するためのタイトル入力欄を表示し、入力されたタイトルをボックスと関連付けて記憶するタイトル設定手段を備えていることが好ましく、この場合、フロー図作成手段の仕様設定手段及びタイトル設定手段は、プレート配置手段によりボックスがモニタスクリーンに表示される毎に、仕様設定及びタイトル設定が可能であるように構成されていてもよい。また、フロー図作成手段の仕様設定手段のみを備えている場合、該仕様設定手段を、プレート配置手段によりボックスがモニタスクリーンに表示される毎に、仕様設定が可能であるよう構成してもよい。
【0017】
また、上記した本発明に係るソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、フロー図作成のためのガイダンスをユーザに提供し、該ガイダンスに対するユーザ入力の応答に基づいて、フロー図を自動的に作成するガイダンス手段を備えていることが好ましい。この場合、好適には、フロー図作成手段はさらに、ガイダンス手段が提供したガイダンスと該ガイダンスに対するユーザの応答との時間経過履歴を取得し、かつ、該時間経過履歴をモニタスクリーン上に表示するペースメーカ手段を備えている。
さらに、上記した本発明に係るソースプログラム作成支援システムにおいて、フロー図作成手段は、当初フロー図と、該当初フロー図の全ての処理を含み、かつ当初フロー図の一部の処理を詳細化し進展させたフロー図との関係を、モニタスクリーン上に表示する派生関係表示手段であって、当初フロー図のボックスが選択されたときに、該ボックスの代わりに、該ボックスに対応する進展されたフロー図の複数のボックスを表示させる派生関係表示手段を備えていることが好ましい。
【0018】
また、上記した本発明に係るソースプログラム作成支援システムはさらに、フロー図作成手段によって作成されるフロー図において使用されるデータのソースプログラムのデータ定義を、モニタスクリーン上でユーザとの対話に基づいてツリー構造のデータレイアウトを作成し、該作成されたデータレイアウトに基づいて定義するデータ定義作成手段と、フロー図作成手段によって作成されるフロー図において使用される画面のソースプログラムの画面定義を、モニタスクリーン上でユーザとの対話に基づいて画面を作成し、該作成された画面の要素の位置及びサイズに基づいて定義する画面定義作成手段とを備えていることが好ましい。この場合、フロー図解析変換手段はさらに、フロー図に基づいて作成されたソースプログラムに、データ定義作成手段及び画面定義作成手段によって作成されたデータ定義及び画面定義と組み合わせる手段を備えていることが好ましい。
【0019】
さらに、上記した本発明に係るソースプログラム作成支援システムはさらに、作成されたソースプログラムを検証する検証手段を備え、該検証手段は、検証すべきソースプログラムに対応するフロー図をモニタスクリーン上に表示し、表示されたフロー図上に、ソースプログラムのランを一時停止させ、処理結果を取得し、通過履歴と処理結果を表示させるべきポーズ設定点と、処理結果のみを取得するためのパス設定点とをユーザに設定させる手段と、検証すべきソースプログラムをランさせ、該ソースプログラムに対応しかつ表示されたフロー図上に、処理の経過に伴って通過ルートを表示する手段と、処理がポーズ設定点に到達したときに、処理を一時停止させ、かつ、該ポーズ設定点及びパス設定点の通過履歴を表示する手段と、処理がポーズ設定点に到達したときに、フロー図上の予め設定された変数の値を変数一覧として表示する手段とを備えていることが好ましい。
【発明の効果】
【0020】
本発明は、上記したように構成され、複数のイベント及びそれに対応する処理がランダムに発生する場合のイベント待ち状態を、フロー図上で適切に表すことができ、しかも、このようなイベント待ち状態を含んだフロー図をソースプログラムに変換すればよいので、イベント待ち状態を含んだソースプログラムの生成が容易となる。このとき、フロー図中の仕様の論理とソースプログラムの論理との同一性が維持される。
そして、ガイダンス手段を備えている場合には、ガイダンスによりユーザの入力を促し、それに基づいて自動的にフロー図を作成するので、作成すべきソースプログラムに対応するフロー図作成がユーザにとってより容易となる。さらに、派生関係表示手段を備えることにより、当初フロー図とそのフロー図を展開した展開フロー図との関係、すなわち、その派生のいきさつ及びプログラムの論理の進展を、ユーザが容易に把握することができる。
また、データ定義作成手段を及び画面定義作成手段を備えていることにより、ユーザがツリー構造のデータ定義を視認しながらデータ定義を作成することができ、また、画面をモニタスクリーン上で作成するだけで、画面定義を作成することができる。したがって、データ定義及び画面定義の作成及び保守が容易となる。
さらに、検証手段を備えていることにより、作成されたソースプログラムを実際にランさせて検証を行うことができ、その結果をソースプログラムの修正に反映させることができる。
【発明を実施するための最良の形態】
【0021】
以下、本発明のソースプログラム作成支援システムの好適な実施形態について、図面を参照して説明する。
本発明のシステムは、PCにインストールされるコンピュータプログラムによって構成されるものであり、そのプログラムを機能で大別すると、図1に示すように、フロー図作成モジュール10、データ定義作成モジュール20、画面定義作成モジュール30、フロー図解析変換モジュール40、及び検証モジュール50に分けることができる。これらプログラムモジュールの概略機能は、以下の通りである。
【0022】
フロー図作成モジュール10
作成しようとするプログラムのフロー図を作成するためのものであり、PCスクリーン上へのユーザによるボックスの選択及び配置、並びにタイトル及び仕様の入力に基づいて、概略/詳細フロー図を完成させる機能を備えている。このとき、階層降り機能により、概要から詳細へと上層フロー図及び下層フロー図により関連づけを行いながら、論理関連をも定義していき、最上層のフロー図から最下層のフロー図まで全てが関連付けられるとともに、仕様定義まで行うことができる。作成された概要/詳細フロー図は、該フロー図中に含まれるボックス毎の入出力関係を含む属性データとして保管される。
これにより、フロー図の作成作業が効率化され、仕様変更をする必要が生じた場合であっても、変更箇所をフロー図上で確認できるため、仕様変更の作業も効率化される。
【0023】
データ定義作成モジュール20
PCスクリーン上で、ユーザがファイルレイアウトをツリー状に作成する機能である。ファイルレベル、レコードレベルの定義は、ガイドラインに従って行う。レコード項目は、ユーザがデータ定義用処理ボックスの上下左右の辺を選択することにより、新たな項目と属性とを定義することができる。上下辺が選択された場合、その項目の上下の並列位置に新たな項目を定義する。左辺が選択された場合、その項目の上層位置に新たな項目を定義し、右辺が選択された場合、その項目の下層位置に新たな項目を定義する。項目の削除は、その対象となる位置をユーザが選択することにより行われる。項目の桁数(バイト数)変更等が発生した場合、その項目属性を変更することにより、桁数を自動調整する。作成されたデータ定義は、項目毎の属性データとして保管される。
PCスクリーン上でデータ定義に必要なすべての処理を行うことができ、しかも、ツリー構造のデータ定義を視認しながらデータ定義を作成することができるので、データ定義の作成及び保守が効率化される。
【0024】
画面定義作成モジュール30
グラフィック作成に活用されている図形処理を応用した機能を用いて、PCスクリーン上に画面レイアウトを作成する。このとき、まず、ユーザが画面レイアウトに含まれる画面要素を画面要素一覧から選択し、その画面要素の定義内容を入力し、スクリーン上で位置及びサイズを指定することにより、画面レイアウトに含まれる個々の画面要素を作成する。仕様変更時及びバグ修正時は、線、プレート等の画面要素を必要な位置に移動、追加又は必要な位置から削除することにより、実行される。作成された画面定義は、画面要素毎の属性データ(位置及びサイズデータを含む)として保管される。
PCスクリーン上で画面定義に必要なすべての処理を行うことができ、しかも、視覚で確認しながら画面定義を作成することができるので、画面定義の作成及び保守が容易になる。
【0025】
フロー図解析変換モジュール40
フロー図作成モジュール10により作成されたフロー図(最上層フロー図から最下層フロー図を含む)に基づき、データ定義モジュール20及び画面定義モジュール30により作成されたデータ定義及び画面定義を参照して、ソースプログラムを作成する。このとき、まず、メインのフロー図のボックス連係を解析し、連係に矛盾が無ければ、スタート端子からエンド端子までの幹線のボックスの内容をソースコードに変換する。変換中に出現する画面及び下層展開関数は、一時保管する。幹線のソースコードへの変換後に、これら保管しておいた画面及び関数を出現順に解析し、ソースコードに変換する。また、下層展開がある関数は、階層降りをして関数内部の解析と変換を行い、最下層までのフロー図をソースプログラムに変更する。仕様変更(追加仕様も含む)及びバグ修正時には、フロー図を変更修正してこのモジュールを動作させることにより、自動的にソースプログラムも変更される。ソースコードは、C++及びBASIC等の種々のコンピュータ言語で作成可能である。
【0026】
検証モジュール50
作成されたソースプログラムをランさせて該プログラムの検証を行う。PCスクリーン上に、ランさせるソースプログラムに対応するフロー図を表示し、そして、該ソースプログラムをランさせたときに、該フロー図上で処理の通過ルートを表示する。また、ユーザが該フロー図の通過ルート上の任意の点にポーズ点及びパス点を設定することができる。ポーズ点が設定された位置にプログラム処理が到達すると、該処理は一時停止し、その時点のフロー図中の種々変数値を取得して表示し、かつ、ポーズ点及びパス点の通過履歴を表示する。パス点が設定された位置にプログラム処理が到達すると、その時点のフロー図中の種々変数値を取得するが、該処理が継続される。プログラムのラン中にエラーが発生した場合、そのボックス及び処理行をエラーリストに表示する。これにより、作成したソースプログラムの動作を検証することができ、誤りがある場合には、それを検出して修正することが容易となる。
【0027】
フロー図作成モジュール10の機能には、図2に示すように、イメージフロー作成モジュール11、タイトルフロー図作成モジュール12、概要フロー図定義モジュール13、概要フロー図新規作成モジュール14、概要フロー図作成ガイダンスモジュール(以下、単に「ガイダンスモジュール」)15、ペースメーカモジュール16、及び、詳細フロー図定義モジュール17が含まれる。
これらモジュール11〜17の概略機能は、以下の通りである。
【0028】
イメージフロー図作成モジュール11
ユーザとの対話に基づいて、メインプログラムのイメージフロー図を作成する。イメージフロー図とは、ボックス及びその接続関係のみを規定したフロー図である。このモジュールは、イベント待ち表記のためのイメージフロー図を作成するイベント待ち表記モジュール111を含んでいる。
タイトルフロー図作成モジュール12
作成されたイメージフロー図の各ボックスに、そのボックスでの処理のタイトルをユーザに入力させることにより、タイトルフロー図を作成する。なお、タイトルとは、処理の概要内容を意味している。
概要フロー図定義モジュール13
作成されたタイトルフロー図(又はタイトル入力前のフロー図)の各ボックスに、処理の内容を表す仕様(関数名を含む)をユーザに入力させることにより、プログラムの概要フロー図を作成する。
概要フロー図新規作成モジュール14
ユーザとの対話により、フロー図に含まれるべきボックスをユーザが設定する度に、該ボックスに仕様(又は、仕様及びタイトル)を入力させることにより、概要フロー図を完成させる。
ガイダンスモジュール15
フロー図作成のための思考手順を、ガイダンスメッセージとしてユーザに提供する。ガイダンスメッセージは、質疑応答形式で行って各ボックスの仕様を定義することにより、概要フロー図を完成させる。オプションで、質疑応答中に所定の設定時間を経過した場合に、別の質問等で入力作業を促すようにする。
ペースメーカモジュール16
ガイダンスモードでフロー図作成中の質疑応答に対し、応答時間の制限を設定し、制限時間を経過した場合、「分かりませんか」等の別の質疑応答で作業を作成者に通知する。また、処理経過時間を分析することにより、作成者の得手/不得手を判定し、作業改善の提言を行う。
詳細フロー図定義モジュール17
階層降り機能を備え、ユーザとの対話に基づき、作成された概要フロー図の第1下層レベルから最下層レベルまでの各層のフロー図(詳細フロー図)を作成する。
【0029】
フロー図作成モードが選択されてフロー図作成モジュール10が起動されると、図3のフロー図に示すように動作する。すなわち、まず、ステップS1において、イメージフロー図作成モードが選択されたか否かを判断し、その結果がYES(肯定)である場合、イメージフロー図作成モジュール11が起動されて、ステップS2において、ユーザとの対話によりイメージフロー図が作成される。その後、タイトルフロー図作成モジュール12が起動され、ステップS3において、タイトルフロー図がユーザとの対話に基づき作成される。タイトルフロー図が完成すると、概要フロー図定義モジュール13が起動され、ステップS4において、概要フロー図定義が、ユーザとの対話に基づいて作成される。概要フロー図定義とは、タイトルフロー図のそれぞれのボックスに処理仕様を入力することにより、メインフロー図である概要フロー図を作成することである。
【0030】
一方、ステップS1においてイメージフロー図作成モードが選択されていないと判定し、かつステップS5において概要フロー図新規作成モードが選択されている判定すると、ステップS6に進んで、概要フロー図新規作成モジュール14が起動され、ユーザとの対話により概要フロー図を作成する。ステップS6における概要フロー図の作成は、フロー図に含まれるべきボックスを設定する度に、該ボックスに仕様(又は、仕様及びタイトル)を入力することにより、概要フロー図を完成させるものである。すなわち、イメージフロー図及びタイトルフロー図を完成させることなく、直接的に概要フロー図を作成するものである。
【0031】
また、ステップS1においてイメージフロー図作成モードが選択されていないと判定し、ステップS5において概要フロー図新規作成モードが選択されていないと判定し、ステップS7においてガイダンスモードが選択されていると判定し、ステップS8においてペースメーカモードが選択されていると判定すると、ステップS9に進んでペースメーカモジュール16が起動され、かつステップS10においてガイダンスモジュール15が起動される。これにより、ユーザとの対話に基づき、ペースメーカ及びガイダンス機能による概要フロー図作成を行う。一方、ステップS8においてペースメーカモードが選択されていないと判定すると、ステップ10に進んでガイダンスモジュール15が起動され、ユーザとの対話に基づき、フロー図作成のガイダンスを行いつつ、概要フロー図を作成する。
【0032】
ステップS4、S6及びS10のいずれかが終了し、詳細フロー図定義モードが選択されると、ステップS11に移行して、詳細フロー図定義モジュール16が起動され、ユーザとの対話に基づいて、詳細フロー図を定義し作成する。詳細フロー図は、上記したように、作成された概要フロー図の第1下層から最下層までのフロー図であり、各層の詳細フロー図は、ステップS2〜S4、ステップS6、ステップS8、及び10のいずれかでの概要フロー図の作成と同様にして作成される。
このようにして、最下層までの詳細フロー図が完成し、それをステップS12において判定すると、フロー図作成モジュール10による処理が終了する。なお、このような階層降り機能により詳細フロー図を作成する場合、上位層のフロー図のボックスに入力される仕様は、該ボックスに対応する下位層の詳細フロー図を表すフロー図ID(関数名)となる。
【0033】
フロー図変換モジュール40の機能は、図2−2に示すように、フロー図の処理ボックス、流入線および流出線との関連を解析するフロー図連係解析モジュール41、各フロー図中のボックス内の内容を解析するボックス内容解析モジュール42、各ボックス内の仕様をソースコードに変換するソースプログラム変換モジュール43、データ定義及び画面定義をソースプログラムに組み込むデータ定義・画面定義ソースプログラム組み込みモジュール44、展開関数を解析する展開関数解析モジュール45、及び展開関数を組み込む展開関数ソースプログラム組み込みモジュール46に大別することができる。
また、検証モジュール50の機能は、図2−3に示すように、処理の通過ルートを表示する表示モジュール51、パス・ポーズ機能による処理結果を取得して表示する取得・表示モジュール52、処理エラーを表示する表示モジュール53、及び、処理の全体の結果を表示する全処理結果表示モジュール54に大別することができる。
【0034】
本発明のシステムはまた、上記したモジュールの機能に関連するデータを格納するデータベース(DB)を備えている。該DBには、図1に示すように、フロー図プレートマスタDB1、フロー図ファイルDB2、ガイダンスマスタDB3、ガイダンスデータDB4、データ定義ファイルDB5、画面定義プレートマスタDB6、画面定義ファイルDB7、言語マスタDB8、コード式記述マスタDB9、ソースプログラムファイルDB10、及び通過履歴/変数値ファイルDB11を備えている。
これらデータベースは、以下のようなデータを格納する。
【0035】
フロー図プレートDB1
フロー図作成モジュール10の機能によるフロー図の作成の際に使用される、スタート端子、エンド端子、処理ボックス、判断ボックス、画面表示ボックス、印刷ボックス、下流出線、上流出線等の基準プレート、イベント処理プログラムの開始ボックス(以下、「イベントボックス」)、イベント処理プログラムの終了ボックス(以下、「イベント終了ボックス」)(以下、これらを総称する場合に「ボックス」と称する)のイメージを記憶している。また、イベントボックスによって指定される複数のボックスの組み合わせ配置からなるイベントフロー図初期ボックス群及びイベント終了ボックスによって指定される複数のボックスの組み合わせ配置からなるイベントフロー図終了ボックス群も、予め記憶されている。
フロー図ファイルDB2
フロー図作成モジュール10の機能によって作成されたフロー図中のボックス毎のデータを格納する。なお、図1においては、フロー図ファイルDB2を2つ表示しているが、これは、処理の流れが明確となるようにするためであり、同一のものである。
ガイダンスマスタDB3
ガイダンスモジュール15によって実行されるフロー図作成時にユーザに質問すべきガイドライン(ガイダンス)のデータを格納し、かつ、ペースメーカモジュール16及びガイダンスモジュール15によって実行されるフロー図作成時に質問に対するユーザの応答時間とユーザへのヒントとを対応づけて記憶している。また、ガイダンスによってフロー図を作成する際の初期フロー形態のデータを記憶している。
ガイダンスデータDB4
ガイダンスモジュール15によって実行されるフロー図作成時に、質問に対するユーザの応答を記憶し、かつ、ペースメーカモジュール16及びガイダンスモジュール15によって実行されるフロー図作成中に、ユーザとの間の質疑応答を、時間に対応させて記憶する。
データ定義ファイルDB5
データ定義作成モジュール20の機能によってPCスクリーン上で設定されたデータ定義を、項目毎のデータとして格納する。
画面定義用プレートマスタDB6
画面定義作成モジュール30による画面定義の作成の際に使用される、ボックス、ボタン等の画面作成に必要なプレートの要素を記憶している。
画面定義ファイルDB7
画面定義作成モジュール30の機能によってPCスクリーン上で設定された画面定義を、画面の構成要素(枠、ボタン、線、表等)毎のデータとして格納する。
言語マスタDB8
フロー図解析変換モジュール40の機能により、作成されたフロー図をソースプログラムに変換する際に参照される、ユーザ入力の仕様言語とソースコードとの対照テーブルを格納している。ソースコードは、プログラム言語の種類に対応して記憶されている。
コード記述式マスタDB9
フロー図解析変換モジュール40の機能により、作成されたフロー図をソースプログラムに変換する際に参照される、ユーザ入力の仕様の配置位置とソースコードの配置との対照テーブルを格納している。また、使用頻度が高い典型的なボックスに対応するソースプログラムのモジュールである関数も、ひな形ライブラリに格納している。ひな形ライブラリには、例えば、画面処理用、印刷処理用、パッチ処理用のひな形の関数(それぞれ複数)が含まれる。
ソースプログラムファイルDB10
フロー図解析変換モジュール40の機能によって作成されたソースプログラムを格納する。
通知履歴/変数値ファイルDB11
作成されたソースプログラムを検証モジュール50によってランさせて検証する際に、フロー図上に設定された1又は複数の点の通過履歴、及び、フロー図中の変数の値を記憶する。
【0036】
次に、本発明のシステムの各モジュール10〜50の機能によってPCスクリーン上に表示される画像を参照することにより、本発明のシステムの構成をより詳細に説明する。
ユーザが、PCスクリーン上で本発明のソースプログラム作成アプリケーションを起動し、フロー図作成モードを選択すると、フロー図作成モジュール10が起動する。そしてユーザがフロー図作成メニューからイメージフロー図作成モードを選択すると、イメージフロー図作成モジュール11が起動される。
イメージフロー図作成モジュール11が起動されると、フロー図作成領域がPCスクリーン上に表示され、かつ、プログラムフロー図に含まれるイメージボックスを表示したプレートがフロー図プレートマスタDB1から読み出され、図4−1に示すようなプレート一覧としてPCスクリーンの下端部又は右端部等の適宜の位置に自動的に表示される。それと共に、PCスクリーンのフロー図作成領域に、図4−2に示すように、スタート端子及び下流出線が自動的に表示され、かつ、その下流出線の下端に、処理ボックスが破線(又は点滅状態)で自動的に表示される。また、この処理ボックスの下端には下流出線が破線で自動的に表示される。
【0037】
その後、ユーザが、表示されたプレート一覧から、画面表示ボックス、判断ボックス、ファイル処理ボックスを順次選択すると、図4−3に示すように、PCスクリーンのフロー図作成表示領域に、画面入力処理ボックスA、判断ボックスB、ファイル処理ボックスCが表示され、かつそれぞれのボックスが表示される毎に、その下端に下流出線a、b1、cが表示される。また、ボックスが新たに表示される度に、破線の処理ボックス及び破線の下流出線がその下端に位置するように、自動的に更新表示される。図4−3の例においては、ファイル処理ボックスCが最後に選択されたボックスとなるため、その下流出線cの下端に、破線の処理ボックス及び破線の下流出線が自動的に表示されている。
【0038】
図4−3に示された状態で、判断ボックスBの右先端をユーザが選択すると、図4−4に示すように、判断ボックスBの右端から右流出線b2を自動的に表示する。そして、図4−3の状態での破線の処理ボックス及び下流出線を自動的に削除して、判断ボックスBの右側に、破線の処理ボックス及び右流出線を自動的に表示する。図4−4に示された状態で、ユーザが右流出線b2の右端を選択すると、図4−5に示すように、右流出線b2に連結された下流出線が表示され(連結下流出線b2)、破線の処理ボックス及び下流出線がその下端に表示される。
【0039】
次いで、ユーザが、プレート一覧から処理ボックスを選択すると、図4−6に示すように、新たに処理ボックスDとその下流出線dが配置され、かつ、その下流出線の下端に、処理ボックスが破線(又は点滅状態)で自動的に表示される。また、この処理ボックスの下端には下流出線が破線で自動的に表示される。下流出線dをした流出線cに流入するため、処理ボックスDの下端の下流出線d及びファイル処理ボックスCの下端の下流出線cを選択すると、図4−7に示すように、新たに配置された処理ボックスDの下流出線が下流出線cに結合され、連結下流流出線dが表示される。その後、ユーザが判断ボックスEを選択し、かつその流出線を設定し、そして、印刷処理ボックスF及びエンド端子を順次選択すると、図4−8に示すようなイメージフロー図が作成される。このとき、ユーザが、処理順序番号を付けるためにPCスクリーン上で「付番」ボタン(不図示)を選択すると、図4−8に示すようなボックス番号が、それぞれのボックスに自動的に付番される。なお、ボックスが選択されて配置される度に、仮のボックス番号を付与し、「付番」ボタンが選択された時点で、正規のボックス番号を付与するようにしても良い。
【0040】
イメージフロー図を作成後、該フロー図中からあるボックスを削除したい場合、ユーザがそのボックスを選択することにより表示されるメニューから「削除」を選択することにより、該ボックスが削除される。また、あるボックスを追加したい場合、ユーザがプレート一覧からボックスを選択し、かつ、挿入すべき位置にカーソルを移動させることにより、追加が実行される。このような変更が実行された後、「付番ボタン」を再度選択することにより、ボックス番号が付け直される。
作成されたイメージフロー図に含まれる各ボックスの種別及びボックス相互間の接続関係は、ボックス番号、フロー図名、及びフロー図IDに対応付けられて、フロー図ファイルDB2に格納される。
【0041】
次に、ユーザがタイトルフロー図作成モードを選択すると、タイトルフロー図作成モジュール12が起動され、イメージフロー図中の各ボックスに、ユーザがタイトルを入力することが可能となる。すなわち、ユーザがボックスを選択する毎に、タイトル入力画面(日本語名入力画面)が表示され、該画面上でユーザがタイトルを入力する。そして、ユーザが全てのボックスのタイトルを入力し、かつ、判断ボックスの分岐条件を入力することにより、タイトルフロー図が作成される。
図5は、図4−8に示したイメージフロー図の各ボックスにタイトルが入力されて、タイトルフロー図が作成された状態を示している。この例のフロー図名は、「NIPPO−HIZUKE」である。各ボックスの入力されたタイトルは、そのボックス番号に対応付けられ、例えば、ボックス番号2に「画面入力処理」が対応付けられ、ボックス番号3に「日付判定処理」が対応付けられ、・・・、フロー図ファイルDB2に記憶される。
【0042】
タイトルフロー図の作成が完了し、ユーザが概要フロー図定義モードを選択すると、概要フロー図定義モジュール13が起動される。この場合、タイトルフロー図の作成と同様に、イメージフロー図(又はタイトルフロー図)がPCスクリーン上に表示され、表示されたフロー図中のボックスをユーザが選択すると、仕様入力画面が表示される。該画面上でユーザが仕様を入力し、そして全てのボックスの仕様を入力することにより、メインプログラムに相当する概要フロー図が作成される。概要フロー図の各ボックスに関する全てのデータは、ボックス毎のフロー式マスタとしてフロー図ファイルDB2に格納される。仕様入力及びフロー図マスタについては、後述する図7−1〜図7−4の説明から明らかとなるであろう。
図6は、図4−8に示したイメージフロー図の各ボックスの仕様が入力されたことにより、概要フロー図が作成された状態を示している。
【0043】
上記においては、タイトル及び仕様を別々の画面上で入力する場合について説明した。このように構成する代わりに、タイトルフロー図作成モジュール12及び概要フロー図定義モジュール13の機能を一体化し、これらを同一の入力画面上で入力するようにしても良い。これについて、ユーザにより判断ボックスが選択された場合を例として、以下に説明する。
ユーザが、図4−8に示したイメージフロー図中の判断ボックス(ボックス番号3)を選択すると、図7−1に示すような入力画面が表示される。該画面には、複数の入力欄が表示され、これら入力欄にはフィールド番号Fxxxが対応付けられている。そして、未入力の1つのタイトル入力欄及び4つの仕様入力欄とともに、イメージフロー図作成時に入力された入力線(流入線)、出力線(流出線)、並びに、現在のボックス番号及び次のボックス番号が表示される。また、イメージフロー図作成時に設定されなかった流入/流出線の設定可能位置及び分岐条件の設定可能位置にも、入力欄が表示される。
【0044】
図7−1の例においては、ボックス番号3がフィールド番号F001に対応する位置に表示され、出力線はフィールド番号F036及びF037に対応する位置に表示され、これら出力線の近傍であるフィールド番号F035及びF038に対応する位置に分岐条件(=、≠、>、<、≧、≦)の入力欄が表示される。また、判断ボックスであることを示すボックス種別コード「06」も表示され、ボックス種別コードにはフィールド番号F002が対応付けられている。ボックス種別コードは、ユーザがプレート一覧でボックスを選択したときに、その種別が判断され、該種別に対応するコードが付与される。
【0045】
ユーザが、図7−1に示した画面上で、図7−2に示すように、タイトル入力欄(F021)に「日付チェック」を入力し、4つの仕様入力欄に「D1(データ名)」(F011)、「050303」(F013)、「日付」(F012)、及び「今日」(F014)を入力すると、図7−3に示すような、ボックス番号3のマスタが作成される。
また、ユーザが、図4−8に示したフロー図中で、例えばボックス番号5の処理ボックスを選択し、その仕様が展開関数「SUBPG01」である場合(ボックス種別コード:10)、図7−4に示すような、ボックス番号5のマスタが作成される。
このようにして、イメージフロー図中の全ボックスのタイトル及び仕様が入力され、その結果、ボックス毎のマスタが作成される。作成されたボックスマスタは、そのフロー図のフロー図IDに対応付けられてフロー図ファイルDB2に記憶される。
【0046】
上記説明においては、図4−8に示すようなイメージフロー図を作成した後に、ボックス毎にタイトル及び仕様を入力することを前提としているが、概要フロー図新規作成モジュール14を起動することにより、イメージフロー図を作成又は完成させずに、ボックス毎にタイトル及び仕様を入力することができる。このモジュール14は、ユーザがPCスクリーン上で、プレート一覧からボックスを選択してフロー図作成領域に表示させる度に、入力画面を表示させ、該画面上でボックスの入出力線、タイトル及び仕様、分岐条件(判断ボックスの場合)をユーザが入力することができる。例えば、判断ボックスの場合、該判断ボックスをフロー図作成領域に表示した時点で、判断ボックス上に図7−1に示すような入力欄を表示し、該入力欄に、入出力線、分岐条件(=、≠、>、<、≧、≦)、タイトル、及び仕様をユーザが入力するようにする。分岐条件は、入力欄を表示せずに、判断ボックスの端部近傍を指定し、それによって表示されるプルダウンメニューから選択することによって入力されるようにしてもよい。同様に、入出力線も、入力欄を表示せずに、判断ボックスの端部を指定することによって表示されるプルダウンメニューから選択するようにしてもよい。
これにより、図7−3(判断ボックス用)及び図7−4(処理ボックス用)に示したようなボックスマスタが作成される。
また、概要フロー図新規作成モジュール14を起動することなく、イメージフロー図作成モジュール11、タイトルフロー図作成モジュール12、及び概要フロー図定義モジュールを適宜切り替えて起動することにより、1又は複数のボックスをフロー図作成領域に配置させるたびに、タイトル及び/又は仕様を入力させることもできる。
【0047】
ここで、本発明のシステムのフロー図作成モジュール10のイベント待ち表記モジュール111において実行される、ランダムに発生される複数のイベントの待ち状態を含んだフロー図を作成する機能について、図7−5のフロー図を参照して詳細に説明する。なお、この機能は、複数のイベント待ちの状態を、ユーザが容易かつ正確にフロー図上で表現できるようにしたものであるが、基本的には、図4−1〜図7−4に関連して説明した機能を用いている。
【0048】
まず、ユーザが複数のイベント待ち状態を含んだフロー図を作成しようとした場合、フロー図作成モードを選択する。これにより、先に説明したように、フロー図作成モジュール10が起動され、そして、ユーザがフロー図作成メニューからイメージフロー図作成モードを選択すると、イメージフロー図作成モジュール11が起動され、フロー図作成領域がPCスクリーン上に表示され、かつ、図7−5のステップS70において、フロー図プレートマスタDB1から、図4−1に示されるプレート一覧がPCスクリーンの適宜の位置に自動的に表示される。これとともに、先に説明したように、図4−2に示すような、初期画面、すなわち、実線のスタート端子及び下流出線、並びに点線の処理ボックス及び下流出線を表示した初期画面がフロー図作成領域に自動的に表示される。
【0049】
この状態で、ユーザが、表示されたプレート一覧からイベントボックスを選択すると、イメージフロー図作成モジュール11は、それを判断し、ステップS71においてイベント待ち表記モジュール111を起動する。モジュール111は、起動されると、ステップS72において、図4−1に示した初期画面をフロー図作成領域から自動的に削除し、フロー図プレートマスタDB1からイベントフロー図初期ボックス群を読み出して自動的に表示させる。イベントフロー図初期ボックス群は、例えば図7−6に示すような構成を有し、この例では、ボックス番号1〜12が付けられたスタート端子、処理ボックス、画面表示ボックス、処理ボックス、仮想イベント待ちボックス、処理ボックス、3つの判断ボックス、2つの処理ボックス、及びリターン端子、並びに、それぞれのボックスからの流出線、及びリターン端子から仮想イベント待ちボックスに向かう破線の矢印を含んでいる。イベントフロー図初期ボックス群は、上記した全てのボックスを含む必要がなく、少なくとも、仮想イベント待ちボックス及びリターン端子を含み、かつ、リターン端子から仮想イベント待ちボックスへの矢印(図の例では、点線の矢印)を含んでいればよい。この場合、スタート端子等の他のボックスは、図4−3〜図4−7を参照して説明したように、ユーザがプレート一覧から適宜選択して、イベントフロー図作成領域に配置すればよい。
そして、イベント待ち表記モジュール111は、ユーザの次の動作を待機する。
【0050】
ユーザが、この画面上に表示されたフロー図にさらに追加すべきボックス(流出線及び流入線を含む)がある場合には、プレート一覧から適宜のボックスを選択しかつその配置位置をカーソルで指定する。イベント待ち表記モジュール111は、それをステップS73で判定し、ステップS74においてボックスの追加処理を行う。逆に、削除すべきボックスがある場合には、ユーザはそのボックスを選択して削除メニューを選択すればよい。これは、ステップS75及びS76において実行される。ボックスの追加処理において、ユーザが判断ボックス(ボックス番号9)の下流の位置を新たなボックスの配置位置として指定した場合には、イベント待ち表記モジュール111は、判断ボックス(ボックス番号9)とリターン端子(ボックス番号12)との間に直接ルートが形成されないように、流出線を自動的に修正する。例えば、図7−6において、判断ボックス(ボックス番号9)の下流から横方向に延びている流出線を、該判断ボックスからの下流出線に自動的に変更する。
【0051】
図7−7は、図7−6に示した画面上のフロー図において、ユーザが、判断ボックス(ボックス番号9)の下流に3つの判断ボックス(ボックス番号13、15、17)を追加し、かつ、それぞれに対応して3つの処理ボックス(ボックス番号14、16、18)を追加し、さらに、これらそれぞれのボックスから流出線が追加された状態を示している。この場合も、最終追加された流出線(ボックス番号17の判断ボックスからの)の下方に、破線の処理ボックス及び下流出線が自動的に追加される。
【0052】
このような状態で、ユーザがプレート一覧からイベント終了ボックスを選択すると、イベント待ち表記モジュール111は、ステップS77においてそれを判定し、そしてステップS78において、破線の処理ボックス及び流出線を自動的に削除し、その位置に、フロー図プレートマスタDB1からイベント終了ボックスに対応して記憶されている複数のボックスの組み合わせすなわちイベントフロー図終了ボックス群を読み出して配置する。そして、ユーザが画面上の「付番ボタン」を選択することにより、最終的な正規のボックス番号が自動的に付けられ、図7−8に示すようなフロー図が形成される。この例では、イベントフロー図終了ボックス群には、1つの判断ボックス(ボックス番号13)、その横方向に配置された1つの処理ボックス(ボックス番号19)、これらからの横方向の流出線、及び、追加された判断ボックス(ボックス番号13)からリターン端子(ボックス番号12)に向かう流出線が含まれている。
【0053】
このようにしてイベント処理を含むプログラムに対応するイメージフロー図が作成され、そして、イベント待ち表記モジュール111は、ステップS79において、イメージフロー図作成の終了を検出すると、ステップS80において、作成されたフロー図をフロー図IDに対応付けてフロー図ファイルDB2に記憶し、これにより、イメージフロー図作成モードが終了する。ステップS79における判定は、「付番ボタン」が選択されたか否かによって判定してもよく、また、「終了ボタン」が選択されたか否かによって判定してもよい。なお、図7−6に示したように、イベントフロー図初期ボックス群には、最終段に表示された判断ボックスの下流線がリターン端子(ボックス番号12)に接続されている。したがって、ステップ72においてイベントフロー図初期ボックス群を表示しただけで、イメージフロー図作成を終了することもできる。
【0054】
ユーザは、このようにして作成されたイメージフロー図のそれぞれのボックスにタイトル及び分岐条件を入力するために「タイトルフロー図作成モード」を選択すると、先に説明したように、タイトルフロー図作成モジュールが起動され、イメージフロー図中の各ボックス及び流出線に、ユーザがタイトル及び分岐条件を入力することが可能となる。ユーザが作成を意図しているプログラムが氏名住所登録プログラムである場合、例えば、図7−9に示すように、タイトル及び分岐条件が入力される。図7−9の例では、ボックス2〜22にそれぞれ、「描画前初期処理」、「画面」、「描画後初期処理」、「仮想イベント待ち」、「イベント信号編集処理」、「信号“0”か?」、「確認ボタンか?」「氏名か?」、「フリガナ(氏名)か?」、「郵便番号か?」、「住所か?」、「フリガナ(住所)か?」、「終了か?」、「カーソル移動処理」、「確定処理」、「氏名処理」、「フリガナ(氏名)処理」、「郵便番号処理」、「住所処理」、「フリガナ(住所)処理」、「終了処理」のタイトルがそれぞれ入力され、かつ、分岐条件「YES」及び「NO」が判断ボックス(ボックス番号7〜14)にそれぞれ入力された状態を示している。仮想イベント待ちボックス(ボックス番号5)は、特殊な機能を表すためのボックスであり、したがって、予めタイトル(及び仕様)を入力しておいても良い。
【0055】
なお、ユーザがタイトル及び分岐条件を入力中であっても、不要なボックスがある場合、先に説明したように、該ボックスを選択して「削除」メニューを選ぶことにより、削除することができる。また、イベント処理のボックスを追加したいボックスがある場合、先に説明したように、ユーザがプレート一覧からボックスを選択し、そして挿入すべき位置にカーソルを移動させることにより、ボックスを追加することができる。
また、先に説明したように、プレート一覧から1又は適宜数のボックスを選択してフロー図作成領域に表示する度に、ボックスのタイトル、入出力線、分岐条件(判断ボックスの場合)をユーザが入力できるようにしてもよい。
作成されたタイトルフロー図も、フロー図ファイルDB2に記憶される。
【0056】
タイトル及び分岐条件の入力が完了すると、次にユーザは、仕様を入力するために「概要フロー図定義モード」を選択すると、概要フロー図定義モジュール13が起動され、先に説明したようにして、ユーザはそれぞれのボックスに仕様を入力する。図7−10は、このようにして作成された概要フロー図を示している。
なお、上述したように、コード式記述マスタDB9には、使用頻度が高いボックスに対応して既に作成されているプログラムモジュールのライブラリが記憶されており、これらプログラムモジュールを特定するプログラムモジュールIDすなわち関数名を仕様として入力することができる。図7−10において、ボックス番号2〜4のボックスに入力された仕様「GPG_01()」、「GPG_02()」、「GPG_02()」は、これらボックスに対応する関数名である。
【0057】
また、図8を参照して以降で説明するように、概要フロー図中の複雑な処理を伴うボックスは通常、詳細フロー図定義モジュール17の階層降り機能により、より下層のフロー図に展開される。このような、下層のフロー図に展開されるボックスにおいては、「仕様」とは、当該ボックスに対応する下層のフロー図(及びそれに対応するソースプログラム)を特定するフロー図IDである。図7−10において、ボックス番号15〜22のボックスに入力された仕様「PG_11()」、「kakutei ()」、・・・は、下層のフロー図IDである。ボックス6における仕様は「PG_05()」であり、この「PG_05()」も、下層のフロー図IDを示している。
概要フロー図定義モジュール13は、ひな形ライブラリに記憶されたプログラムモジュールすなわち関数の内容及び関数名、並びに、予め作成されかつソースプログラムに変換されてソースプログラムファイルDB10に記憶された下層のフロー図の内容及びフロー図IDを、画面上でユーザが検索可能に提供する。これを参照して、ユーザは、フロー図のボックスに、関数名及び下層フロー図のIDを仕様として入力することができる。なお、該当する下層のフロー図が未作成の場合、該下層のフロー図IDを仕様として予め設定し、その後、階層降り機能により下層のフロー図を作成すればよい。
【0058】
一方、判断ボックス7〜14に入力された仕様はそれぞれ、「SINGO:0」、「button:8004」、「now:100101」、「now:100102」、「now:100103」、「now:100104」、「now:100105」、「END_FLG:0」であり、判断処理において対比すべき対象を示している。
このようにして作成された概要フロー図も、フロー図ファイルDB2に記憶される。
【0059】
以上から明らかなように、本発明のシステムの支援下で作成されるイベント処理を含むプログラムのフロー図は、イベント処理がランダムに生じる場合であっても、イベント待ち状態をユーザに分かりやすい状態で表示することができ、したがって、ユーザは、意図する処理内容に合致するフロー図を容易に作成することができる。
【0060】
また、従来、処理ボックスに記述する言語は、通常、ソースプログラムを作成するため、メーカの言語特有の形式に則った記述となっている。本発明のシステムにおいては、メーカの言語特有の形式に制約されない自由な表記を行うことができる。このような表記方式を、本明細書においては「新表記」と称し、これにより、ユーザ独自の分かり易い言語で仕様を作成することができる。すなわち、表記されたユーザ言語は、言語マスタを介してソースコード変換時、メーカ言語の形式に変換される。このため、この機能を使用すれば、ソースコードに変換する時点で、変換後の汎用コンピュータ言語(C、C++,Java(登録商標)等)を自由に選択できる。
仕様からソースコードへの変換については、以降で詳細に説明する。
【0061】
次に、詳細フロー定義モードが選択されると、詳細フロー定義モジュール17が起動され、ユーザとの対話の下で、作成されたメインフロー図である概略フロー図の下層の詳細フロー図が作成される。詳細フロー定義モジュール17の動作について、図8を参照して説明する。
図8に示すように、概略フロー図であるメインフロー図Aの処理ボックスに関数Bが設定され、該関数Bが複雑な構造を有している場合、該フロー図上でユーザが関数Bを指定しかつ階層降りメニューを選択すると、関数Bを処理するためのフロー図作成画面が自動的に表示される。該画面上でユーザと対話して、上述した概略フロー図の作成と同様な処理を行うことにより、サブフロー図Bを作成する。その作成されたサブフロー図Bが関数Cを含んでいる場合、該関数Cをユーザが指定し階層降りメニューを選択すると、関数Cのフロー図作成画面が表示され、サブフロー図Cを作成する。サブフロー図Cが関数Dを含んでいる場合、同様にして、該関数Dを処理するためのサブフロー図Dを作成する。
このようにして、上記の手順を繰り返すことにより、任意の階層のサブフロー図を作成することができ、したがって、メインフロー図中の処理が複雑であっても、詳細フロー図定義モジュール17のこのような機能(階層降り機能)を用いることにより、最下層のフロー図まで容易に作成することができる。
【0062】
ユーザが概略フロー図を作成しようとしてガイダンスモードを選択すると、ガイダンスモジュール15が起動される。すると、ガイダンスモジュール15は、ガイダンスマスタDB3から初期フロー形態のデータを読み出し、図9−1に示すように、PCスクリーンのフロー図作成領域に、スタート端子、初期処理ボックス、結合子(G1)、及びエンド端子を自動的に生成する。
図9−2は、ガイダンスマスタDB3に格納されているデータの一例を示しており、ガイダンスマスタDB3には、初期フロー形態以外に、フロー図のレベル形態に対応させて、ユーザに質問すべき内容がガイダンスデータとして格納されている。
初期フロー形態を表示した後、ガイドラインモジュール15は、ガイダンスマスタDB3に予め記憶されているガイドラインに基づいて、大きな業務の数(業務数)を質問する(例えば、「業務数は幾つですか」)。それに対応して、例えば、業務数=3の応答が入力された場合、図9−3に示すように、判断ボックスを4個、処理ボックスを3個、結合子とエンド端子との間に自動的に配置させる。
【0063】
その後、1〜3番目の業務のタイトル名の質問に対して、例えば、「日報処理」、「月末処理」、「年度末処理」が入力された場合、図9−3に示した判断ボックス及び処理ボックスに、対応するタイトルが自動的に表示される。次いで、追加したい業務についての質問に対してユーザが追加業務有りと応答し、その4番目の業務のタイトルが「集計処理」であると入力した場合、図9−4に示すような画面となる。さらなる追加業務がない場合、1番目の「日報処理」の機能の数を質問し(例えば、「では、日報処理の機能はいくつですか」)、それに応答して3機能であると入力された場合、図9−5に示すように、図9−4の日報処理ボックスを削除して、3つの判断ボックスと3つの処理ボックスを自動的に表示させる。そして、3つの処理の内容が「登録処理」、「修正処理」、「削除処理」であることユーザから取得すると、その結果、図9−6に示すようなフロー図が表示される。
このようにして、ガイダンスマスタDB5に記憶されたガイダンスに基づいて、ガイダンス及びユーザ応答に基づいた表示を反復的に行うことにより、概略フロー図を作成することができる。概略フロー図の内容は、上記したようにフロー図ファイルDB2に記憶され、また、質疑応答の内容は、ガイダンスデータとしてガイダンスデータDB4に記憶される。
【0064】
このとき、1つの処理に複数の処理(当初)が含まれ、その複数の処理の1つにさらに複数の処理(第1の展開)が含まれるというように、複数の処理に進展することが通常である。このような場合を本明細書においては「派生関係にある」と称し、当初のボックスを派生元のボックスと称し、該ボックスの進展した複数のボックスを派生先のボックスと称する。例えば、図9−4に示すようなタイトルフロー図が作成されている場合、そのフロー図の「日報処理」ボックス(ボックス番号9)と、図9−6の判断ボックス(ボックス番号14〜16)及び処理ボックス(ボックス番号17〜19)とは派生関係にあり、前者が派生元であり後者が派生先である。また、派生元ボックス(当初ボックス)が含まれるフロー図を当初フロー図と称し、派生先(展開ボックス)が含まれるフロー図を展開フロー図と称する。
【0065】
本発明のシステムにおいては、このような派生関係も、フロー図ファイルDB2に記憶する。例えば、派生先のボックス(ボックス番号14〜19)のボックスマスタに、派生元のボックスのID(すなわちボックス番号)を、派生関係のデータとして記憶する。そして、図9−4のフロー図を表示した状態で、派生元であるボックス(ボックス番号9)を選択すると、該ボックスに置き換わって派生先の複数のボックス(ボックス番号14〜19)が表示され、逆に、図9−6のフロー図を表示した状態で、派生先の複数のボックス(ボックス番号14〜19)を選択すると、これらボックスに置き換わって派生元のボックス(ボックス番号9)が表示される。
このような派生関係の表示により、派生のいきさつ及びプログラムの論理の進展を把握することが容易になる。
【0066】
ユーザがペースメーカ機能を選択すると、ペースメーカモジュール16が起動される。ペースメーカモジュール16は、ガイドラインモジュール15と共同して処理を行うものであり、ペースメーカモジュール16が起動されると、ガイドラインモジュール15も起動される。
そして、ガイダンスモジュール15による質問に対してユーザが応答する迄の時間を、その都度計測し、計測した時間を、質問内容及び応答内容とともにガイダンスデータとしてガイダンスデータDB4に記憶する。ユーザが各質問に対する応答を第1の所定時間(例えば、30秒又は1分)以上入力しない場合、応答を促すメッセージをユーザに提供し、第2の所定時間(例えば、2分)以上入力しない場合、その質問に類似するケースをガイダンスマスタDB3から検索し、応答のヒントをユーザに提供する。また、第3の所定時間(例えば、5分)以上応答がない場合、処理を中断するか継続するかの確認を行い、中断の場合は今までに作成されたフロー図をフロー図ファイルDB2に保存し、処理を終了する。ユーザが継続を選択した場合、上記した処理を繰り返す。
ガイダンスモジュール15及びペースメーカモジュール16の機能により完成された概要フロー図の内容は、フロー図ファイルDB2に格納される。
【0067】
図10−1は、ペースメーカモードで実行されたときのガイダンスデータDB4に記憶されたデータを例示している。なお、ペースメーカモードではなく、ガイダンスモードが実行された場合には、時間に関するデータがガイダンスデータDB4に記憶されず、質問とそれに対する応答との関係のみが記憶される。
また、図10−2は、図10−1に示したガイダンスデータをガイダンスタイムテーブルとして表したものである。ペースメーカモジュール16は、このようなガイダンスタイムテーブルをPCスクリーン上に表示させる機能を備え、これにより、ユーザの作業効率の問題点を把握させることができる。例えば、図10−2の例において、右下がりの直線において、その勾配が大きいほど、ユーザの応答に時間がかかっていることを示している。したがって、勾配が大きい直線に対応する質問は、ユーザに問題があるのか又は仕様に問題があるのか等の原因により、応答が遅れたと推定することができ、今後の課題とすることができる。
【0068】
次に、データ定義作成モジュール20について、詳細に説明する。データ定義作成モジュール20が起動され、そのメニュー画面からファイルレイアウトが選択されると、図11−1に示すようなファイル情報ボックスの入力画面が表示される。該入力画面上でファイル属性(ファイル名、日本語名、レコード長、キー長、形式)がユーザにより入力される。図11−1は、ファイル属性が入力された後の画面を示しており、この例では、ファイル名=KOKYAKU−F、日本語名=顧客ファイル、レコード長=123、キー長=7、形式=1:ISAMである。
その状態で、ユーザが「確定」ボタン(不図示)を選択すると、図11−2に示すように、「ファイルレイアウト」の下層位置に、ファイル情報ボックス「KOKYAKU−F」が自動生成されて表示され、かつレコード長が123であること及び顧客ファイルであることが表示される。
【0069】
次いで、図11−3に示すような項目情報ボックスの入力画面を表示する。この入力画面上で項目属性(項目名、日本語名、タイプ、桁数)を入力し、ユーザが確定ボタンを選択すると、図11−4に示すような画面になる。この例においては、項目名=R1000、日本語名=氏名レコード、タイプ=文字、桁数=123であり、「KOKYAKU−F」の下層に「R1000」のレコード情報ボックスが自動生成されて表示され、かつ、レコード長が123であること及び氏名レコードであることが表示される。
【0070】
レコード名「R1000」のレコード情報の内訳項目(すなわち、下層の項目)を作成する場合、該「R1000」のボックスの右端をユーザが指示する。すると、図11−5に示すように、該ボックスの下層位置に、項目情報ボックスを仮生成し破線で表示する。黒丸は、ユーザが選択した位置(ボックスの右端)を表している。そして、再度、図11−3に示すような項目情報ボックスの入力画面を表示する。ユーザが該画面上で項目属性を、例えば、項目名=K1100、日本語名=キー部、桁数=7を入力すると、その結果、図11−6に示すように、項目情報ボックス「K1100」が自動作成され表示され、かつ、キー部であること及び桁数7が表示される。同様にして、順次下層の項目ボックス及びその属性が設定される。
【0071】
同一層に新たな項目情報ボックスを作成したい場合、ユーザは、その層のボックスの上辺又は下辺を指定する。すると、図11−7に示すように、当該項目情報ボックスの上又は下(ただし、同一層)に新たな項目情報ボックスが仮生成されて破線で表示される。図11−7の例においては、項目「K1110」の下辺が選択されたか、又は項目「K1130」の上辺が選択されたかのいずれかである。
既に設定した項目情報ボックスの上位層に、新たな項目情報ボックスを作成したい場合、ユーザは、当該項目情報ボックスの左辺を指定する。その結果、図11−8に示すように、当該項目情報ボックスの1つ上位の層(親層)に、新たな項目情報ボックスを仮生成し表示する。
これら仮生成された項目情報ボックスについても、図11−3に示した項目情報ボックスの入力画面上でユーザが属性を入力して確定することにより、それら属性情報がファイルレイアウト画面上で表示される。
【0072】
このようにして、図11−9に示すような、データ定義情報のファイルレイアウトがツリー構造で作成され完成される。作成されたファイルレイアウトは、データ定義情報ファイルDB5に記憶される。
完成された又は未完成状態のファイルレイアウト中のレコードレイアウト「R1000」を選択すると、この項目の内容が、図11−10に示すような形態で出力される。完成された又は未完成状態のファイルレイアウトを修正する必要がある場合、例えば、新たな項目を追加する必要がある場合、図11−10に示したような空白が利用されることになる。空白部が存在しない又はその桁数が不足する場合、アラームが表示される。
【0073】
次に、画面定義モジュール30の構成を、図12−1に示す画面を定義する場合を例にとって、詳細に説明する。画面定義モードが選択されて画面定義モジュール30が起動されると、画面レイアウト領域が表示され、かつ、画面定義用プレートマスタDB6から画面定義用のプレート一覧を読み出して、PCスクリーン上の適宜の位置に表示される。図12−2は、読み出された画面定義プレート一覧の一部を示している。
【0074】
ユーザが枠(表示枠)FRを作成したい場合、画面定義プレート一覧から枠プレートを選択すると、図12−3に示す枠フィールド属性入力画面が自動的に表示される。この画面上でユーザが線の太さ、線種、及び線の色を入力(または、予め表示された初期値を変更)し、画面レイアウト領域上で、ユーザがマウスを操作してカーソルを移動させることにより、入力された太さ、線種及び色の線の図形描画が実行され、枠(図12−4の枠FR)が表示される。生成された枠のX−Y座標は、自動的に取得される。そして、図12−3に示す種々の属性が、枠IDに対応付けられて、画面定義ファイルDB7に格納される。
【0075】
次いで、ユーザが画面定義プレート一覧からボタンプレートを選択し、図12−4に示すボタンフィールド属性入力画面から属性を入力し、かつカーソルを移動操作することにより、図12−5に示すように種々のボタンが画面上で作成される。ボタン上のタイトル(「戻り」、「検索」、「先頭」、「地区」)は、図12−4に示したボタンフィールド入力画面の表示文字の欄に、タイトルをユーザが入力することにより、表示される。また、各ボタンの開始位置及び終了位置のX−Y座標が、作成されたボタンの位置座標を読み取ることにより自動的に取得される。そして、図12−4に示す種々の属性が、各ボタンIDに対応付けられて画面定義ファイルDB7に記憶される。
【0076】
同様にして、文字フィールド、線、固定文字の画面要素が作成され、図12−1に示した画面が作成される。そして、それらの定義が画面定義ファイルDB7に格納される。図12−6〜図12−8は、文字フィールド、線、数値フィールドの属性入力画面を示しており、これらの属性情報がそれぞれのIDに対応付けて画面定義ファイルDB7に格納される。
【0077】
詳細フロー図が作成され、データ定義及び画面定義が作成された後、ユーザが変換モードを選択してフロー図解析変換モジュール40を起動すると、詳細フロー図からソースプログラムが自動的に作成される。このとき、フロー図解析変換モジュール40のフロー図連係解析モジュール21(図2−2)が、詳細フロー図のスタート端子に接続されたボックスとその流出線を読み取り、幹線に沿って連係(すなわち、各ボックスの下流側ボックスがどれであるか)を解析し、かつ、処理ボックス内容解析モジュール22が各ボックスの仕様内容を解析する。このような処理を繰り返し、エンド端子までの連係及び仕様内容を解析する。判断ボックスについては、幹線及び分岐線をともに解析するが、判断ボックスの上下左右の入出力条件を確認し、分岐方向を確認する。
【0078】
フロー図が矛盾なく完結している場合、ソースプログラム変換モジュール23が、各ボックス内の処理内容すなわち仕様をソースコードに変換する。処理内容に外部情報を必要とする画面、展開関数等が含まれている場合、そのボックスの処理内容を一時保管する。そして、幹線上の他のボックスの内容をソースコードに変換し、次いで分岐線上のボックスの内容をソースコードに変換する。その後、データ定義・画面定義ソースプログラム組み込みモジュール24と共同して、一時保管されていたボックスの処理内容を、その画像、関数等の出現順に外部情報を取得しながら解析し、ソースプログラムに組み込むよう変換を行う。展開関数に関しては、展開関数解析モジュール25が、図8に関連して説明したような階層降り機能を用いて解析し、展開関数ソースプログラム組み込みモジュール26が、その結果をソースプログラムに組み込む。
【0079】
ところで、処理ボックスに記述する言語は、通常、ソースプログラムを作成するため、メーカの言語特有の形式に則った記述となっている。本発明のシステムにおいては、メーカの言語特有の形式に制約されない自由な表記を行うことができる。このような表記方式を、本明細書においては「新表記」と称し、これにより、ユーザ独自の分かり易い言語で仕様を作成することができる。すなわち、表記されたユーザ言語は、言語マスタを介してソースコード変換時、メーカ言語の形式に変換される。このため、この機能を使用すれば、ソースコードに変換する時点で、変換後の汎用言語(C、C++、BASIC、Java(登録商標)等)を自由に選択できる。
【0080】
言語マスタDB8及びコード式記述マスタDB9を参照して、ユーザ言語となる新表記方式の仕様をC++言語に変換するが、言語マスタDB8に格納されている新表記方式の仕様とC++言語のソースコードとの対応を例示する。
・処理内容「A領域の文字列とB領域の文字列を結合して、A領域に格納する」
新表記方式: A+=B;
C++: stract (A,&B);
となる。
【0081】
・処理内容が「C領域の数値にJ領域の数値を加え、その結果をC領域に格納する。そして、J領域の数値に1を加える」
新表記方式: C=C+J
J=J+1
C++言語: C=C+J J++;
・処理内容が、「J領域の数値に1を加える。そして、C領域の数値にJ領域の数値を加え、その結果をC領域に格納する」
新表記法式: J=J+1
C=C+J
C++言語: C=C+J ++J;
・比較演算子(等号、不等号、以上、以下)
新表記方式: = ≠ ≦ ≧
C++言語: = = != <= >=
【0082】
・処理内容「指定された時間だけ処理を中断する(中断時間:ミリ秒)」
新表記方式: Cyudan (ただし、中断時間は1.5秒を標準として設定)
C++言語: Sleep(1500) (ただし、中断時間は1.5秒間に指定)
・処理内容「指定された音を指定された継続時間鳴らす(周波数:Hz、継続時間:ミリ秒)」
新表記方式: Oto (ただし、900Hzで1/4秒を標準として設定)
C++言語: Beep(900,250) (ただし、900Hzで1/4秒間鳴らすと指定)
・処理内容「“入力エラーです“の文字を表示する」
新表記方式: Hyoji(800200)
C++言語: ADCHAR (フィールド800200の“入力エラーです”の意味)
・処理内容「指定された色で表示する」
新表記方式: Aka Midori Ao
C++言語: RGB(255,0,0) RGB(0,255,0) RGB(0,0,255)
新表記方式: Kuro Siro
C++言語: RGB(0,0,0) RGB(255,255,255)
【0083】
上記例示した新表記方式とC++言語との対応関係が、言語マスタDB8に格納されている。また、このような対応関係は、必要とするコンピュータ言語の種類に応じて作成され記憶されている。なお、新表記方式の場合は、ユーザが慣れ親しんでいる言語表記でよいので、アルファベットの代わりにひらがな又はカタカナ等を用いてもよい。
【0084】
例えば、処理内容が「文字の色を赤に設定してエラーメッセージを表示し、かつ、警告音を鳴らし、1.5秒間待つ」である場合、新表記方式及びC++言語では、以下のように表記される。
新表記方式のエラーメッセージ表記処理
Text(Aka);
Hyoji(800200,“入力エラーです。”);
Oto;
Machi;
C++言語のエラーメッセージ表記処理
SetTextColor(RGB(255,0,0));
ADCHAR(800200,“入力エラーです。”);
Beep(900,175);
Sleep(1500)

したがって、本発明のシステムによれば、フロー図中に仕様内容を入力する際に、通常ユーザ独自の分かり易い言語で入力することができ、表記されたユーザ言語は、言語マスタテーブルを介してC言語等に変換されるので、コンピュータ言語を知らないユーザであっても入力が容易である。
【0085】
図7−2に示したように設定された判断ボックス(ボックス番号3)を例にとって、ソースコードへの変換動作を説明する。
フロー図解析変換モジュール40の処理ボックス内容解析モジュール22(図2−2)は、フロー図ファイルDB2から、図7−2に示したボックス番号3のマスタデータ(すなわち、図7−3に示したデータ)を読み出して、読み出されたデータを解析する。次いで、ソースプログラム変換モジュール23は、コード式記述マスタDB9から判断ボックスの場合のコード記述マスタを呼び出す。C++言語の場合には、図13−1の右側に示すような配列の記述マスタとなる。そして、図13−1に示した対応関係で、ボックスマスタ中のフィールド番号のデータを、読み出した記述マスタのそれぞれの項に割り当てる。
すなわち、処理ボックス種別が判断ボックスを示す「06」であることから、該「06」に対応する記述マスタを、コード式記述マスタDB9から読み出す。そして、処理ボックス番号「3」を処理番号の位置に複写し、左項及び右項のデータ名「D1」及び「050303」をそれぞれ対応する位置に複写する。また、言語マスタDB8を検索して、分岐条件「=」に対応するC++言語の「==」を読み出し、それを判定項に複写する。また、判定成立時の分岐先及び不成立時の分岐先のボックス番号を、フロー図ファイルDB2のマスタデータから得て、それを対応する位置に複写する。
【0086】
図13−1に示すようにデータを割り当てた結果、以下のソースプログラム(C++言語)が生成される。

G03: if (D1==050303) {goto G54;}
else {goto G19;}

一方、BASIC言語の場合には、図13−2に示すようにデータを割り当て、その結果、

G03, if D1 = 050303 GOTO G54.
GOTO G19.

のソースプログラムが得られる。
【0087】
ここで、図7−10に示されたイベント待ち処理を含んだフロー図をソースプログラムに変換する場合であってC++言語に変換する場合を例として、図13−3のフロー図を参照して詳細に説明する。このとき、ユーザのPCには、MicroSoft社等のイベント処理定義プログラムモジュールを含んだOSがインストールされているものとする。
フロー図解析変換モジュール40が起動されると、該モジュール40のフロー図連係解析モジュール41は、図13−3のステップS81において、各ボックスの連係を解析する。そして、処理ボックス内容解析モジュール42は、ステップS82において、変換すべきフロー図上にイベント待ち状態を表すボックスすなわち仮想イベント待ちボックス(ボックス番号5)が含まれていることを検出し、ステップS83において、PCのOSに含まれているイベント処理定義プログラムモジュールを読み出す。そして、ステップS84において、各ボックスの仕様として、コード式記述マスタDB9に格納されているひな形ライブラリ中の関数名が含まれているか否かを判定する。
【0088】
ひな形ライブラリ群には、画面処理用として、描画前初期処理ボックス(ボックス番号2)、初期画面処理ボックス(ボックス番号3)、描画後初期処理ボックス(ボックス番号4)の関数名に対応している関数が含まれており、ボックス内容解析モジュール42は、これらの関数名を仕様としているボックスが変換すべきフロー図上に存在すると判定し、そして、ステップS85において、ソースプログラム変換モジュール43が、これら関数をひな形ライブラリから読み出してボックス番号2〜4に対応付け、そして、それぞれのボックスの連係情報を組み込む。
次いで、処理ボックス内容解析モジュール42は、ステップS86において、各ボックスの仕様として、下層のフロー図のID(関数名)が含まれている否かを判定し、ステップS87において、ソースプログラム変換モジュール43は、処理ボックス(ボックス番号14〜19)の仕様である下層フロー図IDに対応する関数すなわちソースプログラムモジュールを、ソースプログラムファイルDB10から読み出してボックス番号に対応付け、かつボックスの連係情報を組み入れる。
【0089】
そして、処理ボックス内容解析モジュール42は、ステップS88において、判断ボックスが含まれているか否かを判定し、ステップS89において、ソースプログラム変換モジュール43は、図13−1及び図13−2を参照して説明したように、言語マスタDB8を参照しつつ、判断ボックス(ボックス番号7〜17)それぞれの仕様をソースコードに変換してボックス番号に対応付け、それぞれのボックスの連係情報を組み入れる。
次いで、ステップS90において、処理ボックス内容解析モジュール43は、その他のボックスがあるか否かを判定し、ある場合には、ステップS91において、ソースプログラム変換モジュール43は、言語マスタDB8を参照してソースコードに変換してボックス番号に対応付け、かつ連係情報を組み入れる。最下層のフロー図の処理ボックスをソースコードに変換する場合も、言語マスタDB8を参照して、該フロー図上の仕様をコンピュータ言語に変換する。
これにより、フロー図がソースプログラムに変換される。図13−4及び図13−5(図13−5は、図13−4の続き)は、このようにして作成されたソースプログラムの一例を示している。当然ながら、図13−3に示した順番に判断して処理する必要がなく、例えば、ステップS88及びS89をステップS82の前段で実行してもよく、その他適宜の変更が可能である。
【0090】
このように、フロー図解析変換モジュール40は、変換すべきフロー図上にイベント待ち状態を表すボックス(仮想イベント待ちボックス)が含まれていることを検出することにより、フロー図がイベント待ち処理を含んだプログラムのフロー図であることを判定し、ユーザのPCにインストールされているOSに含まれるイベント処理定義プログラムを読み出し、さらに、コード式記述マスタDB9に格納されているひな形ライブラリに格納されている関数及び作成済みの下層フロー図の関数(すなわち、下層フロー図に対応するソースプログラムモジュール)を読み出しているので、ソースプログラムへに変換が容易となる。また、上述したように、図7−9及び図7−10に示されるような、ユーザにより作成されるフロー図は、ランダムに発生されるイベントを待機してその処理を行うことを、ユーザが理解し易い形態で簡潔かつ論理的に表しており、このような簡潔及び論理的なフロー図を作成から、適正なソースプログラムへ変換することが可能となる。
【0091】
このようにして、フロー図中の全ボックスのマスタデータをフロー図ファイルDB2から読み出し、データをユーザが指定したプログラム言語の配列に置き換えてから、該言語のソースプログラムに変換する。フロー図から変換されたソースプログラムは、上述したように、そのプログラムに使用されるデータ定義及び画面定義のソースコードと共に、作成済ソースプログラムファイルDB13に記憶される。
なお、フロー図解析変換モジュール11によって変換されたソースプログラムは、さらに、言語メーカが提供するライブラリ等を参照してコンパイルされるが、その処理動作は汎用のものであるので、説明を省略する。
【0092】
次に、作成されたソースプログラムの検証を行う検証モジュール50について説明する。検証モードが選択されて検証モジュール50が起動すると、フロー図ファイルDB2から該ソースプログラムに対応する概要(又は詳細)フロー図のマスタデータが読み出され、該データに基づいてフロー図が再生され表示される。
ユーザが、そのフロー図の流出線上に、図14−1に示すように、ポーズ機能(=)及びパス機能(黒丸)を実行する点を設定する。ポーズ機能は、その設定点に到達するまでの処理の実行結果(種々の変数の値を含む)の取得、及び、その設定点に到達時に処理の一時停止を行う機能である。パス機能は、その設定点に到達までの処理の実行結果(種々の変数の値を含む)取得を行うものであり、一時停止をせずに処理を継続させる機能である。
【0093】
そして、該フロー図に対応して作成されたソースプログラムをランさせると、処理通過ルート表示モジュール31(図2−3)の機能により、フロー図上に経過ルートを表示しながら処理が実行される。ソースプログラムのラン中に処理が下層フロー図に移行した場合、階層降り機能により、下層フロー図を表示して該フロー図上でも通過ルートを表示する。
また、処理の実行中、処理結果取得・表示モジュール32の機能により、ポーズ機能の設定点及びパス機能の設定点を通過した順番を通過履歴として取得し、また、処理が通過した予め設定された変数の値を、該変数を含むボックスの処理が終了する度に取得し、これらを通過履歴/変数値ファイルDB11に記憶する。
【0094】
例えば、図14−1に示すように、ポーズ設定点S013を設定し、パス設定点P009及びP010を設定した場合、ポーズ設定点S013まで処理が進んだときに、プログラムの処理が一時停止される。そして、処理結果取得・表示モジュール32は、通過履歴/変数値ファイルDB11を参照して、その一時停止までの、ポーズ設定点S013並びにパス設定点P009及びP010を処理が通過した履歴を検索して、通過履歴一覧として表示し、また、フロー図中の予め設定された種々の変数の値を変数値一覧として表示する。
図14−2及び図14−3は、このような通過履歴一覧及び変数値一覧を示している。図14−2に示した通過履歴一覧の例においては、パス設定点P009及びP010をそれぞれ3回通過した後に、ボックス番号7の判断ボックスから分岐されてポーズ設定点S013に至った様子を示している。また、図14−3に示した変数値一覧の例においては、ポーズ設定点S013でプログラムが一時停止したときに、図14−1に示したフロー図中のボックス番号4、6〜10、13及び14のボックス中の変数(変数名A〜G)がどのような値であるかを示している。また、図14−2に示した通過履歴一覧において、ユーザが、例えば、世代4のポーズポイントP010(処理が2回通過したことを表している)を選択すると、該ポイントを処理が2回目に通過する時点の変数名A〜Gの変数値が一覧として表示される。
【0095】
作成されたソースプログラムのラン中にエラーが発生した場合、処理エラー表示モジュール33の機能により、ボックス番号及び処理行をエラー表としてPCCスクリーン上に表示する。
このようにして、ソースプログラムの検証を行うことにより、バグ発生位置等を表示することができるので、その修正が容易である。
一時停止された処理の再開は、再開ボタン(不図示)を選択することにより実行される。
【0096】
本発明は、以上のように構成されているので、任意のソースプログラムを、高度な知識を有していないユーザであっても容易に作成することができ、また、作成されたフロー図をソースプログラムに変換するので、フロー図中の仕様の論理とソースプログラムの論理との同一性が維持される。特に、複数のイベント及びそれに対応する処理がランダムに発生する場合のイベント待ち状態をフロー図上で適切に表すことができる。
また、ガイダンスによりユーザの入力を促し、それに基づいて自動的にフロー図を作成するので、作成すべきソースプログラムに対応するフロー図作成がより容易となる。さらに、当初フロー図とそのフロー図を進展させた進展フロー図との関係である派生関係をユーザに提供することができるので、ユーザは、派生のいきさつ及びプログラムの論理の進展を容易に把握することができる。
さらに、ユーザがツリー構造のデータ定義をPCスクリーン上で視認しながらデータ定義を作成することができ、また、画面をPCスクリーン上で作成するだけで、画面定義を作成することができる。したがって、データ定義及び画面定義の作成及び保守が容易となる。
さらにまた、作成されたソースプログラムを実際にランさせて検証を行うことができ、その結果をソースプログラムの修正に反映させることができる。
【図面の簡単な説明】
【0097】
【図1】本発明に係るソースプログラム作成支援システムの概略構成を示すブロック図である。
【図2−1】図1に示したシステム中のフロー図作成モジュールの概略構成を示すブロック図である。
【図2−2】図1に示したシステム中のフロー図解析変換モジュールの概略構成を示すブロック図である。
【図2−3】図1に示したシステム中の検証モジュールの概略構成を示すブロック図である。
【図3】図2−2に示したフロー図作成モジュールの動作を示すフロー図である。
【図4−1】フロー図作成モジュールの機能により表示されるプレート一覧を示す模式図である。
【図4−2】フロー図作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図4−3】ユーザとの対話に基づきフロー図作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図4−4】ユーザとの対話に基づきフロー図作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図4−5】ユーザとの対話に基づきフロー図作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図4−6】ユーザとの対話に基づきフロー図作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図4−7】ユーザとの対話に基づきフロー図作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図4−8】ユーザとの対話に基づきフロー図作成モジュールの機能により表示される、完成後のイメージフロー図を示すスクリーンショットの模式図である。
【図5】図4−8に示したイメージフロー図にタイトルがユーザにより入力されたことにより作成されたタイトルフロー図を示すスクリーンショットの模式図である。
【図6】図4−8に示したイメージフロー図に仕様がユーザにより入力されたことにより作成された概要フロー図を示すスクリーンショットの模式図である。
【図7−1】判断ボックスにタイトル及び仕様を入力するための入力画面を示すスクリーンショットを示す模式図である。
【図7−2】図7−1に示した入力画面にタイトル及び仕様がユーザにより入力された状態を示すスクリーンショットである。
【図7−3】図7−2に示したように入力された状態の判断ボックスのマスタデータを示す説明図である。
【図7−4】仕様が入力された状態の処理ボックスのマスタデータの一例を示す説明図である。
【図7−5】フロー図作成モジュールのイベント待ち表記機能により実行される、イメージフロー図作成処理を説明するためのフロー図である。スクリーンショットである。
【図7−6】イベント待ち表記機能により表示されたイベントフロー図初期ボックス群を示すスクリーンショットである。
【図7−7】イベント待ち表記機能により、図7−6の表示状態に他のボックスを追加した状態を示すスクリーンショットである。
【図7−8】イベント待ち表記機能により、図7−7の表示状態にイベントフロー図終了ボックス群を追加して完成されたイメージフロー図を示すスクリーンショットである。
【図7−9】図7−7に示したイメージフロー図にタイトルを入力してタイトルフロー図を作成した状態を示すスクリーンショットである。
【図7−10】図7−7に示したイメージフロー図に仕様を入力して概要フロー図を作成した状態を示すスクリーンショットである。
【図8】フロー図作成モジュールにおける詳細フロー図作成時の階層降り機能を説明するための説明図である。
【図9−1】フロー図作成モジュールにおけるガイダンス機能によるフロー図作成の際に自動的に表示されるスクリーンショットである。
【図9−2】フロー図作成モジュールにおけるガイダンス機能によるガイダンス内容及びそのユーザ応答を例示する説明図である。
【図9−3】ユーザとの対話に基づきフロー図作成モジュールにおけるガイダンス機能によるフロー図作成の際に表示されるスクリーンショットである。
【図9−4】ユーザとの対話に基づきフロー図作成モジュールにおけるガイダンス機能によるフロー図作成の際に表示されるスクリーンショットである。
【図9−5】ユーザとの対話に基づきフロー図作成モジュールにおけるガイダンス機能によるフロー図作成の際に表示されるスクリーンショットである。
【図9−6】ユーザとの対話に基づきフロー図作成モジュールにおけるガイダンス機能によるフロー図作成の際に表示されるスクリーンショットである。
【図10−1】フロー図作成モジュールにおけるペースメーカ機能及びガイダンス機能によるフロー図作成の際に得られるガイダンスの内容及びそのユーザ応答を時間経過とともに記憶したガイダンスデータを例示する説明図である。
【図10−2】図10−1に示したガイダンスデータから作成されたガイダンスタイムテーブルを示す模式図である。
【図11−1】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図11−2】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図11−3】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図11−4】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図11−5】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図11−6】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図11−7】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図11−8】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図11−9】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示される、完成後のファイルレイアウトのスクリーンショットの模式図である。
【図11−10】図11−9に示したファイルレイアウト中のレコードデータの一例を示す説明図である。
【図12−1】画面定義作成モジュールの機能により作成すべき画面の一例を示すスクリーンショットである。
【図12−2】画面定義作成モジュールの機能により表示される画面定義プレート一覧を示す模式図である。
【図12−3】画面定義作成モジュールの機能により表示される枠フィールドの属性入力画面を示すスクリーンショットである。
【図12−4】画面定義作成モジュールの機能により表示されるボタンフィールドの属性入力画面を、該機能により先に作成された枠とともに示したスクリーンショットである。
【図12−5】画面定義作成モジュールの機能により作成され表示されるボタンを示すスクリーンショットである。
【図12−6】画面定義作成モジュールの機能により表示される文字フィールドの属性入力画面を示すスクリーンショットである。
【図12−7】画面定義作成モジュールの機能により表示される線フィールド属性入力画面を示すスクリーンショットである。
【図12−8】画面定義作成モジュールの機能により表示される数値フィールド属性入力画面を示すスクリーンショットである。
【図13−1】フロー図解析変換モジュールの機能により実行される、C++言語への変換を説明するための説明図である。
【図13−2】フロー図解析変換モジュールの機能により実行される、BASIC言語への変換を説明するための説明図である。
【図13−3】フロー図解析変換モジュールの機能により実行される、イベント処理を含んだフロー図をソースプログラムに変換する際の処理を示すフロー図である。
【図13−4】イベント処理を含んだフロー図から変換されたソースプログラムを例示する図である。
【図13−5】図13−5に例示したソースプログラムに続くソースプログラムの図である。
【図14−1】検証モジュールの機能により、ポーズ及びパス設定点がフロー図上に設定された状態を示すスクリーンショットである。
【図14−2】検証モジュールの機能により取得され表示される通過履歴一覧を示すスクリーンショットである。
【図14−3】検証モジュールの機能により取得され表示される変数値一覧を示すスクリーンショットである。
【図15】従来例により作成されるフロー図から想定される、イベント処理を含むプログラムのフロー図の表現を示す図である。

【特許請求の範囲】
【請求項1】
コンピュータにより読み取り可能なプログラムを利用し、ユーザとの対話によりソースプログラムを作成するためのソースプログラム作成支援システムであって、作成すべきソースプログラムに対応するフロー図をモニタスクリーン上に作成することを支援するフロー図作成手段と、該フロー図作成手段によって作成されたフロー図を解析してソースコードに変換することによりソースプログラムに変換するフロー図解析変換手段とを含んでいるソースプログラム作成支援システムにおいて、
フロー図作成手段は、
フロー図に含まれるスタート端子、エンド端子、流入線、流出線、及び複数のボックスを含む基本的なプレート、並びに、ランダムに発生される複数のイベントによりそれぞれ駆動される複数のイベント処理を含むイベント処理プログラムの開始プレートを含む一覧表を、ユーザにより選択可能に表示するプレート一覧表示手段と、
ユーザが表示されたプレート一覧からプレートを選択し、その配置位置をモニタスクリーン上で指定する毎に、該配置位置に選択されたプレートの形状を表示するプレート配置手段であって、
プレート一覧に含まれるイベント処理プログラム開始プレートが選択されたときに、イベント発生の待ち状態を表す仮想イベント待ちボックスと該仮想イベント待ちボックスに流出線が接続されたリターン端子とを含んでいるイベントフロー図初期ボックス群をフロー図作成領域上に表示させる手段と
を含んでいるプレート配置手段と、
モニタスクリーン上に配置されたボックスに処理の内容に対応する仕様をユーザに入力させるための入力欄を表示し、入力された仕様を該ボックスと関連付けて記憶する仕様設定手段と
を備え、
フロー図解析変換手段は、
ソースプログラムに変換すべきフロー図中に仮想イベント待ちボックスが含まれている場合に、イベント処理プログラムであると判定して、使用しているコンピュータにOSの一部としてインストールされているイベント処理定義を読み出す手段と、
フロー図中のボックスの連係を解析して各ボックスの連係情報を得る手段と、
フロー図中の各ボックスに設定された仕様をソースコードに変換し、かつ、変換されたソースコードに該当するボックスの連係情報を組み入れることにより、各ボックスのソースプログラムモジュールを生成する手段と、
読み出されたイベント処理定義、及び、ボックスの連係情報が組み入れられたソースプログラムモジュールを一体化してソースプログラムを生成する手段と
を備えている
ことを特徴とするソースプログラム作成支援システム。
【請求項2】
請求項1記載のソースプログラム作成支援システムにおいて、イベントフロー図初期ボックス群は、仮想イベント待ちボックス及びリターン端子に加えて、スタート端子と、イベント待ちボックスの下流に直列的に配置された2つの判断ボックスと、該判断ボックスからの流出線により該判断ボックスにそれぞれ接続された2つの処理ボックスであって、その流出線がリターン端子に接続されている処理ボックスとを少なくとも含んでいることを特徴とするソースプログラム作成支援システム。
【請求項3】
請求項1又は2記載のソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、
フロー図作成領域に配置されたプレートの削除をユーザが指示したときに、該プレートを削除するプレート削除手段と、
イベントフロー図初期ボックス群以外のプレートが新たにフロー図作成領域に配置されたときに、該プレートの下流に処理ボックス及びその流出線を、配置されたプレートとは異なる表示態様で自動的に表示する手段と
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項4】
請求項3記載のソースプログラム作成支援システムにおいて、フロー図作成手段のプレート一覧表示手段により表示されるプレート一覧には、イベント処理プログラム終了プレートが含まれ、
プレート配置手段は、フロー図作成領域に表示されているフロー図中に仮想イベント待ちボックスが含まれており、かつ異なる表示態様の処理ボックス及びその流出線が含まれている状態で、プレート一覧に含まれるイベント処理プログラム終了プレートが選択されたときに、異なる表示態様の処理ボックス及びその流出線を自動的に削除し、かつ、最下端の判断ボックスの下方に、リターン端子に一方の流出線が接続された判断ボックスを追加し、該判断ボックスの他方の流出線に接続され、自身の流出線がリターン端子に接続された処理ボックスを追加するよう構成されている
ことを特徴とするソースプログラム作成支援システム。
【請求項5】
請求項1〜4いずれかに記載のソースプログラム作成支援システムにおいて、
該システムはさらに、複数の処理内容それぞれに対応するソースプログラムモジュールである複数の関数をその関数名と対応付けて予め記憶しているひな形ライブラリを備えており、
フロー図作成手段の仕様設定手段は、ユーザが仕様としてひな形ライブラリに記憶されている関数名を選択的に入力することが可能なるようにするために、ひな形ライブラリ中の複数の関数の内容及びその関数名をユーザに提示する手段を備えており、
フロー図解析変換手段は、変換すべきフロー図に、ひな形ライブラリに記憶されている関数名が仕様として設定されているボックスがある場合に、該ライブラリから該関数名に対応する関数を読み出すよう構成されている
ことを特徴とするソースプログラム作成支援システム。
【請求項6】
請求項1〜5いずれかに記載のソースプログラム作成支援システムにおいて、
フロー図作成手段は、上位層のフロー図とその下位層の詳細フロー図を作成するための階層降り機能を実行する手段を備えており、
フロー図作成手段の仕様設定手段は、ユーザが上位層のフロー図の仕様として下位層のフロー図を特定するフロー図IDを選択的に入力することが可能となるようにするために、下位層のフロー図の内容及びフロー図IDをユーザに提示する手段を備えており、
フロー図解析変換手段は、変換すべきフロー図に、フロー図IDが仕様として設定されているボックスがある場合に、該フロー図IDに対応するプログラムモジュールを記憶手段から読み出すよう構成されている
ことを特徴とするソースプログラム作成支援システム。
【請求項7】
請求項1〜6いずれかに記載のソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、
モニタスクリーン上に配置されたボックスに処理のタイトルを入力するためのタイトル入力欄を表示し、入力されたタイトルをボックスと関連付けて記憶するタイトル設定手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項8】
請求項1〜7いずれかに記載のソースプログラム作成支援システムにおいて、フロー図作成手段の仕様設定手段は、プレート配置手段によりボックスがモニタスクリーンに表示される毎に、仕様設定が可能であるよう構成されていることを特徴とするソースプログラム作成支援システム。
【請求項9】
請求項7記載のソースプログラム作成支援システムにおいて、フロー図作成手段の仕様設定手段及びタイトル設定手段は、プレート配置手段によりボックスがモニタスクリーンに表示される毎に、仕様設定及びタイトル設定が可能であるように構成されていることを特徴とするソースプログラム作成支援システム。
【請求項10】
請求項1〜5いずれかに記載のソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、
フロー図作成のためのガイダンスをユーザに提供し、該ガイダンスに対するユーザ入力の応答に基づいて、フロー図を自動的に作成するガイダンス手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項11】
請求項10記載のソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、
ガイダンス手段が提供したガイダンスと該ガイダンスに対するユーザの応答との時間経過履歴を取得し、かつ、該時間経過履歴をモニタスクリーン上に表示するペースメーカ手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項12】
請求項1〜11いずれかに記載のソースプログラム作成支援システムにおいて、フロー図作成手段は、
当初フロー図と、該当初フロー図の全ての処理を含み、かつ当初フロー図の一部の処理を詳細化し進展させたフロー図との関係を、モニタスクリーン上に表示する派生関係表示手段であって、当初フロー図のボックスが選択されたときに、該ボックスの代わりに、該ボックスに対応する進展されたフロー図の複数のボックスを表示させる派生関係表示手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項13】
請求項1〜12いずれかに記載のソースプログラム作成支援システムにおいて、該システムはさらに、
フロー図作成手段によって作成されるフロー図において使用されるデータのソースプログラムのデータ定義を、モニタスクリーン上でユーザとの対話に基づいてツリー構造のデータレイアウトを作成し、該作成されたデータレイアウトに基づいて定義するデータ定義作成手段と、
フロー図作成手段によって作成されるフロー図において使用される画面のソースプログラムの画面定義を、モニタスクリーン上でユーザとの対話に基づいて画面を作成し、該作成された画面の要素の位置及びサイズに基づいて定義する画面定義作成手段と
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項14】
請求項13記載のソースプログラム作成支援システムにおいて、フロー図解析変換手段はさらに、
フロー図に基づいて作成されたソースプログラムに、データ定義作成手段及び画面定義作成手段によって作成されたデータ定義及び画面定義と組み合わせる手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項15】
請求項1〜14いずれかに記載のソースプログラム作成支援システムにおいて、該システムはさらに、作成されたソースプログラムを検証する検証手段を備え、該検証手段は、
検証すべきソースプログラムに対応するフロー図をモニタスクリーン上に表示し、表示されたフロー図上に、ソースプログラムのランを一時停止させ、処理結果を取得し、通過履歴と処理結果を表示させるべきポーズ設定点と、処理結果のみを取得するためのパス設定点とをユーザに設定させる手段と、
検証すべきソースプログラムをランさせ、該ソースプログラムに対応しかつ表示されたフロー図上に、処理の経過に伴って通過ルートを表示する手段と、
処理がポーズ設定点に到達したときに、処理を一時停止させ、かつ、該ポーズ設定点及びパス設定点の通過履歴を表示する手段と、
処理がポーズ設定点に到達したときに、フロー図上の予め設定された変数の値を変数一覧として表示する手段と
を備えていることを特徴とするソースプログラム作成支援システム。
【特許請求の範囲】
【請求項1】
コンピュータにより読み取り可能なプログラムを利用し、ユーザとの対話によりソースプログラムを作成するためのソースプログラム作成支援システムであって、作成すべきソースプログラムに対応するフロー図をモニタスクリーン上に作成することを支援するフロー図作成手段と、該フロー図作成手段によって作成されたフロー図を解析してソースコードに変換することによりソースプログラムに変換するフロー図解析変換手段とを含んでいるソースプログラム作成支援システムにおいて、
フロー図作成手段は、
フロー図に含まれるスタート端子、エンド端子、流入線、流出線、及び複数のボックスを含む基本的なプレート、並びに、ランダムに発生される複数のイベントによりそれぞれ駆動される複数のイベント処理を含むイベント処理プログラムの開始プレートを含む一覧表を、ユーザにより選択可能に表示するプレート一覧表示手段と、
ユーザが表示されたプレート一覧からプレートを選択し、その配置位置をモニタスクリーン上で指定する毎に、該配置位置に選択されたプレートの形状を表示するプレート配置手段であって、
プレート一覧に含まれるイベント処理プログラム開始プレートが選択されたときに、イベント発生の待ち状態を表す仮想イベント待ちボックスと該仮想イベント待ちボックスに流出線が接続されたリターン端子とを含んでいるイベントフロー図初期ボックス群をフロー図作成領域上に表示させる手段と
を含んでいるプレート配置手段と、
モニタスクリーン上に配置されたボックスに処理の内容に対応する仕様をユーザに入力させるための入力欄を表示し、入力された仕様を該ボックスと関連付けて記憶する仕様設定手段と
を備え、
フロー図解析変換手段は、
ソースプログラムに変換すべきフロー図中に仮想イベント待ちボックスが含まれている場合に、イベント処理プログラムであると判定して、使用しているコンピュータにOSの一部としてインストールされているイベント処理定義を読み出す手段と、
フロー図中のボックスの連係を解析して各ボックスの連係情報を得る手段と、
フロー図中の各ボックスに設定された仕様をソースコードに変換し、かつ、変換されたソースコードに該当するボックスの連係情報を組み入れることにより、各ボックスのソースプログラムモジュールを生成する手段と、
読み出されたイベント処理定義、及び、ボックスの連係情報が組み入れられたソースプログラムモジュールを一体化してソースプログラムを生成する手段と
を備えている
ことを特徴とするソースプログラム作成支援システム。
【請求項2】
請求項1記載のソースプログラム作成支援システムにおいて、イベントフロー図初期ボックス群は、仮想イベント待ちボックス及びリターン端子に加えて、スタート端子と、イベント待ちボックスの下流に直列的に配置された2つの判断ボックスと、該判断ボックスからの流出線により該判断ボックスにそれぞれ接続された2つの処理ボックスであって、その流出線がリターン端子に接続されている処理ボックスとを少なくとも含んでいることを特徴とするソースプログラム作成支援システム。
【請求項3】
請求項1又は2記載のソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、
フロー図作成領域に配置されたプレートの削除をユーザが指示したときに、該プレートを削除するプレート削除手段と、
イベントフロー図初期ボックス群以外のプレートが新たにフロー図作成領域に配置されたときに、該プレートの下流に処理ボックス及びその流出線を、配置されたプレートとは異なる表示態様で自動的に表示する手段と
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項4】
請求項3記載のソースプログラム作成支援システムにおいて、フロー図作成手段のプレート一覧表示手段により表示されるプレート一覧には、イベント処理プログラム終了プレートが含まれ、
プレート配置手段は、フロー図作成領域に表示されているフロー図中に仮想イベント待ちボックスが含まれており、かつ異なる表示態様の処理ボックス及びその流出線が含まれている状態で、プレート一覧に含まれるイベント処理プログラム終了プレートが選択されたときに、異なる表示態様の処理ボックス及びその流出線を自動的に削除し、かつ、最下端の判断ボックスの下方に、リターン端子に一方の流出線が接続された判断ボックスを追加し、該判断ボックスの他方の流出線に接続され、自身の流出線がリターン端子に接続された処理ボックスを追加するよう構成されている
ことを特徴とするソースプログラム作成支援システム。
【請求項5】
請求項1〜4いずれかに記載のソースプログラム作成支援システムにおいて、
該システムはさらに、複数の処理内容それぞれに対応するソースプログラムモジュールである複数の関数をその関数名と対応付けて予め記憶しているひな形ライブラリを備えており、
フロー図作成手段の仕様設定手段は、ユーザが仕様としてひな形ライブラリに記憶されている関数名を選択的に入力することが可能なるようにするために、ひな形ライブラリ中の複数の関数の内容及びその関数名をユーザに提示する手段を備えており、
フロー図解析変換手段は、変換すべきフロー図に、ひな形ライブラリに記憶されている関数名が仕様として設定されているボックスがある場合に、該ライブラリから該関数名に対応する関数を読み出すよう構成されている
ことを特徴とするソースプログラム作成支援システム。
【請求項6】
請求項1〜5いずれかに記載のソースプログラム作成支援システムにおいて、
フロー図作成手段は、上位層のフロー図とその下位層の詳細フロー図を作成するための階層降り機能を実行する手段を備えており、
フロー図作成手段の仕様設定手段は、ユーザが上位層のフロー図の仕様として下位層のフロー図を特定するフロー図IDを選択的に入力することが可能となるようにするために、下位層のフロー図の内容及びフロー図IDをユーザに提示する手段を備えており、
フロー図解析変換手段は、変換すべきフロー図に、フロー図IDが仕様として設定されているボックスがある場合に、該フロー図IDに対応するプログラムモジュールを記憶手段から読み出すよう構成されている
ことを特徴とするソースプログラム作成支援システム。
【請求項7】
請求項1〜6いずれかに記載のソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、
モニタスクリーン上に配置されたボックスに処理のタイトルを入力するためのタイトル入力欄を表示し、入力されたタイトルをボックスと関連付けて記憶するタイトル設定手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項8】
請求項1〜7いずれかに記載のソースプログラム作成支援システムにおいて、フロー図作成手段の仕様設定手段は、プレート配置手段によりボックスがモニタスクリーンに表示される毎に、仕様設定が可能であるよう構成されていることを特徴とするソースプログラム作成支援システム。
【請求項9】
請求項7記載のソースプログラム作成支援システムにおいて、フロー図作成手段の仕様設定手段及びタイトル設定手段は、プレート配置手段によりボックスがモニタスクリーンに表示される毎に、仕様設定及びタイトル設定が可能であるように構成されていることを特徴とするソースプログラム作成支援システム。
【請求項10】
請求項1〜5いずれかに記載のソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、
フロー図作成のために予め設定された複数の質問を含むガイダンスをユーザに提供し、該ガイダンスの質問に対してユーザによって入力された応答に基づいて、フロー図を対話的に作成するガイダンス手段であって、質問は業務数の質問を含み、該質問に対するユーザの応答に基づいた数の判断ボックス及び処理ボックスを、自動的にモニタスクリーン上に表示させるガイダンス手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項11】
請求項10記載のソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、
ガイダンス手段が提供したガイダンスと該ガイダンスに対するユーザの応答との時間経過履歴を取得し、かつ、該時間経過履歴をモニタスクリーン上に表示するペースメーカ手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項12】
請求項1〜11いずれかに記載のソースプログラム作成支援システムにおいて、フロー図作成手段は、
予め作成された第1のフロー図と、該第1のフロー図中の少なくとも1つのボックスの処理内容を詳細化して複数のボックスで表した第2のフロー図との関係を、モニタスクリーン上に表示する派生関係表示手段であって、第1のフロー図がモニタスクリーン上に表示された状態で、詳細化された元のボックスが選択されたときに、該ボックスの代わりに、該ボックスに対応する第2のフロー図の複数のボックスを表示させる派生関係表示手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項13】
請求項1〜12いずれかに記載のソースプログラム作成支援システムにおいて、該システムはさらに、
フロー図作成手段によって作成されるフロー図において使用されるデータのソースプログラムのデータ定義を、モニタスクリーン上でユーザとの対話に基づいてツリー構造のデータレイアウトを作成し、該作成されたデータレイアウトに基づいて定義するデータ定義作成手段と、
フロー図作成手段によって作成されるフロー図において使用される画面のソースプログラムの画面定義を、モニタスクリーン上でユーザとの対話に基づいて画面を作成し、該作成された画面の要素の位置及びサイズに基づいて定義する画面定義作成手段と
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項14】
請求項13記載のソースプログラム作成支援システムにおいて、フロー図解析変換手段はさらに、
フロー図に基づいて作成されたソースプログラムに、データ定義作成手段及び画面定義作成手段によって作成されたデータ定義及び画面定義と組み合わせる手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項15】
請求項1〜14いずれかに記載のソースプログラム作成支援システムにおいて、該システムはさらに、作成されたソースプログラムを検証する検証手段を備え、該検証手段は、
検証すべきソースプログラムに対応するフロー図をモニタスクリーン上に表示し、表示されたフロー図上に、ソースプログラムのランを一時停止させ、処理結果を取得し、通過履歴と処理結果を表示させるべきポーズ設定点と、処理結果のみを取得するためのパス設定点とをユーザに設定させる手段と、
検証すべきソースプログラムをランさせ、該ソースプログラムに対応しかつ表示されたフロー図上に、処理の経過に伴って通過ルートを表示する手段と、
処理がポーズ設定点に到達したときに、処理を一時停止させ、かつ、該ポーズ設定点及びパス設定点の通過履歴を表示する手段と、
処理がポーズ設定点に到達したときに、フロー図上の予め設定された変数の値を変数一覧として表示する手段と
を備えていることを特徴とするソースプログラム作成支援システム。

【図1】
image rotate

【図2−1】
image rotate

【図2−2】
image rotate

【図2−3】
image rotate

【図3】
image rotate

【図4−1】
image rotate

【図4−2】
image rotate

【図4−3】
image rotate

【図4−4】
image rotate

【図4−5】
image rotate

【図4−6】
image rotate

【図4−7】
image rotate

【図4−8】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7−1】
image rotate

【図7−2】
image rotate

【図7−3】
image rotate

【図7−4】
image rotate

【図7−5】
image rotate

【図7−6】
image rotate

【図7−7】
image rotate

【図7−8】
image rotate

【図7−9】
image rotate

【図7−10】
image rotate

【図8】
image rotate

【図9−1】
image rotate

【図9−2】
image rotate

【図9−3】
image rotate

【図9−4】
image rotate

【図9−5】
image rotate

【図9−6】
image rotate

【図10−1】
image rotate

【図10−2】
image rotate

【図11−1】
image rotate

【図11−2】
image rotate

【図11−3】
image rotate

【図11−4】
image rotate

【図11−5】
image rotate

【図11−6】
image rotate

【図11−7】
image rotate

【図11−8】
image rotate

【図11−9】
image rotate

【図11−10】
image rotate

【図12−1】
image rotate

【図12−2】
image rotate

【図12−3】
image rotate

【図12−4】
image rotate

【図12−5】
image rotate

【図12−6】
image rotate

【図12−7】
image rotate

【図12−8】
image rotate

【図13−1】
image rotate

【図13−2】
image rotate

【図13−3】
image rotate

【図13−4】
image rotate

【図13−5】
image rotate

【図14−1】
image rotate

【図14−2】
image rotate

【図14−3】
image rotate

【図15】
image rotate


【公開番号】特開2006−323828(P2006−323828A)
【公開日】平成18年11月30日(2006.11.30)
【国際特許分類】
【出願番号】特願2006−63999(P2006−63999)
【出願日】平成18年3月9日(2006.3.9)
【出願人】(505145242)エー・シー・エス株式会社 (2)
【Fターム(参考)】