Comment générer un diagramme UML à partir de classes existantes en PHP ?
Réponses
Trop de publicités?Il y a aussi php2xmi . Vous devez faire un peu de travail manuel, mais il génère toutes les classes, de sorte que tout ce que vous avez à faire est de les faire glisser dans un diagramme de classes dans Parapluie .
Autrement, la génération d'un diagramme avec l'utilisation de la réflexion et de graphviz, est assez simple. J'ai un snippet par ici que vous pouvez utiliser comme point de départ.
Voici comment je l'ai fait (directement du code au dessin PDF sans dessin manuel de quoi que ce soit) :
- Utilisez BOUML pour "l'ingénierie inverse du code PHP" [sic] pour extraire le modèle de classe (BOUML est disponible à partir du dépôt "universe" d'Ubuntu). Je recommande sérieusement BOUML pour cette étape car il est vraiment rapide par rapport à de nombreux autres programmes que j'ai essayés. En outre, il semble que BOUML semble extraire le modèle correctement (pour les parties que BOUML essaie même d'extraire).
- Utiliser BOUML pour exporter le modèle en tant que fichier XMI 1.4
- Utilisez ArgoUML pour importer ledit fichier XMI (vous pouvez utiliser la version webstart pour cette étape)
- Exporter XMI d'ArgoUML (je ne sais pas quelle version/variante de XMI la sortie est mais ce n'est pas le même résultat que la sortie de BOUML. L'argouml-graphviz ne peut pas traiter le fichier XMI directement à partir de BOUML).
- Utilisez argouml-graphviz pour convertir le fichier XMI exporté par ArgoUML en format point (vous devrez peut-être utiliser saxon au lieu de xsltproc pour le faire fonctionner en raison de l'utilisation de XSLT2)
- Utilisez point ou fdp ou sfdp pour rendre le diagramme de classes.
Voici un exemple de ligne de commande appropriée pour utiliser fdp afin de produire un diagramme PDF (en supposant que le fichier dot généré par le traitement XLST d'argouml-graphviz est enregistré sous le nom de xmi-model.dot) :
fdp -Tpdf -Gmaxiter=1000 -Gmindist=0.5 -Gpackmode=node \
-Eweight=0.05 -Elen=1.0 -Eminlen=1.0 -Gsplines=true \
-Goverlap=false xmi-model.dot -oxmi-model.pdf
Comme alternative, vous pouvez essayer PHP_UML ou php2xmi au lieu de BOUML pour faire la partie "ingénierie inverse". Je n'ai pas encore essayé.
(J'utilise l'expression "ingénierie inverse" parce qu'il semble que les personnes qui s'occupent d'UML utilisent ces mots lorsqu'elles veulent dire extraire des informations sur les classes et les méthodes de le code source . Personnellement, j'interpréterais ces mots comme l'extraction d'informations d'un fichier binaire exécutable ou de données brutes de fil capturées).
Si vous préférez dessiner le diagramme de classe à la main (au lieu d'utiliser un ordinateur pour faire tout le dessin), vous pouvez utiliser BOUML ou ArgoUML pour le dessin. L'utilisation des données de "rétro-ingénierie" via BOUML vous aidera dans ce cas.
Si vous cherchez à générer facilement de l'UML à partir de vos classes PHP existantes, vous devriez considérer l'IDE PHPStorm 3.0. Il fait un bon travail de réplication du code existant en UML. LISTE DES FONCTIONNALITÉS DE LA TEMPÊTE PHP
Vous pouvez utiliser Visual Paradigm pour UML. Ce n'est peut-être pas le produit le mieux payé (il coûte 699 dollars), mais c'est juste une option si quelqu'un veut essayer. Il peut créer des diagrammes de classes à partir de PHP et vice versa, et pas seulement en PHP, il y a un tas de langages que vous pouvez choisir comme C#, C++, Ruby, Java, VB.NET, Python, Objective C, Perl, etc. Il y a aussi une version d'essai que vous pouvez tester.
Une solution complète et expliquée étape par étape pour modéliser et l'ingénierie inverse pour PHP
http://www.proyectosphp.org.es/?q=en/node/93
http://www.proyectosphp.org.es/sites/default/files/databaseUmbrello1.jpg
- Réponses précédentes
- Plus de réponses