如何从现有的Java代码生成UML图(特别是序列图)?
当前回答
我会推荐Omondo的EclipseUML作为一般使用,尽管几个月前我的web项目确实遇到了一些问题。他们曾经有过一个免费版本,但据说已经不再推广了。
如果你真的热衷于从源代码逆向工程序列图,我推荐jTracert。
就Eclipse项目本身而言,Eclipse UML2 Tools项目可能支持逆向工程,尽管我从未见过它在实践中的使用。
MoDisco(模型发现)项目Eclipse GMT项目似乎更清楚地实现了您的目标。特定于技术的工具列表将是一个很好的开始。
其他回答
您可以使用Eclipse 3.5的EclipseUML的30天评估版本: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
现场flash演示:http://www.ejb3.org/reverse.swf
EclipseUML Omondo是世界上最好的Java工具。在这个实时java同步市场上,似乎只有eUML可以与之竞争,但是eUML在代码中添加了模型标签,这真的非常非常糟糕,对我来说是一个绝对的失败。
你的代码库是什么?Java还是c++ ?
eUML2 for Java is a powerful UML modeler designed for Java developper in Eclipse. The free edition can be used for commercial use. It supports the following features: CVS and Team Support Designed for large project with multiple and customizable model views Helios Compliant Real-time code/model synchronization UML2.1 compliant and support of OMG XMI JDK 1.4 and 1.5 support The commercial edition provides: Advanced reversed engineering Powerful true dependency analyze tools UML Profile and MDD Database tools Customizable template support
使用IntelliJ IDEA。要生成类图,选择package并按Ctrl + Alt + U:
默认情况下,它只显示类名,而不显示所有依赖项。要更改它:右键单击->显示类别…和显示依赖项:
要生成依赖关系图(UML部署图),使用maven go View -> Tool Windows -> maven Projects,并按Ctrl + Alt + U:
结果:
此外,还可以生成更多其他图表。见文档。
您也可以尝试使用netbeans UML建模器。我用它来生成我在eclipse项目中使用的javcode。您甚至可以在netbeans中导入eclipse项目,并保持eclipse设置与netbeans项目设置同步。
我尝试了几个用于eclipse的UML建模器,但都不满意。它们要么不稳定,要么复杂,要么丑陋不堪。: -)
我发现绿色插件非常简单,使用和生成类图从源代码。 试一试吧。 只需将插件复制到插件目录。
推荐文章
- 到底是什么导致了堆栈溢出错误?
- 为什么Android工作室说“等待调试器”如果我不调试?
- Java:路径vs文件
- ExecutorService,如何等待所有任务完成
- Maven依赖Servlet 3.0 API?
- 如何在IntelliJ IDEA中添加目录到应用程序运行概要文件中的类路径?
- getter和setter是糟糕的设计吗?相互矛盾的建议
- Android room persistent: AppDatabase_Impl不存在
- Java的String[]在Kotlin中等价于什么?
- Intellij IDEA上的System.out.println()快捷方式
- 使用Spring RestTemplate获取JSON对象列表
- Spring JPA选择特定的列
- URLEncoder不能翻译空格字符
- Java中的super()
- 如何转换JSON字符串映射<字符串,字符串>与杰克逊JSON