#image_title

Comprendre les risques, l’intelligence artificielle et améliorer la qualité des logiciels – NASA

La discipline du logiciel est largement impliquée dans chacune des directions de mission de la NASA. Certains domaines d’intérêt et de développement récents de la discipline sont mis en évidence ci-dessous, ainsi qu’un aperçu de l’approche de l’équipe de discipline technique logicielle (TDT) pour faire évoluer les meilleures pratiques de la discipline vers l’avenir.

Comprendre le risque d’automatisation

Le logiciel crée l’automatisation. Le recours à cette automatisation augmente la quantité de logiciels dans les programmes de la NASA. Cette année, l’équipe chargée des logiciels a examiné les incidents logiciels historiques dans l’aérospatiale pour déterminer comment, pourquoi et où les logiciels ou l’automatisation sont le plus susceptibles de tomber en panne. L’objectif est de mieux concevoir des logiciels pour minimiser le risque d’erreurs, d’améliorer les processus logiciels et de mieux concevoir les logiciels pour leur résilience aux erreurs (ou améliorer la tolérance aux pannes en cas d’erreurs).

Certaines conclusions clés présentées dans les graphiques ci-dessus indiquent que les logiciels font plus souvent des erreurs plutôt que de simplement planter. Le redémarrage s’est révélé inefficace lorsque le logiciel se comporte de manière erronée. Les comportements inattendus étaient principalement attribués au code ou à la logique elle-même, et environ la moitié de ces cas étaient le résultat de logiciels manquants en raison de situations imprévues ou d’exigences manquantes. Cela peut indiquer que même les logiciels entièrement testés sont exposés à cette classe d’erreurs importante. La mauvaise configuration des données est un facteur important qui continue de croître avec l’avènement de systèmes plus modernes basés sur les données. Une dernière catégorie subjective évaluée était celle des choses inconnues et inconnues qui n’auraient pas pu être raisonnablement anticipées. Ceux-ci représentent 19 % des incidents logiciels étudiés.

L’équipe logicielle utilise et partage ces résultats pour améliorer les meilleures pratiques. L’accent est davantage mis sur l’importance des exigences complètes, des campagnes de tests hors nominatif et des tests en vol en utilisant du matériel réel dans la boucle. Lors de la conception de systèmes de tolérance aux pannes, il convient d’accorder davantage d’attention à la détection et à la correction des comportements erronés plutôt qu’à la simple vérification d’un crash. Il faut accorder moins de confiance au redémarrage en tant que stratégie de récupération efficace. Des stratégies de sauvegarde pour les automatisations doivent être utilisées pour les applications critiques, compte tenu de la prévalence historique des logiciels absents et des inconnus inconnus. De plus amples informations peuvent être trouvées dans NASA/TP-20230012154, Catégorisations d’incidents d’erreurs logicielles dans l’aérospatiale.

Utiliser des techniques d’IA et d’apprentissage automatique

L’essor des techniques d’intelligence artificielle (IA) et d’apprentissage automatique (ML) a permis à la NASA d’examiner les données d’une nouvelle manière qui n’était pas possible auparavant. Alors que la NASA utilise l’autonomie depuis sa création, les techniques d’IA/ML offrent aux équipes la possibilité d’étendre l’utilisation de l’autonomie au-delà des limites précédentes. L’Agence a travaillé sur des cadres d’éthique de l’IA et examiné les normes, procédures et pratiques, en tenant compte des implications en matière de sécurité. Bien que l’IA/ML utilise généralement des algorithmes statistiques non déterministes qui limitent actuellement son utilisation dans les applications de vol critiques pour la sécurité, elle est utilisée par la NASA dans plus de 400 projets AI/ML aidant la recherche et la science. L’Agence utilise également les communautés de pratique IA/ML pour partager les connaissances entre les centres. Le TDT a étudié le travail d’IA/ML au sein de l’Agence et l’a résumé pour en dégager les tendances et les enseignements.

Les utilisations courantes de l’IA/ML incluent la reconnaissance et l’identification d’images. Les missions de sciences de la Terre de la NASA utilisent l’IA/ML pour identifier les débris marins, mesurer l’épaisseur des nuages ​​et identifier la fumée des incendies de forêt (des exemples sont présentés dans les images satellite ci-dessous). Cela réduit la charge de travail du personnel. Il existe de nombreuses applications de l’IA/ML pour prédire la physique atmosphérique. Un exemple est la prévision de la trajectoire et de l’intensité des ouragans. Un autre exemple consiste à prédire l’épaisseur de la couche limite planétaire et à la comparer aux mesures, et ces prédictions sont fusionnées avec des données réelles pour améliorer les performances par rapport aux modèles de couche limite précédents.

Le pipeline d’analyse de code : outil d’analyse statique pour l’IV&V et l’amélioration de la qualité des logiciels

Le Code Analysis Pipeline (CAP) est une architecture d’outils open source qui prend en charge les activités de développement et d’assurance de logiciels, améliorant ainsi la qualité globale des logiciels. Le programme indépendant de vérification et de validation (IV&V) utilise CAP pour prendre en charge l’assurance logicielle sur le système d’atterrissage humain, la passerelle, les systèmes d’exploration au sol, Orion et Roman. CAP prend en charge la configuration et l’exécution automatisée de plusieurs outils d’analyse de code statique pour identifier les défauts potentiels du code, générer des métriques de code qui indiquent des domaines potentiels de problème de qualité (par exemple, complexité cyclomatique) et exécuter tout autre outil qui analyse ou traite le code source. Le TDT se concentre sur l’intégration du support d’analyse de la couverture des conditions/décisions modifiées pour les tests de couverture. Les résultats des outils sont consolidés dans une base de données centrale et présentés dans leur contexte via une interface utilisateur qui prend en charge l’examen, l’interrogation, la création de rapports et l’analyse des résultats à mesure que le code évolue.

L’architecture de l’outil est basée sur une approche DevOps standard de l’industrie pour la création continue de code source et l’exécution d’outils. CAP s’intègre à GitHub pour le contrôle du code source, utilise Jenkins pour prendre en charge l’automatisation des builds d’analyse et exploite Docker pour créer des environnements de build standard et personnalisés qui prennent en charge les besoins de mission et les cas d’utilisation uniques.

Améliorer les processus logiciels et partager les meilleures pratiques

Le TDT a capturé les meilleures pratiques des centres dans NPR 7150.2, NASA Software Engineering Requirements et NASA-HDBK-2203, NASA Software Engineering and Assurance Handbook (https://swehb.nasa.gov.) Deux cours de formation APPEL ont été développés et partagés avec plusieurs organisations pour leur donner les bases de la gestion du NPR et du génie logiciel. Le TDT a créé plusieurs sous-équipes pour aider les programmes/projets dans leur travail sur l’architecture logicielle, la gestion de projet, les exigences, la cybersécurité, les tests et la vérification, ainsi que les contrôleurs logiques programmables. Beaucoup de ces équipes ont développé des conseils et des bonnes pratiques, qui sont documentées dans le NASA-HDBK-2203 et sur le NASA Engineering Network.

NPR 7150.2 et le manuel décrivent les meilleures pratiques tout au long du cycle de vie de tous les logiciels de la NASA. Cela comprend le développement des exigences, l’architecture, la conception, la mise en œuvre et la vérification. Sont également couvertes, et tout aussi importantes, les activités/fonctions de support qui améliorent la qualité, notamment l’assurance logicielle, la gestion de la configuration de sécurité, la réutilisation et l’acquisition de logiciels. La justification et les orientations des exigences sont abordées dans le manuel qui est accessible en interne et en externe et régulièrement mis à jour à mesure que de nouvelles informations, outils et techniques sont trouvés et utilisés.

Les adjoints de Software TDT forment les ingénieurs logiciels, les ingénieurs système, les ingénieurs en chef et les chefs de projet sur les exigences du NPR et leur rôle pour garantir la mise en œuvre de ces exigences dans les centres de la NASA. De plus, les adjoints du TDT forment les responsables techniques des logiciels sur de nombreux aspects de gestion avancés d’un effort d’ingénierie logicielle, notamment la planification, l’estimation des coûts, la négociation et la gestion de la gestion des changements.

www.actusduweb.com
Suivez Actusduweb sur Google News


Ce site utilise des cookies pour améliorer votre expérience. Nous supposerons que cela vous convient, mais vous pouvez vous désinscrire si vous le souhaitez. J'accepte Lire la suite