Software Product Lines



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

1. Übung zur Vorlesung Software-Produktlinien

Featuremodellbasiertes und kombinatorisches Testen von Software-Produktlinien

Software Product Lines

Software-Engineering Einführung

Projektseminar Modellbasierte Softwareentwicklung SoSe2014

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

Softwareproduktlinien Teil 2: Entwicklungsprozess und Variabilitätsmodellierung

Softwareproduktlinien - Entwicklungsprozess und Variabilitätsmodellierung

Seminar Bassem Ben Helal

Software-Engineering Einführung

Tel.: Fax: Ein Text oder Programm in einem Editor schreiben und zu ClassPad übertragen.

Product Line Engineering (PLE)

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

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

Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme

ES-Projektseminar (SS 2010)

Modeling Security Aspects of Network Aggregation Protocols. Fachgespräch Sensornetze August 2009

ES-Projektseminar (SS 2012)

Vorlesung Betriebstechnik/Netzplantechnik Operations Research

Generatives Programmieren

SMART Newsletter Education Solutions April 2015

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Application Requirements Engineering

lldeckblatt Einsatzszenarien von SIMATIC Security-Produkten im PCS 7-Umfeld SIMATIC PCS 7 FAQ Mai 2013 Service & Support Answers for industry.

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

WS 2009/10. Diskrete Strukturen

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Switch 1 intern verbunden mit onboard NICs, Switch 2 mit Erweiterungs-NICs der Server 1..6

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Grundlagen der Künstlichen Intelligenz

Comparing Software Factories and Software Product Lines

Künstliches binäres Neuron

Anmerkungen zur Übergangsprüfung

Referenzen Typo3. Blog der Internetagentur Irma Berscheid-Kimeridze Stand: Juni 2015

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

Programmierkurs Java

Teil 2: Ablauf der Analyse festlegen

MailUtilities: Remote Deployment - Einführung

Einführung in. Logische Schaltungen

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

Switching. Übung 7 Spanning Tree. 7.1 Szenario

WhiteStarUML Tutorial

Information Systems Engineering Seminar

Content Management System. «Rainbow Basis» Grundlagen. Einfache Kursverwaltung

CMMI und SPICE im Automotive Umfeld

Some Software Engineering Principles

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

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Grenzen der Formalisierung: zweitbeste Wege?

Verhaltensanalysegraph für Petrinetze

Ihr CMS für die eigene Facebook Page - 1

ADSL-Verbindungen über PPtP (Mac OS X 10.1)

Übung - Konfigurieren einer Windows-XP-Firewall

Zeichen bei Zahlen entschlüsseln

Web2Lead. Konfiguration

PCC Outlook Integration Installationsleitfaden

Bedienungsanleitung Version 1.0

Windows Server 2012 R2 Essentials & Hyper-V

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

DURCH VIDA ERZEUGTE PROTOKOLLDATEIEN 1 EINFÜHRUNG

Wasserfall-Ansätze zur Bildsegmentierung

Agentur für Werbung & Internet. Schritt für Schritt: Newsletter mit WebEdition versenden

Erfolgreiche Realisierung von grossen Softwareprojekten

EDV-Fortbildung Kombi-Schulung Word-Excel Modul Excel. Informationen zum Programm. Die Programmoberfläche von Excel

Mai Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

Datensicherung und Wiederherstellung

HOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8

ARAkoll 2013 Dokumentation. Datum:

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

BMW TREUE SERVICE. SRP MARKETING MODUL. ANLEITUNG ZUM EINSPIELEN DER LEUCHTTURMKAMPAGNEN IN DIE KSD.

Einreichung zum Call for Papers

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

PVS Grobkonzept: Strukturelle und funktionale Erweiterungen bei der Verwaltung der Arbeitszeit und der organisatorischen Zuordnung

1. Loggen Sie sich mit Ihrem Benutzernamen in den Hosting-Manager (Confixx) auf Ihrer entsprechenden AREA ein.

Übungen zur Softwaretechnik

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

LabView7Express Gerätesteuerung über LAN in einer Client-Serverkonfiguration. 1. Steuerung eines VI über LAN

Test-Driven Design: Ein einfaches Beispiel

A Domain Specific Language for Project Execution Models

Grundbegriffe der Informatik

Darstellungsformen einer Funktion

Persönliches Adressbuch

Transkript:

Software Product Lines Concepts, Analysis and Implementation Feature-Modelle und Produktkonfiguration 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-darmstadt.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 19.05.2014

Inhalt I. Einführung Motivation und Grundlagen Feature-orientierte Produktlinien II. Produktlinien-Engineering Feature-Modelle und Produktkonfiguration Variabilitätsmodellierung im Lösungsraum Programmierparadigmen für Produktlinien Feature Diagramme Feature Model Semantik und Analyse Konfigurationsprozesse III. Produktlinien-Analyse Feature-Interaktion Testen von Produktlinien Verifikation von Produktlinien IV. Fallbeispiele und aktuelle Forschungsthemen 2 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Application Eng. Domain Eng. Software-Product-Line Engineering Feature-Modell Wiederverwendbare Implementierungsartefakte Feature-Auswahl Generator Fertiges Program 3 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Feature-Modelle im Alltag 4 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Feature-Modelle: Einführung Feature-Modelle spezifizieren den Konfigurationsraum einer Produktlinie: Menge der konfigurierbaren Produktparameter: relevante Domain Features im Problemraum der Produktlinie Einschränkung der Kombinierbarkeit von Features in validen Produktkonfigurationen durch Abhängigkeiten zwischen Features Darstellungsformen: Explizite Auflistung aller validen Konfigurationen: Konfigurationstabellen Graphisch: Entscheidungsbäume, FODA Feature-Diagramme, Orthogonal Variability Model (OVM), Mathematisch: Aussagenlogische Terme (SAT), Constraint Satisfiability Problems (CSP), Binary Decision Diagrams (BDD), 5 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

BCS: Features und Constraints Domain Analysis Feature-Liste HMI LED Fensterheber Einklemmschutz Alarmanlage Innenraumüberwachung Zentralverriegelung Remote Key. 6 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation Feature-Abhängigkeiten und Constraints das optional wählbare Status-LED- Panel des HMI besteht aus mindestens einer LED-Anzeige der Fensterheber ist entweder manuell oder automatisch Der Außenspiegel kann als beheizbar konfiguriert werden Alle Sicherheitsfunktionen sind optional Der manuelle Fensterheber eignet sich nicht zur Fernsteuerung mit dem Remote Key

Beispiel: BCS Konfigurationstabelle P11.767!!! Spalten: valide Produktkonfigurationen Zeilen: Features Produktkonfiguration P6 enthält Feature CLS 7 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

FODA Feasibility Study (1990) 8 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Feature Diagramme Baumartige Anordnung der Domain Features (Knoten) Abhängigkeiten zwischen Feature-Knoten (Kanten, Gruppierung, ) Graphische Notation nach Kang et al. [Kang et al., 1990] 9 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Feature-Hierarchie Syntax Eltern Feature Beispiel Exterior Mirror (EM) Kind Feature Electric (E) Heatable (H) Semantik Zerlegen komplexer Features in Unter-Features Die Auswahl des Kind-Features ist nur möglich, wenn das Eltern- Feature ausgewählt ist 10 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation Valide Konfigurationen { EM } { EM, E } { EM, H } { EM, E, H } { E, H } { E } { H }

Feature-Modalitäten (1/2): Mandatory Features Syntax Eltern Feature Beispiel Exterior Mirror (EM) Kind Feature Electric (E) Heatable (H) Semantik Komposition komplexer Features aus festen Bestandteilen Die Auswahl des Eltern-Features erzwingt die Auswahl des Kind- Features 11 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation Valide Konfigurationen { EM } { EM, E } { EM, H } { EM, E, H } { E, H } { E } { H }

Feature-Modalitäten (2/2): Optionale Features Syntax Eltern Feature Beispiel Exterior Mirror (EM) Kind Feature Electric (E) Heatable (H) Semantik Aggregation komplexer Features aus optionalen Bestandteilen Die Auswahl des Eltern-Features ermöglicht die Auswahl des Kind- Features 12 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation Valide Konfigurationen { EM } { EM, E } { EM, H } { EM, E, H } { E, H } { E } { H }

Zusammenfassung: Feature-Hierarchie Die Feature-Hierarchie bildet einen Wurzelbaum auf der Menge der Features Das Wurzel-Feature ist per Konvention mandatory und bezeichnet den Namen der Produktlinie (Konzept-Feature) Jedes einzelne Kind-Feature ist entweder mandatory oder optional => Abhängigkeiten zwischen Nachbar-Features durch Feature-Gruppen 13 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Feature-Gruppen (1/2): Alternativ-Gruppen Syntax Beispiel Eltern Feature Power Window Kind Feature 1 Kind Feature k ManPW AutPW Semantik Valide Konfigurationen Zerlegen von Features in k sich gegenseitig ausschließende Alternativen Die Auswahl des Eltern-Features erzwingt die Auswahl von genau einem Kind-Feature 14 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation { PW } { PW, ManPW } { PW, AutPw } { PW, ManPW, AutPW } { ManPW, AutPW } { ManPW } { AutPW }

Feature-Gruppen (2/2): Or-Gruppen Syntax Beispiel Eltern Feature LED Kind Feature 1 Kind Feature k LED- CLS LED- FP Semantik Valide Konfigurationen Zerlegen von Features in k beliebig kombinierbare Bestandteile Die Auswahl des Eltern-Features erzwingt die Auswahl von mindestens einem Kind-Feature 15 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation { LED } { LED, LED-CLS } { LED, LEP-FP } { LED, LED-CLS, LED-FP } { LED-CLS, LED-FP } { LED-CLS } { LED-FP }

Zusammenfassung: Feature-Gruppen Unter einem Eltern-Feature können mehrere Gruppen und Einzel- Features hängen Einzel-Features und Feature-Gruppen dürfen sich nicht überlappen Häufig auch: Mandatory-Gruppen und Optional-Gruppen Abhängigkeiten zwischen hierarchisch unkorrelierten Features durch Cross-Tree-Constraints 16 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Cross-Tree-Constraints (1/2): Require-Kanten Syntax Beispiel Feature 1 Feature 2 LED Heatable Heatable <<require>> <<require>> Semantik Abhängigkeiten zwischen hierarchisch unkorrelierten Features Die Auswahl von Feature 1 erzwingt die Auswahl von Feature 2 17 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation Valide Konfigurationen { LED-Heatable } { LED-Heatable, Heatable } { Heatable }

Cross-Tree-Constraints (2/2): Exclude-Kanten Syntax Beispiel Feature 1 Feature 2 ManPW RCK PW Control <<exclude>> <<exclude>> Semantik Konflikt zwischen hierarchisch unkorrelierten Features Die Features 1 und 2 schließen sich aus 18 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation Valide Konfigurationen { ManPW } { ManPW, RCK-PW-COntrol } { RCK-PW-Control }

Zusammenfassung: Cross-Tree Constraints Cross-Tree-Kanten können beliebig quer zur Feature-Hierarchy verlaufen Verallgemeinerung auf beliebige Cross-Tree-Constraints in Form von aussagenlogischen Termen über Features 19 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Feature-Modelle: Erweiterungen Gruppenkardinalitäten Eltern Feature [k..l] Feature 1 Feature n Nicht-Boole sche Features Feature a : int b : { low, med, high } Abstrakte Features (nicht in Konfig. sichtbar und ohne Mapping) Feature Feature-Kardinalitäten (Mehrfachinstanziierung) Feature [3..*] => Übung 20 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Example: Body Comfort System Feature-Abhängigkeiten und Constraints das optional wählbare Status-LED-Panel des HMI besteht aus mindestens einer LED- Anzeige der Fensterheber ist entweder manuell oder automatisch Der Außenspiegel kann als beheizbar konfiguriert werden Alle Sicherheitsfunktionen sind optional Der manuelle Fensterheber eignet sich nicht zur Fernsteuerung mit dem Remote Key 21 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Document Management System (DMS) 22 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

FAME DBMS (Core) 23 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Berkley DB 24 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

PicoDBMS (für Smartcards) 25 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Coment DB (für Sensornetzwerke) 26 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Storage Manager 27 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Feature-Modell-Editor: FeatureIDE [Leich et al., 2005] Erstellung von Feature-Diagrammen in FODA Notation Semantische Analysen: Anzahl Produktkonfiguration, Anomalien, Mapping in den Lösungsraum (CPP, FOP, AOP, ) 28 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation => Übung

Feature-Modell Semantik Configuration Space Enumeration and Analysis Product Configuration Derivation and Validation Automated Feature-Model Configuration and Analysis requires Precise Configuration Semantics 29 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Feature-Model Analysis Survey (Benavides et al.) 30 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Mengendarstellung der Feature-Modell-Semantik Konfiguration Konfigurationsraum f1 f1,f3 F = f1, f2, f3 f2 f3 f2,f3 f1, f2 Feature-Menge f1, f2, f3 FM = f2 f1 f3 f1, f2 f1, f2, f3 = [FM] Feature-Modell über Feature-Menge Valide Konfiguration Valider Konfigurationsraum 31 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Analyse von Feature-Modellen (1/3) [Schobbens et al., 2005, Benavides et al., 2010] f0 f1 f2 <<exclude>> f0 f1 f2 <<require>> f0 32 19.05.2014 SPL VL f1 f2 <<exclude>>

Mandatory Features vs. Core Features Ein mandatory Feature ist nicht zwangsläufig ein core Feature: f2 f1 f0 Ein core Feature ist nicht zwangsläufig ein mandatory Feature: f3 f0 f2 <<require>> => f3 ist ein false optional feature (entsprechendes gilt für dead features) 33 19.05.2014 SPL VL

Beispiel: Versteckte Anomalien dead core f0 core core f4 f5 f1 <<require>> f3 f2 <<exclude>> dead dead 34 19.05.2014 SPL VL

Analyse von Feature-Modellen (2/3) f1 FM = k =? f2 f3 35 19.05.2014 SPL VL

Analyse von Feature-Modellen (3/3) [Thüm et al., 2008] f0 f0 f1 f2? f1 f2 <<exclude>> 36 19.05.2014 SPL VL

Vergleich von Feature-Modellen No Configs. added Configs. added No Configs. deleted Refactoring Generalization Configs. deleted Specialization Arbitrary Edit 37 19.05.2014 SPL VL

Aussagenlogische Feature-Modell-Semantik [Batory, 2005] 38 19.05.2014 SPL VL

Übersetzung von Feature-Diagrammen FODA Notation Aussagenlogischer Term Wurzel-Feature Optionales Feature Mandatory Feature Alternativ-Gruppe root f0 f1 f0 f1 f0 f1 fk Or-Gruppe f0 f1 fk Require-Kante Exclude-Kante 39 19.05.2014 SPL VL f0 f0 <<require>> <<exclude>> f1 f1

Beispiel FM f0 f1 f2 f3 <<exclude>> f4 f0 f3 40 19.05.2014 SPL VL

Feature-Modell-Analyse durch SAT-Solver Das SAT Problem ist NP-complete 41 19.05.2014 SPL VL

Ausdrucksmächtigkeit von Feature-Diagrammen Für jeden möglichen validen Konfigurationsraum über einer Menge F von Features gibt es mindestens ein Feature- Diagramm, das genau diese Konfigurationsmenge spezifiziert. 42 19.05.2014 SPL VL

Aktuelle Forschungsthemen Feature-Model Mining: Automatisierte Generierung eines Feature- Modells für eine Konfigurationsmenge extraktives SPLE Feature-Modell Komposition: Kombination von Feature-Modellen in größere Feature-Modelle Multi-SPL Feature-Modell Slicing und Dekomposition: Reduktion / Zerlegung in Teilmodelle mit explizit definierten Abhängigkeiten skalierbare Analysen 43 19.05.2014 SPL VL

Application Eng. Domain Eng. Software-Product-Line Engineering Feature-Modell Wiederverwendbare Implementierungsartefakte Feature-Auswahl Generator Fertiges Program 44 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Produktkonfiguration FeatureIDE GUIDSL 45 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Produktkonfiguration durch Feature-Selektion select deselect Aut Pw BCS Man Pw CLS RCK <<exclude>> Ctrl Pw BCS BCS. Aut Pw Man Pw CLS RCK Aut Pw Man Pw CLS RCK <<exclude>> Ctrl Pw <<exclude>> Ctrl Pw p = { BCS, ManPw, RCK } p = { BCS, AutPw, CLS, RCK, CtrlPw } 46 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Konfigurationsprozess Produkte werden schrittweise in einem Konfigurationsprozess konfiguriert In jedem Konfigurationsschritt wird durch eine Konfigurationsoperation ein Feature an- oder abgewählt BCS Aut Pw Man Pw CLS RCK <<exclude>> Ctrl Pw +BCS -AutPw { } { BCS } { BCS } +RCK { BCS, ManPw, RCK } +ManPw -CtrlPw { BCS, ManPw } -CLS { BCS, ManPw, RCK } { BCS, ManPw } 47 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Eigenschaften von Konfigurationsprozessen 48 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Konfigurationsschritte 1. Explizite Konfigurationsentscheidungen BCS Aut Pw Man Pw CLS RCK <<exclude>> 2. Invalide Konfigurationsentscheidungen Ctrl Pw BCS BCS Aut Pw Man Pw CLS RCK Aut Pw Man Pw CLS RCK <<exclude>> Ctrl Pw <<exclude>> Ctrl Pw 49 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Konfigurationsschritte 3. Implizite Konfigurationsentscheidungen Core Features können immer automatisch angewählt werden BCS Aut Pw Man Pw CLS RCK <<exclude>> Ctrl Pw Analog: Dead Features können immer automatisch abgewählt werden 50 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Konfigurationsschritte Bereits getroffene Konfigurationsentscheidungen implizieren weitere Konfigurationsentscheidungen (Multi-Steps) BCS Aut Pw Man Pw CLS RCK <<exclude>> Ctrl Pw +ManPw -AutPw -CtrlPw { BCS, CLS, RCK } { BCS, CLS, RCK, ManPw } Systematisierung: Algorithmus zur Ableitung valider Konfigurationssequenzen 51 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Berechnung von Multi-Steps (1/5) f? 52 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Berechnung von Multi-Steps (2/5) 3. Entscheidung über Feature-Hierarchie propagieren: root Bei Feature-Anwahl +f: (rekursiv) alle Eltern-Features von f bis zum Wurzel-Feature anwählen f f Bei Feature-Abwahl f: (rekursiv) alle Kind-Features von f bis zu den Blättern abwählen f 53 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Berechnung von Multi-Steps (3/5) 4. Behandlung von Mandatory Features: Angewähltes Feature +f hat ein mandatory Kind-Feature f : Kind- Feature ebenfalls anwählen f f Abgewähltes Feature f ist ein mandatory Kind-Feature von Eltern-Feature f : Eltern-Feature ebenfalls abwählen f f 54 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Berechnung von Multi-Steps (4/5) 5. Behandlung von Feature-Gruppen: Angewähltes Feature +f ist Teil einer Alternativ-Gruppe Ein anderes Feature f ist bereits gewählt: error Sonst: Alle anderen Features der Gruppe werden abgewählt f f f f f f Abgewähltes Feature f ist Teil einer Alternativ/Or-Gruppe Der Elternknoten ist nicht abgewählt und alle anderen Features der Gruppe sind abgewählt: error f f f 55 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Berechnung von Multi-Steps (5/5) 6. Behandlung von Cross-Tree-Constraints: Angewähltes Feature +f benötigt ein Feature f : Feature f ebenfalls anwählen f f <<require>> Abgewähltes Feature f wird von einem Feature f benötigt: Feature f ebenfalls abwählen f f <<require>> Angewähltes Feature +f steht in Konflikt mit einem anderen Feature f : Feature f abwählen f f <<exclude>> 56 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Eigenschaften von Konfigurationsprozessen Soundness und Liveness: Konfigurationsprozesse, deren Schritte mit dem Multi-Step-Algorithmus ohne Fehler-Schritt erzeugt werden, enden immer einer validen Produktkonfiguration. Completeness: Zu jeder validen Produktkonfiguration gibt es mindestens einen Konfigurationsprozess, dessen Schritte mit dem Multi-Step-Algorithmus ohne Fehler-Schritt produziert werden können. Zur einer validen Konfiguration gibt es in der Regel mehrere mögliche Konfigurationsprozesse, die sich in der Reihenfolge der Konfigurationsschritte unterscheiden. [Lochau, 2013] 57 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Staged Configuration [Czarnecki et al., 2005] Konfigurationsentscheidungen werden Stakeholdern zugeordnet Konfigurations-Stages (Views) werden in einer bestimmten Reihenfolge durchlaufen Implizite Priorisierung von Stakeholder-Entscheidungen Erweiterung um Multi-Steps und Workflow-Modelle [Hubaux et al., Mendonca et al.] 58 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Referenzen (1/2) Kyo C. Kang, Sholom G. Cohen, James A. Hess, William E. Novak, and A. Spencer Peterson. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical report, Carnegie-Mellon University Software Engineering Institute, November 1990. Thomas Thüm, Don Batory, and Christian Kästner. Reasoning about Edits to Feature Models. In Proceedings of the IEEE 31st International Conference on Software Engineering, pages 254 264, Washington, DC, USA, 2009. IEEE Computer Society. Thomas Leich, Sven Apel, Laura Marnitz, and Gunter Saake. Tool Support for Featureoriented Software Development: FeatureIDE: an Eclipse-based Approach. In Proceedings of the OOPSLA workshop on Eclipse technology exchange, eclipse 05, pages 55 59, New York, NY, USA, 2005. ACM. Pierre-Yves Schobbens, Patrick Heymans, and Jean-Christophe Trigaux. Feature Diagrams: A Survey and a Formal Semantics. In Requirements Engineering, 14th IEEE International Conference, pages 139 148, sept. 2006. Don Batory. Feature Models, Grammars, and Propositional Formulas. In SPLC, pages 7 20. Springer, 2005. David Benavides, Sergio Segura, and Antonio Ruiz-Cortés. Automated Analysis of Feature Models 20 Years Later: A Literature Review. Advanced Information Systems Engineering, 35:615 636, September 2010. 59 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation

Referenzen (2/2) Krzysztof Czarnecki, Simon Helsen, and Ulrich Eisenecker: Staged Configuration through Specialization and Multi-Level Configuration of Feature Models. In Software Process Improvement and Practice, 2005. Arnaud Hubaux, Andreas Classen, and Patrick Heymans: Formal Modelling of Feature Configuration Workflows. In Proceedings of the 13th International Software Product Line Conference, 2009. Arnaud Hubaux: Feature-based Configuration: Collaborative, Dependable, and Controlled. PhD thesis, University of Namur, Belgium, 2012. Marcilio Mendonca, Andrzej Wasowski, and Krzysztof Czarnecki: SAT-based Analysis of Feature Models is easy. In Proceedings of SPLC, pages 231 240, 2009. Jules White, Brian Dougherty, Douglas C. Schmidt, and David Benavides: Automated Reasoning for Multi-step Feature Model Configuration Problems. In Proceedings of SPLC, pages 11 20. ACM Press, 2009. 60 19.05.2014 Software Product Lines - Concepts, Analysis and Implementation