答案 0 :(得分:2)
通常,当你在UML中有两种可能性时,两者都是正确的。但不是在这里。我担心,两者都不好。
根据现行标准2.5:
用法是一个依赖关系,其中一个NamedElement需要另一个 NamedElement(或NamedElements集合)用于其完整实现或 操作。用法未指定客户端如何使用供应商 除了供应商被定义或使用的事实 实施客户。
因此,在UML<< use>>意思是“必须有一些用途”。请注意,它完全独立于遏制/包含关系。我们依赖的对象甚至可以被包含,因为我们不需要它来创建依赖对象。
我们可以使用属于任何地方的组件。但在包含(顶部)图表中,我们无法显示用法。所以,它不会通过。
至于第二种关系,包括,这里存在更大的问题。
标准UML组件图没有“包含”构造型。但允许使用其他图表的元素。
但是组件不是类,它是一个对象。因此,您的组件C根本不属于A和B 。另一个图也失败了。如果您想要基于相同的类或包具有两个不同的对象/组件,则会出现完全不同的图表。
因此,A或B都有自己的C实例并使用此实例。它很干净,没有窥视其他组件。
如果您使用的工具没有包含连接,请使用用例图中的“include”关联。
我还强烈怀疑你可能不需要Component,但是一些不同的图表,因为你希望将一个盒子放入不同的盒子中是不自然的。