Découvrez comment la plate-forme de qualité continue de Parasoft aide à contrôler et à gérer les environnements de test pour fournir des logiciels de haute qualité en toute confiance. Inscrivez-vous pour la démo >>

Conformité aux règles et aux normes de codage MISRA C

Les développeurs utilisent largement les normes de codage MISRA dans des entreprises autres que l'industrie automobile, telles que les dispositifs médicaux et médicaux, l'armée, l'aérospatiale, l'automatisation industrielle, le rail et l'énergie. Les normes fournissent un ensemble de directives ou de meilleures pratiques pour l'écriture de code C et C++ intégré (C++ s'intègre dans Microsoft Visual Studio), et elles facilitent la rédaction de code sûr, sécurisé et portable pour les systèmes critiques pour la sécurité.

Qu'est-ce que MISRA?

La Motor Industry Software Reliability Association (MISRA) fait référence à la norme de codage largement adoptée et légendaire pour les langages C et C++. MISRA fournit un ensemble complet de directives de codage qui se concentrent sur la protection des applications contre les violations de sécurité et les vulnérabilités de sécurité connues. L'Association classe les lignes directrices en tant que « règle » ou « directive ».

Une règle est accompagnée d'une description complète de l'exigence de codage et, grâce à une analyse statique, les développeurs peuvent l'utiliser pour vérifier que le code source est conforme à une directive sans avoir besoin de rechercher d'autres informations. Une directive, en revanche, offre une prescription importante ou des conseils de développement à suivre pour les développeurs lorsqu'il leur est généralement impossible d'effectuer un contrôle de conformité.

MISRA est un consortium d'industries liées à l'automobile qui s'est réuni au début des années 1990 à la suite du programme de recherche sur les systèmes critiques de sécurité du Royaume-Uni. Le gouvernement britannique a institué ce programme pour relever certains des défis auxquels l'industrie automobile était confrontée en raison de l'augmentation de l'utilisation de logiciels dans la fabrication et l'exploitation de véhicules routiers par les constructeurs automobiles et de camions. Parasoft est membre du consortium MISRA.

Pour le développement C, la dernière norme MISRA C : 2012 prend en charge les spécifications des langages C90, C99, C11 et C18. La version actuelle, MISRA C: 2012 (parfois écrite comme MISRA C 2012 ou MISRA C2012), a évolué sur plusieurs années, et l'Amendement 2 à MISRA C: 2012 a été publié en 2020. L'Amendement 3 devrait être publié en 2022. Pour le langage de programmation C++, la norme MISRA actuelle est MISRA C++ 2008.

Remarque : MISRA est un ensemble de règles pour le codage sécurisé, et non pour le test des API (interfaces de programmation d'applications).

« MISRA », « MISRA C » et le logo triangulaire sont des marques déposées de The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. Tous droits réservés.

Avantages de MISRA

Lorsque les développeurs implémentent les directives MISRA, cela les aide à fournir un code sûr, sécurisé et fiable qui présente des avantages éternels. La conformité MISRA a un impact sur le succès et la longévité de votre produit tout en réduisant les coûts de main-d'œuvre et les délais de mise sur le marché.

Augmentez la qualité du code et réduisez le coût des défauts.

Prévenez les défauts de code plus tôt dans le processus de développement de produits avant qu'ils ne se transforment en défis plus coûteux sur toute la ligne.

Satisfaire aux normes de processus de l'industrie.

Parasoft propose l'analyse statique MISRA comme solution recommandée par les normes de processus telles que ISO 26262, DO-178C, IEC 62304, IEC 61508, EN 50128, etc.

Répondez aux tests de sécurité d'analyse statique (SAST).

Intégrez les règles et directives du code de sécurité MISRA directement dans votre cycle de vie de développement logiciel dans le cadre de votre stratégie SAST.

Développez MISRA et créez vos propres directives de codage personnalisées.

Créez votre propre configuration de normes de codage personnalisée pour votre organisation à l'aide de notre RuleWizard.

Combinez des normes de codage telles que CERT avec MISRA pour obtenir la qualité de code optimale.

Parasoft propose l'agrégation de normes telles que MISRA avec toutes nos autres normes de codage prises en charge : CERT, CWE, OWASP, UL 2900 et autres.

Intégrez MISRA SA dans votre workflow CI/CD.

L'analyse statique MISRA de Parasoft s'intègre facilement dans votre pipeline CI/CD rationalisé avec des tests continus qui fournissent rapidement des logiciels de haute qualité, sûrs et sécurisés.

Testez plus intelligemment avec l'IA et le ML.

Parasoft intègre l'intelligence artificielle et l'apprentissage automatique pour améliorer la productivité dans le flux de travail d'analyse statique MISRA de votre équipe, en signalant et en hiérarchisant les violations de règles que l'équipe doit corriger en premier.

Solutions pour aider à répondre aux exigences MISRA

Déployez la suite de produits Parasoft pour effectuer une analyse statique du code, quel que soit l'environnement de développement dans lequel vous travaillez.

Meilleures pratiques de conformité MISRA

En ce qui concerne la conformité à la MISRA, nous recommandons plusieurs pratiques très avantageuses. Voici une liste de quelques-unes des méthodes à considérer.

Effectuer des évaluations de code/par les pairs

En plus de la conformité MISRA, réunissez-vous avec vos collègues ingénieurs en logiciel et vérifiez systématiquement le code de chacun pour détecter les erreurs et les violations de style de codage. L'expérience montre que cette activité accélère la production et améliore sensiblement la qualité du code.

Clarté du code

La conformité MISRA vous aide à écrire un code facile à lire et à comprendre. Ne soyez pas trop malin et n'écrivez pas de code crypté difficile à suivre ou facilement mal compris. Vous ne voulez pas que d'autres ingénieurs ou vous-même passiez beaucoup de temps à essayer de déchiffrer un bogue dans votre code.

Robustesse du code

Lorsque vous atteignez la conformité MISRA, cela vous aide à écrire un code fiable qui gère non seulement les scénarios de journée ensoleillée, mais également les jours de pluie. Cela inclut des scénarios négatifs qui préparent votre application si elle rencontre des données invalides.

Portabilité des codes

La conformité MISRA aide les programmeurs à écrire du code en gardant à l'esprit la portabilité, car le code portable, comme POSIX et ANSI C, permet des déplacements faciles et rapides vers d'autres plates-formes. Les développeurs peuvent adapter d'autres compilateurs ou d'autres systèmes d'exploitation avec un minimum de modifications de code. Souvent, il existe des opportunités financières ou commerciales lors de la migration vers un autre système d'exploitation ou une autre cible.

Complexité du code

La conformité MISA aide les codeurs à écrire du code qui n'a pas un grand nombre de branches. Plus il y a de branches, plus la complexité du code est élevée et plus le nombre de bogues potentiels dans le code est élevé.

Réutilisabilité du code

La conformité MISRA vous aide à écrire du code portable que vous pouvez réutiliser dans de futurs produits ou projets. Cela améliore la productivité et réduit les coûts de main-d'œuvre et de test.

Consignez correctement vos écarts

Tout écart de la directive MISRA nécessite une documentation complète sur la directive, la portée, la justification, l'assurance de sécurité, les conséquences et l'atténuation.

Réduire le bruit MISRA

Les codeurs peuvent écrire certaines constructions de code d'une manière qui déclenche une violation MISRA. Parasoft fournit une méthode pour filtrer sciemment ce bruit.

Adopter la conformité MISRA

L'un des avantages de proposer la conformité MISRA est que les équipes de sécurité peuvent introduire et utiliser les directives à n'importe quelle phase de développement logiciel d'un projet, et les directives sont efficaces même si un projet est incomplet et partiellement codé.

Le plus grand défi de l'introduction de la conformité MISRA est qu'une grande quantité de code peut produire un grand nombre d'avertissements. Par conséquent, les entreprises doivent se concentrer sur la productivité de l'équipe dès que possible lors de l'intégration de la conformité MISRA dans un projet.

Les entreprises doivent également se concentrer sur la réduction de la possibilité que les avertissements d'analyse statique submergent l'équipe. À mesure que la conformité MISRA fait partie de la routine quotidienne des développeurs, ceux-ci peuvent analyser les résultats plus rapidement et corriger les bogues plus efficacement.

Considérations relatives à la maturité du produit

Il est également important de prendre en compte la maturité du produit en cours de développement, car cela a un impact sur la manière dont l'entreprise peut adopter la conformité MISRA.

Projet existant sur le marché

La principale approche pour adopter la conformité MISRA pour ces projets est appelée « reconnaître et différer ». Étant donné que les développeurs ajoutent peu de nouveau code, tous les bogues de sécurité et vulnérabilités de sécurité qu'ils découvrent s'ajoutent à la dette technique existante.

Projet existant avec développement actuel

L'approche recommandée pour la conformité à la MISRA est appelée approche « une ligne dans le sable ». À un niveau élevé, cette approche signifie que les développeurs améliorent le nouveau code au fur et à mesure qu'ils le développent tout en différant les avertissements moins critiques en tant que dette technique.

Nouveau projet

Les développeurs peuvent intégrer la conformité MISRA dans leurs environnements de développement dès le départ, garantissant ainsi un code de qualité élevée au fur et à mesure qu'ils l'écrivent. L'approche de l'adoption, dans ce cas, porte à juste titre le nom de "greenfield".

Capture d'écran des rapports et des analyses de Parasoft sur la conformité MISRA C 20212 montrant des graphiques circulaires et d'autres données reflétant la conformité au code.

Exemple de rapport de conformité automatisé

Tableau de bord analytique de Parasoft avec rapports de conformité automatisés. Pour les applications critiques pour la sécurité, vous voudrez utiliser notre solution certifiée TÜV SÜD sur les systèmes critiques pour la sécurité.

Pourquoi Parasoft?

Parasoft C / C ++test détecte les problèmes complexes de type runtime de conformité MISRA dès le début de la phase de développement, sans qu'il soit nécessaire d'exécuter des tests d'exécution coûteux. Le test C/C++ analyse les chemins d'exécution à travers le code et détecte les problèmes de conformité MISRA, tels que le déréférencement de pointeur nul, la division par zéro, les fuites de mémoire et les vulnérabilités de sécurité, telles que l'arithmétique sur un opérande de pointeur, les débordements de tampon, le code inaccessible et fonction système stdlib.

Les utilisateurs peuvent afficher les résultats de la conformité MISRA de C/C++test dans le tableau de bord de reporting dynamique de Parasoft, permettant un post-traitement automatisé et des stratégies de reporting avancées utilisant des données historiques. Il est facile de voir les résultats de la conformité MISRA à travers les versions au fil du temps, même lorsque vous travaillez avec des bases de code volumineuses et du code hérité où la visibilité dans le code est généralement difficile afin que vous puissiez rapidement vous concentrer sur la qualité du code nouvellement ajouté.

Avec des widgets qui suivent automatiquement la conformité MISRA, les utilisateurs obtiennent une vue dynamique du processus de conformité logicielle et peuvent facilement produire des rapports automatiques pour les audits de code et les objectifs de certification.

Foire aux questions

Intégrez dans votre phase de mise en œuvre logicielle une solution certifiée TÜV qui analyse votre code selon la norme MISRA pour détecter les violations connues de la sécurité des applications.

Dans le développement Agile moderne, vous pouvez également automatiser l'analyse et la conformité MISRA dans votre flux de travail d'intégration continue et de livraison continue (CI/CD). Assurez-vous de comprendre toutes les violations identifiées et assurez-vous de les traiter toutes. S'il y a des écarts, documentez-les soigneusement comme l'exige la norme MISRA.

Enfin, vous devez présenter les artefacts suivants pour la certification de conformité MISRA.

  1. Plan d'application des lignes directrices MISRA
  2. Plan de reclassification des lignes directrices MISRA
  3. Rapport sur les écarts MISRA
  4. Résumé de la conformité MISRA

La dernière version, MISRA C:2012, a évolué sur plusieurs années et comprend 158 règles MISRA C et 17 directives pour un total de 175 directives. L'amendement 2 à MISRA C:2012, publié en 2020, a élargi la norme de 2 règles.

L'analyse statique est le processus d'examen du code source sans exécution, généralement dans le but de trouver des bogues ou d'évaluer la sûreté, la sécurité et la fiabilité du code. Cela signifie que les équipes logicielles et les équipes de sécurité logicielle peuvent utiliser l'analyse statique sur du code partiellement complet, des bibliothèques et du code source tiers.

Outils d'analyse statique aidez les équipes à se conformer aux normes de codage telles que MISRA C/C++, AUTOSAR C++ 14, SEI CERT ou votre propre configuration personnalisée.