![Page 1: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/1.jpg)
Softwareproduktlinien Teil 1: Einführung und Überblick
Christian Kästner (Universität Marburg)
Sven Apel (Universität Passau)
Gunter Saake (Universität Magdeburg)
1
![Page 2: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/2.jpg)
Agenda
Formales, Organisatorisches
Kurzeinführung in das Themengebiet
2
![Page 3: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/3.jpg)
Hintergrund
3
![Page 4: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/4.jpg)
Industrielle Revolution
4
1826 Austauschbare Teile (John Hall, nach 25 vergebl. Jahren)
1901 Fließband (Ransom Olds/Henry Ford)
1980s Automatische Fließbänder (erster Industrieroboter 1961 bei General Motors)
[Czarnecki & Eisenecker 2000]
![Page 5: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/5.jpg)
Produktlinien in der Industrie
5
![Page 6: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/6.jpg)
Auto-Produktlinie
6
![Page 7: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/7.jpg)
Variantenvielfalt
„Varianten sind ein wesentlicher Hebel für das Unternehmensergebnis“ — Franz Decker, Leiter Programm Variantenmanagement, BMW Group
7
![Page 8: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/8.jpg)
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 9: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/9.jpg)
PKW-Produktlinien vor wenigen Jahren
1020 mögliche Varianten eines Audi; 1032 mögliche Varianten eines BMW
Kaum ein Auto verlässt das Werk identisch zu einem vorherigen
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)
![Page 10: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/10.jpg)
Weitere Produktlinien
10
![Page 11: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/11.jpg)
Weitere Produktlinien
11
![Page 12: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/12.jpg)
Weitere Produktlinien
12
![Page 13: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/13.jpg)
Weitere Produktlinien
![Page 14: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/14.jpg)
![Page 15: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/15.jpg)
Massenproduktion
15
![Page 16: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/16.jpg)
Und bei Software?
Moderne Anwendungssoftwaresysteme sind Eier-legende Wollmilchsäue
Bsp.: Windows Vista, Open Office, Oracle, SAP myERP, Adobe Photoshop, Nero Burning ROM
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
17
![Page 17: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/17.jpg)
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: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/18.jpg)
Features in Microsoft Office
19
![Page 19: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/19.jpg)
Linux-Kernel
ca. 6.000.000 Zeilen Quelltext
Sehr weitgehend Konfigurierbar
> 10.000 Konfigurationsoptionen! (x86, 64bit, …)
Fast aller Quelltext ist „optional“
![Page 20: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/20.jpg)
Datenbanken
Ständig wachsendes Datenaufkommen
Häufige Einbettung mit Ressourcenbeschränkungen
21
![Page 21: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/21.jpg)
Drucker-Firmware
![Page 22: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/22.jpg)
Spiele
23
![Page 23: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/23.jpg)
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, …
24
![Page 24: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/24.jpg)
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)
25
![Page 25: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/25.jpg)
Schätzung
Circa 80% aller Softwaresysteme sind Softwareproduktlinien bzw. können von
Softwareproduktlinientechnologie profitieren.
26
![Page 26: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/26.jpg)
Herausforderungen
27
![Page 27: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/27.jpg)
Variabilität = Komplexität
![Page 28: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/28.jpg)
![Page 29: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/29.jpg)
eine maßgechneiderte Variante für
jeden Menschen auf dem Planten
33 Features optionale, unabhängige
![Page 30: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/30.jpg)
320 Features
mehr Varianten als es
Atome im Universum gibt!
optionale, unabhängige
![Page 31: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/31.jpg)
![Page 32: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/32.jpg)
Korrektheit?
![Page 33: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/33.jpg)
Alle Kombinationen sinnvoll?
34
![Page 34: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/34.jpg)
Wiederverwendung bei der Implementierung?
Wo Fehler korrigieren?
![Page 35: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/35.jpg)
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 36: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/36.jpg)
Entwurf und Implementierung von Features D
om
ain
En
g.
Ap
plicati
on
En
g.
Feature-Auswahl
Feature-Modell Wiederverwendbare Implementierungs- artefakte
Generator Fertiges Program
![Page 37: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/37.jpg)
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 38: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/38.jpg)
#ifndef _DB_MUTEX_INT_H_ #define _DB_MUTEX_INT_H_ #ifdef HAVE_MUTEX_PTHREADS #include <pthread.h> #define MUTEX_FIELDS pthread_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_FIELDS lwp_mutex_t mutex; /* Mutex. */ lwp_cond_t cond; /* Condition variable. */ #endif #ifdef HAVE_MUTEX_UI_THREADS #include <thread.h> #include <synch.h> #define MUTEX_FIELDS mutex_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 39: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/39.jpg)
Implementierung und Wartbarkeit?
40
class Stack {
void push(Object o
#ifdef SYNC
, Transaction txn
#endif
) {
if (o==null
#ifdef SYNC
|| txn==null
#endif
) return;
#ifdef SYNC
Lock l=txn.lock(o);
#endif
elementData[size++] = o;
#ifdef SYNC
l.unlock();
#endif
fireStackChanged();
}
}
![Page 40: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/40.jpg)
SPL-Implementierung
Verschiedene Wege SPLs zu implementieren
In dieser Vorlesung betrachten wir u.a.
Versionsverwaltungssysteme
Präprozessoren
Komponenten
Frameworks/Plugins
Feature-orientierte Programmierung
Aspekt-orientierte Programmierung
41
![Page 41: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/41.jpg)
42
Wieviel Variabilität ist sinnvoll?
Entwicklungskosten Investitionskosten
Wartungskosten Logistikkosten
Fertigungskosten (geringe Stückz.)
![Page 42: Softwareproduktlinien Teil 1: Einführung und Überblickplse/teaching/spl2010/01... · [Czarnecki & Eisenecker 2000] Produktlinien in der Industrie 5 . ... Windows Vista, Open Office,](https://reader034.vdocuments.site/reader034/viewer/2022051720/5a786fd07f8b9a8c428b8333/html5/thumbnails/42.jpg)
Schwerpunkte
Maßgeschneiderte Software als Ziel
Feature als zentrales Konzept
Implementierung von Features steht im Vordergrund
Viel Quelltext, diverse Paradigmen und Sprachen
47