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

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

我必须了解大约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再次理解这个“伪”代码.因此我的问题:

>有没有可能教EA
识别原始类型?
>其他UML工具是否识别这些类型
(并创造他们之间的关系)
更健壮?

非常感谢您的任何建议!
Valentin Heinitz

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

点赞