私は 2 つのコンポーネント A と B を持っています。私はモデルで、それらが 3 番目のコンポーネントを <<include>> し、<<use>> であることを示したいと考えています。上の絵と下の絵、どちらが正しいですか?
1 に答える
多くの場合、UML に 2 つの可能性がある場合、どちらも正しいです。しかし、ここではありません。恐れ入りますが、どちらも悪いです。
現在の標準 2.5 によると:
Usage は、ある NamedElement が完全な実装または操作のために別の NamedElement (または NamedElement のセット) を必要とする Dependency です。使用法は、サプライヤがクライアントの定義または実装によって使用されるという事実以外に、クライアントがサプライヤを使用する方法を指定しません。
したがって、UML では <<use>> は「何らかの用途に必要」という意味です。また、包含/包含関係から完全に独立していることに注意してください。依存しているオブジェクトは、依存オブジェクトの作成に必要であるとは言われていないため、含めることさえできます。
どこに属するコンポーネントでも使用できます。しかし、インクルード (上) の図では、使用法を示すことができません。だから、通らない。
2 番目の関係については、これにはさらに大きな問題があります。
標準の UML コンポーネント図には、「含む」ステレオタイプはありません。ただし、他の図の要素を使用することは許可されています。
しかし、コンポーネントはクラスではなく、オブジェクトです。したがって、コンポーネント C は A と B の両方に属することはできません。他のダイアグラムも失敗します。また、同じクラスまたはパッケージに基づく 2 つの異なるオブジェクト/コンポーネントが必要な場合は、まったく異なる図が表示されます。
したがって、A または B のいずれかが C の独自のインスタンスを持ち、このインスタンスを使用します。他の部品を覗き込むことなく、きれいです。
その封じ込め接続を持たないツールを使用する場合は、ユース ケース図の「include」関連付けを使用します。
また、コンポーネントではなく、別の図が必要になる可能性があるのではないかと強く疑っています。1 つのボックスを別のボックスに入れたいと思うのは不自然だからです。