Diagrama de Secuencia Ingeniería Inversa


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

Por ejemplo, el IDE Netbeans 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 es inutilizable.

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

Author: Sean, 2008-09-18

13 answers

Creo que jtracert es lo que estás buscando. Genera un diagrama de secuencia a partir de un programa Java en ejecución. Además, debido a que su salida 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.

 9
Author: Steve Hanov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 01:14:53

Creo que la herramienta perfecta para resolver su problema es Diver: Vistas Interactivas Dinámicas Para Ingeniería Inversa. Proporciona diagramas de secuencia estáticos y dinámicos y busca resolver todos sus requisitos a partir de su pregunta.

Es un plugin para Eclipse y te permite:

  • Rastrea fácilmente tus programas Java
  • Visualice la funcionalidad de tiempo de ejecución de su programa
  • Filtra tus trazas para hacerlas más compactas
  • Filtra tu IDE según lo que ocurre en 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 del proyecto actual para Diver

 10
Author: Sean,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-24 23:45:37

Intenta MaintainJ. MaintainJ genera diagramas de secuencia en tiempo de ejecución para un caso de uso. Proporciona múltiples formas de filtrar 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 diagramas de secuencia. Además, MaintainJ proporciona una interfaz ordenada para explorar el diagrama y buscar llamadas en un caso de uso o entre casos de uso.

Revise el video de demostración para obtener una visión general rápida.

Soy el autor de MaintainJ, por cierto.

 9
Author: Choudary Kothapalli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-27 03:54:08

JTracert está ahora descontinuado. En su lugar, recomiendan http://www.jsonde.com/

 5
Author: RAbraham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-27 13:42:04

Tengo una herramienta que cumple exactamente con sus requisitos. Échale 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 desea grabar desde su programa Java.

 3
Author: Ali Naqvi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-19 19:43:13

Enterprise architect from Sparx claims to be able to reverse engineer code java including generating sequence diagrams-see this section of the user guide

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

No lo he probado (aunque he utilizado EA como una herramienta de modelado) por lo que ymmv!

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

 1
Author: Richard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-23 09:59:06

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

No sabe si puede filtrar llamadas a bibliotecas, pero tiene una interfaz gráfica razonable y parece rastrear incluso aplicaciones muy grandes.

 1
Author: ralf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-03-17 21:30:27

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

Genera diagramas interactivos (e imprimibles) a partir 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 renderizar el diagrama para reducir aún más el diagrama de secuencia.

Descargo de responsabilidad: Soy el autor de Heatlamp.

 1
Author: aaron,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-13 17:47:23

MaintainJ es una herramienta realmente maravillosa, Recientemente comencé a usar MaintainJ con mi aplicación que está dando más comodidad con todo mi uso para comprender mi sistema basado en la secuencia de Maintainj y diagramas UML.

Estoy seguro de que para la pregunta anterior MaintainJ is dará una mejor idea. Gracias, Krishna MM

 1
Author: Krishna MM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-14 14:44:39

Acabo de empezar a usar la función de grabación de diagramas 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 módulos externos (como.NET Framework) que ayuda a ordenar. YMMV para Java, pero creo que su soporte (y documentación) para Java es generalmente mejor (más ejemplos) que para . NET.

 0
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-01-07 13:32:47

Aquí está y add-on a la respuesta de Asgeir. Aquí está el enlace que encontré.

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

Ejecute desde la línea de comandos ... "java-jar sequence.frasco" ... esta es una aplicación Java con una interfaz gráfica de usuario.

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

Así que esta herramienta no hace ingeniería inversa de nada, pero puedo ver cómo podría ser útil si desea diagramar rápidamente las cosas desde cero. Parece que fue construido en 2002 y creo que probablemente hay mejores herramientas por ahí ahora.

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

 0
Author: matt1616,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-11 16:46:52

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

Pero parece que solo es gratis por un año, entonces sus 2 250 al año. Qué pena.


Encontré que el plugin ModelGoon es útil. Es un poco limitado porque elige un único método como punto de partida para el diagrama de secuencia, y solo muestra las llamadas que realiza ese método (por lo que para ir un nivel más profundo necesita generar otro diagrama.)

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

 0
Author: matt1616,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-11 16:51:14

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

 0
Author: Bharat Jayaraman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-30 21:37:38