Standard de codage C++ JSF++ AV (Joint Strike Fighter Air Vehicle) avec CppDepend
Comment CppDepend applique le standard de codage C++ JSF Air Vehicle (JSF++) : automatisation des règles, contrôles dérivés de MISRA et contrôle d’architecture pour le C++ avionique critique.
Ce que CppDepend prend en charge nativement. CppDepend embarque des jeux de règles intégrés pour MISRA C/MISRA C++, CWE, CERT C/CERT C++ et AUTOSAR C++14 — et aucune autre norme. Toutes les autres normes, y compris celle-ci, sont appliquées via des règles CQLinq personnalisées que votre équipe rédige (avec notre aide si besoin), plus la validation d’architecture et les quality gates CI.
JSF++ AV (Joint Strike Fighter Air Vehicle Coding Standards, Lockheed Martin, 2005) est l’un des standards de codage C++ les plus influents pour l’avionique critique. Écrit pour le programme F-35, il définit 221 règles couvrant les sous-ensembles de langage, la gestion des exceptions, la gestion mémoire, les templates et le déterminisme. Il a fortement influencé MISRA C++:2008 et reste une référence pour les programmes de défense utilisant du C++ sous DO-178C.
Thèmes clés des règles JSF++ AV
Comportement prévisible : aucun comportement indéfini ou dépendant de l’implémentation ; règles strictes d’initialisation et de sûreté du typage.
Utilisation déterministe des ressources : contrôle strict de la mémoire dynamique — allocation uniquement dans des phases définies, aucune fuite, usage borné.
Discipline des exceptions : exceptions uniquement selon des schémas stricts (ou interdites), pour que le flux de contrôle reste analysable.
Code révisable : limites sur la complexité, la taille des fonctions et le couplage pour que le code reste vérifiable par les humains et les outils.
Comment CppDepend automatise l’application de type JSF++
Règles CQLinq personnalisées : formalisez les règles JSF++ AV (et votre adaptation au programme) sous forme de requêtes exécutables — fini les checklists manuelles.
MISRA C++ intégré : JSF++ partage l’essentiel de son ADN avec MISRA C++:2008 — le jeu de règles intégré couvre immédiatement le socle commun.
Contrôle de l’architecture : imposez le layering entre logiciel de mission, services de plateforme et drivers.
Quality gates : faites de la conformité JSF++ un critère bloquant les merges en CI, avec des baselines pour le code legacy.
Preuves pour les audits : rapports de conformité règle par règle exportables pour les revues de programme.