Java 用于多线程数据流的UML

Java 用于多线程数据流的UML,java,uml,class-diagram,sequence-diagram,dataflow,Java,Uml,Class Diagram,Sequence Diagram,Dataflow,我想画一个图表,在这里可以看到java程序的数据流,以及是否有一个或多个线程处理数据 序列图不显示多线程,当您有超过5个不同的实体时,会非常混乱 类图有助于显示关系,但缺少数据流 我想画框(如类/包图)并连接它们。可能是将一个框加倍,并在两者之间插入…,以显示可以有多个线程 对于这种数据流图,UML有什么图 哪种编辑器适用于该图表?如果可能的话,可以使用免费软件或开源软件。我会查看UML活动图,以显示多个线程及其并行执行。在通信图上,您有时也会看到线程字母(例如A、B、C)试图表示并发线程,但我

我想画一个图表,在这里可以看到java程序的数据流,以及是否有一个或多个线程处理数据

序列图不显示多线程,当您有超过5个不同的实体时,会非常混乱

类图有助于显示关系,但缺少数据流

我想画框(如类/包图)并连接它们。可能是将一个框加倍,并在两者之间插入
,以显示可以有多个线程

对于这种数据流图,UML有什么图


哪种编辑器适用于该图表?如果可能的话,可以使用免费软件或开源软件。

我会查看UML活动图,以显示多个线程及其并行执行。在通信图上,您有时也会看到线程字母(例如A、B、C)试图表示并发线程,但我几乎总是觉得这令人困惑。UML2中有一些片段可能有助于在序列图中显示并发性,但我总是发现这些片段很麻烦,而且这些图很难重构(这意味着它们很快就会过时)

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


关于使用哪种工具,大多数IDE都包含一定程度的UML建模工具,例如,我很乐意使用Eclipse附带的基于EMF的工具。

取决于问题,但我可能会使用活动图来描述事件的顺序:

然后,可能需要一组序列图来捕获每个步骤的类级交互


或者,您可以考虑以串行方式描述序列(考虑在循环中迭代一个数组),只需注意在实现中迭代应该是并行的。

序列图对这两个调用都有符号,并且是显示数据流的适当方法


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

对于ex red,显示一个线程
蓝色显示不同的线程

如果您想可视化多个线程的状态(就像许多分析器一样),请查看。它不是显示许多线程间通信的理想工具,但非常适合显示线程状态之间的转换:

不错!这让我想起了我曾经做过的一个类似的图表,以增加对水务署的热爱。非标准的,但视觉上可以非常描述性。