MATLAB und Simulink für Verifikation, Validierung und Tests

Verifizieren und Validieren von Embedded Systems mithilfe von Model-Based Design

Entwicklungsteams nutzen Model-Based Design mit MATLAB® und Simulink®, um komplexe Embedded Systems zu entwerfen und C-, C++- und HDL-Code in Produktionsqualität zu generieren. MathWorks-Tools nutzen Simulationstests und auf formalen Methoden basierende statische Analysen, um Model-Based Design durch strenge Prozesse und Automatisierung zu ergänzen. So können Fehler früher erkannt und höhere Qualität erreicht werden.

Mit MATLAB und Simulink ist Folgendes möglich:

  • Verfolgen von Anforderungen an Architektur, Design, Tests und Code
  • Beweisen, dass Ihr Design den Anforderungen entspricht und frei von kritischen Laufzeitfehlern ist
  • Überprüfen der Vorgabeneinhaltung und Messen der Qualität von Modellen und Code
  • Automatisches Generieren von Testfällen zur Erhöhung der Testabdeckung
  • Erstellen von Berichten und Artefakten und Zertifizierung nach Standards (wie DO-178 und ISO 26262)

„Im Vergleich zu unseren vorherigen Erfahrungen mit manueller Programmierung konnten wir mit Model-Based Design die Arbeitskosten um 30 % reduzieren, die Testkosten um 20 % senken und die Produktivität um mehr als 30 % erhöhen. Wir haben die Entwicklung von Steuergeräten früher als geplant abgeschlossen, während wir unser internes Softwareentwicklungsteam aufbauten.“

Daming Li, Weichai Power

Verwenden von MATLAB und Simulink für Verifikation und Validierung

Verifikation von Anforderungen

Anforderungen in informeller Textform, die in Dokumenten, Kalkulationstabellen oder Anforderungsmanagement-Tools wie IBM® Rational® DOORS® gespeichert werden können, stehen am Anfang des Entwicklungsprozesses. Mit Simulink Requirements™ können Sie Anforderungen zusammen mit Ihrer Architektur, Ihren Designs, Ihrem generierten Code und Ihren Testartefakten anzeigen, erstellen und verwalten. Sie können einen digitalen Prozess von den Anforderungen bis zum Design mit System Composer™, Simulink, Stateflow® oder MATLAB-Tests in Simulink Test™ einrichten. Dank dieser Rückverfolgbarkeit können Sie Lücken bei der Implementierung oder beim Testen identifizieren und die Auswirkungen einer Änderung auf das Design oder den Test schnell verstehen.  Sie können Anforderungen von Drittanbieter-Tools anzeigen, synchronisieren und verwalten, um die Rückverfolgbarkeit für andere Tools in Ihrem Entwicklungsprozess zu ermöglichen.

Mit zeitlichen Bewertungen in Simulink Test können Sie Anforderungen in Textform überprüfen, indem Sie Bewertungen mit präziser Semantik in einem natürlichsprachlichen Format spezifizieren, in dem Sie sie auswerten und debuggen können.


Konformität mit Zertifizierungsstandards

Automatisieren Sie die Verifikation von Modellen und Code nach Standards wie DO-178, ISO 26262, IEC 61508, IEC 62304 und den MathWorks Automotive Advisory Board (MAAB) Style Guidelines. 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 benutzerdefinierte Überprüfungen erstellen, die Ihnen helfen, Ihre eigenen Standards oder Richtlinien einzuhalten. Das IEC Certification Kit (für ISO 26262 und IEC 61508) und das DO Qualification Kit (für DO-178) bieten Toolqualifizierungsartefakte, Zertifikate und Testreihen, die Ihnen helfen, Codegenerierungs- und -verifikationsprodukte zu qualifizieren und die Zertifizierung Ihrer Embedded Systems zu optimieren.


Beweisen der Abwesenheit von Fehlern und formale Verifikation von Anforderungen

Die formale Verifikation findet versteckte Designfehler, die zu Integer-Überlauf, toter Logik, Array-Zugriffsverletzungen und Division durch Null führen, ohne das Design zu simulieren. Simulink Design Verifier™ kann formal verifizieren, ob Ihr Design frei von Fehlern oder Sicherheitsrisiken ist. Simulink Design Verifier kann auch beweisen, dass Ihr Design kritische Anforderungen erfüllt. Wenn das Tool eine Ausnahme findet, erzeugt es ein Gegenbeispiel für das Debugging.


Automatische Testgenerierung

Es ist wichtig, Testlücken, unbeabsichtigte Funktionalitäten oder Anforderungsfehler zu identifizieren. Simulink Coverage™ berechnet, welche Teile des Modells oder des generierten Codes während der Tests ausgeführt werden. Die Lösung verwendet branchenübliche Metriken wie Bedingung, Entscheidung, geänderte Bedingung/Entscheidung (modified condition/decision coverage, MCDC) und benutzerdefinierte Abdeckungsziele. Simulink Design Verifier kann automatisch Testfälle generieren, um unvollständige Abdeckungen zu beheben und Ziele für die strukturelle und funktionale Abdeckung zu erreichen.


Statische Codeanalyse

Für die Verifikation von manuell geschriebenem und generiertem Code verwenden Polyspace®-Produkte formale Methoden, um Fehler zu finden und die Abwesenheit kritischer Laufzeitfehler zu beweisen – ohne Testfälle oder Codeausführung. Polyspace Bug Finder™ prüft und dokumentiert die Einhaltung von Standards wie MISRA®, ISO 26262, IEC 61508, DO-178 und FDA-Vorschriften. Sie können nach Software-Sicherheitsrisiken suchen und die Einhaltung von Standards wie CWE, CERT-C, ISO/IEC 17961 und anderen überprüfen. Polyspace Code Prover™ führt statische Analysen durch, um die Abwesenheit von Fehlern wie Überlauf, Division durch null, Array-Zugriffen außerhalb des gültigen Bereichs und anderen Laufzeitfehlern in C- und C++-Quellcode zu beweisen.