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


Answers

编辑:如果你是一名设计师,然后纸莎草纸是你的最佳选择,它是非常先进的功能,但如果你只是想勾画出一些uml图和简单的安装,那么ObjectAid是非常酷,它不需要任何插件我只是将它安装在Eclipse-Java EE上,并且效果很好!

更新2013年10月11日

我原来的帖子是在2012年6月,很多东西都发生了变化,许多工具都在增长,而其他的则没有。 由于我要回过头来做一些建模,同时也得到了一些回复,我决定再次安装纸莎草纸,并且会再次调查其他可能的uml建模解决方案。 Uml代(具有同步功能)对于软件设计师而言非常重要,但对于普通开发人员来说非常重要。

我希望纸莎草纸可以直接将逆向工程类转换成UML类图,如果这种逆向工程具有同步功能,那将是非常酷的,但不幸的是,纸莎草纸项目充满特色,我认为那里的开发人员已经有了很多,你在纸莎草纸上所做的动作可能不会给你任何回应,只是没有任何反应,但这已经超出了这个问题范围。

答案 (2013年10月11日)

工具

  1. 下载纸莎草纸
  2. 转到帮助 - >安装新软件...
  3. 使用:下拉菜单中,选择- 所有可用站点 -
  4. 在过滤器中输入Papyrus
  5. 安装完成后重新启动Eclipse
  6. 重复步骤1-3,这次安装Modisco

脚步

  1. 在你的java项目中(假设它叫做MyProject)创建一个文件夹,例如UML
  2. 右键单击项目名称 - >发现 - >发现者 - >从Java项目发现Java和库存模型,将生成名为MyProject_kdm.xmi的文件。
  3. 右键单击项目名称文件 - >新建 - >纸莎草纸模型 - >并将其命名为MyProject。
  4. 将三个生成的文件MyProject.di,MyProject.notation,MyProject.uml移动到UML文件夹
  5. 右键单击MyProject_kdm.xmi - >发现 - > Discoverer - >从KDM代码中发现UML模型,您将得到一个属性对话框,将序列化prop设置为TRUE,以生成名为MyProject.uml的文件

  6. 将生成的根目录生成的MyProject.uml移动到UML文件夹,Eclipse会问你如果你想替换它,点击是。 我们在这里做的是,我们用一个生成的模型替换了一个空模型。

  7. ALT + W - >显示视图 - >纸莎草纸 - >模型浏览器

  8. 在这个视图中,你会发现你的课程在图片中

  9. 在视图中右键单击根模型 - >新图

  10. 然后开始从视图中抓取类到图中

一些功能

  • 显示类元素(变量,函数等)右键单击任何类 - > Filters - >显示/隐藏内容Voila !!

  • 您可以从Window - > pereferences - > papyrus - >类图中使用默认的友好颜色设置

  • 一个非常重要的设置是安排,当你放弃他们得到拥挤的课程时,右键单击课程图上的任何空白处并单击排列全部

  • 模型资源管理器视图中的箭头可以被抓到图上以显示泛化,实现等

  • 毕竟你的设置会显示图表

  • 由于我知道您不需要同步,因此您需要手动导入任何新的类。

就是这样,除非你真的需要它,否则不要购买商业产品,纸莎草纸实际上是伟大而复杂的,而不是捐赠或其他东西。

免责声明:我与纸莎草人没有任何关系,事实上我一开始并不喜欢纸莎草,直到我做了大量的研究,并以耐心经验。 当我尝试其他免费工具时,会再次回到这篇文章。

Question

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




PlantUML如何? 这不是用于逆向工程! 它代码之前是用于工程的。




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

你可以通过这种方法在NetBeans中安装PlantUML插件:

Netbeans菜单 - >工具 - >插件

现在选择Available Plugins,然后找到PlantUML并安装它。

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




我开发了一个maven插件,既可以作为插件目标从CLI运行,也可以作为依赖项导入,并以编程方式使用解析器@see Main#main()来了解如何实现。

递归地呈现所需软件包的PlantUML src代码 ,您可以根据需要手动编辑(希望您不会)。 然后,通过在plantUML页面中粘贴代码,或者通过下载植物的jar,您可以将UML图表渲染为png图像。

看看这里https://github.com/juanmf/Java2PlantUML

示例输出图:

任何贡献都是值得欢迎的。 它有一组自定义输出的过滤器,但我没有在插件的CLI参数中公开这些过滤器。

需要注意的是,它不仅限于* .java文件,它还可以呈现来自你的maven依赖关系的UML图src。 这对了解你所依赖的库非常方便。 它实际上用反射检查编译的类,所以不需要源

成为第一个在github上出演的人:P




before曾经有人问before类似的东西。

到目前为止,我已经用于逆向工程的最佳工具,以及Java的圆形跳脱 - > UML是Borland的Together 。 它基于Eclipse(不仅仅是一个插件),而且非常有效。




你也可以试试netbeans UML建模器。 我用它来生成我在eclipse项目中使用的javacode。 您甚至可以在netbeans中导入eclipse项目并保持eclipse设置与netbeans项目设置同步。

我尝试了几种用于eclipse的UML建模器,但对它们并不满意。 他们要么不稳定,要么复杂,要么简单丑陋。 ;-)




Links