Automotive SPICE

Automotive SPICE mit Simulink

Automotive SPICE (Software Process Improvement and Capability Determination) ist ein Reifegradmodell zur Bewertung der Leistungsfähigkeit von Prozessen im Bereich der Entwicklung von Embedded Systemen für automotive Anwendungen. Ziel ist eine hohe Produktqualität zu erreichen und Entwicklungsprozesse von unterschiedlichen Unternehmen vergleichbar und somit auf einen idealisierten Prozess bezogen bewertbar zu machen. Aus der Erfahrung zeigt sich, dass sorgfältig etablierte und gereifte Entwicklungsprozesse dazu beitragen, das Auftreten von Fehlern in den Produktimplementierungen zu vermeiden. Für den automotiven Entwickler beschreibt das Prozessreferenzmodell von Automotive SPICE in Bild 1 die notwendigen Prozessschritte, die einzuhalten sind und im Rahmen eines Automotive SPICE Audits vom Assessor auf Vorhandensein bzw. Durchführung und deren Reifegrad bewertet werden.

Software Engineering Process Group - Software Detailed Design

Im speziellen beschreibt die Prozessgruppe „Software Engineering Process Group“ die einzelnen Prozesskategorien (SWE.1 – SWE.6), die bei einem gereiften Softwareentwicklungsprozess vorhanden sein müssen. Insbesondere die Kategorie „Software Detailed Design and Unit Construction“ (SWE.3) beschreibt zusammen mit den sogenannten Base Practices (BP) und Work Products, welche Aktivitäten im Rahmen des Software Designs durchzuführen sind und welche messbaren Artifakte als Ergebnis aus den Practices zu erstellen sind. Unternehmen in der Automobilindustrie setzen modellbasierte Entwicklung in Simulink ein, um ein detailliertes, dokumentiertes und bidirektional nachverfolgbares Softwaredesign zu erstellen, das einfach mit anderen Gruppen ausgetauscht und kommuniziert werden kann. Ein Vorteil der modellbasierten Entwicklung mit Simulink im Rahmen des Software Detailed Design von Automotive SPICE besteht darin, dass bereits in der frühen Phase Designentscheidungen gegen die Anforderungen mittels Simulation verifiziert werden können. Abgeleitet aus den Anforderungen können die funktionalen Designentscheidungen dann mittels einer ausführbaren Spezifikation in Form eines Simulationsmodells in Simulink schrittweise verfeinert und in ein Software Detailed Design in Simulink entwickelt werden, welches im Anschluß als Implementierungsmodell für die finale Seriencodegenerierung des Steuergerätes verwendet wird.

Software Engineering Process Group - Software Unit Verification

Die Kategorie “Software Unit Verification” (SWE.4) beschreibt mit den zugehörigen Base Practices und Work Products die Anforderungen an die Verifikation der zu testenden Software Unit. Dabei ist das Ziel die Konformität der Software Unit mit dem zuvor erstellten Software Detailed Design in Bezug auf seine funktionalen und nicht-funktionalen Anforderungen (z.B. MISRA C) zu verifizieren. Im Anschluß an die initiale Definition der Teststrategie und der Festlegung der Verfikationskriterien ist vom Entwickler nun einem nächsten Schritt der zuvor mittels Embedded Coder generierte Softwarecode zu verifizieren. Die statische Code Analyse wird dazu verwendet, um z.B. die Konformität mit Codierungsstandards with MISRA C zu verifizieren oder evtl. Laufzeitfehler im Code aufzudecken. Für die statische Codeanalyse wird Polyspace verwendet. Anschließend kann Äquivalenztest durchgeführt werden, um die Konformität des generierten Codes mit dem Modell in Simulink zu verifzieren. Zum einen bietet sich ein Back-to-Back Testing im Rahmen einer numerischen Äquivalenzprüfung an mit dem eine funktionale Äquivalenz verifiziert werden kann. Simulink Test unterstützt den Äquivalenztest sowohl für eine Software-in-the-Loop als auch eine Processor-in-the-Loop Verifikation mittels einer intuitiver Definition, Management und Ausführung der benötigten Unit Tests. Neben der funktionalen Äquivalenz kann aber auch noch einen strukturelle Äquivalenzprüfung von Modell und generiertem Code mittels Coverage Messung in Simulink Test durchgeführt werden. Welche Äquivalenzprüfung im konkreten zu verwenden ist hängt davon ab, welche Anforderungen der Hersteller an seinen Zulieferer im Rahmen des Software Unit Tests stellt und welche dann im Zuge eines Automotive SPICE Assessments vom Hersteller überprüft werden. Durch Verwendung von Simulink Test, Simulink Check, Simulink Coverage und Simulink Requirements lässt sich unmittelbar eine bidirektionale Nachverfolgbarkeit zwischen Testspezifikation und dem Detailed Design in Form des Simulink Modells herstellen als auch den zugehörigen Testergebnissen.