Datenflussanalyse zum Nachweis der Fehlerfreiheit von Java Programmen
Abstract
Thu 9:50 - 10:35 Uhr | 2007
Programmweite Datenflussanalyse (Pointeranalyse) zum Nachweis der Freiheit von Laufzeitfehlern, wie z.B. Null-Pointer oder Class-Casts, ist immer noch wenig verbreitet. Derzeitige Anwendungen beschränken sich meist auf Informationen für Optimierungen in Compilern, wobei geringe Genauigkeit zwar zu weniger aggressiven Optimierungen führt, aber meist tolerierbar ist.
Bisherigen Analysemethoden fehlte entweder die Genauigkeit, um die vollständige Freiheit von bestimmten Laufzeitfehlern nachzuweisen, oder sie verursachten eine Explosion im Zeit- und Speicherbedarf bei der Analyse nicht trivialer Anwendungen. Zu geringe Genauigkeit führt zu vielen “false positives”, d.h., die Analyse kann für korrekten Code nicht automatisch nachweisen kann, dass kein Fehler auftreten kann, während eine Explosion im Analyseaufwand dazu führt, dass in vertretbarer Zeit gar keine Analyseergebnisse vorliegen.
In diesem Vortrag wird ein im EU Project HIJA (High Integrity Java) entwickeltes Verfahren zur programmweiten Datenflussanalyse präsentiert, das die Abwesenheit bestimmter Klassen von Java Laufzeitfehlern vollständig nachweisen kann. Solch eine Analyse reduziert den nötigen Debugging-Aufwand und verbessert die Code-Qualität im Allgemeinen. Darüber hinaus dient die durch die Analyse gewonnene Information als Grundlage für weitergehende Werkzeuge, etwa zur Bestimmung des nötigen Laufzeitspeichers oder der maximalen Ausführungszeit.

Dr. Fridtjof Siebert
Dr. Siebert erhielt 1997 sein Diplom in Informatik an der Universität Stuttgart. Danach arbeitete er für 2 Jahre als Forschungsingenieur für das Research Institute der Open Group in Grenoble, Frankreich, und beschäftigte sich mit der Compilation und Optimierung von Java für eingebettete Systeme. An der Universität Karlsruhe beendete er 2001 seine Doktorarbeit über Echtzeit Garbage Collection, der Basistechnology der Echtzeit-Java Implementierung JamaicaVM. Dr. Siebert ist Gründungsgesellschafter der aicas GmbH, die JamaicaVM entwickelt und vertreibt. In aicas ist er Entwicklungsleiter und leitet die Weiterentwicklung der JamaicaVM. Im HIJA Projekt war er verantwortlich für die statische Analysewerkzeuge für sicherheitskritische Java-Systeme.