Generar diagrama de clase UML a partir del proyecto Java [cerrado]

200

¿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 de Opensource pero 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.

Carven
fuente
1
Solo para agregar algunas posibilidades más, en Eclipse, está Papyrus. Pero, por desgracia, el complemento de generación de código no funcionó para mí. Tiene demasiadas dependencias para instalar. Usé eUML2 al final.
Carven
Puede consultar UML Lab, es comercial, pero tiene ingeniería inversa muy sofisticada y personalizable (y de ida y vuelta).
Christian el
Hay una herramienta gratuita llamada JGrasp que puede ayudar.
HRJ
He estado usando este método: youtube.com/watch?v=HwBep8DmBVw El único inconveniente es: no es gratis, pero puedes tener una prueba de 30 días, que fue suficiente en mi caso. NOTA: No es mi video, lo acabo de encontrar mientras busco en Google.
dazito
@Carven, por favor, ¿qué plugin usaste? Actualmente estoy buscando generar diagramas de secuencia automáticamente en la ejecución de junit / test.
Usuario27854

Respuestas:

46

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

Heisenbug
fuente
¿La edición gratuita tiene esta característica?
Carven
si. Yo uso la edición gratuita.
Heisenbug
1
¡Gracias! ;) No lo intenté porque siempre pensé que la versión gratuita no tiene código para la generación UML.
Carven
38
Apesta. Difícil. Las instrucciones quieren que los usuarios prefijen todas las propiedades con un carácter 'f' para olfatearlas. También es destructivo y agrega un montón de sus propios comentarios a TODOS los archivos de clase. Además, las instrucciones no son intuitivas. Si alguien puede refutar mi experiencia (basada en la versión actual en Kepler), hágalo. Y, solo tres semanas de juicio. Desinstalando ahora.
ingyhere
1
No me gustó. No es compatible con la última versión de eclipse / oxígeno.
Tayfun Yaşar
109

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).

Jonatan Kaźmierczak
fuente
8
El programa es realmente bueno. Gracias por crearlo y por el enlace.
Igor Rodriguez
17
Jonatan, como un acto de cortesía uno podría / debería agregar una renuncia a la respuesta al sugerir productos, servicios, etc uno está involucrado en.
dbm
2
Esto es realmente genial. Dado nuestro proyecto muy complejo de décadas de antigüedad, gran parte del código es JDK 1.1 vintage, esto proporciona una excelente visión general de cómo están conectadas las cosas. Como complemento del código fuente y Javadoc, proporciona un gran valor a un precio increíble.
gerardw
2
¿Class Visualizer es una herramienta útil increible excepcional? SÍ LO ES. Como lo pagamos? ¡Es gratis para descargar! ¿Cómo aprendemos a usarlo? ¡Pasé 10 minutos viendo el video!
Martin Meeser
2
Tengo una clase que llama a un método de otra clase en el mismo proyecto / carpeta, pero esa otra clase no se muestra. Agregué todas las dependencias posibles, incluidas todas las jarras jdk8. ¿Me he perdido algo?
Acuario Power
2

¿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.

Swaranga Sarma
fuente
El enlace no funciona
Blip
2

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.

Jordi Cabot
fuente