Simulink Code Inspector

Automatiser les revues du code source pour les normes de sécurité

 

Simulink Code Inspector™ compare automatiquement le code généré avec son modèle source pour répondre aux objectifs de revue de code de la norme DO-178 et d'autres normes de haute intégrité. L'inspecteur de code examine systématiquement les blocs, les diagrammes d'états, les paramètres et les configurations d'un modèle afin de déterminer s'ils sont structurellement équivalents aux opérations, aux opérateurs et aux données du code généré. Simulink Code Inspector permet une analyse détaillée de la traçabilité modèle/code et code/modèle. Il génère des rapports de traçabilité et d'équivalence structurelle que vous pouvez soumettre aux autorités de certification pour répondre aux objectifs de vérification de codage des logiciels suivant la norme DO-178.

Le support des normes industrielles est assuré par le DO Qualification Kit (for DO-178).

Premier pas :

Préparation du modèle

Simulink Code Inspector™ supporte un ensemble restreint d'optimisations de code et de sémantique de modélisation souvent utilisé pour les modèles de systèmes critiques. Un contrôleur de compatibilité, fourni par Simulink Code Inspector, détermine si le modèle est conforme à cet ensemble restreint.

Vous pouvez lancer la vérification de compatibilité directement depuis l'interface utilisateur de Simulink Code Inspector ou par programmation à l'aide de commandes MATLAB®. Vous pouvez placer des blocs et d'autres éléments d'un modèle considérés comme incompatibles dans un modèle référencé, puis configurer Simulink Code Inspector afin d'ignorer le modèle référencé incompatible pendant l'inspection du code. Vous pouvez ensuite inspecter manuellement le code des modèles qui n'a pas été revu automatiquement.

Interface utilisateur de Simulink Code Inspector (à gauche) et résultats de la vérification de compatibilité du modèle (à droite).

Génération et inspection du code

Les opérations d'inspection et de génération de code sont indépendantes l'une de l'autre. Par défaut, Simulink Code Inspector considère que le code a déjà été généré. Cependant, vous pouvez configurer l'inspecteur afin que le processus d'inspection intègre la génération de code. Vous pouvez également spécifier l'emplacement des fichiers de code source générés, notamment ceux utilisés par vos processus de compilation en production. L'inspection peut être lancée depuis l'interface utilisateur ou en ligne de commande.

Lors d'une inspection de code, Simulink Code Inspector examine les catégories générales suivantes :

  • Interfaces des modèles
  • Comportement des blocs
  • Connectivité et ordre d'exécution des blocs
  • Packaging des données et fichiers
  • Variables locales et éléments des modèles fonctionnels

Les analyses effectuées consistent aussi bien en une évaluation des interfaces de haut niveau, notamment vérifier la génération des fonctions d'initialisation et intermédiaires, qu'en une analyse détaillée de l'ordre d'exécution des blocs afin de déterminer si la dépendance des données entre deux composants de blocs est conservée dans le code généré.

Vous pouvez consulter le message de statut d'inspection directement dans MATLAB ou examiner les rapports détaillés (comme cela est décrit dans la section suivante) qui proposent une analyse de traçabilité précise avec des liens interactifs vers les objets du design.

Une inspection de code réussie (vérifiée) effectuée à l'aide des commandes MATLAB.

Génération de rapports

Avec Simulink Code Inspector, vous pouvez générer des rapports détaillant les résultats de l'inspection du code. Vous spécifiez l'emplacement d'enregistrement des rapports. Vous pouvez ainsi les archiver et les inclure plus facilement dans votre package complet de certification. Le rapport d'inspection commence par identifier le modèle et le code source à examiner à l'aide de la somme de contrôle, des noms de chemin et de l'horodatage du modèle. Il fournit ensuite un récapitulatif des vérifications effectuées et le statut de chaque élément (par exemple, vérifié, partiellement vérifié et échec). Une section décrit ensuite de façon détaillée les résultats de vérification de chaque fichier, fonction et ligne du code généré.

Les informations d'inspection du code incluent les éléments suivants :

  • Vérification des interfaces des fonctions
  • Vérification modèle/code
  • Vérification code/modèle
  • Utilisation de variables temporaires

Les informations de traçabilité incluent les éléments suivants :

  • Traçabilité modèle/code
  • Traçabilité code/modèle

Rapport Simulink Code Inspector détaillé montrant la vérification code/modèle.

Les objectifs de la norme DO-178

La norme RTCA/DO-178 Software Considerations in Airborne Systems and Equipment Certification spécifie les objectifs de vérification du code source. L'inspection automatique de code de Simulink Code Inspector accélère la conformité aux objectifs de vérification de code source imposés par la norme DO-178 comme indiqué dans le tableau ci-dessous. L'objectif (3) Le code source est vérifiable peut être entièrement rempli avec Simulink Code Inspector et l'analyseur MISRA C® fourni par Polyspace Bug Finder™. Par ailleurs, l'objectif (4) Le code source est conforme aux normes peut être rempli à l'aide d'outils comme l'analyseur MISRA C fourni par Polyspace Bug Finder. Le support de la certification d'outils pour Simulink Code Inspector et les produits Polyspace® est assuré par le DO Qualification Kit (for DO-178).

Objectifs DO-178C compatibles avec Simulink Code Inspector

Tableau Annexe A Objectif Référence DO-331* Niveaux de criticité
Tableau MB A-5 (1) Le code source est conforme avec les exigences de bas niveau Section MB 6.3.4a A, B, C
Tableau MB A-5 (2) Le code source est conforme avec l'architecture logicielle Section MB 6.3.4b A, B, C
Tableau MB A-5 (3) Le code source est vérifiable Section MB 6.3.4c A, B
Tableau MB A-5 (5) Le code source est traçable aux exigences de bas niveau Section MB 6.3.4e A, B, C
Tableau MB A-5 (6) Le code source est précis et cohérent** Section MB 6.3.4f A, B, C

*DO-331, « Model-Based Development and Verification Supplement to DO-178C and DO-278A »
**Ne couvre pas les objectifs nécessitant une analyse du code objet et du compilateur.

DO Qualification Kit.

Nouveautés

Configuration de la génération de code

Élimination des restrictions pour les options Remove Disable Function et Remove Reset Function

Blocs Simulink

Le type de donnée énuméré est supporté par de nouveaux blocs, et de nouvelles conversions d’unités sont supportées dans le bloc Unit Conversion

Bloc MATLAB Function

Support pour les sorties d'appel de fonction et les fonctions intégrées sign, deg2rad et rad2deg

Optimisations de génération de code

L’inspection de code supporte plus d'optimisations

Consultez les notes de version pour en savoir plus sur ces fonctionnalités et les fonctions correspondantes.