使用“Enterprise Architect”反向工程C ++代码

时间:2010-12-20 13:15:42

标签: c++ uml reverse-engineering

这又是一种“如何妥善处理”的问题。对不起,如果有人生气。

我必须了解大约150个C / C ++混合物的TLOC。我已经在UML-Tool“Enterprise Architect”中导入了代码,并得到了一个混乱的图表。由于这个C-ish结构,许多Structs和Enums都有匿名名称:typedef struct/enum {...} MyType;

在第二次运行中,我将它转换为C ++格式:struct/enum MyType{...};但是得到了一堆不相关的结构。不幸的是,Enterprise Architect无法解析typedef。例如没有认识到A,B和C之间的关系:

struct A;
struct B;
typedef A *PtrA;
typedef List<B> BList;
struct C{ PtrA pA; BList lB; };

感谢整个命名约定,我能够用原始类型替换所有typedef:

struct C{ A pA; B lB; };

现在在“Enterprise Architect”中导入源代码给出了一个包含所有关系的漂亮图表。 原因,代码不编译,并且不一样。代码中的所有更改都需要进行恼人的转换,以使EA再次理解这个“伪”代码。因此我的问题是:

  1. 有没有可能教EA 识别原始类型?
  2. 其他UML-Tools是否识别这些类型 (并创造他们之间的关系) 更健壮吗?
  3. 非常感谢您的任何建议! Valentin Heinitz

1 个答案:

答案 0 :(得分:2)

我有Enterprise Architect,而且几乎总是在我使用doxygen的大代码体上做你正在尝试的事情。它生成类和调用图。与GraphViz和“UML风格”类图一起使用,你有一个相当不错的代码导航和理解工具,灵活的配置可以根据需要添加或排除细节。