Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Conformité aux règles AUTOSAR C++ et aux normes de codage

C++ est un langage compliqué et nécessite un investissement important pour assurer la prévisibilité, la sûreté et la sécurité. L'organisation AUTomotive Open System ARchitecture (AUTOSAR) a développé AUTOSAR C++14, une norme de codage qui limite l'utilisation de C++14 aux constructions qui sont prévisibles et n'entraînent pas de risques inutiles pour la sûreté et la sécurité.

Qu'est-ce qu'AUTOSAR?

L'AUTomotive Open System ARchitecture (AUTOSAR) est issue d'un partenariat de développement entre entités automobiles. Fondé en 2003, le groupe cherchait à établir une architecture logicielle standardisée et ouverte autour des unités de contrôle électronique (ECU) automobiles. Il couvre également les semi-conducteurs.

Le partenariat de développement AUTOSAR visait à améliorer l'efficacité et la disponibilité des exigences de sécurité, l'évolutivité, la transférabilité et la durabilité tout au long du cycle de vie du produit. Bien qu'ils ne soient pas intrinsèquement des dispositifs médicaux, certains aspects de la technologie automobile relèvent certainement des éléments de protection. Les airbags de la gamme de produits nécessitent une technologie qui les déploiera avec précision, tandis que les systèmes tels que le contrôle du moteur nécessitent de la cohérence.

Plus d'électronique embarquée dans les automobiles signifie également beaucoup de collecte de données, ainsi que le traitement des données en temps réel. Différents aspects d'AUTOSAR cherchent à répondre aux besoins des composants électroniques et logiciels automobiles modernes.

Plate-forme classique AUTOSAR contre AUTOSAR adaptative

Il existe deux types de plates-formes AUTOSAR : Adaptive et Classic. La plate-forme AUTOSAR classique n'offre pas le type de flexibilité et de puissance de traitement que la méthodologie adaptative peut offrir. La complexité croissante de la technologie automobile exige des réactions plus faciles et des réponses plus rapides.

Cependant, les deux plateformes ne sont pas rivales, mais coéquipières. Les deux servent des objectifs différents dans l'écosystème de conception et de développement automobile.

Comparaison graphique côte à côte des plates-formes AUTOSAR classiques et adaptatives

Différences Clés

Plate-forme classique AUTOSARPlateforme adaptative AUTOSAR
Idéal pour une architecture simple ou multicœur et des calculateurs profondément intégrés.Idéal pour les calculateurs plus récents et destiné à fonctionner sur les architectures HPC pour mieux en tirer parti.
Utilise une communication basée sur le signal avec des réseaux BUS tels que LIN ou CAN.Utilise la communication basée sur les services avec Ethernet.
Définit un système d'exploitation (OS).Définit le contexte d'exécution, ainsi qu'une interface de système d'exploitation telle que PSE51.
Nature statique avec une faible flexibilité.Fournit une « dynamique planifiée » pendant le déploiement de l'application avec une intégration flexible.
Les délais sont plus pressants en raison du traitement en temps réel.Exigence en temps réel souple.
Les exemples incluent les systèmes de freinage et le contrôle du moteur.Les exemples incluent le traitement des données de fusion de capteurs et les mises à jour en direct (mises à jour OTA).

Qu'est-ce qu'AUTOSAR C++14 ?

Il s'agit d'une norme de codage pour C++ version 14 (ISO/IEC 14882:2014) et d'un artefact ou de l'un des résultats de la définition de la plate-forme Adaptive AUTOSAR qui fournit des spécifications d'interface pour les API et les services. Cette section des directives de codage AUTOSAR vient à l'origine de mettre à jour MISRA C++ 2008 – une norme de codage obsolète. Cependant, MISRA et AUTOSAR ont annoncé leur fusion en 2019, à l'appui de la mise à jour vers C++17. Qui est devenu le langage par défaut de nombreuses solutions électroniques AUTOSAR modernes.

En fait, ces directives sont si robustes et optimisées qu'elles peuvent être appliquées à n'importe quel secteur nécessitant une programmation embarquée en C++.

Règles et déviations AUTOSAR C++14

AUTOSAR C++14 dispose de 342 règles pour aider à donner à l'utilisateur une compréhension claire et des conseils sur les exigences de codage. Règles de codage AUTOSAR C++14 sont classés selon le niveau d'obligation.

  • Règles requises. Obligatoire pour revendiquer la conformité à la norme.
  • Règles consultatives. Recommandé mais sans statut obligatoire.

Cependant, un écart par rapport à une norme, règle ou directive AUTOSAR peut être autorisé. Pour éviter d'abuser du concept de déviation par des développeurs déviant à volonté, des approbations pour chaque déviation doivent être incluses. En outre, les règles sont également classées selon qu'elles peuvent être appliquées automatiquement par des outils d'analyse statique.

  • Automatique peut être entièrement pris en charge par des outils d'analyse statique.
  • Partiellement automatisé peut être pris en charge par des outils d'analyse statique mais peut nécessiter. des pratiques supplémentaires telles que la revue de code.
  • Non automatisé ne peut pas être pris en charge avec des outils d'analyse statique.

L'utilisation de C++14 en collaboration avec les directives AUTOSAR C++14 offre aux développeurs la possibilité d'utiliser des compilateurs supérieurs et un accès amélioré à des outils de test, de vérification et d'analyse améliorés. Il permet d'utiliser de nouvelles méthodes de développement comme intégration continue / livraison continue (CI/CD) qui peut détecter les erreurs plus tôt dans le cycle de vie du développement logiciel.

« 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 d'avoir la bonne solution dans votre boîte à outils logicielle AUTOSAR

Trouver les bons outils de développement garantir la qualité du logiciel est une question d'essais et d'erreurs. Mais cela ne signifie pas que vous devez expérimenter des outils ou des stratégies non éprouvés. Heureusement, la montagne d'avantages de l'automatisation en ce qui concerne les tests et la conformité est distincte.

Trouver les problèmes plus tôt ne peut que faciliter les choses pour toutes les personnes impliquées dans le développement de logiciels. De l'architecture logicielle et des logiciels d'application au diagnostic et à la validation, les solutions Parasoft ont tout en tête.

Mettez en œuvre la conformité AUTOSAR C++14 en fournissant un code sûr, sécurisé et fiable pour des avantages durables qui ont 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

Empêchez les défauts de code plus tôt dans le processus de développement 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 AUTOSAR C++14 comme solution recommandée par les normes de processus telles que ISO 26262, DO-178C, IEC 62304, IEC 61508, EN 50128 et plus encore.

Satisfaire les tests de sécurité d'analyse statique (SAST)

Intégrez les directives de codage de sécurité AUTOSAR C++14 directement dans votre cycle de vie de développement logiciel dans le cadre de votre stratégie SAST.

Testez plus intelligemment avec l'IA et le ML

Parasoft intègre l'intelligence artificielle et l'apprentissage automatique pour améliorer la productivité des workflows d'analyse statique AUTOSAR C++14 de votre équipe, en signalant et en hiérarchisant les violations à corriger en premier.

Intégrez AUTOSAR C++14 SA dans votre flux de travail CI/CD

L'analyse statique AUTOSAR C++14 de Parasoft s'intègre facilement dans votre pipeline CI/CD rationalisé avec des tests continus pour fournir rapidement des logiciels de haute qualité, sûrs et sécurisés.

Développez AUTOSAR C++14 et créez des directives de codage personnalisées

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

Combinez les normes de codage avec AUTOSAR C++14 pour une qualité de code optimale

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

Types d'outils d'analyse de code statique

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

Meilleures pratiques AUTOSAR

En ce qui concerne la conformité AUTOSAR C++14, il existe plusieurs pratiques très bénéfiques. Voici une liste de certaines des méthodes à considérer.

Effectuer des évaluations de code/par les pairs

En plus de la conformité AUTOSAR C++14, 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. Il a été démontré que cette activité accélère et améliore considérablement la qualité du code.

Consignez correctement vos écarts

Tout écart par rapport à la directive AUTOSAR C++14 nécessite une documentation complète sur les éléments suivants : quelle directive, portée, justification, assurance de sécurité, conséquences et atténuation.

Clarté du code

La conformité AUTOSAR C++14 vous aidera à écrire du 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.

Portabilité des codes

La conformité AUTOSAR C++14 permet d'écrire du code en gardant à l'esprit la portabilité, car le code portable (POSIX, ANSI C, etc.) peut être facilement et rapidement déplacé vers d'autres plates-formes. L'adaptation d'autres compilateurs ou d'autres systèmes d'exploitation peut être effectuée avec un minimum de modifications de code. Souvent, il existe des opportunités financières ou commerciales pour lesquelles la migration vers un autre système d'exploitation ou une autre cible doit avoir lieu.

Réduire le bruit AUTOSAR C++14

Certaines constructions de code peuvent être écrites d'une manière qui déclenche une violation de la règle AUTOSAR C++14. Parasoft fournit un moyen de filtrer sciemment ce bruit.

Complexité du code

La conformité AUTOSAR C++14 permet d'é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 trouvés dans le code est élevé.

Robustesse du code

La conformité AUTOSAR C++14 vous aide à écrire un code fiable qui gère non seulement les scénarios de journée ensoleillée, mais aussi les jours de pluie. Y compris des scénarios négatifs qui préparent votre application si elle se heurte à des données invalides.

Réutilisabilité du code

La conformité AUTOSAR C++14 vous aide à écrire du code portable qui peut être réutilisé dans de futurs produits ou projets. Cela améliore la productivité et réduit les coûts de main-d'œuvre et de test.

Exemples de cas d'utilisation

Les fonctionnalités d'architecture logicielle ouverte et standard de nombreux systèmes électroniques logiciels automobiles modernes sont aujourd'hui utilisées pour la conduite autonome et la connectivité.

Prenez les systèmes avancés d'assistance à la conduite (ADAS) comme le LIDAR qui aident les voitures à détecter quand elles risquent de heurter un objet. L'aide au stationnement avec conduite automatisée s'appuie également fortement sur l'architecture logicielle AUTOSAR.

Ce ne sont là que deux cas d'utilisation, mais avec la connectivité de la plate-forme adaptative AUTOSAR et les appareils Internet des objets (IoT) dans les véhicules de plus en plus courants et plus robustes, il est crucial de pouvoir mesurer les données afin de s'adapter.

Rapports de conformité AUTOSAR automatisés

Le tableau de bord d'analyse de Parasoft avec rapport de conformité AUTOSAR automatisé facilite la fourniture de la preuve requise pour la certification.

Rapport graphique de conformité Parasoft AUTOSAR C++ indiquant le nombre et le pourcentage de règles conformes ainsi que les violations et les écarts.

Pour les applications critiques en matière de sûreté et de sécurité, vous souhaiterez utiliser notre solution certifiée TÜV SÜD pour garantir la conformité aux normes et la facilité d'adoption dans vos processus de développement hautes performances.

Guide de prise en main

L'avantage de proposer la conformité AUTOSAR C++14 est qu'elle peut être introduite et utilisée à n'importe quelle phase de développement logiciel d'un projet. Mieux encore, c'est efficace même si un projet ou votre logiciel ECU est incomplet et partiellement codé.

Défis AUTOSAR

Le plus grand défi lié à l'introduction de la conformité AUTOSAR C++14 est qu'une grande quantité de code peut produire un grand nombre d'avertissements. Par conséquent, lors de l'intégration de la conformité AUTOSAR C++14 dans un projet, l'accent doit être mis sur la productivité de l'équipe dès que possible. Cela minimisera les possibilités pour l'équipe d'être submergée par les avertissements d'analyse statique.

La mise en conformité avec AUTOSAR C++14 devenant une partie intégrante de la routine quotidienne de chaque développeur, il sera en mesure d'analyser les résultats plus rapidement et de corriger les bogues plus efficacement.

La maturité du produit en cours de développement est également importante car elle a un impact sur la manière dont la conformité AUTOSAR C++14 peut être intégrée. La gestion du cycle de vie de l'adoption fonctionne comme décrit ci-dessous.

  1. Reconnaissez et reportez. Cette approche concerne les projets existants déjà sur le marché. Peu de nouveau code est en cours de développement, de sorte que tous les bogues de sécurité et vulnérabilités de sécurité découverts sont ajoutés à la dette technique existante.
  2. Une ligne dans le sable. Les projets existants avec un développement en cours ont des équipes qui améliorent le nouveau code au fur et à mesure qu'il est développé pour reporter moins d'avertissements critiques en tant que dette technique.
  3. Champ vert. De nouveaux projets adoptent cette approche. Les développeurs peuvent intégrer la conformité AUTOSAR C++14 dans leurs environnements de développement dès le départ pour garantir un niveau élevé de qualité en tant que code.

Pourquoi Parasoft?

Les Analyse de code Parasoft Solution AUTOSAR, Parasoft C/C++test, détecte les problèmes complexes de type runtime de conformité AUTOSAR C++14 dans un environnement d'exécution AUTOSAR 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. Cela rationalise les processus de développement d'une manière qui profite à tous.

C/C++test analyse les chemins d'exécution à travers le code et trouve les problèmes de conformité AUTOSAR C++14 comme le déréférencement de pointeur nul, la division par zéro et les fuites de mémoire. Il recherche également les vulnérabilités de sécurité telles que l'arithmétique sur un opérande de pointeur, les dépassements de mémoire tampon, le code inaccessible et la fonction système cstdlib.

Les résultats de Conformité AUTOSAR C++14 du test C/C++ les résultats peuvent être visualisés 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 conformité AUTOSAR C++14 à travers les versions au fil du temps. Cela est vrai même lorsque vous travaillez avec de grandes bases de code et du code hérité où la visibilité sur le code est généralement difficile. Vous pouvez rapidement vous concentrer sur la qualité du code nouvellement ajouté.

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

Foire aux questions

Les modules logiciels de base (BSW) sont une collection de fichiers logiciels qui fournissent certaines fonctionnalités codées qui s'exécutent sur un ECU. Ces modules logiciels standardisés peuvent prendre en charge la communication, les E/S, la mémoire, etc.

Par exemple, certains modules logiciels de base AUTOSAR effectuent des tâches telles que la mise en miroir de bus, les diagnostics et même la cryptographie pour sécuriser les données.

Les trois couches sont :

  1. Couche d'application
  2. Architecture logicielle de base
  3. Environnement d'exécution AUTOSAR

Les modules spécifiques à l'unité de contrôleur électronique (ECU) et les modules génériques sont inclus dans trois sous-couches, notamment la couche de services, la couche d'abstraction de l'ECU et la couche d'abstraction du microcontrôleur (MCAL).

RTE signifie «environnement d'exécution» et fonctionne comme une sorte de terrain d'entente entre la couche application et les autres couches. Il gère la communication intra-ECU et intercouche.

Dans le cadre des trois couches, la couche d'abstraction ECU au-dessus de la couche MCAL a des pilotes de composants matériels et des composants pour les interfaces. Cela signifie que son travail consiste à garantir que la couche ci-dessus fonctionne indépendamment du matériel de l'ECU.

Formé en 2003, le groupe d'équipementiers et d'autres parties investies comprend des tonnes de grands noms comme Volkswagen et Robert Bosch GmbH.

AUTOSAR C++14 ne fournit pas de conseils similaires sur le processus de mise en conformité, du moins pas directement. Mais étant donné que les directives AUTOSAR C++ sont basées sur MISRA C++ 2008, il est raisonnable de se référer à la norme MISRA pour rechercher des conseils sur le processus de mise en conformité.

  • Produisez une matrice de conformité, qui indique comment chaque règle est appliquée.
  • Produire une procédure de déviation.
  • Formaliser les pratiques de travail au sein du système de management de la qualité.

Le respect de ces exigences implique des formalités administratives supplémentaires. La première chose à faire est de définir la matrice de conformité.

De plus, une procédure de traitement des écarts doit être établie. La procédure de déviation formalise les étapes à suivre lorsque le développement doit s'écarter des spécifications ou des directives.

Une plate-forme AUTOSAR adaptative définit une plate-forme pour le développement d'unités de commande automobiles qui fournissent des fonctions sophistiquées telles que des systèmes avancés d'aide à la conduite, le streaming multimédia ou des mises à jour logicielles via Internet.

C++ offre les fonctionnalités de langage nécessaires pour prendre en charge les exigences de la plate-forme AUTOSAR en appliquant une approche orientée objet, l'utilisation d'une architecture orientée service, l'utilisation de POSIX et de systèmes d'exploitation similaires, et une prise en charge complète des microcontrôleurs 32 et 64 bits.

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écurité, la sécurité et la fiabilité du code.

Cela signifie que l'analyse statique peut être utilisée sur du code partiellement complet, des bibliothèques et du code source tiers. Les outils d'analyse statique aident les équipes logicielles à se conformer aux normes de codage telles que MISRA C/C++, AUTOSAR C++14, SEI CERT ou votre propre configuration personnalisée.