MATLAB und Simulink für Verifikation und Validierung

Verifizieren und Validieren eingebetteter Systeme mit Model-Based Design

Ingenieurteams nutzen Model-Based Design mit MATLAB und Simulink für den Entwurf komplexer Embedded-Systeme und die Generierung von C, C++ und HDL-Code in Produktionsqualität. Unter Befolgung des High-Integrity-Verifikations-Workflows können Teams simulationsbasierte Tests und statische Analysen heranziehen, um das Model-Based Design durch Stringenz und Automatisierung zu ergänzen und somit Fehler früher zu finden und eine höhere Qualität zu erzielen.

Anforderungsmanagement

Informelle Anforderungen in Textform, die in Dokumenten, Tabellenkalkulationen oder Anforderungsmanagement-Tools wie IBM Rational DOORS gespeichert sein können. Mit der Requirements Toolbox lassen sich Anforderungen zusammen mit Ihrer Architektur, Ihren Entwürfen, 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 in System Composer, Simulink oder Stateflow erstellen oder Testfälle in Simulink Test durchführen. Anhand dieser Rückverfolgbarkeit können Sie Implementierungs- oder Testlücken ermitteln und die Auswirkungen einer Änderung auf Entwurf oder Testsystem umgehend nachvollziehen.

Mithilfe des Requirements Table-Blocks der Requirements Toolbox lassen sich Anforderungen formalisieren und auf Konsistenz, Vollständigkeit und Korrektheit analysieren, um sie im Vorfeld zu validieren. Anhand der Temporal Assesments (zeitliche Bewertungen) in Simulink Test können Sie Textanforderungen verifizieren, indem Sie Bewertungen mit präziser Semantik in einem natürlichen Sprachformat angeben, das ausgewertet und debuggt werden kann.


Systematische Fehlerinjektion und FMEA in Simulink

Mithilfe der Simulation können Sie die Auswirkungen von Fehlern und anderem abnormalen Verhalten analysieren, um Sicherheitsanforderungen zu entwickeln und die Robustheit des Systems zu überprüfen. Simulink Fault Analyzer ermöglicht die systematische Fehlereinfluss- und Sicherheitsanalyse mithilfe von Simulation. Mit diesem Produkt können Sie Simulationen zur Fehlerinjektion durchführen, ohne Ihren Entwurf zu modifizieren. So können Sie Fehler verwalten, die in Simulink, Simscape und System Composer modelliert wurden. Mit Simulation Data Inspector können Sie die Auswirkungen von Fehlern analysieren. Mithilfe des Multiple-Simulations-Fensterbereichs können Sie Analysen der Fehlerempfindlichkeit durchführen. Ebenso ist es möglich, Sicherheitsanalysen, wie z. B. die Fehlermöglichkeits- und Einflussanalyse (Failure Mode and Effects Analysis, FMEA), während der Simulation auszuführen. Zudem können Sie mit dem Simulink Fault Analyzer formale Verbindungen zwischen Fehlern, Gefahren, Fehlererkennungs- und -begrenzungslogik und anderen Artefakten erstellen (mit Requirements Toolbox).


Einhaltung von Zertifizierungsstandards

Automatisieren Sie die Verifikation von Modellen und Code anhand von Standards wie DO-178, ISO 26262, IEC 61508, IEC 62304 und MathWorks Advisory Board (MAB) Stilvorgaben. 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 (für ISO 26262 und IEC 61508) und das DO-Qualifizierungskit (für DO-178 und 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.


Nachweis der Abwesenheit von Fehlern und formale Verifikation von Anforderungen

Bei der formalen Verifikation werden ohne Simulation des Entwurfs versteckte Entwurfsfehler gefunden, die einen Ganzzahlüberlauf, unerreichbare Logik, 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 nachweisen, dass Ihr Entwurf kritische Anforderungen erfüllt. Findet das Tool eine Ausnahme, erzeugt es ein Gegenbeispiel zum Debuggen.


Abdeckungsanalyse von Modelltests

Testlücken, unbeabsichtigte Funktionalität und Anforderungsfehler müssen unbedingt erkannt werden. Simulink Coverage berechnet, welcher Anteil des Modells bzw. des generierten Codes während der Tests ausgeführt wird. Dabei werden Metriken nach Industriestandard angewendet, z. B. Bedingung, Entscheidung, Modified Condition/Decision Coverage (MCDC) sowie benutzerdefinierte Abdeckungsziele. Simulink Design Verifier kann automatisch Testfälle generieren, um eine unvollständige Abdeckung zu analysieren und um strukturelle und funktionale Abdeckungsziele für Back-to-Back-Tests zu erfüllen.


Statische Codeanalyse

Zur Verifikation 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.