代码之家  ›  专栏  ›  技术社区  ›  Keith Fitzgerald

序列图逆向工程

  •  27
  • Keith Fitzgerald  · 技术社区  · 17 年前

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

    例如,NetBeans IDE完成了一项出色的工作,但是它包含了对字符串或整数的所有调用,这些调用会使图表混乱到无法使用的程度。

    非常感谢您的帮助!!!!!!!!!!

    13 回复  |  直到 17 年前
        1
  •  9
  •   Steve Hanov    17 年前

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

        2
  •  10
  •   Sean    13 年前

    我认为解决您问题的最佳工具是diver:逆向工程的动态交互视图。它提供了静态和动态序列图,并试图从您的问题中解决您的所有需求。

    它是Eclipse的插件,允许您:

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

    这是关于 Github 还有一个 project web site

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

        3
  •  9
  •   Brad Larson    13 年前

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

    检查 demo video 快速浏览。

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

        4
  •  5
  •   RAbraham    15 年前

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

        5
  •  3
  •   Ali Naqvi    16 年前

    我有一个完全符合你要求的工具。过来看

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

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

        6
  •  1
  •   Richard    17 年前

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

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

    我没试过(虽然我用EA作为建模工具),所以YMMV!

    有免费的30天评估下载

        7
  •  1
  •   ralf    17 年前

    看一看 http://www.maintainj.com

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

        8
  •  1
  •   aaron    14 年前

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

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

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

        9
  •  1
  •   Krishna MM    14 年前

    Maintainj是一个非常好的工具,最近我开始在我的应用程序中使用Maintainj,它使我能够更轻松地理解基于Maintainj序列和UML图的系统。

    我相信对于上述问题,Maintainj会给出更好的想法。 谢谢, 克里希纳毫米

        10
  •  0
  •   Michael Waddell    16 年前

    我刚刚开始使用SPARX系统企业架构师中的序列图记录功能。它对C非常有效。您可以按类和方法创建过滤器。我实际上是想找出是否有可能过滤掉整个包裹。有一个复选框用于自动排除外部模块(如.NET框架),这有助于解密。YMMV用于Java,但我认为它们对Java的支持(和文档)通常比.NET更好(更多的例子)。

        11
  •  0
  •   matt1616    12 年前

    这是阿斯盖尔答案的补充。这是我找到的链接。

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

    从命令行运行…”Java- jar序列…jar…这是一个带有GUI的Java应用程序。

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

    所以这个工具不会对任何东西进行逆向工程,但是我可以看到,如果您想要快速地从头开始绘制图表,它可能会有什么帮助。看起来它是在2002年建造的,我认为现在可能有更好的工具。

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

        12
  •  0
  •   matt1616    12 年前

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

    但它看起来只免费一年,然后每年250美元。真倒霉。


    我发现ModelGoon插件很有用。这有点限制,因为您选择一个方法作为序列图的起始点,并且它只显示该方法所进行的调用(因此要深入一个层次,您需要生成另一个图)。

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

        13
  •  0
  •   Bharat Jayaraman    10 年前

    JAVE(www. cSE.Buffal.EdU/JiVE)将从Java程序的执行中构建序列图。它具有排除过滤器功能,允许您排除属于指定类或包的对象。JIVE可以绘制多线程Java程序执行的顺序图。它还能够在用户的指导下,在水平和垂直维度上压缩大型图表。