secuencia partir generar diagramas diagrama codigo clases caracteristicas automatico java uml reverse-engineering sequence-diagram

java - partir - Diagrama de secuencia Ingeniería inversa



generar diagrama de secuencia a partir de codigo java netbeans (13)

Creo que jtracert es lo que estás buscando. Genera un diagrama de secuencia de un programa Java en ejecución. Además, como su resultado es una descripción de texto del diagrama (en los formatos de varias herramientas SD populares), puede usar grep para filtrar solo las clases que le interesan.

Estoy buscando una herramienta que realice ingeniería inversa de Java en un diagrama de secuencia PERO también ofrece la capacidad de filtrar llamadas a ciertas bibliotecas.

Por ejemplo, el Netbeans IDE hace un trabajo fantástico de esto, pero incluye todas las llamadas a String o Integer que desordenan el diagrama hasta el punto en que no se puede usar.

¡¡¡¡¡¡¡Cualquier ayuda es muy apreciada!!!!!!!


El arquitecto de empresa de Sparx afirma ser capaz de aplicar ingeniería inversa al código Java, incluidos los diagramas de secuencia de generación: consulte esta sección de la guía del usuario.

Parece que puede grabar una sesión de depuración y luego generar el diagrama de secuencia a partir de ese

No lo he intentado (aunque he usado EA como herramienta de modelado) ¡así que mmm!

Hay una descarga gratuita de evaluación de 30 días disponible


Eche un vistazo a http://www.maintainj.com

No se sabe si puede filtrar las llamadas a la biblioteca, pero tiene una interfaz gráfica y parece rastrear incluso aplicaciones muy grandes.


Acabo de comenzar a utilizar la función de grabación del diagrama de secuencia en Sparx Systems Enterprise Architect. Funciona muy bien para C #. Puede crear filtros por clase y por método. En realidad, estoy tratando de averiguar si es posible filtrar un paquete completo. Hay una casilla de verificación para excluir automáticamente los módulos externos (como .NET Framework) que ayuda en el desorden. YMMV para Java, pero creo que su soporte (y documentación) para Java es generalmente mejor (más ejemplos) que para .NET.


Tengo una herramienta que cumple con sus requisitos exactamente. Echale un vistazo

http://sourceforge.net/projects/javacalltracer/

Además de ser una herramienta de ingeniería inversa para Java, también es muy ligera. Puede controlar lo que quiere grabar desde su programa java.



Heatlamp ( http://www.jmolly.com/heatlamp/ ) fue diseñado para exactamente este propósito.

Genera diagramas interactivos (e imprimibles) de ejecutar código Java. Puede especificar filtros para describir qué clases, paquetes y métodos rastrear. También puede buscar, filtrar y contraer invocaciones después de que se represente el diagrama para reducir aún más el diagrama de secuencia.

Descargo de responsabilidad: soy el autor de Heatlamp.


MaintainJ es realmente una herramienta maravillosa. Recientemente comencé a utilizar MaintainJ con mi aplicación, lo que le brinda más comodidad con todo mi uso para comprender mi sistema basado en la secuencia de mantenimiento y diagramas UML.

Estoy seguro de que la pregunta anterior: "Mantener" le dará una mejor idea. Gracias, Krishna MM


Creo que la herramienta perfecta para resolver su problema es Diver: Dynamic Interactive Views For Reverse Engineering. Proporciona diagramas de secuencia tanto estáticos como dinámicos y busca resolver todos sus requisitos a partir de su pregunta.

Es un complemento para Eclipse y te permite:

  • Rastrear fácilmente sus programas Java
  • Visualice la funcionalidad de tiempo de ejecución de su programa
  • Filtra tus rastros para hacerlos más compactos
  • Filtra tu IDE según lo que ocurre en el tiempo de ejecución
  • Vea qué código se ejecutó en sus editores de código fuente

Está en Github y también hay un sitio web del proyecto

Divulgación completa: soy el líder actual del proyecto para Diver


Intente mantenerJ . MaintainJ genera diagramas de secuencia en tiempo de ejecución para un caso de uso. Proporciona múltiples formas de filtrar las llamadas no deseadas . Sí, filtrar las llamadas no deseadas es la característica más importante que se necesita en las herramientas de generación de diagrama de secuencia. Además, MaintainJ proporciona una interfaz ordenada para explorar el diagrama y buscar llamadas en un caso de uso o en casos de uso.

Consulte el video de demostración para obtener una descripción general rápida.

Yo soy el autor de MaintainJ, por cierto.


Aquí hay un complemento a la respuesta de Asgeir. Aquí está el enlace que encontré.

http://www.zanthan.com/ajm/sequencev7/sequence.jar

Ejecutar desde la línea de comandos ... "java -jar sequence.jar" ... esta es una aplicación Java con una GUI.

La sección de ayuda dice: SECUENCIA es un programa para producir diagramas de secuencia UML. A diferencia de la mayoría de los programas similares, en realidad no dibuja el diagrama. En su lugar, escribe una descripción textual de las llamadas de método que desea al diagrama y el diseño se calcula y dibuja automáticamente.

Entonces, esta herramienta no hace ingeniería inversa alguna, pero puedo ver cómo podría ser útil si quisieras diagramar rápidamente las cosas desde cero. Parece que fue construido en 2002 y creo que probablemente haya herramientas mejores ahora.

Aquí hay otra herramienta similar aquí: http://sdedit.sourceforge.net/example/index.html


Esto parece una herramienta muy buena: http://www.architexa.com/learn-more/sequence-diagrams

Pero parece que solo es gratis durante un año, luego es $ 250 por año. Gorrón.

Encontré el plugin ModelGoon útil. Es un poco limitado porque eliges un único método como punto de partida para el diagrama de secuencia y solo muestra las llamadas que hace el método (así que para profundizar más necesitas generar otro diagrama).

http://www.modelgoon.org/?page_id=53


JIVE (www.cse.buffalo.edu/jive) construirá un diagrama de secuencia a partir de la ejecución de un programa Java. Tiene una función de filtro de exclusión que le permitirá excluir objetos que pertenecen a clases o paquetes designados. JIVE puede dibujar diagramas de secuencia para la ejecución de programas Java multiproceso. También tiene la capacidad de diagramas grandes compactos tanto en la dimensión horizontal como vertical, bajo la guía del usuario.