Bytecode-Analyse-Tools

Moin,

im Rahmen eines Hochschulprojektes wollen wir anhand des Bytecodes in den .class-Dateien Aussagen über die „Softwarequalität“ (d.h. Feldanzahl, Methodenaufrüfe, Vererbungstiefe,…) eines Javaprojektes oder einzelner Dateien/Klassen machen. Ein Ansatz wäre sicherlich die Reflection-API. Nun meine Frage: kennt Ihr Java-Tools/Klassen, die einem die Arbeit bzw. Analyse der .class-Files ein wenig vereinfachen könnten. Ich denke an ein Tool wie die Byte Code Engineering Library (http://bcel.sourceforge.net/). Da diese allerdings bereits in einer früheren Lösung des Problems genutzt wurde, wollen wir nach Möglichkeit nicht mit der Library arbeiten.

Ich hoffe, mein Problem einigermaßen verständlich dargelegt zu haben,

schönen Abend noch,

Burn

Als erstes wäre es für dich wohl mal interessant die .class-Dateien komplett zu dekompilieren.

Dazu kannst du z. B. JAD verwenden, zu finden auf http://www.geocities.com/kpdus/jad.html.

Für die Analyseaufgaben gibt es dann mehrere Sachen, z. B. könntest du den Java-Code mit Rational Rose in ein UML-Diagramm umwandeln und damit OO-Aspekte beurteilen.

Auch Entwicklungsumgebungen bieten meistens Möglichkeiten, z. B. kannst du mit Visual Cafe einen Hierachiebaum anzeigen lassen und dir mit dem Klassenbrowser einen Überblück über die OO-Struktur der Anwendung machen.

Zu den Methodenaufrufen, das kenne ich nur von Performance Profilern, die zur Laufzeit solche Diagramme erstellen. Theoretisch müßte es zumindest teilweise (mit Methoden die nicht übers Reflection-API aufgerufen werden, was eher selten ist) gehen so ein Diagramm auch direkt aus den Klassen zu erzeugen, da kenne ich aber leider nichts.

Grüße, Robert