如何从Java源代码生成序列图

如何从Java源代码生成序列图,java,uml,reverse-engineering,sequence-diagram,Java,Uml,Reverse Engineering,Sequence Diagram,我有一个关于从Java源代码生成序列图的问题。当我在谷歌上搜索时,我看到有人告诉我使用视觉范式(VP),但它并没有为我生成序列图。我的VP中的某些步骤与手动操作不同。手册上说要选择方法,但我的VP不允许在特殊类中选择方法 有人有从Java源代码生成序列图的新想法吗?有许多产品可以从Java源代码生成序列图。不幸的是,所有好的都要花很多钱 如果您使用的是VisualParadigm的社区版,它不允许您生成任何图表。您必须升级到其中一个付费版本 您可以在此处比较付费版和免费版 您需要购买支持代码工

我有一个关于从Java源代码生成序列图的问题。当我在谷歌上搜索时,我看到有人告诉我使用视觉范式(VP),但它并没有为我生成序列图。我的VP中的某些步骤与手动操作不同。手册上说要选择方法,但我的VP不允许在特殊类中选择方法


有人有从Java源代码生成序列图的新想法吗?

有许多产品可以从Java源代码生成序列图。不幸的是,所有好的都要花很多钱

如果您使用的是VisualParadigm的社区版,它不允许您生成任何图表。您必须升级到其中一个付费版本

您可以在此处比较付费版和免费版

您需要购买支持代码工程的可视化范例的标准版本

请查看这些链接中的一些,以获取也可以生成图表/源代码的替代程序

Posiden UML

阿尔戈统一建模语言


其他资源


UML-VP可以很好地生成序列图。根据您的描述,我觉得您选择了包目录来向工具显示源文件。我也遇到过类似的问题。解决方案是选择包文件夹上方的“src”文件夹,然后您可以看到一些非常漂亮的图。祝你好运。

试试这个工具,这个工具可以帮助你创建Java源代码序列和类图,包括每个流的执行时间

按照文档中给出的步骤进行操作


如果您正在使用或希望使用Eclipse IDE,则可以安装ObjectAid UML插件,该插件可以从以下位置进行反向工程:

  • Java堆栈跟踪控制台
  • 调试视图中的Java堆栈帧
  • 方法从调用层次结构视图调用
还有更多


请参见

我使用了Umlgraph,它是免费的,请参见

但我主要使用它在Javadoc中生成类图

要生成序列图,您必须在源文件中写入许多行


您必须安装Graphviz才能使其正常工作。

我已经实现了一个基于junit测试的序列生成器,它为pgf umlsd latex包生成序列图示例:

你好,世界

@Test @SequenceDiagram({ Controller.class, Model.class }) public void testMethod() { Controller c = new Controller(new Model()); c.init(); c.simpleBeanOperation(); } @试验 @SequenceDiagram({Controller.class,Model.class}) 公共void testMethod(){ 控制器c=新控制器(新型号()); c、 init(); c、 SimpleBanOperation(); }

另一个从Java程序生成序列图的好工具是JIVE:www.cse.buffalo.edu/JIVE

它可以作为Eclipse的插件提供,并且是免费下载的。还支持多线程Java程序的可视化


注意:JIVE生成程序执行的图表。它还生成对象图,并具有其他有用的功能,如基于查询的调试。很抱歉,如果您没有想到这一点。

使用Intellij 2019,有两个插件可以完成这项工作:

  • (目前为1.3)。 进入要分析的类内方法,然后使用工具>SequenceDiagram:

  • (目前为2019.1.2)


  • 今天,我尝试了许多选项,使用IntelliJ Idea社区版从现有代码中生成序列图和类图,下面是最终对我有效的解决方案:

    Intellij community edition的特定版本仅与实现此功能所需的插件兼容

    因此,下载正确版本的IDE和插件以使其正常工作非常重要。

    以下是对我有用的具有特定版本的整套软件的链接,请注意,我在Mac Book Pro上测试了这些软件:

  • 用于创建类图和可视化代码

  • 用于在IntelliJ上生成Seq图 IDE


  • 对VP中的序列图执行Java源代码反向工程时无法选择操作可能是由于选择了错误的源文件夹。只要选择源的根文件夹(根据类的“package”语句),它就应该可以工作。顺便说一句,VisualParadigm提供订阅许可证,允许用户每月以相对较低的成本订阅许可证

    您确定要遵守不允许选择方法的奇怪VP吗?那么起点是什么呢?只选择班级!!!JIVE适用于小程序。它挂在更大的程序上,例如,如果我在JUnit测试中使用PowerMock,您是否尝试使用JIVE的排除过滤器来抑制不想看到的包的可视化?这可以从运行菜单中完成:运行->调试配置->JIVE选项卡。正如您所看到的,JIVE预先加载了某些要排除的包,但是当您使用大型应用程序时,这通常是必要的,以防止挂起并保持可视化可管理。是的,我排除了所有PowerMock包。请参阅管理大型运行的详细信息。如果这适用于您的情况,您可以尝试在一段时间内进行调试。或者,您可能需要禁止显示更多的包。只是一些建议。看起来很有趣。尚无法设置和使用它。安装和使用文档会有所帮助。SDTEST文件夹包含一个工作示例。您还需要一种方法来编译latex文件,如windows上的ie miktex或真实操作系统上的texlive。我同意@supernova。我不熟悉您在该项目中所做的工作,可以使用自述文件中的一些说明,如gradle命令和关于如何生成图表的要求。。。可能是一个很酷的项目,但没有文档可以开始,我迷失了方向,去别处看看。它工作得令人惊讶。强烈推荐尝试!也在和工作