Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5111308B2 - モデル指向開発支援装置、モデル指向開発支援方法及びモデル指向開発支援プログラム - Google Patents
[go: Go Back, main page]

JP5111308B2 - モデル指向開発支援装置、モデル指向開発支援方法及びモデル指向開発支援プログラム - Google Patents

モデル指向開発支援装置、モデル指向開発支援方法及びモデル指向開発支援プログラム Download PDF

Info

Publication number
JP5111308B2
JP5111308B2 JP2008228590A JP2008228590A JP5111308B2 JP 5111308 B2 JP5111308 B2 JP 5111308B2 JP 2008228590 A JP2008228590 A JP 2008228590A JP 2008228590 A JP2008228590 A JP 2008228590A JP 5111308 B2 JP5111308 B2 JP 5111308B2
Authority
JP
Japan
Prior art keywords
model
storage unit
stored
model element
unit
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
JP2008228590A
Other languages
English (en)
Other versions
JP2010061543A (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.)
NTT Data Group Corp
Original Assignee
NTT Data 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 NTT Data Corp filed Critical NTT Data Corp
Priority to JP2008228590A priority Critical patent/JP5111308B2/ja
Publication of JP2010061543A publication Critical patent/JP2010061543A/ja
Application granted granted Critical
Publication of JP5111308B2 publication Critical patent/JP5111308B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、モデル指向開発による設計及び開発を支援するモデル指向開発支援装置、モデル指向開発支援方法及びモデル指向開発支援プログラムに関する。
近年、標準化されたモデリング手法(モデル駆動型アーキテクチャ、MDA(Model-Driven Architecture))に基づいてソフトウェアシステムを開発するモデル指向開発が行われている。このようなモデル指向開発では、開発対象のソフトウェアシステムが備えるプログラムの機能をUML(Unified Modeling Language)などに基づいてモデル化して表す。そして、要件に応じて抽象的に記述された上流工程モデルを、予め定められたモデル変換ルールに従って段階的に下流工程モデルに変換し、ソースコードを自動生成する。このようなモデル変換では、いずれかの工程のモデル要素、またはモデル変換ルールなどが変更された場合には、以下の工程の全てのモデル変換を再度行う必要があった。
そこで、特許文献1には、ジェネレータ手段が、モデル要素を所定単位毎に分割してモデル変換時にバージョンを付与しておき、再度のモデル変換の際にはバージョンの異なるモデル要素のみをモデル変換し、更新することで効率よく再モデル変換を行う技術が提案されている。
特開2006−139472号公報
しかしながら、上流工程のモデル要素に基づいてモデル変換され生成された下流工程のモデル要素は、ジェネレータ手段によりモデル変換された後に、ユーザーから入力される操作情報に応じて微調整が行われたり追加情報が付加されたりする場合がある。下流工程のモデル要素にこのような情報更新が行われた場合には、ジェネレータ手段によるバージョンが付与されない。このため、ユーザーから入力される操作情報に基づくモデル要素の変更があった後にジェネレータ手段により再度のモデル変換が行われる場合には、ユーザーから入力された操作情報に基づく変更が上書きされ失われてしまうこととなる。
本発明は、このような状況に鑑みてなされたもので、ユーザーからの操作情報に応じたモデル要素の変更が行われたか否かに基づいたモデル変換を行うことを可能とするモデル指向開発支援装置、モデル指向開発支援方法及びモデル指向開発支援プログラムを提供するものである。
上述した課題を解決するために、本発明は、開発対象であるソフトウェアシステムを構成する各機能をモデル化した各モデル要素を、抽象概念により表す上流工程から、ソースコードにより表す下流工程までの複数工程に階層化して行うソフトウェアシステムの設計および開発を支援するモデル指向開発支援装置であって、複数工程のうち第1の工程に含まれる各モデル要素と、第1の工程に対応する下流工程となる第2の工程に含まれる各モデル要素と、それぞれのモデル要素毎に、モデル要素が記憶された日時を示す更新日時とが予め記憶されているモデル記憶部と、第1の工程に含まれる各モデル要素が複製されたコピーモデルが記憶されるコピーモデル記憶部と、第1の工程の各モデル要素に基づいて、第2の工程の各モデル要素を生成するモデル変換要求の入力を受付ける入力部と、入力部にモデル変換要求が入力されると、第1の工程の各モデル要素を複製してコピーモデル記憶部に記憶させるモデル複製部と、予め定められたモデル変換ルールに基づいて、コピーモデル記憶部に記憶された第1の工程の各モデル要素に応じた第2の工程の各モデル要素を生成してコピーモデル記憶部に記憶させ、かつ、第1の工程の各モデル要素を識別する上流モデル要素識別情報と、第1の工程の各モデル要素に基づいて生成した第2の工程のモデル要素を識別する下流モデル要素識別情報と、第2の工程のモデル要素を生成した日時を示す更新日時とが対応付けられたトレース要素を生成するモデル要素変換部と、モデル要素変換部が生成したトレース要素が記憶されるトレース要素記憶部と、モデル要素変換部に生成され、コピーモデル記憶部に記憶された第2の工程の各モデル要素の内容と、モデル記憶部に記憶された第2の工程の各モデル要素の内容とを比較し、内容が異なるか否かを判定するモデル内容比較部と、モデル内容比較部が、内容が異なると判定した場合、モデル記憶部に記憶された第1の工程の各モデル要素の更新日時と、第2の工程の各モデル要素の更新日時と、モデル要素に対応するトレース要素に含まれる更新日時とを比較し、更新日時が異なるか否かを判定する更新日時比較部と、更新日時比較部が、更新日時が異なると判定した場合、予め定められた手順に基づいて、コピーモデル記憶部に記憶された各モデル要素と、モデル記憶部に記憶されたモデル要素とを統合してモデル記憶部に記憶させるモデル更新部と、を備えることを特徴とする。
また、本発明は、更新日時比較部が、更新日時が異なると判定した場合、モデル要素に記憶されたモデル要素と、コピーモデル記憶部に記憶されたモデル要素のいずれのモデル要素を優先してモデル要素を統合するかを示す統合手順が記憶される統合手順記憶部と、
モデル更新部は、統合手順記憶部に記憶されている統合手順に基づいて、コピーモデル記憶部に記憶された各モデル要素と、モデル記憶部に記憶されたモデル要素とを統合してモデル記憶部に記憶させることを特徴とする。
また、本発明は、入力部は、モデル記憶部に記憶されたモデル要素の内容を変更する変更情報の入力を受付け、入力部に入力される変更情報に応じて、モデル記憶部に記憶されたモデル要素の内容を変更し、モデル要素に対応する更新日時として変更を行った日時を対応付けてモデル記憶部に記憶させるモデル編集部と、を備えることを特徴とする。
また、本発明は、統合手順記憶部には、モデル記憶部に記憶された各モデル要素と、モデル要素に対応するトレース要素の存在の有無又はそれぞれの更新日時の異同に基づいて定められた条件に応じて統合手順が記憶され、モデル更新部は、各モデル要素の全てについて、モデル要素に対応するトレース要素の存在の有無又はそれぞれの更新日時の異同が条件に一致するか否かを判定し、全て一致すれば、予め定められた手順に基づいてコピーモデル記憶部に記憶された各モデル要素と、モデル記憶部に記憶されたモデル要素とを統合し、一致しないモデル要素が存在すれば、入力部に入力されるモデル要素の変更情報に応じて統合を行うことを特徴とする。
また、本発明は、開発対象であるソフトウェアシステムを構成する各機能をモデル化した各モデル要素を、抽象概念により表す上流工程から、ソースコードにより表す下流工程までの複数工程に階層化して行うソフトウェアシステムの設計および開発を支援し、複数工程のうち第1の工程に含まれる各モデル要素と、第1の工程に対応する下流工程となる第2の工程に含まれる各モデル要素と、それぞれのモデル要素毎に、モデル要素が記憶された日時を示す更新日時とが予め記憶されているモデル記憶部と、第1の工程に含まれる各モデル要素が複製されたコピーモデルが記憶されるコピーモデル記憶部と、第1の工程に含まれる各モデル要素に対応する第2の工程に含まれる各モデル要素との関連性を示すトレース要素が記憶されるトレース要素記憶部とを備えるモデル指向開発支援装置を用いたモデル指向開発支援方法であって、入力部が、第1の工程の各モデル要素に基づいて、第2の工程の各モデル要素を生成するモデル変換要求の入力を受付けるステップと、
モデル複製部が、入力部にモデル変換要求が入力されると、第1の工程の各モデル要素を複製してコピーモデル記憶部に記憶させるステップと、モデル要素変換部が、予め定められたモデル変換ルールに基づいて、コピーモデル記憶部に記憶された第1の工程の各モデル要素に応じた第2の工程の各モデル要素を生成してコピーモデル記憶部に記憶させ、かつ、第1の工程の各モデル要素を識別する上流モデル要素識別情報と、第1の工程の各モデル要素に基づいて生成した第2の工程のモデル要素を識別する下流モデル要素識別情報と、第2の工程のモデル要素を生成した日時を示す更新日時とが対応付けられたトレース要素を生成し、トレース要素記憶部に記憶させるステップと、モデル内容比較部が、モデル要素変換部に生成され、コピーモデル記憶部に記憶された第2の工程の各モデル要素の内容と、モデル記憶部に記憶された第2の工程の各モデル要素の内容とを比較し、内容が異なるか否かを判定するステップと、更新日時比較部が、モデル内容比較部により内容が異なると判定された場合、モデル記憶部に記憶された第1の工程の各モデル要素の更新日時と、第2の工程の各モデル要素の更新日時と、モデル要素に対応するトレース要素に含まれる更新日時とを比較し、更新日時が異なるか否かを判定するステップと、モデル更新部が、更新日時比較部により更新日時が異なると判定された場合、予め定められた手順に基づいて、コピーモデル記憶部に記憶された各モデル要素と、モデル記憶部に記憶されたモデル要素とを統合してモデル記憶部に記憶させるステップと、を備えることを特徴とする。
また、本発明は、開発対象であるソフトウェアシステムを構成する各機能をモデル化した各モデル要素を、抽象概念により表す上流工程から、ソースコードにより表す下流工程までの複数工程に階層化して行うソフトウェアシステムの設計および開発を支援し、複数工程のうち第1の工程に含まれる各モデル要素と、第1の工程に対応する下流工程となる第2の工程に含まれる各モデル要素と、それぞれのモデル要素毎に、モデル要素が記憶された日時を示す更新日時とが予め記憶されているモデル記憶部と、第1の工程に含まれる各モデル要素が複製されたコピーモデルが記憶されるコピーモデル記憶部と、第1の工程に含まれる各モデル要素に対応する第2の工程に含まれる各モデル要素との関連性を示すトレース要素が記憶されるトレース要素記憶部とを備えるモデル指向開発支援装置のコンピュータに、第1の工程の各モデル要素に基づいて、第2の工程の各モデル要素を生成するモデル変換要求の入力を受付けるステップと、モデル変換要求が入力されると、第1の工程の各モデル要素を複製してコピーモデル記憶部に記憶させるステップと、予め定められたモデル変換ルールに基づいて、コピーモデル記憶部に記憶された第1の工程の各モデル要素に応じた第2の工程の各モデル要素を生成してコピーモデル記憶部に記憶させ、かつ、第1の工程の各モデル要素を識別する上流モデル要素識別情報と、第1の工程の各モデル要素に基づいて生成した第2の工程のモデル要素を識別する下流モデル要素識別情報と、第2の工程のモデル要素を生成した日時を示す更新日時とが対応付けられたトレース要素を生成し、トレース要素記憶部に記憶させるステップと、コピーモデル記憶部に記憶された第2の工程の各モデル要素の内容と、モデル記憶部に記憶された第2の工程の各モデル要素の内容とを比較し、内容が異なるか否かを判定するステップと、容が異なると判定された場合、モデル記憶部に記憶された第1の工程の各モデル要素の更新日時と、第2の工程の各モデル要素の更新日時と、モデル要素に対応するトレース要素に含まれる更新日時とを比較し、更新日時が異なるか否かを判定するステップと、新日時が異なると判定された場合、予め定められた手順に基づいて、コピーモデル記憶部に記憶された各モデル要素と、モデル記憶部に記憶されたモデル要素とを統合してモデル記憶部に記憶させるステップと、を実行させるモデル指向開発支援プログラムである。
以上説明したように、本発明によれば、モデル指向開発における上流工程である第1の工程の各モデル要素に基づいて下流工程である第2の工程の各モデル要素を生成するモデル指向開発支援装置が、入力されるモデル変換要求に応じて第1の工程の各モデル要素を複製してコピーモデルを記憶し、予め定められたモデル変換ルールに基づいて、コピーモデルの第1の工程の各モデル要素に応じた第2の工程の各モデル要素を生成し、かつ、第1の工程の各モデル要素を識別する上流モデル要素識別情報と、第1の工程の各モデル要素に基づいて生成した第2の工程のモデル要素を識別する下流モデル要素識別情報と、第2の工程のモデル要素を生成した日時を示す更新日時とが対応付けられたトレース要素を生成し、コピーモデルに基づいて生成した第2の工程の各モデル要素の内容と、予め記憶された第2の工程の各モデル要素の内容との内容が異なり、かつ第2の工程のモデル要素の更新日時と、モデル要素に対応する前記トレース要素の更新日時とが異なる場合、予め定められた手順に基づいて、予め記憶された各モデル要素と、コピーモデルに基づいて生成したモデル要素とを統合するようにしたので、モデル要素の更新日時とトレース要素の更新日時とを比較することで、予め記憶されたモデル要素がモデル変換により生成されたものであるか否かを判定することができ、例えばユーザーから入力される操作情報などに応じて更新された変更が行われたか否かに応じてモデル変換を行うことが可能となる。
以下、本発明の一実施形態について、図面を参照して説明する。
<構成>
図1は、本実施形態によるモデル指向開発支援装置100の構成を示すブロック図である。モデル指向開発支援装置100は、標準化されたモデリング手法に基づいたモデル指向開発によるソフトウェアシステムの設計および開発を支援するコンピュータ装置である。モデル指向開発支援装置100は、入力部、出力部、制御部、演算部、記憶部を備えており、いわゆるPC(パーソナルコンピュータ)やサーバ専用ハードウェア機器が適用できる。モデル指向開発支援装置100は、入力部110と、モデル編集部120と、モデル記憶部130と、制御部140と、コピーモデル記憶部150とを備えている。
モデル指向開発は、開発対象であるソフトウェアシステムが備えるプログラムを構成する各モデル要素を、抽象概念により表す上流階層から、ソースコードにより表す下流階層までの複数の階層工程に分割して行うプログラム開発手法である。モデル要素は、開発対象のソフトウェアシステムの機能を示す情報である。開発者は、まず、開発対象となるソフトウェアシステムの機能をシステム要件に基づいてUML(Unified Modeling Language)などによりモデル化する。例えば、モデル指向開発支援装置100は、UMLエディタなどの機能を備えており、開発ユーザーから入力される操作情報に応じてUML情報を生成する。モデル指向開発支援装置100は、システム要件がモデル化された上流工程モデルの各モデル要素を、QVT(Queries/Views/Transformations)などの予め定められたモデル変換ルールに基づいて下流工程モデルのモデル要素に変換する。
ここで、上流工程のモデル要素から下流工程のモデル要素が生成される際には、その上流工程のモデル要素の識別情報と、生成された下流工程のモデル要素の識別情報と、モデル変換が行われた日時とが対応付けられた情報であるトレース要素が生成される。ここで、例えば、上流工程モデルにおけるモデル要素は、システムの動作環境やプログラム言語に依存しないモデル(プラットフォーム独立モデル(PIM(Platform Independent Model)))であり、下流工程に向かうにつれてシステムの動作環境やプログラム言語が具体化された下流工程モデル(プラットフォーム特化モデル(PSM(Platform Specific Model)))のモデル要素にモデル変換ルールに基づいて変換される。
モデル指向開発における各階層工程のモデル要素は、工程毎にモデル指向開発支援装置100に記憶される。上流工程のモデル要素に基づいて下流工程のモデル要素の生成が行われモデル変換が行われた後にも、上流工程のモデル要素はモデル指向開発支援装置100に記憶されているため、モデル変換を行った後に上流工程のモデル要素の編集を行うことも可能である。このように、モデル指向開発では、開発対象のソフトウェアシステムを、例えばビジネスモデリング、要求定義、外部設計、内部設計、プログラム実装、テストなどの上流工程から下流工程までの各工程におけるモデル要素で表し、上流工程のモデル要素を、予め定められたモデル変換ルールに基づいて下流工程モデルのモデル要素に変換していくことでソフトウェアシステムの開発を行う。これによりソフトウェアシステムの開発を自動化し、開発工数を削減するとともにシステム要件と実装の乖離を防ぎ、効率良いソフトウェアシステムの開発を行うことが可能となる。
入力部110は、ユーザーからの情報入力を受付ける入力デバイスであり、例えば、キーボードやマウスなどが適用できる。
モデル編集部120は、ユーザーから入力部110に入力される操作情報に応じて、モデル指向開発における各階層工程のモデル要素を編集し、モデル記憶部130に記憶させる。モデル編集部120は、モデル指向開発における工程毎に異なる編集機能を備えるようにして良い。例えば、本実施形態では、要求検討工程、詳細設計(外部設計)工程、プログラム設計(内部設計)工程の三工程に階層化したモデル指向開発を例として説明する。モデル編集部120には、例えば、要求検討工程、詳細設計(外部設計)工程においてはUMLエディタなどのモデル作成ツールが適用できる。また、プログラム設計工程、実装工程においてはプログラムエディタ、テキストエディタなどが適用できる。
図2および図3は、本実施形態におけるモデル要素の設計の例を示す図である。例えば、詳細設計工程(a)のモデル要素として、「エンティティ」(a−1)、「画面構造」(a−2)、「画面遷移」(a−3)の3つのモデル要素が示される。エンティティ(a−1)は、開発対象のソフトウェアシステムで用いられるデータを示すモデル要素である。詳細設計工程のモデル要素であるエンティティ(a−1)に基づいて、予め定められたモデル変換ルール1により、下流工程であるプログラム設計工程(b)のモデル要素であるDBアクセスクラス(b−1)が生成される。ここでは、エンティティ要素1つにつきDBアクセスクラス要素が1つ生成される。エンティティの属性は、DBアクセスクラスのパラメタに変換される。
同様に、開発対象のソフトウェアシステムの画面構造(a−2)を示す詳細設計工程のモデル要素に基づいて、予め定められたモデル変換ルール2により、下流工程であるプログラム設計工程のモデル要素であるビーンクラス(b−3)およびJSP(Java(登録商標) Server Pages)要素(b−4)が生成される。ここでは、詳細設計工程の画面構造要素1つにつき1つのJSP要素が生成される。JSPは、JAVA(登録商標)を用いたウェブサービス技術であり、JSP要素はJSPに基づくウェブサービスの機能に対応するモデル要素である。詳細設計工程の画面構造要素の属性は、JSP要素の入出力タグとして設定される。また、詳細設計工程の画面構造要素1つにつき1つのビーンクラス要素が生成される。ここで、詳細設計工程の画面構造要素の属性は、ビーンクラス要素の属性として設定される。
同様に、開発対象のソフトウェアシステムの画面遷移(a−3)を示す詳細設計工程のモデル要素に基づいて、予め定められたモデル変換ルール3により、下流工程であるプログラム設計工程のモデル要素であるコマンドクラス(b−2)が生成される。ここでは、詳細設計工程モデルに含まれる画面遷移要素1つにつきコマンドクラス要素が1つ生成される。ここで、エンティティ要素から変換された参照はコマンドクラスの属性として設定される。画面遷移要素を参照しているバウンダリ要素から生成されたビーンクラス要素は、コマンドクラス要素の入出力パラメタ属性として設定される。
図1に戻り、モデル記憶部130には、モデル指向開発におけるモデルを示す情報が記憶され、モデル指向開発における各階層工程のモデル要素を示す情報が記憶されるモデル要素記憶部131と、モデル要素記憶部131に記憶される階層工程毎のモデル要素の関連性を示すトレース要素が記憶されるトレース要素記憶部132とを備えている。
図4は、モデル要素記憶部131に記憶されるモデル要素のデータ例を示す図である。モデル要素は、「工程」と、「モデル要素名」と、「モデル要素ID」と、「親要素ID」と、「上流トレース」と、「下流トレース」と、「モデル要素種別」と、「モデル最終更新時間」とが対応付けられた情報を含んでいる。
「工程」は、モデル要素の階層工程を示す情報であり、例えば、「基本設計」、「詳細設計」、「プログラム設計」などが適用される。ここでは、工程を「全体」としたモデル要素を定義し、各階層工程のモデル要素は「全体」のモデル要素をルートとした木構造を構成する。ここで、木構造全体をプロジェクトといい、プロジェクトのルートとなるモデル要素の下位に各階層工程のルートとなるモデル要素が帰属する。それぞれの工程ルートとなる各モデル要素の下位には、その階層工程に含まれるモデル要素が帰属する。
「モデル要素名」は、モデル要素の内容を示す名称である。例えば、木構造のルートとなるモデル要素には「開発プロジェクト」、基本設計工程のルートとなるモデル要素には「基本設計工程」、基本設計工程における画面の見本を示すモデル要素には「画面モックアップ_A」などの名称が適用される。
「モデル要素ID」は、モデル要素の識別情報である。例えば、プロジェクトの頂点となるモデル要素には「P_PRJ_0001」、基本設計工程の頂点となるモデル要素には「A_DP_0001」、画面モックアップには「A_CSD_MDES_0001」などの識別情報が対応付けられる。
「親要素ID」は各階層工程内でのモデル要素間の帰属関係を示し、モデル要素を木構造に構成する情報である。例えば、基本設計工程のモデル要素「A_CSD_MDES_0001」の「親要素ID」には基本設計工程のルートのモデル要素「A_DP_0001」が対応付けられており、画面モックアップ「A_CSD_MDES_0001」は基本設計工程に帰属するモデル要素であることが示される。
「上流トレース」は、そのモデル要素が上流工程のモデル要素に基づいて生成されたモデル要素である場合に、そのモデル要素の生成時に生成されたトレース要素の識別情報である。このトレース要素の識別情報は、後述するトレース要素記憶部132に記憶されたトレースIDに対応する。このように、上流工程のモデル要素に基づいて下流工程のモデル要素が生成される際には、上流工程のモデル要素と下流工程のモデル要素との関連性を示すトレース要素が生成され、トレース要素記憶部132に記憶される。例えば、詳細設計工程のモデル要素「B_SSD_SDES_0001」は、上流トレースのトレースIDとして「TR_0000」が対応付けられる。
「下流トレース」は、そのモデル要素に基づいて下流工程のモデル要素が生成された場合に、生成された下流工程のモデル要素との関連性を示すトレース要素の識別情報である。このトレース要素の識別情報は、トレース要素記憶部132に記憶されたトレースIDに対応する。例えば、基本設計工程のモデル要素「A_CSD_MDES_0001」には、下流トレースのトレースIDとして「TR_0000」が対応付けられる。
「モデル要素種別」は、対応するモデル要素の種別を示す情報である。例えば、プロジェクトにおけるモデル要素の木構造のルートとなるモデル要素には「プロジェクト」、画面モックアップには「モックアップ」などの情報が対応付けられる。
「モデル最終更新時間」は、対応するモデル要素が生成され、または生成された後に内容が変更されモデル要素記憶部131に記憶された更新日時を示す情報である。例えば、モデル最終更新時間は、「yyyy:mm:dd:hh:mn:ss」のフォーマットで表され、「(西暦4桁):(月2桁):(日2桁):(時2桁):(分2桁):(秒2桁)」の計14桁の数字で表される。
図5は、トレース要素記憶部132に記憶されるトレース要素のデータ例を示す図である。トレース要素は、「トレースID」と、「上流要素」と、「下流要素」と、「トレース最終更新時間」とが対応付けられた情報を含んでいる。
「トレースID」は、トレース要素の識別情報である。「上流要素」は、トレース情報が関連付ける上流工程のモデル要素の識別情報であり、モデル要素記憶部131に記憶されるモデル要素IDに対応する。「下流要素」は、トレース情報が対応付ける下流工程のモデル要素の識別情報であり、モデル要素記憶部131に記憶されるモデル要素IDに対応する。「トレース最終更新時間」は、上流工程のモデル要素に基づいて下流工程のモデル要素が生成され、モデル変換が行われた際にトレース情報が生成された時間を示す情報である。同一の上流工程のモデル要素から同一の下流工程のモデル要素への再度のモデル変換が行われ、下流工程のモデル要素の内容が変更されてモデル要素記憶部131に記憶された場合には、トレース最終更新時間には下流工程のモデル要素の内容が更新されモデル要素記憶部131に記憶された時間を示す情報に更新され記憶される。
図6は、図4および図5に示される各モデル要素、各トレース要素の関連性を概念的に示した図である。図6に示されるように、モデル化されたソフトウェアシステムのモデル要素は、プロジェクトを示すモデル要素「P_PRJ_0001」をルートとして、基本設計工程のルートとなるモデル要素「A_DP_001」、詳細設計工程のルートとなるモデル要素「B_DP_001」、プログラム設計工程のルートとなるモデル要素「C_DP_001」が下位に帰属する。また、それぞれの階層工程のルートの下位にそれぞれのモデル要素が帰属する。ここで、本実施形態において、基本設計工程、詳細設計工程、プログラム設計工程の間の関連性を階層といい、上流、下流として表す。例えば、基本設計工程は詳細設計工程に対して上流工程の階層であり、詳細設計工程は基本設計工程に対して下流工程の階層であるという。また、本実施形態において、各階層工程のルートの下位に帰属するモデル要素間の関係を帰属といい、上位、下位として表す。例えば、基本設計工程のルートであるモデル要素「A_DP_0001」は、同じく基本設計工程のモデル要素「A_CSD_MDES_0001」に対して上位のモデル要素であり、基本設計工程のモデル要素「A_CSD_MDES_0001」は、同じく基本設計工程のルートであるモデル要素「A_DP_0001」に対して下位のモデル要素であるという。
例えば、図6の例では、基本設計工程のモデル要素「A_CSD_MDES_0001」に基づいて下流工程となる詳細設計工程のモデル要素「B_SSD_SDES_0001」が生成されており、その関連性がトレース要素「TR_0000」によって示されている。また、例えば、この詳細設計工程のモデル要素「B_SSD_SDES_0001」に基づいてプログラム設計工程のモデル要素「C_DCD_JSP_0001」とモデル要素「C_DEC_BEAN_0001」との2つのモデル要素が生成されており、その関連性がトレース要素「TR_0001」またはトレース要素「TR_0004」によって示されている。また、例えば、基本設計工程のルートであるモデル要素「A_DP_0001」には、モデル要素「A_CSD_MDES_0001」が下位に帰属している。また、プログラム設計工程のモデル要素「C_DCD_BPRO_0003」は、対応するトレース要素が存在しないため、モデル要素変換部143によるモデル変換によらず、例えばモデル編集部120などによって生成されたモデル要素である。
図7は、モデル記憶部130に記憶される詳細設計工程のモデル要素およびトレース要素の詳細なデータ例を示す図である。このように、モデル要素記憶部131に記憶されたモデル要素は、図4のデータ例に示した情報の他に、開発対象のソフトウェアシステムの機能に対応する階層工程毎に、モデル要素種別に応じた各種設計情報等が含まれる。図7では、モデル要素種別に応じた設計情報に下線を付している。例えば、(a)は、詳細設計工程の画面構造「B_SSD_SDES_0001」のモデル要素のデータ例を示している。モデル要素「B_SSD_SDES_0001」は、ソフトウェアシステムにおいてディスプレイに表示させる一画面に対応するモデル要素であり、図4で示した共通情報の他に、本画面に含まれる1または複数の画面項目を示す「画面項目リスト」、本画面に遷移してくる遷移元の画面を示す「画面遷移リスト(イン)」、本画面から遷移する遷移先の画面を示す「画面遷移リスト(アウト)」との情報が含まれる。
図7の(b)は、詳細設計工程の画面項目「B_SSD_SPRO_0001」のモデル要素のデータ例を示している。モデル要素「B_SSD_SPRO_0001」は、画面構造「B_SSD_SDES_0001」が示す画面に含まれる画面項目の内容を示しており、図4で示した共通情報の他に、画面項目の物理データ型と表示データ型がともに文字列であり、文字列のデータ長が16(文字)であり、表示ラベルとして文字列「ユーザー名」を表示させることが示されている。
図8は、モデル記憶部130に記憶されるプログラム設計工程のモデル要素の情報の詳細なデータ例を示す図である。例えば、(a)は、詳細設計工程のプログラムであるJSP要素「C_DCD_JSP_0001」のモデル要素のデータ例を示している。モデル要素「C_DCD_JSP_0001」は、詳細設計工程の画面構造「B_SSD_SDES_0001」に基づいて生成されたモデル要素であり、JSPに基づいた画面構造を表す情報である。モデル要素「C_DCD_JSP_0001」は、図4で示した共通情報の他に、モデル要素の「物理名」、JSPに含まれる属性としてのモデル要素を示す「属性リスト」、本画面に遷移してくる遷移元のソフトウェアコンポーネントを示す「ビーンクラス(イン)」、本画面から遷移する遷移先のソフトウェアコンポーネントを示す「ビーンクラス(アウト)」との情報が含まれる。
図8の(b)は、プログラム設計工程の入力属性項目「C_DCD_JSPAT_0001」のモデル要素のデータ例を示している。モデル要素「C_DCD_JSP_0001」は、詳細設計工程の画面構造「B_SSD_SPRO_0001」に基づいて生成されたモデル要素であり、画面における入力項目を表す情報である。モデル要素「C_DCD_JSPAT_0001」は、図4で示した共通情報の他に、プログラムにおける物理名が「ATTRIBUTE_1」であり、物理データ型が「String」(文字列)であり、表示データ型が文字列であり、表示ラベルが「ユーザー名」であることなどが示されている。
図1に戻り、制御部140は、モデル記憶部130に記憶された上流工程のモデル要素に基づいて下流工程のモデル要素を生成し、モデル変換を行う。制御部140は、モデル取得部141と、モデル複製部142と、モデル要素変換部143と、モデル内容比較部144と、更新日時比較部146と、モデル更新部146と、マージ方法判定部147とを備えている。
モデル取得部141は、入力部110にモデル変換の実行命令が入力されると、モデル記憶部130に記憶されたモデル要素を読み出す。
モデル複製部142は、モデル取得部141がモデル記憶部130から読み出したモデル要素を複製し、コピーモデルとしてコピーモデル記憶部150に記憶させる。図9は、制御部140によるモデル変換処理の概念を示す図である。ここで、図9の(a)の列に示すように、モデル複製部142は、モデル記憶部130に記憶された各モデル要素(以下、実モデルという)から、プロジェクトルート(「P_PRJ_0001」)と、最上流工程のモデル要素(「A_DP_0001」および「A_CSD_MDES_0001」)と、各階層工程のルートのモデル要素(「B_DP_0001」)のみを、コピーモデルとしてコピーモデル記憶部150に記憶させる。
図1に戻り、モデル要素変換部143は、モデル複製部142により複製されてコピーモデル記憶部150に記憶されたコピーモデルの各モデル要素の変換処理を行う。モデル要素変換部143は、モデル複製部142によってコピーモデル記憶部150に記憶されたコピーモデルの上流工程の各モデル要素から、自身の記憶領域に予め記憶されたモデル変換ルールに基づいて下流工程のモデル要素を生成し、コピーモデル記憶部150に記憶させ、モデル変換を行う。モデル変換ルールは、例えばOMG(Object Management Group)により定められたモデル変換の標準であるQVT(Queries/Views/Transformations)などが適用できる。例えば、図9の(b)に示すように、モデル要素変換部143は、コピーモデルにおける上流工程のモデル要素「A_CSD_MDES_0001」に基づいて、下流工程のモデル要素「B_SSD_SDES_0001」を生成する。
図1に戻り、モデル内容比較部144は、モデル記憶部130に記憶された下流工程の各モデル要素と、コピーモデル記憶部150に記憶された対応する下流工程のモデル要素との内容を比較し、情報の内容が異なるモデル要素が存在するか否かを判定する。
更新日時比較部146は、モデル内容比較部144により、実モデルとコピーモデルとのモデル要素に情報の内容が異なるモデル要素が存在すると判定され、差分がある場合には、差分があった実モデルのモデル要素の最終更新日時と、そのモデル要素を下流トレースとするトレース要素の最終更新日時またはそのモデル要素に対応する上流工程のモデル要素の最終更新日時とを読み出し、更新日時が異なるか否かを判定する。図9の(c)に示すように、実モデルとコピーモデルとが比較される。
図1に戻り、マージ方法判定部147は、モデル内容比較部144による比較結果と、更新日時比較部146による比較結果と、マージ方法記憶部160に記憶されているモデル要素の統合手順を示すマージ方法とに基づいて、実モデルとコピーモデルとのマージ方法の判定を行う。マージ方法記憶部160には、実モデルとコピーモデルとの差分の条件に応じたマージ方法が予め記憶されている。マージ方法は、上流工程と下流工程のモデル要素が異なる場合に、例えば、「上流の追加を反映」、「上流の変更を反映」、「上流の削除を反映」、「下流の追加を維持」、「下流の変更を維持」、「下流の削除を維持」などにより表される。マージ方法判定部147により判定されるマージ方法のうち、マージ方法記憶部160に記憶されているマージ方法により行うマージを自動マージといい、逆にどのようなマージを行うかをユーザーに提示し、マージ方法を利用者に選択させることにより行うマージを手動マージという。
「上流の追加を反映」は、モデル変換後に上流工程にモデル要素が追加されている場合、追加された上流工程のモデル要素に対応する下流工程のモデル要素を生成し、実モデルに反映させる自動マージを行うことを示す。
「上流の変更を反映」は、モデル変換後に上流工程のモデル要素の内容に変更が加えられている場合、変更された上流工程のモデル要素に基づいて下流工程のモデル要素を生成し、実モデルに反映させる自動マージを行うことを示す。
「上流の削除を反映」は、モデル変換後に上流工程のモデル要素が削除されている場合、削除された上流工程のモデル要素に対応する実モデルの下流工程のモデル要素を削除する自動マージを行うことを示す。
「下流の追加を維持」は、モデル変換後に下流工程にモデル要素が追加されている場合、実モデルにおける下流工程に追加されたモデル要素を削除せず、追加されたモデル要素の記憶を維持する自動マージを行うことを示す。
「下流の変更を維持」は、モデル変換後に下流工程のモデル要素が変更されている場合、対応する上流工程のモデル要素に基づいて生成されたモデル要素に関わらず、実モデルにおける下流工程のモデル要素の変更を維持する自動マージを行うことを示す。
「下流の削除を維持」は、モデル変換後に下流工程のモデル要素が削除されている場合、対応する上流工程のモデル要素に基づいて生成されたモデル要素に関わらず、実モデルにおける下流工程のモデル要素の削除を維持する自動マージを行うことを示す。
マージ方法記憶部160には、このようなマージ方法のそれぞれを有効(ON)とするか無効(OFF)とするかを示す情報が対応付けられて記憶されている。マージ方法判定部147は、マージ方法記憶部160に記憶されたこのようなマージ方法に基づいて、実モデルとコピーモデルとのマージ処理を行う。また、マージ方法判定部147は、実モデルとコピーモデルとのモデル要素の内容に差分がある場合で、マージ方法記憶部160に記憶されたマージ方法の条件に該当しないモデル要素が存在する場合には、入力部110から入力される操作情報に基づいて、実モデルとコピーモデルとのマージを行う。
モデル更新部145は、マージ方法判定部147によるマージ方法の判定結果に基づいて、モデル記憶部130に記憶された実モデルと、コピーモデル記憶部150に記憶されたコピーモデルとのマージ処理を行う。また、図9に示すように、モデル更新部145は、マージ処理が完了すると、コピーモデル記憶部150に記憶されたコピーモデルを削除する。
<動作例>
次に、図10を参照して、まず、本発明によるモデル指向開発支援装置100が行うモデル変換処理の動作例の概要を説明する。入力部110にモデル変換処理の実行命令が入力されると、モデル取得部141が、モデル記憶部130に記憶されたモデル要素を読み出す。モデル複製部142は、モデル取得部141が読み出したモデル要素を複製し、コピーモデルとしてコピーモデル記憶部150に記憶させる(ステップS1)。
モデル要素変換部143が、コピーモデル記憶部150に記憶された上流工程のモデル要素に基づいて、下流工程のモデル要素を生成する(ステップS2)。モデル内容比較部144が、コピーモデル記憶部150に記憶されたコピーモデルの下流工程のモデル要素と、モデル要素記憶部131に記憶された実モデルの下流工程のモデル要素とを比較し、差分があるか否かを判定する(ステップS3)。ステップS3で、モデル内容比較部144が、コピーモデル記憶部150に記憶されたコピーモデルの下流工程のモデル要素と、モデル要素記憶部131に記憶された実モデルの下流工程のモデル要素とに差分がないと判定すれば(ステップS3:いいえ)、モデル更新部145は、モデル記憶部130に記憶された実モデルの更新を行わずに処理を終了する(ステップS4)。
一方、ステップS3で、モデル内容比較部144が、コピーモデル記憶部150に記憶されたコピーモデルの下流工程のモデル要素と、モデル要素記憶部131に記憶された実モデルの下流工程のモデル要素とに差分があると判定すれば(ステップS3:はい)、マージ方法判定部147が、各モデル要素の比較結果に基づいて、自動マージを行うか手動マージを行うかのマージ方法の判定処理を行う(ステップS5)。
マージ方法判定部147は、全てのモデル要素の比較結果について、マージ方法記憶部160に記憶されたマージ方法の条件に一致するか否かを判定し、ステップS5で抽出された差分の全てについて自動マージを行うことが可能でないと判定すれば(ステップS6:いいえ)、実行可能な自動マージを実行した後に、モデル更新部145は、モデル編集部120による差分のあるモデル要素の編集を受付け、手動によるモデル要素のマージ処理を行う(ステップS7)。一方、マージ方法判定部147が、ステップS5で抽出された差分の全てについて自動マージを行うことが可能であると判定すれば(ステップS6:はい)、モデル更新部145は、コピーモデル記憶部150に記憶されたマージ方法に基づいてモデル変換により生成されたモデル要素のマージ処理を行う(ステップS8)。
次に、図11、図12、図13を参照して、上述のステップS5でモデル指向開発支援装置100が行うマージ方法の判定処理について詳細に説明する。
モデル内容比較部144が、上述のステップS3でコピーモデル記憶部150に記憶されたコピーモデルの下流工程のモデル要素と、モデル要素記憶部131に記憶された実モデルの下流工程のモデル要素とに差分があると判定した場合、マージ方法判定部147には、その差分の状態を示す情報が入力される(ステップS10)。
マージ方法判定部147が、実モデルとコピーモデルとの差分の状態が、いずれかのモデルにモデル要素が存在しない差異であると判定した場合(ステップS11:はい)、その存在しないモデルが実モデルであるかコピーモデルであるかを判定する(ステップS12)。マージ方法判定部147は、差異のあるモデル要素が、実モデルに存在せずコピーモデルに存在すると判定した場合は(ステップS13:いいえ)、そのモデル要素を下流要素とするトレース要素が、トレース要素記憶部132に記憶されているか否かを判定する(ステップS14)。
マージ方法判定部147が、差異のあるモデル要素を下流要素とするトレース要素がトレース要素記憶部132に記憶されていないと判定した場合(ステップS15:いいえ)、実モデルに存在せずコピーモデルのみに存在するそのモデル要素は、モデル要素変換部143によるモデル変換処理で初めて生成されたモデル要素である(ステップS16)。そこで、マージ方法判定部147は、マージ方法記憶部160に記憶されたマージ方法を読み出し、「上流の追加を反映」がONであれば(ステップS17:はい)、自動マージを行うと判定する。「上流の追加を反映」がOFFであれば(ステップS17:いいえ)、手動マージを行うと判定する。
一方、ステップS15で、マージ方法判定部147が、差異のあるモデル要素を下流要素とするトレース要素がトレース要素記憶部132に記憶されていると判定した場合(ステップS15:はい)、上流工程のモデル要素に基づいて下流工程のモデル要素が生成されたモデル変換の後、下流工程のモデル要素が削除されたものである。そこで、更新日時比較部146が、上流工程のモデル要素の最終更新日時と、対応するトレース要素の最終更新日時とを読み出す。マージ方法判定部147は、上流工程のモデル要素の最終更新日時と、対応するトレース要素の最終更新日時とを比較し、いずれの最終更新日時が新しいかを判定する(ステップS18)。
マージ方法判定部147が、上流工程のモデル要素の最終更新日時は対応するトレース要素の最終更新日時よりも新しいと判定した場合(ステップS19:はい)、モデル変換の後に上流工程のモデル要素が変更されたものである(ステップS20)。マージ方法判定部147は、マージ方法記憶部160に記憶されたマージ方法を読み出し、「下流の削除を維持」がONであれば(ステップS21:はい)、自動マージを行うと判定する。「下流の削除を維持」がOFFであれば(ステップS21:いいえ)、手動マージを行うと判定する。
一方、ステップS19で、マージ方法判定部147が、上流工程のモデル要素の最終更新日時は対応するトレース要素の最終更新日時より新しくないと判定した場合(ステップS19:いいえ)、モデル変換後に上流工程のモデル要素に変更は加えられてない(ステップS22)。マージ方法判定部147は、マージ方法記憶部160に記憶されたマージ方法を読み出し、「下流の削除を維持」がONであれば(ステップS23:はい)、自動マージを行うと判定する。「下流の削除を維持」がOFFであれば(ステップS23:いいえ)、手動マージを行うと判定する。
ステップS11で、マージ方法判定部147が、実モデルとコピーモデルとの差異が、いずれかのモデルにモデル要素が存在しない差異でないと判定した場合(ステップS11:いいえ)、図11のステップS30に進む。この場合、実モデルとコピーモデルとのいずれにも対応する下流工程のモデル要素が存在する。更新日時比較部146が、下流工程のモデル要素の最終更新日時と、対応するトレース要素の最終更新日時とをモデル記憶部130から読み出すと、マージ方法判定部147は、いずれの最終更新日時が新しいかを判定する(ステップS30)。
マージ方法判定部147が、下流工程のモデル要素の最終更新日時は対応するトレース要素の最終更新日時より新しくないと判定した場合(ステップS31:いいえ)、モデル変換の後、上流工程のモデル要素のみが変更されている。そこで、マージ方法判定部147は、マージ方法記憶部160に記憶されたマージ方法を読み出し、「上流の変更を反映」がONであれば(ステップS32:はい)、自動マージを行うと判定する。一方、「上流の変更を反映」がOFFであれば(ステップS33:いいえ)、手動マージを行うと判定する。
一方、ステップS31で、マージ方法判定部147が、下流工程のモデル要素の最終更新日時の方が対応するトレース要素の最終更新日時よりも新しいと判定した場合(ステップS31:はい)、モデル変換後に下流工程のモデル要素が変更されている。マージ方法判定部147は、上流工程のモデル要素の最終更新日時と、トレース要素の最終更新日時とのいずれが新しいかを判定する(ステップS34)。
マージ方法判定部147が、上流工程のモデル要素の最終更新日時はトレース要素の最終更新日時よりも新しいと判定した場合(ステップS35:はい)、モデル変換の後に、上流工程のモデル要素と下流工程のモデル要素との双方が変更されている。この場合、マージ方法の設定に基づいた自動マージを行うことはできないため、マージ方法判定部147は、手動マージを行うと判定する(ステップS36)。
一方、ステップS35で、マージ方法判定部147が、上流工程のモデル要素の最終更新日時は対応するトレース要素の最終更新日時よりも新しくないと判定した場合(ステップS35:いいえ)、モデル変化の後に下流工程のモデル要素のみが変更されている。この場合、マージ方法判定部147は、マージ方法記憶部160に記憶されたマージ方法を読み出し、「下流の変更を維持」がONであれば(ステップS38:はい)、自動マージを行うと判定する。一方、「下流の変更を維持」がOFFであれば(ステップS38:いいえ)、手動マージを行うと判定する。
ステップS13で、マージ方法判定部147が、差異のあるモデル要素は実モデルに存在し、コピーモデルに存在しないと判定した場合は(ステップS13:はい)、図13のステップS40に進む。マージ方法判定部147は、下流工程のモデル要素に対応するトレース要素がトレース要素記憶部132に記憶されているか否かを判定する(ステップS40)。マージ方法判定部147が、下流工程のモデル要素に対応するトレース要素がトレース要素記憶部132に記憶されていないと判定した場合(ステップS41:いいえ)、そのモデル要素はモデル要素変換部143によるモデル変換でなく、例えばモデル編集部120に入力される操作情報に応じて生成されたモデル要素である。マージ方法判定部147は、マージ方法記憶部160に記憶されたマージ方法を読み出し(ステップS42)、「下流の追加を維持」がONであれば(ステップS43:はい)、自動マージを行うと判定する。一方、「下流の追加を維持」がOFFであれば(ステップS43:いいえ)、手動マージを行うと判定する。
一方、マージ方法判定部147が、下流工程のモデル要素に対応するトレース要素がトレース要素記憶部132に記憶されていると判定した場合(ステップS41:はい)、モデル変換の後に上流工程のモデル要素が削除されている。この場合、下流工程のモデル要素の最終更新日時と、対応するトレース要素の最終更新日時とのいずれの最終更新日時が新しいかを判定する(ステップS44)。マージ方法判定部147が、下流工程のモデル要素の最終更新日時は対応するトレース要素の最終更新日時よりも新しくないと判定した場合(ステップS45:いいえ)、モデル変換の後に下流工程のモデル要素は変更されていない。マージ方法判定部147は、マージ方法記憶部160に記憶されたマージ方法を読み出し(ステップS48)、「上流の削除を反映」がONであれば(ステップS49:はい)、自動マージを行うと判定する。一方、「上流の削除を反映」がOFFであれば(ステップS49:いいえ)、手動マージを行うと判定する。
一方、ステップS45で、マージ方法判定部147が、下流工程のモデル要素の最終更新日時は対応するトレース要素の最終更新日時よりも新しいと判定した場合(ステップS45:はい)、下流工程のモデル要素は、モデル変換の後に変更されている。マージ方法判定部147は、マージ方法記憶部160に記憶されたマージ方法を読み出し(ステップS46)、「下流の変更を維持」がONであれば(ステップS47:はい)、自動マージを行うと判定する。一方、「下流の変更を維持」がOFFであれば(ステップS47:いいえ)、手動マージを行うと判定する。
次に、図14から図18を参照して、モデル変換のマージ処理の類型を例示して説明する。図14は、(a)と(b)と(c)との順に動作過程が遷移していることを示す。(a)の列に示すように、初期状態ではモデル要素「A」(0)が存在する実モデルが示される。ここで、「A」はモデル要素IDであり、(0)は最終更新日時を示す。ここでは、最終更新日時は、便宜的に、日時の前後に応じて1ずつ増加する整数によって示す。例えば、(0)は(1)よりも最終更新日時が古いことを表し、(1)は(2)よりも最終更新日時が古いことを表し、(1)と(1)は最終更新日時が同時であることを示す。(b)の列には、実モデルからコピーモデルが生成され、コピーモデルの上流工程のモデル要素「A」から下流工程のモデル要素「A´」が生成されており、トレース要素が生成されている。また、実モデルとコピーモデルとが比較される。(c)の列には、自動マージが行われた後の実モデルの状態が示される。このように、四角形で表される(ア)のモデル要素を上流工程のモデル要素とし、円計で表される(イ)をトレース要素とし、八角形で表される(ウ)のモデル要素を下流工程のモデル要素とする。
図14では、(a)の状態で入力部110にモデル変換の実行命令が入力されると、(b)に示すようにモデル取得部141によってモデル記憶部130に記憶されたモデル要素が読み出されてコピーモデル記憶部150にコピーされ、コピーモデルのモデル要素「A」(0)に基づいて下流工程のモデル要素「A´」(1)とトレース要素(0)が自動生成される。そして、モデル更新部136によって実モデルとコピーモデルとが比較されて、マージが行われて(c)に示すように上流工程のモデル要素「A」(0)と下流工程のモデル要素「A´」(1)とが、実モデルとしてモデル記憶部130に記憶される。このケースは、上述の処理例ではステップS16を経由するケースであり、下流工程のモデル要素が初めて生成された場合である。この後に、上流工程のモデル要素「A」(0)または下流工程のモデル要素「A´」(1)のいずれかが削除されるような編集が行われる場合がある。
図15では、(a)に示すように上流工程のモデル要素「A」(0)と、上流工程のモデル要素「A」(0)に基づいて生成された下流工程のモデル要素「A´」(1)と、下流工程のモデル要素「A´」が生成された際に同時に生成されたトレース要素(1)とが存在する。入力部110にモデル変換の実行命令が入力されると、(b)に示すようにモデル取得部141によってモデル記憶部130に記憶されたモデル要素が読み出されてコピーモデル記憶部150にコピーされ、コピーモデルのモデル要素「A」(0)に基づいて下流工程のモデル要素「A´」(2)が再度自動生成される。そして、モデル更新部136によって実モデルとコピーモデルとが比較される。ここでは、(c)に示されるように、比較の結果、モデル要素の内容に差分が無く、モデル記憶部130に記憶される実モデルには更新を行わずにモデル変換処理が終了した例が示される。
図16では、(a)に示すように上流工程のモデル要素「A」(0)と、上流工程のモデル要素「A」(0)に基づいて生成された下流工程のモデル要素「A´」(1)と、下流工程のモデル要素「A´」が生成された際に同時に生成されたトレース要素(1)とが存在する。そして、(b)に示されるように、モデル編集部120に入力される操作情報に応じて、下流工程のモデル要素「A´」(1)が変更されてモデル要素「A´」(2)としてモデル記憶部130に記憶されている。ここでは、(c)に示されるように、自動マージによるマージ方法に条件が一致せず、(d)に示されるように手動によりマージが行われ、下流工程のモデル要素が更新されている。なお、ここでは、自動マージによるマージ方法に条件が一致すれば、自動によりマージが行われ、下流工程のモデル要素が更新されない。
図17では、(a)に示すように上流工程のモデル要素「A」(0)と、上流工程のモデル要素「A」(0)に基づいて生成された下流工程のモデル要素「A´」(1)と、下流工程のモデル要素「A´」が生成された際に同時に生成されたトレース要素(1)とが存在する。そして、(b)に示すように下流工程のモデル要素「A´」(1)が削除されている。ここでは、(c)に示すようにモデル要素変換部143により上流工程のモデル要素「A」(0)に基づいてコピーモデルのモデル要素「A´」(2)が生成され、比較の結果、(d)に示されるように、手動により新たに生成された下流工程のモデル要素の追加が反映されている。
図18では、(a)に示すように上流工程のモデル要素「A」(0)と、上流工程のモデル要素「A」(0)に基づいて生成された下流工程のモデル要素「A´」(1)と、下流工程のモデル要素「A´」(1)が生成された際に同時に生成されたトレース要素(1)とが存在する。そして、(b)に示されるように、上流工程のモデル要素「A」が削除されている。ここで、(c)に示すようにモデル変換処理が行われると、実モデルの上流工程のモデル要素は削除されているため、コピーモデルにはモデル要素が生成されない。ここで、マージ方法が「上流の削除を反映」がONであれば、(d)に示すように上流工程のモデル要素と下流工程のモデル要素が、ともに削除された状態でモデル記憶部130に記憶される。また、この場合でも、必要であれば(e)のように手動により下流工程のモデル「A´´」(2)を生成することができる。
以上説明したように、本実施形態によれば、モデル指向開発支援装置100による自動のモデル変換が行われモデル要素が生成された後に、生成されたモデル要素に対してユーザーからの操作情報に応じた手動の変更があった場合にも、その変更に応じてモデル変換を行うことが可能となる。例えば、上流工程のモデル要素に変更を加えた場合、下流工程のモデル要素に変更を加えた場合、上流工程と下流工程のモデル要素に変更を加えた場合などを、モデル要素自体の最終更新日時とトレース要素の最終更新日時とから判定することが可能となる。また、上流工程と下流工程のモデル要素に変更を加えた場合などには、自動ではマージを行えないような何らかの意図がある場合があるので、ユーザーによる手動のマージを行うことが可能となる。
また、本実施形態によれば、(1)ユーザーにより修正されたモデル要素は、モデル変換処理によって上書きされることなく保持される、(2)ユーザーが意図的に削除したモデル要素が、モデル変換処理によって再生成されることがない、(3)ユーザーが意図的に追加したモデルが、モデル変換処理によって削除されることがない、(4)ユーザーが修正していないモデルは要素は、モデル変換処理によって上書きされ上流工程の変更に追従する、(5)上記(1)〜(3)に該当する条件をリストアップし、ユーザーによる編集に委ねて矛盾が発生していないかをユーザーに確認させることができる、(6)上記(1)〜(3)に関わらず、強制的にモデル変換処理を行ってモデル要素を上書きする、などのモデル変換処理が可能となる。
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりモデル変換処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
本発明の一実施形態によるモデル指向開発支援装置の構成を示す図である。 本発明の一実施形態によるモデル指向開発の概念データ例を示す図である。 本発明の一実施形態によるモデル指向開発の変換ルール例を示す図である。 本発明の一実施形態によるモデル要素記憶部に記憶されるデータ例を示す図である。 本発明の一実施形態によるトレース要素記憶部に記憶されるデータ例を示す図である。 本発明の一実施形態によるモデル要素の木構造の概念を示す図である。 本発明の一実施形態による詳細設計工程のモデル要素のデータ例を示す図である。 本発明の一実施形態によるプログラム設計工程のモデル要素のデータ例を示す図である。 本発明の一実施形態によるモデル変換処理の概念を示す図である。 本発明の一実施形態によるモデル指向開発支援装置の動作例概要を示すフローチャートである。 本発明の一実施形態によるモデル指向開発支援装置の動作例を示すフローチャートである。 本発明の一実施形態によるモデル指向開発支援装置の動作例を示すフローチャートである。 本発明の一実施形態によるモデル指向開発支援装置の動作例を示すフローチャートである。 本発明の一実施形態によるマージ処理の一類型を示す図である。 本発明の一実施形態によるマージ処理の一類型を示す図である。 本発明の一実施形態によるマージ処理の一類型を示す図である。 本発明の一実施形態によるマージ処理の一類型を示す図である。 本発明の一実施形態によるマージ処理の一類型を示す図である。
符号の説明
100 モデル指向開発支援装置
110 入力部
120 モデル編集部
130 モデル記憶部
131 モデル要素記憶部
132 トレース要素記憶部
140 制御部
141 モデル取得部
142 モデル複製部
143 モデル要素変換部
144 モデル内容比較部
146 更新日時比較部
145 モデル更新部
147 マージ方法判定部
150 コピーモデル記憶部
160 マージ方法記憶部

Claims (6)

  1. 開発対象であるソフトウェアシステムを構成する各機能をモデル化した各モデル要素を、抽象概念により表す上流工程から、ソースコードにより表す下流工程までの複数工程に階層化して行う前記ソフトウェアシステムの設計および開発を支援するモデル指向開発支援装置であって、
    前記複数工程のうち第1の工程に含まれる前記各モデル要素と、前記第1の工程に対応する下流工程となる第2の工程に含まれる前記各モデル要素と、前記それぞれのモデル要素毎に、当該モデル要素が記憶された日時を示す更新日時とが予め記憶されているモデル記憶部と、
    前記第1の工程に含まれる前記各モデル要素が複製されたコピーモデルが記憶されるコピーモデル記憶部と、
    前記第1の工程の各モデル要素に基づいて、前記第2の工程の各モデル要素を生成するモデル変換要求の入力を受付ける入力部と、
    前記入力部に前記モデル変換要求が入力されると、前記第1の工程の各モデル要素を複製して前記コピーモデル記憶部に記憶させるモデル複製部と、
    予め定められたモデル変換ルールに基づいて、前記コピーモデル記憶部に記憶された前記第1の工程の各モデル要素に応じた前記第2の工程の各モデル要素を生成して前記コピーモデル記憶部に記憶させ、かつ、前記第1の工程の各モデル要素を識別する上流モデル要素識別情報と、当該第1の工程の各モデル要素に基づいて生成した前記第2の工程のモデル要素を識別する下流モデル要素識別情報と、前記第2の工程のモデル要素を生成した日時を示す更新日時とが対応付けられたトレース要素を生成するモデル要素変換部と、
    前記モデル要素変換部が生成した前記トレース要素が記憶されるトレース要素記憶部と、
    前記モデル要素変換部に生成され、前記コピーモデル記憶部に記憶された前記第2の工程の各モデル要素の内容と、前記モデル記憶部に記憶された前記第2の工程の各モデル要素の内容とを比較し、前記内容が異なるか否かを判定するモデル内容比較部と、
    前記モデル内容比較部が、前記内容が異なると判定した場合、前記モデル記憶部に記憶された前記第1の工程の各モデル要素の前記更新日時と、前記第2の工程の各モデル要素の前記更新日時と、当該モデル要素に対応する前記トレース要素に含まれる前記更新日時とを比較し、更新日時が異なるか否かを判定する更新日時比較部と、
    前記更新日時比較部が、前記更新日時が異なると判定した場合、予め定められた手順に基づいて、前記コピーモデル記憶部に記憶された前記各モデル要素と、前記モデル記憶部に記憶された前記モデル要素とを統合して前記モデル記憶部に記憶させるモデル更新部と、
    を備えることを特徴とするモデル指向開発支援装置。
  2. 前記更新日時比較部が、前記更新日時が異なると判定した場合、前記モデル要素に記憶された前記モデル要素と、前記コピーモデル記憶部に記憶された前記モデル要素のいずれの前記モデル要素を優先して前記モデル要素を統合するかを示す統合手順が記憶される統合手順記憶部と、
    前記モデル更新部は、前記統合手順記憶部に記憶されている前記統合手順に基づいて、前記コピーモデル記憶部に記憶された前記各モデル要素と、前記モデル記憶部に記憶された前記モデル要素とを統合して前記モデル記憶部に記憶させる
    ことを特徴とする請求項1に記載のモデル指向開発支援装置。
  3. 前記入力部は、前記モデル記憶部に記憶された前記モデル要素の内容を変更する変更情報の入力を受付け、
    前記入力部に入力される前記変更情報に応じて、前記モデル記憶部に記憶された前記モデル要素の内容を変更し、当該モデル要素に対応する前記更新日時として当該変更を行った日時を対応付けて前記モデル記憶部に記憶させるモデル編集部と、
    を備えることを特徴とする請求項1または請求項2に記載のモデル指向開発支援装置。
  4. 前記統合手順記憶部には、前記モデル記憶部に記憶された前記各モデル要素と、当該モデル要素に対応する前記トレース要素の存在の有無又はそれぞれの前記更新日時の異同に基づいて定められた条件に応じて前記統合手順が記憶され、
    前記モデル更新部は、前記各モデル要素の全てについて、当該モデル要素に対応する前記トレース要素の存在の有無又はそれぞれの前記更新日時の異同が前記条件に一致するか否かを判定し、全て一致すれば、前記予め定められた手順に基づいて前記コピーモデル記憶部に記憶された前記各モデル要素と、前記モデル記憶部に記憶された前記モデル要素とを統合し、一致しないモデル要素が存在すれば、前記入力部に入力される前記モデル要素の前記変更情報に応じて前記統合を行う
    ことを特徴とする請求項3に記載されたモデル指向開発支援装置。
  5. 開発対象であるソフトウェアシステムを構成する各機能をモデル化した各モデル要素を、抽象概念により表す上流工程から、ソースコードにより表す下流工程までの複数工程に階層化して行う前記ソフトウェアシステムの設計および開発を支援し、前記複数工程のうち第1の工程に含まれる前記各モデル要素と、前記第1の工程に対応する下流工程となる第2の工程に含まれる前記各モデル要素と、前記それぞれのモデル要素毎に、当該モデル要素が記憶された日時を示す更新日時とが予め記憶されているモデル記憶部と、前記第1の工程に含まれる前記各モデル要素が複製されたコピーモデルが記憶されるコピーモデル記憶部と、前記第1の工程に含まれる前記各モデル要素に対応する前記第2の工程に含まれる前記各モデル要素との関連性を示すトレース要素が記憶されるトレース要素記憶部とを備えるモデル指向開発支援装置を用いたモデル指向開発支援方法であって、
    入力部が、前記第1の工程の各モデル要素に基づいて、前記第2の工程の各モデル要素を生成するモデル変換要求の入力を受付けるステップと、
    モデル複製部が、前記入力部に前記モデル変換要求が入力されると、前記第1の工程の各モデル要素を複製して前記コピーモデル記憶部に記憶させるステップと、
    モデル要素変換部が、予め定められたモデル変換ルールに基づいて、前記コピーモデル記憶部に記憶された前記第1の工程の各モデル要素に応じた前記第2の工程の各モデル要素を生成して前記コピーモデル記憶部に記憶させ、かつ、前記第1の工程の各モデル要素を識別する上流モデル要素識別情報と、当該第1の工程の各モデル要素に基づいて生成した前記第2の工程のモデル要素を識別する下流モデル要素識別情報と、前記第2の工程のモデル要素を生成した日時を示す更新日時とが対応付けられたトレース要素を生成し、前記トレース要素記憶部に記憶させるステップと、
    モデル内容比較部が、前記モデル要素変換部に生成され、前記コピーモデル記憶部に記憶された前記第2の工程の各モデル要素の内容と、前記モデル記憶部に記憶された前記第2の工程の各モデル要素の内容とを比較し、前記内容が異なるか否かを判定するステップと、
    更新日時比較部が、前記モデル内容比較部により前記内容が異なると判定された場合、前記モデル記憶部に記憶された前記第1の工程の各モデル要素の前記更新日時と、前記第2の工程の各モデル要素の前記更新日時と、当該モデル要素に対応する前記トレース要素に含まれる前記更新日時とを比較し、更新日時が異なるか否かを判定するステップと、
    モデル更新部が、前記更新日時比較部により前記更新日時が異なると判定された場合、予め定められた手順に基づいて、前記コピーモデル記憶部に記憶された前記各モデル要素と、前記モデル記憶部に記憶された前記モデル要素とを統合して前記モデル記憶部に記憶させるステップと、
    を備えることを特徴とするモデル指向開発支援方法。
  6. 開発対象であるソフトウェアシステムを構成する各機能をモデル化した各モデル要素を、抽象概念により表す上流工程から、ソースコードにより表す下流工程までの複数工程に階層化して行う前記ソフトウェアシステムの設計および開発を支援し、前記複数工程のうち第1の工程に含まれる前記各モデル要素と、前記第1の工程に対応する下流工程となる第2の工程に含まれる前記各モデル要素と、前記それぞれのモデル要素毎に、当該モデル要素が記憶された日時を示す更新日時とが予め記憶されているモデル記憶部と、前記第1の工程に含まれる前記各モデル要素が複製されたコピーモデルが記憶されるコピーモデル記憶部と、前記第1の工程に含まれる前記各モデル要素に対応する前記第2の工程に含まれる前記各モデル要素との関連性を示すトレース要素が記憶されるトレース要素記憶部とを備えるモデル指向開発支援装置のコンピュータに、
    前記第1の工程の各モデル要素に基づいて、前記第2の工程の各モデル要素を生成するモデル変換要求の入力を受付けるステップと、
    記モデル変換要求が入力されると、前記第1の工程の各モデル要素を複製して前記コピーモデル記憶部に記憶させるステップと、
    予め定められたモデル変換ルールに基づいて、前記コピーモデル記憶部に記憶された前記第1の工程の各モデル要素に応じた前記第2の工程の各モデル要素を生成して前記コピーモデル記憶部に記憶させ、かつ、前記第1の工程の各モデル要素を識別する上流モデル要素識別情報と、当該第1の工程の各モデル要素に基づいて生成した前記第2の工程のモデル要素を識別する下流モデル要素識別情報と、前記第2の工程のモデル要素を生成した日時を示す更新日時とが対応付けられたトレース要素を生成し、前記トレース要素記憶部に記憶させるステップと、
    記コピーモデル記憶部に記憶された前記第2の工程の各モデル要素の内容と、前記モデル記憶部に記憶された前記第2の工程の各モデル要素の内容とを比較し、前記内容が異なるか否かを判定するステップと、
    容が異なると判定された場合、前記モデル記憶部に記憶された前記第1の工程の各モデル要素の前記更新日時と、前記第2の工程の各モデル要素の前記更新日時と、当該モデル要素に対応する前記トレース要素に含まれる前記更新日時とを比較し、更新日時が異なるか否かを判定するステップと、
    新日時が異なると判定された場合、予め定められた手順に基づいて、前記コピーモデル記憶部に記憶された前記各モデル要素と、前記モデル記憶部に記憶された前記モデル要素とを統合して前記モデル記憶部に記憶させるステップと、
    を実行させるモデル指向開発支援プログラム。
JP2008228590A 2008-09-05 2008-09-05 モデル指向開発支援装置、モデル指向開発支援方法及びモデル指向開発支援プログラム Expired - Fee Related JP5111308B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008228590A JP5111308B2 (ja) 2008-09-05 2008-09-05 モデル指向開発支援装置、モデル指向開発支援方法及びモデル指向開発支援プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008228590A JP5111308B2 (ja) 2008-09-05 2008-09-05 モデル指向開発支援装置、モデル指向開発支援方法及びモデル指向開発支援プログラム

Publications (2)

Publication Number Publication Date
JP2010061543A JP2010061543A (ja) 2010-03-18
JP5111308B2 true JP5111308B2 (ja) 2013-01-09

Family

ID=42188246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008228590A Expired - Fee Related JP5111308B2 (ja) 2008-09-05 2008-09-05 モデル指向開発支援装置、モデル指向開発支援方法及びモデル指向開発支援プログラム

Country Status (1)

Country Link
JP (1) JP5111308B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6618556B2 (ja) * 2018-01-27 2019-12-11 有限会社シェアリングシード ソースコード管理・生成プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3847932B2 (ja) * 1997-12-26 2006-11-22 富士通株式会社 プログラム作成支援装置およびそのプログラム記憶媒体
JP2007047971A (ja) * 2005-08-09 2007-02-22 Fujitsu Ten Ltd 個別プログラム生成装置及び方法
JP2007122587A (ja) * 2005-10-31 2007-05-17 Hitachi Ltd 情報システム設計開発方法、端末装置、及びプログラム
JP4412674B2 (ja) * 2007-04-18 2010-02-10 インターナショナル・ビジネス・マシーンズ・コーポレーション モデル駆動型開発を支援する装置及び方法

Also Published As

Publication number Publication date
JP2010061543A (ja) 2010-03-18

Similar Documents

Publication Publication Date Title
CN108762743B (zh) 一种数据表操作代码生成方法及装置
US7735062B2 (en) Software development system and method
Potvin et al. Why Google stores billions of lines of code in a single repository
KR100661393B1 (ko) 웹 프로그래밍 환경을 응용한 웹사이트 관리 시스템 및방법
JP3946057B2 (ja) 整合性検査支援方法および整合性検査支援システム
JP4907610B2 (ja) ソフトウェア構成管理方法およびシステム
US8826224B2 (en) Apparatus and method for supporting model-driven development
US20060168577A1 (en) Software development system and method
CN105144088A (zh) 元数据与源代码的关联以及基于其的应用和服务
US20160170719A1 (en) Software database system and process of building and operating the same
US20040216084A1 (en) System and method of managing web content
US20090083268A1 (en) Managing variants of artifacts in a software process
JP4613214B2 (ja) ソフトウェア自動構成装置
US7886284B2 (en) Using a backend simulator to test and develop xforms templates before linking the xforms templates to backend data processing systems
US8527254B2 (en) Simulator engine development system and simulator engine development method
CN117950652A (zh) 基于低代码平台的组件生态应用开发方法
JPH10254689A (ja) クライアント・サーバシステムのアプリケーション構成設計支援方式
WO2002046909A1 (en) Automatically deploy and upgrade an application based on markup language application definition
JP4360942B2 (ja) ソフトウェア開発支援装置
Derks et al. A benchmark generator framework for evolving variant-rich software
JP5111308B2 (ja) モデル指向開発支援装置、モデル指向開発支援方法及びモデル指向開発支援プログラム
Eyl et al. Traceability in a fine grained software configuration management system
US20030220939A1 (en) Information processing system, information processing method, and information processing program
US11977473B2 (en) Providing a pseudo language for manipulating complex variables of an orchestration flow
EP1684170A2 (en) Software development system and method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120823

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

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

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

Free format text: PAYMENT UNTIL: 20151019

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5111308

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees