J'utilise habituellement
StarUML comme outil de modélisation car il convient à la plupart de mes besoins. Il n'est cependant pas possible de faire de reverse engineering depuis PHP. Mais ô miracle du web, j'ai trouvé PHP_UML, un outil PHP qui comble ce manque :
PHP_UML is a reverse-engineering tool, as well a metamodel-driven application.
Practically, with PHP_UML, you can feed a modeling design tool, like Rational Rose or Argouml, with an UML representation of existing PHP source code. This way you get an immediate overview of an application, with all the usual functions of a software design tool, like class diagrams exportation, refactoring of object-oriented applications, or automatic code generation.
PHP_UML ne dispose pas d'interface graphique mais ces quelques lignes de codes suffisent :
PHP:
<?php
$p = new PHP_UML();
$p->parseDirectory('./classes');
// génération du fichier XMI en 2.1
$p->generateXMI(1);
//sauvegarde du fichier sur le disque
$p->saveXMI('classes.xmi');
?>
Nice!
PHP_UML respecte les specs XMI 1.3 et 2.1, ce qui permet, une fois le fichier XMI importé dans votre outil préféré de disposer du meta-model.
A noter aussi qu'il est possible de manipuler PHP_UML via son API afin de l'intégrer par exemple à PhpDocumentor.
Je vous conseille de lire la page du projet.