web-dev-qa-db-fra.com

Outil de reverse engineering gratuit UML pour C ++ (.h / .cpp ==> Diagramme de classes)

Quels outils sont disponibles pour créer des diagrammes UML Class à partir d'un ensemble de fichiers .h- ou .cpp?

Je cherche quelque chose qui ...

  • est gratuit
  • sort de la boîte sur Windows
  • ne nécessite aucun IDE particulier
  • fournit idéalement une interface graphique
16
Ben

Dia est un très bon outil de dessin open source, et cpp2dia crée des diagrammes UML à partir de fichiers .h/.cpp.

Je l'utilise sous Linux, je ne sais pas s'il fonctionne sur d'autres plateformes.

Il n'y a pas d'interface graphique pour cpp2dia, mais son utilisation en ligne de commande est très simple.

8
pnezis

À propos de Bouml

il prétend avoir trouvé des erreurs dans mon code

l'inverse n'accepte que le "vrai" C++, il n'y a pas d'étape de préprocesseur, donc toute utilisation d'une macro dans une définition de classe ou une définition d'opération produit une erreur.

il n'affiche pas les membres de données qui sont de types de données personnalisés directement en tant qu'attributs

l'inverse produit des relations le plus possible, un attribut est utilisé lorsque le type n'est pas une classe connue ou pas une classe (par exemple 'int').

ne faites pas plusieurs inverses séparées, effectuez une seule inversion en spécifiant plusieurs répertoires supérieurs à réserver (chaque répertoire spécifié est parcouru récursivement)

Bruno Pagès (auteur de Bouml)

5
Bruno Pagès

J'ai développé un outil appelé Doxygraph qui peut analyser le XML généré par Doxygen et le transformer en un diagramme de classe UML interactif que vous pouvez visualiser dans un navigateur Web ou importer dans n'importe quel logiciel capable de lire Graphviz " fichiers "dot".

3
Oktalist

Je n'ai pas essayé cela mais Umbrello semble être un candidat viable: http://uml.sourceforge.net/ Il est construit au-dessus des bibliothèques KDE donc il devrait fonctionner sous Linux/Windows/Mac.

3
Roman Kutlak

Vous pouvez essayer ArgoUML qui est gratuit, possède une interface graphique agréable et est écrit en Java donc peut être exécuté sans douleur sur n'importe quel système.

Il est capable de générer du C++ à partir de diagrammes UML; cependant, l'ingénierie inverse du code source C++ est pour l'instant gérée par un sous-projet . Le dernier instantané de cet outil peut être téléchargé à partir du référentiel source . Pourtant, cet outil est toujours en cours de développement, il pourrait donc ne pas fonctionner comme prévu.

2
jopasserat

J'ai implémenté un module pour StarUML qui fournit une ingénierie inverse incrémentielle de C++. Il prend également en charge les conteneurs standard. Il est toujours en cours de développement, mais vous voudrez peut-être l'essayer. http://starumlcmodule.sourceforge.net .

1
acampesino