我画了下面的图表,我想知道它是多么正确?
这是一个示例CLI程序,它接收命令,检查它是否正确[或存在于命令定义文件中](其解析器),然后执行它,否则它将向用户抛出错误。在执行过程中,如果发生任何会终止执行的事件,则报告为用户失败。所有这些事件也必须记录下来。我担心的是水平条(称为合并分叉):
答案 0 :(得分:2)
我按照你的描述绘制活动图。活动开始执行后,它等待事件“Command Received”。当接收到命令时,如果条件“在定义文件中”为真,则可以执行它。否则抛出异常。例外是命令对象。 (在这个例子中。但你可以改变它)。执行命令或记录错误后,活动将等待下一个命令。如果需要同时接收多个命令,只需删除流向“Command Received”事件。
见下图:
答案 1 :(得分:1)
首先我认为图表不是很清楚。你应该在你的元素描述中表现得更有表现力。例如:"命令"意思?我想从上下文来看,这意味着"命令收到"。
我不清楚的另一件事是你在开始时对信号的意思:你先收到信号"命令"然后做出一些不明确的决定然后,如果决定是单行,发送信号"失败"。由于命令没有执行,我猜它在这条路径中无效。请说出你的决定。 (您可以标记您的分支[有效命令]和[无效命令])。
至于合并栏我同意你不应该这样使用它们的评论。但我的favorite source说你不应该直接将箭头指向动作(但它也说实际上你经常这样做:))。相反,你应该使用钻石,就像决定一样,但有多个进入箭头和一个外向箭头。
之后的一点意见:我发现UML经常会分散注意力。我参加过多次会议,我们应该讨论我们软件的设计,而是讨论UML。重要的是UML可以帮助您有效地进行沟通,而不是每个缺口和抽搐都符合标准。当然,除非你想从中生成代码/东西。