(57)【特許請求の範囲】
【請求項１】
指定された入出力部品に対して設定された処理命令を格納する入出力部品仕様情報、この入出力部品仕様情報に格納された処理命令を処理区分ごと及び入出力部品ごとに編成する処理命令編成部、この処理命令編成部により編成された処理命令群を入出力部品ごとに入出力命令パターン情報を参照して処理可能な順序にプログラムロジック情報を整理するロジックの流れ推論部を備えたことを特徴とするプログラムロジック自動生成装置。
【請求項２】
上記プログラムロジック情報は主として日本語により構成され対話的に修正可能であることを特徴とする請求項１記載のプログラムロジック自動生成装置。
【請求項３】
上記処理区分は初期処理又は明細処理又は合計処理又は終了処理からなることを特徴とする請求項１又は請求項２記載のプログラムロジック自動生成装置。
【請求項４】
上記入出力部品は入力ファイル又は出力ファイル又は参照ファイル又は更新ファイル又は出力帳票からなることを特徴とする請求項１〜請求項３いずれかに記載のプログラムロジック自動生成装置。
【請求項５】
対話的に修正された上記ロジック情報に更新された入出力部品仕様情報を反映させる既存ロジック利用部を備えたことを特徴とする請求項２〜請求項４いずれかに記載のプログラムロジック自動生成装置。
【請求項６】
上記入出力部品仕様情報及びプログラムロジック情報よりプログラム仕様書を生成するプログラム仕様自動生成手段を備えたことを特徴とする請求項１〜請求項５いずれかに記載のプログラムロジック自動生成装置。
【請求項７】
上記プログラム仕様自動生成手段において、プログラムロジック情報の各ステップごとにそのステップをプログラム仕様に反映させるか否かを選択できる生成ロジック選択部を備えたことを特徴とする請求項６記載のプログラムロジック自動生成装置。
【請求項８】
上記プログラムロジック情報は上記処理区分、上記入出力部品と上記処理区分を組み合わせたブロック、上記処理命令の順に階層別に構成され、上記プログラム仕様自動生成手段を構成する章及び節番号付加部により上記処理区分には章番号、上記ブロックには節番号が付されることを特徴とする請求項６又は請求項７に記載のプログラムロジック自動生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ソフトウェア開発支援装置に係り、特に入出力部品の仕様を設定することによってロジックの主要部を自動生成するロジック自動生成装置に関するものである。
【０００２】
【従来の技術】
プログラムを生成する作業として、「プログラム概要の設定」、「入出力部品の選択」、「入出力部品の仕様の設定」、「ロジック（実際の処理）の設定」といったものが挙げられる。これらの中で特に「ロジックの設定」が最も煩雑でかつ作業量も多く、プログラム生成作業のほとんどを占める場合が多い。特開平５−１３４８５６は、入出力部品仕様を予め設定し、また複数のプログラムパターンを予め設定することにより「ロジックの設定」を可能としている。
【０００３】
【発明が解決しようとする課題】
上記従来技術の場合、入出力部品仕様の設定においてロジックの一部を設定するが、それは入出力部品中の各項目単位に対して入出力時のチェック、編集等といった簡単なロジックを付け加えているだけであり、入出力部品単位に対してどのタイミングでどういった入出力処理をするかといった比較的大まかなプログラム全体の流れを設定することは、この入出力部品仕様の設定において不可能であった。しかしながら、通常入出力部品仕様の設定は詳細なプログラムロジックを設定する前に行われるものであるため、この入出力部品仕様の設定時に行われるロジック設定は入出力部品単位に対する処理を記述したプログラム全体の流れを示す概略のロジックであることが望ましく、また複数のプログラムパターンを設定する必要もあることから上記従来技術には改善の余地があるものと見られる。
【０００４】
この発明は、上記のような問題点を解消するためになされたもので、入出力部品仕様の設定の際に入出力部品単位の概略的な処理を設定することによって、実際のロジック設定を始める時点で既に大まかな処理の流れができており、簡単な編集作業のみによって実際にプログラムロジックが設定できるロジック自動生成装置を得ることを目的とするものである。
【０００５】
【課題を解決するための手段】
この発明に係るプログラムロジック自動生成装置は、指定された入出力部品に対して設定された処理命令を格納する入出力部品仕様情報、この入出力部品仕様情報に格納された処理命令を処理区分ごと及び入出力部品ごとに編成する処理命令編成部、この処理命令編成部により編成された処理命令群を入出力部品ごとに入出力命令パターン情報を参照して処理可能な順序にロジック情報を整理するロジックの流れ推論部を備えたものである。
【０００６】
また、上記ロジック情報は主として日本語により構成され対話的に修正可能なものである。
【０００７】
さらに、上記処理区分は初期処理又は明細処理又は合計処理又は終了処理からなるものである。
【０００８】
また、上記入出力部品は入力ファイル又は出力ファイル又は参照ファイル又は更新ファイル又は出力帳票からなるものである。
【０００９】
さらにまた、対話的に修正された上記ロジック情報に更新された入出力部品仕様情報を反映させる既存ロジック利用部を備えたものである。
【００１０】
また、上記入出力部品仕様情報及びロジック情報よりプログラム仕様書を生成するプログラム仕様自動生成手段を備えたものである。
【００１１】
さらに、上記プログラム仕様自動生成手段において、ロジック情報の各ステップごとにそのステップをプログラム仕様に反映させるか否かを選択できる生成ロジック選択部を備えたものである。
【００１２】
また、上記ロジック情報は上記処理区分、上記入出力部品と上記処理区分を組み合わせたブロック、上記処理命令の順に階層別に構成され、上記プログラム仕様自動生成手段を構成する章及び節番号付加部により上記処理区分には章番号、上記ブロックには節番号が付されたものである。
【００１３】
【発明の実施の形態】
実施の形態１．
この実施の形態及び他の実施の形態、図面において記載する「ロジック自動生成装置」は「プログラムロジック自動生成装置」であるものとする。また、「ロジック情報」は「プログラムロジック情報」であるものとする。
図１は本発明の一実施の形態に係るプログラムロジック自動生成装置を含むソフトウェア開発支援システムのシステム構成図である。図において、１２１は入出力部品設計装置であり、プログラムの入出力部品を設計し、設計した仕様は入出力部品仕様情報１３１に格納する。一つのプログラムで使用する入出力部品はすべて入出力部品仕様情報１３１に格納されていることになる。１０１はマニュアル操作により入出力部品仕様を追加設定する入出力部品仕様設定を表し、入出力部品仕様情報１３１に仕様を追加修正することにより新たな入出力部品仕様情報１３２を得る。
１３７は生成しようとしているプログラムの基本的な情報をマニュアル操作により設定するプログラム情報設定で、例えば入出力部品である入力ファイル、出力ファイル、参照ファイル、更新ファイル、出力帳票を指定する情報を設定することによりそれらの情報がプログラム情報１３８に格納される。
【００１４】
１０２は入出力部品仕様として設定された入出力部品仕様情報１３２とプログラム情報１３８からロジックを生成するロジック自動生成手段であり、ロジックとしてのスクリプトを生成する。ロジック自動生成手段１０２は、ロジックを構成する処理命令群を処理可能な順序に整理するロジックの流れ推論部１１１と、入出力部品ごとに処理命令をまとめる入出力部品判別部１１２と、修正した上記スクリプトにその後更新された入出力部品情報を反映させる既存ロジック利用部１１３と、スクリプトを構成する変数としての項目の属性と入出力部品ごとの項目の属性との整合性をチェックし、処理命令と上記入出力部品を組み合わせたスクリプトを生成する項目属性チェック部１１４と、処理命令を処理区分ごと及び入出力部品ごとに編成する処理命令編成部１１９とから構成されている。
【００１５】
１３３はロジック自動生成手段１０２により自動生成されたロジック情報であり、ロジック自動生成手段１０２による生成では不足しているロジックを直接設定する直接ロジック設定１０３によりロジックが追加補充され新たなロジック情報１３４として生成される。１０４はそのロジック情報１３４及び入出力部品仕様情報１３２及びプログラム情報１３８から得られる情報に基づきソースプログラムを自動生成するソースプログラム自動生成手段であり、主要部としては、転送先の項目が転送元の項目と長さ、タイプ共に同一の場合に転送命令を実行せずに置き換え処理を行う転送項目連結部１１５とソースプログラムの生成処理を行う自動生成部１２２とがある。１３５は生成されたソースプログラムである。１０５は、ロジック情報１３４と入出力部品仕様情報１３２とプログラム情報１３８とからプログラム仕様書を自動生成するプログラム仕様自動生成手段であり、主要部としては、章及び節番号付加部１１６、プログラム仕様書として採用するものを選択する章及び節番号付加選択部１１７、生成ロジック選択部１１８、がある。１３６は自動生成されたプログラム仕様書であり、スクリプトが主として日本語により生成されているため、このプログラム仕様書１３６も主として日本語により生成されることになる。
【００１６】
次に、ロジック自動生成装置を含むソフトウェア開発支援システム全体の動作について流れに従い説明する。図１の部品設計装置１２１を操作することによって入出力部品仕様情報１３１を生成する手順を図２に示す。この図に示すように、部品設計装置１２１にはファイル設計機能、帳表設計機能等があり、設計者がファイルレイアウト等をレイアウト入力することによってロジック設計の部品となる入出力部品仕様情報１３１を生成する。
入出力部品仕様情報１３１の内容を、ファイル設計機能で生成されたファイル情報を例として、図３に示す。この情報は、その部品のレコード属性や項目属性など、主にその部品の構造に関するものである。
【００１７】
図１において、入出力部品仕様設定１０１によって入出力部品仕様情報１３１に情報を追加し、入出力部品仕様情報１３２を生成する手順を図４に示す。
この手順において設計者が追加設定する内容を図５に示す。図５に示す入出力部品仕様情報１３２は、部品設計装置１２１により初期設定された入出力部品仕様情報１３１と入出力部品仕様設定１０１によって追加設定された入出力部品仕様情報とから構成されている。この追加設定された追加情報は主にその部品に対してなされる概略的な処理方法に関するものである。具体的にこの追加情報の内容として、この入出力部品がロジックの部品として選択された日付に関する情報である「入出力部品選択日付」、この入出力部品の仕様を設定した日付に関する情報である「入出力部品仕様設定日付」（図示せず）、またこの部品に対してどのような処理がなされ、またそのタイミングは後述する「フローパターン」（ロジック全体をある決まった流れにパターン化したもの）におけるどの「インデックス」（フローパターン上でのタイミング）であるか、といったことが含まれている。
【００１８】
図６は、入出力部品仕様情報１３２をもとに、ロジック自動生成手段１０２を構成する処理命令編成部１１９によってロジック情報１３３を生成する手順を示したものである。入出力部品仕様情報は図５に示した通り２つの部分から構成されており、図の上側は部品設計装置によって設定された内容、下側は入出力部品仕様設定手段によって追加設定された内容であることを示しており、入出力部品名としての情報名がＩＯａの場合について記述している。処理命令編成部１１９は、入出力部品仕様情報中の処理内容から同手段が内部的に持つフローパターン情報を参照して処理区分であるインデックスごとに編成された処理命令を更に入出力部品ごとに編成してロジック情報１３３を生成する。
図中のフローパターン情報は、バツチ処理を行うバッチプログラム用のフローパターンであり、図における一例として、入出力部品としての一ファイルＩＯａを初期処理にて開き、明細処理にて読み込み、全てのレコードの読み込みを終了したとき終了処理にて閉じるフローとなっている。
結果として得られるロジック情報１３３は、初期処理、明細処理、合計処理、終了処理の処理区分ごとに編成され更にはＩＯａの入出力部品ごとに編成されたロジックとしてのスクリプトとなっている。
【００１９】
入出力部品仕様情報１３２の中で、１つのインデックスに対し複数の処理命令が設定されている場合を図７に示す。この場合、ロジック自動生成手段１０２を構成しているロジックの流れ推論部１１１が、複数ある処理命令（ＯＰＥＮ，  ＣＬＯＳＥ，  ＲＥＡＤ，  ＷＲＩＴＥ等）の実際のロジックでの順番を推論するため、プログラムの流れ推論部自体が内部的に持つ処理命令である入出力命令のパターン情報を参照し、複数の処理命令が最も一般的な順序に並びかえられたロジック情報１３３を生成する。
入出力命令パターン情報の一例としては、ＯＰＥＮ−ＳＴＡＲＴ−ＲＥＡＤ−降順ＲＥＡＤ−ＵＰＤＡＴＥ−ＷＲＩＴＥ−ＤＥＬＥＴＥ−ＣＬＯＳＥがある。なお、入出力部品によっては、入出力命令パターン情報とは異なる処理を必要とする場合もあるが、その場合には、入出力部品仕様情報１３２に条件を付加しておくことにより、ロジックの流れ推論部１１１にて推論を行い処理命令の実行順序を変更することも可能である。
【００２０】
次に、入出力部品仕様情報１３２が複数ある場合を図８に示す。この図の場合、１つのインデックス（明細処理）において２つの入出力部品（ＩＯａとＩＯｂ）に対する処理があり、しかも１つ１つの入出力部品に対する処理も複数ある。そこで、ロジック自動生成手段１０２を構成する入出力部品判別部１１２が、対象とする入出力部品毎に処理をまとめることによってより簡潔なロジック情報１３３を生成する。その際入出力部品ごとのまとまりをより明確にするため、「〜（入出力部品名）の〜（インデックス）」といった「ブロック」と呼ばれるものも合わせて生成する。このブロックは入出力部品が１つしかない場合も生成される。
なお、上記ブロックは、いわゆるコメント行であり、後の工程においてロジック情報１３３を補充訂正する場合に見やすくするためのものであるとともに、プログラム自動生成手段１０５においてプログラム仕様書１３６を作成するために利用する。
ここで、入出力部品仕様情報１３２が複数ある場合に１つのロジックで必要な入出力部品を特定するには、プログラム情報１３８に格納されている情報を参照することにより可能であるが、入出力部品仕様情報１３２として必要な入出力部品のみを用意しておけばプログラム情報１３８を参照しなくてもロジック情報１３３の生成は可能である。
【００２１】
図１において、ロジック情報１３３から、直接ロジック設定手段１０３によってロジック情報１３４を生成する手順を図１４に示す。図１４のように設計者は、ロジック自動生成手段１０２によって生成されたロジック情報１３３を、エディタ感覚の直接ロジック設定１０３で編集する。ただし、ロジック自動生成手段１０２によって生成された入出力処理ロジックに関しては、スクリプト全体の中で根幹をなすものなので、順序の並び変えは可能であるが削除及び複写は不可である。
ロジック自動生成手段１０２によって生成されたロジック情報１３３は、それだけでスクリプトとして使用可能な場合もあるが、通常は、各プログラムに固有の演算処理を追加する必要がある。そのため、一例として、図１４に示すようにスクリプトの入力画面に表示されているロジック情報１３３を見て、例えば不足しているＭＯＶＥ命令を追加入力してスクリプトを完成させることができる。
通常、入出力部品名、項目名はともに日本語にて記述する場合が多いので、上記スクリプトは主として日本語にて生成されることになる。
【００２２】
次に、直接ロジック設定１０３により補充編集されたロジック情報１３４を再度入出力部品仕様設定１０１にて変更した入出力部品仕様情報１３２をロジック自動生成手段１０２に入力してロジック情報を再生成する場合について、図９のフローチャートを用いて説明する。
はじめに設計者はロジック情報をロジック自動生成手段１０２によって生成し（ステップ９０１）、直接ロジック設定１０３によって補充編集する（ステップ９０２）。その後、新規に入出力部品を追加選択したり（ステップ９０３）、既に選択されている入出力部品のあるものを削除（選択解除）したり（ステップ９０４）、選択されている入出力部品のあるものを再度設計し直して再選択したり（ステップ９０５）、あるいは選択されている入出力部品に対する処理を、入出力部品仕様設定１０１によって（フローパターンのインデックスに付随するものとして）再設定する（ステップ９０６）、といった操作を行う。設計者が行うこの一連の操作によって入出力部品仕様情報は変更される。そして最後に設計者は再度、ロジック自動生成手段１０２によってロジック情報を生成する（ステップ９０７）。これらの操作（ステップ９０１〜９０７）に対してロジック自動生成手段の既存ロジック利用部１１３および項目属性チェック部１１４は、設計者が生成、編集した既存のロジック情報（ステップ９０１〜９０２）を利用しながら、設計者が変更した入出力部品仕様情報（ステップ９０３〜９０６）をもとにロジック情報を生成し（ステップ９０８）、ロジック再生成が完了する（ステップ９０９）。
【００２３】
ロジック情報を既存のものを再生成して利用する場合、ロジック自動生成手段１０２の既存ロジック利用部１１３および項目属性チェック部１１４の動作（図９のステップ９０８）は、既存のロジック情報を部分的に削除したり、あるいは既存のロジック情報に新たな情報を挿入するといった方法をとる。つまりこの方法は基本的に、既存のロジック情報を残しながら、ロジック情報が最後に自動生成されてから後に設計者が行なった部品の追加、削除等、入出力部品仕様情報に対する変更をロジック情報に反映していこうというものである。その動作手順の詳細な説明を図１０〜図１２を用いて行う。
【００２４】
図１０は、ロジック自動生成手段１０２の既存ロジック利用部の動作手順を図に示したものであり、図１１はそのフローチャートを示したものである。
まず、ロジック自動生成装置内のワークファイルに既存のロジック情報１３４がない場合は新規にロジック情報を生成する（図１１のステップ１１０２）。
既存のロジック情報１３４のワークファイルがある場合は、まず、そのロジック情報中のブロックの中からある１つのブロックを無作為に選び、そのブロックに対応する入出力部品仕様情報１３２をサーチする（図１０のマル１、図１１のステップ１１０３）。この際、対応する入出力部品が無い場合はそのブロック及びその処理命令をロジック情報から削除する（図１０のマル２、図１１のステップ１１０５）。対応関係のないブロック及びその処理命令は存在する必要性がないからである。この動作をすべてのブロック及びその処理命令について繰り返す（図１１のステップ１１０３〜１１０６）。この図１０のマル１〜マル２、図１１のステップ１１０３〜１１０６によって、対応する入出力部品が削除（選択解除）されたブロックをロジック情報中から削除している。
【００２５】
次に入出力部品仕様情報１３２のうちで、ロジック情報１３４の生成日付より新しい入出力部品選択日付または入出力部品仕様設定日付（図示せず）を持つすべての入出力部品仕様情報をサーチする（図１０のマル３、図１１のステップ１１０７）。そしてその時見つかった入出力部品仕様情報のうちある１つの入出力部品を選んで、その入出力部品に対応するブロックをロジック情報からサーチし、見つかったすべてのブロックに「更新」フラグを立てる（図１０のマル４、図１１のステップ１１０８）。この図１０のマル４、図１１のステップ１１０８によって、入出力部品の変更のためロジック情報中にある変更しなければならない可能性のあるブロックを特定している。
【００２６】
さらに、図１１のステップ１１０８で選んだ入出力部品のすべての処理の中から１つの処理を選び、対応するブロックをロジック情報中からサーチする（図１０のマル５、図１１のステップ１１０９）。ここで対応するブロックがない場合は対応するブロックを生成しロジック情報中に生成したブロックと処理命令を挿入して「挿入」フラグを立てる（図１０のマル６〜マル８、図１１のステップ１１１１〜１１１２）。またもし対応するブロックがある場合は、対応するブロックに「更新」フラグが立っている場合は「既存」フラグに変更し（図１０のマル９〜マル１０、図１１のステップ１１１３）、さらにブロック中で対応する処理命令をサーチする（図１０のマル１１、図１１のステップ１１１４）。この際、もし処理命令がない場合は処理命令を挿入し、挿入した処理命令に「挿入」フラグを立て（図１０のマル１２〜マル１４、図１１のステップ１１１６〜１１１７）、また処理命令がある場合はその処理命令に「既存」フラグを立てる（図１０のマル１５〜マル１６、図１１のステップ１１１８）。この図１０のマル１５〜マル１６、図１１のステップ１１０９〜１１１８によって、入出力部品仕様情報が変更され追加されたブロックや処理命令をロジック情報中に挿入したり、あるいはロジック情報中のブロックや処理命令を入出力部品仕様情報１３２中に存在するものであるかあるいはそうでないかに分類する。
なお、図１０のマル５〜マル１６、図１１のステップ１１０９〜１１１８の動作を図１１のステップ１１０８で選んだ入出力部品仕様情報１３２中のすべての処理について行う（図１１のステップ１１１９）。また、図１０のマル４〜マル１６、図１１のステップ１１０８〜１１１８の動作を図１１のステップ１１０７でサーチしたすべての入出力部品仕様情報について行う（図１１のステップ１１２０）。
【００２７】
最後に、ロジック情報中で、「更新」フラグが立っているブロック、および  「既存」フラグが立っているブロックの中の図７の入出力命令パターン情報における処理命令のうちフラグが立っていないものは、今回生成するプログラムとは無関係であるので、それらを削除する（図１０のマル１７、図１１のステップ１１２１）。この図１０のマル１７、図１１のステップ１１２１によって、入出力部品仕様情報が変更され、対応する情報が無くなってしまったブロック及び処理命令をロジック情報から削除することができる。結果として新しいロジック情報１３３が再生成されることになる。
なお、ロジック情報１３３のワークファイルを利用して既存ロジック利用部１１３を適用し、結果として新しいロジック情報１３３を得ることも可能である。
【００２８】
次に図１１のステップ１１２２に相当するロジック自動生成手段１０２の項目属性チェック部１１４の動作について、図１２はその動作手順を図に示したものであり、図１３はその動作手順をフローチャートに示したものである。
まずロジック情報中で「既存」フラグが立っているブロックの中から１つを選び、そのブロック中の処理命令のうち、フラグが立っておらずかつ部品の変数である「項目」を使用しているものをサーチする（図１２のマル１、図１３のステップ１３０１）。次にその時見つかった処理命令のうち１つを選び、その中に含まれる部品の項目を図１０のマル３で見つかった入出力部品仕様情報中でサーチする（図１２のマル２、図１３のステップ１３０２）。ここで、もし項目がない場合はその処理命令をロジック情報１３３中から削除し（図１２のマル３、図１３のステップ１３０４）、またある場合はその項目の属性と処理命令の他の項目の属性との整合性がとれているかをチェックして（図１２のマル５、図１３のステップ１３０５）、とれていない場合はその旨のメッセージを表示して設計者に知らせる  （図１２のマル６、図１３のステップ１３０７）。例えば、図１２においては、ロジック情報１３３で数字の１をプラスしているので、入出力部品仕様情報１３２の項目Ｂ３の属性を調べ、Ｂ３が数字タイプの場合には問題とはしないが、例えば英数字タイプの場合にはエラーメッセージを表示する。
【００２９】
以上の図１２のマル２〜マル６、図１３のステップ１３０２〜１３０７の動作を図１３のステップ１３０１で選んだブロック中にある処理命令すべてについて行う（図１３のステップ１３０８）。また、図１２のマル１〜マル６、図１３のステップ１３０１〜１３０７の動作をロジック情報中の「既存」フラグが立っているブロックすべてについて行う（図１３のステップ１３０９）。この図１２マル１〜マル６、図１３のステップ１３０１〜１３０９によって、入出力仕様情報が変更され削除又は属性変更されてしまった項目を使用している処理命令をロジック情報中から削除したり、あるいは、その存在を設計者に通知する。
既存のロジック情報がある場合は、上述の図９〜図１３に示したように、ロジック自動生成手段１０２の既存ロジック利用部１１３及び項目属性チェック部１１４が既存のロジック情報をもとに、ブロックあるいは処理命令単位の挿入、削除を行うことによって、ロジック情報が再生成される。
【００３０】
図１における入出力部品仕様情報１３２およびロジック情報１３４およびプログラム情報１３８から、ソースプログラム自動生成手段１０４を構成する自動生成部１２２によってソースプログラム１３５を自動生成する手順を図１５に示す。
ここで生成するソースプログラム１３５は、図１５に示すように［入力ファイル記述部］、［出力ファイル記述部］  、［帳表記述部］  、［処理内容記述部］等の既成の形式があり、自動生成部１２２により入出力部品仕様情報１３２とロジック情報１３４をそれぞれ上記形式にあてはめることによってソースプログラム１３５が生成される。プログラム情報１３８からはプログラム名称を取り込む。
また図に示すように、ロジック情報中の転送命令「ＭＯＶＥ  Ｉｔｅｍ２  →  ＩＯｂ．Ｂ１」の両項目  Ｉｔｅｍ２  および  ＩＯｂ．Ｂ１  がタイプ、長さ、ともに同じである場合、ソースプログラム自動生成手段１０４の転送項目連結部１１５によって、ソースプログラムにこの転送命令「ＭＯＶＥ  Ｉｔｅｍ２  →  ＩＯｂ．Ｂ１」を生成せずかつその前の処理において  Ｉｔｅｍ２  を  ＩＯｂ．Ｂ１  に置き換えることにより、ソースプログラムを実行する際の資源が節約される。
【００３１】
図１における入出力部品仕様情報１３２、およびロジック情報１３４から、プログラム仕様自動生成手段１０５によって、プログラム仕様書１３６を生成する手段を図１６に示す。
まず、プログラム全体の概要説明をプログラム情報１３８として事前に入力した情報から生成する。次にロジックで使用する入出力部品に関する情報を入出力部品仕様情報１３２から生成する。最後に処理内容をロジック情報１３４から生成する。
ここで、図に示すように、処理内容がフローパターンのインデックス毎に、また各インデックス内では各入出力部品毎にまとめられており、かつプログラム仕様書自動生成手段１０５の章及び節番号付加部１１６によって、フローパターンのインデックスには章番号、ブロックには節番号が付加されている。ここでインデックスと章番号の対応は固定、ブロックと節番号の対応はブロックに対応する入出力部品の選択された順番をそのまま節番号としている。
また、ロジック情報中の処理内容の各処理に「仕様に反映しない」フラグの領域がとられており、これが立てられている場合プログラム仕様自動生成手段１０５の生成ロジック選択部１１８によって、その処理内容は仕様書の中に含まれない。さらに、同じくロジック情報中の処理内容の各処理に「章及び節番号を付加しない」フラグの領域がとられており、これがたてられている場合、プログラム仕様自動生成手段１０５の章及び節番号付加選択部１１７によって、その処理内容の番号は仕様書の中で付加されていない。なお、これらの「仕様書に反映しない」フラグ、「章及び節番号を付加しない」フラグは図１４の直接ロジック設定１０３によって設定する。
【００３２】
図１７を用いて、本発明に係るソースプログラム生成において設計者が行う概略的な操作の流れを説明する。
まず、生成するプログラムの概要を設定する（ステップ１７０１）。次に、プログラムにおける入出力部品を選択し（ステップ１７０２）、その仕様を入出力部品仕様設定１０１において設定する（ステップ１７０３）。  そして、ロジックを自動生成する場合（ステップ１７０４）には、ロジック自動生成手段１０２により、入出力部品仕様設定（ステップ１７０３）での入出力部品に対する処理の設定内容をもとにロジックを自動生成する（ステップ１７０５）。さらに、直接ロジック設定１０３によってロジックを入力、または編集し、設定する（ステップ１７０６）。
以上が、設計者がプログラムの実際のロジック内容を設計する流れであり、設計内容を修正する必要がない場合（ステップ１７０７）は、入出力部品仕様情報、ロジック情報を保存し（ステップ１７０８）、ソースプログラムを自動生成し（ステップ１７０９）、プログラム仕様書を自動生成する（ステップ１７１０）。  また、設計内容を修正する必要がある場合（ステップ１７０７）は、設計を終了せず修正することができる。
【００３３】
図１７における入出力部品仕様の設定（ステップ１７０３）の詳細な例を、図１８を用いて説明する。図１８は、設計者が入出力部品仕様設定１０１において行う操作の流れを示す図である。
まず、入出力部品のプログラム上での名称の設定（ステップ１８０１）、入出力部品のオープン方法等、詳細な仕様の設定（ステップ１８０２）を行う。  次に、入出力部品に対して、どのタイミング（インデックス）でどういった入出力処理を行うかを設定する（ステップ１８０３）。最後に、入出力部品の各項目仕様を設定する（ステップ１８０４）。
以上が、設計者が入出力部品仕様を設定するな操作であるが、設定内容を修正する必要がある場合（ステップ１８０５）は、設定を終了せず修正することができる。
【００３４】
【発明の効果】
この発明は、以上説明したように構成されているので以下に示すような効果を奏する。
【００３５】
処理命令編成部、ロジックの流れ推論部を備えたことにより、ロジックの主要部分を自動生成することができる。
【００３６】
また、生成されたロジック情報は主として日本語により構成され、対話的に修正可能なものとしたので、ロジック情報の補充訂正が容易となり、より適切なロジック情報を得ることができる。
【００３７】
さらに、処理区分を初期処理又は明細処理又は合計処理又は終了処理からなるように構成したので、バッチプログラム用のロジック情報を生成することができる。
【００３８】
また、入出力部品を入力ファイル又は出力ファイル又は参照ファイル又は更新ファイル又は出力帳票からなるように構成したので、バッチプログラム用のロジック情報を生成することができる。
【００３９】
さらにまた、対話的に修正されたロジック情報に更新された入出力部品情報を反映させる既存ロジック利用部を備えたので、ロジック情報設計時の操作性を向上させることができる。
【００４０】
また、入出力部品仕様情報及びロジック情報よりプログラム仕様書を生成するプログラム仕様自動生成手段を備えたので、自動的にプログラム仕様書を得ることができ、アプリケーションプログラムのプログラム仕様書の生産性を向上させることができる。
【００４１】
さらに、上記プログラム仕様自動生成手段において、ロジック情報の各ステップごとにそのステップをプログラム仕様に反映させるか否かを選択できる生成ロジック選択部を備えたので、容易な操作により簡潔なプログラム仕様書を得ることができる。
【００４２】
また、プログラム仕様自動生成手段を構成する章及び節番号付加部により上記処理区分には章番号、上記ブロックには節番号が付されるように構成したので、自動的に整理されたプログラム仕様書を得ることができる。
【図面の簡単な説明】
【図１】この発明の実施の形態１を示すシステム構成図である。
【図２】この発明の実施の形態１を示す部品設計装置のブロック図である。
【図３】この発明の実施の形態１を示す入出力部品仕様情報のレイアウト図である。
【図４】この発明の実施の形態１を示す入出力部品仕様設定の概念図である。
【図５】この発明の実施の形態１を示す入出力部品仕様情報のレイアウト図である。
【図６】この発明の実施の形態１を示すロジック自動生成手段の処理内容を表すブロック図である。
【図７】この発明の実施の形態１を示すロジックの流れ推論部の処理内容を表すブロック図である。
【図８】この発明の実施の形態１を示す入出力部品判別部の処理内容を表す状態遷移図である。
【図９】この発明の実施の形態１を示すロジック情報を再生成する場合の動作を示すフローチャートである。
【図１０】この発明の実施の形態１を示す既存ロジック利用部の処理内容を表す状態遷移図である。
【図１１】この発明の実施の形態１を示す既存ロジック利用部の処理内容を表すフローチャートである。
【図１２】この発明の実施の形態１を示す項目属性チェック部の処理内容を表す状態遷移図である。
【図１３】この発明の実施の形態１を示す項目属性チェック部の処理内容を表すフローチャートである。
【図１４】この発明の実施の形態１を示す直接ロジック設定における処理内容を表す状態遷移図である。
【図１５】この発明の実施の形態１を示す転送項目連結部処理内容を表す状態遷移図である。
【図１６】この発明の実施の形態１を示すプログラム仕様自動生成手段の処理内容を表す状態遷移図である。
【図１７】この発明の実施の形態１を示すプログラム仕様自動生成手段の処理内容を表すフローチャートである。
【図１８】この発明の実施の形態１を示す入出力部品仕様設定の操作を表すフローチャートである。
【符号の説明】
１０５  プログラム仕様自動生成手段、１１１  ロジックの流れ推論部、１１３  既存ロジック利用部、１１７  章及び節番号付加選択部、１１８  生成ロジック選択部、１１９  処理命令編成部
【図１】
0003570808.tif 000002
【図２】
0003570808.tif 000003
【図３】
0003570808.tif 000004
【図４】
0003570808.tif 000005
【図５】
0003570808.tif 000006
【図６】
0003570808.tif 000007
【図７】
0003570808.tif 000008
【図８】
0003570808.tif 000009
【図９】
0003570808.tif 000010
【図１０】
0003570808.tif 000011
【図１１】
0003570808.tif 000012
【図１２】
0003570808.tif 000013
【図１３】
0003570808.tif 000014
【図１４】
0003570808.tif 000015
【図１５】
0003570808.tif 000016
【図１６】
0003570808.tif 000017
【図１７】
0003570808.tif 000018
【図１８】
0003570808.tif 000019