我该如何从C++源文件生成UML类图?

6

使用doxygen,我可以生成漂亮的图表,但是doxygen缺乏对类之间关系的深入分析。它可以识别派生关系,但是工具无法理解其他关系。有哪些更好的工具(商业或非商业),可以从C ++源文件中生成更完整的UML类图?

C#/ Java可用的工具略微好一些,但现在不符合我的需求。

4个回答

4

对于解析C++代码,我使用过的最好工具是BoUML。它并不完美,也不会为您生成图表,但它确实能理解关系。如果您将两个类拉入类图中,它将自动绘制关系,并允许您通过选择特定类并让该工具显示相关类(既依赖于所选类的类,也依赖于所选类的类)来扩展图表。


3

3

该工具可以识别派生关系,但无法理解其他关系。

Doxygen还支持生成协作图表,这提供了非继承关系的图像。

来自Doxygen手册:

COLLABORATION_GRAPH
如果将COLLABORATION_GRAPHHAVE_DOT标签设置为YES,则doxygen将为每个记录的类生成一个图形,显示该类与其他记录的类之间的直接和间接实现依赖关系(继承、包含和类引用变量)。

我自己不会使用UML做任何花哨的事情,但这些图表已足够满足我的需求(绘制继承和组合)。


我正在寻找一种能够更深入理解代码的工具。 Doxygen只显示与什么相关的内容(引用,成员),但不显示其确切方式。 至少像你说的那样是一个很好的开端。 非常感谢。 也许这对于错过此设置的其他人有所帮助。 - jdehaan

1

企业架构师。它可以深入分析代码,从代码生成图表,从图表生成代码,并支持往返代码生成,这意味着修改生成的图表并将更改保存到源代码中。它了解C、C++、C#、Java、Python、VB.NET和VB、PHP、Java、Delphi等多种编程语言。此外,它还支持包括完整的UML2.0在内的各种图表类型。(我不知道它在C中做什么:P)

除了正确执行这些任务之外,它还可以完成许多其他任务,我认为它的价格非常值得,价格为135-239美元,具体取决于版本。


往返转换有点奇怪,但绝对是一个有价值的工具。我会深入挖掘一下。 - jdehaan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接