Customizable feature based design pattern recognition integrating multiple techniques

Die Analyse und Ruckgewinnung von Architekturinformationen aus existierenden Altsystemen ist eine komplexe, teure und zeitraubende Aufgabe, was der kontinuierlich steigenden Komplexitat von Software und dem Aufkommen der modernen Technologien geschuldet ist. Die Wartung von Altsystemen wird immer starker nachgefragt und muss dabei mit den neuesten Technologien und neuen Kundenanforderungen umgehen konnen. Die Wiederverwendung der Artefakte aus Altsystemen fur neue Entwicklungen wird sehr bedeutsam und uberlebenswichtig fur die Softwarebranche. Die Architekturen von Altsystemen unterliegen konstanten Veranderungen, deren Projektdokumentation oft unvollstandig, inkonsistent und veraltet ist. Diese Dokumente enthalten ungenugend Informationen uber die innere Struktur der Systeme. Haufig liefert nur der Quellcode zuverlassige Informationen uber die Struktur von Altsystemen. Das Extrahieren von Artefakten aus Quellcode von Altsystemen unterstutzt das Programmverstandnis, die Wartung, das Refactoring, das Reverse Engineering, die nachtragliche Dokumentation und Reengineering Methoden. Das Ziel dieser Dissertation ist es Entwurfsinformationen von Altsystemen zu extrahieren, mit Fokus auf die Wiedergewinnung von Architekturmustern. Architekturmuster sind Schlusselelemente, um Architekturentscheidungen aus Quellcode von Altsystemen zu extrahieren. Die Verwendung von Mustern bei der Entwicklung von Applikationen wird allgemein als qualitatssteigernd betrachtet und reduziert Entwicklungszeit und kosten. In der Vergangenheit wurden unterschiedliche Methoden entwickelt, um Muster in Altsystemen zu erkennen. Diese Techniken erkennen Muster mit unterschiedlicher Genauigkeit, da ein und dasselbe Muster unterschiedlich spezifiziert und implementiert wird. Der Losungsansatz dieser Dissertation basiert auf anpassbaren und wiederverwendbaren Merkmal-Typen, die statische und dynamische Parameter nutzen, um variable Muster zu definieren. Jeder Merkmal-Typ verwendet eine wahlbare Suchtechnik (SQL Anfragen, Regulare Ausdrucke oder Quellcode Parser), um ein bestimmtes Merkmal eines Musters im Quellcode zu identifizieren. Insbesondere zur Erkennung verschiedener Varianten eines Musters kommen im entwickelten Verfahren statische, dynamische und semantische Analysen zum Einsatz. Die Verwendung unterschiedlicher Suchtechniken erhoht die Genauigkeit der Mustererkennung bei verschiedenen Softwaresystemen. Zusatzlich wurde eine neue Semantik fur Annotationen im Quellcode von existierenden Softwaresystemen entwickelt, welche die Effizienz der Mustererkennung steigert. Eine prototypische Implementierung des Ansatzes, genannt UDDPRT, wurde zur Erkennung verschiedener Muster in Softwaresystemenen unterschiedlicher Programmiersprachen (JAVA, C/C++, C#) verwendet. UDDPRT erlaubt die Anpassung der Mustererkennung durch den Benutzer. Alle Abfragen und deren Zusammenspiel sind konfigurierbar und erlauben dadurch die Erkennung von neuen und abgewandelten Mustern. Es wurden umfangreiche Experimente mit diversen Open Source Software Systemen durchgefuhrt und die erzielten Ergebnisse wurden mit denen anderer Ansatze verglichen. Dabei war es moglich eine deutliche Steigerung der Genauigkeit im entwickelten Verfahren gegenuber existierenden Ansatzen zu zeigen.