Il peut être très interessant de pouvoir obtenir des diagrammes UML d'une application existante, cela premet entre autre de pouvoir livrer des diagrammes de classes dans les documentations remises aux clients lors de la livraison du code source.

Le projet PHP_UML de Baptiste Autin permet d'arriver à nos fins très facilement.

Après plusieurs tests, nous avons immédiatement décidé de l'intégrer à Nano-Framework en tant que plugin.

Ainsi, avec une simple commande, on génère le fichier XMI permettant la visualisation et l'édition graphique des modèles de classes de nos applications :

jean-philippe@jean-philippe-laptop:~/www/www.nano-reloaded.loc$ nanophp build-xmi classes.xmi libraries/
 
nanophp in /home/jean-philippe/www/www.nano-reloaded.loc
+ Launching the task buildXmi
scaning /home/jean-philippe/www/www.nano-reloaded.loc/libraries/ 
scaning /home/jean-philippe/www/www.nano-reloaded.loc/libraries/System/ 
scaning /home/jean-philippe/www/www.nano-reloaded.loc/libraries/Database/ 
scaning /home/jean-philippe/www/www.nano-reloaded.loc/libraries/Database/Generator/ 
scaning /home/jean-philippe/www/www.nano-reloaded.loc/libraries/Database/Generator/StoredQuery/ 
scaning /home/jean-philippe/www/www.nano-reloaded.loc/libraries/Database/StoredQuery/ 
scaning /home/jean-philippe/www/www.nano-reloaded.loc/libraries/Helpers/ 
scaning /home/jean-philippe/www/www.nano-reloaded.loc/libraries/Utilities/ 
scaning /home/jean-philippe/www/www.nano-reloaded.loc/libraries/Kernel/ 
scaning /home/jean-philippe/www/www.nano-reloaded.loc/libraries/Kernel/Event/ 
/home/jean-philippe/www/www.nano-reloaded.loc/configuration/../plugins/PHP_UML-0.4.2/generated/classes.xmi generated

Ensuite on l'édite dans Umbrello :

jean-philippe@jean-philippe-laptop:~/www/www.nano-reloaded.loc$ umbrello classes.xmi

On s'aperçoit que la génération du XMI s'est très bien passée, les namespaces présents dans Nano-Framework sont bien représentés. La grande classe :

Capture-test.xmi__modified__-_Umbrello_UML_Modeller.png