モデルおよびグラフのバージョン管理
Visual Studio Ultimate では、モデリング プロジェクト/図ファイル、グラフ ドキュメント (.dgml) ファイル、およびアーキテクチャ エクスプローラー クエリ (.dgql) ファイルを Team Foundation バージョン管理の管理下に置くことができます。 詳細については、「サーバーへのファイルの追加」を参照してください。
いくつかの同一のモデリング プロジェクトが複数のユーザーによって取り扱われる場合は、特別な注意が必要になります。
重要
大規模または中規模プロジェクトでモデルを整理する方法の推奨事項については、「モデリング ソリューションの構築」を参照してください。
モデリング プロジェクトのファイル
作業対象のファイルが異なっている限り、複数のユーザーが同時にモデリング プロジェクトに対して作業できます。
異なるユーザーによって加えられた変更間の競合を回避または解決するには、モデルがどのようにファイルに格納されるかを理解することが重要です。
各パッケージは、ModelDefinition プロジェクト フォルダー内の別個の .uml ファイルに格納されます。 モデルには、.uml ファイルも含まれています。 これらのファイルのいずれかが削除されたり破損したりした場合、対応するパッケージまたはモデルは失われます。
それぞれの図は、2 つのファイルに保存されます。 たとえば、クラス図は、次の 2 つのファイルから構成されます。
DiagramName.classdiagram : このファイルが削除されたり破損したりした場合は、図が失われます。ただし、表示されていたクラスおよび関連はモデル内に残っているため、UML モデル エクスプローラーに表示できます。
DiagramName.classdiagram.layout: このファイルが削除された場合、シェイプは図に表示されますが、そのサイズと位置は失われます。 それぞれのレイアウト ファイルは、図ファイルに関連付けられています。 レイアウト ファイルを表示するには、ソリューション エクスプローラーで図ファイルの横の [+] をクリックします。
注意
ファイル間の一貫性を維持することが重要です。たとえば、ソース管理を使用して .uml ファイルの変更をロールバックしたら、それに対応する変更を *diagram ファイルと .layout ファイルでも同時にロールバックする必要があります。*diagram ファイルで示されている要素が .uml ファイルで示されていない場合、その要素は失われます。
共有モデリング プロジェクトの操作
プロジェクトの異なる部分に対して同時に実行された作業間の競合を最小限に抑えるには、次の点に注意します。
モデリング プロジェクトを異なる作業領域を表す複数のパッケージに分割します。 ルート モデル内にモデルを残さずに、モデル全体をパッケージに移動します。 詳細については、「パッケージと名前空間の定義」を参照してください。
異なるユーザーが同時に同じパッケージまたは図を操作しないようにしてください。
プロファイルを使用している場合は、全員が同じプロファイルをインストールしていることを確認します。 「プロファイルとステレオタイプを使用したモデルのカスタマイズ」を参照してください。
作業しているパッケージのみを変更していることを確実にするために、次の操作を行います。
UML クラス、コンポーネント、またはユース ケース図の LinkedPackage プロパティを設定する。
アクティビティまたは相互作用を生成した後、UML モデル エクスプローラーで即座にこれらをパッケージにドラッグする。 この要素は、アクティビティ図またはシーケンス図に最初のノードを生成したときに UML モデル エクスプローラーに表示されます。
パッケージを追跡しやすくするために、実際のパッケージ名に合わせてパッケージ ファイルの名前を変更します。
Team Foundation バージョン管理で、個々のファイルではなく、完全なモデリング プロジェクトに対して、[チェックイン] と [最新バージョンの取得] の操作を実行します。
[取得] 操作は、必ずモデリング プロジェクトをチェックインする直前に実行します。
[取得] 操作を実行する前に、必ずすべての図を閉じます。
注意
ファイルが開かれている状態で [取得] を実行し、その操作でローカルな変更が発生した場合は、ファイルの再読み込みが求められます。その場合は、[いいえ] をクリックし、完全なプロジェクトを再度読み込みます。ソリューション エクスプローラーで、モデリング プロジェクト ノードを右クリックし、[プロジェクトのアンロード] をクリックします。次に、[プロジェクトの再読み込み] をクリックします。
モデルへの排他アクセスが必要な変更
次の種類の変更を行う前に、必ずプロジェクト全体に対してチェックアウト ロックを設定してください。
他のパッケージから参照される要素の名前の変更または削除。
パッケージ境界をまたぐ関係のプロパティの変更。
チェックアウト ロックの詳細については、「ファイルのチェックアウトと編集」を参照してください。
プロジェクト フォルダーの図ファイルの移動
Visual Studio の開発者コマンド プロンプトを開始します。
tf rename を使用して、図ファイルとその .layout ファイルを移動します。
tf rename sourcePath targetPath
ソリューション エクスプローラーで、ファイルを右クリックし、[プロジェクトから除外] をクリックします。
ファイルを追加先のフォルダーに追加します。
ソリューション エクスプローラーで、追加先のフォルダーまたはプロジェクトを右クリックします。次に、[追加] をポイントし、[既存の項目] をクリックします。 ダイアログ ボックスで、図ファイルを選択します。次に、[追加] をクリックします。 レイアウト ファイルは自動的に追加されます。
注意
ファイルを別のプロジェクトに移動することはできません。
モデル ファイルおよび図の変更のマージ
1 つのモデルが複数のユーザーによって同時に操作された場合、モデル ファイルに加えられた変更をマージするよう Team Foundation バージョン管理から求められます。 前のセクションに説明したように別個のプロジェクトで作業することで、マージ操作のほとんどを回避できます。 通常、残りの競合は、自動的に安全にマージできます。 次の種類の変更の場合は、問題は発生しません。
生存線の種類。 生存線を相互作用 (シーケンス図) に追加する場合、既存の型から生存線を生成した場合を除き、その種類はルート モデルに保存されます。
新しいアクティビティおよび相互作用。最初にルート モデルに保存されます。
要素および関係の追加。
パッケージ内でのみ参照される要素の名前の変更または削除。