Simulink Code Inspector
Automatisierung von Quellcode-Reviews im Rahmen von Sicherheitsstandards
Simulink Code Inspector vergleicht generierten Code automatisch mit seinem Quellmodell, um Vorgaben bei der Code-Überprüfung in DO-178 und anderen High-Integrity-Standards zu erfüllen. Dabei werden systematisch Blöcke, Zustandsdiagramme, Parameter und Einstellungen in einem Modell untersucht, um zu ermitteln, ob sie strukturell den Operationen, Operatoren und Daten im generierten Code entsprechen. Der Simulink Code Inspector bietet eine ausführliche Modell-zu-Code Rückverfolgbarkeitsanalyse. Das Tool generiert Berichte zu struktureller Äquivalenz und Rückverfolgbarkeit, die Sie an Zertifizierungsbehörden senden können, um die Vorgaben für eine Nachprüfung der DO-178-Softwareprogrammierung zu erfüllen.
Die Unterstützung von Branchenstandards steht über das DO Qualification Kit (for DO-178 and DO-254) zur Verfügung.
Erste Schritte:
Der Simulink Code Inspector™ unterstützt eine beschränkte Menge von Modelliersemantik und Codeoptimierungen, die häufig für High-Integrity-Systemmodelle verwendet werden. Ein vom Simulink Code Inspector bereitgestelltes Tool zur Kompatibilitätsprüfung stellt fest, ob Ihr Modell mit der beschränkten Menge konform ist.
Sie können die Kompatibilitätsprüfung interaktiv in der Benutzeroberfläche des Simulink Code Inspector oder im Programm über MATLAB®-Befehle aufrufen. Dabei können Sie Blöcke und andere als inkompatibel identifizierte Teile eines Modells in einem referenzierten Modell platzieren und dann den Simulink Code Inspector so konfigurieren, dass er das inkompatible referenzierte Modell bei der Codeüberprüfung auslässt. Eine manuelle Codeüberprüfung für nicht automatisch überprüfte Modelle ist ebenfalls möglich.
Die Codeüberprüfung ist unabhängig von der Codegenerierung. Standardmäßig nimmt der Simulink Code Inspector an, dass der Code bereits generiert wurde. Sie können das Prüfungstool aber auch so konfigurieren, dass der Code im Rahmen der Codeüberprüfung generiert wird. Außerdem können Sie die Speicherorte der generierten Quellcodedateien angeben, beispielsweise solche, die von Ihrem Produktions-Build-Prozess verwendet werden. Sie können die Überprüfung über die Benutzeroberfläche oder die Befehlszeile aufrufen.
Der Simulink Code Inspector untersucht während der Codeüberprüfung die folgenden allgemeinen Kategorien:
- Modellschnittstellen
- Blockverhalten
- Reihenfolge der Blockverbindung und -ausführung
- Daten- und Dateipaketierung
- Lokale Variablen und funktionale Modellelemente
Die konkret durchgeführten Analysen reichen von der Abschätzung übergeordneter Schnittstellen, also dem Prüfen, ob die Initialisierungs- und Schrittfunktionen generiert wurden, bis hin zur ausführlichen Analyse der Reihenfolge der Blockausführung, um zu bestimmen, ob die Datenabhängigkeit zwischen zwei Blockkomponenten im generierten Code erhalten bleibt.
Sie können sich die Statusmeldungen der Codeüberprüfung direkt in MATLAB ansehen oder ausführliche, wie im folgenden Abschnitt beschriebene Berichte untersuchen. Dazu zählt auch eine detaillierte Rückverfolgbarkeitsanalyse mit interaktiven Verknüpfungen zu den Entwurfsobjekten.
Mit dem Simulink Code Inspector ist es möglich, Berichte mit Einzelheiten zu den Ergebnissen der Codeüberprüfung zu erstellen. Sie können den Speicherort der Berichte auswählen. Das erleichtert Ihnen die Archivierung und Einbindung der Berichte in Ihr Zertifizierungsgesamtpaket. Der Überprüfungsbericht beginnt mit der Nennung des genauen Modells und Quellcodes, die untersucht werden, und zwar anhand von Modellprüfsumme, Pfadnamen und Datum/Zeit-Stempel. Darauf folgt eine Zusammenfassung der durchgeführten Verifizierungen und der Status jedes Elements (beispielsweise verifiziert, teilweise verifiziert oder fehlgeschlagen). In einem Detailbereich werden die Verifizierungsergebnisse für jede Datei, Funktion und Zeile des generierten Codes beschrieben.
Details der Codeüberprüfung umfassen Folgendes:
- Verifizierung der Schnittstellenfunktion
- Modell-zu-Code-Verifizierung
- Code-zu-Modell-Verifizierung
- Verwendung temporärer Variablen
Details zur Rückverfolgbarkeit umfassen:
- Modell-zu-Code-Rückverfolgbarkeit
- Code-zu-Modell-Rückverfolgbarkeit
Die standardmäßige RTCA/DO-178 Software-Faktoren bei der Zertifizierung luftgestützter Systeme und Geräte nennt Vorgaben zur Quellcodeverifizierung. Die vom Simulink Code Inspector bereitgestellte automatische Codeüberprüfung senkt den Zeitaufwand zur Erfüllung der DO-178-Vorgaben an die Quellcodeverifizierung, wie in der unten stehenden Tabelle gezeigt. Vorgabe (3) Quellcode ist verifizierbar kann vollständig mit dem Simulink Code Inspector zusammen mit dem von Polyspace Bug Finder™ bereitgestellten Analysetool MISRA C® erfüllt werden. Außerdem kann Vorgabe (4) Quellcode ist standardkonform mit Tools wie dem von Polyspace Bug Finder bereitgestellten Analysetool MISRA C erfüllt werden. Support für die Tool-Qualifizierung für den Simulink Code Inspector und für Polyspace®-Produkte erfolgt über den DO Qualification Kit (for DO-178 and DO-254).
DO-178C-Vorgaben kompatibel mit dem Simulink Code Inspector
Anhang A – Tabelle | Vorgabe | DO-331-Referenz* | Softwarestufen |
---|---|---|---|
Tabelle MB A-5 | (1) Quellcode ist konform mit untergeordneten Anforderungen | Abschnitt MB 6.3.4a | A, B, C |
Tabelle MB A-5 | (2) Quellcode ist konform mit Softwarearchitektur | Abschnitt MB 6.3.4b | A, B, C |
Tabelle MB A-5 | (3) Quellcode ist verifizierbar | Abschnitt MB 6.3.4c | A, B |
Tabelle MB A-5 | (5) Quellcode ist rückverfolgbar auf untergeordnete Anforderungen | Abschnitt MB 6.3.4e | A, B, C |
Tabelle MB A-5 | (6) Quellcode ist genau und einheitlich** | Abschnitt MB 6.3.4f | A, B, C |
*DO-331, Ergänzung zu modellbasierter Entwicklung und Verifizierung für DO-178C und DO-278A
**Bezieht sich nicht auf Vorgaben, für die Compiler- und Objektcode analysiert werden müssen.
Einstellungen für die Code-Generierung
Einschränkungen aufheben für „Deaktivieren-Funktion entfernen“ und „Zurücksetzen-Funktion entfernen“
Simulink-Blöcke
Zusätzliche Blöcke, die Enumerated Data Types unterstützen und zusätzliche Unit Conversions im Unit Conversion Block.
MATLAB-Funktionsblock
Support für Funktionsaufrufrückgaben und -integrationen sign
, deg2rad
und rad2deg
Optimierungen für die Code-Generierung
Support bei der Codeüberprüfung für weitere Optimierungen
Details zu diesen Funktionsmerkmalen und den zugehörigen Funktionen finden Sie in den Release Notes.