Seminar: Software-Produktlinien (SPL) Einführung und Überblick Christian Kästner, Marko...
-
Upload
gotthilf-geier -
Category
Documents
-
view
212 -
download
0
Transcript of Seminar: Software-Produktlinien (SPL) Einführung und Überblick Christian Kästner, Marko...
Seminar: Software-Produktlinien (SPL)
Einführung und Überblick
Christian Kästner, Marko Rosenmüller, Norbert Siegmund, Gunter Saake
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 2
Agenda Überblick Softwareproduktlinien
Was sind Produktlinien? Entwicklung von Softwareproduktlinien
Organisatorisches Anforderungen Termine Themen
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 3
Zwei Entwicklungen... Moderne Anwendungssoftwaresysteme
Eier-legende Wollmilchsäu Bsp.: Windows Vista, Open Office, Oracle, SAP
myERP, iTunes Nicht so bei eingebetteten Systemen
Maßgeschneiderte Lösungen Bsp.: PDA, Handy, Sensoren, Toaster, Mikrowelle,
Fernseher, Wetterstation, Taschenrechner, Chipkarten, Bordcomputer, Router, Ubiquitious Computing
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 4
Softwareproduktlinien Techniken für die Entwicklung maßgeschneiderte
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
Kunden-individuelle Fertigung, Spezialisierung Anpassung an verfügbare Ressourcen
Software-Produktlinien: Konfiguration durch Auswahl von Features (deutsch: Merkmale)
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 5
Auto-Produktlinie
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 6
Schuh-Produktlinie
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 7
PC-Produktlinie
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 8
Features in MS Office
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 9
Softwareproduktlinien Eine Menge von Programmvarianten (Software-
Produkten), ...die auf ein gemeinsames Marktsegment
(Domäne) zugeschnitten sind ...mit dem Ziel der Wiederverwendung von
gemeinsamen Software-Artefakten
z. B. Tetris Produktlinie 2D / 3D Unterstützte Hardware (PC, Handys, etc.) Multiplayer
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 10
Domäne Die Programme einer Produktlinie sind
zugeschnitten auf ein Anwendungsgebiet Dieses Anwendungsgebiet wird als Domäne
bezeichnet Beispiele:
Datenbanken Eingebettete Systeme (z.B. Automobilbau) Lagerverwaltung Netzwerkkommunikation (Netzwerkstack)
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 11
Features (deutsch Merkmale) “first-class domain abstractions” … repräsentieren Anforderungen, Gemeinsamkeiten
bzw. Unterschiede von Programmvarianten … sind Mittel zur Kommunikation zwischen
Stakeholdern … dienen zur Spezifikation von Varianten
Feature-Auswahl als Eingabe für die Programmgenerierung
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 12
Features – Beispiele Computerspiele: Ein- / Mehrspielermodus,
Netzwerkmodus, Grafik-Details, Physik Engine PIM: Mail Unterstützung, Adressverwaltung,
Kalender Funktion, Geburtstage, Notizen, Aufgaben Allgemein: Unterstützte Betriebssysteme (Windows,
Linux, etc.), unterstützte Hardware (PC, Spielekonsole, Handy, eingebettetes System)
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 13
Entwicklung einer Produktlinie
Entwicklung einer Programmfamilie statt einzelner Anwendung
Programmfamilie erfüllt Anforderungen einer ganzen Domäne
Abweichung vom klassischen Entwicklungsprozess und Lebenszyklus
Unterscheidung in Domain EngineeringApplication Engineering
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 14
Application and Domain Engineering
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 15
Application and Domain Engineering
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 16
Feature-Modellierung Darstellung der Features einer Domäne Zur Visualisierung und Kommunikation Ein Feature-Modell beschreibt
die elementaren Abstraktionen einer Domäne und deren Beziehungen
die Menge der Programme einer Produktlinie Ein Feature-Diagramm visualisiert Features und
deren Beziehungen
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 17
Beispiel: Graph-Bibliothek
Bibliothek von Graph-Datenstrukturen und –AlgorithmenGewichtete/ungewichtete KantenGerichtete/ungerichtete KantenGefärbte KnotenAlgorithmen: kürzester Pfad, Minimale Spannbäume,
Transitive Hülle, …
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 18
Graph-Feature-Modell
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 19
Entwurf und Implementierungvon Features
Nach der Feature-Modellierung folgt der Entwurf und die Implementierung...
Dom
ain
Eng.
App
licat
ion
Eng.
Feature-Auswahl
Feature-Modell WiederverwendbareImplementierungs-artefakte
Generator Fertiges Program
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 20
Entwurf und Implementierungvon Features
Nach der Feature-Modellierung folgt der Entwurf und die Implementierung...
Dom
ain
Eng.
App
licat
ion
Eng.
Feature-Auswahl
Feature-Modell WiederverwendbareImplementierungs-artefakte
Generator Fertiges Program
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 21
SPL Implementierung Verschiedene Wege SPLs zu implementieren Beispiele:
Komponenten Frameworks/Plugins Präprozessoren (z.B. C/C++ #ifdef) Feature-Orientierte Programmierung
(Kollaborationen, Mixins) Aspekte-Orientierte Programmierung
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 22
Agenda Überblick Softwareproduktlinien
Was sind Produktlinien? Entwicklung von Softwareproduktlinien
Organisatorisches Anforderungen Termine Themen
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 23
Vorträge / Ausarbeitungen Vorträge
20 min Vortrag (siehe Infos auf Webseite) 10 min Diskussion
Ausarbeitungen 3-6 Seiten (Format siehe Webseite) Inhalte:
Motivation / Einleitung in das Thema Analyse / Aufarbeitung des Themas Je nach Themengebiet: Vor- / Nachteile, offene
Fragen, Vergleich analysierter Ansätze Zusammenfassung / Schlussfolgerung
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 24
Bewertung
Anmeldung heute, Abmeldung bis max. 2 Wochen später
VortragGewichtung 50 %Ausgabe von Bewertungsbögen
AusarbeitungGewichtung 50 %
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 25
Presentation
• Know your audience
• Talk to the audience• Talk loud and slow• Don’t hide• Eye contact• Don’t read
• Know your audience
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 26
Structure
• Introduce yourself (and your background/affiliation if necessary)
• State target/aim of presentation early• Motivate your work, why should I listen
• Cohesion!
• Summarize main points, take-away message• Emphasize conclusion/consequences
• References if used in the slides
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 27
Technical Hints
• 20 min, about 7 to 15 slides• Fontsize >= 18, sans-serife fonts • Name, title and affiliation on every slide• Slides number on every slide• At most one topic per slide• Visualization, colors where necessary• Avoid overfull slides (> 7 objects or > 36 words)• Avoid writing full sencences, instead summarize the
content using only headwords.
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 28
Termine 05.11.2008
Details zur Ausarbeitung
19.11.2008 bis 07.01.2009 Je 2 - 3 Vorträge + Diskussion Genaue Termine siehe Webseite
Abgabe der Ausarbeitungen max. 4 Wochen nach Präsentation
Mails an [email protected] UND [email protected]
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 29
1 Überblick SPL Engineering
• Überblick nach SEI– Core assets– Produktentwicklung– Etc.
• Einstiegspunkte– http://www.sei.cmu.edu/productlines/index.html– Buch: Clements & Northrop (Part I)
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 30
2 Requirementsengineering / Domänenanalyse
• Methoden zur Analyse von Gemeinsamkeiten / Unterschiede von Anforderungen innerhalb einer Domäne
• Einstiegspunkte– Buch: Clements & Northrop (4.6)– Buch: Pohl et al. (Kap. 10)
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 31
3 Domänenmodellierung
• Überblick zu existierenden Featuremodellen
• Einstiegspunkte– Buch: Czarnecki & Eisenecker– Kang et al.: Feature-Oriented Domain Analysis
(FODA) Feasibility Study, 1990
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 32
4 Beispiele Softwareproduktlinien
• Domänenalyse und Featuremodellierung an konkreten Domänen
• Braucht man SPLs in dieser Domäne?• Mehrere Beispiele je Domäne; Feature Diagramme• Wie sehen diese aus bzw. wie könnten diese
aussehen?– Computerspiele– Betriebssysteme– Datenbanken– Eingebettete Systeme im Automobil– Handy Software– Eigene Vorschläge
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 33
5 Metriken in SPLs
• Bewertung von SPLs – z.B. bzgl. Komplexität
• Einstiegspunkte– Lopez-Herrejon & Trujillo: How Complex is my
Product Line? The case for Variation Point Metrics, VAMOS 2008
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 34
6 Implementierung von SPLs
• 2 Studenten (Aufteilung der Themen)• Themenauswahl:– Frameworks,– Komponenten,– Präprozessoren (z.B. C/C++ Präproz.)– Programmgeneratoren
• Einstiegspunkte– Buch: Czarnecki & Eisenecker
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 35
7 Produktkonfiguration
• Konfigurationsprozess• Staged Configuration
• Einstiegspunkte– Buch: Czarnecki & Eisenecker– Czarnecki et al.: Staged Configuration Using Feature
Models, SPLC 2004
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 36
8 Visualisierung im Konfigurationsprozess
• Werkzeuge zur Konfiguration und deren Methoden Visualisierung
• Einstiegspunkte– VISPLE Workshop 2007, 2008:
http://www.lero.ie/visple2007/, http://www.lero.ie/visple2008/
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 37
9 Testen von SPLs
• Domänentests• Anwendungstests
• Einstiegspunkte– Buch: Pohl et al. (Kap. 13, 18)– Intl. Workshop on Software Product Line Testing
http://www.biglever.com/split2008/index.html
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 38
10 Organisatorische Aspekte
• Team Struktur• Prozesse
• Einstiegspunkte– Buch: Clements & Northrop (6)– Buch: Pohl et al. (19)
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 39
11 Wirtschaftliche Aspekte von SPLs
• SPL pricing• Kosten (Entwicklung, Softwaretests, etc.)• Risiken
• Einstiegspunkte– Buch: Pohl et al. (Kap. 20)– Buch: Clements & Northrop (6)
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 40
12 SPL Fallstudien
• Überblick zu SPL Fallstudien• Ergebnisse, Erfahrungen, Probleme
• Einstiegspunkte– http://www.sei.cmu.edu/productlines/
spl_case_studies.html– Buch: Pohl et al. (Kap. 21)– Buch: Clements & Northrop (Part III)
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 41
13 Open Source SPLs
• Analyse existierender SPLs• Verwendete Implementierungstechniken• Domänen• Etc.
• Einstiegspunkte – Dissertation Sven Apel: http://www.infosun.fim.uni-
passau.de/cl/publications/docs/Dissertation.pdf
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 42
14 SPL Adoption
• Aspekte zur Einführung von SPLs in Unternehmen– Techn. Aspekte– Wirtschaftl. Aspekte– Organisatorische Aspekte
• Einstiegspunkte– Buch: Pohl et al. (Kap. 20)– Clements & Krueger: Point/Counterpoint: Being
Proactive Pays Off/Eliminating the Adoption Barrier. IEEE Software, 2002
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 43
15 Domänenspezifische Sprachen
• Übersicht• Verwendung im Kontext von SPLs
• Einstiegspunkte– Buch: Czarnecki & Eisenecker
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 44
Literatur
• Czarnecki & Eisenecker: Generative Programming, 2000, Addison-Wesley
• Clements & Northrop: Software Product Lines: Practices and Patterns, 2002, Addison-Wesley
• Pohl et al.: Software Product Line Engineering, 2005, Springer (Kopien heute / morgen Vormittag)
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 45
Themen1 Überblick SPL Engineering2 Requirementsengineering / Domänenanalyse3 Domänenmodellierung4 Beispiele Softwareproduktlinien5 Metriken in SPLs6 Implementierung von SPLs (1-2 Stud.)7 Produktkonfiguration8 Visualisierung im Konfigurationsprozess9 Testen von SPLs10 Organisatorische Aspekte11 Wirtschaftliche Aspekte von SPLs12 SPL Adoption13 Domänenspezifische Sprachen14 SPL Fallstudien15 Open Source SPLs
Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 46
Themen• 4 Beispiele Softwareproduktlinien
– Computerspiele– Betriebssysteme– Datenbanken– Eingebettete Systeme im Automobil– Handy Software– Eigene Vorschläge