MATLAB und Simulink für Verifizierung, Validierung und Test

Verifizieren und Validieren eingebetteter Systeme mit Model-Based Design

Entwicklungsingenieure nutzen Model-Based Design mit MATLAB® und Simulink®, um komplexe eingebettete Systeme zu entwickeln und C Code, C++ Code sowie HDL Code auf Produktionsniveau zu generieren. MathWorks Tools verwenden Simulationstests und auf formalen Methoden basierende statische Analysen, um Model-Based Design durch genaueste Prüfung und Automatisierung zu ergänzen, damit Fehler frühzeitiger erkannt und höhere Präzision erzielt werden können.

Mit MATLAB und Simulink ist Folgendes möglich:

  • Nachverfolgen von Anforderungen zu Architektur, Design, Tests und Code
  • Nachweis, dass Ihr Entwurf die Anforderungen erfüllt und keine kritischen Laufzeitfehler aufweist
  • Prüfen der Konformität und Messen von Modell- und Codequalität
  • Automatische Erstellung von Testfällen zur Erhöhung der Testabdeckung
  • Erstellen von Berichten und Artefakten sowie Zertifizieren von Standards (wie DO-178 und ISO 26262).

Verifizierung von Anforderungen

Informelle Anforderungen in Textform, die in Dokumenten, Tabellenkalkulationen oder Anforderungsmanagement-Tools wie IBM ® Rational ® DOORS ® gespeichert sein können, lösen den Entwicklungsprozess aus. Mit der Requirements Toolbox™ lassen sich Anforderungen zusammen mit Ihrer Architektur, Ihren Entwicklungen, dem generierten Code und den Testartefakten importieren, anzeigen, erstellen und verwalten. Auf diese Weise können Sie einen Digital Thread von den Anforderungen bis zum Entwurf im System Composer™, Simulink, Stateflow ® erstellen oder Tests in Simulink Test™ durchführen. Anhand dieser Rückverfolgbarkeit können Sie Implementierungs- oder Testlücken ermitteln und die Auswirkung einer Änderung auf Entwurf oder Test umgehend überblicken.

Mithilfe des Requirements Table Block der Requirements Toolbox lassen sich Anforderungen formalisieren und auf Konsistenz, Vollständigkeit und Korrektheit analysieren, um sie im Vorfeld zu validieren. Anhand zeitlicher Bewertungen in Simulink Test können Sie Textanforderungen verifizieren, indem Sie Bewertungen mit präziser Semantik in einem natürlichen Sprachformat angeben, das auswert- und austestbar ist.


Einhaltung von Zertifizierungsstandards

Automatisieren Sie die Verifizierung von Modellen und Code bzgl. Standards wie DO-178, ISO 26262, IEC 61508, IEC 62304 und MathWorks Advisory Board (MAB) Stil-Richtlinien. Simulink Check™ bietet branchenweit anerkannte Überprüfungen und Metriken, mit denen Verstöße gegen Standards und Richtlinien während der Entwicklung identifiziert werden. Sie können individuelle Überprüfungen erstellen, um eigene Standards oder Richtlinien einzuhalten. Das IEC Certification Kit (for ISO 26262 and IEC 61508) und das DO Qualification Kit (for DO-178 and DO-254) beinhalten Tool-Qualifizierungsartefakte, Zertifizierungen und Test-Suiten, mit denen Sie Codegenerierungs- und -verifizierungsprodukte qualifizieren und die Zertifizierung Ihrer eingebetteten Systeme optimieren können.


Abwesenheit von Fehlern nachweisen und formales Verifizieren von Anforderungen

Bei der formalen Verifizierung werden ohne Simulierung des Entwurfs versteckte Entwurfsfehler gefunden, die einen Ganzzahlüberlauf, Dead Logic, Array-Zugriffsverletzungen und Division durch Null verursachen. Simulink Design Verifier™ kann formal verifizieren, dass Ihr Entwurf frei von Fehlern oder Sicherheitsschwachstellen ist. Außerdem kann Simulink Design Verifier beweisen, dass Ihr Entwurf kritische Anforderungen erfüllt. Findet das Tool eine Ausnahme, erzeugt es ein Gegenbeispiel zum Debuggen.


Automatische Testerzeugung

Testlücken, unbeabsichtigte Funktionalität und Anforderungsfehler müssen unbedingt erkannt werden. Simulink Coverage™ berechnet, wie viel des Modells bzw. des erzeugten Codes beim Testen ausgeführt wird. Metriken des Branchenstandards werden angewendet wie Condition, Decision, Modified Condition/Decision (MCDC) und Custom Coverage Objectives. Simulink Design Verifier kann bei unvollständiger Abdeckung (Incomplete Coverage) automatisch Testfälle erzeugen, um strukturelle und funktionale Abdeckungsziele zu erfüllen.


Statische Codeanalyse

Zur Verifizierung von handgeschriebenem und generiertem Code verwenden Polyspace®-Produkte formale Methoden, um Bugs zu finden und die Abwesenheit kritischer Laufzeitfehler nachzuweisen – ohne Testfälle oder Codeausführung. Polyspace Bug Finder™ überprüft und dokumentiert die Einhaltung von Standards wie MISRA®, ISO 26262, IEC 61508, DO-178 und FDA-Vorschriften. Sie können damit Software-Sicherheitsschwachstellen finden und Standards wie CWE, CERT-C, ISO/IEC 17961 und andere überprüfen. Polyspace Code Prover™ führt eine statische Codeanalyse aus, um die Abwesenheit von Überlauf, Division durch Null, Array-Zugriff außerhalb der Grenzen und weitere Laufzeitfehler in C/C++ Quellcode zu beweisen.


„Verglichen mit unseren früheren Erfahrungen mit manueller Programmierung konnten wir mithilfe von Model-Based Design die Arbeitskosten um 30 % und die Testkosten um 20 % senken sowie die Produktivität um mehr als 30 % steigern. Wir haben die ECU-Entwicklung vorzeitig abgeschlossen und dabei unser internes Software-Entwicklungsteam eingerichtet.“

Daming Li, Weichai Power