Title: Einf
1Einführung und Überblick
- Christian Kästner, Marko Rosenmüller, Norbert
Siegmund, Gunter Saake
2Agenda
- Überblick Softwareproduktlinien
- Was sind Produktlinien?
- Entwicklung von Softwareproduktlinien
- Organisatorisches
- Anforderungen
- Termine
- Themen
3Zwei 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
4Softwareproduktlinien
- 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)
5Auto-Produktlinie
6Schuh-Produktlinie
7PC-Produktlinie
8Features in MS Office
9Softwareproduktlinien
- 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
10Domä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)
11Features (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
12Features 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)
13Entwicklung 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 Engineering
- Application Engineering
14Application and Domain Engineering
15Application and Domain Engineering
16Feature-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
17Beispiel Graph-Bibliothek
- Bibliothek von Graph-Datenstrukturen und
Algorithmen - Gewichtete/ungewichtete Kanten
- Gerichtete/ungerichtete Kanten
- Gefärbte Knoten
- Algorithmen kürzester Pfad, Minimale Spannbäume,
Transitive Hülle,
18Graph-Feature-Modell
19Entwurf und Implementierungvon Features
- Nach der Feature-Modellierung folgt der Entwurf
und die Implementierung...
Feature-Modell
Wiederverwendbare Implementierungs- artefakte
Domain Eng.
Application Eng.
Feature-Auswahl
Generator
Fertiges Program
20Entwurf und Implementierungvon Features
- Nach der Feature-Modellierung folgt der Entwurf
und die Implementierung...
Feature-Modell
Wiederverwendbare Implementierungs- artefakte
Domain Eng.
Application Eng.
Feature-Auswahl
Generator
Fertiges Program
21SPL 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
22Agenda
- Überblick Softwareproduktlinien
- Was sind Produktlinien?
- Entwicklung von Softwareproduktlinien
- Organisatorisches
- Anforderungen
- Termine
- Themen
23Vorträ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
24Bewertung
- Anmeldung heute, Abmeldung bis max. 2 Wochen
später - Vortrag
- Gewichtung 50
- Ausgabe von Bewertungsbögen
- Ausarbeitung
- Gewichtung 50
25Presentation
- Know your audience
- Talk to the audience
- Talk loud and slow
- Dont hide
- Eye contact
- Dont read
- Know your audience
26Structure
- Introduce yourself (and your background/affiliatio
n 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
27Technical Hints
- 20 min, about 7 to 15 slides
- Fontsize gt 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 (gt 7 objects or gt 36 words)
- Avoid writing full sencences, instead summarize
the content using only headwords.
28Termine
- 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 nsiegmun_at_ovgu.de UND rosenmue_at_ovgu.de
291 Überblick SPL Engineering
- Überblick nach SEI
- Core assets
- Produktentwicklung
- Etc.
- Einstiegspunkte
- http//www.sei.cmu.edu/productlines/index.html
- Buch Clements Northrop (Part I)
302 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)
313 Domänenmodellierung
- Überblick zu existierenden Featuremodellen
- Einstiegspunkte
- Buch Czarnecki Eisenecker
- Kang et al. Feature-Oriented Domain Analysis
(FODA) Feasibility Study, 1990
324 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
335 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
346 Implementierung von SPLs
- 2 Studenten (Aufteilung der Themen)
- Themenauswahl
- Frameworks,
- Komponenten,
- Präprozessoren (z.B. C/C Präproz.)
- Programmgeneratoren
- Einstiegspunkte
- Buch Czarnecki Eisenecker
357 Produktkonfiguration
- Konfigurationsprozess
- Staged Configuration
- Einstiegspunkte
- Buch Czarnecki Eisenecker
- Czarnecki et al. Staged Configuration Using
Feature Models, SPLC 2004
368 Visualisierung im Konfigurationsprozess
- Werkzeuge zur Konfiguration und deren Methoden
Visualisierung - Einstiegspunkte
- VISPLE Workshop 2007, 2008 http//www.lero.ie/vis
ple2007/, http//www.lero.ie/visple2008/
379 Testen von SPLs
- Domänentests
- Anwendungstests
- Einstiegspunkte
- Buch Pohl et al. (Kap. 13, 18)
- Intl. Workshop on Software Product Line
Testinghttp//www.biglever.com/split2008/index.ht
ml
3810 Organisatorische Aspekte
- Team Struktur
- Prozesse
- Einstiegspunkte
- Buch Clements Northrop (6)
- Buch Pohl et al. (19)
3911 Wirtschaftliche Aspekte von SPLs
- SPL pricing
- Kosten (Entwicklung, Softwaretests, etc.)
- Risiken
- Einstiegspunkte
- Buch Pohl et al. (Kap. 20)
- Buch Clements Northrop (6)
4012 SPL Fallstudien
- Überblick zu SPL Fallstudien
- Ergebnisse, Erfahrungen, Probleme
- Einstiegspunkte
- http//www.sei.cmu.edu/productlines/spl_case_studi
es.html - Buch Pohl et al. (Kap. 21)
- Buch Clements Northrop (Part III)
4113 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
4214 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
4315 Domänenspezifische Sprachen
- Übersicht
- Verwendung im Kontext von SPLs
- Einstiegspunkte
- Buch Czarnecki Eisenecker
44Literatur
- 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)
45Themen
- 1 Überblick SPL Engineering
- 2 Requirementsengineering / Domänenanalyse
- 3 Domänenmodellierung
- 4 Beispiele Softwareproduktlinien
- 5 Metriken in SPLs
- 6 Implementierung von SPLs (1-2 Stud.)
- 7 Produktkonfiguration
- 8 Visualisierung im Konfigurationsprozess
- 9 Testen von SPLs
- 10 Organisatorische Aspekte
- 11 Wirtschaftliche Aspekte von SPLs
- 12 SPL Adoption
- 13 Domänenspezifische Sprachen
- 14 SPL Fallstudien
- 15 Open Source SPLs
46Themen
- 4 Beispiele Softwareproduktlinien
- Computerspiele
- Betriebssysteme
- Datenbanken
- Eingebettete Systeme im Automobil
- Handy Software
- Eigene Vorschläge