流经 SysML 中的接口

Flow through interface in SysML

我想知道如何在 SySML 框图中将流经两个组件的数据与它们公开的接口联系起来。

例如,假设您有一个主管组件为较低级别的控制器设置引用。控制器公开了一个接口 Operations,它具有操作 set_reference() 并且后者指定了一个浮点参数 reference 。主管将使用该接口有效地为下级控制器设置参考。这个操作说明两个组件之间存在一个数据flow(例如每个组件也有一个流端口)并且交换的数据是引用。您将如何在 SySML 中对这种情况建模?有没有办法既指定接口又指定数据流,然后说“看,这个数据流是通过这个接口实现的”。

非常感谢您的帮助

块定义图通常不用于显示系统组件之间的流程。相反,您将使用包含 s:Supervisorc:Controller.

两部分的系统内部框图

要指定控制器提供操作 set_reference(r:float),您可以使用 InterfaceBlock 作为 controller 端口的类型。相同的 InterfaceBlock 将用作 supervisor 端口的类型。然而,这一次,共轭。这将通过在前面加上 ~ 符号来显示。然后你需要通过它们的端口连接它们。这足以指定浮点值可以流过连接器。不需要其他任何东西。

但是,有时候你还没有决定,如何实现流(不止一种可能。set_reference操作,你已经做了,提供了一个get_reference操作通过 supervisor 或流程 属性)。因此,您只想指定某些项目流动的需要,而不是机制。在这种情况下,您可以保留没有类型的端口,并通过连接器为 ItemFlow 建模。它将显示为一个实心三角形,该三角形位于连接器中心附近的某个位置,并标有流动项目的名称和类型。通过稍后自动创建 InterfaceBlock 和操作,工具甚至可以为您提供支持。

正如我所说,如果您已经知道,您将如何实现流程,则对 ItemFlow 进行建模是多余的。当然,除非您想限制特定系统中的可能值。比方说,double 是一个特定的 float,在您的系统中只会使用 doubles,即使控制器也可以处理 singles。这可以用 double.

类型的 ItemFlow 表示

有些人更喜欢只对 ItemFlow 建模而忽略连接器。 ItemFlows 单独显示为带有关键字 «flow» 的虚线箭头。我反对这样做,因为 ItemFlows 并不意味着这些部分是连接的(流程可以通过中间元素实现)。