如何在 UML 活动图中对函数的不同返回值进行建模?

ser*_*gej 4 c uml activity-diagram

例如,请参阅以下代码。如何在 UML 活动图中对函数的不同返回值进行建模?

typedef enum {CLOSED, OPEN, UNKNOWN} sw_state_t;

sw_state_t read_input(int index)
{
    uint8_t sw_state;

    if (spi_read(&sw_state) == STATUS_OK) {
       if (sw_state & (1 << index))
           return CLOSED;
       else
           return OPEN;
    }

    return UNKNOWN;
}
Run Code Online (Sandbox Code Playgroud)

我想显示的是函数返回的值。我拥有的是一个带有一个输入 ActivityParameter 和一个输出 ActivityParameter 的 Activity 块。

更新

下图有道理吗?

在此输入图像描述

Ale*_*eks 6

使用数据对象,因为它们是活动的输出。然后将对象与活动链接起来

查看您的图表,在每个相关的 ActivityFinal(返回 OPEN、CLOSED、UNKNOWN)之前添加一个操作以按以下方式返回相应的对象。然后将每个对象与 OutputParameter 连接起来。

在此输入图像描述

  • 在模型中的某处添加一个名为 sw_state_t 的枚举元素(通常它是一个类,但您在这里处理一个枚举)。然后只需将其(作为实例)拖放到活动图上即可。最后设置对象的名称。在我的模型中,我总是创建一个类模型来指定领域概念及其关系。后来我在其他图中使用类/对象(比如这个)。这种做法使得不同模型之间具有良好的可追溯性,并允许更正式和准确的规范。 (2认同)