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

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

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 des diagrammes UML assez sympas:

Capture d'écran

Description du site:

ObjectAid UML Explorer est différent des autres outils UML. Il utilise la notation UML pour afficher une représentation graphique du code existant qui est aussi précise et à jour que votre éditeur de texte, tout en étant très facile à utiliser. Plusieurs fonctionnalités uniques rendent cela possible:

  • Votre code source et vos bibliothèques sont le modèle affiché, ils ne sont pas désossés 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 procéder au reverse engineering du code source.
  • Le 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 les modifications sans se désynchroniser.
  • Tous les diagrammes de votre espace de travail Eclipse sont mis à jour avec les modifications de refactoring appropriées. Si nécessaire, ils sont extraits de votre système de contrôle de version.
  • Les diagrammes sont entièrement intégrés dans l’IDE Eclipse. Vous pouvez faire glisser des classes Java depuis n’importe quelle autre vue sur le diagramme, et les informations relatives aux diagrammes sont affichées dans d’autres vues, le cas échéant.

EDIT: Si vous êtes un concepteur, 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, ObjectAid est plutôt cool et ne nécessite aucun plug- in. Il suffit de l’installer sur Eclipse-Java EE et fonctionne très bien!


MISE À JOUR 11 octobre 2013

Mon message original était en juin 2012, beaucoup de choses ont changé, beaucoup d’outils ont grandi et d’autres pas. Étant donné que je retourne faire de la modélisation et que je reçois également des réponses à mon message, j’ai décidé d’installer à nouveau papyrus et d’étudier à nouveau d’autres solutions de modélisation UML possibles. La génération UML (avec la fonction de synchronisation) est vraiment importante non pas pour le concepteur de logiciel mais pour le développeur moyen.

Je souhaiterais que papyrus ait un moyen simple d’inverser les classes d’ingénieur dans le diagramme de classes UML et ce serait super cool si cette rétro-ingénierie comportait une fonction de synchronisation, mais malheureusement, le projet papyrus est plein de fonctionnalités. les actions que vous faites sur papyrus peuvent ne pas vous donner de réponse et rien ne se passe, mais de toute façon, cela est hors de question.

La réponse (11 octobre 2013)

Outils

  1. Télécharger Papyrus
  2. Allez dans Aide -> Installer un nouveau logiciel …
  3. Dans la liste déroulante Travailler avec , sélectionnez –Tous les sites disponibles–
  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

Pas

  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 -> Discovery -> Discoverer -> Discover Java et le modèle d’inventaire du projet java, un fichier appelé MyProject_kdm.xmi sera généré. entrer la description de l'image ici
  3. Cliquez avec le bouton droit de la souris sur le nom du projet -> new -> papyrus model -> et appelez-le MyProject.
  4. Déplacer les trois fichiers générés MyProject.di, MyProject.notation, MyProject.uml dans le dossier UML
  5. Cliquez avec le bouton droit de la souris sur MyProject_kdm.xmi -> Discovery -> Discoverer -> Découvrez le modèle UML à partir du code KDM, vous obtiendrez une boîte de dialog de propriétés définissant le prop de sérialisation sur TRUE pour générer un fichier nommé MyProject.uml entrer la description de l'image ici

  6. Déplacer le fichier généré MyProject.uml généré à la racine dans le dossier UML, Eclipse vous demandera si vous souhaitez le remplacer, cliquez sur Oui. Ce que nous avons fait ici, c’est que nous avons remplacé un modèle vide par un modèle généré.

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

  8. Dans cette vue, vous trouverez vos cours comme sur la photo entrer la description de l'image ici

  9. Dans la vue Clic droit sur le modèle racine -> Nouveau diagramme entrer la description de l'image ici

  10. Puis commencez à saisir les classes sur le diagramme depuis la vue

Certaines fonctionnalités

  • Pour afficher les éléments de la classe (variables, fonctions, etc.) Cliquez avec le bouton droit sur n’importe quelle classe -> Filtres -> afficher / masquer le contenu

  • Vous pouvez avoir des parameters de couleur conviviaux par défaut de Window -> pereferences -> papyrus -> diagramme de classes

  • un paramètre très important est Arranger lorsque vous laissez tomber les classes, ils obtiennent un clic droit sur un espace vide dans un diagramme de classe et cliquez sur Organiser tout.

  • Les flèches dans la vue de l’explorateur de modèle peuvent être saisies dans le diagramme pour montrer la généralisation, la réalisation, etc.

  • Après tout cela vos parameters afficheront des diagrammes comme entrer 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 à moins que vous en ayez vraiment besoin, le papyrus est en fait génial et sophistiqué, mais faites plutôt un don.

Disclaimer: Je n’ai aucun rapport avec les papyrus, en fait, je n’ai pas aimé les papyrus au début jusqu’à ce que je fasse beaucoup de recherches et que je les ai expérimentés avec patience. Et je reviendrai à ce poste lorsque j’essaierai d’autres outils gratuits.

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

alt text http://www.soyatec.com/euml2/images/product_euml2_110x80.png

eUML2 for 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:

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

  • Ingénierie inversée avancée

  • Puissants outils d’parsing des dépendances
  • Profil UML et MDD
  • Outils de firebase database
  • Prise en charge de modèles personnalisables

Qu’en est-il de PlantUML ? Ce n’est pas pour l’ingénierie inverse !!! C’est pour l’ingénierie avant de coder.

Je recommanderais EclipseUML d’Omondo pour un usage général, même si 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 cela n’est censé plus être promu.

Si vous êtes vraiment intéressé par les diagrammes de séquence de rétro-ingénierie à partir du code source, je vous recommande jTracert .

En ce qui concerne les projets Eclipse eux-mêmes, le projet Eclipse UML2 Tools peut prendre en charge le reverse engineering, même si je ne l’ai jamais vu dans la pratique.

Le projet Eclipse GMT du projet MoDisco (Model Discovery) semble mieux comprendre votre objective. La liste des outils spécifiques à la technologie serait un bon sharepoint départ.

J’ai développé un plugin maven qui peut être exécuté à partir de l’interface de ligne de commande en tant qu’objective de plug-in, ou importer en tant que dépendance et utiliser par programme l’parsingur, @see Main#main() pour savoir comment.

Il rend récursivement le code PlantUML src des paquets désirés que vous pouvez éditer manuellement si nécessaire (si tout va bien vous le pensez). Ensuite, en collant le code dans la page plantUML ou en téléchargeant le fichier jar de l’installation, vous pouvez afficher le diagramme UML sous la forme d’une image png.

Découvrez-le ici https://github.com/juanmf/Java2PlantUML

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

Toute consortingbution 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 parameters du CLI du plugin.

Il est important de noter qu’il n’est pas limité à vos fichiers * .java, il peut également rendre des diagrammes UML src à partir de vos dépendances. C’est très pratique pour comprendre les bibliothèques dont vous dépendez. Il inspecte en fait les classes compilées avec la reflection donc aucune source nécessaire

Soyez le 1er à jouer à GitHub: P

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

Vous pouvez également essayer le modélisateur UML de netbeans. Je l’ai utilisé pour générer javacode que j’ai utilisé dans mes projets éclipse. Vous pouvez même importer des projets eclipse dans netbeans et conserver les parameters d’éclipse synchronisés avec les parameters du projet netbeans.

J’ai essayé plusieurs modélisateurs UML pour eclipse et je n’en étais pas satisfait. Ils étaient soit instables, compliqués ou tout simplement laids. 😉

Utiliser IntelliJ IDEA. Pour générer un package de sélection de diagramme de classe, appuyez sur Ctrl + Alt + U : entrer la description de l'image ici

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

Pour générer un diagramme de dépendances (diagramme de déploiement UML) et que vous utilisez maven, allez dans Affichage -> Outils -> Projets Maven et appuyez sur Ctrl + Alt + U : entrer la description de l'image ici

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

Il est également possible de générer d’autres diagrammes. Voir la documentation

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 de 3.6, mais elle est plutôt bonne et ne nécessite pas que vous l’achetiez pour les tests et l’ingénierie inverse.

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. Seule eUML semble rivaliser avec elle 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 mauvais et un non définitif pour moi.

Quelque chose de très simple a déjà été demandé.

De loin le meilleur outil que j’ai utilisé pour l’ingénierie inverse, et le java de déclenchement en boucle -> UML est Borland’s Together . Il est basé sur Eclipse (pas un simple plugin) et fonctionne vraiment bien.

http://www.zenuml.com ne génère pas directement de diagrammes UML à partir du code Java, mais son langage DSL est similaire à Java. BTW j’ai créé zenuml 🙂 entrer la description de l'image ici

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 plug-in PlantUML dans les netbeans par cette méthode:

Menu Netbeans -> Outils -> Plugin

Maintenant, sélectionnez Available Plugins, puis trouvez PlantUML et installez-le.

Pour plus d’informations, visitez le site Web: http://www.plantuml.com