Source Java Vers Graphique UML ( Java Reverse )

A quoi cela sert t’il ? A rien …. non non aller revenez on va causer un peu ..🙂

Partie 1 – Je raconte ma vie

Bon, déjà mon avis sur le JAVA (en 3 lignes) :

C’est sympa, assez structuré, de la programmation Objet comme on l’aime. Avant j’avais fait du Pascal Object (moment nostalgique de promenade dans les champs etc ..) , on est dans la même catégorie de langage, pour moi quelque chose de professionnel et d’efficace.

En production, et surtout pour des applications lourdes, Java reste pour moi moins performant (pas taper moi). Cependant il garde pas mal de petits truc en plus (c’est langage plus récent après tout).

Et l’UML ?

L’UML … non, c’est une perte de temps. Pourquoi perdre 2h à faire des schémas qu’il faudrait de toute façon recoder. Qui plus est pour avoir un travail structuré il faudrait maintenir la concordance entre l’UML et le code. Cela reste réservé aux clients et aux patrons, aux cdc, en bref aux néophytes (et encore).

l’UML j’en ai toujours fait sans le savoir… sur mon bloc-note papier :p

Oui mais, le Java et l’UML ?

Si je peux pondre toutes mes classes et interfaces (la structure seulement hein !) à partir de mon schéma UML, il est envisageble que je perde 2h à faire des dessins sur le pc plutot que mon bloc-note. Si en plus je peux mettre à jours mon schéma après une modification du code, je risque de conserver ce schéma !

Et visiblement maintenant, c’est plus que possible ou envisageable, c’est efficace et fiable .. Chouette😀

Partie 2 – Comment faire ….

Il existe plusieurs méthodes, toutes plus ou moins rapides / efficaces / respectueuses des normes / simples.

Bouml

Installation

yum install bouml

Récupérer les classes

  1. Lancer bouml (attention il est parfois bavard et pose des questions étranges… faites OK ça lui suffit souvent)
  2. Créer un projet bouml : New -> Choisir l’emplacement du dossier à créer
  3. Préparer un catalogue : Clic droit sur le nouveau projet -> Reverse -> Java Catalog
  4. Charger vos classes/interfaces : Dans la fenêtre Java catalog -> File -> Scan -> Sélectionnez un dossier à scanner
  5. Désormais il est possible de parcourir vos dossier pour débusquer les classes disponible. Pour importer vos classes faites un clic droit sur le dossier -> send its classes and classes of sub-package

Voila maintenant vous disposez de toutes vos classes dans bouml, il est maintenant possible de produire un code JAVA ou C++, un diagramme UML ou un documentation HTML etc …

Récupérer les classes (Deuxième méthode par B.Pagès)

  1. Lancer bouml
  2. Créer un projet bouml : New -> Choisir l’emplacement du dossier à créer
  3. Importer vos sources : Clic droit sur le nouveau projet -> Reverse -> Java
  4. Au moment de choisir un catalogue, faites annuler, puis au moment de choisir le dossier à « Reverser » sélectionnez les sources de votre projet.

Cette méthode à l’avantage de conserver plus d’informations (comme les sources).

Production d’un diagramme

  1. Faites un clic droit sur une class View (Élément qui contient plusieurs classes) et faites New Class Diagram.
  2. Double cliquez sur ce nouvel élément pour faire apparaître la zone de dessin.

Maintenant il est possible de glisser déposer toutes les classes dont vous disposez sur cette zone, les liens se feront automatiquement. Je n’ai pas trouvé meilleur méthode pour l’instant.

De même la zone de dessin est assez réduite mais il est possible de changer le format (clic droit -> format -> A1 (A2,A3,A4) et le zoom (100% -> 50%) .

NetBeans

Installation de neBeans

Téléchargez le gros fichier de chez JAVA et faites l’installation à l’arrache … comme on l’aime🙂

Installation du plugin UML de netBeans

Lancer Netbeans et faire : Tools -> plugins -> Available plugin -> cocher UML -> cliquez sur Install

Réaliser le graph UML

  1. ouvrez le projet de votre choix (ou importez en un, c’est vous qui voyez :p )
  2. Puis: New projet -> UML -> Reverse engineered Java – platform Model

Encore une fois c’est à moi de faire le graph avec mes petites mains …. seulement là .. ça pu … ça rame et ça déconne !!😦

Conclusion

Juger en par vous même, pour un même projet avec un même temps de réalisation 5 min

Avec bouml on obtient un diagramme humainement lisible.

Reverse JAVA avec Bouml

Avec netBeans, même avec 3 heures de plus … je doutes d’arriver à faire quelque chose de sérieux.

Reverse JAVA avec netBeans

Pourtant ça marche m’avait on dit… C’est efficace … Mon oeil …

Bien sur d’autre outils existent, mais je ne les connais pas encore, pour un prochain billet peut être.

4 réflexions sur “Source Java Vers Graphique UML ( Java Reverse )

  1. Bonjour,

    je regarde assez souvent ce qui est dit sur Bouml via google, cela peut être instructif, et je suis donc tombé sur cette pages.

    Puis-je me permettre deux petites remarques :
    – tout les modeleurs ne se limitent pas à la production de squelettes, Bouml permet de produire l’intégralité d’un programme (dans le cas contraire il serait impossible par exemple de générer le code des ‘plug-outs’)
    – la meilleure solution pour faire un reverse … est d’utiliser le reverse😉 L’utilisation de Java Catalog est plus restreinte, en particulier le but n’étant pas de produire ensuite le code des classes importées, les membres privés ne sont pas importés

    bonnes modélisations

    Bruno

  2. j’ai un groupe de recherche dans le bâtiment d’à côté qui bosse sur des interfaces « tout au crayon » pour des architectes (esquise) … Au fur et à mesure que le l’utilisateur fait ses traîts sur une grande table (sur laquelle un projecteur fait apparaître l’écran de l’ordi), le soft digère et interprète les traits, construit une maquette 3D du bâtiment, calcule le rendu énergétique, etc.

    Le jour où on peut faire ça avec UML, j’utilise UML pour le squelette et compagine. En attendant, j’en reste à la version « papier-crayon » agrémentée de bilous et de commentaires en écriture manuscripte. Et si je veux partager, je scanne ^_^

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s