JP2008269136A - モデル駆動型開発を支援する装置及び方法 - Google Patents
モデル駆動型開発を支援する装置及び方法 Download PDFInfo
- Publication number
- JP2008269136A JP2008269136A JP2007109181A JP2007109181A JP2008269136A JP 2008269136 A JP2008269136 A JP 2008269136A JP 2007109181 A JP2007109181 A JP 2007109181A JP 2007109181 A JP2007109181 A JP 2007109181A JP 2008269136 A JP2008269136 A JP 2008269136A
- Authority
- JP
- Japan
- Prior art keywords
- change
- model
- information
- target model
- source
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
- G06F8/355—Round-trip engineering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
【解決手段】モデル編集装置10において、モデル変換機能11は、SM(ソースモデル)0をTM(ターゲットモデル)0に変換し、TDM(変更依存モデル)0を生成する。また、SM編集者がSM0を更新してSM1を生成すると、モデル変換機能11は、SM1をTM1に変換し、TDM1を生成する。これとは別にTM編集者がTM0を編集してTM0_nを生成すると、Change要素登録機能12が、TM0とTM0_nの差分Δ2をTDM0に登録してTDM0_nを生成する。その後、マージ機能13は、呼び出しに応じて、Δ1抽出機能14が抽出したTDM0とTDM1の差分Δ1と、TDM0_nから抽出したΔ2とを、予め記憶された処理パターンに基づいてマージする。
【選択図】図7
Description
また、編集対象となるモデル及びそのモデルを所定の形式で表示するためのビューモデルを用いて対話的にアプリケーションソフトを作成するモデル編集システムにおいて、モデルの構造が変化した場合に効率的にビューモデルとモデル間の同期を取ることを可能とする技術も知られている(例えば、特許文献1参照)。
即ち、ある時点でモデル変換を行うと、生成元のモデル(ソースモデル)の更新による差分のインパクトが、生成先のモデル(ターゲットモデル)に対して与えられる。例えば、PIMレベルでの変更要求に基づく1つのモデル要素の追加が、その追加以前に自動生成されたPSMレベルのコードに如何なるインパクトを及ぼすかを考える。モデル駆動型アーキテクチャには、上位モデルの情報を下位モデルへなるべく「仕様」として伝達するという特徴がある。従って、上位モデルの1つの変更により、下位モデルにおいて多くのインパクトが発生することもある。
また、既にモデル変換によって生成されたモデル及びコードに対して、各レベル(PIM、PSM)での変更要求等による編集がなされることもある。
このような場合に、上位モデルからのインパクトと下位モデルでの編集とをどのようにマージするかが問題となる。
また、特許文献1の発明は、ビューモデルとモデル間の同期を取ることを主眼としており、上記問題を解決することはできない。
更に、この装置は、ソースモデルを構成する第1の要素と、ターゲットモデルを構成する第2の要素と、第2の要素の変更を示す第3の要素との対応情報を記憶する記憶部を更に備え、第2の取得部は、対応情報から第3の要素を抽出することにより、第2の変更情報を取得する、ものであってもよい。
更にまた、優先度に関する情報は、マージの際に第1の変更が第2の変更よりも優先されるための条件を含むものでもよいし、マージの際に第1の変更が第2の変更よりも優先されるかどうかをユーザに問い合わせる旨の情報を含むものでもよい。
図1は、モデル変換の入力となるソースモデルと、モデル変換の出力となるターゲットモデルと、各モデルの変更及びマージの処理について示した図である。初回のモデル変換に関しては、ソースモデルをSM0、ターゲットモデルをTM0と表記する。また、ソースモデルの編集作業を行う担当者(以下、「SM編集者」という)がSM0を変更することで得られたソースモデルをSM1、SM1をモデル変換することで得られたターゲットモデルをTM1と表記する。更に、ターゲットモデルの編集作業を行う担当者(以下、「TM編集者」という)によるTM0のn回目の変更によってTM0_nが得られるものとする。
本明細書では、前者の変更によって生じたターゲットモデルの初版からの差分をΔ1と表記し、後者の変更によって生じたターゲットモデルの初版からの差分をΔ2と表記する。図1では、TM0とTM1の差分がΔ1に相当し、TM0とTM0_nの差分がΔ2に相当する。
図2−1にTM0の例を示し、図2−2にTM1の例を示し、図2−3にTM0_1の例を示す。
即ち、図2−1のソースコードの元となるモデルをSM編集者が変更することによって新たに生成されたソースコードが、図2−2のソースコードである。図2−2では、メソッド101及び102内で、下線を施したような変更が加えられている。この場合、これらのメソッド101及び102がΔ1に相当する。
また、図2−1のソースコードのTM編集者による1回目の編集で得られたソースコードが、図2−3のソースコードである。図2−3では、メソッド103及び104内で、下線を施したような変更が加えられている。この場合、これらのメソッド103及び104がΔ2に相当する。
具体的には、モデル駆動型開発において、変換依存モデル(以下、「TDM」という)を生成し、これを用いてΔ1及びΔ2を抽出しマージする。
まず、TDMの生成について説明する。
図3は、モデル変換におけるTDMの位置付けを例示した図である。TDMは、例えば、モデル変換ツール等に付随するTDM生成機能によって生成すればよい。図では、SM0からTM0へモデル変換を行う際に、このモデル変換に対応するTDMであるTDM0が生成される様子を示している。
以下、TDMのメタモデルにおける各要素及び属性について説明する。
+DependencyModel
この要素は、TDMのルート要素である。通常、モデル変換を用いて開発されるシステムに関して1つのモデルインスタンスを持つ。もしくはモデル変換の対象がサブシステムに分割できる場合は、複数のモデルインスタンスを持つこともできる。
また、この要素は、次の属性を持つ。
-creationDate:TDMが生成された日付(モデル変換が最初に行われた日付)。
-modificationDate:TDMが最後に変更された日付。
-id:この要素が複数ある場合等に各要素を識別するために用いられるID。
この要素は、ソースモデルに含まれる各モデル要素とターゲットモデルに含まれる各モデル要素のマッピングに関する変換の集合を示す。通常、モデル変換は、ソースモデルの一部の情報をテンプレートに当てはめてターゲットモデルのリソースを生成することにより行われる。例えば、ターゲットモデルがJ2EEのソースコードである場合、DDL(Data Definition Language)、JSP(JavaServer Pages)、Javaのソースコード等が、それぞれテンプレートを使って生成される。ここで、例えば、複数生成されるJSPファイルは、プログラムモデルの意図によってファイル内部の表現構造が異なる。但し、同じテンプレートから生成されたJSPファイルは同じ形式の内部構造を持つ。そこで、同じテンプレートを用いるモデル要素の変換の集合という意味で、この要素が設けられている。
また、この要素は、次の属性を持つ。
-resourceType:ファイルリソースの種類(JSP、Javaのソースコード、DDL、Propertyファイル等)。
-id:この要素が複数ある場合等に各要素を識別するために用いられるID。
この要素は、ソースモデルとターゲットモデルの間のモデル変換に関するファイル単位の依存関係を示す。即ち、テンプレートから生成される個々のファイル単位の依存関係である。
また、この要素は、次の属性を持つ。
-filePath:ファイルシステム上のファイル名を含むパス。
-id:この要素が複数ある場合等に各要素を識別するために用いられるID。
この要素は、Dependency要素で指定されたファイルに関し、ソースモデルとターゲットモデルをソースモデルのモデル要素単位で関連付けるマッピングを示す。子要素であるSourceModelPath要素及びTargetModelPath要素で指定されるパス間が、依存関係として関連付けられる。例えば、図2−2〜3のメソッド101〜104のレベルでのマッピングが行われる。また、この依存関係に対しTM編集者によってなされた変更をChange要素によって保持することができるようになっている。
また、この要素は、次の属性を持つ。
-value:ソースモデルとターゲットモデルで変換に使われているモデル要素の値。
-id:この要素が複数ある場合等に各要素を識別するために用いられるID。
-strengthType:依存強度(以下を参照)。
依存強度は、マージの際にΔ1とΔ2が競合した場合、Δ1がどの程度優先されるかの強度である。この依存強度は、予め定められた規則に従ってモデル変換時にシステムが設定してもよいし、モデル変換後にTM編集者等が設定してもよい。また、依存強度には、以下の4つのタイプがある。
・依存強度H(High)
このタイプは、Δ1がΔ2よりも必ず優先されるタイプである。
・依存強度M(Medium)
このタイプは、モデル要素が変更されていれば、Δ1がΔ2よりも優先され、モデル要素の子要素が変更されていれば、Δ2がΔ1よりも優先されるタイプである。
・依存強度L(low)
このタイプは、Δ2がΔ1よりも必ず優先されるタイプである。
・依存強度N(None)
このタイプは、依存強度が不明であり、Δ1とΔ2の競合を解消するためにTM編集者の判断を必要とするタイプである。
この要素は、ソースモデル内のモデル要素の絶対パスを示す。
また、この要素は、次の属性を持つ。
-id:この要素が複数ある場合等に各要素を識別するために用いられるID。
-path:ソースモデル内のマッピング対象となるモデル要素を指定するパス(XPath、Javaの要素パス等)。
この要素は、ターゲットモデル内のモデル要素の絶対パスを示す。ターゲットモデルにおいて、マッピング対象のモデル要素の値に対してprefixとsuffixが存在すれば、これらを定義することも可能である。
また、この要素は、次の属性を持つ。
-id:この要素が複数ある場合等に各要素を識別するために用いられるID。
-path:ターゲットモデル内のマッピングの対象となるモデル要素を指定するパス(XPath、Javaの要素パス等)。
-suffix:モデル変換によってMapping要素のvalue属性の値に付されたsuffix。
-prefix:モデル変換によってMapping要素のvalue属性の値に付されたprefix。
-scope:スコープ(以下を参照)。
スコープは、ソースモデルのモデル要素がターゲットモデルへどのようなスコープで変換されているか、という観点から、マッピングの関係を示す。スコープとしては次のいずれかのタイプを指定可能である。
・“elementOnly”:ターゲットモデル内のあるモデル要素のみを示す。
・“includeChildren”:ターゲットモデル内のあるモデル要素とその子要素を示す。
XPathによって、上記2つのタイプの指定が可能となる。また、ターゲットモデルがJavaの場合でも、Javaの言語構造により、クラス、メソッド、宣言等はXMLで表現できる。従って、XPathによる表現が可能となるので、この指定は可能である。
この要素は、TM編集者によるマッピング関係の変更(Δ2)を記録する。通常は、CVSやSubversion等のツール上で変更が記録され、TDMのマッピングに関係するかがチェックされた後、この要素が追加される。
また、この要素は、次の属性を持つ。
-changedType:変更のタイプ(“Update”又は“Delete”)。
-changedParamType:変更のタイプが“Update”の場合の変更後のパラメータの種類(TargetModelPath要素のscope属性の変更等)。
-changedParamValue:変更のタイプが“Update”の場合の変更後の値。
-changedDateTime:変更の日時。
この要素は、モデル変換における入力及び出力となるモデルを、TDMの視点での入力モデルとして示す。ここでは、ソースモデルとターゲットモデルが入力モデルとなる。
また、この要素は、次の属性を持つ。
-transformationType:利用されているモデル変換ツールの種類。
この要素は、モデル変換における出力となるターゲットモデルを示す。
また、この要素は、次の属性を持つ。
-modelType:モデルの種類(例えば、XML、Java、JSP)。
-filePath:ファイルシステムにおけるターゲットモデルのファイルパス。
この要素は、モデル変換における入力となるソースモデルを示す。
また、この要素は、次の属性を持つ。
-modelType:モデルの種類(例えば、XML、Java、JSP)。
-filePath:ファイルシステムにおけるソースモデルのファイルパス。
図5は、J2EEアプリケーション等を対象とするTDMの記述例である。この例は、TDMの部分的な例であるので、ターゲットモデルはJavaファイルのみとなっているが、通常は、faces−config.xml等の設定ファイルや、JSPファイルもターゲットモデルとなる。
また、パスの指定には、UMLモデル等のXMLで表現できるリソース(図5では、ソースモデル)については、標準化団体W3Cが提供しているXPathを用いている。また、Javaファイル(図5では、ターゲットモデル)については、“{Class}#{Method}.{Field}”等の木構造を指す表記が使用可能である。JSPやHTMLに関しても木構造として同様な記述方法で示すことができる。
図6は、Change要素登録機能の振る舞いを例示した図である。初期状態においては、TM0と、TM0が生成される際に生成されたTDM0とが存在している。この状態で、(1)に示すように、TM0がTM編集者によって変更され、TM0_nが生成されたとする。すると、(2)に示すように、Change要素登録機能が呼び出される。そして、(3)に示すように、初期状態と最新状態との差分を抽出し、これがTDMのマッピングに関連がある変更かどうかを判断して、Change要素を作成し追加する。
以上により、Δ2が自動抽出できるようになる。
まず、図3に示したTDM生成機能を含むモデル変換機能と、図6に示したChange要素登録機能とを含むモデル編集装置10を用いたTM編集者によるマージ作業の流れについて述べる。図7は、このようなマージ作業の流れを示した図である。尚、図において、実線は、モデル変換時における変更管理のためのイベントの流れを示す。破線は、イベント以外の関連を示す。
まず、モデル編集装置10には、TM0及びTDM0が保持されると共に、TM編集者の作業によってTM0の最新版であるTM0_nが生成されているものとする。また、Change要素登録機能12が、TM0とTM0_nの差分Δ2を常時抽出し、TDM0に登録することでTDM0_nを生成しているものとする。
そして、以上の処理の終了後、TM編集者は、マージログ及びTM01を見ながら、結果を確認する。もし依存強度がNとなっていてTM編集者によるマージ作業が必要である場合には、マージログの記述からTM01を修正していく。
まず、Change要素登録機能12の動作について説明する。尚、この動作説明においては、ターゲットモデルを実装レベルのソースコードとする。
図8は、Change要素登録機能12の動作を示したフローチャートである。
まず、Change要素登録機能12は、TM編集者による変更前のソースコードと、TM編集者による変更後のソースコードとの差分を読み出す(ステップ201)。そして、差分が読み出されたかどうかを判定する(ステップ202)。ここで、差分が読み出されなければ、処理は終了する。差分が読み出されれば、TDMを読み込み、TDMに含まれるMapping要素の中から差分に関係するMapping要素を確認する(ステップ203)。即ち、差分の中には、モデル変換に関係のないものもあるので、ここでそのような差分を排除している。
変更タイプが「更新」である場合は、更新に関する情報(Update情報)を取得し、更新を表すChange要素を生成する(ステップ206)。また、変更タイプが「削除」である場合は、削除に関する情報(Delete情報)を取得し、削除を表すChange要素を生成する(ステップ207)。そして、Change要素登録機能12は、生成されたChange要素をTDMに追加する(ステップ208)。
図9は、マージ機能13を独立した装置であるマージ装置30で実現する場合のマージ装置30の機能構成を示したブロック図である。
マージ装置30は、TDMを記憶するTDM記憶部31と、TDMからΔ1を取得するΔ1取得部32と、TDMからΔ2を取得するΔ2取得部33とを備える。また、Δ1とΔ2をマージするマージ部34と、マージする際に参照される規則を記憶する規則記憶部35と、マージ結果の反映対象であるターゲットモデルを記憶するターゲットモデル記憶部36とを備える。
Δ1取得部32は、第1の取得部の一例であり、ソースモデルの変更によって生じたターゲットモデルの差分であるΔ1を取得する。このΔ1は、前述した通り、TDM記憶部31に記憶された旧版のTDM(例えば、TDM0)と新版のTDM(例えば、TDM1)とを、既存のツールを用いて比較することにより、取得することができる。尚、TDM記憶部31をマージ装置30の外部に設けた場合、Δ1取得部32は、既存のツールが抽出したΔ1を受け取る機能のみを実現するものと把握してもよい。
Δ2取得部33は、第2の取得部の一例であり、ソースモデルの変更とは関係なくターゲットモデルに独自に加えられた変更による差分であるΔ2を取得する。このΔ2は、前述した通り、TDM記憶部31に記憶されたTDMからChange要素を抽出することにより取得する。
規則記憶部35は、Δ1とΔ2が競合した場合のために、Δ1とΔ2の優先度に関する情報の一例として、マージ処理に関する複数の規則を記憶している。そして、複数の規則は識別子の一例である依存強度によって特定できるようになっている。本実施の形態では、この依存強度をTDMのMapping要素の属性として設定するが、ソースモデルの要素と依存強度の対応情報、又は、ターゲットモデルの要素と依存強度の対応情報をTDMとは別に記憶する構成を採用してもよい。ここで、規則には、例えば、マージの際にΔ1をΔ2よりも優先させるべきかΔ2をΔ1よりも優先させるべきかといったものがある。また、どのような場合にΔ1をΔ2よりも優先させるべきでどのような場合にΔ2をΔ1よりも優先させるべきかといった条件を記憶してもよい。尚、この規則の具体例は後述する。
ターゲットモデル記憶部36は、マージ結果が反映される前のターゲットモデルと、マージ結果を反映させたターゲットモデルとを記憶する。図7を参照して説明した例では、TM0_nが前者であり、TM01が後者である。
図10は、Δ1とΔ2が競合した場合のマージにおける処理パターンを示している。従って、図10の表を「処理パターン表」ともいう。図10には、依存強度ごとに処理パターンを示している。
(a)は、依存強度Hの場合の処理パターン表である。既述の通り、依存強度Hでは、Δ1がΔ2よりも優先されるので、そのような優先順位に応じた処理パターンが定義されている。
(b)は、依存強度Mの場合の処理パターン表である。既述の通り、依存強度Mでは、モデル要素の変更についてはΔ1がΔ2よりも優先され、その子要素の変更についてはΔ2がΔ1よりも優先されるので、そのような優先順位に応じた処理パターンが定義されている。
(c)は、依存強度Lの場合の処理パターン表である。既述の通り、依存強度Lでは、Δ2がΔ1よりも優先されるので、そのような優先順位に応じた処理パターンが定義されている。
このように、依存強度H、M、Lについては、Δ1とΔ2の優先順位が予め決められていることになるので、依存強度の特徴を用いた自動的な処理が可能になる。
また、このように、依存強度を用いてマージを行うことにより、既存技術では不可能であったモデル駆動型開発におけるマージが可能となる。
図11は、マージ装置30の動作を示したフローチャートである。尚、ここでは、SM0がTM0に変換され、SM1がTM1に変換されているものとする。そして、この場合に、TM0とTM1との差分であるΔ1と、TM0に対する独自の変更による差分であるΔ2とをマージすることを想定している。
まず、Δ1取得部32は、TDM記憶部31からTDM0とTDM1とを読み込む(ステップ301)。次に、例えば、XML Diff等の差分抽出ツールを用いて、Δ1を1つ抽出する(ステップ302)。そして、Δ1が抽出されたかどうかを判定する(ステップ303)。ここで、Δ1が抽出されなければ、処理は終了する。Δ1が抽出されれば、Δ1取得部32は、Δ1をマージ部34に受け渡し、マージ部34が、Δ1の変更タイプを抽出する(ステップ304)。
そこで、マージ部34は、まず、Δ1の変更タイプが「Addition」であるかどうかを判定する(ステップ305)。「Addition」であれば、マージ部34は、Δ1をそのままTM0(TM0_n)に追加する(ステップ306)。これは、モデル駆動型アーキテクチャでは、上位モデルの情報に基づいて下位モデルが生成されることから、上位モデルの変更の重要度が高いことを前提としている。その後、ステップ302に戻って次のΔ1の処理に移る。
また、ステップ305でΔ1の変更タイプが「Addition」でないと判定された場合、マージ部34は、Δ1の変更タイプが「Update」であるかどうかを判定する(ステップ307)。「Update」であれば、マージ部34からΔ2取得部33に制御が移り、Δ2取得部33が、Δ2があるかどうかを判定する(ステップ308)。具体的には、Δ1が関係するMapping要素の子要素としてChange要素が存在するかどうかを判定する。その結果、Change要素が存在していなければ、Δ1に従ってTM0(TM0_n)の要素を更新し(ステップ309)、ステップ302に戻って次のΔ1の処理に移る。
更に、ステップ307でΔ1の変更タイプが「Update」でもないと判定された場合、変更タイプは「Delete」である。そこで、マージ部34からΔ2取得部33に制御が移り、Δ2取得部33が、Δ2があるかどうかを判定する(ステップ310)。具体的には、Δ1が関係するMapping要素の子要素としてChange要素が存在するかどうかを判定する。その結果、Change要素が存在していなければ、Δ1に従ってTM0(TM0_n)の要素を削除し(ステップ311)、ステップ302に戻って次のΔ1の処理に移る。
まず、ステップ308からステップ312に処理が進んできた場合について説明する。
この場合、Δ1は「Update」である。これに対し、Δ2が「Update」の場合と「Delete」の場合とでどのような処理を行うかを考えればよい。
依存強度Hの場合、Δ2が「Update」であれば、Δ2を無効化し、Δ1に従ってTM0(TM0_n)の要素を更新する。また、Δ2が「Delete」であれば、削除された要素を復活させる必要があるので、Δ1に従ってTM0(TM0_n)に要素を追加する。
依存強度Mの場合、Δ2が「Update」であれば、何もしない。また、Δ2が「Delete」であれば、削除された要素を復活させる必要があるので、Δ1に従ってTM0(TM0_n)に要素を追加する。
依存強度Lの場合は、何もしない。
依存強度Nの場合は、例えばダイアログボックス等を表示してTM編集者によるマージ処理を促す。
この場合、Δ1は「Delete」である。これに対し、Δ2が「Update」の場合と「Delete」の場合とでどのような処理を行うかを考えればよい。
依存強度Hの場合、Δ2が「Update」であれば、Δ1に従ってTM0(TM0_n)の要素を削除する。また、Δ2が「Delete」であれば、何もしない。
依存強度Mの場合、Δ2が「Update」であれば、Δ1に従ってTM0(TM0_n)の要素を削除する。また、Δ2が「Delete」であれば、何もしない。
依存強度Lの場合は、何もしない。
依存強度Nの場合、Δ2が「Update」であれば、ダイアログボックス等を表示してTM編集者にマージ処理を促す。また、Δ2が「Delete」であれば、何もしない。
また、本実施の形態では、依存強度が定義されたTDMを用いたマージ機能により、TM編集者によるマージ作業を従来に比べて軽減することを可能にする。依存強度が予め正しく定義できる場合には、競合箇所に関するTM編集者によるマージ作業を削減することもできる。
従って、本実施の形態によれば、モデル駆動型開発における変更管理作業の時間短縮と品質向上が可能になる。
Claims (14)
- モデル駆動型開発を支援する装置であって、
前記モデル駆動型開発においてソースモデルから生成されたターゲットモデルの変更のうち、当該ソースモデルの更新に起因する変更である第1の変更に関する第1の変更情報を取得する第1の取得部と、
前記ターゲットモデルの変更のうち、前記ソースモデルの前記更新に起因しない変更である第2の変更に関する第2の変更情報を取得する第2の取得部と、
前記第1の変更情報と前記第2の変更情報とを、予め記憶された前記第1の変更及び前記第2の変更の優先度に関する情報に基づいてマージするマージ部と
を備えた、装置。 - 前記ソースモデルの更新前における前記ソースモデルの要素と前記ターゲットモデルの要素との対応関係を示す第1の構造化文書と、前記ソースモデルの更新後における当該対応関係を示す第2の構造化文書とを記憶する記憶部を更に備え、
前記第1の取得部は、前記第1の構造化文書と前記第2の構造化文書との差分を前記第1の変更情報として取得する、請求項1の装置。 - 前記ソースモデルを構成する第1の要素と、前記ターゲットモデルを構成する第2の要素と、当該第2の要素の変更を示す第3の要素との対応情報を記憶する記憶部を更に備え、
前記第2の取得部は、前記対応情報から前記第3の要素を抽出することにより、前記第2の変更情報を取得する、請求項1の装置。 - 前記優先度に関する情報は、マージの際に前記第1の変更が前記第2の変更よりも優先されるための条件を含む、請求項1の装置。
- 前記優先度に関する情報は、マージの際に前記第1の変更が前記第2の変更よりも優先されるかどうかをユーザに問い合わせる旨の情報を含む、請求項1の装置。
- 前記優先度に関する情報は、マージ処理に関する複数の規則を含み、当該複数の規則の各々は、識別子によって特定される、請求項1の装置。
- 前記ターゲットモデルを構成する要素と前記識別子との対応情報を記憶する記憶部を更に備え、
前記マージ部は、前記第1の変更情報のうち前記要素の変更に関する変更情報と、前記第2の変更情報のうち前記要素の変更に関する変更情報とを、前記識別子によって特定される規則を用いてマージする、請求項6の装置。 - モデル駆動型開発を支援する方法であって、
第1のソースモデルを第1のターゲットモデルに変換するステップと、
前記第1のソースモデルの更新を行うことにより第2のソースモデルを生成するステップと、
前記第2のソースモデルを第2のターゲットモデルに変換するステップと、
前記第1のソースモデルの前記更新とは無関係に前記第1のターゲットモデルに変更を加えることにより第3のターゲットモデルを生成するステップと、
前記第1のターゲットモデルから前記第2のターゲットモデルへの変更である第1の変更に関する第1の変更情報と、前記第1のターゲットモデルから前記第3のターゲットモデルへの変更である第2の変更に関する第2の変更情報とを、予め記憶された当該第1の変更及び当該第2の変更の優先度に関する情報に基づいてマージするステップと
を含む、方法。 - 前記優先度に関する情報は、マージの際に前記第1の変更が前記第2の変更よりも優先されるための条件を含む、請求項8の方法。
- モデル駆動型開発を支援する装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
前記モデル駆動型開発においてソースモデルから生成されたターゲットモデルの変更のうち、当該ソースモデルの更新に起因する変更である第1の変更に関する第1の変更情報を取得する第1の取得部と、
前記ターゲットモデルの変更のうち、前記ソースモデルの前記更新に起因しない変更である第2の変更に関する第2の変更情報を取得する第2の取得部と、
前記第1の変更情報と前記第2の変更情報とを、予め記憶された前記第1の変更及び前記第2の変更の優先度に関する情報に基づいてマージするマージ部と
して機能させる、プログラム。 - 前記優先度に関する情報は、マージの際に前記第1の変更が前記第2の変更よりも優先されるための条件を含む、請求項10のプログラム。
- 前記優先度に関する情報は、マージの際に前記第1の変更が前記第2の変更よりも優先されるかどうかをユーザに問い合わせる旨の情報を含む、請求項10のプログラム。
- 前記優先度に関する情報は、マージ処理に関する複数の規則を含み、当該複数の規則の各々は、識別子によって特定される、請求項10のプログラム。
- 前記マージ部は、前記ターゲットモデルを構成する要素と前記識別子との対応情報を所定の記憶部から読み出し、前記第1の変更情報のうち当該要素の変更に関する変更情報と、前記第2の変更情報のうち当該要素の変更に関する変更情報とを、当該識別子によって特定される規則を用いてマージする、請求項13のプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007109181A JP4412674B2 (ja) | 2007-04-18 | 2007-04-18 | モデル駆動型開発を支援する装置及び方法 |
US12/103,980 US8826224B2 (en) | 2007-04-18 | 2008-04-16 | Apparatus and method for supporting model-driven development |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007109181A JP4412674B2 (ja) | 2007-04-18 | 2007-04-18 | モデル駆動型開発を支援する装置及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008269136A true JP2008269136A (ja) | 2008-11-06 |
JP4412674B2 JP4412674B2 (ja) | 2010-02-10 |
Family
ID=39873501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007109181A Active JP4412674B2 (ja) | 2007-04-18 | 2007-04-18 | モデル駆動型開発を支援する装置及び方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8826224B2 (ja) |
JP (1) | JP4412674B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010061543A (ja) * | 2008-09-05 | 2010-03-18 | Ntt Data Corp | モデル指向開発支援装置、モデル指向開発支援方法及びモデル指向開発支援プログラム |
JP2018005315A (ja) * | 2016-06-28 | 2018-01-11 | 三菱電機株式会社 | 規則変換支援装置および規則変換支援プログラム |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8924335B1 (en) | 2006-03-30 | 2014-12-30 | Pegasystems Inc. | Rule-based user interface conformance methods |
US9405513B2 (en) * | 2008-04-18 | 2016-08-02 | Software Ag | Systems and methods for graphically developing rules for transforming models between description notations |
US20090276757A1 (en) * | 2008-04-30 | 2009-11-05 | Fraunhofer Usa, Inc. | Systems and methods for inference and management of software code architectures |
EP2350815A1 (en) * | 2008-10-21 | 2011-08-03 | Accenture Global Services Limited | Model transformation unit |
US8843435B1 (en) | 2009-03-12 | 2014-09-23 | Pegasystems Inc. | Techniques for dynamic data processing |
US8468492B1 (en) * | 2009-03-30 | 2013-06-18 | Pegasystems, Inc. | System and method for creation and modification of software applications |
CA2686367A1 (en) * | 2009-11-26 | 2011-05-26 | Ibm Canada Limited - Ibm Canada Limitee | Dynamic native editor code view facade |
US8880487B1 (en) | 2011-02-18 | 2014-11-04 | Pegasystems Inc. | Systems and methods for distributed rules processing |
US10535032B2 (en) * | 2011-04-15 | 2020-01-14 | International Business Machines Corporation | Process model merging |
US9052907B2 (en) * | 2011-10-25 | 2015-06-09 | Software Ag | Selective change propagation techniques for supporting partial roundtrips in model-to-model transformations |
US9195936B1 (en) | 2011-12-30 | 2015-11-24 | Pegasystems Inc. | System and method for updating or modifying an application without manual coding |
US8938709B2 (en) * | 2012-01-05 | 2015-01-20 | International Business Machines Corporation | Multiple architecture viewpoints in single unified modeling language (UML) model |
US9098215B2 (en) | 2013-01-02 | 2015-08-04 | International Business Machines Corporation | Migration between model elements of different types in a modeling environment |
US20150213154A1 (en) * | 2014-01-28 | 2015-07-30 | Stephan Toebben | Transitioning cad model data into variant configurations |
US20150220331A1 (en) * | 2014-02-05 | 2015-08-06 | International Business Machines Corporation | Resolving merge conflicts that prevent blocks of program code from properly being merged |
US10469396B2 (en) | 2014-10-10 | 2019-11-05 | Pegasystems, Inc. | Event processing with enhanced throughput |
US10698599B2 (en) | 2016-06-03 | 2020-06-30 | Pegasystems, Inc. | Connecting graphical shapes using gestures |
US10698647B2 (en) | 2016-07-11 | 2020-06-30 | Pegasystems Inc. | Selective sharing for collaborative application usage |
US10956130B2 (en) * | 2018-07-05 | 2021-03-23 | Jpmorgan Chase Bank, N.A. | Method and system for implementing a cloud infrastructure visualizer and generator |
US11048488B2 (en) | 2018-08-14 | 2021-06-29 | Pegasystems, Inc. | Software code optimizer and method |
CN109947418A (zh) * | 2019-03-27 | 2019-06-28 | 厦门纳龙科技有限公司 | 一种数据模型转换方法以及装置 |
US11567945B1 (en) | 2020-08-27 | 2023-01-31 | Pegasystems Inc. | Customized digital content generation systems and methods |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0454558A (ja) | 1990-06-21 | 1992-02-21 | Nec Corp | テキスト管理方式 |
JPH05241802A (ja) | 1992-03-03 | 1993-09-21 | Fujitsu Ltd | ソースモジュール修正情報のマージ方式 |
US6018627A (en) * | 1997-09-22 | 2000-01-25 | Unisys Corp. | Tool-independent system for application building in an object oriented development environment with data stored in repository in OMG compliant UML representation |
JP3847932B2 (ja) | 1997-12-26 | 2006-11-22 | 富士通株式会社 | プログラム作成支援装置およびそのプログラム記憶媒体 |
US6502239B2 (en) * | 1998-11-12 | 2002-12-31 | Computer Associates Think, Inc | Method and apparatus for round-trip software engineering |
US6678882B1 (en) * | 1999-06-30 | 2004-01-13 | Qwest Communications International Inc. | Collaborative model for software systems with synchronization submodel with merge feature, automatic conflict resolution and isolation of potential changes for reuse |
AU7857300A (en) * | 1999-10-05 | 2001-05-10 | Togethersoft Corporation | Method and system for developing software |
US6851105B1 (en) * | 1999-10-05 | 2005-02-01 | Borland Software Corporation | Method and system for generating, applying, and defining a pattern |
US7734457B2 (en) * | 1999-10-16 | 2010-06-08 | Computer Associates Think, Inc. | Method and system for generating dynamic comparison models |
US6904588B2 (en) * | 2001-07-26 | 2005-06-07 | Tat Consultancy Services Limited | Pattern-based comparison and merging of model versions |
EP1552385B1 (en) * | 2002-06-12 | 2008-10-15 | Telelogic North America Inc. | Providing dynamic model-code associativity |
US7412366B1 (en) * | 2003-07-18 | 2008-08-12 | The Mathworks, Inc. | Rate grouping during code generation for multi-rate models |
JP4100630B2 (ja) * | 2004-05-14 | 2008-06-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Uml設計方法 |
US7856621B2 (en) * | 2004-05-19 | 2010-12-21 | International Business Machines Corporation | Method for synchronization of concurrently modified interdependent semi-derived artifacts |
US20060064667A1 (en) * | 2004-09-20 | 2006-03-23 | Freitas Jose D | System and method of model-driven development using a transformation model |
US7861214B2 (en) * | 2004-11-08 | 2010-12-28 | International Business Machines Corporation | Computer method and apparatus for collapsing programming metamodels |
US8615729B2 (en) * | 2004-12-10 | 2013-12-24 | International Business Machines Corporation | Extending existing model-to-model transformations |
US7680805B2 (en) * | 2004-12-30 | 2010-03-16 | Sap Ag | Synchronization method for an object oriented information system (IS) model |
US8051148B2 (en) * | 2005-01-13 | 2011-11-01 | National Instruments Corporation | Determining differences between configuration diagrams |
US7703027B2 (en) * | 2005-01-13 | 2010-04-20 | National Instruments Corporation | Merging graphical programs |
US7480897B2 (en) * | 2005-03-10 | 2009-01-20 | International Business Machines Corporation | Method and system for managing development objects for computer program code |
JP2006268764A (ja) | 2005-03-25 | 2006-10-05 | Nec Corp | モデル編集システム、モデル編集装置、モデル編集方法及びモデル編集プログラム |
EP1715419A1 (en) * | 2005-04-22 | 2006-10-25 | Ubs Ag | A technique for platform-independent service modeling |
US9774699B2 (en) * | 2005-09-20 | 2017-09-26 | The Mathworks, Inc. | System and method for transforming graphical models |
US8805675B2 (en) * | 2005-11-07 | 2014-08-12 | Sap Ag | Representing a computer system state to a user |
US20070112878A1 (en) * | 2005-11-11 | 2007-05-17 | International Business Machines Corporation | Computer method and system for coherent source and target model transformation |
JP2007179165A (ja) * | 2005-12-27 | 2007-07-12 | Internatl Business Mach Corp <Ibm> | Uml設計モデルから、確率的な性能評価モデルを導出するコンピュータ・プログラムおよび確率的な性能評価モデルを導出する方法 |
CN101271460A (zh) * | 2007-03-19 | 2008-09-24 | 国际商业机器公司 | 用于混搭Web应用的方法和装置 |
US8166449B2 (en) * | 2008-01-17 | 2012-04-24 | Microsoft Corporation | Live bidirectional synchronizing of a visual and a textual representation |
-
2007
- 2007-04-18 JP JP2007109181A patent/JP4412674B2/ja active Active
-
2008
- 2008-04-16 US US12/103,980 patent/US8826224B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010061543A (ja) * | 2008-09-05 | 2010-03-18 | Ntt Data Corp | モデル指向開発支援装置、モデル指向開発支援方法及びモデル指向開発支援プログラム |
JP2018005315A (ja) * | 2016-06-28 | 2018-01-11 | 三菱電機株式会社 | 規則変換支援装置および規則変換支援プログラム |
Also Published As
Publication number | Publication date |
---|---|
US8826224B2 (en) | 2014-09-02 |
US20080263510A1 (en) | 2008-10-23 |
JP4412674B2 (ja) | 2010-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4412674B2 (ja) | モデル駆動型開発を支援する装置及び方法 | |
US9465590B2 (en) | Code generation framework for application program interface for model | |
US10095499B2 (en) | Optimization for multi-project package manager | |
US7617222B2 (en) | Transferring data and storing metadata across a network | |
US8375351B2 (en) | Extensible rapid application development for disparate data sources | |
JP5679989B2 (ja) | デバッグパイプライン | |
US7793255B1 (en) | System and method for maintaining alternate object views | |
US20100058169A1 (en) | Integrated document oriented templates | |
US20060168558A1 (en) | Software development system and method | |
US20070055972A1 (en) | Model-driven software deployment in an application server | |
MX2007015887A (es) | Flujos de trabajos centricos de datos. | |
US7562342B2 (en) | Method and apparatus for incrementally processing program annotations | |
US20100058170A1 (en) | Plug-ins for editing templates in a business management system | |
KR20070049166A (ko) | 목표 기기 상에서의 종속 소프트웨어 패키지의 검출 및이용을 자동화하기 위한 방법 및 소프트웨어 리포지터리를생성하기 위한 시스템 | |
EP2164004A1 (en) | Generic data retrieval | |
US20200410150A1 (en) | Generating a template-driven schematic from a netlist of electronic circuits | |
JP2012530972A (ja) | 管理されたシステム拡張子機能 | |
US9582291B2 (en) | Selecting a mapping that minimizes conversion costs | |
JPWO2007081017A1 (ja) | 文書処理装置 | |
US8521762B2 (en) | Automated business process modeling | |
JP2012529711A (ja) | ソフトウェア拡張子解析方法及びシステム | |
EP1684170A2 (en) | Software development system and method | |
CN116028062A (zh) | 目标代码的生成方法、npu指令的显示方法及装置 | |
JP4686117B2 (ja) | ソースコード変換装置、ソースコード変換方法、およびプログラム | |
JP7381290B2 (ja) | 計算機システム及びデータの管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090522 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20090522 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20090622 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090804 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091014 |
|
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: 20091104 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20091105 |
|
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: 20091113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121127 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4412674 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: 20121127 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131127 Year of fee payment: 4 |