如何从现有的Java代码生成UML图(特别是序列图)?
当前回答
PlantUML怎么样? 这不是逆向工程!!这是在编码之前的工程设计。
其他回答
您也可以尝试使用netbeans UML建模器。我用它来生成我在eclipse项目中使用的javcode。您甚至可以在netbeans中导入eclipse项目,并保持eclipse设置与netbeans项目设置同步。
我尝试了几个用于eclipse的UML建模器,但都不满意。它们要么不稳定,要么复杂,要么丑陋不堪。: -)
有一个名为binarydoc的免费工具,它可以从Java方法的字节码(而不是源代码)生成UML序列图或控制流图(CFG)。
下面是为java方法java.net.AbstractPlainSocketImpl.getInputStream生成的示例图binarydoc:
方法控制流图:
方法的UML序列图:
ObjectAid UML Explorer
是我用的。它很容易从存储库安装:
Name: ObjectAid UML Explorer
Location: http://www.objectaid.com/update/current
并生成相当不错的UML图:
网站描述:
The ObjectAid UML Explorer is different from other UML tools. It uses the UML notation to show a graphical representation of existing code that is as accurate and up-to-date as your text editor, while being very easy to use. Several unique features make this possible: Your source code and libraries are the model that is displayed, they are not reverse engineered into a different format. If you update your code in Eclipse, your diagram is updated as well; there is no need to reverse engineer source code. Refactoring updates your diagram as well as your source code. When you rename a field or move a class, your diagram simply reflects the changes without going out of sync. All diagrams in your Eclipse workspace are updated with refactoring changes as appropriate. If necessary, they are checked out of your version control system. Diagrams are fully integrated into the Eclipse IDE. You can drag Java classes from any other view onto the diagram, and diagram-related information is shown in other views wherever applicable.
我发现绿色插件非常简单,使用和生成类图从源代码。 试一试吧。 只需将插件复制到插件目录。
你的代码库是什么?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
推荐文章
- 使用Jackson将JSON字符串转换为漂亮的打印JSON输出
- Android - SPAN_EXCLUSIVE_EXCLUSIVE跨度不能为零长度
- Javadoc @see或{@link}?
- 在准备语句中使用“like”通配符
- Android Eclipse -无法找到*.apk
- javac和Eclipse编译器之间的区别是什么?
- 工厂模式和策略模式之间的区别是什么?
- 在Java中使用正则表达式提取值
- 如何允许所有网络连接类型HTTP和HTTPS在Android(9)馅饼?
- Intellij IDEA Java类在保存时不能自动编译
- 何时使用Mockito.verify()?
- 在maven中安装mvn到底做什么
- 不可变与不可修改的集合
- 如何在JSON中使用杰克逊更改字段名
- GSON -日期格式