【问题标题】:A sample UML Activity Diagram一个示例 UML 活动图
【发布时间】:2014-11-24 07:46:41
【问题描述】:

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

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

【问题讨论】:

标签: uml diagram activity-diagram


【解决方案1】:

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

见下图:

【讨论】:

  • 迷宫有什么出路吗? :)
【解决方案2】:

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

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

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

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

【讨论】:

  • 对于信号,它意味着它向程序发送Fail 信号以管理错误和异常处理。现在,当diamond 决定接收到的命令不合法,应该终止执行并向用户显示错误时,我应该如何管理?
  • 您可以保持图表不变,但只需将建议添加到决策的分支中即可。那么每个人都应该明白你的意思。
  • 不管 UML 在代码生成方面的前景如何,当您与项目经理一起工作时,UML 可能会派上用场,因为它可以保证所讨论的技术细节。否则,不同的部分可能会在开发过程中改变他们所说的内容,如果没有 UML,引用可能并不容易。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多