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

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

Info

Publication number
JP3871832B2
JP3871832B2 JP23391099A JP23391099A JP3871832B2 JP 3871832 B2 JP3871832 B2 JP 3871832B2 JP 23391099 A JP23391099 A JP 23391099A JP 23391099 A JP23391099 A JP 23391099A JP 3871832 B2 JP3871832 B2 JP 3871832B2
Authority
JP
Japan
Prior art keywords
statement
processing
definition
output
item
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.)
Expired - Fee Related
Application number
JP23391099A
Other languages
English (en)
Other versions
JP2001060150A (ja
Inventor
徹 山之内
明良 佐藤
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

Images

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)

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】
【課題を解決するための手段】
データベースの表のデータを参照し、表中に新たなデータを挿入したり、表中のデータを更新したり、表中のデータを削除したりするプログラムにおいて、前段処理部分と繰り返し処理部分と後段処理部分を備えたプログラム全体を自動的に生成する本発明のデータ処理プログラム自動生成システムは、
仕様の如何に関わらず固定の部分のプログラムとして、前段処理部分と、前記前段処理部分に続く繰り返し処理部分と、前記繰り返し処理部分に続く後段処理部分を含み、仕様によって変化する部分のプログラム断片の挿入位置として、前段処理部分内にプログラム名挿入位置と、カーソル定義文挿入位置と、作業変数定義文列挿入位置と、初期処理挿入位置とを含み、繰り返し処理部分内に出力処理文列挿入位置を含み、後段処理部分に終了処理挿入位置を含むプログラムスケルトンを、複数種類格納するための記憶装置に格納されたプログラムスケルトンライブラリと、
生成したプログラムに付与するプログラム名と、入力表の名前とその入力表の各項目の名前および型の情報を含む入力表項目定義と、セレクト文内に定義する入力表項目の名前を含むセレクト項目定義と、出力表の名前とその出力表の各項目の名前および型の情報を含む出力表項目定義と、各出力表の処理を行う条件を示す処理条件と、挿入、更新、削除の別を示す処理種別と、処理種別が更新と削除の場合に更新、削除するための条件を示す更新、削除条件と、処理種別が挿入と更新の場合に各項目の値を計算する処理式とを含む出力表処理定義と、入力表からデータを取得する際の条件を含むセレクト条件定義と、プログラムスケルトンをカスタマイズするためのその他の情報を含むプログラムカスタマイズ情報とを含む仕様を入力する仕様入力手段と、
前記仕様入力手段で入力された仕様からプログラムスケルトンをカスタマイズするための情報として、プログラム名とプログラムカスタマイズ情報を取り出すプログラムスケルトンカスタマイズ情報取得手段と、
前記仕様入力手段で入力された仕様から入力表項目定義とセレクト項目定義とセレクト条件定義を取り出すカーソル定義情報取得手段と、
前記仕様入力手段で入力された仕様から出力表項目定義と出力表処理定義を取り出す出力項目処理情報取得手段と、
前記カーソル定義情報取得手段で取得された情報からカーソル定義文を生成するカーソル定義文生成手段であって、入力表項目定義のうちセレクト項目定義内に指定された項目名だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト項目列を生成し、入力表項目定義内に指定された入力表のうち、セレクト項目定義で使用されている入力表の名前だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト表列を生成し、セレクト条件定義を、生成するプログラミング言語の構文に従った形式に加工してセレクト条件文を生成し、セレクト項目列挿入位置、入力表列挿入位置およびセレクト条件挿入位置を持つ、生成するプログラミング言語に依存したカーソル定義スケルトンの該当挿入位置に、前記生成したセレクト項目列、セレクト表列およびセレクト条件を挿入してカーソル定義文を生成するカーソル定義文生成手段と、
前記出力項目処理情報取得手段で取得された出力表項目定義のうち、処理種別が挿入である出力表に対応するものから作業変数定義文を生成する作業変数定義文生成手段であって、処理種別が挿入である出力表について、その出力表のレコード型を定義する型定義文を生成し、その定義された型で作業領域変数を定義する変数定義文を生成し、型定義文挿入位置および変数定義文挿入位置を持つ作業変数定義スケルトンの該当挿入位置に、前記生成した型定義文および変数定義文を挿入して作業変数定義文を生成する作業変数定義文生成手段と、
前記出力項目処理情報取得手段で取得された出力表項目定義と出力表処理定義から、処理種別が挿入の場合は処理条件文と項目計算文と挿入文とを含む出力処理文を生成し、処理種別が更新の場合には処理条件文と更新文とを含む出力処理文を生成し、処理種別が削除の場合には処理条件文と削除文とを含む出力処理文を生成する出力処理文生成手段であって、出力表処理定義の処理条件から処理条件文を生成し、出力表処理定義の処理種別が挿入、更新、削除の何れであるかを判別し、処理種別が挿入の場合、出力表処理定義の各項目の処理式から項目計算文を生成し、出力表項目定義から出力表名、項目名リストおよび変数名リストを含む挿入文を生成し、処理条件文挿入位置、項目計算文挿入位置および出力文挿入位置を持つ出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、項目計算文挿入位置に前記生成した項目計算文を、出力文挿入位置に前記生成した挿入文をそれぞれ挿入して出力処理文を生成し、処理種別が更新の場合、出力表処理定義の各項目の処理式と出力表項目定義とから出力表名、更新文リストおよび更新条件を含む更新文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した更新文をそれぞれ挿入して出力処理文を生成し、処理種別が削除の場合、出力表項目定義から出力表名および削除条件を含む削除文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した削除文をそれぞれ挿入して出力処理文を生成する出力処理文生成手段と、
前記プログラムスケルトンライブラリから利用者の指定した1つのプログラムスケルトンを選択するプログラムスケルトン選択手段と、
前記データ処理プログラムのうち、前記プログラムスケルトン選択手段で選択されたプログラムスケルトンの該当挿入位置に、前記プログラムスケルトンカスタマイズ情報取得手段で取得したプログラム名とプログラムカスタマイズ情報と、前記カーソル定義文生成手段で生成したカーソル定義文と、前記作業変数定義文生成手段で生成した作業変数定義文と、前記出力処理文生成手段で生成した出力処理文とを挿入することによってプログラムを完成させ、出力するプログラム自動合成手段とを有する。
【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 に渡す(1705)。また、作業変数定義文生成手段106 は、出力項目処理情報取得手段104 から受けとった情報を加工し、生成プログラム中の、処理種別が挿入である全ての出力表の各項目の計算結果を保存するための変数定義文を生成し、プログラム自動合成手段109 に渡す(1706)。更に、出力処理文生成手段107 は、出力項目処理情報取得手段104 から受けとった情報を加工し、生成プログラム中の全ての出力表のうち、処理種別が挿入の出力表に対しては処理条件文と項目計算文と挿入文とからなる出力処理文を生成し、処理種別が更新の出力表に対しては処理条件と更新文とからなる出力処理文を生成し、処理種別が削除の出力表に対しては処理条件文と項目計算文と削除文とからなる出力処理文を生成し、プログラム自動合成手段109 に渡す(1707)。
【0021】
また図1において、プログラムスケルトン108 は、生成プログラムのうち、仕様としてどのような業務要件が与えられても変化しない部分を、プログラムの骨組みとして用意したものである。このプログラムの骨組みにはプログラム名、カーソル定義文、作業変数定義文、出力処理文の部分と、さらに必要に応じて1つ以上のプログラムの断片の挿入位置が埋め込まれており、これらの挿入位置に、仕様で与えられた業務要件から生成されたプログラムの断片を挿入することにより、完成したプログラムを得ることを目的としたものである。
【0022】
プログラム自動合成手段109 は、プログラムスケルトン108 の挿入位置の内、プログラム名に対応する挿入位置にプログラムスケルトンカスタマイズ情報取得手段102 で取得されたプログラム名を挿入し、カーソル定義文に対応する挿入位置にカーソル定義文生成手段105 で生成されたカーソル定義文を挿入し、作業変数定義文に対応する挿入位置に作業変数定義文生成手段106 で生成された作業変数定義文を挿入し、出力処理文に対応する挿入位置に出力処理文生成手段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 に渡す。出力項目処理情報取得手段104 は、仕様入力手段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を参照すると、カーソル定義文スケルトン701 は、特定のプログラミング言語に依存したスケルトンで、セレクト項目列挿入位置702 、入力表列挿入位置703 、セレクト条件挿入位置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 では、602 で受けとったカーソル定義文をプログラムスケルトンのカーソル定義文挿入位置に挿入する。604 では、602 で受けとった作業変数定義文列をプログラムスケルトンの作業変数定義文列挿入位置に挿入する。605 では、602 で受けとった出力処理文列をプログラムスケルトンの出力処理文列挿入位置に挿入する。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の仕様201 は、プログラム名202 と入力表項目定義203 とセレクト項目定義204 と出力表項目定義205 と出力表項目計算処理206 とセレクト条件207 とプログラムカスタマイズ情報208 から構成されていた。第2の実施の形態では、このうち、セレクト項目定義204 を持たずに構成される。すなわち、図11に示したように、プログラム名1102と入力表項目定義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から1306を繰り返す。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のプログラムスケルトン108 の代わりにプログラムスケルトンを1種類以上いくつでも保持できるプログラムスケルトンライブラリ1411を持ち、プログラムスケルトン特定情報取得手段1404とプログラムスケルトン選択手段1412が追加されている。
【0056】
仕様1401は、図1の仕様1と比較して、プログラムスケルトン特定情報を合わせ持って構成される。この仕様の構成を図15に示す。図15を参照すると、仕様1501は、プログラム名1502と入力表項目定義1503とセレクト項目定義1504と出力表項目定義1505と出力表処理定義1506とセレクト条件定義1507とプログラムスケルトン特定情報1508とプログラムカスタマイズ情報1509から構成されている。
【0057】
図14の仕様入力手段1403は、図15のような構成を持つ仕様を入力し、プログラムスケルトン特定情報取得手段1404と、スケルトンカスタマイズ情報取得手段1405と、カーソル定義情報取得手段1406と、出力項目処理情報取得手段1407に渡す。図14のプログラムスケルトン特定情報取得手段1404は、仕様入力手段1403で入力された仕様からプログラムスケルトン特定情報を取り出し、プログラムスケルトン選択手段1412に渡す。プログラムスケルトン選択手段1412は、プログラムスケルトン特定情報を用いて特定されたプログラムスケルトンをプログラムスケルトンライブラリ1411から取り出し、このプログラムスケルトンをプログラム自動合成手段1413に渡す。プログラムスケルトン特定情報を用いてプログラムが特定できない場合には、仕様のエラーとして利用者にその旨通知する。プログラム自動合成手段1413は、プログラムスケルトン選択手段1412から受けとったプログラムスケルトン中の、プログラム断片の挿入位置に、プログラムスケルトンカスタマイズ情報取得手段1405から受け取ったプログラム名とプログラムカスタマイズ情報と、カーソル定義文生成手段1408から受け取ったカーソル定義文と、作業変数定義文生成手段1409から受け取った作業変数定義文列と、出力処理文生成手段1410から受け取った出力処理文列とを、第1の実施形態と同一の方式で挿入し、プログラムを完成して出力する。
【0058】
他の構成要素の動作は第1の実施の形態と同一である。
【0059】
本実施の形態では、様々な処理形態を実装したプログラムスケルトンを複数用意することにより、様々なデータ処理プログラムを自動生成することができる。例えば、複数のプログラミング言語によるプログラムや、異なるアルゴリズムに基づくプログラム、異なる異常処理方式に基づくプログラムを自動生成できる。より広範なプログラムを自動生成できるため、第1の実施の形態と比較して適用範囲が広くなる、という効果がある。
【0060】
〔第4の実施の形態〕
次に本発明の第4の実施の形態について第1の実施の形態との相違点を中心に説明する。
【0061】
本実施の形態では、図1の仕様入力手段101 が仕様を入力する際にデータベース定義情報を参照して仕様を入力する点が第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の実施の形態における実施例である。この実施例では、図19に示す仕様から図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、NAME、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の値が等しい場合にだけ、表URIAGESUと表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】
この仕様で表された処理は、商品コード(CODE)と売上数(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の仕様入力手段101 の詳細な動作について図21を用いて説明する。図21は、仕様入力手段101 の動作手順を示している。
【0078】
図21を参照すると、2101: で、内部変数<<内部情報>>を空にし、2102: と2103: とでそれぞれ、" プログラム名 : << プログラム名>>" と" 表 : [" という文字列を作成し、<<内部情報>>に追加している。ここで、ダブルクオートは文字列を表すが、文字列内の<<>>で囲われた項目、ここでは、<<プログラム名>>は、実際のプログラム名の値が文字列中のこの部分に入ることを表す。2104: では、2105: から2112: までの処理を、仕様内の各表について繰り返すことを示している。ここで、各繰り返しにおいて処理している表を<<表>>で表している。
【0079】
2105: では、"(<<表>>, <<入出力区分>>, ["という文字列を作成し、<<内部情報>>に追加している。ここで、<<入出力区分>>は、" 入力" かまたは" 出力" であり、仕様の表の入出力区分の項目から得た値を指す。2106: では、<<入力区分>>が" 入力" か" 出力" かがテストされ、" 入力" だった場合には、2107: から2108: が、" 出力" だった場合には、2109: から2110: が実行される。2107: では、<<表>>の各項目について2108: が繰り返されることを示している。ここで、各項目の値を<<項目>>とする。2108: では、文字列"(<<項目>>, <<型>>)," を作成し、<<内部情報>>に追加している。2109: では、<<表>>の各項目について2110: が繰り返されることを示している。ここで、各項目の値を<<項目>>とする。2110: では、文字列"(<<項目>>, <<型>>, <<計算処理>>)," を作成し、<<内部情報>>に追加している。2111: は2106: から始まったIF文の最後であることを表している。2112: では、2108: または2110: の繰り返し処理で最後に付加された"," を削除し、文字列"])"を追加している。
【0080】
2113: では、文字列" 処理条件: <<処理条件>>" を作成し、<<内部情報>>に追加することを示している。ここで、<<処理条件>>は、仕様のセレクト条件部分に指定された文字列を指す。2114: では、仕様に指定されたその他の属性について、2115: を繰り返すことを示している。2115: では、文字列、"<< 属性名>> : << 属性値>>" を作成し、<<内部情報>>に追加している。ここで、<<属性名>>、<<属性値>>は、それぞれ、仕様内の属性の名前とその値を示している。図2の仕様例では、" 初期処理" 、" 終了処理" が属性名で"Init_module;"、"End_module;" が属性値である。
【0081】
以上で、仕様内の情報が全て<<内部情報>>に取り込まれたことになる。図22に図19で示された仕様例を<<内部情報>>に取り込んだ例を示す。仕様入力手段101 は、この<<内部情報>>を、図1のプログラムスケルトンカスタマイズ情報取得手段102 、カーソル定義情報取得手段103 、出力項目処理情報取得手段104 に渡す。
【0082】
プログラムスケルトンカスタマイズ情報取得手段102 は、仕様入力手段101 から渡された図22に示すような<<内部情報>>から、プログラム名とプログラムカスタマイズ情報を、図23に示す形式で取り出し、プログラム自動合成手段109 に渡すものである。図23で、* は"(<<属性名>> . << 属性値>>)"が属性名の数だけ繰り返されることを示している。なお、値はダブルクオートで囲われ、文字列として扱われる。プログラムスケルトンカスタマイズ情報取得手段102 では、図22に示すような<<内部情報>>が渡されると、2201: と2213: と2214: とからそれぞれ属性名と属性値を取り出し、図23の形式で<<プログラムスケルトンカスタマイズ情報>>を作成し、プログラム自動合成手段109 に渡す。図24はこの方式によって、図22の例から取得された<<プログラムスケルトンカスタマイズ情報>>の例を示したものである。
【0083】
カーソル定義情報取得手段103 は、仕様入力手段101 から渡された<<内部情報>>から、入出力区分が入力である全ての表名と項目名の情報と、セレクト条件と、入出力区分が出力である全ての表の項目の計算処理の内容を取り出して<<カーソル定義情報>>を図25の形式で作成し、カーソル定義文生成手段105 に渡すものである。図25で、* は直前の要素が必要個数分だけ繰り返されることを示している。図26は図25の形式に沿って図22の<<内部情報>>から取得された<<カーソル定義情報>>の例を示したものである。図1のカーソル定義情報取得手段103 では、図22の<<内部情報>>が渡されると、2202: から2206: の情報を図25の2501: の形式に変更し、<<カーソル定義情報>>内に、図26の2601: と2602: を作成する。次いで、図22の2211: から2212: の情報をそのまま抜きだし、<<カーソル定義情報>>内に追加する。最後に図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: から2210: の情報を図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: から2912: の処理を繰り返すことを示している。繰り返しの中で、着目している項目は<<項目>>で表す。つまり、2905: から2912: の処理は、各<<入力表>>の各<<項目>>について繰り返し処理されることになる。
【0089】
2905: では、<<入力表>><<項目>>の組合せがカーソル定義情報内の計算処理内で使用されているかどうかが検査されている。使用されている場合には、2906: で、"<< 入力表>>.<< 項目>> << 入力表>>_<< 項目>>,"という文字列を作成し、変数<<Select項目列>>に追加する。ここで、<<入力表>>、<<項目>>は、それぞれ着目している入力表、項目の値を示す。2907: ではさらに、<<入力表>>が<<入力表名列>>に存在するかどうかが検査されている。存在する場合には何もせず(2908:) 、存在しない場合には2909: で、変数<<入力表名列>>の最後に変数<<入力表>>とコンマからなる文字列を追加する。
【0090】
2913: と2914: では、それぞれ、変数、<<Select項目列>>と<<入力表名列>>の最後にあるコンマ"," を削除する。これは、コンマはそれぞれの要素を区切るために必要なもので、最後には必要無いためである。2915: では、仕様内のセレクト条件として指定された内容を変数<<条件節>>にセットする。2916: から2918では、それぞれ、変数、<<Select項目列>>、<<入力表名列>>、<<条件説>>の値を、図30に示したカーソル定義スケルトンの3004: <<セレクト項目列挿入位置>>、3005: <<入力表列挿入位置>>、3006: <<セレクト条件挿入位置>>に挿入し、カーソル定義文を完成させる。完成したカーソル定義文を図1のプログラム自動合成手段109 に渡す。
【0091】
図29は第2の実施の形態で説明した図12のカーソル定義文生成手段の処理流れ図と対応し、特定の事例としてより詳細化したものである。図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を用いて説明する。図33は生成しようとしている作業変数定義文のうち、仕様の如何に関わらず、固定的な骨組みを表すスケルトンである。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: と3202: は、繰り返し処理で用いる変数<<作業変数定義文列>>を空に、<<出力表番号>>を1にし、初期化している。3203: は、図1の出力項目処理情報取得手段104 から得られた、<<出力項目処理情報>>内の出力表の個数回だけ、3204: から3215: を繰り返すことを示している。なお、3204: から3215: において、着目している出力表は<<出力表>>で表される。
【0096】
3204: では、変数<<作業変数型名>>に"<< 出力表>>_<< 出力表番号>>_Type"の文字列がセットされる。ここで、<<出力表>>、<<出力表番号>>はそれぞれ、変数<<出力表>>、<<出力表番号>>の値に置き換えられる。3205: では、繰り返し処理で用いる変数<<出力項目定義>>を空にし、初期化している。
【0097】
3206: では、<<出力項目処理情報>>内の各<<出力表>>に対する項目の個数回数だけ、3207: から3208: を繰り返すことを示している。なお、3207: から3208: において、着目している項目は<<項目>>で表される。3207: では、仕様内の<<出力表>>の<<項目>>に対応する型を<<型>>にセットし、3208: では、",<<項目>> << 型>>" の文字列を作成し、変数<<出力項目定義>>に追加する。この時、<<項目>>、<<型>>は、それぞれ、変数<<項目>>、<<型>>の値に置き換えられる。3209: と3210: では、変数<<変数定義>>に"<< 出力表>>_<< 出力表番号>> << 作業変数型名>>;"をセットする。<<作業変数型名>>は、3204で、"<< 出力表>>_<< 出力表番号>>Type;"にセットされているため、結局、変数<<変数定義>>には"<< 出力表>>_<< 出力表番号>> << 出力表>>_<< 出力表番号>>Type;"がセットされる。
【0098】
3211: から3213: では、作業変数スケルトンの、それぞれ、
<<作業変数型名挿入位置>>に<<作業変数型名>>を、
<<出力項目定義挿入位置>>に<<出力項目定義>>を、
<<変数定義文挿入位置>>に<<変数定義>>を
挿入し、作業変数定義文を完成している。
【0099】
3214: では、完成した作業変数定義文を<<作業変数定義文列>>に追加し、3215: では、出力表番号に1を加算している。3214: と3215: は出力表が複数あった場合の、次の繰り返しのための準備である。全ての出力表に関する作業変数定義文が<<作業変数定義文列>>に追加された後、図1の作業変数定義文生成手段106 は、<<作業変数定義文列>>をプログラム自動合成手段109 に渡す。
【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の403 と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文によって行なわれている。3606: の<<出力表名挿入位置>>に指定された表の、3607: の<<出力項目名挿入位置>>に指定された項目の値を、3609: の<<作業変数名挿入位置>>に指定された変数の値とし、データベースに書き込む。3612: から3615: では、データベースへの書き込み処理でエラーが発生した場合に、データベースから渡されたエラーコードであるSQLCODE の値を変数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: から3513: を繰り返すことを示している。なお、3508: から3513: において、着目している項目は<<項目>>で表される。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.SHOUHIN_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と、3508から3511までが図5の503 である、項目計算文の作成に対応する。図35の3505から3506までと、3512と3513と、3514から1515までが図5の504 である、出力文の作成に対応する。図35の3516から3519までは、図5の505 に対応している。図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】
Figure 0003871832
Figure 0003871832
【0118】
図38は、実施の形態で説明した図6のプログラム自動合成手段の処理流れ図と対応するものである。図38において、3800と3801は、それぞれ、図6の601 と602 に対応する。図38の3802から3804までが図6の606 に対応し、図38の3805、3806、3807が、図6のそれぞれ、603 、604 、605 に対応する。図38の3808は、図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 (8)

  1. データベースの表のデータを参照し、表中に新たなデータを挿入したり、表中のデータを更新したり、表中のデータを削除したりするプログラムにおいて、前段処理部分と繰り返し処理部分と後段処理部分を備えたプログラム全体を自動的に生成するデータ処理プログラム自動生成システムであって、
    仕様の如何に関わらず固定の部分のプログラムとして、前段処理部分と、前記前段処理部分に続く繰り返し処理部分と、前記繰り返し処理部分に続く後段処理部分を含み、仕様によって変化する部分のプログラム断片の挿入位置として、前段処理部分内にプログラム名挿入位置と、カーソル定義文挿入位置と、作業変数定義文列挿入位置と、初期処理挿入位置とを含み、繰り返し処理部分内に出力処理文列挿入位置を含み、後段処理部分に終了処理挿入位置を含むプログラムスケルトンを、複数種類格納するための記憶装置に格納されたプログラムスケルトンライブラリと、
    生成したプログラムに付与するプログラム名と、入力表の名前とその入力表の各項目の名前および型の情報を含む入力表項目定義と、セレクト文内に定義する入力表項目の名前を含むセレクト項目定義と、出力表の名前とその出力表の各項目の名前および型の情報を含む出力表項目定義と、各出力表の処理を行う条件を示す処理条件と、挿入、更新、削除の別を示す処理種別と、処理種別が更新と削除の場合に更新、削除するための条件を示す更新、削除条件と、処理種別が挿入と更新の場合に各項目の値を計算する処理式とを含む出力表処理定義と、入力表からデータを取得する際の条件を含むセレクト条件定義と、プログラムスケルトンをカスタマイズするためのその他の情報を含むプログラムカスタマイズ情報とを含む仕様を入力する仕様入力手段と、
    前記仕様入力手段で入力された仕様からプログラムスケルトンをカスタマイズするための情報として、プログラム名とプログラムカスタマイズ情報を取り出すプログラムスケルトンカスタマイズ情報取得手段と、
    前記仕様入力手段で入力された仕様から入力表項目定義とセレクト項目定義とセレクト条件定義を取り出すカーソル定義情報取得手段と、
    前記仕様入力手段で入力された仕様から出力表項目定義と出力表処理定義を取り出す出力項目処理情報取得手段と、
    前記カーソル定義情報取得手段で取得された情報からカーソル定義文を生成するカーソル定義文生成手段であって、入力表項目定義のうちセレクト項目定義内に指定された項目名だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト項目列を生成し、入力表項目定義内に指定された入力表のうち、セレクト項目定義で使用されている入力表の名前だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト表列を生成し、セレクト条件定義を、生成するプログラミング言語の構文に従った形式に加工してセレクト条件文を生成し、セレクト項目列挿入位置、入力表列挿入位置およびセレクト条件挿入位置を持つ、生成するプログラミング言語に依存したカーソル定義スケルトンの該当挿入位置に、前記生成したセレクト項目列、セレクト表列およびセレクト条件を挿入してカーソル定義文を生成するカーソル定義文生成手段と、
    前記出力項目処理情報取得手段で取得された出力表項目定義のうち、処理種別が挿入である出力表に対応するものから作業変数定義文を生成する作業変数定義文生成手段であって、処理種別が挿入である出力表について、その出力表のレコード型を定義する型定義文を生成し、その定義された型で作業領域変数を定義する変数定義文を生成し、型定義文挿入位置および変数定義文挿入位置を持つ作業変数定義スケルトンの該当挿入位置に、前記生成した型定義文および変数定義文を挿入して作業変数定義文を生成する作業変数定義文生成手段と、
    前記出力項目処理情報取得手段で取得された出力表項目定義と出力表処理定義から、処理種別が挿入の場合は処理条件文と項目計算文と挿入文とを含む出力処理文を生成し、処理種別が更新の場合には処理条件文と更新文とを含む出力処理文を生成し、処理種別が削除の場合には処理条件文と削除文とを含む出力処理文を生成する出力処理文生成手段であって、出力表処理定義の処理条件から処理条件文を生成し、出力表処理定義の処理種別が挿入、更新、削除の何れであるかを判別し、処理種別が挿入の場合、出力表処理定義の各項目の処理式から項目計算文を生成し、出力表項目定義から出力表名、項目名リストおよび変数名リストを含む挿入文を生成し、処理条件文挿入位置、項目計算文挿入位置および出力文挿入位置を持つ出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、項目計算文挿入位置に前記生成した項目計算文を、出力文挿入位置に前記生成した挿入文をそれぞれ挿入して出力処理文を生成し、処理種別が更新の場合、出力表処理定義の各項目の処理式と出力表項目定義とから出力表名、更新文リストおよび更新条件を含む更新文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した更新文をそれぞれ挿入して出力処理文を生成し、処理種別が削除の場合、出力表項目定義から出力表名および削除条件を含む削除文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した削除文をそれぞれ挿入して出力処理文を生成する出力処理文生成手段と、
    前記プログラムスケルトンライブラリから利用者の指定した1つのプログラムスケルトンを選択するプログラムスケルトン選択手段と、
    前記データ処理プログラムのうち、前記プログラムスケルトン選択手段で選択されたプログラムスケルトンの該当挿入位置に、前記プログラムスケルトンカスタマイズ情報取得手段で取得したプログラム名とプログラムカスタマイズ情報と、前記カーソル定義文生成手段で生成したカーソル定義文と、前記作業変数定義文生成手段で生成した作業変数定義文と、前記出力処理文生成手段で生成した出力処理文とを挿入することによってプログラムを完成させ、出力するプログラム自動合成手段とを有するデータ処理プログラム自動生成システム。
  2. データベースの表のデータを参照し、表中に新たなデータを挿入したり、表中のデータを更新したり、表中のデータを削除したりするプログラムにおいて、前段処理部分と繰り返し処理部分と後段処理部分を備えたプログラム全体を自動的に生成するデータ処理プログラム自動生成システムであって、
    仕様の如何に関わらず固定の部分のプログラムとして、前段処理部分と、前記前段処理部分に続く繰り返し処理部分と、前記繰り返し処理部分に続く後段処理部分を含み、仕様によって変化する部分のプログラム断片の挿入位置として、前段処理部分内にプログラム名挿入位置と、カーソル定義文挿入位置と、作業変数定義文列挿入位置と、初期処理挿入位置とを含み、繰り返し処理部分内に出力処理文列挿入位置を含み、後段処理部分に終了処理挿入位置を含むプログラムスケルトンを、複数種類格納するための記憶装置に格納されたプログラムスケルトンライブラリと、
    生成したプログラムに付与するプログラム名と、入力表の名前とその入力表の各項目の名前および型の情報を含む入力表項目定義と、出力表の名前とその出力表の各項目の名前および型の情報を含む出力表項目定義と、各出力表の処理を行う条件を示す処理条件と、挿入、更新、削除の別を示す処理種別と、処理種別が更新と削除の場合に更新、削除するための条件を示す更新、削除条件と、処理種別が挿入と更新の場合に各項目の値を計算する処理式とを含む出力表処理定義と、入力表からデータを取得する際の条件を含むセレクト条件定義と、プログラムスケルトンをカスタマイズするためのその他の情報を含むプログラムカスタマイズ情報とを含む仕様を入力する仕様入力手段と、
    前記仕様入力手段で入力された仕様からプログラムスケルトンをカスタマイズするための情報として、プログラム名とプログラムカスタマイズ情報を取り出すプログラムスケルトンカスタマイズ情報取得手段と、
    前記仕様入力手段で入力された仕様から入力表項目定義とセレクト条件定義と出力表処理定義とを取り出すカーソル定義情報取得手段と、
    前記仕様入力手段で入力された仕様から出力表項目定義と出力表処理定義を取り出す出力項目処理情報取得手段と、
    前記カーソル定義情報取得手段で取得された入力表項目定義とセレクト条件定義と出力表処理定義とからセレクト項目定義を作成し、該作成したセレクト項目定義と前記カーソル定義情報取得手段で取得されたセレクト条件定義とからカーソル定義文を生成するカーソル定義文生成手段であって、入力表項目定義と出力表処理定義から、セレクト文内に定義する入力表項目の名前を含むセレクト項目定義を生成し、入力表項目定義のうちセレクト項目定義内に指定された項目名だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト項目列を生成し、入力表項目定義内に指定された入力表のうち、セレクト項目定義で使用されている入力表の名前だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト表列を生成し、セレクト条件定義を、生成するプログラミング言語の構文に従った形式に加工してセレクト条件文を生成し、セレクト項目列挿入位置、入力表列挿入位置およびセレクト条件挿入位置を持つ、生成するプログラミング言語に依存したカーソル定義スケルトンの該当挿入位置に、前記生成したセレクト項目列、セレクト表列およびセレクト条件を挿入してカーソル定義文を生成するカーソル定義文生成手段と、
    前記出力項目処理情報取得手段で取得された出力表項目定義のうち、処理種別が挿入である出力表に対応するものから作業変数定義文を生成する作業変数定義文生成手段であって、処理種別が挿入である出力表について、その出力表のレコード型を定義する型定義文を生成し、その定義された型で作業領域変数を定義する変数定義文を生成し、型定義文挿入位置および変数定義文挿入位置を持つ作業変数定義スケルトンの該当挿入位置に、前記生成した型定義文および変数定義文を挿入して作業変数定義文を生成する作業変数定義文生成手段と、
    前記出力項目処理情報取得手段で取得された出力表項目定義と出力表処理定義から、処理種別が挿入の場合は処理条件文と項目計算文と挿入文とを含む出力処理文を生成し、処理種別が更新の場合には処理条件文と更新文とを含む出力処理文を生成し、処理種別が削除の場合には処理条件文と削除文とを含む出力処理文を生成する出力処理文生成手段であって、出力表処理定義の処理条件から処理条件文を生成し、出力表処理定義の処理種別が挿入、更新、削除の何れであるかを判別し、処理種別が挿入の場合、出力表処理定義の各項目の処理式から項目計算文を生成し、出力表項目定義から出力表名、項目名リストおよび変数名リストを含む挿入文を生成し、処理条件文挿入位置、項目計算文挿入位置および出力文挿入位置を持つ出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、項目計算文挿入位置に前記生成した項目計算文を、出力文挿入位置に前記生成した挿入文をそれぞれ挿入して出力処理文を生成し、処理種別が更新の場合、出力表処理定義の各項目の処理式と出力表項目定義とから出力表名、更新文リストおよび更新条件を含む更新文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した更新文をそれぞれ挿入して出力処理文を生成し、処理種別が削除の場合、出力表項目定義から出力表名および削除条件を含む削除文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した削除文をそれぞれ挿入して出力処理文を生成する出力処理文生成手段と、
    前記プログラムスケルトンライブラリから利用者の指定した1つのプログラムスケルトンを選択するプログラムスケルトン選択手段と、
    前記データ処理プログラムのうち、前記プログラムスケルトン選択手段で選択されたプログラムスケルトンの該当挿入位置に、前記プログラムスケルトンカスタマイズ情報取得手段で取得したプログラム名とプログラムカスタマイズ情報と、前記カーソル定義文生成手段で生成したカーソル定義文と、前記作業変数定義文生成手段で生成した作業変数定義文と、前記出力処理文生成手段で生成した出力処理文とを挿入することによってプログラムを完成させ、出力するプログラム自動合成手段とを有するデータ処理プログラム自動生成システム。
  3. 前記仕様入力手段は、処理で使用する全ての入力表名と出力表名を入力し、データベースの表定義情報から当該入力表と出力表の全ての項目名と型情報を検索して取得すると共に、これを画面上に提示して仕様記述者による入力表項目定義および出力表項目定義以外の仕様情報の指定を可能とする構成を有する請求項1または2記載のデータ処理プログラム自動生成システム。
  4. 前記プログラムスケルトンはデバグ用トレース文を含み、
    前記プログラム自動合成手段は、デバグ用のプログラムを生成するのか、本番用のプログラムを生成するのかの別を示す生成プログラム識別情報に従って、前記プログラムスケルトン中のデバグ用トレース文を取り去るか、残すかを切りわける構成を有する請求項1、2または3記載のデータ処理プログラム自動生成システム。
  5. データベースの表のデータを参照し、表中に新たなデータを挿入したり、表中のデータを更新したり、表中のデータを削除したりするプログラムにおいて、前段処理部分と繰り返し処理部分と後段処理部分を備えたプログラム全体を自動的に生成するデータ処理プログラム自動生成方法であって、
    (a)仕様入力手段が、生成したプログラムに付与するプログラム名と、入力表の名前とその入力表の各項目の名前および型の情報を含む入力表項目定義と、セレクト文内に定義する入力表項目の名前を含むセレクト項目定義と、出力表の名前とその出力表の各項目の名前および型の情報を含む出力表項目定義と、各出力表の処理を行う条件を示す処理条件と、挿入、更新、削除の別を示す処理種別と、処理種別が更新と削除の場合に更新、削除するための条件を示す更新、削除条件と、処理種別が挿入と更新の場合に各項目の値を計算する処理式とを含む出力表処理定義と、入力表からデータを取得する際の条件を含むセレクト条件定義と、
    仕様の如何に関わらず固定の部分のプログラムとして、前段処理部分と、前記前段処理部分に続く繰り返し処理部分と、前記繰り返し処理部分に続く後段処理部分を含み、仕様によって変化する部分のプログラム断片の挿入位置として、前段処理部分内にプログラム名挿入位置と、カーソル定義文挿入位置と、作業変数定義文列挿入位置と、初期処理挿入位置とを含み、繰り返し処理部分内に出力処理文列挿入位置を含み、後段処理部分に終了処理挿入位置を含むプログラムスケルトンをカスタマイズするためのその他の情報を含むプログラムカスタマイズ情報とを含む仕様を入力するステップと、
    (b)プログラムスケルトンカスタマイズ情報取得手段が、ステップaで入力された仕様からプログラムスケルトンをカスタマイズするための情報として、プログラム名とプログラムカスタマイズ情報を取り出すステップと、
    (c)カーソル定義情報取得手段が、ステップaで入力された仕様から入力表項目定義とセレクト項目定義とセレクト条件定義を取り出すステップと、
    (d)出力項目処理情報取得手段が、ステップaで入力された仕様から出力表項目定義と出力表処理定義を取り出すステップと、
    (e)カーソル定義文生成手段が、ステップcで取得された情報からカーソル定義文を生成するステップであって、入力表項目定義のうちセレクト項目定義内に指定された項目名だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト項目列を生成し、入力表項目定義内に指定された入力表のうち、セレクト項目定義で使用されている入力表の名前だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト表列を生成し、セレクト条件定義を、生成するプログラミング言語の構文に従った形式に加工してセレクト条件文を生成し、セレクト項目列挿入位置、入力表列挿入位置およびセレクト条件挿入位置を持つ、生成するプログラミング言語に依存したカーソル定義スケルトンの該当挿入位置に、前記生成したセレクト項目列、セレクト表列およびセレクト条件を挿入してカーソル定義文を生成するステップと、
    (f)作業変数定義文生成手段が、ステップdで取得された出力表項目定義のうち、処理種別が挿入である出力表に対応するものから作業変数定義文を生成するステップであって、処理種別が挿入である出力表について、その出力表のレコード型を定義する型定義文を生成し、その定義された型で作業領域変数を定義する変数定義文を生成し、型定義文挿入位置および変数定義文挿入位置を持つ作業変数定義スケルトンの該当挿入位置に、前記生成した型定義文および変数定義文を挿入して作業変数定義文を生成するステップと、
    (g)出力処理文生成手段が、ステップdで取得された出力表項目定義と出力表処理定義から、処理種別が挿入の場合は処理条件文と項目計算文と挿入文とを含む出力処理文を生成し、処理種別が更新の場合には処理条件文と更新文とを含む出力処理文を生成し、処理種別が削除の場合には処理条件文と削除文とを含む出力処理文を生成するステップであって、出力表処理定義の処理条件から処理条件文を生成し、出力表処理定義の処理種別が挿入、更新、削除の何れであるかを判別し、処理種別が挿入の場合、出力表処理定義の各項目の処理式から項目計算文を生成し、出力表項目定義から出力表名、項目名リストおよび変数名リストを含む挿入文を生成し、処理条件文挿入位置、項目計算文挿入位置および出力文挿入位置を持つ出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、項目計算文挿入位置に前記生成した項目計算文を、出力文挿入位置に前記生成した挿入文をそれぞれ挿入して出力処理文を生成し、処理種別が更新の場合、出力表処理定義の各項目の処理式と出力表項目定義とから出力表名、更新文リストおよび更新条件を含む更新文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した更新文をそれぞれ挿入して出力処理文を生成し、処理種別が削除の場合、出力表項目定義から出力表名および削除条件を含む削除文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した削除文をそれぞれ挿入して出力処理文を生成するステップと、
    (h)プログラムスケルトン選択手段が、仕様の如何に関わらず固定の部分のプログラムと仕様によって変化する部分のプログラム断片の挿入位置とを含むプログラムスケルトンを複数種類格納するプログラムスケルトンライブラリから利用者の指定した1つのプログラムスケルトンを選択するステップと、
    (i)プログラム自動合成手段が、 前記データ処理プログラムのうち、前記プログラムスケルトン選択手段で選択されたプログラムスケルトンの該当挿入位置に、ステップbで取得したプログラム名とプログラムカスタマイズ情報と、前記生成したカーソル定義文と、前記生成した作業変数定義文と、前記生成した出力処理文とを挿入することによってプログラムを完成させ、出力するステップとを含むデータ処理プログラム自動生成方法。
  6. データベースの表のデータを参照、更新、削除するデータ処理プログラムを自動的に生成するデータ処理プログラム自動生成方法であって、
    (a)仕様入力手段が、生成したプログラムに付与するプログラム名と、入力表の名前とその入力表の各項目の名前および型の情報を含む入力表項目定義と、出力表の名前とその出力表の各項目の名前および型の情報を含む出力表項目定義と、各出力表の処理を行う条件を示す処理条件と、挿入、更新、削除の別を示す処理種別と、処理種別が更新と削除の場合に更新、削除するための条件を示す更新、削除条件と、処理種別が挿入と更新の場合に各項目の値を計算する処理式とを含む出力表処理定義と、入力表からデータを取得する際の条件を含むセレクト条件定義と、
    仕様の如何に関わらず固定の部分のプログラムとして、前段処理部分と、前記前段処理部分に続く繰り返し処理部分と、前記繰り返し処理部分に続く後段処理部分を含み、仕様によって変化する部分のプログラム断片の挿入位置として、前段処理部分内にプログラム名挿入位置と、カーソル定義文挿入位置と、作業変数定義文列挿入位置と、初期処理挿入位置とを含み、繰り返し処理部分内に出力処理文列挿入位置を含み、後段処理部分に終了処理挿入位置を含むプログラムスケルトンをカスタマイズするためのその他の情報を含むプログラムカスタマイズ情報とを含む仕様を入力するステップと、
    (b)プログラムスケルトンカスタマイズ情報取得手段が、ステップaで入力された仕様からプログラムスケルトンをカスタマイズするための情報として、プログラム名とプログラムカスタマイズ情報を取り出すステップと、
    (c)カーソル定義情報取得手段が、ステップaで入力された仕様から入力表項目定義とセレクト条件定義と出力表処理定義とを取り出すステップと、
    (d)出力項目処理情報取得手段が、ステップaで入力された仕様から出力表項目定義と出力表処理定義を取り出すステップと、
    (e)カーソル定義文生成手段が、ステップcで取得された情報からカーソル定義文を生成するステップであって、入力表項目定義と出力表処理定義から、セレクト文内に定義する入力表項目の名前を含むセレクト項目定義を生成し、入力表項目定義のうちセレクト項目定義内に指定された項目名だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト項目列を生成し、入力表項目定義内に指定された入力表のうち、セレクト項目定義で使用されている入力表の名前だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト表列を生成し、セレクト条件定義を、生成するプログラミング言語の構文に従った形式に加工してセレクト条件文を生成し、セレクト項目列挿入位置、入力表列挿入位置およびセレクト条件挿入位置を持つ、生成するプログラミング言語に依存したカーソル定義スケルトンの該当挿入位置に、前記生成したセレクト項目列、セレクト表列およびセレクト条件を挿入してカーソル定義文を生成するステップと、
    (f)作業変数定義文生成手段が、ステップdで取得された出力表項目定義のうち、処理種別が挿入である出力表に対応するものから作業変数定義文を生成するステップであって、処理種別が挿入である出力表について、その出力表のレコード型を定義する型定義文を生成し、その定義された型で作業領域変数を定義する変数定義文を生成し、型定義文挿入位置および変数定義文挿入位置を持つ作業変数定義スケルトンの該当挿入位置に、前記生成した型定義文および変数定義文を挿入して作業変数定義文を生成するステップと、
    (g)出力処理文生成手段が、ステップdで取得された出力表項目定義と出力表処理定義から、処理種別が挿入の場合は処理条件文と項目計算文と挿入文とを含む出力処理文を生成し、処理種別が更新の場合には処理条件文と更新文とを含む出力処理文を生成し、処理種別が削除の場合には処理条件文と削除文とを含む出力処理文を生成するステップであって、出力表処理定義の処理条件から処理条件文を生成し、出力表処理定義の処理種別が挿入、更新、削除の何れであるかを判別し、処理種別が挿入の場合、出力表処理定義の各項目の処理式から項目計算文を生成し、出力表項目定義から出力表名、項目名リストおよび変数名リストを含む挿入文を生成し、処理条件文挿入位置、項目計算文挿入位置および出力文挿入位置を持つ出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、項目計算文挿入位置に前記生成した項目計算文を、出力文挿入位置に前記生成した挿入文をそれぞれ挿入して出力処理文を生成し、処理種別が更新の場合、出力表処理定義の各項目の処理式と出力表項目定義とから出力表名、更新文リストおよび更新条件を含む更新文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した更新文をそれぞれ挿入して出力処理文を生成し、処理種別が削除の場合、出力表項目定義から出力表名および削除条件を含む削除文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した削除文をそれぞれ挿入して出力処理文を生成するステップと、
    (h)プログラムスケルトン選択手段が、仕様の如何に関わらず固定の部分のプログラムと仕様によって変化する部分のプログラム断片の挿入位置とを含むプログラムスケルトンを複数種類格納するプログラムスケルトンライブラリから利用者の指定した1つのプログラムスケルトンを選択するステップと、
    (i)プログラム自動合成手段が、 前記データ処理プログラムのうち、前記プログラムスケルトン選択手段で選択されたプログラムスケルトンの該当挿入位置に、ステップbで取得したプログラム名とプログラムカスタマイズ情報と、前記生成したカーソル定義文と、前記生成した作業変数定義文と、前記生成した出力処理文とを挿入することによってプログラムを完成させ、出力するステップとを含むデータ処理プログラム自動生成方法。
  7. データベースの表のデータを参照、更新、削除するデータ処理プログラムを自動的に生成するデータ処理プログラムを自動生成するプログラムを記録した媒体であって、コンピュータを、
    生成したプログラムに付与するプログラム名と、入力表の名前とその入力表の各項目の名前および型の情報を含む入力表項目定義と、セレクト文内に定義する入力表項目の名前を含むセレクト項目定義と、出力表の名前とその出力表の各項目の名前および型の情報を含む出力表項目定義と、各出力表の処理を行う条件を示す処理条件と、挿入、更新、削除の別を示す処理種別と、処理種別が更新と削除の場合に更新、削除するための条件を示す更新、削除条件と、処理種別が挿入と更新の場合に各項目の値を計算する処理式とを含む出力表処理定義と、入力表からデータを取得する際の条件を含むセレクト条件定義と、
    仕様の如何に関わらず固定の部分のプログラムとして、前段処理部分と、前記前段処理部分に続く繰り返し処理部分と、前記繰り返し処理部分に続く後段処理部分を含み、仕様によって変化する部分のプログラム断片の挿入位置として、前段処理部分内にプログラム名挿入位置と、カーソル定義文挿入位置と、作業変数定義文列挿入位置と、初期処理挿入位置とを含み、繰り返し処理部分内に出力処理文列挿入位置を含み、後段処理部分に終了処理挿入位置を含むプログラムスケルトンをカスタマイズするためのその他の情報を含むプログラムカスタマイズ情報とを含む仕様を入力する仕様入力手段、
    前記仕様入力手段で入力された仕様からプログラムスケルトンをカスタマイズするための情報として、プログラム名とプログラムカスタマイズ情報を取り出すプログラムスケルトンカスタマイズ情報取得手段、
    前記仕様入力手段で入力された仕様から入力表項目定義とセレクト項目定義とセレクト条件定義を取り出すカーソル定義情報取得手段、
    前記仕様入力手段で入力された仕様から出力表項目定義と出力表処理定義を取り出す出力項目処理情報取得手段、
    前記カーソル定義情報取得手段で取得された情報からカーソル定義文を生成するカーソル定義文生成手段であって、入力表項目定義のうちセレクト項目定義内に指定された項目名だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト項目列を生成し、入力表項目定義内に指定された入力表のうち、セレクト項目定義で使用されている入力表の名前だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト表列を生成し、セレクト条件定義を、生成するプログラミング言語の構文に従った形式に加工してセレクト条件文を生成し、セレクト項目列挿入位置、入力表列挿入位置およびセレクト条件挿入位置を持つ、生成するプログラミング言語に依存したカーソル定義スケルトンの該当挿入位置に、前記生成したセレクト項目列、セレクト表列およびセレクト条件を挿入してカーソル定義文を生成するカーソル定義文生成手段、
    前記出力項目処理情報取得手段で取得された出力表項目定義のうち、処理種別が挿入である出力表に対応するものから作業変数定義文を生成する作業変数定義文生成手段であって、処理種別が挿入である出力表について、その出力表のレコード型を定義する型定義文を生成し、その定義された型で作業領域変数を定義する変数定義文を生成し、型定義文挿入位置および変数定義文挿入位置を持つ作業変数定義スケルトンの該当挿入位置に、前記生成した型定義文および変数定義文を挿入して作業変数定義文を生成する作業変数定義文生成手段、
    前記出力項目処理情報取得手段で取得された出力表項目定義と出力表処理定義から、処理種別が挿入の場合は処理条件文と項目計算文と挿入文とを含む出力処理文を生成し、処理種別が更新の場合には処理条件文と更新文とを含む出力処理文を生成し、処理種別が削除の場合には処理条件文と削除文とを含む出力処理文を生成する出力処理文生成手段であって、出力表処理定義の処理条件から処理条件文を生成し、出力表処理定義の処理種別が挿入、更新、削除の何れであるかを判別し、処理種別が挿入の場合、出力表処理定義の各項目の処理式から項目計算文を生成し、出力表項目定義から出力表名、項目名リストおよび変数名リストを含む挿入文を生成し、処理条件文挿入位置、項目計算文挿入位置および出力文挿入位置を持つ出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、項目計算文挿入位置に前記生成した項目計算文を、出力文挿入位置に前記生成した挿入文をそれぞれ挿入して出力処理文を生成し、処理種別が更新の場合、出力表処理定義の各項目の処理式と出力表項目定義とから出力表名、更新文リストおよび更新条件を含む更新文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した更新文をそれぞれ挿入して出力処理文を生成し、処理種別が削除の場合、出力表項目定義から出力表名および削除条件を含む削除文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した削除文をそれぞれ挿入して出力処理文を生成する出力処理文生成手段、
    仕様の如何に関わらず固定の部分のプログラムと仕様によって変化する部分のプログラム断片の挿入位置とを含むプログラムスケルトンを複数種類格納するプログラムスケルトンライブラリから利用者の指定した1つのプログラムスケルトンを選択するプログラムスケルトン選択手段、
    前記データ処理プログラムのうち、前記プログラムスケルトン選択手段で選択されたプログラムスケルトンの該当挿入位置に、前記プログラムスケルトンカスタマイズ情報取得手段で取得したプログラム名とプログラムカスタマイズ情報と、前記カーソル定義文生成手段で生成したカーソル定義文と、前記作業変数定義文生成手段で生成した作業変数定義文と、前記出力処理文生成手段で生成した出力処理文とを挿入することによってプログラムを完成させ、出力するプログラム自動合成手段、
    として機能させるプログラムを記録したコンピュータ可読記録媒体。
  8. データベースの表のデータを参照、更新、削除するデータ処理プログラムを自動的に生成するデータ処理プログラムを自動生成するプログラムを記録した媒体であって、コンピュータを、
    生成したプログラムに付与するプログラム名と、入力表の名前とその入力表の各項目の名前および型の情報を含む入力表項目定義と、出力表の名前とその出力表の各項目の名前および型の情報を含む出力表項目定義と、各出力表の処理を行う条件を示す処理条件と、挿入、更新、削除の別を示す処理種別と、処理種別が更新と削除の場合に更新、削除するための条件を示す更新、削除条件と、処理種別が挿入と更新の場合に各項目の値を計算する処理式とを含む出力表処理定義と、入力表からデータを取得する際の条件を含むセレクト条件定義と、
    仕様の如何に関わらず固定の部分のプログラムとして、前段処理部分と、前記前段処理部分に続く繰り返し処理部分と、前記繰り返し処理部分に続く後段処理部分を含み、仕様によって変化する部分のプログラム断片の挿入位置として、前段処理部分内にプログラム名挿入位置と、カーソル定義文挿入位置と、作業変数定義文列挿入位置と、初期処理挿入位置とを含み、繰り返し処理部分内に出力処理文列挿入位置を含み、後段処理部分に終了処理挿入位置を含むプログラムスケルトンをカスタマイズするためのその他の情報を含むプログラムカスタマイズ情報とを含む仕様を入力する仕様入力手段、
    前記仕様入力手段で入力された仕様からプログラムスケルトンをカスタマイズするための情報として、プログラム名とプログラムカスタマイズ情報を取り出すプログラムスケルトンカスタマイズ情報取得手段、
    前記仕様入力手段で入力された仕様から入力表項目定義とセレクト条件定義と出力表処理定義とを取り出すカーソル定義情報取得手段、
    前記仕様入力手段で入力された仕様から出力表項目定義と出力表処理定義を取り出す出力項目処理情報取得手段、
    前記カーソル定義情報取得手段で取得された入力表項目定義とセレクト条件定義と出力表処理定義とからセレクト項目定義を作成し、該作成したセレクト項目定義と前記カーソル定義情報取得手段で取得されたセレクト条件定義とからカーソル定義文を生成するカーソル定義文生成手段であって、入力表項目定義と出力表処理定義から、セレクト文内に定義する入力表項目の名前を含むセレクト項目定義を生成し、入力表項目定義のうちセレクト項目定義内に指定された項目名だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト項目列を生成し、入力表項目定義内に指定された入力表のうち、セレクト項目定義で使用されている入力表の名前だけを抜き出し、生成するプログラミング言語の構文に従った形式でセレクト表列を生成し、セレクト条件定義を、生成するプログラミング言語の構文に従った形式に加工してセレクト条件文を生成し、セレクト項目列挿入位置、入力表列挿入位置およびセレクト条件挿入位置を持つ、生成するプログラミング言語に依存したカーソル定義スケルトンの該当挿入位置に、前記生成したセレクト項目列、セレクト表列およびセレクト条件を挿入してカーソル定義文を生成するカーソル定義文生成手段、
    前記出力項目処理情報取得手段で取得された出力表項目定義のうち、処理種別が挿入である出力表に対応するものから作業変数定義文を生成する作業変数定義文生成手段であって、処理種別が挿入である出力表について、その出力表のレコード型を定義する型定義文を生成し、その定義された型で作業領域変数を定義する変数定義文を生成し、型定義文挿入位置および変数定義文挿入位置を持つ作業変数定義スケルトンの該当挿入位置に、前記生成した型定義文および変数定義文を挿入して作業変数定義文を生成する作業変数定義文生成手段、
    前記出力項目処理情報取得手段で取得された出力表項目定義と出力表処理定義から、処理種別が挿入の場合は処理条件文と項目計算文と挿入文とを含む出力処理文を生成し、処理種別が更新の場合には処理条件文と更新文とを含む出力処理文を生成し、処理種別が削除の場合には処理条件文と削除文とを含む出力処理文を生成する出力処理文生成手段であって、出力表処理定義の処理条件から処理条件文を生成し、出力表処理定義の処理種別が挿入、更新、削除の何れであるかを判別し、処理種別が挿入の場合、出力表処理定義の各項目の処理式から項目計算文を生成し、出力表項目定義から出力表名、項目名リストおよび変数名リストを含む挿入文を生成し、処理条件文挿入位置、項目計算文挿入位置および出力文挿入位置を持つ出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、項目計算文挿入位置に前記生成した項目計算文を、出力文挿入位置に前記生成した挿入文をそれぞれ挿入して出力処理文を生成し、処理種別が更新の場合、出力表処理定義の各項目の処理式と出力表項目定義とから出力表名、更新文リストおよび更新条件を含む更新文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した更新文をそれぞれ挿入して出力処理文を生成し、処理種別が削除の場合、出力表項目定義から出力表名および削除条件を含む削除文を生成し、前記出力処理文スケルトンの処理条件文挿入位置に前記生成した処理条件文を、出力文挿入位置に前記生成した削除文をそれぞれ挿入して出力処理文を生成する出力処理文生成手段、
    仕様の如何に関わらず固定の部分のプログラムと仕様によって変化する部分のプログラム断片の挿入位置とを含むプログラムスケルトンを複数種類格納するプログラムスケルトンライブラリから利用者の指定した1つのプログラムスケルトンを選択するプログラムスケルトン選択手段、
    前記データ処理プログラムのうち、前記プログラムスケルトン選択手段で選択されたプログラムスケルトンの該当挿入位置に、前記プログラムスケルトンカスタマイズ情報取得手段で取得したプログラム名とプログラムカスタマイズ情報と、前記カーソル定義文生成手段で生成したカーソル定義文と、前記作業変数定義文生成手段で生成した作業変数定義文と、前記出力処理文生成手段で生成した出力処理文とを挿入することによってプログラムを完成させ、出力するプログラム自動合成手段、
    として機能させるプログラムを記録したコンピュータ可読記録媒体。
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 JP2001060150A (ja) 2001-03-06
JP3871832B2 true 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 (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012048438A (ja) * 2010-08-26 2012-03-08 Nec Corp データ処理プログラム自動生成システム
CN106778780A (zh) * 2016-12-14 2017-05-31 江苏维普光电科技有限公司 一种基于gpu的边缘检测图像二值化方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4295926B2 (ja) * 2001-03-29 2009-07-15 敕 中垣 汎用型原価計算システム及び汎用型原価計算プログラム
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
WO2005050447A1 (ja) 2003-11-18 2005-06-02 Intelligent Model, Limited バッチ処理装置
JP2005258781A (ja) * 2004-03-11 2005-09-22 Sharp Corp アプリケーション作成装置、アプリケーション作成方法、アプリケーション作成プログラム、およびアプリケーション作成プログラムを記録した記録媒体
US20060059459A1 (en) * 2004-09-13 2006-03-16 Microsoft Corporation Generating solution-based software documentation
JP4797378B2 (ja) * 2004-12-22 2011-10-19 日本電気株式会社 データ処理プログラム自動生成システム、データ処理プログラム自動生成方法及びデータ処理プログラム自動生成用プログラム
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
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
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
JP5377023B2 (ja) * 2009-03-24 2013-12-25 エヌ・ティ・ティ・コムウェア株式会社 リスト作成情報設定装置、リスト作成情報設定方法、および、プログラム
JP5374405B2 (ja) * 2010-02-12 2013-12-25 株式会社日立製作所 モデルデバッグ装置およびモデルデバッグ方法
CN113486116A (zh) * 2021-07-07 2021-10-08 建信金融科技有限责任公司 一种数据同步方法、装置、电子设备及计算机可读介质
CN115080982B (zh) * 2022-06-24 2024-07-19 哈尔滨工业大学 一种针对漏洞检测模型的组合对抗攻击方法

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
FI103155B1 (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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012048438A (ja) * 2010-08-26 2012-03-08 Nec Corp データ処理プログラム自動生成システム
CN106778780A (zh) * 2016-12-14 2017-05-31 江苏维普光电科技有限公司 一种基于gpu的边缘检测图像二值化方法
CN106778780B (zh) * 2016-12-14 2020-05-01 江苏维普光电科技有限公司 一种基于gpu的边缘检测图像二值化方法

Also Published As

Publication number Publication date
JP2001060150A (ja) 2001-03-06
US6698010B1 (en) 2004-02-24

Similar Documents

Publication Publication Date Title
JP3871832B2 (ja) データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読記録媒体
EP3364295B1 (en) Method and system for automatically generating functional architecture documents and documents for software design and analysis specification
US8930337B2 (en) Mapping dataset elements
JP3136035B2 (ja) データベースシステム用インターフェースのための自動レイアウト・ジェネレータ及びその生成方法
JP4544473B2 (ja) インタフェース画面設計中心のソフトウェア生産工程の自動化方法及び、この方法をプログラム化して収録したコンピュータで読出し可能な記録媒体
US5341469A (en) Structured text system
US20070220055A1 (en) Automatic generation of data models and accompanying user interfaces
JPH08234975A (ja) プログラム生成装置および方法
US5933634A (en) Mock-up method and mock-up control system for displaying pseudo operation
JPH01237726A (ja) 上位仕様書作成方法
JP3828379B2 (ja) テスト仕様生成支援装置、方法、プログラム及び記録媒体
Jin et al. Foofah: A programming-by-example system for synthesizing data transformation programs
US7203925B1 (en) Graphical compiler
JP3186117B2 (ja) データ中心型ソフトウエア部品によるプログラム自動生成システム
JP2008225898A (ja) 変換装置、変換プログラム及び変換方法
JPH0652161A (ja) 文書処理方法及び文書処理装置
WO2020240482A1 (en) Process and system for automatic generation of functional architecture documents and software design and analysis specification documents from natural language
US20080270985A1 (en) Database application assembly and preparation
JP5581894B2 (ja) データ処理プログラム自動生成システム
JP2004213698A (ja) データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読録媒体
JP3898615B2 (ja) 短縮語作成支援装置および短縮語作成支援プログラム
JPH04181455A (ja) 画面遷移仕様作成方法
KR100656559B1 (ko) Bibd 방법론을 이용하는 프로그램 자동 개발 장치
JP2006004145A (ja) プログラムコード生成装置
JP3446472B2 (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