Dies sind die archivierten Webseiten des Lehrstuhls für Programmierung und Softwaretechnik (PST).
Die Seiten des Software and Computational Systems Lab (SoSy) finden Sie auf https://www.sosy-lab.org/.

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.

In der Diplomarbeit soll ein Framework entwickelt werden, um derartige Probleme aufzulösen. Aufbauend auf diesem Framework sollen interessante Eigenschaften aus dem Bytecode analysiert werden, wie z.B. die Frage, ob eine Methode ein Query ist (d.h. wenn der Zustand nicht verändert wird, oder genauer: wenn keine Bytecode-Operation den Zustand verändert und jede aufgerufene Methode selbst ein Query ist).

Voraussetzungen

  • Sehr gutes Verständnis von Java
  • Spass an Assembler-ähnlichen Konstrukten
  • Kenntnisse in Graphentheorie

Aufgabensteller

Prof. Dr. Alexander Knapp

Betreuer

Moritz Hammer