208 votes

Générer un diagramme de classe UML à partir d'un projet Java

Existe-t-il un bon outil qui puisse aider à convertir les classes Java en UML et qui donne un aperçu de la manière dont mes classes sont liées les unes aux autres ? Il n'est pas nécessaire de décompiler le fichier JAR car j'ai les sources. Je sais qu'il en existe plusieurs, mais la plupart d'entre eux ne peuvent générer que des classes individuelles. J'espère qu'il existe un outil capable de générer un diagramme de classes qui donne une vue d'ensemble de la façon dont toutes mes classes et tous mes paquets actuels fonctionnent ensemble, afin que je puisse analyser la conception de mon architecture actuelle. Bien sûr, l'analyse est une chose. L'autre est la documentation.

J'en connais quelques-uns jusqu'à présent. Mais ils ne peuvent pas faire un diagramme de classe général. Voici une liste d'outils UML Java que j'ai essayés et qui sont capables de faire de la rétro-ingénierie, mais qui ne peuvent pas faire un diagramme de classe général pour l'ensemble de mon projet :

  • StarUML (Très bon) Opensource Outil UML mais ne peut pas générer de diagramme de classe sans vue d'ensemble)
  • ArgoUML (Il est lent et léthargique et il ne cesse de planter)
  • UModel (C'est un logiciel commercial. Je l'ai utilisé il y a quelques temps mais je l'ai trouvé difficile à utiliser)
  • MS Visio (ne supporte pas le reverse engineer Java UML, seulement pour VB)

Y a-t-il d'autres recommandations à ajouter à cette liste ? Et si tout va bien, je peux générer un diagramme de classe Java général. J'utilise Eclipse, d'ailleurs.

1 votes

Pour ajouter quelques possibilités supplémentaires, dans Eclipse, il y a Papyrus. Mais le plugin de génération de code, malheureusement, n'a pas fonctionné pour moi. Il a trop de dépendances à installer. J'ai fini par utiliser eUML2.

0 votes

Vous pouvez consulter UML Lab - il est commercial - mais il dispose d'une ingénierie inverse (et d'un aller-retour) très sophistiquée et personnalisable.

0 votes

Il existe un outil gratuit appelé JGrasp ce qui peut aider.

126voto

J'ai écrit Visualiseur de classe qui le fait. C'est un outil gratuit qui a toutes les fonctionnalités mentionnées - je l'utilise personnellement pour les mêmes objectifs, comme décrit dans ce post. Pour chaque classe parcourue, il affiche 2 diagrammes de classe générés instantanément : relations de classe et vue UML de la classe. Le diagramme des relations de classes permet de parcourir la structure entière. Il a un support complet pour les annotations et les génériques ainsi qu'un support spécial pour les entités JPA. Fonctionne très bien avec les gros projets (des milliers de classes).

12 votes

Le programme est vraiment bon. Merci de l'avoir créé et pour le lien.

1 votes

+1 pour être libre, autonome, multiplateforme (juste un programme Java), activement maintenu. Note supplémentaire : Le programme ne peut pas lire le code source directement, mais fonctionne sur les fichiers class/jar. Ainsi, la compilation est requise.

20 votes

Jonatan, par courtoisie, on pourrait/devrait ajouter une clause de non-responsabilité à la réponse lorsque l'on suggère des produits, des services, etc.

48voto

Heisenbug Points 20496

J'utilise eUML2 de Soyatec, sous Eclipse et il fonctionne bien pour la génération d'UML donnant le code source. Cet outil est utile jusqu'à Eclipse 4.4.x.

0 votes

L'édition gratuite dispose-t-elle de cette fonctionnalité ?

0 votes

Oui. J'utilise l'édition gratuite.

1 votes

Merci ! ;) Je ne l'ai pas essayé car j'ai toujours pensé que la version gratuite n'avait pas de code pour la génération UML.

2voto

Jordi Cabot Points 4764

Je dirais MoDisco est de loin la plus puissante (mais probablement pas la plus facile à utiliser).

MoDisco est un cadre générique de rétro-ingénierie (afin que vous puissiez personnaliser votre projet de rétro-ingénierie, avec MoDisco vous pouvez même rétro-ingénier le comportement des méthodes java, pas seulement la structure et les signatures) mais comprend également certaines fonctionnalités prédéfinies comme la génération de diagrammes de classe à partir du code Java dont vous avez besoin.

2voto

Swaranga Sarma Points 4110

Que pensez-vous de la Omondo Plugin pour Eclipse. Je l'ai utilisé et je le trouve assez utile. Cependant, si vous générez des diagrammes pour de grandes sources, vous devrez peut-être démarrer Eclipse avec plus de mémoire.

0 votes

Le lien ne fonctionne pas

0voto

npinti Points 26029

Vous pouvez essayer d'utiliser Netbeans l'ingénierie inverse. Peut-être ce Un court tutoriel vous montrera comment procéder.

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