Pregunta

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

Por ejemplo, Netbeans IDE hace un trabajo fantástico en esto, pero incluye todas las llamadas a String o Integer que saturan el diagrama hasta el punto de que es inutilizable.

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

¿Fue útil?

Solución

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

Otros consejos

Creo que la herramienta perfecta para resolver tu problema es Diver:Vistas interactivas dinámicas para ingeniería inversa.Proporciona diagramas de secuencia estáticos y dinámicos y busca resolver todos los requisitos de su pregunta.

Es un complemento para Eclipse y te permite:

  • Rastree fácilmente sus 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

Esta encendido GitHub y también hay un sitio web del proyecto

La divulgación completa:Soy el actual líder del proyecto para Diver.

Intentar MantenerJ.KeepJ 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 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, MaintenanceJ proporciona una interfaz ordenada para explorar el diagrama y buscar llamadas en un caso de uso o entre casos de uso.

Comprobar el vídeo de demostración para obtener una descripción general rápida.

Por cierto, soy el autor de KeepJ.

JTracert ya no está disponible.En su lugar, recomiendan http://www.jsonde.com/

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.

Arquitecto empresarial de Sparx afirma poder realizar ingeniería inversa en el código Java, incluida la generación de diagramas de secuencia; consulte esta sección del guía del usuario

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

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

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

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

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

Lámpara de calor (http://www.jmolly.com/heatlamp/) fue diseñado exactamente para este propósito.

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

Descargo de responsabilidad:Soy el autor de Heatlamp.

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

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

Acabo de empezar a utilizar la función de grabación de diagramas de secuencia en Sparx Systems Enterprise Architect.Funciona muy bien para C#.Puedes crear filtros por clase y por método.De hecho, estoy intentando 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.

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 comando..."java -jar secuencia.jar" ...Esta es una aplicación Java con una GUI.

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

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

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

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

Pero parece que sólo es gratis durante un año, luego cuesta $250 al año.Gorrón.


El complemento ModelGoon me resultó ú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 realiza ese método (por lo que, para ir un nivel más profundo, 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 capacidad 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 compactar diagramas grandes tanto en dimensión horizontal como vertical, bajo la guía del usuario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top