Software Product Line Engineering



Ähnliche Dokumente
Unterschiede zur Klassischen Software-Entwicklung. SPL versus klassische SE Tim Serowski 1

Comparing Software Factories and Software Product Lines

Application Requirements Engineering

Vorlesung vom Einführung in die geschäftsprozessorientierte Unternehmensführung

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Variabilität in Produktlinien und das orthogonale Variabilitätsmodell

Mobiles SAP für Entscheider. Permanente Verfügbarkeit der aktuellen Unternehmenskennzahlen durch den mobilen Zugriff auf SAP ERP.

Prof. Dr. Norbert Pohlmann, Institut für Internet Sicherheit - if(is), Fachhochschule Gelsenkirchen. Lage der IT-Sicherheit im Mittelstand

Welches sind die wichtigsten Aufgaben des Strategischen Projektmanagements? Die Aufgaben des Strategischen Projektmanagements sind wie folgt:

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

17 Architekturentwurf Vorgehen und Dokumentation

Wir helfen Ihnen, sich auf Ihre Kompetenzen zu konzentrieren.

Verknüpfung von kombinatorischem Plattformund individuellem Produkttest für Software-Produktlinien

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Product Line Engineering (PLE)

Transfer von Prozessen des Software-Produktlinien Engineering in die Elektrik/Elektronik- Architekturentwicklung von Fahrzeugen

Kapitel 10: Dokumentation

Online Intelligence Solutions TESTABLAUF. 7 Schritte für ein erfolgreiches Testing.

Test zur Bereitschaft für die Cloud

Übungen zur Softwaretechnik

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Programmmoduls für die CEMES-Plattform zur onlinebasierten Ermittlung der Leistungspunkte

Software Produktlinien: Einführung und Überblick

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Softwareentwicklung aus Sicht des Gehirns

Drei Wege zur sicheren Luftfracht Alternativen nach Einführung des zertifizierten bekannten Versenders

Ein mobiler Electronic Program Guide

Agile Softwareentwicklung in der Versicherungs-IT Fehlschlag oder Heilsbringer?

Prozessmanagement Modeerscheinung oder Notwendigkeit

Regulatorische Anforderungen an die Entwicklung von Medizinprodukten

STRATEGISCHE PERSONALPLANUNG FÜR KLEINE UND MITTLERE UNTERNEHMEN. Fachtagung CHANGE Papenburg Kathrin Großheim

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Projektarbeit POS II zum Thema Branchensoftware in der Druckindustrie. Ben Polter, Holger Räbiger, Kilian Mayer, Jochen Wied

ISO 9001:2015 REVISION. Die neue Struktur mit veränderten Schwerpunkten wurde am 23. September 2015 veröffentlicht und ist seit

Requirements Engineering I. Der Spezifikationsprozess!

FAQ 04/2015. Auswirkung der ISO auf 3SE53/3SF13 Positionsschalter.

Studienrichtung Eingebettete Systeme

Formale und gesetzliche Anforderungen an die Software-Entwicklung für deutsche Banken. Markus Sprunck

Energieberater - Was sind die Aufgaben eines Energieberaters?

Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen. Wir bringen Qualität. Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen

Wichtige Themen für die Strategie der Fachverlage (n = 58; Mehrfachnennungen)

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen:

Information zur Revision der ISO Sehr geehrte Damen und Herren,

ITIL und Entwicklungsmodelle: Die zwei Kulturen

DIE LEAD USER METHODE

Projektmanagementsoftware: Standard vs. Individual

2. Psychologische Fragen. Nicht genannt.

Energetische Klassen von Gebäuden

Comparison of Software Products using Software Engineering Metrics

SPI-Seminar : Interview mit einem Softwaremanager

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Erhebung von Anforderungen an den Einsatz von ebusiness-standards in kleinen und mittleren Unternehmen

Gussnummern-Lesesystem

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Muster. Selbstverantwortliches Lernen. für. Eine Mustersprache für die Waldorfpädagogik?

Leitbildentwicklung Einführung in Leitbildentwicklung und Prozessplanung

Verkaufsstätten. Dipl.- Ing.(FH) M.Eng.(TU) Thomas Höhne

Anforderungen an die HIS

Die Anwendung von Work of Leaders in drei Schritten

gallestro BPM - weit mehr als malen...

Wiederverwendung von automotive Software- Reifegradmodell, Technologie, Praxisbericht

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

I n f o r m a t i o n s s i c h e r h e i t i n G e m e i n d e n B e v ö l k e r u n g s z a h l < 6 000

Organisation des Qualitätsmanagements

15 Social-Media-Richtlinien für Unternehmen!

Logistikmanagement aus Kundensicht, ein unterschätztes Potenzial

Dokumentenverwaltung im Internet

ECO-Manager - Funktionsbeschreibung

3 2D Zeichnungen. 3.1 Grundsätzliches

Herausforderungen des Enterprise Endpoint Managements

Die wichtigsten Werkzeuge, um UNTERNEHMENSKULTUR BEWUSST zu gestalten.

Hochschule Ravensburg-Weingarten. Technik Wirtschaft Sozialwesen. Projektarbeit

Mit ApEx 3.1 eine Website mit integriertem CMS entwickeln. Enrico Mischorr merlin.zwo InfoDesign GmbH & Co. KG

Sicherheitstechnische Qualifizierung (SQ), Version 9.0

SPC Lehrgang Projektmanagement Basic

ammann projekt management

SWOT-Analyse. Der BABOK V2.0 (Business Analysis Body Of Knowledge) definiert die SWOT-Analyse wie folgt:

Executive Search oder Interim Management - was ändert sich durch digitale Transformation?

Objektorientierte Programmierung OOP

Kundenorientierte Produktentwicklung

Orientierungshilfen für SAP PI (Visualisierungen)

ST Xenn Ihr Tor zur unkomplizierten

Referat zum Thema. Wie können Gefährdungspotenziale für Vögel und Fledermäuse im Rahmen der regionalen Raumordnungsplanung berücksichtigt werden?

Architekturplanung und IS-Portfolio-

MCRServlet Table of contents

Änderungsmanagement bei iterativer SW-Entwicklung

Richtlinien über das Betriebskonzept für Einrichtungen der Heimpflege für Kinder und Jugendliche

Software Engineering. 3. Anforderungsanalyse. Franz-Josef Elmer, Universität Basel, WS 2006/07

Presse-Information

IMPLEMENTIERUNG VON GOOD PRACTICE ZUR REDUZIERUNG VON MEDIKATIONSFEHLERN IN SPITÄLERN

Interpretation des agilen Manifest

Workflow Systeme mit der Windows Workflow Foundation

WdF Manager Monitoring Büroarbeitsplätze 2014

Menü auf zwei Module verteilt (Joomla 3.4.0)

Informationssystem Kirche bei den Menschen

Ausgangslage, Rolle und Auftrag

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Lehrer: Einschreibemethoden

Optimierung der operativen Controllingaktivitäten

Transkript:

Software Product Line Engineering Grundlagen, Variabilität, Organisation Sebastian Steger steger@cs.tu-berlin.de WS 2005/2006 SWT: Entwicklung verteilter eingebetteter Systeme Software Product Line Engineering p. 1/25

Aufbau des Vortrags Grundlagen Was ist Software Product Line Engineering? Haupteigenschaften Entwicklung mit Hilfe von Software Product Line Engineering Software Product Line Engineering p. 2/25

Aufbau des Vortrags Grundlagen Was ist Software Product Line Engineering? Haupteigenschaften Entwicklung mit Hilfe von Software Product Line Engineering Variabilität Illustratives Beispiel Grundbegriffe Verschiedene Arten von Variabilität Software Product Line Engineering p. 2/25

Aufbau des Vortrags Grundlagen Was ist Software Product Line Engineering? Haupteigenschaften Entwicklung mit Hilfe von Software Product Line Engineering Variabilität Illustratives Beispiel Grundbegriffe Verschiedene Arten von Variabilität Organisation mögliche/notwendige Firmenstrukturen Übergang zum Software Product Line Engineering Software Product Line Engineering p. 2/25

Software Product Line Engineering Teil I: Grundlagen Software Product Line Engineering p. 3/25

Was ist Software Product Line Engineering? Klassische Softwareentwicklung (Einzelprodukt): Software Product Line Engineering p. 4/25

Was ist Software Product Line Engineering? Klassische Softwareentwicklung (Produktfamilie): Software Product Line Engineering p. 4/25

Was ist Software Product Line Engineering? Extraktion von Gemeinsamkeiten: Software Product Line Engineering p. 4/25

Was ist Software Product Line Engineering? Software Product Line Engineering: Software Product Line Engineering p. 4/25

Haupteigenschaften Individualisierte Massenfertigung Kostengünstige Entwicklung von Produkten im Gegensatz zu Individualsoftware Anpassungen an Kundenanforderungen im Gegensatz zum einzelnen fertigen Produkt Klassisches Beispiel: Automobilindustrie Software Product Line Engineering p. 5/25

Haupteigenschaften Individualisierte Massenfertigung Kostengünstige Entwicklung von Produkten im Gegensatz zu Individualsoftware Anpassungen an Kundenanforderungen im Gegensatz zum einzelnen fertigen Produkt Klassisches Beispiel: Automobilindustrie Gemeinsame Plattform Enthält alle Gemeinsamkeiten der abgeleiteten Produkte Stellt Basis für abgeleitete Produkte dar, ist jedoch kein eigenständiges Produkt Erlaubt eine effiziente Erstellung abgeleiteter Produkte durch Variabilität Software Product Line Engineering p. 5/25

Auswirkungen Geringere Entwicklungskosten Software Product Line Engineering p. 6/25

Auswirkungen Geringere Entwicklungskosten Kürzere Produkteinführungszeiten Software Product Line Engineering p. 6/25

Auswirkungen Geringere Entwicklungskosten Kürzere Produkteinführungszeiten Höhere Qualität Software Product Line Engineering p. 6/25

Auswirkungen Geringere Entwicklungskosten Kürzere Produkteinführungszeiten Höhere Qualität Höhere Zuverlässigkeit Software Product Line Engineering p. 6/25

Auswirkungen Geringere Entwicklungskosten Kürzere Produkteinführungszeiten Höhere Qualität Höhere Zuverlässigkeit Geringerer Wartungsaufwand Software Product Line Engineering p. 6/25

Auswirkungen Geringere Entwicklungskosten Kürzere Produkteinführungszeiten Höhere Qualität Höhere Zuverlässigkeit Geringerer Wartungsaufwand Bewältigung von Komplexität Software Product Line Engineering p. 6/25

Auswirkungen Geringere Entwicklungskosten Kürzere Produkteinführungszeiten Höhere Qualität Höhere Zuverlässigkeit Geringerer Wartungsaufwand Bewältigung von Komplexität Gemeinsames Look & Feel Software Product Line Engineering p. 6/25

Auswirkungen Geringere Entwicklungskosten Kürzere Produkteinführungszeiten Höhere Qualität Höhere Zuverlässigkeit Geringerer Wartungsaufwand Bewältigung von Komplexität Gemeinsames Look & Feel Hohe Umstrukturierungskosten Software Product Line Engineering p. 6/25

Auswirkungen Geringere Entwicklungskosten Kürzere Produkteinführungszeiten Höhere Qualität Höhere Zuverlässigkeit Geringerer Wartungsaufwand Bewältigung von Komplexität Gemeinsames Look & Feel Hohe Umstrukturierungskosten Hohe Plattformentwicklungskosten Software Product Line Engineering p. 6/25

Auswirkungen Geringere Entwicklungskosten Kürzere Produkteinführungszeiten Höhere Qualität Höhere Zuverlässigkeit Geringerer Wartungsaufwand Bewältigung von Komplexität Gemeinsames Look & Feel Hohe Umstrukturierungskosten Hohe Plattformentwicklungskosten Lange Plattformentwicklungszeit Software Product Line Engineering p. 6/25

Entwicklung der Plattform Anforderungen: Identifizierung der Gemeinsamkeiten, Definition der Variabiltät Software Product Line Engineering p. 7/25

Entwicklung der Plattform Anforderungen: Identifizierung der Gemeinsamkeiten, Definition der Variabiltät Architektur: Definiert die grobe Struktur und die wiederverwendbaren Teile aller Produkte. Variabilität und Erweiterbarkeit hat höchste Priorität. Software Product Line Engineering p. 7/25

Entwicklung der Plattform Anforderungen: Identifizierung der Gemeinsamkeiten, Definition der Variabiltät Architektur: Definiert die grobe Struktur und die wiederverwendbaren Teile aller Produkte. Variabilität und Erweiterbarkeit hat höchste Priorität. Realisierung: Beschränkung auf einzelne wiederverwendbare, konfigurierbare Komponenten; keine fertige Applikation. Software Product Line Engineering p. 7/25

Entwicklung der Plattform Anforderungen: Identifizierung der Gemeinsamkeiten, Definition der Variabiltät Architektur: Definiert die grobe Struktur und die wiederverwendbaren Teile aller Produkte. Variabilität und Erweiterbarkeit hat höchste Priorität. Realisierung: Beschränkung auf einzelne wiederverwendbare, konfigurierbare Komponenten; keine fertige Applikation. Testing: Keine Applikation zum Testen verfügbar Beschränkung auf das Testen einzelner Komponenten. Entwicklung einer (minimalen) Testapplikation. Software Product Line Engineering p. 7/25

Entwicklung der Produkte Anforderungen: Identifizierung der Anforderungsabdeckung durch die Plattform. Software Product Line Engineering p. 8/25

Entwicklung der Produkte Anforderungen: Identifizierung der Anforderungsabdeckung durch die Plattform. Architektur: Aufbau auf der existierenden Plattformarchitektur. Auswahl der Varianten, die die Plattform bietet. Software Product Line Engineering p. 8/25

Entwicklung der Produkte Anforderungen: Identifizierung der Anforderungsabdeckung durch die Plattform. Architektur: Aufbau auf der existierenden Plattformarchitektur. Auswahl der Varianten, die die Plattform bietet. Realisierung: Hauptaufgabe: Auswahl und Konfiguration der wiederverwendbaren Komponenten der Plattform. Applikationsspezifische Realisierungen müssen an die Plattformstruktur angepasst werden. Software Product Line Engineering p. 8/25

Entwicklung der Produkte Anforderungen: Identifizierung der Anforderungsabdeckung durch die Plattform. Architektur: Aufbau auf der existierenden Plattformarchitektur. Auswahl der Varianten, die die Plattform bietet. Realisierung: Hauptaufgabe: Auswahl und Konfiguration der wiederverwendbaren Komponenten der Plattform. Applikationsspezifische Realisierungen müssen an die Plattformstruktur angepasst werden. Testing: Test der applikationsspezifischen Teile, sowie der Plattform in der definierten Konfiguration. Software Product Line Engineering p. 8/25

Software Product Line Engineering Teil II: Variabilität Software Product Line Engineering p. 9/25

Beispiel: MP3 - Player USB MSD Treiber Zugriff auf Flash Speicher Dekodierer Userinterface USB MSD Treiber Zugriff auf Festplatte Dekodierer Userinterface Zugriff auf CD-Laufwerk Anti-Shock Dekodierer Userinterface Software Product Line Engineering p. 10/25

Beispiel: MP3 - Player Plattform Userinterface Dekodierer USB MSD Treiber Zugriff auf Flash Speicher USB MSD Treiber Zugriff auf Festplatte Zugriff auf CD-Laufwerk Anti-Shock Software Product Line Engineering p. 10/25

Beispiel: MP3 - Player Plattform Userinterface USB MSD Treiber Dekodierer Datenzugriff Anti-Shock Software Product Line Engineering p. 10/25

Variabilität Grundlegendes Konzept von Software Product Line Engineering Software Product Line Engineering p. 11/25

Variabilität Grundlegendes Konzept von Software Product Line Engineering Ermöglicht individualisierte Massenfertigung Software Product Line Engineering p. 11/25

Variabilität Grundlegendes Konzept von Software Product Line Engineering Ermöglicht individualisierte Massenfertigung Ermöglicht detaillierte Konfiguration der Plattform Software Product Line Engineering p. 11/25

Variabilität Grundlegendes Konzept von Software Product Line Engineering Ermöglicht individualisierte Massenfertigung Ermöglicht detaillierte Konfiguration der Plattform Notwendigkeit der Modellierung der Variabilität Software Product Line Engineering p. 11/25

Variabilität Grundlegendes Konzept von Software Product Line Engineering Ermöglicht individualisierte Massenfertigung Ermöglicht detaillierte Konfiguration der Plattform Notwendigkeit der Modellierung der Variabilität Variabilität in der realen Welt wird repräsentiert durch: Variabilitäts-Subjekt Variabilitäts-Objekt Software Product Line Engineering p. 11/25

Variabilität Grundlegendes Konzept von Software Product Line Engineering Ermöglicht individualisierte Massenfertigung Ermöglicht detaillierte Konfiguration der Plattform Notwendigkeit der Modellierung der Variabilität Variabilität in der realen Welt wird repräsentiert durch: Variabilitäts-Subjekt Variabilitäts-Objekt Variabilität der Plattform(Modell) wird repräsentiert durch: Variationspunkt Variante Software Product Line Engineering p. 11/25

Variabilitäts-Subjekt/-Objekt Variabilitäts-Subjekt ist eine real existierende variable Größe. Variabilitäts-Objekt ist eine konktete Instanz eines Variabilitäts-Subjekts. Software Product Line Engineering p. 12/25

Variabilitäts-Subjekt/-Objekt Variabilitäts-Subjekt ist eine real existierende variable Größe. Variabilitäts-Objekt ist eine konktete Instanz eines Variabilitäts-Subjekts. Software Product Line Engineering p. 12/25

Variationspunkt/Variante Variationspunkt ist ein durch Kontextinformation ergänztes Modell eines Variabilitätssubjektes. Variante ist ein Repräsentant eines Variabilitäts-Objekts innerhalb einer Variationspunkt. Software Product Line Engineering p. 13/25

Variationspunkt/Variante Variationspunkt ist ein durch Kontextinformation ergänztes Modell eines Variabilitätssubjektes. Variante ist ein Repräsentant eines Variabilitäts-Objekts innerhalb einer Variationspunkt. Software Product Line Engineering p. 13/25

Vorgehensweise Vorgehensweise zur Identifizierung von Variabilität in einer Software Product Line: Festlegung des Variabilitäts-Subjekts Software Product Line Engineering p. 14/25

Vorgehensweise Vorgehensweise zur Identifizierung von Variabilität in einer Software Product Line: Festlegung des Variabilitäts-Subjekts Definition der Variationspunkt Abstraktion von der Realität Festlegung des Kontextes Software Product Line Engineering p. 14/25

Vorgehensweise Vorgehensweise zur Identifizierung von Variabilität in einer Software Product Line: Festlegung des Variabilitäts-Subjekts Definition der Variationspunkt Abstraktion von der Realität Festlegung des Kontextes Definition der Varianten 1:1 Zuordnung zu einem Variabilitäts-Objekt Später noch ergänzbar Software Product Line Engineering p. 14/25

Zeitliche- / Räumliche Variabilität Zeitliche Variabilität: Verschiedene Varianten existieren zu verschiedenen Zeiten Beispiel MP3-Player: Software Product Line Engineering p. 15/25

Zeitliche- / Räumliche Variabilität Zeitliche Variabilität: Verschiedene Varianten existieren zu verschiedenen Zeiten Räumliche Variabilität: Gleichzeitige Nutzung verschiedener Varianten Beispiel MP3-Player: Software Product Line Engineering p. 15/25

Externe vs. Interne Variabilität Externe Variabilität: Kunde kann zwischen den Varianten wählen. Gründe für externe Variabilität: Unterschiedliche Kundenbedürfnisse Gesetze und Standards Software Product Line Engineering p. 16/25

Externe vs. Interne Variabilität Externe Variabilität: Kunde kann zwischen den Varianten wählen. Gründe für externe Variabilität: Unterschiedliche Kundenbedürfnisse Gesetze und Standards Interne Variabilität: Varianten sind für Aussenstehende nicht sichtbar. Gründe für interne Variabilität: Detaillierung von Externer Variabilität Detaillierung von Interner Variabilität Technische Gründe Strategische Gründe Software Product Line Engineering p. 16/25

Software Product Line Engineering Teil III: Organisation Software Product Line Engineering p. 17/25

Bedeutung von Organisationsformen für die Softwareentwicklung Probleme, die durch ungeeignete Firmenstruktur auftreten können: Langsame Entscheidungsfindung Software Product Line Engineering p. 18/25

Bedeutung von Organisationsformen für die Softwareentwicklung Probleme, die durch ungeeignete Firmenstruktur auftreten können: Langsame Entscheidungsfindung Unverhältnismäßig hoher Anteil von Koordinationsaufgaben Software Product Line Engineering p. 18/25

Bedeutung von Organisationsformen für die Softwareentwicklung Probleme, die durch ungeeignete Firmenstruktur auftreten können: Langsame Entscheidungsfindung Unverhältnismäßig hoher Anteil von Koordinationsaufgaben Unklare Zuordnung von Verantwortlichkeiten Software Product Line Engineering p. 18/25

Bedeutung von Organisationsformen für die Softwareentwicklung Probleme, die durch ungeeignete Firmenstruktur auftreten können: Langsame Entscheidungsfindung Unverhältnismäßig hoher Anteil von Koordinationsaufgaben Unklare Zuordnung von Verantwortlichkeiten Unzureichender Kundenbezug Software Product Line Engineering p. 18/25

Bedeutung von Organisationsformen für die Softwareentwicklung Probleme, die durch ungeeignete Firmenstruktur auftreten können: Langsame Entscheidungsfindung Unverhältnismäßig hoher Anteil von Koordinationsaufgaben Unklare Zuordnung von Verantwortlichkeiten Unzureichender Kundenbezug Software Product Line Engineering p. 18/25

Bedeutung von Organisationsformen für die Softwareentwicklung Probleme, die durch ungeeignete Firmenstruktur auftreten können: Langsame Entscheidungsfindung Unverhältnismäßig hoher Anteil von Koordinationsaufgaben Unklare Zuordnung von Verantwortlichkeiten Unzureichender Kundenbezug Stärkere Auswirkung bei Verwendung von Software Product Line Engineering Software Product Line Engineering p. 18/25

Bedeutung von Organisationsformen für die Softwareentwicklung Probleme, die durch ungeeignete Firmenstruktur auftreten können: Langsame Entscheidungsfindung Unverhältnismäßig hoher Anteil von Koordinationsaufgaben Unklare Zuordnung von Verantwortlichkeiten Unzureichender Kundenbezug Stärkere Auswirkung bei Verwendung von Software Product Line Engineering Gewissenhafte Auswahl der geeigneten Firmenstruktur unumgänglich: Software Product Line Engineering p. 18/25

Bedeutung von Organisationsformen für die Softwareentwicklung Probleme, die durch ungeeignete Firmenstruktur auftreten können: Langsame Entscheidungsfindung Unverhältnismäßig hoher Anteil von Koordinationsaufgaben Unklare Zuordnung von Verantwortlichkeiten Unzureichender Kundenbezug Stärkere Auswirkung bei Verwendung von Software Product Line Engineering Gewissenhafte Auswahl der geeigneten Firmenstruktur unumgänglich: Hierarchische Strukturen Matrixförmige Strukturen Software Product Line Engineering p. 18/25

Bedeutung von Organisationsformen für die Softwareentwicklung Probleme, die durch ungeeignete Firmenstruktur auftreten können: Langsame Entscheidungsfindung Unverhältnismäßig hoher Anteil von Koordinationsaufgaben Unklare Zuordnung von Verantwortlichkeiten Unzureichender Kundenbezug Stärkere Auswirkung bei Verwendung von Software Product Line Engineering Gewissenhafte Auswahl der geeigneten Firmenstruktur unumgänglich: Hierarchische Strukturen Matrixförmige Strukturen Software Product Line Engineering p. 18/25

Überblick von Organisationsformen Hierarchische Strukturen Matrixförmige Strukturen Einzelne Entwicklungsabteilung Verteilte Plattformentwicklung Zentrale Plattformentwicklung Unkompliziert Unübersichtlichkeit Keine klare Zuordnung von Verantwortlichkeiten Geeignet für kleine Firmen (<30 Entwickler) Software Product Line Engineering p. 19/25

Überblick von Organisationsformen Hierarchische Strukturen Matrixförmige Strukturen Einzelne Entwicklungsabteilung Verteilte Plattformentwicklung Zentrale Plattformentwicklung Kundenorientiert Komplizierte Entscheidungsfindung im Plattformbereich Mögliche Vernachlässigung des Plattformentwicklung Geeignet für Produktlinie mit großen Unterschieden Software Product Line Engineering p. 19/25

Überblick von Organisationsformen Hierarchische Strukturen Matrixförmige Strukturen Einzelne Entwicklungsabteilung Verteilte Plattformentwicklung Zentrale Plattformentwicklung Klare Zuordnung von Verantwortlichkeiten Schnelle Entscheidungsfindung Wenig Kundenbezug der Plattformentwicklung Geeignet für typische Produktlinien Software Product Line Engineering p. 19/25

Überblick von Organisationsformen Hierarchische Strukturen Matrixförmige Strukturen Plattform als Funktion Plattform als Projekt Separate Plattformentwicklung Kundenorientiert Flexibel Verantwortlichkeiten zwar klar geregelt, nicht jedoch die Entscheidungskompetenz Software Product Line Engineering p. 19/25

Überblick von Organisationsformen Hierarchische Strukturen Matrixförmige Strukturen Plattform als Funktion Plattform als Projekt Separate Plattformentwicklung Klare Zuordnung von Verantwortlichkeiten Wenig Kundenbezug der Plattformentwicklung Geeignet für Produktlinien mit hohem Änderungsgrad der Plattform Software Product Line Engineering p. 19/25

Überblick von Organisationsformen Hierarchische Strukturen Matrixförmige Strukturen Plattform als Funktion Plattform als Projekt Separate Plattformentwicklung Klare Zuordnung von Verantwortlichkeiten Wenig Kundenbezug der Plattformentwicklung Innerhalb der Plattformentwicklung keine klare Zuordnung Software Product Line Engineering p. 19/25

Auswirkungen Geringere Entwicklungskosten Kürzere Produkteinführungszeiten Höhere Qualität Höhere Zuverlässigkeit Geringerer Wartungsaufwand Bewältigung von Komplexität Gemeinsames Look & Feel Hohe Umstrukturierungskosten Hohe Plattformentwicklungskosten Lange Plattformentwicklungszeit Software Product Line Engineering p. 20/25

Auswirkungen Geringere Entwicklungskosten Kürzere Produkteinführungszeiten Höhere Qualität Höhere Zuverlässigkeit Geringerer Wartungsaufwand Bewältigung von Komplexität Gemeinsames Look & Feel Hohe Umstrukturierungskosten Hohe Plattformentwicklungskosten Lange Plattformentwicklungszeit Auswahl einer geeigneten Strategie für den Übergangsprozess Software Product Line Engineering p. 20/25

Gängige Übergangsstrategien Schrittweise Einführung Versuchsprojekt Strategie Taktischer Ansatz "Big Bang" Strategie Anfangs geringer Personaleinsatz; Schrittweise Erhöhung im Erfolgsfall Anfangs nur erfolgversprechender Teil als Produktlinie (bspw. Erstellung wiederverwertbarer Komponenten oder Umstrukturierung bestehender Komponenten); Schrittweise Erweiterung im Erfolgsfall Software Product Line Engineering p. 21/25

Gängige Übergangsstrategien Schrittweise Einführung Versuchsprojekt Strategie Taktischer Ansatz "Big Bang" Strategie Einführung von SPLE aus technischer Notwendigkeit Häufig beschränkt auf einzelne Bereiche Häufig informelle Anwendung von Softwareentwicklern Im Gegensatz zur Schrittweisen Einführung keine Gesamtlösung. Software Product Line Engineering p. 21/25

Gängige Übergangsstrategien Schrittweise Einführung Versuchsprojekt Strategie Taktischer Ansatz "Big Bang" Strategie 1. Entwicklung eines der folgenden Produkte: Erstes mögliche Produkt der neuen Produktlinie Eine Erweiterung einer bestehenden Serie von konventionell erstellten Produkten, die in die Produktlinie eingegliedert werden sollen Ein einfaches Demonstrationsprodukt Ein Prototyp 2. Anpassung der Produkte an die Plattform im Erfolgsfall Software Product Line Engineering p. 21/25

Gängige Übergangsstrategien Schrittweise Einführung Versuchsprojekt Strategie Taktischer Ansatz "Big Bang" Strategie 1. Komplette Erstellung der Plattform 2. Erstellung der Produkte durch Ableitung Software Product Line Engineering p. 21/25

Bewertung der Übergangsstrategien Schrittweise Einführung Taktischer Ansatz Versuchsprojekt Strategie "Big Bang" Strategie Gesamtdauer Gesamtlösung Vorhersehbarkeit des Ergebnisses Weiterführung aktueller Projekte Geringe Anfangsinvestition Wenig überflüssige Arbeit Abbruch des Übergangs Software Product Line Engineering p. 22/25

Die Wichtigsten Schritte des Übergangsprozesses 1. Ermittlung aller Beteiligten, wie zum Beispiel: Produktmanager Manager Projektmanager Softwareentwickler Qualitätsmanager evtl. Kunden Software Product Line Engineering p. 23/25

Die Wichtigsten Schritte des Übergangsprozesses 1. Ermittlung aller Beteiligten 2. Ermittlung der Ziele der Beteiligten, wie zum Beispiel: Produktmanager Manager, Projektmanager Umsatzerhöhung, kurze Produkteinführungszeiten Kostenreduzierung, Effizienzerhöhung Softwareentwickler Qualitätsmanager Technische und zeitliche Machbarkeit Einhaltung der erforderlichen Qualität Software Product Line Engineering p. 23/25

Die Wichtigsten Schritte des Übergangsprozesses 1. Ermittlung aller Beteiligten 2. Ermittlung der Ziele der Beteiligten 3. Erstellung von Geschäftsplänen Ein Geschäftsplan pro Beteiligten Zeigt wie die definierte Ziele mit SPLE erreicht werden können Enthält u.a. auch folgende Zahlen: Umsatz, Gewinn, ROI Vergleicht koventionelle Softwareentwicklung mit SPLE Software Product Line Engineering p. 23/25

Die Wichtigsten Schritte des Übergangsprozesses 1. Ermittlung aller Beteiligten 2. Ermittlung der Ziele der Beteiligten 3. Erstellung von Geschäftsplänen 4. Erstellung eines Anpassungsplans (a) Beschreibung des Ist-Zustands (b) Beschreibung des Soll-Zustands (c) Weg vom Ist- zum Soll-Zustand (Auswahl der Übergangsstrategie) Software Product Line Engineering p. 23/25

Die Wichtigsten Schritte des Übergangsprozesses 1. Ermittlung aller Beteiligten 2. Ermittlung der Ziele der Beteiligten 3. Erstellung von Geschäftsplänen 4. Erstellung eines Anpassungsplans 5. Start des Software Product Line Engineering Festlegung von: Organisationsstruktur Aufgaben und Verantwortlichkeiten Finanzierungsplan Software Product Line Engineering p. 23/25

Die Wichtigsten Schritte des Übergangsprozesses 1. Ermittlung aller Beteiligten 2. Ermittlung der Ziele der Beteiligten 3. Erstellung von Geschäftsplänen 4. Erstellung eines Anpassungsplans 5. Start des Software Product Line Engineering Software Product Line Engineering p. 23/25

Zusammenfassung Grundlagen Entwicklung einer gemeinsamen Plattform anstatt Einzelentwicklung Effizienzsteigerung nach Anlaufphase Zweiteilung der Entwicklung (Plattform, Produkte) Software Product Line Engineering p. 24/25

Zusammenfassung Grundlagen Entwicklung einer gemeinsamen Plattform anstatt Einzelentwicklung Effizienzsteigerung nach Anlaufphase Zweiteilung der Entwicklung (Plattform, Produkte) Variabilität Grundlegendes Konzept des Software Product Line Engineering Modellierung von real existierender Variabilität Software Product Line Engineering p. 24/25

Zusammenfassung Grundlagen Entwicklung einer gemeinsamen Plattform anstatt Einzelentwicklung Effizienzsteigerung nach Anlaufphase Zweiteilung der Entwicklung (Plattform, Produkte) Variabilität Grundlegendes Konzept des Software Product Line Engineering Modellierung von real existierender Variabilität Organisation Mögliche Firmenstrukturen (Hierarchisch/Matrix) Verschiedene Konzepte beim Übergang zum Software Product Line Engineering möglich Software Product Line Engineering p. 24/25

Weitere Informationen Literatur [1] K. Pohl, G. Böckle und F. van der Linden Software Product Line Engineering. Springer, 2005 Software Product Line Engineering p. 25/25