Diagramma di sequenza Reverse Engineering

Sto cercando uno strumento che eseguirà il reverse engineering di Java in un diagramma di sequenza, ma offre anche la possibilità di filtrare le chiamate verso determinate librerie.

Ad esempio, l’IDE di Netbeans svolge un lavoro fantastico, ma include tutte le chiamate a String o Integer che ingombrano il diagramma fino al punto che è inutilizzabile.

Qualsiasi aiuto è molto apprezzato!!!!!!!

Penso che jtracert sia quello che stai cercando. Genera un diagramma di sequenza da un programma Java in esecuzione. Inoltre, poiché il suo output è una descrizione testuale del diagramma (nei formati di diversi strumenti SD diffusi), puoi utilizzare grep per filtrare solo le classi a cui sei interessato.

Credo che lo strumento perfetto per risolvere il tuo problema sia Diver: Dynamic Interactive Views For Reverse Engineering. Fornisce diagrammi di sequenza sia statici che dinamici e cerca di risolvere tutte le tue esigenze dalla tua domanda.

È un plugin per Eclipse e ti consente di:

  • Traccia facilmente i tuoi programmi Java
  • Visualizza la funzionalità di runtime del tuo programma
  • Filtra le tue tracce per renderle più compatte
  • Filtra il tuo IDE in base a ciò che accade al runtime
  • Guarda quale codice è stato eseguito nei tuoi editor di codice sorgente

È su Github e c’è anche un sito web del progetto

Full Disclosure: sono l’attuale lead del progetto per Diver

Prova MaintainJ . MaintainJ genera diagrammi di sequenza in fase di esecuzione per un caso d’uso. Fornisce diversi modi per filtrare le chiamate indesiderate . Sì, filtrare le chiamate indesiderate è la caratteristica più importante necessaria negli strumenti per generare diagrammi di sequenza. Inoltre, MaintainJ offre un’interfaccia chiara per esplorare il diagramma e cercare chiamate in un caso d’uso o in casi d’uso.

Controlla il video dimostrativo per avere una rapida panoramica.

A proposito, sono l’autore di MaintainJ.

JTracert è ora fuori produzione. Sul posto, raccomandano http://www.jsonde.com/

Ho uno strumento che soddisfa esattamente le tue esigenze. Controlla

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

Oltre ad essere uno strumento di reverse engineering per java, è anche molto leggero. Puoi controllare ciò che vuoi registrare dal tuo programma java.

L’Enterprise Architect di Sparx afferma di essere in grado di decodificare il codice java includendo la generazione di diagrammi di sequenza – vedere questa sezione della guida dell’utente

Sembra che possa registrare una sessione di debug e quindi generare il diagramma di sequenza da quello

Non l’ho provato (anche se ho usato EA come strumento di modellazione) quindi ymmv!

È disponibile un download gratuito di valutazione di 30 giorni

Dai un’occhiata a http://www.maintainj.com

Non sa, se può filtrare le chiamate alle librerie, ma ha un front-end grafico ragionevole e sembra tracciare anche applicazioni molto grandi.

Heatlamp ( http://www.jmolly.com/heatlamp/ ) è stato progettato proprio per questo scopo.

Genera diagrammi interattivi (e stampabili) dall’esecuzione del codice Java. È ansible specificare i filtri per descrivere quali classi, pacchetti e metodi tracciare. È inoltre ansible cercare, filtrare e comprimere le chiamate dopo aver eseguito il rendering del diagramma per ridurre ulteriormente il diagramma di sequenza.

Disclaimer: sono l’autore di Heatlamp.

MaintainJ è uno strumento davvero meraviglioso, Recentemente ho iniziato a utilizzare MaintainJ con la mia applicazione, dando più conforto con il mio intero utilizzo per capire il mio sistema basato sulla sequenza Maintainj e sui diagrammi UML.

Sono sicuro che per la domanda precedente MaintainJ darà un’idea migliore. Grazie, Krishna MM

Ho appena iniziato a utilizzare la funzione di registrazione del diagramma di sequenza in Sparx Systems Enterprise Architect. Funziona molto bene per C #. Puoi creare filtri per class e per metodo. In realtà sto cercando di scoprire se è ansible filtrare un intero pacchetto. C’è una casella per escludere automaticamente i moduli esterni (come il .NET Framework) che aiuta a declutter. YMMV per Java, ma penso che il loro supporto (e documentazione) per Java sia generalmente migliore (più esempi) che per .NET.

Ecco e aggiungi alla risposta di Asgeir. Ecco il link che ho trovato.

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

Esegui dalla riga di comando … “java -jar sequence.jar” … questa è un’applicazione Java con una GUI.

La sezione della guida dice: SEQUENCE è un programma per la produzione di diagrammi di sequenza UML. In contrasto con la maggior parte dei programmi simili, in realtà non si disegna il diagramma. Invece si scrive una descrizione testuale del metodo chiamate che si desidera diagramma e il layout viene calcolato e disegnato automaticamente.

Quindi questo strumento non esegue il reverse engineering di nulla, ma posso vedere come potrebbe essere utile se si desidera diagrammare rapidamente le cose da zero. Sembra che sia stato costruito nel 2002 e penso che ora ci siano probabilmente strumenti migliori.

Ecco un altro strumento simile qui: http://sdedit.sourceforge.net/example/index.html

Questo sembra uno strumento davvero carino: http://www.architexa.com/learn-more/sequence-diagrams

Ma sembra che sia gratuito solo per un anno, quindi i suoi $ 250 all’anno. Bummer.


Ho trovato il plugin ModelGoon utile. È un po ‘limitato perché scegli un singolo metodo come punto di partenza per il diagramma di sequenza, e mostra solo le chiamate che il metodo fa (quindi per andare ad un livello più profondo devi generare un altro diagramma).

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

JIVE (www.cse.buffalo.edu/jive) costruirà un diagramma di sequenza dall’esecuzione di un programma Java. Ha una capacità di filtro di esclusione che ti consentirà di escludere oggetti appartenenti a classi o pacchetti designati. JIVE può disegnare diagrammi di sequenza per l’esecuzione di programmi Java multi-thread. Ha anche la capacità di compattare diagrammi di grandi dimensioni sia in orizzontale che in verticale, sotto la guida dell’utente.