martes, junio 14, 2005

Probando generación de UML desde python


De las herramientas que he mencionado anteriormente, he estado probando pyUMLGraph y pyReverse.

pyUMLGraph
Usa Graphviz para generar los gráficos.
Con los ejemplo moñas funciona bien, pero ya con código mio (usando python 2.3) me dio un par de problemas con un par de tipos (uno de ellos el Set). Tras amañar el código, la hice funcionar.
Lo mas particular es como funciona, ya que no parsea el código y genera los modelos, sino que lo ejecuta y lo genera para el código ejecutado.
Si lo que queremos es documentar una aplicación este compartamiento no es valido, ya que puede quedar código sin ejecutar.
Podria ser mas una herramienta (un poco rara) de ayuda a la depuracion. O también podria servir para genrar documentación de una ejecución partitular.
Otro problema de esta forma de funcionar es que cuando nuestro código se va a ejecutar en un framework, no va a ser posible su prueba.


pyReverse

Se pueden generar archivos para VCG (existe también xvcg) o bien para argoUML.
Ha diferencia de pyReverse, esta no la tengo probada del todo, pero casi.
Al igual que con pyUMLGraph, la probé con python 2.3.
Requiere para su uso la instalacion de pyXML y Logilab´s common library.
Si queremos generar los ficheros para argoUML debemos ejecutar pyArgo en caso de querer generarlos para VCG debemos ejecutar pyVcg.
En la prueba realizada, me posicioné en un directorio por encima del paquete a documentar y use la opcion -p . Me dio un fallo que solucioné metiendo en el paquete el fichero __init__.py. Tiene unas cuantas opciones que no he explorado...

  • Generación para argoUML: no tiene mucha utilidad. Además de que no he logrado ver diagramas de clases (supongo que tengo que jugar con los ficheros de configuración ademas de aprender algo mas sobre argoUML). Lo que quedaria por saber es si se pueden exportar diagramas de clases desde argoUML. Si es así se podría considerar. Una nota final sobre argoUML, no generar código python.
  • Generación para VCG: Tengo pendiente ver los diagramas, ya que no me pude bajar la aplicación por no tener acceso a ftp. Lo que si ya he visto es que solo exporta a bmp.
Y hasta aqui lo que he visto.

Realmente ninguna de estas herramientas son comparables a doxygen. Quizás la mejor alternativa sería probar el pythfilter para doxygen. Lo que hace es pasar el código python a C++ para luego poder usar doxygen con este código C++.

Ya para acabar el post. Unas herramientas de documentación:

No hay comentarios: