Software Produktlinien: Einführung und Überblick (Vortrag)
1. CARL
VON
OSSIETZKY
Software Produktlinien:
¨
Einf¨hrung und Uberblick
u
Johannes Diemke
Vortrag im Rahmen des Seminars
Software System Engineering
im Wintersemester 2007/2008
2. ¨
Ubersicht
1 Motivation
2 Systematische Wiederverwendung
3 Software Produktlinien
Systemartefakte
Produktraum
Variablit¨t
a
Produktraum-Variablit¨t
a
Variationspunkte
Produktlinien-Architektur
Produktlinien-Prozesse
Domain Engineering
Application Engineering
Management
4 Fazit
Johannes Diemke Software Produktlinien 13. Februar 2008 2/23
3. Motivation
Probleme 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 werden
Eine 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
4. Systematische Wiederverwendung
Wiederverwendung
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 Entwicklung
Systematische 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
5. Software Produktlinien
Grundlage
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
a
Ziel 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
6. Software Produktlinien
Definition
Eine Software Produktlinie (SPL) ist eine Menge von softwareintensiven
Systemen, die sich eine Reihe von Systemartefakten teilen, einer
speziellen Anwendungsdom¨ne angeh¨ren und eine gemeinsame
a o
systemspezifische Architektur besitzen. Jedes dieser Systeme ist auf die
eine oder andere Art spezialisiert, der gemeinsame Kern der Systeme wird
jedoch 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
7. Software Produktlinien
Systemartefakte
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
8. Software Produktlinien
Systemartefakte (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
9. Software Produktlinien
Systemartefakte (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
10. Software Produktlinien
Produktraum
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
11. Software Produktlinien
Variablit¨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
12. Software Produktlinien
Produktraum-Variablit¨t
a
Beschreibung der Variablit¨t des Produktraums
a
Feature×Produkt-Tabellen
Feature-Graphen
Definition
Features beschreiben Merkmale der Software Produktlinie, die
Gemeinsamkeiten und Unterschiede der einzelnen Produktvarianten
darstellen.
Features lassen sich weiter klassifizieren in:
externe Features
notwendige Features
optionale Features
Johannes Diemke Software Produktlinien 13. Februar 2008 12/23
13. Software Produktlinien
Produktraum-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
14. Software Produktlinien
Variationspunkte
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
15. Software Produktlinien
Produktlinien-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
16. Software Produktlinien
Produktlinien-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
17. Software Produktlinien
Produktlinien-Prozesse
Bei der Entwicklung von Software Produktlinien wird zwischen drei
zentralen und iterativen Prozessen unterschieden:
Domain Engineering
Application Engineering
Management
Domain 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
18. Software Produktlinien
Domain 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
19. Software Produktlinien
Application 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
20. Software Produktlinien
Management
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
21. Software Produktlinien
Produktlinien-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
22. 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
23. Fragen
Vielen Dank fur Ihre Aufmerksamkeit!
¨
Johannes Diemke Software Produktlinien 13. Februar 2008 23/23