単一のファイルとしてモデルを開発し、後でそのモデルを複数のファイルに分割することができます。分割してできた各新規ファイルをモデルのパーティションといいます。
モデルを分割するのは、抽象化のレベルが固まった後に限るべきです。モデルの抽象化レベルが安定していると、あまり分割を変更しなくて済みます。
モデルの初期段階のバージョンでは、多くの場合、システムの最上位のサブシステムを記述しています。 今後反復作業を重ねても残る可能性がある最上位のサブシステムを定義するまで、モデルは分割すべきではありません。最上位のサブシステムを十分に検討して設計が固まった段階で、サブシステムを分割します。これにより、並行した開発が可能となり、モデルを開く速度を向上させることができます。個々のサブシステムのコンテンツが固まった後、そのサブシステムを分割できます。
モデル間の依存を最小限にして、1 つのモデルでの変更が別のモデルに影響を及ぼす可能性を小さくする必要があります。
モデル間の依存を許容すると、マージの際に広範囲で競合が発生する可能性があります。このような競合は、文脈外のマージとなることが多く、解決が困難な場合があります。分割されたモデルは、単一モデルよりもマージが難しくなります。例えば、別のモデルを参照する図を含む、分割されたモデルをマージする場合、マージの際に参照を完全に解決することはできません。
ファイルごとに変更を加えられる所有者が 1 人のみになるよう所有権のポリシーを設定することによって、必要なマージの回数を減らすことができます。
実際にモデルの所有権を使用するには、各モデルのサイズと有効範囲を、1 人の担当者が取り扱える規模に設定する必要があります。同時に 1 人の作業者のみがモデルを変更する場合、モデルを共用作業域に取り出す際に競合が発生しません。 こうすると、統合時にマージする必要がなくなり、統合プロセスの効率が上がります。
参照が切断されるのを防ぐには、ご使用の構成管理システムの外にモデルのパーティションを移動させないようにします。
モデルのパーティションを構成管理システムの外に移すと、モデル内の参照が切断されます。モデルを構成管理システムに再統合する場合には、切断された参照をすべて解決する必要があります。モデルの複雑さ、加えられた変更のタイプ、切断された参照の数によって、このタスクは無駄にリソースを消費する可能性があります。
コンポジット・モデルのパーティション操作時のデータ破壊を防ぐには、コンポジットのすべてのパーティションを含んでいて、各パーティションが同じ改訂レベルにある、同期のとれたワークスペース内で常時作業を行う必要があります。
例
以下の例は、同期のとれていないワークスペース内でコンポジット・モデルのパーティションを操作した場合に発生する可能性がある問題を示しています。
ユーザー B がワークスペース内の既存のバージョン (モデル X、バージョン 20) を選択した場合、チェックアウトのメッセージが出た操作を再度行う必要があります。
しかし、ユーザー B が新しいモデルのバージョン (モデル X、バージョン 21) を選択した場合、ユーザー B がモデルを保存した時点で、ユーザー A がモデルに対して行ったすべての変更が失われます。