如何在UML活动图上展示异步操作

19

我将为一些客户端-服务器连接建立的代码进行绘制/说明,以更好地理解它。有几个操作是在单独的线程中异步完成的(连接线程、数据接收线程等)。

我应该在不同的图表上展示它们吗?我更喜欢在一个单独的图表上把它们整合起来以获得整体视图,但不知道如何在活动图上表示它。

2个回答

20

我不确定是否有正确的方法来做这件事, 我通过测试不同的策略开发了自己的方法,直到找到适合自己思维方式的东西。

以下是我所采用的方法:

  • 线程 == 泳道
  • 线程操作 == 动作/活动节点
  • 关键区域 == 对象节点
  • 线程创建 == 分叉节点

太棒了,伙计,我一直在寻找这样的东西。 - scope_creep
1
我认为任何人花几个小时来处理活动图,最终都会想出类似这样的东西。对于我自己来说,我仍在寻找一些专门用于并发的图表格式。使用活动图在小组件上进行操作可以得到相当不错的效果,但对于较大的系统而言,它们看起来像意大利面条,没有可读性,即使对于作者也是如此。 - sharkin
@sharkin:你可以查看http://www.bpmn.org定义的网关。我正在寻找完全相同的东西,BPMN网关似乎是描述这个问题的可能解决方案。您可以在http://tynerblain.com/blog/2006/07/18/foundation-series-business-process-modeling/上阅读更多信息,特别是针对并发/异步进程的内容,请参阅http://tynerblain.com/blog/2007/11/19/asynchronous-processes/。 - Cohen
9
可以更新一下示例图片吗?目前显示的图片已经损坏了。 - Rosdi Kasim
1
@sharkin,你还有那张图片的副本吗?链接已经失效了。 - user994165
显示剩余2条评论

6

使用半箭头来表示异步消息调用,而不是使用完整的箭头。如图所示:

alt text


11
这是时序图,不是活动图。我希望能看到总体动作,而不是具体的函数调用,以便了解正在发生的事情。 - Marcin Gil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接