Software Product Lines

Ähnliche Dokumente
Erweiterte Programmierkonzepte für Maßgeschneiderteres Datenmanagement (EPMD) Teil 1: Einführung und Überblick

Featuremodellbasiertes und kombinatorisches Testen von Software-Produktlinien

State-of-the-Art in Software Product Line Testing and Lessons learned

Software Product Lines

Projektseminar Modellbasierte Softwareentwicklung SoSe2014

Software-Engineering Einführung

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

Generatives Programmieren

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

ES-Projektseminar (SS 2012)

Product Line Engineering (PLE)

Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme

ES-Projektseminar (SS 2010)

Vorlesung Automotive Software Engineering Prüfung Wintersemester 2014/15 TU Darmstadt, FB 18 und FB 20

Comparing Software Factories and Software Product Lines

Seamless Model-based Engineering of a Reactive System

dspace (1/3) dspace: Gegründet 1988 in Paderborn Mitarbeiter: Über 650 Mitarbeiter weltweit, davon über 70 % Ingenieure Ständiges Mitarbeiterwachstum

PCC Outlook Integration Installationsleitfaden

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

Software-Engineering Einführung

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Erfolgreiche Realisierung von grossen Softwareprojekten

Einführung in die Programmierung

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

iphone-kontakte zu Exchange übertragen

Stellen Sie sich vor, Ihr Informations- Management weist eine Unterdeckung auf.

2. Konfiguration der Adobe Software für die Überprüfung von digitalen Unterschriften

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

Vorlesung Automotive Software Engineering Prüfung Sommersemester 2015

Systemvoraussetzungen

Systemvoraussetzungen

Systemvoraussetzungen

Installation der SAS Foundation Software auf Windows

Freie Software: Was bringt s mir? Peter Bubestinger, David Ayers. 17. Mai 2008

Projektmanagementsoftware: Standard vs. Individual

Software Produktlinien: Einführung und Überblick

Systemvoraussetzungen

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Systemvoraussetzungen

Outlook Vorlagen/Templates

CMMI und SPICE im Automotive Umfeld

Wiederverwendung von automotive Software- Reifegradmodell, Technologie, Praxisbericht

Programmierung für Mathematik (HS13)

Variantenmanagement modellbasierter Funktionssoftware mit Software-Produktlinien

Informatik-Sommercamp Mastermind mit dem Android SDK

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

Microsoft Dynamics CRM Perfekte Integration mit Outlook und Office. weburi.com CRM Experten seit über 10 Jahren

Zählen von Objekten einer bestimmten Klasse

Einführung in Generatives Programmieren. Bastian Molkenthin

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Die Anwendung von Work of Leaders in drei Schritten

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Updatehinweise für die Version forma 5.5.5

LEHRSTUHL FÜR DATENBANKEN

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Datenübernahme easyjob 3.0 zu easyjob 4.0

SMART Newsletter Education Solutions April 2015

Java Script für die Nutzung unseres Online-Bestellsystems

IT- Wir machen das! Leistungskatalog. M3B Service GmbH Alter Sportplatz Lake Schmallenberg

Microsoft Update Windows Update

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

Installation und Inbetriebnahme von Microsoft Visual C Express

Kurzanleitung für die Import/Export Funktion Kinderleicht Produkte importieren und aktualisieren und exportieren

Neugierig? Wir bieten. berufsbegleitendes Studium. Spannende Praktikumsplätze. Bachelor oder Master Thesis. Studentenjobs und Einstiegsjobs

Variantenkonfiguration von Modellbasierter Embedded Automotive Software

Präsentation Von Laura Baake und Janina Schwemer

Einführung in Eclipse und Java

Wollen Sie einen mühelosen Direkteinstieg zum Online Shop der ÖAG? Sie sind nur einen Klick davon entfernt!

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Firmware-Update, CAPI Update

FIREBIRD BETRIEB DER SAFESCAN TA UND TA+ SOFTWARE AUF MEHR ALS EINEM COMPUTER

Vorhersagemodell für die Verfügbarkeit von IT-Services

Aktivierung von Makros in den Erfassungshilfen

w3lib - einfach Software entwickeln!

Installieren von Microsoft Office Version 2.1

Lösungsvorschlag für Übungsblatt 4 Software Engineering 1 (WS 2012/13)

INFORMATION MONITOR HSM SOFTWARE GMBH CLIENT-INSTALLATION

4D Server v12 64-bit Version BETA VERSION

eridea AG Installation Eclipse V 1.1

OSEK-OS. Oliver Botschkowski. PG AutoLab Seminarwochenende Oktober AutoLab

Einführung in PHP. (mit Aufgaben)

Effiziente Softwareproduktion durch. Effiziente Softwareproduktion durch

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

ONET: FT-NIR-Netzwerke mit zentraler Administration & Datenspeicherung. ONET Server

Transkript:

Software Product Lines Concepts, Analysis and Implementation Motivation, Basics, Examples ES Real-Time Systems Lab Prof. Dr. rer. nat. Andy Schürr Dept. of Electrical Engineering and Information Technology Dept. of Computer Science (adjunct Professor) Dr. rer. nat. Malte Lochau malte.lochau@es.tu-darmstad.de www.es.tu-darmstadt.de author(s) of these slides 2008 including research results of the research network ES and TU Darmstadt otherwise as specified at the respective slide 16.04.2014

Inhalt I. Einführung Motivation und Grundlagen Feature-orientierte Produktlinien Motivation und Einführende Beispiele Grundkonzepte des SPL Engineering Durchgängiges Beispiel BCS II. Produktlinien-Engineering Feature-Modelle und Produktkonfiguration Variabilitätsmodellierung im Lösungsraum Programmierparadigmen für Produktlinien III. Produktlinien-Analyse Feature-Interaktion Testen von Produktlinien Verifikation von Produktlinien IV. Fallbeispiele und aktuelle Forschungsthemen 2 16.04.2014 SE II

Industrielle Revolution 1901 Fließband (Ransom Olds/Henry Ford) 1980s Automatische Fließbänder (erster Industrieroboter 1961 bei General Motors) 1826 Austauschbare Teile (John Hall) [Czarnecki & Eisenecker 2000] 3 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Produktlinien in der Industrie 4 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Auto-Produktlinie 5 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Variantenvielfalt Varianten sind ein wesentlicher Hebel für das Unternehmensergebnis Franz Decker, Leiter Programm Variantenmanagement, BMW Group 6 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

PKW-Produktlinien vor 20 Jahren Auswahl beschränkte sich auf Autotyp und ggf. noch wenige Extras wie alternativer Kassettenrekorder oder Dachgepäckträger Eine Variante (Audi 80, 1.3l, 55PS) machte 40% des Umsatzes aus 7 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

PKW-Produktlinien heute 10 20 mögliche Varianten eines Audi; 10 32 mögliche Varianten eines BMW Allein 100 verschiedene Bodengruppen für ein Modell, je nach Motor und Ausstattung 50 verschiedene Lenkräder (3 vs. 4 Speichen, Holz vs. Kunststoff vs. Leder, Heizung, Farben) Kaum ein Auto verlässt heute das Werk identisch zu einem Vorherigen! 8 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Weitere Produktlinien 9 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Weitere Produktlinien 10 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Weitere Produktlinien 11 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Weitere Produktlinien 12 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

13 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Massenproduktion 14 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Generische Strategien 15 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Und bei Software? Moderne Anwendungssoftwaresysteme sind Eier-legende Wollmilchsäue Bsp.: Windows OS, Open Office, Oracle, SAP myerp, Adobe Photoshop, Eclipse, Spezialisierte Software und Software für eingebettete Systeme wird immer wichtiger Bsp.: PDA, Handy, Sensornetze, Mikrowelle, Fernseher, Wetterstation, Auto, Chipkarten, Bordcomputer, Router, Ubiquitious Computing 98% aller im Einsatz befindlichen Rechnersysteme sind eingebettete Systeme Ressourcenbeschränkung und heterogene Hardware erfordert maßgeschneiderte Lösungen Häufige Neuimplementierungen, lange Entwicklungszeiten, hohe Entwicklungskosten 16 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Warum maßgeschneiderte Software? Ressourcenbeschränkte Systeme Kosten, Energie, Platz,. Individuelle Systeme versus individuelle Nutzung Ungenutzte Funktionalität als Risiko Wartungs- / Kontroll- / Testaufwand wächst mit Funktionsumfang Marketing / Preisdiskriminierung Schnellere Reaktion auf Marktveränderungen 17 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Features in Microsoft Office 18 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Linux-Kernel ca. 6.000.000 Zeilen Quelltext Sehr weitgehend konfigurierbar > 10.000 Konfigurationsoptionen! (x86, 64bit, ) Fast der gesamte Quelltext ist optional 19 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Datenbanken Ständig wachsendes Datenaufkommen Häufige Einbettung mit Ressourcenbeschränkungen 20 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Drucker- Firmware 21 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Spiele 22 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Softwareproduktlinien in der Industrie HP: Druckertreiber/Firmware Nokia: Mobiltelefon-Software, Browser Phillips: High-End TVs, Medizintechnik, TomTom: eingebettete Navigationssysteme Cummins: Dieselmotoren-Steuerungssoftware LG: Aufzugsteuerungssoftware Ericsson: Telecommunication switches General Motors: Powertrains Viele weitere: Gasturbinen, train control, ship control, frequency converter, internet payment gateway, helicopter avionics software, 23 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Ziel der Vorlesung Techniken für die Entwicklung maßgeschneiderter Software, die genau die benötigte Funktionalität enthält Varianten für verschiedene Anwendungsfälle Neue Varianten können leicht hinzugefügt werden; schnelle Entwicklung; Wiederverwendung bewährter Funktionalität Kundenindividuelle Fertigung; Spezialisierung Anpassung an verfügbare Ressourcen Softwareproduktlinien (SPL): Konfiguration durch Auswahl von Features (deutsch: Merkmale) 24 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Schätzung Circa 80% aller Softwaresysteme sind Softwareproduktlinien bzw. können von Softwareproduktlinientechnologie profitieren. 25 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Variabilität = Komplexität 26 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Challenges 27 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

33 optionale, unabhängige Features eine maßgechneiderte Variante für jeden Menschen auf dem Planeten 28 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

320 optionale, unabhängige Features mehr Varianten als es Atome im Universum gibt! 29 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

30 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Korrektheit? 31 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Alle Kombinationen sinnvoll? 32 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Wiederverwendung bei der Implementierung? Wo Fehler korrigieren? 33 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Idee: Systematische Entwicklung von Softwareproduktlinien Jeweils neu programmieren ist sowohl unwirtschaftlich als auch gefährlich Daher maßgeschneiderte Software auf Basis von Softwareproduktlinien Aus wiederverwendbaren Teilen Die alternative Implementierungen haben können Anpassbar für spezielle Anwendungsfälle Nutzbar auch unter extremer Ressourcenbeschränkung 34 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Application Eng. Domain Eng. Entwurf und Implementierung von Features Feature-Modell Wiederverwendbare Implementierungsartefakte Feature-Auswahl Generator Fertiges Program 35 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Nicht-funktionale Eigenschaften Begrenzungen und Optimierung Optimiert für geringen Stromverbrauch Optimiert für Performance Optimiert für minimalen Footprint Spezielle Implementierung (z. B. kein RAM, wenig Schreibzugriffe) 36 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Implementierung: State of the Art #ifndef _DB_MUTEX_INT_H_ #define _DB_MUTEX_INT_H_ Wenn überhaupt Variantenmanagement, dann mit #ifdef, Templates, make, CVS Beispiel: Berkeley DB (mutex_int.h) #ifdef HAVE_MUTEX_PTHREADS #include <pthread.h> #define MUTEX_FIELDS pthread_mutex_t mutex; /* Mutex. */ pthread_cond_t cond; /* Condition variable. */ #endif #ifdef HAVE_MUTEX_UI_THREADS #include <thread.h> #endif #ifdef HAVE_MUTEX_SOLARIS_LWP #include <synch.h> #define MUTEX_FIELDS lwp_mutex_t mutex; /* Mutex. */ lwp_cond_t cond; /* Condition variable. */ #endif #ifdef HAVE_MUTEX_UI_THREADS #include <thread.h> #include <synch.h> #define MUTEX_FIELDS mutex_t mutex; /* Mutex. */ cond_t cond; /* Condition variable. */ #endif #ifdef HAVE_MUTEX_AIX_CHECK_LOCK #include <sys/atomic_op.h> typedef int tsl_t; #ifdef LOAD_ACTUAL_MUTEX_CODE #define MUTEX_INIT(x) 0 #define MUTEX_SET(x) (!_check_lock(x, 0, 1)) #define MUTEX_UNSET(x) _clear_lock(x, 0) #endif #endif 37 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Implementierung und Wartbarkeit? class Stack { void push(object o #ifdef SYNC, Transaction txn #endif ) { if (o==null #ifdef SYNC txn==null #endif ) return; #ifdef SYNC Lock l=txn.lock(o); #endif elementdata[size++] = o; #ifdef SYNC l.unlock(); #endif firestackchanged(); } } 38 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

SPL-Implementierung Verschiedene Wege SPLs zu implementieren In dieser Vorlesung betrachten wir u.a. Präprozessoren Komponenten Frameworks/Plugins Feature-orientierte Programmierung Aspekt-orientierte Programmierung 39 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Wieviel Variabilität ist sinnvoll? Entwicklungskosten Investitionskosten Wartungskosten Logistikkosten Fertigungskosten (geringe Stückz.) 40 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Schwerpunkte Maßgeschneiderte Software als Ziel Feature als zentrales Konzept Modellierung, Analyse und Implementierung von Features steht im Vordergrund Konkreter Quelltext, diverse Paradigmen und Sprachen 41 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Fallstudie BCS Produktlinie Durchgängiges Fallbeispiel aus dem Automotive Bereich Body Comfort System 42 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Ursprung Zur Demonstration eines neuen, modellbasierten Entwicklungsansatzes erstellt Ausschnitt aus modernem PKW System Besteht aus 4 per CAN vernetzten Steuergeräten HMI-Steuergerät (Display und Statusanzeige, Komforteinstellungen,...) Türsteuergerät (Fensterheber, Spiegelverstellung, Spiegelblinker,...) Zentralverriegelungssteuergerät (Funkmodul, Schlossaktorik,Türkontakte,...) Alarmanlagensteuergerät (Innenraumüberwachung, Türüberwachung,...) 43 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Weiterentwicklung der Fallstudie Weiterentwicklung zur Software Produktlinie Teile der Funktionalitäten sind optional Featuremodell mit 27 Features 5 cross-tree constraints 44 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Architekturmodell Beschreibt die Verknüpfung der Komponenten und den Signalfluss 45 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Automaten-Modell Beispielkomponente: Manueller Fensterheber Beschreibung des Verhaltens als Automat 46 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Testmodell 150% Modell enthält alle Produktkonfigurationen 47 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Partielle Testmodelle 125% Modell 48 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation

Referenzen (Auswahl) Müller et al. : A comprehensive Description of a Model-based, continuous Development Process for AUTOSAR Systems with integrated Quality Assurance, Technical Report, Braunschweig, 2009. Sebastian Oster, Marius Zink, Malte Lochau, and Mark Grechanik: Pairwise feature-interaction testing for spls: potentials and limitations. In Proceedings of the 15th International Software Product Line Conference, Volume 2, SPLC 11, pages 6:1 6:8, New York, NY, USA, 2011. ACM. Marius Zink: Anwendung von Moso-Polite in einer Automotive SPL. Masterarbeit, Technische Universität Darmstadt, June 2011. Sascha Lity, Remo Lachmann, Malte Lochau, Ina Schaefer: Delta-oriented Software Product Line Test Models - The Body Comfort System Case Study Technical Report 2012-07, TU Braunschweig, 2013. etc. 49 16.04.2014 Software Product Lines - Concepts, Analysis and Implementation