特徴と機能

ダイアグラム上で差分比較

Enterprise Architectの標準機能では主にテキストベース比較でしたが、LemonTreeではダイアグラム上で差分を確認でき、直感的に差分を把握することができます。また、Enterprise Architect の標準機能では表示できない、シーケンス図のメッセージなど接続の変更も表示できます。

Enterprise Architect
(ベースライン機能を利用した比較)





LemonTreeのUIは、リスト・ツリー・図の3つのビューで構成されています。ツリービューは Enterprise Architectのモデルブラウザのように表示され、また3つのビューが同期します。そのためリストやツリーで差分項目をクリックすると図で変更箇所を確認でき、効率的に差分を把握することができます。

3-Way比較とマージのプレビュー

3-Way比較による差分把握

3-Way比較(ベースモデルを含む3モデルの比較)によりモデルのバージョン毎にどのような変更がされているかを正確に把握することができます。


マージのプレビュー

マージする前にダイアグラム上あるいはブラウザ上でマージ後のモデルがどのようになるかをプレビューすることができます。競合解決にも役立ちます。


LemonTreeのモデルマージについて、チーム開発における競合を例にご紹介します。

たとえば、下記のように同じ要素を複数人が同時に編集するとマージのときに競合となることがあります。そのような場合に、誰がどのように編集したかを LemonTree では視覚的に分かりやすく表示します。



「ベースモデル (V1)」をベースとして「編集モデル (V1')」「最新モデル (V2)」をそれぞれと比較することで、競合を含めて誰がどのように編集したかを簡単に確認することができます。


LemonTreeでの3-Way比較とマージ


マージプレビューで、マージ結果を事前に確認しながら差分を反映することができるので、ユーザの意図に沿った形で適切にマージすることができます。

マージプレビューでは、V1 から変更されたものを反映しています。もし V1' と V1'' の変更内容で競合がある場合は、画面の左側に比較表示されている V1'' の変更内容 (V1とVerenaの差分) を優先的に反映しています。

マージプレビューの内容を変更することもできます。ツリービューで該当項目の横にあるボタンをクリックすると簡単に変更することができます。

マージプレビューの内容で問題がなければ、Start Mergeボタンをクリックするだけで簡単にマージファイルを作成することができます。

マージを実行しても比較対象の EAPX/EAP ファイルは変更しないので、もしマージ後に間違いに気づいた場合でも簡単に再比較を行なうことができます。

Git運用の実現


複数人の設計者で並行作業でモデルを作成する場合、モデルの同時編集やマージが頻発します。このような分散開発において 利用されるバージョン管理システムの一つに Git がありますが、Enterprise Architect とは設計思想が異なるために Enterprise Architectの標準機能ではGitと連携することができません。 LemonTreeはTortoiseGitやGitFlowと連携できますので、EAPX/EAPファイルを対象にしてGit運用を実現することができます。 ここでは、LemonTreeによるGitの利用例をご紹介します。



機能別に複数の担当者が設計する場合、機能のモデルを設計して製品全体のモデルにマージする作業が発生します。 たとえば機能Bのモデルを設計して製品全体のモデルにマージ(Gitでプッシュ)するとき、共通部品や機能Aが変更 されていることがあります。そのようなときにLemonTreeが自動で差分比較するので機能B以外の変更も正確に把握し、 適切かつ効率的にマージを行なうことができます。




仕向けごとに製品設計が異なる場合、共通部分と製品ごとの個別部分について並行作業で設計を行なうことがあります。 このようなケースでは、たとえば日本向け製品を設計中に共通部品の変更があると、共通部品の最新情報を設計中の 日本向け製品に取り込む(マージする)ことがあります。このとき、 LemonTreeで差分比較すると共通部品の変更内容を 正確に把握し、設計中の日本向け製品への影響を確認した上で、適切にマージを行なうことができます。

バージョン管理ツールとの連携

バージョン管理ツール(Git, Subversionなど)との連携により、ソースコードをコミットするような感覚で、競合を解消し、バージョン管理を行うことができます。また、EAPX/EAPファイルをバージョン管理の対象とするため、たとえばEAのバージョン管理機能でパッケージのロック等は必要なく、同時編集が可能となります。

Gitにおける操作例を以下にご紹介します。


バージョン管理ツールとの連携動作としては、Gitでプッシュ時に競合が発生した場合、「競合の編集」を選択するとLemonTreeが自動で差分比較します。モデル上で競合がなければ、LemonTree が自動でマージを完了します。モデル上で競合があれば、自動で表示される LemonTree画面上で競合を確認しマージすることができるので、効率的にマージを行なうことができます。



過去モデルの比較においてもGitの操作でLemonTreeが自動起動し、差分を簡単かつ明確に把握することができます。


Git, Subversionの詳細な操作例はこちらをご覧ください。

比較処理の速さ

LemonTreeの差分比較は、EA標準の比較機能に比べて、処理が速い傾向にあります。
参考情報として以下に計測結果の一例を示します。

対象モデル モデル1 モデル2
計測結果 EA標準(xml) 0分01秒 0分57秒
EA標準(ベースライン) 0分01秒 0分58秒
LemonTree 0分22秒 0分23秒 *EAの約1/2
EAPX情報
(編集前)
パッケージ数 1 123
ダイアグラム数 1 145
要素数 1 1359
ファイルサイズ 2.4MB 10.4MB

特記事項:
・モデルの編集内容
 ・モデル1 : 1つのダイアグラムに、要素1つを新規配置
 ・モデル2 : 12種類(12個)の各UMLダイアグラムに、要素の新規配置・変更・削除を各1件実施
・計測環境
 ・ツール : LemonTree2.0.0, EA14.1ビルド1427
 ・PC環境 : Windows10(64bit),メモリ8GB
・比較方法
 ・EA標準(xml)は、編集後のEAPXファイル上で編集前のxmlファイルと比較を行なっています。
 ・EA標準(ベースライン)では、編集後のEAPXファイル上で既存ベースラインと比較を行なっています。
・計測結果は、比較開始から比較結果表示までの時間となります。
・ファイルサイズはベースライン機能を利用する前の値となります。
・上表は参考値であり条件により計測結果は異なります。

その他

簡単操作で差分比較

比較したいEAPX/EAPファイルを画面で指定するだけで簡単に差分比較することができます。

プロパティビュー

ツリービューで要素を選択すると画面下段のプロパティビューでプロパティの変更箇所を確認することができます。タグ付き値やダイアグラム上のみの変更(位置・サイズなど)も確認することができます。これにより、ツリービューではプロジェクト内での図や要素等の対象のみを階層的に表示することになり、図や要素の探索が容易になります。プロパティビューは表示・非表示を切りかえることができます。

フィルタ

リストビューには変更要素が多いときに条件を指定して特定の要素のみを表示できるフィルタ機能があります。利用したフィルタは保存して再利用することもできます。たとえば、以下の条件でフィルタすることができます。
・新規・変更・削除などの操作分類
・競合のみ
・ダイアグラム上の差分のみ
・レビューしていない差分のみ
また、複合条件も設定可能で、設定したフィルタを保存して再利用することもできます。

レビュー済をチェック

差分のある要素やダイアグラムごとにレビューしたかどうかのチェックを付ける(手動)ことができます。この機能は「フィルタ」や「作業状況の保存と読み込み」と組み合わせて利用することで、たとえばレビューを中断して再開するときに、レビューしていない差分のみリスト表示してレビューを再開することができます。

作業状況の保存と読み込み

差分比較・マージの作業状況の保存したり読み込むことができます。保存する情報は「比較対象のファイル」「マージの選択状況」「レビューの状況」「適用しているフィルタ」となります。これにより、差分の確認やマージ作業に時間がかかる場合に作業中の状況を保存し、後から作業を再開することができます。また、自分の担当範囲を確認後、別の人に作業状況を引き継ぐこともできます。