(57)【要約】【課題】プログラム開発の経験およびプログラム開発言語の知識に依存することなく、プログラムの生成実行を実現する。【解決手段】プログラム生成における、このプログラム固有のパラメータを入力し、パラメータから予め設定された入出力装置の情報および入出力装置の定義情報を取得し、取得した情報と予め設定された各処理の特徴を登録した固有情報を比較し、特徴の一致するプログラムの部品および実行順序を動的に取得し、プログラムの部品からプログラムの実行形式を生成し、処理を実行する一連の作業を実現する【選択図】図１
2009048404.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ制御により、入出力に用いるテーブルの列名に基づいて使用するプログラムの雛形および実行順序を動的に取得してプログラムを生成実行するプログラム生成実行方法であって、
入出力データ情報取得処理手段は、プログラム生成における、該プログラム固有のパラメータを入力し、
プログラムパーツＩＤ取得処理手段は、入力された該パラメータから予め設定された入出力装置の情報および入出力装置の定義情報を取得し、取得した情報と予め設定された各処理の特徴を登録した固有情報を比較し、
プログラムパーツ取得処理手段は、該特徴の一致するプログラムパーツおよび実行順序を動的に取得し、
プログラム生成処理手段は、該プログラムパーツからプログラムの実行形式を生成し、
モジュール実行手段は、生成されたプログラムの処理を実行する
ことを特徴とするプログラム生成実行方法。
【請求項２】
請求項１に記載のプログラム生成実行方法において、
前記入出力データ情報取得処理手段は、プログラム生成における、プログラム固有のパラメータＩＤをキーとして、マスターテーブルにより該当するレコードを検索し、該当レコードの存在の有無を判定することを特徴とするプログラム生成実行方法。
【請求項３】
請求項１に記載のプログラム生成実行方法において、
前記プログラムパーツＩＤ取得処理手段は、入力データ数および出力データ数を計数し、
処理パラメータテーブルにより入出力テーブル数を検索し、先に取得した入出力データ数と一致するレコードを検索し、該当するレコードを取得し、次に該処理パラメータテーブルのキーワードを検索し、予め定義した区切り文字に従って、該キーワードを区切りながら読み込むことを特徴とするプログラム生成実行方法。
【請求項４】
請求項１に記載のプログラム生成実行方法において、
前記プログラムパーツ取得処理手段は、プログラムパーツＩＤ取得処理手段からパログラムパーツＩＤを受け取り、該プログラムパーツＩＤをキーとして、ソースライブラリＤＢを検索し、該当するレコードの存在の有無を判定し、該ソースライブラリＤＢよりプログラムパーツを取得することを特徴とするプログラム生成実行方法。
【請求項５】
請求項１に記載のプログラム生成実行方法において、
前記プログラム生成処理手段は、プログラムパーツＩＤ取得処理手段よりプログラムパーツＩＤおよび実行順序を受け取り、該プログラムパーツＩＤに対応するプログラムパーツをプログラムパーツ取得処理手段により受け取り、昇順に従った該実行順序の実行パラメータに該プログラムパーツを追加し、ソースプログラムを作成することを特徴とするプログラム生成実行方法。
【請求項６】
コンピュータ制御により、入出力に用いるテーブルの列名に基づいて使用するプログラムの雛形および実行順序を動的に取得してプログラムを生成実行するプログラム生成実行システムであって、
プログラム固有のパラメータＩＤをキーとしてマスタテーブルより該当するレコードを検索し、これを読み込む入出力テーブル情報取得処理手段と、該入出力テーブル情報取得処理手段からテーブル名を取得し、該テーブル名をキーとしてデータディクショナリから該当するレコードを検索し、これを読み込む項目名取得処理手段と、入力された該パラメータから予め設定された入出力装置の情報および入出力装置の定義情報を取得し、取得した情報と予め設定された各処理の特徴を登録した固有情報を比較し、一致するレコードを判定するプログラムパーツＩＤ取得処理手段と、該特徴の一致するプログラムの部品および実行順序を動的に取得するプログラムパーツ取得処理手段と、該プログラムパーツからプログラムの実行形式を生成するプログラム生成処理手段と、生成されたプログラム処理を実行するモジュール実行手段とを備えたサーバ、および、
該サーバにネットワークを介して接続され、かつ１台以上の実行端末を備えたクライアント装置
を有することを特徴とするプログラム生成実行システム。
【請求項７】
コンピュータ制御により、入出力に用いるテーブルの列名に基づいて使用するプログラムの雛形および実行順序を動的に取得してプログラムを生成実行するプログラム生成実行プログラムであって、
サーバのコンピュータに、プログラム生成における、該プログラム固有のパラメータを入力する手順、入力された該パラメータから予め設定された入出力装置の情報および入出力装置の定義情報を取得する手順、取得した情報と予め設定された各処理の特徴を登録した固有情報を比較する手順、該特徴の一致するプログラムパーツおよび実行順序を動的に取得する手順、該プログラムパーツからプログラムの実行形式を生成する手順、生成されたプログラム処理を実行する手順を、それぞれ実行させるためのプログラム生成実行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの生成および実行を動的に実現する方法およびシステムならびにそのプログラムに係り、特に、プログラム開発の経験がなくとも、プログラムの生成および実行を容易に実現させることが可能なプログラム生成実行方法およびシステムならびにプログラム生成実行プログラムに関する。
【背景技術】
【０００２】
プログラムの開発業務において、開発工数の短縮および各プログラムの品質を高レベルで平均化するという課題を実現するために、従来、雛形を用いる手法がある。
すなわち、プログラムの雛形を用い、この雛形に対して予めパラメータを設定することにより、プログラムの生成を実現する。
例えば、特開２００２−２２９７８７号公報に記載の『プログラム生成装置』では、プログラム生成において、雛形ファイルとしてスケルトンファイルを用意し、それに対応するパラメータを予め設定することで、プログラムの生成を容易に実現している。
上記手法によれば、入力されたパラメータを予め記憶されている位置、すなわち雛形を構成するスケルトンファイル内の位置に埋め込み、パラメータを埋め込んだスケルトンファイルを連結することにより、プログラムを生成して出力するので、プログラムの生成に際してプログラマが実際に記述する部分はパラメータの部分のみとなり、プログラマの知識、経験にかかわらず完成度の高いプログラムを迅速に生成できる。
【０００３】
しかし、これらの従来技術では、パラメータの設定には、プログラムの開発の経験、プログラム開発言語の知識が必要となっている。特に、稼動後のシステムにおいて、プログラム保守の必要性が発生した場合、プログラム開発経験者が常駐していない場合もあるので、このようなときには新たにプログラマを育成しなければならない、という問題があった。
【０００４】
【特許文献１】特開２００２−２２９７８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前述のように、従来の技術では、プログラムの生成におけるパラメータの設定において、プログラム開発の経験およびプログラム開発言語の知識が必要になるという点に、問題点があった。
【０００６】
（目的）
本発明の目的は、これら従来技術の問題点を解決し、プログラム開発の経験およびプログラム開発言語の知識に依存することなく、プログラムの生成実行を実現できるプログラム生成実行方法およびそのシステムならびにプログラム生成実行プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明のプログラム生成実行システムは、プログラム生成における、このプログラム固有のパラメータを入力し、パラメータから予め設定された入出力装置の情報および入出力装置の定義情報を取得し、取得した情報と予め設定された各処理の特徴を登録した固有情報を比較し、特徴の一致するプログラムの部品および実行順序を動的に取得し、プログラムの部品からプログラムの実行形式を生成し、処理を実行する一連の作業を実現する。
【０００８】
従って、本発明においては、プログラム生成者が予め設定する必要があるのは、入出力に用いるテーブル名と雛形に用いる処理を特定するためのキーワードとしての各テーブルの列項目名である。
本発明では、取得したテーブルの列名に基づいて使用するプログラムの雛形および実行順序までを動的に取得してプログラムを生成、実行する。
処理に用いるテーブル名およびテーブルの列名は、自然言語で定義されているため、プログラム開発の経験がなくとも理解が可能である。
プログラムの雛形については、プログラマが必要になるが、プログラム生成においてはプログラム開発の経験よりもデータ構造や業務の知識が求められる。
このことにより、プログラムの開発経験、プログラム開発言語の知識に依存せずにプログラム生成および実行が実現できる。
【発明の効果】
【０００９】
本発明によれば、プログラムの開発経験、プログラム開発言語の知識に依存せずに、プログラム生成、実行が実現可能となり、その結果、開発工数の短縮および各プログラムの品質を高レベルで平均化することが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態を図面により詳細に説明する。
図１は、本発明の一実施例に係るプログラム生成実行システムの構成図である。
図１に示すように、本発明では、サーバ側情報処理装置１０９とクライアント側情報処理装置１０１がネットワーク１０６を介して接続される。
サーバ側情報処理装置１０９は、入出力テーブル情報取得処理部１０８、項目名取得処理部１１１、プログラムパーツＩＤ取得処理部１１３、プログラムパーツ取得処理部１１５、プログラム生成処理部１１７、モジュール生成部１１９、モジュール実行部１２０、ＩＮＰＵＴ−ＰＵＴＰＵＴマスタテーブル１０７、データディクショナリ１１０、処理パラメータテーブル１１２、ソースライブラリＤＢ１１４、ソースプログラム１１６および実行モジュール１１８で構成される。
【００１１】
一方、クライアント側情報処理装置１０１は、実行パラメータ１２１と実行端末１０２〜１０５から構成される。
実行パラメータ１２１は、クライアント側情報処理装置１０１からネットワーク１０６を通じてサーバ側情報処理装置１０９へ送られ、実行パラメータ１２１に対応するソースプログラム１１６および実行モジュール１１８を自動生成し、自動起動する。
【００１２】
図２は、本発明に係るパラメータ、テーブル、およびデータベースの構造図である。
図２（ａ）２０１は実行パラメータ、（ｂ）２０２はＩＮＰＵＴ−ＰＵＴＰＵＴマスタテーブル、（ｃ）２０３はデータディクショナり、（ｄ）２０４は処理パラメータテーブル、（ｅ）２０５はソースライブラリＤＢである。
【００１３】
プログラム実行パラメータ２０１はプログラム生成実行システムを起動するためのプログラム生成における、このプログラム固有のパラメータであり、処理ＩＤより構成される。
ＩＮＰＵＴ−ＰＵＴＰＵＴマスタテーブル２０２は、プログラム生成における入出力テーブル名を定義したテーブルであり、処理ＩＤ、テーブル区分、およびテーブル名より構成される。
データディクショナリ２０３は、プログラム生成における入出力テーブル名に対応する定義情報を格納したテーブルであって、テーブル名、列名、データ型、データ長より構成される。
【００１４】
処理パラメータテーブル２０４は、プログラム生成におけるプログラムパーツの特徴を定義したテーブルであって、プログラムパーツＩＤ、実行順序、入力テーブル数、出力テーブル数、出力テーブル数およびキーワードより構成される。
ソースライブラリＤＢ２０５は、プログラムソースを格納したデータベースであって、プログラムパーツＩＤおよびプログラムパーツより構成される。
【００１５】
図３は、図１におけるプログラムパーツにおける構造の一例を示す図である。
ソースプログラム３０１は、プログラムパーツから構成され、プログラム実行順序の数値が小さいものから昇順に整列される。本実施例では、入力処理Ａ３０２、集計処理Ｂ３０３、出力処理Ａ３０４、および例外処理Ｚ３０５からなるソースプログラムであって、順序もこの順になっている。
【００１６】
図４〜図１０は、プログラム生成実行システムの処理動作を示したフローである。
図４は、図１におけるプログラム生成実行システムの入出力テーブル情報取得処理部（１０８）の処理動作を示したフローチャートである。
まず、実行パラメータとして、図２に示すプログラム実行パラメータ２０１の処理ＩＤを受け取る（ステップ４０１）。処理ＩＤをキーとして、図２のＩＮＰＵＴ−ＰＵＴＰＵＴマスタテーブル２０２を検索し（ステップ４０２）、該当するレコードの有無を判定する（ステップ４０３）。該当するレコードが存在した場合には、該当するレコードの数分だけ処理を繰り返し（ステップ４０４）、そのレコードを取得する（ステップ４０５）。
【００１７】
図５は、図１におけるプログラム生成実行システムの項目名取得処理部（１１１）の処理動作を示したフローチャートである。
実行パラメータとして、入出力テーブル情報取得処理部１０８で取得したテーブル名を受け取る（ステップ５０１）。実行パラメータ数の分（ステップ５０３〜５０６）だけ処理を繰り返す（ステップ５０２）。すなわち、テーブル名をキーとして、データディクショナリ２０３から該当レコードを検索し（ステップ５０３）、該当レコードの有無を判定する（ステップ５０４）。該当レコードが存在した場合には、該当するレコード数分だけ処理を繰り返し（ステップ５０５）、データディクショナリ２０３よりレコードを取得する（ステップ５０６）。
【００１８】
図６−Ａ，図６−Ｂは、図１におけるプログラム生成実行システムのプログラムパーツＩＤ取得処理部（１１３）の処理動作を示したフローチャートである。
まず、実行パラメータとして、項目名取得処理部１１１で取得したテーブル区分、テーブル名、列名を受け取る（ステップ６０１）。実行パラメータの数の分（ステップ６０３〜６０４）だけ処理を繰り返す（ステップ６０２）。すなわち、テーブル区分が‘入力’のデータ数を数える（ステップ６０３）。次に、テーブル区分が‘出力’のデータ数を数える（ステップ６０４）。
【００１９】
次に、実行パラメータ数の分（ステップ６０６〜６２２）だけ処理を繰り返す（ステップ６０５）。すなわち、処理パラメータテブル２０４の入力テーブル数を検索し、ステップ６０３で取得したデータ数と一致するレコード、あるいは＊印のレコードか否かの判定をする（ステップ６０６）。該当するレコードが存在した場合には、該当するレコード数分だけ処理を繰り返し（ステップ６０７）、処理パラメータテーブル２０４よりレコードを取得する（ステップ６０８）。そして、ステップ６０８で取得したレコード数の分（ステップ６１０〜６２２）だけ処理を繰り返す（ステップ６０９）。
【００２０】
すなわち、処理パラメータテーブル２０４の出力テーブル数を検索し、ステップ６０４で取得したデータ数と一致するレコードあるいは＊印のレコードか否かを判定する（ステップ６１０）。該当レコードが存在した場合には、該当するレコード数分だけ処理を繰り返し（ステップ６１１）、処理パラメータテーブル２０４よりレコードを取得する（ステップ６１２）。
【００２１】
ステップ６１２で取得したレコード数の分（ステップ６１４〜６２２）だけ処理を繰り返す（ステップ６１３）。すなわち、処理パラメータテーブル２０４のキーワードを検索し、予め定義した区切り文字に従って、キーワードを区切りながら読み込む。なお、区切り文字に従って分割したキーワードは、分割後キーワードとする（ステップ６１４）。
分割後キーワード数の分だけ処理を繰り返し（ステップ６１５）、キーワード判定に‘ＮＯ’を設定し、キーワード判定を初期化する（ステップ６１６）。
【００２２】
分割後キーワード数の分（ステップ６１８〜６２０）だけ処理を繰り返す（ステップ６１７）。すなわち、実行パラメータとして、項目名取得処理部１１１で取得したテーブル名、列名の数の分だけ処理を繰り返し（ステップ６１８）、テーブル名、あるいは列名と分割後キーワードを比較し、一致するか否かを判定する（ステップ６１９）。該当するレコードが存在した場合には、キーワード判定に‘ＹＥＳ’を設定する（ステップ６２０）。
【００２３】
ステップ６１７で繰り返した分割後キーワードに対応するキーワード判定の全てが‘ＹＥＳ’であるか否かを判定する（ステップ６２１）。ステップ６２１の条件に合致した場合には、処理パラメータテーブル２０４よりレコードを取得する（ステップ６２２）。
【００２４】
図７は、図１におけるプログラム生成実行システムのプログラムパーツ取得処理部（１１５）の処理動作を示したフローチャートである。
実行パラメータとして、プログラムパーツＩＤ取得処理部１１３で取得したプログラムパーツＩＤを受け取る（ステップ７０１）。実行パラメータの数の分（ステップ７０３〜７０５）だけ処理を繰り返す（ステップ７０２）。すなわち、プログラムパーツＩＤをキーとして、ソースライブラリＤＢ２０５を検索し（ステップ７０３）、該当するレコードの有無を判定する（ステップ７０４）。該当するレコードが存在した場合には、ソースライブラリＤＢ２０５よりプログラムパーツを取得する（ステップ７０５）。
【００２５】
図８は、図１におけるプログラム生成実行システムのプログラム生成処理部（１１７）の処理動作を示したフローチャートである。
実行パラメータとして、プログラムパーツＩＤ取得処理部１１３よりプログラムパーツＩＤ、実行順序を受け取り、プログラムパーツＩＤに対応するプログラムパーツをプログラムパーツ取得処理部１１５より受け取る。実行パラメータは、実行順序の昇順に受ける取る（ステップ８０１）。実行パラメータの数の分（ステップ８０３）だけ処理を繰り返す（ステップ８０２）。すなわち、プログラムパーツを追加し、ソースプログラム３０１を作成する（ステップ８０３）。
【００２６】
図９は、図１におけるプログラム生成実行システムのモジュール生成部（１１９）の処理動作を示したフローチャートである。
プログラム生成処理部１１７で作成したソースプログラム３０１をコンパイルし、実行可能形式の実行モジュール１１８へ変換する（ステップ９０１）。
【００２７】
図１０は、図１におけるプログラム生成実行システムのモジュール実行部（１２０）の処理動作を示したフローチャートである。
モジュール生成部１１９で作成した実行モジュール１１８を起動し、処理を実行する（ステップ１００１）。
【００２８】
図１１は、プログラム生成実行システムのプログラムおよびデータが記録媒体に記録され、その記録媒体からコンピュータにインストールされることを示す図である。
ＣＰＵ１１には、ＣＲＴドライバ１５とＣＲＴ１８、および、キーボード／マウスドライバ１６とキーボード１９、マウス２０、および、ディスク装置ドライバ１７とディスク装置２１がそれぞれ備えられる。
このＣＰＵ１１に、ＣＤ−ＲＯＭ１２、ＤＶＤ−ＲＯＭ１３あるいはフロッピー（登録商標）ディスク１４を実装すると、ディスク装置ドライバ１７が起動して、ディスク装置２１から指定されたプログラムおよびデータが読み出され、ＣＰＵ１１内のバッファメモリにインストールされる。同時に、ＣＲＴドライバ１５、キーボード／マウスドライバ１６により、ＣＲＴ１８あるいはキーボード１９あるいはマウス２０の動作準備をする。
【産業上の利用可能性】
【００２９】
本発明は、大量のデータに対して集計を掛ける処理、特に集計単位、集計項目に一定の法則性がある、勘定系、分析系の処理の適用に優れている。
また、ソースライブラリと機能および入出力テーブルを分離しているため、処理に適用するプログラム言語の変更が発生した場合に、効果を奏する。
さらに、対象データの構造に対する理解の深さがあれば、プログラムの経験の有無は不要であるため、プログラム保守担当者が常駐する必要がなく、その結果、保守コストの削減が期待できる。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施例に係るプログラム生成実行システムの全体構成図である。
【図２】本発明の一実施例に係るパラメータ、テーブル、およびデータベースの構造図である。
【図３】本発明の一実施例に係るソースプログラムにおける構造図である。
【図４】図１における入出力テーブル情報取得処理部の処理動作を示したフローチャートである。
【図５】図１における項目名取得処理部の処理動作を示したフローチャートである。
【図６−Ａ】図１におけるプログラムパーツＩＤ取得処理部の処理動作を示したフローチャートである。
【図６−Ｂ】同じくプログラムパーツＩＤ取得処理部の処理動作を示したフローチャートである。
【図７】図１におけるプログラムパーツ取得処理部の処理動作を示したフローチャートである。
【図８】図１におけるプログラム生成処理部の処理動作を示したフローチャートである。
【図９】図１におけるモジュール生成部の処理動作を示したフローチャートである。
【図１０】図１におけるモジュール実行部の処理動作を示したフローチャートである。
【図１１】本発明に係るプログラムおよびデータが記録媒体に記録され、その記録媒体からコンピュータにインストールされる動作を示した図である。
【符号の説明】
【００３１】
１１  ＣＰＵ
１２  ＣＤ−ＲＯＭ
１３  ＤＶＤ−ＲＯＭ
１４  フロッピー（登録商標）ディスク
１５  ＣＲＴドライバ
１６  キーボード／マウスドライバ１６
１７  ディスク装置ドライバ
１８  ＣＲＴ
１９  キーボード
２０  マウス
２１  ディスク装置
１０１  情報制御装置（クライアント）
１０２〜１０５  実行端末
１０６  ネットワーク
１０７  ＩＮＰＵＴ−ＰＵＴＰＵＴマスタテーブル
１０８  入出力テーブル情報取得処理部
１０９  情報制御装置（サーバ）
１１０  データディクショナリ
１１１  項目名取得処理部
１１２  処理パラメータテーブル
１１３  プログラムパーツＩＤ取得処理部
１１４  ソースライブラリＤＢ
１１５  プログラムパーツ取得処理部
１１６  ソースプログラム
１１７  プログラム生成処理部
１１８  実行モジュール
１１９  モジュール生成部
１２０  モジュール実行部
１２１  実行パラメータ
２０１  実行パラメータ構成
２０２  ＩＮＰＵＴ−ＰＵＴＰＵＴマスタテーブル構成
２０３  データディクショナリ構成
２０４  処理パラメータテーブル構成
２０５  ソースライブラリＤＢ構成
３０１  ソースプログラム構成
３０２〜３０５  プログラムパーツ
【図１】
2009048404.tif 000003
【図２】
2009048404.tif 000004
【図３】
2009048404.tif 000005
【図４】
2009048404.tif 000006
【図５】
2009048404.tif 000007
【図６−Ａ】
2009048404.tif 000008
【図６−Ｂ】
2009048404.tif 000009
【図７】
2009048404.tif 000010
【図８】
2009048404.tif 000011
【図９】
2009048404.tif 000012
【図１０】
2009048404.tif 000013
【図１１】
2009048404.tif 000014