Design patterns SysML中的接口流

Design patterns SysML中的接口流,design-patterns,system,sysml,Design Patterns,System,Sysml,我想知道,在SySML框图中,如何将流经两个组件的数据与其公开的接口联系起来 例如,假设有一个主管组件为较低级别的控制器设置参考。控制器公开一个接口操作,该接口操作具有操作集_引用,后者指定浮点参数引用。主管将使用该界面有效地设置下层控制器的参考。此操作表明两个组件之间存在数据流,例如,每个组件也有一个流端口,交换的数据是参考。您将如何在SySML中对该场景建模?有没有一种方法可以同时指定接口和数据流,比如说,看,这个数据流是通过这个接口实现的 非常感谢您的帮助块定义图通常不用于显示系统组件之间

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

例如,假设有一个主管组件为较低级别的控制器设置参考。控制器公开一个接口操作,该接口操作具有操作集_引用,后者指定浮点参数引用。主管将使用该界面有效地设置下层控制器的参考。此操作表明两个组件之间存在数据流,例如,每个组件也有一个流端口,交换的数据是参考。您将如何在SySML中对该场景建模?有没有一种方法可以同时指定接口和数据流,比如说,看,这个数据流是通过这个接口实现的


非常感谢您的帮助

块定义图通常不用于显示系统组件之间的流程。相反,您将使用一个包含两部分的系统内部框图:s:Supervisor和c:Controller

要指定控制器提供操作集_referencer:float,可以使用InterfaceBlock作为控制器端口的类型。相同的InterfaceBlock将用作监控器的端口类型。然而,这次是共轭的。这将通过在~符号前加前缀来显示。然后您需要通过它们的端口连接它们。这已经足以指定浮点值可以流过连接器。没有其他需要

然而,有时你还没有决定,如何实现流程存在不止一种可能性。正如您所做的那样,set_reference操作是由主管或流属性提供的get_reference操作。因此,您只需要指定某些项流的需要,而不需要指定机制。在这种情况下,您可以使端口不带类型,并对连接器上的ItemFlow进行建模。它将显示一个填充三角形,放置在连接器中心附近的某个位置,并标有流动项目的名称和类型。通过稍后自动创建InterfaceBlock和操作,工具甚至可以支持您

正如我所说,如果您已经知道如何实现流,那么对ItemFlow进行建模是多余的。当然,如果您想限制特定系统中可能的值,则除外。比如说,double是一个特定的float,在您的系统中只使用double,即使控制器也可以处理single。这可以用类型为double的ItemFlow表示


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

通常不使用块定义图来显示系统组件之间的流。相反,您将使用一个包含两部分的系统内部框图:s:Supervisor和c:Controller

要指定控制器提供操作集_referencer:float,可以使用InterfaceBlock作为控制器端口的类型。相同的InterfaceBlock将用作监控器的端口类型。然而,这次是共轭的。这将通过在~符号前加前缀来显示。然后您需要通过它们的端口连接它们。这已经足以指定浮点值可以流过连接器。没有其他需要

然而,有时你还没有决定,如何实现流程存在不止一种可能性。正如您所做的那样,set_reference操作是由主管或流属性提供的get_reference操作。因此,您只需要指定某些项流的需要,而不需要指定机制。在这种情况下,您可以使端口不带类型,并对连接器上的ItemFlow进行建模。它将显示一个填充三角形,放置在连接器中心附近的某个位置,并标有流动项目的名称和类型。通过稍后自动创建InterfaceBlock和操作,工具甚至可以支持您

正如我所说,如果您已经知道如何实现流,那么对ItemFlow进行建模是多余的。当然,如果您想限制特定系统中可能的值,则除外。比如说,double是一个特定的float,在您的系统中只使用double,即使控制器也可以处理single。这可以用类型为double的ItemFlow表示


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

谢谢Axel的回答,这已经非常清楚了。
我还有另一个疑问,这一次是关于视觉范式的bdd和ibd之间关系的具体实现。假设我正在对巡航控制系统建模,首先我创建一个块定义图,其中我定义了块车以及块传感器、执行器和控制器的组成关系。在创建关系时,Visual Paradigm会自动添加部件^sps:传感器、^act:执行器和^ctrl:控制器,其中sps、act和ctrl是关系的名称。这在理论上是好的,尽管我找不到前缀“^anywhere btw”的含义,你知道吗?但是,当我试图为汽车创建一个内部框图来模拟其部件之间的相互作用时,我不能使用BDD中已经定义的相同部件,但它只允许我创建相同类型的其他部件。例如,它不允许我使用BDD中定义的与汽车聚合的部件^sps:Sensor,而是要求我创建另一个部件speedsensor:Sensor,我觉得这是多余的。我是否在SySML中遗漏了一些东西,比如^sps是关系,而speedsensor是实例,或者它只是它的可视化范例实现的一部分?非常感谢!谢谢阿克塞尔的回答,已经很清楚了。我还有另一个疑问,这一次是关于视觉范式的bdd和ibd之间关系的具体实现。假设我正在对巡航控制系统建模,首先我创建一个块定义图,其中我定义了块车以及块传感器、执行器和控制器的组成关系。在创建关系时,Visual Paradigm会自动添加部件^sps:传感器、^act:执行器和^ctrl:控制器,其中sps、act和ctrl是关系的名称。这在理论上是好的,尽管我找不到前缀“^anywhere btw”的含义,你知道吗?但是,当我试图为汽车创建一个内部框图来模拟其部件之间的相互作用时,我不能使用BDD中已经定义的相同部件,但它只允许我创建相同类型的其他部件。例如,它不允许我使用BDD中定义的与汽车聚合的部件^sps:Sensor,而是要求我创建另一个部件speedsensor:Sensor,我觉得这是多余的。我是否在SySML中遗漏了一些东西,比如^sps是关系,而speedsensor是实例,或者它只是它的可视化范例实现的一部分?非常感谢!