序列图

时间:2012-01-06 01:30:19

标签: uml software-design sequence-diagram

我正在浏览大型开源应用程序的代码,并希望了解它是如何设计的以及它是如何工作的。是否有工具可以将C和C ++代码反向工程为序列图?

可能这可能有点牵强但是当一个应用程序正在处理输入时,可以给我一个被调用的函数列表(在各种模块中和正确的顺序)的工具呢?或者帮我快速分析一个给定的应用程序(特别是一个代码库很大的代码)?

期待我的答案,因为我认为这必须是一个很好的主题。

3 个答案:

答案 0 :(得分:3)

有一些,但它们很贵。在被IBM收购之前,Rational Rose是最知名的。

C ++语言的本质使得静态分析变得非常困难。这就是为什么有这么少的工具可以做到这一点。自从使用支持反射/内省的语言的非C ++开发激增以来,这种类型的工具确实让C ++落后了。这并不是说没有,只是它们更难找到并且通常是昂贵的4GL类包装的一部分。 Rational Rose主要是一个工具,可以让您绘制系统图,它可以帮助跟踪组件并最终生成各种语言的源代码。它还可以在一定程度上将源代码反向工程化为图表。

Rational Rose产品几乎被Rational Requisite Pro取代,其中很大一部分功能(专注于Java)被整合到IBM的WebSphere Application Development平台中,现在我称之为RAD。

Rational工具因其如此全面而闻名,因此它们非常适合大型开发工作室,这些开发工作室的工作人员也相同,通常从50多名开发人员开始,用于单个项目。

由于C ++语言的复杂性(从工具的角度来看)以及Java和C#等语言的流行,供应商真的不再强调C ++。

我不了解Visual Studio,它仍然支持C ++,但我愿意猜测C ++ UML支持仅适用于Pro或Ultimate等昂贵的专业版本。

答案 1 :(得分:0)

C++ to UML ( Reverse engineer / Round-trip engineering )之前被问到。奇怪的是,Altova没有。似乎做了大多数其他事情。

答案 2 :(得分:0)

除了源代码的常规静态逆向工程之外,Sparx Systems的Enterprise Architect可以记录应用程序的执行并从该跟踪生成序列图。执行分析器支持(在EA 9.2中):

  • Microsoft Windows Native C
  • Microsoft Windows Native C ++
  • Microsoft Windows Visual Basic
  • Microsoft .NET系列(C#,J#,VB)
  • Sun Microsystems Java
  • PHP

您至少需要EA的专业版,在撰写本文时,单笔座位许可证的费用为199美元(一九九九)。

网站上有一个very old demo video(从三个主要版本开始)。