Model-Driven Development & Product Lines Leipzig, 19. Oktober 2006 Jens Weiland DaimlerChrysler AG (GR/ESS)
Die Rolle von Varianten für den Bereich Automotive Vielzahl variabler Funktionen Beispiel Mercedes C-Klasse: 9 Motoren + 2 Lenkungen + 3 Ländervarianten + 80 Sonderausstattungen +... Anpassung an unterschiedliche Märkte (Europa, NAFTA, etc.) länderspezifische Regularien kundenspezifische Wünsche Einsatz unterschiedlichster (elektronischer) Systeme Verteilung von Funktionen auf unterschiedliche Steuergeräte Unterschiedliche Sensoren/Aktuatoren, Kennlinien/-felder Elektronische Systeme forcieren die Variantenbildung (e.g. ESP, Adaptive Cruise Control)
Modell-basierte Software-Entwicklung... mit Matlab/Simulink gewinnt immer mehr Einfluß im Bereich Automotive Kontinuierliche Systeme mit Simulink (Signalflußgraphen) Ereignisgesteuerte Systeme mit Stateflow (Zustandsautomaten)
Modell-basierte Software-Entwicklung und Varianten Fahrmodus Wie können Modellvarianten beschrieben werden? oder oder - Optionale Funktionalität oder alternative Algorithmen Variabilität in Modellarchitektur Sportlich Eco Komfortabel... oder alle Alternativen? - Parameter-basierte Beschreibung von HW Datenvariabilität Tracing von Variabilität? Motor M1 Drehmomementkennfeld Effizienz_Zuendwinkel Min_Betriebstemperatur Max_Betriebstemperatur... [1:2], [2:4], [3:8], [1:2], exp(-abs([-5:5])) 80 130 - Zuordnung von Variabilität zu Modellelementen - - Handhabung von Abhängigkeiten bei der Modellkonfiguration CLK oder Schiebedach Cabrio
Was umfaßt Variantenkonfiguration? Basis: Generatives Domänenmodell [Czarnecki, Eisenecker, Generative Programming] Wie werden Variabilität und Konfigurationen gemanaged / dargestellt? > Welches sind die variablen/gemeinsamen Konzepte in der Domäne? > Gegenseitige Abhängigkeiten, Werte variabilitätsbezogener Parameter, etc.? Wie wird Variabilität in Matlab/Simulink modelliert? > Wie können Variationspunkte im Architekturmodell identifiziert werden? > Wie können Varianten modelliert werden (Zuweisung Varianten zu Variationspunkten)? Verbindung zwischen Verwaltung und Modellierung (Konsistenz/Automatisierung)? > Definition des Konfigurationswissens > Verifizieren / Instanziieren gültiger Produktvarianten (hier: Modellvarianten)
Management/Darstellung von Variabilität auf Basis von Merkmalmodellen > Mandatory Feature : Jedes Auto hat einen Motor > Alternatives Feature : Ein Auto hat entweder eine mechanische oder elektronische Drosselklappe > Optionales Feature : Ein Auto hat eine Klimaanlage oder nicht > Range / Or Feature : Ein Auto hat einen Fahrmodus eco, sportiv oder komfortabel oder eine Kombination daraus
Modellierung von Variabilität in Simulink über generische Architekturmodelle... abhängig vom lokalen Kontext Sicherheitsanforderungen Wartungsaspekte...... beeinflußt Bindezeitpunkt Auswahl alternativer Modellteile (bei Ableitung Systemarchitektur) Steuerung des Programmverhaltens über Parametrierung (bei Systemaktivierung)... mittels generischer Blöcke Sind Basisblöcke der Simulink-Bibliothek oder werden aus diesen gebildet Konkretes Verhalten durch Parameter gesteuert
Modellierung von Variabilität in Simulink über generische Architekturmodelle Beispiel: Verwendung von Template Blöcken (= Configurable Subsystem) - Zuweisung von Member Blöcken zu Template Block über Parameter Blockchoice - Nicht verwendete Signale werden terminiert (In-Signale) / gegroundet (Out-Signale) Hier: Schlupfreduzierung Parameter Blockchoice Member Blöcke
Modellierung von Variabilität in Simulink über generische Architekturmodelle Beispiel: Einsatz von (Block-) Parametern in Zustandsdiagrammen - Parameter-basierte Beschreibung von Hardware; z.b. variantenspezifische Kennfelder - Variabilität im Kontrollfluß durch Modellierung sämtlicher Varianten in Statechart (Parameter in Guards) Hier: Wegfahrsperre Simulink-Parameter Simulink-Parameter
Definition des Konfigurationswissens a) Beschreibung des Problems: Configuration DSLs (Toolunterstützung: pure::variants) - Definition von Relationen» requires» conflicts» recommends» discourages» influences - Definition von Restriktionen alternative_child( Typ, Motortyp), hasattribute(motortyp, Kennlinie_Fahrmodus_eco )
Definition des Konfigurationswissens b) Beschreibung der Lösung über das Assoziationsmodell - Verbindung zwischen Merkmal- und Simulink-Modell - Unter welchen Bedingungen werden welche Werte Simulink-Parametern zugeordnet? Schematische Darstellung des Assoziationsmetamodells
Variantenkonfiguration von Variantenkonfigurationsprozess Variabilitätsmanagement Modell-basierte Softwareentwicklung mit Matlab/Simulink
Möglichkeiten merkmalbasierter Konfiguration variantenreicher Simulink-Modelle Explizite Darstellung und Mangement von Variabilität Tiefe Integration zwischen Simulink-Modellen und Konfigurationsmanagement Verifikation und Instanziierung gültiger Konfigurationen / Produktvarianten Einsatz im Entwicklungsprozess Konfiguration: (Teil-)Automatisierung der Variantenkonfiguration Dokumentation Simulation: Testen möglicher Konfigurationen
Vielen Dank für Ihre Aufmerksamkeit! Jens Weiland DaimlerChrysler AG GR/ESS Postfach 2360 89013 Ulm Fragen? Anregungen? jens.weiland@daimlerchrysler.com