【问题标题】:What is the best UML diagram for this sequence?这个序列的最佳 UML 图是什么?
【发布时间】:2020-04-19 16:15:15
【问题描述】:

我目前正在学校完成我的期末项目。并且即将毕业。我一直在使用 UML 图时遇到困难,我正在努力决定应该使用哪一个来描绘我的代码。

我的代码是一个 python 脚本,并包含一个按以下方式工作的循环:

I run the script from a terminal -> 
   Terminal listens to two keys (W & Q).  
If Q is pressed the script stops. 
If W is pressed the loop begins in the following order:  
  Raspberry Pi camera takes a picture ->  
  Crop specific portion out of said picture and save it ->  
  Run Text recognition on that picture, which returns a text string and is saved in a variable ->  
  Run Regex to filter out junk characters from text string and create new "clean" text string ->  
  Run GET request to website using clean text string, and get return based on it. ->  
  Print out response from request.

哪个图表是使这个序列易于理解的最佳选择。我研究了各种图表,例如系统序列图等。但我还没有找到任何对我来说真正有意义的东西。我应该求助于使用流程图吗?或者有什么更适合我使用的吗?

【问题讨论】:

  • 制作活动图。这最适合您的目的。
  • 欣赏评论 qwerty。这就是我最终要做的。

标签: uml modeling diagram control-flow


【解决方案1】:

您想使用事件驱动的流程链 (EPC)。

在这种情况下(没有看到您的代码)我建议使用 '事件驱动的流程链' 简称:(EPC),[德语:( EPK), Ereignisgesteuerte Prozesskette].

UML 大多数时候习惯于显示“类结构”而不是链/脚本中的进程。

EPC 使用逻辑运算符,例如 OR、AND 和 XOR,它们可以表示以下事件:

'终端监听两个键(W & Q)' => XOR -> W ->Q

您可以阅读更多关于它的信息here。

编辑:

如果您仅限于使用 UML 图:

在七个行为 UML 图中,您确实应该使用用户 qwerty_so 建议的“UML 活动图”。它类似于 EPC,可以描述为 UML 的“流程图”变体。

UML 图仅限于六个“结构”UML 图和七个“行为”UML 图:

行为 UML 图

  1. 活动图
  2. 时序图
  3. 用例图
  4. 状态图
  5. 通讯图
  6. 交互概览图
  7. 时序图

您可以阅读更多关于活动图here。

您可以阅读更多关于 UML 图的类型here。

【讨论】:

  • OP 要求提供 UML 解决方案。可能他的老师会因为他没有使用 UML 解决方案而给他一个不好的评价。建议使用两者都基于的 Petri 网也是如此。
  • 好吧@qwerty_so,目前还不清楚。 OP 只提到他在 UML 上“糟透了”,但并没有特别要求只使用 UML 的解决方案,因为他还询问了流程图和“更好的东西”使用。但我明白你的意思,并会相应地编辑我的答案。
  • 非常感谢您花时间创建如此详细的回复。我很感谢你花时间做这个。我最终使用了一个活动图,但你的帖子很有帮助。我从中学到了很多:)
  • @Tejsfrank,非常欢迎您 ;) - 如果这有助于或回答了您的问题,请将其标记为答案,并点赞。 - 会很好;)
【解决方案2】:

如果您处于考试模式,这里有一个快速概览。

UML 提供了两个kind of diagrams:显示系统是如何构成的结构图(类、组件等),以及显示系统功能的行为图。

显然你需要一个行为图。用例显示用户需求,交互图显示系统组件如何交互,状态图显示内部状态如何与事件相关,活动图显示控件和对象的流程。

看你的描述,好像是控制流。您对流程图的犹豫往往证实了这一点。所以我的建议是:使用activity diagram。

【讨论】:

  • 非常感谢!我最终创建了一个活动图。
猜你喜欢
  • 2020-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 2011-09-03
  • 2015-11-09
  • 2015-03-01
  • 1970-01-01
相关资源
最近更新 更多