如何从 Java 源代码生成序列图
Posted
技术标签:
【中文标题】如何从 Java 源代码生成序列图【英文标题】:How to Generate a Sequence Diagram from Java Source Code 【发布时间】:2013-06-23 02:29:33 【问题描述】:我有一个关于从 Java 源代码生成序列图的问题。当我用谷歌搜索时,我看到有人告诉我使用视觉范式 (VP),但它不会为我生成序列图。我的 VP 中的某些步骤与手动操作不同。手册说要选择方法,但我的 VP 不允许在特殊类中选择方法。 Reverse Engineering Sequence Diagram from Java Source Code
有没有人有从 Java 源代码生成序列图的新想法?
【问题讨论】:
你确定要服从你那不允许选择方法的奇怪VP吗?那么起点是什么? 只选课!!! 【参考方案1】:使用 Intellij 2019 有两个插件可以完成这项工作:
SequenceDiagram(当前为 1.3)。 进入您要分析的类方法和 Tool>SequenceDiagram :
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 上测试了这些:
-
[IntelliJ Community Edition IDE]
Code Iris 用于创建类图和可视化代码
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 提供订阅许可证,允许用户以相对较低的成本每月订阅许可证。
【讨论】:
以上是关于如何从 Java 源代码生成序列图的主要内容,如果未能解决你的问题,请参考以下文章
我们如何从可编辑的 Java 代码中生成 IntelliJ IDEA 中的序列图?
如何从Visual Studio中的UML类图生成C#源代码