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

23
C A R L V ON O SS I ET Z KY Software Produktlinien: Einf¨ uhrung und ¨ Uberblick Johannes Diemke Vortrag im Rahmen des Seminars Software System Engineering im Wintersemester 2007/2008

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Fragen

Vielen Dank fur Ihre Aufmerksamkeit!

Johannes Diemke Software Produktlinien 13. Februar 2008 23/23