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) zur Verfügung.

Erste Schritte:

Modellvorbereitung

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.

Benutzeroberfläche des Simulink Code Inspector (links) und Ergebnisse der Modell-Kompatibilitätsprüfung (rechts).

Code-Generierung und Code-Überprüfung

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.

Eine erfolgreiche (verifizierte) Codeüberprüfung mit MATLAB-Befehlen.

Berichterstellung

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

Detailbericht des Simulink Code Inspector zur Verifizierung.

DO-178-Vorgaben

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)).

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.

DO Qualification Kit.

Neue Funktionen

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.