我想画一张图,您可以在其中看到 java 程序的数据流,以及是否有一个或多个线程处理数据。
当您有超过 5 个不同的实体时,序列图不会显示多线程并且会变得非常混乱。
类图很适合显示关系,但缺少数据流。
我想画盒子(如类/包图)并将它们连接起来。也许有一个盒子翻了一番,...
以表明可以有多个线程。
对于这种数据流图,UML 有什么图?
哪个编辑器适合该图表?如果可能的话,免费软件或开源软件。
我想画一张图,您可以在其中看到 java 程序的数据流,以及是否有一个或多个线程处理数据。
当您有超过 5 个不同的实体时,序列图不会显示多线程并且会变得非常混乱。
类图很适合显示关系,但缺少数据流。
我想画盒子(如类/包图)并将它们连接起来。也许有一个盒子翻了一番,...
以表明可以有多个线程。
对于这种数据流图,UML 有什么图?
哪个编辑器适合该图表?如果可能的话,免费软件或开源软件。
我将查看用于显示多个线程及其并行执行的 UML 活动图。在通信图上,您有时还会看到线程字母(例如 A、B、C)来尝试表示并发线程,但我几乎总是觉得这很混乱。UML 2 中有一些片段可能有助于在序列图中显示并发性,但我总是觉得这很麻烦并且图很难重构(这意味着它们很快就会过时)。
如果线程正在执行相同的任务,但并行运行,您可以在图表中添加注释来解释这一点。通过这种方式,您可以专注于准确、干净地对单个线程进行建模。
关于使用哪种工具,大多数 IDE 将包含一定程度的 UML 建模工具,例如,我很高兴使用 Eclipse 附带的基于 EMF 的工具。
取决于问题,但我可能会使用活动图来描述事件的顺序: http ://www.agilemodeling.com/style/activityDiagram.htm
然后可能是一组序列图来捕获每个步骤的类级交互。
或者,您可以查看串行描述序列(考虑在循环中迭代数组)并注意迭代应该在实现中并行化。
要显示多线程,您可以使用不同的颜色来显示。
例如红色显示一个线程和蓝色显示不同线程
如果您想可视化多个线程的状态(就像许多分析器所做的那样),请查看PlantUML 时序图。它不是显示许多线程间通信的理想工具,但非常适合显示线程状态之间的转换: