我正在寻找一种工具,可以将 Java 逆向工程成序列图,但也提供过滤掉对某些库的调用的能力。
例如,Netbeans IDE 在这方面做得非常出色,但它包括对 String 或 Integer 的所有调用,这会使图表混乱到无法使用的程度。
任何帮助是极大的赞赏!!!!!!!
我正在寻找一种工具,可以将 Java 逆向工程成序列图,但也提供过滤掉对某些库的调用的能力。
例如,Netbeans IDE 在这方面做得非常出色,但它包括对 String 或 Integer 的所有调用,这会使图表混乱到无法使用的程度。
任何帮助是极大的赞赏!!!!!!!
我认为jtracert是您正在寻找的。它从正在运行的 Java 程序生成序列图。此外,由于它的输出是图表的文本描述(采用几种流行的 SD 工具的格式),您可以使用 grep 仅过滤您感兴趣的类。
尝试维护J。MaintainJ 在运行时为用例生成序列图。它提供了多种方法来过滤掉不需要的电话。是的,过滤掉不需要的调用是序列图生成工具中最重要的功能。此外,MaintainJ 提供了一个简洁的界面来探索图表并在一个用例或跨用例中搜索调用。
查看演示视频以获得快速概览。
顺便说一句,我是MaintainJ的作者。
JTracert 现已停产。到位,他们推荐http://www.jsonde.com/
我有一个完全符合您要求的工具。看看这个
http://sourceforge.net/projects/javacalltracer/
除了作为 Java 的逆向工程工具之外,它还非常轻量级。您可以从您的 java 程序中控制要记录的内容。
它不知道它是否可以过滤库调用,但它具有合理的图形前端,并且似乎可以跟踪非常大的应用程序。
MaintainJ 是一个非常棒的工具,最近我开始在我的应用程序中使用 MaintainJ,它让我在整个使用过程中更加舒适,以了解我基于 Maintainj 序列和 UML 图的系统。
我相信对于上述问题,MaintainJ 会给出更好的主意。谢谢,克里希纳MM
我刚刚开始使用 Sparx Systems Enterprise Architect 中的序列图记录功能。它适用于 C#。您可以按类和方法创建过滤器。我实际上是在尝试找出是否可以过滤掉整个包裹。有一个用于自动排除外部模块(如 .NET Framework)的复选框,有助于整理。YMMV for Java,但我认为他们对 Java 的支持(和文档)通常比 .NET 更好(更多示例)。
Heatlamp ( http://www.jmolly.com/heatlamp/ ) 正是为此目的而设计的。
它从运行的 Java 代码生成交互式(和可打印)图表。您可以指定过滤器来描述要跟踪的类、包和方法。您还可以在图表呈现后搜索、过滤和折叠调用,以进一步减少序列图。
免责声明:我是 Heatlamp 的作者。
这是 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
这看起来像一个非常好的工具: http ://www.architexa.com/learn-more/sequence-diagrams
但看起来它只免费一年,然后每年 250 美元。真可惜。
我发现 ModelGoon 插件很有帮助。它有点受限,因为您选择一个方法作为序列图的起点,并且它只显示该方法进行的调用(因此要更深入,您需要生成另一个图表。)
JIVE (www.cse.buffalo.edu/jive) 将从 Java 程序的执行中构造一个序列图。它具有排除过滤器功能,允许您排除属于指定类或包的对象。JIVE 可以为多线程 Java 程序执行绘制序列图。它还具有在用户指导下在水平和垂直维度上压缩大型图表的能力。