关于java:序列图逆向工程

关于java:序列图逆向工程

Sequence Diagram Reverse Engineering

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

例如,Netbeans IDE在这方面做得很出色,但是它包括对String或Integer的所有调用,这些调用使图表混乱到无法使用的地步。

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


我相信Diver:用于逆向工程的动态交互式视图是解决您问题的理想工具。它提供了静态和动态序列图,并希望解决您所有的问题。

它是Eclipse的插件,可让您:

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

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

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


尝试维护J。 MaintenanceJ在运行时为用例生成序列图。它提供了多种方法来过滤掉不需要的呼叫。是的,过滤掉不需要的呼叫是序列图生成工具所需的最重要功能。此外,MaintainJ提供了一个简洁的界面来浏览该图并在一个用例或跨用例中搜索调用。

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

顺便说一下,我是MaintenanceJ的作者。


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


JTracert现在停产了。他们会推荐http://www.jsonde.com/


我有一个工具可以完全满足您的要求。看看这个

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

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


MaintenanceJ是一个非常出色的工具,最近我开始在自己的应用程序中使用MaintenanceJ,它使我的整个使用过程更加舒适,从而可以基于Maintenancej序列和UML图了解我的系统。

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


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

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

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


看看http://www.maintainj.com

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


Sparx的企业架构师声称能够反向工程Java代码,包括生成序列图-请参阅用户指南的本部分

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

我还没有尝试过(尽管已使用EA作为建模工具),好了!

有30天的免费评估版下载


JIVE(www.cse.buffalo.edu/jive)将根据Java程序的执行来构造序列图。它具有排除筛选器功能,可让您排除属于指定类或包的对象。 JIVE可以绘制用于多线程Java程序执行的序列图。在用户指导下,它还具有在水平和垂直方向上压缩大型图的能力。


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

但看起来它只有一年免费,然后每年250美元。笨蛋

我发现ModelGoon插件很有帮助。这有点限制,因为您选择了一个方法作为序列图的起点,并且仅显示该方法进行的调用(因此,更深入地讲,您需要生成另一个图。)

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


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


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


推荐阅读