Générer un diagramme de classes UML à partir d'un projet Java [fermé]

200

Existe-t-il un bon outil qui peut aider à inverser l'ingénierie des classes Java en UML qui montrera un aperçu de la façon dont mes classes sont liées les unes aux autres? Il n'a pas besoin de décompiler le fichier JAR car j'ai les sources. Je sais qu'il y en a beaucoup, mais la plupart d'entre elles ne peuvent générer qu'une classe individuelle. J'espère qu'il existe un outil qui peut générer un diagramme de classes qui montre un aperçu de la façon dont toutes mes classes et packages actuels fonctionnent ensemble, afin que je puisse analyser ma conception d'architecture actuelle. Bien sûr, l'analyse est une chose. L'autre est à des fins de documentation.

J'en connais quelques-uns jusqu'à présent. Mais ils ne peuvent pas faire un diagramme de classe d'ensemble. Voici une liste d'outils Java UML que j'ai essayé et qui est capable de faire de l'ingénierie inverse mais ne peut pas faire un diagramme de classe d'ensemble de tout mon projet:

  • StarUML (vraiment bon Opensource outil UML mais ne peut pas générer pas diagramme de classes aperçu)
  • ArgoUML (il est lent et lent et continue de s'écraser)
  • UModel (Ceci est un logiciel commercial. J'ai utilisé il y a quelque temps mais j'ai trouvé difficile à utiliser)
  • MS Visio (Il ne prend pas en charge l'ingénierie inverse Java UML. Uniquement pour VB)

Y a-t-il d'autres recommandations à ajouter à cette liste? Et nous espérons pouvoir générer un diagramme de classe Java d'ensemble. J'utilise Eclipse, au fait.

Carven
la source
1
Juste 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 finalement utilisé eUML2.
Carven
Vous pouvez consulter UML Lab - c'est commercial - mais il a une ingénierie inverse très sophistiquée et personnalisable (et aller-retour).
Christian
Il existe un outil gratuit appelé JGrasp qui peut vous aider.
HRJ
J'ai utilisé cette méthode: youtube.com/watch?v=HwBep8DmBVw seul inconvénient est: ce n'est pas gratuit mais vous pouvez avoir un essai de 30 jours, ce qui était suffisant dans mon cas. NOTE: Ce n'est pas ma vidéo, je l'ai juste trouvée en cherchant sur Google.
dazito
@Carven, faites-moi savoir quel plugin avez-vous utilisé? Actuellement, je cherche à générer des diagrammes de séquence automatiquement lors de l'exécution de junit / test.
User27854

Réponses:

46

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

Heisenbug
la source
L'édition gratuite a-t-elle cette fonctionnalité?
Carven
Oui. J'utilise l'édition gratuite.
Heisenbug
1
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.
Carven
38
Ça craint. Dur. Les instructions veulent que les utilisateurs préfixent toutes les propriétés avec un caractère 'f' pour les flairer. Il est également destructeur et ajoute un tas de ses propres commentaires à TOUS les fichiers de classe. De plus, les instructions ne sont pas intuitives. Si quelqu'un peut réfuter mon expérience (sur la base de la version actuelle de Kepler), veuillez le faire. Et, seulement trois semaines d'essai. Désinstaller maintenant.
ingyhere
1
Je n'ai pas aimé ça. Sa dernière version non compatible d'éclipse / oxygène.
Tayfun Yaşar
109

J'ai écrit Class Visualizer , qui le fait. 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 cet article. Pour chaque classe parcourue, il montre 2 diagrammes de classe générés instantanément: relations de classe et vue UML de classe. Le diagramme des relations de classe permet de parcourir toute 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 de grands projets (des milliers de classes).

Jonatan Kaźmierczak
la source
8
Le programme est vraiment bon. Merci de l'avoir créé et du lien.
Igor Rodriguez, le
17
Jonatan, par courtoisie, on pourrait / devrait ajouter un avertissement à la réponse en suggérant des produits, des services, etc. dans
lesquels
2
C'est vraiment cool. Compte tenu de notre projet très complexe vieux de plusieurs décennies - une grande partie du code est JDK 1.1 vintage - cela donne un excellent aperçu de la façon dont les choses sont connectées. En complément du code source et de Javadoc, il offre une valeur énorme à un prix impressionnant.
gerardw
2
Le Visualiseur de classe est-il un outil utile incroyablement remarquable? OUI, ÇA L'EST. Comment payons-nous cela? C'est gratuit à télécharger! Comment apprend-on à l'utiliser? J'ai passé 10 minutes à regarder la vidéo!
Martin Meeser
2
J'ai une classe qui appelle une méthode d'une autre classe sur le même projet / dossier, mais cette autre classe ne s'affiche pas. J'ai ajouté toutes les dépendances possibles, y compris tous les pots jdk8. ai-je oublié quelque chose?
Aquarius Power
2

Que diriez- vous du plugin Omondo pour Eclipse. Je l'ai utilisé et je le trouve très utile. Bien que si vous générez des diagrammes pour de grandes sources, vous devrez peut-être démarrer Eclipse avec plus de mémoire.

Swaranga Sarma
la source
Le lien ne fonctionne pas
Blip
2

Je dirais que MoDisco est de loin le plus puissant (mais probablement pas le 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 inverser le comportement des méthodes java, non seulement la structure et les signatures), mais comprend également des fonctionnalités prédéfinies comme la génération de classe diagrammes en code Java dont vous avez besoin.

Jordi Cabot
la source