JP4524750B2 - モデル駆動開発装置、モデル駆動開発方法及びモデル駆動開発プログラム - Google Patents

モデル駆動開発装置、モデル駆動開発方法及びモデル駆動開発プログラム Download PDF

Info

Publication number
JP4524750B2
JP4524750B2 JP2004327722A JP2004327722A JP4524750B2 JP 4524750 B2 JP4524750 B2 JP 4524750B2 JP 2004327722 A JP2004327722 A JP 2004327722A JP 2004327722 A JP2004327722 A JP 2004327722A JP 4524750 B2 JP4524750 B2 JP 4524750B2
Authority
JP
Japan
Prior art keywords
model
version
conversion rule
program
elements
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
JP2004327722A
Other languages
English (en)
Other versions
JP2006139472A (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 JP2004327722A priority Critical patent/JP4524750B2/ja
Publication of JP2006139472A publication Critical patent/JP2006139472A/ja
Application granted granted Critical
Publication of JP4524750B2 publication Critical patent/JP4524750B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、モデル駆動開発によるソースファイルの自動生成方法において、モデル、変換ルール、ソースファイルのバージョン管理による効率的な自動生成方法に関するものである。
近年、UML(Unified Modeling Language:統一モデリング言語)等の標準化されたモデリング手法を用いて開発すべきプログラムのソースコードの自動生成を行うモデル駆動開発(「モデル駆動型アーキテクチュア(MDA:Model Driven Architecture」とも言う)と呼ばれるソフトウェア開発手法が注目されている。
このモデル駆動開発によれば、アプリケーションの機能をモデル化し、これを基にジェネレータなどの専用ツールを使ってプログラムのソースコードを自動生成する。ジェネレータには、自動生成で用いる変換ルールが、予め設定されている。
図14は、従来技術のモデル駆動開発の方法を概念的に説明するものである。この方法では、対象とするアプリケーションをモデリングしたモデル330全体及び変更ルール全体は、1つのバージョンで管理されている。このモデル330からジェネレータ340を使ってプログラムのソースファイルを作り出す。ソースファイル1(351)は、モデル330の要素3と要素22の情報を元に変換ルール1を用いてジェネレータ340で生成される。他のソースファイル2(352)、ソースファイル3(353)も同様である。
よって、どのモデル要素または変換ルールが変更された場合でも全てのプログラム要素を再生成する必要がある。例えば、要素22だけ変更された場合でもモデル330全体がバージョン変更になり、モデル330全体を使用して、全ソースファイルを再生成する。ジェネレータ340の変換ルールが一部変更された場合も、ジェネレータ340全体のバージョンが変更されるので、全ソースファイルを再生成する。
また、モデル駆動開発と別分野であるが、従来のプログラム及び文書情報に関するバージョン管理システムの一例が、特許文献1に記載されている。特許文献1は、一つのソースコード変更が他の複数の文書ファイルに影響を及ぼしていくものである。また、特許文献2及び3は、1つのソースプログラムの1つの差分情報の変更により、更新されバージョンアップした場合、アプリケーションプログラムは全体としてバージョンがアップしてしまうものである。
特開2002−182908号公報([0010]〜[0029][0045]、図1 図6 図7 図9 図13 図15) 特開2000−200185号公報([0013]〜[0019][0023][0024]、図1 図3 図6 図7) 特開平11−327878号公報([0014][0026][0033]、図1 図2 図5 図8)
従来技術のモデル駆動開発において、単純な自動生成では、モデルや変換ルールの一部が変更された場合でも、モデル全体からソースファイル全部を再生成する。これでは、モデルが大きい場合、再生成に時間がかかり非効率である。また、モデルや変換ルールの一部が変更された場合でも、全生成物である全ソースファイルのバージョンが変更されてしまうものである。
そこで、本発明は、モデル駆動開発におけるモデルや変換ルールの一部の要素のみが更新された場合でも、プログラムのソースファイル全部が再生成されることなく、効率的にプログラムの再生成が行えるようにすることを課題とする。
また、モデル要素や生成物の要素に実質上変化がない場合はバージョンが変更されないようにし、生成物の本質的差分だけがすばやく分かることである。
本発明に係るモデル駆動開発装置は、モデル駆動開発手法を用いて開発すべきプログラムのモデルから所定の変換ルールにより前記プログラムのソースファイルを生成するモデル駆動開発装置において、前記モデルを前記生成の変換の基本となる単位である複数のモデル要素に分割し個々の前記モデル要素にバージョンを付与し、前記変換ルールを構成する複数の変換ルールを前記モデル要素と対応付けられた複数の変換ルール要素として、個々の前記変換ルール要素にバージョンを付与し、前記モデル及び/又は前記変換ルールが変更されるとき、変更する前記モデル要素のみ及び/又は前記変換ルール要素のみ、バージョンを更新する制御手段と、複数の前記モデル要素とそのバージョンを記憶し、複数の前記変換ルール要素とそのバージョンを記憶し、複数の生成されたソースファイルであるプログラム要素と、前記プログラム要素を生成したときの前記モデル要素のバージョンと前記変換ルール要素のバージョンを対応付けて記憶する記憶媒体と、前記複数の変換ルール要素のバージョンを取得する変換ルール要素バージョン取得手段と、前記複数のモデル要素のバージョンを取得するモデル要素バージョン取得手段と、前記モデル要素バージョン取得手段により取得された前記モデル要素のバージョンと対応する前記プログラム要素の生成したときのモデル要素のバージョンとを比較するとともに、前記変換ルール要素バージョン取得手段により取得された前記変換ルール要素のバージョンと対応する前記プログラム要素の生成したときの変換ルール要素のバージョンとを比較して結果を出力するバージョン比較手段と、前記バージョン比較手段から、前記モデル要素のバージョンと対応する前記プログラム要素の生成したときのモデル要素のバージョンが一致しないか、前記変換ルール要素のバージョンと対応する前記プログラム要素の生成したときの変換ルール要素のバージョンが一致しない前記結果を受けたとき、該モデル要素と該変換ルール要素を用いてプログラム要素を生成し、該モデル要素のバージョンと該変換ルール要素のバージョンを付加して前記記憶媒体に書き込むプログラム生成手段と、を有することを特徴とする。
モデル駆動開発装置は、モデル要素はエンティティ又はコントロール又はバウンダリからなることを特徴とする上記のモデル駆動開発装置である。
本発明のモデル駆動開発装置によれば、モデルをモデル要素に分割し、各要素にバージョンを付与するように構成され、変換ルールを変換ルール要素に分割し、各要素にバージョンを付与するように構成されているので、モデルの一部のモデル要素が変更された場合又は変換ルールの一部の変換ルール要素が変更された場合に、バージョン比較によりその要素の新しいバージョンによる自動生成しか行われないのでプログラム要素の無駄な再生成を防止できる。
以下、本発明の実施の形態について図面を用いて詳細に説明する。
モデル駆動開発装置は、モデル駆動開発におけるモデルを自動生成時の変換の基本となる単位である要素に分割し、個々の要素にバージョンを付与する。このバージョンは、各々の要素が変更された場合にのみ変更する。他の要素が変更されても、当該要素が変更されない場合はバージョンは以前と同一とする。自動生成に使用する変換ルールにもバージョンを付与する。変換ルールも、分割し、個々の変換ルール要素にバージョンを付与する。
自動生成されるプログラム要素には、対応する全てのモデル要素と変換ルール要素のバージョンを格納する。変換ルール要素やモデル要素のバージョンが前回生成時と同じ場合はそのプログラム要素を自動生成しない。これにより、モデルの一部のモデル要素のみが更新された場合、その変更に対応するプログラム要素のみが自動生成され、効率的に再生成が行える。
[実施形態1]
図1に、本発明の実施形態1のモデル駆動開発の方法を示す。モデル30は複数のモデル要素を備える。各モデル要素ごとに1つずつのバージョンを設ける。
モデル30は、モデル要素1、モデル要素2、モデル要素3、モデル要素21、モデル要素22から構成されている。モデル30は、バージョン1.1である。モデル要素1、モデル要素2、モデル要素3は、直接モデルに属しており、バージョンはそれぞれバージョン1.2、バージョン1.1、バージョン1.1である。モデル要素21とモデル要素22は、モデル要素2に属しており、バージョンはそれぞれバージョン1.1、バージョン2.1である。
モデル駆動開発装置40は、制御手段41とジェネレータ42からなる。
制御手段41は、モデル30がモデル駆動開発装置40内に記憶されている場合は、モデル30の制御を行う。制御手段41は、モデル30を各モデル要素に分割し、バージョンを付与する。モデル要素の変更時には、該当するモデル要素のバージョンを更新する。
モデル30とその各要素は他のPCから与えられる場合や他のPCで更新を受ける場合もある。よって、このモデル30の分割やバージョン付与、更新の機能を持たない制御手段を用いたモデル駆動開発装置40も構成できる。
ジェネレータ42は複数の変換ルール要素を備え、それぞれのソースファイルを生成する。モデル要素と使用される変換ルール要素は線と矢印で繋げられている。ジェネレータ42の変換ルール要素ごとにも1つのバージョンを設ける。ジェネレータ42には、変換ルール要素1(43)、変換ルール要素2(44)、変換ルール要素3(45)があり、バージョンはそれぞれバージョン1.1、バージョン2.1、バージョン1.1であり、それぞれソースファイル1(51)、ソースファイル2(52)、ソースファイル3(53)を生成する。
これにより、例えば、モデル要素22だけのバージョンが変更された場合、変換ルール要素1(41)を用いてソースファイル1(51)だけが再生成となる。また、ジェネレータ42の変換ルール要素2(42)だけが変更された場合は、モデル要素2、モデル要素21を用いてソースファイル2(52)のみを再生成する。
次に、図2に、本発明の実施形態1の機能構成図を示す。コンピュータ100は、モデル駆動開発装置40となる。コンピュータ100は、上述の図1の制御手段41とジェネレータ42を構成する。
プログラム制御により動作するコンピュータ100は、モデル記憶手段110と、 変換ルール記憶手段120と、プログラム記憶手段130と 、変換ルール要素バージョン取得手段140と、モデル要素バージョン取得手段150と、プログラム要素バージョン取得手段160と、バージョン比較手段170と、モデル要素取得手段180と、変換ルール要素取得手段190と、プログラム生成手段200と、上位制御手段230とを含む構成である。
図3は、このコンピュータ100のハードウェア構成図である。CPU(Central Processing Unit)250は、変換ルール要素バージョン取得手段140と、モデル要素バージョン取得手段150と、プログラム要素バージョン取得手段160と、バージョン比較手段170の制御と、モデル要素取得手段180と、変換ルール要素取得手段190と、プログラム生成手段200と、上位制御手段230の制御の機能を行う。揮発性メモリ260は、バージョン比較手段170の一時記憶とプログラム生成手段200の一時記憶の機能を行う。ハードディスク270は、モデル記憶手段110と、変換ルール記憶手段120と、プログラム記憶手段130の機能を行う。280は、CPU250、揮発性メモリ260、不揮発性メモリ270を結ぶバスである。
機能構成図の各部を説明する。モデル記憶手段110は、モデル30を、構成するモデル要素ごとにバージョン番号を付与可能な形式で記憶する。モデル30は3種類のモデル要素、すなわち、後述するエンティティ31、コントロール32、バウンダリ33からなる。
変換ルール記憶手段120は、変換ルールを、変換ルール要素ごとにバージョン番号を付与可能な形式で記憶する。
プログラム記憶手段130は、プログラム生成手段200が生成したプログラムを、プログラム要素のファイルごとにバージョン番号を付与可能な形式で記憶する。プログラム要素には、後述するDB(Database)ソースファイル35、EJB(Enterprise Java(登録商標)Beans)ソースファイル36、JSP(Java(登録商標)Server Pages)ソースファイル37がある。
なお、プログラム要素は、図1でのソースファイルに相当する。
変換ルール要素バージョン取得手段140は、変換ルール要素のバージョン番号を変換ルール記憶手段120から取得し、バージョン比較手段170に送る。モデル要素バージョン取得手段150は、モデル要素のバージョン番号をモデル記憶手段110から取得し、バージョン比較手段170に送る。
プログラム要素バージョン取得手段160は、変換ルール要素とモデル要素に対応するプログラム要素のバージョンをプログラム記憶手段130から検索して取得し、バージョン比較手段170に送る。つまり、該当するプログラム要素に対応したプログラム要素生成時の変換ルール要素バージョンとモデル要素バージョンをプログラム記憶手段130から取得し、バージョン比較手段170に送る。ここで、プログラム要素のバージョンとは、プログラム要素に対応したプログラム要素生成時の変換ルール要素バージョンとモデル要素バージョンを指す。
バージョン比較手段170は、変換ルール要素とモデル要素に対応するプログラム要素のバージョンが、変換ルール要素のバージョンとモデル要素のバージョンに一致するかどうかを比較する。つまり、対応するプログラム要素のプログラム要素生成時の変換ルール要素バージョンとモデル要素バージョンが、指定された変換ルール要素のバージョンとモデル要素のバージョンに一致するかどうかを比較する。そして、すべて一致する場合のみ比較結果trueを返す。他の場合は比較結果falseを返す。
モデル要素取得手段180は、モデル記憶手段110からモデル要素の情報を取得する。
変換ルール要素取得手段190は、変換ルール記憶手段120から変換ルール要素の情報を取得する。
プログラム生成手段200は、変換ルール要素取得手段190から取得した変換ルール要素と、変換ルール要素に入力するモデル要素をバージョン比較手段に渡し、該当するプログラム要素とバージョンが一致するかどうかを計算させ、一致しない場合はモデル要素取得手段180から取得したモデル要素と、すでに取得済みの変換ルール要素を用いて対応するプログラム要素を生成し、モデル要素と変換ルール要素のバージョン情報を追加した後、プログラム記憶手段130に格納する。一致した場合はプログラム要素を生成しない。
上位制御手段230は、バージョン比較手段170とプログラム生成手段200の上位の制御手段として制御を行う。上位制御手段230は、モデルがモデル記憶手段に記憶されている場合は、モデル要素に分割し、各モデル要素にバージョンを付与する。モデル要素の変更、バージョンの更新も行う。また、変換ルール記憶手段120に変換ルールが記憶されている場合は、変換ルール要素に分割し、各変換ルール要素にバージョンを付与する。変換ルール要素の変更、バージョンの更新も行う。
なお、モデル及び変換ルールは、モデル要素に分割し、各モデル要素にバージョンを付与されたもの及び変換ルール要素に分割し、各変換ルール要素にバージョンを付与されたものを外部のPC等から得る場合もある。また、他のPCで更新を受けたものが書き込まれる場合もある。
図4に、プログラム記憶手段130上のプログラム要素を示す。プログラム要素に対応したプログラム要素生成時の変換ルール要素バージョンとモデル要素バージョンを記憶する。これにより、プログラム要素から、生成に使用した変換ルール要素とモデル要素のバージョンをトレースすることができ、障害調査に有効活用できる。
図5に、モデル要素から構成されたモデル30の例を示す。この例では、上述したように、モデル30は、モデル駆動のモデリングによるオブジェクトである3種類のモデル要素からなる。すなわち、ひとまとまりの情報を持つ実体でありデータベースの表定義に相当するエンティティ31、演算操作や処理を行いプログラムの制御を司るものであるコントロール32、画面や帳票印刷など、外部世界とコンピュータの世界をつなぐ入出力情報であるバウンダリ33からなる。なお、エンティティの属性は、エンティティの要素となる情報であり、コントロールの操作は、他のクラスつまりエンティティやバウンダリに対する処理を実行する部分であり、バウンダリの属性は、バウンダリの要素となる情報である。
エンティティ31、コントロール32、バウンダリ33はそれぞれ任意個存在する。コントロール32はエンティティ31を、バウンダリ33はコントロール32をそれぞれ任意個参照する。
図6(a)は、モデル30の3種類のモデル要素を、矢印で示される3つの変換ルール要素でDBソースファイル35、EJBソースファイル36、JSPソースファイル37という3種類のプログラム要素に変換つまり自動生成する様子を、図6(b)は、モデル要素とプログラム要素と変換ルール要素の対応表を示す。これらを合わせて説明する。
図6(a)において、エンティティ31は、変換ルール要素1によってDBソースファイル35に変換される。コントロール32は、エンティティ31を参照し変換ルール要素2によってEJBソースファイル36に変換される。バウンダリ33は、コントロール32を参照し変換ルール要素3によってJSPソースファイル37に変換される。
ここで、変換されたプログラム要素であるソースファイルを説明する。
DBソースファイル35は、エンティティ31に対応するデータベースとしてのソースファイルである。EJBソースファイル36は、コントロール32とエンティティ31に対応するJava(登録商標)のコンポーネント仕様Java(登録商標)Beansをサーバ側で使えるように拡張したソースファイルである。EJB対応のソフトウエア部品は、いろいろなjava(登録商標)プログラムから共有できる。JSPソースファイル37は、バウンダリ33とコントロール32に対応するJava(登録商標)を使ったWebアプリケーション実行環境のソースファイルであり、Java(登録商標)コードをHTML文中に埋め込んだファイルをWebサーバ側で実行してその結果をWebブラウザに戻す。
次に図6(b)の対応表を説明する。モデル要素とプログラム要素の変換と、その変換を行う変換ルール要素が番号ごとに示される。
次に、変換ルール要素を説明する。なお、実施例を図7から図10で後述する。
変換ルール要素1は、エンティティ31ひとつにつきデータベースつまりDB35の表を1つ生成する。エンティティ31の属性をDBソースファイル35の列に変換する。例えば、入力項目が、データベースの項目に変換される。
変換ルール要素2は、コントロール32の1つにつき、EJBソースファイル36を1つ作成する。コントロール32の操作を、EJBのメソッドに変換する。EJBのメソッドとは、EJBの属性つまりEJBの要素となる情報を操作するための処理を実行する部分である。また、コントロール32が参照するエンティティ31に対応するDBソースファイル35を取得するためのSQL(Structured query language)文を生成する。例えば、入力の操作や使用するDBを聞くSQL文をEJBに設ける。
変換ルール要素3は、バウンダリ33の1つにつき、JSPソースファイル37を1つ生成する。バウンダリ33の属性をJSPソースファイル37のINPUTに変換する。JSPのINPUTとは、JSPに配置される入力領域である。バウンダリ33が参照しているコントロール32をJSPソースファイル37上にJava(登録商標)のコンポーネント仕様であるJava(登録商標)Beansを生成する。例えば、入力画面の項目をJSPの入力項目とする。また、入力という操作をJSP内にJava(登録商標)Beansとして生成する。
ここで、図6(a)に示すように、プログラム要素のDBソースファイル35はモデル要素のエンティティ31と変換ルール要素1に依存し、プログラム要素のEJBソースファイル36はモデル要素のエンティティ31とコントロール32ならびに変換ルール要素2に依存し、プログラム要素のJSPソースファイル37はモデル要素のコントロール32とバウンダリ33ならびに変換ルール要素3に依存する。
本発明の技術を使用することにより、プログラム要素の再生成範囲が限定される。すなわち、図6(a)からわかるように、エンティティ31のみが変更された場合はJSPソースファイル37の生成は不要であり、コントロール32のみが変更された場合はEJBソースファイル36の生成は不要であり、バウンダリ33のみが変更された場合はDBソースファイル35とEJBソースファイル36の生成は不要となる。また、変換ルール要素1のみが変更された場合はEJBソースファイル36とJSPソースファイル37の生成は不要であり、変換ルール要素2のみが変更された場合はDBソースファイル35とJSPソースファイル37の生成は不要であり、変換ルール要素3のみが変更された場合はDBソースファイル35とEJBソースファイル36の生成は不要である。いずれの場合も、常に生成されたプログラム要素ごとに、生成時に使用された変換ルール要素やモデル要素のバージョンを取得できる。
図7に、図6に対応する実施例である売上管理モデルを示し説明する。図7(a)が変換の例であり、図7(b)が対応表である。対応表の変換ルール要素は、上述のものと同じである。
図7(a)では、モデル30が売上管理モデル60であり、エンティティ31である売上入力画面63で入力されたデータをバウンダリ33である売上DB61に、コントロール32である入力制御62の制御により格納し保存するというアプリケーションである。これを変換ルールにより変換する。
この結果、売上DB61は、変換ルール要素1によってDBソースファイル35であるURIAGE_TABLE65に変換される。入力制御62は、売上DB61を参照し変換ルール要素2によってEJBソースファイル36であるUriageBean66に変換される。売上入力画面63は、入力制御62を参照し変換ルール要素3によってJSPソースファイル37であるUriage.JSP67に変換される。
図7(b)の対応表では、モデル要素とプログラム要素の具体例を示している。モデル要素のエンティティが「売上DB」であり、コントロールが「入力制御」、バウンダリが「売上入力画面」である。プログラム要素のDBつまりデータベース表が「URIAGE_TABLE」であり、EJBが「UriageBean」、JSPが「Uriage.JSP」である。
図8は、変換ルール要素1による変換の詳細例である。図8(a)では、売上DB61につき、データベース表「URIAGE_TABLE」が作成され、売上DB61の属性である日付、顧客、品名、単価、個数、合価がそれぞれ、URIAGE_TABLE65の列である「Date DATETIME」、「Cust NUMBER(5)」、「Item VARCHAR(20)」、「Price NUMBER(10)」、「Num NUMBER(5)」、「Sum NUMBER(20)」に変換されることを示す。図8(b)は、図7(b)の対応表内の変換ルール要素1のみの対応表を示す。
図9は、変換ルール要素2による変換の詳細例である。図9(a)では、入力制御62につき、EJBである「UriageBean」が作成され、入力制御62の操作である「入力する」をUriageBeanのメソッドに変換するとともに、入力制御62が参照する売上DB61に対応するDBを取得するためのSQL文をメソッド内に作成することを示す。図9(b)は、図7(b)の対応表内の変換ルール要素2のみの対応表を示す。
図10は、変換ルール要素3による変換の詳細例である。図10(a)では、売上入力画面63につき「Uriage.JSP」が作成され、売上入力画面63の属性である日付、顧客、品名、単価、個数、合価がそれぞれ、変換ルール要素3によって、Uriage.JSP67のINPUTである日付、顧客、品名、単価、個数、合価に変換されるとともに、売上入力画面63が参照している入力制御62をUriage.JSP上にJava(登録商標)Beansとして生成する。これにより、入力制御62により売上入力画面63の入力がUriage.JSPに入る。図10(b)は、図7(b)の対応表内の変換ルール要素3のみの対応表を示す。
次に、図11及び図12のフローチャートを参照して本発明の実施形態1の動作について詳細に説明する。
初めに図11のフローチャートを説明する。図中ステップA3及びA4のバージョンが一致しているかの比較の動作は、図12のフローチャートで詳細に示す。
まず、変換ルール要素取得手段190が、変換ルール記憶手段120から変換ルール要素を取得する(ステップA1)。次に、モデル要素取得手段180が、変換ルール要素に対応するモデル要素をモデル記憶手段110から取得する(ステップA2)。
プログラム生成手段200は、変換ルールとモデル要素を取得し、バージョン比較手段170に送る。バージョン比較手段170は、変換ルールとモデル要素のバージョンを対応するプログラム要素のバージョンと比較する(ステップA3、詳細は図8)。 バージョンが一致する場合は、モデル要素も変換ルール要素も更新されていないため、ステップA9へ進む(ステップA4)。
バージョンが一致しない場合は、モデル要素または変換ルール要素が更新されているため、引き続き対応するプログラム要素をプログラム生成手段200にて生成する。モデル要素の情報を、取得した変換ルール要素の変換ルールに基づき変換し、プログラム要素を生成する(ステップA5)。次に、プログラム要素に、変換に使用したモデル要素のバージョンを書き込む(ステップA6)。さらに、プログラム要素に、変換に使用した変換ルールのバージョンも書き込む(ステップA7)。最後に、プログラム要素をプログラム記憶手段130に記憶する(ステップA8)。そして、処理したモデル要素が最後のモデル要素かどうかチェックする(ステップA9)。最後でなければステップA2に戻る。最後であれば、処理に使用した変換ルール要素が最後かどうかをチェックする(ステップA10)。 最後でなければステップA1に戻る。最後であれば終了する。
次に図12のフローチャートを用いてA3及びA4のバージョン比較を説明する。
バージョンの一致の確認は、まず、バージョン比較手段170が、変換ルール要素とモデル要素に対応するプログラム要素をプログラム要素バージョン取得手段160を介してプログラム記憶手段130から検索して取得する(ステップB1)。対応するプログラム要素が存在するかどうかチェックする(ステップB2)。存在しない場合は、変換ルール要素又はモデル要素が追加された場合であるから「バージョンは不一致」という結果で上位の制御手段に返す。対応するプログラム要素は不存在、新規にプログラム要素が作られることになる(ステップB7)。存在する場合は、バージョン比較手段170が、プログラム要素生成時の対応づけられた変換ルール要素のバージョンをプログラム要素バージョン取得手段160を介してプログラム記憶手段130から取得する(ステップB3)。このバージョンと、現在の変換ルール要素のバージョンを比較する(ステップB4)。バージョンが一致しない場合は、「バージョンは不一致」という結果を上位の制御手段に返す(ステップB7)。一致する場合は、バージョン比較手段170が、プログラム要素生成時の対応づけられたモデル要素のバージョンをプログラム要素バージョン取得手段160を介してプログラム要素記憶手段130から取得する(ステップB5)。モデル要素は複数存在する可能性があるが、その場合は全て取得しておく。バージョン比較手段170は、これらのバージョンと、現在のモデル要素のバージョンを比較する(ステップB6)。バージョンが一致しない場合は、「バージョンは不一致」という結果を上位の制御手段に返す(ステップB7)。一致する場合は、「バージョンは一致」という結果を上位の制御手段に返す(ステップB8)。
[実施形態2]
次に、本発明の実施形態2の構成について図面を参照して詳細に説明する。
図13に実施形態2の構成を示す。本発明の実施形態2の構成は、実施形態1の構成に、モデル編集手段210と、変換ルール編集手段220とを追加した構成である。
実施形態1では、上位制御手段230で行う機能の内、モデル編集、変更ルール編集をモデル編集手段210と、変換ルール編集手段220で行う。
実施形態1で示した構成及び動作の説明は省略する。
コンピュータ100は、モデル編集手段210と、変換ルール編集手段220とを含む。
モデル編集手段210は、モデルをモデル記憶手段110から読み込み、要素の追加、要素の削除、要素の内容変更を行い、モデル記憶手段110に書き戻す。その際、変更が行われたモデル要素のバージョン情報を更新し、以前のモデル要素とバージョンの区別がつくようにする。
変換ルール編集手段220は、変換ルールを変換ルール記憶手段120から読み込み、変換ルールの追加、変換ルールの削除、変換ルールの内容変更を行い、変換ルール記憶手段120に書き戻す。その際、変更が行われた変換ルール要素のバージョン情報を更新し、以前の変換ルール要素とバージョンの区別がつくようにする。
上位制御手段230は、モデル編集手段210と変換ルール編集手段220の制御を行う。
次に、本発明の実施形態2の効果について説明する。
本発明の実施形態2では、モデルをモデル編集手段210で編集することにより、各要素のバージョンを自動的に更新するように構成されているため、モデルが変更された場合 のバージョン更新作業の手間を省き、正確なバージョンを付与できる。
また、実施形態2では、変換ルールを変換ルール編集手段220で編集することにより、各要素のバージョンを自動的に更新するように構成されているため、変換ルールが変更された場合のバージョン更新作業の手間を省き、正確なバージョンを付与できる。
なお、本発明は上述の説明した実施の形態に限定されるものではなく、本発明の精神を逸脱することなく種々の変形が可能とされるものである。
本発明によれば、モデル駆動開発における自動生成といった分野に適用できる。また、 ハードウェアやミドルウェアのモデルから、保守ドキュメントを自動生成するといった用途にも適用可能である。
本発明の実施形態1のモデル駆動開発の方法である。 本発明の実施形態1の構成図である。 本発明の実施形態1のハードウェア構成図である。 本発明のプログラム記憶手段上のプログラム要素である。 本発明のモデル要素から構成されたモデルの例である。 (a)本発明のモデルを変換ルール要素でプログラム要素に変換する例である。(b)本発明のモデル要素とプログラム要素と変換ルール要素の対応表である。 (a)本発明のモデルを変換ルール要素でプログラム要素に変換する実施例である。(b)本発明のモデル要素とプログラム要素と変換ルール要素の対応表の実施例である。 (a)本発明のエンティティを変換ルール要素1で変換する実施例である。(b)本発明のエンティティとプログラム要素の対応表の実施例である。 (a)本発明のコントロールを変換ルール要素2で変換する実施例である。(b)本発明のコントロールとプログラム要素の対応表の実施例である。 (a)本発明のバウンダリを変換ルール要素3で変換する実施例である。(b)本発明のバウンダリとプログラム要素の対応表の実施例である 本発明の実施形態1の動作のフローチャートである。 本発明の実施形態1のバージョン比較の動作のフローチャートである。 本発明の実施形態2の構成図である。 従来のモデル駆動開発の方法である。
符号の説明
1 モデル要素
2 モデル要素
3 モデル要素
21 モデル要素
22 モデル要素
30 モデル
31 エンティティ
32 コントロール
33 バウンダリ
35 DBソースファイル
36 EJBソースファイル
37 JSPソースファイル
40 モデル駆動開発装置
41 制御手段
42 ジェネレータ
43 変換ルール要素1
44 変換ルール要素2
45 変換ルール要素3
51 ソースファイル1
52 ソースファイル2
53 ソースファイル3
60 売上管理モデル
61 売上DB
62 入力制御
63 売上入力画面
65 URIAGE_TABLE
66 UriageBean
67 Uriage.JSP
100 コンピュータ
110 モデル記憶手段
120 変換ルール記憶手段
130 プログラム記憶手段
140 変換ルール要素バージョン
150 モデル要素バージョン取得手段
160 プログラム要素バージョン取得手段
170 バージョン比較手段
180 モデル要素取得手段
190 変換ルール要素取得手段
200 プログラム生成手段
210 モデル編集手段
220 変換ルール編集手段
230 上位制御手段
250 CPU
260 揮発性メモリ
270 ハードディスク
280 バス
330 モデル
340 ジェネレータ
351 ソースファイル1
352 ソースファイル2
353 ソースファイル3

Claims (8)

  1. モデル駆動開発手法を用いて開発すべきプログラムのモデルから所定の変換ルールにより前記プログラムのソースファイルを生成するモデル駆動開発装置において、
    前記モデルを前記生成の変換の基本となる単位である複数のモデル要素に分割し個々の前記モデル要素にバージョンを付与し、前記変換ルールを構成する複数の変換ルールを前記モデル要素と対応付けられた複数の変換ルール要素として、個々の前記変換ルール要素にバージョンを付与し、前記モデル及び/又は前記変換ルールが変更されるとき、変更する前記モデル要素のみ及び/又は前記変換ルール要素のみ、バージョンを更新する制御手段と、
    複数の前記モデル要素とそのバージョンを記憶し、複数の前記変換ルール要素とそのバージョンを記憶し、複数の生成されたソースファイルであるプログラム要素と、前記プログラム要素を生成したときの前記モデル要素のバージョンと前記変換ルール要素のバージョンを対応付けて記憶する記憶媒体と、
    前記複数の変換ルール要素のバージョンを取得する変換ルール要素バージョン取得手段と、
    前記複数のモデル要素のバージョンを取得するモデル要素バージョン取得手段と、
    前記モデル要素バージョン取得手段により取得された前記モデル要素のバージョンと対応する前記プログラム要素の生成したときのモデル要素のバージョンとを比較するとともに、前記変換ルール要素バージョン取得手段により取得された前記変換ルール要素のバージョンと対応する前記プログラム要素の生成したときの変換ルール要素のバージョンとを比較して結果を出力するバージョン比較手段と、
    前記バージョン比較手段から、前記モデル要素のバージョンと対応する前記プログラム要素の生成したときのモデル要素のバージョンが一致しないか、前記変換ルール要素のバージョンと対応する前記プログラム要素の生成したときの変換ルール要素のバージョンが
    一致しない前記結果を受けたとき、該モデル要素と該変換ルール要素を用いてプログラム要素を生成し、該モデル要素のバージョンと該変換ルール要素のバージョンを付加して前記記憶媒体に書き込むプログラム生成手段と、
    を有することを特徴とするモデル駆動開発装置。
  2. モデル駆動開発手法を用いて開発すべきプログラムのモデルから所定の変換ルールにより前記プログラムのソースファイルを生成するモデル駆動開発装置において、
    複数のモデル要素とそのバージョンを記憶し、複数の変換ルール要素とそのバージョンを記憶し、複数の生成されたソースファイルであるプログラム要素と、前記プログラム要素を生成したときの前記モデル要素のバージョンと前記変換ルール要素のバージョンを対応付けて記憶する記憶媒体と、
    前記複数の変換ルール要素のバージョンを取得する変換ルール要素バージョン取得手段と、
    前記複数のモデル要素のバージョンを取得するモデル要素バージョン取得手段と、
    前記モデル要素バージョン取得手段により取得された前記モデル要素のバージョンと対応する前記プログラム要素の生成したときのモデル要素のバージョンとを比較するとともに、前記変換ルール要素バージョン取得手段により取得された前記変換ルール要素のバージョンと対応する前記プログラム要素の生成したときの変換ルール要素のバージョンとを比較して結果を出力するバージョン比較手段と、
    前記バージョン比較手段から、前記モデル要素のバージョンと対応する前記プログラム要素の生成したときのモデル要素のバージョンが一致しないか、前記変換ルール要素のバージョンと対応する前記プログラム要素の生成したときの変換ルール要素のバージョンが一致しない前記結果を受けたとき、該モデル要素と該変換ルール要素を用いてプログラム要素を生成し、該モデル要素のバージョンと該変換ルール要素のバージョンを付加して前記記憶媒体に書き込むプログラム生成手段と、
    を有することを特徴とするモデル駆動開発装置。
  3. 前記複数のモデル要素は、エンティティ、コントロール及びバウンダリを含むものであることを特徴とする請求項1又は2に記載のモデル駆動開発装置。
  4. 前記モデルの前記モデル要素を編集し、変更するモデル要素のバージョンを更新するモデル編集手段と、前記変換ルールの前記変換ルール要素を編集し、変更する変換ルール要素のバージョンの更新を行う変換ルール編集手段とを更に有する請求項2に記載のモデル駆動開発装置。
  5. モデル駆動開発手法を用いて開発すべきプログラムのモデルを変換ルールにより前記プログラムのソースファイルを生成するモデル駆動開発装置が、制御手段、変換ルール要素バージョン取得手段、モデル要素バージョン取得手段、バージョン比較手段、プログラム生成手段、及び記憶媒体で構成され、前記記憶媒体が、複数のモデル要素とそのバージョンを記憶し、複数の変換ルール要素とそのバージョンを記憶し、複数の生成されたソースファイルであるプログラム要素と、前記プログラム要素を生成したときの前記モデル要素のバージョンと前記変換ルール要素のバージョンを対応付けて記憶するためのものである、モデル駆動開発方法において、
    前記制御手段が、前記モデルを前記生成の変換の基本となる単位である複数のモデル要素に分割し個々の前記モデル要素にバージョンを付与し、前記変換ルールを構成する複数の変換ルールを前記モデル要素と対応付けられた複数の変換ルール要素として、個々の前記変換ルール要素にバージョンを付与し、前記モデル及び/又は前記変換ルールが変更されるとき、変更する前記モデル要素のみ及び/又は前記変換ルール要素のみ、バージョンを更新し
    前記変換ルール要素バージョン取得手段が、前記複数の変換ルール要素のバージョンを取得し、
    前記モデル要素バージョン取得手段が、前記複数のモデル要素のバージョンを取得し、
    前記バージョン比較手段が、前記モデル要素バージョン取得手段により取得された前記モデル要素のバージョンと対応する前記プログラム要素の生成したときのモデル要素のバージョンとを比較するとともに、前記変換ルール要素バージョン取得手段により取得された前記変換ルール要素のバージョンと対応する前記プログラム要素の生成したときの変換ルール要素のバージョンとを比較し、
    前記プログラム生成手段が、前記モデル要素のバージョンと対応する前記プログラム要素の生成したときのモデル要素のバージョンが一致しないか、前記変換ルール要素のバージョンと対応する前記プログラム要素の生成したときの変換ルール要素のバージョンが一致しないとき、該モデル要素と該変換ルール要素を用いてプログラム要素を生成し、該モデル要素のバージョンと該変換ルール要素のバージョンを付加して前記記憶媒体に記憶することを特徴とするモデル駆動開発方法。
  6. 前記複数のモデル要素は、エンティティ、コントロール及びバウンダリを含むものであることを特徴とする請求項5に記載のモデル駆動開発方法。
  7. モデル駆動開発手法を用いたモデル駆動開発装置に、複数のモデル要素とそのバージョンを記憶し、複数の変換ルール要素とそのバージョンを記憶し、複数の生成されたソースファイルであるプログラム要素と、前記プログラム要素を生成したときの前記モデル要素のバージョンと前記変換ルール要素のバージョンを対応付けて記憶するための記憶媒体が予め備えられ、
    前記モデル駆動開発装置を、
    前記モデルを前記生成の変換の基本となる単位である複数のモデル要素に分割し個々の前記モデル要素にバージョンを付与し、前記変換ルールを構成する複数の変換ルールを前記モデル要素と対応付けられた複数の変換ルール要素として、個々の前記変換ルール要素にバージョンを付与し、前記モデル及び/又は前記変換ルールが変更されるとき、変更する前記モデル要素のみ及び/又は前記変換ルール要素のみ、バージョンを更新する制御手段
    前記複数の変換ルール要素のバージョンを取得する変換ルール要素バージョン取得手段、
    前記複数のモデル要素のバージョンを取得するモデル要素バージョン取得手段、
    前記モデル要素バージョン取得手段により取得された前記モデル要素のバージョンと対応する前記プログラム要素の生成したときのモデル要素のバージョンとを比較するとともに、前記変換ルール要素バージョン取得手段により取得された前記変換ルール要素のバージョンと対応する前記プログラム要素の生成したときの変換ルール要素のバージョンとを比較して結果を出力するバージョン比較手段、
    前記バージョン比較手段から、前記モデル要素のバージョンと対応する前記プログラム要素の生成したときのモデル要素のバージョンが一致しないか、前記変換ルール要素のバージョンと対応する前記プログラム要素の生成したときの変換ルール要素のバージョンが一致しない結果を受けたとき、該モデル要素と該変換ルール要素を用いてプログラム要素を生成し、該モデル要素のバージョンと該変換ルール要素のバージョンを付加して前記記憶媒体に書き込むプログラム生成手段、
    として機能させるためのモデル駆動開発プログラム。
  8. 前記複数のモデル要素は、エンティティ、コントロール及びバウンダリを含むものであることを特徴とする請求項7に記載のモデル駆動開発プログラム。
JP2004327722A 2004-11-11 2004-11-11 モデル駆動開発装置、モデル駆動開発方法及びモデル駆動開発プログラム Expired - Fee Related JP4524750B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004327722A JP4524750B2 (ja) 2004-11-11 2004-11-11 モデル駆動開発装置、モデル駆動開発方法及びモデル駆動開発プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004327722A JP4524750B2 (ja) 2004-11-11 2004-11-11 モデル駆動開発装置、モデル駆動開発方法及びモデル駆動開発プログラム

Publications (2)

Publication Number Publication Date
JP2006139472A JP2006139472A (ja) 2006-06-01
JP4524750B2 true JP4524750B2 (ja) 2010-08-18

Family

ID=36620269

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004327722A Expired - Fee Related JP4524750B2 (ja) 2004-11-11 2004-11-11 モデル駆動開発装置、モデル駆動開発方法及びモデル駆動開発プログラム

Country Status (1)

Country Link
JP (1) JP4524750B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101770292B1 (ko) * 2014-11-27 2017-08-22 주식회사 엘지씨엔에스 컴퓨터 수행 가능한 모델 역공학 방법 및 장치
EP3370147A4 (en) * 2015-10-30 2019-06-26 Kabushiki Kaisha Toshiba SYSTEM DESIGN DEVICE AND METHOD

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003140893A (ja) * 2001-11-02 2003-05-16 Nippon Telegr & Teleph Corp <Ntt> ユーザインタフェースプログラム自動生成装置、自動生成方法およびプログラムと記録媒体
WO2003085557A1 (en) * 2002-04-10 2003-10-16 Koninklijke Philips Electronics N.V. Method and apparatus for modeling extensible markup language (xml) applications using the unified modeling language (uml)

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003140893A (ja) * 2001-11-02 2003-05-16 Nippon Telegr & Teleph Corp <Ntt> ユーザインタフェースプログラム自動生成装置、自動生成方法およびプログラムと記録媒体
WO2003085557A1 (en) * 2002-04-10 2003-10-16 Koninklijke Philips Electronics N.V. Method and apparatus for modeling extensible markup language (xml) applications using the unified modeling language (uml)

Also Published As

Publication number Publication date
JP2006139472A (ja) 2006-06-01

Similar Documents

Publication Publication Date Title
US7505990B2 (en) Method for defining and generating document management applications for model-driven document management
CN101887365B (zh) 用于构造基于组件的应用的可执行代码的方法和编译器
KR101572299B1 (ko) 시스템의 모델을 변환하는 방법, 컴퓨터 프로그램 및 시스템 모델 변환 장치
JP5443615B2 (ja) モデル駆動手法を使用する柔軟性のあるデータ・アーカイブのための方法、並びにそのシステム、及びコンピュータ・プログラム
WO2004086222A2 (en) Development of software systems
US7908598B2 (en) Automated creation of model and view code
JP2007519104A (ja) 抽象テストケース表現からの自動テストスクリプトのルールベース生成のための方法及びシステム
JP3058672B2 (ja) データベース管理システム
US20120124550A1 (en) Facilitating database application code translation from a first application language to a second application language
CN102736915A (zh) 自动程序生成装置、方法以及计算机程序
JP2005529384A5 (ja)
CN116226112A (zh) 数据清洗方法、装置、存储介质及电子设备
JP2009059351A (ja) コンピュータソースコードに対して行われる操作を記録するためのシステム、方法、及びコンピュータプログラム製品
JP4524750B2 (ja) モデル駆動開発装置、モデル駆動開発方法及びモデル駆動開発プログラム
JP6588988B2 (ja) 業務プログラム生成支援システムおよび業務プログラム生成支援方法
Baker Using GNU make to manage the workflow of data analysis projects
US7716653B2 (en) Configurable importers and resource writers for converting data into another format
JP6862042B2 (ja) データ移行プログラム作成システム及びデータ移行プログラム作成用プログラム
JP4167889B2 (ja) データ変換方法、および、そのための計算機システム
JP4405571B1 (ja) プログラム
US8839097B2 (en) System and method for information encapsulation for providing multiple deliverable formats from one information source
JPH06110733A (ja) プログラムのテストケース生成装置
JP2018005822A (ja) 仮想データベースシステム管理装置、管理方法及び管理プログラム
CN117687681B (zh) 一种低代码应用的版本管理方法及系统
JP6331307B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060911

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080514

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090821

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091112

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100412

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: 20100507

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100520

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

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees