序列图逆向工程

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

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

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

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

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

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

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

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

完全披露:我是潜水员目前的项目负责人

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

查看演示video以获得快速概述。

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

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

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

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

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

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

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

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

有免费的30天评估下载

看看http://www.maintainj.com

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

Heatlamp( http://www.jmolly.com/heatlamp/ )就是为了这个目的而设计的。

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

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

MaintainJ是非常棒的工具,最近我开始使用MaintainJ和我的应用程序,它让我更加舒适地了解我的系统,基于Maintainj序列和UML图表来理解我的系统。

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

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

这是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

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

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


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

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

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