¿Existe una buena herramienta que pueda ayudar a realizar ingeniería inversa de clases Java a UML que muestre una visión general de cómo se relacionan mis clases entre sí? No necesita descompilarse del archivo JAR porque tengo las fuentes. Sé que hay bastantes, pero la mayoría de ellos solo pueden generar clases individuales. Espero que haya una herramienta que pueda generar un diagrama de clase que muestre una descripción general de cómo funcionan conjuntamente todas mis clases y paquetes actuales, de modo que pueda analizar mi diseño de arquitectura actual. Por supuesto, analizar es una cosa. El otro es para fines de documentación.
Sé de algunos hasta ahora. Pero no pueden hacer un diagrama de clase general. Aquí hay una lista de la herramienta UML de Java que he probado y que es capaz de realizar ingeniería inversa, pero no puedo hacer un diagrama de clase general de todo mi proyecto:
- StarUML (Muy bueno
Herramienta UML deOpensourcepero no puede generar un diagrama de clase no general) - ArgoUML (es lento y lento y sigue fallando)
- UModel (Este es un software comercial. Lo usé antes hace algún tiempo pero me resultó difícil de usar)
- MS Visio (no admite ingeniería inversa Java UML. Solo para VB)
¿Hay alguna otra recomendación para agregar a esta lista? Y con suerte, puede generar una visión general del diagrama de clases Java. Estoy usando Eclipse, por cierto.
Respuestas:
Yo uso eUML2 plugin desde Soyatec, bajo Eclipse y funciona bien para la generación de UML dando el código fuente. Esta herramienta es útil hasta Eclipse 4.4.x
fuente
Escribí Class Visualizer , que lo hace. Es una herramienta gratuita que tiene toda la funcionalidad mencionada; personalmente la uso para los mismos fines, como se describe en esta publicación. Para cada clase explorada, muestra 2 diagramas de clase generados instantáneamente: relaciones de clase y vista de clase UML. El diagrama de relaciones de clase permite atravesar toda la estructura. Tiene soporte completo para anotaciones y genéricos además de soporte especial para entidades JPA. Funciona muy bien con grandes proyectos (miles de clases).
fuente
¿Qué tal el complemento Omondo para Eclipse? Lo he usado y me parece bastante útil. Aunque si está generando diagramas para fuentes grandes, es posible que deba iniciar Eclipse con más memoria.
fuente
Yo diría que MoDisco es, con mucho, el más poderoso (aunque probablemente no sea el más fácil para trabajar).
MoDisco es un marco genérico de ingeniería inversa (para que pueda personalizar su proyecto de ingeniería inversa, con MoDisco incluso puede realizar ingeniería inversa del comportamiento de los métodos de Java, no solo la estructura y las firmas) sino que también incluye algunas características predefinidas como la generación de clase diagramas de código Java que necesita.
fuente