software produktlinien: einführung und Überblick (vortrag)
TRANSCRIPT
C A R LV O N
O S S I E T Z K YSoftware Produktlinien:Einfuhrung und Uberblick
Johannes Diemke
Vortrag im Rahmen des SeminarsSoftware System Engineeringim Wintersemester 2007/2008
Ubersicht
1 Motivation
2 Systematische Wiederverwendung
3 Software ProduktlinienSystemartefakteProduktraumVariablitat
Produktraum-VariablitatVariationspunkte
Produktlinien-ArchitekturProduktlinien-Prozesse
Domain EngineeringApplication EngineeringManagement
4 Fazit
Johannes Diemke Software Produktlinien 13. Februar 2008 2/23
Motivation
Probleme der Software-Technik
Steigende Komplexitat und Große zu entwickelnder Softwaresysteme
Softwaresysteme sollen immer leistungsfahiger, zuverlassiger,komplexer, gleichzeitig aber immer gunstiger in Produktion undWartung, sowie schneller in Entwicklung und Auslieferung werden
Eine Losung
Die systematische Wiederverwendung ermoglicht es diese scheinbarunvereinbaren Ziele zu erreichen
Insbesondere stellt die Entwicklung von Software Produktlinien einender leistungsfahigeren Ansatze der systematischenWiederverwendung dar
Johannes Diemke Software Produktlinien 13. Februar 2008 3/23
Systematische Wiederverwendung
Wiederverwendung
Ein schon lange verfolgter Ansatz, dessen Nutzen relativ fruh auchfur die Software-Technik erkannt wurde
Es werden, wie bei den meisten anderen technischen Disziplinen, imEntwurfsprozess vorgefertigte Komponenten genutzt
Vorteile der Wiederverwendung:
I geringere EntwicklungskostenI hohere ZuverlassigkeitI beschleunigte Entwicklung
Systematische Wiederverwendung
Um eine systematische Wiederverwendung zu erreichen, muss dieseallerdings fruhzeitig in den Entwurfsprozess mit einbezogen werdenund richtig geplant sein
Johannes Diemke Software Produktlinien 13. Februar 2008 4/23
Software Produktlinien
Grundlage
Softwarehersteller spezialisieren sich haufig auf spezielleAnwendungsdomanen und entwickeln fur diese eine Menge vonProduktvarianten (Produktfamilie)
Produktvarianten haben aber naturgemaß eine gemeinsameGrundstruktur und eine Vielzahl ahnlicher Eigenschaften
Ziel des Produktlinien Ansatzes
Ausnutzung des vorhandenen Wiederverwendungspotentials einerProduktfamilie, indem die dazu notige Infrastruktur geschaffen wird
Johannes Diemke Software Produktlinien 13. Februar 2008 5/23
Software Produktlinien
Definition
Eine Software Produktlinie (SPL) ist eine Menge von softwareintensivenSystemen, die sich eine Reihe von Systemartefakten teilen, einerspeziellen Anwendungsdomane angehoren und eine gemeinsamesystemspezifische 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 Basiseiner Menge gemeinsam genutzter Systemartefakte
Systematische Wiederverwendung wird dabei von Anfang an in denEntwurfsprozess mit einbezogen
Johannes Diemke Software Produktlinien 13. Februar 2008 6/23
Software Produktlinien
Systemartefakte
Konkrete Produktvarianten werden im Produktlinien-Ansatz durchdas Auswahlen und Anpassen von Systemartefakten erzeugt
Systemartefakte sind die Grundbausteine der Produktlinie zurErstellung von Produktvarianten
Mogliche Systemartefakte:
I wiederverwendbare SoftwarekomponentenI SoftwarearchitekturenI ModuleI FrameworksI Plattformdienste
Eine besondere Bedeutung kommt den Softwarearchitekturen zu,welche erst eine Wiederverwendung und Organisation der anderenSystemartefakte ermoglichen
Johannes Diemke Software Produktlinien 13. Februar 2008 7/23
Software Produktlinien
Systemartefakte (Forts.)Mindestens genauso wichtig sind Systemartefakte die Erfahrungenund das angesammelte strategische Wissen der Anwendungsdomanewiederspiegeln:
I GeschaftsmodelleI AnforderungsspezifikationenI ProjektplaneI BudgetsI TestfalleI domanenspezifische MusterI Prozesse und Richtlinien
Jedes erstellte Systemartefakt ist ein Teil der Software Produktlinieund wird in einem Artefaktkatalog inventarisiert
Johannes Diemke Software Produktlinien 13. Februar 2008 8/23
Software Produktlinien
Systemartefakte (Forts.)
Die Systemartefakte, mit den fur eine Produktvarianteproduktspezifischen Entscheidungen, dienen im Produktionsprozessals Basis zur Erstellung neuer Produktvarianten
ProduktionsprozessSystemartefakte Produktvarianten
produktspezifischeEntscheidungen
Johannes Diemke Software Produktlinien 13. Februar 2008 9/23
Software Produktlinien
ProduktraumDefiniert Umfang einer Software Produktlinie
I Auflistung und Beschreibung der zu der Software Produktliniegehorenden Produktvarianten
I Dokumentation der Anforderungen und Unterschiede zwischeneinzelnen Produktvarianten
Identifikation von Gemeinsamkeiten zwischen den Produktvariantender Produktlinie
I Produkt×Feature-Tabellen
Darstellung von Abhangigkeiten zwischen den einzelnen Features
I Feature-Graphen
Johannes Diemke Software Produktlinien 13. Februar 2008 10/23
Software Produktlinien
VariablitatProduktvarianten einer Software Produktlinie zeichnen sich durcheine Vielzahl gemeinsamer und variierender Features aus
I Variablitatsaspekte spielen bei der Entwicklung von SoftwareProduktlinien eine ubergeordnete Rolle
Unter Variablitat wird im Allgemeinen die Moglichkeit verstanden,Systeme oder Komponenten zu andern und an individuelleBedurfnisse anzupassen.
Bei Produktlinien bezeichnet sie die Unterschiede derProduktvarianten und definiert den Rahmen, in dem diese durchSelektion von Systemartefakten individuell angepasst werden konnen
Tritt in unterschiedlichster Form auf:
I Unterstutzung mehrerer BetriebssystemeI komplexe Anpassung von Systemartefakten
Johannes Diemke Software Produktlinien 13. Februar 2008 11/23
Software Produktlinien
Produktraum-VariablitatBeschreibung der Variablitat des Produktraums
I Feature×Produkt-TabellenI Feature-Graphen
Definition
Features beschreiben Merkmale der Software Produktlinie, dieGemeinsamkeiten und Unterschiede der einzelnen Produktvariantendarstellen.
Features lassen sich weiter klassifizieren in:
I externe FeaturesI notwendige FeaturesI optionale Features
Johannes Diemke Software Produktlinien 13. Februar 2008 12/23
Software Produktlinien
Produktraum-Variablitat (Forts.)
Beschreibung eines Produktraums einer Software Produktlinie zurErstellung mehrerer Varianten eines Mail-Clients mit Hilfe einesFeature-Graphen:
« external »linux
Mail Client
« external »Type Message
« external »TCP Connection Receive Message Runtime Platform
« external »win32IMAP
« external »vi
Pop3EditSignature
Send Message
« external »Emacs Internal Editor
runtimeruntime
runtime
compiletime
or specialization composition
xor specialization optional feature
Johannes Diemke Software Produktlinien 13. Februar 2008 13/23
Software Produktlinien
Variationspunkte
Produkt- und systemumgebungsspezifische Variablitat wird durch sogenannte Variationspunkte abgebildet
Variationspunkte sind Punkte im Entwicklungsablauf, an denenEntwurfsentscheidungen bezuglich der Variablitat getroffen werdenmussen, um eine konkrete Variante eines Features zu erhalten
Es muss eine aus mehreren Entwurfsalternativen gewahlt werden
I Binden von Variationspunkten
Das Binden kann dabei zu unterschiedlichen Zeitpunktenstattfinden:
I ArchitekturentwurfI FeinentwurfI ImplementierungI UbersetzungI Laufzeit
Johannes Diemke Software Produktlinien 13. Februar 2008 14/23
Software Produktlinien
Produktlinien-Architektur
stellt gemeinsame generische Referenzarchitektur fur alle imProduktraum liegenden Produktvarianten zur Verfugung
konkrete Produktvarianten leiten ihre Architektur von derProduktlinien-Architektur ab
Durch die fur die gesamte Produktlinie gultige Architektur kann furalle Produkte die Erfullung nichtfunktionaler Anforderungensichergestellt werden:
I PerformanceI VerfugbarkeitI SkalierbarkeitI Erweiterbarkeit
Ziel ist es eine Produktlinien-Architektur zu entwickeln, welche denAnforderungen der Produktvarianten der gesamten Produktliniegenugt
Johannes Diemke Software Produktlinien 13. Februar 2008 15/23
Software Produktlinien
Produktlinien-Architektur (Forts.)
Eine Produktlinien-Architektur bietet verschiedeneVariationsmoglichkeiten hinsichtlich ihrer Komponenten undKonnektoren
Definiert explizit welche Komponenten obligatorisch, optional undvariabel sind und wie diese durch konkrete Komponente instanziiertwerden
Im Idealfall ist es fur Produktvarianten moglich, direkt dieReferenzarchitektur zu nutzen
I Bindung der Variationspunkte durch Selektion konkreterKomponenten in der Architektur
Teilweise muss die Referenzarchitektur selbst an dieproduktspezifischen Anforderungen angepasst werden
Johannes Diemke Software Produktlinien 13. Februar 2008 16/23
Software Produktlinien
Produktlinien-ProzesseBei der Entwicklung von Software Produktlinien wird zwischen dreizentralen und iterativen Prozessen unterschieden:
I Domain EngineeringI Application EngineeringI Management
Domain EngineeringDas Domain Engineering lasst in drei weitere Teilprozesseunterteilen:
I Domanenanalyse & ScopingI ArchitekturentwurfI Implementierung
Johannes Diemke Software Produktlinien 13. Februar 2008 17/23
Software Produktlinien
Domain Engineering (Forts.)
Die Domanenanalyse umfasst die Anforderungsanalyse fur diegesamte Produktlinie und dokumentiert die Gemeinsamkeiten undUnterschiede aller geplanter Produktvarianten
In der Scopingphase werden alle Informationen zu den geplantenProdukten gesammelt
In der Architekturentwurfsphase wird eine Produktlinien-Architekturentworfen
In der Implementierungsphase werden die Systemartefakte konzipiertund entwickelt
Ziel des Domain Engineering ist es, dem Application EngineeringProzess eine technische und organisatorische Plattform zurVerfugung zu stellen
Johannes Diemke Software Produktlinien 13. Februar 2008 18/23
Software Produktlinien
Application Engineering
Bezeichnet den Teilprozess in dem konkrete Produktvarianten durchdas Auswahlen und Anpassen von Systemartefakten erzeugt werden
Im Idealfall entstehen neue Produktvarianten durch dasZusammenbauen nach einem Produktionsplan
I Verlagerung des Schwerpunkts vom Programmieren zum Integrieren
Fur jede Produktvariante werden drei Phasen durchlaufen:
I SystemanalyseI SystementwurfI Systemimplementierung
Die Anforderungen einer konkreten Produktvariante konnenwiederum dazu fuhren, dass der Domain Engineering Prozessangestoßen wird um die Plattform entsprechend anzupassen undgegebenenfalls um Systemartefakte zu erweitern
Johannes Diemke Software Produktlinien 13. Februar 2008 19/23
Software Produktlinien
Management
Das Management unterstutzt und koordiniert die beiden anderenProzesse
Unterscheidung zwischen:
I technischem ManagementI organisatorischem Management
Das technische Management uberwacht die Entwicklung derSystemartefakte und der konkreten Produktvarianten
Das organisatorische Management ist fur die Planung, Priorisierungund Verteilung der Ressourcen zustandig
Das Management ist von entscheidender Bedeutung fur dieerfolgreiche Umsetzung eienr Software Produktlinie
Johannes Diemke Software Produktlinien 13. Februar 2008 20/23
Software Produktlinien
Produktlinien-Prozesse
Die drei zentralen Prozesse bei der Entwicklung von SoftwareProduktlinien:
Prozesse
Richtlinien
Architektur
Infrastruktur
Werkzeuge
Komponenten
Anforderungen
Neue Artefakte
Application EngineeringProcess
Domain EngineeringProcess
Produkte
Product Line ManagementProcess
Johannes Diemke Software Produktlinien 13. Februar 2008 21/23
Fazit
Die Einfuhrung von Software Produktlinien ist ein vielversprechenderAnsatz
I Reduktion der EntwicklungskostenI Erhohung der Produktzuverlassigkeit und ProduktqualitatI beschleunigte Entwicklung
Die Komplexitat der Einfuhrung, des Aufbaus und des Betriebs stelltaber eine große Hurde fur die Ausschopfung des vorhandenenWiederverwendungspotentials dar
I Es ist viel Zeit und eine hohe Vorabinvestition notig, um eineProduktlinie einzufuhren
I Wahrend der Aufbauphase wirft eine Produtkline keine Ertrage abI Aus diesen Grunden scheitern viele Unternehmen bei dem Versuch
eine Produktlinie einzufuhren
Ist eine Produktfamilie etabliert, treten die Nachteile immer mehr inden 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