目前,我在UML组件图中遇到了“端口”的概念,我不完全确定它们应该如何使用。有时,端口似乎通常被用作连接器的启动。有时,只有当连接器离开/进入一个更大的组件时,才会使用端口。我甚至见过一些根本不使用端口的例子(来自UML 2.5):

在UML规范的第11.8.14.1章中,对端口的描述如下:
端口是EncapsulatedClassifier的一个属性,它指定该EncapsulatedClassifier与其环境之间或( EncapsulatedClassifier的行为)与其内部部分之间的一个不同的交互点。...
这不意味着使用端口总是必须的吗?UML 1和UML 2似乎也有很大的不同,在某些情况下是混合的。所以我的问题是:从今天(UML 2)开始,什么时候应该使用端口,什么时候不应该使用?
发布于 2021-03-25 20:27:12
图11.46

在UML2.5规范中是一个更好的例子:您可以在相同的图中找到:
Order的端口与连接到内部元素OrderHeader的外部接口AccountPayable一起使用;OrderableElement没有端口,因为没有与内部元素的连接;Account的端口与外部接口AccountPayable一起使用,并且内部没有视图。图中唯一缺失的地方是使用多个端口对不同接口进行分组的情况。
要回答您的问题,接口不必连接到端口:端口是可选的。但是,如果要连接外部接口,则端口是必需的,如果包围分类器与该分类器的内部连接。
P.S:我用“连接”这个术语来指图形连接。
发布于 2021-03-26 21:24:11
为了补充Christope的答案:端口是连接多个不同接口的好方法,这些接口在某种程度上属于彼此。一个很好的技术类比是把电源和数字/模拟线路结合在一个端口上的插头。实际上,在与UML密切相关的SysML中,您可以使用一个端口来准确地表示它(除了通常的软件端口)。通常,引入一个只有一个接口的端口是个好主意。只是为了有一种以后分割接口的方法,或者用其他接口来扩展它。
https://softwareengineering.stackexchange.com/questions/423795
复制相似问题