c++ uml doxygen graphviz class-diagram

Cómo usar doxygen para crear diagramas de clase UML desde la fuente C++



graphviz class-diagram (5)

He estado buscando algún material que describa cómo generar diagramas de clases simples con doxygen, pero no pude encontrar uno. ¿Alguien puede ayudar?

Necesito crear diagramas como se muestra a continuación desde un conjunto de archivos C ++.

Si hay mejores herramientas para lograr esto más fácil, házmelo saber.


Cita de esta publicación (está escrita por el autor del propio doxygen):

run doxygen -g and change the following options of the generated Doxyfile: EXTRACT_ALL = YES HAVE_DOT = YES UML_LOOK = YES run doxygen again


Creo que tendrá que editar el archivo doxys y establecer GENERATE_UML (algo así) en verdadero. Y necesita tener dot / graphviz instalado.


Enterprise Architect construirá un diagrama UML a partir del código fuente importado.


Hmm, esta parece ser una vieja pregunta, pero como he estado jugando con la configuración de Doxygen en los últimos días, mientras mi cabeza todavía está llena de información actual, apuñémosla.

Creo que las respuestas anteriores casi lo tienen:

La opción que falta es agregar COLLABORATION_GRAPH = YES en Doxyfile. Supongo que puedes hacer lo equivalente en algún lugar de la GUI doxywizard (no uso doxywizard).

Entonces, como un ejemplo más completo, las opciones típicas de "Doxyfile" relacionadas con la salida UML que tiendo a usar son:

EXTRACT_ALL = YES CLASS_DIAGRAMS = YES HIDE_UNDOC_RELATIONS = NO HAVE_DOT = YES CLASS_GRAPH = YES COLLABORATION_GRAPH = YES UML_LOOK = YES UML_LIMIT_NUM_FIELDS = 50 TEMPLATE_RELATIONS = YES DOT_GRAPH_MAX_NODES = 100 MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = YES

Estas configuraciones generarán diagramas de "herencia" ( CLASS_GRAPH=YES ) y de "colaboración" ( COLLABORATION_GRAPH=YES ).

Dependiendo de su objetivo de "despliegue" de la salida de doxígeno, la configuración de DOT_IMAGE_FORMAT = svg también puede ser útil. Con la salida svg, los diagramas son "escalables" en lugar de la resolución fija de los formatos de mapa de bits, como .png. Aparentemente, si se visualiza la salida en buscadores que no sean IE, también hay INTERACTIVE_SVG = YES que permitirá "zoom y paneo interactivo" de los diagramas svg generados. Intenté esto hace algún tiempo, y la salida svg fue muy atractiva visualmente, pero en ese momento, el soporte del navegador para svg todavía era un poco inconsistente, así que con suerte esa situación puede haber mejorado últimamente.

Como han mencionado otros comentarios, algunas de estas configuraciones ( DOT_GRAPH_MAX_NODES en particular) tienen impactos potenciales en el rendimiento, por lo tanto, YMMV.

Tiendo a odiar las respuestas de estilo "RTFM", así que me disculpo por esta frase, pero en este caso la documentación de Doxygen es realmente tu amiga, así que mira los documentos de Doxygen en la configuración mencionada anteriormente. La última vez que miré puedes encontrar los detalles en http://www.stack.nl/~dimitri/doxygen/manual/config.html .


Doxygen crea diagramas de herencia, pero no creo que creará una jerarquía de clases completa. Le permite usar la herramienta GraphViz. Si utiliza la herramienta de interfaz gráfica de usuario de la interfaz gráfica de usuario de Doxygen, encontrará las opciones relevantes en el Step2: -> Wizard tab -> Diagrams . Las opciones de relación DOT están en la pestaña Experto.