0

我即将为一个旧程序制作一个 UML 活动图,其中充满goto. 我要建模的程序是按照示例中的方式构建的。首先,它做一些事情,然后检查错误标志。如果设置了错误标志,它会将错误代码写入日志并可能转到程序中的另一个位置。

// When error, the program generate a Trap and then go to 1000
err = Foo(A,B,C)
if (err != 0) 
{
   CTrap(2000,err,A,B,C)
   goto(1000)
}

// When error, the program generate a trap and continue
err = Foo2(A,B,C)
if (err != 0)
{
   CTrap(2000,err,A,B,C)
}

CTrap将错误代码写入日志,我希望活动图显示每个活动可以生成的错误代码以及何时生成。

现在我已经尝试用无数的决策和合并对此进行建模,并为写入日志的每个错误代码添加了一个操作。但那时几乎不可能遵循该计划。我可以删除错误代码的操作,但随后我会丢失重要信息。然后它仍然是无数的决定和合并。我想知道是否有任何符号可以用来以某种方式简化它。因此,它显示了可以生成的错误代码和时间,而不必在图表中充斥着决策和合并。如果我可以以任何方式在错误标志上使用 post-contion,或者如果您可以从带有条件的活动中获得多个输出?

编辑

我通过在评论中放置有关错误代码(陷阱)的信息进行了一些实验。不知道能不能像我这样写?我可以从我在某些地方完成的活动中获得不同的输出吗?然后我想知道我是否一直在使用“写入变量”正确?这是一个实验,而不是完整的图表。

以 BFX 为前缀的函数为系统函数,以 BX2 为前缀的函数为与本程序相关的函数。所有合并都是一个 GOTO 目的地。例如,名为 8100 的合并是程序的一部分,用于处理您遇到的错误情况GOTO 8100

我的实验

4

1 回答 1

1

您可以使用多个活动图来做到这一点。从您的代码中,您不想在顶层图表上显示可能的错误,但在显示的图表上,CTrap您可以显示可能的错误代码及其作用。

如果您想在一张图表中显示所有信息,您无能为力 - 图表会变得非常混乱。

编辑(添加图表后):您可以连接链接中的警卫,而不是让 4 个链接从交界处传出,而是得到一个。不要以为还有什么可以做的。

于 2012-10-14T20:50:37.447 回答