HI Alles, was ich am Ende der Freigabe meines Projekts bin. So, um weiter zu arbeiten, bat uns unser Manager, Diagramme für den Code, den wir geschrieben hatten, zu generieren. Sein mittleres Projekt mit 3500 Java-Dateien .So Ich denke, wir müssen Klassendiagramme erstellen. Zuerst muss ich wissen, wie Reverse Engineering hier funktioniert. Auch ich suchte nach einigen Werkzeugen in Google (Grün, Violett) aber nicht sicher ob sie irgendeine Hilfe sind. Bitte schlagen Sie mir vor, wie man fortfährt. Auch ein guter Anfang tutorial geschätzt.Generating Class Diagram
Antwort
ich empfehlenBOUML zu umkehren. Seine Java Reverse-Unterstützung ist absolut ROCK SOLID.
BOUML hat viele weitere Infos und Vorteile:
- es extrem schnell ist (schnellste UML-Tool aller Zeiten Besuche benchmarks),
- hat rock solid C++, Java, PHP und andere Unterstützung zu importieren,
- es ist multiplatform (Linux, Windows, andere Betriebssysteme),
- hat eine große SVG-Export-Unterstützung, die wichtig ist, weil große Grafiken im Vektorformat, die schnell skaliert in z Firefox, ist sehr bequem (Sie können schnell zwischen "Vogelperspektive" Sicht und Klasse Detailansicht),
- es ist voll funktionsfähig, beeindruckend intensiv entwickelt (siehe development history, es ist schwer zu glauben, dass so schnell Fortschritte möglich ist).
- unterstützt Plugins, hat modulare Architektur (diese user contributions erlaubt, sieht aus wie BOUML Gemeinschaft bildet oben)
Es gibt einige Tools, mit denen Sie diese Diagramme erstellen können. Diese kosten Geld.
Sonst könnten Sie versuchen, Ihre Java-Dateien zu parsen. Dies könnte so einfach sein, einen einfachen Parser zu erstellen, der die Java-Dateien liest und den Namen der Klasse und alle import-Anweisungen in eine Datei schreibt und daraus ein Klassendiagramm generiert, graphviz kann Ihnen dabei helfen.
Sie könnten diesen Ansatz mit dem kostenlosen http://yuml.me UML-Diagrammgenerator kombinieren. Leute sind [bereits tun dies] (http://yuml.me/wildthing) für PowerShell-Klassen und Ruby on Rails-Domänen. Da Sie so viele Klassen haben, müssten Sie die Diagramme ein wenig durchbrechen, um 10-50 Klassen anzuzeigen. – tobinharris
Dies ist mehr eine Toolchain als ein Werkzeug und ich habe es selbst nicht ausprobiert. Aber es ist vielleicht ein Ausgangspunkt. Unter Verwendung von UMLGraph, ant und GraphViz. Schritt für Schritt erklärt: in this article.
Visual Paradigm für UML Standard Edition (oder besser) wird Java-Dateien in Class Diagrams zurückentwickeln.
Das Werkzeug, das Sie verwenden möchten, ist Doxygen. Es ist vergleichbar mit Javadoc, funktioniert aber in mehreren Sprachen. Wenn die Abhängigkeiten ermittelt werden, kann graphviz aufgerufen werden, um die Klassendiagramme zu rendern. Hier ist ein Beispiel für ein paar Java classes run through Doxygen.
WOW. Funktioniert super. – Epaga
Ich habe Visual Paradigm für UML für das verwendet, was Sie tun möchten, und es war ziemlich gut.
Weitere Informationen finden Sie unter here.
Gehen Sie einfach auf Tools -> Instant Reverse und wählen Sie Ihre Pakete.
Ich denke, wenn Ihr Chef Sie nur beschäftigen will, bis das nächste Projekt beginnt, dann ist es nicht schaden, aber Sie werden ziemlich schnell feststellen, dass die Erstellung eines Klassendiagramms mit 3500 Klassen Ihnen nichts über Ihr System sagen wird. Tatsächlich wollen Sie nicht wirklich ein Diagramm mit mehr als ungefähr 10 Klassen darauf. Sobald Sie also den gesamten Code in Ihr Modellierungswerkzeug umgedreht haben, sollten Sie anfangen, zu organisieren und zu arrangieren, um die Bedeutung zu finden. Erstellen Sie ein neues Diagramm, legen Sie eine einzelne wichtige Klasse darauf und fügen Sie alle Klassen ein, die direkt mit dieser Klasse verknüpft sind. Wiederholen Sie dies für vielleicht die 300 wichtigsten Klassen. Mach dir keine Sorgen, es ist nicht so schrecklich wie es klingt, vielleicht eine Woche Arbeit.
Für die Aufzeichnung, mein Modellierungswerkzeug der Wahl ist Enterprise Architect von Sparx Systems. Es wird Java-Quellen oder .jar-Dateien rückgängig machen. Es gibt eine kostenlose 30-Tage-Testversion.
Ich stimme zu, dass das Generieren zu allen Klassen ein schmerzhafter Job ist. Diese Übung soll die Leute in guter spirt halten.: – GustyWind
Ich verwende Enterprise Architect seit einigen Jahren. Ein JBoss-Entwickler hat es mir vorgeschlagen. Es funktioniert sehr gut für alle Arten von UML-Modellierung, einschließlich des Reverse Engineering von Klassenmodellen (Java, C# und andere). Die Basisversion ist derzeit 120 Dollar pro Sitzplatz, aber es hat die meisten Funktionen von viel teureren Tools und es ist viel einfacher zu lernen. Ich mag besonders seine Fähigkeit, HTML- und RTF-Dokumentation zu generieren.
Es ist sehr einfach, den Code zwischen dem Tool und Ihrem Quellcode zu synchronisieren. Sogar bidirektional, wenn Sie möchten.
Ihr PM mag möglicherweise auch die Aktivität und Sequenzdiagramme, die es erstellen kann. Ich benutze auch häufig die Deployment-Diagramme. Es ist sehr hilfreich, all dies in einem Tool zu haben.
Sie in der Lage sein Ingenieur-Klassendiagramme mit der Open-Source-Tool modelleing ArgoUML http://argouml.tigris.org/
ObjectAid ziemlich nett ist. Sie können Klassen in ein Diagramm ziehen und sie so anordnen, wie Sie möchten.
Es ist nett und wirklich einfach zu verwenden. Die Diagramme sind jedoch ein bisschen hässlich. –
Ich zweite die BOUML-Empfehlung. Es ist in Qt geschrieben, also läuft es überall wo Qt läuft, und ich habe es unter Mac OS X und Windows benutzt und es funktioniert gut. Es ist das, was meinem altbewährten Liebling, Rational Rose, am nächsten kommt, aber es funktioniert viel besser! Rose kam die ganze Zeit zum Absturz, obwohl es jetzt, da es in RAD/Eclipse konvertiert wurde, besser aussieht. Nicht sicher über den Kommentar, dass die Diagramme "hässlich" sind, sie sind so ziemlich deine Standard-UML-Modelle und sie sind sehr "Rose-like". – michaelok