scieee Science in your language
[en] (orig)
Institut für Informatik
Arbeitsgruppe Softwaretechnik
Warburger Straße 100
33098 Paderborn
Inkrementelle
Entwurfsmustererkennung
Schriftliche Arbeit
zur Erlangung des Grades
"Doktor der Naturwissenschaften"
vorgelegt von
Dipl.-Inform. Jörg Niere
Wenschtstr. 30
57078 Siegen
Paderborn, Juni 2004
Zusammenfassung
In den letzten 10 Jahren ist die Größe der Softwaresysteme drastisch gestiegen. Aufgrund
der geringeren Kosten sind Änderungen an den Systemen lediglich in der Implementie-
rung vorgenommen worden, ohne die Dokumentation entsprechend anzupassen. Die
Wartung solcher Systeme ist durch die nicht vorhandene oder teilweise fehlerhafte Doku-
mentation aufwändig. Zudem haben Änderungen vielfach unerwartete Nebeneffekte, was
die Kosten für die Änderungen zusätzlich erhöht. Eine Rückgewinnung der Dokumenta-
tion aus der Implementierung des Softwaresystems ist daher notwendig.
Bei der Analyse der Implementierung von Softwaresystemen zur Rückgewinnung der
Dokumentation hat sich herausgestellt, dass gleichartige Implementierungen für wieder-
kehrende Probleme vorhanden sind. Diese Probleme mit entsprechenden Lösungen sind
als Entwurfsmuster bekannt und werden unter anderem zur Dokumentation eines Soft-
waresystems eingesetzt. Die Beschreibung eines Entwurfsmusters ist dabei informal, wo-
durch zu einem Entwurfsmuster eine hohe Anzahl Implementierungsvarianten existieren.
Automatische Analysen zur Erkennung von Entwurfsmusterinstanzen sind aufgrund der
hohen Anzahl Implementierungsvarianten eines Entwurfsmusters in großen Systemen mit
hundert tausend oder millionen Zeilen Quelltext nicht geeignet.
In dieser Arbeit wird eine inkrementelle Entwurfsmustererkennung zur Rückgewinnung
der Dokumentation eines Softwaresystems auf Basis von Graphtransformationsregeln in
Kombination mit Fuzzymengen vorgestellt. Durch Angabe von Genauigkeitswerten kann
die Präzision einer Regel angegeben werden, die in die Ergebnisse der automatischen
Analyse einfließen. Ein inkrementeller Regelausführungsmechanismus produziert früh-
zeitig relevante Ergebnisse, so dass insbesondere bei der Analyse großer Softwaresysteme
gegebenenfalls Regeln aufgrund der Ergebnisse frühzeitig angepasst werden können. Au-
ßerdem können Hypothesen und Informationen zusätzlich zum Quelltext mit in die Ana-
lyse eingebracht werden.
Der vorgestellte Ansatz ist dabei nicht auf die Erkennung von Entwurfsmustern be-
schränkt, sondern lässt sich auch für die Erkennung von Implementierungsmustern, Ver-
teilungsmustern, Architekturmustern oder Mustern aus Mustersprachen verwenden.
Advertisement
Danksagung
Mein Dank geht an Wilhelm Schäfer für die wissenschaftliche Betreuung und die vielen
Diskussionen in den letzen Jahren sowie die Unterstützung bei der Anfertigung dieser Ar-
beit. Gregor Engels danke ich für die Übernahme des Koreferats und die Gespräche wäh-
rend unserer Kaffeerunden.
Dank an Albert Zündorf für die frühzeitige Veröffentlichung seines formalen Regelwerks,
ohne das diese Arbeit wahrscheinlich wesentlich umfangreicher geworden wäre. Außer-
dem sind viele unserer kreativen Gedanken und Ideen in Fujaba und in dieser Arbeit ver-
wirklicht worden.
Weiterhin danke ich den (ehemaligen) Mitgliedern unserer Arbeitsgruppe Jens H. Jahnke,
Ulrich Nickel, Holger Giese, Ekkart Kindler, Matthias Gehrke, Sven Burmester, Daniela
Schilling, Lothar Wendehals, Robert Wagner, Björn Axenath, Jörg P. Wadsack, Matthias
Tichy und Matthias Meyer für viele Diskussionen, kuriose Ideen und das Korrektur lesen
dieser Arbeit. Das kreative Arbeitsklima ist dabei durch viele Fußballspiele, Kaffeestun-
den, Meilensteinfeiern, Feierabendbiere und andere Freizeitgestaltungen gefördert wor-
den. Dank auch an Jutta Haupt für die Überwindung mancher bürokratischer Hürde und
Jürgen Maniera für die technische Unterstützung.
Für die technische Realisierung gehört mein Dank dem Fujaba-Team mit mehr als hun-
dert registrierten Nutzern und Entwicklern. Insbesondere geht mein Dank an die Studen-
ten, die an der Entwicklung des Prototypen als wissenschaftliche Hilfskräfte oder durch
Studien- oder Diplomarbeiten beteiligt waren.
Mein ganz besonderer Dank geht an meine Frau Regine und unsere Kinder Niklas und
Kim Julia. Sie haben mich vor allem immer wieder seelisch aufgebaut und mich bei der
Fertigstellung dieser Arbeit sehr unterstützt. Vielen Dank auch an meine Eltern und all die
anderen Babysitter, die das ein oder andere Mal mir ein paar Stunden zum Schreiben und
uns ein paar Stunden zum Ausspannen ermöglicht haben.
v
INHALTSVERZEICHNIS
ABBILDUNGSVERZEICHNIS . . . . . . . . . . . . . . . . . . . . . . . . . IX
KAPITEL 1: EINLEITUNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1 Entwurfsmuster in Softwaresystemen . . . . . . . . . . . . . . . . . . . . 14
1.2 Ergebnisse der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3 Aufbau der Arbeit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
KAPITEL 2: STAND DER FORSCHUNG. . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1 Reengineering. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Ansätze zur Entwurfsmusterformalisierung. . . . . . . . . . . . . . . . 23
2.3 Ansätze zur Erkennung von Entwurfsmusterinstanzen . . . . . . . 25
2.3.1 Skript basierte Ausführung . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.2 Regelausführungssysteme . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.3 Verwendung von Heuristiken. . . . . . . . . . . . . . . . . . . . . . 29
2.4 Allgemeine Design-Recovery Ansätze. . . . . . . . . . . . . . . . . . . . 30
2.4.1 GRASPR Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4.2 Bauhaus Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4.3 RIGI Projekt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.4.4 GUPRO Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.4.5 VARLET Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
KAPITEL 3: INKREMENTELLE ANALYSE . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1 Gamma-Muster. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2 Analyseprozess. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3 Ergebnis einer Analyse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
KAPITEL 4: FORMALISIERUNG DER ENTWURFSMUSTERINSTANZEN . . . 47
4.1 Beispiel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2 Graphrepräsentation des Quelltextes . . . . . . . . . . . . . . . . . . . . . 51
4.2.1 Grammatiken und Abstrakte Syntaxbäume . . . . . . . . . . . 51
4.2.2 Schemainformation eines Graphen . . . . . . . . . . . . . . . . . 53
4.2.3 Ausprägung eines Graphen . . . . . . . . . . . . . . . . . . . . . . . 55
4.2.4 Objektorientierter Graph . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2.5 Erweiterungen für Annotationen . . . . . . . . . . . . . . . . . . . 59
Advertisement
Loading more pages...