460 likes | 556 Views
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.
E N D
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... 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
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)
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
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)
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
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)
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 Engineering • Application Engineering
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
Beispiel: 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, …
Entwurf 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
Entwurf 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
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
Agenda • Überblick Softwareproduktlinien • Was sind Produktlinien? • Entwicklung von Softwareproduktlinien • Organisatorisches • Anforderungen • Termine • Themen
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
Bewertung • Anmeldung heute, Abmeldung bis max. 2 Wochen später • Vortrag • Gewichtung 50 % • Ausgabe von Bewertungsbögen • Ausarbeitung • Gewichtung 50 %
Presentation • Know your audience • Talk to the audience • Talk loud and slow • Don’t hide • Eye contact • Don’t read • Know your audience
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
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.
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 nsiegmun@ovgu.deUNDrosenmue@ovgu.de
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)
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)
3 Domänenmodellierung • Überblick zu existierenden Featuremodellen • Einstiegspunkte • Buch: Czarnecki & Eisenecker • Kang et al.: Feature-Oriented Domain Analysis (FODA) Feasibility Study, 1990
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
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
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
7 Produktkonfiguration • Konfigurationsprozess • Staged Configuration • Einstiegspunkte • Buch: Czarnecki & Eisenecker • Czarnecki et al.: Staged Configuration Using Feature Models, SPLC 2004
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/
9 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.html
10 Organisatorische Aspekte • Team Struktur • Prozesse • Einstiegspunkte • Buch: Clements & Northrop (6) • Buch: Pohl et al. (19)
11 Wirtschaftliche Aspekte von SPLs • SPL pricing • Kosten (Entwicklung, Softwaretests, etc.) • Risiken • Einstiegspunkte • Buch: Pohl et al. (Kap. 20) • Buch: Clements & Northrop (6)
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)
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
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
15 Domänenspezifische Sprachen • Übersicht • Verwendung im Kontext von SPLs • Einstiegspunkte • Buch: Czarnecki & Eisenecker
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)
Themen • 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
Themen • 4 Beispiele Softwareproduktlinien • Computerspiele • Betriebssysteme • Datenbanken • Eingebettete Systeme im Automobil • Handy Software • Eigene Vorschläge