首页 / 知识
如何从Java代码生成UML图(尤其是序列图)?
2023-04-14 16:35:00
How to generate UML diagrams (especially sequence diagrams) from Java code?如何从现有的Java代码生成UML图(尤其是序列图)? ObjectAid UML资源管理器 是我用的。它很容易从存储库安装:
并生成相当不错的UML图:
网站说明:
编辑: 更新2013年10月11日 我最初的帖子是在2012年6月,很多事情已经改变,许多工具已经增长,而其他却没有。由于我将回过头来进行一些建模并获得一些回复,因此我决定再次安装纸莎草纸,并将再次研究其他可能的UML建模解决方案。 UML生成(具有同步功能)对于软件设计师而言并不重要,对普通开发人员而言确实很重要。 我希望纸莎草纸具有将逆向工程类转换为UML类图的直接方法,并且如果该反向工程具有同步功能,那将非常酷,但是不幸的是,纸莎草纸项目具有许多功能,并且我认为那里的开发人员已经手头很多您对纸莎草纸进行的操作可能不会给您任何回应,并且什么也不会发生,但这仍然超出了此问题的范围。 答案(2013年10月11日) 工具 脚步 ![]()
再次右键单击MyProject_kdm.xmi->发现-> Discoverer->从KDM代码发现UML模型,您将看到一个属性对话框,将序列化道具设置为TRUE,以生成一个名为MyProject.uml的文件 将在根目录下生成的MyProject.uml移至UML文件夹,Eclipse将询问您是否要替换它,请单击yes。我们在这里所做的是用生成的模型替换了一个空模型。 ALT + W->显示视图->纸莎草纸->模型资源管理器
在该视图中,您将找到图片中的类
在视图中,右键单击根模型->新图 然后开始从视图中获取类到图中 一些功能
仅此而已,并且除非您真正需要它,否则不要购买商业产品,纸莎草纸实际上很棒,而且精巧而不是捐赠或其他东西。 免责声明:我与纸莎草纸的人没有关系,实际上,我一开始不喜欢纸莎草纸,直到我进行了大量研究并耐心地进行了研究。当我尝试其他免费工具时,将再次回到这篇文章。 您的代码库是什么? Java还是C ++?
在Intellij IDEA上,ZenUML可以从Java代码生成序列图。 在https://plugins.jetbrains.com/plugin/12437-zenuml-support上进行检查
PlantUML呢?
我开发了一个maven插件,既可以从CLI作为插件目标运行,也可以作为依赖项导入,并以编程方式使用解析器 它以递归方式呈现所需软件包的PlantUML src代码,您可以根据需要手动进行编辑(希望您不会)。然后,通过将代码粘贴到plantUML页面中,或通过下载plant的jar,可以将UML图呈现为png图像。 在这里查看https://github.com/juanmf/Java2PlantUML
输出图示例: 任何贡献都值??得欢迎。它具有一组可自定义输出的过滤器,但我尚未在插件CLI参数中公开这些过滤器。 重要的是要注意,它不仅限于* .java文件,它还可以从您的maven依赖项中呈现UML图src。这对于理解您所依赖的库非常方便。它实际上通过反射检查编译的类,因此不需要任何源 成为第一个在GitHub上加注星标的人:P 我会推荐Omondo的EclipseUML作为一般用法,尽管几个月前我的Web项目确实遇到了一些问题。他们在某个时间点有一个免费版本,但是据说不再推广了。 如果您真的热衷于从源代码进行反向工程序列图,我建议您使用jTracert。 就Eclipse项目本身而言,Eclipse UML2 Tools项目可能支持逆向工程,尽管我从未在实践中见过它的用途。 MoDisco(模型发现)项目Eclipse GMT项目似乎在实现目标方面更加清晰。特定于技术的工具列表将是一个很好的起点。
我发现Green插件非常易于使用,并可以从源代码生成类图。 您也可以尝试netbeans UML建模器。我用它来生成我在Eclipse项目中使用的javacode。您甚至可以在Netbeans中导入Eclipse项目,并使Eclipse设置与NetBeans项目设置同步。 我尝试了几个UML建模器来进行蚀,对它们不满意。它们要么不稳定,要么复杂,要么只是丑陋。 ;-)
使用IntelliJ IDEA。要生成类图,请选择包并按Ctrl + Alt + U:
默认情况下,它仅显示类名,而不显示所有依赖项。要更改它:右键单击->显示类别...,然后显示依赖项:
要使用依赖关系图(UML部署图)并使用maven,请转到视图->工具Windows-> Maven项目,然后按Ctrl + Alt + U:
结果: 也有可能生成更多其他图表。请参阅文档。
您可以将EclipseUML for Eclipse 3.5的30天评估版使用:http://www.uml2.org/eclipse-java-galileo-SR2-win32_eclipseUML2.2_package_may2010.zip 逆向工程:http://www.forum-omondo.com/documentation_eclipseuml_2008/reverse/reverse/reverse_engineering_example.html 实时Flash演示:http://www.ejb3.org/reverse.swf EclipseUML Omondo是世界上针对Java的最佳工具。在这个实时的Java同步市场上,似乎只有eUML与它竞争,但是eUML在代码中添加了模型标签,这确实非常非常糟糕,对我来说绝对是个难题。 到目前为止,我使用过的最好的逆向工程工具是Java-> UML双向传递,它是Borland的Together。它基于Eclipse(不仅是单个插件),而且效果很好。
Java的另一个建模工具是我的网站GitUML。 GitUML的一个关键思想是解决"文档"的问题之一:图表总是过时的。使用GitUML,当您使用git推送代码时,图会自动更新。 浏览社区UML图,那里有一些Java设计模式。浏览流行的GitHub存储库,并可视化其中的架构和模式。
使用指向和单击创建图。没有拖放编辑器,只需单击要可视化的存储库树中的类:
基础技术基于PlantUML,这意味着您可以使用其他PlantUML标记来完善图表。 我注意到Intellij的SequenceDiagram插件也是一个不错的选择。 我建议PlantUML。该工具非常有用且易于使用。 PlantUML有一个Netbeans插件,您可以从Java代码创建UML图。 您可以通过以下方法在Netbeans中安装PlantUML插件: Netbeans菜单->工具->插件 现在选择可用插件,然后找到PlantUML并安装它。 有关更多信息,请访问网站:www.plantuml.com |
最新内容
相关内容
linux安装强制命令行?
linux安装强制命令行?,机器人,软件,工作,工业,系统,地址,电脑,生产,设计,状态,罗布斯(机器人操作系统)1、罗布斯(机器人操作系统)可以应用于各种linux命令行安装应用?
linux命令行安装应用?,软件,系统,名称,官网,在线,管理,工作,信息,命令,目录,linux常用安装软件的命令最后依次输入以下命令:./configure --preflinux安装浏览器命令?
linux安装浏览器命令?,官网,系统,平台,网站,管理,设备,咨询,工具,官方网站,软件,linuxcentos浏览器在哪里1、linux安装google浏览器方法如下:启linux安装sz命令?
linux安装sz命令?,系统,软件,标准,服务,工作,工具,命令,位置,平台,百度,如何在SecureCRT中给linux上传和下载文件1、需要上传或者下载,需要使用linux安装纯命令行?
linux安装纯命令行?,软件,系统,发行,环境,基础,工作,工具,公司,终端,命令,如何在纯linux命令行模式下安装linux桌面,redhat5.4_01、在Linux中linux安装npm命令?
linux安装npm命令?,证书,最新,档案,代理,信息,位置,系统,工程,命令,版本,nginx需要安装node吗安装node.js首先安装node.js安装所需的软件包,并linux什么命令安装c?
linux什么命令安装c?,系统,管理,工作,软件,在线,名字,传播,代码,工具,信息,linux怎么运行c文件编译加上-lm。根据查询相关公开信息,在Linux系统linux安装更新命令?
linux安装更新命令?,软件,系统,项目,名称,管理,数据,网站,工作,官方网站,命令,linux常用安装软件的命令1、)bin包,如jdk-1_5_0_05-linux-i58bin,linux安装dep命令?
linux安装dep命令?,系统,软件,策略,管理,对比,时间,工具,名字,平台,代码,如何在Linux内核里增加一个系统调用?1、在一个进程中创建3个线程,名字linux中本地安装命令?
linux中本地安装命令?,软件,系统,官网,在线,百度,中心,官方网站,工具,信息,名称,linux终端下如何安装Matplotlib,求完整命令首先从官网下载hdflinux本地安装命令?
linux本地安装命令?,软件,系统,工具,在线,数据,官网,环境,名称,命令,文件,linux怎么安装软件1、使用rpm类型的软件包进行安装,虽然排在最前面但linux下安装微信命令?
linux下安装微信命令?,软件,系统,工具,官网,平台,近日,服务,认证,体系,官方网站,如何在Linux系统下运行微信Web开发者工具微信小程序注册 在微