首页 文章

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

提问于
浏览
410

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

14 回答

  • 1

    ObjectAid UML Explorer

    是我用过的 . 它很容易从存储库 installed

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

    并生成相当不错的UML图:

    Screenshot

    网站描述:

    ObjectAid UML Explorer与其他UML工具不同 . 它使用UML表示法显示现有代码的图形表示,该表示与文本编辑器一样准确和最新,同时非常易于使用 . 几个独特的功能使这成为可能:您的源代码和库是显示的模型,它们不会反向设计为不同的格式 . 如果您在Eclipse中更新代码,您的图表也会更新;没有必要对源代码进行反向工程 . 重构更新您的图表和源代码 . 重命名字段或移动类时,图表只是反映更改而不会失去同步 . Eclipse工作区中的所有图表都会根据需要使用重构更改进行更新 . 如有必要,可以从版本控制系统中检出它们 . 图完全集成到Eclipse IDE中 . 您可以将Java类从任何其他视图拖到图表上,并且图表相关信息会在适用的其他视图中显示 .

  • 2

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


    UPDATE Oct 11th, 2013

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

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

    The Answer (2013年10月11日)

    Tools

    • 下载纸莎草纸

    • 转到帮助 - >安装新软件...

    • 在使用:下拉列表中,选择 - 所有可用站点 -

    • 在过滤器中,键入Papyrus

    • 安装完成后重新启动Eclipse

    • 重复步骤1-3,这次安装Modisco

    Steps

    • 在您的java项目中(假设它被称为MyProject)创建一个文件夹,例如UML

    • 右键单击项目名称 - > Discovery - > Discoverer - >从Java项目中发现Java和库存模型,将生成一个名为MyProject_kdm.xmi的文件 .
      enter image description here

    • 右键单击项目名称文件 - >新建 - >纸莎草模型 - >并将其命名为MyProject .

    • 将三个生成的文件MyProject.di,MyProject.notation,MyProject.uml移动到UML文件夹

    • 右键单击MyProject_kdm.xmi - > Discovery - > Discoverer - >再次从KDM代码中发现UML模型,您将获得一个属性对话框,将序列化道具设置为TRUE以生成名为MyProject.uml的文件
      enter image description here

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

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

    • 在该视图中,您将找到类似于图片的类
      enter image description here

    • 在视图中右键单击根模型 - >新图
      enter image description here

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

    Some features

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

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

    • 一个非常重要的设置是 Arrange 当你放弃课程时他们会在一个 class 的任何空白处右键单击图表,然后单击全部排列

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

    • 完成所有这些后,您的设置将显示如
      enter image description here
      的图表

    • 同步不可用,因为我知道您需要手动导入任何新类 .

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

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

  • 8

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

    alt text http://www.soyatec.com/euml2/images/product_euml2_110x80.png

    eUML2 for Java是一个功能强大的UML建模器,专为Eclipse中的Java开发人员而设计 . 免费版可用于商业用途 . 它支持以下功能:CVS和团队支持专为具有多个可定制模型视图的大型项目而设计Helios兼容实时代码/模型同步符合UML2.1并支持OMG XMI JDK 1.4和1.5支持商业版提供:高级逆转工程强大的真正依赖性分析工具UML Profile和MDD Database工具可定制的模板支持

  • 0

    PlantUML怎么样?在编码之前,它是's not for reverse engineering!!! It'用于工程 .

  • 63

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

    renders PlantUML src code of desired packages recursively 你可以根据需要手动编辑(希望你赢得了't). Then, by pasting the code in the plantUML page, or by downloading plant'的jar你可以将UML图呈现为png图像 .

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

    示例输出图:
    enter image description here

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

    *It's important to note that it's not limited to your .java files, it can render UML diagrams src from you maven dependencies as well. This is very handy to understand libraries you depend on. It actually inspects compiled classes with reflection so no source needed

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

  • 5

    我推荐EclipseUML from Omondo作为一般用法,虽然几个月前我确实遇到过一些问题,我的网络项目 . 他们在某个时间点有一个免费版本,但据说不再推广 .

    如果您真的热衷于源代码中的逆向工程序列图,我建议jTracert .

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

    MoDisco(模型发现)项目Eclipse GMT项目似乎更清楚地实现了您的目标 . list of technology specific tools将是一个很好的开始 .

  • 3

    我发现Green插件使用非常简单,并从源代码生成类图 . 试试看 :) . 只需将插件复制到插件目录即可 .

  • 4

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

    我为eclipse尝试了几个UML建模器,但对它们并不满意 . 它们要么不稳定,要么复杂,要么只是丑陋 . ;-)

  • 42

    使用IntelliJ IDEA . 要生成类图选择包并按Ctrl Alt U:
    enter image description here

    默认情况下,它仅显示类名而不显示所有依赖项 . 要更改它:右键单击 - >显示类别...并显示依赖项:
    enter image description here

    要创建依赖关系图(UML部署图)并使用maven go View - > Tool Windows - > Maven Projects并按Ctrl Alt U:
    enter image description here

    结果:
    enter image description here

    此外,还可以生成更多其他图表 . 见documentation .

  • 1

    您可以使用EclipseUML for 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

    Live flash演示:http://www.ejb3.org/reverse.swf

    EclipseUML Omondo是世界上最好的Java工具 . 在这个实时java同步市场中,只有eUML似乎与它竞争,但是eUML在代码中添加了模型标签,这真的非常非常糟糕,而且对我来说是绝对不行的 .

  • 2

    有人问过before .

    到目前为止,我用于逆向工程的最佳工具,以及圆形跳闸java - > UML是Borland's Together . 它基于Eclipse(不仅仅是一个插件),而且效果很好 .

  • 3

    http://www.zenuml.com不直接从Java代码生成UML图,但它的DSL类似于Java . 顺便说一下,我创建了zenuml :)
    enter image description here

  • 249

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

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

    Netbeans菜单 - >工具 - >插件

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

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

  • 0

    http://uml-plugins.blogspot.com/这是我们可以在UML建模工具之间找到差异的地方,以便快速入门!除了那些,我注意到Intellij的SequenceDiagram插件也是一个不错的选择,请阅读该帖子以快速了解免费与商业和最佳选项 .

相关问题