依存関係

UML における依存関係は、 ある要素 (クライアント) が他の要素 (サプライヤー) を使用する関係、 またはこれに依存する関係のことをいいます。クラス図、コンポーネント図、配置図、およびユースケース図で依存関係を使用して、 サプライヤーに対する変更にはクライアントへの変更が必要になる可能性があることを示すことができます。

依存関係を使用すると、優先順位を表すこともできます。 この優先順位によって、あるモデル要素が別のモデル要素に優先することになります。

通常、依存関係は名前を持ちません。

以下の図にあるように、 依存関係は、ダイアグラム・エディターにおいて、 クライアントからサプライヤーに向かう、 開いた矢印を持つ破線で表示されます。

開いた矢印を持つ破線に
よって、2 つのクラスが接続されています。

依存関係のタイプ

依存関係はさまざまなタイプの関係を表すことができるため、依存関係の詳細を表すために、キーワードまたはステレオタイプが使用されます。

依存のタイプ キーワードまたはステレオタイプ 説明
抽象化 «abstraction»、«derive»、«refine»、または «trace» 2 つのモデル要素またはモデル要素セットを関連付けます。 これらの要素は、異なる抽象化レベルにある同一の概念、 または異なる視点から見た同一の概念を表します。
バインディング «bind» テンプレートの引数をテンプレート・パラメーターに接続し、 テンプレートからモデル要素を作成します。
実現 «realize» クライアントのモデル要素がサプライヤーのモデル要素の実装であり、 サプライヤーのモデル要素が仕様であることを表します。
置換 «substitute» クライアントのモデル要素がサプライヤーの代わりとなることを示します。すなわち、クライアントのモデル要素は、サプライヤーのモデル要素で設定している規約 またはインターフェースに準拠している必要があります。
使用 «use»、«call»、«create»、«instantiate»、または «send» あるモデル要素が、完全な実装や操作のために、 別のモデル要素を要求することを表します。
注: 拡張関係や包含関係など、依存関係で使用されるものと同様のコネクターを使用する関係が複数ありますが、これらは依存関係とは見なされません。

依存関係の使用

依存関係をモデルに追加して、以下の目的を達成させることができます。

サンプル

e-commerce アプリケーションでは、Cart クラスが Product クラスを追加操作のパラメーターとして 使用するため、Cart クラスは Product クラスに依存しています。 クラス図には、Cart クラスから Product クラスに向かう依存関係が存在しています。 したがって、以下の図にあるように、Cart クラスがクライアントとなり、Product クラスが サプライヤーとなります。

前の段落で説明したように、2 つのクラスが依存関係によって接続されています。

上記の関係は、Product クラスを変更するには Cart クラスへの変更が必要であることを示しています。


フィードバック