如何从Java源代码生成序列图

45
我有一个关于从Java源代码生成序列图的问题。当我谷歌搜索时,看到有人说要使用Visual Paradigm(VP),但它不会为我生成序列图。我的VP中的一些步骤与手册中的不同。手册上说要选择方法,但我的VP不允许在特定类中选择方法。从Java源代码逆向工程序列图 有没有人有新的想法来从Java源代码生成序列图?

你确定要听从那个奇怪的副总裁,不允许选择方法吗?那么起点在哪里呢? - Alexei Kaigorodov
只选择类!!! - AFF
10个回答

50

使用Intellij 2019,有两个插件可以完成此任务:

  1. SequenceDiagram(当前版本为1.3)。 在您要分析的类方法中,选择“Tool” > “SequenceDiagram”: 输入图像描述

  2. ZenUML支持(当前版本为2019.1.2) 输入图像描述


2
它的工作效果非常惊人。强烈推荐尝试!同时也适用于Android Studio 2.0。 - Andrii Kovalchuk
1
优秀的工具。非常感谢您的建议。 - Akshaya Aradhya
SequenceDiagram 1.3 在 Intellij 2019.1.3 上运行得非常出色。太棒了! - Pierluigi Vernetto

8
如果您正在使用或希望使用Eclipse IDE,则可以安装ObjectAid UML插件,该插件可以从以下位置进行反向工程设计:
  • Java堆栈跟踪控制台
  • Debug视图中的Java堆栈帧
  • 来自调用层次结构视图的方法调用

还有更多功能。

请参见http://www.objectaid.com/sequence-diagram


6
我已经实现了一个基于junit测试的序列生成器,该生成器为pgf-umlsd latex包示例生成序列图: Generated sequence diagram 你好世界
@Test
@SequenceDiagram({ Controller.class, Model.class })
public void testMethod() {
    Controller c = new Controller(new Model());
    c.init();
    c.simpleBeanOperation();
}
https://github.com/sherif181/java-sequence-diagram-generator

看起来很有趣。但是还无法设置和使用它。如果有安装和使用文档会更好。 - supernova
1
SDTEST文件夹包含一个工作示例。您还需要一种编译LaTeX文件的方法,例如在Windows上使用MiKTeX或在真实操作系统上使用TeXLive。 - sherif
1
我同意@supernova的观点。我对你在那个项目中所做的事情不熟悉,需要在readme中得到一些关于gradle命令和生成图表的要求的指导...这可能是一个很酷的项目,但如果没有开始文档,我会感到迷失并寻找其他东西。 - Tiris

1
另一个生成Java程序序列图的好工具是JIVE:www.cse.buffalo.edu/jive。它作为Eclipse的插件提供,并且是免费下载的。还支持多线程Java程序的可视化。注意:JIVE生成程序的执行图。它还生成对象图,并具有其他有用的功能,如基于查询的调试。如果这不是您想要的内容,很抱歉。

1
JIVE适用于小型程序。在更大的程序上会出现卡顿问题,例如如果我在我的JUnit测试中使用PowerMock。 - isobretatel
你尝试过使用JIVE的排除过滤器来抑制您不想看到的包的可视化吗? 这可以从“运行”菜单中完成:运行->调试配置->JIVE选项卡。正如您所看到的,JIVE预装了某些要排除的包,但是当您使用一个大型应用程序时,通常需要进行这些操作以防止挂起并保持可视化可管理。 - Bharat Jayaraman
是的,我排除了所有PowerMock包。 - isobretatel
请参考http://www.cse.buffalo.edu/jive/tutorials/managing_jive.html来管理大型运行。如果适用于您的情况,您可以尝试在一个区间内进行调试。或者,您可能需要抑制更多的软件包以避免可视化。这只是一些建议。 - Bharat Jayaraman

1

试用这款工具,它可以帮助您创建Java源代码的序列和类图,包括每个流程的执行时间。

按照文档中给出的步骤操作。

http://maintainj.com/


评估许可证允许您在7天内无限制地使用该产品。 - user3774109

1
UML-VP可以很好地生成序列图。根据您的描述,我感觉您选择了包目录来向该工具展示源文件。我也曾遇到类似的问题。解决方法是选择包文件夹上方的“src”文件夹,然后您就可以看到一些漂亮的图表。祝好运。

1
我今天尝试了很多选项,使用IntelliJ Idea社区版从我的现有代码生成序列图和类图。以下是最终适合我的解决方案:
只有特定版本的Intellij社区版才与所需插件兼容,因此下载正确的IDE和插件非常重要。
这里是完整软件集合的链接及其特定版本,适用于我的Mac Book Pro。请注意,我测试了这些软件:
  1. [IntelliJ Community Edition IDE]
  2. Code Iris 用于创建类图和可视化代码

  3. SequenceDiagram Plugin 用于在IntelliJ IDE上生成Seq Diagram。


1

0
在使用VP对Java源代码执行反向工程生成序列图时,无法选择操作可能是由于选择了错误的源文件夹。只要您选择源代码的根文件夹(根据类的"package"语句),它就应该正常工作。此外,Visual Paradigm提供订阅许可证,用户可以以低廉的月度费用订阅许可证。

0

有许多产品可以从Java源代码生成序列图。不幸的是,所有好的产品都很昂贵。

如果您正在使用Visual Paradigm的社区版,则无法生成任何图表。您必须升级到其中一种付费版本。

您可以在此处比较付费版和免费版
http://www.visual-paradigm.com/product/vpuml/features/?edition=ce

您需要购买支持代码工程的Visual Paradigm标准版。

查看以下链接以获取其他也可以生成图表/源代码的替代程序。

Posiden UML http://www.gentleware.com

Argo UML http://argouml.tigris.org


其他资源

我如何从Java源代码生成序列图?

序列图反向工程

http://www.altova.com/umodel/sequence-diagrams.html


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