EvoLine

Montag, 07. Januar 2013 um 11:01 Uhr

Fehler in der Evolution von Produktlinien frühzeitig vermeiden

In die meiste Software fließt mehr Aufwand in die Weiterentwicklung (Evolution) als in die ursprüngliche Entwicklung. Zugleich ist die Evolution von Software noch nicht hinreichend erforscht. Die Deutsche Forschungsgemeinschaft (DFG) hat daher eines ihrer wenigen Schwerpunktprogramme etabliert, um die Forschung zur Evolution von Software voranzutreiben. Das (SPP) 1593 „Design For Future – Managed Software Evolution“ beschäftigt sich damit. In diesem Schwerpunktprogramm wurde der Antrag der Arbeitsgruppe Software Systems Engineering (SSE) der Universität Hildesheim auf Einrichtung des Forschungsprojekts EvoLine genehmigt. Das EvoLine-Projekt zielt auf die Erforschung und Verbesserung der Evolution von Produktlinien ab. Das ist eine weitere Bestätigung der anerkannten Kompetenz der Arbeitsgruppe im Bereich der Entwicklung von Softwareproduktlinien. Der Projektpartner der Arbeitsgruppe SSE im dreijährigen Projekt EvoLine ist die Arbeitsgruppe Softwaretechnik der Universität Bremen, deren Fokus auf dem Reengineering liegt.

EvoLine zielt auf die kontinuierliche und korrekte Evolution von Produktlinien. Eine Produktlinie ist dabei eine Menge verwandter Produkte, die auf Basis einer gemeinsamen Infrastruktur so entwickelt wird, dass insgesamt sehr verschiedene Produkte bei gleichzeitig sehr starker Wiederverwendung der Realisierung umgesetzt werden können. Eine wesentliche Herausforderung bei der Evolution von Produktlinien ist zum einen die enge Verknüpfung der einzelnen Produkte und zum anderen die längere Lebensdauer der Produktlinie im Vergleich zu einzelnen Produkten. Das Ziel des EvoLine-Projekts ist es, Methoden und Werkzeuge zur korrekten und konsistenten Evolution von Softwareproduktlinien zu entwickeln, um so eine langfristig erfolgreiche Evolution zu gewährleisten.

Im EvoLine-Projekt wird die kontinuierliche Evolution langlebiger Produktlinien vor allem im Hinblick auf eingebetteten Systemen und insbesondere Industrieautomatisierungssystemen untersucht. Es wird jedoch erwartet, dass die Ergebnisse auch für viele andere Arten von Produktlinien gültig sein werden. In diesen Domänen wird Variabilität oft statisch mit Hilfe von Präprozessordirektiven umgesetzt oder durch explizite Konfigurationsvariablen definiert. Dies erschwert die Evolution natürlich sehr, da es nicht ausreicht die korrekte Evolution eines Programms zu beurteilen, sondern von allen möglichen Programmen. Dabei ist vor allem der Zusammenhang zwischen Konfigurationsmöglichkeiten (das sogenannte Variabilitätsmodell) und Programmcode zu betrachten. Bei der kontinuierlichen Evolution langlebiger Produktlinien ist daher die konsistente Weiterentwicklung von Code und Variabilitätsmodell erforderlich, um fehlerhafte Konfigurationen oder nicht mehr konfigurierbare Produkte zu vermeiden. Ziel des EvoLine-Projekts ist daher Fehler durch eine inkonsistente Evolution rechtzeitig zu identifizieren.

Die im Projekt entwickelten Methoden und Werkzeuge ermöglichen die Identifikation und Analyse evolutionsbedingter Änderungen an Code und Variabilitätsmodell über Versionsstände hinweg. Die Ergebnisse der Analysen werden detaillierte und frühzeitige Aussagen zu möglichen Problemen erlauben, die durch die beabsichtigten Änderungen entstehen können. Mit dieser Lösung wird die Langlebigkeit von Softwareproduktlinien unterstützt und der Aufwand für Fehlererkennung und -korrektur signifikant verringert.

Die Arbeitsgruppe Software Systems Engineering am Institut für Informatik der Universität Hildesheim beschäftigt sich im Rahmen des Projekts vor allem mit der Analyse des Variabilitätsmodells und der automatisierten Identifikation von Veränderungen im Rahmen der Evolution. Hierzu werden Techniken aus dem Bereich der Softwareproduktlinienentwicklung (SPLE) zur automatisierten Analyse von Konfigurationen, wie beispielsweise die Prüfung auf Fehlerfreiheit, die Ermittlung der Anzahl möglicher Produkte, usw. angewendet und für die Domäne der Industrieautomatisierungssysteme weiterentwickelt. Softwareproduktlinienentwicklung ist ein Wiederverwendungsansatz, der eine möglichst starke Automatisierung der Konfiguration und Anpassung von Produktvarianten zum Ziel hat. Dieser Ansatz reduziert sowohl die Entwicklungskosten als auch die Zeit bis zur Produkteinführung bei gleichzeitiger Verbesserung der Qualität. Die Arbeitsgruppe Software Systems Engineering erforscht moderne Methoden und Techniken, um die Softwareentwicklung effizienter und flexibler zu machen.

SPP-Website: www.dfg-spp1593.de

Laufzeit: 3 Jahre

Kontakt: Prof. Dr. Klaus Schmid, schmid(at)sse.uni-hildesheim.de

Das EvoLine-Projekt wird im Rahmen des DFG Schwerpunktprogramms 1593 „Design For Future – Managed Software Evolution“ durch die Deutsche Forschungsgemeinschaft (DFG) gefördert.

Erstellt von Christian Kröher