2

我画了下图,我想知道它有多正确?

这是一个示例 CLI 程序,它接收命令,检查它是否正确[或存在于命令定义文件中](其解析器),然后执行它,否则它将向用户抛出错误。在执行过程中,如果发生任何会终止执行的事情,将向用户报告为失败。所有这些事件也必须被记录。我关心的是水平条(称为合并叉):

在此处输入图像描述

4

2 回答 2

2

我根据您的描述绘制活动图。活动开始执行后,它等待事件“收到命令”。收到命令后,如果条件“在定义文件中”为真,则可以执行。否则抛出异常。例外是命令对象。(在这个例子中。但你可以改变它)。执行命令或记录错误后,活动等待下一个命令。如果需要同时接收多个命令,只需删除“命令接收”事件的流程。

见下图:

在此处输入图像描述

于 2014-11-24T15:39:46.573 回答
1

首先,我认为图表不是很清楚。您应该在元素的描述中更具表现力。例如:“命令”是什么意思?我猜从上下文中它的意思是“收到命令”。

我不清楚的另一件事是您在开始时对信号的含义:您首先收到信号“命令”,然后做出一些不清楚的决定,然后,如果决定单向,则发送信号“失败”。由于该命令未执行,我猜它在此路径中无效。请说出你的决定。(您可以标记您的分支 [有效命令] 和 [无效命令])。

至于合并栏,我同意您不应该以这种方式使用它们的评论。但是我最喜欢的消息来源说你不应该将箭头直接指向动作(但它也说在实践中你经常这样做:))。相反,您应该使用菱形,就像在决策中一样,但有多个输入箭头和一个输出箭头。

事后的一点看法:我发现 UML 经常会分散注意力。我参加过不止一次会议,我们应该讨论我们的软件设计,而是讨论了 UML。重要的部分是 UML 可以帮助您有效地沟通,而不是每个缺口和抽搐都符合标准。当然,除非您想从中生成代码/东西。

于 2014-11-24T08:14:48.627 回答