我想描述一个事实,即系统中的 4 辆汽车可以相互通信。定义框图时,多重性指定为 4。这就是它作为 IBD 的样子。这有意义还是应该创建和连接 4 个单独的汽车实例?
问问题
37 次
1 回答
2
简而言之
这个 IBD 告诉 4 辆车中的每一辆车都连接到另一辆车。但根据你的叙述,每辆车都应该与其他 3 辆车相连。因此,您应该在连接器的示教端放置一个 3 多重性。
更多解释
根据 SysML 第 8.3.1.2 节:
内部框图基于 UML 复合结构图,具有 SysML 定义的限制和扩展。
在这些 SysML 扩展中有第 8.2.1.2.9 节:
SysML 在连接器的每一端定义了一个默认的多重性 1。如果未在图表上显示,则可以假设这些多重性。
在没有更具体的规则的情况下,连接器将被理解为 UML 中的复合结构:
对于在内部结构中扮演角色的每个实例,最初将有与附加到该角色的连接器的相对端的较低多样性所指示的链接一样多。
使用默认的 1 多重性,这将导致数组连接器模式(参见 UML 2.5.1,图 11.7 第 188 页),事实上,您将拥有 2 对联网汽车。
使用明确的 3 多重性,您的图表将导致开始连接器模式(参见 UML,图 11.6 第 188 页)。请注意,鉴于自引用,3 的多重性就足够了。
当然,您也可以简单地绘制 4 个块并绘制它们之间存在的 6 个连接。这很明确,确实需要更少的脑力来掌握设计的精神,但另一方面,它也使图表更加混乱。
于 2021-12-13T22:33:09.313 回答