Software Produktlinien: Einführung und Überblick (Vortrag)
Upcoming SlideShare
Loading in...5
×
 

Software Produktlinien: Einführung und Überblick (Vortrag)

on

  • 458 views

 

Statistics

Views

Total Views
458
Views on SlideShare
458
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Software Produktlinien: Einführung und Überblick (Vortrag) Software Produktlinien: Einführung und Überblick (Vortrag) Presentation Transcript

  • CARL VONOSSIETZKY Software Produktlinien: ¨ Einf¨hrung und Uberblick u Johannes Diemke Vortrag im Rahmen des Seminars Software System Engineering im Wintersemester 2007/2008
  • ¨Ubersicht1 Motivation2 Systematische Wiederverwendung3 Software Produktlinien Systemartefakte Produktraum Variablit¨t a Produktraum-Variablit¨t a Variationspunkte Produktlinien-Architektur Produktlinien-Prozesse Domain Engineering Application Engineering Management4 Fazit Johannes Diemke Software Produktlinien 13. Februar 2008 2/23
  • MotivationProbleme der Software-Technik Steigende Komplexit¨t und Gr¨ße zu entwickelnder Softwaresysteme a o Softwaresysteme sollen immer leistungsf¨higer, zuverl¨ssiger, a a komplexer, gleichzeitig aber immer g¨nstiger in Produktion und u Wartung, sowie schneller in Entwicklung und Auslieferung werdenEine L¨sung o Die systematische Wiederverwendung erm¨glicht es diese scheinbar o unvereinbaren Ziele zu erreichen Insbesondere stellt die Entwicklung von Software Produktlinien einen der leistungsf¨higeren Ans¨tze der systematischen a a Wiederverwendung dar Johannes Diemke Software Produktlinien 13. Februar 2008 3/23
  • Systematische WiederverwendungWiederverwendung Ein schon lange verfolgter Ansatz, dessen Nutzen relativ fr¨h auch u f¨r die Software-Technik erkannt wurde u Es werden, wie bei den meisten anderen technischen Disziplinen, im Entwurfsprozess vorgefertigte Komponenten genutzt Vorteile der Wiederverwendung: geringere Entwicklungskosten h¨here Zuverl¨ssigkeit o a beschleunigte EntwicklungSystematische Wiederverwendung Um eine systematische Wiederverwendung zu erreichen, muss diese allerdings fr¨hzeitig in den Entwurfsprozess mit einbezogen werden u und richtig geplant sein Johannes Diemke Software Produktlinien 13. Februar 2008 4/23
  • Software ProduktlinienGrundlage Softwarehersteller spezialisieren sich h¨ufig auf spezielle a Anwendungsdom¨nen und entwickeln f¨r diese eine Menge von a u Produktvarianten (Produktfamilie) Produktvarianten haben aber naturgem¨ß eine gemeinsame a Grundstruktur und eine Vielzahl ¨hnlicher Eigenschaften aZiel des Produktlinien Ansatzes Ausnutzung des vorhandenen Wiederverwendungspotentials einer Produktfamilie, indem die dazu n¨tige Infrastruktur geschaffen wird o Johannes Diemke Software Produktlinien 13. Februar 2008 5/23
  • Software ProduktlinienDefinitionEine Software Produktlinie (SPL) ist eine Menge von softwareintensivenSystemen, die sich eine Reihe von Systemartefakten teilen, einerspeziellen Anwendungsdom¨ne angeh¨ren und eine gemeinsame a osystemspezifische Architektur besitzen. Jedes dieser Systeme ist auf dieeine oder andere Art spezialisiert, der gemeinsame Kern der Systeme wirdjedoch jedesmal wiederverwendet.Software Produktlinien Ansatz Erstellung einer Menge von softwareintensiven Systemen auf Basis einer Menge gemeinsam genutzter Systemartefakte Systematische Wiederverwendung wird dabei von Anfang an in den Entwurfsprozess mit einbezogen Johannes Diemke Software Produktlinien 13. Februar 2008 6/23
  • Software ProduktlinienSystemartefakte Konkrete Produktvarianten werden im Produktlinien-Ansatz durch das Ausw¨hlen und Anpassen von Systemartefakten erzeugt a Systemartefakte sind die Grundbausteine der Produktlinie zur Erstellung von Produktvarianten M¨gliche Systemartefakte: o wiederverwendbare Softwarekomponenten Softwarearchitekturen Module Frameworks Plattformdienste Eine besondere Bedeutung kommt den Softwarearchitekturen zu, welche erst eine Wiederverwendung und Organisation der anderen Systemartefakte erm¨glichen o Johannes Diemke Software Produktlinien 13. Februar 2008 7/23
  • Software ProduktlinienSystemartefakte (Forts.) Mindestens genauso wichtig sind Systemartefakte die Erfahrungen und das angesammelte strategische Wissen der Anwendungsdom¨ne a wiederspiegeln: Gesch¨ftsmodelle a Anforderungsspezifikationen Projektpl¨ne a Budgets Testf¨lle a dom¨nenspezifische Muster a Prozesse und Richtlinien Jedes erstellte Systemartefakt ist ein Teil der Software Produktlinie und wird in einem Artefaktkatalog inventarisiert Johannes Diemke Software Produktlinien 13. Februar 2008 8/23
  • Software ProduktlinienSystemartefakte (Forts.) Die Systemartefakte, mit den f¨r eine Produktvariante u produktspezifischen Entscheidungen, dienen im Produktionsprozess als Basis zur Erstellung neuer Produktvarianten Systemartefakte Produktionsprozess Produktvarianten produktspezifische Entscheidungen Johannes Diemke Software Produktlinien 13. Februar 2008 9/23
  • Software ProduktlinienProduktraum Definiert Umfang einer Software Produktlinie Auflistung und Beschreibung der zu der Software Produktlinie geh¨renden Produktvarianten o Dokumentation der Anforderungen und Unterschiede zwischen einzelnen Produktvarianten Identifikation von Gemeinsamkeiten zwischen den Produktvarianten der Produktlinie Produkt×Feature-Tabellen Darstellung von Abh¨ngigkeiten zwischen den einzelnen Features a Feature-Graphen Johannes Diemke Software Produktlinien 13. Februar 2008 10/23
  • Software ProduktlinienVariablit¨t a Produktvarianten einer Software Produktlinie zeichnen sich durch eine Vielzahl gemeinsamer und variierender Features aus Variablit¨tsaspekte spielen bei der Entwicklung von Software a Produktlinien eine ubergeordnete Rolle ¨ Unter Variablit¨t wird im Allgemeinen die M¨glichkeit verstanden, a o Systeme oder Komponenten zu ¨ndern und an individuelle a Bed¨rfnisse anzupassen. u Bei Produktlinien bezeichnet sie die Unterschiede der Produktvarianten und definiert den Rahmen, in dem diese durch Selektion von Systemartefakten individuell angepasst werden k¨nnen o Tritt in unterschiedlichster Form auf: Unterst¨tzung mehrerer Betriebssysteme u komplexe Anpassung von Systemartefakten Johannes Diemke Software Produktlinien 13. Februar 2008 11/23
  • Software ProduktlinienProduktraum-Variablit¨t a Beschreibung der Variablit¨t des Produktraums a Feature×Produkt-Tabellen Feature-GraphenDefinitionFeatures beschreiben Merkmale der Software Produktlinie, dieGemeinsamkeiten und Unterschiede der einzelnen Produktvariantendarstellen. Features lassen sich weiter klassifizieren in: externe Features notwendige Features optionale Features Johannes Diemke Software Produktlinien 13. Februar 2008 12/23
  • Software ProduktlinienProduktraum-Variablit¨t (Forts.) a Beschreibung eines Produktraums einer Software Produktlinie zur Erstellung mehrerer Varianten eines Mail-Clients mit Hilfe eines Feature-Graphen: Mail Client « external » « external » Receive Message Send Message Runtime Platform TCP Connection Type Message runtime runtime compiletime « external » « external » Signature Edit Pop3 IMAP win32 linux runtime or specialization composition « external » « external » Internal Editor vi Emacs xor specialization optional feature Johannes Diemke Software Produktlinien 13. Februar 2008 13/23
  • Software ProduktlinienVariationspunkte Produkt- und systemumgebungsspezifische Variablit¨t wird durch so a genannte Variationspunkte abgebildet Variationspunkte sind Punkte im Entwicklungsablauf, an denen Entwurfsentscheidungen bez¨glich der Variablit¨t getroffen werden u a m¨ssen, um eine konkrete Variante eines Features zu erhalten u Es muss eine aus mehreren Entwurfsalternativen gew¨hlt werden a Binden von Variationspunkten Das Binden kann dabei zu unterschiedlichen Zeitpunkten stattfinden: Architekturentwurf Feinentwurf Implementierung ¨ Ubersetzung Laufzeit Johannes Diemke Software Produktlinien 13. Februar 2008 14/23
  • Software ProduktlinienProduktlinien-Architektur stellt gemeinsame generische Referenzarchitektur f¨r alle im u Produktraum liegenden Produktvarianten zur Verf¨gung u konkrete Produktvarianten leiten ihre Architektur von der Produktlinien-Architektur ab Durch die f¨r die gesamte Produktlinie g¨ltige Architektur kann f¨r u u u alle Produkte die Erf¨llung nichtfunktionaler Anforderungen u sichergestellt werden: Performance Verf¨gbarkeit u Skalierbarkeit Erweiterbarkeit Ziel ist es eine Produktlinien-Architektur zu entwickeln, welche den Anforderungen der Produktvarianten der gesamten Produktlinie gen¨gt u Johannes Diemke Software Produktlinien 13. Februar 2008 15/23
  • Software ProduktlinienProduktlinien-Architektur (Forts.) Eine Produktlinien-Architektur bietet verschiedene Variationsm¨glichkeiten hinsichtlich ihrer Komponenten und o Konnektoren Definiert explizit welche Komponenten obligatorisch, optional und variabel sind und wie diese durch konkrete Komponente instanziiert werden Im Idealfall ist es f¨r Produktvarianten m¨glich, direkt die u o Referenzarchitektur zu nutzen Bindung der Variationspunkte durch Selektion konkreter Komponenten in der Architektur Teilweise muss die Referenzarchitektur selbst an die produktspezifischen Anforderungen angepasst werden Johannes Diemke Software Produktlinien 13. Februar 2008 16/23
  • Software ProduktlinienProduktlinien-Prozesse Bei der Entwicklung von Software Produktlinien wird zwischen drei zentralen und iterativen Prozessen unterschieden: Domain Engineering Application Engineering ManagementDomain Engineering Das Domain Engineering l¨sst in drei weitere Teilprozesse a unterteilen: Dom¨nenanalyse & Scoping a Architekturentwurf Implementierung Johannes Diemke Software Produktlinien 13. Februar 2008 17/23
  • Software ProduktlinienDomain Engineering (Forts.) Die Dom¨nenanalyse umfasst die Anforderungsanalyse f¨r die a u gesamte Produktlinie und dokumentiert die Gemeinsamkeiten und Unterschiede aller geplanter Produktvarianten In der Scopingphase werden alle Informationen zu den geplanten Produkten gesammelt In der Architekturentwurfsphase wird eine Produktlinien-Architektur entworfen In der Implementierungsphase werden die Systemartefakte konzipiert und entwickelt Ziel des Domain Engineering ist es, dem Application Engineering Prozess eine technische und organisatorische Plattform zur Verf¨gung zu stellen u Johannes Diemke Software Produktlinien 13. Februar 2008 18/23
  • Software ProduktlinienApplication Engineering Bezeichnet den Teilprozess in dem konkrete Produktvarianten durch das Ausw¨hlen und Anpassen von Systemartefakten erzeugt werden a Im Idealfall entstehen neue Produktvarianten durch das Zusammenbauen nach einem Produktionsplan Verlagerung des Schwerpunkts vom Programmieren zum Integrieren F¨r jede Produktvariante werden drei Phasen durchlaufen: u Systemanalyse Systementwurf Systemimplementierung Die Anforderungen einer konkreten Produktvariante k¨nnen o wiederum dazu f¨hren, dass der Domain Engineering Prozess u angestoßen wird um die Plattform entsprechend anzupassen und gegebenenfalls um Systemartefakte zu erweitern Johannes Diemke Software Produktlinien 13. Februar 2008 19/23
  • Software ProduktlinienManagement Das Management unterst¨tzt und koordiniert die beiden anderen u Prozesse Unterscheidung zwischen: technischem Management organisatorischem Management Das technische Management uberwacht die Entwicklung der ¨ Systemartefakte und der konkreten Produktvarianten Das organisatorische Management ist f¨r die Planung, Priorisierung u und Verteilung der Ressourcen zust¨ndig a Das Management ist von entscheidender Bedeutung f¨r die u erfolgreiche Umsetzung eienr Software Produktlinie Johannes Diemke Software Produktlinien 13. Februar 2008 20/23
  • Software ProduktlinienProduktlinien-Prozesse Die drei zentralen Prozesse bei der Entwicklung von Software Produktlinien: Domain Engineering Process Prozesse Richtlinien Architektur Anforderungen Product Line Management Infrastruktur Neue Artefakte Process Werkzeuge Komponenten Application Engineering Produkte Process Johannes Diemke Software Produktlinien 13. Februar 2008 21/23
  • Fazit Die Einf¨hrung von Software Produktlinien ist ein vielversprechender u Ansatz Reduktion der Entwicklungskosten Erh¨hung der Produktzuverl¨ssigkeit und Produktqualit¨t o a a beschleunigte Entwicklung Die Komplexit¨t der Einf¨hrung, des Aufbaus und des Betriebs stellt a u aber eine große H¨rde f¨r die Aussch¨pfung des vorhandenen u u o Wiederverwendungspotentials dar Es ist viel Zeit und eine hohe Vorabinvestition n¨tig, um eine o Produktlinie einzuf¨hren u W¨hrend der Aufbauphase wirft eine Produtkline keine Ertr¨ge ab a a Aus diesen Gr¨nden scheitern viele Unternehmen bei dem Versuch u eine Produktlinie einzuf¨hren u Ist eine Produktfamilie etabliert, treten die Nachteile immer mehr in den Hintergrund und die Vorteile kommen zum Vorschein Johannes Diemke Software Produktlinien 13. Februar 2008 22/23
  • Fragen Vielen Dank fur Ihre Aufmerksamkeit! ¨ Johannes Diemke Software Produktlinien 13. Februar 2008 23/23