UML モデルの要素は、同じファイル内にある必要はありません。
単一の UML モデルを、フラグメントに分割できます。
これは、別のファイルに保管されているが、実際にはメイン・モデルの一部である要素のコレクションです。
モデルをフラグメントに分割する機能は、複数のチームが 1 つの共用モデルで作業しているチーム開発環境で特に役立ちます。
モデルをフラグメントに分割するには、パッケージ、分類子、およびダイアグラムを物理的なサブユニットに抽出します。
フラグメントが別のファイルに保管されていても、単一のファイルに存在しているかのようにモデルを開いて編集できます。
この場合、メイン・モデルとそのモデルのすべてのフラグメントを含む完全なモデルは、論理モデルとして参照されます。
フラグメントを含むモデルを開くと、「プロジェクト・エクスプローラー」ビューにフラグメント化された要素が表示されますが、フラグメントの内容は表示されません。
これらの閉じられたフラグメントは、赤い打ち消し線のあるオーバーレイによって示されます。
手動でフラグメント化されたパッケージを開くか、またはフラグメントの要素が 1 つ以上含まれているダイアグラムを開くかして、フラグメントの要素にアクセスすると、フラグメントがロードされ、パッケージのオーバーレイがフラグメントを開いていることを示すように変化します。
このように、モデルをフラグメント化することによって、同じファイルを編集することなしに、チームで同じモデルに対して作業することができます。
モデルの一部をフラグメントとして保管する機能が役立つ理由は、次のとおりです。
- モデル・マージの数と複雑度が大幅に軽減され、場合によってなくなることもあるので、変更管理が簡単になります。
- 特に大規模なモデルでは、パフォーマンスの問題とメモリーの占有スペースの問題が改善されます。
- フラグメントを使用すると、一定のレベルのアーキテクチャーおよび設計方針を適用することができます。
例えば、プロジェクトで、モデルを機能領域別にフラグメント化することが指定できます。
- ダイアグラムをフラグメントとして保管することにより、
ビジュアル・ダイアグラムの開発を、セマンティック・モデル・コンテンツの開発から切り離すことができます。
フラグメントを開くには、「プロジェクト・エクスプローラー」ビューでフラグメントを開いて展開するか、フラグメントの要素にアクセスするか (例えば、フラグメントの要素が 1 つ以上含まれているダイアグラムを開く)、またはモデル (またはフラグメントの他のコンテナー) を右クリックして「サブフラグメントをすべて開く」をクリックします。
モデル・フラグメントの使用についてのベスト・プラクティス
モデル・フラグメントを使用する場合は、
次のベスト・プラクティスを検討してください。
- 必要なマージの数が減少するように、モデルを複数の小さいフラグメントに構造化します。
- フラグメント間の参照を最小限に抑えて、フラグメントがほとんど依存しないようにする必要があります。
- 正しく定義されたディレクトリー構造を使用して、同じプロジェクト内のフラグメントをメイン・モデルとして保管します。
フラグメントを移動する必要がある場合は、リファクタリングを使用して、
関連付けられたフラグメントがすべて存在することを保証して、相互参照が更新されるようにします。
- フラグメントが別のプロジェクトに存在する場合は、パス・マップを使用してその場所を指定します。
- ワークスペースには、すべての参照フラグメントを含め、作業中のモデルに属するすべてのフラグメントを含めるようにしてください。
- フラグメントを作成しすぎないようにしてください。
フラグメントは、小規模のモデルでは役に立たず、マイナスの影響を与えることもあります。
- フラグメントは慎重に管理してください。フラグメントの管理を誤ると、モデルの破壊を招くことがあります。
モデル・フラグメントの取り込み
不要になったフラグメントがモデルに含まれている場合は、
フラグメント内のモデル要素を親モデル・ファイルに取り込むことができます。
要素が取り込まれると、親モデル・ファイルとフラグメント・ファイル間の接続が切断されて、
フラグメント・ファイルは削除されます。
モデル・フラグメントの修復
切断された相互参照、
または存在しないフラグメントへの参照を含むフラグメントがモデルに含まれている場合は、
「モデル・エディター」ビューを使用してこれらの問題を修復することができます。