Konzepte zur Absicherung der Variantenkonfiguration von eingebetteter Fahrzeugsoftware∗ Hannes Holdschick † Daimler AG hannes.holdschick@daimler.com Abstract: Eine breite Fahrzeugpalette, spezifische Produktanforderungen aus globa- len Märkten und eine Vielzahl softwarebasierter Ausstattungsvarianten führen in der Automobilindustrie zu einer immer größeren Produktvielfalt. Um die entstehende Kom- plexität beherrschen zu können, wird die Methode des merkmalbasierten Variantenma- nagements eingesetzt. Der bei der Daimler AG verfolgte Ansatz sieht vor, dass variable Komponenten in Entwicklungsartefakten, wie beispielsweise einem Matlab / Simulink-Modell, mithil- fe von aussagenlogischen Formeln über Merkmalen konfiguriert werden. Fehler inner- halb dieser Konfigurationsformeln bzw. des Merkmalmodells können bei der Konfigu- ration zu inkonsistenten Systemvarianten führen. Wir präsentieren daher Konsistenz- bedingungen, um die Konfiguration abzusichern. Diese basieren auf SAT-Analysen des Merkmalmodells und der Konfigurationsformeln. Erste Implementierungen zei- gen, dass die Performanz solcher Analysen auf industriellen Variantenmodellen praxi- stauglich ist. 1 Einleitung In der Automobilindustrie wird das Konzept der Software-Produktlinien [CN01] einge- setzt, um der steigenden Variantenkomplexität in softwarebasierten Systemen zu begeg- nen. Erreicht dabei die Variabilität in Entwicklungsartefakten, wie z.B. einem Simulink- Modell oder einem Anforderungsdokument, eine hinreichende Komplexität, so wird sie in einem merkmalbasierten Variantenmodell dokumentiert. Darin werden die gemeinsa- men und unterschiedlichen funktionalen Eigenschaften der System-Varianten in einem Merkmalmodell [KCH+ 90] festgehalten. Um auch die Konfiguration des Artefaktes zu ermöglichen, muss zusätzlich das Mapping zwischen Merkmalen und den variablen Be- standteilen des Artefaktes erstellt werden, welches im sogenannten Konfigurationsmodell abgebildet wird. Ist ein Variantenmodell im Einsatz, entwickelt es sich stetig weiter. Dadurch entsteht die Herausforderung, dessen Konsistenz im Evolutionsprozess zu gewährleisten, welche auch schon in anderen Arbeiten thematisiert wurde [LSB+ , Hol12]. Als einen Lösungsansatz ∗ Copyright c 2014 for the individual papers by the papers’ authors. Copying permitted for private and academic purposes. This volume is published and copyrighted by its editors. † Dieser Beitrag wurde durch das BMBF im Projekt SPES 2020 XT (Förderkennz: 01IS12005) gefördert. 87 dafür präsentieren wir Analysen des Variantenmodells, um nach einer Änderung prüfen zu können, ob Inkonsistenzen bzw. Fehlmodellierungen aufgetreten sind. Durch die aus- sagenlogische Fundierung des Merkmalmodells können diese Konsistenzbedingungen auf die Frage der Erfüllbarkeit einer aussagenlogischen Formel (SAT) zurückgeführt werden. 2 Beschreibung des Variantenmodells In diesem Abschnitt wird näher auf die beiden Teilmodelle des Variantenmodells und den Konfigurationsprozess eingegangen. 2.1 Das Merkmalmodell Im Merkmalmodell sind die funktionalen Eigenschaften des Systems hierarchisch als Baum strukturiert [KCH+ 90]. Definition: Sei zunächst M = (M, H ∪ C, r) ein 3-Tupel bestehend aus: • einer endlichen Menge M , • der Menge H der hierarchischen Beziehungen: H := opt ∪˙ obl ∪˙ alt ∪˙ dis ⊂ M × M , • der Menge C der Cross-Tree-Constraints: C := req ∪˙ con ⊂ M × M • und einem ausgezeichnetem Wurzelelement r ∈ M Wir nennen M ein Merkmalmodell, falls gilt: (M1) Für jedes m ∈ M \ {r} existiert genau ein x ∈ M mit (x, m) ∈ H (M2) Es existiert kein x ∈ M mit (x, r) ∈ H (M3) Für jedes x ∈ M existieren x1 , . . . , xn ∈ M mit (r, x1 ), . . . , (xn , x) ∈ H Mit anderen Worten: Interpretiert man M als Knotenmenge und H als Kantenmenge, so ist (M, H) ein Baum. Die Relationen in H beschreiben dabei die Variationstypen der Merkmale. Wir unterscheiden in Anlehnung an bestehende Ansätze [Bat05, CE00] die folgenden Typen: optional (opt), obligatorisch (obl), alternativ (alt) und disjunktiv (dis). Ist ein Paar von Merkmalen in einer der Relationen enthalten, so stehen diese in einer Vater-Kind-Beziehung und das Kindmerkmal hat den entsprechenden Variationstyp. Zum Beispiel bedeutet (x, y) ∈ opt, dass x das Vatermerkmal des optionalen Merkmals y ist. Dadurch definiert H eine Hierarchie auf der Menge M der Merkmale. 88 Abbildung 1: Beispiel für ein Merkmalmodell Mithilfe der Cross-Tree-Constraints lassen sich weitere Beziehungen zwischen Merkma- len definieren. Wir beschränken uns hier auf die beiden Typen requires (req) und conflicts (con), da sie in der Praxis am häufigsten verwendet werden. In Abb. 1 sieht man ein stark vereinfachtes Beispiel für ein Merkmalmodell der Fahrerassistenzsysteme (FAS). Entspre- chend der obigen Definition hat dieses Modell die folgende Struktur: • opt = {(FAS, Tempomat), (FAS, Bremsassistent) (Radarsysteme, Nahbereichsra- dar), (Radarsysteme, Fernbereichsradar)} • obl = {(FAS, Limiter), (FAS, Radarsysteme)} • alt = {(Tempomat, einstufiger Tempomathebel), (Tempomat, zweistufiger Tempomathebel)} • req = {(Bremsassistent, Nahbereichsradar)} bzw. dis = con = ∅ Ausgehend von der obigen Beschreibung des Merkmalmodells lässt sich nun dessen aus- sagenlogische Repräsentation definieren. Mit F (M ) bezeichnen wir dabei hier und auch im Weiteren die Menge aller aussagenlogischen Formeln über der Merkmalmenge M . Definition: Sei M = (M, H ∪ C, r) ein Merkmalmodell mit H = {opt, obl, alt, dis} und C = {req, con}. Dann bezeichnen wir mit φ(M) ∈ F (M ) die Formel des Merkmalm- odells M. Sie ist definiert durch: def φ(M) = r (1) ^ ∧ (y → x) (2) (x,y)∈opt ^ ∧ (x ↔ y) (3) (x,y)∈obl ^ k _ ^ ∧ ((x ↔ yi ) ∧ ¬(yi ∧ yj )) (4) x∈M i=1 i