Computer Science Graduate Seminar: Modellbasierte Unterstützung der Software Evolution im industriellen Kontext

Thursday, July 27, 2017, 3:00pm

Location: 5054 (2356|054)

Speaker: M.Sc. Klaus Müller

Abstract:

Software Evolution ist ein integraler Bestandteil der Softwareentwicklung, da jedes produktiv eingesetzte Softwaresystem kontinuierlich angepasst werden muss, damit es seinen Nutzen nicht verliert. Die Folge davon ist, dass die Komplexität der Softwaresysteme im Laufe der Zeit stetig ansteigt. Eine Möglichkeit um mit dieser steigenden Komplexität umzugehen besteht in dem Einsatz von Modellierungs- und Generierungstechniken. Diese führen allerdings zu weiteren Herausforderungen hinsichtlich der Software Evolution, da die eingesetzten Modelle und Generatoren ebenfalls kontinuierlich angepasst werden müssen. Eine besondere Herausforderung in diesem Kontext ist, dass jede Änderung eines Modells weitreichende Auswirkungen auf ein Softwaresystem haben kann, sobald auf Basis des Modells Generierungsaktivitäten durchgeführt werden. Diese Arbeit zielt auf die modellbasierte Unterstützung der Software Evolution im industriellen Kontext ab. Der Fokus liegt auf Softwaresystemen, die generativ entwickelt und in denen Klassendiagramme zur Modellierung eingesetzt werden. Die wichtigsten wissenschaftlichen Beiträge lassen sich wie folgt zusammenfassen: (i) Bei der automatischen Ermittlung von Modelländerungen kann im Allgemeinen nicht garantiert werden, dass stets die korrekten Modelländerungen erkannt werden. Zur Unterstützung der Modellierer wird in dieser Arbeit eine domänenspezifische Sprache (engl. domain specific language, DSL) bereitgestellt, die es Modellierern ermöglicht punktuell festzulegen, welche Modelländerungen für ausgewählte Modellelemente durchgeführt wurden. Diese Vorgaben werden in die automatische Differenzberechnung einbezogen, so dass Fehler in der Differenzberechnung vermieden werden können. (ii) Jede Modelländerung kann weitreichende Auswirkungen auf ein Softwaresystem haben. Aus diesem Grund wird in dieser Arbeit eine DSL bereitgestellt, über die es möglich ist die Auswirkungen von Modelländerungen in Klassendiagrammen zu modellieren. Nachdem die durchgeführten Modelländerungen identifiziert wurden, wird auf Basis der modellierten Auswirkungen eine Checkliste generiert. Diese legt dar, welche Entwicklungsaktivitäten aufgrund der erkannten Modelländerungen durchgeführt werden müssen. (iii) Werden Datenmodelle zur Modellierung der Struktur der Daten eines Softwaresystems eingesetzt und generativ verarbeitet, können Änderungen der Datenmodelle die Durchführung von Datenmigrationen erfordern. In dieser Arbeit werden die notwendigen Schritte zur Umsetzung von Datenmigrationen für verschiedenste Arten von Modelländerungen dargelegt. Darüber hinaus wird eine Vorgehensweise zur Generierung von Migrationsklassen vorgestellt, welche diese Schritte kapselt. (iv) Zur Implementierung eines Softwaresystems oder einer Variante eines Softwaresystems kann es hilfreich sein neue Varianten bestehender Generatoren zu erzeugen. Zur Entwicklung solcher Varianten werden in dieser Arbeit mehrere DSLs bereitgestellt. Über diese ist es möglich eine neue Generatorvariante zu definieren, indem modelliert wird, auf welche Weise der Inhalt bestehender Generatorartefakte für die neue Variante angepasst werden soll. Als Ergebnis werden auf Basis der modellierten Operationen automatisch neue Generatorartefakte erzeugt, welche genau die modellierten Änderungen abbilden. (v) Ein wichtiger Bestandteil der Softwarearchitektur eines Systems betrifft die Restriktionen, die festlegen, welche Komponenten eines Systems mit welchen anderen Komponenten interagieren dürfen. In dieser Arbeit wird die Modellierung solcher Abhängigkeitsrestriktionen für Plugin-basierte Softwaresysteme durch eine DSL ermöglicht. Diese Restriktionen drücken erlaubte und verbotene Abhängigkeiten zwischen Plugins des Softwaresystems aus. Zudem wurde eine Prüfkomponente entwickelt, welche die Implementierung eines Softwaresystems kontinuierlich gegen die modellierten Restriktionen prüft. Die genannten Teilgebiete der Software Evolution werden an einem als Herzstück eines Produkts im Diagnose-Bereich für Fahrzeuge eingesetzten Softwaresystem evaluiert. Die entwickelten Konzepte sind jedoch unabhängig von diesem Softwaresystem und lassen sich auf andere generativ entwickelte Softwaresysteme übertragen.

The computer science lecturers invite interested people to join.