【问题标题】:What's the more appropriate UML diagram for describing a cyclical pattern?描述循环模式更合适的 UML 图是什么?
【发布时间】:2021-12-01 19:56:54
【问题描述】:
我正在开发一个具有周期性的简单微服务:
- 等到有人发布关于 MQTT 主题的消息
- 执行操作
- 发送回复,然后等待下一条消息
我需要与其他人分享创建此微服务的所有步骤。
我正在考虑使用活动图,但我发现的所有示例似乎都没有涵盖这种行为。
描述循环操作更合适的 UML 图是什么?为什么?
要记住的一点是,没有停止接收消息的命令,它一启动就开始接收,只有在它终止时才停止。
【问题讨论】:
标签:
uml
control-flow
sequence-diagram
flowchart
activity-diagram
【解决方案1】:
您描述最适合使用activity diagram 建模的活动的详细信息。
为您的案例建模的方法不止一种。例如:
-
您所描述的循环性质已经是一个实现视图:您可以想象代码中有一个循环重复这些步骤。如果需要,您可以在图表中显示这样的控制流。
-
您也可以将单个迭代建模为一个活动,并认为活动在需要处理的时候开始。
-
最后,您可以使用对象流及其内置缓冲功能对包括您的队列在内的整个系统进行建模。
【解决方案2】:
最好使用活动图来建模。
等待传入消息可以通过接受事件操作建模。发回回复可以通过发送信号操作建模。
下面的图片几乎是相同的。即使前一条消息的处理尚未结束,左图也开始处理传入消息。右图等待上一条消息处理完毕,然后开始接受新消息。
我会推荐左边的图片,因为它是最简单的。如果您想强调周期性,或者如果要传达服务只处理一条消息很重要,您可以选择右侧的图片。