Projektvorlesung "Eingebette Systeme - Produktivität und Qualität" Jan Birkholz
Modellierungsrichtlinien Auch Modellierungsstandards Vorgaben, die im Rahmen einer Modellierung eingehalten werden sollen Zur Erfüllung von Anforderungen an das Modell 2
Modellierungsrichtlinien Kategorien Layout Arithmetische Probleme Ausnahmenbehandlung Werkzeug- u. Projektspezifische Bedingungen 3
Modellierungsrichtlinien Kategorien Layout Lesbarkeit, Wartbarkeit, Kompatibilität Regeln Eingänge sind im Modell links, Ausgänge rechts Leitungen kreuzen sich nicht Namen/Blöcke sollen nicht durch andere verdeckt werden Signalfluss von Links nach Rechts Keine magischen Zahlen Funktionalität soll auf jeder grafischen Ebene erklärt sein 4
Modellierungsrichtlinien Kategorien Layout Lesbarkeit, Wartbarkeit, Kompatibilität Arithmetische Probleme Verhindere typische Probleme z.b. Teilen durch Null Regeln Produktblöcke mit 3+ Eingängen sollen in Reihe von 2er Blöcken wandeln Für Codegenerierung werden sowieso Zwischenergebnisse mit begrenzter Genauigkeit erzeugt Division durch Null verbieten 5
Modellierungsrichtlinien Kategorien Layout Arithmetische Probleme Verhindere typische Probleme z.b. Teilen durch Null Ausnahmenbehandlung Lesbarkeit, Wartbarkeit, Kompatibilität Robustere Artefakte Werkzeug- u. Projektspezifische Bedingungen Testbarkeit durch spez. Tools Hardwarelimitationen 6
Schlechtes Beispiel [StDzPo] 7
Gutes Beispiel [StDzPo] 8
Motivation Immer komplexer werdende, vernetzte Entwürfe >10.000 Blöcke Wettbewerbsfaktor für Hersteller und Zulieferer Sichtprüfung von Modellen und Dokumentationen (Design Review) 9
Motivation (Modell)Konsistenz Aussehen, Lesbarkeit, Wiederverwendbarkeit Kompatibilität zu Zulieferern, für Codegenerierung Fehlerminimierung Vermeidung von von Standardverletzungen z.b. MAAB, DO-178B, IEC-61508 10
Werkzeuge e-guidelines Server (Model Engineering Solutions/Daimler) Web-basierte Infrastruktur für zentrale Administration d. verschiedenen Richtlinienbibliotheken Statische Modellanalyse Tools Simulink Model Advisor/MINT MATLAB M-scripts check Bericht Fehler im Bericht müssen untersucht werden 11
Werkzeuge mit Reparaturfunktionen Model Examiner (MXAM) MATE MATLAB Simulink and Stateflow Analysis and Transformation Environment 12
Model Examiner Frameworkunabhängige Richtlinientests Unterstützt Model Advisor, MINT, Model Examiner Über MATLAB Kommandozeile Batch mithilfe von selbstgeschriebenen Scripten Automatische Reparatur Ohne strukturelle Modifikationen Bericht mit allen Reparieroperationen Daimler [StDzPo] Signifikante Arbeitsreduzierung beim Design Review Nicht bewusste Verletzungen aufgefallen 13
MATE Benutzt Metamodell von ML/SL/SF (MESA) Möglichkeit automatischer Modelltransformationen z.b. Reparatur, Layout, Muster 14
MATE Modelltransformations- und Verbesserungsfunktionen Automatische Reparaturfunktion Potentziell bis zu 60% MAAB Verletzungen z.b. Modell komplett "aufrollen" (keine Subsysteme) Interaktive Reparaturfunktion Erfordert Nutzereingaben Muster Produktblock mit 3+ Eingängen: Rundungsfehler vorberechnen Simulink if-then-else-if / flowchart switch-case Verschönerungsoperationen 15
Motivation mit besteh. Werkzeugen Keine werkzeugübergreifende Konsistenz Erneute Artefaktprüf. im Werkzeug des Partners in Praxis häufig Probleme mit Schnittstelleninkonsistenzen, fehlerhaften bzw. nicht nachvollziehbar umgesetzten Anforderungen 16
Projekt MESA Metamodellierung zur Automatisierung von Analyse- und Entwicklungsmethoden für Software im Automobil Metamodellierung von Entwicklungsartefakten Automotiv-spezifische Metamodelle Metamodellierung der Beziehungen zwischen Artefakten Automotiv-spezifische Entwicklungsrichtlinien 17
Modellbasierter Entwicklungsprozess [FarRöb] 18
ASD-Metamodell [FarRöb] 19
ASD-Metamodell ASD-Metamodell ist hierarchisch nach Abstraktionsebenen aufgebaut Kern, der ein Standardelement + wiederkehrende Strukturen, wie z.b. Containment, beschreibt Wiederverwendung durch Vererbung Pakete mit grundlegenden Elementen mit Strukturen von Werkzeugartefakten mit Strukturen logischer Artefakte 20
Logisches Artefakt: Basisfunktion ASD-Metamodell DOORS [FarRöb] [FarRöb] 21
Paket mit Werzeugartefakten [FarRöb] 22
Überprüfung mit ASD-Modellen natürlichsprachliche Entwicklungsrichtlinien mit Hilfe der OCL formalisieren mit OSLO (Open Source Library for OCL) automatisiert, werkzeugunabhängig prüfen Formulierung werkzeugübergreifender Richtlinien ist nur nach gründlicher Analyse des Entwicklungsprozesses möglich 23
ASD Regelchecker am Bsp. ML/SL/SF [FarRöb] 24
Voraussetzung für die Prüfung Kenntnis des Entwicklungsprozesses bei Konsistenzcheckersentwicklung zu prüfenden Artefakte, die meist logische Artefakte sind, müssen im Metamodell definiert werden und ihre Zusammensetzung aus Werkzeugartefakten mit Hilfe von Transformationen dargestellt werden Prozesswissen fließt in Neuformulierung oder zumindest Anpassung bestehender Entwicklungsrichtlinien ein (z.b. dürfen bestimmte Dinge nicht auftreten) 25
Metamodellbasierte Regelbeschreibung und Überprüfung DOORS [FarRöb] Simulink [FarRöb] 26
Metamodellbasierte Regelbeschreibung und Überprüfung Richtlinie Bezeichnung der Basisfunktion in DOORS = Bezeichnung des Basismoduls in Simulink OCL context OclVoid inv:automotivesystemdevelopment::activities:: RequirementsManagement::Basisfunktion.allInstances()->reject (b AutomotiveSystemDevelopment::Tools::Simulink::SLBlockTypes:: SLSubSystemBlock.allInstances()->exists(s s.identifier=b.identifier)) [FarRöb] 27
Metamodellbasierte Regelbeschreibung und Überprüfung OCL ungeeignet für komplexe Muster mit Navigation auf unterschiedlichen Pfaden und deren Ergebnisvergleich keine Regular Expressions keine komplexen arithmetischen Operationen Graph transformierende Spezifikation SDM (story driven modeling) diagram syntax 28
Graph transformierende Spezifikation Subsystemnamen auf unerlaubte Zeichen prüfen [ALSS] 29
Modellierungsrichtlinien in Simulink [Kodati] 30
Modellierungsrichtlinien in Simulink [Kodati] 31
Modellierungsrichtlinien in Simulink [Kodati] 32
Modellierungsrichtlinien in Simulink [Kodati] 33
Modellierungsrichtlinien in Simulink [Kodati] 34
Modellierungsrichtlinien in Simulink [Kodati] 35
Modellierungsrichtlinien in Simulink [Kodati] 36
Modellierungsrichtlinien in Simulink [Kodati] 37
Modellierungsrichtlinien in Simulink [Kodati] 38
Modellierungsrichtlinien in Simulink [Kodati] 39
Modellierungsrichtlinien in Simulink [Kodati] 40
Modellierungsrichtlinien in Simulink [Kodati] 41
Modellierungsrichtlinien in Simulink [Kodati] 42
Modellierungsrichtlinien in Simulink [Kodati] 43
Eigene Modellierungsrichtlinien in Simulink [Kodati] 44
Beispiel: Lookup Table [Beucher] 45
Beispiel: Lookup Table > addpath(dir,'-end'); sl_customization.m definemodeladvisorchecks.m 46
Beispiel: Lookup Table LookupLinkChk.m...... 47
Literatur [FarRöb] [StDzPo] [Kodati] [ALSS] [Beucher] Farkas, Tibor/Röbig, Harald: Automatisierte, werkzeugübergreifende Richtlinienprüfung zur Unterstützung des AutomotiveEntwicklungsprozesses. In: Dagstuhl-Workshop MBEES: Modellbasierte Entwicklungeingebetteter Systeme III, 2007. Stürmer, Ingo/Dziobek, Christian/Pohlheim, Hartmut: Modeling Guidelines and Model Analysis Tools in Embedded Automotive Software Development. In: Dagstuhl-Workshop MBEES: Modellbasierte Entwicklung eingebetteter Systeme IV, 2008. Kodati, Parasar: Talk: Implementing Model Standards. Internet: http://www.mathworks.com/products/demos/slvnv/model_standards/inde x.html [16.06.2009] Amelunxen, Carsten/Legros, Elodie/Schürr, Andy/Stürmer, Ingo: Checking and Enforcement of Modeling Guidelines with Graph Transformations. Beucher, Ottmar: MATLAB und Simulink. 4. Auflage. Hg: Pearson Studium. 48