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

Jon*_*han 429 java diagram uml reverse-engineering

如何从现有Java代码生成UML图(尤其是序列图)?

Tho*_*hle 254

ObjectAid UML资源管理器

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

Name:     ObjectAid UML Explorer
Location: http://www.objectaid.com/update/current
Run Code Online (Sandbox Code Playgroud)

并生成相当不错的UML图:

截图

网站描述:

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

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

  • HowTo >>>在此处创建帐户:https://www.objectaid.com/login(激活电子邮件在10分钟内发送),点击图表插件,许可证将发送到您的电子邮箱.按照http://www.objectaid.com/installation安装ObjectAid,然后从http://download.eclipse.org/tools/gef/updates/releases/安装GEF,现在将许可证从电子邮件复制粘贴到Window-> Preferences-> ObjectAid如何创建图表?http://www.objectaid.com/class-diagram (4认同)

Ism*_*ush 63

编辑:如果你是一名设计师,那么Papyrus是你最好的选择它非常先进且功能齐全,但是如果你只是想要勾勒出一些UML图并且易于安装,那么ObjectAid 非常酷,它不需要任何插件我刚刚将它安装在Eclipse-Java EE上并且工作得很好!


更新2013年10月11日

我的原始帖子是在2012年6月,许多事情发生了变化,许多工具已经增长,而其他工具则没有.由于我要回去做一些建模并得到一些回复,我决定再次安装纸莎草纸,并将再次研究其他可能的UML建模解决方案.UML生成(具有同步功能)对于软件设计者而言对于普通开发人员来说非常重要.

我希望papyrus能够直接将逆向工程类转换为UML类图,如果逆向工程具有同步功能,那将会非常酷,但不幸的是,papyrus项目充满了功能,我认为那里的开发人员已经有了很多东西.你对纸莎草所采取的行动可能不会给你任何回应而且没有任何反应,但无论如何都不会出现这个问题范围.

答案(2013年10月11日)

工具

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

脚步

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

  6. 将生成的生成的MyProject.uml移动到UML文件夹,Eclipse将询问您如果要替换它,请单击是.我们在这里所做的是我们用生成的模型替换了一个空模型.

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

  8. 在该视图中,您将在图片中找到您的课程 在此输入图像描述

  9. 在视图中右键单击根模型 - >新图 在此输入图像描述

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

一些功能

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

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

  • 一个非常重要的设置是当您放弃类时安排他们得到一个狭窄的右键单击类图上的任何空白空间并单击全部排列

  • 可以将模型资源管理器视图中的箭头抓取到图表中以显示概括,实现等

  • 完成所有这些后,您的设置将显示图表 在此输入图像描述

  • 据我所知,您需要手动导入任何新类,因此无法进行同步.

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

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


pra*_*ash 42

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

替代文字

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

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

  • 高级逆向工程

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

  • 你听说过版本控制吗? (30认同)
  • 这是一个非常难以安装的工具.我尝试了大约半个小时没有成功.还有其他建议吗? (19认同)
  • eUML是真正的垃圾.它改变了我的代码格式,并在各处添加了标签.我的代码现在非常脏,我宁愿撤消更改.问题是没有撤消,你的代码永远都会改变.我建议在使用eUML crapper之前备份你的项目:-) (7认同)
  • 我知道这是一个老帖子,但安装eUML2的大多数问题似乎已经解决了. (3认同)
  • 无法找到eUML2是我的更新Managaer,我不想打包这个功能的新Eclipse设置.我正在使用Eclipse"Helios"并采用这种方式:帮助 - 安装新软件 - Helios http://download.eclipse.org/releases/helios - 建模 (2认同)

Xia*_*com 8

在Intellij IDEA上,ZenUML可以从Java代码生成序列图。 在此处输入图片说明

https://plugins.jetbrains.com/plugin/12437-zenuml-support上进行检查


Zam*_*mel 7

PlantUML怎么?它不适用于逆向工程!在编码之前,它是用于工程的.

  • 不回答这个问题,这个问题显然要求使用逆向工程工具. (4认同)
  • 是的,我可以验证类图是从 Eclipse 插件中的 Java 文件自动创建的。 (2认同)

jua*_*nmf 6

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

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

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

示例输出图: 在此输入图像描述

任何贡献都非常受欢迎.它有一组自定义输出的过滤器,但我还没有在插件CLI参数中公开这些过滤器.

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

成为第一个在GitHub上演的明星:P