Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität...

49
© author(s) of these slides 2015 including research results of the research network ES and TU Darmstadt otherwise as specified at the respective slide 30.07.2018 Software Product Lines Concepts, Analysis and Implementation PD Dr. Malte Lochau [email protected] Motivation, Basics, Examples

Transcript of Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität...

Page 1: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

© author(s) of these slides 2015 including research results of the research network ES and TU Darmstadt otherwise as specified at the respective slide 30.07.2018

Software Product Lines Concepts, Analysis and Implementation

PD Dr. Malte [email protected]

Motivation, Basics, Examples

Page 2: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

2 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

I. Einführung Motivation und Grundlagen Feature-orientierte Produktlinien

II. Produktlinien-Engineering Feature-Modelle und Produktkonfiguration Variabilitätsmodellierung im Lösungsraum Programmierparadigmen für Produktlinien

III. Produktlinien-Analyse Feature-Interaktion SAT-Solving Testen von Produktlinien Verifikation von Produktlinien

IV. Fallbeispiele und aktuelle Forschungsthemen

Inhalt Motivation und Einführende

Beispiele Grundkonzepte des SPL

Engineering Durchgängiges Beispiel „BCS“

Page 3: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

3 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

1826Austauschbare Teile(John Hall)

1901Fließband(Ransom Olds/Henry Ford)

1980sAutomatische Fließbänder(erster Industrieroboter 1961bei General Motors)

[Czarnecki & Eisenecker 2000]

Industrielle Revolution

Page 4: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

4 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Produktlinien in der Industrie

Page 5: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

5 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Auto-Produktlinie

Page 6: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

6 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

„Varianten sind ein wesentlicher Hebel für das Unternehmensergebnis“— Franz Decker, Leiter Programm Variantenmanagement, BMW Group

Variantenvielfalt

Page 7: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

7 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

PKW-Produktlinien vor 20 Jahren

● Auswahl beschränkte sich auf Autotyp und ggf. noch wenige Extras wie alternativer Kassettenrekorder oder Dachgepäckträger

● Eine Variante (Audi 80, 1.3l, 55PS) machte 40% des Umsatzes aus

Page 8: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

8 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

PKW-Produktlinien heute• 1020 mögliche Varianten eines Audi; 1032 mögliche

Varianten eines BMW• Allein 100 verschiedene Bodengruppen für ein

Modell, je nach Motor und Ausstattung• 50 verschiedene Lenkräder (3 vs. 4 Speichen, Holz

vs. Kunststoff vs. Leder, Heizung, Farben)

Kaum ein Auto verlässt heute das Werk identischzu einem Vorherigen!

Page 9: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

9 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Weitere Produktlinien

Page 10: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

10 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Weitere Produktlinien

Page 11: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

11 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Weitere Produktlinien

Page 12: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

12 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Weitere Produktlinien

Page 13: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

13 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Page 14: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

14 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Massenproduktion

Page 15: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

15 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Generische Strategien

Page 16: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

16 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Und bei Software?● Moderne Anwendungssoftwaresysteme sind Eier-legende

Wollmilchsäue– Bsp.: Windows OS, Open Office, Oracle, SAP myERP, Adobe

Photoshop, Eclipse, …● Spezialisierte Software und Software für eingebettete

Systeme wird immer wichtiger– Bsp.: PDA, Handy, Sensornetze, Mikrowelle, Fernseher, Wetterstation,

Auto, Chipkarten, Bordcomputer, Router, Ubiquitious Computing– 98% aller im Einsatz befindlichen Rechnersysteme sind eingebettete

Systeme– Ressourcenbeschränkung und heterogene Hardware erfordert

maßgeschneiderte Lösungen– Häufige Neuimplementierungen, lange Entwicklungszeiten, hohe

Entwicklungskosten

Page 17: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

17 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Warum maßgeschneiderte Software?

● Ressourcenbeschränkte Systeme– Kosten, Energie, Platz, ….

● Individuelle Systeme versus individuelle Nutzung– Ungenutzte Funktionalität als Risiko – Wartungs- / Kontroll- / Testaufwand wächst mit

Funktionsumfang● Marketing / Preisdiskriminierung● Schnellere Reaktion auf Marktveränderungen

Page 18: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

18 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Features in Microsoft Office

Page 19: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

19 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Linux-Kernel

ca. 6.000.000 Zeilen Quelltext Sehr weitgehend konfigurierbar > 10.000 Konfigurationsoptionen! (x86, 64bit, …) Fast der gesamte Quelltext ist „optional“

Page 20: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

20 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Datenbanken

● Ständig wachsendes Datenaufkommen

● Häufige Einbettung mit Ressourcenbeschränkungen

Page 21: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

21 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Drucker-Firmware

Page 22: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

22 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Spiele

Page 23: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

23 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Softwareproduktlinien in der Industrie● HP: Druckertreiber/Firmware● Nokia: Mobiltelefon-Software, Browser● Phillips: High-End TVs, Medizintechnik, …● TomTom: eingebettete Navigationssysteme● Cummins: Dieselmotoren-Steuerungssoftware● LG: Aufzugsteuerungssoftware● Ericsson: Telecommunication switches● General Motors: Powertrains● Viele weitere: Gasturbinen, train control, ship control,

frequency converter, internet payment gateway, helicopter avionics software, …

Page 24: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

24 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Ziel der Vorlesung● Techniken für die Entwicklung maßgeschneiderter

Software, die genau die benötigte Funktionalität enthält– Varianten für verschiedene Anwendungsfälle– Neue Varianten können leicht hinzugefügt werden; schnelle

Entwicklung; Wiederverwendung bewährter Funktionalität– Kundenindividuelle Fertigung; Spezialisierung– Anpassung an verfügbare Ressourcen

● Softwareproduktlinien (SPL): Konfiguration durch Auswahl von Features (deutsch: Merkmale)

Page 25: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

25 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Schätzung

Circa 80% aller Softwaresysteme sind Softwareproduktlinien bzw. können von

Softwareproduktlinientechnologie profitieren.

Page 26: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

26 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Variabilität = Komplexität

Page 27: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

27 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Challenges

Page 28: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

28 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

eine maßgechneiderte Variante fürjeden Menschen auf dem Planeten

33 Featuresoptionale, unabhängige

Page 29: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

29 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

320 Features

mehr Varianten als esAtome im Universum gibt!

optionale, unabhängige

Page 30: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

30 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Page 31: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

31 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Korrektheit?

Page 32: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

32 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Alle Kombinationen sinnvoll?

Page 33: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

33 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Wiederverwendung bei der Implementierung?

Wo Fehler korrigieren?

Page 34: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

34 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Idee: Systematische Entwicklung von Softwareproduktlinien

● Jeweils neu programmieren ist sowohl unwirtschaftlich als auch gefährlich

● Daher maßgeschneiderte Software auf Basis von Softwareproduktlinien

– Aus wiederverwendbaren Teilen– Die alternative Implementierungen haben können– Anpassbar für spezielle Anwendungsfälle– Nutzbar auch unter extremer Ressourcenbeschränkung

Page 35: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

35 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Entwurf und Implementierung von FeaturesD

omai

n En

g.Ap

plic

atio

n En

g.

Feature-Auswahl

Feature-Modell WiederverwendbareImplementierungs-artefakte

Generator Fertiges Program

Page 36: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

36 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Nicht-funktionale Eigenschaften

● Begrenzungen und Optimierung● Optimiert für geringen Stromverbrauch● Optimiert für Performance● Optimiert für minimalen Footprint● Spezielle Implementierung (z. B. kein RAM, wenig Schreibzugriffe)

Page 37: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

37 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

#ifndef _DB_MUTEX_INT_H_#define _DB_MUTEX_INT_H_

#ifdef HAVE_MUTEX_PTHREADS#include <pthread.h>

#define MUTEX_FIELDSpthread_mutex_t mutex; /* Mutex. */pthread_cond_t cond; /* Condition variable. */

#endif

#ifdef HAVE_MUTEX_UI_THREADS#include <thread.h>#endif

#ifdef HAVE_MUTEX_SOLARIS_LWP#include <synch.h>

#define MUTEX_FIELDSlwp_mutex_t mutex; /* Mutex. */lwp_cond_t cond; /* Condition variable. */

#endif

#ifdef HAVE_MUTEX_UI_THREADS#include <thread.h>#include <synch.h>

#define MUTEX_FIELDSmutex_t mutex; /* Mutex. */cond_t cond; /* Condition variable. */

#endif

#ifdef HAVE_MUTEX_AIX_CHECK_LOCK#include <sys/atomic_op.h>typedef int tsl_t;

#ifdef LOAD_ACTUAL_MUTEX_CODE#define MUTEX_INIT(x) 0#define MUTEX_SET(x) (!_check_lock(x, 0, 1))#define MUTEX_UNSET(x) _clear_lock(x, 0)#endif#endif …

Implementierung: State of the Art

● Wenn überhaupt Variantenmanagement, dann mit #ifdef, Templates, make, CVS

● Beispiel: Berkeley DB (mutex_int.h)

Page 38: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

38 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Implementierung und Wartbarkeit?

class Stack {void push(Object o

#ifdef SYNC, Transaction txn

#endif) {if (o==null

#ifdef SYNC|| txn==null

#endif) return;

#ifdef SYNCLock l=txn.lock(o);

#endifelementData[size++] = o;

#ifdef SYNCl.unlock();

#endiffireStackChanged();

}}

Page 39: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

39 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

SPL-Implementierung● Verschiedene Wege SPLs zu implementieren● In dieser Vorlesung betrachten wir u.a.

– Präprozessoren– Komponenten– Frameworks/Plugins– Feature-orientierte Programmierung– Aspekt-orientierte Programmierung

Page 40: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

40 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Wieviel Variabilität ist sinnvoll?

EntwicklungskostenInvestitionskostenWartungskostenLogistikkostenFertigungskosten (geringe Stückz.)

Page 41: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

41 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Schwerpunkte Maßgeschneiderte Software als Ziel

Feature als zentrales Konzept

Modellierung, Analyse und Implementierung von Features steht im Vordergrund

Konkreter Quelltext, diverse Paradigmen und Sprachen

Page 42: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

42 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Fallstudie BCS Produktlinie

Durchgängiges Fallbeispiel aus dem Automotive Bereich „Body Comfort System“

Page 43: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

43 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Ursprung

• HMI-Steuergerät (Display und Statusanzeige, Komforteinstellungen, ...)• Türsteuergerät (Fensterheber, Spiegelverstellung, Spiegelblinker, ...)• Zentralverriegelungssteuergerät (Funkmodul, Schlossaktorik,Türkontakte, ...)• Alarmanlagensteuergerät (Innenraumüberwachung, Türüberwachung, ...)

• Zur Demonstration eines neuen, modellbasierten Entwicklungsansatzes erstellt• Ausschnitt aus modernem PKW System• Besteht aus 4 per CAN vernetzten Steuergeräten

Page 44: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

44 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Weiterentwicklung der Fallstudie

• Weiterentwicklung zur Software Produktlinie

• Teile der Funktionalitäten sind optional

• Featuremodell mit• 27 Features• 5 cross-tree constraints

Page 45: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

45 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Architekturmodell

Beschreibt die Verknüpfung der Komponenten und den Signalfluss

Page 46: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

46 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Automaten-Modell

• Beispielkomponente: Manueller Fensterheber• Beschreibung des Verhaltens als Automat

Page 47: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

47 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Testmodell

• 150% Modellenthält alle Produktkonfigurationen

Page 48: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

48 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Partielle Testmodelle

• 125% Modell

Page 49: Software Product Lines - es.tu-darmstadt.de · Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht

49 | 30.07.2018 | Software Product Lines - Concepts, Analysis and Implementation

Referenzen (Auswahl) Müller et al. : A comprehensive Description of a Model-based, continuous

Development Process for AUTOSAR Systems with integrated Quality Assurance, Technical Report, Braunschweig, 2009.

Sebastian Oster, Marius Zink, Malte Lochau, and Mark Grechanik:Pairwise feature-interaction testing for spls: potentials and limitations.In Proceedings of the 15th International Software Product Line Conference, Volume 2, SPLC ’11, pages 6:1–6:8, New York, NY, USA, 2011. ACM.

Marius Zink: Anwendung von Moso-Polite in einer Automotive SPL. Masterarbeit, Technische Universität Darmstadt, June 2011.

Sascha Lity, Remo Lachmann, Malte Lochau, Ina Schaefer: Delta-oriented Software Product Line Test Models - The Body Comfort System Case StudyTechnical Report 2012-07, TU Braunschweig, 2013.

etc.