Product Line Engineering (PLE)



Ähnliche Dokumente
Seminar. Softwareentwicklung in der Wissenschaft. Softwareproduktlinienentwicklung. Christoph Kuberczyk. Abgabedatum:

Comparing Software Factories and Software Product Lines

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Application Requirements Engineering

Requirements Engineering im SPL-Umfeld

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

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

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Hauptseminar Entwicklung von Informationssystemen

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Wiederverwendung von automotive Software- Reifegradmodell, Technologie, Praxisbericht

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

Grundlagen Software Engineering

Software Produktlinien: Einführung und Überblick

Produktvorstellung: CMS System / dynamische Webseiten. 1. Vorwort

Generatives Programmieren

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

Variabilität in Produktlinien und das orthogonale Variabilitätsmodell

Comparison of Software Products using Software Engineering Metrics

Benötigen wir einen Certified Maintainer?

Einführung von Test-Prozessen laut TMMi. Egon Valentini 1. März 2010

Erfassung von Umgebungskontext und Kontextmanagement

Ein mobiler Electronic Program Guide

Requirements Engineering WS 11/12

Referenz-Konfiguration für IP Office Server. IP Office 8.1

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Erfahrungen mit Hartz IV- Empfängern

Professionelle Seminare im Bereich MS-Office

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

Architekturplanung und IS-Portfolio-

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Einführung in die Informatik

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Markus Pister (Autor) Integration formaler Fehlereinflussanalyse in die Funktionsentwicklung bei der Automobilindustrie

DATENSCHUTZ UND AGILE SOFTWAREENTWICKLUNG. Erfahrungen und Vorgehen in der Praxis

Grundlagen des Software Engineering

Taking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum

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

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Model Driven Development im Überblick

Software Systems Engineering

IT-Basics 2. DI Gerhard Fließ. Vorgehensmodelle

Presse-Information

Geld Verdienen im Internet leicht gemacht

Wie Sie mit Mastern arbeiten

Studienrichtung Eingebettete Systeme

Software Engineering. Dokumentation! Kapitel 21

Wir machen neue Politik für Baden-Württemberg

Was leistet ein Content Management System?

Informationsblatt Induktionsbeweis

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

Featuremodellbasiertes und kombinatorisches Testen von Software-Produktlinien

Kombinationsangebot "Professional Scrum Training" mit Vertiefung "Führen als Scrum Master" (PST-Kombi)

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services

Xesar. Die vielfältige Sicherheitslösung

Handbuch Social Linkbuilding Automatik-Software

Software Product Line Engineering

Sofort und zielgerichtet. Basis Know-how. Wie Sie die elementarsten Fehler beim Automatisieren vermeiden! zum maschinellen Erfolg!

Visualisierung verteilter Systeme

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Seminar Programmierung und Reaktive Systeme

Teil 1 Schnurverbindungsknoten (Schnur an Schnur) von Andreas Glock

Wir helfen Ihnen, sich auf Ihre Kompetenzen zu konzentrieren.

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

h e l m u t h u b e r

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

UML-DSLs effizient eingesetzt. Insight 07, Klaus Weber

Validierung und Verifikation!

Nominari. Firmenportrait

Validierung und Verifikation

Informationen für Wealth Manager:

Agile Softwareentwicklung in der Versicherungs-IT Fehlschlag oder Heilsbringer?

Vorgetragen von. Sanaz Mostowfi Anna Polovets Mandy Neumann

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Qualität bei evolutionärer Entwicklung

Jan Parthey, Christin Seifert. 22. Mai 2003

ELitE Bestell- und Lieferplattform für Informationen & Literatur

Wir erledigen alles sofort. Warum Qualität, Risikomanagement, Gebrauchstauglichkeit und Dokumentation nach jeder Iteration fertig sind.

Requirements Engineering Research Group!

Projekt- Management. Landesverband der Mütterzentren NRW. oder warum Horst bei uns Helga heißt

SPI-Seminar : Interview mit einem Softwaremanager

Seamless Model-based Engineering of a Reactive System

Übungsaufgaben zum Software Engineering: Management

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Worum geht es in diesem Projekt?

Bürgerhilfe Florstadt

Karteikarten-App. Andreas Krause 1, Justus Pfannschmidt 1. Softwaretechnik SoSe Instutit für Informatik Freie Universität Berlin

Bernadette Büsgen HR-Consulting

Requirements Engineering I

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler

GEVITAS Farben-Reaktionstest

Meisterhaft für mobile Produktivität gemacht. HP Elite x2 1012

Dokumentenverwaltung im Internet

Quadratische Gleichungen

Einführung in die Modellierung

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

Transkript:

Product Line Engineering (PLE) Produktlinienentwicklung Von Christoph Kuberczyk Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 1

Gliederung 1. Was ist PLE? 2. Motivation 3. Entwicklung einer Produktlinie 4. Darstellungen von Produktlinien 5. Nachteile von PLE 6. Erweiterungen von PLE Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 2

Was ist PLE? Entwicklung einer Familie von Softwareprodukten, aufbauend auf einer Plattform, die die Gemeinsamkeiten ( Core Assets ) mehrerer Produkte zusammenfasst Software by Design, not Coding Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 3

Core Assets sind... Architekturen Softwarekomponenten Domänenmodelle Use-Cases Testfälle usw. Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 4

Motivation Wiederverwendbarkeit von Software Verkürzung der Markteinführungszeit Erleichterung der Softwareentwicklung Erleichterung des Wartens Höhere Kundenzufriedenheit Senkung der Entwicklungskosten Flexibilität Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 5

Vergleich: Time-to-market Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 6

Vergleich: Kosten Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 7

httpmedia2.giga.de201208samsung_smartphones_patent.jpg So könnte eine Familie von Produkten aussehen Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 8

Entwicklung einer Produktlinie Unterscheidung Domain Engineering (DE): - Entwickung für Wiederverwendung - Bereitstellung der Core Assets (Kernbestandteile) eines jeden Produktes Application Engineering (AE): - Entwickung mit Wiederverwendung -Herstellung der konkreten Produkte auf Basis von DE Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 9

Domain Engineering Unterteilt sich in: 1. Product Management 2. Domain Requirements Engineering 3. Domain Design 4. Domain Realization 5. Domain Quality Assurance Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 10

Domain Engineering 1. Product Management: - Bestimmung des Rahmens/Produktportfolios der PL (Scoping). Aufgabe des Managements, da der Rahmen stark von der Marktstrategie abhängt. 2. Domain Requirement Engineering: - Umfasst alle Aktivitäten, um gemeine und variable Anforderungen zu entwerfen, verhandeln,dokumentieren,validieren,managen Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 11

Domain Engineering 3. Domain Design: -Entwurf der Architektur und der Komponenten 4. Domain Realization - Implementation/Schaffen der core assets 5. Domain Quality Assurance - formale Verifikation, statische Analyse dynamisches Testen Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 12

Application Engineering 1. Application Requirements Engineering 2. Application Design 3. Application Realisation 4. Application Quality Assurance Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 13

Application Engineering 1. Application Requirement Engineering: - konkrete Anforderungen an ein Produkt, Verwendung der Domain Requirements und Nutzen derer Variabilität 2. Application Design: - Entwerfen der Architektur für konkrete Produkte, aufbauen auf Domain Design Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 14

Application Engineering 3. Application Realization: - Konkrete Implementation aufbauend auf dem Application Design 4. Application Quality Assurance: - Hauptsächlich dynamisches Testen - Nutzen von Use-Cases aus der Plattform Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 15

Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 16

Ansätze Proactive approach (Big-Bang): Zunächst Domain Engineering, dann Application Engineering Reactive approach: Zunächst nur die wichtigsten Domain Artifacts, die übrigen während der AE Reengineering-driven approach: Bestehende Anwendungen und Systeme werden in die Produktlinie integriert Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 17

Integrated Variability Model Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 18

Orthogonal Variability Model Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 19

Nachteile Hohe Startkosten Begrenzte Ausdrucksmöglichkeiten der Modelle Sehr unflexibel (bei unvorhergesehenen Veränderungen der Anforderungen) Kann schnell veralten Kein Kundenfeedback Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 20

httpmedia2.giga.de201208samsung_smartphones_patent.jpg So könnte eine Familie von Produkten aussehen Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 21

Können diese Nachteile beseitigt werden? - Einbeziehung agiler Methoden in die Entwicklung für höhere Flexibilität - Benutzung von DSLs für höhere Ausdrucksfähigkeit der Modelle Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 22

PLE und agile Programmierung im Zusammenspiel (APLE) Gemeinsamkeiten von PLE und agiler Programmierung: - geringe Time-to-Market - geringe Entwicklungskosten - Flexibilität - Kundenzufriedenheit als hohes Ziel Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 23

Agile Process Model for Product Derivation (A-Pro-PD) Integration agiler Methoden beim AE Vorteile: - Einbeziehung der Kunden in den Gestaltungsprozess - geringeres Risiko als beispielsweise bei einer Big-Bang-Herangehensweise Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 24

Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 25

Weitere Möglichkeiten der Einbindung agiler Methoden Agile Methoden als Marktforschung während Aufbau der Plattform Unter Zuhilfenahme von TDD erweitern der Produktfamilie durch Löschen, Hinzufügen oder Modifikation von variants Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 26

Einbindung von DSLs Produktableitung aufgrund der Baumstruktur eines Variability Models als kontextfreie Grammatik ohne Reduktion erfassen Ergänzen dieser Grammatik zu einer DSL Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 27

Beispiel (aus PLE using DSLs ) Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 28

Die Grammatik wird transformiert... Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 29

Beispielprogramm Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 30

Fazit Product Line Engineering sinnvoll bei Herstellung vieler ähnlicher Produkte Ist in seiner Reinform für viele Produktlinien allerdings sehr riskant Nachteile können durch Modifikationen des Modells bspw. der Kombination mit agiler Programmierung verringert werden Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 31

Quellen Padraig O Leary, Fergal McCaffery, Steffen Thiel, Ita Richardson An Agile Process Model for Product Derivation in Software Product Line Engineering Markus Voelter, Eelco Visser, Product Line Engineering using Domain- Specific Languages Jessica Diaz, Jennifer Perez, Pedro P. Alarcon, Juan Garbajosa Agile Product Line Engineering A Systematic Literature Review Christian Berger, Holger Krahn, Holger Rendel, Bernhard Rumpe Featurebasierte Modellierung und Verarbeitung von Produktlinien am Beispiel eingebetteter Software Andreas Metzger, Klaus Pohl Software Product Line Engineering and Variability Management: Achievements and Challenges Zhonghua He Einführen einer Softwareproduktlinie Christoph Kuberczyk, SE in der Wissenschaft 2015, Product Line Engineering 32