我如何从现有的Java代码生成UML图(特别是序列图)?
我如何从现有的Java代码生成UML图(特别是序列图)?
我使用的是ObjectAid UML Explorer。这个工具很容易地从仓库安装:
Name: ObjectAid UML Explorer
Location: http://www.objectaid.com/update/current
并且产生了相当好的UML图表:
ObjectAid UML Explorer不同于其他UML工具。它使用UML符号显示现有代码的图形表示,该表示与您的文本编辑器一样准确和最新,同时非常易于使用。几个独特的功能使这成为可能:
- 您的源代码和库是显示的模型,它们没有被反向工程成不同的格式。
- 如果您在Eclipse中更新代码,则您的图表也会得到更新;无需对源代码进行反向工程。
- 重构还会更新您的图表以及源代码。当您重命名字段或移动类时,您的图表只需反映出更改而不会失去同步。
- 您Eclipse工作区中的所有图表都将根据需要通过重构更改进行更新。如果需要,它们将从您的版本控制系统中检出。
- 图表完全集成到Eclipse IDE中。您可以从任何其他视图拖动Java类到图表中,并在适用的任何其他视图中显示与图表相关的信息。
安装项目时发生错误 会话上下文为:(配置文件=epp.package.java,阶段=org.eclipse.equinox.internal.p2.engine.phases.Install,操作数=null --> [R]com.objectaid.uml 1.1.3,操作=)。 准备部分IU失败:[R]com.objectaid.uml 1.1.3。
- Gunaseelan编辑: 如果您是设计师,则Papyrus是您的最佳选择,它非常先进并且功能齐全,但如果您只想绘制一些UML图并进行简单安装,则ObjectAid相当不错,并且不需要任何插件。我刚刚在Eclipse-Java EE上安装了它,效果很棒!
更新于2013年10月11日
我的原始帖子是在2012年6月,许多事情已经发生了变化,许多工具已经成长,而其他工具则没有。由于我要回去做一些建模,并且也收到了一些帖子的回复,我决定再次安装papyrus,并将调查其他可能的UML建模解决方案。 UML生成(具有同步功能)对于软件设计师来说真的很重要,但对于普通开发人员也是如此。
我希望Papyrus有一种直接的方法可以将类反向工程为UML类图,如果该反向工程具有同步功能,那将会非常酷,但不幸的是,Papyrus项目充满了功能,我认为那里的开发人员已经非常忙碌,因为在Papyrus上执行的许多操作可能不会给您任何响应,并且什么也不会发生,但这超出了此问题的范围。
答案(2013年10月11日)
工具
步骤
右键单击MyProject_kdm.xmi -> 发现 -> 发现器 -> 从KDM代码发现UML模型,再次得到一个属性对话框,将序列化属性设置为TRUE以生成一个名为MyProject.uml的文件。
将生成的MyProject.uml文件移动到根目录下,在Eclipse中会询问您是否要替换它,请单击“Yes”。我们在这里所做的是用生成的模型替换空模型。
ALT+W -> 显示视图 -> Papyrus -> 模型资源管理器
在该视图中,您会找到类似于图片中的类
在该视图中,右键单击根模型 -> 新建图表
然后从视图中开始将类拖到图表中
一些功能
要显示类元素(变量、函数等),右键单击任何类 -> 过滤器 -> 显示/隐藏内容 Voila!!
您可以从窗口 -> 首选项 -> Papyrus -> 类图中获得默认友好的颜色设置
一个非常重要的设置是 排列 当您放置类时,它们会变得拥挤,右键单击类图上的任何空白处,然后单击“排列所有”
模型资源管理器视图中的箭头可以被拖到图表中以显示推广、实现等
完成所有设置后,您将看到类似于以下图片的图表:
据我所知,同步功能不可用,您需要手动导入任何新的类。
就这些了,除非您真的需要,否则不要购买商业产品,Papyrus实际上非常出色和复杂,最好捐赠一些资金支持他们。
免责声明:我与Papyrus团队没有任何关系,事实上,起初我并不喜欢Papyrus,直到我进行了大量研究并耐心地体验才改变了想法。如果我尝试其他免费工具,我会再次回到这篇文章。
我是其中一位作者,因此回答可能会有偏见。它是开源的(Apache 2.0),但该插件不是免费的。如果您克隆并在本地构建,则无需支付费用(显然)。
ZenUML可以在Intellij IDEA中从Java代码生成序列图。
请到https://plugins.jetbrains.com/plugin/12437-zenuml-support查看。
那么,PlantUML 怎么样呢?它并不是用于逆向工程!而是用于在编写代码之前进行工程设计。
@see Main#main()
(如何操作)。它递归地渲染所需包的PlantUML源代码,如果需要,您可以手动编辑它们(希望您不需要)。然后,通过将代码粘贴到PlantUML页面上,或者下载植物的jar文件,您可以将UML图表呈现为png图像。在这里查看 https://github.com/juanmf/Java2PlantUML。成为GitHub上的第一个点赞者:P
jSonde
在上面显示的URL中不可用。您可以在以下网站和Github中找到源代码:https://bedrin.github.io/jsonde/,https://github.com/bedrin/jsonde。 - Jaime