如何在UML中的活动图中使用上下文属性?

如何在UML中的活动图中使用上下文属性?,uml,Uml,考虑以下类图: 类系统处于活动状态,其行为将持续 调用压力传感器过滤器上的过滤器 压力传感器。压力作为参数 调用Display.show传递的输出参数 压力传感器过滤器。过滤器作为参数 我想通过活动图对系统的行为进行建模 这样做的主要挑战是访问系统的压力传感器。 在阅读了UML 2.5规范之后,我认为唯一的方法是使用ReadSelfAction(第457页UML 2.5规范)和ReadStructuralFeatureAction(第466页UML 2.5规范),如以下活动图所示: 在哪

考虑以下类图:

系统
处于活动状态,其行为将持续

  • 调用
    压力传感器过滤器上的
    过滤器
    压力传感器。压力作为参数
  • 调用
    Display.show
    传递的输出参数
    压力传感器过滤器。过滤器
    作为参数
我想通过
活动图
系统的行为进行建模

这样做的主要挑战是访问
系统的
压力传感器
。
在阅读了UML 2.5规范之后,我认为唯一的方法是使用
ReadSelfAction
(第457页UML 2.5规范)和
ReadStructuralFeatureAction
(第466页UML 2.5规范),如以下活动图所示:

在哪里

  • ReadSelfAction
    系统的当前实例作为输出提供
  • readpressuresesensorfe..
    是一个
    readstructurefeatureaction
    操作,它读取对象在其输入端给出的属性
    pressuresesensor
    ,在这种情况下,该属性是系统的当前实例
  • callbeselfilter.filter动作
    CallDisplay.show动作
    是分别调用
    压力传感器filter.filter和
    Display.show的两个
    calloperation动作
这个问题是非常复杂和不清楚的。
通过活动图来描述系统的行为有没有更简单、更清晰的方法?

由于额外的操作是多余的,所以
ReadSelfAction
。您可以这样减少控制流:

压力由过滤器从
pressure
class'属性中读取。过滤后的输出被发送到
显示器
和循环


您应该研究SysML。它的设计正是为了处理您所处理的此类问题。

这完全取决于您希望在活动图中提供的详细信息。您提供的图表是正确的。顺便说一下,它的详细程度可以直接用于生成代码。如果您想更抽象地描述行为,请不要使用诸如读取结构特征等操作。但在您的示例中,这是一种非常好且精确的描述方式