Einführung und Überblick

46
Seminar: Software-Produktlinien (SPL) Einführung und Überblick Christian Kästner, Marko Rosenmüller, Norbert Siegmund, Gunter Saake

description

Christian Kästner, Marko Rosenmüller, Norbert Siegmund, Gunter Saake. Einführung und Überblick. Agenda. Überblick Softwareproduktlinien Was sind Produktlinien? Entwicklung von Softwareproduktlinien Organisatorisches Anforderungen Termine Themen. Zwei Entwicklungen. - PowerPoint PPT Presentation

Transcript of Einführung und Überblick

Page 1: Einführung und Überblick

Seminar: Software-Produktlinien (SPL)

Einführung und Überblick

Christian Kästner, Marko Rosenmüller, Norbert Siegmund, Gunter Saake

Page 2: Einführung und Überblick

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

Page 3: Einführung und Überblick

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

Page 4: Einführung und Überblick

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)

Page 5: Einführung und Überblick

Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 5

Auto-Produktlinie

Page 6: Einführung und Überblick

Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 6

Schuh-Produktlinie

Page 7: Einführung und Überblick

Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 7

PC-Produktlinie

Page 8: Einführung und Überblick

Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 8

Features in MS Office

Page 9: Einführung und Überblick

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

Page 10: Einführung und Überblick

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)

Page 11: Einführung und Überblick

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

Page 12: Einführung und Überblick

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)

Page 13: Einführung und Überblick

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

Page 14: Einführung und Überblick

Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 14

Application and Domain Engineering

Page 15: Einführung und Überblick

Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 15

Application and Domain Engineering

Page 16: Einführung und Überblick

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

Page 17: Einführung und Überblick

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, …

Page 18: Einführung und Überblick

Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 18

Graph-Feature-Modell

Page 19: Einführung und Überblick

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...

Do

mai

n E

ng

.A

pp

lica

tio

n E

ng

.

Feature-Auswahl

Feature-Modell WiederverwendbareImplementierungs-artefakte

Generator Fertiges Program

Page 20: Einführung und Überblick

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...

Do

mai

n E

ng

.A

pp

lica

tio

n E

ng

.

Feature-Auswahl

Feature-Modell WiederverwendbareImplementierungs-artefakte

Generator Fertiges Program

Page 21: Einführung und Überblick

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

Page 22: Einführung und Überblick

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

Page 23: Einführung und Überblick

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

Page 24: Einführung und Überblick

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 %

Page 25: Einführung und Überblick

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

Page 26: Einführung und Überblick

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

Page 27: Einführung und Überblick

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.

Page 28: Einführung und Überblick

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]

Page 29: Einführung und Überblick

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)

Page 30: Einführung und Überblick

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)

Page 31: Einführung und Überblick

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

Page 32: Einführung und Überblick

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

Page 33: Einführung und Überblick

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

Page 34: Einführung und Überblick

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

Page 35: Einführung und Überblick

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

Page 36: Einführung und Überblick

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/

Page 37: Einführung und Überblick

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

Page 38: Einführung und Überblick

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)

Page 39: Einführung und Überblick

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)

Page 40: Einführung und Überblick

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)

Page 41: Einführung und Überblick

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

Page 42: Einführung und Überblick

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

Page 43: Einführung und Überblick

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

Page 44: Einführung und Überblick

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)

Page 45: Einführung und Überblick

Kästner, Rosenmüller, Siegmund, Saake Seminar: Software-Produktlinien (SPL) – Folie 45

Themen

1 Ü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

Page 46: Einführung und Überblick

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