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