Herramientas gráficas para el análisis de librerías

Intentando entender la estructura y funcionamiento de las librerías que quiero usar en el proyecto, me dí cuenta de lo difícil que resultaba hacerse una idea de los principios generales a través del Javadoc, que es en la mayoría de los casos la única documentación de que se dispone (al menos en Java resulta fácil de generar automáticamente😉 ).

Los ejempos son de mucha ayuda cuando sólo se pretende utilizar la librería. Pero cuando se busca mejorarla o ampliarla de algún modo, hace falta una comprensión más profunda de su estructura y funcionamiento interno, y entonces se ve uno obligado a ir clase por clase y analizar cientos de líneas de código sólo para hacerse una idea.  Por eso se me ocurrió que tal vez estaría bien buscar alguna aplicación capaz de hacer alguna representación gráfica de una librería a partir de su código fuente. Y alguna cosa encontré.

Mi primer intento fue una aplicación independiente llamada Umbrello, un modelador UML que tenía soporte básico para ingeniería inversa (que es como suelen denominar a esta característica de crear diagramas desde el código). Umbrello sí dispone de esta capacidad, pero al parecer obliga a ir añadiendo los ficheros de clase uno a uno, algo inviable para hacer en toda una librería.

Lo siguiente fue pensar en algo que estuviera integrado con el entorno de desarrollo que estoy usando (Eclipse), que se caracteriza por ser muy extensible a base de plugins, de manera que sólo hacía falta encontrar el plugin adecuado.

Encontré algunas:

  • SDE for Eclipse: producto profesional para trabajo con UML. Dispone de una versión para Comunidad (Community Edition) gratuita; desafortunadamente, esta versión no soporta ingeniería inversa.
  • EclipseUML: Plugin para trabajo en UML de la empresa Omondo. La edición gratuita tiene algunas limitaciones serias, principalmente que sólo permite trabajar a un desarrollador (al parecer, no permite siquiera trabajar con algún proyecto que tenga definida la propiedad de trabajo en grupo, por lo que posiblemente no funcionará si defino acceso al repositorio SVN), y además no soporta ingeniería inversa “avanzada” (no muestra las composiciones y agregaciones).

En una búsqueda rápida eso es todo lo que he encontrado… Parece que tendré que analizar las librerías a la vieja usanza. Claro está, si alguien sabe de alguna herramienta que se pueda usar, se agradecería que lo indicara en un comentario…

No comments yet

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: