
Institut f¨
ur Informatik
Fachgebiet Softwaretechnik
Warburger Straße 100
33098 Paderborn
Struktur- und verhaltensbasierte
Entwurfsmustererkennung
Schriftliche Arbeit
zur Erlangung des Grades
”Doktor der Naturwissenschaften“
vorgelegt von
Dipl.-Inform. Lothar Wendehals
Rosenstraße 42
44289 Dortmund
Paderborn, im September 2007

ii

Zusammenfassung
Die Wartung von Softwaresystemen ist heute eine zeit- und damit kosteninten-
sive Aufgabe. Die Systeme sind st¨
andigen ¨
Anderungen unterworfen und ¨
uber
Jahre hinweg gewachsen. Die Dokumentation solcher Systeme wird kaum oder
gar nicht gepflegt. Bei einer Gr¨
oße von hunderttausenden oder sogar mehreren
Millionen Zeilen Quelltext ist die schwerste Aufgabe des Softwareentwicklers,
die bestehende Software zu verstehen, bevor ¨
Anderungen daran vorgenommen
werden k¨
onnen. Die einzige verl¨
assliche Grundlage f¨
ur das Verstehen der Soft-
ware bildet aber nur der Quelltext.
In der Softwareentwicklung werden weit verbreitete L¨
osungen f¨
ur immer
wiederkehrende Probleme als Entwurfsmuster bezeichnet. Sie sind vielfach do-
kumentiert und bilden ein gemeinsames Vokabular unter Entwicklern. Ange-
wendete Entwurfsmuster, so genannte Entwurfsmusterimplementierungen, im
Quelltext existierender Software zu identifizieren, hilft, das inh¨
arente Design
der Software explizit zu dokumentieren und so die Entwickler beim Verstehen
der Software zu unterst¨
utzen.
In den letzten Jahren wurde eine Reihe von Werkzeugen entwickelt, die Ent-
wurfsmusterimplementierungen (semi-)automatisch im Quelltext erkennen. Bis
auf einige wenige Ausnahmen basieren alle Werkzeuge auf einer rein statischen
Analyse des Quelltextes, ohne Eigenschaften der Software zur Laufzeit zu un-
tersuchen. Diese Analysen sind gut dazu geeignet, strukturelle Eigenschaften
der Entwurfsmuster zu erkennen. Allerdings werden Entwurfsmuster nicht nur
durch ihre Struktur, sondern auch durch ihr Verhalten definiert. Verhalten
kann jedoch durch statische Analysen nur sehr eingeschr¨
ankt untersucht wer-
den. Die bisher entwickelten Werkzeuge erzeugen daher sehr unpr¨
azise Ergeb-
nisse.
Dynamische Analysen bieten eine L¨
osung f¨
ur dieses Problem. Sie analysieren
Software zur Laufzeit, indem sie ihr Verhalten beobachten. Ausschließlich dy-
namische Analysen sind jedoch kaum praktisch durchf¨
uhrbar, da zur Laufzeit
riesige Datenmengen anfallen, die nur sehr schwer handhabbar sind.
Diese Arbeit stellt eine struktur- und verhaltensbasierte Entwurfsmusterer-
kennung vor, die eine existierende, statische Entwurfsmustererkennung mit ei-
iii

ner neu entwickelten, dynamischen Entwurfsmustererkennung kombiniert. Die
statische Analyse identifiziert Kandidaten von Entwurfsmusterimplementie-
rungen auf Basis struktureller Informationen. Der Anteil der dynamisch zu un-
tersuchenden Software wird auf diese Kandidaten eingeschr¨
ankt, die anfallende
Datenmenge wird reduziert und somit problemlos handhabbar. Zur Laufzeit
wird dann das Verhalten der Kandidaten mit vorgegebenem Verhalten vergli-
chen. Die durch die statische Analyse identifizierten und durch die dynamische
Analyse best¨
atigten Entwurfsmusterimplementierungen stellen schließlich ein
fundiertes und pr¨
azises Ergebnis dar.
iv

Danksagung
Eine Arbeit wie diese entsteht niemals ohne Einfl¨
usse von außen. Durch viele
Diskussionen mit anderen Wissenschaftlern, Kollegen, Studenten und Freun-
den wurde sie zu dem, was nun vorliegt. Diesen Personen m¨
ochte ich meinen
Dank aussprechen. Besonders hervorzuheben ist Wilhelm Sch¨
afer, der die Ar-
beit wissenschaftlich betreut hat und dessen wissenschaftlicher Mitarbeiter ich
f¨
unf Jahre lang war. Aber auch Ekkart Kindler m¨
ochte ich danken f¨
ur seine
immer wieder hilfreiche und konstruktive Kritik.
Besonderer Dank gilt meinen Kollegen Matthias Meyer und Robert Wag-
ner, mit denen ich eng zusammengearbeitet habe und die ich durch so manche
fruchtbare Diskussion und themenfremde Unterhaltung von ihren eigenen Dis-
sertationen abgehalten habe. Aber auch alle anderen Kollegen trugen mit ihrer
Kritik zu dieser Arbeit bei, dies sind: Bj¨
orn Axenath, Sven Burmester, Matthi-
as Gehrke, Stefan Henkler, Martin Hirsch, Florian Klein, J¨
org Niere, Vladimir
Rubin, Daniela Schilling, Matthias Tichy, Dietrich Travkin und J¨
org Wadsack.
J¨
org Niere, Daniela Schilling und Martin Hirsch m¨
ochte ich daf¨
ur danken,
dass sie mich jeweils eine Zeit lang als ihren B¨
urokollegen ausgehalten ha-
ben, bis ich schließlich mein eigenes B¨
uro bekam. Vielen Dank auch an Jutta
Haupt, die mir geholfen hat, die b¨
urokratischen Klippen einer Universit¨
at zu
umschiffen, und an J¨
urgen Maniera f¨
ur die technische Unterst¨
utzung.
Danke auch an die vielen Studenten, die als studentische Hilfskr¨
afte oder
durch ihre Diplom- oder Studienarbeiten an der Umsetzung meiner Ideen mit-
gearbeitet haben.
Im Herbst 2005 verbrachte ich drei Monate am Georgia Instistute of Tech-
nology in Atlanta, USA. Ich sammelte in dieser Zeit viele Erfahrungen und
konnte meine Ideen dort mal in einem vollkommen anderen Kontext betrach-
ten. Vielen Dank an Mary Jean Harrold und an Alessandro Orso, dass sie mir
diesen Aufenthalt erm¨
oglicht haben.
Vor allem aber m¨
ochte ich meinen Eltern Gundi und Josef Wendehals dan-
ken, die mir meine Ausbildung erst erm¨
oglicht haben, und meinen Geschwi-
stern Jutta, Martin und Marion, die mich immer wieder w¨
ahrend des Studiums
und der Promotion unterst¨
utzt haben.
v
Loading more pages...