13
Eingrenzung möglicher Ursachen von Laufzeitfehlern in Simulink-Modellen Johanna Schneider – Daimler AG – 09. Juli 2014 [email protected]

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

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

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

Eingrenzung möglicher Ursachen von

Laufzeitfehlern in Simulink-Modellen

Johanna Schneider – Daimler AG – 09. Juli 2014

[email protected]

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

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

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

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

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

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

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

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

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

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

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

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

Page 13: 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

Vielen Dank für die

Aufmerksamkeit!

Kontakt: [email protected]