JP2008269136A - モデル駆動型開発を支援する装置及び方法 - Google Patents

モデル駆動型開発を支援する装置及び方法 Download PDF

Info

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
Application number
JP2007109181A
Other languages
English (en)
Other versions
JP4412674B2 (ja
Inventor
Takashi Nejime
崇 根路銘
Yuriko Sawatani
由里子 澤谷
Toyotaro Suzumura
豊太郎 鈴村
Kaori Fujiwara
香織 藤原
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2007109181A priority Critical patent/JP4412674B2/ja
Priority to US12/103,980 priority patent/US8826224B2/en
Publication of JP2008269136A publication Critical patent/JP2008269136A/ja
Application granted granted Critical
Publication of JP4412674B2 publication Critical patent/JP4412674B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • G06F8/355Round-trip engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software 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

本発明は、モデル駆動型開発を支援する装置及び方法に関する。特に、本発明は、モデル駆動型開発におけるモデルの変更をマージする装置及び方法に関する。
複数の開発者が同じアプリケーションの開発に関わるコラボレーション開発環境では、各開発者が行った変更によるアプリケーションの差分をマージすることが重要になる。従来、このようなマージは、CVS(Concurrent Versions System)やRational(登録商標)等のツールにおけるソースコード間の差分を抽出する機能を用いて行われていた。
また、昨今、アプリケーション開発をスムーズに進めるため、アプリケーションの設計図であるモデルを記述するモデリングという作業が行われるようになっている。このモデリングを行うためのモデリング言語の代表的なものにUML(Unified Modeling Language)がある。UMLは、OMG(Object Management Group)によって標準化され、オブジェクト指向のアプリケーション開発におけるデファクトスタンダードとも言えるモデリング言語である。UMLでは、アプリケーションの流れや機能がダイヤグラムによって表現されるので、視覚的に分かり易いモデルが得られる。
従来、各作業者が直接編集した2つ又は3つのUMLモデル間の差分を抽出することは行われている(例えば、非特許文献1参照)。この非特許文献1では、Eclipse compare supportツールを用いて差分を抽出している。
また、編集対象となるモデル及びそのモデルを所定の形式で表示するためのビューモデルを用いて対話的にアプリケーションソフトを作成するモデル編集システムにおいて、モデルの構造が変化した場合に効率的にビューモデルとモデル間の同期を取ることを可能とする技術も知られている(例えば、特許文献1参照)。
Kim Letkeman、"Comparing and merging UML models in IBM Rational Software Architect"、[online]、平成17年7月12日、[平成19年4月9日検索]、インターネット<URL:http://www-128.ibm.com/developerworks/rational/library/05/712_comp/>及び<URL:http://www-128.ibm.com/developerworks/rational/library/05/712_comp2/> 特開2006−268764号公報
ところで、近年のアプリケーション開発では、開発期間の短縮及び開発コストの低減が多くの開発者にとっての課題である。そこで、OMGは、モデルを中心にアプリケーションの開発を進めていくモデル駆動型アーキテクチャを提供している。このモデル駆動型アーキテクチャは、複数のモデリング環境におけるモデルをモデル変換によって連携可能とするアーキテクチャであり、CIM(Computational Independent Model)、PIM(Platform Independent Model)、PSM(Platform Specific Model)の3層の論理的なモデルから構成される。ここで、CIMは、コンピュータ上での動作を意識しないモデルであり、例えば、ビジネスプロセス等である。PIMは、プラットフォームとは独立したモデルである。そして、PSMは、プラットフォームに特化したモデルであり、例えば、J2EE(Java 2 Enterprise Edition)のモデルである(Java及びその他のJavaを含む商標は、米国Sun Microsystems, Inc.の米国及びその他の国における登録商標又は商標)。このようなモデル駆動型アーキテクチャを用いたモデル駆動型開発により、抽象度の高いモデルから実装コードまでを全自動的又は半自動的に変換する仕組みが得られる。これにより、開発工数を削減でき、異なる環境やプラットフォームへ容易に移植できるようにもなる。
しかしながら、実際にモデル駆動型開発を行う場合、上位層で定義されたモデルは、必ず変更されるものとして捉える必要がある。加えて、下位層で定義されるモデルに対しても、上位層での変更とは関係なく、カスタマイズ等がなされるものである。
即ち、ある時点でモデル変換を行うと、生成元のモデル(ソースモデル)の更新による差分のインパクトが、生成先のモデル(ターゲットモデル)に対して与えられる。例えば、PIMレベルでの変更要求に基づく1つのモデル要素の追加が、その追加以前に自動生成されたPSMレベルのコードに如何なるインパクトを及ぼすかを考える。モデル駆動型アーキテクチャには、上位モデルの情報を下位モデルへなるべく「仕様」として伝達するという特徴がある。従って、上位モデルの1つの変更により、下位モデルにおいて多くのインパクトが発生することもある。
また、既にモデル変換によって生成されたモデル及びコードに対して、各レベル(PIM、PSM)での変更要求等による編集がなされることもある。
このような場合に、上位モデルからのインパクトと下位モデルでの編集とをどのようにマージするかが問題となる。
モデル駆動型開発におけるモデル変換は、ターゲットモデルの初版を生成するという意味では有効である。しかしながら、実際のアプリケーション開発にモデル駆動型開発を適用した場合、度重なる変更要求に基づいた多くの変更を管理する手法が未だ整備されていないのが現状である。そのため、モデル駆動型開発を用いない場合に比べ、かえって全体のコストがかかってしまうことも多い。
ここで問題としているのは、上位モデルの変更と下位モデルの変更が独立に行われる状況である。ところが、非特許文献1の技術は、このような状況を前提としたものではない。
また、特許文献1の発明は、ビューモデルとモデル間の同期を取ることを主眼としており、上記問題を解決することはできない。
本発明の目的は、ソースモデルの更新によるターゲットモデルの変更とターゲットモデル独自の変更とを効率よくマージできるようにすることにある。
かかる目的のもと、本発明は、ソースモデルの更新によるターゲットモデルの変更とターゲットモデル独自の変更とを両者の優先度に基づいてマージするようにした。即ち、本発明の装置は、モデル駆動型開発を支援する装置であって、モデル駆動型開発においてソースモデルから生成されたターゲットモデルの変更のうち、ソースモデルの更新に起因する変更である第1の変更に関する第1の変更情報を取得する第1の取得部と、ターゲットモデルの変更のうち、ソースモデルの更新に起因しない変更である第2の変更に関する第2の変更情報を取得する第2の取得部と、第1の変更情報と第2の変更情報とを、予め記憶された第1の変更及び第2の変更の優先度に関する情報に基づいてマージするマージ部とを備えた、装置を提供する。
また、この装置は、ソースモデルの更新前におけるソースモデルの要素とターゲットモデルの要素との対応関係を示す第1の構造化文書と、ソースモデルの更新後におけるその対応関係を示す第2の構造化文書とを記憶する記憶部を更に備え、第1の取得部は、第1の構造化文書と第2の構造化文書との差分を第1の変更情報として取得する、ものであってもよい。
更に、この装置は、ソースモデルを構成する第1の要素と、ターゲットモデルを構成する第2の要素と、第2の要素の変更を示す第3の要素との対応情報を記憶する記憶部を更に備え、第2の取得部は、対応情報から第3の要素を抽出することにより、第2の変更情報を取得する、ものであってもよい。
更にまた、優先度に関する情報は、マージの際に第1の変更が第2の変更よりも優先されるための条件を含むものでもよいし、マージの際に第1の変更が第2の変更よりも優先されるかどうかをユーザに問い合わせる旨の情報を含むものでもよい。
加えて、優先度に関する情報は、マージ処理に関する複数の規則を含み、その複数の規則の各々は、識別子によって特定される、ものでもよく、この場合、この装置は、ターゲットモデルを構成する要素と識別子との対応情報を記憶する記憶部を更に備え、マージ部は、第1の変更情報のうち要素の変更に関する変更情報と、第2の変更情報のうち要素の変更に関する変更情報とを、識別子によって特定される規則を用いてマージする、ものであってもよい。
また、本発明は、モデル駆動型開発を支援する方法であって、第1のソースモデルを第1のターゲットモデルに変換するステップと、第1のソースモデルの更新を行うことにより第2のソースモデルを生成するステップと、第2のソースモデルを第2のターゲットモデルに変換するステップと、第1のソースモデルの更新とは無関係に第1のターゲットモデルに変更を加えることにより第3のターゲットモデルを生成するステップと、第1のターゲットモデルから第2のターゲットモデルへの変更である第1の変更に関する第1の変更情報と、第1のターゲットモデルから第3のターゲットモデルへの変更である第2の変更に関する第2の変更情報とを、予め記憶された第1の変更及び第2の変更の優先度に関する情報に基づいてマージするステップとを含む、方法も提供する。
更に、本発明は、モデル駆動型開発を支援する装置としてコンピュータを機能させるプログラムであって、コンピュータを、モデル駆動型開発においてソースモデルから生成されたターゲットモデルの変更のうち、ソースモデルの更新に起因する変更である第1の変更に関する第1の変更情報を取得する第1の取得部と、ターゲットモデルの変更のうち、ソースモデルの更新に起因しない変更である第2の変更に関する第2の変更情報を取得する第2の取得部と、第1の変更情報と第2の変更情報とを、予め記憶された第1の変更及び第2の変更の優先度に関する情報に基づいてマージするマージ部として機能させる、プログラムも提供する。
本発明によれば、ソースモデルの更新によるターゲットモデルの変更とターゲットモデル独自の変更とを効率よくマージできるようになる。
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、「実施の形態」という)について詳細に説明する。
図1は、モデル変換の入力となるソースモデルと、モデル変換の出力となるターゲットモデルと、各モデルの変更及びマージの処理について示した図である。初回のモデル変換に関しては、ソースモデルをSM0、ターゲットモデルをTM0と表記する。また、ソースモデルの編集作業を行う担当者(以下、「SM編集者」という)がSM0を変更することで得られたソースモデルをSM1、SM1をモデル変換することで得られたターゲットモデルをTM1と表記する。更に、ターゲットモデルの編集作業を行う担当者(以下、「TM編集者」という)によるTM0のn回目の変更によってTM0_nが得られるものとする。
ところで、TM1とTM0_nとから最新版のターゲットモデルであるTM01を生成するためには、SM編集者による変更に基づくターゲットモデルの変更とTM編集者によるターゲットモデルの変更とをマージする必要がある。
本明細書では、前者の変更によって生じたターゲットモデルの初版からの差分をΔ1と表記し、後者の変更によって生じたターゲットモデルの初版からの差分をΔ2と表記する。図1では、TM0とTM1の差分がΔ1に相当し、TM0とTM0_nの差分がΔ2に相当する。
ここで、ソースモデル及びターゲットモデルは、ソースモデルがターゲットモデルより上位であれば、モデル駆動型アーキテクチャにおける如何なるレベルのモデルであってもよいが、ターゲットモデルとしてソースコードを例にとり、Δ1及びΔ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に相当する。
尚、既存のCVSやEclipse comparing supportツール等を用いてソースコードの差分を抽出することはできるが、そこには、ソースモデルの変更に基づく差分であるΔ1と、ターゲットモデルのレベルでの差分であるΔ2とが混在している。そこで、本実施の形態では、Δ1とΔ2とを区別して扱い、それらのマージを容易にかつ誤りなく行う。
具体的には、モデル駆動型開発において、変換依存モデル(以下、「TDM」という)を生成し、これを用いてΔ1及びΔ2を抽出しマージする。
まず、TDMの生成について説明する。
図3は、モデル変換におけるTDMの位置付けを例示した図である。TDMは、例えば、モデル変換ツール等に付随するTDM生成機能によって生成すればよい。図では、SM0からTM0へモデル変換を行う際に、このモデル変換に対応するTDMであるTDM0が生成される様子を示している。
ここで、TDMは、ソースモデルからターゲットモデルへのモデル変換におけるモデル要素単位のマッピング情報を持つ。モデル変換では、ソースモデルに含まれるモデル要素を変数として生成テンプレートに当てはめることで、ターゲットモデルが生成される。TDMで扱うマッピング情報は、このソースモデルのモデル要素がターゲットモデルのどのモデル要素に関係しているかを指す。
図4に、TDMのメタモデルを示す。TDMは、モデル変換における汎用的な構造となっている。
以下、TDMのメタモデルにおける各要素及び属性について説明する。
+DependencyModel
この要素は、TDMのルート要素である。通常、モデル変換を用いて開発されるシステムに関して1つのモデルインスタンスを持つ。もしくはモデル変換の対象がサブシステムに分割できる場合は、複数のモデルインスタンスを持つこともできる。
また、この要素は、次の属性を持つ。
-creationDate:TDMが生成された日付(モデル変換が最初に行われた日付)。
-modificationDate:TDMが最後に変更された日付。
-id:この要素が複数ある場合等に各要素を識別するために用いられるID。
+DependencyGroup
この要素は、ソースモデルに含まれる各モデル要素とターゲットモデルに含まれる各モデル要素のマッピングに関する変換の集合を示す。通常、モデル変換は、ソースモデルの一部の情報をテンプレートに当てはめてターゲットモデルのリソースを生成することにより行われる。例えば、ターゲットモデルがJ2EEのソースコードである場合、DDL(Data Definition Language)、JSP(JavaServer Pages)、Javaのソースコード等が、それぞれテンプレートを使って生成される。ここで、例えば、複数生成されるJSPファイルは、プログラムモデルの意図によってファイル内部の表現構造が異なる。但し、同じテンプレートから生成されたJSPファイルは同じ形式の内部構造を持つ。そこで、同じテンプレートを用いるモデル要素の変換の集合という意味で、この要素が設けられている。
また、この要素は、次の属性を持つ。
-resourceType:ファイルリソースの種類(JSP、Javaのソースコード、DDL、Propertyファイル等)。
-id:この要素が複数ある場合等に各要素を識別するために用いられるID。
+Dependency
この要素は、ソースモデルとターゲットモデルの間のモデル変換に関するファイル単位の依存関係を示す。即ち、テンプレートから生成される個々のファイル単位の依存関係である。
また、この要素は、次の属性を持つ。
-filePath:ファイルシステム上のファイル名を含むパス。
-id:この要素が複数ある場合等に各要素を識別するために用いられるID。
+Mapping
この要素は、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編集者の判断を必要とするタイプである。
+SourceModelPath
この要素は、ソースモデル内のモデル要素の絶対パスを示す。
また、この要素は、次の属性を持つ。
-id:この要素が複数ある場合等に各要素を識別するために用いられるID。
-path:ソースモデル内のマッピング対象となるモデル要素を指定するパス(XPath、Javaの要素パス等)。
+TargetModelPath
この要素は、ターゲットモデル内のモデル要素の絶対パスを示す。ターゲットモデルにおいて、マッピング対象のモデル要素の値に対してprefixとsuffixが存在すれば、これらを定義することも可能である。
また、この要素は、次の属性を持つ。
-id:この要素が複数ある場合等に各要素を識別するために用いられるID。
-path:ターゲットモデル内のマッピングの対象となるモデル要素を指定するパス(XPath、Javaの要素パス等)。
-suffix:モデル変換によってMapping要素のvalue属性の値に付されたsuffix。
-prefix:モデル変換によってMapping要素のvalue属性の値に付されたprefix。
-scope:スコープ(以下を参照)。
スコープは、ソースモデルのモデル要素がターゲットモデルへどのようなスコープで変換されているか、という観点から、マッピングの関係を示す。スコープとしては次のいずれかのタイプを指定可能である。
・“elementOnly”:ターゲットモデル内のあるモデル要素のみを示す。
・“includeChildren”:ターゲットモデル内のあるモデル要素とその子要素を示す。
XPathによって、上記2つのタイプの指定が可能となる。また、ターゲットモデルがJavaの場合でも、Javaの言語構造により、クラス、メソッド、宣言等はXMLで表現できる。従って、XPathによる表現が可能となるので、この指定は可能である。
+Change
この要素は、TM編集者によるマッピング関係の変更(Δ2)を記録する。通常は、CVSやSubversion等のツール上で変更が記録され、TDMのマッピングに関係するかがチェックされた後、この要素が追加される。
また、この要素は、次の属性を持つ。
-changedType:変更のタイプ(“Update”又は“Delete”)。
-changedParamType:変更のタイプが“Update”の場合の変更後のパラメータの種類(TargetModelPath要素のscope属性の変更等)。
-changedParamValue:変更のタイプが“Update”の場合の変更後の値。
-changedDateTime:変更の日時。
+InputModels
この要素は、モデル変換における入力及び出力となるモデルを、TDMの視点での入力モデルとして示す。ここでは、ソースモデルとターゲットモデルが入力モデルとなる。
また、この要素は、次の属性を持つ。
-transformationType:利用されているモデル変換ツールの種類。
+TargetModel
この要素は、モデル変換における出力となるターゲットモデルを示す。
また、この要素は、次の属性を持つ。
-modelType:モデルの種類(例えば、XML、Java、JSP)。
-filePath:ファイルシステムにおけるターゲットモデルのファイルパス。
+SourceModel
この要素は、モデル変換における入力となるソースモデルを示す。
また、この要素は、次の属性を持つ。
-modelType:モデルの種類(例えば、XML、Java、JSP)。
-filePath:ファイルシステムにおけるソースモデルのファイルパス。
ここまでTDMのメタモデルについて説明してきたが、次に、TDMの具体的な記述例を示す。
図5は、J2EEアプリケーション等を対象とするTDMの記述例である。この例は、TDMの部分的な例であるので、ターゲットモデルはJavaファイルのみとなっているが、通常は、faces−config.xml等の設定ファイルや、JSPファイルもターゲットモデルとなる。
また、パスの指定には、UMLモデル等のXMLで表現できるリソース(図5では、ソースモデル)については、標準化団体W3Cが提供しているXPathを用いている。また、Javaファイル(図5では、ターゲットモデル)については、“{Class}#{Method}.{Field}”等の木構造を指す表記が使用可能である。JSPやHTMLに関しても木構造として同様な記述方法で示すことができる。
ところで、このTDMの記述例において、マッピング対象のモデル要素は、“Assumption”と“ItemA”の2つである。このうち、“Assumption”は、依存強度Hが指定されているので、マージの際にΔ1がΔ2よりも優先されるようになっている。また、“ItemA”は、依存強度Lが指定されているので、マージの際にΔ2がΔ1よりも優先されるようになっている。
次に、TDMに対するΔ2の記録について説明する。
図6は、Change要素登録機能の振る舞いを例示した図である。初期状態においては、TM0と、TM0が生成される際に生成されたTDM0とが存在している。この状態で、(1)に示すように、TM0がTM編集者によって変更され、TM0_nが生成されたとする。すると、(2)に示すように、Change要素登録機能が呼び出される。そして、(3)に示すように、初期状態と最新状態との差分を抽出し、これがTDMのマッピングに関連がある変更かどうかを判断して、Change要素を作成し追加する。
以上により、Δ2が自動抽出できるようになる。
次いで、ソースモデルの変更後のモデル変換によって生じるターゲットモデルの差分Δ1と、上記Δ2との競合の解決について詳細に説明する。
まず、図3に示したTDM生成機能を含むモデル変換機能と、図6に示したChange要素登録機能とを含むモデル編集装置10を用いたTM編集者によるマージ作業の流れについて述べる。図7は、このようなマージ作業の流れを示した図である。尚、図において、実線は、モデル変換時における変更管理のためのイベントの流れを示す。破線は、イベント以外の関連を示す。
まず、モデル編集装置10には、TM0及びTDM0が保持されると共に、TM編集者の作業によってTM0の最新版であるTM0_nが生成されているものとする。また、Change要素登録機能12が、TM0とTM0_nの差分Δ2を常時抽出し、TDM0に登録することでTDM0_nを生成しているものとする。
このような状況で、SM編集者は、ソースモデルをSM0からSM1に変更すると、(1)に示すように、TM編集者にその旨を通知する。この通知を受けると、TM編集者は、(2)に示すように、モデル変換機能11を呼び出し、SM1をこれに受け渡す。これにより、モデル変換機能11は、SM1をTM1に変換し、その際、TDM1を生成する。次に、TM編集者は、TM0とTM1の差分Δ1と、TM0とTM0_nの差分Δ2とをマージするため、(3)に示すように、マージ機能13を呼び出す。これにより、マージ機能13は、Δ1抽出機能14を呼び出し、Δ1抽出機能14は、TDM0とTDM1からΔ1を抽出してマージ機能13に伝える。その後、マージ機能13は、後述する処理により、マージした結果であるTM01と、マージの記録であるマージログとを生成する。
そして、以上の処理の終了後、TM編集者は、マージログ及びTM01を見ながら、結果を確認する。もし依存強度がNとなっていてTM編集者によるマージ作業が必要である場合には、マージログの記述からTM01を修正していく。
次に、図7に示したモデル編集装置10の機能及び動作について詳細に説明する。
まず、Change要素登録機能12の動作について説明する。尚、この動作説明においては、ターゲットモデルを実装レベルのソースコードとする。
図8は、Change要素登録機能12の動作を示したフローチャートである。
まず、Change要素登録機能12は、TM編集者による変更前のソースコードと、TM編集者による変更後のソースコードとの差分を読み出す(ステップ201)。そして、差分が読み出されたかどうかを判定する(ステップ202)。ここで、差分が読み出されなければ、処理は終了する。差分が読み出されれば、TDMを読み込み、TDMに含まれるMapping要素の中から差分に関係するMapping要素を確認する(ステップ203)。即ち、差分の中には、モデル変換に関係のないものもあるので、ここでそのような差分を排除している。
その後、Change要素登録機能12は、その差分がMapping要素に変更をもたらすようなものであるかどうかを判定する(ステップ204)。その結果、Mapping要素に変更をもたらすようなものでなければ、ステップ201に戻って、別の差分を読み込む。一方、Mapping要素に変更をもたらすようなものであれば、変更タイプを確認する(ステップ205)。
変更タイプが「更新」である場合は、更新に関する情報(Update情報)を取得し、更新を表すChange要素を生成する(ステップ206)。また、変更タイプが「削除」である場合は、削除に関する情報(Delete情報)を取得し、削除を表すChange要素を生成する(ステップ207)。そして、Change要素登録機能12は、生成されたChange要素をTDMに追加する(ステップ208)。
次に、マージ機能13の詳細な機能構成について説明する。
図9は、マージ機能13を独立した装置であるマージ装置30で実現する場合のマージ装置30の機能構成を示したブロック図である。
マージ装置30は、TDMを記憶するTDM記憶部31と、TDMからΔ1を取得するΔ1取得部32と、TDMからΔ2を取得するΔ2取得部33とを備える。また、Δ1とΔ2をマージするマージ部34と、マージする際に参照される規則を記憶する規則記憶部35と、マージ結果の反映対象であるターゲットモデルを記憶するターゲットモデル記憶部36とを備える。
TDM記憶部31は、記憶部の一例であり、図4及び図5を参照して説明したTDMを記憶する。例えば、SM0をTM0に変換する際にTDM0が生成され、SM1をTM1に変換する際にTDM1が生成されたとすると、これらの両方を記憶する。また、TM0を独自に修正してTM0_nを生成した場合は、TM0とTM0_nの差分がChange要素として登録されたTDM0_nも記憶する。尚、本実施の形態では、TDMとしてXML等の構造化文書で記述されたものを用いるが、必ずしも構造化文書でなくてもよく、その他の形式を採用してもよい。
Δ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要素を抽出することにより取得する。
マージ部34は、規則記憶部35に記憶された規則を必要に応じて参照してΔ1とΔ2をマージし、ターゲットモデル記憶部36に記憶されたターゲットモデルに対し、マージ結果を反映させる。
規則記憶部35は、Δ1とΔ2が競合した場合のために、Δ1とΔ2の優先度に関する情報の一例として、マージ処理に関する複数の規則を記憶している。そして、複数の規則は識別子の一例である依存強度によって特定できるようになっている。本実施の形態では、この依存強度をTDMのMapping要素の属性として設定するが、ソースモデルの要素と依存強度の対応情報、又は、ターゲットモデルの要素と依存強度の対応情報をTDMとは別に記憶する構成を採用してもよい。ここで、規則には、例えば、マージの際にΔ1をΔ2よりも優先させるべきかΔ2をΔ1よりも優先させるべきかといったものがある。また、どのような場合にΔ1をΔ2よりも優先させるべきでどのような場合にΔ2をΔ1よりも優先させるべきかといった条件を記憶してもよい。尚、この規則の具体例は後述する。
ターゲットモデル記憶部36は、マージ結果が反映される前のターゲットモデルと、マージ結果を反映させたターゲットモデルとを記憶する。図7を参照して説明した例では、TM0_nが前者であり、TM01が後者である。
ここで、規則記憶部35に記憶される内容について、具体的に説明する。
図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の優先順位が予め決められていることになるので、依存強度の特徴を用いた自動的な処理が可能になる。
これに対し、(d)は、依存強度Nの場合の処理パターン表である。既述の通り、依存強度Nでは、Δ1とΔ2の優先順位が不明なので、TM編集者によるマージ処理が必要となる旨が定義されている。尚、実際のモデル駆動型アーキテクチャを用いた開発では、開発の流れからデータを収集することで、なるべく依存強度Nの指定を減らしていくことが望ましいと言える。この場合、開発の流れからのデータの収集は、SM編集者及びTM編集者が、ログ機能等を用いて出力された毎回のマージログに基づいて判断することで可能となる。
また、このように、依存強度を用いてマージを行うことにより、既存技術では不可能であったモデル駆動型開発におけるマージが可能となる。
次いで、マージ装置30の動作について説明する。
図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)。
ここで、Δ1の変更タイプには、「Addition」、「Update」、「Delete」がある。
そこで、マージ部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及びステップ310において、Δ2があると判定された場合は、Δ1とΔ2とが同じ要素について競合することになる。この場合は、図10を参照して説明した処理パターン表に基づいた処理を行う(ステップ312)。
まず、ステップ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編集者によるマージ処理を促す。
次に、ステップ310からステップ312に処理が進んできた場合について説明する。
この場合、Δ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」であれば、何もしない。
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。図12は、このようなコンピュータのハードウェア構成の一例を示した図である。図示するように、コンピュータは、演算手段であるCPU(Central Processing Unit)10aと、M/B(マザーボード)チップセット10bを介してCPU10aに接続されたメインメモリ10cと、同じくM/Bチップセット10bを介してCPU10aに接続された表示機構10dとを備える。また、M/Bチップセット10bには、ブリッジ回路10eを介して、ネットワークインターフェイス10fと、磁気ディスク装置(HDD)10gと、音声機構10hと、キーボード/マウス10iと、フレキシブルディスクドライブ10jとが接続されている。
尚、図12において、各構成要素は、バスを介して接続される。例えば、CPU10aとM/Bチップセット10bの間や、M/Bチップセット10bとメインメモリ10cの間は、CPUバスを介して接続される。また、M/Bチップセット10bと表示機構10dとの間は、AGP(Accelerated Graphics Port)を介して接続されてもよいが、表示機構10dがPCI Express対応のビデオカードを含む場合、M/Bチップセット10bとこのビデオカードの間は、PCI Express(PCIe)バスを介して接続される。また、ブリッジ回路10eと接続する場合、ネットワークインターフェイス10fについては、例えば、PCI Expressを用いることができる。また、磁気ディスク装置10gについては、例えば、シリアルATA(AT Attachment)、パラレル転送のATA、PCI(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス10i、及び、フレキシブルディスクドライブ10jについては、USB(Universal Serial Bus)を用いることができる。
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
このように、本実施の形態では、モデル変換時にTDMを生成し、ソースモデルとターゲットモデルのマッピング情報を保持するようにした。これにより、Δ1とΔ2に関するツールによる変更管理の支援を可能にしている。Δ2に関しては、TDMのマッピング情報がなければ、ソースモデルとの関係が不明のままターゲットモデルを変更していくことになるが、本実施の形態によれば、そのような関係を維持することが可能となる。
また、本実施の形態では、依存強度が定義されたTDMを用いたマージ機能により、TM編集者によるマージ作業を従来に比べて軽減することを可能にする。依存強度が予め正しく定義できる場合には、競合箇所に関するTM編集者によるマージ作業を削減することもできる。
従って、本実施の形態によれば、モデル駆動型開発における変更管理作業の時間短縮と品質向上が可能になる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
本発明の実施の形態における編集及びマージについて説明するための図である。 本発明の実施の形態におけるターゲットモデルとしてのソースコードの一例である。 本発明の実施の形態におけるターゲットモデルとしてのソースコードの一例である。 本発明の実施の形態におけるターゲットモデルとしてのソースコードの一例である。 本発明の実施の形態におけるTDMの生成について説明するための図である。 本発明の実施の形態におけるTDMのメタモデルを示した図である。 本発明の実施の形態におけるTDMの記述例を示した図である。 本発明の実施の形態におけるChange要素の登録について説明するための図である。 本発明の実施の形態におけるマージ作業の流れを示した図である。 本発明の実施の形態におけるChange要素登録機能の動作を示したフローチャートである。 本発明の実施の形態におけるマージ装置の機能構成を示したブロック図である。 本発明の実施の形態における処理パターン表の例を示した図である。 本発明の実施の形態におけるマージ装置の動作を示したフローチャートである。 本発明の実施の形態を適用可能なコンピュータのハードウェア構成を示した図である。
符号の説明
10…モデル編集装置、11…モデル変換機能、12…Change要素登録機能、13…マージ機能、14…Δ1抽出機能

Claims (14)

  1. モデル駆動型開発を支援する装置であって、
    前記モデル駆動型開発においてソースモデルから生成されたターゲットモデルの変更のうち、当該ソースモデルの更新に起因する変更である第1の変更に関する第1の変更情報を取得する第1の取得部と、
    前記ターゲットモデルの変更のうち、前記ソースモデルの前記更新に起因しない変更である第2の変更に関する第2の変更情報を取得する第2の取得部と、
    前記第1の変更情報と前記第2の変更情報とを、予め記憶された前記第1の変更及び前記第2の変更の優先度に関する情報に基づいてマージするマージ部と
    を備えた、装置。
  2. 前記ソースモデルの更新前における前記ソースモデルの要素と前記ターゲットモデルの要素との対応関係を示す第1の構造化文書と、前記ソースモデルの更新後における当該対応関係を示す第2の構造化文書とを記憶する記憶部を更に備え、
    前記第1の取得部は、前記第1の構造化文書と前記第2の構造化文書との差分を前記第1の変更情報として取得する、請求項1の装置。
  3. 前記ソースモデルを構成する第1の要素と、前記ターゲットモデルを構成する第2の要素と、当該第2の要素の変更を示す第3の要素との対応情報を記憶する記憶部を更に備え、
    前記第2の取得部は、前記対応情報から前記第3の要素を抽出することにより、前記第2の変更情報を取得する、請求項1の装置。
  4. 前記優先度に関する情報は、マージの際に前記第1の変更が前記第2の変更よりも優先されるための条件を含む、請求項1の装置。
  5. 前記優先度に関する情報は、マージの際に前記第1の変更が前記第2の変更よりも優先されるかどうかをユーザに問い合わせる旨の情報を含む、請求項1の装置。
  6. 前記優先度に関する情報は、マージ処理に関する複数の規則を含み、当該複数の規則の各々は、識別子によって特定される、請求項1の装置。
  7. 前記ターゲットモデルを構成する要素と前記識別子との対応情報を記憶する記憶部を更に備え、
    前記マージ部は、前記第1の変更情報のうち前記要素の変更に関する変更情報と、前記第2の変更情報のうち前記要素の変更に関する変更情報とを、前記識別子によって特定される規則を用いてマージする、請求項6の装置。
  8. モデル駆動型開発を支援する方法であって、
    第1のソースモデルを第1のターゲットモデルに変換するステップと、
    前記第1のソースモデルの更新を行うことにより第2のソースモデルを生成するステップと、
    前記第2のソースモデルを第2のターゲットモデルに変換するステップと、
    前記第1のソースモデルの前記更新とは無関係に前記第1のターゲットモデルに変更を加えることにより第3のターゲットモデルを生成するステップと、
    前記第1のターゲットモデルから前記第2のターゲットモデルへの変更である第1の変更に関する第1の変更情報と、前記第1のターゲットモデルから前記第3のターゲットモデルへの変更である第2の変更に関する第2の変更情報とを、予め記憶された当該第1の変更及び当該第2の変更の優先度に関する情報に基づいてマージするステップと
    を含む、方法。
  9. 前記優先度に関する情報は、マージの際に前記第1の変更が前記第2の変更よりも優先されるための条件を含む、請求項8の方法。
  10. モデル駆動型開発を支援する装置としてコンピュータを機能させるプログラムであって、
    前記コンピュータを、
    前記モデル駆動型開発においてソースモデルから生成されたターゲットモデルの変更のうち、当該ソースモデルの更新に起因する変更である第1の変更に関する第1の変更情報を取得する第1の取得部と、
    前記ターゲットモデルの変更のうち、前記ソースモデルの前記更新に起因しない変更である第2の変更に関する第2の変更情報を取得する第2の取得部と、
    前記第1の変更情報と前記第2の変更情報とを、予め記憶された前記第1の変更及び前記第2の変更の優先度に関する情報に基づいてマージするマージ部と
    して機能させる、プログラム。
  11. 前記優先度に関する情報は、マージの際に前記第1の変更が前記第2の変更よりも優先されるための条件を含む、請求項10のプログラム。
  12. 前記優先度に関する情報は、マージの際に前記第1の変更が前記第2の変更よりも優先されるかどうかをユーザに問い合わせる旨の情報を含む、請求項10のプログラム。
  13. 前記優先度に関する情報は、マージ処理に関する複数の規則を含み、当該複数の規則の各々は、識別子によって特定される、請求項10のプログラム。
  14. 前記マージ部は、前記ターゲットモデルを構成する要素と前記識別子との対応情報を所定の記憶部から読み出し、前記第1の変更情報のうち当該要素の変更に関する変更情報と、前記第2の変更情報のうち当該要素の変更に関する変更情報とを、当該識別子によって特定される規則を用いてマージする、請求項13のプログラム。
JP2007109181A 2007-04-18 2007-04-18 モデル駆動型開発を支援する装置及び方法 Active JP4412674B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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