如何从现有的Java代码生成UML图(特别是序列图)?
当前回答
有一个名为binarydoc的免费工具,它可以从Java方法的字节码(而不是源代码)生成UML序列图或控制流图(CFG)。
下面是为java方法java.net.AbstractPlainSocketImpl.getInputStream生成的示例图binarydoc:
方法控制流图:
方法的UML序列图:
其他回答
有一个名为binarydoc的免费工具,它可以从Java方法的字节码(而不是源代码)生成UML序列图或控制流图(CFG)。
下面是为java方法java.net.AbstractPlainSocketImpl.getInputStream生成的示例图binarydoc:
方法控制流图:
方法的UML序列图:
我开发了一个maven插件,它既可以作为插件目标从CLI运行,也可以作为依赖项导入,并以编程方式使用解析器,@see Main# Main()来了解如何运行。
它递归地呈现所需包的PlantUML src代码,如果需要,您可以手动编辑(希望您不会)。然后,通过将代码粘贴到plantUML页面中,或者通过下载plant的jar,您可以将UML图呈现为png图像。
点击https://github.com/juanmf/Java2PlantUML查看
示例输出图:
欢迎任何捐助。它有一组自定义输出的过滤器,但我还没有在插件的CLI参数中公开这些过滤器。
值得注意的是,它并不局限于您的*.java文件,它也可以从maven依赖项中渲染UML图。这对于理解您所依赖的库非常方便。它实际上检查带有反射的已编译类,因此不需要源
成为第一个在GitHub上的明星:P
您也可以尝试使用netbeans UML建模器。我用它来生成我在eclipse项目中使用的javcode。您甚至可以在netbeans中导入eclipse项目,并保持eclipse设置与netbeans项目设置同步。
我尝试了几个用于eclipse的UML建模器,但都不满意。它们要么不稳定,要么复杂,要么丑陋不堪。: -)
使用IntelliJ IDEA。要生成类图,选择package并按Ctrl + Alt + U:
默认情况下,它只显示类名,而不显示所有依赖项。要更改它:右键单击->显示类别…和显示依赖项:
要生成依赖关系图(UML部署图),使用maven go View -> Tool Windows -> maven Projects,并按Ctrl + Alt + U:
结果:
此外,还可以生成更多其他图表。见文档。
PlantUML怎么样? 这不是逆向工程!!这是在编码之前的工程设计。
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- 从现有模式生成表关系图(SQL Server)
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 在Java流是peek真的只是调试?
- Recyclerview不调用onCreateViewHolder