webentwicklung-frage-antwort-db.com.de

Sequenzdiagramm Reverse Engineering

Ich bin auf der Suche nach einem Tool, das Java in ein Sequenzdiagramm umwandelt. Es bietet jedoch auch die Möglichkeit, Aufrufe bestimmter Bibliotheken herauszufiltern.

Zum Beispiel erledigen die Netbeans IDE einen fantastischen Job, aber sie enthalten alle Aufrufe von String oder Integer, die das Diagramm so überladen, dass es unbrauchbar wird.

Jede Hilfe wird sehr geschätzt !!!!!!!

27

Ich denke, jtracert ist das, wonach Sie suchen. Es generiert ein Sequenzdiagramm aus einem laufenden Java-Programm. Da es sich bei der Ausgabe um eine Textbeschreibung des Diagramms handelt (in den Formaten mehrerer gängiger SD-Tools), können Sie grep verwenden, um nur nach den Klassen zu filtern, die Sie interessieren.

9
Steve Hanov

Ich glaube, das perfekte Werkzeug, um Ihr Problem zu lösen, ist Diver: Dynamic Interactive Views For Reverse Engineering. Es bietet sowohl statische als auch dynamische Sequenzdiagramme und versucht, alle Ihre Anforderungen aus Ihrer Frage heraus zu lösen.

Es ist ein Plugin für Eclipse und ermöglicht Ihnen:

  • Verfolgen Sie ganz einfach Ihre Java-Programme
  • Visualisieren Sie die Laufzeitfunktionalität Ihres Programms
  • Filtern Sie Ihre Spuren, um sie kompakter zu machen
  • Filtern Sie Ihr IDE basierend auf dem, was zur Laufzeit auftritt
  • Sehen Sie, welcher Code in Ihren Quellcode-Editoren ausgeführt wurde

Es ist auf Github und es gibt auch eine Projektwebsite

Vollständige Offenlegung: Ich bin der aktuelle Projektleiter für Diver

10
Sean

Versuchen Sie, MaintainJ . MaintainJ generiert zur Laufzeit Sequenzdiagramme für einen Anwendungsfall. Es bietet mehrere Möglichkeiten, um unerwünschte Anrufe herauszufiltern . Ja, das Herausfiltern unerwünschter Anrufe ist die wichtigste Funktion, die in Werkzeugen zur Erstellung von Sequenzdiagrammen benötigt wird. Außerdem bietet MaintainJ eine übersichtliche Oberfläche, um das Diagramm zu durchsuchen und nach Aufrufen in einem Anwendungsfall oder in mehreren Anwendungsfällen zu suchen.

Schauen Sie sich das Demo-Video an , um sich einen schnellen Überblick zu verschaffen.

Ich bin übrigens der Autor von MaintainJ.

9

JTracert wird jetzt eingestellt. An Ort und Stelle empfehlen sie http://www.jsonde.com/

5
RAbraham

Ich habe ein Werkzeug, das genau Ihren Anforderungen entspricht. Hör zu

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

Es ist nicht nur ein Reverse Engineering-Tool für Java, sondern auch sehr leicht. Sie können über Ihr Java-Programm steuern, was Sie aufzeichnen möchten.

3
Ali Naqvi

Heatlamp ( http://www.jmolly.com/heatlamp/ ) wurde genau für diesen Zweck entwickelt.

Es generiert interaktive (und druckbare) Diagramme aus Java-Code. Sie können Filter angeben, um zu beschreiben, welche Klassen, Pakete und Methoden verfolgt werden sollen. Sie können auch nach dem Rendern des Diagramms Aufrufe suchen, filtern und reduzieren, um das Sequenzdiagramm weiter zu verkleinern.

Haftungsausschluss: Ich bin der Autor von Heatlamp.

1
aaron

Enterprise Architect von Sparx gibt an, Java-Code einschließlich der Generierung von Sequenzdiagrammen rückentwickeln zu können - siehe diesen Abschnitt des Benutzerhandbuchs

Es sieht so aus, als ob es eine Debugsitzung aufzeichnen kann, und dann generieren Sie daraus das Sequenzdiagramm

Ich habe es nicht ausprobiert (obwohl ich EA als Modellierungswerkzeug verwendet habe), also ymmv!

Es ist ein kostenloser 30-Tage-Test-Download verfügbar

1
Richard

Werfen Sie einen Blick auf http://www.maintainj.com

Es weiß nicht, ob es Bibliotheksaufrufe filtern kann, hat aber ein vernünftiges grafisches Frontend und scheint sogar sehr große Anwendungen zu verfolgen.

1
ralf

MaintainJ ist wirklich ein wundervolles Tool. Vor kurzem habe ich damit begonnen, MaintainJ mit meiner Anwendung zu verwenden. Es gibt mir mehr Komfort bei meiner gesamten Nutzung, um mein System auf der Basis von MaintainJ-Sequenz- und UML-Diagrammen zu verstehen.

Ich bin sicher, dass MaintainJ für die obige Frage eine bessere Vorstellung geben wird. Danke, Krishna MM

1
Krishna MM

Hier ist eine Ergänzung zu Asgeirs Antwort. Hier ist der Link, den ich gefunden habe.

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

Führen Sie von der Kommandozeile aus ... "Java -jar sequence.jar" ... dies ist eine Java-Anwendung mit einer GUI.

Im Hilfeabschnitt heißt es: SEQUENCE ist ein Programm zur Erstellung von UML-Sequenzdiagrammen. Im Gegensatz zu den meisten ähnlichen Programmen zeichnen Sie das Diagramm nicht. Stattdessen schreiben Sie eine Textbeschreibung der Methodenaufrufe, die Sie grafisch darstellen möchten, und das Layout wird automatisch berechnet und gezeichnet.

Dieses Tool führt also keine Rückentwicklungen durch, aber ich kann sehen, wie hilfreich es sein kann, wenn Sie schnell Diagramme von Grund auf neu erstellen möchten. Sieht aus wie es im Jahr 2002 gebaut wurde und ich denke, es gibt wahrscheinlich bessere Tools da draußen.

Hier ist ein weiteres ähnliches Tool: http://sdedit.sourceforge.net/example/index.html

0
matt1616

JIVE (www.cse.buffalo.edu/jive) erstellt ein Sequenzdiagramm aus der Ausführung eines Java-Programms. Mit der Ausschlussfilterfunktion können Sie Objekte ausschließen, die bestimmten Klassen oder Paketen angehören. JIVE kann Sequenzdiagramme für die Ausführung von Java-Programmen mit mehreren Threads zeichnen. Es bietet auch die Möglichkeit, große Diagramme unter Benutzerführung sowohl in horizontaler als auch in vertikaler Richtung zu kompaktieren.

0

Das sieht nach einem wirklich netten Tool aus: http://www.architexa.com/learn-more/sequence-diagrams

Aber es sieht so aus, als wäre es nur ein Jahr lang kostenlos, dann sind es 250 Dollar pro Jahr. Mist.


Ich fand das ModelGoon-Plugin hilfreich. Es ist etwas eingeschränkt, da Sie eine einzelne Methode als Ausgangspunkt für das Sequenzdiagramm auswählen und nur die Aufrufe dieser Methode anzeigen (um eine Ebene tiefer zu gehen, müssen Sie ein anderes Diagramm generieren).

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

0
matt1616

Ich habe gerade damit begonnen, die Funktion zur Aufzeichnung von Sequenzdiagrammen in Sparx Systems Enterprise Architect zu verwenden. Es funktioniert sehr gut für C #. Sie können Filter nach Klasse und Methode erstellen. Ich versuche tatsächlich herauszufinden, ob es möglich ist, ein gesamtes Paket herauszufiltern. Es gibt ein Kontrollkästchen zum automatischen Ausschließen von externen Modulen (z. B. .NET Framework), das das Dekodieren unterstützt. YMMV für Java, aber ich denke, ihre Unterstützung (und Dokumentation) für Java ist im Allgemeinen besser (mehr Beispiele) als für .NET.

0
Michael Waddell