CppDepend
Automobile — Étude de cas

Étude de cas : amélioration de la qualité du code et de la conformité MISRA dans les systèmes embarqués automobiles

Un grand équipementier automobile développant des logiciels pour la gestion moteur et les systèmes avancés d’aide à la conduite (ADAS) faisait face à une complexité croissante de sa codebase C/C++. Les systèmes embarqués devaient…

Quelles normes CppDepend prend-il en charge nativement ? Les ensembles de règles intégrés couvrent MISRA C/MISRA C++, CWE, CERT C/CERT C++ et AUTOSAR C++14 — et aucune autre norme. Pour toute autre norme mentionnée sur cette page (ISO 26262, DO-178C, IEC 62304, IEC 61508, JSF++ AV, NIST SSDF, ASPICE…), la conformité est assurée par des règles CQLinq personnalisées rédigées pour votre projet, plus la validation d’architecture et les quality gates CI.

Étude de cas : amélioration de la qualité du code et de la conformité MISRA dans les systèmes embarqués automobiles

Secteur : AutomobileProfil client : équipementier automobile européen de rang 1 (non nommé)Domaine : logiciel embarqué pour unités de contrôle du groupe motopropulseur et ADASTaille de l’équipe : ~60 ingénieurs sur trois continentsLangages : C, C++Normes clés : MISRA C, MISRA C++, ISO 26262

Le défi

Un grand équipementier automobile développant des logiciels pour la gestion moteur et les systèmes avancés d’aide à la conduite (ADAS) faisait face à une complexité croissante de sa codebase C/C++. Les systèmes embarqués devaient satisfaire aux exigences strictes de MISRA et d’ISO 26262, pourtant :

  • Les contrôles manuels de conformité MISRA étaient chronophages et incohérents entre les équipes.
  • La structuration architecturale en couches était fréquemment violée, entraînant des régressions et des cycles de débogage plus longs.
  • Les développeurs manquaient de visibilité sur la dette technique et la maintenabilité à long terme du système.
  • Les audits pour la documentation ISO 26262 exigeaient des rapports manuels ad hoc dont la préparation prenait des jours.

L’équipe logicielle avait besoin d’une solution automatisée et intégrée capable d’assurer la conformité aux règles, d’imposer la discipline architecturale et de réduire le délai d’audit sans ralentir la vélocité de développement.

La solution : CppDepend

CppDepend a été déployé comme plateforme d’analyse statique sur tous les composants critiques de la pile logicielle embarquée. L’outil a été intégré directement dans le pipeline CI/CD de l’équipe et configuré pour s’aligner sur les workflows de développement internes et les objectifs de sécurité.

Fonctionnalités clés utilisées :

  • Application de MISRA C et C++ via des règles CQLinq personnalisables
  • Contrôles de couches et de dépendances pour prévenir la dérive architecturale
  • Intégration CI avec Jenkins et GitLab pour un retour précoce
  • Suivi de la dette technique et tableaux de bord visuels
  • Quality gates personnalisés pour bloquer le code non conforme lors des merge requests

Stratégie de mise en œuvre

  • Phase 1 : le scan initial a révélé plus de 2 000 violations MISRA et plus de 150 violations de règles d’architecture à travers les modules. Une politique de « soft fail » a permis d’intégrer les équipes progressivement tout en suivant les tendances.
  • Phase 2 : les règles ont été affinées pour refléter non seulement MISRA, mais aussi les contraintes internes de performance, de portabilité et de sécurité.
  • Phase 3 : des tableaux de bord ont été créés pour que les leads surveillent l’évolution de la qualité, et des alertes de tendance ont été activées dans les builds Jenkins.
  • Phase 4 : les rapports générés par CppDepend ont été inclus directement dans la documentation ISO 26262 soumise lors des audits.

Résultats après 12 semaines

MétriqueAvant CppDependAprès 12 semaines
Violations MISRA2,030270
Violations d’architecture15827
Temps de préparation des audits3–5 jours< 4 heures
Retravail des merge requestsÉlevéRéduit d’environ 35 %

Résultats & bénéfices

  • Conformité automatisée : plus de 85 % de l’application des normes de codage est désormais automatisée.
  • Revues plus courtes : les revues de code manuelles se concentrent désormais sur la logique, plus sur le formatage ou la structure.
  • Prêt pour les audits : accès instantané à des métriques et rapports à jour, alignés sur les exigences de sécurité.
  • Collaboration améliorée : les graphes de dépendances visuels ont aidé les nouveaux ingénieurs à comprendre plus vite les frontières des sous-systèmes.
  • Meilleure planification : avec les données de tendance et les métriques de dette technique, l’équipe a pu prioriser stratégiquement les efforts de refactoring.

Pourquoi CppDepend ?

CppDepend s’est distingué en combinant analyse de code approfondie, règles personnalisables et contrôle d’architecture dans une solution unique, branchée directement sur le workflow de développement de l’équipe. Contrairement aux linters ou checkers basiques, il offrait une vue stratégique de la codebase — essentielle dans un environnement critique à long cycle de vie comme le logiciel embarqué automobile.

Conclusion

En intégrant CppDepend dans leur workflow de développement, l’équipementier automobile a transformé l’application des normes de codage, la gestion de l’architecture et la préparation des audits ISO 26262. Ce qui était autrefois un processus manuel et chronophage est devenu automatisé, mesurable et cohérent.

CppDepend a permis aux équipes de développement de détecter les problèmes tôt, de réduire la charge des revues et de maintenir des normes de qualité critiques à grande échelle. Résultat : productivité améliorée, risque technique réduit et développement des systèmes embarqués automobiles de nouvelle génération mené avec confiance — tout en restant conforme aux normes de sécurité automobile les plus strictes.

← Retour à la présentation Automobile

Découvrez ce que CppDepend révèle dans votre codebase

Lancez l’analyse sur vos propres projets : standards de codage, validation d’architecture, dette technique et quality gates — en quelques minutes.