(57)【要約】【課題】イベント処理を含んだソースプログラムを容易に作成できるようにする。【解決手段】作成すべきソースプログラムに対応するフロー図をＰＣスクリーン上に作成することを支援するフロー図作成モジュール１０は、フロー図に含まれる入出力線及びボックス等の基本的なプレートの一覧を表示し、ユーザがプレートを選択し、その配置位置をモニタスクリーン上で指定する毎に、該配置位置に選択されたプレートを表示する。イベント処理プログラムを作成するためのイベントボックスが選択されると、仮想イベント待ちボックス及びリターン端子を含んだイベントフロー図初期ボックス群を自動的に表示させる。フロー図解析変換モジュール４０は、作成されたフロー図を解析してソースコードに変換することによりソースプログラムに変換するが、仮想イベント待ちボックスが含まれている場合、イベント定義モジュールを読み出してソースプログラムに組み入れる。【選択図】図１
2006323828.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより読み取り可能なプログラムを利用し、ユーザとの対話によりソースプログラムを作成するためのソースプログラム作成支援システムであって、作成すべきソースプログラムに対応するフロー図をモニタスクリーン上に作成することを支援するフロー図作成手段と、該フロー図作成手段によって作成されたフロー図を解析してソースコードに変換することによりソースプログラムに変換するフロー図解析変換手段とを含んでいるソースプログラム作成支援システムにおいて、
フロー図作成手段は、
フロー図に含まれるスタート端子、エンド端子、流入線、流出線、及び複数のボックスを含む基本的なプレート、並びに、ランダムに発生される複数のイベントによりそれぞれ駆動される複数のイベント処理を含むイベント処理プログラムの開始プレートを含む一覧表を、ユーザにより選択可能に表示するプレート一覧表示手段と、
ユーザが表示されたプレート一覧からプレートを選択し、その配置位置をモニタスクリーン上で指定する毎に、該配置位置に選択されたプレートの形状を表示するプレート配置手段であって、
プレート一覧に含まれるイベント処理プログラム開始プレートが選択されたときに、イベント発生の待ち状態を表す仮想イベント待ちボックスと該仮想イベント待ちボックスに流出線が接続されたリターン端子とを含んでいるイベントフロー図初期ボックス群をフロー図作成領域上に表示させる手段と
を含んでいるプレート配置手段と、
モニタスクリーン上に配置されたボックスに処理の内容に対応する仕様をユーザに入力させるための入力欄を表示し、入力された仕様を該ボックスと関連付けて記憶する仕様設定手段と
を備え、
フロー図解析変換手段は、
ソースプログラムに変換すべきフロー図中に仮想イベント待ちボックスが含まれている場合に、イベント処理プログラムであると判定して、使用しているコンピュータにＯＳの一部としてインストールされているイベント処理定義を読み出す手段と、
フロー図中のボックスの連係を解析して各ボックスの連係情報を得る手段と、
フロー図中の各ボックスに設定された仕様をソースコードに変換し、かつ、変換されたソースコードに該当するボックスの連係情報を組み入れることにより、各ボックスのソースプログラムモジュールを生成する手段と、
読み出されたイベント処理定義、及び、ボックスの連係情報が組み入れられたソースプログラムモジュールを一体化してソースプログラムを生成する手段と
を備えている
ことを特徴とするソースプログラム作成支援システム。
【請求項２】
請求項１記載のソースプログラム作成支援システムにおいて、イベントフロー図初期ボックス群は、仮想イベント待ちボックス及びリターン端子に加えて、スタート端子と、イベント待ちボックスの下流に直列的に配置された２つの判断ボックスと、該判断ボックスからの流出線により該判断ボックスにそれぞれ接続された２つの処理ボックスであって、その流出線がリターン端子に接続されている処理ボックスとを少なくとも含んでいることを特徴とするソースプログラム作成支援システム。
【請求項３】
請求項１又は２記載のソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、
フロー図作成領域に配置されたプレートの削除をユーザが指示したときに、該プレートを削除するプレート削除手段と、
イベントフロー図初期ボックス群以外のプレートが新たにフロー図作成領域に配置されたときに、該プレートの下流に処理ボックス及びその流出線を、配置されたプレートとは異なる表示態様で自動的に表示する手段と
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項４】
請求項３記載のソースプログラム作成支援システムにおいて、フロー図作成手段のプレート一覧表示手段により表示されるプレート一覧には、イベント処理プログラム終了プレートが含まれ、
プレート配置手段は、フロー図作成領域に表示されているフロー図中に仮想イベント待ちボックスが含まれており、かつ異なる表示態様の処理ボックス及びその流出線が含まれている状態で、プレート一覧に含まれるイベント処理プログラム終了プレートが選択されたときに、異なる表示態様の処理ボックス及びその流出線を自動的に削除し、かつ、最下端の判断ボックスの下方に、リターン端子に一方の流出線が接続された判断ボックスを追加し、該判断ボックスの他方の流出線に接続され、自身の流出線がリターン端子に接続された処理ボックスを追加するよう構成されている
ことを特徴とするソースプログラム作成支援システム。
【請求項５】
請求項１〜４いずれかに記載のソースプログラム作成支援システムにおいて、
該システムはさらに、複数の処理内容それぞれに対応するソースプログラムモジュールである複数の関数をその関数名と対応付けて予め記憶しているひな形ライブラリを備えており、
フロー図作成手段の仕様設定手段は、ユーザが仕様としてひな形ライブラリに記憶されている関数名を選択的に入力することが可能なるようにするために、ひな形ライブラリ中の複数の関数の内容及びその関数名をユーザに提示する手段を備えており、
フロー図解析変換手段は、変換すべきフロー図に、ひな形ライブラリに記憶されている関数名が仕様として設定されているボックスがある場合に、該ライブラリから該関数名に対応する関数を読み出すよう構成されている
ことを特徴とするソースプログラム作成支援システム。
【請求項６】
請求項１〜５いずれかに記載のソースプログラム作成支援システムにおいて、
フロー図作成手段は、上位層のフロー図とその下位層の詳細フロー図を作成するための階層降り機能を実行する手段を備えており、
フロー図作成手段の仕様設定手段は、ユーザが上位層のフロー図の仕様として下位層のフロー図を特定するフロー図ＩＤを選択的に入力することが可能となるようにするために、下位層のフロー図の内容及びフロー図ＩＤをユーザに提示する手段を備えており、
フロー図解析変換手段は、変換すべきフロー図に、フロー図ＩＤが仕様として設定されているボックスがある場合に、該フロー図ＩＤに対応するプログラムモジュールを記憶手段から読み出すよう構成されている
ことを特徴とするソースプログラム作成支援システム。
【請求項７】
請求項１〜６いずれかに記載のソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、
モニタスクリーン上に配置されたボックスに処理のタイトルを入力するためのタイトル入力欄を表示し、入力されたタイトルをボックスと関連付けて記憶するタイトル設定手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項８】
請求項１〜７いずれかに記載のソースプログラム作成支援システムにおいて、フロー図作成手段の仕様設定手段は、プレート配置手段によりボックスがモニタスクリーンに表示される毎に、仕様設定が可能であるよう構成されていることを特徴とするソースプログラム作成支援システム。
【請求項９】
請求項７記載のソースプログラム作成支援システムにおいて、フロー図作成手段の仕様設定手段及びタイトル設定手段は、プレート配置手段によりボックスがモニタスクリーンに表示される毎に、仕様設定及びタイトル設定が可能であるように構成されていることを特徴とするソースプログラム作成支援システム。
【請求項１０】
請求項１〜５いずれかに記載のソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、
フロー図作成のためのガイダンスをユーザに提供し、該ガイダンスに対するユーザ入力の応答に基づいて、フロー図を自動的に作成するガイダンス手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項１１】
請求項１０記載のソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、
ガイダンス手段が提供したガイダンスと該ガイダンスに対するユーザの応答との時間経過履歴を取得し、かつ、該時間経過履歴をモニタスクリーン上に表示するペースメーカ手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項１２】
請求項１〜１１いずれかに記載のソースプログラム作成支援システムにおいて、フロー図作成手段は、
当初フロー図と、該当初フロー図の全ての処理を含み、かつ当初フロー図の一部の処理を詳細化し進展させたフロー図との関係を、モニタスクリーン上に表示する派生関係表示手段であって、当初フロー図のボックスが選択されたときに、該ボックスの代わりに、該ボックスに対応する進展されたフロー図の複数のボックスを表示させる派生関係表示手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項１３】
請求項１〜１２いずれかに記載のソースプログラム作成支援システムにおいて、該システムはさらに、
フロー図作成手段によって作成されるフロー図において使用されるデータのソースプログラムのデータ定義を、モニタスクリーン上でユーザとの対話に基づいてツリー構造のデータレイアウトを作成し、該作成されたデータレイアウトに基づいて定義するデータ定義作成手段と、
フロー図作成手段によって作成されるフロー図において使用される画面のソースプログラムの画面定義を、モニタスクリーン上でユーザとの対話に基づいて画面を作成し、該作成された画面の要素の位置及びサイズに基づいて定義する画面定義作成手段と
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項１４】
請求項１３記載のソースプログラム作成支援システムにおいて、フロー図解析変換手段はさらに、
フロー図に基づいて作成されたソースプログラムに、データ定義作成手段及び画面定義作成手段によって作成されたデータ定義及び画面定義と組み合わせる手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項１５】
請求項１〜１４いずれかに記載のソースプログラム作成支援システムにおいて、該システムはさらに、作成されたソースプログラムを検証する検証手段を備え、該検証手段は、
検証すべきソースプログラムに対応するフロー図をモニタスクリーン上に表示し、表示されたフロー図上に、ソースプログラムのランを一時停止させ、処理結果を取得し、通過履歴と処理結果を表示させるべきポーズ設定点と、処理結果のみを取得するためのパス設定点とをユーザに設定させる手段と、
検証すべきソースプログラムをランさせ、該ソースプログラムに対応しかつ表示されたフロー図上に、処理の経過に伴って通過ルートを表示する手段と、
処理がポーズ設定点に到達したときに、処理を一時停止させ、かつ、該ポーズ設定点及びパス設定点の通過履歴を表示する手段と、
処理がポーズ設定点に到達したときに、フロー図上の予め設定された変数の値を変数一覧として表示する手段と
を備えていることを特徴とするソースプログラム作成支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＡＳＥ（コンピュータ支援ソフトウエアエンジニアリング）ツールであるソースプログラム作成支援システムに関し、より詳細には、コンピュータのソースプログラムを作成する際に、プログラミングの高度な知識を必要とせずに、コンピュータ支援の下で、コンピュータ言語のソースプログラムを容易に作成することができるようにしたシステムに関する。
【背景技術】
【０００２】
今日、汎用システムにおけるシステム開発は、通常、システム分析工程、システム設計（機能設計、データ設計）工程、プログラム設計工程、プログラミング工程、テスティング（検証）工程の順で行われる。そして、システム化業務フロー図、システム化機能概要、入出力定義のドキュメントを作成し、該ドキュメントに基づいて、システム、サブシステム、プロセス、プログラム、モジュールと分割を行って、概要から詳細に仕様を定義している。
このような仕様のドキュメントを作成する際、サブシステム関連図、サブシステム概要、プロセス関連図、業務機能フロー図、プロセス概要、プロセスフロー図、プログラム概要、プログラム構造図、モジュール（プログラムモジュール）概要、コーディングと、各工程でその上流工程のドキュメントに基づいて、論理の関連を保持しつつ個々にドキュメントを作成している。
【０００３】
このとき、ドキュメント書式は個々に特有なものとなっており、このように形式が多種多様のドキュメントを作成するには、多大な工数及び時間を必要としている。
さらに、プログラミングは、高度なプログラミング知識を有するエキスパートであるプログラマによってなされており、プログラミング知識を有さない要員には不可能である。
【０００４】
このような従来例の問題点を解決するために、以下の特許文献１及び２に記載されているような、コンピュータ支援の下で自動的にプラグロミングを作成できるようにした装置及び方法が提案されている。
特許文献１の製造管理プログラム自動作成装置は、Ｃ言語ソースプログラムを作成できるようにしているが、この装置は製品の製造管理のプログラムを作成するものであるため、部品の組み合わせでソースプログラムを作成するようにしている。
また、特許文献２の自動プログラミング方法も、Ｃ言語ソースプログラムを作成できるようにしているが、この方法はエキスパートシステムを構築するためのものであり、したがって、この方法においても用途が特化されている。
【０００５】
さらに、従来、仕様変更が生じた場合及びバグ修正が必要な場合には、異なった形式のドキュメントであるため、これらドキュメントから、複数の工程に渡って関連付けられている論理を追求することが極めて複雑となり、論理の追求にも多大な工数及び時間を必要としている。そのため、ドキュメントを変更せずにソースプログラムのみを変更することが多く、このような場合、仕様書の論理とソースプログラムの論理の同一性が維持されないことになる。
【０００６】
また、イベント処理を包含するプログラム（Ｃ言語で、画面、キーボード等からの入力処理があるプログラム）において、画面入力処理のプログラムでは、入力画面表示状態で入力待ちの状態となる。また、入力完了の特定信号であるイベント信号（例えば、キーボードからのEnter信号）を受け取るまで、プログラムは処理待ちとなる。このようなイベント処理を包含するプログラムにおいて、複数のイベントがランダムに発生する場合、従来は、イベント待ちの状態をフロー図中に明確かつ適切に表記することが困難であった。
【０００７】
なお、以下の特許文献３には、複数のイベント待ちをフロー図上で表示することができるようにしたフローチャート入力装置について記載されている。しかしながら、このフローチャート入力装置においては、複数のイベント及びそれに対応する処理がランダムに行われる場合のイベント待ち状態を適切に表現できるものではない。
例えば、「氏名」、「フリガナ（氏名）」、「郵便番号」、「住所」、「フリガナ（住所）」を画面上で入力するための氏名住所プログラムを作成する場合等のように、入力オペレータが表示された入力画面の表示順に入力しないことを考慮して、プログラムを作成する必要がある。すなわち、通常、オペレータがカーソルを表示された任意項目の入力欄に移動させ、データの入力を行ったり修正を行ったりするが、その場合、カーソルの位置によりイベントがランダムに発生されるので、作成すべきプログラムをランダムに行われる処理に対応させる必要がある。
【０００８】
そして、そのようなプログラムを作成するための前提となるフロー図をユーザが作成する際、イベント待ち状態を明確かつ平易に表すことができるようにする必要があるが、特許文献３のフローチャート入力装置においては、該文献の図５及び図８等に記載されているように、１つのイベント処理が終了すると、他のステップに移行してしまい、複数のイベント及びそれに対応する処理がランダムに発生する場合のイベント待ち状態を、フロー図上で適切に表すことができるようにしたものではない。また、仮に、この従来例のフローチャート入力装置を、上記した氏名住所入力プログラムを表すように変更しようとした場合、図１５に示すように、極めて複雑なフロー図となってしまう。そして、入力項目が増大するほど複雑度が増大してしまい、したがって、ユーザが正確なフロー図を作成することが困難となってしまう。
【０００９】
また、ソースプログラムは、通常、データ定義、画面定義、及びメインプログラムの組み合わせで構成されている。
そして、従来は、データ定義を行うためには、ファイルレイアウト用紙に項目の桁位置を合わせて記述し、項目の追加、削除、又は項目の桁数変更等が発生した場合、改めて桁位置を決め直し、再記述を行っている。さらに、項目の細分化による詳細項目定義も同様な作業を行わなければならない。そして、開発時は頻繁に変更が発生する場合が多く、変更の度にこのような作業を行っているため、手間がかかっている。さらにまた、記述したファイルレイアウト情報は、プログラム毎にコーディングする必要がある。
【００１０】
また、従来、画面定義を行うには、画面の概要定義を手作業でラフスケッチし、これを元に画面レイアウトを作成している。画面レイアウトを作成する際、線、項目等の位置を画面上のＸ−Ｙ座標に対応付ける必要があるが、この座標値も線及び項目属性とともにソースコードで定義しなければならない。また、記述した画面レイアウト情報は、プログラム毎にコーディングする必要がある。したがって、従来手法で画面定義を行うには、煩雑な手順と保守性の困難性から、作業効率が低い。
【特許文献１】特開平６−２１４７６９号公報
【特許文献２】特開平９−９１１４６号公報
【特許文献３】特開平１１−２９６３５７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記したように、自動プログラミング装置及び方法が既に提案されているが、いずれも特定の用途に特化したものであり、特に、複数のイベント及びそれに対応する処理がランダムに発生する場合のイベント待ち状態を、フロー図上で適切に表すことができるようにしたものではない。
また、上記したように、従来の手法でソースプログラムのデータ定義及び画像定義を作成することは、極めて煩雑であり、作業効率が悪い。
本発明は、このような問題点を解消するためになされたものである。
【００１２】
本発明の第１の目的は、複数のイベント及びそれに対応する処理がランダムに発生する場合のイベント待ち状態をフロー図上で適切に表すことができるようにしたフロー図作成手段を備えたソースプログラム作成支援システムを提供することである。
本発明の第２の目的は、上記した第１の目的を達成するフロー図作成手段を備え、かつ任意のソースプログラムを、高度な知識を備えていない人であっても容易に作成できるようにしたソースプログラム作成支援システムを提供することである。
本発明の第３の目的は、上記した第２の目的を達成するソースプログラム作成支援システムにおいて、ソースプログラムに含まれるデータ定義を、高作業効率で作成することができるようにすることである。
本発明の第４の目的は、上記した第２の目的を達成するソースプログラム作成支援システムにおいて、ソースプログラムに含まれる画面定義を、高作業効率で作成することができるようにすることである。
本発明の第５の目的は、上記した第２の目的を達成するソースプログラム作成支援システムにおいて、作成されたソースプログラムの検証を可能にし、その結果をユーザに分かり安い形態で提供することである。
【課題を解決するための手段】
【００１３】
上記した目的を達成するために、本発明は、コンピュータにより読み取り可能なプログラムを利用し、ユーザとの対話によりソースプログラムを作成するためのソースプログラム作成支援システムであって、作成すべきソースプログラムに対応するフロー図をモニタスクリーン上に作成することを支援するフロー図作成手段と、該フロー図作成手段によって作成されたフロー図を解析してソースコードに変換することによりソースプログラムに変換するフロー図解析変換手段とを含んでいるソースプログラム作成支援システムにおいて、
フロー図作成手段は、
フロー図に含まれるスタート端子、エンド端子、流入線、流出線、及び複数のボックスを含む基本的なプレート、並びに、ランダムに発生される複数のイベントによりそれぞれ駆動される複数のイベント処理を含むイベント処理プログラムの開始プレートを含む一覧表を、ユーザにより選択可能に表示するプレート一覧表示手段と、
ユーザが表示されたプレート一覧からプレートを選択し、その配置位置をモニタスクリーン上で指定する毎に、該配置位置に選択されたプレートの形状を表示するプレート配置手段であって、
プレート一覧に含まれるイベント処理プログラム開始プレートが選択されたときに、イベント発生の待ち状態を表す仮想イベント待ちボックスと該仮想イベント待ちボックスに流出線が接続されたリターン端子とを含んでいるイベントフロー図初期ボックス群をフロー図作成領域上に表示させる手段と
を含んでいるプレート配置手段と、
モニタスクリーン上に配置されたボックスに処理の内容に対応する仕様をユーザに入力させるための入力欄を表示し、入力された仕様を該ボックスと関連付けて記憶する仕様設定手段と
を備え、
フロー図解析変換手段は、
ソースプログラムに変換すべきフロー図中に仮想イベント待ちボックスが含まれている場合に、イベント処理プログラムであると判定して、使用しているコンピュータにＯＳの一部としてインストールされているイベント処理定義を読み出す手段と、
フロー図中のボックスの連係を解析して各ボックスの連係情報を得る手段と、
フロー図中の各ボックスに設定された仕様をソースコードに変換し、かつ、変換されたソースコードに該当するボックスの連係情報を組み入れることにより、各ボックスのソースプログラムモジュールを生成する手段と、
読み出されたイベント処理定義、及び、ボックスの連係情報が組み入れられたソースプログラムモジュールを一体化してソースプログラムを生成する手段と
を備えている
ことを特徴とするソースプログラム作成支援システムを提供する。
【００１４】
上記した本発明に係るソースプログラム作成支援システムにおいて、イベントフロー図初期ボックス群は、仮想イベント待ちボックス及びリターン端子に加えて、スタート端子と、イベント待ちボックスの下流に直列的に配置された２つの判断ボックスと、該判断ボックスからの流出線により該判断ボックスにそれぞれ接続された２つの処理ボックスであって、その流出線がリターン端子に接続されている処理ボックスとを少なくとも含んでいることが好ましい。
また、フロー図作成手段はさらに、フロー図作成領域に配置されたプレートの削除をユーザが指示したときに、該プレートを削除するプレート削除手段と、イベントフロー図初期ボックス群以外のプレートが新たにフロー図作成領域に配置されたときに、該プレートの下流に処理ボックス及びその流出線を、配置されたプレートとは異なる表示態様で自動的に表示する手段とを備えていることが好ましい。この場合、好ましくは、フロー図作成手段のプレート一覧表示手段により表示されるプレート一覧には、イベント処理プログラム終了プレートが含まれ、プレート配置手段は、フロー図作成領域に表示されているフロー図中に仮想イベント待ちボックスが含まれており、かつ異なる表示態様の処理ボックス及びその流出線が含まれている状態で、プレート一覧に含まれるイベント処理プログラム終了プレートが選択されたときに、異なる表示態様の処理ボックス及びその流出線を自動的に削除し、かつ、最下端の判断ボックスの下方に、リターン端子に一方の流出線が接続された判断ボックスを追加し、該判断ボックスの他方の流出線に接続され、自身の流出線がリターン端子に接続された処理ボックスを追加するよう構成されている。
【００１５】
また、上記した本発明に係るソースプログラム作成支援システムにおいて、該システムはさらに、複数の処理内容それぞれに対応するソースプログラムモジュールである複数の関数をその関数名と対応付けて予め記憶しているひな形ライブラリを備えており、フロー図作成手段の仕様設定手段は、ユーザが仕様としてひな形ライブラリに記憶されている関数名を選択的に入力することが可能なるようにするために、ひな形ライブラリ中の複数の関数の内容及びその関数名をユーザに提示する手段を備えており、フロー図解析変換手段は、変換すべきフロー図に、ひな形ライブラリに記憶されている関数名が仕様として設定されているボックスがある場合に、該ライブラリから該関数名に対応する関数を読み出すよう構成されていることが好ましい。
さらに、フロー図作成手段は、上位層のフロー図とその下位層の詳細フロー図を作成するための階層降り機能を実行する手段を備えており、フロー図作成手段の仕様設定手段は、ユーザが上位層のフロー図の仕様として下位層のフロー図を特定するフロー図ＩＤを選択的に入力することが可能となるようにするために、下位層のフロー図の内容及びフロー図ＩＤをユーザに提示する手段を備えており、フロー図解析変換手段は、変換すべきフロー図に、フロー図ＩＤが仕様として設定されているボックスがある場合に、該フロー図ＩＤに対応するプログラムモジュールを記憶手段から読み出すよう構成されていることが好ましい。
【００１６】
さらにまた、上記した本発明に係るソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、モニタスクリーン上に配置されたボックスに処理のタイトルを入力するためのタイトル入力欄を表示し、入力されたタイトルをボックスと関連付けて記憶するタイトル設定手段を備えていることが好ましく、この場合、フロー図作成手段の仕様設定手段及びタイトル設定手段は、プレート配置手段によりボックスがモニタスクリーンに表示される毎に、仕様設定及びタイトル設定が可能であるように構成されていてもよい。また、フロー図作成手段の仕様設定手段のみを備えている場合、該仕様設定手段を、プレート配置手段によりボックスがモニタスクリーンに表示される毎に、仕様設定が可能であるよう構成してもよい。
【００１７】
また、上記した本発明に係るソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、フロー図作成のためのガイダンスをユーザに提供し、該ガイダンスに対するユーザ入力の応答に基づいて、フロー図を自動的に作成するガイダンス手段を備えていることが好ましい。この場合、好適には、フロー図作成手段はさらに、ガイダンス手段が提供したガイダンスと該ガイダンスに対するユーザの応答との時間経過履歴を取得し、かつ、該時間経過履歴をモニタスクリーン上に表示するペースメーカ手段を備えている。
さらに、上記した本発明に係るソースプログラム作成支援システムにおいて、フロー図作成手段は、当初フロー図と、該当初フロー図の全ての処理を含み、かつ当初フロー図の一部の処理を詳細化し進展させたフロー図との関係を、モニタスクリーン上に表示する派生関係表示手段であって、当初フロー図のボックスが選択されたときに、該ボックスの代わりに、該ボックスに対応する進展されたフロー図の複数のボックスを表示させる派生関係表示手段を備えていることが好ましい。
【００１８】
また、上記した本発明に係るソースプログラム作成支援システムはさらに、フロー図作成手段によって作成されるフロー図において使用されるデータのソースプログラムのデータ定義を、モニタスクリーン上でユーザとの対話に基づいてツリー構造のデータレイアウトを作成し、該作成されたデータレイアウトに基づいて定義するデータ定義作成手段と、フロー図作成手段によって作成されるフロー図において使用される画面のソースプログラムの画面定義を、モニタスクリーン上でユーザとの対話に基づいて画面を作成し、該作成された画面の要素の位置及びサイズに基づいて定義する画面定義作成手段とを備えていることが好ましい。この場合、フロー図解析変換手段はさらに、フロー図に基づいて作成されたソースプログラムに、データ定義作成手段及び画面定義作成手段によって作成されたデータ定義及び画面定義と組み合わせる手段を備えていることが好ましい。
【００１９】
さらに、上記した本発明に係るソースプログラム作成支援システムはさらに、作成されたソースプログラムを検証する検証手段を備え、該検証手段は、検証すべきソースプログラムに対応するフロー図をモニタスクリーン上に表示し、表示されたフロー図上に、ソースプログラムのランを一時停止させ、処理結果を取得し、通過履歴と処理結果を表示させるべきポーズ設定点と、処理結果のみを取得するためのパス設定点とをユーザに設定させる手段と、検証すべきソースプログラムをランさせ、該ソースプログラムに対応しかつ表示されたフロー図上に、処理の経過に伴って通過ルートを表示する手段と、処理がポーズ設定点に到達したときに、処理を一時停止させ、かつ、該ポーズ設定点及びパス設定点の通過履歴を表示する手段と、処理がポーズ設定点に到達したときに、フロー図上の予め設定された変数の値を変数一覧として表示する手段とを備えていることが好ましい。
【発明の効果】
【００２０】
本発明は、上記したように構成され、複数のイベント及びそれに対応する処理がランダムに発生する場合のイベント待ち状態を、フロー図上で適切に表すことができ、しかも、このようなイベント待ち状態を含んだフロー図をソースプログラムに変換すればよいので、イベント待ち状態を含んだソースプログラムの生成が容易となる。このとき、フロー図中の仕様の論理とソースプログラムの論理との同一性が維持される。
そして、ガイダンス手段を備えている場合には、ガイダンスによりユーザの入力を促し、それに基づいて自動的にフロー図を作成するので、作成すべきソースプログラムに対応するフロー図作成がユーザにとってより容易となる。さらに、派生関係表示手段を備えることにより、当初フロー図とそのフロー図を展開した展開フロー図との関係、すなわち、その派生のいきさつ及びプログラムの論理の進展を、ユーザが容易に把握することができる。
また、データ定義作成手段を及び画面定義作成手段を備えていることにより、ユーザがツリー構造のデータ定義を視認しながらデータ定義を作成することができ、また、画面をモニタスクリーン上で作成するだけで、画面定義を作成することができる。したがって、データ定義及び画面定義の作成及び保守が容易となる。
さらに、検証手段を備えていることにより、作成されたソースプログラムを実際にランさせて検証を行うことができ、その結果をソースプログラムの修正に反映させることができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明のソースプログラム作成支援システムの好適な実施形態について、図面を参照して説明する。
本発明のシステムは、ＰＣにインストールされるコンピュータプログラムによって構成されるものであり、そのプログラムを機能で大別すると、図１に示すように、フロー図作成モジュール１０、データ定義作成モジュール２０、画面定義作成モジュール３０、フロー図解析変換モジュール４０、及び検証モジュール５０に分けることができる。これらプログラムモジュールの概略機能は、以下の通りである。
【００２２】
フロー図作成モジュール１０
作成しようとするプログラムのフロー図を作成するためのものであり、ＰＣスクリーン上へのユーザによるボックスの選択及び配置、並びにタイトル及び仕様の入力に基づいて、概略／詳細フロー図を完成させる機能を備えている。このとき、階層降り機能により、概要から詳細へと上層フロー図及び下層フロー図により関連づけを行いながら、論理関連をも定義していき、最上層のフロー図から最下層のフロー図まで全てが関連付けられるとともに、仕様定義まで行うことができる。作成された概要／詳細フロー図は、該フロー図中に含まれるボックス毎の入出力関係を含む属性データとして保管される。
これにより、フロー図の作成作業が効率化され、仕様変更をする必要が生じた場合であっても、変更箇所をフロー図上で確認できるため、仕様変更の作業も効率化される。
【００２３】
データ定義作成モジュール２０
ＰＣスクリーン上で、ユーザがファイルレイアウトをツリー状に作成する機能である。ファイルレベル、レコードレベルの定義は、ガイドラインに従って行う。レコード項目は、ユーザがデータ定義用処理ボックスの上下左右の辺を選択することにより、新たな項目と属性とを定義することができる。上下辺が選択された場合、その項目の上下の並列位置に新たな項目を定義する。左辺が選択された場合、その項目の上層位置に新たな項目を定義し、右辺が選択された場合、その項目の下層位置に新たな項目を定義する。項目の削除は、その対象となる位置をユーザが選択することにより行われる。項目の桁数（バイト数）変更等が発生した場合、その項目属性を変更することにより、桁数を自動調整する。作成されたデータ定義は、項目毎の属性データとして保管される。
ＰＣスクリーン上でデータ定義に必要なすべての処理を行うことができ、しかも、ツリー構造のデータ定義を視認しながらデータ定義を作成することができるので、データ定義の作成及び保守が効率化される。
【００２４】
画面定義作成モジュール３０
グラフィック作成に活用されている図形処理を応用した機能を用いて、ＰＣスクリーン上に画面レイアウトを作成する。このとき、まず、ユーザが画面レイアウトに含まれる画面要素を画面要素一覧から選択し、その画面要素の定義内容を入力し、スクリーン上で位置及びサイズを指定することにより、画面レイアウトに含まれる個々の画面要素を作成する。仕様変更時及びバグ修正時は、線、プレート等の画面要素を必要な位置に移動、追加又は必要な位置から削除することにより、実行される。作成された画面定義は、画面要素毎の属性データ（位置及びサイズデータを含む）として保管される。
ＰＣスクリーン上で画面定義に必要なすべての処理を行うことができ、しかも、視覚で確認しながら画面定義を作成することができるので、画面定義の作成及び保守が容易になる。
【００２５】
フロー図解析変換モジュール４０
フロー図作成モジュール１０により作成されたフロー図（最上層フロー図から最下層フロー図を含む）に基づき、データ定義モジュール２０及び画面定義モジュール３０により作成されたデータ定義及び画面定義を参照して、ソースプログラムを作成する。このとき、まず、メインのフロー図のボックス連係を解析し、連係に矛盾が無ければ、スタート端子からエンド端子までの幹線のボックスの内容をソースコードに変換する。変換中に出現する画面及び下層展開関数は、一時保管する。幹線のソースコードへの変換後に、これら保管しておいた画面及び関数を出現順に解析し、ソースコードに変換する。また、下層展開がある関数は、階層降りをして関数内部の解析と変換を行い、最下層までのフロー図をソースプログラムに変更する。仕様変更（追加仕様も含む）及びバグ修正時には、フロー図を変更修正してこのモジュールを動作させることにより、自動的にソースプログラムも変更される。ソースコードは、C++及びＢＡＳＩＣ等の種々のコンピュータ言語で作成可能である。
【００２６】
検証モジュール５０
作成されたソースプログラムをランさせて該プログラムの検証を行う。ＰＣスクリーン上に、ランさせるソースプログラムに対応するフロー図を表示し、そして、該ソースプログラムをランさせたときに、該フロー図上で処理の通過ルートを表示する。また、ユーザが該フロー図の通過ルート上の任意の点にポーズ点及びパス点を設定することができる。ポーズ点が設定された位置にプログラム処理が到達すると、該処理は一時停止し、その時点のフロー図中の種々変数値を取得して表示し、かつ、ポーズ点及びパス点の通過履歴を表示する。パス点が設定された位置にプログラム処理が到達すると、その時点のフロー図中の種々変数値を取得するが、該処理が継続される。プログラムのラン中にエラーが発生した場合、そのボックス及び処理行をエラーリストに表示する。これにより、作成したソースプログラムの動作を検証することができ、誤りがある場合には、それを検出して修正することが容易となる。
【００２７】
フロー図作成モジュール１０の機能には、図２に示すように、イメージフロー作成モジュール１１、タイトルフロー図作成モジュール１２、概要フロー図定義モジュール１３、概要フロー図新規作成モジュール１４、概要フロー図作成ガイダンスモジュール（以下、単に「ガイダンスモジュール」）１５、ペースメーカモジュール１６、及び、詳細フロー図定義モジュール１７が含まれる。
これらモジュール１１〜１７の概略機能は、以下の通りである。
【００２８】
イメージフロー図作成モジュール１１
ユーザとの対話に基づいて、メインプログラムのイメージフロー図を作成する。イメージフロー図とは、ボックス及びその接続関係のみを規定したフロー図である。このモジュールは、イベント待ち表記のためのイメージフロー図を作成するイベント待ち表記モジュール１１１を含んでいる。
タイトルフロー図作成モジュール１２
作成されたイメージフロー図の各ボックスに、そのボックスでの処理のタイトルをユーザに入力させることにより、タイトルフロー図を作成する。なお、タイトルとは、処理の概要内容を意味している。
概要フロー図定義モジュール１３
作成されたタイトルフロー図（又はタイトル入力前のフロー図）の各ボックスに、処理の内容を表す仕様（関数名を含む）をユーザに入力させることにより、プログラムの概要フロー図を作成する。
概要フロー図新規作成モジュール１４
ユーザとの対話により、フロー図に含まれるべきボックスをユーザが設定する度に、該ボックスに仕様（又は、仕様及びタイトル）を入力させることにより、概要フロー図を完成させる。
ガイダンスモジュール１５
フロー図作成のための思考手順を、ガイダンスメッセージとしてユーザに提供する。ガイダンスメッセージは、質疑応答形式で行って各ボックスの仕様を定義することにより、概要フロー図を完成させる。オプションで、質疑応答中に所定の設定時間を経過した場合に、別の質問等で入力作業を促すようにする。
ペースメーカモジュール１６
ガイダンスモードでフロー図作成中の質疑応答に対し、応答時間の制限を設定し、制限時間を経過した場合、「分かりませんか」等の別の質疑応答で作業を作成者に通知する。また、処理経過時間を分析することにより、作成者の得手／不得手を判定し、作業改善の提言を行う。
詳細フロー図定義モジュール１７
階層降り機能を備え、ユーザとの対話に基づき、作成された概要フロー図の第１下層レベルから最下層レベルまでの各層のフロー図（詳細フロー図）を作成する。
【００２９】
フロー図作成モードが選択されてフロー図作成モジュール１０が起動されると、図３のフロー図に示すように動作する。すなわち、まず、ステップＳ１において、イメージフロー図作成モードが選択されたか否かを判断し、その結果がＹＥＳ（肯定）である場合、イメージフロー図作成モジュール１１が起動されて、ステップＳ２において、ユーザとの対話によりイメージフロー図が作成される。その後、タイトルフロー図作成モジュール１２が起動され、ステップＳ３において、タイトルフロー図がユーザとの対話に基づき作成される。タイトルフロー図が完成すると、概要フロー図定義モジュール１３が起動され、ステップＳ４において、概要フロー図定義が、ユーザとの対話に基づいて作成される。概要フロー図定義とは、タイトルフロー図のそれぞれのボックスに処理仕様を入力することにより、メインフロー図である概要フロー図を作成することである。
【００３０】
一方、ステップＳ１においてイメージフロー図作成モードが選択されていないと判定し、かつステップＳ５において概要フロー図新規作成モードが選択されている判定すると、ステップＳ６に進んで、概要フロー図新規作成モジュール１４が起動され、ユーザとの対話により概要フロー図を作成する。ステップＳ６における概要フロー図の作成は、フロー図に含まれるべきボックスを設定する度に、該ボックスに仕様（又は、仕様及びタイトル）を入力することにより、概要フロー図を完成させるものである。すなわち、イメージフロー図及びタイトルフロー図を完成させることなく、直接的に概要フロー図を作成するものである。
【００３１】
また、ステップＳ１においてイメージフロー図作成モードが選択されていないと判定し、ステップＳ５において概要フロー図新規作成モードが選択されていないと判定し、ステップＳ７においてガイダンスモードが選択されていると判定し、ステップＳ８においてペースメーカモードが選択されていると判定すると、ステップＳ９に進んでペースメーカモジュール１６が起動され、かつステップＳ１０においてガイダンスモジュール１５が起動される。これにより、ユーザとの対話に基づき、ペースメーカ及びガイダンス機能による概要フロー図作成を行う。一方、ステップＳ８においてペースメーカモードが選択されていないと判定すると、ステップ１０に進んでガイダンスモジュール１５が起動され、ユーザとの対話に基づき、フロー図作成のガイダンスを行いつつ、概要フロー図を作成する。
【００３２】
ステップＳ４、Ｓ６及びＳ１０のいずれかが終了し、詳細フロー図定義モードが選択されると、ステップＳ１１に移行して、詳細フロー図定義モジュール１６が起動され、ユーザとの対話に基づいて、詳細フロー図を定義し作成する。詳細フロー図は、上記したように、作成された概要フロー図の第１下層から最下層までのフロー図であり、各層の詳細フロー図は、ステップＳ２〜Ｓ４、ステップＳ６、ステップＳ８、及び１０のいずれかでの概要フロー図の作成と同様にして作成される。
このようにして、最下層までの詳細フロー図が完成し、それをステップＳ１２において判定すると、フロー図作成モジュール１０による処理が終了する。なお、このような階層降り機能により詳細フロー図を作成する場合、上位層のフロー図のボックスに入力される仕様は、該ボックスに対応する下位層の詳細フロー図を表すフロー図ＩＤ（関数名）となる。
【００３３】
フロー図変換モジュール４０の機能は、図２−２に示すように、フロー図の処理ボックス、流入線および流出線との関連を解析するフロー図連係解析モジュール４１、各フロー図中のボックス内の内容を解析するボックス内容解析モジュール４２、各ボックス内の仕様をソースコードに変換するソースプログラム変換モジュール４３、データ定義及び画面定義をソースプログラムに組み込むデータ定義・画面定義ソースプログラム組み込みモジュール４４、展開関数を解析する展開関数解析モジュール４５、及び展開関数を組み込む展開関数ソースプログラム組み込みモジュール４６に大別することができる。
また、検証モジュール５０の機能は、図２−３に示すように、処理の通過ルートを表示する表示モジュール５１、パス・ポーズ機能による処理結果を取得して表示する取得・表示モジュール５２、処理エラーを表示する表示モジュール５３、及び、処理の全体の結果を表示する全処理結果表示モジュール５４に大別することができる。
【００３４】
本発明のシステムはまた、上記したモジュールの機能に関連するデータを格納するデータベース（ＤＢ）を備えている。該ＤＢには、図１に示すように、フロー図プレートマスタＤＢ１、フロー図ファイルＤＢ２、ガイダンスマスタＤＢ３、ガイダンスデータＤＢ４、データ定義ファイルＤＢ５、画面定義プレートマスタＤＢ６、画面定義ファイルＤＢ７、言語マスタＤＢ８、コード式記述マスタＤＢ９、ソースプログラムファイルＤＢ１０、及び通過履歴／変数値ファイルＤＢ１１を備えている。
これらデータベースは、以下のようなデータを格納する。
【００３５】
フロー図プレートＤＢ１
フロー図作成モジュール１０の機能によるフロー図の作成の際に使用される、スタート端子、エンド端子、処理ボックス、判断ボックス、画面表示ボックス、印刷ボックス、下流出線、上流出線等の基準プレート、イベント処理プログラムの開始ボックス（以下、「イベントボックス」）、イベント処理プログラムの終了ボックス（以下、「イベント終了ボックス」）（以下、これらを総称する場合に「ボックス」と称する）のイメージを記憶している。また、イベントボックスによって指定される複数のボックスの組み合わせ配置からなるイベントフロー図初期ボックス群及びイベント終了ボックスによって指定される複数のボックスの組み合わせ配置からなるイベントフロー図終了ボックス群も、予め記憶されている。
フロー図ファイルＤＢ２
フロー図作成モジュール１０の機能によって作成されたフロー図中のボックス毎のデータを格納する。なお、図１においては、フロー図ファイルＤＢ２を２つ表示しているが、これは、処理の流れが明確となるようにするためであり、同一のものである。
ガイダンスマスタＤＢ３
ガイダンスモジュール１５によって実行されるフロー図作成時にユーザに質問すべきガイドライン（ガイダンス）のデータを格納し、かつ、ペースメーカモジュール１６及びガイダンスモジュール１５によって実行されるフロー図作成時に質問に対するユーザの応答時間とユーザへのヒントとを対応づけて記憶している。また、ガイダンスによってフロー図を作成する際の初期フロー形態のデータを記憶している。
ガイダンスデータＤＢ４
ガイダンスモジュール１５によって実行されるフロー図作成時に、質問に対するユーザの応答を記憶し、かつ、ペースメーカモジュール１６及びガイダンスモジュール１５によって実行されるフロー図作成中に、ユーザとの間の質疑応答を、時間に対応させて記憶する。
データ定義ファイルＤＢ５
データ定義作成モジュール２０の機能によってＰＣスクリーン上で設定されたデータ定義を、項目毎のデータとして格納する。
画面定義用プレートマスタＤＢ６
画面定義作成モジュール３０による画面定義の作成の際に使用される、ボックス、ボタン等の画面作成に必要なプレートの要素を記憶している。
画面定義ファイルＤＢ７
画面定義作成モジュール３０の機能によってＰＣスクリーン上で設定された画面定義を、画面の構成要素（枠、ボタン、線、表等）毎のデータとして格納する。
言語マスタＤＢ８
フロー図解析変換モジュール４０の機能により、作成されたフロー図をソースプログラムに変換する際に参照される、ユーザ入力の仕様言語とソースコードとの対照テーブルを格納している。ソースコードは、プログラム言語の種類に対応して記憶されている。
コード記述式マスタＤＢ９
フロー図解析変換モジュール４０の機能により、作成されたフロー図をソースプログラムに変換する際に参照される、ユーザ入力の仕様の配置位置とソースコードの配置との対照テーブルを格納している。また、使用頻度が高い典型的なボックスに対応するソースプログラムのモジュールである関数も、ひな形ライブラリに格納している。ひな形ライブラリには、例えば、画面処理用、印刷処理用、パッチ処理用のひな形の関数（それぞれ複数）が含まれる。
ソースプログラムファイルＤＢ１０
フロー図解析変換モジュール４０の機能によって作成されたソースプログラムを格納する。
通知履歴／変数値ファイルＤＢ１１
作成されたソースプログラムを検証モジュール５０によってランさせて検証する際に、フロー図上に設定された１又は複数の点の通過履歴、及び、フロー図中の変数の値を記憶する。
【００３６】
次に、本発明のシステムの各モジュール１０〜５０の機能によってＰＣスクリーン上に表示される画像を参照することにより、本発明のシステムの構成をより詳細に説明する。
ユーザが、ＰＣスクリーン上で本発明のソースプログラム作成アプリケーションを起動し、フロー図作成モードを選択すると、フロー図作成モジュール１０が起動する。そしてユーザがフロー図作成メニューからイメージフロー図作成モードを選択すると、イメージフロー図作成モジュール１１が起動される。
イメージフロー図作成モジュール１１が起動されると、フロー図作成領域がＰＣスクリーン上に表示され、かつ、プログラムフロー図に含まれるイメージボックスを表示したプレートがフロー図プレートマスタＤＢ１から読み出され、図４−１に示すようなプレート一覧としてＰＣスクリーンの下端部又は右端部等の適宜の位置に自動的に表示される。それと共に、ＰＣスクリーンのフロー図作成領域に、図４−２に示すように、スタート端子及び下流出線が自動的に表示され、かつ、その下流出線の下端に、処理ボックスが破線（又は点滅状態）で自動的に表示される。また、この処理ボックスの下端には下流出線が破線で自動的に表示される。
【００３７】
その後、ユーザが、表示されたプレート一覧から、画面表示ボックス、判断ボックス、ファイル処理ボックスを順次選択すると、図４−３に示すように、ＰＣスクリーンのフロー図作成表示領域に、画面入力処理ボックスＡ、判断ボックスＢ、ファイル処理ボックスＣが表示され、かつそれぞれのボックスが表示される毎に、その下端に下流出線ａ、ｂ１、ｃが表示される。また、ボックスが新たに表示される度に、破線の処理ボックス及び破線の下流出線がその下端に位置するように、自動的に更新表示される。図４−３の例においては、ファイル処理ボックスＣが最後に選択されたボックスとなるため、その下流出線ｃの下端に、破線の処理ボックス及び破線の下流出線が自動的に表示されている。
【００３８】
図４−３に示された状態で、判断ボックスＢの右先端をユーザが選択すると、図４−４に示すように、判断ボックスＢの右端から右流出線ｂ２を自動的に表示する。そして、図４−３の状態での破線の処理ボックス及び下流出線を自動的に削除して、判断ボックスＢの右側に、破線の処理ボックス及び右流出線を自動的に表示する。図４−４に示された状態で、ユーザが右流出線ｂ２の右端を選択すると、図４−５に示すように、右流出線ｂ２に連結された下流出線が表示され（連結下流出線ｂ２）、破線の処理ボックス及び下流出線がその下端に表示される。
【００３９】
次いで、ユーザが、プレート一覧から処理ボックスを選択すると、図４−６に示すように、新たに処理ボックスＤとその下流出線ｄが配置され、かつ、その下流出線の下端に、処理ボックスが破線（又は点滅状態）で自動的に表示される。また、この処理ボックスの下端には下流出線が破線で自動的に表示される。下流出線ｄをした流出線ｃに流入するため、処理ボックスＤの下端の下流出線ｄ及びファイル処理ボックスＣの下端の下流出線ｃを選択すると、図４−７に示すように、新たに配置された処理ボックスＤの下流出線が下流出線ｃに結合され、連結下流流出線ｄが表示される。その後、ユーザが判断ボックスＥを選択し、かつその流出線を設定し、そして、印刷処理ボックスＦ及びエンド端子を順次選択すると、図４−８に示すようなイメージフロー図が作成される。このとき、ユーザが、処理順序番号を付けるためにＰＣスクリーン上で「付番」ボタン（不図示）を選択すると、図４−８に示すようなボックス番号が、それぞれのボックスに自動的に付番される。なお、ボックスが選択されて配置される度に、仮のボックス番号を付与し、「付番」ボタンが選択された時点で、正規のボックス番号を付与するようにしても良い。
【００４０】
イメージフロー図を作成後、該フロー図中からあるボックスを削除したい場合、ユーザがそのボックスを選択することにより表示されるメニューから「削除」を選択することにより、該ボックスが削除される。また、あるボックスを追加したい場合、ユーザがプレート一覧からボックスを選択し、かつ、挿入すべき位置にカーソルを移動させることにより、追加が実行される。このような変更が実行された後、「付番ボタン」を再度選択することにより、ボックス番号が付け直される。
作成されたイメージフロー図に含まれる各ボックスの種別及びボックス相互間の接続関係は、ボックス番号、フロー図名、及びフロー図ＩＤに対応付けられて、フロー図ファイルＤＢ２に格納される。
【００４１】
次に、ユーザがタイトルフロー図作成モードを選択すると、タイトルフロー図作成モジュール１２が起動され、イメージフロー図中の各ボックスに、ユーザがタイトルを入力することが可能となる。すなわち、ユーザがボックスを選択する毎に、タイトル入力画面（日本語名入力画面）が表示され、該画面上でユーザがタイトルを入力する。そして、ユーザが全てのボックスのタイトルを入力し、かつ、判断ボックスの分岐条件を入力することにより、タイトルフロー図が作成される。
図５は、図４−８に示したイメージフロー図の各ボックスにタイトルが入力されて、タイトルフロー図が作成された状態を示している。この例のフロー図名は、「ＮＩＰＰＯ−ＨＩＺＵＫＥ」である。各ボックスの入力されたタイトルは、そのボックス番号に対応付けられ、例えば、ボックス番号２に「画面入力処理」が対応付けられ、ボックス番号３に「日付判定処理」が対応付けられ、・・・、フロー図ファイルＤＢ２に記憶される。
【００４２】
タイトルフロー図の作成が完了し、ユーザが概要フロー図定義モードを選択すると、概要フロー図定義モジュール１３が起動される。この場合、タイトルフロー図の作成と同様に、イメージフロー図（又はタイトルフロー図）がＰＣスクリーン上に表示され、表示されたフロー図中のボックスをユーザが選択すると、仕様入力画面が表示される。該画面上でユーザが仕様を入力し、そして全てのボックスの仕様を入力することにより、メインプログラムに相当する概要フロー図が作成される。概要フロー図の各ボックスに関する全てのデータは、ボックス毎のフロー式マスタとしてフロー図ファイルＤＢ２に格納される。仕様入力及びフロー図マスタについては、後述する図７−１〜図７−４の説明から明らかとなるであろう。
図６は、図４−８に示したイメージフロー図の各ボックスの仕様が入力されたことにより、概要フロー図が作成された状態を示している。
【００４３】
上記においては、タイトル及び仕様を別々の画面上で入力する場合について説明した。このように構成する代わりに、タイトルフロー図作成モジュール１２及び概要フロー図定義モジュール１３の機能を一体化し、これらを同一の入力画面上で入力するようにしても良い。これについて、ユーザにより判断ボックスが選択された場合を例として、以下に説明する。
ユーザが、図４−８に示したイメージフロー図中の判断ボックス（ボックス番号３）を選択すると、図７−１に示すような入力画面が表示される。該画面には、複数の入力欄が表示され、これら入力欄にはフィールド番号Ｆxxxが対応付けられている。そして、未入力の１つのタイトル入力欄及び４つの仕様入力欄とともに、イメージフロー図作成時に入力された入力線（流入線）、出力線（流出線）、並びに、現在のボックス番号及び次のボックス番号が表示される。また、イメージフロー図作成時に設定されなかった流入／流出線の設定可能位置及び分岐条件の設定可能位置にも、入力欄が表示される。
【００４４】
図７−１の例においては、ボックス番号３がフィールド番号Ｆ001に対応する位置に表示され、出力線はフィールド番号Ｆ036及びＦ037に対応する位置に表示され、これら出力線の近傍であるフィールド番号Ｆ035及びＦ038に対応する位置に分岐条件（＝、≠、＞、＜、≧、≦）の入力欄が表示される。また、判断ボックスであることを示すボックス種別コード「０６」も表示され、ボックス種別コードにはフィールド番号F002が対応付けられている。ボックス種別コードは、ユーザがプレート一覧でボックスを選択したときに、その種別が判断され、該種別に対応するコードが付与される。
【００４５】
ユーザが、図７−１に示した画面上で、図７−２に示すように、タイトル入力欄（Ｆ021）に「日付チェック」を入力し、４つの仕様入力欄に「Ｄ１（データ名）」（Ｆ011）、「０５０３０３」（Ｆ013）、「日付」（Ｆ012）、及び「今日」（Ｆ014）を入力すると、図７−３に示すような、ボックス番号３のマスタが作成される。
また、ユーザが、図４−８に示したフロー図中で、例えばボックス番号５の処理ボックスを選択し、その仕様が展開関数「ＳＵＢＰＧ０１」である場合（ボックス種別コード：１０）、図７−４に示すような、ボックス番号５のマスタが作成される。
このようにして、イメージフロー図中の全ボックスのタイトル及び仕様が入力され、その結果、ボックス毎のマスタが作成される。作成されたボックスマスタは、そのフロー図のフロー図ＩＤに対応付けられてフロー図ファイルＤＢ２に記憶される。
【００４６】
上記説明においては、図４−８に示すようなイメージフロー図を作成した後に、ボックス毎にタイトル及び仕様を入力することを前提としているが、概要フロー図新規作成モジュール１４を起動することにより、イメージフロー図を作成又は完成させずに、ボックス毎にタイトル及び仕様を入力することができる。このモジュール１４は、ユーザがＰＣスクリーン上で、プレート一覧からボックスを選択してフロー図作成領域に表示させる度に、入力画面を表示させ、該画面上でボックスの入出力線、タイトル及び仕様、分岐条件（判断ボックスの場合）をユーザが入力することができる。例えば、判断ボックスの場合、該判断ボックスをフロー図作成領域に表示した時点で、判断ボックス上に図７−１に示すような入力欄を表示し、該入力欄に、入出力線、分岐条件（＝、≠、＞、＜、≧、≦）、タイトル、及び仕様をユーザが入力するようにする。分岐条件は、入力欄を表示せずに、判断ボックスの端部近傍を指定し、それによって表示されるプルダウンメニューから選択することによって入力されるようにしてもよい。同様に、入出力線も、入力欄を表示せずに、判断ボックスの端部を指定することによって表示されるプルダウンメニューから選択するようにしてもよい。
これにより、図７−３（判断ボックス用）及び図７−４（処理ボックス用）に示したようなボックスマスタが作成される。
また、概要フロー図新規作成モジュール１４を起動することなく、イメージフロー図作成モジュール１１、タイトルフロー図作成モジュール１２、及び概要フロー図定義モジュールを適宜切り替えて起動することにより、１又は複数のボックスをフロー図作成領域に配置させるたびに、タイトル及び／又は仕様を入力させることもできる。
【００４７】
ここで、本発明のシステムのフロー図作成モジュール１０のイベント待ち表記モジュール１１１において実行される、ランダムに発生される複数のイベントの待ち状態を含んだフロー図を作成する機能について、図７−５のフロー図を参照して詳細に説明する。なお、この機能は、複数のイベント待ちの状態を、ユーザが容易かつ正確にフロー図上で表現できるようにしたものであるが、基本的には、図４−１〜図７−４に関連して説明した機能を用いている。
【００４８】
まず、ユーザが複数のイベント待ち状態を含んだフロー図を作成しようとした場合、フロー図作成モードを選択する。これにより、先に説明したように、フロー図作成モジュール１０が起動され、そして、ユーザがフロー図作成メニューからイメージフロー図作成モードを選択すると、イメージフロー図作成モジュール１１が起動され、フロー図作成領域がＰＣスクリーン上に表示され、かつ、図７−５のステップＳ７０において、フロー図プレートマスタＤＢ１から、図４−１に示されるプレート一覧がＰＣスクリーンの適宜の位置に自動的に表示される。これとともに、先に説明したように、図４−２に示すような、初期画面、すなわち、実線のスタート端子及び下流出線、並びに点線の処理ボックス及び下流出線を表示した初期画面がフロー図作成領域に自動的に表示される。
【００４９】
この状態で、ユーザが、表示されたプレート一覧からイベントボックスを選択すると、イメージフロー図作成モジュール１１は、それを判断し、ステップＳ７１においてイベント待ち表記モジュール１１１を起動する。モジュール１１１は、起動されると、ステップＳ７２において、図４−１に示した初期画面をフロー図作成領域から自動的に削除し、フロー図プレートマスタＤＢ１からイベントフロー図初期ボックス群を読み出して自動的に表示させる。イベントフロー図初期ボックス群は、例えば図７−６に示すような構成を有し、この例では、ボックス番号１〜１２が付けられたスタート端子、処理ボックス、画面表示ボックス、処理ボックス、仮想イベント待ちボックス、処理ボックス、３つの判断ボックス、２つの処理ボックス、及びリターン端子、並びに、それぞれのボックスからの流出線、及びリターン端子から仮想イベント待ちボックスに向かう破線の矢印を含んでいる。イベントフロー図初期ボックス群は、上記した全てのボックスを含む必要がなく、少なくとも、仮想イベント待ちボックス及びリターン端子を含み、かつ、リターン端子から仮想イベント待ちボックスへの矢印（図の例では、点線の矢印）を含んでいればよい。この場合、スタート端子等の他のボックスは、図４−３〜図４−７を参照して説明したように、ユーザがプレート一覧から適宜選択して、イベントフロー図作成領域に配置すればよい。
そして、イベント待ち表記モジュール１１１は、ユーザの次の動作を待機する。
【００５０】
ユーザが、この画面上に表示されたフロー図にさらに追加すべきボックス（流出線及び流入線を含む）がある場合には、プレート一覧から適宜のボックスを選択しかつその配置位置をカーソルで指定する。イベント待ち表記モジュール１１１は、それをステップＳ７３で判定し、ステップＳ７４においてボックスの追加処理を行う。逆に、削除すべきボックスがある場合には、ユーザはそのボックスを選択して削除メニューを選択すればよい。これは、ステップＳ７５及びＳ７６において実行される。ボックスの追加処理において、ユーザが判断ボックス（ボックス番号９）の下流の位置を新たなボックスの配置位置として指定した場合には、イベント待ち表記モジュール１１１は、判断ボックス（ボックス番号９）とリターン端子（ボックス番号１２）との間に直接ルートが形成されないように、流出線を自動的に修正する。例えば、図７−６において、判断ボックス（ボックス番号９）の下流から横方向に延びている流出線を、該判断ボックスからの下流出線に自動的に変更する。
【００５１】
図７−７は、図７−６に示した画面上のフロー図において、ユーザが、判断ボックス（ボックス番号９）の下流に３つの判断ボックス（ボックス番号１３、１５、１７）を追加し、かつ、それぞれに対応して３つの処理ボックス（ボックス番号１４、１６、１８）を追加し、さらに、これらそれぞれのボックスから流出線が追加された状態を示している。この場合も、最終追加された流出線（ボックス番号１７の判断ボックスからの）の下方に、破線の処理ボックス及び下流出線が自動的に追加される。
【００５２】
このような状態で、ユーザがプレート一覧からイベント終了ボックスを選択すると、イベント待ち表記モジュール１１１は、ステップＳ７７においてそれを判定し、そしてステップＳ７８において、破線の処理ボックス及び流出線を自動的に削除し、その位置に、フロー図プレートマスタＤＢ１からイベント終了ボックスに対応して記憶されている複数のボックスの組み合わせすなわちイベントフロー図終了ボックス群を読み出して配置する。そして、ユーザが画面上の「付番ボタン」を選択することにより、最終的な正規のボックス番号が自動的に付けられ、図７−８に示すようなフロー図が形成される。この例では、イベントフロー図終了ボックス群には、１つの判断ボックス（ボックス番号１３）、その横方向に配置された１つの処理ボックス（ボックス番号１９）、これらからの横方向の流出線、及び、追加された判断ボックス（ボックス番号１３）からリターン端子（ボックス番号１２）に向かう流出線が含まれている。
【００５３】
このようにしてイベント処理を含むプログラムに対応するイメージフロー図が作成され、そして、イベント待ち表記モジュール１１１は、ステップＳ７９において、イメージフロー図作成の終了を検出すると、ステップＳ８０において、作成されたフロー図をフロー図ＩＤに対応付けてフロー図ファイルＤＢ２に記憶し、これにより、イメージフロー図作成モードが終了する。ステップＳ７９における判定は、「付番ボタン」が選択されたか否かによって判定してもよく、また、「終了ボタン」が選択されたか否かによって判定してもよい。なお、図７−６に示したように、イベントフロー図初期ボックス群には、最終段に表示された判断ボックスの下流線がリターン端子（ボックス番号１２）に接続されている。したがって、ステップ７２においてイベントフロー図初期ボックス群を表示しただけで、イメージフロー図作成を終了することもできる。
【００５４】
ユーザは、このようにして作成されたイメージフロー図のそれぞれのボックスにタイトル及び分岐条件を入力するために「タイトルフロー図作成モード」を選択すると、先に説明したように、タイトルフロー図作成モジュールが起動され、イメージフロー図中の各ボックス及び流出線に、ユーザがタイトル及び分岐条件を入力することが可能となる。ユーザが作成を意図しているプログラムが氏名住所登録プログラムである場合、例えば、図７−９に示すように、タイトル及び分岐条件が入力される。図７−９の例では、ボックス２〜２２にそれぞれ、「描画前初期処理」、「画面」、「描画後初期処理」、「仮想イベント待ち」、「イベント信号編集処理」、「信号“０”か？」、「確認ボタンか？」「氏名か？」、「フリガナ（氏名）か？」、「郵便番号か？」、「住所か？」、「フリガナ（住所）か？」、「終了か？」、「カーソル移動処理」、「確定処理」、「氏名処理」、「フリガナ（氏名）処理」、「郵便番号処理」、「住所処理」、「フリガナ（住所）処理」、「終了処理」のタイトルがそれぞれ入力され、かつ、分岐条件「ＹＥＳ」及び「ＮＯ」が判断ボックス（ボックス番号７〜１４）にそれぞれ入力された状態を示している。仮想イベント待ちボックス（ボックス番号５）は、特殊な機能を表すためのボックスであり、したがって、予めタイトル（及び仕様）を入力しておいても良い。
【００５５】
なお、ユーザがタイトル及び分岐条件を入力中であっても、不要なボックスがある場合、先に説明したように、該ボックスを選択して「削除」メニューを選ぶことにより、削除することができる。また、イベント処理のボックスを追加したいボックスがある場合、先に説明したように、ユーザがプレート一覧からボックスを選択し、そして挿入すべき位置にカーソルを移動させることにより、ボックスを追加することができる。
また、先に説明したように、プレート一覧から１又は適宜数のボックスを選択してフロー図作成領域に表示する度に、ボックスのタイトル、入出力線、分岐条件（判断ボックスの場合）をユーザが入力できるようにしてもよい。
作成されたタイトルフロー図も、フロー図ファイルＤＢ２に記憶される。
【００５６】
タイトル及び分岐条件の入力が完了すると、次にユーザは、仕様を入力するために「概要フロー図定義モード」を選択すると、概要フロー図定義モジュール１３が起動され、先に説明したようにして、ユーザはそれぞれのボックスに仕様を入力する。図７−１０は、このようにして作成された概要フロー図を示している。
なお、上述したように、コード式記述マスタＤＢ９には、使用頻度が高いボックスに対応して既に作成されているプログラムモジュールのライブラリが記憶されており、これらプログラムモジュールを特定するプログラムモジュールＩＤすなわち関数名を仕様として入力することができる。図７−１０において、ボックス番号２〜４のボックスに入力された仕様「GPG_01()」、「GPG_02()」、「GPG_02()」は、これらボックスに対応する関数名である。
【００５７】
また、図８を参照して以降で説明するように、概要フロー図中の複雑な処理を伴うボックスは通常、詳細フロー図定義モジュール１７の階層降り機能により、より下層のフロー図に展開される。このような、下層のフロー図に展開されるボックスにおいては、「仕様」とは、当該ボックスに対応する下層のフロー図（及びそれに対応するソースプログラム）を特定するフロー図ＩＤである。図７−１０において、ボックス番号１５〜２２のボックスに入力された仕様「PG_11()」、「kakutei ()」、・・・は、下層のフロー図ＩＤである。ボックス６における仕様は「PG_05()」であり、この「PG_05()」も、下層のフロー図ＩＤを示している。
概要フロー図定義モジュール１３は、ひな形ライブラリに記憶されたプログラムモジュールすなわち関数の内容及び関数名、並びに、予め作成されかつソースプログラムに変換されてソースプログラムファイルＤＢ１０に記憶された下層のフロー図の内容及びフロー図ＩＤを、画面上でユーザが検索可能に提供する。これを参照して、ユーザは、フロー図のボックスに、関数名及び下層フロー図のＩＤを仕様として入力することができる。なお、該当する下層のフロー図が未作成の場合、該下層のフロー図ＩＤを仕様として予め設定し、その後、階層降り機能により下層のフロー図を作成すればよい。
【００５８】
一方、判断ボックス７〜１４に入力された仕様はそれぞれ、「SINGO:0」、「button:8004」、「now:100101」、「now:100102」、「now:100103」、「now:100104」、「now:100105」、「END_FLG:0」であり、判断処理において対比すべき対象を示している。
このようにして作成された概要フロー図も、フロー図ファイルＤＢ２に記憶される。
【００５９】
以上から明らかなように、本発明のシステムの支援下で作成されるイベント処理を含むプログラムのフロー図は、イベント処理がランダムに生じる場合であっても、イベント待ち状態をユーザに分かりやすい状態で表示することができ、したがって、ユーザは、意図する処理内容に合致するフロー図を容易に作成することができる。
【００６０】
また、従来、処理ボックスに記述する言語は、通常、ソースプログラムを作成するため、メーカの言語特有の形式に則った記述となっている。本発明のシステムにおいては、メーカの言語特有の形式に制約されない自由な表記を行うことができる。このような表記方式を、本明細書においては「新表記」と称し、これにより、ユーザ独自の分かり易い言語で仕様を作成することができる。すなわち、表記されたユーザ言語は、言語マスタを介してソースコード変換時、メーカ言語の形式に変換される。このため、この機能を使用すれば、ソースコードに変換する時点で、変換後の汎用コンピュータ言語（Ｃ、Ｃ＋＋，Ｊａｖａ（登録商標）等）を自由に選択できる。
仕様からソースコードへの変換については、以降で詳細に説明する。
【００６１】
次に、詳細フロー定義モードが選択されると、詳細フロー定義モジュール１７が起動され、ユーザとの対話の下で、作成されたメインフロー図である概略フロー図の下層の詳細フロー図が作成される。詳細フロー定義モジュール１７の動作について、図８を参照して説明する。
図８に示すように、概略フロー図であるメインフロー図Ａの処理ボックスに関数Ｂが設定され、該関数Bが複雑な構造を有している場合、該フロー図上でユーザが関数Ｂを指定しかつ階層降りメニューを選択すると、関数Ｂを処理するためのフロー図作成画面が自動的に表示される。該画面上でユーザと対話して、上述した概略フロー図の作成と同様な処理を行うことにより、サブフロー図Ｂを作成する。その作成されたサブフロー図Ｂが関数Ｃを含んでいる場合、該関数Ｃをユーザが指定し階層降りメニューを選択すると、関数Ｃのフロー図作成画面が表示され、サブフロー図Ｃを作成する。サブフロー図Ｃが関数Ｄを含んでいる場合、同様にして、該関数Ｄを処理するためのサブフロー図Ｄを作成する。
このようにして、上記の手順を繰り返すことにより、任意の階層のサブフロー図を作成することができ、したがって、メインフロー図中の処理が複雑であっても、詳細フロー図定義モジュール１７のこのような機能（階層降り機能）を用いることにより、最下層のフロー図まで容易に作成することができる。
【００６２】
ユーザが概略フロー図を作成しようとしてガイダンスモードを選択すると、ガイダンスモジュール１５が起動される。すると、ガイダンスモジュール１５は、ガイダンスマスタＤＢ３から初期フロー形態のデータを読み出し、図９−１に示すように、ＰＣスクリーンのフロー図作成領域に、スタート端子、初期処理ボックス、結合子（Ｇ１）、及びエンド端子を自動的に生成する。
図９−２は、ガイダンスマスタＤＢ３に格納されているデータの一例を示しており、ガイダンスマスタDB３には、初期フロー形態以外に、フロー図のレベル形態に対応させて、ユーザに質問すべき内容がガイダンスデータとして格納されている。
初期フロー形態を表示した後、ガイドラインモジュール１５は、ガイダンスマスタＤＢ３に予め記憶されているガイドラインに基づいて、大きな業務の数（業務数）を質問する（例えば、「業務数は幾つですか」）。それに対応して、例えば、業務数＝３の応答が入力された場合、図９−３に示すように、判断ボックスを４個、処理ボックスを３個、結合子とエンド端子との間に自動的に配置させる。
【００６３】
その後、１〜３番目の業務のタイトル名の質問に対して、例えば、「日報処理」、「月末処理」、「年度末処理」が入力された場合、図９−３に示した判断ボックス及び処理ボックスに、対応するタイトルが自動的に表示される。次いで、追加したい業務についての質問に対してユーザが追加業務有りと応答し、その４番目の業務のタイトルが「集計処理」であると入力した場合、図９−４に示すような画面となる。さらなる追加業務がない場合、１番目の「日報処理」の機能の数を質問し（例えば、「では、日報処理の機能はいくつですか」）、それに応答して３機能であると入力された場合、図９−５に示すように、図９−４の日報処理ボックスを削除して、３つの判断ボックスと３つの処理ボックスを自動的に表示させる。そして、３つの処理の内容が「登録処理」、「修正処理」、「削除処理」であることユーザから取得すると、その結果、図９−６に示すようなフロー図が表示される。
このようにして、ガイダンスマスタＤＢ５に記憶されたガイダンスに基づいて、ガイダンス及びユーザ応答に基づいた表示を反復的に行うことにより、概略フロー図を作成することができる。概略フロー図の内容は、上記したようにフロー図ファイルＤＢ２に記憶され、また、質疑応答の内容は、ガイダンスデータとしてガイダンスデータＤＢ４に記憶される。
【００６４】
このとき、１つの処理に複数の処理（当初）が含まれ、その複数の処理の１つにさらに複数の処理（第１の展開）が含まれるというように、複数の処理に進展することが通常である。このような場合を本明細書においては「派生関係にある」と称し、当初のボックスを派生元のボックスと称し、該ボックスの進展した複数のボックスを派生先のボックスと称する。例えば、図９−４に示すようなタイトルフロー図が作成されている場合、そのフロー図の「日報処理」ボックス（ボックス番号９）と、図９−６の判断ボックス（ボックス番号１４〜１６）及び処理ボックス（ボックス番号１７〜１９）とは派生関係にあり、前者が派生元であり後者が派生先である。また、派生元ボックス（当初ボックス）が含まれるフロー図を当初フロー図と称し、派生先(展開ボックス)が含まれるフロー図を展開フロー図と称する。
【００６５】
本発明のシステムにおいては、このような派生関係も、フロー図ファイルDB２に記憶する。例えば、派生先のボックス（ボックス番号１４〜１９）のボックスマスタに、派生元のボックスのＩＤ（すなわちボックス番号）を、派生関係のデータとして記憶する。そして、図９−４のフロー図を表示した状態で、派生元であるボックス（ボックス番号９）を選択すると、該ボックスに置き換わって派生先の複数のボックス（ボックス番号１４〜１９）が表示され、逆に、図９−６のフロー図を表示した状態で、派生先の複数のボックス（ボックス番号１４〜１９）を選択すると、これらボックスに置き換わって派生元のボックス（ボックス番号９）が表示される。
このような派生関係の表示により、派生のいきさつ及びプログラムの論理の進展を把握することが容易になる。
【００６６】
ユーザがペースメーカ機能を選択すると、ペースメーカモジュール１６が起動される。ペースメーカモジュール１６は、ガイドラインモジュール１５と共同して処理を行うものであり、ペースメーカモジュール１６が起動されると、ガイドラインモジュール１５も起動される。
そして、ガイダンスモジュール１５による質問に対してユーザが応答する迄の時間を、その都度計測し、計測した時間を、質問内容及び応答内容とともにガイダンスデータとしてガイダンスデータＤＢ４に記憶する。ユーザが各質問に対する応答を第１の所定時間（例えば、３０秒又は１分）以上入力しない場合、応答を促すメッセージをユーザに提供し、第２の所定時間（例えば、２分）以上入力しない場合、その質問に類似するケースをガイダンスマスタＤＢ３から検索し、応答のヒントをユーザに提供する。また、第３の所定時間（例えば、５分）以上応答がない場合、処理を中断するか継続するかの確認を行い、中断の場合は今までに作成されたフロー図をフロー図ファイルＤＢ２に保存し、処理を終了する。ユーザが継続を選択した場合、上記した処理を繰り返す。
ガイダンスモジュール１５及びペースメーカモジュール１６の機能により完成された概要フロー図の内容は、フロー図ファイルＤＢ２に格納される。
【００６７】
図１０−１は、ペースメーカモードで実行されたときのガイダンスデータＤＢ４に記憶されたデータを例示している。なお、ペースメーカモードではなく、ガイダンスモードが実行された場合には、時間に関するデータがガイダンスデータＤＢ４に記憶されず、質問とそれに対する応答との関係のみが記憶される。
また、図１０−２は、図１０−１に示したガイダンスデータをガイダンスタイムテーブルとして表したものである。ペースメーカモジュール１６は、このようなガイダンスタイムテーブルをＰＣスクリーン上に表示させる機能を備え、これにより、ユーザの作業効率の問題点を把握させることができる。例えば、図１０−２の例において、右下がりの直線において、その勾配が大きいほど、ユーザの応答に時間がかかっていることを示している。したがって、勾配が大きい直線に対応する質問は、ユーザに問題があるのか又は仕様に問題があるのか等の原因により、応答が遅れたと推定することができ、今後の課題とすることができる。
【００６８】
次に、データ定義作成モジュール２０について、詳細に説明する。データ定義作成モジュール２０が起動され、そのメニュー画面からファイルレイアウトが選択されると、図１１−１に示すようなファイル情報ボックスの入力画面が表示される。該入力画面上でファイル属性（ファイル名、日本語名、レコード長、キー長、形式）がユーザにより入力される。図１１−１は、ファイル属性が入力された後の画面を示しており、この例では、ファイル名＝ＫＯＫＹＡＫＵ−Ｆ、日本語名＝顧客ファイル、レコード長＝１２３、キー長＝７、形式＝１：ＩＳＡＭである。
その状態で、ユーザが「確定」ボタン（不図示）を選択すると、図１１−２に示すように、「ファイルレイアウト」の下層位置に、ファイル情報ボックス「ＫＯＫＹＡＫＵ−Ｆ」が自動生成されて表示され、かつレコード長が１２３であること及び顧客ファイルであることが表示される。
【００６９】
次いで、図１１−３に示すような項目情報ボックスの入力画面を表示する。この入力画面上で項目属性（項目名、日本語名、タイプ、桁数）を入力し、ユーザが確定ボタンを選択すると、図１１−４に示すような画面になる。この例においては、項目名＝Ｒ１０００、日本語名＝氏名レコード、タイプ＝文字、桁数＝１２３であり、「ＫＯＫＹＡＫＵ−Ｆ」の下層に「Ｒ１０００」のレコード情報ボックスが自動生成されて表示され、かつ、レコード長が１２３であること及び氏名レコードであることが表示される。
【００７０】
レコード名「Ｒ１０００」のレコード情報の内訳項目（すなわち、下層の項目）を作成する場合、該「Ｒ１０００」のボックスの右端をユーザが指示する。すると、図１１−５に示すように、該ボックスの下層位置に、項目情報ボックスを仮生成し破線で表示する。黒丸は、ユーザが選択した位置（ボックスの右端）を表している。そして、再度、図１１−３に示すような項目情報ボックスの入力画面を表示する。ユーザが該画面上で項目属性を、例えば、項目名＝Ｋ１１００、日本語名＝キー部、桁数＝７を入力すると、その結果、図１１−６に示すように、項目情報ボックス「Ｋ１１００」が自動作成され表示され、かつ、キー部であること及び桁数７が表示される。同様にして、順次下層の項目ボックス及びその属性が設定される。
【００７１】
同一層に新たな項目情報ボックスを作成したい場合、ユーザは、その層のボックスの上辺又は下辺を指定する。すると、図１１−７に示すように、当該項目情報ボックスの上又は下（ただし、同一層）に新たな項目情報ボックスが仮生成されて破線で表示される。図１１−７の例においては、項目「Ｋ１１１０」の下辺が選択されたか、又は項目「Ｋ１１３０」の上辺が選択されたかのいずれかである。
既に設定した項目情報ボックスの上位層に、新たな項目情報ボックスを作成したい場合、ユーザは、当該項目情報ボックスの左辺を指定する。その結果、図１１−８に示すように、当該項目情報ボックスの１つ上位の層（親層）に、新たな項目情報ボックスを仮生成し表示する。
これら仮生成された項目情報ボックスについても、図１１−３に示した項目情報ボックスの入力画面上でユーザが属性を入力して確定することにより、それら属性情報がファイルレイアウト画面上で表示される。
【００７２】
このようにして、図１１−９に示すような、データ定義情報のファイルレイアウトがツリー構造で作成され完成される。作成されたファイルレイアウトは、データ定義情報ファイルＤＢ５に記憶される。
完成された又は未完成状態のファイルレイアウト中のレコードレイアウト「Ｒ１０００」を選択すると、この項目の内容が、図１１−１０に示すような形態で出力される。完成された又は未完成状態のファイルレイアウトを修正する必要がある場合、例えば、新たな項目を追加する必要がある場合、図１１−１０に示したような空白が利用されることになる。空白部が存在しない又はその桁数が不足する場合、アラームが表示される。
【００７３】
次に、画面定義モジュール３０の構成を、図１２−１に示す画面を定義する場合を例にとって、詳細に説明する。画面定義モードが選択されて画面定義モジュール３０が起動されると、画面レイアウト領域が表示され、かつ、画面定義用プレートマスタＤＢ６から画面定義用のプレート一覧を読み出して、ＰＣスクリーン上の適宜の位置に表示される。図１２−２は、読み出された画面定義プレート一覧の一部を示している。
【００７４】
ユーザが枠（表示枠）ＦＲを作成したい場合、画面定義プレート一覧から枠プレートを選択すると、図１２−３に示す枠フィールド属性入力画面が自動的に表示される。この画面上でユーザが線の太さ、線種、及び線の色を入力（または、予め表示された初期値を変更）し、画面レイアウト領域上で、ユーザがマウスを操作してカーソルを移動させることにより、入力された太さ、線種及び色の線の図形描画が実行され、枠（図１２−４の枠FＲ）が表示される。生成された枠のＸ−Ｙ座標は、自動的に取得される。そして、図１２−３に示す種々の属性が、枠ＩＤに対応付けられて、画面定義ファイルＤＢ７に格納される。
【００７５】
次いで、ユーザが画面定義プレート一覧からボタンプレートを選択し、図１２−４に示すボタンフィールド属性入力画面から属性を入力し、かつカーソルを移動操作することにより、図１２−５に示すように種々のボタンが画面上で作成される。ボタン上のタイトル（「戻り」、「検索」、「先頭」、「地区」）は、図１２−４に示したボタンフィールド入力画面の表示文字の欄に、タイトルをユーザが入力することにより、表示される。また、各ボタンの開始位置及び終了位置のＸ−Ｙ座標が、作成されたボタンの位置座標を読み取ることにより自動的に取得される。そして、図１２−４に示す種々の属性が、各ボタンＩＤに対応付けられて画面定義ファイルＤＢ７に記憶される。
【００７６】
同様にして、文字フィールド、線、固定文字の画面要素が作成され、図１２−１に示した画面が作成される。そして、それらの定義が画面定義ファイルＤＢ７に格納される。図１２−６〜図１２−８は、文字フィールド、線、数値フィールドの属性入力画面を示しており、これらの属性情報がそれぞれのＩＤに対応付けて画面定義ファイルＤＢ７に格納される。
【００７７】
詳細フロー図が作成され、データ定義及び画面定義が作成された後、ユーザが変換モードを選択してフロー図解析変換モジュール４０を起動すると、詳細フロー図からソースプログラムが自動的に作成される。このとき、フロー図解析変換モジュール４０のフロー図連係解析モジュール２１(図２−２)が、詳細フロー図のスタート端子に接続されたボックスとその流出線を読み取り、幹線に沿って連係（すなわち、各ボックスの下流側ボックスがどれであるか）を解析し、かつ、処理ボックス内容解析モジュール２２が各ボックスの仕様内容を解析する。このような処理を繰り返し、エンド端子までの連係及び仕様内容を解析する。判断ボックスについては、幹線及び分岐線をともに解析するが、判断ボックスの上下左右の入出力条件を確認し、分岐方向を確認する。
【００７８】
フロー図が矛盾なく完結している場合、ソースプログラム変換モジュール２３が、各ボックス内の処理内容すなわち仕様をソースコードに変換する。処理内容に外部情報を必要とする画面、展開関数等が含まれている場合、そのボックスの処理内容を一時保管する。そして、幹線上の他のボックスの内容をソースコードに変換し、次いで分岐線上のボックスの内容をソースコードに変換する。その後、データ定義・画面定義ソースプログラム組み込みモジュール２４と共同して、一時保管されていたボックスの処理内容を、その画像、関数等の出現順に外部情報を取得しながら解析し、ソースプログラムに組み込むよう変換を行う。展開関数に関しては、展開関数解析モジュール２５が、図８に関連して説明したような階層降り機能を用いて解析し、展開関数ソースプログラム組み込みモジュール２６が、その結果をソースプログラムに組み込む。
【００７９】
ところで、処理ボックスに記述する言語は、通常、ソースプログラムを作成するため、メーカの言語特有の形式に則った記述となっている。本発明のシステムにおいては、メーカの言語特有の形式に制約されない自由な表記を行うことができる。このような表記方式を、本明細書においては「新表記」と称し、これにより、ユーザ独自の分かり易い言語で仕様を作成することができる。すなわち、表記されたユーザ言語は、言語マスタを介してソースコード変換時、メーカ言語の形式に変換される。このため、この機能を使用すれば、ソースコードに変換する時点で、変換後の汎用言語（Ｃ、Ｃ＋＋、ＢＡＳＩＣ、Ｊａｖａ（登録商標）等）を自由に選択できる。
【００８０】
言語マスタＤＢ８及びコード式記述マスタＤＢ９を参照して、ユーザ言語となる新表記方式の仕様をＣ＋＋言語に変換するが、言語マスタＤＢ８に格納されている新表記方式の仕様とＣ＋＋言語のソースコードとの対応を例示する。
・処理内容「Ａ領域の文字列とＢ領域の文字列を結合して、Ａ領域に格納する」
新表記方式：  A+=B;
Ｃ＋＋：    stract (A,&B);
となる。
【００８１】
・処理内容が「Ｃ領域の数値にＪ領域の数値を加え、その結果をＣ領域に格納する。そして、Ｊ領域の数値に１を加える」
新表記方式：  C=C+J
J=J+1
C++言語：    C=C+J  J++;
・処理内容が、「Ｊ領域の数値に１を加える。そして、Ｃ領域の数値にＪ領域の数値を加え、その結果をＣ領域に格納する」
新表記法式：  J=J+1
C=C+J
C++言語：    C＝C+J  ++J;
・比較演算子（等号、不等号、以上、以下）
新表記方式：  ＝        ≠      ≦      ≧
C++言語：    ＝ ＝    ！＝    ＜＝    ＞＝
【００８２】
・処理内容「指定された時間だけ処理を中断する(中断時間：ミリ秒)」
新表記方式：  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)
【００８３】
上記例示した新表記方式とC++言語との対応関係が、言語マスタＤＢ８に格納されている。また、このような対応関係は、必要とするコンピュータ言語の種類に応じて作成され記憶されている。なお、新表記方式の場合は、ユーザが慣れ親しんでいる言語表記でよいので、アルファベットの代わりにひらがな又はカタカナ等を用いてもよい。
【００８４】
例えば、処理内容が「文字の色を赤に設定してエラーメッセージを表示し、かつ、警告音を鳴らし、１．５秒間待つ」である場合、新表記方式及びC++言語では、以下のように表記される。
新表記方式のエラーメッセージ表記処理
Text(Aka);
Hyoji(800200,“入力エラーです。”);
Oto;
Machi;
C++言語のエラーメッセージ表記処理
SetTextColor(RGB(255,0,0));
ADCHAR(800200,“入力エラーです。”);
Beep(900,175)；
Sleep(1500)
したがって、本発明のシステムによれば、フロー図中に仕様内容を入力する際に、通常ユーザ独自の分かり易い言語で入力することができ、表記されたユーザ言語は、言語マスタテーブルを介してＣ言語等に変換されるので、コンピュータ言語を知らないユーザであっても入力が容易である。
【００８５】
図７−２に示したように設定された判断ボックス（ボックス番号３）を例にとって、ソースコードへの変換動作を説明する。
フロー図解析変換モジュール４０の処理ボックス内容解析モジュール２２(図２−２)は、フロー図ファイルＤＢ２から、図７−２に示したボックス番号３のマスタデータ（すなわち、図７−３に示したデータ）を読み出して、読み出されたデータを解析する。次いで、ソースプログラム変換モジュール２３は、コード式記述マスタＤＢ９から判断ボックスの場合のコード記述マスタを呼び出す。C++言語の場合には、図１３−１の右側に示すような配列の記述マスタとなる。そして、図１３−１に示した対応関係で、ボックスマスタ中のフィールド番号のデータを、読み出した記述マスタのそれぞれの項に割り当てる。
すなわち、処理ボックス種別が判断ボックスを示す「０６」であることから、該「０６」に対応する記述マスタを、コード式記述マスタＤＢ９から読み出す。そして、処理ボックス番号「３」を処理番号の位置に複写し、左項及び右項のデータ名「Ｄ１」及び「０５０３０３」をそれぞれ対応する位置に複写する。また、言語マスタＤＢ８を検索して、分岐条件「＝」に対応するＣ＋＋言語の「＝＝」を読み出し、それを判定項に複写する。また、判定成立時の分岐先及び不成立時の分岐先のボックス番号を、フロー図ファイルＤＢ２のマスタデータから得て、それを対応する位置に複写する。
【００８６】
図１３−１に示すようにデータを割り当てた結果、以下のソースプログラム（C++言語）が生成される。
G03: if (D1==050303) {goto G54;}
else {goto G19;}
一方、ＢＡＳＩＣ言語の場合には、図１３−２に示すようにデータを割り当て、その結果、
G03, if D1 = 050303   GOTO G54.
GOTO G19.
のソースプログラムが得られる。
【００８７】
ここで、図７−１０に示されたイベント待ち処理を含んだフロー図をソースプログラムに変換する場合であってＣ＋＋言語に変換する場合を例として、図１３−３のフロー図を参照して詳細に説明する。このとき、ユーザのＰＣには、MicroSoft社等のイベント処理定義プログラムモジュールを含んだＯＳがインストールされているものとする。
フロー図解析変換モジュール４０が起動されると、該モジュール４０のフロー図連係解析モジュール４１は、図１３−３のステップＳ８１において、各ボックスの連係を解析する。そして、処理ボックス内容解析モジュール４２は、ステップＳ８２において、変換すべきフロー図上にイベント待ち状態を表すボックスすなわち仮想イベント待ちボックス（ボックス番号５）が含まれていることを検出し、ステップＳ８３において、ＰＣのＯＳに含まれているイベント処理定義プログラムモジュールを読み出す。そして、ステップＳ８４において、各ボックスの仕様として、コード式記述マスタＤＢ９に格納されているひな形ライブラリ中の関数名が含まれているか否かを判定する。
【００８８】
ひな形ライブラリ群には、画面処理用として、描画前初期処理ボックス（ボックス番号２）、初期画面処理ボックス（ボックス番号３）、描画後初期処理ボックス（ボックス番号４）の関数名に対応している関数が含まれており、ボックス内容解析モジュール４２は、これらの関数名を仕様としているボックスが変換すべきフロー図上に存在すると判定し、そして、ステップＳ８５において、ソースプログラム変換モジュール４３が、これら関数をひな形ライブラリから読み出してボックス番号２〜４に対応付け、そして、それぞれのボックスの連係情報を組み込む。
次いで、処理ボックス内容解析モジュール４２は、ステップＳ８６において、各ボックスの仕様として、下層のフロー図のＩＤ（関数名）が含まれている否かを判定し、ステップＳ８７において、ソースプログラム変換モジュール４３は、処理ボックス（ボックス番号１４〜１９）の仕様である下層フロー図ＩＤに対応する関数すなわちソースプログラムモジュールを、ソースプログラムファイルＤＢ１０から読み出してボックス番号に対応付け、かつボックスの連係情報を組み入れる。
【００８９】
そして、処理ボックス内容解析モジュール４２は、ステップＳ８８において、判断ボックスが含まれているか否かを判定し、ステップＳ８９において、ソースプログラム変換モジュール４３は、図１３−１及び図１３−２を参照して説明したように、言語マスタＤＢ８を参照しつつ、判断ボックス（ボックス番号７〜１７）それぞれの仕様をソースコードに変換してボックス番号に対応付け、それぞれのボックスの連係情報を組み入れる。
次いで、ステップＳ９０において、処理ボックス内容解析モジュール４３は、その他のボックスがあるか否かを判定し、ある場合には、ステップＳ９１において、ソースプログラム変換モジュール４３は、言語マスタＤＢ８を参照してソースコードに変換してボックス番号に対応付け、かつ連係情報を組み入れる。最下層のフロー図の処理ボックスをソースコードに変換する場合も、言語マスタＤＢ８を参照して、該フロー図上の仕様をコンピュータ言語に変換する。
これにより、フロー図がソースプログラムに変換される。図１３−４及び図１３−５（図１３−５は、図１３−４の続き）は、このようにして作成されたソースプログラムの一例を示している。当然ながら、図１３−３に示した順番に判断して処理する必要がなく、例えば、ステップＳ８８及びＳ８９をステップＳ８２の前段で実行してもよく、その他適宜の変更が可能である。
【００９０】
このように、フロー図解析変換モジュール４０は、変換すべきフロー図上にイベント待ち状態を表すボックス（仮想イベント待ちボックス）が含まれていることを検出することにより、フロー図がイベント待ち処理を含んだプログラムのフロー図であることを判定し、ユーザのＰＣにインストールされているＯＳに含まれるイベント処理定義プログラムを読み出し、さらに、コード式記述マスタＤＢ９に格納されているひな形ライブラリに格納されている関数及び作成済みの下層フロー図の関数（すなわち、下層フロー図に対応するソースプログラムモジュール）を読み出しているので、ソースプログラムへに変換が容易となる。また、上述したように、図７−９及び図７−１０に示されるような、ユーザにより作成されるフロー図は、ランダムに発生されるイベントを待機してその処理を行うことを、ユーザが理解し易い形態で簡潔かつ論理的に表しており、このような簡潔及び論理的なフロー図を作成から、適正なソースプログラムへ変換することが可能となる。
【００９１】
このようにして、フロー図中の全ボックスのマスタデータをフロー図ファイルＤＢ２から読み出し、データをユーザが指定したプログラム言語の配列に置き換えてから、該言語のソースプログラムに変換する。フロー図から変換されたソースプログラムは、上述したように、そのプログラムに使用されるデータ定義及び画面定義のソースコードと共に、作成済ソースプログラムファイルＤＢ１３に記憶される。
なお、フロー図解析変換モジュール１１によって変換されたソースプログラムは、さらに、言語メーカが提供するライブラリ等を参照してコンパイルされるが、その処理動作は汎用のものであるので、説明を省略する。
【００９２】
次に、作成されたソースプログラムの検証を行う検証モジュール５０について説明する。検証モードが選択されて検証モジュール５０が起動すると、フロー図ファイルＤＢ２から該ソースプログラムに対応する概要（又は詳細）フロー図のマスタデータが読み出され、該データに基づいてフロー図が再生され表示される。
ユーザが、そのフロー図の流出線上に、図１４−１に示すように、ポーズ機能（＝）及びパス機能（黒丸）を実行する点を設定する。ポーズ機能は、その設定点に到達するまでの処理の実行結果（種々の変数の値を含む）の取得、及び、その設定点に到達時に処理の一時停止を行う機能である。パス機能は、その設定点に到達までの処理の実行結果（種々の変数の値を含む）取得を行うものであり、一時停止をせずに処理を継続させる機能である。
【００９３】
そして、該フロー図に対応して作成されたソースプログラムをランさせると、処理通過ルート表示モジュール３１（図２−３）の機能により、フロー図上に経過ルートを表示しながら処理が実行される。ソースプログラムのラン中に処理が下層フロー図に移行した場合、階層降り機能により、下層フロー図を表示して該フロー図上でも通過ルートを表示する。
また、処理の実行中、処理結果取得・表示モジュール３２の機能により、ポーズ機能の設定点及びパス機能の設定点を通過した順番を通過履歴として取得し、また、処理が通過した予め設定された変数の値を、該変数を含むボックスの処理が終了する度に取得し、これらを通過履歴／変数値ファイルＤＢ１１に記憶する。
【００９４】
例えば、図１４−１に示すように、ポーズ設定点S013を設定し、パス設定点P009及びP010を設定した場合、ポーズ設定点S013まで処理が進んだときに、プログラムの処理が一時停止される。そして、処理結果取得・表示モジュール３２は、通過履歴／変数値ファイルＤＢ１１を参照して、その一時停止までの、ポーズ設定点S013並びにパス設定点P009及びP010を処理が通過した履歴を検索して、通過履歴一覧として表示し、また、フロー図中の予め設定された種々の変数の値を変数値一覧として表示する。
図１４−２及び図１４−３は、このような通過履歴一覧及び変数値一覧を示している。図１４−２に示した通過履歴一覧の例においては、パス設定点P009及びP010をそれぞれ３回通過した後に、ボックス番号７の判断ボックスから分岐されてポーズ設定点S013に至った様子を示している。また、図１４−３に示した変数値一覧の例においては、ポーズ設定点S013でプログラムが一時停止したときに、図１４−１に示したフロー図中のボックス番号４、６〜１０、１３及び１４のボックス中の変数（変数名Ａ〜Ｇ）がどのような値であるかを示している。また、図１４−２に示した通過履歴一覧において、ユーザが、例えば、世代４のポーズポイントP010（処理が２回通過したことを表している）を選択すると、該ポイントを処理が２回目に通過する時点の変数名Ａ〜Ｇの変数値が一覧として表示される。
【００９５】
作成されたソースプログラムのラン中にエラーが発生した場合、処理エラー表示モジュール３３の機能により、ボックス番号及び処理行をエラー表としてＰＣCスクリーン上に表示する。
このようにして、ソースプログラムの検証を行うことにより、バグ発生位置等を表示することができるので、その修正が容易である。
一時停止された処理の再開は、再開ボタン（不図示）を選択することにより実行される。
【００９６】
本発明は、以上のように構成されているので、任意のソースプログラムを、高度な知識を有していないユーザであっても容易に作成することができ、また、作成されたフロー図をソースプログラムに変換するので、フロー図中の仕様の論理とソースプログラムの論理との同一性が維持される。特に、複数のイベント及びそれに対応する処理がランダムに発生する場合のイベント待ち状態をフロー図上で適切に表すことができる。
また、ガイダンスによりユーザの入力を促し、それに基づいて自動的にフロー図を作成するので、作成すべきソースプログラムに対応するフロー図作成がより容易となる。さらに、当初フロー図とそのフロー図を進展させた進展フロー図との関係である派生関係をユーザに提供することができるので、ユーザは、派生のいきさつ及びプログラムの論理の進展を容易に把握することができる。
さらに、ユーザがツリー構造のデータ定義をＰＣスクリーン上で視認しながらデータ定義を作成することができ、また、画面をＰＣスクリーン上で作成するだけで、画面定義を作成することができる。したがって、データ定義及び画面定義の作成及び保守が容易となる。
さらにまた、作成されたソースプログラムを実際にランさせて検証を行うことができ、その結果をソースプログラムの修正に反映させることができる。
【図面の簡単な説明】
【００９７】
【図１】本発明に係るソースプログラム作成支援システムの概略構成を示すブロック図である。
【図２−１】図１に示したシステム中のフロー図作成モジュールの概略構成を示すブロック図である。
【図２−２】図１に示したシステム中のフロー図解析変換モジュールの概略構成を示すブロック図である。
【図２−３】図１に示したシステム中の検証モジュールの概略構成を示すブロック図である。
【図３】図２−２に示したフロー図作成モジュールの動作を示すフロー図である。
【図４−１】フロー図作成モジュールの機能により表示されるプレート一覧を示す模式図である。
【図４−２】フロー図作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図４−３】ユーザとの対話に基づきフロー図作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図４−４】ユーザとの対話に基づきフロー図作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図４−５】ユーザとの対話に基づきフロー図作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図４−６】ユーザとの対話に基づきフロー図作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図４−７】ユーザとの対話に基づきフロー図作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図４−８】ユーザとの対話に基づきフロー図作成モジュールの機能により表示される、完成後のイメージフロー図を示すスクリーンショットの模式図である。
【図５】図４−８に示したイメージフロー図にタイトルがユーザにより入力されたことにより作成されたタイトルフロー図を示すスクリーンショットの模式図である。
【図６】図４−８に示したイメージフロー図に仕様がユーザにより入力されたことにより作成された概要フロー図を示すスクリーンショットの模式図である。
【図７−１】判断ボックスにタイトル及び仕様を入力するための入力画面を示すスクリーンショットを示す模式図である。
【図７−２】図７−１に示した入力画面にタイトル及び仕様がユーザにより入力された状態を示すスクリーンショットである。
【図７−３】図７−２に示したように入力された状態の判断ボックスのマスタデータを示す説明図である。
【図７−４】仕様が入力された状態の処理ボックスのマスタデータの一例を示す説明図である。
【図７−５】フロー図作成モジュールのイベント待ち表記機能により実行される、イメージフロー図作成処理を説明するためのフロー図である。スクリーンショットである。
【図７−６】イベント待ち表記機能により表示されたイベントフロー図初期ボックス群を示すスクリーンショットである。
【図７−７】イベント待ち表記機能により、図７−６の表示状態に他のボックスを追加した状態を示すスクリーンショットである。
【図７−８】イベント待ち表記機能により、図７−７の表示状態にイベントフロー図終了ボックス群を追加して完成されたイメージフロー図を示すスクリーンショットである。
【図７−９】図７−７に示したイメージフロー図にタイトルを入力してタイトルフロー図を作成した状態を示すスクリーンショットである。
【図７−１０】図７−７に示したイメージフロー図に仕様を入力して概要フロー図を作成した状態を示すスクリーンショットである。
【図８】フロー図作成モジュールにおける詳細フロー図作成時の階層降り機能を説明するための説明図である。
【図９−１】フロー図作成モジュールにおけるガイダンス機能によるフロー図作成の際に自動的に表示されるスクリーンショットである。
【図９−２】フロー図作成モジュールにおけるガイダンス機能によるガイダンス内容及びそのユーザ応答を例示する説明図である。
【図９−３】ユーザとの対話に基づきフロー図作成モジュールにおけるガイダンス機能によるフロー図作成の際に表示されるスクリーンショットである。
【図９−４】ユーザとの対話に基づきフロー図作成モジュールにおけるガイダンス機能によるフロー図作成の際に表示されるスクリーンショットである。
【図９−５】ユーザとの対話に基づきフロー図作成モジュールにおけるガイダンス機能によるフロー図作成の際に表示されるスクリーンショットである。
【図９−６】ユーザとの対話に基づきフロー図作成モジュールにおけるガイダンス機能によるフロー図作成の際に表示されるスクリーンショットである。
【図１０−１】フロー図作成モジュールにおけるペースメーカ機能及びガイダンス機能によるフロー図作成の際に得られるガイダンスの内容及びそのユーザ応答を時間経過とともに記憶したガイダンスデータを例示する説明図である。
【図１０−２】図１０−１に示したガイダンスデータから作成されたガイダンスタイムテーブルを示す模式図である。
【図１１−１】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図１１−２】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図１１−３】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図１１−４】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図１１−５】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図１１−６】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図１１−７】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図１１−８】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示されるスクリーンショットの模式図である。
【図１１−９】ユーザとの対話に基づきデータ定義作成モジュールの機能により表示される、完成後のファイルレイアウトのスクリーンショットの模式図である。
【図１１−１０】図１１−９に示したファイルレイアウト中のレコードデータの一例を示す説明図である。
【図１２−１】画面定義作成モジュールの機能により作成すべき画面の一例を示すスクリーンショットである。
【図１２−２】画面定義作成モジュールの機能により表示される画面定義プレート一覧を示す模式図である。
【図１２−３】画面定義作成モジュールの機能により表示される枠フィールドの属性入力画面を示すスクリーンショットである。
【図１２−４】画面定義作成モジュールの機能により表示されるボタンフィールドの属性入力画面を、該機能により先に作成された枠とともに示したスクリーンショットである。
【図１２−５】画面定義作成モジュールの機能により作成され表示されるボタンを示すスクリーンショットである。
【図１２−６】画面定義作成モジュールの機能により表示される文字フィールドの属性入力画面を示すスクリーンショットである。
【図１２−７】画面定義作成モジュールの機能により表示される線フィールド属性入力画面を示すスクリーンショットである。
【図１２−８】画面定義作成モジュールの機能により表示される数値フィールド属性入力画面を示すスクリーンショットである。
【図１３−１】フロー図解析変換モジュールの機能により実行される、Ｃ＋＋言語への変換を説明するための説明図である。
【図１３−２】フロー図解析変換モジュールの機能により実行される、ＢＡＳＩＣ言語への変換を説明するための説明図である。
【図１３−３】フロー図解析変換モジュールの機能により実行される、イベント処理を含んだフロー図をソースプログラムに変換する際の処理を示すフロー図である。
【図１３−４】イベント処理を含んだフロー図から変換されたソースプログラムを例示する図である。
【図１３−５】図１３−５に例示したソースプログラムに続くソースプログラムの図である。
【図１４−１】検証モジュールの機能により、ポーズ及びパス設定点がフロー図上に設定された状態を示すスクリーンショットである。
【図１４−２】検証モジュールの機能により取得され表示される通過履歴一覧を示すスクリーンショットである。
【図１４−３】検証モジュールの機能により取得され表示される変数値一覧を示すスクリーンショットである。
【図１５】従来例により作成されるフロー図から想定される、イベント処理を含むプログラムのフロー図の表現を示す図である。
【図１】
2006323828.tif 000003
【図２−１】
2006323828.tif 000004
【図２−２】
2006323828.tif 000005
【図２−３】
2006323828.tif 000006
【図３】
2006323828.tif 000007
【図４−１】
2006323828.tif 000008
【図４−２】
2006323828.tif 000009
【図４−３】
2006323828.tif 000010
【図４−４】
2006323828.tif 000011
【図４−５】
2006323828.tif 000012
【図４−６】
2006323828.tif 000013
【図４−７】
2006323828.tif 000014
【図４−８】
2006323828.tif 000015
【図５】
2006323828.tif 000016
【図６】
2006323828.tif 000017
【図７−１】
2006323828.tif 000018
【図７−２】
2006323828.tif 000019
【図７−３】
2006323828.tif 000020
【図７−４】
2006323828.tif 000021
【図７−５】
2006323828.tif 000022
【図７−６】
2006323828.tif 000023
【図７−７】
2006323828.tif 000024
【図７−８】
2006323828.tif 000025
【図７−９】
2006323828.tif 000026
【図７−１０】
2006323828.tif 000027
【図８】
2006323828.tif 000028
【図９−１】
2006323828.tif 000029
【図９−２】
2006323828.tif 000030
【図９−３】
2006323828.tif 000031
【図９−４】
2006323828.tif 000032
【図９−５】
2006323828.tif 000033
【図９−６】
2006323828.tif 000034
【図１０−１】
2006323828.tif 000035
【図１０−２】
2006323828.tif 000036
【図１１−１】
2006323828.tif 000037
【図１１−２】
2006323828.tif 000038
【図１１−３】
2006323828.tif 000039
【図１１−４】
2006323828.tif 000040
【図１１−５】
2006323828.tif 000041
【図１１−６】
2006323828.tif 000042
【図１１−７】
2006323828.tif 000043
【図１１−８】
2006323828.tif 000044
【図１１−９】
2006323828.tif 000045
【図１１−１０】
2006323828.tif 000046
【図１２−１】
2006323828.tif 000047
【図１２−２】
2006323828.tif 000048
【図１２−３】
2006323828.tif 000049
【図１２−４】
2006323828.tif 000050
【図１２−５】
2006323828.tif 000051
【図１２−６】
2006323828.tif 000052
【図１２−７】
2006323828.tif 000053
【図１２−８】
2006323828.tif 000054
【図１３−１】
2006323828.tif 000055
【図１３−２】
2006323828.tif 000056
【図１３−３】
2006323828.tif 000057
【図１３−４】
2006323828.tif 000058
【図１３−５】
2006323828.tif 000059
【図１４−１】
2006323828.tif 000060
【図１４−２】
2006323828.tif 000061
【図１４−３】
2006323828.tif 000062
【図１５】
2006323828.tif 000063
【手続補正書】
【提出日】平成18年7月24日(2006.7.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータにより読み取り可能なプログラムを利用し、ユーザとの対話によりソースプログラムを作成するためのソースプログラム作成支援システムであって、作成すべきソースプログラムに対応するフロー図をモニタスクリーン上に作成することを支援するフロー図作成手段と、該フロー図作成手段によって作成されたフロー図を解析してソースコードに変換することによりソースプログラムに変換するフロー図解析変換手段とを含んでいるソースプログラム作成支援システムにおいて、
フロー図作成手段は、
フロー図に含まれるスタート端子、エンド端子、流入線、流出線、及び複数のボックスを含む基本的なプレート、並びに、ランダムに発生される複数のイベントによりそれぞれ駆動される複数のイベント処理を含むイベント処理プログラムの開始プレートを含む一覧表を、ユーザにより選択可能に表示するプレート一覧表示手段と、
ユーザが表示されたプレート一覧からプレートを選択し、その配置位置をモニタスクリーン上で指定する毎に、該配置位置に選択されたプレートの形状を表示するプレート配置手段であって、
プレート一覧に含まれるイベント処理プログラム開始プレートが選択されたときに、イベント発生の待ち状態を表す仮想イベント待ちボックスと該仮想イベント待ちボックスに流出線が接続されたリターン端子とを含んでいるイベントフロー図初期ボックス群をフロー図作成領域上に表示させる手段と
を含んでいるプレート配置手段と、
モニタスクリーン上に配置されたボックスに処理の内容に対応する仕様をユーザに入力させるための入力欄を表示し、入力された仕様を該ボックスと関連付けて記憶する仕様設定手段と
を備え、
フロー図解析変換手段は、
ソースプログラムに変換すべきフロー図中に仮想イベント待ちボックスが含まれている場合に、イベント処理プログラムであると判定して、使用しているコンピュータにＯＳの一部としてインストールされているイベント処理定義を読み出す手段と、
フロー図中のボックスの連係を解析して各ボックスの連係情報を得る手段と、
フロー図中の各ボックスに設定された仕様をソースコードに変換し、かつ、変換されたソースコードに該当するボックスの連係情報を組み入れることにより、各ボックスのソースプログラムモジュールを生成する手段と、
読み出されたイベント処理定義、及び、ボックスの連係情報が組み入れられたソースプログラムモジュールを一体化してソースプログラムを生成する手段と
を備えている
ことを特徴とするソースプログラム作成支援システム。
【請求項２】
請求項１記載のソースプログラム作成支援システムにおいて、イベントフロー図初期ボックス群は、仮想イベント待ちボックス及びリターン端子に加えて、スタート端子と、イベント待ちボックスの下流に直列的に配置された２つの判断ボックスと、該判断ボックスからの流出線により該判断ボックスにそれぞれ接続された２つの処理ボックスであって、その流出線がリターン端子に接続されている処理ボックスとを少なくとも含んでいることを特徴とするソースプログラム作成支援システム。
【請求項３】
請求項１又は２記載のソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、
フロー図作成領域に配置されたプレートの削除をユーザが指示したときに、該プレートを削除するプレート削除手段と、
イベントフロー図初期ボックス群以外のプレートが新たにフロー図作成領域に配置されたときに、該プレートの下流に処理ボックス及びその流出線を、配置されたプレートとは異なる表示態様で自動的に表示する手段と
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項４】
請求項３記載のソースプログラム作成支援システムにおいて、フロー図作成手段のプレート一覧表示手段により表示されるプレート一覧には、イベント処理プログラム終了プレートが含まれ、
プレート配置手段は、フロー図作成領域に表示されているフロー図中に仮想イベント待ちボックスが含まれており、かつ異なる表示態様の処理ボックス及びその流出線が含まれている状態で、プレート一覧に含まれるイベント処理プログラム終了プレートが選択されたときに、異なる表示態様の処理ボックス及びその流出線を自動的に削除し、かつ、最下端の判断ボックスの下方に、リターン端子に一方の流出線が接続された判断ボックスを追加し、該判断ボックスの他方の流出線に接続され、自身の流出線がリターン端子に接続された処理ボックスを追加するよう構成されている
ことを特徴とするソースプログラム作成支援システム。
【請求項５】
請求項１〜４いずれかに記載のソースプログラム作成支援システムにおいて、
該システムはさらに、複数の処理内容それぞれに対応するソースプログラムモジュールである複数の関数をその関数名と対応付けて予め記憶しているひな形ライブラリを備えており、
フロー図作成手段の仕様設定手段は、ユーザが仕様としてひな形ライブラリに記憶されている関数名を選択的に入力することが可能なるようにするために、ひな形ライブラリ中の複数の関数の内容及びその関数名をユーザに提示する手段を備えており、
フロー図解析変換手段は、変換すべきフロー図に、ひな形ライブラリに記憶されている関数名が仕様として設定されているボックスがある場合に、該ライブラリから該関数名に対応する関数を読み出すよう構成されている
ことを特徴とするソースプログラム作成支援システム。
【請求項６】
請求項１〜５いずれかに記載のソースプログラム作成支援システムにおいて、
フロー図作成手段は、上位層のフロー図とその下位層の詳細フロー図を作成するための階層降り機能を実行する手段を備えており、
フロー図作成手段の仕様設定手段は、ユーザが上位層のフロー図の仕様として下位層のフロー図を特定するフロー図ＩＤを選択的に入力することが可能となるようにするために、下位層のフロー図の内容及びフロー図ＩＤをユーザに提示する手段を備えており、
フロー図解析変換手段は、変換すべきフロー図に、フロー図ＩＤが仕様として設定されているボックスがある場合に、該フロー図ＩＤに対応するプログラムモジュールを記憶手段から読み出すよう構成されている
ことを特徴とするソースプログラム作成支援システム。
【請求項７】
請求項１〜６いずれかに記載のソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、
モニタスクリーン上に配置されたボックスに処理のタイトルを入力するためのタイトル入力欄を表示し、入力されたタイトルをボックスと関連付けて記憶するタイトル設定手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項８】
請求項１〜７いずれかに記載のソースプログラム作成支援システムにおいて、フロー図作成手段の仕様設定手段は、プレート配置手段によりボックスがモニタスクリーンに表示される毎に、仕様設定が可能であるよう構成されていることを特徴とするソースプログラム作成支援システム。
【請求項９】
請求項７記載のソースプログラム作成支援システムにおいて、フロー図作成手段の仕様設定手段及びタイトル設定手段は、プレート配置手段によりボックスがモニタスクリーンに表示される毎に、仕様設定及びタイトル設定が可能であるように構成されていることを特徴とするソースプログラム作成支援システム。
【請求項１０】
請求項１〜５いずれかに記載のソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、
フロー図作成のために予め設定された複数の質問を含むガイダンスをユーザに提供し、該ガイダンスの質問に対してユーザによって入力された応答に基づいて、フロー図を対話的に作成するガイダンス手段であって、質問は業務数の質問を含み、該質問に対するユーザの応答に基づいた数の判断ボックス及び処理ボックスを、自動的にモニタスクリーン上に表示させるガイダンス手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項１１】
請求項１０記載のソースプログラム作成支援システムにおいて、フロー図作成手段はさらに、
ガイダンス手段が提供したガイダンスと該ガイダンスに対するユーザの応答との時間経過履歴を取得し、かつ、該時間経過履歴をモニタスクリーン上に表示するペースメーカ手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項１２】
請求項１〜１１いずれかに記載のソースプログラム作成支援システムにおいて、フロー図作成手段は、
予め作成された第１のフロー図と、該第１のフロー図中の少なくとも１つのボックスの処理内容を詳細化して複数のボックスで表した第２のフロー図との関係を、モニタスクリーン上に表示する派生関係表示手段であって、第１のフロー図がモニタスクリーン上に表示された状態で、詳細化された元のボックスが選択されたときに、該ボックスの代わりに、該ボックスに対応する第２のフロー図中の複数のボックスを表示させる派生関係表示手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項１３】
請求項１〜１２いずれかに記載のソースプログラム作成支援システムにおいて、該システムはさらに、
フロー図作成手段によって作成されるフロー図において使用されるデータのソースプログラムのデータ定義を、モニタスクリーン上でユーザとの対話に基づいてツリー構造のデータレイアウトを作成し、該作成されたデータレイアウトに基づいて定義するデータ定義作成手段と、
フロー図作成手段によって作成されるフロー図において使用される画面のソースプログラムの画面定義を、モニタスクリーン上でユーザとの対話に基づいて画面を作成し、該作成された画面の要素の位置及びサイズに基づいて定義する画面定義作成手段と
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項１４】
請求項１３記載のソースプログラム作成支援システムにおいて、フロー図解析変換手段はさらに、
フロー図に基づいて作成されたソースプログラムに、データ定義作成手段及び画面定義作成手段によって作成されたデータ定義及び画面定義と組み合わせる手段
を備えていることを特徴とするソースプログラム作成支援システム。
【請求項１５】
請求項１〜１４いずれかに記載のソースプログラム作成支援システムにおいて、該システムはさらに、作成されたソースプログラムを検証する検証手段を備え、該検証手段は、
検証すべきソースプログラムに対応するフロー図をモニタスクリーン上に表示し、表示されたフロー図上に、ソースプログラムのランを一時停止させ、処理結果を取得し、通過履歴と処理結果を表示させるべきポーズ設定点と、処理結果のみを取得するためのパス設定点とをユーザに設定させる手段と、
検証すべきソースプログラムをランさせ、該ソースプログラムに対応しかつ表示されたフロー図上に、処理の経過に伴って通過ルートを表示する手段と、
処理がポーズ設定点に到達したときに、処理を一時停止させ、かつ、該ポーズ設定点及びパス設定点の通過履歴を表示する手段と、
処理がポーズ設定点に到達したときに、フロー図上の予め設定された変数の値を変数一覧として表示する手段と
を備えていることを特徴とするソースプログラム作成支援システム。