Zeitschriftenartikel
Struktur- und verhaltensbasierte Entwurfsmustererkennung
Lade...
Volltext URI
Dokumententyp
Text/Journal Article
Dateien
Zusatzinformation
Datum
2008
Autor:innen
Zeitschriftentitel
ISSN der Zeitschrift
Bandtitel
Verlag
Geselllschaft für Informatik e.V.
Zusammenfassung
Die Wartung von Softwaresystemen ist heute eine zeitund damit kostenintensive Aufgabe. Die Systeme sind ständigen Anderungen unterworfen und über Jahre hinweg gewachsen. Die Dokumentation solcher Systeme wird kaum oder gar nicht gepflegt. Bei einer Größ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önnen. Die einzige verlässliche Grundlage für das Verstehen der Software bildet aber nur der Quelltext. In der Softwareentwicklung werden weit verbreitete Lösungen für immer wiederkehrende Probleme als Entwurfsmuster bezeichnet. Sie sind vielfach dokumentiert und bilden ein gemeinsames Vokabular unter Entwicklern. Angewendete Entwurfsmuster, so genannte Entwurfsmusterimplementierungen, im Quelltext existierender Software zu identifizieren, hilft, das inhärente Design der Software explizit zu dokumentieren und so die Entwickler beim Verstehen der Software zu unterstützen. In den letzten Jahren wurde eine Reihe von Werkzeugen entwickelt, die Entwurfsmusterimplementierungen (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 untersuchen. 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änkt untersucht werden. Die bisher entwickelten Werkzeuge erzeugen daher sehr unpräzise Ergebnisse. Dynamische Analysen bieten eine Lösung für dieses Problem. Sie analysieren Software zur Laufzeit, indem sie ihr Verhalten beobachten. Ausschließlich dynamische Analysen sind jedoch kaum praktisch durchführbar, da zur Laufzeit riesige Datenmengen anfallen, die nur sehr schwer handhabbar sind. Diese Arbeit stellt eine struktur- und verhaltensbasierte Entwurfsmustererkennung vor, die eine existierende, statische Entwurfsmustererkennung mit einer neu entwickelten, dynamischen Entwurfsmustererkennung kombiniert. Die statische Analyse identifiziert Kandidaten von Entwurfsmusterimplementierungen auf Basis struktureller Informationen. Der Anteil der dynamisch zu untersuchenden Software wird auf diese Kandidaten eingeschränkt, die anfallende Datenmenge wird reduziert und somit problemlos handhabbar. Zur Laufzeit wird dann das Verhalten der Kandidaten mit vorgegebenem Verhalten verglichen. Die durch die statische Analyse identifizierten und durch die dynamische Analyse bestätigten Entwurfsmusterimplementierungen stellen schließlich ein fundiertes und präzises Ergebnis dar.