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

Y a-t-il un bon outil qui peut aider à inverser les classes Java en UML qui montrera une vue générale de la façon dont mes classes sont relié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 montre une vue d’ensemble de la façon dont toutes mes classes et packages actuels fonctionnent ensemble, afin que je puisse analyser 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 global. Voici une liste d’outils Java UML que j’ai essayés et qui sont capables de faire de l’ingénierie inverse mais qui ne peuvent pas faire un diagramme de classes de l’ensemble de mon projet :

  • StarUML (Très bon outil Opensource UML mais ne peut pas générer de diagramme de classe global)
  • ArgoUML (Il est lent et lent et ne cesse de planter)
  • UModel (C’est un logiciel commercial. Je l’ai déjà utilisé il y a quelque temps mais je l’ai trouvé difficile à utiliser)
  • MS Visio (Il ne supporte pas l’ingénierie inverse Java UML. Seulement pour VB)

Y a-t-il d’autres recommandations à ajouter à cette liste ? J’espère pouvoir générer un diagramme de classes Java. J’utilise Eclipse.

C’est ce que fait Class Visualizer. C’est un outil gratuit qui possède toutes les fonctionnalités mentionnées - je l’utilise personnellement aux mêmes fins, comme décrit dans ce post. Pour chaque classe parcourue, il affiche 2 diagrammes de classe générés instantanément : les relations de classe et la vue UML de la classe. Le diagramme des relations de classes permet de parcourir l’ensemble de la structure. 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 grands projets (des milliers de classes).

J’utilise le plugin eUML2 de Soyatec, sous Eclipse et il fonctionne très bien pour la génération d’UML à partir du code source. Cet outil est utile jusqu’à Eclipse 4.4.x.

Pourquoi pas le plugin Omondo pour Eclipse. Je l’ai utilisé et je le trouve très utile. Cependant, si vous générez des diagrammes pour des sources importantes, vous devrez peut-être démarrer Eclipse avec plus de mémoire.