组合结构图和组件图的区别

4

您好!

我正在进行复合结构图(CSD)的工作,但是我无法弄清楚CSD和组件图之间的区别。它们看起来对我来说都是一样的。或者我错了吗?

使用CSD能否模拟所有可以用组件图模拟的情况?如果不能,哪些是不行的情况?

在什么情况下使用CSD比使用组件图更好?(反之亦然)

组件图旨在建模架构。我不能用CSD建立相同的架构吗?

谢谢!

2个回答

8

UML并没有严格定义各种图表类型("不严格执行各种图表类型之间的边界")。

然而,通常最好创建只呈现主题的图表。

假设您有一个组件'汽车'、组件'轮子'和组件'发动机'。发动机驱动前轮而不是后轮。

组件图显示组件及其关系。组件是一种特殊的类。该图表不显示组件实例。在此示例中,我们将显示三个组件。汽车与轮子具有1:4的组合关联,与发动机具有1:1的组合关联。发动机与轮子具有1:2的关联。指定引擎仅连接到前轮且两个轮子必须属于同一辆汽车并不是微不足道的。您需要编写一些OCL约束。

组合结构图显示包含在另一个组件内部的组件实例以及这些实例之间的链接(事实上,我应该使用单词部分而不是实例)。该图表显示发动机和四个轮子作为单独的块在汽车组件内。现在很容易显示发动机仅连接到同一辆汽车的前轮。


6
实际上,除了序列图和时间图之外,大多数UML图都很相似,你可以随意添加任何内容。在特定的图表中使用某些子集更像是一种惯例,但没有限制(请参见上文)。
《超级结构(2.5)》的附录A指出:
一个UML模型由诸如包、类和关联之类的元素组成。相应的UML图是UML模型部分的图形表示。
......
注意:此分类法为各种主要类型的图表提供了逻辑组织。然而,它并不排除混合不同类型的图表类型,例如将结构和行为元素组合在一起(例如,在内部结构中嵌套状态机)。因此,各种图表类型之间的边界并没有严格执行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接