【问题标题】:How to Generate a Sequence Diagram from Java Source Code如何从 Java 源代码生成序列图
【发布时间】:2013-06-23 02:29:33
【问题描述】:

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

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

【问题讨论】:

  • 你确定要服从你那不允许选择方法的奇怪VP吗?那么起点是什么?
  • 只选课!!!

标签: java uml reverse-engineering sequence-diagram


【解决方案1】:

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

  1. SequenceDiagram(当前为 1.3)。 进入您要分析的类方法和 Tool>SequenceDiagram :

  2. ZenUML support(目前为2019.1.2)

【讨论】:

  • 效果惊人。强烈推荐尝试!也适用于 Android Studio 2.0
  • 优秀的工具。非常感谢您的建议。
  • SequenceDiagram 1.3 与 Intellij 2019.1.3 配合得非常好。太棒了!
【解决方案2】:

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

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

还有更多。

http://www.objectaid.com/sequence-diagram

【讨论】:

    【解决方案3】:

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

    世界你好

    @测试 @SequenceDiagram({ Controller.class, Model.class }) 公共无效测试方法(){ 控制器 c = 新控制器(新模型()); c.init(); c.simpleBeanOperation(); }

    https://github.com/sherif181/java-sequence-diagram-generator

    【讨论】:

    • 看起来很有趣。无法设置和使用它。安装和使用文档会有所帮助。
    • SDTEST 文件夹包含一个工作示例。您还需要一种方法来编译乳胶文件,例如 windows 上的 miktex 或真实操作系统上的 texlive
    • 我同意@supernova。我不熟悉您在该项目中所做的事情,并且可以使用自述文件中的一些指令以 gradle 命令和有关如何生成图表的要求的方式...可能是一个很酷的项目,但没有文档可以开始我我迷路了,去别处看看。
    【解决方案4】:

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

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

    http://maintainj.com/

    【讨论】:

    • 评估许可,7天无限制使用产品。
    【解决方案5】:

    我使用的是免费的 Umlgraph,请参阅 http://www.umlgraph.org/

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

    要生成序列图,你必须在源文件中写很多行。

    http://www.umlgraph.org/doc/dns.html

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

    【讨论】:

      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

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

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

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

        【讨论】:

        • JIVE 适用于小程序。它挂在更大的程序上,例如,如果我在 JUnit 测试中使用 PowerMock。
        • 您是否尝试使用 JIVE 的排除过滤器来抑制您不想看到的包的可视化?这可以从运行菜单完成:运行 -> 调试配置 -> JIVE 选项卡。如您所见,JIVE 预装了某些要排除的包,但是当您使用大型应用程序时,这通常是必要的,以防止挂起并保持可视化的可管理性。
        • 是的,我排除了所有 PowerMock 软件包。
        • 请参阅cse.buffalo.edu/jive/tutorials/managing_jive.html 以管理大型运行。如果这适用于您的情况,您可以尝试在一段时间内进行调试。或者您可能需要禁止显示更多包。只是一些建议。
        【解决方案8】:

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

        仅 Intellij 社区版的特定版本与所需的插件兼容。

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

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

        1. [IntelliJ Community Edition IDE]
        2. Code Iris 用于创建类图和可视化代码

        3. SequenceDiagram Plugin 用于在 IntelliJ 上生成 Seq 图 IDE。

        【讨论】:

          【解决方案9】:

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

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

          您可以在此处比较付费版和免费版
          http://www.visual-paradigm.com/product/vpuml/features/?edition=ce

          您需要购买支持代码工程的标准版 Visual Paradigm。

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

          Posiden UML http://www.gentleware.com

          Argo UML http://argouml.tigris.org


          其他资源

          How can I generate sequence diagrams from Java source code?

          Sequence Diagram Reverse Engineering

          http://www.altova.com/umodel/sequence-diagrams.html

          【讨论】:

            【解决方案10】:

            在VP中将Java源代码逆向为时序图时无法选择操作,可能是选择了错误的源文件夹造成的。只要您选择源的根文件夹(根据您的类的“包”声明),它就应该可以工作。顺便说一句,Visual Paradigm 提供订阅许可证,允许用户以相对较低的成本每月订阅许可证。

            【讨论】:

              猜你喜欢
              • 2012-01-03
              • 2018-11-07
              • 2011-02-25
              • 1970-01-01
              • 2018-01-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-03-13
              相关资源
              最近更新 更多