Chapter 3 (Feature-Modelle und Produktkonfiguration) Flashcards
Was sind Feature Modelle und welche Arten gibt es diese darzustellen?
Featuremodelle 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 alle validen Konfigurationen: Konfigurationstabellen - grafisch: Entscheidungsbäume, FODA Deature-Diagramme, Orthogonal Variability Model (OVM)… - mathematisch: Aussagelogische Terme(SAT), constraint satisfiability Problems(CSP), Binary Decision Diagrams(BDD)
Wie sieht eine Konfigurationstabelle aus?
Spalten zeigen valide Produktkonfigurationen. Zeilen zeigen die Features. In der Tabelle ein X bedeutet, dass das Produkt in der Spalte das Feature der zeile ausgewählt hat.
Was ist FODA und Feature Modell.
Feature-Oriented Domain Analysis wird oft in Feature Diagrammen realisiert = Feature Modell. Es schränkt den Konfigurationsraum in validen Konfigurationsraum ein.
Was sind Feature Diagramme?
Baumartige Anordnung der Domain Features (Knoten). Abhängigkeiten zwischen Feature-knoten(Kanten, Gruppierung). Graphische Notation nach Kang et al. - Es gibt Mandatory Features -> müssen ausgewählt werden mit gefülltem Knödel. - Optionale Features -> können ausgewählt werden mit leerem Knödel - Wurzel ist Mandatory. - Sich gegenseitig ausschließende Features werden in Alternativgruppen zusammengefasst = leerer Bogen -> Auswahl des Elternfeature erzwingt Auswahl genau eines Kindfeatures. - Beliebig kombinierbare features werden in Or-Gruppen zusammengefasst = gefüllter Bogen. -> Die auswahl des Eltern Feature erzwing auswahl von mindestens einem Kindfeature. - Cross-Tree-Constraints: -> Requirekante = Auswahl 1 erzwingt Auswahl 2 -> excludekante = Feature 1 und 2 schließen sich aus.
Was für Anomalien können in Featuremodellen vorkommen?
- Unerfüllbare Featuremodelle: [FM] = leere Menge (zB 2 mandatoryfeatures die sich ausschließen) - Core Features (mandatory feature hat Requirekante zu einem optionalen Feature) - Dead Features (Mandatory feature schließt optionales feature aus)
Was ist der Unterschied zwischen mandatory feature und core feature?
Ein Mandatory feature ist nicht zwangsläufig ein core feature (der elternknoten eines mandatory features kann optional sein) Ein core feature ist nicht zwangläufig ein mandatory feature (ein core feature required ein optionales feature) => false optional feature
Wie kann man Featuremodelle semantisch vergleichen?
FM2 ist Verfeinerung von FM1, wenn [FM2] teilmenge [FM1] FM2 ist Verallgemeinerung von FM1, wenn [FM1] teilmenge [FM2] FM1 und FM2 sind äquivalent, wenn [FM1]=[FM2] Sonst unvergleichbar.
Was ist die Idee hinter Aussagenlogischer feature Modell Semantik?
Konstruktion eines Aussagenlogischen Terms, der genau dann erfüllt ist, wenn eine Feature Auswahl eine valide Produktkonfiguration ist. 1) Jeweils Übersetzung der einzelnen Konstrukte von Feature Diagrammen in äquivalente Logik-Klauseln 2) Komposition des gesamten terms durch Konjunktionen der Einzelterme. - Wurzelfeature ist root - Optionales feature = f1 -> f0 (f1 ist optionales feature) - Mandatory feature = f1 -> f0 und f0 -> f1 - Alternatigruppe = f0 -> EXODER f1 …,fk - Or-gruppe = f0 -> ODER f1,…,fk - Require = f0 -> f1 - Exclude = f0 -> !f1
Was versteht man unter einem Konfigurationsprozess?
Was sind die Eigenschaften ?
Produkte werden schrittweise in einem Konfigurationsprozess konfiguriert.
In jedem Konfigurationsschritt wird durch eine Konfigurationsoperation ein Feature an- oder abgewählt.
{} - +BCS -> {BCS} - -AutPW -> {BCS}…
Eigenschaften:
Sequenz von Konfigurationsoperationen, in dem jedes Feature f element F ganu einmal vorkommt.
- Soundness und Liveness:
Konfigurationsprozesse, deren Schritte mit dem Milti-Step-Algorithmus ohne Fehler-Schritt erzeugt werden, enden immer in valider Produktkonfiguration.
Cpmpleteness:
Zu jeder validen Produktkonfiguration gibt es mindestens einen Konfigurationsprozess, dessen Schritte mit dem Multi-Step-Algo ohne Fehler-Schritt produziert werden können.
Was für Anforderungen an die Sematik gibt es für Konfigurationsprozesse?
- Am Ende eines Prozesses werden nur valide Konfigurationen erreicht.
- indestens eine valide Konfiguration bleibt nach jedem Konfigurationsschritt erreichbar.
- Indirekte Auswirkungen von Konfigurationsentscheidungen werden automatisch propagiert.
- > Core features automatisch anwählen
- > Dead features automatisch abwählen