我正在寻找一种工具,可以将Java反向工程为序列图,但也提供了过滤掉某些库调用的功能。
例如,Netbeans IDE在这方面做得非常出色,但它包括对String或Integer的所有调用,这会使图表混乱到无法使用的程度。
非常感谢任何帮助!!!!!!!
答案 0 :(得分:10)
试试MaintainJ。 MaintainJ在运行时为用例生成序列图。它提供multiple ways to filter out unwanted calls。是的,过滤掉不需要的调用是序列图生成工具中最重要的功能。此外,MaintainJ提供了一个简洁的界面来探索图表并在一个用例或用例中搜索调用。
检查demo video以获得快速概览。
顺便说一句,我是MaintainJ的作者。
答案 1 :(得分:10)
我认为解决问题的完美工具是Diver:逆向工程的动态交互式视图。它提供静态和动态序列图,并且可以解决您问题中的所有要求。
它是Eclipse的一个插件,可以让你:
它位于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)
它不知道,它是否可以过滤库调用,但它有一个合理的图形前端,似乎跟踪甚至非常大的应用程序。
答案 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插件很有帮助。它有点受限,因为您选择单个方法作为序列图的起点,并且它仅显示方法所做的调用(因此需要更深层次地生成另一个图表。)
答案 12 :(得分:0)
JIVE(www.cse.buffalo.edu/jive)将根据Java程序的执行构建一个序列图。它具有排除过滤器功能,允许您排除属于指定类或包的对象。 JIVE可以绘制多线程Java程序执行的序列图。在用户指导下,它还具有水平和垂直尺寸的紧凑大图。