JP2001060150A - データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読記録媒体 - Google Patents

データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読記録媒体

Info

Publication number
JP2001060150A
JP2001060150A JP11233910A JP23391099A JP2001060150A JP 2001060150 A JP2001060150 A JP 2001060150A JP 11233910 A JP11233910 A JP 11233910A JP 23391099 A JP23391099 A JP 23391099A JP 2001060150 A JP2001060150 A JP 2001060150A
Authority
JP
Japan
Prior art keywords
program
definition
statement
processing
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP11233910A
Other languages
English (en)
Other versions
JP3871832B2 (ja
Inventor
Toru Yamanouchi
徹 山之内
Akira Sato
明良 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP23391099A priority Critical patent/JP3871832B2/ja
Priority to US09/640,693 priority patent/US6698010B1/en
Publication of JP2001060150A publication Critical patent/JP2001060150A/ja
Application granted granted Critical
Publication of JP3871832B2 publication Critical patent/JP3871832B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2438Embedded query languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 データベースの表のデータをカーソル定義文
を使って参照、更新、削除するデータ処理プログラムを
自動的に生成する。 【解決手段】 手段101 は仕様1を入力する。仕様1か
ら、手段102 はプログラムカスタマイズ情報を、手段10
3 は入力表項目定義とセレクト項目定義とセレクト条件
定義を、手段104 は出力表項目定義と出力表処理定義
を、それぞれ取り出す。手段105 は手段103 で取得され
た情報からカーソル定義文を、手段106,107は手段104
で取得された情報から作業変数定義文、指定された処理
種別(挿入、更新、削除)に応じた出力処理文を、それ
ぞれ生成する。手段109 は、仕様の如何に関わらず固定
の部分のプログラムと仕様によって変化する部分のプロ
グラム断片の挿入位置とを含むプログラムスケルトン10
8 の該当挿入位置に、プログラムカスタマイズ情報とカ
ーソル定義文と作業変数定義文と出力処理文を挿入して
プログラム2を生成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はプログラムの自動生
成に関し、特に、情報処理システム上に構築されたデー
タベースの表のデータを参照してデータ処理を行い、処
理結果を再度データベースの表に格納したり、処理結果
に基づいてデータベースの表のデータを更新したり、削
除したりするデータ処理プログラムを自動的に生成する
技術に関する。
【0002】
【従来の技術】人間にとって理解し易い仕様記述から、
そこに記述されたユーザの要求を満足するプログラムを
自動的に生成するプログラム自動生成技術については、
従来より各種のプログラムを対象に研究、開発が進めら
れている。
【0003】例えば特開平1−147621号公報(以
下、文献1と称す)では、バッチ処理業務の入出力とな
る、ファイル、帳票等の各入出力データに対し、(1)
該ファイル・帳票が含む各データ項目の桁数、型などの
属性を定義したデータレイアウト仕様情報、(2)該出
力ファイル・帳票が含む各データの値を得るための計算
式仕様情報を入力する手段と、入力された該仕様情報よ
り、対応するバッチ処理業務プログラムを生成する手段
と有する情報処理システムにおいて、仕様情報の入力手
段に、ファイル・帳票等のデータ入出力順序、計算順序
等の実行順序情報を入力するステップを有し、プログラ
ムを生成する手段に、該実行順序情報から、生成すべき
プログラムのプログラム構造情報を生成するステップを
有するプログラム自動生成方法が提案されている。
【0004】前記文献1に示された従来技術(以下、第
1の従来技術と称す)の構成を図41に示す。図41を
参照すると、第1の従来技術では、仕様入力部から入力
された仕様のうち、入出力関係仕様とレイアウト仕様と
からデータ定義部を生成し、入出力関係仕様と生成式仕
様とからデータ編集部を生成し、入出力関係仕様とデシ
ジョンテーブル仕様とからプログラム構造を生成し、プ
ログラム結合部でデータ定義部とデータ編集部とプログ
ラム構造とを結合し、プログラムを生成している。
【0005】また、特開平3−182932号公報(以
下、文献2と称す)では、COBOL言語のプログラム
にSQL言語のプログラムを埋め込んで記述する際の一
般的な問題点として、COBOLの言語とSQL言語の
仕様が異なり、プログラム作成に考慮すべき点が多く、
ユーザの誤りを誘発したり、記述量の増大を招き生産性
を低下させる点を解決し、誤りの防止と生産性向上を目
的としたプログラム自動生成技術が提案されている。
【0006】前記文献2に示された従来技術(以下、第
2の従来技術と称す)の構成を図42に示す。図42を
参照すると、第2の従来技術では、処理仕様を入力し、
データ部解析と手続き部解析とを行ない、定義体を入力
して、SQL宣言節とSQL連絡領域展開文とを自動生
成している。
【0007】
【発明が解決しようとする課題】このように各種のプロ
グラムをターゲットにしてその自動生成技術が提案され
ているが、情報処理システム上に構築されたデータベー
スの表のデータをカーソル定義文を使用して参照、更
新、削除するデータ処理プログラムの自動生成技術を記
載した文献は見当たらない。即ち、第1の従来技術は、
通常のファイルや帳票を扱うプログラムの自動生成であ
ってデータベースの利用は想定されておらず、また第2
の従来技術では、カーソル定義文の自動生成は行われて
いない。
【0008】一般に、通常のファイルや帳票を扱うプロ
グラムでは、入力となるファイルからデータを取得し、
計算処理を行い、新規ファイルにその結果を格納する。
このため第1の従来技術でも、出力処理として新規ファ
イル・帳票の作成を前提としており、既存ファイルのデ
ータの削除や変更は行っていない。しかし、データベー
スシステムの場合は、既存表のレコード単位の更新や削
除を安全に実施できるという特長があるため、データベ
ースを利用したデータ処理プログラムでは、どの表のど
の部分を処理するかを示すカーソル定義文に従って、入
力となる表からデータを取得し、計算処理を行い、その
結果に基づいて、新規表を作成したり、既存表を更新し
たり、削除したりすることが、広く行われている。
【0009】このようなデータ処理プログラムを、従前
と同様に、詳細設計書を参照しながら人手で作成する場
合にあっては、工数が多く掛かり、人手によるミスが防
止しきれず、詳細設計書とプログラムの一貫性が保証で
きないなどの問題点が生じる。また、大規模な業務用プ
ログラムを開発する場合には、データベースやネットワ
ークへのアクセス障害、システムの障害が発生した場合
の処理等を業務要件と共に実装する必要があるが、業務
用プログラムの開発経験が浅いプログラマには困難で、
開発されたプログラムの品質の劣化や開発の生産性の低
下等の問題点が生じる。このため、この種のデータ処理
プログラムの自動生成技術は重要な課題となっている。
【0010】本発明の目的は、データベースの表のデー
タを参照、更新、削除するデータ処理プログラムを自動
的に生成し得るようにすることにある。
【0011】また本発明の別の目的は、業務要求の仕様
に記述すべき情報の種類を削減することにより、利用者
の仕様記述の手間を削減し得るようにすることにある。
【0012】また本発明の他の目的は、同じ業務要求の
仕様から様々なデータ処理プログラムを自動生成するこ
とができるようにすることにある。
【0013】
【課題を解決するための手段】データベースの表のデー
タを参照、更新、削除するデータ処理プログラムを自動
的に生成する本発明のデータ処理プログラム自動生成シ
ステムは、仕様から取得した情報に基づいて、カーソル
定義文、作業変数定義文、出力処理文を生成する手段
と、前記データ処理プログラムのうち、仕様の如何に関
わらず固定の部分のプログラムと仕様によって変化する
部分のプログラム断片の挿入位置とを含むプログラムス
ケルトンの該当箇所に、前記生成されたカーソル定義
文、作業変数定義文、出力処理文、および前記仕様中の
プログラムカスタマイズ情報を挿入して前記データ処理
プログラムを完成させ、出力する手段とを含む。より具
体的には、プログラム名と入力表項目定義とセレクト項
目定義と出力表項目定義と出力表処理定義とセレクト条
件定義とプログラムカスタマイズ情報とを含む仕様を入
力する仕様入力手段と、前記仕様入力手段で入力された
仕様からプログラムスケルトンをカスタマイズするため
の情報として、プログラム名とプログラムカスタマイズ
情報を取り出すプログラムスケルトンカスタマイズ情報
取得手段と、前記仕様入力手段で入力された仕様から入
力表項目定義とセレクト項目定義とセレクト条件定義を
取り出すカーソル定義情報取得手段と、前記仕様入力手
段で入力された仕様から出力表項目定義と出力表処理定
義を取り出す出力項目処理情報取得手段と、前記カーソ
ル定義情報取得手段で取得された情報からカーソル定義
文を生成するカーソル定義文生成手段と、前記出力項目
処理情報取得手段で取得された出力表項目定義のうち、
処理種別が挿入である出力表に対応するものから作業変
数定義文を生成する作業変数定義文生成手段と、前記出
力項目処理情報取得手段で取得された出力表項目定義と
出力表処理定義から、処理種別が挿入の場合は処理条件
文と項目計算文と挿入文とを含む出力処理文を生成し、
処理種別が更新の場合には処理条件文と更新文とを含む
出力処理文を生成し、処理種別が削除の場合には処理条
件文と削除文とを含む出力処理文を生成する出力処理文
生成手段と、前記データ処理プログラムのうち、仕様の
如何に関わらず固定の部分のプログラムと仕様によって
変化する部分のプログラム断片の挿入位置とを含むプロ
グラムスケルトンの該当挿入位置に、前記プログラムス
ケルトンカスタマイズ情報取得手段で取得したプログラ
ム名とプログラムカスタマイズ情報と、前記カーソル定
義文生成手段で生成したカーソル定義文と、前記作業変
数定義文生成手段で生成した作業変数定義文と、前記出
力処理文生成手段で生成した出力処理文とを挿入するこ
とによってプログラムを完成させ、出力するプログラム
自動合成手段とを有する。
【0014】このように、利用者が作成した仕様から、
カーソル定義文、作業変数定義文、出力処理文を生成
し、予め用意されたプログラムスケルトンの該当挿入箇
所にこれらを挿入することにより、データベースの表の
データをカーソル定義文を使って参照、更新、削除する
データ処理プログラムを自動的に生成することができ
る。また、仕様中のプログラムカスタマイズ情報もプロ
グラムスケルトンの該当箇所に挿入できるので、利用者
がプログラムカスタマイズ情報として指定した例えば初
期処理や終了処理などを組込むことができ、プログラム
のカスタマイズ化も容易に行える。更に、プログラムス
ケルトンが仕様の如何に関わらず固定的に有するプログ
ラム部分の一部に、データベースアクセスでエラーが発
生した場合の処理プログラムや、多人数で開発する場合
に守らなければならないプログラム規約を遵守するプロ
グラム等を事前に設定しておくことで、この部分を作成
するユーザの負担を軽減でき、またユーザミスを防止で
きる。
【0015】また本発明のデータ処理プログラム自動生
成システムは、仕様に記述すべき情報の種類を削減する
ことにより、利用者の仕様記述の手間を削減し得るよう
にするために、別の一構成として、カーソル定義文生成
手段が、入力表項目定義とセレクト条件定義と出力表処
理定義とからセレクト項目定義を作成し、この作成した
セレクト項目定義とセレクト条件定義とからカーソル定
義文を生成する。これによって、利用者はセレクト項目
定義を作成する手間を省くことができる。また、他の構
成として、仕様入力手段が、処理で使用する全ての入力
表名と出力表名を入力し、データベースの表定義情報か
ら当該入力表と出力表の全ての項目名と型情報を検索し
て取得する。これによって、利用者は入力表項目定義お
よび出力表項目定義を作成する手間を省くことができ
る。更に、入力仕様手段は、前記取得した入力表と出力
表の全ての項目名と型情報を画面上に提示して仕様記述
者による入力表項目定義および出力表項目定義以外の仕
様情報の指定を可能にすることで、出力表項目定義、出
力表処理定義、セレクト条件定義などの記述を容易なら
しめている。
【0016】また本発明のデータ処理プログラム自動生
成システムは、同じ業務要求の仕様から様々なデータ処
理プログラムを自動生成することができるようにするた
めに、仕様の如何に関わらず固定の部分のプログラムと
仕様によって変化する部分のプログラム断片の挿入位置
とを含むプログラムスケルトンを複数種類格納するプロ
グラムスケルトンライブラリと、このプログラムスケル
トンライブラリから利用者の指定した1つのプログラム
スケルトンを選択し、前記プログラム自動合成手段に渡
すプログラムスケルトン選択手段とを備えるようにして
いる。
【0017】
【発明の実施の形態】次に本発明の実施の形態の例につ
いて図面を参照して詳細に説明する。
【0018】〔第1の実施の形態〕図1は本発明のデー
タ処理プログラム自動生成システムの第1の実施の形態
の構成例を示したブロック図、図17はその処理の概略
を示すフローチャートである。まず、図1及び図17を
参照して第1の実施の形態の概要を説明する。
【0019】図1において、業務要件を示す仕様1は、
開発するプログラムが満足すべき仕様として、プログラ
ム名と入力表項目定義とセレクト項目定義と出力表項目
定義と出力表処理定義とセレクト条件定義とプログラム
カスタマイズ情報とを含んでいる。まず、図17の1701
において、仕様入力手段101 はこのような仕様1を入力
する。次に、プログラムスケルトンカスタマイズ情報取
得手段102 は、入力された仕様のうち、プログラムスケ
ルトンをカスタマイズするために必要な情報として、プ
ログラム名とプログラムカスタマイズ情報を取り出し、
プログラム自動合成手段109 に渡す(1702)。また、カー
ソル定義情報取得手段103 は、入力された仕様のうち、
カーソル定義文を生成するのに必要な情報として、入力
表項目定義とセレクト項目定義とセレクト条件定義を取
り出し、カーソル定義文生成手段105 に渡す(1703)。更
に、出力項目処理情報取得手段104 は、入力された仕様
のうち、作業変数定義文と出力処理文を生成するのに必
要な情報として、出力表項目定義と出力表処理定義とを
出力項目処理情報として取り出し、作業変数定義文生成
手段106 と出力処理文生成手段107 に渡す(1704)。
【0020】次にカーソル定義文生成手段105 は、カー
ソル定義情報取得手段103 から受けとった情報を加工
し、データベースの表の内、仕様で指定された処理にお
いて参照される表と項目の定義を行なう、カーソル定義
文を生成し、プログラム自動合成手段109 に渡す(170
5)。また、作業変数定義文生成手段106 は、出力項目処
理情報取得手段104 から受けとった情報を加工し、生成
プログラム中の、処理種別が挿入である全ての出力表の
各項目の計算結果を保存するための変数定義文を生成
し、プログラム自動合成手段109 に渡す(1706)。更に、
出力処理文生成手段107は、出力項目処理情報取得手段1
04 から受けとった情報を加工し、生成プログラム中の
全ての出力表のうち、処理種別が挿入の出力表に対して
は処理条件文と項目計算文と挿入文とからなる出力処理
文を生成し、処理種別が更新の出力表に対しては処理条
件と更新文とからなる出力処理文を生成し、処理種別が
削除の出力表に対しては処理条件文と項目計算文と削除
文とからなる出力処理文を生成し、プログラム自動合成
手段109 に渡す(1707)。
【0021】また図1において、プログラムスケルトン
108 は、生成プログラムのうち、仕様としてどのような
業務要件が与えられても変化しない部分を、プログラム
の骨組みとして用意したものである。このプログラムの
骨組みにはプログラム名、カーソル定義文、作業変数定
義文、出力処理文の部分と、さらに必要に応じて1つ以
上のプログラムの断片の挿入位置が埋め込まれており、
これらの挿入位置に、仕様で与えられた業務要件から生
成されたプログラムの断片を挿入することにより、完成
したプログラムを得ることを目的としたものである。
【0022】プログラム自動合成手段109 は、プログラ
ムスケルトン108 の挿入位置の内、プログラム名に対応
する挿入位置にプログラムスケルトンカスタマイズ情報
取得手段102 で取得されたプログラム名を挿入し、カー
ソル定義文に対応する挿入位置にカーソル定義文生成手
段105 で生成されたカーソル定義文を挿入し、作業変数
定義文に対応する挿入位置に作業変数定義文生成手段10
6 で生成された作業変数定義文を挿入し、出力処理文に
対応する挿入位置に出力処理文生成手段107 で生成され
た出力処理文を挿入し、その他の挿入位置にプログラム
スケルトンカスタマイズ情報取得手段102 で取得した対
応するプログラム文の断片を挿入することによりプログ
ラムを自動合成する(1708)。
【0023】次に本発明の第1の実施の形態の詳細を図
1から図5を参照して説明する。
【0024】図2(a)は図1の仕様1の構成例を示し
た図である。201 は仕様全体を表しており、図1におけ
る仕様1に対応する。図2(a)に示したように、仕様
201は、仕様から生成したプログラムが持つべき名前で
あるプログラム名202 と、入力表の名前と各項目の名前
と型の情報を含む入力表項目定義203 と、入力表項目の
うち、本仕様で指定する処理で実際に使用するため、セ
レクト文内に定義する項目の名前を含むセレクト項目定
義204 と、出力表の名前と各項目の名前と型の情報を含
む出力表項目定義205 と、各出力表の処理を行う条件を
示す処理条件と、挿入、更新、削除の別を示す処理種別
と、処理種別が更新と削除の場合に更新/削除するため
の条件を示す更新/削除条件と、処理種別が挿入と更新
の場合に各項目の値を計算する処理式とを含む出力表処
理定義206 と、入力表からデータを取得する際の条件を
含むセレクト条件定義207 と、プログラムスケルトンを
カスタマイズするために必要なその他の情報を含むプロ
グラムカスタマイズ情報208 とから構成される。
【0025】出力表処理定義206 に必要な、処理種別毎
の情報を図2(b)に一覧表で示す。図2(b)を参照
すると、処理種別が挿入の場合には、処理式は必須であ
り、処理条件は任意であり、更新/削除条件は不要であ
る。処理種別が更新の場合には、処理式と更新条件は必
須であり、処理条件は任意である。処理種別が削除の場
合には、削除条件は必須であり、処理条件は任意であ
り、処理式は不要である。なお、処理条件が指定されな
かった場合には、常に処理条件が成立するものとして、
その処理が行われる。図1の仕様入力手段101 は、図2
のような構成を持つ仕様を入力し、プログラムスケルト
ンカスタマイズ情報取得手段102 と、カーソル定義情報
取得手段103 と出力項目処理情報取得手段104 に渡す。
【0026】プログラムスケルトンカスタマイズ情報取
得手段102 は、仕様入力手段101 から渡された仕様情報
から、図2のプログラム名202 とプログラムカスタマイ
ズ情報208 に対応する部分を取り出し、プログラム自動
合成手段109 に渡す。カーソル定義情報取得手段103
は、仕様入力手段101 から渡された仕様情報から、図2
の入力表項目定義203 とセレクト項目定義204 とセレク
ト条件定義207 に対応する部分を取り出し、カーソル定
義文生成手段105 に渡す。出力項目処理情報取得手段10
4 は、仕様入力手段101 から渡された仕様情報から、図
2の出力表項目定義205 と出力表処理定義206 に対応す
る部分を取り出し、作業変数定義文生成手段106 と出力
処理文生成手段107 に渡す。
【0027】次にカーソル定義文生成手段105 の動作に
ついて、図3を用いて説明する。図3は、カーソル定義
文生成手段105 の動作を表す流れ図である。図1のカー
ソル定義文生成手段105 は、図3の301 でカーソル定義
情報取得手段103 から入力表項目定義情報とセレクト項
目定義情報とセレクト条件定義情報をカーソル定義情報
として受けとる。302 では、入力表項目定義情報のう
ち、セレクト項目定義情報内に指定された項目名だけを
抜きだし、生成するプログラミング言語の構文に従った
形式でセレクト項目列を作成する。303 では、入力表項
目定義情報内に指定された入力表のうち、セレクト項目
定義情報で使用されている入力表の名前だけを抜きだ
し、生成するプログラミング言語の構文に従った形式で
セレクト表列を作成する。304 では、セレクト条件定義
情報を、生成するプログラム言語の構文に従った形式に
加工し、セレクト条件文を作成する。305 では、302 、
303 、304 でそれぞれ作成した、セレクト項目列、セレ
クト表列、セレクト条件をカーソル定義スケルトンの対
応する挿入位置に挿入し、カーソル定義文を作成する。
306 でこのカーソル定義文を出力し、図1のプログラム
自動合成手段109 に渡す。
【0028】図7にカーソル定義スケルトンの構成例を
示す。図7を参照すると、カーソル定義文スケルトン70
1 は、特定のプログラミング言語に依存したスケルトン
で、セレクト項目列挿入位置702 、入力表列挿入位置70
3 、セレクト条件挿入位置704 を持って構成されてい
る。これらの空白部分に、図1のカーソル定義文生成手
段で作成した、それぞれ、セレクト項目列、入力表列、
セレクト条件が挿入され、カーソル定義文となる。
【0029】次に作業変数定義文生成手段106 の動作に
ついて、図4を用いて説明する。図4は、作業変数定義
文生成手段106 の動作を表す流れ図である。図1の作業
変数定義文生成手段106 は、図4の401 で出力項目処理
情報取得手段104 から出力表項目定義情報を受けとる。
出力表は一般に1つ以上指定可能だが、処理種別が更新
や削除である出力表については、作業変数定義が不要な
ため、処理種別が挿入である出力表について、402 が繰
り返される。402 の中では、ステップ403 から405 が行
なわれる。403 において、出力表のレコード型を定義す
る型定義文を作成する。404 において、作業領域変数を
403 で定義された型で定義する文を作成する。405 で
は、403 で作成した型定義文と404 で作成した変数定義
文を作業変数定義スケルトンの対応する挿入位置に挿入
する。406 ステップでは、402 の繰り返しによって完成
した作業変数定義文列を出力し、図1のプログラム自動
生成手段109 に渡す。
【0030】図8に作業変数定義スケルトンの構成例を
示す。図8を参照すると、作業変数定義スケルトン801
は、型定義文挿入位置802 と変数定義文挿入位置803 を
持って構成されている。図4の405 では、これらの挿入
位置にそれぞれ、型定義文、変数定義文を挿入し、作業
変数定義文を完成させる。作業変数定義文が複数ある場
合には、完成した複数の作業変数定義文をまとめて作業
変数定義文列とする。
【0031】次に出力処理文生成手段107 の動作につい
て、図5を用いて説明する。図5は、出力処理文生成手
段107 の動作を表す流れ図である。図1の出力処理文生
成手段107 は、図5の501 で出力項目処理情報取得手段
104 から出力表項目定義情報と出力表処理定義情報を受
けとる。出力表は一般に1つ以上指定可能なので、全て
の出力表について、502 が繰り返される。503 におい
て、501 で受け取った出力表処理定義情報のうち、処理
条件情報から処理条件文が作成される。504 では、501
で受け取った出力表処理定義情報のうち、処理種別情報
が検査され、その値によって以後の処理が分岐する。処
理種別情報が挿入の場合には、ステップ505 から507
が、処理種別情報が更新の場合には、ステップ508 から
509 が、処理種別情報が削除の場合には、ステップ510
から511 が、実行される。
【0032】505 では、出力表処理定義情報のうち、各
項目の処理式を加工し、項目計算文を作成する。506 で
は、出力表項目定義情報を加工し、挿入文を作成する。
507では、503 で作成した処理条件文と、505 で作成し
た項目計算文と、506 で作成した挿入文を出力処理スケ
ルトンの対応する挿入位置に挿入し、出力処理文を完成
する。
【0033】508 では、出力表処理定義情報のうちの各
項目の処理式と、出力表項目定義情報とを加工し、更新
文を作成する。509 では、503 で作成した処理条件文
と、508 で作成した更新文と出力処理文スケルトンの対
応する挿入位置に挿入し、出力処理文を完成する。
【0034】510 では、出力表項目定義情報を加工し、
削除文を作成する。511 では、503で作成した処理条件
文と、510 で作成した削除文を出力処理文スケルトンの
対応する挿入位置に挿入し、出力処理文を完成する。な
お、出力種別が更新と削除の場合には、出力処理文スケ
ルトンの項目計算文挿入位置には何も挿入しない。
【0035】512 では、502 の繰り返しによって完成し
た全ての出力処理文列を出力し、図1のプログラム自動
生成手段109 に渡す。
【0036】図9(a)に出力処理文スケルトンの構成
例を示す。図9(a)を参照すると、出力処理文スケル
トン901 は、処理条件文挿入位置902 と項目計算文列挿
入位置903 と出力文挿入位置904 を持って構成されてい
る。図5の507 、509 、511では、これらの挿入位置に
それぞれ、処理条件文、項目計算文、挿入文/更新文/
削除文を挿入し、出力処理文を完成させる。図9(a)
を参照すると、処理条件文挿入位置902 に挿入された処
理条件がif文の条件節になっており、この条件が満足
する場合だけ、項目計算文挿入位置903 に挿入された出
力項目の計算処理と出力文挿入位置904 に挿入された出
力表への出力処理が実行されることがわかる。
【0037】図9(b)から図9(d)に図9(a)の
出力文挿入位置904 に挿入される、挿入文、更新文、削
除文のPL/SQL言語におけるテンプレートの例をそ
れぞれ示す。図9(b)を参照すると、処理種別が挿入
の場合、出力表項目定義情報から、出力表の名前を取り
出して<<出力表名>>に代入し、項目の名前を取り出し
て、”,”でつないで項目名のリストを作成し、<<項目
名リスト>>に代入し、項目の名前を取り出し、これをも
とに、ある決まった方法で変数名を作成し、”,”でつ
ないで変数名のリストを作成、<<変数名リスト>>に代入
することで、挿入文を作成する。
【0038】図9(c)を参照すると、処理種別が更新
の場合、出力表項目定義情報から、出力表の名前を取り
出して<<出力表名>>に代入し、出力表処理定義情報から
処理式を取り出して、”,”でつないで更新文リストを
作成し、<<更新文リスト>>に代入し、出力表処理定義情
報から更新条件を取り出して<<更新条件>>に代入するこ
とで、更新文を作成する。
【0039】図9(d)を参照すると、処理種別が削除
の場合、出力表項目定義情報から、出力表の名前を取り
出して<<出力表名>>に代入し、出力表処理定義情報から
削除条件を取り出して<<削除条件>>に代入することで、
削除文を作成する。
【0040】次に図1のプログラム自動合成手段109 の
動作について、図10と図6を用いて説明する。図10
はプログラムスケルトンの構成例を示した図である。プ
ログラムスケルトンは、ある特定のプログラミング言語
で記述されたプログラムを仕様により変化する部分と、
仕様により変化しない部分に分類し、仕様により変化し
ない部分は、プログラム文として持ち、仕様により変化
する部分は、仕様から作成されたプログラムの断片の挿
入位置を持つことで構成される。図10の例では、この
プログラムの断片の挿入位置として、プログラム名挿入
位置1002と、カーソル定義文挿入位置1003と、作業変数
定義文列挿入位置1004と、" 初期処理"挿入位置1005
と、出力処理文列挿入位置1006と、" 終了処理" 挿入位
置1007を持っている。
【0041】図6は、プログラム自動合成手段109 の動
作を表す流れ図である。プログラム自動合成手段109
は、プログラムスケルトン108 のうち、プログラムの断
片の挿入位置に、仕様から作成したプログラムの断片を
挿入することによりプログラムを完成させるものであ
る。図6を参照すると、まず601 ステップで、図1のプ
ログラムスケルトン108 を取り出す。602 では、プログ
ラムカスタマイズ情報とカーソル定義文と作業変数定義
文列と出力処理文列を、それぞれ、図1のプログラムス
ケルトンカスタマイズ情報取得手段102 、カーソル定義
文生成手段105 、作業変数定義文生成手段106 、出力処
理文生成手段107 から受けとる。ステップ603 では、60
2 で受けとったカーソル定義文をプログラムスケルトン
のカーソル定義文挿入位置に挿入する。604 では、602
で受けとった作業変数定義文列をプログラムスケルトン
の作業変数定義文列挿入位置に挿入する。605 では、60
2 で受けとった出力処理文列をプログラムスケルトンの
出力処理文列挿入位置に挿入する。606 では、602 で受
けとったプログラム名をプログラムスケルトンのプログ
ラム名挿入位置に挿入し、プログラムスケルトンカスタ
マイズ情報を、名前で対応が示された挿入位置に挿入す
る。図10のプログラムスケルトンでは、" 初期処理"
と" 終了処理" がこれに当たる。ただし、仕様の記述と
プログラムスケルトンが対応する限り、いくつの挿入位
置を設けることも可能である。607 では、全てのプログ
ラム断片が挿入され、完成したプログラムを出力する。
【0042】以上により、仕様からプログラムを自動的
に作成し、出力できる。
【0043】なお、本説明では、カーソル定義スケルト
ン、作業変数定義スケルトン、出力処理文スケルトン、
プログラムスケルトンは、PL/SQL言語に従って記
述し、説明しているが、他のプログラミング言語のプロ
グラムを自動生成する場合には、生成するプログラミン
グ言語に従ったスケルトンを用意することで、他のプロ
グラミング言語のプログラムを生成することが可能であ
る。
【0044】また、図3、図4、図5、図6の処理流れ
図において、横に並列して記述されている部分は、その
間の処理順序がどのような順序であっても良いことを表
している。例えば、図3において、302 と303 と304
は、この順序で処理しても良いし、304 、303 、302 の
順序で処理しても良いし、あるいは、これらを合わせて
一緒に処理しても良いことを表している。
【0045】このように、本実施の形態では、プログラ
ム開発者は、仕様として、プログラム名と入力表項目定
義とセレクト項目定義と出力表項目定義と出力表項目計
算処理定義とセレクト条件定義とプログラムカスタマイ
ズ情報を指定するだけで、データ処理プログラムを自動
生成させることができる。したがって、従来、プログラ
ミング工程において混入していたミスを無くすことがで
き、またプログラム開発の生産性も大幅に向上させるこ
とができる。
【0046】〔第2の実施の形態〕次に本発明の第2の
実施の形態について、第1の実施の形態との相違点を中
心に説明する。
【0047】第1の実施の形態において、図2の仕様20
1 は、プログラム名202 と入力表項目定義203 とセレク
ト項目定義204 と出力表項目定義205 と出力表項目計算
処理206 とセレクト条件207 とプログラムカスタマイズ
情報208 から構成されていた。第2の実施の形態では、
このうち、セレクト項目定義204 を持たずに構成され
る。すなわち、図11に示したように、プログラム名11
02と入力表項目定義1103と出力表項目定義1104と出力表
処理定義1105とセレクト条件定義1106とプログラムカス
タマイズ情報1107から構成されている。
【0048】第2の実施の形態では、図1の仕様入力手
段101 は、図11のような構成を持つ仕様を入力し、プ
ログラムスケルトンカスタマイズ情報取得手段102 とカ
ーソル定義情報取得手段103 と出力項目処理情報取得手
段104 に渡す。第2の実施の形態における図1のカーソ
ル定義情報取得手段103 は、仕様入力手段101 から渡さ
れた仕様情報から、入力表項目定義1103と出力表処理定
義1105とセレクト条件定義1106に対応する部分を取り出
し、カーソル定義文生成手段105 に渡す。
【0049】次に第2の実施の形態におけるカーソル定
義文生成手段105 の詳細な処理を図12に示す。図12
の1201では、カーソル定義情報取得手段103 から入力表
項目定義情報とセレクト条件定義情報と出力表処理定義
情報をカーソル定義情報として受けとる。1202では、入
力表項目定義情報と出力表処理定義情報から、図13に
示すようにして、セレクト項目定義情報を作成する。以
後は、図3に示した第1の実施の形態におけるカーソル
定義文生成手段105 の処理方式と同一である。
【0050】図13を参照すると、1301でまず、セレク
ト表列とセレクト項目列を空とする。1302では、全ての
入力表<<表>>の全ての項目<<項目>>について1303から13
06を繰り返す。1303では、<<表>>と<<項目>>の組が、つ
まり注目している入力表の項目が、出力表処理定義内の
処理条件または処理式または更新/削除条件で使用され
ているかどうかをテストしている。使用されていない場
合には次の繰り返し要素に移る。使用されている場合に
は、1304で<<表>>と<<項目>>の組をセレクト項目列に追
加する。次いで1305で<<表>>がセレクト表列内にあるか
どうかをテストしている。既にあった場合には、次の繰
り返し要素に移る。無い場合には、1306で<<表>>をセレ
クト表列に追加する。全ての入力表の全ての項目につい
て以上を繰り返した後、1307でセレクト表列とセレクト
項目列を合わせてセレクト項目定義情報として出力す
る。
【0051】以上により、本発明の第1の実施の形態に
おけるセレクト項目定義情報を自動的に作成することが
できた。したがって、図12の1203から1207の処理にお
いて、第1の実施の形態における図3と同一の動作でカ
ーソル定義文を作成することができる。
【0052】他の構成要素の動作は第1の実施の形態と
同一である。
【0053】本実施の形態では、利用者は仕様内にセレ
クト項目情報を指定することなく、第1の実施の形態と
同じプログラムを自動生成ことができるため、第1の実
施の形態と比較して、より容易に仕様を作成することが
できる、という効果がある。
【0054】〔第3の実施の形態〕次に本発明の第3の
実施の形態について第1の実施の形態との相違点を中心
に説明する。
【0055】図14に本発明の第3の実施の形態におけ
る構成図を示す。図14を図1と比較すると、プログラ
ムスケルトンを一つ含む図1のプログラムスケルトン10
8 の代わりにプログラムスケルトンを1種類以上いくつ
でも保持できるプログラムスケルトンライブラリ1411を
持ち、プログラムスケルトン特定情報取得手段1404とプ
ログラムスケルトン選択手段1412が追加されている。
【0056】仕様1401は、図1の仕様1と比較して、プ
ログラムスケルトン特定情報を合わせ持って構成され
る。この仕様の構成を図15に示す。図15を参照する
と、仕様1501は、プログラム名1502と入力表項目定義15
03とセレクト項目定義1504と出力表項目定義1505と出力
表処理定義1506とセレクト条件定義1507とプログラムス
ケルトン特定情報1508とプログラムカスタマイズ情報15
09から構成されている。
【0057】図14の仕様入力手段1403は、図15のよ
うな構成を持つ仕様を入力し、プログラムスケルトン特
定情報取得手段1404と、スケルトンカスタマイズ情報取
得手段1405と、カーソル定義情報取得手段1406と、出力
項目処理情報取得手段1407に渡す。図14のプログラム
スケルトン特定情報取得手段1404は、仕様入力手段1403
で入力された仕様からプログラムスケルトン特定情報を
取り出し、プログラムスケルトン選択手段1412に渡す。
プログラムスケルトン選択手段1412は、プログラムスケ
ルトン特定情報を用いて特定されたプログラムスケルト
ンをプログラムスケルトンライブラリ1411から取り出
し、このプログラムスケルトンをプログラム自動合成手
段1413に渡す。プログラムスケルトン特定情報を用いて
プログラムが特定できない場合には、仕様のエラーとし
て利用者にその旨通知する。プログラム自動合成手段14
13は、プログラムスケルトン選択手段1412から受けとっ
たプログラムスケルトン中の、プログラム断片の挿入位
置に、プログラムスケルトンカスタマイズ情報取得手段
1405から受け取ったプログラム名とプログラムカスタマ
イズ情報と、カーソル定義文生成手段1408から受け取っ
たカーソル定義文と、作業変数定義文生成手段1409から
受け取った作業変数定義文列と、出力処理文生成手段14
10から受け取った出力処理文列とを、第1の実施形態と
同一の方式で挿入し、プログラムを完成して出力する。
【0058】他の構成要素の動作は第1の実施の形態と
同一である。
【0059】本実施の形態では、様々な処理形態を実装
したプログラムスケルトンを複数用意することにより、
様々なデータ処理プログラムを自動生成することができ
る。例えば、複数のプログラミング言語によるプログラ
ムや、異なるアルゴリズムに基づくプログラム、異なる
異常処理方式に基づくプログラムを自動生成できる。よ
り広範なプログラムを自動生成できるため、第1の実施
の形態と比較して適用範囲が広くなる、という効果があ
る。
【0060】〔第4の実施の形態〕次に本発明の第4の
実施の形態について第1の実施の形態との相違点を中心
に説明する。
【0061】本実施の形態では、図1の仕様入力手段10
1 が仕様を入力する際にデータベース定義情報を参照し
て仕様を入力する点が第1の実施の形態と異なる。な
お、データベース定義情報は、自動生成しようとするデ
ータ処理プログラムが処理の対象とするデータベースの
定義情報であり、図1には図示しない記憶部に格納され
ており、仕様入力手段101 によって参照可能になってい
る。図16に第4の実施の形態における図1の仕様入力
手段101 の処理の流れ図を示す。
【0062】図16を参照すると、図1の仕様入力手段
101 は、1601と1602でまず、処理で使用する入力表と出
力表の名前だけを取得する。次いで、1603と1604とで、
それぞれ、入力表と出力表の名前からデータベース定義
情報を検索し、該当する入力表と出力表の項目定義情報
を取得する。項目定義情報には、項目名、型、項目への
コメント等がある。1605では、1603と1604で取得した入
力表と出力表の項目定義情報を画面上に提示する。1606
では、1605で提示した入力表と出力表の項目定義情報を
画面上で仕様入力者に利用させることにより、プログラ
ム名、セレクト項目定義、出力表処理定義、セレクト条
件定義、プログラムカスタマイズ情報を指定させ、取得
する。入力表項目定義と出力表項目定義は、仕様入力手
段101 がデータベース定義情報から検索したものが使用
されるため、利用者は作成する必要はない。なお、第2
の実施の形態に適用する場合には、セレクト項目定義の
作成は不要である。
【0063】なお、図16の1605と1606で入力表と出力
表の項目定義情報を仕様入力者に提示し、これを利用さ
せることによって、プログラム名、セレクト項目定義、
出力表処理定義、セレクト条件定義、プログラムカスタ
マイズ情報を指定させ、取得する方法としては、以下の
(1)と(2)の二種類がある。
【0064】(1)入力表と出力表の名前と各項目の項
目名と型をマトリクスの一つの軸に沿って並べ、セレク
ト条件定義とプログラムカスタマイズ情報と出力表の各
項目の名前および型をマトリクスの他の軸に沿って並
べ、仕様内のセレクト項目定義とセレクト条件定義とプ
ログラムカスタマイズ情報と出力表処理定義の指定の際
に、入力表の各項目の情報を参照する時、マトリクスの
対応するセルに記号をつけることによって、入力項目の
値を参照可能とする。 (2)入力表と出力表の名前と各項目の項目名、型を一
覧表の形式で画面上に表示し、仕様入力者がセレクト項
目定義とセレクト条件定義とプログラムカスタマイズ情
報と出力表処理定義を指定する際に、画面上の表示領域
の表名や項目名の上をマウスでクリックすることによ
り、該当する項目名や表名を文字情報として指定の領域
に展開することで、表名や項目名を再度入力することな
く仕様を入力可能とする。
【0065】図1の仕様1において、図2の入力表項目
定義203 および出力表項目定義205については、データ
ベースの表定義と同一の情報であり、データベースを作
成する際に既に作成され、データベース内に格納されて
いることが普通である。本実施の形態では、処理の仕様
として、改めて入力表項目定義および出力表項目定義を
利用者に指定させるのではなく、利用者には、入力表と
出力表の名前だけを指定させ、入力表項目定義と出力表
項目定義はデータベース内に既に格納されている情報か
ら自動的に検索し、取得することにより、利用者の仕様
記述のための手間を削減し、また、人手で指定すること
によるミスを削減することができる、という効果があ
る。
【0066】〔第5の実施の形態〕次に本発明の第5の
実施の形態について第1の実施の形態との相違点を中心
に説明する。
【0067】本実施の形態では、図1のプログラムスケ
ルトン108 は、デバグ用トレース文をその挿入箇所が明
確に識別できるように例えば特殊な記号で囲んで挿入さ
れている。また、仕様1には、デバグ用のプログラムを
生成するのか、本番用のプログラムを生成するのかの別
を示す生成プログラム識別情報が含まれている。この生
成プログラム識別情報は、他の仕様情報と一緒に仕様入
力手段101により入力され、プログラム自動合成手段
109 に渡される。プログラム自動合成手段109は、この
生成プログラム識別情報に従って、プログラムスケルト
ン108 中のデバグ用トレース文を取り去るか、残すかを
切りわける。即ち、本番用のプログラムを生成する場合
には、プログラムスケルトン108 中の特殊な記号で囲ま
れたデバグ用トレース文をその特殊な記号とともに取り
去り、デバグ用のプログラムを生成する場合には、プロ
グラムスケルトン108 中の特殊な記号で囲まれたデバグ
用トレース文をそのまま残す。このとき、特殊な記号は
取り去っても良く、あっても支障ない場合には残してお
いても良い。
【0068】本実施の形態によれば、仕様1中の生成プ
ログラム識別情報によって、デバグ用のプログラムの生
成と本番用のプログラムの生成とを切り替えることがで
きるという効果がある。
【0069】〔第6の実施の形態〕次に本発明の第6の
実施の形態について図18を用いて説明する。図18を
参照すると、本発明の第6の実施の形態は、CPU、主
記憶、各種の入出力装置を含むコンピュータ1800と、記
録媒体1803とから構成される。なお、仕様1801は図1の
仕様1に相当し、生成プログラム1802は図1の生成プロ
グラム2に相当する。
【0070】記録媒体1803は、磁気ディスク、半導体メ
モリ、CD−ROMその他の機械読み取り可能な記録媒
体であり、データ処理プログラム自動生成プログラムが
記録されている。記録媒体1803に記録されたデータ処理
プログラム自動生成プログラムは、コンピュータ1800の
立ち上げ時などにコンピュータ1800に読み込まれ、コン
ピュータ1800の動作を制御することにより、コンピュー
タ1800上に、仕様入力手段1804と、プログラムスケルト
ンカスタマイズ情報取得手段1805と、カーソル定義情報
取得手段1806と、出力項目処理情報取得手段1807と、カ
ーソル定義文生成手段1808と、作業変数定義文生成手段
1809と、出力処理生成手段1810と、プログラムスケルト
ン1811と、プログラム自動合成手段1812とを実現する。
これらの機能部は図1に示した同一名称のものと同じ機
能を果たす。
【0071】なお、本説明では、第1の実施の形態につ
いて説明したが、第2、3、4、5の実施の形態につい
ても同様に、対応するデータ処理プログラム自動生成プ
ログラムを記録媒体1803に記録しておくことができる。
【0072】
【実施例】次に本発明のデータ処理プログラム自動生成
システムの実施例について、図1と図19から図40を
用いて詳細に説明する。本実施例は、本発明の第2の実
施の形態における実施例である。この実施例では、図1
9に示す仕様から図40に示すPL/SQLというプロ
グラム言語で記述されたプログラムを自動生成する具体
的システムについてその動作を説明する。
【0073】図19は、データ処理プログラム自動生成
システムへの入力仕様の例である。本発明のデータ処理
プログラム自動生成システムは、本仕様で指定された処
理を実行するプログラムを自動的に生成するものであ
る。
【0074】図19の例では、1901では、生成されるプ
ログラムが”URIAGE_KEISAN ”というプログラム名を持
つことを指定している。1903から1910までは、この処理
で使用されるデータベースの表の名前、入力なのか出力
なのかの別、各表の項目名、各項目の型、さらに出力と
なる表については各項目の値を得るための計算処理が指
定されている。本処理では、URIAESU とSHOUHIN の二つ
の表を入力とし、URIAGEDAKAという一つの表を出力す
る。表URIAGESUは、項目CODEとURIAGEを持ち、それぞ
れ、char(4) 、number(6) の型を持つ。char(4) は4桁
の文字列であり、number(6) は6桁の数字であることを
表している。表SHOUHIN についても同様に、項目CODEと
NAMEとPRICE を持ち、それぞれ、char(4) 、char(20)、
number(8) の型を持つ。表URIAGEDAKAは、項目CODE、NA
ME、TOTAL を持ち、項目CODEの値として、表URIAGESUの
項目CODEの値を代入することが、項目NAMEの値として、
表SHOUHIN の項目NAMEの値を代入することが、それぞ
れ、計算処理欄の"URIAGESU.CODE" 、"SHOUHIN.NAME"で
示されている。表URIAGEDAKAの項目TOTAL の値として、
表URIAGESUの項目URIAGEの値と表SHOUHIN の項目PRICE
の値を掛け合わせたものを代入することが、"URIAGESU.
URIAGE * SHOUHIN.PRICE" で示されている。1911では、
表URIAGESUと表SHOUHIN のデータをデータベースから取
得する際の条件である、セレクト条件が指定されてい
る。ここでは、表URIAGESUの項目URIAGEの値が10より大
きい場合であって、かつ、表URIAGESUの項目CODEの値と
表SHOUHIN の項目CODEの値が等しい場合にだけ、表URIA
GESUと表SHOUHIN からデータを入力し、処理することが
示されている。1912と1913には、初期処理、終了処理と
して、それぞれ、"Init_module;","End_module;"という
関数を呼び出すことが指定されている。
【0075】図19において、1901が図11のプログラ
ム名1102に対応し、1903から1907が図11の入力表項目
定義1103に対応し、1908から1910の表名、項目名、型の
情報が図11の出力表項目定義1104に対応し、1908から
1910の計算処理の情報が図11の出力表処理定義1105に
対応し、1911が図11のセレクト条件定義1106に対応し、
1912と1913が図11のプログラムカスタマイズ情報1107
に対応する。
【0076】この仕様で表された処理は、商品コード(C
ODE)と売上数(URIAGE)を項目に持つ売上数表(URIAGESU)
と、商品コード(CODE)と商品名(NAME)と価格(PRICE) を
項目にもつ商品マスター表(SHOUHIN) を、同一商品コー
ドで突き合わせ、売上数(URIAGESU)が10より大きい商品
について、商品コード(CODE)と商品名(NAME)と売上総額
(TOTAL) を項目にもつ売上高表(URIAGEDAKA)を作成する
ことである。この時、売上高表の商品コード項目の値は
売上数表の商品コード項目より代入し、売上高表の商品
名の値は対応する商品コードの値を持つ商品マスター表
の商品名項目より代入し、売上高表の売上総額項目の値
を、売上数表の売上数項目の値と商品マスター表の価格
項目の値の積を代入することで得ることを意味してい
る。図20に図19に示した仕様の模式図を示す。ここ
では、売上数表2001内のCODE項目の値、例えば2レコー
ド目の0005と同一の値をCODE項目に持つ商品マスター表
2002内のレコードは5レコード目のレコードであるた
め、これらのレコードが対応することになる。ここで、
商品マスター2002より、商品コード0005の商品名がクッ
キーであり、価格が400 円であることがわかる。これに
より、出力表である売上高表2003に、商品コードとして
0005、商品名としてクッキー、売上総額として8,000 円
(20 個 * 400円) を値に持つレコードを作成することを
表している。
【0077】本実施例における、図1の仕様入力手段10
1 の詳細な動作について図21を用いて説明する。図2
1は、仕様入力手段101 の動作手順を示している。
【0078】図21を参照すると、2101: で、内部変数
<<内部情報>>を空にし、2102: と2103: とでそれぞ
れ、" プログラム名 : << プログラム名>>" と" 表 :
[" という文字列を作成し、<<内部情報>>に追加してい
る。ここで、ダブルクオートは文字列を表すが、文字列
内の<<>>で囲われた項目、ここでは、<<プログラム名>>
は、実際のプログラム名の値が文字列中のこの部分に入
ることを表す。2104: では、2105: から2112: までの処
理を、仕様内の各表について繰り返すことを示してい
る。ここで、各繰り返しにおいて処理している表を<<表
>>で表している。
【0079】2105: では、"(<<表>>, <<入出力区分>>,
["という文字列を作成し、<<内部情報>>に追加してい
る。ここで、<<入出力区分>>は、" 入力" かまたは" 出
力" であり、仕様の表の入出力区分の項目から得た値を
指す。2106: では、<<入力区分>>が" 入力" か" 出力"
かがテストされ、" 入力" だった場合には、2107: から
2108: が、" 出力" だった場合には、2109: から2110:
が実行される。2107: では、<<表>>の各項目について21
08: が繰り返されることを示している。ここで、各項目
の値を<<項目>>とする。2108: では、文字列"(<<項目>
>, <<型>>)," を作成し、<<内部情報>>に追加してい
る。2109: では、<<表>>の各項目について2110: が繰り
返されることを示している。ここで、各項目の値を<<項
目>>とする。2110: では、文字列"(<<項目>>, <<型>>,
<<計算処理>>)," を作成し、<<内部情報>>に追加してい
る。2111: は2106: から始まったIF文の最後であること
を表している。2112: では、2108: または2110: の繰り
返し処理で最後に付加された","を削除し、文字列"])"
を追加している。
【0080】2113: では、文字列" 処理条件: <<処理条
件>>" を作成し、<<内部情報>>に追加することを示して
いる。ここで、<<処理条件>>は、仕様のセレクト条件部
分に指定された文字列を指す。2114: では、仕様に指定
されたその他の属性について、2115: を繰り返すことを
示している。2115: では、文字列、"<< 属性名>> : <<
属性値>>" を作成し、<<内部情報>>に追加している。こ
こで、<<属性名>>、<<属性値>>は、それぞれ、仕様内の
属性の名前とその値を示している。図2の仕様例で
は、" 初期処理" 、" 終了処理" が属性名で"Init_modu
le;"、"End_module;" が属性値である。
【0081】以上で、仕様内の情報が全て<<内部情報>>
に取り込まれたことになる。図22に図19で示された
仕様例を<<内部情報>>に取り込んだ例を示す。仕様入力
手段101 は、この<<内部情報>>を、図1のプログラムス
ケルトンカスタマイズ情報取得手段102 、カーソル定義
情報取得手段103 、出力項目処理情報取得手段104 に渡
す。
【0082】プログラムスケルトンカスタマイズ情報取
得手段102 は、仕様入力手段101 から渡された図22に
示すような<<内部情報>>から、プログラム名とプログラ
ムカスタマイズ情報を、図23に示す形式で取り出し、
プログラム自動合成手段109に渡すものである。図23
で、* は"(<<属性名>> . << 属性値>>)"が属性名の数だ
け繰り返されることを示している。なお、値はダブルク
オートで囲われ、文字列として扱われる。プログラムス
ケルトンカスタマイズ情報取得手段102 では、図22に
示すような<<内部情報>>が渡されると、2201: と2213:
と2214: とからそれぞれ属性名と属性値を取り出し、図
23の形式で<<プログラムスケルトンカスタマイズ情報
>>を作成し、プログラム自動合成手段109 に渡す。図2
4はこの方式によって、図22の例から取得された<<プ
ログラムスケルトンカスタマイズ情報>>の例を示したも
のである。
【0083】カーソル定義情報取得手段103 は、仕様入
力手段101 から渡された<<内部情報>>から、入出力区分
が入力である全ての表名と項目名の情報と、セレクト条
件と、入出力区分が出力である全ての表の項目の計算処
理の内容を取り出して<<カーソル定義情報>>を図25の
形式で作成し、カーソル定義文生成手段105 に渡すもの
である。図25で、* は直前の要素が必要個数分だけ繰
り返されることを示している。図26は図25の形式に
沿って図22の<<内部情報>>から取得された<<カーソル
定義情報>>の例を示したものである。図1のカーソル定
義情報取得手段103 では、図22の<<内部情報>>が渡さ
れると、2202: から2206: の情報を図25の2501: の形
式に変更し、<<カーソル定義情報>>内に、図26の260
1: と2602: を作成する。次いで、図22の2211: から2
212: の情報をそのまま抜きだし、<<カーソル定義情報>
>内に追加する。最後に図22の2207: から2210: の情
報から、計算処理に関する部分だけを抜きだし、図15
の2503: の形式に変更し、<<カーソル定義情報>>内に、
図26の2604: と2605: と2606: を作成する。
【0084】図1の出力項目処理情報取得手段104 は、
仕様入力手段101 から渡された<<内部情報>>から、入出
力区分が出力である全ての表名と項目名と型と計算処理
の情報を取り出して、<<出力項目処理情報>>を図27の
形式で作成し、作業変数定義文生成手段105 と出力処理
文生成手段107 に渡すものである。図27で、* は直前
の要素が必要個数分だけ繰り返されることを示してい
る。なお、型と計算処理の値はダブルクオートで囲わ
れ、文字列として扱われる。
【0085】図28は図27の形式に沿って図22の<<内
部情報>>から取得された<<出力項目処理情報>>の例を示
したものである。出力項目処理情報取得手段104 では、
図22の<<内部情報>>が渡されると、図22の2207: から22
10: の情報を図27の2701: の形式に変更し、<<出力項目
処理情報>>内に、図28の2801: から2807: を作成する。
【0086】次に図1のカーソル定義文生成手段105 の
動作について図29と図30を用いて説明する。図30
は生成しようとしているカーソル定義文のうち、仕様の
如何に関わらず、固定的な骨組みを表すスケルトンであ
る。3001: と3008: は "--"で始まっているため、コメ
ント文である。3002: から3007: はデータベース操作の
ためのセレクト文のスケルトンであり、<<Select項目挿
入位置>>と<<入力表名挿入位置>>と<<条件節挿入位置>>
に仕様から得られた情報を加工して挿入することで完成
したセレクト文になる。3009: では3002: から3007: で
定義されたセレクト文に対応したカーソル用変数W_0 が
定義されている。本スケルトンの、3004: <<Select項目
挿入位置>>と、3005: <<入力表名挿入位置>>と、3006:
<<条件節挿入位置>>にカーソル定義情報取得手段103 か
ら受けとった図26の情報を基に作成したプログラム断
片を挿入し、カーソル定義文を完成させて<<カーソル定
義文>>とし、<<プログラム自動合成手段>>109 に渡すの
がカーソル定義文生成手段105 である。
【0087】図30は実施の形態で説明した図7のカー
ソル定義スケルトンに対応し、特定の事例としてより詳
細化したものである。図30の3004の<<セレクト項目列
挿入位置>>、3005の<<入力表列挿入位置>>、3006の<<セ
レクト条件挿入位置>>は、それぞれ図7のセレクト項目
列挿入位置702 、入力表列挿入位置703 、セレクト条件
挿入位置704 に対応する。
【0088】次に図1のカーソル定義文生成手段105 の
詳細な動作について図29を用いて説明する。2900: で
は、カーソル定義情報を図1のカーソル定義情報取得手
段103 から受け取る。図19の仕様の例では、図26が
カーソル定義情報である。2901: 2902: では、繰り返し
処理で用いる変数<<入力表名列>><<Select項目列>>を空
にし、初期化している。2903: では、カーソル定義情報
内の入力表全てに対し、2904: から2912: の処理を繰り
返すことを示している。繰り返しの中で、着目している
入力表は<<入力表>>で表す。2904: では、カーソル定義
情報内の<<入力表>>の全項目について、2905: から291
2: の処理を繰り返すことを示している。繰り返しの中
で、着目している項目は<<項目>>で表す。つまり、290
5: から2912: の処理は、各<<入力表>>の各<<項目>>に
ついて繰り返し処理されることになる。
【0089】2905: では、<<入力表>><<項目>>の組合せ
がカーソル定義情報内の計算処理内で使用されているか
どうかが検査されている。使用されている場合には、29
06:で、"<< 入力表>>.<< 項目>> << 入力表>>_<< 項目>
>,"という文字列を作成し、変数<<Select項目列>>に追
加する。ここで、<<入力表>>、<<項目>>は、それぞれ着
目している入力表、項目の値を示す。2907: ではさら
に、<<入力表>>が<<入力表名列>>に存在するかどうかが
検査されている。存在する場合には何もせず(2908:) 、
存在しない場合には2909: で、変数<<入力表名列>>の最
後に変数<<入力表>>とコンマからなる文字列を追加す
る。
【0090】2913: と2914: では、それぞれ、変数、<<
Select項目列>>と<<入力表名列>>の最後にあるコン
マ"," を削除する。これは、コンマはそれぞれの要素を
区切るために必要なもので、最後には必要無いためであ
る。2915: では、仕様内のセレクト条件として指定され
た内容を変数<<条件節>>にセットする。2916: から2918
では、それぞれ、変数、<<Select項目列>>、<<入力表名
列>>、<<条件説>>の値を、図30に示したカーソル定義
スケルトンの3004: <<セレクト項目列挿入位置>>、300
5: <<入力表列挿入位置>>、3006: <<セレクト条件挿入
位置>>に挿入し、カーソル定義文を完成させる。完成し
たカーソル定義文を図1のプログラム自動合成手段109
に渡す。
【0091】図29は第2の実施の形態で説明した図1
2のカーソル定義文生成手段の処理流れ図と対応し、特
定の事例としてより詳細化したものである。図29にお
いて、2900は図12の1201に対応し、2901から2914まで
が図12の1202から1204に対応する。図29は特定の事
例に関し、処理の最適化が施されているため、図13に
示した図12の1202ステップのセレクト項目情報作成処
理を実施すると同時に1203と1204を実施しているが、図
29の2906が図12の1203に対応し、図29の2909が図
12の1204に対応する。図29の2915が図12の1205
に、図29の2916から2918が図12の1206に、図29の
2919が図12の1207に対応する。
【0092】図31に、図29の方式で、図30のカー
ソル定義文スケルトンを図26の<<カーソル定義情報>>
で完成したカーソル定義文を示す。図31と図30を比
較すると、図30の<<セレクト項目列挿入位置>>、<<入
力表列挿入位置>>、<<セレクト条件挿入位置>>に、それ
ぞれ以下の文字列が挿入され、カーソル定義が完成して
いることがわかる。 <<セレクト項目列挿入位置>> : URIAGESU.CODE URIAGESU_CODE, URIAGESU.URIAGE URIAGESU_URIAGE, SHOUHIN.NAME SHOUHIN_NAME, SHOUHIN.PRICE SHOUHIN_PRICE <<入力表列挿入位置>> : URIAGESU, SHOUHIN <<セレクト条件挿入位置>> : URIAGESU.URIAGE > 10 and URIAGESU.CODE = SHOUHIN.CODE
【0093】次に図1の作業変数定義文生成手段106 の
動作について、図32と図33を用いて説明する。図3
3は生成しようとしている作業変数定義文のうち、仕様
の如何に関わらず、固定的な骨組みを表すスケルトンで
ある。3301: は"--"で始まっているため、コメント文で
ある。3302: から3305: は、作業変数の型定義文のスケ
ルトンである。3302に作業変数型名を3304: に出力項目
定義情報を挿入することで完成した作業変数の型定義文
になる。3306: は、出力用の作業変数の定義文の挿入位
置である。本スケルトンの、 3302: <<作業変数型名挿入位置>>と、 3304: <<出力項目定義挿入位置>>と、 3306: <<変数定義文挿入位置>>と に図1の出力項目処理情報取得手段104 から受けとった
<<出力項目処理情報>>を基に作成したプログラム断片を
挿入し、作業変数定義文を完成させてプログラム自動合
成手段109 に渡すのが、作業変数定義文生成手段106 で
ある。
【0094】図33は実施の形態で説明した図8の作業
変数定義スケルトンに対応し、特定の事例としてより詳
細化したものである。図33の3302から3305までが図8
の型定義文挿入位置802 に対応する。図33では、図8
の型定義文挿入位置802 のうち、PL/SQL言語特有
の、仕様によらない部分を固定的に持っているためによ
り詳細な<<作業変数型名挿入位置>>と<<出力項目定義挿
入位置>>を持って構成されている。図33の3306 << 変
数定義文挿入位置>>は、図8の変数定義文挿入位置803
と対応する。
【0095】図32を用いて本実施例における、図1の
作業変数定義文生成手段106 の詳細な動作を説明する。
3200: では、図28の<<出力項目処理情報>>を図1の出
力項目処理情報取得手段104 から受け取る。3201: と32
02: は、繰り返し処理で用いる変数<<作業変数定義文列
>>を空に、<<出力表番号>>を1にし、初期化している。
3203: は、図1の出力項目処理情報取得手段104 から得
られた、<<出力項目処理情報>>内の出力表の個数回だ
け、3204: から3215: を繰り返すことを示している。な
お、3204: から3215: において、着目している出力表は
<<出力表>>で表される。
【0096】3204: では、変数<<作業変数型名>>に"<<
出力表>>_<< 出力表番号>>_Type"の文字列がセットされ
る。ここで、<<出力表>>、<<出力表番号>>はそれぞれ、
変数<<出力表>>、<<出力表番号>>の値に置き換えられ
る。3205: では、繰り返し処理で用いる変数<<出力項目
定義>>を空にし、初期化している。
【0097】3206: では、<<出力項目処理情報>>内の各
<<出力表>>に対する項目の個数回数だけ、3207: から32
08: を繰り返すことを示している。なお、3207: から32
08: において、着目している項目は<<項目>>で表され
る。3207: では、仕様内の<<出力表>>の<<項目>>に対応
する型を<<型>>にセットし、3208: では、",<<項目>> <
<型>>" の文字列を作成し、変数<<出力項目定義>>に追
加する。この時、<<項目>>、<<型>>は、それぞれ、変数
<<項目>>、<<型>>の値に置き換えられる。3209: と321
0: では、変数<<変数定義>>に"<< 出力表>>_<< 出力表
番号>> << 作業変数型名>>;"をセットする。<<作業変数
型名>>は、3204で、"<< 出力表>>_<< 出力表番号>>Typ
e;"にセットされているため、結局、変数<<変数定義>>
には"<< 出力表>>_<< 出力表番号>> << 出力表>>_<< 出
力表番号>>Type;"がセットされる。
【0098】3211: から3213: では、作業変数スケルト
ンの、それぞれ、 <<作業変数型名挿入位置>>に<<作業変数型名>>を、 <<出力項目定義挿入位置>>に<<出力項目定義>>を、 <<変数定義文挿入位置>>に<<変数定義>>を 挿入し、作業変数定義文を完成している。
【0099】3214: では、完成した作業変数定義文を<<
作業変数定義文列>>に追加し、3215:では、出力表番号
に1を加算している。3214: と3215: は出力表が複数あ
った場合の、次の繰り返しのための準備である。全ての
出力表に関する作業変数定義文が<<作業変数定義文列>>
に追加された後、図1の作業変数定義文生成手段106
は、<<作業変数定義文列>>をプログラム自動合成手段10
9 に渡す。
【0100】図34に、図32の方式で、図33の作業
変数スケルトンを図28の<<出力項目処理情報>>で完成
した作業変数定義文を示す。図34と図33を比較する
と、図33の<<作業変数型名挿入位置>>、<<出力項目定
義挿入位置>>、<<変数定義文挿入位置>>に、それぞれ以
下の文字列が挿入され、作業変数定義が完成しているこ
とがわかる。
【0101】<<作業変数型名挿入位置>> : URIAGEDAKA_1_Type <<出力項目定義挿入位置>> : , CODE char(4) , NAME char(13) , TOTAL number(14) <<変定義挿入位置>> : URIAGEDAKA_1 URIAGEDAKA_1_Type
【0102】なお、図28の例では、出力表が一つしか
無いため、出力用作業変数定義文は一つしか生成されな
いが、出力表が複数あれば、出力表の数だけ、型定義文
と変数定義文が生成される。
【0103】図32は、実施の形態で説明した図4の作
業変数定義文生成手段の処理流れ図と対応し、特定の事
例としてより詳細化したものである。図32において、
3200は図4の401 に対応し、3203から3215までが図4の
402 の繰り返しに対応する。図32の3204は、図4の40
3 と404 の両方に対応する前準備である。図32の3205
から3208までは、図4の403 に対応し、型定義文を生成
している部分である。図32の3209から3210までが図4
の404 に対応し、変数定義文を作成している部分であ
る。図32の3211から3213までは図4の405 に対応し、
型定義文の部分である<<作業変数型名>>と<<出力項目定
義>>と、変数定義文を作成している。図32の3216が図
4の406 に対応している。
【0104】次に図1の出力処理文生成手段107 の動作
について図35と図36を用いて説明する。図36は生
成しようとしている出力文のうち、仕様の如何に関わら
ず、固定的な骨組みを表すスケルトンである。3601: と
3603: と3611: は "--" で始まっているため、コメント
文である。3602: には、出力表の各項目の値を計算する
文の列が挿入されることを示している。3604: では、変
数 SQLRESULTに0が代入されている。変数SQLRESULT
は、処理が正常に行なわれている間0の値を持つため、
ここで0にセットしているのは変数の初期化に当たる。
3605: から 3610:では、3602: に挿入された文によって
計算された出力表の各項目の値を、データベース表に書
き込む処理が、insert文によって行なわれている。360
6: の<<出力表名挿入位置>>に指定された表の、3607:
の<<出力項目名挿入位置>>に指定された項目の値を、36
09: の<<作業変数名挿入位置>>に指定された変数の値と
し、データベースに書き込む。3612: から3615: では、
データベースへの書き込み処理でエラーが発生した場合
に、データベースから渡されたエラーコードであるSQLC
ODE の値を変数SQLRESULT に代入している、固定的な処
理である。
【0105】本スケルトンの、 3602: <<項目計算文挿入位置>>と、 3606: <<出力表名挿入位置>>と、 3607: <<出力項目名挿入位置>>と、 3609: <<作業変数名挿入位置>>と に出力項目処理情報取得手段104 から受けとった<<出力
項目処理情報>>を基に作成したプログラム断片を挿入
し、出力処理文を完成させて<<出力処理文>>とし、プロ
グラム自動合成手段109 に渡すのが、出力処理文生成手
段107 である。
【0106】図36は実施の形態で説明した図9の出力
処理文スケルトンに対応し、特定の事例としてより詳細
化したものである。図36の3602<<項目計算文挿入位置
>>が図9の項目計算文挿入位置902 に対応する。図36
の3606から3610までが図9の出力文挿入位置903 に対応
する。図36では、図9の出力文挿入位置903 のうち、
PL/SQL言語特有の、仕様によらない部分を固定的
に持っているためにより詳細な<<出力表名挿入位置>>と
<<出力項目名挿入位置>>と<<作業変数名挿入位置>>を持
って構成されている。
【0107】次に出力処理文生成手段107 の詳細な動作
について図35を用いて説明する。3500: では、図1の
出力項目処理情報取得手段104 から出力項目処理情報を
入力する。この事例では、出力項目処理情報は図28の
形式となる。3501: と3502:は、繰り返し処理で用いる
変数<<出力処理文列>>を空に、<<出力表番号>>を1に
し、初期化している。3503: は、図1の出力項目処理情
報取得手段104 から得られた出力項目処理情報内の、出
力表の個数回だけ、3504: から3521: を繰り返すことを
示している。なお、3504: から3521: において、着目し
ている出力表は<<出力表>>で表される。
【0108】3504: から3506: では、繰り返し処理で用
いる変数<<計算文列>>、<<項目名列>>、<<変数名列>>を
それぞれ空にし、初期化している。3507: は、図1の出
力項目処理情報取得手段104 から得られた出力項目処理
情報内、<<出力表>>の項目の個数回だけ、3508: から35
13: を繰り返すことを示している。なお、3508: から35
13: において、着目している項目は<<項目>>で表され
る。3508: と3509: では、出力項目処理情報内の<<出力
表>>の<<項目>>に対応する計算処理欄の値の中に出現す
る、"." を"_" に置換し、表名の前に"W_0."を追加し
て、変数<<計算式>>にセットする。3510: と3511: で
は、文字列 "<< 出力表>>_<< 出力表番号>>.<< 項目>> := <<計算式
>>;" を作成し、変数<<計算文列>>の最後に追加する。上記文
字列内で、<<出力表>>、<<出力表番号>>、<<項目>>、<<
計算式>>は、それぞれ変数<<出力表>>、<<出力表番号>
>、<<項目>>、<<計算式>>の値に置き換えられる。3512:
では、文字列"<<項目>>,"を、変数<<項目名列>>の最後
に追加する。3513: では、文字列"<< 出力表>>_<< 出力
表番号>>.<< 項目>>,"を、変数<<変数名列>>の最後に追
加する。上記文字列内で、<<出力表>>、<<出力表番号>
>、<<項目>>はそれぞれ変数の値で置き換えられる。
【0109】3514: と3515: は、それぞれ<<項目名列>>
と<<変数名列>>の最後の"," を削除する。これは、コン
マはそれぞれの要素を区切るために必要なもので、最後
には必要無いためである。3516: から3519: では、出力
処理文スケルトンのそれぞれ、<<出力項目計算文挿入位
置>>、<<出力表名挿入位置>>、<<出力項目名挿入位置>
>、<<作業変数名挿入位置>>に変数、<<計算文列>>、<<
出力表>>、<<項目名列>>、<<変数名列>>の値を挿入し、
出力処理文を完成させる。3520: では、完成した出力処
理文を<<出力処理文列>>の最後に追加し、3521: では、
出力表番号に1を加算している。3520: と3521: は出力
表が複数あった場合の、次の繰り返しのための準備であ
る。全ての出力表に関する出力処理文が<<出力処理文列
>>に追加された後、図1の作業変数定義文生成手段107
は、<<出力処理文列>>をプログラム自動合成手段109 に
渡す。
【0110】図37に、図35の方式で、図36の出力
処理文スケルトンを図28の<<出力項目処理情報>>で完
成した出力処理文を示す。図37と図36を比較する
と、図36の<<項目計算文列挿入位置>>、<<出力表名挿
入位置>>、<<出力項目名挿入位置>>、<<作業変数名挿入
位置>>に、それぞれ以下の文字列が挿入され、出力処理
が完成していることがわかる。
【0111】<<項目計算文挿入位置>> : URIAGEDAKA_1.CODE := W_0.URIAGESU_CODE; URIAGEDAKA_1.NAME := W_0.SHOUHIN_NAME; URIAGEDAKA_1.TOTAL := W_0.URIAGESU_URIAGE * W_0.SH
OUHIN_PRICE; <<出力表名挿入位置>> : URIAGEDAKA <<出力項目名挿入位置>> : CODE, NAME, TOTAL <<作業変数名挿入位置>> : URIAGEDAKA_1.CODE, URIAGEDAKA_1.NAME, URIAGEDAKA_1.TOTAL
【0112】図35は、実施の形態で説明した図5の出
力処理文生成手段の処理流れ図と対応し、特定の事例と
してより詳細化したものである。図35において、3500
は図5の501 に対応し、3503から3521までが図5の502
の繰り返しに対応する。図35では、特定の事例におけ
る処理の最適化を行なっているため、図5における503
と504 は混在した形になっている。図35の3504と、35
08から3511までが図5の503 である、項目計算文の作成
に対応する。図35の3505から3506までと、3512と3513
と、3514から1515までが図5の504 である、出力文の作
成に対応する。図35の3516から3519までは、図5の50
5 に対応している。図35の3522は図5の506 に対応し
ている。
【0113】次に本実施例における、図1のプログラム
自動合成手段109 とプログラムスケルトン108 について
説明する。図39に本実施例におけるプログラムスケル
トンを示す。これは、本発明のデータ処理プログラム自
動生成システムが出力するデータ処理プログラムのう
ち、仕様の如何に関わらず固定の部分のスケルトンであ
る。図39には、<<プログラム名挿入位置>>、<<カーソ
ル定義文挿入位置>>、<<作業変数定義文列挿入位置>>、
<<" 初期処理" 挿入位置>>、<<出力処理文列挿入位置>
>、<<" 終了処理" 挿入位置>>の6箇所に具体的なプロ
グラムになっていない部分がある。この部分は、仕様が
変化するとプログラムも変化する部分である。図1のプ
ログラム自動合成手段109 は、これら6箇所に、プログ
ラムスケルトンカスタマイズ情報取得手段102 、カーソ
ル定義文生成手段105 、作業変数定義文生成手段106 、
出力処理文生成手段107 から渡されたそれぞれ、<<プロ
グラムスケルトンカスタマイズ情報>>、<<カーソル定義
文>>、<<作業変数定義文列>>、<<出力処理文列>>を挿入
することにより、データ処理プログラムを完成させ、生
成プログラム2を出力するものである。
【0114】図39は実施の形態で説明した図10のプ
ログラムスケルトンに対応し、特定の事例としてより詳
細化したものである。図39の3901:<< プログラム名挿
入位置>>、3909:<< カーソル定義文挿入位置>>、3910:<
< 作業変数定義文列挿入位置>>、3914:<<"初期処理" 挿
入位置>>、3927:<< 出力処理文挿入位置>>、3930:<<"終
了処理" 挿入位置>>が図10の、それぞれ、プログラム
名挿入位置1002、カーソル定義文挿入位置1003、作業変
数定義文列挿入位置1004、" 初期処理" 挿入位置1005、
出力処理文挿入位置1006、" 終了処理" 挿入位置1007に
対応している。
【0115】図38に本実施例に置ける図1のプログラ
ム自動合成手段109 の処理手順を示す。まず、3800: で
図1のプログラムスケルトン108 を入力する。3801で、
<<プログラム名>>と<<プログラムカスタマイズ情報>>と
<<カーソル定義文>>と<<作業変数定義文列>>と<<出力処
理文列>>を受け取る。3802: から3804: で、図1のプロ
グラムスケルトンカスタマイズ情報取得手段102:から渡
された<<プログラムスケルトンカスタマイズ情報>>か
ら、プログラム名、初期処理、終了処理に対応する文字
列を、図39のそれぞれ、3901: <<プログラム名挿入位
置>>、3914: <<初期処理挿入位置>>、3930: <<終了処理
挿入位置>>に挿入する。3805: では、図1のカーソル定
義文生成手段105 から渡された<<カーソル定義文>>を図
39の3909: <<カーソル定義文挿入位置>>に挿入する。
3806: では、図1の作業変数定義文生成手段106 から渡
された<<作業変数定義文列>>を図39の3910: <<作業変
数定義文列挿入位置>>に挿入する。3807: では、図1の
出力処理文生成手段106 から渡された<<出力処理文列>>
を図39の3927: <<出力処理文列挿入位置>>に挿入す
る。3808: では、以上により完成したデータ処理プログ
ラムを図1における生成プログラム2として出力する。
以上により、仕様からプログラムの自動生成が全て終了
したことになる。
【0116】図40に、図19に示した仕様から出力さ
れた生成プログラムの例を示す。図40と図39を比較
すると、図39の<<プログラム名挿入位置>>、<<カーソ
ル定義文挿入位置>>、<<作業変数定義文挿入位置>>、<<
初期処理文挿入位置>>、<<出力処理文挿入位置>>、<<終
了処理文挿入位置>>にそれぞれ、以下の文が挿入され、
プログラムが完成していることがわかる。
【0117】 <<プログラム名挿入位置>> : URIAGE_KEISAN() <<カーソル定義文挿入位置>> : --カーソル定義 cursor CSR_0 is select URIAGESU.CODE URIAGESU_CODE, URIAGESU.URIAGE URIAGESU_URIAGE, SHOUHIN.NAME SHOUHIN_NAME, SHOUHIN.PRICE SHOUHIN_PRICE from URIAGESU, SHOUHIN where URIAGESU.URIAGE>10 and URIAGESU.CODE=SHOUHIN.CODE ; --カーソル用変数定義 W_0 CSR_0%rowtype; <<作業変数定義文挿入位置>> : --出力用作業変数定義 type URIAGEDAKA_1_Type is record( W_ROWID rowid ,CODE char(4) ,NAME char(22) ,TOTAL number(14) ); URIAGEDAKA_1 URIAGEDAKA_1_Type; <<初期処理文挿入位置>> : Init_module; <<出力処理文挿入位置>> : --各出力項目の計算 URIAGEDAKA_1.CODE := W_0.URIAGESU_CODE; URIAGEDAKA_1.NAME := W_0.SHOUHIN_NAME; URIAGEDAKA_1.TOTAL:=W_0.URIAGESU_URIAGE * W_0.SHOUHIN_PRICE --出力表への出力処理 SQLRESULT := 0; begin insert into URIAGEDAKA( CODE ,NAME ,TOTAL_SALE ) values( URIAGEDAKA_1.CODE ,URIAGEDAKA_1.NAME ,URIAGEDAKA_1.TOTAL ); /*例外処理 */ --例外処理 exception when others then SQLRESULT := SQLCODE; end; <<終了処理文挿入位置>> : End_module;
【0118】図38は、実施の形態で説明した図6のプ
ログラム自動合成手段の処理流れ図と対応するものであ
る。図38において、3800と3801は、それぞれ、図6の
601 と602 に対応する。図38の3802から3804までが図
6の606 に対応し、図38の3805、3806、3807が、図6
のそれぞれ、603 、604 、605 に対応する。図38の38
08は、図6の607 に対応する。
【0119】
【発明の効果】以上説明したように、本発明によれば、
ソフトウェア開発者が、データベースの表のデータをカ
ーソル定義文を使って新規作成、更新、または削除を行
うデータ処理プログラムを開発する際、処理の仕様を記
述するだけで、そこからプログラムを自動的に生成し、
利用することができる。
【0120】また、セレクト項目定義を自動生成する構
成にあっては、その分だけソフトウェア開発者の仕様記
述の手間が省け、また誤りを作り込む危険性を少なくす
ることができる。同様に、データベースの表定義情報か
ら入力表項目定義、出力表項目定義を検索して取得する
構成にあっては、その分だけソフトウェア開発者の仕様
記述の手間が省け、また誤りを作り込む危険性を少なく
することができる。
【0121】また、複数種のプログラムスケルトンから
任意のプログラムスケルトンを選択できる構成にあって
は、同じ業務要求の仕様から、異なるプログラミング言
語によるプログラム、異なるアルゴリズムによるプログ
ラム、異なる異常系処理方式に基づくプログラム等、様
々なデータ処理プログラムを自動生成することができ
る。
【0122】また、プログラムの全体が自動生成される
ため、プログラム作成を人手で行う必要が無くなり、プ
ログラム開発の手間を大きく削減することができる。
【0123】また、プログラム開発において、人手の作
業が大幅に削減されることから、人手作業によるミス混
入の機会が大幅に減るため、プログラムへのミスの混入
を大幅に削減することができる。
【0124】また、プログラムスケルトン内に、データ
ベースやネットワークへのアクセス障害、システムの障
害が発生した場合の処理等、経験豊富なプログラム開発
者のノウハウが詰まった処理を埋め込んでおくことによ
り、業務要件だけを記述した仕様からこれらの複雑な処
理を行なうプログラムを自動生成できるため、業務用プ
ログラムの開発経験の浅いプログラム開発者でも、経験
者と同等な高品質なプログラムを開発できる。
【0125】また、システムの保守をする際、プログラ
ムではなく、仕様で保守を行うことができ、保守を大幅
に容易化できることである。その理由は、仕様からプロ
グラムを自動生成できると、仕様とプログラムが1対1
に対応することになり、システムに修正が必要となった
場合に、プログラムを直接修正するのではなく、仕様を
修正し、修正された仕様からプログラムを自動生成する
ことで、保守を行うことができるからである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態の構成を示すブロッ
ク図である。
【図2】本発明の第1の実施の形態における仕様の構成
と、仕様中の出力表処理定義における処理種別毎の必要
情報を示す図である。
【図3】本発明の第1の実施の形態におけるカーソル定
義文生成手段の処理を示す流れ図である。
【図4】本発明の第1の実施の形態における作業変数定
義文生成手段の処理を示す流れ図である。
【図5】本発明の第1の実施の形態における出力処理文
生成手段の処理を示す流れ図である。
【図6】本発明の第1の実施の形態におけるプログラム
自動合成手段の処理を示す流れ図である。
【図7】本発明の第1の実施の形態におけるカーソル定
義文生成手段で使用するカーソル定義文スケルトンの構
成を示す図である。
【図8】本発明の第1の実施の形態における作業変数定
義文生成手段で使用する作業変数定義文スケルトンの構
成を示す図である。
【図9】本発明の第1の実施の形態における出力処理文
生成手段で使用する出力処理文スケルトンの構成と、そ
のスケルトンのうちの挿入文、更新文、削除文の構成を
示す図である。
【図10】本発明の第1の実施の形態におけるプログラ
ムスケルトンの構成を示す図である。
【図11】本発明の第2の実施の形態における仕様の構
成を示す図である。
【図12】本発明の第2の実施の形態におけるカーソル
定義文生成手段の処理を示す流れ図である。
【図13】本発明の第2の実施の形態におけるセレクト
項目定義情報を作成する処理を示す流れ図である。
【図14】本発明の第3の実施の形態の構成を示すブロ
ック図である。
【図15】本発明の第3の実施の形態における仕様の構
成を示す図である。
【図16】本発明の第4の実施の形態における仕様入力
手段の処理を示す処理流れ図である。
【図17】本発明の第1の実施の形態の処理例を示す処
理流れ図である。
【図18】本発明の第6の実施の形態の構成を示すブロ
ック図である。
【図19】本発明の実施例の仕様の構成及び例を示す図
である。
【図20】本発明の実施例の仕様の例の意味を説明する
ための図である。
【図21】本発明の実施例における仕様入力手段の処理
を示す流れ図である。
【図22】本発明の実施例における、仕様を入力した後
の内部情報の構成と例を示す図である。
【図23】本発明の実施例における、プログラムスケル
トンカスタマイズ情報取得手段がプログラム自動合成手
段に渡すプログラムスケルトンカスタマイズ情報の構成
を示す図である。
【図24】本発明の実施例における、プログラムスケル
トンカスタマイズ情報取得手段がプログラム自動合成手
段に渡すプログラムスケルトンカスタマイズ情報の例を
示す図である。
【図25】本発明の実施例における、カーソル定義情報
取得手段がカーソル定義文生成手段に渡すカーソル定義
情報の構成を示す図である。
【図26】本発明の実施例における、カーソル定義情報
取得手段がカーソル定義文生成手段に渡すカーソル定義
情報の例を示す図である。
【図27】本発明の実施例における、出力項目処理情報
取得手段が作業変数定義文生成手段と出力処理文生成手
段に渡す出力項目情報の構成を示す図である。
【図28】本発明の実施例における、出力項目処理情報
取得手段が作業変数定義文生成手段と出力処理文生成手
段に渡す出力項目情報の例を示す図である。
【図29】本発明の実施例におけるカーソル定義文生成
手段の処理内容を示す図である。
【図30】本発明の実施例におけるカーソル定義文生成
手段で使用するカーソル定義文スケルトンを示す図であ
る。
【図31】本発明の実施例におけるカーソル定義文生成
手段によって生成されたカーソル定義文の例を示す図で
ある。
【図32】本発明の実施例における作業変数定義文生成
手段の処理内容を示す図である。
【図33】本発明の実施例における作業変数定義文生成
手段で使用する作業変数定義文スケルトンを示す図であ
る。
【図34】本発明の実施例における作業変数定義文生成
手段によって生成された作業変数定義文の例を示す図で
ある。
【図35】本発明の実施例における出力処理文生成手段
の処理内容を示す図である。
【図36】本発明の実施例における出力処理文生成手段
で使用する出力処理文スケルトンを示す図である。
【図37】本発明の実施例における出力処理文生成手段
によって生成された出力処理文の例を示す図である。
【図38】本発明の実施例におけるプログラム自動合成
手段の処理内容を示す図である。
【図39】本発明の実施例におけるプログラムスケルト
ンを示す図である。
【図40】本発明の実施例におけるプログラム自動合成
手段によって生成された出力プログラムの例を示す図で
ある。
【図41】第1の従来技術の構成を示す図である。
【図42】第2の従来技術の構成を示す図である。
【符号の説明】
1…仕様 2…生成プログラム 10…データ処理プログラム自動生成システム 101 …仕様入力手段 102 …プログラムスケルトンカスタマイズ情報取得手段 103 …カーソル定義情報取得手段 104 …出力項目処理情報取得手段 105 …カーソル定義文生成手段 106 …作業変数定義文生成手段 107 …出力処理文生成手段 108 …プログラムスケルトン 109 …プログラム自動合成手段

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 データベースの表のデータを参照、更
    新、削除するデータ処理プログラムを自動的に生成する
    データ処理プログラム自動生成システムであって、 仕様から取得した情報に基づいて、カーソル定義文、作
    業変数定義文、出力処理文を生成する手段と、 前記データ処理プログラムのうち、仕様の如何に関わら
    ず固定の部分のプログラムと仕様によって変化する部分
    のプログラム断片の挿入位置とを含むプログラムスケル
    トンの該当箇所に、前記生成されたカーソル定義文、作
    業変数定義文、出力処理文、および前記仕様中のプログ
    ラムカスタマイズ情報を挿入して前記データ処理プログ
    ラムを完成させ、出力する手段とを含むデータ処理プロ
    グラム自動生成システム。
  2. 【請求項2】 データベースの表のデータを参照、更
    新、削除するデータ処理プログラムを自動的に生成する
    データ処理プログラム自動生成システムであって、 プログラム名と入力表項目定義とセレクト項目定義と出
    力表項目定義と出力表処理定義とセレクト条件定義とプ
    ログラムカスタマイズ情報とを含む仕様を入力する仕様
    入力手段と、 前記仕様入力手段で入力された仕様からプログラムスケ
    ルトンをカスタマイズするための情報として、プログラ
    ム名とプログラムカスタマイズ情報を取り出すプログラ
    ムスケルトンカスタマイズ情報取得手段と、 前記仕様入力手段で入力された仕様から入力表項目定義
    とセレクト項目定義とセレクト条件定義を取り出すカー
    ソル定義情報取得手段と、 前記仕様入力手段で入力された仕様から出力表項目定義
    と出力表処理定義を取り出す出力項目処理情報取得手段
    と、 前記カーソル定義情報取得手段で取得された情報からカ
    ーソル定義文を生成するカーソル定義文生成手段と、 前記出力項目処理情報取得手段で取得された出力表項目
    定義のうち、処理種別が挿入である出力表に対応するも
    のから作業変数定義文を生成する作業変数定義文生成手
    段と、 前記出力項目処理情報取得手段で取得された出力表項目
    定義と出力表処理定義から、処理種別が挿入の場合は処
    理条件文と項目計算文と挿入文とを含む出力処理文を生
    成し、処理種別が更新の場合には処理条件文と更新文と
    を含む出力処理文を生成し、処理種別が削除の場合には
    処理条件文と削除文とを含む出力処理文を生成する出力
    処理文生成手段と、 前記データ処理プログラムのうち、仕様の如何に関わら
    ず固定の部分のプログラムと仕様によって変化する部分
    のプログラム断片の挿入位置とを含むプログラムスケル
    トンの該当挿入位置に、前記プログラムスケルトンカス
    タマイズ情報取得手段で取得したプログラム名とプログ
    ラムカスタマイズ情報と、前記カーソル定義文生成手段
    で生成したカーソル定義文と、前記作業変数定義文生成
    手段で生成した作業変数定義文と、前記出力処理文生成
    手段で生成した出力処理文とを挿入することによってプ
    ログラムを完成させ、出力するプログラム自動合成手段
    とを有するデータ処理プログラム自動生成システム。
  3. 【請求項3】 データベースの表のデータを参照、更
    新、削除するデータ処理プログラムを自動的に生成する
    データ処理プログラム自動生成システムであって、 プログラム名と入力表項目定義と出力表項目定義と出力
    表処理定義とセレクト条件定義とプログラムカスタマイ
    ズ情報とを含む仕様を入力する仕様入力手段と、 前記仕様入力手段で入力された仕様からプログラムスケ
    ルトンをカスタマイズするための情報として、プログラ
    ム名とプログラムカスタマイズ情報を取り出すプログラ
    ムスケルトンカスタマイズ情報取得手段と、 前記仕様入力手段で入力された仕様から入力表項目定義
    とセレクト条件定義と出力表処理定義とを取り出すカー
    ソル定義情報取得手段と、 前記仕様入力手段で入力された仕様から出力表項目定義
    と出力表処理定義を取り出す出力項目処理情報取得手段
    と、 前記カーソル定義情報取得手段で取得された入力表項目
    定義とセレクト条件定義と出力表処理定義とからセレク
    ト項目定義を作成し、該作成したセレクト項目定義と前
    記カーソル定義情報取得手段で取得されたセレクト条件
    定義とからカーソル定義文を生成するカーソル定義文生
    成手段と、 前記出力項目処理情報取得手段で取得された出力表項目
    定義のうち、処理種別が挿入である出力表に対応するも
    のから作業変数定義文を生成する作業変数定義文生成手
    段と、 前記出力項目処理情報取得手段で取得された出力表項目
    定義と出力表処理定義から、処理種別が挿入の場合は処
    理条件文と項目計算文と挿入文とを含む出力処理文を生
    成し、処理種別が更新の場合には処理条件文と更新文と
    を含む出力処理文を生成し、処理種別が削除の場合には
    処理条件文と削除文とを含む出力処理文を生成する出力
    処理文生成手段と、 前記データ処理プログラムのうち、仕様の如何に関わら
    ず固定の部分のプログラムと仕様によって変化する部分
    のプログラム断片の挿入位置とを含むプログラムスケル
    トンの該当挿入位置に、前記プログラムスケルトンカス
    タマイズ情報取得手段で取得したプログラム名とプログ
    ラムカスタマイズ情報と、前記カーソル定義文生成手段
    で生成したカーソル定義文と、前記作業変数定義文生成
    手段で生成した作業変数定義文と、前記出力処理文生成
    手段で生成した出力処理文とを挿入することによってプ
    ログラムを完成させ、出力するプログラム自動合成手段
    とを有するデータ処理プログラム自動生成システム。
  4. 【請求項4】 仕様の如何に関わらず固定の部分のプロ
    グラムと仕様によって変化する部分のプログラム断片の
    挿入位置とを含むプログラムスケルトンを複数種類格納
    するプログラムスケルトンライブラリと、 前記プログラムスケルトンライブラリから利用者の指定
    した1つのプログラムスケルトンを選択し、前記プログ
    ラム自動合成手段に渡すプログラムスケルトン選択手段
    とを備えた請求項2または3記載のデータ処理プログラ
    ム自動生成システム。
  5. 【請求項5】 前記仕様入力手段は、処理で使用する全
    ての入力表名と出力表名を入力し、データベースの表定
    義情報から当該入力表と出力表の全ての項目名と型情報
    を検索して取得すると共に、これを画面上に提示して仕
    様記述者による入力表項目定義および出力表項目定義以
    外の仕様情報の指定を可能とする構成を有する請求項
    2、3または4記載のデータ処理プログラム自動生成シ
    ステム。
  6. 【請求項6】 前記プログラムスケルトンはデバグ用ト
    レース文を含み、 前記プログラム自動合成手段は、デバグ用のプログラム
    を生成するのか、本番用のプログラムを生成するのかの
    別を示す生成プログラム識別情報に従って、前記プログ
    ラムスケルトン中のデバグ用トレース文を取り去るか、
    残すかを切りわける構成を有する請求項2、3、4また
    は5記載のデータ処理プログラム自動生成システム。
  7. 【請求項7】 データベースの表のデータを参照、更
    新、削除するデータ処理プログラムを自動的に生成する
    データ処理プログラム自動生成方法であって、(a)プ
    ログラム名と入力表項目定義とセレクト項目定義と出力
    表項目定義と出力表処理定義とセレクト条件定義とプロ
    グラムカスタマイズ情報とを含む仕様を入力するステッ
    プと、(b)ステップaで入力された仕様からプログラ
    ムスケルトンをカスタマイズするための情報として、プ
    ログラム名とプログラムカスタマイズ情報を取り出すス
    テップと、(c)ステップaで入力された仕様から入力
    表項目定義とセレクト項目定義とセレクト条件定義を取
    り出すステップと、(d)ステップaで入力された仕様
    から出力表項目定義と出力表処理定義を取り出すステッ
    プと、(e)ステップcで取得された情報からカーソル
    定義文を生成するステップと、(f)ステップdで取得
    された出力表項目定義のうち、処理種別が挿入である出
    力表に対応するものから作業変数定義文を生成するステ
    ップと、(g)ステップdで取得された出力表項目定義
    と出力表処理定義から、処理種別が挿入の場合は処理条
    件文と項目計算文と挿入文とを含む出力処理文を生成
    し、処理種別が更新の場合には処理条件文と更新文とを
    含む出力処理文を生成し、処理種別が削除の場合には処
    理条件文と削除文とを含む出力処理文を生成するステッ
    プと、(h)前記データ処理プログラムのうち、仕様の
    如何に関わらず固定の部分のプログラムと仕様によって
    変化する部分のプログラム断片の挿入位置とを含むプロ
    グラムスケルトンの該当挿入位置に、ステップbで取得
    したプログラム名とプログラムカスタマイズ情報と、前
    記生成したカーソル定義文と、前記生成した作業変数定
    義文と、前記生成した出力処理文とを挿入することによ
    ってプログラムを完成させ、出力するプログラムステッ
    プとを含むデータ処理プログラム自動生成方法。
  8. 【請求項8】 データベースの表のデータを参照、更
    新、削除するデータ処理プログラムを自動的に生成する
    データ処理プログラム自動生成方法であって、(a)プ
    ログラム名と入力表項目定義と出力表項目定義と出力表
    処理定義とセレクト条件定義とプログラムカスタマイズ
    情報とを含む仕様を入力するステップと、(b)ステッ
    プaで入力された仕様からプログラムスケルトンをカス
    タマイズするための情報として、プログラム名とプログ
    ラムカスタマイズ情報を取り出すステップと、(c)ス
    テップaで入力された仕様から入力表項目定義とセレク
    ト条件定義と出力表処理定義とを取り出すステップと、
    (d)ステップaで入力された仕様から出力表項目定義
    と出力表処理定義を取り出すステップと、(e)ステッ
    プcで取得された入力表項目定義とセレクト条件定義と
    出力表処理定義とからセレクト項目定義を作成し、該作
    成したセレクト項目定義と前記セレクト条件定義とから
    カーソル定義文を生成するステップと、(f)ステップ
    dで取得された出力表項目定義のうち、処理種別が挿入
    である出力表に対応するものから作業変数定義文を生成
    するステップと、(g)ステップdで取得された出力表
    項目定義と出力表処理定義から、処理種別が挿入の場合
    は処理条件文と項目計算文と挿入文とを含む出力処理文
    を生成し、処理種別が更新の場合には処理条件文と更新
    文とを含む出力処理文を生成し、処理種別が削除の場合
    には処理条件文と削除文とを含む出力処理文を生成する
    ステップと、(h)前記データ処理プログラムのうち、
    仕様の如何に関わらず固定の部分のプログラムと仕様に
    よって変化する部分のプログラム断片の挿入位置とを含
    むプログラムスケルトンの該当挿入位置に、ステップb
    で取得したプログラム名とプログラムカスタマイズ情報
    と、前記生成したカーソル定義文と、前記生成した作業
    変数定義文と、前記生成した出力処理文とを挿入するこ
    とによってプログラムを完成させ、出力するステップと
    を含むデータ処理プログラム自動生成方法。
  9. 【請求項9】 データベースの表のデータを参照、更
    新、削除するデータ処理プログラムを自動的に生成する
    データ処理プログラムを自動生成するプログラムを記録
    した媒体であって、コンピュータを、 プログラム名と入力表項目定義とセレクト項目定義と出
    力表項目定義と出力表処理定義とセレクト条件定義とプ
    ログラムカスタマイズ情報とを含む仕様を入力する仕様
    入力手段、 前記仕様入力手段で入力された仕様からプログラムスケ
    ルトンをカスタマイズするための情報として、プログラ
    ム名とプログラムカスタマイズ情報を取り出すプログラ
    ムスケルトンカスタマイズ情報取得手段、 前記仕様入力手段で入力された仕様から入力表項目定義
    とセレクト項目定義とセレクト条件定義を取り出すカー
    ソル定義情報取得手段、 前記仕様入力手段で入力された仕様から出力表項目定義
    と出力表処理定義を取り出す出力項目処理情報取得手
    段、 前記カーソル定義情報取得手段で取得された情報からカ
    ーソル定義文を生成するカーソル定義文生成手段、 前記出力項目処理情報取得手段で取得された出力表項目
    定義のうち、処理種別が挿入である出力表に対応するも
    のから作業変数定義文を生成する作業変数定義文生成手
    段、 前記出力項目処理情報取得手段で取得された出力表項目
    定義と出力表処理定義から、処理種別が挿入の場合は処
    理条件文と項目計算文と挿入文とを含む出力処理文を生
    成し、処理種別が更新の場合には処理条件文と更新文と
    を含む出力処理文を生成し、処理種別が削除の場合には
    処理条件文と削除文とを含む出力処理文を生成する出力
    処理文生成手段、 前記データ処理プログラムのうち、仕様の如何に関わら
    ず固定の部分のプログラムと仕様によって変化する部分
    のプログラム断片の挿入位置とを含むプログラムスケル
    トンの該当挿入位置に、前記プログラムスケルトンカス
    タマイズ情報取得手段で取得したプログラム名とプログ
    ラムカスタマイズ情報と、前記カーソル定義文生成手段
    で生成したカーソル定義文と、前記作業変数定義文生成
    手段で生成した作業変数定義文と、前記出力処理文生成
    手段で生成した出力処理文とを挿入することによってプ
    ログラムを完成させ、出力するプログラム自動合成手
    段、 として機能させるプログラムを記録したコンピュータ可
    読記録媒体。
  10. 【請求項10】 データベースの表のデータを参照、更
    新、削除するデータ処理プログラムを自動的に生成する
    データ処理プログラムを自動生成するプログラムを記録
    した媒体であって、コンピュータを、 プログラム名と入力表項目定義と出力表項目定義と出力
    表処理定義とセレクト条件定義とプログラムカスタマイ
    ズ情報とを含む仕様を入力する仕様入力手段、前記仕様
    入力手段で入力された仕様からプログラムスケルトンを
    カスタマイズするための情報として、プログラム名とプ
    ログラムカスタマイズ情報を取り出すプログラムスケル
    トンカスタマイズ情報取得手段、 前記仕様入力手段で入力された仕様から入力表項目定義
    とセレクト条件定義と出力表処理定義とを取り出すカー
    ソル定義情報取得手段、 前記仕様入力手段で入力された仕様から出力表項目定義
    と出力表処理定義を取り出す出力項目処理情報取得手
    段、 前記カーソル定義情報取得手段で取得された入力表項目
    定義とセレクト条件定義と出力表処理定義とからセレク
    ト項目定義を作成し、該作成したセレクト項目定義と前
    記カーソル定義情報取得手段で取得されたセレクト条件
    定義とからカーソル定義文を生成するカーソル定義文生
    成手段、 前記出力項目処理情報取得手段で取得された出力表項目
    定義のうち、処理種別が挿入である出力表に対応するも
    のから作業変数定義文を生成する作業変数定義文生成手
    段、 前記出力項目処理情報取得手段で取得された出力表項目
    定義と出力表処理定義から、処理種別が挿入の場合は処
    理条件文と項目計算文と挿入文とを含む出力処理文を生
    成し、処理種別が更新の場合には処理条件文と更新文と
    を含む出力処理文を生成し、処理種別が削除の場合には
    処理条件文と削除文とを含む出力処理文を生成する出力
    処理文生成手段、 前記データ処理プログラムのうち、仕様の如何に関わら
    ず固定の部分のプログラムと仕様によって変化する部分
    のプログラム断片の挿入位置とを含むプログラムスケル
    トンの該当挿入位置に、前記プログラムスケルトンカス
    タマイズ情報取得手段で取得したプログラム名とプログ
    ラムカスタマイズ情報と、前記カーソル定義文生成手段
    で生成したカーソル定義文と、前記作業変数定義文生成
    手段で生成した作業変数定義文と、前記出力処理文生成
    手段で生成した出力処理文とを挿入することによってプ
    ログラムを完成させ、出力するプログラム自動合成手
    段、 として機能させるプログラムを記録したコンピュータ可
    読記録媒体。
JP23391099A 1999-08-20 1999-08-20 データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読記録媒体 Expired - Fee Related JP3871832B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP23391099A JP3871832B2 (ja) 1999-08-20 1999-08-20 データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読記録媒体
US09/640,693 US6698010B1 (en) 1999-08-20 2000-08-18 System, method and computer program product for automatic generation of data processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23391099A JP3871832B2 (ja) 1999-08-20 1999-08-20 データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読記録媒体

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2004129527A Division JP2004213698A (ja) 2004-04-26 2004-04-26 データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読録媒体

Publications (2)

Publication Number Publication Date
JP2001060150A true JP2001060150A (ja) 2001-03-06
JP3871832B2 JP3871832B2 (ja) 2007-01-24

Family

ID=16962513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23391099A Expired - Fee Related JP3871832B2 (ja) 1999-08-20 1999-08-20 データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読記録媒体

Country Status (2)

Country Link
US (1) US6698010B1 (ja)
JP (1) JP3871832B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297701A (ja) * 2001-03-29 2002-10-11 Toki Nakagaki 製造原価計算式を自ら創出し、かつ実行する汎用型原価計算システムとその計算方法
WO2005088446A1 (ja) * 2004-03-11 2005-09-22 Sharp Kabushiki Kaisha 利便性、安全性の高いWebサービスをユーザに提供できるアプリケーション作成装置
JP2006178706A (ja) * 2004-12-22 2006-07-06 Nec Corp データ処理プログラム自動生成システム、データ処理プログラム自動生成方法及びデータ処理プログラム自動生成用プログラム
JP2010224959A (ja) * 2009-03-24 2010-10-07 Ntt Comware Corp リスト作成情報設定装置、方法、プログラム、および、データ構造
US7865529B2 (en) 2003-11-18 2011-01-04 Intelligent Model, Limited Batch processing apparatus
JP2011165039A (ja) * 2010-02-12 2011-08-25 Hitachi Ltd モデルデバッグ装置およびモデルデバッグ方法
CN113486116A (zh) * 2021-07-07 2021-10-08 建信金融科技有限责任公司 一种数据同步方法、装置、电子设备及计算机可读介质

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1251429A1 (de) * 2001-04-19 2002-10-23 ABB Schweiz AG Erzeugung von redundanten Computerprogrammmodulen
US7237224B1 (en) 2003-08-28 2007-06-26 Ricoh Company Ltd. Data structure used for skeleton function of a class in a skeleton code creation tool
US7793257B2 (en) * 2003-08-28 2010-09-07 Ricoh Company, Ltd. Technique for automating code generation in developing software systems
US7308675B2 (en) * 2003-08-28 2007-12-11 Ricoh Company, Ltd. Data structure used for directory structure navigation in a skeleton code creation tool
US20060059459A1 (en) * 2004-09-13 2006-03-16 Microsoft Corporation Generating solution-based software documentation
US8065168B2 (en) * 2006-04-25 2011-11-22 Acs State And Local Solutions, Inc. Method, system and computer program code for automatically generating software for reformatting incoming data
US7856617B2 (en) * 2006-04-25 2010-12-21 Acs State And Local Solutions, Inc. Method, system and computer program product for creating software for processing an insurance claim
US7913245B2 (en) * 2006-06-21 2011-03-22 International Business Machines Corporation Apparatus, system and method for modular distribution and maintenance of non-“object code only” dynamic components
WO2008000878A2 (es) * 2006-06-30 2008-01-03 Business Excellence Through Information Technologies, S.L. Sistema de comercio electrónico para la adquisición de aplicaciones informáticas desarrolladas a medida para la gestión de información a partir de modelos estructurados de datos
JP5581894B2 (ja) * 2010-08-26 2014-09-03 日本電気株式会社 データ処理プログラム自動生成システム
CN106778780B (zh) * 2016-12-14 2020-05-01 江苏维普光电科技有限公司 一种基于gpu的边缘检测图像二值化方法
CN115080982A (zh) * 2022-06-24 2022-09-20 哈尔滨工业大学 一种针对漏洞检测模型的组合对抗攻击方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01147621A (ja) 1987-12-04 1989-06-09 Hitachi Ltd プログラム自動生成方法
JPH0390933A (ja) 1989-09-01 1991-04-16 Hitachi Ltd ソフトウェアプログラム自動生成方式
JPH03182932A (ja) 1989-12-13 1991-08-08 Hitachi Ltd プログラム生成方式
JP2720904B2 (ja) * 1990-08-31 1998-03-04 富士通株式会社 自己記述によるデータベース管理システムの構成方法および開発/変更方法
US5353401A (en) * 1992-11-06 1994-10-04 Ricoh Company, Ltd. Automatic interface layout generator for database systems
WO1995003586A1 (en) * 1993-07-21 1995-02-02 Persistence Software, Inc. Method and apparatus for generation of code for mapping relational data to objects
US5758144A (en) * 1994-06-24 1998-05-26 International Business Machines Corporation Database execution cost and system performance estimator
US5875331A (en) * 1994-09-30 1999-02-23 International Business Machines Corp. System and method for generating target language code utilizing an object oriented code generator
FI103155B (fi) * 1995-10-11 1999-04-30 Nokia Telecommunications Oy Menetelmä tietokoneohjattujen palvelujen tuottamiseksi
JP3427918B2 (ja) * 1996-07-02 2003-07-22 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラム開発支援システム及び支援方法
JPH10232803A (ja) 1997-02-20 1998-09-02 Mitsubishi Electric Corp プログラム変換システム
JPH10254689A (ja) * 1997-03-14 1998-09-25 Hitachi Ltd クライアント・サーバシステムのアプリケーション構成設計支援方式
US6182274B1 (en) * 1997-05-01 2001-01-30 International Business Machines Corporation Reusing code in object-oriented program development
US5987247A (en) * 1997-05-09 1999-11-16 International Business Machines Corporation Systems, methods and computer program products for building frameworks in an object oriented environment

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002297701A (ja) * 2001-03-29 2002-10-11 Toki Nakagaki 製造原価計算式を自ら創出し、かつ実行する汎用型原価計算システムとその計算方法
US7865529B2 (en) 2003-11-18 2011-01-04 Intelligent Model, Limited Batch processing apparatus
WO2005088446A1 (ja) * 2004-03-11 2005-09-22 Sharp Kabushiki Kaisha 利便性、安全性の高いWebサービスをユーザに提供できるアプリケーション作成装置
JP2006178706A (ja) * 2004-12-22 2006-07-06 Nec Corp データ処理プログラム自動生成システム、データ処理プログラム自動生成方法及びデータ処理プログラム自動生成用プログラム
JP2010224959A (ja) * 2009-03-24 2010-10-07 Ntt Comware Corp リスト作成情報設定装置、方法、プログラム、および、データ構造
JP2011165039A (ja) * 2010-02-12 2011-08-25 Hitachi Ltd モデルデバッグ装置およびモデルデバッグ方法
CN113486116A (zh) * 2021-07-07 2021-10-08 建信金融科技有限责任公司 一种数据同步方法、装置、电子设备及计算机可读介质

Also Published As

Publication number Publication date
US6698010B1 (en) 2004-02-24
JP3871832B2 (ja) 2007-01-24

Similar Documents

Publication Publication Date Title
JP3871832B2 (ja) データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読記録媒体
US10970474B2 (en) Method and system for editing text with a find and replace function leveraging derivations of the find and replace input
JP3136035B2 (ja) データベースシステム用インターフェースのための自動レイアウト・ジェネレータ及びその生成方法
US6915306B1 (en) Automatic generation of data models and accompanying user interfaces
US8930337B2 (en) Mapping dataset elements
US5341469A (en) Structured text system
JP2018516420A (ja) 自然言語により機能アーキテクチャ文書及びソフトウェア設計・解析仕様書を自動的に生成するプロセス及びシステム
JP2007087216A (ja) 階層型辞書作成装置、プログラムおよび階層型辞書作成方法
AU2007200385B2 (en) Re-usuable clauses
JP3828379B2 (ja) テスト仕様生成支援装置、方法、プログラム及び記録媒体
WO2006095434A1 (ja) ソフトウェア構築プログラム、該プログラムを記録した記録媒体、ソフトウェア構築方法、およびソフトウェア構築システム
JP3186117B2 (ja) データ中心型ソフトウエア部品によるプログラム自動生成システム
EP3977261A1 (en) Process and system for automatic generation of functional architecture documents and software design and analysis specification documents from natural language
US9098263B2 (en) Database application assembly and preparation
JP2004213698A (ja) データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読録媒体
JP5581894B2 (ja) データ処理プログラム自動生成システム
KR100656559B1 (ko) Bibd 방법론을 이용하는 프로그램 자동 개발 장치
CA2144483A1 (en) Methods and apparatus for reverse engineering a program and generating an object-oriented redesign
JPH0588863A (ja) プログラム開発支援システム
JPH04181455A (ja) 画面遷移仕様作成方法
JPH1153391A (ja) データベースアクセス方法
JPH10254691A (ja) プログラム開発支援方法及びそれを実施するプログラムを有する記憶媒体
JP2002236585A (ja) 複数の論理設計仕様の項目名称を標準化するための方法、同方法を適用したシステム、および記憶媒体
JP2003186670A (ja) データベースアクセスコンポーネントの自動生成装置,自動生成方法及び自動生成プログラム
JP2006004145A (ja) プログラムコード生成装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20031216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040213

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040309

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20040408

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040408

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040520

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20040604

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050311

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061018

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20040625

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091027

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101027

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111027

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121027

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131027

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees