Les directives de codage AUTOSAR C++14 – « Lignes directrices pour l’utilisation du langage C++14 dans les systèmes critiques et de sécurité » – ont été développées vers 2017-2018, par un sous-groupe spécialisé de membres d’AUTOSAR. Elles ont été élaborées dans l’intention spécifique de développer une nouvelle norme de codage C++ plus sûre qui leur permettrait d’utiliser davantage le langage C++ en évolution ; plus précisément, les nouvelles fonctionnalités de codage C++11 et C++14.
À l’époque, la norme de codage MISRA C++ 2008 pour le langage C++ exigeait explicitement l’utilisation de la version 2003 du langage C++ et ne permettait pas l’utilisation des constructions C++ modernes. Cela signifie que les développeurs du secteur automobile en pleine évolution de l’époque – avec de nouvelles exigences concernant les systèmes de conduite autonomes et semi-autonomes – n’avaient d’autre choix que de revenir à des versions plus anciennes et plus restrictives du langage C++, ou d’utiliser des règles de codage qui ne correspondaient pas vraiment à la plupart des nouveaux logiciels en cours de développement. De plus, pour les systèmes logiciels automobiles de sécurité critique, les directives ou normes de codage sont considérées comme un élément clé du système de sécurité fonctionnelle ISO 26262. C’est ainsi qu’est né AUTOSAR C++ 14.
La dernière version de la norme MISRA C++, actuellement en cours de développement, permettra également d’utiliser des versions plus modernes de C++ dans un contexte plus sûr et plus facile à maintenir, avec la prise en charge de C++ 17. Toutefois, comme cette version n’a pas encore été publiée, on s’attend à ce que la norme AUTOSAR C++14 reste largement utilisée sur les marchés des logiciels C++ liés à la sécurité pendant un certain temps encore.
Révisions d’AUTOSAR C++14

Le groupe AUTOSAR C++14 a publié des révisions de la norme tous les six mois (en mars et en octobre) de 2017 à 2019, la version officielle étant la version 18-10 (octobre 2018). Les versions suivantes, telles que la 19-03 (mars 2019), n’ont fourni que des mises à jour de documents sans autres modifications des règles elles-mêmes.
Le document AUTOSAR C++14 (18-10) est disponible auprès d’AUTOSAR.
Classification des règles AUTOSAR C++14
Chacune des règles AUTOSAR C++14 est classée selon le « niveau d’obligation », qui est défini comme « requis » ou « conseillé », et selon l’application par analyse statique, qui est soit « automatisée », « partiellement automatisée » ou « non automatisée ». Ces classifications sont données pour chaque règle dans le document des lignes directrices.
Niveaux d’obligations
Selon les lignes directrices AUTOSAR C++14, les règles « obligatoires » doivent être respectées pour que l’on puisse prétendre à la conformité à la norme. En revanche, les règles « consultatives » doivent normalement être respectées dans la mesure du possible, mais n’ont pas, officiellement, d’impact sur les déclarations de conformité.
Mise en œuvre par l’analyse statique
Comme pour toutes les normes de codage, l’un des moyens les plus pratiques et les plus efficaces de faire respecter la norme est l’utilisation de l’analyse statique, soit comme système unique de mise en œuvre, soit comme complément à l’examen manuel du code. La norme AUTOSAR C++14, qui compte près de 400 règles, est particulièrement adaptée à une certaine forme de vérification automatisée, et les outils d’analyse statique sont très efficaces pour appliquer de manière constante et cohérente de vastes ensembles de règles à de nombreux modules logiciels et à d’innombrables lignes de code. La classification d’une règle selon qu’elle est « automatisée », « partiellement automatisée » ou « non automatisée » indique si elle peut (en théorie) être entièrement vérifiée, partiellement vérifiée ou non vérifiée par des outils d’analyse statique.
Appliquer AUTOSAR C++14 avec SciTools Understand
Le moteur d’analyse statique Code Check intégré à la boîte à outils de développement SciTools Understand est bien adapté à l’application des directives AUTOSAR C++14 et, suite à la dernière mise à jour du produit, la couverture est désormais de 95 % de toutes les règles statiquement applicables (automatisées + partiellement automatisées), ce qui confère à SciTools Understand l’un des niveaux de couverture les plus élevés de tous les outils d’analyse statique disponibles sur le marché.
Détails de la couverture
Toutes les règles | Règles requises | Règles consultatives | Automatisés | Partiellement automatisés | Non automatisés | |
---|---|---|---|---|---|---|
Règles totales | 397 | 365 | 32 | 335 | 18 | 44 |
Couverture | 353 | 322 | 31 | 321 | 14 | 18 |
% Couverture | 89% | 88% | 97% | 96% | 78% | 41% |
Détails de la couverture de l’application de la norme AUTOSAR C++14 par SciTools Understand