web-dev-qa-db-fra.com

Comment utiliser doxygen pour créer des diagrammes de classe UML à partir d'une source C ++

Je cherchais des informations décrivant comment générer des diagrammes de classes simples avec doxygen, mais je n’en ai pas trouvé. Quelqu'un peut aider?

J'ai besoin de créer des diagrammes comme indiqué ci-dessous à partir d'un ensemble de fichiers C++. alt text

S'il existe de meilleurs outils pour y parvenir plus facilement, veuillez me le faire savoir.

75
devnull

Doxygen crée des diagrammes d'héritage, mais je ne pense pas que cela va créer une hiérarchie de classe entière. Cela vous permet d'utiliser l'outil GraphViz. Si vous utilisez l'outil frontal de l'interface graphique Doxygen, vous trouverez les options appropriées dans Step2: -> Wizard tab -> Diagrams. Les options de relation DOT sont sous l’onglet Expert.

48
DPD

Citation de this post (c'est écrit par l'auteur de doxygen lui-même):

run doxygen -g and change the following options of the generated Doxyfile:

    EXTRACT_ALL            = YES
    HAVE_DOT               = YES
    UML_LOOK               = YES

run doxygen again
41
average

Hmm, cela semble être une question un peu ancienne, mais depuis que je me suis moqué de la configuration de Doxygen ces derniers jours, alors que ma tête est toujours pleine d'informations actuelles, essayons-en -

Je pense que les réponses précédentes l'ont presque:

L'option manquante est d'ajouter COLLABORATION_GRAPH = YES dans le fichier Doxy. Je suppose que vous pouvez faire la même chose quelque part dans l'interface graphique de doxywizard (je n'utilise pas doxywizard).

Ainsi, à titre d'exemple plus complet, les options "Doxyfile" typiques liées à la sortie UML que j'ai tendance à utiliser sont les suivantes:

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

Ces paramètres généreront à la fois un "héritage" (CLASS_GRAPH=YES) et "collaboration" (COLLABORATION_GRAPH=YES) diagrammes.

En fonction de votre cible pour le "déploiement" de la sortie doxygen, définissez DOT_IMAGE_FORMAT = svg peut également être utile. Avec la sortie svg, les diagrammes sont "évolutifs" au lieu de la résolution fixe des formats bitmap tels que .png. Apparemment, si vous visualisez la sortie dans des navigateurs autres que IE, il y a aussi INTERACTIVE_SVG = YES qui permettra "le zoom et le panoramique interactifs" des diagrammes svg générés. J'ai déjà essayé cela il y a quelque temps, et la sortie de svg était très attrayante sur le plan visuel, mais à l'époque, la prise en charge de svg par le navigateur était toujours un peu incohérente. J'espère donc que cette situation s'est peut-être améliorée récemment.

Comme d'autres commentaires l'ont mentionné, certains de ces paramètres (DOT_GRAPH_MAX_NODES _ en particulier) ont des impacts potentiels sur les performances, donc YMMV.

J'ai tendance à haïr les réponses de type "RTFM", donc des excuses pour cette phrase, mais dans ce cas, la documentation de Doxygen est vraiment votre ami. Consultez la documentation Doxygen sur les paramètres mentionnés ci-dessus. La dernière fois que j'ai regardé, vous pouvez trouver les détails sur http://www.doxygen.nl/manual/config.html .

32
user6092647

Enterprise Architect construira un diagramme UML à partir du code source importé.

4
zooropa

Je pense que vous devrez éditer le fichier doxys et définir GENERATE_UML (quelque chose comme ça) sur true. Et vous devez avoir dot/graphviz installé.

4
fzhou