Ein Qualitätsmodell zur automatisierten Ermittlung der Modellqualität bei eingebetteten Systemen Jan Scheible (jan.scheible@daimler.com) Ingo Kreuz (ingo.kreuz@daimler.com) Daimler AG Group Research and Advanced Engineering GR/PSS / Modellbasierte Entwicklung / 30.09.2010
2 Inhalt Problemstellung Lösungsansatz Prototyp Zusammenfassung und Ausblick
3 Problemstellung Ausgangssituation - Automobilindustrie verwendet verstärkt Modellbasierte Softwareentwicklung - Umfang der Modelle wird immer größer - Beispiel eines großen Matlab Simulink-Modells aus dem PKW-Bereich: - ca. 15.000 Blöcke - 700 Subsysteme - Subsystemhierarchie mit 16 Ebenen - hoher Zeitdruck in der Entwicklung - Entwickler haben trotz höherer Abstraktionsebene viele Freiheiten viele Möglichkeiten für potentielle Fehler
4 Inhalt Problemstellung Lösungsansatz Prototyp Zusammenfassung und Ausblick
5 Lösungsansatz Überblick Framework zur automatisierten Ermittlung der Modellqualität analytisch Qualitätsmodell Aspekte Faktoren Metriken Kriterien Qualitätsbewertung konstruktiv Patterns Handlungsempfehlung Architektur- Patterns Richtlinien
6 Lösungsansatz Fokus Framework zur automatisierten Ermittlung der Modellqualität analytisch Qualitätsmodell Aspekte Faktoren Metriken Kriterien Qualitätsbewertung konstruktiv Patterns Handlungsempfehlung Architektur- Patterns Richtlinien
7 Modellqualität Wann hat ein Simulink-Modell eine hohe Qualität? - Kriterien mit positivem Einfluss auf gewünschte Faktoren (z.b. Wartbarkeit, Verständlichkeit oder Robustheit) sind vorhanden - je mehr Kriterien ein Simulink-Modell erfüllt, desto höher ist die Qualität - alle Kriterien sind von Interesse, die einen Rückschluss auf gewünschte Faktoren zulassen
8 Qualitätsmodell (1/4) Wie kann die Modellqualität objektiv erfasst werden? Mit Hilfe eines Qualitätsmodells: Modellqualität gewünschte Eigenschaft für qualitativ hochwertige Modelle Faktor 1 Faktor 2 Kriterien sind Indikatoren für die gewünschte Eigenschaft Kriterium 1 Kriterium 2 Auswertung Metriken prüfen die Erfüllung der Kriterien Metrik 1 Metrik 2 Metrik 3 - momentan enthält das Qualitätsmodell 6 Faktoren, 17 Kriterien und 43 Metriken
9 Qualitätsmodell (2/4) Welche Kriterien haben Einfluss auf die Verständlichkeit? Modellqualität Verständlichkeit Dokumentation Lesbarkeit... Umfang #Subsystemanmerkungen #überkreuzender Linien #Blöcke #Linien ØSignale pro Bus - der Faktor Verständlichkeit hat insgesamt 5 Kriterien und 20 Metriken
10 Qualitätsmodell (3/4) Welche Kriterien haben Einfluss auf die Codegenerierbarkeit? Modellqualität Codegenerierbarkeit Verwendung des Data Dictionaries... Explizite Datentypen #Festkommaskalierungen ohne DD-Eintrag #Ports ohne DD-Eintrag #potientieller Probleme mit Datentypen - der Faktor Codegenerierbarkeit hat insgesamt 5 Kriterien und 7 Metriken
11 Qualitätsmodell (4/4) Welche Kriterien haben Einfluss auf die Wartbarkeit? Modellqualität Wartbarkeit Vermeidung impliziter Konstrukte... Vermeidung von Redundanz #From- und Goto-Blöcke #Speicherblöcke #Klone #gebrochener Bibliotheksverknüpfungen - der Faktor Wartbarkeit hat insgesamt 3 Kriterien und 10 Metriken
12 Inhalt Problemstellung Lösungsansatz Prototyp Zusammenfassung und Ausblick
13 Prototyp (1/2) Infrastruktur Qualitätsmodell Metamodell Faktoren Metriken Kriterien Simulink-Modell Data-Provider MXAM MXRAY manuelle Eingaben sldiagnostics Metrik 1 Metrik 2 Metrik 3... Metrik n Qualitätsbewertung Messergebnisse Messwert 1 Messwert 2 Messwert 3... Messwert n Präsentation Messobjekt
14 Prototyp (2/2) Visualisierung der Messwerte ø Signale pro Bus 32,8 25,3 # interne Zustände 1.335 11.541 12.601 # Linien # Klone 725 1065 5.040 6.683 # überkreuzender Linien ø Outport- Verbindungen 1,255 1,25 499 190 1,21 1.908 7,7 1.840 48 44 190 48 40 10.099 0,7 1.512 6 2,2 8 9 Tiefe der Subsystemhierarchie # Subsysteme 2.437 9,0 Wartbarkeit Verständlichkeit ø Höhe der Subsystemdarstellung 110 68 ø Breite der Subsystemdarstellung 1,3 1,5 ø Breite der Output-Schnittstelle 15,1 ø Breite der Input- Schnittstelle
15 Messwerte Modell 1 Modell 2 Modell 3 Modell 4 Modell 5 Modell 6 Modell 7 Modell 8 Modell 9 Modell 10 #Subsystemanmerkungen 37 76 1.011 73 49 482 423 47 4 132 #Subsysteme 340 677 1.908 867 1.118 2.288 2.909 555 274 1.083 #überkreuzender Linien 299 931 6.683 904 917 2.056 1.309 828 176 2.581 #Blöcke 1.120 2.924 9.017 4.628 4.981 10.360 7.479 2.526 956 4.309 #Linien 1.306 3.511 12.601 5.359 5.824 12.752 7.634 3.116 1.109 5.131 ØSignale pro Bus 11,93 12,43 32,88 13,46 16,42 12,14 15,39 8,25 10,64 33,44 #From- und Goto-Blöcke 94 32 0 638 0 148 0 74 81 100 #Speicherblöcke 3 1 1 2 22 52 15 1 2 3 #Klone 35 132 499 117 311 729 836 150 44 227 #gebrochener Bibliotheksverknüpfungen davon mit Strukturveränderung 139 207 1.362 376 708 1.262 1.333 259 154 488 24 2 0 0 0 36 98 8 2 0
16 Messwerte Modell 1 Modell 2 Modell 3 Modell 4 Modell 5 Modell 6 Modell 7 Modell 8 Modell 9 Modell 10 #Subsystemanmerkungen 37 76 1.011 73 49 482 423 47 4 132 #Subsysteme 340 677 1.908 867 1.118 2.288 2.909 555 274 1.083 #überkreuzender Linien 299 931 6.683 904 917 2.056 1.309 828 176 2.581 #Blöcke 1.120 2.924 9.017 4.628 4.981 10.360 7.479 2.526 956 4.309 #Linien 1.306 3.511 12.601 5.359 5.824 12.752 7.634 3.116 1.109 5.131 ØSignale pro Bus 11,93 12,43 32,88 13,46 16,42 12,14 15,39 8,25 10,64 33,44 #From- und Goto-Blöcke 94 32 0 638 0 148 0 74 81 100 #Speicherblöcke 3 1 1 2 22 52 15 1 2 3 #Klone 35 132 499 117 311 729 836 150 44 227 #gebrochener Bibliotheksverknüpfungen davon mit Strukturveränderung 139 207 1.362 376 708 1.262 1.333 259 154 488 24 2 0 0 0 36 98 8 2 0
17 Messwerte Modell 1 Modell 2 Modell 3 Modell 4 Modell 5 Modell 6 Modell 7 Modell 8 Modell 9 Modell 10 #Subsystemanmerkungen 37 76 1.011 73 49 482 423 47 4 132 #Subsysteme 340 677 1.908 867 1.118 2.288 2.909 555 274 1.083 #überkreuzender Linien 299 931 6.683 904 917 2.056 1.309 828 176 2.581 #Blöcke 1.120 2.924 9.017 4.628 4.981 10.360 7.479 2.526 956 4.309 #Linien 1.306 3.511 12.601 5.359 5.824 12.752 7.634 3.116 1.109 5.131 ØSignale pro Bus 11,93 12,43 32,88 13,46 16,42 12,14 15,39 8,25 10,64 33,44 #From- und Goto-Blöcke 94 32 0 638 0 148 0 74 81 100 #Speicherblöcke 3 1 1 2 22 52 15 1 2 3 #Klone 35 132 499 117 311 729 836 150 44 227 #gebrochener Bibliotheksverknüpfungen davon mit Strukturveränderung 139 207 1.362 376 708 1.262 1.333 259 154 488 24 2 0 0 0 36 98 8 2 0
18 Inhalt Problemstellung Lösungsansatz Prototyp Zusammenfassung und Ausblick
19 Zusammenfassung - Qualitätsmodell zur automatisierten Qualitätsbewertung - Abgeleitet aus dem Qualitätsmodell von Cavano und McCall - Erweitert um modellspezifische Faktoren und Kriterien (z.b. der Faktor Codegenerierbarkeit) - Kriterien sind zum Teil für jede grafische Modellierung verwendbar, zum Teil aber Simulink-spezifisch - Metriken prüfen die Erfüllung von gewünschten Qualitätskriterien - Prototyp zur Ermittlung der Messwerte
20 Ausblick - Kalibrierung der Metriken, d.h. finden der erlaubten Grenzen Modellqualitätsbewertung (in Arbeit) - Bisher relativ einfaches Qualitätsmodell, u.u. muss die Ausdrucksmächtigkeit noch erhöht werden (z.b. Umgang mit widersprüchlichen Messwerten) - Einbettung in den modellbasierten Entwicklungsprozess (in Arbeit)
21 Vielen Dank!