Java-Bytecodeanalyse zur Extraktion von abstrakten Modellen
Inhalt
Java Bytecode kann mit einer Reihe von Tools (BCEL, ASM, SOOT) in ein Objektmodell überführt werden, aus dem mittels Kontrollflussanalyse interessante Eigenschaften analysiert werden können. Das in Java realisierte dynamische Binden erschwert diese Analyse jedoch, sobald Methodenaufrufe mit betrachtet werden sollen (da zumeist nicht klar ist, von welchem Typ das Objekt ist, auf dem die Methode aufgerufen wird, und daher auch unklar bleibt, welche Implementierung der Methode verwendet wird). Hier kann man mit einigen Ansätzen versuchen, doch noch eine vollständige Analyse zu machen - z.B., indem man die Menge der zur Laufzeit verfügbaren Klassen begrenzt.
Voraussetzungen
- Sehr gutes Verständnis von Java
- Spass an Assembler-ähnlichen Konstrukten
- Kenntnisse in Graphentheorie