Val*_*itz 5 c++ uml reverse-engineering
这又是一种“如何正确执行”的问题。对不起,如果有人生气。
我必须了解大约150个C / C ++混合物的TLOC。我已将代码导入UML-Tool“ Enterprise Architect”中,并得到了一个凌乱的图表。由于这种C-ish构造,许多结构和枚举使用匿名名称: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; };
Run Code Online (Sandbox Code Playgroud)
由于使用了整个命名约定,因此我能够将所有typedef替换为原始类型,如下所示:
struct C{ A pA; B lB; };
Run Code Online (Sandbox Code Playgroud)
现在,在“ Enterprise Architect”中导入源代码给出了具有所有关系的漂亮图表。当然,代码不会编译,并且也不相同。所有代码更改都需要进行恼人的转换,以使EA可以再次理解此“伪”代码。因此我的问题是:
非常感谢您的任何建议!瓦伦丁·海尼兹
我有 Enterprise Architect,并且几乎总是为了在大型代码体上执行您尝试的操作,我使用doxygen代替。它生成类图和调用图。将其与GraphViz和“UML 样式”类图一起使用,您将拥有一个相当好的代码导航和理解工具,并具有灵活的配置来根据需要添加或排除细节。