67
1 11/12/2019 Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien Grundlagen der Softwareproduktlinien: 3. Feature Modelle Wintersemester 2019/20 Gunter Saake, Jacob Krüger

Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

111/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Grundlagen der Softwareproduktlinien: 3. Feature Modelle

Wintersemester 2019/20Gunter Saake, Jacob Krüger

Page 2: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

211/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Letzte Woche

Architecture

Business Organisation

Process

KostenNutzen

Planung

Strategie Technische Aspekte

Menschen

Strukturen

Kommunikation

Verantwortlichkeiten

Rollen

Page 3: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

311/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Letzte Woche

Page 4: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

411/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Letzte Woche

Page 5: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

511/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Warum Features modellieren?

Page 6: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

611/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Beschreibung der Features einer Domäne

• Dient Visualisierung und Kommunikation

• Feature-Modelle beschreiben …• Elementare Abstraktionen einer Domäne und deren

Beziehungen• Die Menge der Produkte einer SPL

• Feature-Diagramme visualisieren Features und deren Beziehungen

Feature-Modellierung

Page 7: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

711/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Feature-Modellierung

Page 8: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

811/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Feature Modellierung in der Praxis

[Berger et al. 2010, 2014]

Page 9: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

911/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Feature Modellierung in der Praxis

[Berger et al. 2010, 2014]

Page 10: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

1011/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Feature Modellierung in der Praxis

[Berger et al. 2010, 2014]

„The same functionality was implemented twice […] They

implemented the same features.“

„The first one is that it‘s visible, you see the features that you had in the

code before“

Page 11: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

1111/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Notationen & Tools

Page 12: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

1211/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Notationen & Tools

23% der Unternehmen nutzen eigene NotationenMeistens werden mehrere Notationen genutzt

Page 13: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

1311/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Notationen & Tools

Page 14: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

1411/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Notationen & Tools

38% nutzen Eigenentwicklungen30% nutzen andere Open-Source Tools27% nutzen andere kommerzielle Tools

Page 15: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

1511/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Komplexität

~Linux

Page 16: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

1611/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Probleme

Page 17: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

1711/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Probleme

„Getting developers to understand why we do this.“

Page 18: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

1811/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Probleme

„Getting developers to understand why we do this.“

• Nutzen:• Organisieren von Wissen• Kollaboration• Konfigurationsmanagement

Page 19: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

1911/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Feature-Modelle und -Diagramme

Page 20: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

2011/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• 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

• Wie viele Varianten sind möglich?

Feature-Modell: Beispiel

Page 21: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

2111/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• 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

• Wie viele Varianten sind möglich?• {Basis, Win}• {Basis, Unix}• {Basis, Win, Write}• {Basis, Unix, Write}• {Basis, Win, Write, Txn}• {Basis, Unix, Write, Txn}

Feature-Modell: Beispiel

Page 22: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

2211/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Variable für jedes Feature (wahr wenn ausgewählt)

• Formel beschreibt Feature-Modell

• Formel ist wahr für eine gültige Feature-Auswahl

Feature-Modell in Aussagenlogik

Page 23: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

2311/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Variable für jedes Feature (wahr wenn ausgewählt)

• Formel beschreibt Feature-Modell

• Formel ist wahr für eine gültige Feature-Auswahl

• Erlaubt automatische Überprüfung, und Aufzählen der gültigen Produktvarianten (SAT, BDD, …)

Feature-Modell in Aussagenlogik

Page 24: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

2411/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Graphische Darstellung eines Modells• Basierend auf Hierarchischem Und-Oder-Graph

Feature-Diagramme

Page 25: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

2511/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Graphische Darstellung eines Modells• Basierend auf Hierarchischem Und-Oder-Graph• Kindknoten: Optional, Obligatorisch (Mandatory) oder Alternativ

Feature-Diagramme

Optional Obligatorisch

Oder(mind. 1)

Alternativ(genau 1)

Page 26: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

2611/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Graphische Darstellung eines Modells• Basierend auf Hierarchischem Und-Oder-Graph• Kindknoten: Optional, Obligatorisch (Mandatory) oder Alternativ• Abstrakt vs. Konkret: Ohne vs. mit Bezug zur Implementierung• Abstrakte Features haben keinen Einfluss auf Produkte

Feature-Diagramme

Abstrakt

Konkret

Page 27: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

2711/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Beispiel: Lego

Hair Gender Body

Officer

Page 28: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

2811/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Beispiel: Lego

Hair Gender Body

Officer

Page 29: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

2911/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Beispiel: Lego

Hair Gender Body

Officer

Page 30: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

3011/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Wurzel ist immer ausgewählt

Diagramme zu Modellen

Page 31: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

3111/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Diagramme zu Modellen

Page 32: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

3211/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Diagramme zu Modellen

Page 33: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

3311/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Diagramme zu Modellen

Page 34: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

3411/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Diagramme zu Modellen

Page 35: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

3511/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Diagramme zu Modellen

Page 36: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

3611/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Diagramme besser lesbar („Management-kompatibel“)

Feature-Diagramm vs. Formeln

Page 37: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

3711/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Diagramme besser lesbar („Management-kompatibel“)• Diagramme weniger flexibel

• Zusätzliche Formeln nötig• „Cross-Tree-Constraints“

Feature-Diagramm vs. Formeln

Page 38: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

3811/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Diagramme besser lesbar („Management-kompatibel“)• Diagramme weniger flexibel

• Zusätzliche Formeln nötig• „Cross-Tree-Constraints“

• Überführung von Diagramm zu Formel automatisierbar

Feature-Diagramm vs. Formeln

Page 39: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

3911/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Diagramme besser lesbar („Management-kompatibel“)• Diagramme weniger flexibel

• Zusätzliche Formeln nötig• „Cross-Tree-Constraints“

• Überführung von Diagramm zu Formel automatisierbar• Es existieren äquivalente Diagramme für eine Formel

Feature-Diagramm vs. Formeln

Page 40: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

4011/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Beispiel: FAME DBMS Core

Page 41: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

4111/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Beispiel: Berkeley DB

Page 42: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

4211/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Skalierbarkeit?

[Berger et al. 2013]

Linux Kernel mit 10.000+ Features?

Page 43: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

4311/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Verschiedene Varianten und Erweiterungen• Kardinalitäten (wie in UML)

• Optional: [0,1]• Obligatorisch: [1,1]

• Feature Modelle mit Attributen• …

Diagramm-Varianten

[Benavides et al. 2010]

Page 44: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

4411/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Analyse von Feature-Modellen

Page 45: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

4511/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Fragen über das Modell

Page 46: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

4611/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Ist das Modell konsistent?

• Ist eine Featureauswahl korrekt?

• Welche Features können nicht ausgewählt werden?

• Wie viele valide Produkte existieren?

• Sind zwei Modelle equivalent?

• …

Fragen über das Modell

Page 47: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

4711/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Ist eine Featureauswahl valide?• {Root, Base, F1, F4}• {Root, F1, F3, F4}• {Root, Base, F2, F3}• {Root, Base, F1, F3, F4}

Beispiele

Page 48: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

4811/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Ist eine Featureauswahl valide?• {Root, Base, F1, F4}• {Root, F1, F3, F4}• {Root, Base, F2, F3}• {Root, Base, F1, F3, F4}

• Ersetzen von Variablen in Formel• Wahr falls ausgewählt• Falsch falls nicht

• Formel wird wahr für valide Auswahl

Beispiele

Page 49: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

4911/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Ist eine Featureauswahl valide?• {Root, Base, F1, F4}• {Root, F1, F3, F4}• {Root, Base, F2, F3}• {Root, Base, F1, F3, F4}

• Ersetzen von Variablen in Formel• Wahr falls ausgewählt• Falsch falls nicht

• Formel wird wahr für valide Auswahl

Beispiele

Page 50: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

5011/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Existiert mindestens eine valide Variante?• Nutzen von SAT Solvern• Ist die Formel erfüllbar?

Beispiele

Page 51: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

5111/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Existiert mindestens eine valide Variante?• Nutzen von SAT Solvern• Ist die Formel erfüllbar?

• Gibt es tote Features?• Können in keinem Produkt auftauchen• Keine erfüllbare Formel

Beispiele

Page 52: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

5211/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Existiert mindestens eine valide Variante?• Nutzen von SAT Solvern• Ist die Formel erfüllbar?

• Gibt es tote Features?• Können in keinem Produkt auftauchen• Keine erfüllbare Formel

• Wie viele Varianten existieren?• Berechnung aller erfüllbaren Formeln• Sehr schnell zu aufwendig• Sinnvoll?

Beispiele

Page 53: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

5311/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Existiert mindestens eine valide Variante?• Nutzen von SAT Solvern• Ist die Formel erfüllbar?

• Gibt es tote Features?• Können in keinem Produkt auftauchen• Keine erfüllbare Formel

• Wie viele Varianten existieren?• Berechnung aller erfüllbaren Formeln• Sehr schnell zu aufwendig• Sinnvoll?

• Was passiert bei einer Änderung des Modells?

Beispiele

Page 54: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

5411/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Fragen über Code/Konfiguration

Page 55: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

5511/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Warum kann ein Block Code nicht ausgewählt werden?• Fehler im Code?• Fehler im Modell?

Beispiele: Code

…#ifdef A

…#ifdef B

…#endif B…

#endif A…

Page 56: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

5611/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Warum kann ein Block Code nicht ausgewählt werden?• Fehler im Code?• Fehler im Modell?

• Welche Feature-Module/Code-Blöcke werden nie kompiliert?

• Welche Features beeinflussen den Code auf welche Art?

Beispiele: Code

Page 57: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

5711/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Warum kann ein Block Code nicht ausgewählt werden?• Fehler im Code?• Fehler im Modell?

• Welche Feature-Module/Code-Blöcke werden nie kompiliert?

• Welche Features beeinflussen den Code auf welche Art?

• Welche Features müssen noch selektiert werden?

• Welche Features können noch selektiert werden?

Beispiele: Konfiguration

Page 58: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

5811/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Beispiele: Konfiguration in FeatureIDE

Page 59: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

5911/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Beispiele: Konfiguration in FeatureIDE

Wählt (propagiert) automatisch Features auf Basis des Feature Modells

Page 60: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

6011/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Beispiele: Konfiguration in FeatureIDE

Manuell gewähltes Feature

Page 61: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

6111/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Beispiele: Konfiguration in FeatureIDE

Manuell gewähltes Feature

Automatisch gewähltes Feature

Page 62: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

6211/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Beispiele: Konfiguration in FeatureIDE

Manuell gewähltes Feature

Automatisch gewähltes Feature

Automatisch exkludiertes Feature

Page 63: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

6311/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Beispiele: Konfiguration in FeatureIDE

Manuell gewähltes Feature

Automatisch gewähltes Feature

Automatisch exkludiertes Feature

Manuelles Exkludieren ist nur im erweiterten Konfigurator möglich

Page 64: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

6411/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Zusammenfassung

Page 65: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

6511/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Motivation für Feature Modelle

• Industrielle Anwendung und Probleme

• Notation von Feature Modellen

• Analysen auf und mit Hilfe von Feature Modellen

Zusammenfassung

Page 66: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

6611/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

• Arbeiten Sie sich in die Feature Modellierung mit FeatureIDE ein.Wiki: https://github.com/FeatureIDE/FeatureIDE/wikiInstallation etc.: https://featureide.github.io/(am Besten über Eclipse Marketplace/Install Button)

• Modellieren Sie ein Feature Diagramm für ihr Projekt (idealerweise aus Übung 2). Dabei sollten mindestens 15 Features dargestellt und in Beziehung zueinander gesetzt werden. Insbesondere sollen mindestens eine Gruppe (Oder, Alternative) und mindestens ein Cross-Tree-Constraint verwendet werden.

• Bestimmen Sie die Anzahl der validen Varianten, die in dem Modell definiert sind.

• Definieren Sie jeweils 2 Konfigurationen die valide und invalide sind.

• Zeigen Sie anhand der Formel des Feature Modells, warum eine der beiden Konfigurationen invalide ist. Erklären Sie, welche Abhängigkeiten im Modell dazu führen.

Übung 3

Page 67: Grundlagen der Softwareproduktlinien: 3. Feature ModelleProduktvarianten (SAT, BDD, …) Feature-Modell in Aussagenlogik Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

6711/12/2019Gunter Saake, Jacob Krüger | Einführung in Softwareproduktlinien

Fragen