【问题标题】:Model data flow from (flow) port to UML activity diagram从(流)端口到 UML 活动图的模型数据流
【发布时间】:2018-07-10 21:08:22
【问题描述】:

我正在进行的一个项目使用流端口对类之间的数据流进行建模。我们现在开始使用活动图和状态图对动态行为进行建模,并且正在寻找一种方法来表示活动图中使用的数据已在特定端口上接收到。基本上,我们想在流端口和例如端口之间创建一个连接器。一个活动参数节点。

我认为使用端口对数据流建模非常普遍,尤其是在系统工程中,应该有方法将数据链接到活动。我可以想到两种方法:

  • 将端口连接到属性(或部分)并使用ReadStructuralFeatureAction 获取值
  • 将端口连接到一个属性(或部分),并向使用CallOperation 调用的类添加一个操作
  • 创建一个与端口同名的属性,并提供一个通过CallOperation 操作调用的操作

第一个选项没问题,但我们的建模工具 Rhapsody 8.1 似乎不支持ReadStructuralFeatureActions。其他两种方法的缺点是端口和模型中的活动之间没有直接连接器,并且在视觉上不明显,所以我想有一个更好的选择。

我想知道是否有人知道更好的方法来实现这一点,例如使用 SysML (1.3)。

【问题讨论】:

    标签: uml activity-diagram sysml


    【解决方案1】:

    UML 和 SysML 中的静态视图和动态视图之间的连接“隐藏”在模型不太明显的部分中。我猜原因是 UML 的设计者想要将这些分开。所以没有图形或其他非常明确的连接。

    相反,连接非常自然,因此您可以直接使用它。示例是状态图或活动图中转换的警卫、触发器或操作。这个 ReadStructuralFeatureAction 是通过直接使用静态元素隐式实现的。您可以直接在那里建模。因此它们出现在代表状态转换或控制流的边缘旁边。另一种方法是使用接收操作并将接收属性设置为事件或触发操作。通过使用发送操作,您可以在相同的结构元素或其他元素中触发事件。在 Rhapsody 中这样做时,您需要指定目标端口和目标部分。

    无论是在 UML/SysML 还是 Rhapsody 中,都可以预见,当您提供类/块的接口时,您想知道调用来自哪个端口或属性已更改。但是您可以通过使用完整的端口并实现预期的行为来实现这一点(这应该是独特的 - 否则不需要知道来源)。因此,每个完整端口都有一个状态图或活动,并将内部信号或事件传递给您的类的对象。对于从动作调用操作有两种方法,一种是通过从动作(或进入或离开时的状态)调用而更隐藏的一种,通过使用调用操作更可见的一种。

    这些连接的可见性在最近的 UML 或 SysML 版本中已更改。因此,当更新到更高的 Rhapsody 版本时,这将发生重大变化;虽然我真的建议更新到最新的 Rhapsody 版本,因为它带来了更好的 sysML 支持、更少的错误、一些新功能和更好的可用性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 2021-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多