(57)【要約】【課題】  モデルベース開発において、モデル間の内容に関する変更を差分として検出するツールを提供する。【解決手段】  内容がテキストで記述された少なくとも２個のモデルを比較して両者の差分を検出するモデル差分検出ツールにおいて、比較すべき２個のモデルをテキスト対テキストで比較し差分を検出する比較部（１２）と、無視すべき属性を保存する記憶部（１５）と、比較部（１２）で検出された差分が前記記憶部に保存された無視すべき属性に関するものであるか否かを判断する判断部（１３）と、この判断部（１３）で無視すべき属性に関するものであるとされた差分以外の差分を表示する差分表示部（１４）を設ける。【選択図】      図４
2006209179.tif 000002
【特許請求の範囲】
【請求項１】
内容がテキストで記述された少なくとも２個のモデルを比較して両者の差分を検出するモデル差分検出ツールであって、
前記２個のモデルをテキスト対テキストで比較し差分を検出する比較部と、
無視すべき属性を保存する記憶部と、
前記比較部で検出された差分が前記記憶部に保存された無視すべき属性に関するものであるか否かを判断する判断部と、
前記判断部で無視すべき属性に関するものであるとされた差分以外の前記検出された差分を表示する差分表示部、を備えることを特徴とする、モデル差分検出ツール。
【請求項２】
請求項１に記載のモデル差分検出ツールにおいて、さらに、前記記憶部への無視属性の追加、削除のための入力部を設けたことを特徴とする、モデル差分検出ツール。
【請求項３】
請求項１に記載のモデル差分検出ツールにおいて、前記比較部は前記差分の検出と共に該差分のテキストデータファイル構造上の位置情報を同時に取得し、前記差分表示部は前記差分と共に前記位置情報を表示することを特徴とする、モデル差分検出ツール。
【請求項４】
請求項１に記載のモデル差分検出ツールにおいて、前記比較部は前記差分の検出と共に該差分のテキストデータファイル構造上の位置情報を同時に取得し、前記差分表示部は前記比較すべき２個のモデルの少なくとも一方をコピーしてコピーファイルを作成し、前記作成されたコピーファイル上に前記位置情報に基づいた差分情報を反映することを特徴とする、モデル差分検出ツール。
【請求項５】
請求項４に記載のモデル差分検出ツールにおいて、前記コピーファイル上への前記差分情報の反映は、強調表示によって行われることを特徴とする、モデル差分検出ツール。
【請求項６】
請求項１乃至５の何れか１項に記載のモデル差分検出ツールにおいて、前記無視すべき属性は、表示位置情報、表示色情報、フォント情報を含む表示に関する属性であることを特徴とする、モデル差分検出ツール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、図式によって仕様および機能を記述するモデル間の差分を検出する、モデル差分検出ツールに関する。
【背景技術】
【０００２】
システム規模の大型化、設計仕様の複雑化に伴って、システム開発の困難性および開発期間の長期化が問題となっている。このような問題を解決する手法としてモデルベース開発が提唱され、大きな成果を上げている。モデルベース開発は、従来のコードベース開発とは異なり、モデルを中心に開発を行うものであり、図式によって設計仕様および機能が記述される。モデルには、オブジェクト指向設計で用いられるＵＭＬ（Ｕｎｉｆｉｅｄ・Ｍｏｄｅｌｉｎｇ・Ｌａｎｇｕａｇｅ）や物理現象を図式で表すものなどが一般に知られている（例えば、特許文献１参照）。
【０００３】
モデルベース開発を行うに当っても、従来のコードベース開発と同様に、ファイル間のバージョン管理を行って変更履歴を管理し、また、前回作成モデルと今回作成モデルとの差分を比較して変更箇所を特定することが望まれる。このような管理によって、変更規模の見積もりが可能となり、さらに必要な仕様が全て盛り込まれたか否かを確認することができるので、システム開発の生産性が向上する。
【０００４】
ところが現状では、モデルを記述するアプリケーションによっては差分ツールが提供されないものも存在し、差分ツールが提供されていてもモデル図の表示位置を動かしただけで差分と認識するなどの問題が存在する。また、汎用のバージョン管理ツールはコードベースでの利用を想定したものであり、モデル自体の管理はできても相違点があることを検出するのみである。モデルの中にはその内容がテキストで記述されたものもあり、その場合は汎用の差分ツールにより相違点のテキスト比較が可能であるが、比較結果を図式で表すことはできない。モデルベース開発では、比較結果を図式で表示することができないとユーザはそれを有効に利用することができない。
【０００５】
【特許文献１】特開２００３−２１６４２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
図１に、仕様および機能を図式で記述したモデルブロック（以下、ブロック）１を含むモデルファイル２と、ブロック１の内容をテキストで記述したテキストファイル３の一例を示す。尚、図１は、以下の図２、図７および図１０とともに、ＩＢＭ社のアプリケーションソフトである“Ｒｏｓｅ”の画面を引用して示している。図１に示すように、ブロック１の内容がテキストで記述されている場合は、汎用の差分ツールを用いて、変更前後のモデル間で内容の変更箇所を確認すること、即ち差分の検出が可能である。
【０００７】
例えば、図２に示すように、ブロック４および５を含むモデルファイル６（ｂ．ｍｄｌ）が存在し、これが変更されてモデルファイル７（ｃ．ｍｄｌ）が作成された場合を考える。モデルファイル７はブロック４ａと５ａを含み、ブロック４ａはモデルファイル６中のブロック４とは相違しないが、ブロック５ａはブロック５とは内容は相違しないがその表示位置が相違しているものとする。
【０００８】
このような２個のファイルの差分をテキスト情報に基づいて比較すると、ブロック４および４ａ間では相違が無いがブロック５および５ａ間で相違が検出される。しかしながらその相違点はディスプレイ上の表示位置に関するものであって、実質的な内容の変更を伴わない。したがって、このような相違が検出されると、ユーザはその相違がどのような情報に関するものかについて検討しなければならず、かえって作業が煩雑となる。
【０００９】
図３は、ブロック５および５ａのテキスト情報を一般的な差分ツール（図ではマイクロソフト社のＷｉｎＤｉｆｆを示す）で比較した結果を示す。ブロック５と５ａは、内容において相違しないが表示位置が異なっているため、拡大部分８に示すように、表示位置に関する属性 “Ｌｏｃａｔｉｏｎ”において相違する値が検出される。その結果、ブロック５ａとしては内容に変更が無いにも拘わらず、差分ツールでは差分有りとして表示されることになる。
【００１０】
本発明は、従来の技術のかかる点に関してなされたもので、テキストで記述されたモデル同士の比較において、図として意味のある差分のみを検出することが可能な、新規なモデル差分検出ツールを提供することを課題とする。
【００１１】
本発明はさらに、検出した差分をモデル図上に反映することが可能な、モデル差分検出ツールを提供することを課題とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明のモデル差分検出ツールは、２個のモデルをテキスト対テキストで比較し差分を検出する比較部と、無視すべき属性を登録し保存する記憶部と、比較部で検出された差分が記憶部に保存された無視すべき属性に関するものであるか否かを判断する判断部と、この判断部で無視すべき属性に関するものであるとされた差分以外の差分を表示する差分表示部を備えている。
【００１３】
上記本発明の差分検出ツールは、さらに、記憶部への無視属性の追加、削除のための入力部を備えている。
【００１４】
また、比較部は差分の検出と共にこの差分のテキストデータファイル構造上の位置情報を同時に取得し、差分表示部は検出された差分と共にこの位置情報を表示する。
【００１５】
この場合、差分表示部は比較すべき２個のモデルの少なくとも一方をコピーしてコピーファイルを作成し、作成されたコピーファイル上に位置情報に基づいた差分情報を反映する。この差分情報の反映は、モデルブロックのハイライト表示、点滅表示あるいは色属性の変更などの強調表示によって行われる。
【００１６】
また、本発明の上記無視すべき属性は、表示位置情報、表示色情報、フォント情報を含む表示に関する属性とする。
【発明の効果】
【００１７】
本発明のモデル差分検出ツールによれば、図式の内容に関係しない、例えば、表示位置情報、表示色情報、フォント情報に関する属性が予め無視属性として記憶部に登録されている。したがって、比較すべきモデル間において検出された差分をこの登録情報と比較することによって、無視属性に関係する差分を自動的に排除することができる。その結果、意味のあるモデル間差分検出が容易に実行される。このような差分検出により、システムの生産性測定、モデル設計者のバージョン管理、仕様が全て盛り込まれたか否かのチェックなどが容易となり、システムの開発効率が向上する。
【００１８】
また、入力部を介してユーザによる無視属性の追加、削除を可能とすることで、アプリケーションのバージョンアップなどによる属性名の変更に対処することが可能となり、さらに新たなモデル記述言語にも対応できる。
【００１９】
さらに、差分の表示に当って、差分情報に、その差分情報が存在するファイル上の位置情報を添付することによって、差分の検索が容易となる。
【００２０】
さらに、モデルをコピーしてコピーファイルを形成し、差分と判断された箇所をコピーファイル上にハイライトなどの手段により強調表示することによって、ユーザは差分箇所を容易に認識することができる。これにより、テキスト情報の比較であるということを意識せず、モデル間の自然な差分表示として差分結果を利用することができる。また、一時的なコピーファイルを使用して差分表示を行うことで、本来変更してはならない元ファイルを安全に保持しながら、差分表示を行うことができる。
【発明を実施するための最良の形態】
【００２１】
図４は、本発明の実施形態１にかかるモデル差分検出ツール１０の概略構成を示すブロック図である。モデル差分検出ツール１０は、比較すべき２個またはそれ以上のモデル図のテキスト情報を入力するテキスト情報入力部１１と、入力されたテキスト情報を比較する比較処理部１２と、比較の結果検出された相違が図式相違に相当するか否かを判定しその結果を保持する図判定処理部１３と、保持された結果を表示する表示処理部１４と、さらにモデルの位置情報、表示色、フォントなどの無視すべき属性を保持する非図式情報保持部１５を備える。また、非図式情報保持部１５に保持された内容を削除し、変更しあるいは追加することを可能とするための入力手段１６を備えていても良い。
【００２２】
図式をファイル間で比較する場合、モデルの表示位置、表示色、フォントなど表示に関する情報は、図式の意味に関係が無く、したがって無視することが望ましい。非図式情報保持部１５では、このような無視することが望ましい属性情報を、モデル記述言語またはアプリケーションに応じて、外部ファイルあるいは外部データベースに予め登録している。図判定処理部１３は、検出された差分が無視属性に関するものか否かを、非図式情報保持部１５に記憶された内容を参照することによって決定する。
【００２３】
通常、無視すべき属性は、モデル記述言語あるいはモデル図式エディタを提供するアプリケーションにより異なっている。したがって、有効な比較処理を行うためには、モデル記述言語あるいはアプリケーション毎に無視する属性を設定する必要がある。また、アプリケーションなどのバージョンアップによっても属性名が変更される場合がある。
【００２４】
図５に、アプリケーションによる属性名相違の一例を示す。表示の位置情報は、例えばアプリケーションＡでは“Ｐｏｓｉｔｉｏｎ”で示され、アプリケーションＢでは“Ｌｏｃａｔｉｏｎ”として示される。また、コメントは、アプリケーションＡでは“Ｃｏｍｍｅｎｔ”として記述され、アプリケーションＢでは“Ｄｅｓｃｒｉｐｔｉｏｎ”として示される。したがって、アプリケーションのバージョンアップによって追加されあるいは変更された無視属性を、入力手段１６を介してユーザが任意に設定可能とする。あるいは、無視属性を外部ファイルあるいは外部データベースに格納しておき、差分検出実行の度に、「・・・は無視属性とする、しない」を入力手段１６を介して切替えるようにしても良い。
【００２５】
図６は、図４に示すモデル差分検出ツール１０の動作説明のためのフローチャートである。以下に、図６のフローチャートを参照しながら、図４に示す装置の動作を説明する。
【００２６】
まず、ステップＳ１で、比較すべき２個のモデルについてのテキストファイルからテキスト情報を入力し、文字列を検出する。ステップＳ２で、検出された文字列をモデル間で比較する。文字列が一致した場合（ステップＳ２のＹＥＳ）は、そこに変更が無いため、ステップＳ１に戻り次の文字列を検出する。ステップＳ２で比較された文字列が一致しない場合（ステップＳ２のＮＯ）は、比較すべきモデル間に何らかの差分が存在するので、ステップＳ３においてその差分が無視属性に関するものであるか否かを判定する。この判定は、図４の非図式情報保持部１５に登録された内容を参照することによって行われる。
【００２７】
ステップＳ３で検出された差分が無視属性に関するものであると判定される（ステップＳ３のＹＥＳ）と、その差分を無視してステップＳ１に戻り次の文字列を検出する。ステップＳ３でＮＯの場合、その差分は意味のある差分であると考えられるため、これを図式相違として保存（ステップＳ４）する。ステップＳ５で全ての文字列の検出が終了したか否かを判定し、全文字列が未検出の場合（ステップＳ５のＮＯ）、ステップＳ１に戻って次の文字列について比較処理を行う。ステップＳ５でＹＥＳの場合は、ステップＳ６で保存された差分の表示を行い、処理を終了する。
【００２８】
なお、図４に示す装置では、比較すべきモデル間の差分が無視属性に関するものであるか否かの判定を図判定処理部１３で行っているが、これを比較処理部１２で行うことも可能である。比較処理部１２として汎用のテキスト比較ツールを使用する場合は、このツールが無視属性に関する判断機能を有していないので、図判定処理部１３に無視属性に関する判定機能を追加し、その判断を行う必要がある。一方、比較処理部１２として新たなツールを開発する場合は、処理部１２に比較機能と共に無視属性に関する判定機能を持たせることができる。即ち、比較処理を汎用のテキスト比較ツールを用いて行うか否かによって、無視属性に関する判定機能を処理部１２または処理部１３のいずれで行うかを決定することができる。
【００２９】
図７〜図１０は、図４に示す表示処理部１４の構成およびその機能を説明するための図である。今、図７（ａ）、（ｂ）に示すような２個のモデルファイル２０（ａ．ｍｄｌ）と３０（ｄ．ｍｄｌ）を比較する場合を考える。比較元のファイル２０は２個のブロック２１（ブロック名ｔｅｓｔ）と２２（ブロック名ｔｅｓｔ２）を含み、同様に比較先のファイル３０も２個のブロック３１（ブロック名ｔｅｓｔ）と３３（ブロック名ｔｅｓｔ２）を含む。比較されるブロック２２とブロック３２では、ＰｒｏｐｅｒｔｙＢがＰｒｏｐｅｒｔｙＣに変更されている。
【００３０】
図７の（ｃ）および（ｄ）は、ブロック２１と３１におけるＭｅｔｈｏｄＡ（）の内容を示す状態遷移図である。比較元のブロック２１では、図（ｃ）に示すように、ＳｔａｔｅＡの値が１であるのに対し、比較先のブロック３１ではＳｔａｔｅＡの値が削除されているものとする。
【００３１】
図７に示すような２個のファイルを図４に示す本発明にかかる差分検出ツールで比較した場合、比較処理部１２において、比較元ファイル２０のブロック２２におけるＰｒｏｐｅｒｔｙＢ（属性１）が、比較先ファイル３０のブロック３２においてＰｒｏｐｅｒｔｙＣ（属性１）に変更され、比較元ファイル２０のブロック２１における値１（属性１）が比較先では削除されていることが理解される。この差分を表示処理部１４でテキスト表示する場合、図８に示す行単位の相違情報（ａ）が表示される。なお、属性１が無視属性でないことは図判定処理部１３で判定される。
【００３２】
しかしながら、図８（ａ）に示す相違情報のみの表示では、ユーザはその相違がファイル中の何処にあるかを検索しなければならず、使い勝手が悪い。したがって、本発明の他の実施形態では、図８（ｂ）に示すように相違情報に位置情報を付加して表示する。これによってユーザは相違がファイル内の何処にあるかを即座に理解することができるので、差分の利用価値が高い。この位置情報は、データの階層情報として示すことが可能である。
【００３３】
図９は、モデルファイル２０のテキストファイルにおけるデータ構造を示す。図示するように、ファイル２０はデータが階層構造で記述されており、したがって図８の差分情報を表示する場合に、データの保存先の位置情報（ｂ）（図８参照）を、例えば、／ｔｅｓｔ２あるいは／ｔｅｓｔ／ｓｔａｔｅ／ＳｔａｔｅＡのようにして追加することにより、差分をより明確に表示することができる。
【００３４】
テキストファイルデータ構造の使用により変更点の位置情報が取得されるので、本発明の他の実施形態では、この位置情報を利用して上記変更を比較先のモデルファイル上に反映させる。この場合、元ファイルを変更することはできないので、比較先のモデルファイルをコピーして新たにコピーファイルを作成し、その上に変更情報を反映させる。変更情報の反映は、変更が存在するブロックあるいはその下の階層において何らかの変更があるブロックをハイライト表示し、または点滅表示することによって実施される。
【００３５】
図１０は、このようにして変更ブロックがハイライト表示されたコピーファイル３００を示す。コピーファイル３００は、図７に示す比較先のモデルファイル３０をコピーしたものである。図７〜９における説明で明らかなように、比較先のファイル３０はブロック３１がその下の階層において比較元のファイルから変更されているので、コピーファイル３００ではブロック３１’をハイライト表示あるいは点滅表示する。さらに、ＭｅｔｈｏｄＡ（）の状態遷移図のコピー３０１において、変更箇所をハイライト表示あるいは点滅表示する。
【００３６】
ブロック３２ではＰｒｏｐｅｒｔｙＣが変更元のＰｒｏｐｅｒｔｙＢから変更されているので、図１０のコピーファイル３００ではブロック３２’がハイライト表示あるいは点滅表示される。これによって、ユーザはモデル間の差分箇所を容易に視認することが可能となる。
【００３７】
なお、図１０に示す差分の強調処理において、例えば、削除されたブロックの場合（例えばブロック３３）は赤で、追加されたブロックなら青で、その下の階層に変更があるブロック３１’の場合は緑で表示しするようにしても良い。この場合、削除されたブロックは比較先モデルには存在しないが、差分表示のために色属性を赤としてコピーファイル上に表示する。また、コピーファイルは比較先ファイルに限らず、比較元ファイルをコピーして作成しても良い。
【図面の簡単な説明】
【００３８】
【図１】モデル図とその内容を示すテキストファイルとを示す図。
【図２】モデルファイルの変更のイメージを示す図。
【図３】従来の差分検出ツールによる検出結果を示す図。
【図４】本発明の１実施形態にかかるモデル差分検出ツールの概略構成を示すブロック図。
【図５】アプリケーションによる属性名の違いを示す図。
【図６】図４に示す装置の動作説明のためのフローチャート。
【図７】図４に示す装置の動作説明に供する図。
【図８】本発明にかかる表示例を示す図。
【図９】テキストファイルのデータ構造を示す図。
【図１０】本発明にかかる他の表示例を示す図。
【符号の説明】
【００３９】
１０    モデル差分検出ツール
１１    テキスト情報入力部
１２    比較処理部
１３    図判定処理部
１４    表示処理部
１５    非図式情報保持部
１６    入力手段
２０    比較元ファイル
２１、２２    モデルブロック
３０    比較先ファイル
３１、３２    モデルブロック
３００    コピーファイル
【図１】
2006209179.tif 000003
【図２】
2006209179.tif 000004
【図３】
2006209179.tif 000005
【図４】
2006209179.tif 000006
【図５】
2006209179.tif 000007
【図６】
2006209179.tif 000008
【図７】
2006209179.tif 000009
【図８】
2006209179.tif 000010
【図９】
2006209179.tif 000011
【図１０】
2006209179.tif 000012