Laufzeitfehlern in Simulink-Modellen · Simulink-Modell • Alle Pfade, die zum Defekt führen •...
Transcript of Laufzeitfehlern in Simulink-Modellen · Simulink-Modell • Alle Pfade, die zum Defekt führen •...
![Page 1: Laufzeitfehlern in Simulink-Modellen · Simulink-Modell • Alle Pfade, die zum Defekt führen • Gewichtung der Pfade anhand des statistischen Lernens • Höheres Gewicht ⇔ höhere](https://reader033.fdokument.com/reader033/viewer/2022041414/5e1a7b57bef5e12e6435ea42/html5/thumbnails/1.jpg)
Eingrenzung möglicher Ursachen von
Laufzeitfehlern in Simulink-Modellen
Johanna Schneider – Daimler AG – 09. Juli 2014
![Page 2: Laufzeitfehlern in Simulink-Modellen · Simulink-Modell • Alle Pfade, die zum Defekt führen • Gewichtung der Pfade anhand des statistischen Lernens • Höheres Gewicht ⇔ höhere](https://reader033.fdokument.com/reader033/viewer/2022041414/5e1a7b57bef5e12e6435ea42/html5/thumbnails/2.jpg)
Agenda
• Motivation
• Ursachen von Laufzeitfehlern in Simulink-Modellen
Statistisches Lernen
Beispiel
Herausforderungen
• Ergebnisse und Ausblick
Johanna Schneider - Daimler AG - 09. Juli 2014 2
![Page 3: Laufzeitfehlern in Simulink-Modellen · Simulink-Modell • Alle Pfade, die zum Defekt führen • Gewichtung der Pfade anhand des statistischen Lernens • Höheres Gewicht ⇔ höhere](https://reader033.fdokument.com/reader033/viewer/2022041414/5e1a7b57bef5e12e6435ea42/html5/thumbnails/3.jpg)
Motivation
• Modellbasierter Entwicklungsprozess
• Code muss fehlerfrei sein (funktional als auch bzgl. Laufzeitfehler)
Code-Analyse (hier: Polyspace um Laufzeitfehler zu finden)
• Defekt im Code gefunden:
Korrektur im Code Defekt bei Wiederverwendung des Modells weiterhin enthalten
Korrektur im Modell
Johanna Schneider - Daimler AG - 09. Juli 2014 3
Code-
Generierung
Auf Steuergerät
laden
Division durch Null möglich
![Page 4: Laufzeitfehlern in Simulink-Modellen · Simulink-Modell • Alle Pfade, die zum Defekt führen • Gewichtung der Pfade anhand des statistischen Lernens • Höheres Gewicht ⇔ höhere](https://reader033.fdokument.com/reader033/viewer/2022041414/5e1a7b57bef5e12e6435ea42/html5/thumbnails/4.jpg)
Motivation
• Bevor ein Defekt korrigiert werden kann muss bekannt sein, wodurch er
entsteht Ursache
• Ziel: Ursachen für gemeldete Defekte semi-automatisiert im Modell finden
Statistisches Lernen aus vorangehenden Korrekturen von Laufzeitfehlern
• Reduzierung des Reviewaufwands um 99,45 %
Johanna Schneider - Daimler AG - 09. Juli 2014 4
Ursache
![Page 5: Laufzeitfehlern in Simulink-Modellen · Simulink-Modell • Alle Pfade, die zum Defekt führen • Gewichtung der Pfade anhand des statistischen Lernens • Höheres Gewicht ⇔ höhere](https://reader033.fdokument.com/reader033/viewer/2022041414/5e1a7b57bef5e12e6435ea42/html5/thumbnails/5.jpg)
Statistisches Lernen
• Einmalig pro Defekt-Typ (Dead Code, Array out of bounds,…)
• Lernen anhand von bereits analysierten Modellen
• Statistik, welcher Blocktyp (Constant, Inport, Switch,…) wie oft an einem
Defekt beteiligt ist
Johanna Schneider - Daimler AG - 09. Juli 2014 5
Bugfix
Version B Version A
![Page 6: Laufzeitfehlern in Simulink-Modellen · Simulink-Modell • Alle Pfade, die zum Defekt führen • Gewichtung der Pfade anhand des statistischen Lernens • Höheres Gewicht ⇔ höhere](https://reader033.fdokument.com/reader033/viewer/2022041414/5e1a7b57bef5e12e6435ea42/html5/thumbnails/6.jpg)
Beispiel
• Mapping eines Code-Defekts auf das
Simulink-Modell
Johanna Schneider - Daimler AG - 09. Juli 2014 6
![Page 7: Laufzeitfehlern in Simulink-Modellen · Simulink-Modell • Alle Pfade, die zum Defekt führen • Gewichtung der Pfade anhand des statistischen Lernens • Höheres Gewicht ⇔ höhere](https://reader033.fdokument.com/reader033/viewer/2022041414/5e1a7b57bef5e12e6435ea42/html5/thumbnails/7.jpg)
Beispiel
• Mapping eines Code-Defekts auf das
Simulink-Modell
• Alle Pfade, die zum Defekt führen
Johanna Schneider - Daimler AG - 09. Juli 2014 7
Constant1 Switch
Gain Constant
Enable
Logical
Operator Constant2
![Page 8: Laufzeitfehlern in Simulink-Modellen · Simulink-Modell • Alle Pfade, die zum Defekt führen • Gewichtung der Pfade anhand des statistischen Lernens • Höheres Gewicht ⇔ höhere](https://reader033.fdokument.com/reader033/viewer/2022041414/5e1a7b57bef5e12e6435ea42/html5/thumbnails/8.jpg)
Beispiel
• Mapping eines Code-Defekts auf das
Simulink-Modell
• Alle Pfade, die zum Defekt führen
• Gewichtung der Pfade anhand des statistischen Lernens
Johanna Schneider - Daimler AG - 09. Juli 2014 8
Constant1 Switch
Gain Constant
Enable
Logical
Operator Constant2
23,75
30,01
31,44
![Page 9: Laufzeitfehlern in Simulink-Modellen · Simulink-Modell • Alle Pfade, die zum Defekt führen • Gewichtung der Pfade anhand des statistischen Lernens • Höheres Gewicht ⇔ höhere](https://reader033.fdokument.com/reader033/viewer/2022041414/5e1a7b57bef5e12e6435ea42/html5/thumbnails/9.jpg)
Beispiel
• Mapping eines Code-Defekts auf das
Simulink-Modell
• Alle Pfade, die zum Defekt führen
• Gewichtung der Pfade anhand des statistischen Lernens
• Höheres Gewicht ⇔ höhere Wahrscheinlichkeit
die Ursache zu enthalten
Johanna Schneider - Daimler AG - 09. Juli 2014 9
Constant1 Switch
Gain Constant
Enable
Logical
Operator Constant2
23,75
30,01
31,44
![Page 10: Laufzeitfehlern in Simulink-Modellen · Simulink-Modell • Alle Pfade, die zum Defekt führen • Gewichtung der Pfade anhand des statistischen Lernens • Höheres Gewicht ⇔ höhere](https://reader033.fdokument.com/reader033/viewer/2022041414/5e1a7b57bef5e12e6435ea42/html5/thumbnails/10.jpg)
Herausforderungen
• Mögliche Abhängigkeiten zwischen den Defekten
Mehrere Defekte haben die selbe Ursache
• Ursache muss nicht eindeutig sein
• Ursache kann über mehrere Pfade verteilt sein
• Mapping Code ↔ Modell nicht immer eindeutig
• Heuristisches Verfahren das Verfahren muss nicht immer erfolgreich sein
Johanna Schneider - Daimler AG - 09. Juli 2014 10
![Page 11: Laufzeitfehlern in Simulink-Modellen · Simulink-Modell • Alle Pfade, die zum Defekt führen • Gewichtung der Pfade anhand des statistischen Lernens • Höheres Gewicht ⇔ höhere](https://reader033.fdokument.com/reader033/viewer/2022041414/5e1a7b57bef5e12e6435ea42/html5/thumbnails/11.jpg)
Ergebnisse
• 12 Simulink-Modelle
Zwischen 1.000 und 22.000 Blöcke je Modell
129 Defekte vom Typ Dead Code
Ca. 26.000 Pfade insgesamt gefunden mit 1 - 5.000 Pfade pro Defekt
• Insgesamt: 143 von 26.000 Pfaden mussten gereviewt werden
0,55% des eigentlichen Reviewaufwands
Johanna Schneider - Daimler AG - 09. Juli 2014 11
Pfade mit: # gereviewter Pfade # gefundener
Ursachen
Höchstem Gewicht 129 120/129 (93 %)
Zweithöchstem Gewicht 129 + 9 = 138 124/129 (96%)
Dritthöchstem Gewicht 138 + 5 = 143 129/129 (100%)
![Page 12: Laufzeitfehlern in Simulink-Modellen · Simulink-Modell • Alle Pfade, die zum Defekt führen • Gewichtung der Pfade anhand des statistischen Lernens • Höheres Gewicht ⇔ höhere](https://reader033.fdokument.com/reader033/viewer/2022041414/5e1a7b57bef5e12e6435ea42/html5/thumbnails/12.jpg)
Ausblick
• Anwendung des statistischen Lernens auf weitere Defekt-Typen
Array out of bounds
Division by zero …
• Hauptziel: semi-automatische Korrektur der Defekte
Johanna Schneider - Daimler AG - 09. Juli 2014 12
Wollen Sie den markierten Bug
korrigieren?
ja nein
Dialog Bug