29

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

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

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

4

13 回答 13

10

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

于 2008-09-21T01:14:53.270 回答
10

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

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

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

于 2012-02-07T19:30:17.427 回答
10

我相信解决您问题的完美工具是 Diver: Dynamic Interactive Views For Reverse Engineering。它提供静态和动态序列图,并希望从您的问题中解决您的所有要求。

它是 Eclipse 的插件,可让您:

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

它在Github上,还有一个项目网站

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

于 2012-09-24T23:45:37.193 回答
5

JTracert 现已停产。到位,他们推荐http://www.jsonde.com/

于 2010-08-27T13:42:04.543 回答
3

我有一个完全符合您要求的工具。看看这个

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

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

于 2010-04-19T19:43:13.260 回答
1

Sparx的企业架构师 声称能够对 Java 代码进行逆向工程,包括生成序列图 - 请参阅用户指南的这一部分

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

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

提供 30 天免费评估下载

于 2008-09-23T09:59:06.270 回答
1

看看http://www.maintainj.com

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

于 2009-03-17T21:30:27.117 回答
1

MaintainJ 是一个非常棒的工具,最近我开始在我的应用程序中使用 MaintainJ,它让我在整个使用过程中更加舒适,以了解我基于 Maintainj 序列和 UML 图的系统。

我相信对于上述问题,MaintainJ 会给出更好的主意。谢谢,克里希纳MM

于 2012-05-14T14:44:39.127 回答
0

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

于 2010-01-07T13:32:47.783 回答
0

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

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

免责声明:我是 Heatlamp 的作者。

于 2012-05-13T17:47:23.443 回答
0

这是 Asgeir 答案的附加内容。这是我找到的链接。

http://www.java2s.com/Code/Jar/s/sequence.htm

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

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

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

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

于 2014-02-07T16:12:35.387 回答
0

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

但看起来它只免费一年,然后每年 250 美元。真可惜。


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

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

于 2014-02-11T16:51:14.830 回答
0

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

于 2016-01-30T21:37:38.863 回答