Hauptseminar Programmanalysen
Thema
Im Hauptseminar werden fortgeschrittene Techniken der (vor
allem statischen) Programmanalysen behandelt. Diese Analysen
werden im Compilerbau und Software-Reengineering eingesetzt,
um automatisch Informationen über ein Programm zu
extrahieren. Die so gewonnenen Informationen helfen dann
beim Programmverständnis, bei der Fehlersuche, beim Planen
von Änderungen und bei der Code-Optimierung. Das
Hauptseminar eignet sich besonders für Studenten, die in
unserer Abteilung eine Studien- oder Diplomarbeit machen
wollen, da die im Hauptseminar erworbenen Kenntnisse für die
meisten unserer zu vergebenden Themen nützlich sind.
Themen für das Hauptseminar sind:
- 4.12.2006, Rico Hauke:
[Ausarbeitung]
[Folien]
Shape analysis (Techniken zur Analyse rekursiver Datenstrukturen)
- nicht vergeben: SSA in Kombination mit PointsTo-Information
- 8.1.2007, Artur Bachner: Escape-Analysen
Der Vortrag soll Technik für Escape-Analysen vorstellen und Anwendungen benennen.
- 15.1.2007, Arif Erkilic: Non-Concurrency
- 22.1.2007, Dominik Gunreben: Static detection of deadlocks
- nicht vergeben: Dynamic detection of races
- 29.1.2007, Miroslav Jakovljevic: Static detection of races
- 5.2.2007, Andreas Reuß: Programmabhängigkeiten
[Ausarbeitung]
[Folien]
- 12.2.2007, Minh Cuong Tran: Erkennung von Entwurfsmustern
[Ausarbeitung]
[Folien]
Der Vortrag soll die verschiedenen Ansätze, auch die zeitliche Entwicklung,
und die grundsätzliche Problematik vorstellen.
Interessant ist auch die rege deutsche Beteiligung an diesem Thema,
sowie die Aktualität.
Als Kontext kann Architektur-Erkennung und Programmverstehen sowie der
Einsatz von Entwurfsmustern im Forward-Engineering hergenommen werden.
Weiter zurück liegt noch die Erkennung von Cliches (v.a. Linda Wills)
als Vorstufe zu den Patterns.
Das einschlägige Buch der Gang of Four (Gamma etc.) sollte bekannt sein.
Es existiert noch weitere Literatur, der Vortragende kann ruhig selbst
noch auf Suche gehen, um ein umfassenderes Bild zu bekommen.
Bis zum WS könnte auch brauchbares Material aus dem StuPro EMMU vorliegen
und eingesetzt werden.
- Heuzeroth, Holl, Högström, Löwe: Automatic Design Pattern Detection,
Proc. 11th IEEE International Workshop on Program Comprehension (IWPC 2003)
- Krämer, Prechelt: Design Recovery by Automated Search for Structural
Design Patterns in Object-Oriented Software, Proc. WCRE 1996
- Kaczor, Gueheneuc, Hamel: Efficient Identification of Design Patterns
with Bit-vector Algorithm, CSMR 2006
- Niere, Schäfer, Wadsack, Wendehals, Welsh: Towards Pattern-Based Design Recovery,
ACM ICSE 2002
- Tonella, Antoniol: Object Oriented Design Pattern Inference,
ICSM 1999
- Antoniol, Fiutem, Cristoforetti: Using Metrics to Identify Design Patterns
in Object-Oriented Software, Proc. 5th International Symposium on Software Metrics (1998)
- Seemann, von Gudenberg: Pattern-Based Design Recovery of Java Software,
ACM SIGSOFT 1998
Als Einstieg empfehlen wir die Folien zur Vorlesung
Software-Reengineering
(insbesondere das Kapitel zu
Zwischendarstellungen)
Bei Fragen wenden Sie sich bitte an die
Betreuer aus der Abteilung
Programmiersprachen und Compilerbau:
Prof. Erhard Plödereder
,
Steffen Keul
,
Stefan Staiger
,
Gunther Vogel
,
Eduard Wiebe
Organisatorisches
Am 27. Juli 2006 findet um 16 Uhr eine
Vorbesprechung im Raum 1.212 statt, zu
der alle Teilnehmer erscheinen müssen.
Richtlinien
Die Ausarbeitungen werden hier verfügbar
sein, sobald sie uns in der endgültigen
Fassung vorliegen. Die Abgabe einer
vorläufigen Ausarbeitung ist eine Woche
vor dem Vortrag notwendig.
Die endgültige Ausarbeitung muss
uns eine Woche nach dem Vortrag
vorliegen, sowohl in ausgedruckter als
auch elektronischer Form
(Orginaldokument und PDF).
Die Ausarbeitung sollte unbedingt von
einem Kommilitonen vor Abgabe auf
Rechtschreibfehler etc. geprüft werden.
Die Ausarbeitungen müssen dem
zweispaltigen
IEEE-Format
für Konferenzbeiträge genügen und einen
Umfang zwischen 10 und 12 Seiten
haben. Unter den folgenden Links gibt es
entsprechende Vorlagen.
Generelle Hinweise zu Vorträgen und Ausarbeitungen findet man
hier.
Literatursuche
|