Detailseite
Projekt Druckansicht

Sichere und effiziente Softwareproduktlinien

Fachliche Zuordnung Softwaretechnik und Programmiersprachen
Förderung Förderung von 2010 bis 2017
Projektkennung Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 168119451
 
Erstellungsjahr 2018

Zusammenfassung der Projektergebnisse

In vielen Industriezweigen wie der Automobilindustrie ist die Verwendung von Produktlinientechnologie weit verbreitet und äußerst erfolgreich. Inspiriert von diesem Erfolg gewinnen Produktlinien auch in der Softwareindustrie zunehmend an Bedeutung. Bei der Entwicklung von Produktlinien ist das Hauptziel die systematische Wiederverwendung von Softwareartefakten (Features) zur weitestgehend automatisierten Generierung von Softwareprodukten bzw. Softwaresystemen auf Basis von Kundenwünschen. Wenn Softwaresysteme automatisch aus Einzelteilen (Features) generiert werden stellt sich die Frage, ob die generierten Systeme korrekt sind. In Systemen mit vielen Features kann ein Entwickler typischerweise nicht das Verhalten von allen Features gleichzeitig detailliert kennen, was zu (ungewollten) Wechselwirkungen zwischen Features führen kann (Feature-Interaktionen). Typprüfung, Testen und Verifikation sind erprobte Methoden um Softwarefehler aufzudecken. Im Kontext von Produktlinien stoßen diese Methoden jedoch durch die oft exponentielle Anzahl von Systemvarianten an ihre Grenzen. Aus einem System mit 33 optionalen und unabhängigen Features kann schon für jeden Menschen auf dem Planeten eine eigene Systemvariante generiert werden. Jedes Variante zu generieren und separat zu prüfen ist damit praktisch unmöglich. Weiterhin stellt sich die Frage nach der optimalen Systemvariante für ein bestimmtes Anwendungsszenario. In vielen konfigurierbaren Systemen ist der Einfluss von Features auf die Systemeffizienz nicht oder nur grob bekannt („Feature A sollte das System beschleunigen wenn Situation X oft eintritt.“). Aufgrund solcher Informationen ist es oft schwierig, die optimale Systemvariante für ein gegebenes Anwendungsszenario zu bestimmen. Zudem ist es durch die hohe Variantenanzahl in konfigurierbaren Systemen nicht möglich, die Effizienz aller Systemvarianten einzeln zu testen. Die konkreten Ziele des Projekts SAFESPL waren: • die Korrektheitsprüfung von Produktlinien zu verbessern, • die Effizienz von Systemvarianten praktikabel zu bestimmen und zu optimieren, • Interaktionen zwischen Features einer Produktlinie aufzudecken sowie deren Struktur zu untersuchen und • ein formales Verständnis von Variabilität, Features und Feature-Interaktionen zu entwickeln. Im Projekt SAFESPL wurden zur Erreichung dieser Ziele verschiedene Techniken zur Korrektheitsprüfung von Produktlinien und zur automatischen Bestimmung von effizienten Konfigurationen erforscht. Dazu haben wir insbesondere die Rolle von Feature-Interaktionen für Korrektheits- und Effizienzaspekte untersucht und modelliert. Weiterhin haben wir unsere Erkenntnisse über Produktlinienanalyse auf andere Bereiche (z. B. Analyse von ANDROID-Apps) übertragen, um dort effiziente Analysen zu realisieren. Konkret liegen folgende Ergebnisse aus SAFESPL vor: • Techniken und Werkzeuge zur effizienten Analyse von Produktlinien mit realistischen Konfigurationsräumen • Techniken und Werkzeuge zur Vorhersage und Optimierung von nicht-funktionalen Eigenschaften von Produktlinien mit realistischen Konfigurationsräumen • Modelle zur Repräsentation, Analyse und Vorhersage von Feature-Interaktionen • Modelle zum Vergleich und zur Kombination von Analysestrategien für Produktlinien • Empirische Studien (Daten, Auswertungen, Experimententwürfe, etc.) und Ergebnisse zu Stärken und Schwächen von Analysestrategien für Produktlinien und zur Rolle von Feature-Interaktionen in diesem Zusammenhang.

Projektbezogene Publikationen (Auswahl)

 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung