依存関係分析

成果物の再利用について検討するとき、その成果物が何に依存しているかを理解します。多数の他の異質のシステムに対して依存関係を持つサービスを開発すると、これらの依存関係のそれぞれが変化するたびに (したがって、かなり頻繁に起こる可能性があります)、再確認が必要になるものが生成される可能性が高くなります。

通常の依存関係分析を実行するには、以下のステップを実行します。

  1. 分析の対象となる依存関係を持つ成果物を特定します。
  2. その成果物に定義されている関係すべてをトレースし、その関係のターゲットを識別します。この影響分析によって、選択した成果物が依存する「依存関係」のリストが生成されます。
  3. これらの「依存関係」がまた他の成果物に依存している場合は、選択した成果物も間接の依存関係を持つことになります。したがって、影響分析は再帰的に実行し、いずれかの「依存関係」から関係を探す必要があります。

選択した成果物から始まり、それ以上は依存関係を持たない成果物で終える完結したグラフを取得するまで、このプロセスが続きます。 選択した成果物は、グラフ内のすべての成果物に依存関係を持つことになります。

1 つのオブジェクトに異なる方法で到達できる場合は、グラフ内にそのオブジェクトが複数回存在することがあります。

依存関係の検出方法

影響分析を開始しても、グラフによる処理の向きは変更されません。 例えば、オブジェクト B にはオブジェクト C への依存関係があり、オブジェクト B にはオブジェクト A と D への依存関係があります。これについては、図 1 に示しています。 オブジェクト A が分析用に選択されている場合、結果リストにはオブジェクト B とオブジェクト C が組み込まれます。オブジェクト D にもオブジェクト B と C に対する依存関係があるとしても、分析はその依存関係によってトレースを続行し、選択されたオブジェクトに直接リンクしていない、依存階層内で逆方向にあるオブジェクトを検索することはありません。このため、オブジェクト D は結果リスト内にはありません。
図 1. 依存関係分析グラフオブジェクト A と D はオブジェクト B に依存し、オブジェクト B はオブジェクト C に依存する。