¿Cuál es la mejor manera de generar un diagrama UML a partir del código fuente de Python? [cerrado]
Un colega busca generar diagramas de clases UML a partir de un montón de código fuente de Python. Está principalmente interesado en las relaciones de herencia y levemente interesado en las relaciones de composición, y no le importan mucho los atributos de clase que son solo primitivos de Python.
El código fuente es bastante sencillo y no tremendamente malvado; por ejemplo, no hace ninguna magia de metaclase sofisticada. (Es principalmente de los días de Python 1.5.2, con algunas pizcas de material 2.3ish "moderno").
¿Cuál es la mejor solución existente para recomendar?
Es posible que haya oído hablar de Pylint , que ayuda a verificar estáticamente el código Python. Pocas personas saben que viene con una herramienta llamada Pyreverse que dibuja diagramas UML a partir del código Python que lee. Pyreverse utiliza Graphviz como backend.
Se usa así:
pyreverse -o png -p yourpackage .
donde .
también puede ser un solo archivo.
Epydoc es una herramienta para generar documentación API a partir del código fuente de Python. También genera diagramas de clases UML, utilizando Graphviz de formas sofisticadas. A continuación se muestra un ejemplo de diagrama generado a partir del código fuente del propio Epydoc.
Debido a que Epydoc realiza tanto introspección de objetos como análisis de fuentes, puede recopilar más información con respecto a los analizadores de código estático como Doxygen: puede inspeccionar una buena cantidad de clases y funciones generadas dinámicamente, pero también puede usar comentarios o cadenas no asignadas como fuente de documentación, por ejemplo. para variables y atributos públicos de clase.