Comment générer des diagrammes UML (en particulier des diagrammes de séquence) à partir de code Java?


Comment puis-je générer des diagrammes UML (en particulier des diagrammes de séquence) à partir de code Java existant?

Author: M. Prokhorov, 2008-09-09

14 answers

ObjectAid UML Explorer

Est ce que j'ai utilisé. Il est facilement installé à partir du référentiel:

Name:     ObjectAid UML Explorer
Location: http://www.objectaid.com/update/current

Et produit de très beaux diagrammes UML:

Capture

Description du site:

L'explorateur UML ObjectAid est différent des autres outils UML. Il utilise la notation UML pour montrer une représentation graphique du code existant c'est aussi exacts et à jour que votre éditeur de texte, tout en étant très facile à utiliser. Plusieurs caractéristiques uniques rendent cela possible:

  • Votre code source et vos bibliothèques sont le modèle affiché, ils ne sont pas reverse engineered dans un format différent.
  • Si vous mettez à jour votre code dans Eclipse, votre diagramme est également mis à jour; il n'est pas nécessaire de désosser le code source.
  • Refactoring met à jour votre diagramme ainsi que votre code source. Lorsque vous renommez un champ ou déplacez une classe, votre diagramme reflète simplement changements sans sortir de la synchronisation.
  • Tous les diagrammes de votre espace de travail Eclipse sont mis à jour avec des modifications de refactorisation, le cas échéant. Si nécessaire, ils sont vérifiés sur votre système de contrôle de version.
  • Les diagrammes sont entièrement intégrés dans l'EDI Eclipse. Vous pouvez faire glisser des classes Java de n'importe quelle autre vue sur le diagramme et les informations sont affichées dans d'autres vues, le cas échéant.
 248
Author: Thomas Ahle, 2017-10-31 20:06:10

MODIFIER: Si vous êtes un concepteur, alors Papyrus est votre meilleur choix, il est très avancé et plein de fonctionnalités, mais si vous voulez juste esquisser des diagrammes UML et une installation facile, alors ObjectAid est assez cool et il ne nécessite aucun plugin, je viens de l'installer sur Eclipse-Java EE et fonctionne très bien !.


Mise à JOUR Oct 11, 2013

Mon message original était en juin 2012 beaucoup de choses ont changé beaucoup d'outils ont grandi et d'autres ne l'ont pas fait. Depuis Je reviens pour faire de la modélisation et obtenir des réponses au post, j'ai décidé d'installer à nouveau papyrus et j'étudierai à nouveau d'autres solutions de modélisation UML possibles. La génération UML (avec fonction de synchronisation) est vraiment importante non pas pour le concepteur de logiciels mais pour le développeur moyen.

Je souhaite que papyrus ait un moyen simple de désosser les classes dans le diagramme de classes UML et ce serait super cool si cette rétro-ingénierie avait une fonctionnalité de synchronisation, mais malheureusement, le projet papyrus est plein de fonctionnalités et je pense que les développeurs ont déjà beaucoup à portée de main, car de nombreuses actions que vous effectuez sur papyrus pourraient ne pas vous donner de réponse et rien ne se passe, mais c'est hors de portée de cette question de toute façon.

La réponse (11 octobre 2013)

Outils de

  1. Télécharger Papyrus
  2. Allez dans Aide -> Installer un nouveau logiciel...
  3. Dans la liste déroulante Travailler avec:, sélectionnez All Tous disponibles Sites--
  4. Dans le filtre, tapez Papyrus
  5. Une fois l'installation terminée, redémarrez Eclipse
  6. Répétez les étapes 1-3 et cette fois, installez Modisco

Les Étapes

  1. Dans votre projet java (supposons qu'il s'appelle MyProject) créez un dossier, par exemple UML
  2. Faites un clic droit sur le nom du projet -> Découverte -> Découvreur -> Découvrir Java et le modèle d'inventaire du projet java, un fichier appelé MyProject_kdm.xmi sera générer. entrez la description de l'image ici
  3. Faites un clic droit sur le nom du projet fichier - > nouveau - > modèle de papyrus - > et appelez-le MyProject.
  4. Déplacez les trois fichiers générés MyProject.di, MyProject.la notation, MyProject.uml dans le dossier UML
  5. Faites un clic droit sur MyProject_kdm.xmi - > Discovery - > Discoverer - > Discover UML model from KDM code encore une fois, vous obtiendrez une boîte de dialogue de propriété définissez l'accessoire de sérialisation sur TRUE pour générer un fichier nommé MyProject.uml entrez la description de l'image ici

  6. Déplacement généré MyProject.uml qui a été généré à la racine, dans le dossier UML, Eclipse vous demandera Si vous voulez le remplacer cliquez sur oui. Ce que nous avons fait ici est que nous avons remplacé un modèle vide avec une créée.

  7. ALT + W - > afficher la vue - > papyrus - > explorateur de modèles

  8. Dans cette vue, vous trouverez vos classes comme dans l'image entrez la description de l'image ici

  9. Dans la vue, cliquez avec le bouton droit sur le modèle racine- > Nouveau diagramme entrez la description de l'image ici

  10. Ensuite, commencez à saisir des classes dans le diagramme de la vue

Certaines fonctionnalités

  • Pour afficher les éléments de classe (variables, fonctions, etc.) faites un clic droit sur n'importe quelle classe -> Filtres -> afficher/masquer le contenu Le tour est joué !!

  • Vous pouvez avoir des paramètres de couleur conviviaux par défaut dans Window - > pereferences - > papyrus - > class diagram

  • Un paramètre très important est Arrange lorsque vous déposez les classes, elles obtiennent un clic droit étroit sur n'importe quel espace vide dans un diagramme de classe et cliquez sur Organiser tout

  • Les flèches de la vue de l'explorateur de modèles peuvent être saisies sur le diagramme pour afficher la généralisation, la réalisation, etc.

  • Après tout cela vos paramètres afficheront des diagrammes comme entrez la description de l'image ici

  • La synchronisation n'est pas disponible pour autant que je sache, vous devrez importer manuellement de nouvelles classes.

C'est tout, Et n'achetez pas de produits commerciaux sauf si vous en avez vraiment besoin, papyrus est en fait génial et sophistiqué à la place faire un don ou quelque chose.

Disclaimer: Je n'ai aucun rapport avec les papyrus, en fait, je n'aimais pas le papyrus au début jusqu'à ce que je fasse beaucoup de recherches et que je l'expérimente avec un peu de patience. Et je reviendrai à ce post quand j'essaierai d'autres outils gratuits.

 63
Author: Ismail Marmoush, 2018-07-27 15:10:53

Quelle est votre base de code? Le Java ou le C++?

Texte alternatif http://www.soyatec.com/euml2/images/product_euml2_110x80.png

EUML2 pour Java est un puissant modeleur UML conçu pour les développeurs Java dans Eclipse. L'édition gratuite peut être utilisée à des fins commerciales. Il prend en charge les fonctionnalités suivantes:

  • CV et support d'équipe
  • Conçu pour les grands projets avec des vues de modèles multiples et personnalisables
  • Conforme à Helios
  • Synchronisation de code/modèle en temps réel
  • Compatible UML2.1 et prise en charge de OMG XMI
  • Prise en charge de JDK 1.4 et 1.5
  • L'édition commerciale offre:

  • Ingénierie inversée avancée

  • De puissants outils d'analyse des vraies dépendances
  • Profil UML et MDD
  • outils de Base de données
  • Prise en charge des modèles personnalisables
 42
Author: prakash, 2011-11-02 17:05:19

Que diriez-vous de PlantUML? Ce n'est pas pour faire du reverse engineering!!! C'est pour l'ingénierie avant de coder.

 8
Author: Zamel, 2010-10-24 08:38:27

J'ai développé un plugin maven qui peut les deux, être exécuté à partir de CLI en tant qu'objectif de plugin, ou importer en tant que dépendance et utiliser par programme l'analyseur, @see Main#main() pour avoir l'idée de comment.

Il rend PlantUML le code src des paquets souhaités récursivement que vous pouvez modifier manuellement si nécessaire (espérons que vous ne le ferez pas). Ensuite, en collant le code dans la page PlantUML, ou en téléchargeant le jar de plant, vous pouvez rendre le diagramme UML en tant qu'image PNG.

Vérifiez-le ici https://github.com/juanmf/Java2PlantUML

Exemple de diagramme de sortie: entrez la description de l'image ici

Toute contribution est plus que bienvenue. Il a un ensemble de filtres qui personnalisent la sortie mais je ne les ai pas encore exposés dans les paramètres CLI du plugin.

Il est important de noter que cela ne se limite pas à votre *.fichiers java, il peut également rendre des diagrammes UML src à partir de vos dépendances maven. C'est très pratique pour comprendre les bibliothèques dont vous dépendez. Il inspecte réellement compilé classes avec réflexion donc aucune source nécessaire

Soyez le 1er à le mettre en vedette sur GitHub: P

 5
Author: juanmf, 2018-07-27 16:40:41

Je recommanderais EclipseUML d'Omondo pour un usage général, bien que j'ai rencontré quelques problèmes il y a quelques mois, avec mes projets Web. Ils ont eu une édition gratuite à un moment donné, mais qui est censé ne plus promu.

Si vous aimez vraiment les diagrammes de séquence de rétro-ingénierie à partir du code source, je recommanderais jTracert.

En ce qui concerne les projets Eclipse eux-mêmes, le projet Eclipse UML2 Tools peut prendre en charge rétro-ingénierie, bien que je n'ai jamais vu son utilisation dans la pratique.

Le projet MoDisco (Découverte de modèle) Eclipse GMT semble être plus clair dans la réalisation de votre objectif. La liste des outils spécifiques à la technologie serait un bon point de départ.

 4
Author: Vineet Reynolds, 2009-04-08 23:14:59

J'ai trouvé le plugin Green très simple à utiliser et à générer un diagramme de classe à partir du code source. Essayez-le :). Copiez simplement le plugin dans votre répertoire de plugin.

 3
Author: pcmind, 2011-04-28 12:42:18

Vous pouvez également essayer le modélisateur UML netbeans. Je l'ai utilisé pour générer javacode que j'utilise dans mes projets eclipse. Vous pouvez même importer des projets eclipse dans netbeans et conserver les paramètres eclipse synchronisés avec les paramètres du projet netbeans.

J'ai essayé plusieurs modélisateurs UML pour eclipse et je n'étais pas satisfait d'eux. Ils étaient soit instables, compliqués ou tout simplement laids. ;-)

 3
Author: Patrick Cornelissen, 2018-07-28 18:29:06

Utilisation d'IntelliJ IDEA. Pour générer diagramme de classe sélectionnez le paquet et appuyez sur la touche Ctrl + Alt + U:entrez la description de l'image ici

Par défaut, il n'affiche que les noms de classe et pas toutes les dépendances. Pour le changer: clic droit - > Afficher les catégories... et Afficher les dépendances: entrez la description de l'image ici

Pour créer un diagramme de dépendances (diagramme de déploiement UML) et vous utilisez maven go View - > Tool Windows - > Maven Projects et appuyez sur Ctrl + Alt + U : entrez la description de l'image ici

Le résultat: entrez la description de l'image ici

Il est Également possible de générer plus d'autres diagrammes. Voir documentation.

 2
Author: Igor Rybak, 2017-07-18 12:11:07

Vous pouvez utiliser la version d'évaluation de 30 jours d'EclipseUML pour Eclipse 3.5: http://www.uml2.org/eclipse-java-galileo-SR2-win32_eclipseUML2.2_package_may2010.zip Ce n'est pas la dernière version 3.6, mais elle est assez bonne et ne nécessite pas que vous l'achetiez pour les tests et la rétro-ingénierie.

Ingénierie inverse: http://www.forum-omondo.com/documentation_eclipseuml_2008/reverse/reverse/reverse_engineering_example.html

Démo flash en direct: http://www.ejb3.org/reverse.swf

EclipseUML Omondo est le meilleur outil au monde pour Java. Seul eUML semble rivaliser avec lui sur ce marché de la synchronisation java en direct, mais eUML ajoute des balises de modèle dans le code, ce qui est vraiment très très mauvais et un non définitif pour moi.

 2
Author: UML GURU, 2018-07-27 16:37:59

Quelque Chose de très similaire a été demandé avant.

De loin le meilleur outil que j'ai utilisé pour la rétro-ingénierie, et le déclenchement rond java - > UML est Borland's Together. Il est basé sur Eclipse (pas seulement un seul plugin) et fonctionne vraiment bien.

 1
Author: serg10, 2017-05-23 11:54:37

Http://www.zenuml.com ne génère pas de diagrammes UML directement à partir du code Java, mais son DSL est de type Java. BTW, j'ai créé zenuml :)entrez la description de l'image ici

 1
Author: Xiao Peng - ZenUML.com, 2017-07-21 13:43:30

Je suggère PlantUML. cet outil est très utile et facile à utiliser. PlantUML a un plugin pour Netbeans que vous pouvez créer un diagramme UML à partir de votre code java.

Vous pouvez installer le plugin PlantUML dans netbeans par cette méthode:

Menu Netbeans - > Outils - > Plugin

Sélectionnez maintenant les plugins disponibles, puis recherchez PlantUML et installez-le.

Pour plus d'informations, rendez-vous sur le site Web: www.plantuml.com

 0
Author: Masood, 2015-08-03 06:39:36

Http://uml-plugins.blogspot.com / c'est là que nous pouvons trouver des différences entre les outils de modélisation UML, pour un démarrage rapide !! En plus de ceux-ci, j'ai remarqué que le plugin SequenceDiagram pour Intellij est également une bonne option, veuillez lire ce post pour connaître rapidement les options gratuites vs commerciales et les meilleures.

 0
Author: srinivas y, 2018-10-05 16:32:51