我正在寻找一种工具,可以将 Java 逆向工程成序列图,但也提供过滤掉对某些库的调用的能力。

例如,Netbeans IDE 在这方面做得非常出色,但它包含对 String 或 Integer 的所有调用,这会使图表变得混乱,甚至无法使用。

任何帮助是极大的赞赏!!!!!!!

有帮助吗?

解决方案

我认为 jtracert 就是您正在寻找的。它从正在运行的 Java 程序生成序列图。此外,由于它的输出是图表的文本描述(采用几种流行的 SD 工具的格式),因此您可以使用 grep 来过滤您感兴趣的类。

其他提示

我相信解决您问题的完美工具是 Diver:用于逆向工程的动态交互视图。它提供静态和动态序列图,并希望解决您问题中的所有要求。

它是 Eclipse 的插件,可让您:

  • 轻松跟踪您的 Java 程序
  • 可视化程序的运行时功能
  • 过滤您的痕迹,使它们更加紧凑
  • 根据运行时发生的情况过滤您的 IDE
  • 查看源代码编辑器中运行的代码

已开启 吉图布 还有一个 项目网站

全面披露:我是 Diver 的现任项目负责人

尝试 维护J. 。MaintenanceJ 在运行时为用例生成序列图。它提供 多种方式过滤掉不需要的来电. 。是的,过滤掉不需要的调用是序列图生成工具所需的最重要的功能。此外,MaintainJ 提供了一个简洁的界面来探索图表并搜索一个用例或跨用例中的调用。

检查 演示视频 以获得快速概览。

顺便说一下,我是MaintainJ 的作者。

JTracert 现已停止。在适当的地方,他们推荐 http://www.jsonde.com/

我有一个完全满足您要求的工具。一探究竟

http://sourceforge.net/projects/javacalltracer/

除了作为 java 的逆向工程工具之外,它还非常轻量级。您可以控制要从 java 程序记录的内容。

企业架构师来自 斯帕克斯 声称能够对 Java 代码进行逆向工程,包括生成序列图 - 请参阅该部分 用户指南

看起来它可以记录调试会话,然后您可以从中生成序列图

我还没有尝试过(虽然已经使用 EA 作为建模工具)所以 ymmv!

可免费下载 30 天评估版

看一眼 http://www.maintainj.com

它不知道是否可以过滤库调用,但它有一个合理的图形前端,并且似乎可以跟踪甚至非常大的应用程序。

加热灯(http://www.jmolly.com/heatlamp/)正是为此目的而设计的。

它通过运行 Java 代码生成交互式(和可打印)图表。您可以指定过滤器来描述要跟踪哪些类、包和方法。您还可以在呈现图后搜索、过滤和折叠调用,以进一步缩小序列图。

免责声明:我是《热灯》的作者。

MaintainJ 确实是很棒的工具,最近我开始在我的应用程序中使用MaintainJ,它使我的整个使用过程更加舒适,可以基于Maintainj 序列和UML 图来理解我的系统。

我确信对于上述问题,MaintainJ 会给出更好的想法。谢谢,克里希纳MM

我刚刚开始使用 Sparx Systems Enterprise Architect 中的序列图记录功能。它对于 C# 非常有效。您可以按类和方法创建过滤器。我实际上想知道是否可以过滤掉整个包。有一个复选框用于自动排除外部模块(如 .NET Framework),这有助于整理。YMMV for Java,但我认为他们对 Java 的支持(和文档)通常比对 .NET 更好(更多示例)。

这是阿斯吉尔的答案的补充。这是我找到的链接。

http://www.zanthan.com/ajm/sequencev7/sequence.jar

从命令行运行...“java -jar 序列.jar”...这是一个带有 GUI 的 Java 应用程序。

帮助部分说:SEQUENCE 是一个用于生成 UML 序列图的程序。与大多数类似的程序相比,您实际上并不绘制图表。相反,您可以编写要绘制图表的方法调用的文本描述,然后系统会自动计算和绘制布局。

所以这个工具不会对任何东西进行逆向工程,但我可以看到如果你想从头开始快速绘制图表,它可能会很有帮助。看起来它是 2002 年构建的,我认为现在可能有更好的工具。

这是另一个类似的工具:http://sdedit.sourceforge.net/example/index.html

这看起来是一个非常好的工具:http://www.architexa.com/learn-more/sequence-diagrams

不过好像只免费一年,然后一年就250美元了。真糟糕。


我发现 ModelGoon 插件很有帮助。它有一点限制,因为您选择单个方法作为序列图的起点,并且它仅显示该方法进行的调用(因此要更深入,您需要生成另一个图。)

http://www.modelgoon.org/?page_id=53

JIVE (www.cse.buffalo.edu/jive) 将从 Java 程序的执行构造一个序列图。它具有排除过滤器功能,允许您排除属于指定类或包的对象。JIVE可以绘制多线程Java程序执行的时序图。它还能够在用户指导下在水平和垂直维度上压缩大型图表。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top