序列图逆向工程

时间:2008-09-17 20:14:14

标签: java uml reverse-engineering sequence-diagram

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

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

非常感谢任何帮助!!!!!!!

13 个答案:

答案 0 :(得分:10)

试试MaintainJ。 MaintainJ在运行时为用例生成序列图。它提供multiple ways to filter out unwanted calls。是的,过滤掉不需要的调用是序列图生成工具中最重要的功能。此外,MaintainJ提供了一个简洁的界面来探索图表并在一个用例或用例中搜索调用。

检查demo video以获得快速概览。

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

答案 1 :(得分:10)

我认为解决问题的完美工具是Diver:逆向工程的动态交互式视图。它提供静态和动态序列图,并且可以解决您问题中的所有要求。

它是Eclipse的一个插件,可以让你:

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

它位于Github,还有project web site

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

答案 2 :(得分:9)

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

答案 3 :(得分:6)

JTracert现已停产。他们建议http://www.jsonde.com/

答案 4 :(得分:3)

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

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

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

答案 5 :(得分:1)

来自Sparx的企业架构师声称能够对java代码进行逆向工程,包括生成序列图 - 请参阅user guide

的此部分

看起来它可以记录调试会话,然后从

生成序列图

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

有免费的30天评估下载

答案 6 :(得分:1)

查看http://www.maintainj.com

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

答案 7 :(得分:1)

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

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

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

答案 8 :(得分:1)

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

我确信上面的问题MaintainJ会给出更好的主意。 谢谢, 克里希纳MM

答案 9 :(得分:0)

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

答案 10 :(得分:0)

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

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

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

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

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

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

答案 11 :(得分:0)

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

但它看起来只有一年免费,然后是每年250美元。长号。


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

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

答案 12 :(得分:0)

JIVE(www.cse.buffalo.edu/jive)将根据Java程序的执行构建一个序列图。它具有排除过滤器功能,允许您排除属于指定类或包的对象。 JIVE可以绘制多线程Java程序执行的序列图。在用户指导下,它还具有水平和垂直尺寸的紧凑大图。