Je veux utiliser Graphviz + Doxygen pour générer un diagramme de classes basé sur du code C++. Cela fonctionne déjà car Doxygen est livré avec un support DOT natif; mais est-il possible de produire une sortie de type UML avec les modificateurs d'accès correspondants (public, privé, etc.), les types de retour et de paramètre de la classe méthodes similaires au schéma ci-dessous?
Je connais le thread Comment utiliser doxygen pour créer des diagrammes de classes UML à partir de la source C++ , mais cela ne répond pas à la question, cependant.
Créez le fichier source suivant 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();
};
courir doxygen -g
et modifiez les options suivantes du Doxyfile
généré:
EXTRACT_ALL = YES
HAVE_DOT = YES
UML_LOOK = YES
exécutez doxygen
et regardez la sortie de la classe Animal, elle devrait être similaire à l'image ci-dessus, bien que doxygen n'affichera pas les types de retour des méthodes et des champs.
J'avais un problème similaire résolu avec succès maintenant.
Voici les étapes (en supposant que vous utilisez la version GUI de Doxygen-Doxywizard)
Cliquez sur le bouton Expert
Allez dans l'onglet Dot et sélectionnez le DOT_PATH. Parcourez le dossier dans lequel vous avez installé le programme. par exemple, "C:/Program Files (x86) /Graphviz2.32/bin"
J'espère que ça aide, Anit
Essayez Doxygraph !
Doxygraph est une collection d'outils pour automatiser la rétro-ingénierie des diagrammes de classes UML à partir du code source de votre projet et les présenter sous forme d'applications Web interactives.
Il s'appuie sur Doxygen pour analyser votre code source et créer une représentation XML intermédiaire des informations qu'il recueille, il prend donc en charge tous les mêmes langages de programmation que Doxygen prend en charge: C, C++, C #, Objective C, Java, Python, PHP, Tcl, D, IDL, VHDL et Fortran.
Vous devez lire le README du projet cloné.
Une solution possible pour atteindre votre résultat est d'utiliser plantuml , mais cela nécessite plus de travail sur la documentation.