Graphviz + Doxygen生成UML类图

时间:2012-02-28 15:36:16

标签: uml doxygen graphviz

我想使用 Graphviz + Doxygen 来生成基于C ++代码的类图。这已经成功,因为Doxygen带有本地DOT支持;但是,是否有可能使用相应的访问修饰符(公共,私有等),类方法的返回和参数类型生成类UML输出,类似于下图?

我知道线程How to use doxygen to create UML class diagrams from C++ source,但它没有回答这个问题。

enter image description here

4 个答案:

答案 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版本)

  1. 点击专家按钮

  2. 转到“点”选项卡并选择DOT_PATH。 浏览已安装程序的文件夹。 例如,“C:/ Program Files(x86)/Graphviz2.32/bin”

  3. 有关详细信息,请参阅以下链接 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,但需要更多文档工作。