フラット・リポジトリーは、少数のユニット・ファイルおよびサブパッケージが含まれているか、まったく含まれていないパッケージが多数あるより小規模なプロジェクトに最適です。
このような場合、パッケージをフォルダーに分割してもプロジェクトは簡素化されず、かえってプロジェクトが複雑化する可能性があります。
対照的に大きなモデル、特に多数のユニットとサブパッケージが含まれているモデルの場合、一般にフラット・リポジトリーに格納すると問題が発生します。
フラット・リポジトリーで発生する代表的な問題を以下に説明します。
- 可視性: 1 つのディレクトリーに数百のファイルが含まれている場合、1 つのウィンドウではこのディレクトリーの内容を明瞭に表示することができません。
- フォーカス: 数百のファイルが含まれているディレクトリーの場合、プロジェクトの 1 つの機能領域に焦点を当てて、この機能領域にどの要素が属しているかを検出することができません。この項目は、すべてのファイルがビューに表示されているかどうかの確認、最新の変更日の確認などを行う場合に重要です。
- 可搬性: それぞれが 1 つの機能領域を表す複数の IBM® Rational® Rhapsody® ファイルをコピーして共同作業者やサポート担当者に送信する場合、必要なファイルを判別することが困難であるため、この作業は非常に難しくなります。
- 分岐: モデルの複数の異なるパーツを 1 つの分岐にチェックアウトする場合、必要な機能を特定し、関連するすべてのファイルをチェックインすることが困難です。
- その他のツールおよびプロセスとの統合: 一部の構成管理ツールでは、プロセスおよび制御の問題に対応するため、ディレクトリーに対してアクセス権を設定します。例えば、変更防止のため、engine または core というディレクトリーをロックするが、application ディレクトリーを変更可能にしておくことができます。フラット・リポジトリーではこのようなオプションは利用できませんが、階層リポジトリーではディレクトリーに基づくプロセスの実装が容易に促進されます。