50 votes

Graphviz + Doxygen pour générer des diagrammes de classe UML

Je veux utiliser Graphviz + Doxygen pour générer un diagramme de classes basé sur du code C++. Cela fonctionne déjà comme Doxygen est livré avec un natif de POINT d'appui; mais est-il possible, pour produire un langage de modélisation UML comme sortie correspondant à l'accès modificators (publique, privée, etc.), de retour et les types des paramètres des méthodes de la classe, semblable au diagramme ci-dessous?

Je suis conscient de fil Comment utiliser doxygen pour créer des diagrammes de classes UML source C++ , mais il ne répond pas à la question.

enter image description here

63voto

doxygen Points 6765

Créer 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();
};

exécutez doxygen -g et de modifier les options suivantes de la générées Doxyfile:

EXTRACT_ALL            = YES
HAVE_DOT               = YES
UML_LOOK               = YES

exécutez doxygen et chercher à la sortie de l'Animal de la classe, il doit être la même que l'image ci-dessus, bien que doxygen ne sera pas montrer les types de retour des méthodes et des champs.

20voto

Ani Points 99

J'ai eu le même problème de son résolu avec succès maintenant.

Voici les étapes(en supposant que vous êtes en utilisant l'interface graphique de la version de Doxygen-Doxywizard)

  1. Cliquez sur le bouton Expert

  2. Aller à la Dot onglet et sélectionner le DOT_PATH. Parcourir le dossier où vous avez installé le programme. par exemple, " C:/Program Files (x86)/Graphviz2.32/bin "

Pour plus de détails, consultez le lien suivant http://www.cypax.net/tutorials/doxygen/index?language=en#doxycomment

Espérons que cela aide, Anit

2voto

kikeenrique Points 1160

Une solution possible pour parvenir à ce résultat consiste à utiliser plantuml, mais cela nécessite plus de travail sur la documentation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X