Comment générer du code à partir d'un diagramme UML ?

Dia et ses plugins font le travail pour vous !

10 juillet 2012

Dia est un logiciel permettant de réaliser toutes sortes de diagrammes, c'est l'un des concurrents libres de Microsoft Visio. Bon nombre de développeurs / concepteurs se doivent de passer par la phase de modélisation UML lors du déroulement d'un projet. Ce qui serait génial, ce serait de pouvoir générer le code source directement à partir de ce diagramme. Nous parlerons dans ce tutoriel de deux outils : uml2php5 et dia2code. Le premier, comme son nom l'indique, ne fonctionne qu'avec du PHP5, qui est absent de la liste par défaut de Dia. Le second, lui, permet la génération de plusieurs langages ; C++, Java, PHP5 etc...

Les manipulations ont été testées sous Debian Squeeze.

Installer Dia

aptitude install dia
	

J'utiliserai comme exemple un diagramme très simple téléchargeable ici : informatix.dia

Ne cherchez pas de sens dans le diagramme lui même, c'est juste pour tester... Nous avons donc :

Diagramme UML informatix

  • Une classe abstraite SiteTropBien.
  • Une classe Informatix héritant de SiteTropBien.
  • Une classe Auteur qui est associée à Informatix.

Dia2code, installation et utilisation

Installer dia2code

aptitude install dia2code
	

Ce n'est pas plus compliqué que ça . Un "man dia2code" vous indiquera tout ce que vous voulez savoir, notamment la liste des langages compatibles : ada|c|cpp|cs|java|php|php5|python|ruby|shp|sql

Plus qu'une commande à taper et c'est bon :

Générer des fichiers sources avec dia2code

dia2code -t java informatix.dia
	

Vous devriez voir apparaître les fichiers Informatix.java, Auteur.java et SiteTropBien.java.

Ces fichiers contiennent du code et des annotations. Vous voyez clairement l'héritage entre SiteTropBien et Informatix, la liaison entre Auteur et Informatix. Je vous recommande tout de même de bien regarder le code pour vérifier qu'il n'y a pas d'erreur. Ce qui est dommage, c'est que les accesseurs ne soient pas générés automatiquement.

uml2php5, installation et utilisation

uml2php5 a l'avantage, par rapport à dia2code, d'être un plugin de Dia directement exploitable depuis le logiciel lui même. L'installation est un peu plus complexe toutefois, vous trouverez comment faire ici : http://uml2php5.zpmag.com/linux.php.

L'utilisation est très simple :

  • Fichier
  • Exporter
  • Dans la liste en bas sélectionnez : Filtre de transformations XSL (*.code)
  • Choisissez UML-CLASSES-EXTENDED et PHP5

Peut être que je l'utilise mal, mais j'ai quelques problèmes avec les fichiers générés. Tout d'abord, la classe abstraite SiteTropBien n'est pas générée, alors qu'elle l'est avec les langages standards de Dia (Java, C++ ...). Ensuite, ni dans Auteur, ni dans Informatix, je ne retrouve de trace de la liaison.


Pour résumé, ces deux outils peuvent être très utiles et améliorer vos performances de développement. Attention toutefois à ne pas trop leur faire confiance, vous pourriez être surpris de certains résultats .

Par
Créateur et administrateur.

Dans la même catégorie

Le design pattern stratégie
Le design pattern chaîne de responsabilité
Le design pattern décorateur
Le design pattern Adapter
Le design pattern Visiteur
Le design pattern Singleton
L'injection de dépendances
Le polymorphisme
Le design pattern Double dispatch
Fabrique : un design pattern qui construit vos objets

Commentaire(s)