如何从现有Java代码生成UML图(尤其是序列图)?
是我用过的.它可以从存储库轻松安装:
Name: ObjectAid UML Explorer Location: http://www.objectaid.com/update/current
并生成相当不错的UML图:
ObjectAid UML Explorer与其他UML工具不同.它使用UML表示法显示现有代码的图形表示,该表示与文本编辑器一样准确和最新,同时非常易于使用.几个独特的功能使这成为可能:
您的源代码和库是显示的模型,它们不会反向设计为不同的格式.
如果您在Eclipse中更新代码,您的图表也会更新; 没有必要对源代码进行反向工程.
重构更新您的图表和源代码.重命名字段或移动类时,图表只是反映更改而不会失去同步.
Eclipse工作区中的所有图表都会根据需要使用重构更改进行更新.如有必要,可以从版本控制系统中检出它们.
图完全集成到Eclipse IDE中.您可以将Java类从任何其他视图拖到图表上,并且图表相关信息会在适用的其他视图中显示.
编辑:如果你是一名设计师,那么Papyrus是你最好的选择它非常先进且功能齐全,但是如果你只是想要勾勒出一些UML图并且易于安装,那么ObjectAid 非常酷,它不需要任何插件我刚刚将它安装在Eclipse-Java EE上并且工作得很好!
更新2013年10月11日
我的原始帖子是在2012年6月,许多事情发生了变化,许多工具已经增长,而其他工具则没有.由于我要回去做一些建模并得到一些回复,我决定再次安装纸莎草纸,并将再次研究其他可能的UML建模解决方案.UML生成(具有同步功能)对于软件设计者而言对于普通开发人员来说非常重要.
我希望papyrus能够直接将逆向工程类转换为UML类图,如果逆向工程具有同步功能,那将会非常酷,但不幸的是,papyrus项目充满了功能,我认为那里的开发人员已经有了很多东西.你对纸莎草所采取的行动可能不会给你任何回应而且没有任何反应,但无论如何都不会出现这个问题范围.
答案(2013年10月11日)
工具
下载纸莎草纸
转到帮助 - >安装新软件...
在Work with:下拉列表中,选择- 所有可用站点 -
在过滤器中,键入纸莎草纸
安装完成后重启Eclipse
重复步骤1-3,这次安装Modisco
脚步
在你的java项目中(假设它叫做MyProject)创建一个文件夹,例如UML
右键单击项目名称 - > Discovery - > Discoverer - >从Java项目中发现Java和库存模型,将生成一个名为MyProject_kdm.xmi的文件.
右键单击项目名称文件 - >新建 - >纸莎草模型 - >并将其命名为MyProject.
将三个生成的文件MyProject.di,MyProject.notation,MyProject.uml移动到UML文件夹
右键单击MyProject_kdm.xmi - > Discovery - > Discoverer - >再次从KDM代码中发现UML模型,您将获得一个属性对话框,将序列化道具设置为TRUE以生成名为MyProject.uml的文件
将生成的生成的MyProject.uml移动到UML文件夹,Eclipse将询问您如果要替换它,请单击是.我们在这里所做的是我们用生成的模型替换了一个空模型.
ALT + W - >显示视图 - >纸莎草 - >模型浏览器
在该视图中,您将在图片中找到您的课程
在视图中右键单击根模型 - >新图
然后从视图开始抓取图表中的类
一些功能
要显示类元素(变量,函数等)右键单击任何类 - >过滤器 - >显示/隐藏内容Voila !!
您可以从Window - > pereferences - > papyrus - >类图中获得默认的友好颜色设置
一个非常重要的设置是当您放弃类时安排他们得到一个狭窄的右键单击类图上的任何空白空间并单击全部排列
可以将模型资源管理器视图中的箭头抓取到图表中以显示概括,实现等
完成所有这些后,您的设置将显示图表
据我所知,您需要手动导入任何新类,因此无法进行同步.
这就是全部,除非你真的需要它,否则不要购买商品,纸莎草实际上是伟大而复杂的,而不是捐赠或其他东西.
免责声明:我与纸莎草纸人没有任何关系,事实上,我一开始并不喜欢纸莎草纸,直到我做了大量的研究并且耐心地体验了它.当我尝试其他免费工具时,我会再次回到这篇文章.
你的代码库是什么?Java还是C++?
eUML2 for Java是一个功能强大的UML建模器,专为Eclipse中的Java开发人员而设计.免费版可用于商业用途.它支持以下功能:
CVS和团队支持
专为具有多个可定制模型视图的大型项目而设计
Helios兼容
实时代码/模型同步
符合UML2.1并支持OMG XMI
JDK 1.4和1.5支持
商业版提供:
高级逆向工程
强大的真正依赖性分析工具
UML配置文件和MDD
数据库工具
可定制的模板支持
在Intellij IDEA上,ZenUML可以从Java代码生成序列图。
在https://plugins.jetbrains.com/plugin/12437-zenuml-support上进行检查
PlantUML怎么样?它不适用于逆向工程!在编码之前,它是用于工程的.
我开发了一个maven插件,既可以从CLI作为插件目标运行,也可以作为依赖项导入,并以编程方式使用解析器,@see Main#main()
以了解如何使用.
它递归地呈现所需包的PlantUML src代码,您可以根据需要手动编辑(希望您不会).然后,通过粘贴plantUML页面中的代码,或者通过下载工厂的jar,您可以将UML图表渲染为png图像.
在这里查看https://github.com/juanmf/Java2PlantUML
示例输出图:
任何贡献都非常受欢迎.它有一组自定义输出的过滤器,但我还没有在插件CLI参数中公开这些过滤器.
重要的是要注意它不仅限于你的*.java文件,它也可以从maven依赖项中呈现UML图表src.这对于理解您所依赖的库非常方便.它实际上用反射检查编译的类,因此不需要源
成为第一个在GitHub上演的明星:P