如何从Java代码生成UML图(尤其是序列图)?

450

我如何从现有的Java代码生成UML图(特别是序列图)?


4
这很不可能发生。真正的Java代码并不像UML图表那样被组织成漂亮的形式。 - Stephan Eggermont
2
这么多答案都没有涉及到时序图。哼。 - Bill K
@BillK 我的回答确实涉及到了序列图。这是一个Intellij Idea插件 - https://dev59.com/nXVD5IYBdhLWcg3wNYxZ#45239269。 - Devs love ZenUML
2
这个问题更适合在姊妹站点Software Recommendations Stack Exchange上询问。 - Basil Bourque
Java设计模式书籍PDF格式 - Nasreen Ustad
显示剩余2条评论
16个回答

2
您可以使用 EclipseUML 的 30 天评估版本进行 Eclipse 3.5: http://www.uml2.org/eclipse-java-galileo-SR2-win32_eclipseUML2.2_package_may2010.zip。虽然这不是最新的 3.6 版本,但非常好用,您无需购买即可进行测试和逆向工程。
逆向工程: http://www.forum-omondo.com/documentation_eclipseuml_2008/reverse/reverse/reverse_engineering_example.html
Live flash 演示:http://www.ejb3.org/reverse.swf
EclipseUML Omondo 是世界上最好的 Java 工具。只有 eUML 在此实时 Java 同步市场上竞争,但 eUML 会在代码中添加模型标签,这对我来说非常非常糟糕且绝对不能使用。


1
另一个Java建模工具是(我的)网站GitUML。从存储在GitHub仓库中的Java或Python代码生成UML图表。
GitUML的一个关键点子是解决“文档”的一个问题:图表总是过时的。使用Git推送代码时,GitUML会自动更新图表。
浏览社区UML图表,其中有一些Java设计模式。浏览流行的GitHub仓库,并可视化其架构和模式。

diagram browser

使用点和点击创建图表。没有拖放编辑器,只需单击存储库树中要可视化的类即可。

select the java classes you want to visualise

基础技术基于PlantUML,这意味着您可以使用额外的PlantUML标记来完善您的图表。

1
到目前为止,我使用过的最好的逆向工程和往返Java->UML的工具是Borland's Together。它基于Eclipse(不仅仅是单个插件),而且真正地运行良好。

现在一起变成了Micro Focus Together - Jaime

1

有一个名为binarydoc的免费工具,可以从Java方法的字节码(而不是源代码)生成UML序列图控制流程图CFG)。

这里是java.net.AbstractPlainSocketImpl.getInputStream方法生成的binarydoc示例图:

  • java.net.AbstractPlainSocketImpl.getInputStream方法的控制流程图

Control Flow Graph

  • java.net.AbstractPlainSocketImpl.getInputStream 方法的 UML 序列图

UML Sequence Diagram


1
嗨 @frewper,binarydoc页面链接已更新,请再试一次。 - Happy

0

我建议使用PlantUML。这个工具非常有用且易于使用。PlantUML有一个Netbeans插件,您可以从Java代码创建UML图。

您可以通过以下方法在Netbeans中安装PlantUML插件:

Netbeans菜单 -> 工具 -> 插件

现在选择可用插件,然后找到PlantUML并安装它。

欲了解更多信息,请访问网站:www.plantuml.com


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