(57)【要約】【課題】プログラムのパターンを限定せずに、幅広いタイプのプログラムの自動生成を可能にするための技術を提供する。【解決手段】第１及び第２の設計書雛形１１１，１１２を記憶する詳細設計書雛形記憶部１１と、雛形に対する入力に基づいて、第１及び第２の設計書を生成する詳細設計書生成部１５と、第１雛形１１１と対応付けられているソースコード雛形２１１と、第２の雛形１１２と対応付けられているソースコード生成規則２１２を記憶する自動生成規則記憶部２１と、第１設計書及びソースコード雛形２１１に基づいて、スケルトンクラスソースファイルを生成し、第２の設計書及びソースコード生成規則２１２に基づいて、部品クラスソースファイルを生成するソースファイル生成部２３とを備える。【選択図】  図１
2007241346.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ複数の入力項目を備えた、第１及び第２の設計書雛形を記憶する雛形記憶手段と、
第１及び第２の設計書雛形に対する入力に基づいて、第１及び第２の設計書を生成する設計書生成手段と、
前記第１の設計書雛形と対応付けられているソースコード雛形を記憶するソースコード雛形記憶手段と、
前記生成された第１の設計書と、前記第１の設計書雛形と対応付けられているソースコード雛形とに基づいて、ソースコード雛形クラスオブジェクトを出力する手段と、
前記第２の設計書雛形に基づいて、ソースコードを自動生成するための生成規則を記憶する生成規則記憶手段と、
前記生成された第２の設計書と前記生成規則とに基づいてソースコードを生成し、部品クラスオブジェクトを出力する手段と、
前記ソースコード雛形クラスオブジェクトに対するソースコードの入力を受け付ける手段と、を備えるプログラム自動生成システム。
【請求項２】
前記雛形記憶手段には、さらに、データストアのための第３の設計書雛形が記憶されていて、
前記設計書生成手段は、前記第３の設計書雛形に対する入力に基づいて、第３の設計書を生成し、
前記プログラム自動生成システムは、
前記第３の設計書に基づいて、データを格納するためのオブジェクトを生成して出力する手段と、を備える請求項１記載のプログラム自動生成システム。
【請求項３】
前記生成規則は、雛形の入力項目別に、各入力項目に設定されている情報に応じて生成するソースコードを定めるための規則であることを特徴とする請求項１記載のプログラム自動生成システム。
【請求項４】
それぞれ複数の入力項目を備えた、第１及び第２の設計書雛形を雛形記憶手段に格納するステップと、
第１及び第２の設計書雛形に対する入力に基づいて、第１及び第２の設計書を生成するステップと、
前記第１の設計書雛形と対応付けられているソースコード雛形をソースコード雛形記憶手段に格納するステップと、
前記生成された第１の設計書と、前記第１の設計書雛形と対応付けられているソースコード雛形とに基づいて、ソースコード雛形クラスオブジェクトを出力するステップと、
前記第２の設計書雛形に基づいて、ソースコードを自動生成するための生成規則を生成規則記憶手段に格納するステップと、
前記生成された第２の設計書と前記生成規則とに基づいてソースコードを生成し、部品クラスオブジェクトを出力するステップと、
前記ソースコード雛形クラスオブジェクトに対するソースコードの入力を受け付けるステップと、を有するプログラムの自動生成方法。
【請求項５】
コンピュータに実行されると、
それぞれ複数の入力項目を備えた、第１及び第２の設計書雛形を雛形記憶手段に格納するステップと、
第１及び第２の設計書雛形に対する入力に基づいて、第１及び第２の設計書を生成するステップと、
前記第１の設計書雛形と対応付けられているソースコード雛形をソースコード雛形記憶手段に格納するステップと、
前記生成された第１の設計書と、前記第１の設計書雛形と対応付けられているソースコード雛形とに基づいて、ソースコード雛形クラスオブジェクトを出力するステップと、
前記第２の設計書雛形に基づいて、ソースコードを自動生成するための生成規則を生成規則記憶手段に格納するステップと、
前記生成された第２の設計書と前記生成規則とに基づいてソースコードを生成し、部品クラスオブジェクトを出力するステップと、
前記ソースコード雛形クラスオブジェクトに対するソースコードの入力を受け付けるステップと、を行うプログラムの自動生成のためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの自動生成を行うための技術に関する。
【背景技術】
【０００２】
プログラムの自動生成を行うシステムが特許文献１に記載されている。この特許文献１のシステムでは、予めパターン化されたプログラムが用意されていて、これらの組み合わせによってプログラムを自動生成する。
【特許文献１】特開平８−２０２５３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記先行技術では、予め用意されているプログラムのパターンの範囲内でしかプログラムを自動生成することができない。つまり、既存のパターン以外のものが必要になったときには、このパターンを追加しなければならず、プログラム自動生成システムとしての柔軟性がなかった。
【０００４】
そこで、本発明の目的は、パターンを限定せずに、幅広いタイプのプログラムの自動生成を可能にするための技術を提供することである。
【課題を解決するための手段】
【０００５】
本発明の一実施態様に従うプログラム自動生成システムは、それぞれ複数の入力項目を備えた、第１及び第２の設計書雛形を記憶する雛形記憶手段と、第１及び第２の設計書雛形に対する入力に基づいて、第１及び第２の設計書を生成する設計書生成手段と、前記第１の設計書雛形と対応付けられているソースコード雛形を記憶するソースコード雛形記憶手段と、前記生成された第１の設計書と、前記第１の設計書雛形と対応付けられているソースコード雛形とに基づいて、ソースコード雛形クラスオブジェクトを出力する手段と、前記第２の設計書雛形に基づいて、ソースコードを自動生成するための生成規則を記憶する生成規則記憶手段と、前記生成された第２の設計書と前記生成規則とに基づいてソースコードを生成し、部品クラスオブジェクトを出力する手段と、前記ソースコード雛形クラスオブジェクトに対するソースコードの入力を受け付ける手段と、を備える。
【０００６】
好適な実施形態では、前記雛形記憶手段には、さらに、データストアのための第３の設計書雛形が記憶されていて、前記設計書生成手段は、前記第３の設計書雛形に対する入力に基づいて、第３の設計書を生成するようにしてもよい。前記プログラム製造装置は、前記第３の設計書に基づいて、データを格納するためのオブジェクトを生成して出力する手段と、を備えてもよい。
【０００７】
好適な実施形態では、前記生成規則は、雛形の入力項目別に、各入力項目に設定されている情報に応じて生成するソースコードを定めるための規則であってもよい。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の一実施形態に係るプログラム自動生成システムについて、図面を参照して説明する。
【０００９】
図１は、本実施形態に係るプログラム自動生成システムの機能構成を示す図である。本システムは、予め用意されている詳細設計書の雛形を用いて、ユーザによる詳細設計書の作成を支援する。それとともに、作成された詳細設計書に基づいて、ソースコードを自動生成し、ソースコードを含むソースファイルを生成する。
【００１０】
本システムは、例えば汎用的なコンピュータシステムにより構成され、以下に説明する本システム内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。
【００１１】
本システムは、図１に示すように、詳細設計書の雛形を記憶する記憶部１１と、入力装置１３と、表示装置１４と、設計書雛形を利用して詳細設計書を生成する詳細設計書生成部１５と、生成された詳細設計書を記憶する設計書記憶部１９と、設計書に基づいてソースファイルを自動生成するための自動生成規則の記憶部２１と、詳細設計書及び自動生成規則に基づいてソースコードを生成し、そのソースコードを含むソースファイルを出力するソースファイル生成部２３と、生成されたソースファイルを記憶するソースファイル記憶部２５とを備える。
【００１２】
雛形記憶部１１には、複数の詳細設計書の雛形が格納されている。各雛形には、一つ以上の入力項目が設けられている。そして、ユーザが各入力項目に対して、それぞれ所望の情報を入力することにより、詳細設計書が作成される。本実施形態では、雛形には、第１雛形１１１、第２雛形１１２、及び第３雛形１１３の３種類の雛形が用意されている。そして、この雛形の各種類には、それぞれ、複数の個別の雛形がある。
【００１３】
図２は、各種類別の個別雛形を示す。
【００１４】
例えば、第１雛形は、本システムによってスケルトンクラスの関数のソースファイルを自動生成するための雛形である。スケルトンクラスの関数とは、定型的なソースコードのみ（スケルトン）からなる関数である。従って、自動生成されたスケルトンクラスの関数のソースファイルのみで実行することはできず、マニュアルコーディングにより、ソースコードを追加する必要がある。
【００１５】
第１雛形には、例えば同図に示すように、設計書の表紙のための「表紙」、スケルトンで定義されるメソッドの処理を記述するための「スケルトンメソッド初期記述」のための雛形が含まれる。
【００１６】
第２雛形は、本システムによって部品クラスの関数のソースファイルを自動生成するための雛形である。部品クラスの関数とは、システムにおける部品に相当するような、比較的小規模かつ定型的な処理を行うための関数である。本システムで自動生成された部品クラスの関数のソースファイルは、そのまま実行することができる。
【００１７】
第２雛形には、例えば同図に示すように、データの属性チェックなどのための「単体項目チェック呼出」、「属性関連チェック呼出」及び「項目関連チェック呼出」や、データベースとの連携のための項目定義と実行後結果のハンドリングを記述するための「ＳＱＬ概要」などのための雛形が含まれる。
【００１８】
第３雛形は、本システムによってデータオブジェクト（ＤＯ）クラスのデータオブジェクトのソースファイルを自動生成するための雛形である。本システムで自動生成されたＤＯクラスのデータオブジェクトのソースファイルは、そのまま実行することができる。
【００１９】
第３雛形には、例えば同図に示すように、データオブジェクトを定義する「レコード編集要領」、及びデータオブジェクトからの出力電文を定義する「出力電文編集要領」のための雛形が含まれる。
【００２０】
再び図１を参照すると、設計書生成部１５は、上述のユーザの雛形に対する入力に基づいて、設計書を生成する。つまり、雛形を表示装置１４に表示して、ユーザが入力装置１３で雛形の入力項目にそれぞれ適当に入力した情報に基づいて詳細設計書を生成する。
【００２１】
設計書記憶部１９は、設計書生成部１５で生成された詳細設計書を記憶する。
【００２２】
自動生成規則記憶部２１は、設計書記憶部１９に記憶された詳細設計書に基づいてソースファイルを自動生成するための規則を記憶する。この生成規則は、設計書の個別の雛形ごとに予め定められている。
【００２３】
本実施形態では、第１の雛形１１１に属する個別雛形に対しては、ソースコード雛形２１１が用意されている。第２及び第３の雛形１１２，１１３に属する個別の雛形に対しては、それぞれ、ソースコード生成規則２１２が用意されている。
【００２４】
ソースコード雛形２１１は、スケルトンクラスの関数のソースファイルを生成するためのソースコードの雛形である。
【００２５】
ソースコード生成規則２１２は、関数（最小単位の部品群）のソースファイル及びＤＯクラスのデータオブジェクトのソースファイルを生成するための生成規則である。ソースコード生成規則２１２は、各個別の雛形ごとに用意されている。そして、各個別雛形の入力項目別に、その入力項目に設定されている情報に基づいてどのようなソースコードに変換するかを示す規則が記述されている。
【００２６】
ソースファイル生成部２３は、設計書記憶部１９に格納されている設計書と、自動生成規則記憶部２１に格納されている生成規則に基づいて、ソースファイルを生成する。
【００２７】
例えば、第１雛形１１１に基づく設計書の場合、その雛形に対応するソースコード雛形２１１を自動生成規則記憶部２１から取得して、ソースファイルとして出力する。つまり、ソースファイル生成部２３は、第１雛形１１１の入力項目に対して入力された情報を、所定の規則に従ってソースコード雛形２２１に当てはめることにより、スケルトンクラスソースファイルを生成する。
【００２８】
また、第２雛形１１２及び第３雛形１１３に基づく設計書の場合、その個別の雛形に対応するソースコード生成規則２１２を自動生成規則記憶部２１から取得する。そして、ソースコード生成規則２１２で予め定められている規則と、設計書に設定された情報とに基づいてソースコードを生成し、部品クラスまたはDOクラスの各ソースファイルを生成する。例えば、雛形の入力項目ごとに、その入力項目に設定された情報に応じて、異なるソースコードを生成するようになっている。
【００２９】
ソースファイル記憶部２５は、ソースファイル生成部２３で生成されたソースコードファイルが格納される。
【００３０】
つぎに、上述のような構成を備えるソースコード自動生成システムにおいて、プログラムを自動生成する処理を、具体例を用いて説明する。
【００３１】
図３は、本システムを用いて設計及び製造するアプリケーションシステムの一例である。
【００３２】
このアプリケーションシステムは、ユーザから株数３１０と指値３２０の入力を受け付けて、株式の現物株式買注文を発注する発注画面３００を備える。そして、この発注画面３００で、株数と指値の入力を受け付けて、発注ボタン３３０が押されると、この取引に係る合計金額を算出して、この合計金額を含む発注情報が発注ＤＢ８０の発注テーブルに格納される。
【００３３】
以下、本実施形態に係るシステムを用いて、このアプリケーションシステムの設計及びソースファイルの自動生成を行う場合について説明する。
【００３４】
図４は、第１雛形１１１の「表紙」１１１Ａを示す。
【００３５】
「表紙」１１１Ａは、入力項目として、プログラム名称と、プログラムＩＤと、内部メソッドと、外部メソッドとを有する。そして、このアプリケーションシステムの設計においては、各入力項目には、図４に示すような情報が入力される。
【００３６】
図５は、第２雛形１１２の「単体項目チェック呼出」１１２Ａを示す。
【００３７】
「単体項目チェック呼出」１１２Ａは、入力項目として、チェック処理名称と、アーギュメントと、単体項目チェッククラスメソッド名称とを有する。そして、このアプリケーションシステムの設計においては、図５に示すように、アーギュメントには、発注画面３００の画面ＩＤ（Ｍ１００１）が設定され、単体項目チェッククラスメソッド名称には、予め用意されている単体項目チェックを行う関数であるＵｎｉｔＣｈｅｃｋｅｒが設定される。
【００３８】
図６は、第３雛形１１３の「レコード編集要領」１１３Ａを示す。
【００３９】
「レコード編集要領」１１３Ａは、データオブジェクト間でデータ転送を行うためのデータオブジェクトを設計するためのものである。「レコード編集要領」１１３Ａは、入力項目として、転送元のＤＯ名称及びＤＯ構成項目名称と、転送先のＤＯ名称及びＤＯ構成項目名称とを有する。そして、このアプリケーションシステムの設計においては、図６に示すように、転送元は発注画面３００のデータオブジェクトであり、転送先は発注テーブルのデータオブジェクトである。転送元のＤＯ構成項目名称には、銘柄コード、株数、及び指値など、画面を構成する項目のうち、値を持つ項目が設定される。
【００４０】
図７は、第２雛形１１２の「ＳＱＬ概要」１１２Ｂを示す。
【００４１】
「ＳＱＬ概要」１１２Ｂは、入力項目として、ＳＱＬ処理名称と、ＳＱＬ文と、ＤＯ名称と、ＤＯ構成項目名称とを有する。そして、このアプリケーションシステムの設計においては、図７に示すように、ＤＯ名称及びＤＯ構成項目名称には、データの挿入先である発注テーブルの項目が設定される。
【００４２】
設計書の雛形に対して、図４から図７に示すような入力が行われると、設計書生成部１５が詳細設計書を生成して、設計書記憶部１９に格納する。
【００４３】
次に、ソースファイル生成部２３は、それぞれの雛形に対応する自動生成規則に基づいて、ソースファイルを生成する。
【００４４】
図８は、自動生成されたアプリケーションシステムの構成を示す。
【００４５】
つまり、ここでは、図４の「表紙」１１１Ａに基づいて、スケルトンクラスソースファイルの「発注（現物株買）」２６１が生成される。図５の「単体項目チェック呼出」１１２Ａ及び図７の「ＳＱＬ概要」１１２Ｂに基づいて、部品クラスの「ユニットチェッククラスメソッド呼出」２６２と「ＤＢ登録」２６３とが生成される。図６の「レコード編集要領」１１３Ａに基づいて、ＤＯクラスソースファイルの「発注画面→発注テーブルＤＯ」２６４が生成される。なお、ここで、画面入力される項目の単体チェックを行う関数であるＵｎｉｔＣｈｅｋｅｒ２７１と、発注画面３００のデータオブジェクト２７２と、発注テーブルのデータオブジェクト２７３は、予め用意されている。
【００４６】
ＤＯクラスの「発注画面データオブジェクト」２７２は、発注画面３００から入力された株数及び指値の値を取得して、保持するデータストアであり、「発注テーブルデータオブジェクト」２７３は、発注テーブルに格納するためのデータを保持するデータストアである。
【００４７】
ここで、スケルトンクラスの「発注（現物株買）」２６１においては、ユーザによるコーディングが必要である。つまり、ユーザは、入力装置１３及び表示装置１４を用いて、合計金額の算出のためのソースコード２６１ａを「発注現物株（買）」２６１に対して追加する。
【００４８】
上述のように自動生成されたソースファイルに、一部マニュアルコーディングによりソースコードを追加して完成したシステムは、以下のように動作する。
【００４９】
すなわち、「発注（現物株買）」２６１が部品クラスの「ユニットチェッククラスメソッド呼出」２６２を呼び出すと、「ユニットチェッククラスメソッド呼出」２６２がさらにＵｎｉｔＣｈｅｋｅｒ２７１を呼び出して、発注画面３００の株数３１０及び指値３２０に入力された値の単体チェックを行う。
【００５０】
次に、「発注（現物株買）」２６１が「発注画面データオブジェクト」２７２から、発注画面３００から株数及び指値を取得して、合計金額の算出のためのソースコード２６１ａが合計金額を算出する。そして、ここで算出された合計金額が、「発注テーブルデータオブジェクト」２７３に格納される。
【００５１】
その後、「発注現物株（買）」２６１は、「ＤＢ登録」２６３に対してＤＢへの登録を指示すると、、「発注テーブルデータオブジェクト」２７３に保持されているデータを発注ＤＢ８０の発注テーブルへ挿入する。
【００５２】
これにより、本実施形態に係るシステムによれば、幅広いタイプのシステムを自動生成することができる。
【００５３】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【図面の簡単な説明】
【００５４】
【図１】本発明の一実施形態に係るプログラム自動生成システムの機能構成を示す図である。
【図２】各種類別の個別雛形を示す。
【図３】本システムを用いて設計及び製造するアプリケーションシステムの一例を示す。
【図４】第１雛形１１１の「表紙」１１１Ａを示す。
【図５】第２雛形１１２の「単体項目チェック呼出」１１２Ａを示す。
【図６】第３雛形１１３の「レコード編集要領」１１３Ａを示す。
【図７】第２雛形１１２の「ＳＱＬ概要」１１２Ｂを示す。
【図８】自動生成されたアプリケーションシステムの構成を示す。
【符号の説明】
【００５５】
１１    詳細設計書雛形記憶部
１３    入力装置
１４    表示装置
１５    詳細設計書生成部
１９    詳細設計書記憶部
２１    自動生成規則記憶部
２３    ソースファイル生成部
２５    ソースファイル記憶部
【図１】
2007241346.tif 000003
【図２】
2007241346.tif 000004
【図３】
2007241346.tif 000005
【図４】
2007241346.tif 000006
【図５】
2007241346.tif 000007
【図６】
2007241346.tif 000008
【図７】
2007241346.tif 000009
【図８】
2007241346.tif 000010