Vérification, validation et test avec MATLAB et Simulink

Vérifier et valider les systèmes embarqués avec l'approche Model-Based Design

Les ingénieurs utilisent l'approche Model-Based Design avec MATLAB et Simulink pour concevoir des systèmes embarqués complexes et générer du code C, C++ et HDL de production. Grâce aux tests en simulation et à l’analyse statique basée sur les méthodes formelles, les outils MathWorks apportent rigueur et automatisation à l'approche Model-Based Design afin d'identifier les erreurs plus tôt et d'améliorer la qualité du système.

Avec MATLAB et Simulink, vous pouvez :

  • Tracer les exigences dans l'architecture, le design, les tests et le code
  • Vérifier la conformité aux normes de modélisation personnalisées et aux normes de l'industrie lors du design
  • Démontrer que votre design est conforme aux exigences et qu'il ne présente aucune erreur run-time critique
  • Créer des cas de test en utilisant des séquences de tests et des statecharts Stateflow
  • Collecter des données sur la couverture du modèle et du code pour vérifier l'exhaustivité des tests
  • Générer automatiquement des cas de test pour analyser la couverture de test manquante
  • Produire des rapports et des artefacts, et répondre aux normes de l'industrie (telles que DO-178 et ISO 26262)

Vérification des exigences

Le processus de développement commence avec les exigences informelles textuelles qui peuvent être répertoriées dans des documents, des feuilles de calcul ou des outils de gestion des exigences comme IBM Rational DOORS. Requirements Toolbox vous permet d'importer, de visualiser, de créer et de gérer les exigences en parallèle avec votre architecture, vos designs, votre code généré et vos artefacts de test. Vous pouvez créer un lien numérique des exigences vers votre design dans System Composer, Simulink, Stateflow, ou pour vos tests dans Simulink Test. Grâce à cette traçabilité, vous pouvez identifier ce qui manque dans l'implémentation ou les tests, et comprendre rapidement l'impact d'une modification sur le design ou les tests. 

Vous pouvez formaliser les exigences et les analyser pour en vérifier la cohérence, l'exhaustivité et la justesse afin de les valider plus tôt avec le bloc Requirements Table dans Requirements Toolbox. Les évaluations temporelles dans Simulink Test vous permettent de vérifier les exigences textuelles en spécifiant ces évaluations avec une sémantique précise en langage naturel qui peut être évaluée et débuggée.


Injection systématique de défauts et FMEA dans Simulink

Vous pouvez utiliser la simulation pour analyser les effets des défauts et d'autres comportements anormaux afin de développer des exigences de sécurité et de vérifier la robustesse du système. Simulink Fault Analyzer permet une analyse systématique de l'effet des défauts et de la sécurité grâce à la simulation. Ce produit effectue des simulations d'injection de défauts sans modifier votre design. Vous pouvez gérer les défauts modélisés dans Simulink, Simscape et System Composer. Simulation Data Inspector vous permet d'analyser les effets des défauts. Vous pouvez effectuer des analyses de sensibilité aux défauts grâce au panneau de simulations multiples. Vous pouvez effectuer des analyses de sécurité, telles que l'analyse des modes de défaillance et de leurs effets (FMEA, Failure Mode and Effects Analysis), tout en tirant parti de la simulation. Simulink Fault Analyzer vous permet de créer des liens formels entre les défauts, les dangers, la logique de détection et de gestion des défauts, ainsi que d'autres artefacts (avec Requirements Toolbox).


Conformité aux normes de certification

Automatisez la vérification de conformité des modèles et du code vis-à-vis des normes comme DO-178, ISO 26262, IEC 61508 et IEC 62304, et des directives du MathWorks Advisory Board (MAB). Simulink Check propose des règles de vérification et des métriques reconnues dans l'industrie permettant d'identifier les violations des normes et des directives lors du développement. Vous pouvez créer des règles de vérification personnalisées afin d'assurer la conformité à vos propres normes ou directives internes. L'IEC Certification Kit (for ISO 26262 and IEC 61508) et le DO Qualification Kit (for DO-178 and DO-254) offrent des artefacts de qualification d'outils, des certificats et des suites de tests pour vous aider à qualifier les produits de vérification et de génération de code et à rationaliser la certification de vos systèmes embarqués.


Prouver l'absence d'erreurs et vérifier formellement les exigences

La vérification formelle permet d'identifier des erreurs de design cachées qui entraînent par exemple des dépassements d’entiers, de la logique morte, des violations d'accès aux tableaux et des divisions par zéro, sans simuler le design. Simulink Design Verifier peut vérifier formellement que votre design ne présente aucune erreur ou vulnérabilité de sécurité. Cet outil peut également prouver que votre design est conforme aux exigences critiques. S'il détecte une exception, il génère un contre-exemple pour le débuggage.


Génération automatique de tests

Il est essentiel d'identifier ce qui n’est pas couvert dans les tests, les fonctionnalités indésirables ou les erreurs relatives aux exigences. Simulink Coverage calcule la proportion du modèle ou du code généré éprouvée pendant les tests. Il applique des métriques reconnues dans l'industrie, notamment les conditions, les décisions, les conditions/décisions modifiées (MCDC) et les objectifs de couverture personnalisés. Simulink Design Verifier peut générer automatiquement des cas de test afin de résoudre les problèmes liés à une couverture incomplète et vous permettre d'atteindre vos objectifs de couverture structurelle et fonctionnelle.


Analyse statique de code

Pour vérifier du code écrit manuellement ou généré automatiquement, les produits Polyspace utilisent des méthodes formelles afin de trouver les bugs et de prouver l'absence d'erreurs run-time critiques sans exécuter de code ni de cas de test. Polyspace Bug Finder vérifie et documente la conformité aux normes telles que MISRA, ISO 26262, IEC 61508, DO-178 et les réglementations FDA. Vous pouvez vérifier les vulnérabilités de sécurité logicielle et la conformité aux normes telles que CWE, CERT-C, ISO/IEC 17961 et bien d'autres. Polyspace Code Prover effectue une analyse statique permettant de prouver l'absence d'overflow, de division par zéro, de dépassement de tableaux et autres erreurs run-time dans du code source C et C++.