2011-06-14 35 views
3

我想绘制一个图表,您可以在其中看到java程序的数据流,以及是否有一个或多个线程处理数据。用于多线程数据流的UML

序列图不会显示多线程,并且当您拥有超过5个不同的实体时会出现混乱。

类图很好地显示了关系,但数据流丢失了。

我想绘制盒子(如类/包图)并连接它们。也许有一个盒子加倍和...之间,以表明可以有多个线程。

UML对这种数据流图有什么图?

什么编辑器对该图有好处?如果可能的话免费软件或开源。

回答

5

我会看看UML活动图,以显示多个线程及其并行执行。在通信图上,有时您还会看到线程字母(例如A,B,C)尝试并表示并发线程,但我几乎总是发现这种混淆。 UML 2中有片段可能有助于显示序列图中的并发性,但我总是觉得这很麻烦,图很难重构(这意味着它们很快就会过时)。

如果线程正在执行相同的任务,但并行运行,您可以在您的图表中添加一个注释来解释这一点。通过这种方式,您可以专注于精确且干净地建模单个螺纹。

关于使用哪种工具,大多数IDE将包含某种程度的UML建模工具,我很高兴使用随Eclipse提供的基于EMF的工具。

2

取决于问题,但我可能会用活动图去描述事件的顺序:也许 http://www.agilemodeling.com/style/activityDiagram.htm

然后一组序列图来捕获类级别的相互作用为每个的脚步。或者,你可以看看连续描述序列(想一想在循环中迭代一个数组),并注意迭代应该在实现中并行化。

4

序列图确实对parallel operations and asynchronous调用都有记号,并且是显示数据流的适当方式。

enter image description here

enter image description here

+2

不错!这让我想起了这个[真棒网站](http://www.websequencediagrams.com/)我曾经制作过类似的图表 – Tom 2011-06-14 16:08:06

+0

必须增加对WSD的热爱 – Paolo 2011-06-14 19:58:27

0

要显示多线程,你可以用不同的颜色来显示。

对于红色显示一个线程 和蓝色显示不同线程

+0

非标准的,但视觉上可以是非常具有描述性的。 – SomeWittyUsername 2012-10-27 21:21:03