我想使用 Graphviz + Doxygen 来生成基于C ++代码的类图。这已经成功,因为Doxygen带有本地DOT支持;但是,是否有可能使用相应的访问修饰符(公共,私有等),类方法的返回和参数类型生成类UML输出,类似于下图?
我知道线程How to use doxygen to create UML class diagrams from C++ source,但它没有回答这个问题。
答案 0 :(得分:56)
创建以下源文件example.cpp
:
class Animal
{
public:
void die();
string name;
int age;
};
class Dog : public Animal
{
public:
void bark();
};
class Cat : public Animal
{
public:
void meow();
};
运行doxygen -g
并更改生成的Doxyfile
的以下选项:
EXTRACT_ALL = YES
HAVE_DOT = YES
UML_LOOK = YES
运行doxygen
并查看Animal类的输出,它应该与上图类似,尽管doxygen不会显示方法和字段的返回类型。
答案 1 :(得分:18)
我现在成功解决了类似的问题。
以下是步骤(假设您使用的是Doxygen-Doxywizard的GUI版本)
点击专家按钮
转到“点”选项卡并选择DOT_PATH。 浏览已安装程序的文件夹。 例如,“C:/ Program Files(x86)/Graphviz2.32/bin”
有关详细信息,请参阅以下链接 http://www.cypax.net/tutorials/doxygen/index?language=en#doxycomment
希望它有所帮助, ANIT
答案 2 :(得分:5)
试试Doxygraph!
Doxygraph是一组工具,用于从项目的源代码中自动化逆向工程UML类图,并将它们呈现为交互式Web应用程序。
它依赖于Doxygen来解析你的源代码并创建它收集的信息的中间XML表示,因此它支持Doxygen支持的所有相同的编程语言:C,C ++,C#,Objective C,Java,Python,PHP ,Tcl,D,IDL,VHDL和Fortran。
您需要从克隆的项目中阅读README。
答案 3 :(得分:2)
实现结果的可能解决方案是使用plantuml,但需要更多文档工作。