Softwareproduktlinien - Entwicklungsprozess und Variabilitätsmodellierung



Ähnliche Dokumente
Softwareproduktlinien Teil 2: Entwicklungsprozess und Variabilitätsmodellierung

Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Teil 3: Software-Produktlinien

Softwareproduktlinien - Entwicklungsprozess und Variabilitätsmodellierung

Softwareproduktlinien Teil 2: Entwicklungsprozess und Variabilitätsmodellierung

Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Teil 3: Software-Produktlinien

Softwareproduktlinien - Entwicklungsprozess und Variabilitätsmodellierung

Software Product Lines

Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme

Product Line Engineering (PLE)

Generatives Programmieren

Softwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen

Softwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2006

Comparing Software Factories and Software Product Lines

Generative Prozessmodelle Patrick Otto MDD Konferenz

Application Requirements Engineering

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

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Wiederverwendung von automotive Software- Reifegradmodell, Technologie, Praxisbericht

Software Produktlinien: Einführung und Überblick

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

AGB Teil 5 - Support. Supportleistungen, Supportpakete, Supportverträge

1. In welchen Prozess soll LPA eingeführt werden und warum? (Auslöser und Prozess)

Softwareproduktlinien - Versionsverwaltungs- und Buildsysteme

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.

Software-Produktlinien Vom Designerstück zur Industrialisierung in der Softwaretechnik

Software Product Line Engineering

Softwareproduktlinien Teil 12: Analyse von Produktlinien

Featuremodellbasiertes und kombinatorisches Testen von Software-Produktlinien

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!.

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Konzepte der Informatik

Variabilität in Produktlinien und das orthogonale Variabilitätsmodell

1 Mathematische Grundlagen

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Grundlagen der Künstlichen Intelligenz

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Requirements Engineering WS 11/12

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

Bedienerhandbuch Toleranztabellen Version 1.2.x. Copyright Hexagon Metrology

Anleitung für die Version von online 1. Schritt: Rufen Sie die Website auf...


MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Softwareproduktlinien Teil 1: Einführung und Überblick

Wahl- und Wechselmöglichkeiten im Lebensphasenmodell

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

Schulung Marketing Engine Thema : Einrichtung der App

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

Feature Modelling und Product Sets. Seminar Softwareengineering SS 2007 Felix Schwarz, Olaf Otto TU Berlin

4. BEZIEHUNGEN ZWISCHEN TABELLEN

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

Implementierung v. Software-Produktlinien - Einführung und Überblick

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

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

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

Objektorientierte Programmierung OOP

Feiertage in Marvin hinterlegen

Selbstreflexion für Lehrpersonen Ich als Führungspersönlichkeit

Einführung in die Modellierung

evidisbasic mit ProPharma

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

ecommerce Deshalb ist es für Unternehmen jeder Grösse wichtig, den Schritt in den Online-Verkauf nicht zu verpassen.

Softwaretechnik (Allgemeine Informatik) Überblick

Das elektronische Personenstandsbuch

Process4.biz Release Features Übersicht. Repository. Das Schützen von Diagrammen wurde optimiert (check-in, check-out)

PKV- Projektanlage Assistent

Erfolgreiche ITIL Assessments mit CMMI bei führender internationaler Bank

Konzentration auf das. Wesentliche.

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

3 2D Zeichnungen. 3.1 Grundsätzliches

Anwendungshinweise zur Anwendung der Soziometrie

Softwareanforderungsanalyse

Kapitel 10: Dokumentation

Übungsklausur vom 7. Dez. 2007

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Funktionaler Zusammenhang. Lehrplan Realschule

Avenue Oldtimer Liebhaber- und Sammlerfahrzeuge. Ihre Leidenschaft, gut versichert

Notation und Gestaltung

Mikroökonomik 9. Vorlesungswoche

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

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

R ist freie Software und kann von der Website.

Dokumentenverwaltung im Internet

Handbuch. Artologik EZ-Equip. Plug-in für EZbooking version 3.2. Artisan Global Software

Regulatorische Anforderungen an die Entwicklung von Medizinprodukten

Seminar Bassem Ben Helal

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Dominik Stockem Datenschutzbeauftragter Microsoft Deutschland GmbH

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

Ausgangslage, Rolle und Auftrag

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Erfahrungen mit Hartz IV- Empfängern

Semantic Web Technologies I! Lehrveranstaltung im WS10/11! Dr. Andreas Harth! Dr. Sebastian Rudolph!

WinVetpro im Betriebsmodus Laptop

Anleitung Postfachsystem Inhalt

Kurzanleitung für Verkäufer

Vorlesung Betriebstechnik/Netzplantechnik Operations Research

Gesicherte Prozeduren

Energetische Klassen von Gebäuden

Möglichkeiten der Maßschneiderung von DBMS

Transkript:

Softwareproduktlinien - Entwicklungsprozess und Variabilitätsmodellierung Sven Apel (Universität Passau) Christian Kästner (Universität Marburg) Gunter Saake, Thomas Thüm (Universität Magdeburg) 1

Agenda Produktlinien Was ist ein Feature? Domain Engineering vs. Application Engineering Feature-Modellierung 2

Produktlinien A software product line (SPL) is a set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. Software Engineering Institute Carnegie Mellon University 3

Produktlinien Eine Menge von Programmvarianten (Software- Produkten), teilen eine gemeinsame Menge von Merkmalen (Features)...die auf ein gemeinsames Marktsegment (Domäne) zugeschnitten sind...mit dem Ziel der Wiederverwendung von gemeinsamen Software-Artefakten z. B. Datenbank-Produktlinie für eingebettete Systeme 4

Domäne Die Produkte einer Produktlinie sind zugeschnitten auf ein Anwendungsgebiet Dieses Anwendungsgebiet wird als Domäne bezeichnet Horizontale Domänen Abrechnungen, Lagerverwaltung, Flugbuchung Vertikale Domänen Numerische Algorithmen, Netzwerktreiber, GUIs, Datenbanken 5

Was ist ein Feature? (deutsch Merkmal) Domänenabstraktion Features repräsentieren Anforderungen, Gemeinsamkeiten bzw. Unterschiede von Produktvarianten Mittel zur Kommunikation zwischen Stakeholdern Dient zur Spezifikation von Produktvarianten Feature-Auswahl als Eingabe für die Produktgenerierung Aber: es gibt auch Belange, die keine Features sind 6

Belang vs. Feature Belang (siehe spätere Kapitel) Jedwede Problemstellung, die von Interesse ist Feature Problemstellung, die eine besondere Bedeutung in einer Domäne hat Konfigurationsoption Belange Features 7

Features vs. Varianten Features sind Grundbausteine einer Produktlinie (z.b. implementiert durch Komponenten, Packages, etc.) Feature-Kombinationen bilden individuelle Produkte 8

Features in Datenbanken Transaktionsverwaltung Log & Recovery Schreibzugriff Persistenz / In-Memory Seitenverdrängungsstrategien LRU / LFU / Clock /... Sortierverfahren Datentypen variabler Länge Gruppieren, Aggregation Windows / Unix / NutOS / TinyOS / 9

Entwicklung einer Produktlinie Entwicklung einer Produktlinie statt einzelner Produkte Produktlinie deckt Anforderungen der ganzen Domäne ab Abweichung vom klassischen Entwicklungsprozess und Lebenszyklus Unterscheidung in Domain Engineering Application Engineering 10

Software Lebenszyklus Klassisch 11

Domain Engineering [...] is the activity of collecting, organizing, and storing past experience in building systems [...] in a particular domain in the form of reusable assets [...], as well as providing an adequate means for reusing these assets (i.e., retrieval, qualification, dissemination, adaptation, assembly, and so on) when building new systems. 12 K. Czarnecki and U. Eisenecker

Application and Domain Engineering 13

Entwicklungsaufwand Aufwand/Kosten Konventionelle Entwicklung Produktlinienentwicklung 1 2 3 4 # Produkte 14

Scoping Eingrenzung der Domäne Welche Features sind relevant/sollen entwickelt werden Oft wirtschaftliche Entscheidung [Schmid 2002] 15

Exkurs: Ansätze zur Einführung von Produktlinien Es gibt drei übliche Ansätze eine Softwareproduktlinie zu erstellen / den Ansatz einzuführen Proaktives Vorgehensmodell Reaktives Vorgehensmodell Extraktives Vorgehensmodell Für alle Implementierungstechniken Auswahl anhand betrieblicher Gesichtspunkte (Kosten, Risiko, Chancen,...) 16

Exkurs: Proaktives Vorgehensmodell Produktlinie neu entwerfen und implementieren; wie bisher besprochen Komplette Domänenanalyse zu Beginn Kann die normale Entwicklung für mehrere Monate unterbrechen, bis die Produktlinie auf dem Stand der bestehenden Produkte ist Hohe Kosten und hohes Risiko Gut wenn Anforderungen wohl-definiert sind 17

[Krueger 2002] 18

Exkurs: Reaktives Vorgehensmodell Analog zu Spiralmodell oder Extreme Programming Implementiert zuerst wenige Produktvarianten; fügt inkrementell weitere hinzu Geeignet, wenn benötigte Varianten nicht komplett im voraus bekannt, und für unvorhergesehene Änderungen Kleinere Projektgröße, geringere Anfangskosten; weniger Ressourcenbindung, schnellere Ergebnisse Später evtl. Umstrukturierungen nötig 19

[Krueger 2002] 20

Exkurs: Extraktives Vorgehensmodell Nutzt eine oder mehrere bestehende Produkte als Basis Extrahiert daraus Features und erlaubt so Produktvarianten zu erzeugen Geeignet für den schnellen Wechsel von traditionellen Anwendungen zu Produktlinien Relativ geringer Ressourcenaufwand und Risiko Sehr anspruchsvoll für Werkzeuge und Sprachen, da Zerlegung einer Anwendung, die nicht als Produktlinie entworfen wurde 21

[Krueger 2002] 22

Feature-Modellierung Beschreibung der Features einer Domäne Zur Visualisierung und Kommunikation Ein Feature-Modell beschreibt die elementaren Abstraktionen einer Domäne und deren Beziehungen die Menge der Produkte einer Produktlinie Ein Feature-Diagramm visualisiert Features und deren Beziehungen 23

Gültige Feature-Auswahl? Transaktionsverwaltung Log & Recovery Schreibzugriff Persistenz / In-Memory Seitenverdrängungsstrategien LRU / LFU / Clock /... Sortierverfahren Datentypen variabler Länge Gruppieren, Aggregation Windows / Unix / NutOS / TinyOS / 24

25

Feature-Modell: Beispiel Features: Basis, Txn, Write, Win, Unix Abhängigkeiten: Basis muss immer ausgewählt sein und braucht Win oder Unix Win darf nie zusammen mit Unix ausgewählt werden Wenn Txn ausgewählt ist muss auch Write ausgewählt sein Wieviele Varianten möglich? Sechs mögliche Varianten {Basis, Win}, {Basis, Unix}, {Basis, Win, Write}, {Basis, Unix, Write}, {Basis, Win, Write, Txn}, {Basis, Unix, Write, Txn} 26

Feature-Modell als aussagenlogischer Ausdruck Variable für jedes Feature (wahr wenn ausgewählt) Formel beschreibt Feature-Modell Formel wahr für gültige Feature-Auswahl Basis ( Unix Win ) ( Unix Win ) ( Txn Write ) Erlaubt automatische Überprüfung, und Aufzählen der gültigen Produktvarianten (SAT, BDD, ) 27

Feature-Diagramm Graphische Darstellung, hierarchische Struktur Kinder: optional, obligatorisch, oder, alternativ Abstrakt vs konkret: ohne vs mit Bezug zur Implementierung Abstrakte Features haben keinen Einfluss auf Produkte optional abstrakt obligatorisch alternativ (genau 1) oder (min 1) 28 konkret

Beispiel: Sternenflotten-Produktlinie Officer Hair Gender Body

Feature-Diagramm vs. Formeln Besser lesbar als Formel ( Management-kompatibel ) Weniger flexibel extra Formeln möglich Übersetzung Diagramm Formel automatisierbar 31

Feature-Diagramm vs. Formeln Besser lesbar als Formel ( Management-kompatibel ) Weniger flexibel extra Formeln möglich Übersetzung Diagramm Formel automatisierbar 32

Feature-Diagramm vs. Formeln Besser lesbar als Formel ( Management-kompatibel ) Weniger flexibel extra Formeln möglich Übersetzung Diagramm Formel automatisierbar 33

Beispiel FAME DBMS (Core) 34

Beispiel Berkeley DB (refaktorisiert) 35

Feature-Modell eines Speichermanagers

GUIDSL-Format Speichern des Feature-Diagramms als Grammatik Satz der Grammatik ist gültige Konfiguration Innere Features sind abstrakt, Blätter sind konkret Pr: [Feature1] [Feature2] Feature3 ::_Pr; Pr : Select+ :: _Pr ; Select : Feature1 Feature2 ; Pr: Feature1 Nesting Feature4::_Pr; Nesting: Feature2 Feature3::_Nesting; 39 HowTo: http://www.cs.utexas.edu/~schwartz/ats/fopdocs/guidsl.html

Feature-Diagramm Varianten Viele verschiedene Varianten in der Literatur, z. B. Innere Features konkret oder abstrakt Mandatory/Optional in Oder/Alternative-Gruppen Requires/Excludes Pfeile Konvertierungen i.d.r. möglich requires 40

Konfiguration einer Variante FeatureIDE GUIDSL 41

FeatureIDE 42

Application Eng. Domain Eng. Entwurf und Implementierung von Features Nach der Feature-Modellierung folgt der Entwurf und die Implementierung... Feature-Modell Wiederverwendbare Implementierungsartefakte Feature-Auswahl Generator Fertiges Program 43

Zusammenfassung Produktlinien als Konzept zur systematischen Wiederverwendung Entwicklung teilt sich in Domain Engineering und Application Engineering Features repräsentieren Domänenkonzepte Produkte einer Produktlinie haben gemeinsame Features Feature-Modelle beschreiben Features und ihre Abhängigkeiten und werden zur Konfiguration benutzt 44

Ausblick Nächste Kapitel handeln von Methoden, Techniken und Werkzeugen zur Implementierung von Produktlinien 45

Literatur I S. Apel, D. Batory, C. Kästner, and G. Saake. Feature- Oriented Software Product Lines - Concepts and Implementation. Springer, 2013. Part 1: Software Product Lines K. Kang, S. Cohen, J. Hess, W. Novak, and A. Peterson. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report CMU/SEI-90-TR-21, SEI,1990. [Frühe Ideen zur Domänenanalyse mit Feature-Modellen] K. Czarnecki and U. Eisenecker. Generative Programming: Methods, Tools, and Applications. Addison-Wesley, 2000. [Umfassende Beschreibung von Domain Engineering, Feature-Diagrammen und deren Normalisierung] 46

Literatur II D. Batory. Feature Models, Grammars, and Propositional Formulas, In Proc. of Software Product Line Conference (SPLC), 2005 Allgemeine Bücher zu Produktlinien: P. Clements, L. Northrop, Software Product Lines : Practices and Patterns, Addison-Wesley, 2002 K. Pohl, G. Böckle, F. van der Linden, Software Product Line Engineering: Foundations, Principles, and Techniques, Springer, 2005 47