[APPLICATION TASKING] Les récentes tendances en matière de développement d'équipements embarqués ont rendu la conception et le déploiement des systèmes avancés de mobilité aérienne plus complexes que jamais. Les équipes doivent se conformer à des normes industrielles en constante évolution sans rater les échéances de lancement ni dépasser les contraintes budgétaires. Dans cet article, Tasking étudie comment les changements dans le développement embarqué affectent le cycle de vie de la conception, depuis le concept jusqu'à l'obtention de la certification de navigabilité. Et ce que les équipes peuvent faire pour relever ces défis tout en maintenant la sécurité fonctionnelle, la sûreté, la fiabilité et les délais de mise sur le marché.
Auteur : Jay Thomas
Senior Director
Field Engineering, Tasking
Comme dans tout secteur industriel, les développeurs en avionique et en aérospatiale doivent trouver de nouvelles façons de gérer la complexité croissante des logiciels, à mesure que de nouvelles capacités telles que le décollage et l'atterrissage verticaux électriques (eVTOL, electric Vertical TakeOff and Landing), la connectivité et l'autonomie font leur apparition.
Cependant, contrairement à de nombreux secteurs, ils doivent également vérifier que leurs systèmes sont fonctionnellement sûrs et sécurisés conformément aux normes les plus strictes en vigueur. A ce niveau, plusieurs tendances modifient la manière dont les développeurs doivent aborder la conception.
- Le cadre réglementaire de navigabilité évolue rapidement, notamment dans le domaine des logiciels. les normes en vigueur depuis des décennies font désormais l’objet de mises à jour beaucoup plus fréquentes, et de nombreuses nouvelles normes ont été récemment publiées ou sont en cours d’élaboration. Par conséquent, le coût, le temps et le risque liés à la conformité à ces normes seront des facteurs déterminants du succès d’un nouvel avion ou de tout autre système volant.
- Équipes de développement géographiquement dispersées. Pour les systèmes complexes, les équipes de développement peuvent être réparties dans le monde entier. Elles doivent pouvoir travailler en parallèle afin de réduire les délais de développement et de certification. L’utilisation d’une chaîne d’outils de développement et de vérification intégrée, applicable à l’ensemble des groupes et des gammes de produits, procure des avantages considérables.
- Surveillance accrue des systèmes autonomes. Avec l’arrivée des aéronefs autonomes sur le marché, les entreprises ont besoin de processus éprouvés de développement et de test logiciels qui leur permettent d’anticiper les obstacles potentiels à la certification et de conserver leur avantage concurrentiel.
- Augmentation spectaculaire du nombre de petits aéronefs tels que les taxis aériens et les drones de livraison. Les pionniers sur ces secteurs ont besoin d’une approche de conception flexible et évolutive qui leur permette de s’adapter à l’évolution des exigences, tout en soutenant les pratiques de conception commerciales qui ont fait leurs preuves en matière de réduction des risques et des coûts liés au respect de ces exigences.
- Impacts de la conception sur la durabilité et le zéro émission. A mesure que les réglementations et les technologies évoluent pour réduire les émissions des avions et favoriser l’électrification, les normes existantes et les outils de développement et de vérification automatisés peuvent constituer une base solide pour atténuer les risques associés à l’adoption de nouvelles technologies complexes.
- Nouveaux vecteurs d'attaque liés à une connectivité accrue. Si une approche de type “shift-left” (*) garantit la sécurité dès la conception, parallèlement à la sécurité aérienne, la connectivité exige également la capacité de réagir rapidement aux vulnérabilités survenant sur le terrain. Les outils de vérification automatisés, associés aux outils de traçabilité des exigences, permettent d'isoler les modifications et de rétablir automatiquement les fonctionnalités affectées.
- Vérification manuelle ou automatisée. La complexité et le volume croissants des exigences de conformité rendent la vérification plus difficile. Il n'est plus possible de les traiter sans outils intégrés et automatisés.

Le nombre et le rythme d'évolution des normes de l'aviation civile liés aux logiciels sont en augmentation constante (Source LDRA)
Les défis courants liés à la vérification et à la certification sont nombreux. La vérification des logiciels nécessite généralement au moins autant de temps, d'efforts et de ressources que l'ensemble des processus de planification et de développement réunis. Cela rend coûteux les tests et la certification. De plus, la vérification des logiciels est un processus continu.
Aussi, bien qu'une mise à jour puisse représenter moins de temps et d'efforts de conception, le test du logiciel mis à jour doit satisfaire aux mêmes objectifs de vérification et peut exiger autant d'efforts que la vérification initiale. De nombreuses équipes de projet ont tendance à privilégier le résultat des audits individuels et des étapes clés plutôt que le processus de développement et de vérification du logiciel lui-même.
Cependant, une telle approche est, à terme, peu judicieuse et peut aboutir à des logiciels sous-optimaux, voire à des défaillances logicielles. Pour réussir, les équipes de développement doivent désormais adopter une approche globale intégrant la vérification tout au long du cycle de vie du développement logiciel. Ce qui requiert une communication efficace et un transfert de connaissances à chaque étape de la conception.
Aller vers la vérification continue
De nombreuses équipes de développement adoptent désormais un cadre DevSecOps (développement, sécurité et opérations) afin de réduire les coûts et les risques tout en améliorant l'efficacité. En adoptant une approche d'intégration et de déploiement continus (CI/CD), les développeurs bénéficient d'un flux de travail continu reposant sur une chaîne d'outils intégrée qui rationalise et/ou automatise différents aspects de la conception.

Un framework DevSecOps intègre des pratiques de codage sécurisées au processus de développement logiciel
Cette appropche DevSecOps s'appose à l'approche dite “en cascade” traditionnellement utilisée par les équipes de développement, dans laquelle le groupe de conception transmet le code terminé au groupe de test.
Avec l’intégration continue et la livraison continue (CI/CD), la conception et les tests sont réalisés de manière plus incrémentale avec la succession suivantes : conception complète d’une section de code, test, conception de la section suivante, test, et ainsi de suite.
Cette manière de trvailler présente l'avantage supplémentaire d'identifier les problèmes plus tôt dans le cycle de conception, c'est l'approche appelée “décalage vers la gauche ou “shift left”. De manière générale, le “shifting left” tire parti du fait que les problèmes sont plus faciles, plus rapides et moins coûteux à résoudre lorsqu'ils sont découverts tôt dans le cycle de vie du développement logiciel (SDLC, Software Development Life Cycle).
Par exemple, une fuite de mémoire est plus simple à corriger lorsque le code est analysé pour détecter les fuites de mémoire dès son écriture. Identifier la source d'une fuite de mémoire à l'origine de pannes intermittentes d'une application est beaucoup plus complexe et sa correction peut s'avérer plus fastidieuse.

Le Shifting Left est un principe fondamental du DevSecOps. Les tests et analyses de sécurité sont réalisés le plus tôt possible dans le cycle de conception afin de révéler les problèmes et d'atténuer les risques, plutôt que de tout laisser à une phase de tests d'intégration ultérieure où la résolution risque d'être plus longue et plus coûteuse. (Source : Tasking)
Les mêmes avantages liés au "décalage vers la gauche" apparaissent lors de l’utilisation de la vérification continue. En intégrant la vérification logicielle tout au long du cycle de vie de la conception, les problèmes de conformité potentiels peuvent être identifiés plus tôt et résolus plus rapidement. Les équipes chargées du développement logiciel et de la sécurité peuvent ainsi collaborer efficacement et à moindre coût, en parallèle.
La conformité est accélérée, les risques sont atténués et un code de meilleure qualité est produit. Cette exigence de traiter à la fois la sûreté et la sécurité illustre pourquoi il est essentiel que la vérification soit extensible et puisse s'adapter à des besoins spécifiques. Par exemple, les outils de développement doivent permettre le développement et la vérification simultanée des logiciels devant obtenir les certifications DO-178C et DO-326B en même temps.
Dans la figure ci-dessous, le processus de sécurité décrit dans la norme DO-326B est par exemple aligné sur le processus de développement aéronautique décrit dans la norme ARP4754B, illustrant comment les développeurs peuvent suivre un processus hybride de sûreté et de sécurité pour satisfaire aux deux normes.
Tenter d'obtenir la conformité à plusieurs normes de manière séquentielle augmente le temps et le coût de développement, et risque d'entraîner des reprises inutiles, notamment un cycle coûteux de régressions et de corrections.

Processus de sécurité et processus de développement logiciel dans le cadre du processus de développement d'un aéronef (Source : Tasking)
Cependant, même avec le soutien d'une automatisation complète, la maîtrise des réglementations de navigabilité peut s'avérer une tâche ardue. Un accompagnement en matière de certification et de réglementation est disponible chez des édtieurs comme Tasking pour aider et garantir la maîtrise des coûts de certification.
Par exemple aux États-Unis, les services doivent être fournis par une équipe expérimentée pour gérer la collaboration avec les bureaux de certification des aéronefs (Aircraft Certification Offices, ACO) de la FAA. DAns ce cadre, outre un accompagnement complet en matière d'audit, les services proposés par les édtieurs d'outils peuvent inclure des formations, du mentorat et la production de documents de conformité. Ce qui accélère et optimise la production de données tout au long du cycle de vie.
On le sait, le développement logiciel commence souvent avant même que le matériel cible du projet ne soit disponible, et parfois même avant que ses spécifications ne soient complètement définies – un problème souvent exacerbé sur les petits avions conçus dans l'optique de mises à niveau plus fréquentes. Dans de telles situations, on utilise généralement des simulateurs matériels.
Toutefois, pour les systèmes critiques exigeant un niveau d'assurance de conception plus élevé, la vérification doit impérativement être effectuée sur la cible finale. Les outils de vérification doivent alors être suffisamment flexibles pour prendre en charge à la fois la simulation et les tests sur cible.
A ce niveau, les logiciels hautement critiques développés conformément à la norme DO-178C DAL A nécessitent la vérification que le code objet exécuté par le microprocesseur reflète correctement les exigences et l'intention du développeur.
L'utilisation de chaînes d'outils différentes selon le niveau de criticité du logiciel peut engendrer des retards supplémentaires lors de la certification. Une suite d'outils unique et flexible, capable de démontrer la traçabilité du code source au code objet et utilisable à tous les niveaux de vérification, permet ici aux équipes d'adapter rapidement et efficacement leur niveau de risque identifié sans courbe d'apprentissage supplémentaire.
De nombreux responsables techniques intègrent aussi de nouvelles approches telles que l'ingénierie système fondée sur les modèles (MBSE, model-based systems engineering). Ces approches permettent un développement plus rapide, mais les nouvelles couches d'abstraction rendent les tests indispensables pour éviter les erreurs.
Les outils de vérification doivent permettre des itérations rapides et fréquentes de prototypage et de tests virtuels, que ce soit sur les plateformes de développement hôtes ou sur le matériel cible réel. Ceci garantit que les abstractions n'entraînent pas une découverte tardive d'erreurs susceptibles de retarder la certification.
Un dernier point important à considérer est la qualification des outils. Celle-ci inclut les outils de vérification logicielle, requise pour toute certification supérieure au niveau C de la norme DO-178C ce qui implique la validation du fonctionnement de l'outil dans un environnement spécifique au projet. Afin de réduire les coûts associés à ce processus de qualification, les fournisseurs d'outils proposent à ce niveau des solutions de qualification et des services d'assistance à la certification pour les programmes exigeant le niveau d'assurance approprié.

Méthodes mises au point par LDRA (qui fait partie de Tasking) pour la conformité à la norme DO-178C et la certification de navigabilité (Source : Tasking)
Des outils logiciels flexibles et personnalisables s’adaptent facilement au niveau de risque et à la rigueur nécessaire des mesures d’atténuation, tandis que, grâce aux outils de traçabilité des exigences, une réponse rapide est possible en cas de vulnérabilité, même pour des systèmes qui n’ont pas évolué depuis des années.
Les outils intégrés de développement et de vérification, tels que l’écosystème de sécurité de Tasking associé à la suite d’outils LDRA, permettent aux développeurs d’intégrer la vérification continue à leur flux de travail CI/CD ou workflow similaire.
Ainsi, les développeurs peuvent relever le défi croissant de fournir des systèmes de mobilité aérienne avancés et fiables, tout en garantissant la conformité aux normes de sûreté, de sécurité et de navigabilité.
(*) Le "shift-left" est une approche des tests logiciel et système dans laquelle les dits tests sont réalisés le plus tôt possible dans le cycle de vie d'un produit. Et ce afin de réduire le temps et les efforts nécessaires à la correction des bugs.
