DynaMod: Dynamische Analyse für modellgetriebene Software-Modernisierung

zum Volltext (244 kB)   ZIP
Beteiligte Person(en) / Institution(en)Autor :
DatumErschienen :
  • August 2013
Seitenbereich25. S

Erfolgreiche Softwaresysteme leben lange. Gleichzeitig sind diese jedoch der enormen Geschwindigkeit der Fortentwicklung
der technischen Komponenten und Plattformen unterworfen, so dass die Anwendungen technisch sehr schnell altern. Von dieser
Alterung sind jedoch nicht nur Programmiertechniken betroffen, sondern auch die Softwarearchitekturen erodieren sehr schnell.
Um dieser Alterung entgegenzuwirken, neue technologische Potentiale zu nutzen und auch auf zukünftige Anforderungen flexibel reagieren zu können, ist eine kontinuierliche Modernisierung von Softwaresystemen erforderlich.

Bei der Neuentwicklung von Softwaresystemen hat sich mit der Modellgetriebenen Softwareentwicklung (Model-Driven Software
Development, MDSD) ein Konzept etabliert, das eine elegante Lösung dieser Problematik bietet: Anstatt das System vollständig in einer technischen Programmiersprache zu entwickeln, werden fachliche Aspekte mittels geeigneter, abstrakter Modellierungssprachen dargestellt. Hierbei handelt es sich oftmals um sogenannte domänenspezifische Sprachen (Domain Specific Languages, DSLs), die speziell auf die betreffende Anwendungsdomäne zugeschnitten sind und dadurch eine knappe und präzise Formulierung der relevanten Sachverhalte ermöglichen. Die Überführung dieser abstrakten Modelle in technische Artefakte, beispielsweise Quellcode in einer Programmiersprache, wird automatisiert durch Codegeneratoren vorgenommen. Auf diese Weise ist es möglich, durch Anpassung der Generatoren die Implementierung der Modelle zu verändern, ohne Modifikationen an den zugrundeliegenden Modellen vornehmen zu müssen.

Im Gegensatz zu Neuentwicklungen stehen bei vielen Bestandssystemen keine derartigen Modelle zur Verfügung. Klassische Ansätze der Modernisierung von Bestandssystemen versuchen stattdessen, die im Quellcode unmittelbar codierten Strukturen des bestehenden Systems automatisiert in Quellcode des Neusystems zu überführen. Da durch diesen Ansatz eine Transformation auf sehr elementarer Ebene stattfindet, kann dieser Ansatz der zuvor erwähnten Erosion der Anwendungsarchitektur nicht begegnen. Zudem ist auch die Übertragung elementarer Strukturen zwischen Programmiersprachen nicht trivial; häufig muss in der Zielsprache das originäre Konstrukt mit zusätzlichem Aufwand simuliert werden. Dadurch kommt es zu einer Aufblähung des Quellcodes, was der Wartbarkeit abträglich ist. Zuletzt bleiben technologische Potentiale der Zielplattform häufig ungenutzt, da das ursprüngliche System letztlich strukturuell unverändert übertragen wird.

Im DynaMod-Projekt wurde mit der modellgetriebenen Modernisierung (Model Driven Modernisation, MDM) ein neuer, innovativer Ansatz untersucht, Modelle aus bestehenden Softwaresystemen abzuleiten, die in einem MDSD-Prozess genutzt werden können und dem Bestandssystem auf diese Weise die zuvor beschriebene Flexibilität der Implementierung verleiht. Zur Ableitung dieser Modelle werden nicht nur die statischen Strukturen des Softwaresystems betrachtet; ein besonderer Schwerpunkt ist die Nutzung dynamischer Analyseverfahren, d.h. der Untersuchung des Verhaltens des
Softwaresystems zur Laufzeit. Diese dynamischen Analysen erlauben Einblick in die tatsächliche Nutzung des Systems durch die Nutzer und produziert somit Informationen, die zur Modernisierung eines Systems unabdingbar sind.

Von besonderem Interesse ist eine gleichzeitige Betrachtung statisch und dynamisch gewonnener Informationen, eine sogenannte hybride Analyse. Hierbei entfaltet die Nutzung abstrakter Modelle eine besondere Stärke, da die Modelle eine Plattform bieten, auf der die verschiedenen Daten zusammengeführt werden können. Auch Daten aus anderen Quellen, beispielsweise Expertenwissen, können den Modellen hinzugefügt werden und führen Wissen auf der Semantikebene hinzu, das automatisiert nicht erhoben werden kann.
Auf diese Weise zeigen die Modelle ein strukturiertes und umfangreiches Bild der Anwendung, das als Grundlage für eine Modernisierung dienen kann.

Neben der eigentlichen Modernisierung lag ein weiterer Fokus auf der Nutzung der gewonnenen Analysedaten zum systematischen Testen der modernisierten Anwendung. Hier bestand das Ziel darin, Methoden zu entwickeln und zu erproben, die Tests zur Prüfung funktionaler und nicht-funktionaler Eigenschaften der Anwendung aus den Analysedaten generieren können.
Statische URLhttps://www.uni-kiel.de/journals/receive/jportal_jparticle_00000033
 
URN:NBNurn:nbn:de:101:1-2014021214608
IDNummer des Berichts :
  • TR_1305