2008-09-17 121 views
27

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

例如,Netbeans IDE在这方面做得非常出色,但它包含所有对String或Integer的调用,这些调用将图解混淆到无法使用的地步。

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

+0

你用了很多标签,你还没有明确你想从哪个语言进行逆向工程! Java的? – 2008-09-17 20:17:50

回答

9

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

+5

来自该项目的网站,jTracert已停止支持jSonde – 2011-10-11 18:52:59

+0

jsonde.com没有真正的内容 – zkarthik 2013-03-15 16:25:01

+0

任何从源文件生成序列图的工具?而不是运行代码? – Mahesha999 2016-08-22 13:52:37

1

Sparx的企业架构师声称能够逆向工程的Java代码,包括生成序列图 - 看到的user guide

它看起来这部分喜欢的话可以记录调试会话,然后您生成从

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

有一个免费30天评估下载

1

看看http://www.maintainj.com

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

0

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

9

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

检查demo video以获得快速概览。顺便说一下,我是MaintainJ的作者。

1

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

它从运行Java代码生成交互(和可打印)的图。您可以指定过滤器来描述要跟踪的类,包和方法。绘制图表后,您还可以搜索,筛选和折叠调用,以进一步缩小顺序图。

声明:我是Heatlamp的作者。

1

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

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

10

我相信解决您的问题的完美工具是潜水员:动态交互视图反向工程。它提供了静态和动态序列图,并期望解决您的问题中的所有需求。

这是一个Eclipse插件,让你:

  • 轻松跟踪你的Java程序
  • 可视化你的程序的运行时功能
  • 过滤你的痕迹,使之更紧凑
  • 过滤您的IDE基于在运行时发生什么
  • 查看源代码编辑器中运行的代码

这是对Github并且也有一个project web site

全面披露:我目前的项目领导潜水员

0

这里和附加到Asgeir的答案。这是我找到的链接。在命令行

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

运行... “Java的罐子sequence.jar” ...这是一个图形用户界面的Java应用程序。

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

所以这个工具不逆向工程什么,但我可以看到,如果你想快速从头图的东西如何可能是有益的。看起来它是在2002年建成的,我认为现在可能有更好的工具。

这里还有一个类似的工具在这里: http://sdedit.sourceforge.net/example/index.html

0

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