(57)【要約】【課題】  プログラムにおける変更のポイントを明確化すると共に、ターゲットのプログラム言語の変更が容易なプログラム生成システムを提供する。【解決手段】  生成されるプログラムの仕様をキーワードの列で表わす仕様モデル情報から、変更に関係するいくつかのキーワードを取り出し、各キーワードに対応する設定値を変更指定手段により指定する。仕様モデル情報中の各キーワードに対応する個所に設定値を設定したプログラム仕様情報と、仕様モデル情報を処理の列として表わすプログラム処理情報と、処理の列を前記プログラムのテンプレートで表わすプログラムテンプレート情報とを入力し、各キーワードに対応するテンプレート内の所定の個所に設定値を設定してターゲットとなるプログラムを生成する。【選択図】  図２
2005182132.tif 000002
【特許請求の範囲】
【請求項１】
生成されるプログラムの仕様を第１のキーワード群で表わす仕様モデル情報と、前記仕様モデル情報を処理の列として表わすプログラムモデル情報と、前記処理の列を前記プログラムのテンプレートで表わすプログラムテンプレート情報と、を蓄積しておく蓄積手段と、
前記仕様モデル情報を前記蓄積手段から入力して前記仕様モデル情報から第２のキーワード群を取り出し、前記第２のキーワード群に含まれる各キーワードに対応する前記仕様モデル情報中の所定の個所に設定値を設定したプログラム仕様情報を生成する仕様解析手段と、
前記設定値を指定する変更指定手段と、
前記プログラム仕様情報を前記仕様解析手段から入力し、前記プログラムモデル情報と、前記プログラムテンプレート情報とを前記蓄積手段から入力し、前記各キーワードに対応する前記テンプレート内の所定の個所に前記設定値を設定して前記プログラムを生成するプログラム生成手段と、
を備えることを特徴とするプログラム生成システム。
【請求項２】
ターゲットとなるプログラムの仕様を第１のキーワード群で表わす仕様モデル情報と、前記仕様モデル情報を処理の列として表現するプログラム処理と前記仕様モデル情報との組を含むプログラムモデル情報と、前記プログラム処理を実装する前記プログラムを表現するテンプレートと前記プログラム処理との組を含むプログラムテンプレート情報と、変更ワークシート情報と、変更ポイント情報と、プログラム仕様情報と、前記プログラムと、を蓄積する蓄積手段と、
前記変更ワークシート情報における変更対象となる第２のキーワード群に含まれる各キーワードに対応する設定値を指定する変更指定手段と、
前記蓄積手段から前記仕様モデル情報を入力し、入力された前記仕様モデル情報中の前記第１のキーワード群に含まれる前記第２のキーワード群を取り出して前記変更ワークシート情報を生成して前記蓄積手段に出力し、前記変更ワークシート情報に対して、前記変更指定手段により前記設定値を指定して作成する変更ポイント情報と前記仕様モデル情報とを前記蓄積手段から入力し、前記仕様モデル情報と前記変更ポイント情報とに従い、プログラム仕様情報を規定するための前記第１のキーワード群と前記第２のキーワード群に対応する設定値との組を含む前記プログラム仕様情報を生成して前記蓄積手段に出力する仕様解析手段と、
前記蓄積手段から、前記プログラム仕様情報と、前記プログラムモデル情報と、前記プログラムテンプレート情報とを入力し、前記プログラムモデル情報中の前記仕様モデル情報と前記プログラム処理との対応付け、および前記プログラムテンプレート情報中の前記プログラム処理と前記テンプレートとの対応付けから、前記プログラム仕様情報中の前記設定値を前記テンプレート内の所定の個所に当てはめ、前記ターゲットとなるプログラムを生成して前記蓄積手段に出力するプログラム生成手段と、
を備えることを特徴とするプログラム生成システム。
【請求項３】
前記第１のキーワード群は、前記第２のキーワード群と第３のキーワード群とから成り、前記プログラムは、第２のキーワード群に対応する処理から、第３のキーワード群に含まれるキーワードに対応する結果を出力するプログラムであることを特徴とする請求項１または２のいずれか一記載のプログラム生成システム。
【請求項４】
前記第１のキーワード群に含まれるキーワードは、前記キーワードに対応する設定値の型を示す情報を伴い、前記型の情報は、前記プログラム仕様情報中に表記されることを特徴とする請求項１〜３のいずれか一記載のプログラム生成システム。
【請求項５】
前記第２のキーワード群に属する前記キーワードは、特定の記号を伴い、前記特定の記号は、前記変更指定手段によって前記設定値が設定されるように表記されることを特徴とする請求項１〜３のいずれか一記載のプログラム生成システム。
【請求項６】
前記設定値は、数値または文字列で表される値であることを特徴とする請求項１、２、４または５のいずれか一記載のプログラム生成システム。
【請求項７】
前記設定値は、前記プログラム中に現れることを特徴とする請求項１、２、４、５または６のいずれか一記載のプログラム生成システム。
【請求項８】
前記処理の列は、引数を伴う処理名の列として表されることを特徴とする請求項１または２のいずれか一記載のプログラム生成システム。
【請求項９】
前記引数は、前記プログラムテンプレート情報内で変数として表され、前記プログラム内の変数に反映されることを特徴とする請求項８記載のプログラム生成システム。
【請求項１０】
前記プログラム内の変数は、前記設定値が代入されることを特徴とする請求項９記載のプログラム生成システム。
【請求項１１】
生成されるプログラムの仕様を第１のキーワード群で表わす仕様モデル情報から第２のキーワード群を取り出すステップと、
前記第２のキーワード群に含まれる各キーワードに対応する設定値を変更指定手段により指定するステップと、
前記各キーワードに対応する前記仕様モデル情報中の所定の個所に前記設定値を設定したプログラム仕様情報を生成するステップと、
前記プログラム仕様情報と、前記仕様モデル情報を処理の列として表わすプログラムモデル情報と、前記処理の列を前記プログラムのテンプレートで表わすプログラムテンプレート情報とを入力するステップと、
前記各キーワードに対応する前記テンプレート内の所定の個所に前記設定値を設定して前記プログラムを生成するステップと、
を含むことを特徴とするプログラム生成方法。
【請求項１２】
ターゲットとなるプログラムの仕様を第１のキーワード群で表わす仕様モデル情報を入力するステップと、
入力された前記仕様モデル情報から第２のキーワード群を取り出して変更ワークシート情報を生成して出力するステップと、
前記変更ワークシート情報における前記第２のキーワード群に含まれる変更対象となる各キーワードに対応する設定値を変更指定手段により指定して変更ポイント情報を作成するステップと、
前記仕様モデル情報と前記変更ポイント情報とに基づき、プログラム仕様を規定するための前記第１のキーワード群と前記第２のキーワード群に対応する前記設定値との組を含むプログラム仕様情報を生成するステップと、
（ａ）前記プログラム仕様情報、（ｂ）前記仕様モデル情報を処理の列として表現するプログラム処理と前記仕様モデル情報との組を含むプログラムモデル情報、（ｃ）前記プログラム処理を実装する前記プログラムを表現するテンプレートと前記プログラム処理との組を含むプログラムテンプレート情報、を入力するステップと、
前記プログラムモデル情報中の前記仕様モデル情報と前記プログラム処理との対応付け、および前記テンプレート中の前記プログラム処理と前記テンプレートとの対応付けから、前記プログラム仕様情報中の前記設定値を前記テンプレート内の所定の個所に当てはめ、前記ターゲットとなるプログラムを生成するステップと、
を含むことを特徴とするプログラム生成方法。
【請求項１３】
前記第１のキーワード群は、前記第２のキーワード群と第３のキーワード群とから成り、前記プログラムは、第２のキーワード群に対応する処理から、第３のキーワード群に含まれるキーワードに対応する結果を出力するプログラムであることを特徴とする請求項１１または１２のいずれか一記載のプログラム生成方法。
【請求項１４】
前記第１のキーワード群に含まれるキーワードは、前記キーワードに対応する設定値の型を示す情報を伴い、前記型の情報は、前記プログラム仕様情報中に表記されることを特徴とする請求項１１〜１３のいずれか一記載のプログラム生成方法。
【請求項１５】
前記第２のキーワード群に属する前記キーワードは、特定の記号を伴い、前記特定の記号は、前記変更指定手段によって前記設定値が設定されるように表記されることを特徴とする請求項１１〜１３のいずれか一記載のプログラム生成方法。
【請求項１６】
前記設定値は、数値または文字列で表される値であることを特徴とする請求項１１、１２、１４または１５のいずれか一記載のプログラム生成方法。
【請求項１７】
前記設定値は、前記プログラム中に現れることを特徴とする請求項１１、１２、１４、１５または１６のいずれか一記載のプログラム生成方法。
【請求項１８】
前記処理の列は、引数を伴う処理名の列として表されることを特徴とする請求項１１または１２のいずれか一記載のプログラム生成方法。
【請求項１９】
前記引数は、前記プログラムテンプレート情報内で変数として表され、前記プログラム内の変数に反映されることを特徴とする請求項１８記載のプログラム生成方法。
【請求項２０】
前記プログラム内の変数は、前記設定値が代入されることを特徴とする請求項１９記載のプログラム生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力される仕様に従ってプログラムを生成するシステムおよび方法に係る。
【背景技術】
【０００２】
従来、要求仕様を与えて目的とするプログラムを生成するシステムおよび方法がいくつか知られている。例えば、特許文献１には、所定の表計算ソフトウェアで作成した機能要求仕様書からＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ）モデルを使用して業務用アプリケーションソースを作成するシステムおよび方法が開示されている。ここではＵＭＬモデルに対する深い知識を必要とせずに、要求仕様をＵＭＬモデルで定義することが可能となっている。
【０００３】
また、特許文献２では、仕様書から自動的にプログラムを生成することにより、プログラムとその仕様書とを一体化して、プログラムとその仕様書との不一致を防ぐプログラムおよび仕様書の生成修正方式が開示されている。ここで仕様情報は、作成プログラムの注記行に挿入され併合された仕様情報併合プログラムとして格納されている。
【０００４】
さらに、特許文献３には、入力仕様と出力プログラムの関係の情報をプログラム生成部の外に入出力対応表とテンプレートとして設定し、これらの情報を参照して入力仕様の変換を行なうメタルールを有するようにして、入力仕様の形式の追加や出力プログラムの形式の変更を、変換規則を修正することなく実施できるプログラム自動生成装置が開示されている。なお、ここで入出力対応表とは、入力仕様を出力プログラムへ変換するための参照表であり、テンプレートとは、入力仕様を出力プログラムへ変換するステップにおいて、入力値が出力値を決定する際に、出力の一般的なパターンを表すものである。
【０００５】
【特許文献１】特開２００２−２８７９６１号公報（第１、２、４図）
【特許文献２】特開平２−９６２２８号公報（第１図）
【特許文献３】特開平９−２３１０６３号公報（第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のプログラム生成システムでは、要求仕様を与えて目的とするプログラムを効果的に生成するシステムおよび方法が開示されている。しかしながら、ある部分の変更を行なう際には、変更のポイントが明確化されてユーザに提示されるようになっていない。したがって、変更にあたってプログラム生成システムの利用方法が必ずしも容易ではないという問題がある。
【０００７】
また、プログラムのテンプレートをターゲットの言語構文に従って入れ替えることが容易にできないために、ターゲットとなるプログラム言語を変更することが困難であるという問題がある。
【０００８】
本発明は、このような問題を解決するために、変更のポイントを明確化すると共に、ターゲットのプログラム言語の変更が容易なプログラム生成システムおよび方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
前記目的を達成するために、本発明に係るプログラム生成システムは、第１の視点によれば、生成されるプログラムの仕様を第１のキーワード群で表わす仕様モデル情報と、仕様モデル情報を処理の列として表わすプログラムモデル情報と、処理の列をプログラムのテンプレートで表わすプログラムテンプレート情報と、を蓄積しておく蓄積手段を備える。また、仕様モデル情報を蓄積手段から入力して仕様モデル情報から第２のキーワード群を取り出し、第２のキーワード群に含まれる各キーワードに対応する仕様モデル情報中の所定の個所に設定値を設定したプログラム仕様情報を生成する仕様解析手段を備える。さらに、設定値を指定する変更指定手段を備える。さらにまた、プログラム仕様情報を仕様解析手段から入力し、プログラムモデル情報と、プログラムテンプレート情報とを蓄積手段から入力し、各キーワードに対応するテンプレート内の所定の個所に設定値を設定してプログラムを生成するプログラム生成手段を備える。
【００１０】
また、本発明に係るプログラム生成システムは、第２の視点によれば、ターゲットとなるプログラムの仕様を第１のキーワード群で表わす仕様モデル情報と、仕様モデル情報を処理の列として表現するプログラム処理と仕様モデル情報との組を含むプログラムモデル情報と、プログラム処理を実装するプログラムを表現するテンプレートとプログラム処理との組を含むプログラムテンプレート情報と、変更ワークシート情報と、変更ポイント情報と、プログラム仕様情報と、プログラムと、を蓄積する蓄積手段を備える。また、変更ワークシート情報における変更対象となる第２のキーワード群に含まれる各キーワードに対応する設定値を指定する変更指定手段を備える。さらに、蓄積手段から仕様モデル情報を入力し、入力された仕様モデル情報中の第１のキーワード群に含まれる第２のキーワード群を取り出して変更ワークシート情報を生成して蓄積手段に出力し、変更ワークシート情報に対して、変更指定手段により設定値を指定して作成する変更ポイント情報と、仕様モデル情報とを蓄積手段から入力し、仕様モデル情報と変更ポイント情報とに従い、プログラム仕様情報を規定するための第１のキーワード群と第２のキーワード群に対応する設定値との組を含むプログラム仕様情報を生成して蓄積手段に出力する仕様解析手段を備える。さらにまた、蓄積手段から、プログラム仕様情報と、プログラムモデル情報と、プログラムテンプレート情報とを入力し、プログラムモデル情報中の仕様モデル情報とプログラム処理との対応付け、およびテンプレート中のプログラム処理とテンプレートとの対応付けから、プログラム仕様情報中の設定値をテンプレート内の所定の個所に当てはめ、ターゲットとなるプログラムを生成して蓄積手段に出力するプログラム生成手段を備える。
【００１１】
さらに、本発明に係るプログラム生成方法は、第３の視点によれば、生成されるプログラムの仕様を第１のキーワード群で表わす仕様モデル情報から第２のキーワード群を取り出すステップと、第２のキーワード群に含まれる各キーワードに対応する設定値を変更指定手段により指定するステップと、各キーワードに対応する仕様モデル情報中の所定の個所に設定値を設定したプログラム仕様情報を生成するステップと、を含む。また、プログラム仕様情報と、仕様モデル情報を処理の列として表わすプログラム処理と、処理の列をプログラムのテンプレートで表わすプログラムテンプレート情報とを入力するステップと、各キーワードに対応するテンプレート内の所定の個所に設定値を設定してプログラムを生成するステップと、を含む。
【００１２】
また、本発明に係るプログラム生成方法は、第４の視点によれば、ターゲットとなるプログラムの仕様を第１のキーワード群で表わす仕様モデル情報を入力するステップと、入力された仕様モデル情報から第２のキーワード群を取り出して変更ワークシート情報を生成して出力するステップと、変更ワークシート情報における第２のキーワード群に含まれる変更対象となる各キーワードに対応する設定値を変更指定手段により指定して変更ポイント情報を作成するステップと、仕様モデル情報と変更ポイント情報とに基づき、プログラム仕様情報を規定するための第１のキーワード群と第２のキーワード群に対応する設定値との組を含むプログラム仕様情報を生成するステップと、を含む。また、（ａ）プログラム仕様情報、（ｂ）仕様モデル情報を処理の列として表現するプログラム処理と仕様モデル情報との組を含むプログラムモデル情報、（ｃ）プログラム処理を実装したプログラムを表現するテンプレートとプログラム処理との組を含むプログラムテンプレート情報、を入力するステップと、プログラムモデル情報中の仕様モデル情報とプログラム処理との対応付け、およびテンプレート中のプログラム処理とテンプレートとの対応付けから、プログラム仕様情報中の設定値をテンプレート内の所定の個所に当てはめ、ターゲットとなるプログラムを生成するステップと、を含む。
【００１３】
第１のキーワード群は、第２のキーワード群と第３のキーワード群とから成り、ターゲットとなるプログラムは、第２のキーワード群に対応する処理から、第３のキーワード群に含まれるキーワードに対応する結果を出力するプログラムであってもよい。
【００１４】
また、第１のキーワード群に含まれるキーワードは、キーワードに対応する設定値の型を示す情報を伴い、型の情報は、プログラム仕様情報中に表記されてもよい。
【００１５】
さらに、第２のキーワード群に属するキーワードは、特定の記号を伴い、特定の記号は、変更指定手段によって設定値が設定されるように表記されてもよい。
【００１６】
また、設定値は、数値または文字列で表される値であってもよい。
【００１７】
さらに、設定値は、プログラム中に現れてもよい。
【００１８】
また、処理の列は、引数を伴う処理名の列として表されてもよい。
【００１９】
さらに、引数は、プログラムテンプレート情報内で変数として表され、プログラム内の変数に反映されてもよい。
【００２０】
また、プログラム内の変数は、設定値が代入されてもよい。
【発明の効果】
【００２１】
本発明によれば、仕様モデル情報を仕様解析エンジンに入力すると、変更ワークシート情報が生成される。これにより、変更のポイントが明確化されるので、プログラム生成システムの利用方法が単純化され、利用が容易となる。
【００２２】
また、本発明によれば、プログラムのテンプレートのみをターゲットの言語構文に従って入れ替えるだけで、ターゲットとなるプログラム言語を容易に変更することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施形態を添付図面に基づいて説明する。図１は本発明の実施形態に係るプログラム生成システムを示すブロック図である。システムは、入力装置１、出力装置２、処理装置３から構成される。入力装置１は、例えば、キーボード、マウス等のマンマシンインタフェースを始め、外部の磁気記録媒体等の読み取り装置、通信回線など、各種のデータを処理装置３に入力するための装置等を含むものである。また、出力装置２は、例えば、ディスプレイ等のマンマシンインタフェースを始め、外部の磁気記録媒体等への書き込み装置、通信回線など、各種のデータを処理装置３から出力するための装置等を含むものである。
【００２４】
処理装置３は、仕様解析手段である仕様解析エンジン４、プログラム生成手段であるプログラム生成エンジン５、蓄積手段であるデータ蓄積部６を備える。仕様解析エンジン４は、入力装置１から入力されデータ蓄積部６に蓄積されているデータ（あるいはファイル）あるいは予めデータ蓄積部６に蓄積されているデータ（あるいはファイル）を元にプログラムの仕様となる各種データ（あるいはファイル）を生成し、データ蓄積部６に蓄積し、必要に応じ出力装置２に出力する。また、プログラム生成エンジン５は、入力装置１から入力されデータ蓄積部６に蓄積されているデータ（あるいはファイル）あるいは予めデータ蓄積部６に蓄積されているデータ（あるいはファイル）を元にターゲットとなるプログラムに関する各種データ（あるいはファイル）を生成し、必要に応じ出力装置２に出力すると共に、データ蓄積部６に出力するものである。
【００２５】
データ蓄積部６は、メモリおよび磁気記録媒体等の記憶手段から構成され、入力装置１から入力される各種データ（あるいはファイル）を蓄え、出力装置２に出力する各種出力データ（あるいはファイル）を蓄える。また、仕様解析エンジン４およびプログラム生成エンジン５の入出力に必要なデータ（あるいはファイル）を蓄えるものである。
【００２６】
次に、仕様解析エンジン４と、プログラム生成エンジン５と、データ蓄積部６との間でやり取りされるデータの流れについて説明する。図２は、本発明の実施形態に係るプログラム生成システムにおけるデータの流れを示すブロック図である。図２において、プログラム生成システムは、仕様解析エンジン４およびプログラム生成エンジン５から構成される。
【００２７】
仕様解析エンジン４は、仕様モデル情報１１を入力とし、変更ワークシート情報１３を出力すると共に、仕様モデル情報１１と変更ポイント情報１０とを入力とし、プログラム仕様情報１４を出力する。なお、変更ポイント情報１０は、仕様解析エンジン４から出力された変更ワークシート情報１３を用いて作成される。
【００２８】
プログラム生成エンジン５は、仕様解析エンジン４から出力されたプログラム仕様情報１４と、プログラムモデル情報１５と、プログラムテンプレート情報１７とを入力として、ターゲットプログラム１８を出力する。
【００２９】
次に、各部分の詳細について説明する。図３は、本発明の実施形態に係る仕様解析エンジンに入出力するデータの詳細図である。初めに、仕様解析エンジン４に仕様モデル情報１１が入力される（ステップＳ１）。仕様モデル情報１１は、プログラムの仕様を表すためのキーワード群から構成される。キーワード群には、複数のキーワードの組が含まれ、各組は、キーワードとそのキーワードを定義する型との組から構成される。さらに、矢印「Ａ→Ｂ」は、Ａが与えられるとＢを出力するという意味を表わす。すなわち、図３において、仕様モデル情報１１は、Ｎ個のキーワード（キーワード１〜Ｎ）とそれらを各々定義するＮ個の型（型１〜Ｎ）が与えられると、型がＺであるキーワードＺが求められるような仕様を表わすモデルである。
【００３０】
次に、仕様解析エンジン４は、入力された仕様モデル情報１１のキーワード群から変更ワークシート情報１３のキーワード群を取りだして出力する（ステップＳ２）。変更ワークシート情報１３のキーワード群は、変更ポイント情報１０を指定するためのＮ個のキーワードとそれに対応する記号の組から構成される。記号としては、例えば括弧([ ])が使われる。このＮ個のキーワード（キーワード１〜Ｎ）は、仕様モデル情報１１中のＮ個のキーワード（キーワード１〜Ｎ）に対応する。また、括弧は、変更ポイント情報１０において変更内容が書込まれる。
【００３１】
仕様解析エンジン４の入力となる変更ポイント情報１０のキーワード群は、仕様における変更ポイントを指定するためのＮ個のキーワードとキーワードに対応する値との組から構成される。このＮ個のキーワード（キーワード１〜Ｎ）は、変更ワークシート情報１３中のＮ個のキーワード（キーワード１〜Ｎ）に対応する。また、値とは、変更ポイントの内容を表し、変更によってキーワードに対応付けされる数値あるいは文字列等である。
【００３２】
変更ポイントの内容となる数値あるいは文字列等の値は、変更指定手段１２により変更ポイント情報１０内の対応のキーワードに対して設定される（ステップＳ３）。変更指定手段１２は、入力装置１によって実現されてもよいし、データ蓄積部６にある特定のデータあるいはファイルが変更内容を表わし、変更内容を特定することによって行われてもよい。
【００３３】
さらに、仕様解析エンジン４は、変更ポイント情報１０を入力し（ステップＳ４）、プログラム仕様情報１４を作成して出力する（ステップＳ５）。プログラム仕様情報１４は、Ｎ個のキーワードと変更ポイント情報１０により対応付けられた値との組、および型がＺであるキーワードＺから構成され、仕様モデル情報１１および変更ポイント情報１０の内容に基づいて、Ｎ個のキーワード（キーワード１〜Ｎ）と値との組から、キーワードＺを出力するようなプログラム仕様を規定する。
【００３４】
次に、プログラム生成エンジン５の詳細について説明する。図４は、本発明の実施形態に係るプログラム生成エンジンに入出力するデータの詳細図である。図４において、プログラム生成エンジン５には、プログラム仕様情報１４とプログラムモデル情報１５とプログラムテンプレート情報１７とが入力される（ステップＳ６）。
【００３５】
プログラムモデル情報１５は、仕様モデル情報１１のキーワード群と処理手順を表わす処理の系列からなるプログラム処理との組から構成され、仕様モデル情報１１をプログラム処理によって実装することを意味する。すなわち、大きな矢印「Ｃ⇒Ｄ」は、ＣをＤにより実装することを意味し、仕様モデル情報１１をＭ個の処理（処理名１〜Ｍで各処理の引数が引数１〜Ｍ）により表わす。
【００３６】
また、プログラム生成エンジン５の入力となるプログラムテンプレート情報１７は、プログラム処理とプログラム言語に依存する表現であるテンプレートとから構成され、プログラム処理をテンプレートによって実装することを意味する。すなわち、プログラムモデル情報１５におけるプログラム処理をプログラム言語のテンプレートＰ（Ｘ１，Ｘ２，・・ＸＭ）で表現することを意味する。ここでプログラムテンプレート情報１７におけるプログラム処理は、各処理の名称が処理名１、２、・・Ｍである処理と、それぞれ各処理に対応する変数Ｘ１、Ｘ２、・・ＸＭとを含むものであって、プログラムテンプレート情報１５におけるプログラム処理中の引数１、２、・・Ｍを、それぞれ変数Ｘ１、Ｘ２、・・ＸＭに置き換えたものである。
【００３７】
最後に、プログラム生成エンジン５は、ターゲットプログラム１８を出力する（ステップＳ７）。ターゲットプログラム１８は、プログラムテンプレート情報１７のテンプレートＰ（Ｘ１，Ｘ２，・・ＸＭ）にプログラムモデル情報１５のプログラム処理の引数を割り当てる。その上で、プログラム仕様情報１４から与えられる値（数値あるいは文字列）が対応するプログラムモデル情報１５中の所定の引数に割り付けられ、さらにこの引数に対応するプログラムテンプレート情報１７中の変数Ｘ１、Ｘ２、・・ＸＭに代入され、例えばＰ（・・数値，・・文字，・・数値，・・）と表記されるようなプログラムが生成される。
【００３８】
以上説明したように、本発明の実施形態に係るプログラム生成システムは構成され、仕様モデル情報を仕様解析エンジンに入力すると、変更ワークシート情報が生成され、変更のポイントが明確化されるので、プログラム生成システムの利用方法が単純化され、利用が容易となる。また、プログラムのテンプレートのみをターゲットの言語構文に従って入れ替えるだけで、ターゲットとなるプログラム言語を容易に変更することができる。
【実施例１】
【００３９】
次に、具体的なプログラムの生成に関し、いくつかの実施例について説明する。第１の実施例は、予約日時と車種を与えて予約結果を得る簡単なレンタカー予約システムに適用した場合のプログラム生成システムである。図５は、本発明の第１の実施例に係る仕様解析エンジンに入出力するデータの詳細図である。仕様解析エンジン４の入力となる仕様モデル情報１１ａは、プログラムの仕様を表すためのキーワードとその型の組から構成される。すなわち、「予約日時：ＤＡＴＥ」は、予約日時というキーワードがＤＡＴＥ型として定義されていることを表す。同様に、「車種：ＳＴＲＩＮＧ」は、車種というキーワードがＳＴＲＩＮＧ型として定義され、「予約結果：ＢＯＯＬＥＡＮ」は、予約結果というキーワードがＢＯＯＬＥＡＮ型として定義されていることを表す。また、車種と予約日時が与えられると予約結果が得られることを表わす。さらに、車種と予約日時とが変更ポイントとなることを示す。
【００４０】
仕様解析エンジン４から出力される変更ワークシート情報１３ａは、変更ポイント情報１０ａを指定するためのキーワードと括弧[ ]の組から構成される。このキーワードと組になる括弧は、変更ポイントを表わす。すなわち、「予約日時：[]」は、予約日時というキーワードと括弧の組によって変更ポイント情報１０ａであることを表す。同様に、「車種：[]」は、車種というキーワードと括弧の組によって変更ポイント情報１０ａであることを表す。
【００４１】
仕様解析エンジン４に入力される変更ポイント情報１０ａは、仕様の変更ポイントを指定するためのキーワードと値の組から構成される。この値とは、変更ポイント情報１０ａの内容を表す。すなわち、予約日時というキーワードの値は、「２００３年３月２３日」であることを表す。また、車種というキーワードの値は、「小型車」であることを表す。なお、「２００３年３月２３日」および「小型車」という値は、変更指定手段１２により与えられる。
【００４２】
仕様解析エンジン４から出力されるプログラム仕様情報１４ａは、仕様モデル情報１１ａおよび変更ポイント情報１０ａに従ってプログラム仕様情報１４ａを指定するための、キーワードと一部値の入った括弧([ ])との組から構成される。すなわち、予約日付というキーワードの値は、「2003年3月23日」であることを表し、車種というキーワードの値は、「小型車」であることを表す。また、予約結果の値は、空欄であることを表す。
【００４３】
次に、プログラム生成エンジン５の詳細について説明する。図６は、本発明の第１の実施例に係るプログラム生成エンジンに入出力するデータの詳細図である。図６において、出力されるターゲットプログラム１８ａは、プログラム言語の例としてJava（登録商標）/C形式での表記となるプログラムである。
【００４４】
プログラム生成エンジン５に入力されるプログラムモデル情報１５ａは、仕様モデル情報１１ａとプログラム処理の組から構成され、仕様モデル情報１１ａがプログラム処理によって実装されることを意味する。ここで、プログラム処理とは、処理名と引数からなる処理の系列で構成される。すなわち、「条件判断」が処理名であり、「(予約日付 AND 車種)」が引数である。同様に、「実行(予約)」と「返却(予約結果)」についても、それぞれ、「実行」と「返却」が処理名であり、「(予約)」と「(予約結果)」が引数である。
【００４５】
プログラム生成エンジン５に入力されるプログラムテンプレート情報１７ａは、プログラム処理とテンプレートから構成され、プログラム処理をテンプレートによって実装することを意味する。すなわち、「条件判断(X)、実行(Y)、返却(Z)」は、それぞれ、プログラム処理の各処理であって、X、Y、Zは、それぞれ変数を意味する。また、「if(X) { Y(); } return(Z);」は、Java（登録商標）/C形式で表現されたテンプレートであり、変数X、Y、Zは、プログラム処理において用いられた同名の変数X、Y、Zに対応するものである。
【００４６】
プログラム生成エンジン５から出力されるターゲットプログラム１８ａは、プログラムテンプレート情報１７ａのテンプレート部に対し、プログラムモデル情報１５ａのプログラム処理内容とプログラム仕様情報１４ａとを組み合わせて置換された内容から構成される。すなわち、プログラムモデル情報１５ａのプログラム処理内容とプログラム仕様情報１４ａの内容とを組合せて、プログラムテンプレート情報１７ａのテンプレート部分「if(X) { Y(); } return(Z);」の変数X、Y、Zを、それぞれ「予約日時 == 2003年3月23日 AND 車種 == 小型車」、「予約」、「予約結果」によって置換する。置換の結果、ターゲットプログラム１８ａとして、「if(予約日時 == 2003年3月23日 AND 車種 == 小型車) { 予約(); } return (予約結果);」が得られ、これが出力の対象となるプログラムに相当する。
【００４７】
次に、ターゲットとなるプログラムをプログラム言語としてＶＢ（Visual Basic）形式で表す場合を取り上げる。図７は、本発明の第１の実施例に係るプログラム生成エンジンに入出力するデータの他の詳細図である。図７において、プログラムテンプレート情報１７ｂのテンプレート部と、ターゲットプログラム１８ｂとが図６と異なっており、異なる部分についてのみ説明する。
【００４８】
プログラム生成エンジン５に入力されるプログラムテンプレート情報１７ｂは、プログラム処理とテンプレートから構成され、プログラム処理をテンプレートによって実装することを意味する。すなわち、「条件判断(X)、実行(Y)、返却(Z)」は、それぞれ、プログラム処理の各処理であって、X、Y、Zは、それぞれ変数を意味する。また、「if X then Y end if result=Z」は、ＶＢ（Visual Basic）形式で表現されたテンプレートであり、変数X、Y、Zは、プログラム処理において用いられた同名の変数X、Y、Zに対応するものである。
【００４９】
プログラム生成エンジン５から出力されるターゲットプログラム１８ｂは、プログラムテンプレート情報１７ｂのテンプレート部に対し、プログラムモデル情報１５ａのプログラム処理内容とプログラム仕様情報１４ａとを組み合わせて置換された内容から構成される。すなわち、プログラムモデル情報１５ａのプログラム処理内容とプログラム仕様情報１４ａの内容とを組合せて、プログラムテンプレート情報１７ｂのテンプレート部分「if X then Y end if result=Z」の変数X、Y、Zを、それぞれ「予約日時 == 2003年3月23日 AND 車種 == 小型車」、「予約」、「予約結果」によって置換する。置換の結果、ターゲットプログラム１８ｂとして、「if 予約日時 == 2003年3月23日 AND 車種 == 小型車 then 予約 end if result=予約結果」が得られ、これが出力の対象となるプログラムに相当する。
【００５０】
以上説明したように、レンタカー予約システムに関する各情報が与えられると、実施形態で説明したように仕様解析エンジン４およびプログラム生成エンジン５が動作し、レンタカー予約システムに関するターゲットプログラム１８ａ、または、ターゲットプログラム１８ｂを生成する。すなわち、ターゲットプログラム１８として生成されるプログラム言語に合わせて、プログラムテンプレート情報１７のテンプレート部のみを入れ替えることで、ターゲットとなるプログラム言語を変更することができる。
【実施例２】
【００５１】
第２の実施例は、指定の年月日におけるレンタカーの予約台数を求める場合のプログラム生成システムである。図８は、本発明の第２の実施例に係る仕様解析エンジンに入出力するデータの詳細図である。仕様解析エンジン４の入力となる仕様モデル情報１１ｃでは、キーワードとなる「日時：ＤＡＴＥ」がＤＡＴＥ型として定義されている。また、キーワード「予約台数：ＮＵＭＢＥＲ」がＮＵＭＢＥＲ型として定義され、日時が与えられると予約台数が得られることを表わす。
【００５２】
仕様解析エンジン４から出力される変更ワークシート情報１３ｃにおいて、「日時：[]」が変更ポイント情報１０ｃであることを表す。
【００５３】
仕様解析エンジン４に入力される変更ポイント情報１０ｃは、仕様の変更ポイントを指定するためのキーワードと値の組から構成される。すなわち、日時というキーワードの値は、「２００３年３月２６日」であり、「２００３年３月２６日」という値は、変更指定手段１２により与えられる。
【００５４】
仕様解析エンジン４から出力されるプログラム仕様情報１４ｃは、仕様モデル情報１１ｃおよび変更ポイント情報１０ｃに従ってプログラム仕様情報１４ｃを規定するための、キーワードと一部値の入った括弧([ ])との組から構成される。すなわち、日時というキーワードの値は、「2003年3月26日」であることを表し、予約台数の値は空欄であることを表す。
【００５５】
次に、プログラム生成エンジン５の詳細について説明する。図９は、本発明の第２の実施例に係るプログラム生成エンジンに入出力するデータの詳細図である。図９において、出力されるターゲットプログラム１８ｃは、プログラム言語としてJava（登録商標）/C形式での表記で表わされるものである。
【００５６】
プログラム生成エンジン５に入力されるプログラムモデル情報１５ｃは、仕様モデル情報１１ｃとプログラム処理の組から構成され、仕様モデル情報１１ｃがプログラム処理によって実装されることを意味する。ここで、プログラム処理とは、処理名と引数からなる処理の系列で構成される。すなわち、「繰り返し」が処理名である。また、「実行」、「条件判断」、「返却」が処理名であり、それぞれに対応する引数が、「(予約)」、「(日時)」、「(予約台数)」である。
【００５７】
プログラム生成エンジン５に入力されるプログラムテンプレート情報１７ｃは、プログラム処理とテンプレートから構成され、プログラム処理をテンプレートによって実装することを意味する。すなわち、「繰り返し、実行(X)、条件判断(Y)、返却(Z)」は、それぞれ、プログラム処理の各処理であって、X、Y、Zは、それぞれ変数を意味する。また、「while(true){X(); if(Y){break;}} return(Z);」は、テンプレートであり、変数X、Y、Zは、プログラム処理において用いられた同名の変数X、Y、Zに対応するものである。
【００５８】
プログラム生成エンジン５から出力されるターゲットプログラム１８ｃは、プログラムテンプレート情報１７ｃのテンプレート部に対し、プログラムモデル情報１５ｃのプログラム処理内容とプログラム仕様情報１４ｃとを組み合わせて置換された内容から構成される。すなわち、プログラムモデル情報１５ｃのプログラム処理内容とプログラム仕様情報１４ｃの内容とを組合せて、プログラムテンプレート情報１７ｃのテンプレート部分「while(true){X(); if(Y){break;}} return(Z);」の変数X、Y、Zを、それぞれ「予約()」、「日時 = 2003年3月26日」、「予約台数」によって置換する。置換の結果、ターゲットプログラム１８ｃとして、「while(true){予約(); if(日時 = 2003年3月26日){break;}} return(予約台数);」が得られ、これが出力の対象となるプログラムに相当する。
【実施例３】
【００５９】
第３の実施例は、年齢、性別、既往症を与えて保険料の年払額を求める場合のプログラム生成システムである。図１０は、本発明の第３の実施例に係る仕様解析エンジンに入出力するデータの詳細図である。仕様解析エンジン４の入力となる仕様モデル情報１１ｄでは、キーワードとなる「年齢：ＮＵＭＢＥＲ」がＮＵＭＢＥＲ型として、キーワード「性別：ＳＴＲＩＮＧ」がＳＴＲＩＮＧ型として、キーワード「既往症：ＳＴＲＩＮＧ」がＳＴＲＩＮＧ型として、キーワード「年払料金：ＮＵＭＢＥＲ」がＮＵＭＢＥＲ型として定義されている。また、「年齢」、「性別」、「既往症」が変更ポイントである。
【００６０】
仕様解析エンジン４から出力される変更ワークシート情報１３ｄにおいて、「年齢：[]」、「性別：[]」、「既往症：[]」が変更ポイント情報１０ｄであることを表す。
【００６１】
仕様解析エンジン４に入力される変更ポイント情報１０ｄは、仕様の変更ポイントを指定するためのキーワードと値の組から構成される。すなわち、「年齢」、「性別」、「既往症」の、それぞれのキーワードの値は、「３０」、「男性」、「なし」であり、変更指定手段１２により与えられる。
【００６２】
仕様解析エンジン４から出力されるプログラム仕様情報１４ｄは、仕様モデル情報１１ｄおよび変更ポイント情報１０ｄに従ってプログラム仕様情報１４ｄを規定するための、キーワードと一部値の入った括弧([ ])との組から構成される。すなわち、「年齢」、「性別」、「既往症」それぞれのキーワードの値は、「３０」、「男性」、「なし」であり、年払料金の値は空欄であることを表す。
【００６３】
次に、プログラム生成エンジン５の詳細について説明する。図１１は、本発明の第３の実施例に係るプログラム生成エンジンに入出力するデータの詳細図である。図１１において、出力されるターゲットプログラム１８ｄは、プログラム言語としてJava（登録商標）/C形式での表記で表わされるものである。
【００６４】
プログラム生成エンジン５に入力されるプログラムモデル情報１５ｄは、仕様モデル情報１１ｄとプログラム処理の組から構成され、仕様モデル情報１１ｄがプログラム処理によって実装されることを意味する。ここで、プログラム処理とは、処理名と引数からなる処理の系列で構成される。すなわち、「条件判断」、「実行」、「返却」が処理名であり、「(年齢 AND 性別 AND 既往症)」、「(料金)」、「(年払料金)」がそれぞれ対応する引数である。
【００６５】
プログラム生成エンジン５に入力されるプログラムテンプレート情報１７ｄは、プログラム処理とテンプレートから構成され、プログラム処理をテンプレートによって実装することを意味する。すなわち、「条件判断(X)、実行(Y)、返却(Z)」は、それぞれ、プログラム処理の各処理であって、X、Y、Zは、それぞれ変数を意味する。また、「if(X) { Y(); } return(Z);」は、テンプレートであり、変数X、Y、Zは、プログラム処理において用いられた同名の変数X、Y、Zに対応するものである。
【００６６】
プログラム生成エンジン５から出力されるターゲットプログラム１８ｄは、プログラムテンプレート情報１７ｄのテンプレート部に対し、プログラムモデル情報１５ｄのプログラム処理内容とプログラム仕様情報１４ｄとを組み合わせて置換された内容から構成される。すなわち、プログラムモデル情報１５ｄのプログラム処理内容とプログラム仕様情報１４ｄの内容とを組合せて、プログラムテンプレート情報１７ｄのテンプレート部分「if(X) { Y(); } return(Z);」の変数X、Y、Zを、それぞれ、「年齢 == ３０ AND 性別 == 男性 AND 既往症 == なし」、「料金」、「年払料金」によって置換する。置換の結果、ターゲットプログラム１８ｄとして、「if(年齢 == ３０ AND 性別 == 男性 AND 既往症 == なし) { 料金(); } return (年払料金);」が得られ、これが出力の対象となるプログラムに相当する。
【００６７】
以上説明した実施例１、２、３で示すように、対象となる仕様モデル情報を仕様解析エンジンに入力すると、変更ワークシート情報が生成され、変更のポイントが明確に示されるので、プログラム生成システムを容易に利用することができる。
【産業上の利用可能性】
【００６８】
本発明のプログラム生成システムを利用することにより、所望のターゲットプログラムを容易に得ることができるため、ターゲットプログラムの開発が大幅に効率化されることとなる。
【図面の簡単な説明】
【００６９】
【図１】本発明の実施形態に係るプログラム生成システムを示すブロック図である。
【図２】本発明の実施形態に係るプログラム生成システムにおけるデータの流れを示すブロック図である。
【図３】本発明の実施形態に係る仕様解析エンジンに入出力するデータの詳細図である。
【図４】本発明の実施形態に係るプログラム生成エンジンに入出力するデータの詳細図である。
【図５】本発明の第１の実施例に係る仕様解析エンジンに入出力するデータの詳細図である。
【図６】本発明の第１の実施例に係るプログラム生成エンジンに入出力するデータの詳細図である。
【図７】本発明の第１の実施例に係るプログラム生成エンジンに入出力するデータの他の詳細図である。
【図８】本発明の第２の実施例に係る仕様解析エンジンに入出力するデータの詳細図である。
【図９】本発明の第２の実施例に係るプログラム生成エンジンに入出力するデータの詳細図である。
【図１０】本発明の第３の実施例に係る仕様解析エンジンに入出力するデータの詳細図である。
【図１１】本発明の第３の実施例に係るプログラム生成エンジンに入出力するデータの詳細図である。
【符号の説明】
【００７０】
１  入力装置
２  出力装置
３  処理装置
４  仕様解析エンジン
５  プログラム生成エンジン
６  データ蓄積部
１０、１０ａ、１０ｃ、１０ｄ  変更ポイント情報
１１、１１ａ、１１ｃ、１１ｄ  仕様モデル情報
１２  変更指定手段
１３、１３ａ、１３ｃ、１３ｄ  変更ワークシート情報
１４、１４ａ、１４ｃ、１４ｄ  プログラム仕様情報
１５、１５ａ、１５ｃ、１５ｄ  プログラムモデル情報
１７、１７ａ、１７ｂ、１７ｃ、１７ｄ  プログラムテンプレート情報
１８、１８ａ、１８ｂ、１８ｃ、１８ｄ  ターゲットプログラム
【図１】
2005182132.tif 000003
【図２】
2005182132.tif 000004
【図３】
2005182132.tif 000005
【図４】
2005182132.tif 000006
【図５】
2005182132.tif 000007
【図６】
2005182132.tif 000008
【図７】
2005182132.tif 000009
【図８】
2005182132.tif 000010
【図９】
2005182132.tif 000011
【図１０】
2005182132.tif 000012
【図１１】
2005182132.tif 000013