0

我试图理解这两个概念之间的区别:

对于子系统,我找到了一个网站:https ://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-component-diagram/

在此处输入图像描述

对于添加剂成分,在此网站上:https ://cpentalk.com/618/illustrate-composition-hierarchical-composition-composition

人们说

OnlineStore子系统示例中,因为OrderSystem组件正在调用Catalogue组件。如果它是一种添加剂组合物,里面的所有成分都应该是独立的吗?

在此处输入图像描述

我可以说我上面的例子是加法成分,因为profile并且bank_account是独立的吗?我基本上使用一些glueCode将它们的接口组合在一起,因此没有组件是依赖的。您认为这是添加剂组合物的一个很好的例子吗?

4

1 回答 1

0

子系统和组件

UML 将子系统定义为系统的子部分:

大型系统的层次分解单元。子系统通常是间接实例化的。子系统的定义在领域和方法之间差异很大,并且预计领域和方法配置文件将专门用于此构造。

UML 将组件定义为系统/子系统的自治子部分:

组件始终可以被视为系统或子系统中的自治单元。(...)
组件是一个独立的单元 (...)
组件是一个可替换的单元,它可以在设计时或运行时被一个组件替换,该组件提供基于其接口兼容性的等效功能。

子系统本身就是一个组件。所以子系统和组件代表了同一种现实。只是措辞上的细微差别: subsystem主要用于将较大的系统分解为较小的部分,而component通常用于将较小的部分组装成更复杂的部分。所以不同的术语只是暗示了更大系统中不同程度的分解/规模。

UML 中的组件组合

有多种方法可以组合组件来组装更复杂的组件。UML 在这方面没有定义任何东西。您对添加剂组合的定义似乎对应于并列:这两个组件保持不相关并向外部世界提供服务,就好像它们是单独的组件一样。

不幸的是,您的图表在这方面是模棱两可的:我们不确定胶水是否只是转发行为,或者它是否转换或组合它。我们甚至不知道它是否是同一个接口,因为接口有不同的名称(具有相同名称的方法可能纯属巧合)。

因此,您应该更好地通过端口和委托连接器向外界提供原始接口(此处的示例):

![在此处输入图像描述

于 2021-12-16T12:52:30.453 回答