1 / 46

Einführung und Überblick

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.

milla
Télécharger la présentation

Einführung und Überblick

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Christian Kästner, Marko Rosenmüller, Norbert Siegmund, Gunter Saake Einführung und Überblick

  2. Agenda Überblick Softwareproduktlinien Was sind Produktlinien? Entwicklung von Softwareproduktlinien Organisatorisches Anforderungen Termine Themen

  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

  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)

  5. Auto-Produktlinie

  6. Schuh-Produktlinie

  7. PC-Produktlinie

  8. Features in MS Office

  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

  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)

  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

  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)

  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 Engineering • Application Engineering

  14. Application and Domain Engineering

  15. Application and Domain Engineering

  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

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

  18. Graph-Feature-Modell

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

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

  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

  22. Agenda • Überblick Softwareproduktlinien • Was sind Produktlinien? • Entwicklung von Softwareproduktlinien • Organisatorisches • Anforderungen • Termine • Themen

  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

  24. Bewertung • Anmeldung heute, Abmeldung bis max. 2 Wochen später • Vortrag • Gewichtung 50 % • Ausgabe von Bewertungsbögen • Ausarbeitung • Gewichtung 50 %

  25. Presentation • Know your audience • Talk to the audience • Talk loud and slow • Don’t hide • Eye contact • Don’t read • Know your audience

  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

  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.

  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 nsiegmun@ovgu.deUNDrosenmue@ovgu.de

  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)

  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)

  31. 3 Domänenmodellierung • Überblick zu existierenden Featuremodellen • Einstiegspunkte • Buch: Czarnecki & Eisenecker • Kang et al.: Feature-Oriented Domain Analysis (FODA) Feasibility Study, 1990

  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

  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

  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

  35. 7 Produktkonfiguration • Konfigurationsprozess • Staged Configuration • Einstiegspunkte • Buch: Czarnecki & Eisenecker • Czarnecki et al.: Staged Configuration Using Feature Models, SPLC 2004

  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/

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

  38. 10 Organisatorische Aspekte • Team Struktur • Prozesse • Einstiegspunkte • Buch: Clements & Northrop (6) • Buch: Pohl et al. (19)

  39. 11 Wirtschaftliche Aspekte von SPLs • SPL pricing • Kosten (Entwicklung, Softwaretests, etc.) • Risiken • Einstiegspunkte • Buch: Pohl et al. (Kap. 20) • Buch: Clements & Northrop (6)

  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)

  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

  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

  43. 15 Domänenspezifische Sprachen • Übersicht • Verwendung im Kontext von SPLs • Einstiegspunkte • Buch: Czarnecki & Eisenecker

  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)

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

  46. Themen • 4 Beispiele Softwareproduktlinien • Computerspiele • Betriebssysteme • Datenbanken • Eingebettete Systeme im Automobil • Handy Software • Eigene Vorschläge

More Related