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 -analyse in Simulink
Mithilfe der Simulation können Sie die Auswirkungen von Fehlern, Angriffen und anderen anormalen Verhaltensweisen analysieren, um Schutz- und Sicherheitsanforderungen zu entwickeln und die Robustheit des Systems zu überprüfen. Simulink Fault Analyzer ermöglicht systematische Fehlerwirkungs-, Schutz- und Sicherheitsanalysen mittels Simulation. Mit diesem Produkt können Sie Simulationen zur Fehlerinjektion durchführen, ohne Ihren Entwurf zu modifizieren. Sie können in Simulink, Simscape und System Composer modellierte Fehler und Angriffe verwalten. Mit Simulation Data Inspector können Sie Fehler- und Angriffseffekte analysieren. Sie können Sensitivitätsanalysen mithilfe des Bedienfelds „Multiple Simulations“ durchführen. Sie können Sicherheitsanalysen, wie etwa Fehlermöglichkeits- und Einflussanalyse (FMEA) und Cybersicherheitsanalysen (z. B. TARA) unter Nutzung der Simulation durchführen. Mit Simulink Fault Analyzer können Sie formale Verbindungen zwischen Fehlern, Angriffen, Gefahren, Fehlererkennungs- und -behebungslogik 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.