モデル分割

単一のファイルとしてモデルを開発し、後でそのモデルを複数のファイルに分割することができます。分割してできた各新規ファイルをモデルのパーティションといいます。

モデル分割を利用すると、複雑なシステムを設計するチームの共同作業と開発が以下の点で容易になります。
  • チームが構成管理システムを使用している場合、チーム・メンバーが同時にモデルの同じ部分に対して作業することを防ぐ
  • チーム・メンバー間でのマージ・セッションの頻度と複雑さが軽減される
  • モデルのロードに必要な時間の総量が減る
しかし、モデル分割は、適切に行わないとチームの共同作業と開発を妨げる可能性もあります。以降のセクションでは、推奨される適切なモデル分割を提供しています。

抽象化レベル

モデルを分割するのは、抽象化のレベルが固まった後に限るべきです。モデルの抽象化レベルが安定していると、あまり分割を変更しなくて済みます。

モデルの初期段階のバージョンでは、多くの場合、システムの最上位のサブシステムを記述しています。 今後反復作業を重ねても残る可能性がある最上位のサブシステムを定義するまで、モデルは分割すべきではありません。最上位のサブシステムを十分に検討して設計が固まった段階で、サブシステムを分割します。これにより、並行した開発が可能となり、モデルを開く速度を向上させることができます。個々のサブシステムのコンテンツが固まった後、そのサブシステムを分割できます。

依存

モデル間の依存を最小限にして、1 つのモデルでの変更が別のモデルに影響を及ぼす可能性を小さくする必要があります。

モデル間の依存を許容すると、マージの際に広範囲で競合が発生する可能性があります。このような競合は、文脈外のマージとなることが多く、解決が困難な場合があります。分割されたモデルは、単一モデルよりもマージが難しくなります。例えば、別のモデルを参照する図を含む、分割されたモデルをマージする場合、マージの際に参照を完全に解決することはできません。

所有権のポリシー

ファイルごとに変更を加えられる所有者が 1 人のみになるよう所有権のポリシーを設定することによって、必要なマージの回数を減らすことができます。

実際にモデルの所有権を使用するには、各モデルのサイズと有効範囲を、1 人の担当者が取り扱える規模に設定する必要があります。同時に 1 人の作業者のみがモデルを変更する場合、モデルを共用作業域に取り出す際に競合が発生しません。 こうすると、統合時にマージする必要がなくなり、統合プロセスの効率が上がります。

切断された参照

参照が切断されるのを防ぐには、ご使用の構成管理システムの外にモデルのパーティションを移動させないようにします。

モデルのパーティションを構成管理システムの外に移すと、モデル内の参照が切断されます。モデルを構成管理システムに再統合する場合には、切断された参照をすべて解決する必要があります。モデルの複雑さ、加えられた変更のタイプ、切断された参照の数によって、このタスクは無駄にリソースを消費する可能性があります。

同期化されたワークスペース

コンポジット・モデルのパーティション操作時のデータ破壊を防ぐには、コンポジットのすべてのパーティションを含んでいて、各パーティションが同じ改訂レベルにある、同期のとれたワークスペース内で常時作業を行う必要があります。

以下の例は、同期のとれていないワークスペース内でコンポジット・モデルのパーティションを操作した場合に発生する可能性がある問題を示しています。

ある構成管理システム内のあるコンポジット・モデルは、モデル X とモデル Y という 2 つのモデル・パーティションから構成されています。2 つのモデルはいずれもバージョン 20 です。モデル X には 1 つのパッケージ (P1) が含まれます。モデル Y は空です。
  1. ユーザー A はこの 2 つのモデルをいずれもバージョン 20 でチェックアウトします。
  2. ユーザー A は P1 にいくつかの変更を加え、P1 をモデル X からモデル Y に移動します。
  3. ユーザー A はモデル X とモデル Y をバージョン 21 でチェックインします。
  4. ユーザー B はバージョン 20 のモデル X を自分のワークスペースに保持していて、P1 に変更を加えます。構成管理システムはユーザー B に対して、ワークスペース内の既存のバージョン (モデル X、バージョン 20) と新規バージョン (モデル X、バージョン 21) のいずれをチェックアウトするか、メッセージを出します。

ユーザー B がワークスペース内の既存のバージョン (モデル X、バージョン 20) を選択した場合、チェックアウトのメッセージが出た操作を再度行う必要があります。

しかし、ユーザー B が新しいモデルのバージョン (モデル X、バージョン 21) を選択した場合、ユーザー B がモデルを保存した時点で、ユーザー A がモデルに対して行ったすべての変更が失われます。

関連タスク
チーム開発用のモデルの編成
モデルの分割化
ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2004, 2005. All Rights Reserved.
(C) Copyright IBM Japan 2005