¿Cómo genero un diagrama UML basado en clases existentes en PHP?
¿Cómo genero un diagrama UML basado en clases existentes en PHP?
Respuestas:
También existe la herramienta PHP UML disponible en pear .
PHP_UML:
Instálelo en la línea de comando a través de:
$ pear install pear/php_uml
(Esto solía ser, $ pear install pear/php_uml-alpha
pero el paquete se ha estabilizado desde entonces).
Genera tu xmi:
$ phpuml -o project.xmi
pear install PHP_UML-1.6.1
(ver pear.php.net/package/PHP_UML/download/All o pear.php.net/package/PHP_UML )
Recomiendo encarecidamente BOUML que:
phUML es un generador de diagramas de clases UML totalmente automático escrito en PHP, con licencia BSD. Es capaz de analizar cualquier código fuente orientado a objetos PHP5 y crear una representación de imagen apropiada de la estructura oo basada en la especificación UML.
./phuml -r /var/www/my_project -graphviz -createAssociations false -neato out.png
el mejor software (Windows) que he encontrado para hacer PHP y UML es Sparx Systems Enterprise Architect . además de una gran variedad de características , admite las siguientes para PHP:
no es gratis ($ 199), pero definitivamente vale la pena el dinero.
También hay php2xmi . Tienes que hacer un poco de trabajo manual, pero genera todas las clases, así que todo lo que tienes que hacer es arrastrarlas a un diagrama de clases en Umbrello .
De lo contrario, generar un diagrama con el uso de reflexión y graphviz es bastante simple. Aquí tengo un fragmento que puede usar como punto de partida.
Así es como lo hice (directamente del código al dibujo en PDF sin dibujo manual de nada):
Aquí hay un ejemplo de línea de comando adecuada para usar fdp para generar un diagrama PDF (asumiendo que el archivo de puntos generado por el procesamiento de argouml-graphviz XLST se guarda como 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
Como alternativa, puede probar PHP_UML o php2xmi en lugar de BOUML para hacer la parte de "ingeniería inversa". Aún no lo he probado.
(Estoy usando la frase "ingeniería inversa" porque parece que la gente de UML está usando esas palabras cuando se refieren a extraer información de clase y método del código fuente . Yo personalmente interpretaría esas palabras como extraer información de un archivo binario ejecutable o capturado sin procesar cable de datos.)
Si prefiere dibujar el diagrama de clases a mano (en lugar de usar una computadora para hacer todo el dibujo), puede usar BOUML o ArgoUML para el dibujo. El uso de datos de "ingeniería inversa" a través de BOUML ayudará en ese caso.
Si está buscando generar UML fácilmente a partir de sus clases PHP existentes, es posible que desee considerar PHPStorm 3.0 IDE. Hace un buen trabajo al replicar código existente en UML.
Eche un vistazo a la lista de funciones de PHP Storm .
Puede utilizar Visual Paradigm para UML. Puede que este no sea el producto mejor pagado (cuesta 699 dólares), solo como una opción si alguien quisiera probar. Puede crear un diagrama de clases desde PHP y viceversa, y no solo PHP, hay un montón de lenguajes que puede elegir, como C #, C ++, Ruby, Java, VB.NET, Python, Objective C, Perl, etc. También hay un prueba que puede comprobar.
En teoría, puede usar PhpStorm para visualizar sus clases usando UML. La generación no es realmente buena, pero puede refactorizar cosas de manera efectiva y, nuevamente, al menos obtener una vista previa de los padres, implementaciones, constantes, atributos, métodos y su visibilidad de una manera agradable.
Situación
Quiero visualizar una comunicación entre componentes ya existentes a un colega.
Procesar usando PHPStorm
https://blog.jetbrains.com/phpstorm/2017/09/uml-diagrams-in-phpstorm-2017-2/
Ventajas
Desventajas
Resultado
De todos modos, después de una dolorosa hora de trabajo, solo pude generar cajas no relacionadas y tuve que usar un programa adicional para vincular relaciones. Muy mal. Pero creo que una vez que lo hagan funcionar correctamente, será una gran característica porque a medida que cambie el código, los diagramas se actualizarán automáticamente.
Por ahora, no use PhpStorm para diagramas UML.
Bueno, para ser honesto, en primer lugar, no debería generar el modelo UML a partir del código, sino el código del modelo UML;).
Incluso si se encuentra en una situación poco común, cuando necesite hacer esta ingeniería inversa, generalmente se sugiere que lo haga a mano o al menos arregle los diagramas, ya que el UML generado automáticamente tiene una imagen visual realmente pobre (= información) valor la mayor parte del tiempo.
Si solo necesita generar los diagramas, probablemente sea bueno preguntarse por qué exactamente. ¿Quién es el público objetivo y cuál es el objetivo? ¿Qué ofrece el diagrama autogenerado, qué código no?
Básicamente acepto una sola respuesta a esa pregunta. Simplemente se volvió demasiado grande e incomprensible.
Lo cual nuevamente es una razón para comenzar con UML en primer lugar, en lugar de comenzar a codificar;) Se llama análisis y está en declive, porque cada segundo hombre en los negocios piensa que es demasiado caro y no realmente necesario.