(57)【特許請求の範囲】
【請求項１】
データベースの表のデータを参照し、表中に新たなデータを挿入したり、表中のデータを更新したり、表中のデータを削除したりするプログラムにおいて、前段処理部分と繰り返し処理部分と後段処理部分を備えたプログラム全体を、プログラムスケルトンと仕様とに基づいて、自動的に生成するデータ処理プログラム自動生成システムであって、
作成するデータ処理プログラム毎に異なる仕様である個別仕様を入力する機能と、作成するデータ処理プログラムが属するグループ毎に異なる仕様である共通処理仕様を入力する機能とを有する仕様入力手段を備え、
前記プログラムスケルトンは、仕様の如何に関わらず固定の部分のプログラムとして、前段処理部分と、前記前段処理部分に続く繰り返し処理部分と、前記繰り返し処理部分に続く後段処理部分を含み、仕様によって変化する部分のプログラム断片の挿入位置として、前段処理部分内にプログラム名挿入位置と、カーソル定義文挿入位置と、作業変数定義文列挿入位置と、初期処理挿入位置を含み、繰り返し処理部分内に出力処理文列挿入位置を含み、後段処理部分に終了処理位置を含んで構成され、
前記個別仕様は、生成したプログラムに付与するプログラム名と、入力表の名前とその入力表の各項目の名前および型の情報を含む入力表項目定義と、セレクト文内に定義する入力表項目の名前を含むセレクト項目定義と、出力表の名前とその出力表の各項目の名前および型の情報を含む出力表項目定義と、各出力表の処理を行う条件を示す処理条件と、挿入、更新、削除の別を示す処理種別と、処理種別が更新と削除の場合に更新、削除するための条件を示す更新、削除条件と、処理種別が挿入と更新の場合に各項目の値を計算する処理式とを含む出力表処理定義と、入力表からデータを取得する際の条件を含むセレクト条件定義を含んで構成され、
前記共通処理仕様は、プログラムスケルトンをカスタマイズするためのその他の情報を含むプログラムカスタマイズ情報を含んで構成され、
且つ、
前記プログラムスケルトンを、複数種類格納するための記憶装置に格納されたプログラムスケルトンライブラリと、
前記仕様入力手段で入力された個別仕様から前記プログラム名を取り出し、前記仕様入力手段で入力された共通処理仕様から前記プログラムカスタマイズ情報を取り出すプログラムスケルトンカスタマイズ情報取得手段と、
前記仕様入力手段で入力された個別仕様から入力表項目定義とセレクト項目定義とセレクト条件定義を取り出すカーソル定義情報取得手段と、
前記仕様入力手段で入力された個別仕様から出力表項目定義と出力表処理定義を取り出す出力項目処理情報取得手段と、
前記カーソル定義情報取得手段で取得された情報からカーソル定義文を生成するカーソル定義文生成手段であって、入力表項目定義のうちセレクト項目定義内に指定された項目名だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト項目列を生成し、入力表項目定義内に指定された入力表のうち、セレクト項目定義で使用されている入力表の名前だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト表列を生成し、セレクト条件定義を、生成するプログラミング言語の構文に従った形式に加工してセレクト条件文を生成し、セレクト項目列挿入位置、入力表列挿入位置およびセレクト条件挿入位置を持つ、生成するプログラミング言語に依存したカーソル定義スケルトンの該当挿入位置に、前記生成したセレクト項目列、セレクト表列およびセレクト条件を挿入してカーソル定義文を生成するカーソル定義文生成手段と、
前記出力項目処理情報取得手段で取得された出力表項目定義のうち、処理種別が挿入である出力表に対応するものから作業変数定義文を生成する作業変数定義文生成手段であって、処理種別が挿入である出力表について、その出力表のレコード型を定義する型定義文を生成し、その定義された型で作業領域変数を定義する変数定義文を生成し、型定義文挿入位置および変数定義文挿入位置を持つ作業変数定義スケルトンの該当挿入位置に、前記生成した型定義文および変数定義文を挿入して作業変数定義文を生成する作業変数定義文生成手段と、
前記出力項目処理情報取得手段で取得された出力表項目定義と出力表処理定義から、処理種別が挿入の場合は処理条件文と項目計算文と挿入文とを含む出力処理文を生成し、処理種別が更新の場合には処理条件文と更新文とを含む出力処理文を生成し、処理種別が削除の場合には処理条件文と削除文とを含む出力処理文を生成する出力処理文生成手段であって、出力表処理定義の処理条件から処理条件文を生成し、出力表処理定義の処理種別が挿入、更新、削除の何れであるかを判別し、処理種別が挿入の場合、出力表処理定義の各項目の処理式から項目計算文を生成し、出力表項目定義から出力表名、項目名リストおよび変数名リストを含む挿入文を生成し、処理条件文挿入位置、項目計算文挿入位置および出力文挿入位置を持つ出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、項目計算文挿入位置に前記生成した項目計算文を、出力文挿入位置に前記生成した挿入文をそれぞれ挿入して出力処理文を生成し、処理種別が更新の場合、出力表処理定義の各項目の処理式と出力表項目定義とから出力表名、更新文リストおよび更新条件を含む更新文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した更新文をそれぞれ挿入して出力処理文を生成し、処理種別が削除の場合、出力表項目定義から出力表名および削除条件を含む削除文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した削除文をそれぞれ挿入して出力処理文を生成する出力処理文生成手段と、
前記プログラムスケルトンライブラリから利用者の指定した１つのプログラムスケルトンを選択するプログラムスケルトン選択手段と、
前記データ処理プログラムのうち、前記プログラムスケルトン選択手段で選択されたプログラムスケルトンの該当挿入位置に、前記プログラムスケルトンカスタマイズ情報取得手段で取得したプログラム名とプログラムカスタマイズ情報と、前記カーソル定義文生成手段で生成したカーソル定義文と、前記作業変数定義文生成手段で生成した作業変数定義文と、前記出力処理文生成手段で生成した出力処理文とを挿入することによってプログラムを完成させ、出力するプログラム自動合成手段とを備えることを特徴とするデータ処理プログラム自動生成システム。
【請求項２】
データベースの表のデータを参照し、表中に新たなデータを挿入したり、表中のデータを更新したり、表中のデータを削除したりするプログラムにおいて、前段処理部分と繰り返し処理部分と後段処理部分を備えたプログラム全体を、プログラムスケルトンと仕様とに基づいて、自動的に生成するデータ処理プログラム自動生成システムであって、
作成するデータ処理プログラム毎に異なる仕様である個別仕様を入力する機能と、作成するデータ処理プログラムが属するグループ毎に異なる仕様である共通処理仕様を入力する機能とを有する仕様入力手段を備え、
前記プログラムスケルトンは、仕様の如何に関わらず固定の部分のプログラムとして、前段処理部分と、前記前段処理部分に続く繰り返し処理部分と、前記繰り返し処理部分に続く後段処理部分を含み、仕様によって変化する部分のプログラム断片の挿入位置として、前段処理部分内にプログラム名挿入位置と、カーソル定義文挿入位置と、作業変数定義文列挿入位置と、初期処理挿入位置を含み、繰り返し処理部分内に出力処理文列挿入位置を含み、後段処理部分に終了処理位置を含んで構成され、
前記個別仕様は、生成したプログラムに付与するプログラム名と、入力表の名前とその入力表の各項目の名前および型の情報を含む入力表項目定義と、出力表の名前とその出力表の各項目の名前および型の情報を含む出力表項目定義と、各出力表の処理を行う条件を示す処理条件と、挿入、更新、削除の別を示す処理種別と、処理種別が更新と削除の場合に更新、削除するための条件を示す更新、削除条件と、処理種別が挿入と更新の場合に各項目の値を計算する処理式とを含む出力表処理定義と、入力表からデータを取得する際の条件を含むセレクト条件定義を含んで構成され、
前記共通処理仕様は、プログラムスケルトンをカスタマイズするためのその他の情報を含むプログラムカスタマイズ情報を含んで構成され、
且つ、
前記プログラムスケルトンを、複数種類格納するための記憶装置に格納されたプログラムスケルトンライブラリと、
前記仕様入力手段で入力された個別仕様から前記プログラム名を取り出し、前記仕様入力手段で入力された共通処理仕様から前記プログラムカスタマイズ情報を取り出すプログラムスケルトンカスタマイズ情報取得手段と、
前記仕様入力手段で入力された個別仕様から入力表項目定義とセレクト条件定義と出力表処理定義を取り出すカーソル定義情報取得手段と、
前記仕様入力手段で入力された個別仕様から出力表項目定義と出力表処理定義を取り出す出力項目処理情報取得手段と、
前記カーソル定義情報取得手段で取得された入力表項目定義とセレクト条件定義と出力表処理定義とからセレクト項目定義を作成し、該作成したセレクト項目定義と前記カーソル定義情報取得手段で取得されたセレクト条件定義とからカーソル定義文を生成するカーソル定義文生成手段であって、入力表項目定義と出力表処理定義から、セレクト文内に定義する入力表項目の名前を含むセレクト項目定義を生成し、入力表項目定義のうちセレクト項目定義内に指定された項目名だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト項目列を生成し、入力表項目定義内に指定された入力表のうち、セレクト項目定義で使用されている入力表の名前だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト表列を生成し、セレクト条件定義を、生成するプログラミング言語の構文に従った形式に加工してセレクト条件文を生成し、セレクト項目列挿入位置、入力表列挿入位置およびセレクト条件挿入位置を持つ、生成するプログラミング言語に依存したカーソル定義スケルトンの該当挿入位置に、前記生成したセレクト項目列、セレクト表列およびセレクト条件を挿入してカーソル定義文を生成するカーソル定義文生成手段と、
前記出力項目処理情報取得手段で取得された出力表項目定義のうち、処理種別が挿入である出力表に対応するものから作業変数定義文を生成する作業変数定義文生成手段であって、処理種別が挿入である出力表について、その出力表のレコード型を定義する型定義文を生成し、その定義された型で作業領域変数を定義する変数定義文を生成し、型定義文挿入位置および変数定義文挿入位置を持つ作業変数定義スケルトンの該当挿入位置に、前記生成した型定義文および変数定義文を挿入して作業変数定義文を生成する作業変数定義文生成手段と、
前記出力項目処理情報取得手段で取得された出力表項目定義と出力表処理定義から、処理種別が挿入の場合は処理条件文と項目計算文と挿入文とを含む出力処理文を生成し、処理種別が更新の場合には処理条件文と更新文とを含む出力処理文を生成し、処理種別が削除の場合には処理条件文と削除文とを含む出力処理文を生成する出力処理文生成手段であって、出力表処理定義の処理条件から処理条件文を生成し、出力表処理定義の処理種別が挿入、更新、削除の何れであるかを判別し、処理種別が挿入の場合、出力表処理定義の各項目の処理式から項目計算文を生成し、出力表項目定義から出力表名、項目名リストおよび変数名リストを含む挿入文を生成し、処理条件文挿入位置、項目計算文挿入位置および出力文挿入位置を持つ出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、項目計算文挿入位置に前記生成した項目計算文を、出力文挿入位置に前記生成した挿入文をそれぞれ挿入して出力処理文を生成し、処理種別が更新の場合、出力表処理定義の各項目の処理式と出力表項目定義とから出力表名、更新文リストおよび更新条件を含む更新文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した更新文をそれぞれ挿入して出力処理文を生成し、処理種別が削除の場合、出力表項目定義から出力表名および削除条件を含む削除文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した削除文をそれぞれ挿入して出力処理文を生成する出力処理文生成手段と、
前記プログラムスケルトンライブラリから利用者の指定した１つのプログラムスケルトンを選択するプログラムスケルトン選択手段と、
前記データ処理プログラムのうち、前記プログラムスケルトン選択手段で選択されたプログラムスケルトンの該当挿入位置に、前記プログラムスケルトンカスタマイズ情報取得手段で取得したプログラム名とプログラムカスタマイズ情報と、前記カーソル定義文生成手段で生成したカーソル定義文と、前記作業変数定義文生成手段で生成した作業変数定義文と、前記出力処理文生成手段で生成した出力処理文とを挿入することによってプログラムを完成させ、出力するプログラム自動合成手段とを備えることを特徴とするデータ処理プログラム自動生成システム。
【請求項３】
前記共通処理仕様は、キーワードを付与した共通処理記述と、該共通処理記述を挿入する箇所に前記キーワードを挿入してある複数の処理記述とを含み、
前記仕様入力手段は、前記複数の処理記述中における前記キーワードの挿入位置に前記共通処理記述を展開する展開手段を備えることを特徴とする請求項１または２に記載のデータ処理プログラム自動生成システム。
【請求項４】
仕様入力手段とプログラムスケルトンカスタマイズ情報取得手段とカーソル定義情報取得手段と出力項目処理情報取得手段とカーソル定義文生成手段と作業変数定義文生成手段と出力処理文生成手段とプログラムスケルトン選択手段とプログラム自動合成手段とを備え、データベースの表のデータを参照し、表中に新たなデータを挿入したり、表中のデータを更新したり、表中のデータを削除したりするプログラムにおいて、前段処理部分と繰り返し処理部分と後段処理部分を備えたプログラム全体を、プログラムスケルトンと仕様とに基づいて、自動的に生成するデータ処理プログラム自動生成システムが実行する方法であって、
前記プログラムスケルトンは、仕様の如何に関わらず固定の部分のプログラムとして、前段処理部分と、前記前段処理部分に続く繰り返し処理部分と、前記繰り返し処理部分に続く後段処理部分を含み、仕様によって変化する部分のプログラム断片の挿入位置として、前段処理部分内にプログラム名挿入位置と、カーソル定義文挿入位置と、作業変数定義文列挿入位置と、初期処理挿入位置を含み、繰り返し処理部分内に出力処理文列挿入位置を含み、後段処理部分に終了処理位置を含んで構成され、
前記仕様入力手段が、作成するデータ処理プログラム毎に異なる仕様である個別仕様と、作成するデータ処理プログラムが属するグループ毎に異なる仕様である共通処理仕様とを入力し、
前記個別仕様は、生成したプログラムに付与するプログラム名と、入力表の名前とその入力表の各項目の名前および型の情報を含む入力表項目定義と、セレクト文内に定義する入力表項目の名前を含むセレクト項目定義と、出力表の名前とその出力表の各項目の名前および型の情報を含む出力表項目定義と、各出力表の処理を行う条件を示す処理条件と、挿入、更新、削除の別を示す処理種別と、処理種別が更新と削除の場合に更新、削除するための条件を示す更新、削除条件と、処理種別が挿入と更新の場合に各項目の値を計算する処理式とを含む出力表処理定義と、入力表からデータを取得する際の条件を含むセレクト条件定義を含んで構成され、
前記共通処理仕様は、プログラムスケルトンをカスタマイズするためのその他の情報を含むプログラムカスタマイズ情報を含んで構成され、
前記プログラムスケルトンカスタマイズ情報取得手段が、前記仕様入力手段で入力された個別仕様から前記プログラム名を取り出し、前記仕様入力手段で入力された共通処理仕様から前記プログラムカスタマイズ情報を取り出し、
前記カーソル定義情報取得手段が、前記仕様入力手段で入力された個別仕様から入力表項目定義とセレクト項目定義とセレクト条件定義を取り出し、
前記出力項目処理情報取得手段が、前記仕様入力手段で入力された個別仕様から出力表項目定義と出力表処理定義を取り出し、
前記カーソル定義文生成手段が、入力表項目定義のうちセレクト項目定義内に指定された項目名だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト項目列を生成し、入力表項目定義内に指定された入力表のうち、セレクト項目定義で使用されている入力表の名前だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト表列を生成し、セレクト条件定義を、生成するプログラミング言語の構文に従った形式に加工してセレクト条件文を生成し、セレクト項目列挿入位置、入力表列挿入位置およびセレクト条件挿入位置を持つ、生成するプログラミング言語に依存したカーソル定義スケルトンの該当挿入位置に、前記生成したセレクト項目列、セレクト表列およびセレクト条件を挿入してカーソル定義文を生成し、
前記作業変数定義文生成手段が、前記出力項目処理情報取得手段で取得された出力表項目定義のうち、処理種別が挿入である出力表に対応するものから作業変数定義文を生成し、該生成では、処理種別が挿入である出力表について、その出力表のレコード型を定義する型定義文を生成し、その定義された型で作業領域変数を定義する変数定義文を生成し、型定義文挿入位置および変数定義文挿入位置を持つ作業変数定義スケルトンの該当挿入位置に、前記生成した型定義文および変数定義文を挿入して作業変数定義文を生成し、
前記出力処理文生成手段が、前記出力項目処理情報取得手段で取得された出力表項目定義と出力表処理定義から、処理種別が挿入の場合は処理条件文と項目計算文と挿入文とを含む出力処理文を生成し、処理種別が更新の場合には処理条件文と更新文とを含む出力処理文を生成し、処理種別が削除の場合には処理条件文と削除文とを含む出力処理文を生成し、前記生成では、出力表処理定義の処理条件から処理条件文を生成し、出力表処理定義の処理種別が挿入、更新、削除の何れであるかを判別し、処理種別が挿入の場合、出力表処理定義の各項目の処理式から項目計算文を生成し、出力表項目定義から出力表名、項目名リストおよび変数名リストを含む挿入文を生成し、処理条件文挿入位置、項目計算文挿入位置および出力文挿入位置を持つ出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、項目計算文挿入位置に前記生成した項目計算文を、出力文挿入位置に前記生成した挿入文をそれぞれ挿入して出力処理文を生成し、処理種別が更新の場合、出力表処理定義の各項目の処理式と出力表項目定義とから出力表名、更新文リストおよび更新条件を含む更新文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した更新文をそれぞれ挿入して出力処理文を生成し、処理種別が削除の場合、出力表項目定義から出力表名および削除条件を含む削除文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した削除文をそれぞれ挿入して出力処理文を生成し、
前記プログラムスケルトン選択手段が、前記プログラムスケルトンを、複数種類格納するための記憶装置に格納されたプログラムスケルトンライブラリから利用者の指定した１つのプログラムスケルトンを選択し、
前記プログラム自動合成手段が、前記データ処理プログラムのうち、前記プログラムスケルトン選択手段で選択されたプログラムスケルトンの該当挿入位置に、前記プログラムスケルトンカスタマイズ情報取得手段で取得したプログラム名とプログラムカスタマイズ情報と、前記カーソル定義文生成手段で生成したカーソル定義文と、前記作業変数定義文生成手段で生成した作業変数定義文と、前記出力処理文生成手段で生成した出力処理文とを挿入することによってプログラムを完成させ、出力する
データ処理プログラム自動生成方法。
【請求項５】
仕様入力手段とプログラムスケルトンカスタマイズ情報取得手段とカーソル定義情報取得手段と出力項目処理情報取得手段とカーソル定義文生成手段と作業変数定義文生成手段と出力処理文生成手段とプログラムスケルトン選択手段とプログラム自動合成手段とを備え、データベースの表のデータを参照し、表中に新たなデータを挿入したり、表中のデータを更新したり、表中のデータを削除したりするプログラムにおいて、前段処理部分と繰り返し処理部分と後段処理部分を備えたプログラム全体を、プログラムスケルトンと仕様とに基づいて、自動的に生成するデータ処理プログラム自動生成システムが実行するデータ処理プログラム自動生成方法であって、
前記プログラムスケルトンは、仕様の如何に関わらず固定の部分のプログラムとして、前段処理部分と、前記前段処理部分に続く繰り返し処理部分と、前記繰り返し処理部分に続く後段処理部分を含み、仕様によって変化する部分のプログラム断片の挿入位置として、前段処理部分内にプログラム名挿入位置と、カーソル定義文挿入位置と、作業変数定義文列挿入位置と、初期処理挿入位置を含み、繰り返し処理部分内に出力処理文列挿入位置を含み、後段処理部分に終了処理位置を含んで構成され、
前記仕様入力手段が、作成するデータ処理プログラム毎に異なる仕様である個別仕様と、作成するデータ処理プログラムが属するグループ毎に異なる仕様である共通処理仕様とを入力し、
前記個別仕様は、生成したプログラムに付与するプログラム名と、入力表の名前とその入力表の各項目の名前および型の情報を含む入力表項目定義と、出力表の名前とその出力表の各項目の名前および型の情報を含む出力表項目定義と、各出力表の処理を行う条件を示す処理条件と、挿入、更新、削除の別を示す処理種別と、処理種別が更新と削除の場合に更新、削除するための条件を示す更新、削除条件と、処理種別が挿入と更新の場合に各項目の値を計算する処理式とを含む出力表処理定義と、入力表からデータを取得する際の条件を含むセレクト条件定義を含んで構成され、
前記共通処理仕様は、プログラムスケルトンをカスタマイズするためのその他の情報を含むプログラムカスタマイズ情報を含んで構成され、
前記プログラムスケルトンカスタマイズ情報取得手段が、前記仕様入力手段で入力された個別仕様から前記プログラム名を取り出し、前記仕様入力手段で入力された共通処理仕様から前記プログラムカスタマイズ情報を取り出し、
前記カーソル定義情報取得手段が、前記仕様入力手段で入力された個別仕様から入力表項目定義とセレクト条件定義と出力表処理定義を取り出し、
前記出力項目処理情報取得手段が、前記仕様入力手段で入力された個別仕様から出力表項目定義と出力表処理定義を取り出し、
前記カーソル定義文生成手段が、前記カーソル定義情報取得手段で取得された入力表項目定義とセレクト条件定義と出力表処理定義とからセレクト項目定義を作成し、該作成したセレクト項目定義と前記カーソル定義情報取得手段で取得されたセレクト条件定義とからカーソル定義文を生成し、前記生成では、入力表項目定義と出力表処理定義から、セレクト文内に定義する入力表項目の名前を含むセレクト項目定義を生成し、入力表項目定義のうちセレクト項目定義内に指定された項目名だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト項目列を生成し、入力表項目定義内に指定された入力表のうち、セレクト項目定義で使用されている入力表の名前だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト表列を生成し、セレクト条件定義を、生成するプログラミング言語の構文に従った形式に加工してセレクト条件文を生成し、セレクト項目列挿入位置、入力表列挿入位置およびセレクト条件挿入位置を持つ、生成するプログラミング言語に依存したカーソル定義スケルトンの該当挿入位置に、前記生成したセレクト項目列、セレクト表列およびセレクト条件を挿入してカーソル定義文を生成し、
前記作業変数定義文生成手段が、前記出力項目処理情報取得手段で取得された出力表項目定義のうち、処理種別が挿入である出力表に対応するものから作業変数定義文を生成し、前記生成では、処理種別が挿入である出力表について、その出力表のレコード型を定義する型定義文を生成し、その定義された型で作業領域変数を定義する変数定義文を生成し、型定義文挿入位置および変数定義文挿入位置を持つ作業変数定義スケルトンの該当挿入位置に、前記生成した型定義文および変数定義文を挿入して作業変数定義文を生成し、
前記出力処理文生成手段が、前記出力項目処理情報取得手段で取得された出力表項目定義と出力表処理定義から、処理種別が挿入の場合は処理条件文と項目計算文と挿入文とを含む出力処理文を生成し、処理種別が更新の場合には処理条件文と更新文とを含む出力処理文を生成し、処理種別が削除の場合には処理条件文と削除文とを含む出力処理文を生成し、前記生成では、出力表処理定義の処理条件から処理条件文を生成し、出力表処理定義の処理種別が挿入、更新、削除の何れであるかを判別し、処理種別が挿入の場合、出力表処理定義の各項目の処理式から項目計算文を生成し、出力表項目定義から出力表名、項目名リストおよび変数名リストを含む挿入文を生成し、処理条件文挿入位置、項目計算文挿入位置および出力文挿入位置を持つ出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、項目計算文挿入位置に前記生成した項目計算文を、出力文挿入位置に前記生成した挿入文をそれぞれ挿入して出力処理文を生成し、処理種別が更新の場合、出力表処理定義の各項目の処理式と出力表項目定義とから出力表名、更新文リストおよび更新条件を含む更新文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した更新文をそれぞれ挿入して出力処理文を生成し、処理種別が削除の場合、出力表項目定義から出力表名および削除条件を含む削除文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した削除文をそれぞれ挿入して出力処理文を生成し、
前記プログラムスケルトン選択手段が、前記プログラムスケルトンを、複数種類格納するための記憶装置に格納されたプログラムスケルトンライブラリから利用者の指定した１つのプログラムスケルトンを選択し、
前記プログラム自動合成手段が、前記データ処理プログラムのうち、前記プログラムスケルトン選択手段で選択されたプログラムスケルトンの該当挿入位置に、前記プログラムスケルトンカスタマイズ情報取得手段で取得したプログラム名とプログラムカスタマイズ情報と、前記カーソル定義文生成手段で生成したカーソル定義文と、前記作業変数定義文生成手段で生成した作業変数定義文と、前記出力処理文生成手段で生成した出力処理文とを挿入することによってプログラムを完成させ、出力する
データ処理プログラム自動生成方法。
【請求項６】
データベースの表のデータを参照し、表中に新たなデータを挿入したり、表中のデータを更新したり、表中のデータを削除したりするプログラムにおいて、前段処理部分と繰り返し処理部分と後段処理部分を備えたプログラム全体を、プログラムスケルトンと仕様とに基づいて、自動的に生成するコンピュータを、
作成するデータ処理プログラム毎に異なる仕様である個別仕様を入力する機能と、作成するデータ処理プログラムが属するグループ毎に異なる仕様である共通処理仕様を入力する機能とを有する仕様入力手段として機能させ、
前記プログラムスケルトンは、仕様の如何に関わらず固定の部分のプログラムとして、前段処理部分と、前記前段処理部分に続く繰り返し処理部分と、前記繰り返し処理部分に続く後段処理部分を含み、仕様によって変化する部分のプログラム断片の挿入位置として、前段処理部分内にプログラム名挿入位置と、カーソル定義文挿入位置と、作業変数定義文列挿入位置と、初期処理挿入位置を含み、繰り返し処理部分内に出力処理文列挿入位置を含み、後段処理部分に終了処理位置を含んで構成され、
前記個別仕様は、生成したプログラムに付与するプログラム名と、入力表の名前とその入力表の各項目の名前および型の情報を含む入力表項目定義と、セレクト文内に定義する入力表項目の名前を含むセレクト項目定義と、出力表の名前とその出力表の各項目の名前および型の情報を含む出力表項目定義と、各出力表の処理を行う条件を示す処理条件と、挿入、更新、削除の別を示す処理種別と、処理種別が更新と削除の場合に更新、削除するための条件を示す更新、削除条件と、処理種別が挿入と更新の場合に各項目の値を計算する処理式とを含む出力表処理定義と、入力表からデータを取得する際の条件を含むセレクト条件定義を含んで構成され、
前記共通処理仕様は、プログラムスケルトンをカスタマイズするためのその他の情報を含むプログラムカスタマイズ情報を含んで構成され、
且つ、前記コンピュータを、
前記仕様入力手段で入力された個別仕様から前記プログラム名を取り出し、前記仕様入力手段で入力された共通処理仕様から前記プログラムカスタマイズ情報を取り出すプログラムスケルトンカスタマイズ情報取得手段と、
前記仕様入力手段で入力された個別仕様から入力表項目定義とセレクト項目定義とセレクト条件定義を取り出すカーソル定義情報取得手段と、
前記仕様入力手段で入力された個別仕様から出力表項目定義と出力表処理定義を取り出す出力項目処理情報取得手段と、
前記カーソル定義情報取得手段で取得された情報からカーソル定義文を生成するカーソル定義文生成手段であって、入力表項目定義のうちセレクト項目定義内に指定された項目名だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト項目列を生成し、入力表項目定義内に指定された入力表のうち、セレクト項目定義で使用されている入力表の名前だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト表列を生成し、セレクト条件定義を、生成するプログラミング言語の構文に従った形式に加工してセレクト条件文を生成し、セレクト項目列挿入位置、入力表列挿入位置およびセレクト条件挿入位置を持つ、生成するプログラミング言語に依存したカーソル定義スケルトンの該当挿入位置に、前記生成したセレクト項目列、セレクト表列およびセレクト条件を挿入してカーソル定義文を生成するカーソル定義文生成手段と、
前記出力項目処理情報取得手段で取得された出力表項目定義のうち、処理種別が挿入である出力表に対応するものから作業変数定義文を生成する作業変数定義文生成手段であって、処理種別が挿入である出力表について、その出力表のレコード型を定義する型定義文を生成し、その定義された型で作業領域変数を定義する変数定義文を生成し、型定義文挿入位置および変数定義文挿入位置を持つ作業変数定義スケルトンの該当挿入位置に、前記生成した型定義文および変数定義文を挿入して作業変数定義文を生成する作業変数定義文生成手段と、
前記出力項目処理情報取得手段で取得された出力表項目定義と出力表処理定義から、処理種別が挿入の場合は処理条件文と項目計算文と挿入文とを含む出力処理文を生成し、処理種別が更新の場合には処理条件文と更新文とを含む出力処理文を生成し、処理種別が削除の場合には処理条件文と削除文とを含む出力処理文を生成する出力処理文生成手段であって、出力表処理定義の処理条件から処理条件文を生成し、出力表処理定義の処理種別が挿入、更新、削除の何れであるかを判別し、処理種別が挿入の場合、出力表処理定義の各項目の処理式から項目計算文を生成し、出力表項目定義から出力表名、項目名リストおよび変数名リストを含む挿入文を生成し、処理条件文挿入位置、項目計算文挿入位置および出力文挿入位置を持つ出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、項目計算文挿入位置に前記生成した項目計算文を、出力文挿入位置に前記生成した挿入文をそれぞれ挿入して出力処理文を生成し、処理種別が更新の場合、出力表処理定義の各項目の処理式と出力表項目定義とから出力表名、更新文リストおよび更新条件を含む更新文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した更新文をそれぞれ挿入して出力処理文を生成し、処理種別が削除の場合、出力表項目定義から出力表名および削除条件を含む削除文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した削除文をそれぞれ挿入して出力処理文を生成する出力処理文生成手段と、
前記プログラムスケルトンを、複数種類格納するための記憶装置に格納されたプログラムスケルトンライブラリから利用者の指定した１つのプログラムスケルトンを選択するプログラムスケルトン選択手段と、
前記データ処理プログラムのうち、前記プログラムスケルトン選択手段で選択されたプログラムスケルトンの該当挿入位置に、前記プログラムスケルトンカスタマイズ情報取得手段で取得したプログラム名とプログラムカスタマイズ情報と、前記カーソル定義文生成手段で生成したカーソル定義文と、前記作業変数定義文生成手段で生成した作業変数定義文と、前記出力処理文生成手段で生成した出力処理文とを挿入することによってプログラムを完成させ、出力するプログラム自動合成手段と
して機能させるためのプログラム。
【請求項７】
データベースの表のデータを参照し、表中に新たなデータを挿入したり、表中のデータを更新したり、表中のデータを削除したりするプログラムにおいて、前段処理部分と繰り返し処理部分と後段処理部分を備えたプログラム全体を、プログラムスケルトンと仕様とに基づいて、自動的に生成するコンピュータを、
作成するデータ処理プログラム毎に異なる仕様である個別仕様を入力する機能と、作成するデータ処理プログラムが属するグループ毎に異なる仕様である共通処理仕様を入力する機能とを有する仕様入力手段として機能させ、
前記プログラムスケルトンは、仕様の如何に関わらず固定の部分のプログラムとして、前段処理部分と、前記前段処理部分に続く繰り返し処理部分と、前記繰り返し処理部分に続く後段処理部分を含み、仕様によって変化する部分のプログラム断片の挿入位置として、前段処理部分内にプログラム名挿入位置と、カーソル定義文挿入位置と、作業変数定義文列挿入位置と、初期処理挿入位置を含み、繰り返し処理部分内に出力処理文列挿入位置を含み、後段処理部分に終了処理位置を含んで構成され、
前記個別仕様は、生成したプログラムに付与するプログラム名と、入力表の名前とその入力表の各項目の名前および型の情報を含む入力表項目定義と、出力表の名前とその出力表の各項目の名前および型の情報を含む出力表項目定義と、各出力表の処理を行う条件を示す処理条件と、挿入、更新、削除の別を示す処理種別と、処理種別が更新と削除の場合に更新、削除するための条件を示す更新、削除条件と、処理種別が挿入と更新の場合に各項目の値を計算する処理式とを含む出力表処理定義と、入力表からデータを取得する際の条件を含むセレクト条件定義を含んで構成され、
前記共通処理仕様は、プログラムスケルトンをカスタマイズするためのその他の情報を含むプログラムカスタマイズ情報を含んで構成され、
且つ、前記コンピュータを、
前記仕様入力手段で入力された個別仕様から前記プログラム名を取り出し、前記仕様入力手段で入力された共通処理仕様から前記プログラムカスタマイズ情報を取り出すプログラムスケルトンカスタマイズ情報取得手段と、
前記仕様入力手段で入力された個別仕様から入力表項目定義とセレクト条件定義と出力表処理定義を取り出すカーソル定義情報取得手段と、
前記仕様入力手段で入力された個別仕様から出力表項目定義と出力表処理定義を取り出す出力項目処理情報取得手段と、
前記カーソル定義情報取得手段で取得された入力表項目定義とセレクト条件定義と出力表処理定義とからセレクト項目定義を作成し、該作成したセレクト項目定義と前記カーソル定義情報取得手段で取得されたセレクト条件定義とからカーソル定義文を生成するカーソル定義文生成手段であって、入力表項目定義と出力表処理定義から、セレクト文内に定義する入力表項目の名前を含むセレクト項目定義を生成し、入力表項目定義のうちセレクト項目定義内に指定された項目名だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト項目列を生成し、入力表項目定義内に指定された入力表のうち、セレクト項目定義で使用されている入力表の名前だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト表列を生成し、セレクト条件定義を、生成するプログラミング言語の構文に従った形式に加工してセレクト条件文を生成し、セレクト項目列挿入位置、入力表列挿入位置およびセレクト条件挿入位置を持つ、生成するプログラミング言語に依存したカーソル定義スケルトンの該当挿入位置に、前記生成したセレクト項目列、セレクト表列およびセレクト条件を挿入してカーソル定義文を生成するカーソル定義文生成手段と、
前記出力項目処理情報取得手段で取得された出力表項目定義のうち、処理種別が挿入である出力表に対応するものから作業変数定義文を生成する作業変数定義文生成手段であって、処理種別が挿入である出力表について、その出力表のレコード型を定義する型定義文を生成し、その定義された型で作業領域変数を定義する変数定義文を生成し、型定義文挿入位置および変数定義文挿入位置を持つ作業変数定義スケルトンの該当挿入位置に、前記生成した型定義文および変数定義文を挿入して作業変数定義文を生成する作業変数定義文生成手段と、
前記出力項目処理情報取得手段で取得された出力表項目定義と出力表処理定義から、処理種別が挿入の場合は処理条件文と項目計算文と挿入文とを含む出力処理文を生成し、処理種別が更新の場合には処理条件文と更新文とを含む出力処理文を生成し、処理種別が削除の場合には処理条件文と削除文とを含む出力処理文を生成する出力処理文生成手段であって、出力表処理定義の処理条件から処理条件文を生成し、出力表処理定義の処理種別が挿入、更新、削除の何れであるかを判別し、処理種別が挿入の場合、出力表処理定義の各項目の処理式から項目計算文を生成し、出力表項目定義から出力表名、項目名リストおよび変数名リストを含む挿入文を生成し、処理条件文挿入位置、項目計算文挿入位置および出力文挿入位置を持つ出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、項目計算文挿入位置に前記生成した項目計算文を、出力文挿入位置に前記生成した挿入文をそれぞれ挿入して出力処理文を生成し、処理種別が更新の場合、出力表処理定義の各項目の処理式と出力表項目定義とから出力表名、更新文リストおよび更新条件を含む更新文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した更新文をそれぞれ挿入して出力処理文を生成し、処理種別が削除の場合、出力表項目定義から出力表名および削除条件を含む削除文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した削除文をそれぞれ挿入して出力処理文を生成する出力処理文生成手段と、
前記プログラムスケルトンを、複数種類格納するための記憶装置に格納されたプログラムスケルトンライブラリから利用者の指定した１つのプログラムスケルトンを選択するプログラムスケルトン選択手段と、
前記データ処理プログラムのうち、前記プログラムスケルトン選択手段で選択されたプログラムスケルトンの該当挿入位置に、前記プログラムスケルトンカスタマイズ情報取得手段で取得したプログラム名とプログラムカスタマイズ情報と、前記カーソル定義文生成手段で生成したカーソル定義文と、前記作業変数定義文生成手段で生成した作業変数定義文と、前記出力処理文生成手段で生成した出力処理文とを挿入することによってプログラムを完成させ、出力するプログラム自動合成手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラムの自動生成に関し、特に、情報処理システム上に構築されたデータベースの表のデータを参照してデータ処理を行い、処理結果を再度データベースの表に格納したり、処理結果に基づいてデータベースの表のデータを更新したり、削除したりするデータ処理プログラムを自動的に生成するシステムに関する。
【背景技術】
【０００２】
この種のデータ処理プログラム自動生成システムの一例が特許文献１に記載されている。特許文献１に記載されたデータ処理プログラム自動生成システム（以下、本発明に関連するデータ処理プログラム自動生成システムと記す）は、予めシステムに用意されたプログラムスケルトンと、利用者から入力される仕様とから、データ処理プログラムを作成する。
【０００３】
上記プログラムスケルトンは、仕様の如何に関わらず固定の部分のプログラムとして、前段処理部分と、この前段処理部分に続く繰り返し処理部分と、この繰り返し処理部分に続く後段処理部分を有している。また、プログラムスケルトンは、仕様によって変化する部分のプログラム断片の挿入位置として、前段処理部分内にプログラム名挿入位置と、カーソル定義文挿入位置と、作業変数定義文列挿入位置と、初期処理挿入位置を含み、繰り返し処理部分内に出力処理文列挿入位置を含み、後段処理部分に終了処理挿入位置を含んでいる。
【０００４】
上記仕様は、生成したプログラムに付与するプログラム名と、入力表の名前とその入力表の各項目の名前および型の情報を含む入力表項目定義と、セレクト文内に定義する入力表項目の名前を含むセレクト項目定義と、出力表の名前とその出力表の各項目の名前および型の情報を含む出力表項目定義と、各出力表の処理を行う条件を示す処理条件と、挿入、更新、削除の別を示す処理種別と、処理種別が更新と削除の場合に更新、削除するための条件を示す更新、削除条件と、処理種別が挿入と更新の場合に各項目の値を計算する処理式とを含む出力表処理定義と、入力表からデータを取得する際の条件を含むセレクト条件定義と、プログラムスケルトンをカスタマイズするためのその他の情報を含むプログラムカスタマイズ情報とを含んでいる。
【０００５】
そして、上記データ処理プログラム自動生成システムは、仕様から取得した情報および該情報から生成した情報をプログラムスケルトンの該当する箇所に挿入することにより、プログラムを完成させる。具体的には、入力された仕様からプログラム名とプログラムカスタマイズ情報とを取得し、取得したプログラム名をプログラムスケルトンのプログラム名挿入位置に挿入し、取得したプログラムカスタマイズ情報を初期処理と終了処理とに分けて、プログラムスケルトンの初期処理挿入位置と終了処理挿入位置にそれぞれ挿入する。また、入力された仕様から入力表項目定義とセレクト項目定義とセレクト条件定義とを取得し、これらからカーソル定義文を生成し、プログラムスケルトンのカーソル定義文挿入位置に挿入する。さらに、上記データ処理プログラム自動生成システムは、入力された仕様から出力表項目定義と出力表処理定義とを取得し、これらから作業変数定義文と出力処理文とを生成し、プログラムスケルトンの作業変数定義文列挿入位置と出力処理文列挿入位置にそれぞれ挿入する。
【０００６】
他方、プログラム自動合成装置において、抽象記述言語ファイル（サブシナリオファイル）を入力し、類似するサブシナリオファイルを検出し、一致する部分を検出し、共通化された形のサブシナリオファイルを生成し、該共通部分にＩＤを付与する技術がある（例えば特許文献２参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３８７１８３２号公報
【特許文献２】特開２００２−９９４１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した特許文献１に記載のデータ処理プログラム自動生成システムでは、作成するデータ処理プログラムに必要な情報をすべて含む仕様を一つの入力仕様として受け付ける構成となっているため、作成するデータ処理プログラム毎に、それに必要な情報をすべて含んだ仕様を事前に用意しておく必要がある。このため、プログラムスケルトンをカスタマイズするためのその他の情報であるプログラムカスタマイズ情報が、一部のデータ処理プログラム間で同じ仕様で良い場合であっても、作成するデータ処理プログラム毎に一切の情報を含む仕様を別々に作成し保存しておく必要がある。従って、仕様の作成および保存に要するコストが嵩むという課題があった。
【０００９】
特許文献２には共通化された形のサブシナリオファイルを生成し、該共通部分にＩＤを付与することについて記載されているだけであり、特許文献２に記載の技術を特許文献１に適用しても、上記課題を解決することは困難である。
【００１０】
本発明の目的は、上述したような課題、すなわち仕様の作成および保存に要するコストが嵩むという課題を解決するデータ処理プログラム自動生成システムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の一形態にかかるデータ処理プログラム自動生成システムは、
データベースの表のデータを参照し、表中に新たなデータを挿入したり、表中のデータを更新したり、表中のデータを削除したりするプログラムにおいて、前段処理部分と繰り返し処理部分と後段処理部分を備えたプログラム全体を、プログラムスケルトンと仕様とに基づいて、自動的に生成するデータ処理プログラム自動生成システムであって、
作成するデータ処理プログラム毎に異なる仕様である個別仕様を入力する機能と、作成するデータ処理プログラムが属するグループ毎に異なる仕様である共通仕様を入力する機能とを有する仕様入力手段を備える、という構成を採る。
【発明の効果】
【００１２】
本発明は上述したような構成を有するため、仕様の作成および保存に要するコストを軽減することが可能である。
【図面の簡単な説明】
【００１３】
【図１】本発明の第３の実施の形態の構成を示すブロック図である。
【図２】本発明の第３の実施の形態における仕様の構成と、仕様中の出力表処理定義における処理種別毎の必要情報を示す図である。
【図３】本発明の第３の実施の形態におけるカーソル定義文生成手段の処理を示す流れ図である。
【図４】本発明の第３の実施の形態における作業変数定義文生成手段の処理を示す流れ図である。
【図５】本発明の第３の実施の形態における出力処理文生成手段の処理を示す流れ図である。
【図６】本発明の第３の実施の形態におけるプログラム自動合成手段の処理を示す流れ図である。
【図７】本発明の第３の実施の形態におけるカーソル定義文生成手段で使用するカーソル定義文スケルトンの構成を示す図である。
【図８】本発明の第３の実施の形態における作業変数定義文生成手段で使用する作業変数定義文スケルトンの構成を示す図である。
【図９】本発明の第３の実施の形態における出力処理文生成手段で使用する出力処理文スケルトンの構成と、そのスケルトンのうちの挿入文、更新文、削除文の構成を示す図である。
【図１０】本発明の第３の実施の形態におけるプログラムスケルトンの構成を示す図である。
【図１１】本発明の第４の実施の形態における仕様の構成を示す図である。
【図１２】本発明の第４の実施の形態におけるカーソル定義文生成手段の処理を示す流れ図である。
【図１３】本発明の第４の実施の形態におけるセレクト項目定義情報を作成する処理を示す流れ図である。
【図１４】本発明の第５の実施の形態の構成を示すブロック図である。
【図１５】本発明の第５の実施の形態における仕様の構成を示す図である。
【図１６】本発明の第６の実施の形態における仕様入力手段の処理を示す処理流れ図である。
【図１７】本発明の第３の実施の形態の処理例を示す処理流れ図である。
【図１８】本発明の第８の実施の形態の構成を示すブロック図である。
【図１９】本発明の第１の実施の形態の構成を示すブロック図である。
【図２０】本発明で使用する共通処理仕様の一例を示す図である。
【図２１】本発明で使用する共通処理仕様の別の例を示す図である。
【図２２】本発明の第２の実施の形態の構成を示すブロック図である。
【図２３】本発明で使用する共通処理仕様の更に別の例を示す図である。
【発明を実施するための形態】
【００１４】
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第１の実施形態]
図１９を参照すると、本発明の第１の実施形態にかかるデータ処理プログラム自動生成システム１０は、個別仕様１Ａと、共通処理仕様１Ｂとを入力し、この入力した個別仕様１Ａおよび共通処理仕様１Ｂと、予め用意されたプログラムスケルトンとに基づいてデータ処理プログラムを生成し、生成プログラム２として出力する機能を有している。生成されるデータ処理プログラムは、データベースの表のデータを参照し、表中に新たなデータを挿入したり、表中のデータを更新したり、表中のデータを削除したりする機能を持つデータ処理プログラムである。
【００１５】
データ処理プログラム自動生成システム１０は、仕様入力手段１０１を含んで構成される。仕様入力手段１０１は、個別仕様入力部１０１１と共通処理仕様入力部１０１２とを有する。
【００１６】
個別仕様入力部１０１１は、個別仕様１Ａを入力する機能を有する。個別仕様１Ａは、作成するデータ処理プログラム毎に異なる。個別仕様１Ａには、例えば、プログラム名、入力表項目定義、セレクト項目定義、出力表項目定義、出力表処理定義、セレクト条件定義が含まれている。個別仕様入力部１０１１によって入力された個別仕様１Ａは、データ処理プログラム自動生成システム１０における後段の処理機能に伝達され、プログラムの生成に利用される。
【００１７】
共通処理仕様入力部１０１２は、共通処理仕様１Ｂを入力する機能を有する。共通処理仕様１Ｂは、作成するデータ処理プログラムが属するグループ毎に異なる。グループとは、例えばバッチ系システムを幾つかのグループに分けた場合の個々のグループのことである。共通処理仕様１Ｂには、プログラムスケルトンをカスタマイズするためのその他の情報であるプログラムカスタマイズ情報が含まれている。共通処理仕様入力部１０１２によって入力された共通処理仕様１Ｂは、データ処理プログラム自動生成システム１０における後段の処理機能に伝達され、プログラムの生成に利用される。
【００１８】
図２０は共通処理仕様１Ｂの一例である。この例の共通処理仕様１Ｂは、１０００行から１０１１行まで初期処理を定義し、１０１３行から１０２４行まで終了処理を定義している。また初期処理には、開始ログ出力処理、共通変数定義処理、共通エラーハンドル処理が含まれている。また終了処理には、終了ログ出力処理、共通変数定義処理、共通エラーハンドル処理が含まれている。これらの初期処理および終了処理が、共通処理仕様入力部１０１２により取得され、後段の処理機能に伝達される。
【００１９】
図２１は共通処理仕様１Ｂの他の例である。この例の共通処理仕様１Ｂは、１０００行から１０１０行まで初期処理を定義し、１０１２行から１０２２行まで終了処理を定義している。図２０に示した共通処理仕様とは多少内容が異なっている。これらの初期処理および終了処理が、共通処理仕様入力部１０１２により取得され、後段の処理機能に伝達される。
【００２０】
また図１０はプログラムスケルトンの一例である。この例のプログラムスケルトン１００１は、ある特定のプログラミング言語で記述されたプログラムを仕様により変化する部分と、仕様により変化しない部分とに分類し、仕様により変化しない部分は、プログラム文として持ち、仕様により変化する部分は、仕様から作成されたプログラムの断片の挿入位置を持つように構成されている。図１０の例では、このプログラムの断片の挿入位置として、プログラム名挿入位置1002と、カーソル定義文挿入位置1003と、作業変数定義文列挿入位置1004と、" 初期処理" 挿入位置1005と、出力処理文列挿入位置1006と、" 終了処理" 挿入位置1007を持っている。
【００２１】
次に本実施形態にかかるデータ処理プログラム自動生成システム１０の動作を説明する。
【００２２】
利用者が、データ処理プログラム自動生成システム１０を用いて、データ処理プログラムを自動生成する場合、生成したいデータ処理プログラム固有の仕様１Ａを格納したファイルと、生成したいデータ処理プログラムが属するグループについて共通に作成した共通処理仕様１Ｂを格納したファイルとを、データ処理プログラム自動生成システム１０から読み込み可能な記憶装置上に設定する。そして、データ処理プログラム自動生成システム１０を起動する。
【００２３】
まず、データ処理プログラム自動生成システム１０は、仕様入力手段１０１の個別仕様入力部１０１１により個別仕様１Ａを入力し、後段の処理機能に伝達する。また、共通処理仕様入力部１０１２により共通処理仕様１Ｂを入力し、後段の処理機能に伝達する。
【００２４】
次にデータ処理プログラム自動生成システム１０は、後段の処理機能により個別仕様１Ａに基づいて、プログラムスケルトンに挿入する、プログラム名、カーソル定義文、作業変数定義文、出力処理文を生成する。また、データ処理プログラム自動生成システム１０は、後段の処理機能により共通処理仕様１Ｂからプログラムスケルトンに挿入する、初期処理、終了処理を取得する。
【００２５】
次に、データ処理プログラム自動生成システム１０は、プログラムスケルトンの該当する箇所に、それらを挿入して生成プログラム２を生成する。具体的には、図１０のプルグラムスケルトン１００１のプログラム名挿入位置1002にプログラム名を、カーソル定義文挿入位置1003にカーソル定義文を、作業変数定義文列挿入位置1004に作業変数定義文を、" 初期処理" 挿入位置1005に初期処理を、出力処理文列挿入位置1006に出力処理文を、そして、" 終了処理" 挿入位置1007に終了処理を、それぞれ挿入する。
【００２６】
最後に、データ処理プログラム自動生成システム１０は、生成プログラム２を出力する。
【００２７】
このように本実施形態によれば、仕様の作成および保存に要するコストを軽減することができる。その理由は、仕様のうち、データ処理プログラムが属するグループ毎に異なる仕様である共通仕様１Ｂは、個々のデータ処理プログラム毎でなくグループ単位で作成し、保存しておけば済むためである。
【００２８】
[第２の実施形態]
図２２を参照すると、本発明の第２の実施形態にかかるデータ処理プログラム自動生成システム１０は、図１９に示した第１の実施形態と比較して、仕様入力手段１０１が展開手段１０１３を更に有する点で相違する。また、共通処理仕様１Ｂは、キーワードを付与した共通処理記述と、この共通処理記述を挿入する箇所に上記キーワードを挿入してある複数の処理記述とが含まれている。
【００２９】
展開部１０１３は、共通処理仕様入力部１０１２から共通処理仕様１Ｂを受け取り、その共通処理仕様１Ｂに含まれる複数の処理記述中におけるキーワードの挿入位置に、そのキーワードが付与された共通処理記述を展開する機能を有する。展開部１０１３による展開処理が施された共通処理仕様１Ｂは、データ処理プログラム自動生成システム１０における後段の処理機能に伝達され、プログラムの生成に利用される。
【００３０】
図２３は共通処理仕様１Ｂの一例である。この例の共通処理仕様１Ｂは、１０００行から１００５行まで初期処理を定義し、１００７行から１０１３行まで終了処理を定義し、１０１５行から１０２０行まで共通エラー処理を定義している。定義された共通エラー処理には、「共通エラー処理」というキーワードが付与されている。そして、初期処理と終了処理とには、共通エラー処理を挿入する箇所に、上記キーワードが予め定められた特殊な記号（＄など）により括られて、挿入されている。
【００３１】
すなわち、図２３の共通処理仕様１Ｂは、初期処理中では開始ログ出力処理だけを個別に記述し、終了処理では終了ログ出力処理だけを個別に記述し、初期処理と終了処理とで共通な共通変数定義処理と共通エラーハンドル処理とは個別に記述せずに、共通処理としてまとめている。これによって、図２０と全く同一の処理をコンパクトにまとめている。
【００３２】
次に本実施形態にかかるデータ処理プログラム自動生成システム１０の動作を説明する。
【００３３】
利用者が、データ処理プログラム自動生成システム１０を用いて、データ処理プログラムを自動生成する場合、生成したいデータ処理プログラム固有の仕様１Ａを格納したファイルと、生成したいデータ処理プログラムが属するグループについて共通に作成した共通処理仕様１Ｂを格納したファイルとを、データ処理プログラム自動生成システム１０から読み込み可能な記憶装置上に設定する。そして、データ処理プログラム自動生成システム１０を起動する。
【００３４】
まず、データ処理プログラム自動生成システム１０は、仕様入力手段１０１の個別仕様入力部１０１１により個別仕様１Ａを入力し、後段の処理機能に伝達する。また、共通処理仕様入力部１０１２により共通処理仕様１Ｂを入力し、展開部１０１３に伝達する。
【００３５】
次に展開部１０１３は、共通処理仕様１Ｂに含まれる複数の処理記述中におけるキーワードの挿入位置に、そのキーワードが付与された共通処理記述を展開する。そして、展開処理後の共通処理仕様１Ｂを後段の処理機能に伝達する。
【００３６】
これ以降の動作は第１の実施形態と同様である。
【００３７】
このように本実施形態によれば、仕様の作成および保存に要するコストを軽減することができる。その理由は、仕様のうち、データ処理プログラムが属するグループ毎に異なる仕様である共通仕様１Ｂは、個々のデータ処理プログラム毎でなくグループ単位で作成し、保存しておけば済むためである。
【００３８】
また本実施形態によれば、第１の実施形態に比べてより一層、仕様の作成および保存に要するコストを軽減することができる。その理由は、共通仕様１Ｂに同じ共通処理を含む複数の処理が存在する場合、それら複数の処理のそれぞれに共通処理を個別に記述する必要がないためである。
【００３９】
また、共通仕様１Ｂに同じ共通処理を含む複数の処理が存在する場合、それら複数の処理のそれぞれに共通処理を個別に記述する構成では、後に共通処理を変更する必要が生じた場合、複数箇所を同時に変更する必要があるために作業量が多くなり、また変更漏れによる不整合が発生し易くなる。これに対して、本実施形態によれば、１箇所だけの修正で済むためにメンテナンスに要するコストが低減し、また変更漏れによる不整合の発生も防止することができる。
【００４０】
[第３の実施形態]
図１は本発明のデータ処理プログラム自動生成システムの第３の実施の形態の構成例を示したブロック図、図１７はその処理の概略を示すフローチャートである。まず、図１及び図１７を参照して第３の実施の形態の概要を説明する。
【００４１】
図１において、業務要件を示す仕様１は、第１および第２の実施形態における個別仕様１Ａおよび共通処理仕様１Ｂを合わせたものに相当する。仕様１は、開発するプログラムが満足すべき仕様として、プログラム名と入力表項目定義とセレクト項目定義と出力表項目定義と出力表処理定義とセレクト条件定義とプログラムカスタマイズ情報とを含んでいる。まず、図１７の1701において、仕様入力手段101はこのような仕様１を入力する。次に、プログラムスケルトンカスタマイズ情報取得手段102は、入力された仕様のうち、プログラムスケルトンをカスタマイズするために必要な情報として、プログラム名とプログラムカスタマイズ情報を取り出し、プログラム自動合成手段109に渡す(1702)。また、カーソル定義情報取得手段103は、入力された仕様のうち、カーソル定義文を生成するのに必要な情報として、入力表項目定義とセレクト項目定義とセレクト条件定義を取り出し、カーソル定義文生成手段105に渡す(1703)。更に、出力項目処理情報取得手段104は、入力された仕様のうち、作業変数定義文と出力処理文を生成するのに必要な情報として、出力表項目定義と出力表処理定義とを出力項目処理情報として取り出し、作業変数定義文生成手段106と出力処理文生成手段107に渡す(1704)。
【００４２】
次にカーソル定義文生成手段105は、カーソル定義情報取得手段103から受けとった情報を加工し、データベースの表の内、仕様で指定された処理において参照される表と項目の定義を行なう、カーソル定義文を生成し、プログラム自動合成手段109に渡す(1705)。また、作業変数定義文生成手段106は、出力項目処理情報取得手段104から受けとった情報を加工し、生成プログラム中の、処理種別が挿入である全ての出力表の各項目の計算結果を保存するための変数定義文を生成し、プログラム自動合成手段109に渡す(1706)。更に、出力処理文生成手段107は、出力項目処理情報取得手段104から受けとった情報を加工し、生成プログラム中の全ての出力表のうち、処理種別が挿入の出力表に対しては処理条件文と項目計算文と挿入文とからなる出力処理文を生成し、処理種別が更新の出力表に対しては処理条件と更新文とからなる出力処理文を生成し、処理種別が削除の出力表に対しては処理条件文と項目計算文と削除文とからなる出力処理文を生成し、プログラム自動合成手段109に渡す(1707)。
【００４３】
また図１において、プログラムスケルトン108は、生成プログラムのうち、仕様としてどのような業務要件が与えられても変化しない部分を、プログラムの骨組みとして用意したものである。このプログラムの骨組みにはプログラム名、カーソル定義文、作業変数定義文、出力処理文の部分と、さらに必要に応じて１つ以上のプログラムの断片の挿入位置が埋め込まれており、これらの挿入位置に、仕様で与えられた業務要件から生成されたプログラムの断片を挿入することにより、完成したプログラムを得ることを目的としたものである。
【００４４】
プログラム自動合成手段109は、プログラムスケルトン108の挿入位置の内、プログラム名に対応する挿入位置にプログラムスケルトンカスタマイズ情報取得手段102で取得されたプログラム名を挿入し、カーソル定義文に対応する挿入位置にカーソル定義文生成手段105で生成されたカーソル定義文を挿入し、作業変数定義文に対応する挿入位置に作業変数定義文生成手段106で生成された作業変数定義文を挿入し、出力処理文に対応する挿入位置に出力処理文生成手段107で生成された出力処理文を挿入し、その他の挿入位置にプログラムスケルトンカスタマイズ情報取得手段102で取得した対応するプログラム文の断片を挿入することによりプログラムを自動合成する(1708)。
【００４５】
次に本発明の第３の実施の形態の詳細を図１から図５を参照して説明する。
【００４６】
図２（ａ）は図１の仕様１の構成例を示した図である。201は仕様１の全体を表しており、図１における仕様１に対応する。図２（ａ）に示したように、仕様201は、仕様から生成したプログラムが持つべき名前であるプログラム名202と、入力表の名前と各項目の名前と型の情報を含む入力表項目定義203と、入力表項目のうち、本仕様で指定する処理で実際に使用するため、セレクト文内に定義する項目の名前を含むセレクト項目定義204と、出力表の名前と各項目の名前と型の情報を含む出力表項目定義205と、各出力表の処理を行う条件を示す処理条件と、挿入、更新、削除の別を示す処理種別と、処理種別が更新と削除の場合に更新／削除するための条件を示す更新／削除条件と、処理種別が挿入と更新の場合に各項目の値を計算する処理式とを含む出力表処理定義206と、入力表からデータを取得する際の条件を含むセレクト条件定義207と、プログラムスケルトンをカスタマイズするために必要なその他の情報を含むプログラムカスタマイズ情報208とから構成される。
【００４７】
出力表処理定義206に必要な、処理種別毎の情報を図２（ｂ）に一覧表で示す。図２（ｂ）を参照すると、処理種別が挿入の場合には、処理式は必須であり、処理条件は任意であり、更新／削除条件は不要である。処理種別が更新の場合には、処理式と更新条件は必須であり、処理条件は任意である。処理種別が削除の場合には、削除条件は必須であり、処理条件は任意であり、処理式は不要である。なお、処理条件が指定されなかった場合には、常に処理条件が成立するものとして、その処理が行われる。図１の仕様入力手段101は、図２のような構成を持つ仕様を入力し、プログラムスケルトンカスタマイズ情報取得手段102と、カーソル定義情報取得手段103と出力項目処理情報取得手段104に渡す。
【００４８】
プログラムスケルトンカスタマイズ情報取得手段102は、仕様入力手段101から渡された仕様情報から、図２のプログラム名202とプログラムカスタマイズ情報208に対応する部分を取り出し、プログラム自動合成手段109に渡す。カーソル定義情報取得手段103は、仕様入力手段101から渡された仕様情報から、図２の入力表項目定義203とセレクト項目定義204とセレクト条件定義207に対応する部分を取り出し、カーソル定義文生成手段105に渡す。出力項目処理情報取得手段104は、仕様入力手段101から渡された仕様情報から、図２の出力表項目定義205と出力表処理定義206に対応する部分を取り出し、作業変数定義文生成手段106と出力処理文生成手段107に渡す。
【００４９】
次にカーソル定義文生成手段105の動作について、図３を用いて説明する。図３は、カーソル定義文生成手段105の動作を表す流れ図である。図１のカーソル定義文生成手段105は、図３の301でカーソル定義情報取得手段103から入力表項目定義情報とセレクト項目定義情報とセレクト条件定義情報をカーソル定義情報として受けとる。302では、入力表項目定義情報のうち、セレクト項目定義情報内に指定された項目名だけを抜きだし、生成するプログラミング言語の構文に従った形式でセレクト項目列を作成する。303 では、入力表項目定義情報内に指定された入力表のうち、セレクト項目定義情報で使用されている入力表の名前だけを抜きだし、生成するプログラミング言語の構文に従った形式でセレクト表列を作成する。304では、セレクト条件定義情報を、生成するプログラム言語の構文に従った形式に加工し、セレクト条件文を作成する。305では、302、303、304でそれぞれ作成した、セレクト項目列、セレクト表列、セレクト条件をカーソル定義スケルトンの対応する挿入位置に挿入し、カーソル定義文を作成する。306 でこのカーソル定義文を出力し、図１のプログラム自動合成手段109に渡す。
【００５０】
図７にカーソル定義スケルトンの構成例を示す。図７を参照すると、カーソル定義文スケルトン701は、特定のプログラミング言語に依存したスケルトンで、セレクト項目列挿入位置702、入力表列挿入位置703、セレクト条件挿入位置704を持って構成されている。これらの空白部分に、図１のカーソル定義文生成手段で作成した、それぞれ、セレクト項目列、入力表列、セレクト条件が挿入され、カーソル定義文となる。
【００５１】
次に作業変数定義文生成手段106の動作について、図４を用いて説明する。図４は、作業変数定義文生成手段106の動作を表す流れ図である。図１の作業変数定義文生成手段106は、図４の401で出力項目処理情報取得手段104から出力表項目定義情報を受けとる。出力表は一般に１つ以上指定可能だが、処理種別が更新や削除である出力表については、作業変数定義が不要なため、処理種別が挿入である出力表について、402が繰り返される。402の中では、ステップ403から405が行なわれる。403において、出力表のレコード型を定義する型定義文を作成する。404において、作業領域変数を403で定義された型で定義する文を作成する。405では、403で作成した型定義文と404で作成した変数定義文を作業変数定義スケルトンの対応する挿入位置に挿入する。406ステップでは、402の繰り返しによって完成した作業変数定義文列を出力し、図１のプログラム自動生成手段109に渡す。
【００５２】
図８に作業変数定義スケルトンの構成例を示す。図８を参照すると、作業変数定義スケルトン801は、型定義文挿入位置802と変数定義文挿入位置803を持って構成されている。図４の405では、これらの挿入位置にそれぞれ、型定義文、変数定義文を挿入し、作業変数定義文を完成させる。作業変数定義文が複数ある場合には、完成した複数の作業変数定義文をまとめて作業変数定義文列とする。
【００５３】
次に出力処理文生成手段107の動作について、図５を用いて説明する。図５は、出力処理文生成手段107の動作を表す流れ図である。図１の出力処理文生成手段107は、図５の501で出力項目処理情報取得手段104から出力表項目定義情報と出力表処理定義情報を受けとる。出力表は一般に１つ以上指定可能なので、全ての出力表について、502が繰り返される。503において、501で受け取った出力表処理定義情報のうち、処理条件情報から処理条件文が作成される。504では、501で受け取った出力表処理定義情報のうち、処理種別情報が検査され、その値によって以後の処理が分岐する。処理種別情報が挿入の場合には、ステップ505から507が、処理種別情報が更新の場合には、ステップ508から509が、処理種別情報が削除の場合には、ステップ510から511が、実行される。
【００５４】
505では、出力表処理定義情報のうち、各項目の処理式を加工し、項目計算文を作成する。506では、出力表項目定義情報を加工し、挿入文を作成する。507では、503で作成した処理条件文と、505で作成した項目計算文と、506で作成した挿入文を出力処理スケルトンの対応する挿入位置に挿入し、出力処理文を完成する。
【００５５】
508では、出力表処理定義情報のうちの各項目の処理式と、出力表項目定義情報とを加工し、更新文を作成する。509では、503で作成した処理条件文と、508で作成した更新文と出力処理文スケルトンの対応する挿入位置に挿入し、出力処理文を完成する。
【００５６】
510では、出力表項目定義情報を加工し、削除文を作成する。511では、503で作成した処理条件文と、510で作成した削除文を出力処理文スケルトンの対応する挿入位置に挿入し、出力処理文を完成する。なお、出力種別が更新と削除の場合には、出力処理文スケルトンの項目計算文挿入位置には何も挿入しない。
【００５７】
512では、502の繰り返しによって完成した全ての出力処理文列を出力し、図１のプログラム自動生成手段109に渡す。
【００５８】
図９（ａ）に出力処理文スケルトンの構成例を示す。図９（ａ）を参照すると、出力処理文スケルトン901は、処理条件文挿入位置902と項目計算文列挿入位置903と出力文挿入位置904を持って構成されている。図５の507、509、511では、これらの挿入位置にそれぞれ、処理条件文、項目計算文、挿入文／更新文／削除文を挿入し、出力処理文を完成させる。図９（ａ）を参照すると、処理条件文挿入位置902 に挿入された処理条件がｉｆ文の条件節になっており、この条件が満足する場合だけ、項目計算文挿入位置903に挿入された出力項目の計算処理と出力文挿入位置904に挿入された出力表への出力処理が実行されることがわかる。
【００５９】
図９（ｂ）から図９（ｄ）に図９（ａ）の出力文挿入位置904に挿入される、挿入文、更新文、削除文のＰＬ／ＳＱＬ言語におけるテンプレートの例をそれぞれ示す。図９（ｂ）を参照すると、処理種別が挿入の場合、出力表項目定義情報から、出力表の名前を取り出して<<出力表名>>に代入し、項目の名前を取り出して、”，”でつないで項目名のリストを作成し、<<項目名リスト>>に代入し、項目の名前を取り出し、これをもとに、ある決まった方法で変数名を作成し、”，”でつないで変数名のリストを作成、<<変数名リスト>>に代入することで、挿入文を作成する。
【００６０】
図９（ｃ）を参照すると、処理種別が更新の場合、出力表項目定義情報から、出力表の名前を取り出して<<出力表名>>に代入し、出力表処理定義情報から処理式を取り出して、”，”でつないで更新文リストを作成し、<<更新文リスト>>に代入し、出力表処理定義情報から更新条件を取り出して<<更新条件>>に代入することで、更新文を作成する。
【００６１】
図９（ｄ）を参照すると、処理種別が削除の場合、出力表項目定義情報から、出力表の名前を取り出して<<出力表名>>に代入し、出力表処理定義情報から削除条件を取り出して<<削除条件>>に代入することで、削除文を作成する。
【００６２】
次に図１のプログラム自動合成手段109の動作について、図１０と図６を用いて説明する。図１０は既に説明したようにプログラムスケルトンの構成例を示した図である。
【００６３】
図６は、プログラム自動合成手段109の動作を表す流れ図である。プログラム自動合成手段109は、プログラムスケルトン108のうち、プログラムの断片の挿入位置に、仕様から作成したプログラムの断片を挿入することによりプログラムを完成させるものである。図６を参照すると、まず601ステップで、図１のプログラムスケルトン108を取り出す。602では、プログラムカスタマイズ情報とカーソル定義文と作業変数定義文列と出力処理文列を、それぞれ、図１のプログラムスケルトンカスタマイズ情報取得手段102、カーソル定義文生成手段105、作業変数定義文生成手段106、出力処理文生成手段107から受けとる。ステップ603では、602で受けとったカーソル定義文をプログラムスケルトンのカーソル定義文挿入位置に挿入する。604では、602で受けとった作業変数定義文列をプログラムスケルトンの作業変数定義文列挿入位置に挿入する。605では、602で受けとった出力処理文列をプログラムスケルトンの出力処理文列挿入位置に挿入する。606では、602で受けとったプログラム名をプログラムスケルトンのプログラム名挿入位置に挿入し、プログラムスケルトンカスタマイズ情報を、名前で対応が示された挿入位置に挿入する。図１０のプログラムスケルトンでは、" 初期処理" と" 終了処理" がこれに当たる。ただし、仕様の記述とプログラムスケルトンが対応する限り、いくつの挿入位置を設けることも可能である。607では、全てのプログラム断片が挿入され、完成したプログラムを出力する。
【００６４】
以上により、仕様からプログラムを自動的に作成し、出力できる。
【００６５】
なお、本説明では、カーソル定義スケルトン、作業変数定義スケルトン、出力処理文スケルトン、プログラムスケルトンは、ＰＬ／ＳＱＬ言語に従って記述し、説明しているが、他のプログラミング言語のプログラムを自動生成する場合には、生成するプログラミング言語に従ったスケルトンを用意することで、他のプログラミング言語のプログラムを生成することが可能である。
【００６６】
また、図３、図４、図５、図６の処理流れ図において、横に並列して記述されている部分は、その間の処理順序がどのような順序であっても良いことを表している。例えば、図３において、302と303と304は、この順序で処理しても良いし、304、303、302の順序で処理しても良いし、あるいは、これらを合わせて一緒に処理しても良いことを表している。
【００６７】
このように、本実施の形態では、プログラム開発者は、仕様として、プログラム名と入力表項目定義とセレクト項目定義と出力表項目定義と出力表項目計算処理定義とセレクト条件定義を個別仕様、プログラムカスタマイズ情報を共通処理仕様として指定するだけで、データ処理プログラムを自動生成させることができる。したがって、従来、プログラミング工程において混入していたミスを無くすことができ、またプログラム開発の生産性も大幅に向上させることができる。
【００６８】
[第４の実施の形態]
次に本発明の第４の実施の形態について、第３の実施の形態との相違点を中心に説明する。
【００６９】
第３の実施の形態において、図２の仕様201は、プログラム名202と入力表項目定義203とセレクト項目定義204と出力表項目定義205と出力表項目計算処理206とセレクト条件207とプログラムカスタマイズ情報208から構成されていた。第４の実施の形態では、このうち、セレクト項目定義204を持たずに構成される。すなわち、図１１に示したように、プログラム名1102と入力表項目定義1103と出力表項目定義1104と出力表処理定義1105とセレクト条件定義1106と（以上、個別仕様）、プログラムカスタマイズ情報1107（共通処理仕様）とから構成されている。
【００７０】
第４の実施の形態では、図１の仕様入力手段101は、図１１のような構成を持つ仕様を入力し、プログラムスケルトンカスタマイズ情報取得手段102とカーソル定義情報取得手段103と出力項目処理情報取得手段104に渡す。第４の実施の形態における図１のカーソル定義情報取得手段103は、仕様入力手段101から渡された仕様情報から、入力表項目定義1103と出力表処理定義1105とセレクト条件定義1106に対応する部分を取り出し、カーソル定義文生成手段105に渡す。
【００７１】
次に第４の実施の形態におけるカーソル定義文生成手段105の詳細な処理を図１２に示す。図１２の1201では、カーソル定義情報取得手段103から入力表項目定義情報とセレクト条件定義情報と出力表処理定義情報をカーソル定義情報として受けとる。1202では、入力表項目定義情報と出力表処理定義情報から、図１３に示すようにして、セレクト項目定義情報を作成する。以後は、図３に示した第３の実施の形態におけるカーソル定義文生成手段105の処理方式と同一である。
【００７２】
図１３を参照すると、1301でまず、セレクト表列とセレクト項目列を空とする。1302では、全ての入力表<<表>>の全ての項目<<項目>>について1303から1306を繰り返す。1303では、<<表>>と<<項目>>の組が、つまり注目している入力表の項目が、出力表処理定義内の処理条件または処理式または更新／削除条件で使用されているかどうかをテストしている。使用されていない場合には次の繰り返し要素に移る。使用されている場合には、1304で<<表>>と<<項目>>の組をセレクト項目列に追加する。次いで1305で<<表>>がセレクト表列内にあるかどうかをテストしている。既にあった場合には、次の繰り返し要素に移る。無い場合には、1306で<<表>>をセレクト表列に追加する。全ての入力表の全ての項目について以上を繰り返した後、1307でセレクト表列とセレクト項目列を合わせてセレクト項目定義情報として出力する。
【００７３】
以上により、本発明の第３の実施の形態におけるセレクト項目定義情報を自動的に作成することができた。したがって、図１２の1203から1207の処理において、第３の実施の形態における図３と同一の動作でカーソル定義文を作成することができる。
【００７４】
他の構成要素の動作は第３の実施の形態と同一である。
【００７５】
本実施の形態では、利用者は仕様内にセレクト項目情報を指定することなく、第３の実施の形態と同じプログラムを自動生成ことができるため、第３の実施の形態と比較して、より容易に仕様を作成することができる、という効果がある。
【００７６】
[第５の実施の形態]
次に本発明の第５の実施の形態について第３の実施の形態との相違点を中心に説明する。
【００７７】
図１４に本発明の第５の実施の形態における構成図を示す。図１４を図１と比較すると、プログラムスケルトンを一つ含む図１のプログラムスケルトン108の代わりにプログラムスケルトンを１種類以上いくつでも保持できるプログラムスケルトンライブラリ1411を持ち、プログラムスケルトン特定情報取得手段1404とプログラムスケルトン選択手段1412が追加されている。
【００７８】
仕様1401は、図１の仕様１と比較して、プログラムスケルトン特定情報を合わせ持って構成される。この仕様の構成を図１５に示す。図１５を参照すると、仕様1501は、プログラム名1502と入力表項目定義1503とセレクト項目定義1504と出力表項目定義1505と出力表処理定義1506とセレクト条件定義1507と（以上、個別仕様）、プログラムカスタマイズ情報1509（共通処理仕様）と、プログラムスケルトン特定情報1508とから構成されている。プログラムスケルトン特定情報1508は、個別仕様および共通処理仕様の何れに含まれていても良い。
【００７９】
図１４の仕様入力手段1403は、図１５のような構成を持つ仕様を入力し、プログラムスケルトン特定情報取得手段1404と、スケルトンカスタマイズ情報取得手段1405と、カーソル定義情報取得手段1406と、出力項目処理情報取得手段1407に渡す。図１４のプログラムスケルトン特定情報取得手段1404は、仕様入力手段1403で入力された仕様からプログラムスケルトン特定情報を取り出し、プログラムスケルトン選択手段1412に渡す。プログラムスケルトン選択手段1412は、プログラムスケルトン特定情報を用いて特定されたプログラムスケルトンをプログラムスケルトンライブラリ1411から取り出し、このプログラムスケルトンをプログラム自動合成手段1413に渡す。プログラムスケルトン特定情報を用いてプログラムが特定できない場合には、仕様のエラーとして利用者にその旨通知する。プログラム自動合成手段1413は、プログラムスケルトン選択手段1412から受けとったプログラムスケルトン中の、プログラム断片の挿入位置に、プログラムスケルトンカスタマイズ情報取得手段1405から受け取ったプログラム名とプログラムカスタマイズ情報と、カーソル定義文生成手段1408から受け取ったカーソル定義文と、作業変数定義文生成手段1409から受け取った作業変数定義文列と、出力処理文生成手段1410から受け取った出力処理文列とを、第３の実施形態と同一の方式で挿入し、プログラムを完成して出力する。
【００８０】
他の構成要素の動作は第３の実施の形態と同一である。
【００８１】
本実施の形態では、様々な処理形態を実装したプログラムスケルトンを複数用意することにより、様々なデータ処理プログラムを自動生成することができる。例えば、複数のプログラミング言語によるプログラムや、異なるアルゴリズムに基づくプログラム、異なる異常処理方式に基づくプログラムを自動生成できる。より広範なプログラムを自動生成できるため、第３の実施の形態と比較して適用範囲が広くなる、という効果がある。
【００８２】
[第６の実施の形態]
次に本発明の第６の実施の形態について第３の実施の形態との相違点を中心に説明する。
【００８３】
本実施の形態では、図１の仕様入力手段101が仕様を入力する際にデータベース定義情報を参照して仕様を入力する点が第３の実施の形態と異なる。なお、データベース定義情報は、自動生成しようとするデータ処理プログラムが処理の対象とするデータベースの定義情報であり、図１には図示しない記憶部に格納されており、仕様入力手段101によって参照可能になっている。図１６に第６の実施の形態における図１の仕様入力手段101の処理の流れ図を示す。
【００８４】
図１６を参照すると、図１の仕様入力手段101は、1601と1602でまず、処理で使用する入力表と出力表の名前だけを取得する。次いで、1603と1604とで、それぞれ、入力表と出力表の名前からデータベース定義情報を検索し、該当する入力表と出力表の項目定義情報を取得する。項目定義情報には、項目名、型、項目へのコメント等がある。1605では、1603と1604で取得した入力表と出力表の項目定義情報を画面上に提示する。1606では、1605で提示した入力表と出力表の項目定義情報を画面上で仕様入力者に利用させることにより、プログラム名、セレクト項目定義、出力表処理定義、セレクト条件定義、プログラムカスタマイズ情報を指定させ、取得する。入力表項目定義と出力表項目定義は、仕様入力手段101がデータベース定義情報から検索したものが使用されるため、利用者は作成する必要はない。なお、第４の実施の形態に適用する場合には、セレクト項目定義の作成は不要である。
【００８５】
なお、図１６の1605と1606で入力表と出力表の項目定義情報を仕様入力者に提示し、これを利用させることによって、プログラム名、セレクト項目定義、出力表処理定義、セレクト条件定義、プログラムカスタマイズ情報を指定させ、取得する方法としては、以下の（１）と（２）の二種類がある。
【００８６】
（１）入力表と出力表の名前と各項目の項目名と型をマトリクスの一つの軸に沿って並べ、セレクト条件定義とプログラムカスタマイズ情報と出力表の各項目の名前および型をマトリクスの他の軸に沿って並べ、仕様内のセレクト項目定義とセレクト条件定義とプログラムカスタマイズ情報と出力表処理定義の指定の際に、入力表の各項目の情報を参照する時、マトリクスの対応するセルに記号をつけることによって、入力項目の値を参照可能とする。
（２）入力表と出力表の名前と各項目の項目名、型を一覧表の形式で画面上に表示し、仕様入力者がセレクト項目定義とセレクト条件定義とプログラムカスタマイズ情報と出力表処理定義を指定する際に、画面上の表示領域の表名や項目名の上をマウスでクリックすることにより、該当する項目名や表名を文字情報として指定の領域に展開することで、表名や項目名を再度入力することなく仕様を入力可能とする。
【００８７】
図１の仕様１において、図２の入力表項目定義203および出力表項目定義205については、データベースの表定義と同一の情報であり、データベースを作成する際に既に作成され、データベース内に格納されていることが普通である。本実施の形態では、処理の仕様として、改めて入力表項目定義および出力表項目定義を利用者に指定させるのではなく、利用者には、入力表と出力表の名前だけを指定させ、入力表項目定義と出力表項目定義はデータベース内に既に格納されている情報から自動的に検索し、取得することにより、利用者の仕様記述のための手間を削減し、また、人手で指定することによるミスを削減することができる、という効果がある。
【００８８】
[第７の実施の形態]
次に本発明の第７の実施の形態について第３の実施の形態との相違点を中心に説明する。
【００８９】
本実施の形態では、図１のプログラムスケルトン108は、デバグ用トレース文をその挿入箇所が明確に識別できるように例えば特殊な記号で囲んで挿入されている。また、仕様１には、デバグ用のプログラムを生成するのか、本番用のプログラムを生成するのかの別を示す生成プログラム識別情報が、個別仕様および共通処理仕様の何れかに含まれている。この生成プログラム識別情報は、他の仕様情報と一緒に仕様入力手段１０１により入力され、プログラム自動合成手段109に渡される。プログラム自動合成手段109は、この生成プログラム識別情報に従って、プログラムスケルトン108中のデバグ用トレース文を取り去るか、残すかを切りわける。即ち、本番用のプログラムを生成する場合には、プログラムスケルトン108中の特殊な記号で囲まれたデバグ用トレース文をその特殊な記号とともに取り去り、デバグ用のプログラムを生成する場合には、プログラムスケルトン108中の特殊な記号で囲まれたデバグ用トレース文をそのまま残す。このとき、特殊な記号は取り去っても良く、あっても支障ない場合には残しておいても良い。
【００９０】
本実施の形態によれば、仕様１中の生成プログラム識別情報によって、デバグ用のプログラムの生成と本番用のプログラムの生成とを切り替えることができるという効果がある。
【００９１】
[第８の実施の形態]
次に本発明の第８の実施の形態について図１８を用いて説明する。図１８を参照すると、本発明の第８の実施の形態は、ＣＰＵ、主記憶、各種の入出力装置を含むコンピュータ1800と、記録媒体1803とから構成される。なお、仕様1801は第３の実施形態の個別仕様１Ａおよび共通処理仕様１Ｂをあわせた仕様に相当し、生成プログラム1802は生成プログラム２に相当する。
【００９２】
記録媒体1803は、磁気ディスク、半導体メモリ、ＣＤ−ＲＯＭその他の機械読み取り可能な記録媒体であり、データ処理プログラム自動生成プログラムが記録されている。記録媒体1803に記録されたデータ処理プログラム自動生成プログラムは、コンピュータ1800の立ち上げ時などにコンピュータ1800に読み込まれ、コンピュータ1800の動作を制御することにより、コンピュータ1800上に、仕様入力手段1804と、プログラムスケルトンカスタマイズ情報取得手段1805と、カーソル定義情報取得手段1806と、出力項目処理情報取得手段1807と、カーソル定義文生成手段1808と、作業変数定義文生成手段1809と、出力処理生成手段1810と、プログラムスケルトン1811と、プログラム自動合成手段1812とを実現する。これらの機能部は図１に示した同一名称のものと同じ機能を果たす。
【００９３】
なお、本説明では、第３の実施の形態に適用した場合について説明したが、他の実施の形態についても同様に、対応するデータ処理プログラム自動生成プログラムを記録媒体1803に記録しておくことができる。
【産業上の利用可能性】
【００９４】
本発明の活用例として、バッチ系プログラムの自動生成ツールを構築し、バッチ系システム開発の生産性および品質および保守性を向上することが可能である。また、バッチ系に限らず、帳票系や画面系プログラムにも同様の活用ができる。いずれにしろ共通処理は存在し、また共通処理中に重複する部分が多いからである。
【符号の説明】
【００９５】
１Ａ…個別仕様
１Ｂ…共通処理仕様
２…生成プログラム
１０…データ処理プログラム自動生成システム
１０１…仕様入力手段
１０１１…個別仕様入力部
１０１２…共通処理仕様入力部
１０１３…展開部
【図１】
0005581894.tif 000002
【図２】
0005581894.tif 000003
【図３】
0005581894.tif 000004
【図４】
0005581894.tif 000005
【図５】
0005581894.tif 000006
【図６】
0005581894.tif 000007
【図７】
0005581894.tif 000008
【図８】
0005581894.tif 000009
【図９】
0005581894.tif 000010
【図１０】
0005581894.tif 000011
【図１１】
0005581894.tif 000012
【図１２】
0005581894.tif 000013
【図１３】
0005581894.tif 000014
【図１４】
0005581894.tif 000015
【図１５】
0005581894.tif 000016
【図１６】
0005581894.tif 000017
【図１７】
0005581894.tif 000018
【図１８】
0005581894.tif 000019
【図１９】
0005581894.tif 000020
【図２０】
0005581894.tif 000021
【図２１】
0005581894.tif 000022
【図２２】
0005581894.tif 000023
【図２３】
0005581894.tif 000024