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

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

ObjectAid UML资源管理器

是我用过的 它可以从存储库轻松安装

Name: ObjectAid UML Explorer Location: http://www.objectaid.com/update/current 

并生成相当不错的UML图:

截图

网站描述:

ObjectAid UML Explorer与其他UML工具不同。 它使用UML符号来显示现有代码的图形表示,它与您的文本编辑器一样精确和最新,同时非常易于使用。 几个独特的功能使这成为可能:

  • 您的源代码和库是显示的模型,它们不会被反向设计为不同的格式。
  • 如果你在Eclipse中更新你的代码,你的图表也会更新; 没有必要对源代码进行逆向工程。
  • 重构更新您的图表以及您的源代码。 当您重命名字段或移动课程时,您的图表只是简单地反映更改而不会失去同步。
  • 您的Eclipse工作区中的所有图表都会根据适当的重构更改进行更新。 如有必要,他们会从您的版本控制系统中检出。
  • 图完全集成到Eclipse IDE中。 您可以将Java类从任何其他视图拖动到该图上,并在适用的情况下在其他视图中显示与图相关的信息。

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


更新2013年10月11日

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

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

答案 (2013年10月11日)

工具

  1. 下载纸莎草纸
  2. 转到帮助 – >安装新软件…
  3. 在“ 使用:”下拉菜单中,选择“ 所有可用站点”
  4. 在过滤器中,输入纸莎草纸
  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 – >发现 – >发现者 – >从KDM代码发现UML模型再次你会得到一个属性对话框设置序列化道具为TRUE生成一个名为MyProject.uml的文件 在这里输入图像描述

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

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

  8. 在这个视图中,你会发现你的类像图片 在这里输入图像描述

  9. 在视图中右键单击根模型 – >新建图 在这里输入图像描述

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

一些功能

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

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

  • 一个非常重要的设置是安排,当你放下他们得到拥挤的班级,右键单击班级图上的任何空白处,然后点击排列全部

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

  • 毕竟你的设置会显示图表 在这里输入图像描述

  • 由于同步不可用据我所知,您将需要手动导入任何新的类。

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

免责声明:我跟纸莎草纸没有任何关系,事实上我起初不喜欢纸莎草,直到我做了大量的研究,并且经历了一些耐心。 当我尝试其他免费工具时,会再次回到这个帖子。

你的代码库是什么? Java还是C ++?

替代文字http://www.soyatec.com/euml2http://img.dovov.comproduct_euml2_110x80.png

eUML2 for Java是为Eclipse中的Java开发人员设计的功能强大的UML建模器。 免费版可以用于商业用途。 它支持以下功能:

  • CVS和团队支持
  • 专为具有多个可定制模型视图的大型项目而设计
  • 符合Helios
  • 实时代码/模型同步
  • 符合UML2.1并支持OMG XMI
  • JDK 1.4和1.5支持
  • 商业版提供:

  • 先进的逆向工程

  • 强大的真正的依赖分析工具
  • UML配置文件和MDD
  • 数据库工具
  • 可定制的模板支持

PlantUML如何? 这不是反向工程! 在编码之前是用于工程的。

我建议从Omondo的EclipseUML一般用法,虽然我几个月前用我的web项目遇到了一些问题。 他们有一个时间点的免费版本,但是据说不再提升。

如果你真的热衷于从源代码反向工程序列图,我会推荐jTracert 。

就Eclipse项目本身而言, Eclipse UML2 Tools项目可能支持逆向工程,尽管我从来没有在实践中看到它的使用。

MoDisco (模型发现)项目Eclipse GMT项目似乎更清晰地实现您的目标。 技术特定的工具列表将是一个很好的开始。

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

我尝试了几个用于eclipse的UML建模器,并不满意它们。 他们要么不稳定,复杂,要么就是丑陋。 😉

我发现绿色插件使用非常简单,并从源代码生成类图。 试一试 :)。 只需将插件复制到您的插件目录。

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

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

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

示例输出图: 在这里输入图像描述

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

需要注意的是,它不仅限于你的* .java文件,它也可以从你的maven依赖项中呈现UML图src。 这对了解你所依赖的库非常方便。 它实际上检查编译类与反射,所以没有源需要

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

您可以使用EclipseUML的Eclipse 3.5的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世界中最好的工具。 只有eUML似乎与他在这个活的Java同步市场上竞争,但eUML在代码中添加模型标签,这实际上是非常非常糟糕的,对于我来说是绝对不行的。

之前曾经有人问过类似的东西。

到目前为止,我已经用于逆向工程的最好的工具了,而Java的Round→UML就是Borland的Together 。 它基于Eclipse(而不仅仅是一个插件),真的很好。

使用IntelliJ IDEA。 要生成类图选择包并按下Ctrl + Alt + U在这里输入图像描述

默认情况下,它只显示类名,而不是所有的依赖项。 要改变它:右键单击 – >显示类别…和显示依赖关系: 在这里输入图像描述

为了生成依赖关系图(UML部署图),你使用Maven去查看 – >工具窗口 – > Maven项目并按下Ctrl + Alt + U在这里输入图像描述

结果: 在这里输入图像描述

也可以生成更多的其他图表。 见文件 。

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

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

Netbeans菜单 – >工具 – >插件

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

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