Ouvrir le menu Fermer le menu

N'ignorez pas les règles MISRA C

trait de séparation
Temps de lecture : 6 minutes

Le respect de ces nouvelles règles et directives MISRA C contribuera à éliminer les pratiques de codage connues pour être dangereuses.

Découvrez dans cet article, rédigé par Marc Pitchford, spécialiste MISRA C de chez LDRA, comment développer une stratégie pour la conformité MISRA C:2023

Les points clés de cet article :
  • Pourquoi MISRA C est important pour garantir des logiciels plus sûrs et plus sécurisés dans plusieurs secteurs.
  • Des étapes simples et stratégiques pour suivre MISRA C 2023, la version la plus récente annoncée en mars.
  • Le langage C reste un choix populaire parmi les développeurs embarqués. Cependant, cela peut présenter des défis pour les applications critiques pour la sécurité, car il est basé sur des normes (ISO/IEC 9899:2011 et 2018) qui omettent des spécifications complètes sur la façon dont les implémentations doivent se comporter.
  • Cette omission est intentionnelle. Il offre aux développeurs la flexibilité de contrôler le comportement des applications et l'accès à la mémoire de manière imprévisible et non déterministe, tout en leur donnant plus de latitude pour gérer les ressources système. L'inconvénient de cette flexibilité est le compromis potentiel de la sûreté, de la sécurité et de la fiabilité du système.
  • C'est là que MISRA C entre en jeu. Les directives MISRA C limitent l'utilisation du langage C à un sous-ensemble critique pour la sûreté et la sécurité. Contrairement à un guide de style de codage, MISRA C est un ensemble de règles et de directives pour aider les développeurs à éviter les pratiques de codage connues pour être dangereuses.
  • La dernière version des directives, MISRA C:2012 Amendement 4, couvre les nouvelles fonctionnalités de simultanéité introduites par les normes C11 et C18. Publié en même temps, MISRA C:2023 regroupe toutes les éditions, modifications et corrections techniques de MISRA C en un seul document. Cela répond à ce qui a été un énorme défi de gestion de la configuration pour les équipes de développement.
  • Les versions AMD4 et MISRA C:2023 offrent aux développeurs la possibilité de revoir leurs processus et d'améliorer la prise en charge pour une démonstration efficace et efficiente de la conformité MISRA. Cela nécessite une stratégie réfléchie pour intégrer les règles et directives MISRA dans les processus de développement, de la formation aux outils automatisés, sans impact sur les calendriers de développement. Quelques étapes simples peuvent aider les équipes à établir une stratégie gagnante pour des logiciels plus sûrs et plus sécurisés en utilisant un processus éprouvé.

Développer une stratégie pour la conformité MISRA C:2023

Les directives MISRA C ne spécifient pas les processus et outils exacts pour atteindre la conformité, car la documentation de ces exigences limiterait injustement ce que les équipes de développement embarqué peuvent faire. Au lieu de cela, le guide MISRA Compliance:2020 fournit des définitions de "ce qui doit être couvert dans le processus de développement logiciel lors d'une déclaration de conformité MISRA" comme cadre pour capturer les activités les plus importantes.
Le guide MISRA Compliance:2020 couvre de nombreux processus et éléments essentiels de conformité, construits autour d'éléments fondamentaux que les déclarations de conformité doivent établir :

  • Utilisation d'un processus de développement logiciel discipliné.
  • Les directives exactes appliquées.
  • L'efficacité des méthodes d'exécution.
  • L'étendue de tout écart par rapport aux lignes directrices.
  • Le statut de tous les composants logiciels développés en dehors du projet.
misraC-blog_LDRA.jpg
L'illustration montre un rapport de conformité MISRA de la suite d'outils LDRA.

Les stratégies suivantes auront le plus grand impact sur les équipes de développement qui souhaitent rationaliser leurs efforts de conformité.

MISRA C:2023 Stratégie #1—Définissez votre processus de développement logiciel.
L'intégration de la conformité dans un processus de développement nouveau ou existant commence par définir comment votre équipe validera les règles et directives MISRA à chaque étape du cycle de vie. Cela confirme la déclaration du guide MISRA Compliance: 2020 selon laquelle les «directives MISRA sont destinées à être utilisées dans le cadre d'un processus de développement de logiciel documenté».

En outre, "la conformité aux directives MISRA doit faire partie intégrante de la phase de développement du code et les exigences de conformité doivent être satisfaites avant que le code ne soit soumis pour examen ou test unitaire".

Ces activités de définition influencent la formation des développeurs, la création et la gestion des artefacts de conformité et la manière dont les tests de conformité sont exécutés. Vous devrez documenter formellement vos processus pour vous assurer que toutes les exigences logicielles sont entièrement mises en œuvre à chaque phase du cycle de développement et que tout le code est couvert par des activités de test.

De plus, votre documentation doit inclure toutes les décisions qui pilotent les tâches de développement, y compris la formation, la création de rapports, la sélection de la chaîne d'outils de développement et les configurations d'exécution.

MISRA C:2023 Stratégie #2—Formez vos développeurs sur MISRA C:2023.
Une formation formelle permet aux développeurs de passer moins de temps à déterminer la conformité MISRA et plus de temps à livrer du code. Le guide MISRA Compliance:2020 recommande que la formation inclue des concepts autour de l'utilisation du langage C pour les applications embarquées et des spécificités sur les systèmes critiques pour la sûreté et la sécurité.

MISRA C:2023 comprend également de nouvelles directives pour les systèmes multithread complexes. Il est donc encore plus important pour les développeurs travaillant avec des applications pertinentes de rafraîchir leur compréhension de l'impact de leurs choix sur l'application des directives MISRA et de la manière dont ils peuvent réduire la probabilité d'introduire des violations dans les applications simultanées.

Au-delà du code, les développeurs doivent également apprendre les implications en matière de sûreté et de sécurité de l'environnement de développement qu'ils ont choisi, de la chaîne d'outils du compilateur aux outils d'analyse statique. Les résultats de l'analyse statique renforcent les règles et directives MISRA au fur et à mesure que le code est écrit, maintenant un niveau constant de sensibilisation dans l'esprit des développeurs débutants et expérimentés.

MISRA C:2023 Stratégie #3—Établissez votre processus de déviations.
La conformité MISRA exige que le fournisseur de code et l'acquéreur s'accordent sur l'interprétation des règles et des directives. Cet alignement est essentiel, car la notion de conformité diffère en fonction des exigences et des caractéristiques uniques de chaque projet. Un élément de cet alignement utilise un processus établi pour gérer les écarts par rapport aux lignes directrices, pour les cas où prouver la conformité pourrait être peu pratique ou impossible.

Le guide MISRA Compliance:2020 définit un enregistrement de déviation comme contenant les informations suivantes :
  • La ou les directives ont été violées.
  • Une description des circonstances dans lesquelles une violation est acceptable.
  • La raison pour laquelle l'écart est requis.
  • Informations générales qui expliquent les problèmes de contexte et de langue.
  • Un ensemble d'exigences pour inclure les procédures d'évaluation des risques et les précautions pertinentes.

MISRA C:2023 Stratégie #4—Utiliser l'automatisation pour soutenir les activités de conformité.
Le guide Conformité MISRA : 2020 indique qu'"un projet qui tente de vérifier la conformité tard dans son cycle de vie est susceptible de passer un temps considérable à recoder, réexaminer et retester, et il est facile pour cela retravailler pour introduire des défauts par accident.

Les outils de développement et de test automatisés réduisent les efforts manuels et les possibilités d'erreur humaine dans les activités de conformité MISRA. En particulier lorsqu'elle est déployée tôt dans le cycle de vie du développement logiciel, l'automatisation peut aider les équipes à éviter des retouches coûteuses et chronophages en aval.
Pour simplifier les tests de conformité, MISRA C:2012 a introduit deux classifications de règles :
  • Décidable pour les règles où les techniques d'analyse peuvent fournir une vérification concluante.
  • Indécidable lorsqu'aucune garantie de vérification n'est possible.
Associer les règles décidables à la recommandation de MISRA d'utiliser l'analyse statique pour la vérification conduit à une solution efficace et complète pour les tests de conformité automatisés.

Les récentes versions d'AMD4 et de MISRA C:2023 offrent aux équipes de développement embarqué une opportunité idéale de s'aligner sur des règles et directives éprouvées pour un code plus sûr et plus sécurisé. Quelques stratégies simples peuvent vous aider à intégrer les règles et directives MISRA dans vos processus sans sacrifier l'efficacité du développement.
0

Ces articles peuvent vous intéresser

image blog article

MISRA C est-elle juste une norme automobile ?

La norme MISRA C est souvent associée à l'Automobile : est-ce un mythe ? Cet article évoquera l'arrière plan et la réalité de la situation.

image blog article

Introduction de la norme de codage MISRA C à une base de code existante

Cet article examine certaines approches pragmatiques pour adopter progressivement MISRA à l'aide d'outils de test de sécurité des applications statiques (SAST)

image blog article

Respecter les règles de codage MISRA C/C++

Dans les industries développant du logiciel critique en C ou C++, les standards MISRA C/C++ sont régulièrement cités comme les règles de codage à appliquer. Mais en pratique, celles-ci sont rarement suivies de manière complète, et les chefs de projet ou ingénieurs qualité logiciel ont de grandes difficultés à s’en assurer. Existe-t-il des moyens simples et efficaces de diminuer l’effort de vérification, et maximiser leur respect ?