JP2008159074A - プログラム生成システムおよび方法 - Google Patents
プログラム生成システムおよび方法 Download PDFInfo
- Publication number
- JP2008159074A JP2008159074A JP2008023957A JP2008023957A JP2008159074A JP 2008159074 A JP2008159074 A JP 2008159074A JP 2008023957 A JP2008023957 A JP 2008023957A JP 2008023957 A JP2008023957 A JP 2008023957A JP 2008159074 A JP2008159074 A JP 2008159074A
- Authority
- JP
- Japan
- Prior art keywords
- program
- information
- keyword
- model information
- template
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】プログラムにおける変更のポイントを明確化すると共に、ターゲットのプログラム言語の変更が容易なプログラム生成システムを提供する。
【解決手段】生成されるプログラムの仕様をキーワードの列で表わす仕様モデル情報から、変更に関係するいくつかのキーワードを取り出し、各キーワードに対応する設定値を変更指定手段により指定する。仕様モデル情報中の各キーワードに対応する個所に設定値を設定したプログラム仕様情報と、仕様モデル情報を処理の列として表わすプログラム処理情報と、処理の列を前記プログラムのテンプレートで表わすプログラムテンプレート情報とを入力し、各キーワードに対応するテンプレート内の所定の個所に設定値を設定してターゲットとなるプログラムを生成する。
【選択図】図2
【解決手段】生成されるプログラムの仕様をキーワードの列で表わす仕様モデル情報から、変更に関係するいくつかのキーワードを取り出し、各キーワードに対応する設定値を変更指定手段により指定する。仕様モデル情報中の各キーワードに対応する個所に設定値を設定したプログラム仕様情報と、仕様モデル情報を処理の列として表わすプログラム処理情報と、処理の列を前記プログラムのテンプレートで表わすプログラムテンプレート情報とを入力し、各キーワードに対応するテンプレート内の所定の個所に設定値を設定してターゲットとなるプログラムを生成する。
【選択図】図2
Description
本発明は、入力される仕様に従ってプログラムを生成するシステムおよび方法に係る。
従来、要求仕様を与えて目的とするプログラムを生成するシステムおよび方法がいくつか知られている。例えば、特許文献1には、所定の表計算ソフトウェアで作成した機能要求仕様書からUML(Unified Modeling Language)モデルを使用して業務用アプリケーションソースを作成するシステムおよび方法が開示されている。ここではUMLモデルに対する深い知識を必要とせずに、要求仕様をUMLモデルで定義することが可能となっている。
また、特許文献2では、仕様書から自動的にプログラムを生成することにより、プログラムとその仕様書とを一体化して、プログラムとその仕様書との不一致を防ぐプログラムおよび仕様書の生成修正方式が開示されている。ここで仕様情報は、作成プログラムの注記行に挿入され併合された仕様情報併合プログラムとして格納されている。
さらに、特許文献3には、入力仕様と出力プログラムの関係の情報をプログラム生成部の外に入出力対応表とテンプレートとして設定し、これらの情報を参照して入力仕様の変換を行なうメタルールを有するようにして、入力仕様の形式の追加や出力プログラムの形式の変更を、変換規則を修正することなく実施できるプログラム自動生成装置が開示されている。なお、ここで入出力対応表とは、入力仕様を出力プログラムへ変換するための参照表であり、テンプレートとは、入力仕様を出力プログラムへ変換するステップにおいて、入力値が出力値を決定する際に、出力の一般的なパターンを表すものである。
従来のプログラム生成システムでは、要求仕様を与えて目的とするプログラムを効果的に生成するシステムおよび方法が開示されている。しかしながら、ある部分の変更を行なう際には、変更のポイントが明確化されてユーザに提示されるようになっていない。したがって、変更にあたってプログラム生成システムの利用方法が必ずしも容易ではないという問題がある。
また、プログラムのテンプレートをターゲットの言語構文に従って入れ替えることが容易にできないために、ターゲットとなるプログラム言語を変更することが困難であるという問題がある。
本発明は、このような問題を解決するために、変更のポイントを明確化すると共に、ターゲットのプログラム言語の変更が容易なプログラム生成システムおよび方法を提供することを目的とする。
前記目的を達成するために、本発明に係るプログラム生成システムは、第1の視点によれば、生成されるプログラムの仕様を第1のキーワード群で表わす仕様モデル情報と、仕様モデル情報を処理の列として表わすプログラムモデル情報と、処理の列をプログラムのテンプレートで表わすプログラムテンプレート情報と、を蓄積しておく蓄積手段を備える。また、仕様モデル情報を蓄積手段から入力して仕様モデル情報から第2のキーワード群を取り出し、第2のキーワード群に含まれる各キーワードに対応する仕様モデル情報中の所定の個所に設定値を設定したプログラム仕様情報を生成する仕様解析手段を備える。さらに、設定値を指定する変更指定手段を備える。さらにまた、プログラム仕様情報を仕様解析手段から入力し、プログラムモデル情報と、プログラムテンプレート情報とを蓄積手段から入力し、各キーワードに対応するテンプレート内の所定の個所に設定値を設定してプログラムを生成するプログラム生成手段を備える。
また、本発明に係るプログラム生成システムは、第2の視点によれば、ターゲットとなるプログラムの仕様を第1のキーワード群で表わす仕様モデル情報と、仕様モデル情報を処理の列として表現するプログラム処理と仕様モデル情報との組を含むプログラムモデル情報と、プログラム処理を実装するプログラムを表現するテンプレートとプログラム処理との組を含むプログラムテンプレート情報と、変更ワークシート情報と、変更ポイント情報と、プログラム仕様情報と、プログラムと、を蓄積する蓄積手段を備える。また、変更ワークシート情報における変更対象となる第2のキーワード群に含まれる各キーワードに対応する設定値を指定する変更指定手段を備える。さらに、蓄積手段から仕様モデル情報を入力し、入力された仕様モデル情報中の第1のキーワード群に含まれる第2のキーワード群を取り出して変更ワークシート情報を生成して蓄積手段に出力し、変更ワークシート情報に対して、変更指定手段により設定値を指定して作成する変更ポイント情報と、仕様モデル情報とを蓄積手段から入力し、仕様モデル情報と変更ポイント情報とに従い、プログラム仕様情報を規定するための第1のキーワード群と第2のキーワード群に対応する設定値との組を含むプログラム仕様情報を生成して蓄積手段に出力する仕様解析手段を備える。さらにまた、蓄積手段から、プログラム仕様情報と、プログラムモデル情報と、プログラムテンプレート情報とを入力し、プログラムモデル情報中の仕様モデル情報とプログラム処理との対応付け、およびテンプレート中のプログラム処理とテンプレートとの対応付けから、プログラム仕様情報中の設定値をテンプレート内の所定の個所に当てはめ、ターゲットとなるプログラムを生成して蓄積手段に出力するプログラム生成手段を備える。
さらに、本発明に係るプログラム生成方法は、第3の視点によれば、生成されるプログラムの仕様を第1のキーワード群で表わす仕様モデル情報から第2のキーワード群を取り出すステップと、第2のキーワード群に含まれる各キーワードに対応する設定値を変更指定手段により指定するステップと、各キーワードに対応する仕様モデル情報中の所定の個所に設定値を設定したプログラム仕様情報を生成するステップと、を含む。また、プログラム仕様情報と、仕様モデル情報を処理の列として表わすプログラム処理と、処理の列をプログラムのテンプレートで表わすプログラムテンプレート情報とを入力するステップと、各キーワードに対応するテンプレート内の所定の個所に設定値を設定してプログラムを生成するステップと、を含む。
また、本発明に係るプログラム生成方法は、第4の視点によれば、ターゲットとなるプログラムの仕様を第1のキーワード群で表わす仕様モデル情報を入力するステップと、入力された仕様モデル情報から第2のキーワード群を取り出して変更ワークシート情報を生成して出力するステップと、変更ワークシート情報における第2のキーワード群に含まれる変更対象となる各キーワードに対応する設定値を変更指定手段により指定して変更ポイント情報を作成するステップと、仕様モデル情報と変更ポイント情報とに基づき、プログラム仕様情報を規定するための第1のキーワード群と第2のキーワード群に対応する設定値との組を含むプログラム仕様情報を生成するステップと、を含む。また、(a)プログラム仕様情報、(b)仕様モデル情報を処理の列として表現するプログラム処理と仕様モデル情報との組を含むプログラムモデル情報、(c)プログラム処理を実装したプログラムを表現するテンプレートとプログラム処理との組を含むプログラムテンプレート情報、を入力するステップと、プログラムモデル情報中の仕様モデル情報とプログラム処理との対応付け、およびテンプレート中のプログラム処理とテンプレートとの対応付けから、プログラム仕様情報中の設定値をテンプレート内の所定の個所に当てはめ、ターゲットとなるプログラムを生成するステップと、を含む。
第1のキーワード群は、第2のキーワード群と第3のキーワード群とから成り、ターゲットとなるプログラムは、第2のキーワード群に対応する処理から、第3のキーワード群に含まれるキーワードに対応する結果を出力するプログラムであってもよい。
また、第1のキーワード群に含まれるキーワードは、キーワードに対応する設定値の型を示す情報を伴い、型の情報は、プログラム仕様情報中に表記されてもよい。
さらに、第2のキーワード群に属するキーワードは、特定の記号を伴い、特定の記号は、変更指定手段によって設定値が設定されるように表記されてもよい。
また、設定値は、数値または文字列で表される値であってもよい。
さらに、設定値は、プログラム中に現れてもよい。
また、処理の列は、引数を伴う処理名の列として表されてもよい。
さらに、引数は、プログラムテンプレート情報内で変数として表され、プログラム内の変数に反映されてもよい。
また、プログラム内の変数は、設定値が代入されてもよい。
本発明によれば、仕様モデル情報を仕様解析エンジンに入力すると、変更ワークシート情報が生成される。これにより、変更のポイントが明確化されるので、プログラム生成システムの利用方法が単純化され、利用が容易となる。
また、本発明によれば、プログラムのテンプレートのみをターゲットの言語構文に従って入れ替えるだけで、ターゲットとなるプログラム言語を容易に変更することができる。
以下、本発明の実施形態を添付図面に基づいて説明する。図1は本発明の実施形態に係るプログラム生成システムを示すブロック図である。システムは、入力装置1、出力装置2、処理装置3から構成される。入力装置1は、例えば、キーボード、マウス等のマンマシンインタフェースを始め、外部の磁気記録媒体等の読み取り装置、通信回線など、各種のデータを処理装置3に入力するための装置等を含むものである。また、出力装置2は、例えば、ディスプレイ等のマンマシンインタフェースを始め、外部の磁気記録媒体等への書き込み装置、通信回線など、各種のデータを処理装置3から出力するための装置等を含むものである。
処理装置3は、仕様解析手段である仕様解析エンジン4、プログラム生成手段であるプログラム生成エンジン5、蓄積手段であるデータ蓄積部6を備える。仕様解析エンジン4は、入力装置1から入力されデータ蓄積部6に蓄積されているデータ(あるいはファイル)あるいは予めデータ蓄積部6に蓄積されているデータ(あるいはファイル)を元にプログラムの仕様となる各種データ(あるいはファイル)を生成し、データ蓄積部6に蓄積し、必要に応じ出力装置2に出力する。また、プログラム生成エンジン5は、入力装置1から入力されデータ蓄積部6に蓄積されているデータ(あるいはファイル)あるいは予めデータ蓄積部6に蓄積されているデータ(あるいはファイル)を元にターゲットとなるプログラムに関する各種データ(あるいはファイル)を生成し、必要に応じ出力装置2に出力すると共に、データ蓄積部6に出力するものである。
データ蓄積部6は、メモリおよび磁気記録媒体等の記憶手段から構成され、入力装置1から入力される各種データ(あるいはファイル)を蓄え、出力装置2に出力する各種出力データ(あるいはファイル)を蓄える。また、仕様解析エンジン4およびプログラム生成エンジン5の入出力に必要なデータ(あるいはファイル)を蓄えるものである。
次に、仕様解析エンジン4と、プログラム生成エンジン5と、データ蓄積部6との間でやり取りされるデータの流れについて説明する。図2は、本発明の実施形態に係るプログラム生成システムにおけるデータの流れを示すブロック図である。図2において、プログラム生成システムは、仕様解析エンジン4およびプログラム生成エンジン5から構成される。
仕様解析エンジン4は、仕様モデル情報11を入力とし、変更ワークシート情報13を出力すると共に、仕様モデル情報11と変更ポイント情報10とを入力とし、プログラム仕様情報14を出力する。なお、変更ポイント情報10は、仕様解析エンジン4から出力された変更ワークシート情報13を用いて作成される。
プログラム生成エンジン5は、仕様解析エンジン4から出力されたプログラム仕様情報14と、プログラムモデル情報15と、プログラムテンプレート情報17とを入力として、ターゲットプログラム18を出力する。
次に、各部分の詳細について説明する。図3は、本発明の実施形態に係る仕様解析エンジンに入出力するデータの詳細図である。初めに、仕様解析エンジン4に仕様モデル情報11が入力される(ステップS1)。仕様モデル情報11は、プログラムの仕様を表すためのキーワード群から構成される。キーワード群には、複数のキーワードの組が含まれ、各組は、キーワードとそのキーワードを定義する型との組から構成される。さらに、矢印「A→B」は、Aが与えられるとBを出力するという意味を表わす。すなわち、図3において、仕様モデル情報11は、N個のキーワード(キーワード1〜N)とそれらを各々定義するN個の型(型1〜N)が与えられると、型がZであるキーワードZが求められるような仕様を表わすモデルである。
次に、仕様解析エンジン4は、入力された仕様モデル情報11のキーワード群から変更ワークシート情報13のキーワード群を取りだして出力する(ステップS2)。変更ワークシート情報13のキーワード群は、変更ポイント情報10を指定するためのN個のキーワードとそれに対応する記号の組から構成される。記号としては、例えば括弧([ ])が使われる。このN個のキーワード(キーワード1〜N)は、仕様モデル情報11中のN個のキーワード(キーワード1〜N)に対応する。また、括弧は、変更ポイント情報10において変更内容が書込まれる。
仕様解析エンジン4の入力となる変更ポイント情報10のキーワード群は、仕様における変更ポイントを指定するためのN個のキーワードとキーワードに対応する値との組から構成される。このN個のキーワード(キーワード1〜N)は、変更ワークシート情報13中のN個のキーワード(キーワード1〜N)に対応する。また、値とは、変更ポイントの内容を表し、変更によってキーワードに対応付けされる数値あるいは文字列等である。
変更ポイントの内容となる数値あるいは文字列等の値は、変更指定手段12により変更ポイント情報10内の対応のキーワードに対して設定される(ステップS3)。変更指定手段12は、入力装置1によって実現されてもよいし、データ蓄積部6にある特定のデータあるいはファイルが変更内容を表わし、変更内容を特定することによって行われてもよい。
さらに、仕様解析エンジン4は、変更ポイント情報10を入力し(ステップS4)、プログラム仕様情報14を作成して出力する(ステップS5)。プログラム仕様情報14は、N個のキーワードと変更ポイント情報10により対応付けられた値との組、および型がZであるキーワードZから構成され、仕様モデル情報11および変更ポイント情報10の内容に基づいて、N個のキーワード(キーワード1〜N)と値との組から、キーワードZを出力するようなプログラム仕様を規定する。
次に、プログラム生成エンジン5の詳細について説明する。図4は、本発明の実施形態に係るプログラム生成エンジンに入出力するデータの詳細図である。図4において、プログラム生成エンジン5には、プログラム仕様情報14とプログラムモデル情報15とプログラムテンプレート情報17とが入力される(ステップS6)。
プログラムモデル情報15は、仕様モデル情報11のキーワード群と処理手順を表わす処理の系列からなるプログラム処理との組から構成され、仕様モデル情報11をプログラム処理によって実装することを意味する。すなわち、大きな矢印「C⇒D」は、CをDにより実装することを意味し、仕様モデル情報11をM個の処理(処理名1〜Mで各処理の引数が引数1〜M)により表わす。
また、プログラム生成エンジン5の入力となるプログラムテンプレート情報17は、プログラム処理とプログラム言語に依存する表現であるテンプレートとから構成され、プログラム処理をテンプレートによって実装することを意味する。すなわち、プログラムモデル情報15におけるプログラム処理をプログラム言語のテンプレートP(X1,X2,・・XM)で表現することを意味する。ここでプログラムテンプレート情報17におけるプログラム処理は、各処理の名称が処理名1、2、・・Mである処理と、それぞれ各処理に対応する変数X1、X2、・・XMとを含むものであって、プログラムテンプレート情報15におけるプログラム処理中の引数1、2、・・Mを、それぞれ変数X1、X2、・・XMに置き換えたものである。
最後に、プログラム生成エンジン5は、ターゲットプログラム18を出力する(ステップS7)。ターゲットプログラム18は、プログラムテンプレート情報17のテンプレートP(X1,X2,・・XM)にプログラムモデル情報15のプログラム処理の引数を割り当てる。その上で、プログラム仕様情報14から与えられる値(数値あるいは文字列)が対応するプログラムモデル情報15中の所定の引数に割り付けられ、さらにこの引数に対応するプログラムテンプレート情報17中の変数X1、X2、・・XMに代入され、例えばP(・・数値,・・文字,・・数値,・・)と表記されるようなプログラムが生成される。
以上説明したように、本発明の実施形態に係るプログラム生成システムは構成され、仕様モデル情報を仕様解析エンジンに入力すると、変更ワークシート情報が生成され、変更のポイントが明確化されるので、プログラム生成システムの利用方法が単純化され、利用が容易となる。また、プログラムのテンプレートのみをターゲットの言語構文に従って入れ替えるだけで、ターゲットとなるプログラム言語を容易に変更することができる。
次に、具体的なプログラムの生成に関し、いくつかの実施例について説明する。第1の実施例は、予約日時と車種を与えて予約結果を得る簡単なレンタカー予約システムに適用した場合のプログラム生成システムである。図5は、本発明の第1の実施例に係る仕様解析エンジンに入出力するデータの詳細図である。仕様解析エンジン4の入力となる仕様モデル情報11aは、プログラムの仕様を表すためのキーワードとその型の組から構成される。すなわち、「予約日時:DATE」は、予約日時というキーワードがDATE型として定義されていることを表す。同様に、「車種:STRING」は、車種というキーワードがSTRING型として定義され、「予約結果:BOOLEAN」は、予約結果というキーワードがBOOLEAN型として定義されていることを表す。また、車種と予約日時が与えられると予約結果が得られることを表わす。さらに、車種と予約日時とが変更ポイントとなることを示す。
仕様解析エンジン4から出力される変更ワークシート情報13aは、変更ポイント情報10aを指定するためのキーワードと括弧[ ]の組から構成される。このキーワードと組になる括弧は、変更ポイントを表わす。すなわち、「予約日時:[]」は、予約日時というキーワードと括弧の組によって変更ポイント情報10aであることを表す。同様に、「車種:[]」は、車種というキーワードと括弧の組によって変更ポイント情報10aであることを表す。
仕様解析エンジン4に入力される変更ポイント情報10aは、仕様の変更ポイントを指定するためのキーワードと値の組から構成される。この値とは、変更ポイント情報10aの内容を表す。すなわち、予約日時というキーワードの値は、「2003年3月23日」であることを表す。また、車種というキーワードの値は、「小型車」であることを表す。なお、「2003年3月23日」および「小型車」という値は、変更指定手段12により与えられる。
仕様解析エンジン4から出力されるプログラム仕様情報14aは、仕様モデル情報11aおよび変更ポイント情報10aに従ってプログラム仕様情報14aを指定するための、キーワードと一部値の入った括弧([ ])との組から構成される。すなわち、予約日付というキーワードの値は、「2003年3月23日」であることを表し、車種というキーワードの値は、「小型車」であることを表す。また、予約結果の値は、空欄であることを表す。
次に、プログラム生成エンジン5の詳細について説明する。図6は、本発明の第1の実施例に係るプログラム生成エンジンに入出力するデータの詳細図である。図6において、出力されるターゲットプログラム18aは、プログラム言語の例としてJava(登録商標)/C形式での表記となるプログラムである。
プログラム生成エンジン5に入力されるプログラムモデル情報15aは、仕様モデル情報11aとプログラム処理の組から構成され、仕様モデル情報11aがプログラム処理によって実装されることを意味する。ここで、プログラム処理とは、処理名と引数からなる処理の系列で構成される。すなわち、「条件判断」が処理名であり、「(予約日付 AND 車種)」が引数である。同様に、「実行(予約)」と「返却(予約結果)」についても、それぞれ、「実行」と「返却」が処理名であり、「(予約)」と「(予約結果)」が引数である。
プログラム生成エンジン5に入力されるプログラムテンプレート情報17aは、プログラム処理とテンプレートから構成され、プログラム処理をテンプレートによって実装することを意味する。すなわち、「条件判断(X)、実行(Y)、返却(Z)」は、それぞれ、プログラム処理の各処理であって、X、Y、Zは、それぞれ変数を意味する。また、「if(X) { Y(); } return(Z);」は、Java(登録商標)/C形式で表現されたテンプレートであり、変数X、Y、Zは、プログラム処理において用いられた同名の変数X、Y、Zに対応するものである。
プログラム生成エンジン5から出力されるターゲットプログラム18aは、プログラムテンプレート情報17aのテンプレート部に対し、プログラムモデル情報15aのプログラム処理内容とプログラム仕様情報14aとを組み合わせて置換された内容から構成される。すなわち、プログラムモデル情報15aのプログラム処理内容とプログラム仕様情報14aの内容とを組合せて、プログラムテンプレート情報17aのテンプレート部分「if(X) { Y(); } return(Z);」の変数X、Y、Zを、それぞれ「予約日時 == 2003年3月23日 AND 車種 == 小型車」、「予約」、「予約結果」によって置換する。置換の結果、ターゲットプログラム18aとして、「if(予約日時 == 2003年3月23日 AND 車種 == 小型車) { 予約(); } return (予約結果);」が得られ、これが出力の対象となるプログラムに相当する。
次に、ターゲットとなるプログラムをプログラム言語としてVB(Visual Basic)形式で表す場合を取り上げる。図7は、本発明の第1の実施例に係るプログラム生成エンジンに入出力するデータの他の詳細図である。図7において、プログラムテンプレート情報17bのテンプレート部と、ターゲットプログラム18bとが図6と異なっており、異なる部分についてのみ説明する。
プログラム生成エンジン5に入力されるプログラムテンプレート情報17bは、プログラム処理とテンプレートから構成され、プログラム処理をテンプレートによって実装することを意味する。すなわち、「条件判断(X)、実行(Y)、返却(Z)」は、それぞれ、プログラム処理の各処理であって、X、Y、Zは、それぞれ変数を意味する。また、「if X then Y end if result=Z」は、VB(Visual Basic)形式で表現されたテンプレートであり、変数X、Y、Zは、プログラム処理において用いられた同名の変数X、Y、Zに対応するものである。
プログラム生成エンジン5から出力されるターゲットプログラム18bは、プログラムテンプレート情報17bのテンプレート部に対し、プログラムモデル情報15aのプログラム処理内容とプログラム仕様情報14aとを組み合わせて置換された内容から構成される。すなわち、プログラムモデル情報15aのプログラム処理内容とプログラム仕様情報14aの内容とを組合せて、プログラムテンプレート情報17bのテンプレート部分「if X then Y end if result=Z」の変数X、Y、Zを、それぞれ「予約日時 == 2003年3月23日 AND 車種 == 小型車」、「予約」、「予約結果」によって置換する。置換の結果、ターゲットプログラム18bとして、「if 予約日時 == 2003年3月23日 AND 車種 == 小型車 then 予約 end if result=予約結果」が得られ、これが出力の対象となるプログラムに相当する。
以上説明したように、レンタカー予約システムに関する各情報が与えられると、実施形態で説明したように仕様解析エンジン4およびプログラム生成エンジン5が動作し、レンタカー予約システムに関するターゲットプログラム18a、または、ターゲットプログラム18bを生成する。すなわち、ターゲットプログラム18として生成されるプログラム言語に合わせて、プログラムテンプレート情報17のテンプレート部のみを入れ替えることで、ターゲットとなるプログラム言語を変更することができる。
第2の実施例は、指定の年月日におけるレンタカーの予約台数を求める場合のプログラム生成システムである。図8は、本発明の第2の実施例に係る仕様解析エンジンに入出力するデータの詳細図である。仕様解析エンジン4の入力となる仕様モデル情報11cでは、キーワードとなる「日時:DATE」がDATE型として定義されている。また、キーワード「予約台数:NUMBER」がNUMBER型として定義され、日時が与えられると予約台数が得られることを表わす。
仕様解析エンジン4から出力される変更ワークシート情報13cにおいて、「日時:[]」が変更ポイント情報10cであることを表す。
仕様解析エンジン4に入力される変更ポイント情報10cは、仕様の変更ポイントを指定するためのキーワードと値の組から構成される。すなわち、日時というキーワードの値は、「2003年3月26日」であり、「2003年3月26日」という値は、変更指定手段12により与えられる。
仕様解析エンジン4から出力されるプログラム仕様情報14cは、仕様モデル情報11cおよび変更ポイント情報10cに従ってプログラム仕様情報14cを規定するための、キーワードと一部値の入った括弧([ ])との組から構成される。すなわち、日時というキーワードの値は、「2003年3月26日」であることを表し、予約台数の値は空欄であることを表す。
次に、プログラム生成エンジン5の詳細について説明する。図9は、本発明の第2の実施例に係るプログラム生成エンジンに入出力するデータの詳細図である。図9において、出力されるターゲットプログラム18cは、プログラム言語としてJava(登録商標)/C形式での表記で表わされるものである。
プログラム生成エンジン5に入力されるプログラムモデル情報15cは、仕様モデル情報11cとプログラム処理の組から構成され、仕様モデル情報11cがプログラム処理によって実装されることを意味する。ここで、プログラム処理とは、処理名と引数からなる処理の系列で構成される。すなわち、「繰り返し」が処理名である。また、「実行」、「条件判断」、「返却」が処理名であり、それぞれに対応する引数が、「(予約)」、「(日時)」、「(予約台数)」である。
プログラム生成エンジン5に入力されるプログラムテンプレート情報17cは、プログラム処理とテンプレートから構成され、プログラム処理をテンプレートによって実装することを意味する。すなわち、「繰り返し、実行(X)、条件判断(Y)、返却(Z)」は、それぞれ、プログラム処理の各処理であって、X、Y、Zは、それぞれ変数を意味する。また、「while(true){X(); if(Y){break;}} return(Z);」は、テンプレートであり、変数X、Y、Zは、プログラム処理において用いられた同名の変数X、Y、Zに対応するものである。
プログラム生成エンジン5から出力されるターゲットプログラム18cは、プログラムテンプレート情報17cのテンプレート部に対し、プログラムモデル情報15cのプログラム処理内容とプログラム仕様情報14cとを組み合わせて置換された内容から構成される。すなわち、プログラムモデル情報15cのプログラム処理内容とプログラム仕様情報14cの内容とを組合せて、プログラムテンプレート情報17cのテンプレート部分「while(true){X(); if(Y){break;}} return(Z);」の変数X、Y、Zを、それぞれ「予約()」、「日時 = 2003年3月26日」、「予約台数」によって置換する。置換の結果、ターゲットプログラム18cとして、「while(true){予約(); if(日時 = 2003年3月26日){break;}} return(予約台数);」が得られ、これが出力の対象となるプログラムに相当する。
第3の実施例は、年齢、性別、既往症を与えて保険料の年払額を求める場合のプログラム生成システムである。図10は、本発明の第3の実施例に係る仕様解析エンジンに入出力するデータの詳細図である。仕様解析エンジン4の入力となる仕様モデル情報11dでは、キーワードとなる「年齢:NUMBER」がNUMBER型として、キーワード「性別:STRING」がSTRING型として、キーワード「既往症:STRING」がSTRING型として、キーワード「年払料金:NUMBER」がNUMBER型として定義されている。また、「年齢」、「性別」、「既往症」が変更ポイントである。
仕様解析エンジン4から出力される変更ワークシート情報13dにおいて、「年齢:[]」、「性別:[]」、「既往症:[]」が変更ポイント情報10dであることを表す。
仕様解析エンジン4に入力される変更ポイント情報10dは、仕様の変更ポイントを指定するためのキーワードと値の組から構成される。すなわち、「年齢」、「性別」、「既往症」の、それぞれのキーワードの値は、「30」、「男性」、「なし」であり、変更指定手段12により与えられる。
仕様解析エンジン4から出力されるプログラム仕様情報14dは、仕様モデル情報11dおよび変更ポイント情報10dに従ってプログラム仕様情報14dを規定するための、キーワードと一部値の入った括弧([ ])との組から構成される。すなわち、「年齢」、「性別」、「既往症」それぞれのキーワードの値は、「30」、「男性」、「なし」であり、年払料金の値は空欄であることを表す。
次に、プログラム生成エンジン5の詳細について説明する。図11は、本発明の第3の実施例に係るプログラム生成エンジンに入出力するデータの詳細図である。図11において、出力されるターゲットプログラム18dは、プログラム言語としてJava(登録商標)/C形式での表記で表わされるものである。
プログラム生成エンジン5に入力されるプログラムモデル情報15dは、仕様モデル情報11dとプログラム処理の組から構成され、仕様モデル情報11dがプログラム処理によって実装されることを意味する。ここで、プログラム処理とは、処理名と引数からなる処理の系列で構成される。すなわち、「条件判断」、「実行」、「返却」が処理名であり、「(年齢 AND 性別 AND 既往症)」、「(料金)」、「(年払料金)」がそれぞれ対応する引数である。
プログラム生成エンジン5に入力されるプログラムテンプレート情報17dは、プログラム処理とテンプレートから構成され、プログラム処理をテンプレートによって実装することを意味する。すなわち、「条件判断(X)、実行(Y)、返却(Z)」は、それぞれ、プログラム処理の各処理であって、X、Y、Zは、それぞれ変数を意味する。また、「if(X) { Y(); } return(Z);」は、テンプレートであり、変数X、Y、Zは、プログラム処理において用いられた同名の変数X、Y、Zに対応するものである。
プログラム生成エンジン5から出力されるターゲットプログラム18dは、プログラムテンプレート情報17dのテンプレート部に対し、プログラムモデル情報15dのプログラム処理内容とプログラム仕様情報14dとを組み合わせて置換された内容から構成される。すなわち、プログラムモデル情報15dのプログラム処理内容とプログラム仕様情報14dの内容とを組合せて、プログラムテンプレート情報17dのテンプレート部分「if(X) { Y(); } return(Z);」の変数X、Y、Zを、それぞれ、「年齢 == 30 AND 性別 == 男性 AND 既往症 == なし」、「料金」、「年払料金」によって置換する。置換の結果、ターゲットプログラム18dとして、「if(年齢 == 30 AND 性別 == 男性 AND 既往症 == なし) { 料金(); } return (年払料金);」が得られ、これが出力の対象となるプログラムに相当する。
以上説明した実施例1、2、3で示すように、対象となる仕様モデル情報を仕様解析エンジンに入力すると、変更ワークシート情報が生成され、変更のポイントが明確に示されるので、プログラム生成システムを容易に利用することができる。
本発明のプログラム生成システムを利用することにより、所望のターゲットプログラムを容易に得ることができるため、ターゲットプログラムの開発が大幅に効率化されることとなる。
1 入力装置
2 出力装置
3 処理装置
4 仕様解析エンジン
5 プログラム生成エンジン
6 データ蓄積部
10、10a、10c、10d 変更ポイント情報
11、11a、11c、11d 仕様モデル情報
12 変更指定手段
13、13a、13c、13d 変更ワークシート情報
14、14a、14c、14d プログラム仕様情報
15、15a、15c、15d プログラムモデル情報
17、17a、17b、17c、17d プログラムテンプレート情報
18、18a、18b、18c、18d ターゲットプログラム
2 出力装置
3 処理装置
4 仕様解析エンジン
5 プログラム生成エンジン
6 データ蓄積部
10、10a、10c、10d 変更ポイント情報
11、11a、11c、11d 仕様モデル情報
12 変更指定手段
13、13a、13c、13d 変更ワークシート情報
14、14a、14c、14d プログラム仕様情報
15、15a、15c、15d プログラムモデル情報
17、17a、17b、17c、17d プログラムテンプレート情報
18、18a、18b、18c、18d ターゲットプログラム
Claims (2)
- 生成されるプログラムの仕様を第1のキーワード群で表わす仕様モデル情報を蓄積しておく蓄積手段と、
前記仕様モデル情報を前記蓄積手段から入力して前記仕様モデル情報から第2のキーワード群を取り出し、前記第2のキーワード群に含まれる各キーワードに対応する前記仕様モデル情報中の所定の個所に設定値を設定したプログラム仕様情報を生成する仕様解析手段と、
前記設定値を指定する変更指定手段と、
を備えることを特徴とするプログラム生成システム。 - 生成されるプログラムの仕様を第1のキーワード群で表わす仕様モデル情報を蓄積しておく蓄積手段と、変更指定手段と、仕様解析手段と、を備えるシステムがプログラムを生成する方法であって、
前記仕様解析手段が、前記蓄積手段から前記仕様モデル情報を入力し、前記仕様モデル情報から第2のキーワード群を取り出すステップと、
前記第2のキーワード群に含まれる各キーワードに対応する設定値を前記変更指定手段により指定するステップと、
前記仕様解析手段が、前記各キーワードに対応する前記仕様モデル情報中の所定の個所に前記設定値を設定したプログラム仕様情報を生成するステップと、
を含むことを特徴とするプログラム生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008023957A JP2008159074A (ja) | 2008-02-04 | 2008-02-04 | プログラム生成システムおよび方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008023957A JP2008159074A (ja) | 2008-02-04 | 2008-02-04 | プログラム生成システムおよび方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003417883A Division JP4103791B2 (ja) | 2003-12-16 | 2003-12-16 | プログラム生成システムおよび方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008159074A true JP2008159074A (ja) | 2008-07-10 |
Family
ID=39659845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008023957A Pending JP2008159074A (ja) | 2008-02-04 | 2008-02-04 | プログラム生成システムおよび方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008159074A (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01191233A (ja) * | 1988-01-27 | 1989-08-01 | Hitachi Ltd | プログラム自動生成方式 |
JPH0296228A (ja) * | 1988-09-30 | 1990-04-09 | Nec Corp | プログラムおよび仕様書の生成修正方式 |
JPH07219810A (ja) * | 1994-02-04 | 1995-08-18 | Canon Inc | モジュールテスト方法および装置 |
JPH08314706A (ja) * | 1995-05-22 | 1996-11-29 | Matsushita Electric Works Ltd | ソフトウェアの開発支援システム |
JP2000020296A (ja) * | 1998-07-07 | 2000-01-21 | Matsushita Electric Ind Co Ltd | プログラム変更支援装置 |
JP2003005965A (ja) * | 2001-06-25 | 2003-01-10 | Mitsubishi Electric Corp | データ編集ツール/データアクセスライブラリ自動生成装置 |
-
2008
- 2008-02-04 JP JP2008023957A patent/JP2008159074A/ja active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01191233A (ja) * | 1988-01-27 | 1989-08-01 | Hitachi Ltd | プログラム自動生成方式 |
JPH0296228A (ja) * | 1988-09-30 | 1990-04-09 | Nec Corp | プログラムおよび仕様書の生成修正方式 |
JPH07219810A (ja) * | 1994-02-04 | 1995-08-18 | Canon Inc | モジュールテスト方法および装置 |
JPH08314706A (ja) * | 1995-05-22 | 1996-11-29 | Matsushita Electric Works Ltd | ソフトウェアの開発支援システム |
JP2000020296A (ja) * | 1998-07-07 | 2000-01-21 | Matsushita Electric Ind Co Ltd | プログラム変更支援装置 |
JP2003005965A (ja) * | 2001-06-25 | 2003-01-10 | Mitsubishi Electric Corp | データ編集ツール/データアクセスライブラリ自動生成装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Haugen et al. | Adding standardized variability to domain specific languages | |
JP5159713B2 (ja) | システムの構成要素の設計アーキテクチャを自動設計する自動設計装置、自動設計方法及び自動設計プログラム | |
JP4783658B2 (ja) | 検証支援装置、検証支援方法、検証支援プログラム、および記録媒体 | |
JP2018514878A (ja) | 設計仕様書に基づきソフトウェアタイプアプリケーションを表示するコンピュータに実装された方法 | |
AU2007200385B2 (en) | Re-usuable clauses | |
Grønmo et al. | Comparison of three model transformation languages | |
Hryciw et al. | Guiding principles and proposed classification system for the responsible adoption of artificial intelligence in scientific writing in medicine | |
US20040215586A1 (en) | Automatic knowledge creating method, program therefor, automatic designing method and its system | |
Cox et al. | A roadmap of problem frames research | |
US20080189675A1 (en) | Method and system for providing tooling instructions through parameterization as an aid for software application development | |
JP4103791B2 (ja) | プログラム生成システムおよび方法 | |
Julius et al. | A meta-model based environment for GRAFCET specifications | |
JP2012190203A (ja) | 表形式ソフトウェア仕様作成支援方法、及び装置 | |
Pietsch et al. | Delta-oriented development of model-based software product lines with DeltaEcore and SiPL: A comparison | |
Schubanz | Custom-MADE-Leveraging Agile Rationale Management by Employing Domain-Specific Languages. | |
Foures et al. | Experience in Specializing a Generic Realization Language for SPL Engineering at Airbus | |
Lytra et al. | Harmonizing architectural decisions with component view models using reusable architectural knowledge transformations and constraints | |
JP2008159074A (ja) | プログラム生成システムおよび方法 | |
Schröpfer et al. | A Generic Projectional Editor for EMF Models. | |
JP6336922B2 (ja) | 業務バリエーションに基づく業務影響箇所抽出方法および業務影響箇所抽出装置 | |
Vara et al. | Using weaving models to automate model-driven web engineering proposals | |
Purnell et al. | User-defined smart contracts using answer set programming | |
Ribeiro et al. | A mechanized textbook proof of a type unification algorithm | |
da Silva et al. | Variability Specification and Resolution of Textual Requirements. | |
Haugen et al. | Comparison of system family modeling approaches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110531 |
|
A521 | Written amendment |
Effective date: 20110801 Free format text: JAPANESE INTERMEDIATE CODE: A523 |
|
A02 | Decision of refusal |
Effective date: 20120321 Free format text: JAPANESE INTERMEDIATE CODE: A02 |