JP4103791B2 - プログラム生成システムおよび方法 - Google Patents

プログラム生成システムおよび方法 Download PDF

Info

Publication number
JP4103791B2
JP4103791B2 JP2003417883A JP2003417883A JP4103791B2 JP 4103791 B2 JP4103791 B2 JP 4103791B2 JP 2003417883 A JP2003417883 A JP 2003417883A JP 2003417883 A JP2003417883 A JP 2003417883A JP 4103791 B2 JP4103791 B2 JP 4103791B2
Authority
JP
Japan
Prior art keywords
program
information
keyword
template
model information
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
JP2003417883A
Other languages
English (en)
Other versions
JP2005182132A (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 JP2003417883A priority Critical patent/JP4103791B2/ja
Publication of JP2005182132A publication Critical patent/JP2005182132A/ja
Application granted granted Critical
Publication of JP4103791B2 publication Critical patent/JP4103791B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、入力される仕様に従ってプログラムを生成するシステムおよび方法に係る。
従来、要求仕様を与えて目的とするプログラムを生成するシステムおよび方法がいくつか知られている。例えば、特許文献1には、所定の表計算ソフトウェアで作成した機能要求仕様書からUML(Unified Modeling Language)モデルを使用して業務用アプリケーションソースを作成するシステムおよび方法が開示されている。ここではUMLモデルに対する深い知識を必要とせずに、要求仕様をUMLモデルで定義することが可能となっている。
また、特許文献2では、仕様書から自動的にプログラムを生成することにより、プログラムとその仕様書とを一体化して、プログラムとその仕様書との不一致を防ぐプログラムおよび仕様書の生成修正方式が開示されている。ここで仕様情報は、作成プログラムの注記行に挿入され併合された仕様情報併合プログラムとして格納されている。
さらに、特許文献3には、入力仕様と出力プログラムの関係の情報をプログラム生成部の外に入出力対応表とテンプレートとして設定し、これらの情報を参照して入力仕様の変換を行なうメタルールを有するようにして、入力仕様の形式の追加や出力プログラムの形式の変更を、変換規則を修正することなく実施できるプログラム自動生成装置が開示されている。なお、ここで入出力対応表とは、入力仕様を出力プログラムへ変換するための参照表であり、テンプレートとは、入力仕様を出力プログラムへ変換するステップにおいて、入力値が出力値を決定する際に、出力の一般的なパターンを表すものである。
特開2002−287961号公報(第1、2、4図) 特開平2−96228号公報(第1図) 特開平9−231063号公報(第1図)
従来のプログラム生成システムでは、要求仕様を与えて目的とするプログラムを効果的に生成するシステムおよび方法が開示されている。しかしながら、ある部分の変更を行なう際には、変更のポイントが明確化されてユーザに提示されるようになっていない。したがって、変更にあたってプログラム生成システムの利用方法が必ずしも容易ではないという問題がある。
また、プログラムのテンプレートをターゲットの言語構文に従って入れ替えることが容易にできないために、ターゲットとなるプログラム言語を変更することが困難であるという問題がある。
本発明は、このような問題を解決するために、変更のポイントを明確化すると共に、ターゲットのプログラム言語の変更が容易なプログラム生成システムおよび方法を提供することを目的とする。
前記目的を達成するために、本発明に係るプログラム生成システムは、第1の視点によれば、生成されるプログラムの仕様を第1のキーワード群で表わす仕様モデル情報を蓄積しておく蓄積手段を備える。また、仕様モデル情報を蓄積手段から入力して仕様モデル情報から第2のキーワード群を取り出し、第2のキーワード群に含まれる各キーワードに対応する仕様モデル情報中の所定の個所に設定値を設定したプログラム仕様情報を生成する仕様解析手段を備える。さらに、設定値を指定する変更指定手段を備える。さらにまた、蓄積手段は、仕様モデル情報を処理の列として表わすプログラムモデル情報と、処理の列をプログラムのテンプレートで表わすプログラムテンプレート情報と、をさらに蓄積しておき、プログラム仕様情報を仕様解析手段から入力し、プログラムモデル情報と、プログラムテンプレート情報とを蓄積手段から入力し、各キーワードに対応するテンプレート内の所定の個所に設定値を設定してプログラムを生成するプログラム生成手段を備える。
また、本発明に係るプログラム生成システムは、第2の視点によれば、ターゲットとなるプログラムの仕様を第1のキーワード群で表わす仕様モデル情報と、仕様モデル情報を処理の列として表現するプログラム処理と仕様モデル情報との組を含むプログラムモデル情報と、プログラム処理を実装するプログラムを表現するテンプレートとプログラム処理との組を含むプログラムテンプレート情報と、変更ワークシート情報と、変更ポイント情報と、プログラム仕様情報と、プログラムと、を蓄積する蓄積手段を備える。また、変更ワークシート情報における変更対象となる第2のキーワード群に含まれる各キーワードに対応する設定値を指定する変更指定手段を備える。さらに、蓄積手段から仕様モデル情報を入力し、入力された仕様モデル情報中の第1のキーワード群に含まれる第2のキーワード群を取り出して変更ワークシート情報を生成して蓄積手段に出力し、変更ワークシート情報に対して、変更指定手段により設定値を指定して作成する変更ポイント情報と、仕様モデル情報とを蓄積手段から入力し、仕様モデル情報と変更ポイント情報とに従い、プログラム仕様情報を規定するための第1のキーワード群と第2のキーワード群に対応する設定値との組を含むプログラム仕様情報を生成して蓄積手段に出力する仕様解析手段を備える。さらにまた、蓄積手段から、プログラム仕様情報と、プログラムモデル情報と、プログラムテンプレート情報とを入力し、プログラムモデル情報中の仕様モデル情報とプログラム処理との対応付け、およびテンプレート中のプログラム処理とテンプレートとの対応付けから、プログラム仕様情報中の設定値をテンプレート内の所定の個所に当てはめ、ターゲットとなるプログラムを生成して蓄積手段に出力するプログラム生成手段を備える。
さらに、本発明に係るプログラム生成方法は、第3の視点によれば、生成されるプログラムの仕様を第1のキーワード群で表わす仕様モデル情報を蓄積しておく蓄積手段と、変更指定手段と、仕様解析手段と、を備えるシステムがプログラムを生成する方法であって、仕様解析手段が、蓄積手段から仕様モデル情報を入力し、仕様モデル情報から第2のキーワード群を取り出すステップと、第2のキーワード群に含まれる各キーワードに対応する設定値を変更指定手段により指定するステップと、仕様解析手段が、各キーワードに対応する仕様モデル情報中の所定の個所に設定値を設定したプログラム仕様情報を生成するステップと、を含む。また、システムは、さらにプログラム生成手段を備え、蓄積手段は、仕様モデル情報を処理の列として表わすプログラムモデル情報と、処理の列をプログラムのテンプレートで表わすプログラムテンプレート情報と、をさらに蓄積しておき、プログラム生成手段が、プログラム仕様情報と、仕様モデル情報を処理の列として表わすプログラムモデル情報と、処理の列をプログラムのテンプレートで表わすプログラムテンプレート情報とを入力するステップと、プログラム生成手段が、各キーワードに対応するテンプレート内の所定の個所に設定値を設定してプログラムを生成するステップと、を含む。
また、本発明に係るプログラム生成方法は、第4の視点によれば、(a)ターゲットとなるプログラムの仕様を第1のキーワード群で表わす仕様モデル情報、(b)仕様モデル情報を処理の列として表現するプログラム処理と仕様モデル情報との組を含むプログラムモデル情報、(c)プログラム処理を実装するプログラムを表現するテンプレートとプログラム処理との組を含むプログラムテンプレート情報、を蓄積しておく蓄積手段と、変更指定手段と、仕様解析手段と、プログラム生成手段とを備えるシステムがプログラムを生成する方法であって、仕様解析手段が、蓄積手段から仕様モデル情報を入力するステップと、仕様解析手段が、入力された仕様モデル情報から第2のキーワード群を取り出して変更ワークシート情報を生成して出力するステップと、仕様解析手段が、変更ワークシート情報における第2のキーワード群に含まれる変更対象となる各キーワードに対応する設定値を変更指定手段により指定して変更ポイント情報を作成するステップと、仕様解析手段が、仕様モデル情報と変更ポイント情報とに基づき、プログラム仕様を規定するための第1のキーワード群と第2のキーワード群に対応する設定値との組を含むプログラム仕様情報を生成するステップと、を含む。プログラム生成手段が、プログラム仕様情報を入力し、プログラムモデル情報およびプログラムテンプレート情報を蓄積手段から入力するステップと、プログラム生成手段が、プログラムモデル情報中の仕様モデル情報とプログラム処理との対応付け、およびテンプレート中のプログラム処理とテンプレートとの対応付けから、プログラム仕様情報中の設定値をテンプレート内の所定の個所に当てはめ、ターゲットとなるプログラムを生成するステップと、を含む。
第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の実施例に係る仕様解析エンジンに入出力するデータの詳細図である。 本発明の第1の実施例に係るプログラム生成エンジンに入出力するデータの詳細図である。 本発明の第1の実施例に係るプログラム生成エンジンに入出力するデータの他の詳細図である。 本発明の第2の実施例に係る仕様解析エンジンに入出力するデータの詳細図である。 本発明の第2の実施例に係るプログラム生成エンジンに入出力するデータの詳細図である。 本発明の第3の実施例に係る仕様解析エンジンに入出力するデータの詳細図である。 本発明の第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 ターゲットプログラム

Claims (20)

  1. 生成されるプログラムの仕様を第1のキーワード群で表わす仕様モデル情報を蓄積しておく蓄積手段と、
    前記仕様モデル情報を前記蓄積手段から入力して前記仕様モデル情報から第2のキーワード群を取り出し、前記第2のキーワード群に含まれる各キーワードに対応する前記仕様モデル情報中の所定の個所に設定値を設定したプログラム仕様情報を生成する仕様解析手段と、
    前記設定値を指定する変更指定手段と、
    前記蓄積手段は、前記仕様モデル情報を処理の列として表わすプログラムモデル情報と、前記処理の列を前記プログラムのテンプレートで表わすプログラムテンプレート情報と、をさらに蓄積しておき、
    前記プログラム仕様情報を前記仕様解析手段から入力し、前記プログラムモデル情報と、前記プログラムテンプレート情報とを前記蓄積手段から入力し、前記各キーワードに対応する前記テンプレート内の所定の個所に前記設定値を設定して前記プログラムを生成するプログラム生成手段と、
    備えることを特徴とするプログラム生成システム。
  2. ターゲットとなるプログラムの仕様を第1のキーワード群で表わす仕様モデル情報と、前記仕様モデル情報を処理の列として表現するプログラム処理と前記仕様モデル情報との組を含むプログラムモデル情報と、前記プログラム処理を実装する前記プログラムを表現するテンプレートと前記プログラム処理との組を含むプログラムテンプレート情報と、変更ワークシート情報と、変更ポイント情報と、プログラム仕様情報と、前記プログラムと、を蓄積する蓄積手段と、
    前記変更ワークシート情報における変更対象となる第2のキーワード群に含まれる各キーワードに対応する設定値を指定する変更指定手段と、
    前記蓄積手段から前記仕様モデル情報を入力し、入力された前記仕様モデル情報中の前記第1のキーワード群に含まれる前記第2のキーワード群を取り出して前記変更ワークシート情報を生成して前記蓄積手段に出力し、前記変更ワークシート情報に対して、前記変更指定手段により前記設定値を指定して作成する変更ポイント情報と前記仕様モデル情報とを前記蓄積手段から入力し、前記仕様モデル情報と前記変更ポイント情報とに従い、プログラム仕様情報を規定するための前記第1のキーワード群と前記第2のキーワード群に対応する設定値との組を含む前記プログラム仕様情報を生成して前記蓄積手段に出力する仕様解析手段と、
    前記蓄積手段から、前記プログラム仕様情報と、前記プログラムモデル情報と、前記プログラムテンプレート情報とを入力し、前記プログラムモデル情報中の前記仕様モデル情報と前記プログラム処理との対応付け、および前記プログラムテンプレート情報中の前記プログラム処理と前記テンプレートとの対応付けから、前記プログラム仕様情報中の前記設定値を前記テンプレート内の所定の個所に当てはめ、前記ターゲットとなるプログラムを生成して前記蓄積手段に出力するプログラム生成手段と、
    を備えることを特徴とするプログラム生成システム。
  3. 前記第1のキーワード群は、前記第2のキーワード群と第3のキーワード群とから成り、前記プログラムは、第2のキーワード群に対応する処理から、第3のキーワード群に含まれるキーワードに対応する結果を出力するプログラムであることを特徴とする請求項1または2記載のプログラム生成システム。
  4. 前記第1のキーワード群に含まれるキーワードは、前記キーワードに対応する設定値の型を示す情報を伴い、前記型の情報は、前記プログラム仕様情報中に表記されることを特徴とする請求項1〜のいずれか一記載のプログラム生成システム。
  5. 前記第2のキーワード群に属する前記キーワードは、特定の記号を伴い、前記特定の記号は、前記変更指定手段によって前記設定値が設定されるように表記されることを特徴とする請求項1〜のいずれか一記載のプログラム生成システム。
  6. 前記設定値は、数値または文字列で表される値であることを特徴とする請求項1、2、4、5のいずれか一記載のプログラム生成システム。
  7. 前記設定値は、前記プログラム中に現れることを特徴とする請求項1、2、4、5、6のいずれか一記載のプログラム生成システム。
  8. 前記処理の列は、引数を伴う処理名の列として表されることを特徴とする請求項1または2記載のプログラム生成システム。
  9. 前記引数は、前記プログラムテンプレート情報内で変数として表され、前記プログラム内の変数に反映されることを特徴とする請求項記載のプログラム生成システム。
  10. 前記プログラム内の変数は、前記設定値が代入されることを特徴とする請求項記載のプログラム生成システム。
  11. 生成されるプログラムの仕様を第1のキーワード群で表わす仕様モデル情報を蓄積しておく蓄積手段と、変更指定手段と、仕様解析手段と、を備えるシステムがプログラムを生成する方法であって、
    前記仕様解析手段が、前記蓄積手段から前記仕様モデル情報を入力し、前記仕様モデル情報から第2のキーワード群を取り出すステップと、
    前記第2のキーワード群に含まれる各キーワードに対応する設定値を前記変更指定手段により指定するステップと、
    前記仕様解析手段が、前記各キーワードに対応する前記仕様モデル情報中の所定の個所に前記設定値を設定したプログラム仕様情報を生成するステップと、
    前記システムは、さらにプログラム生成手段を備え、前記蓄積手段は、前記仕様モデル情報を処理の列として表わすプログラムモデル情報と、前記処理の列を前記プログラムのテンプレートで表わすプログラムテンプレート情報と、をさらに蓄積しておき、
    前記プログラム生成手段が、前記プログラム仕様情報と、前記仕様モデル情報を処理の列として表わすプログラムモデル情報と、前記処理の列を前記プログラムのテンプレートで表わすプログラムテンプレート情報とを入力するステップと、
    前記プログラム生成手段が、前記各キーワードに対応する前記テンプレート内の所定の個所に前記設定値を設定して前記プログラムを生成するステップと、
    含むことを特徴とするプログラム生成方法。
  12. (a)ターゲットとなるプログラムの仕様を第1のキーワード群で表わす仕様モデル情報、(b)前記仕様モデル情報を処理の列として表現するプログラム処理と前記仕様モデル情報との組を含むプログラムモデル情報、(c)前記プログラム処理を実装する前記プログラムを表現するテンプレートと前記プログラム処理との組を含むプログラムテンプレート情報、を蓄積しておく蓄積手段と、変更指定手段と、仕様解析手段と、プログラム生成手段とを備えるシステムがプログラムを生成する方法であって、
    前記仕様解析手段が、前記蓄積手段から前記仕様モデル情報を入力するステップと、
    前記仕様解析手段が、入力された前記仕様モデル情報から第2のキーワード群を取り出して変更ワークシート情報を生成して出力するステップと、
    前記仕様解析手段が、前記変更ワークシート情報における前記第2のキーワード群に含まれる変更対象となる各キーワードに対応する設定値を前記変更指定手段により指定して変更ポイント情報を作成するステップと、
    前記仕様解析手段が、前記仕様モデル情報と前記変更ポイント情報とに基づき、プログラム仕様を規定するための前記第1のキーワード群と前記第2のキーワード群に対応する前記設定値との組を含むプログラム仕様情報を生成するステップと、
    前記プログラム生成手段が、前記プログラム仕様情報を入力し、前記プログラムモデル情報および前記プログラムテンプレート情報を前記蓄積手段から入力するステップと、
    前記プログラム生成手段が、前記プログラムモデル情報中の前記仕様モデル情報と前記プログラム処理との対応付け、および前記テンプレート中の前記プログラム処理と前記テンプレートとの対応付けから、前記プログラム仕様情報中の前記設定値を前記テンプレート内の所定の個所に当てはめ、前記ターゲットとなるプログラムを生成するステップと、
    を含むことを特徴とするプログラム生成方法。
  13. 前記第1のキーワード群は、前記第2のキーワード群と第3のキーワード群とから成り、前記プログラムは、第2のキーワード群に対応する処理から、第3のキーワード群に含まれるキーワードに対応する結果を出力するプログラムであることを特徴とする請求項11または12記載のプログラム生成方法。
  14. 前記第1のキーワード群に含まれるキーワードは、前記キーワードに対応する設定値の型を示す情報を伴い、前記型の情報は、前記プログラム仕様情報中に表記されることを特徴とする請求項11〜13のいずれか一記載のプログラム生成方法。
  15. 前記第2のキーワード群に属する前記キーワードは、特定の記号を伴い、前記特定の記号は、前記変更指定手段によって前記設定値が設定されるように表記されることを特徴とする請求項11〜13のいずれか一記載のプログラム生成方法。
  16. 前記設定値は、数値または文字列で表される値であることを特徴とする請求項11、12、14、15のいずれか一記載のプログラム生成方法。
  17. 前記設定値は、前記プログラム中に現れることを特徴とする請求項11、12、14、15、16のいずれか一記載のプログラム生成方法。
  18. 前記処理の列は、引数を伴う処理名の列として表されることを特徴とする請求項11または12記載のプログラム生成方法。
  19. 前記引数は、前記プログラムテンプレート情報内で変数として表され、前記プログラム内の変数に反映されることを特徴とする請求項18記載のプログラム生成方法。
  20. 前記プログラム内の変数は、前記設定値が代入されることを特徴とする請求項19記載のプログラム生成方法。
JP2003417883A 2003-12-16 2003-12-16 プログラム生成システムおよび方法 Expired - Fee Related JP4103791B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003417883A JP4103791B2 (ja) 2003-12-16 2003-12-16 プログラム生成システムおよび方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003417883A JP4103791B2 (ja) 2003-12-16 2003-12-16 プログラム生成システムおよび方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008023957A Division JP2008159074A (ja) 2008-02-04 2008-02-04 プログラム生成システムおよび方法

Publications (2)

Publication Number Publication Date
JP2005182132A JP2005182132A (ja) 2005-07-07
JP4103791B2 true JP4103791B2 (ja) 2008-06-18

Family

ID=34780246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003417883A Expired - Fee Related JP4103791B2 (ja) 2003-12-16 2003-12-16 プログラム生成システムおよび方法

Country Status (1)

Country Link
JP (1) JP4103791B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5412995B2 (ja) * 2009-06-30 2014-02-12 富士通株式会社 プログラムモデル検査におけるデータベース制御装置、データベース制御方法、データベース制御プログラム
CN104267967B (zh) * 2014-10-15 2018-06-26 北京国双科技有限公司 软件的程序代码的生成方法及装置

Also Published As

Publication number Publication date
JP2005182132A (ja) 2005-07-07

Similar Documents

Publication Publication Date Title
Haugen et al. Adding standardized variability to domain specific languages
US5526475A (en) Method for live symbolic calculations in a mathematical document editor
Nemuraite et al. VETIS tool for editing and transforming SBVR business vocabularies and business rules into UML&OCL models
US20090125875A1 (en) Method for manufacturing a final product of a target software product
JP2018516420A (ja) 自然言語により機能アーキテクチャ文書及びソフトウェア設計・解析仕様書を自動的に生成するプロセス及びシステム
JP2011013750A (ja) システムの構成要素の設計アーキテクチャを自動設計する自動設計装置、自動設計方法及び自動設計プログラム
US20120047100A1 (en) Method for producing at least one application description
AU2006272442A1 (en) Method and apparatus for providing structured data for free text messages
AU2007200385B2 (en) Re-usuable clauses
Pandey et al. A framework for modelling software requirements
US20040215586A1 (en) Automatic knowledge creating method, program therefor, automatic designing method and its system
Ndadji et al. A language and methodology based on scenarios, grammars and views, for administrative business processes modelling
Bagheri et al. Modular feature models: Representation and configuration
US7451158B1 (en) System and method for creating, appending and merging a work management file
JP4103791B2 (ja) プログラム生成システムおよび方法
Lytra et al. Harmonizing architectural decisions with component view models using reusable architectural knowledge transformations and constraints
Gould Systems analysis and design
CN115509510A (zh) 基于lidl的可视化人机交互软件建模方法及装置
JPH0644074A (ja) 知識ベースおよび推論方法および説明文生成方法
Djukić et al. Handling complex representations in visual modeling tools for MDSD/DSM by means of code generator languages
JP2008159074A (ja) プログラム生成システムおよび方法
JP6336922B2 (ja) 業務バリエーションに基づく業務影響箇所抽出方法および業務影響箇所抽出装置
Schubanz Custom-MADE-Leveraging Agile Rationale Management by Employing Domain-Specific Languages.
Vara et al. Using weaving models to automate model-driven web engineering proposals
Ribeiro et al. A mechanized textbook proof of a type unification algorithm

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080304

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080317

R150 Certificate of patent or registration of utility model

Ref document number: 4103791

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110404

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120404

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120404

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130404

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130404

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140404

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees