序列图

Joh*_*lis 5 uml sequence-diagram software-design

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

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

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

Kel*_*nch 3

有一些,但价格昂贵。Rational Rose 在被 IBM 收购之前是最知名的。

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

Rational Rose 产品几乎被 Rational Requisite Pro 所取代,其中很大一部分功能(主要是 Java)被合并到 IBM 的 WebSphere 应用程序开发平台中,我认为现在称为 RAD。

Rational 工具以其全面性而闻名,以至于它们真正针对的是拥有同等规模员工的大型开发车间,通常从 50 多名开发人员开始,针对一个项目。

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

我对 Visual Studio 不太了解,它仍然支持 C++,但我愿意猜测 C++ UML 支持仅在昂贵的专业版本(如 Pro 或 Ultimate)中。