2012-02-28 14 views
36

Quiero usar Graphviz + Doxygen para generar un diagrama de clases basado en C++ código. Esto funciona ya que Doxygen viene con soporte DOT nativo; pero, ¿es posible producir una salida similar a UML con los modificadores de acceso correspondientes (públicos, privados, etc.), los tipos de retorno y de parámetros de los métodos de clase, similares al diagrama siguiente?Graphviz + Doxygen para generar diagramas de clase UML

Conozco el hilo How to use doxygen to create UML class diagrams from C++ source, pero no responde la pregunta, sin embargo.

enter image description here

Respuesta

50

Cree el siguiente archivo de origen 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(); 
}; 

plazo doxygen -g y cambiar las siguientes opciones del generada Doxyfile:

EXTRACT_ALL   = YES 
HAVE_DOT    = YES 
UML_LOOK    = YES 

plazo doxygen y mirar a la salida de la clase Animal, debería ser similar a la a imagen de bove, aunque doxygen no mostrará los tipos de devolución de los métodos y campos.

+3

¿Hay alguna manera de mostrar los tipos de devolución? – Derek

+1

¿Encontró una forma de mostrar los tipos de devolución, @Derek? – UndeadDragon

+0

Consulte https://stackoverflow.com/questions/4755913/how-to-use-doxygen-to-create-uml-class-diagrams-from-c-source/38322858#38322858 para obtener una respuesta más completa –

1

Una posible solución para lograr su resultado es usar plantuml, pero requiere más trabajo en la documentación.

+2

Esto parece ser la herramienta adecuada cuando no desee generar diagramas genéricos a partir del código real, sino tener un "código de diagrama" adicional en la documentación que genere diagramas hechos a mano. Esto es exactamente lo que estaba buscando. – Knitschi

16

Tuve un problema similar que se solucionó con éxito ahora.

Los siguientes son los pasos (suponiendo que está utilizando la versión GUI de Doxygen-doxywizard)

  1. clic en el botón de Expertos

  2. Ir a la pestaña Dot y seleccionar el DOT_PATH. Busque la carpeta donde ha instalado el programa. por ejemplo, "C:/Archivos de programa (x86) /Graphviz2.32/bin"

Para más detalles, consulte el siguiente enlace http://www.cypax.net/tutorials/doxygen/index?language=en#doxycomment

creo que sirve, Anit

+0

El enlace está roto – portforwardpodcast

5

¡Prueba Doxygraph!

Doxygraph es una colección de herramientas para automatizar los diagramas de clase UML de ingeniería inversa del código fuente de su proyecto y presentarlos como aplicaciones web interactivas.

Depende de Doxygen analizar su código fuente y crear una representación XML intermedia de la información que recopila, por lo que admite todos los mismos lenguajes de programación compatibles con Doxygen: C, C++, C#, Objective C, Java, Python, PHP, Tcl, D, IDL, VHDL y Fortran.

Debe leer el archivo README del proyecto clonado.

Cuestiones relacionadas