Présentation
En anglaisRÉSUMÉ
Cet article s’intéresse à l'amélioration de la qualité et de la fiabilité du développement de logiciels critiques en avionique, et vise une meilleure intégration plus agile des exigences de certification dans cette démarche. Il propose pour cela un cadre méthodologique, en démontre la conformité aux exigences des normes de certification et suggère un outillage support basé sur des solutions open source et sur étagère pour mettre en œuvre les propositions.
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleABSTRACT
This article focuses on improving the quality and reliability of safety-critical software development in avionics, and aims at a better and more agile integration of certification requirements in this process. It proposes a methodological framework, demonstrates its compliance with the requirements of certification standards and suggests a support tooling based on open source and off-the-shelf solutions to implement the proposals.
Auteur(s)
-
Vincent LOUIS : DGA Techniques aérospatiales
-
Claude BARON : LAAS-CNRS, INSA Toulouse
INTRODUCTION
La sécurité est la principale préoccupation de l’industrie aéronautique. Un niveau élevé de fiabilité de l’aéronef et de tous ses systèmes, pièces et équipements, doit être démontré par un processus appelé certification. Ce processus est essentiel pour la sécurité dans un système critique, dans lequel une défaillance peut entraîner des blessures, ou la perte de vies humaines. Il définit des exigences réglementaires, décrites dans des normes, imposant des contraintes au développement des avions. Les constructeurs, par le respect de ces exigences, s’engagent à assurer la sécurité des passagers et du personnel à bord, du personnel au sol, et des infrastructures.
La nécessité sociétale d’assurer, et de garantir, la sécurité des biens et des personnes implique ainsi la mise en œuvre d’un certain nombre d’actions, pour obtenir un certificat de type, délivré par une autorité de certification. Le processus de certification consiste, pour le constructeur, à démontrer à cette autorité la conformité à toutes les exigences réglementaires.
Seule l’application correcte d’un processus d’ingénierie peut garantir que le système remplit les objectifs de sécurité. Les actions mises en œuvre pour être en mesure de démontrer la conformité compliquent le processus d’ingénierie, et nécessitent de gros efforts, si les enjeux associés ne sont pas pris en compte dès le début du projet. Ce processus pourrait être mené de façon plus agile.
[H 8 060] démontre, en effet, que l’on peut avoir une démarche de certification intégrée au processus d’ingénierie de façon agile (appelée certification continue), par la proposition d’une démarche méthodologique efficace et structurée, qui permet de répondre nativement aux exigences de certification. La démarche vise à améliorer, accélérer, et rationaliser, le développement des logiciels avioniques soumis à certification : elle favorise une meilleure intégration des exigences de certification, en accélérant le développement de logiciels, sans compromettre la conformité aux exigences de sécurité. Elle repose sur les principes du développement continu qui, combinés à la gestion de projet agile, permettent l’itération et l’automatisation des actions de certification de manière transparente, et avec un impact limité sur le coût de développement global.
Cet article prolonge [H 8 060], par la proposition d’une démarche DevOps pour supporter la démarche de certification continue. Il rappelle d’abord le contexte de la certification des logiciels en aéronautique, et il précise les objectifs, et il souligne les contributions de cette étude. Puis, il présente le référentiel normatif des exigences essentielles, selon le point de vue de l’autorité militaire DGA. Ensuite, il décrit la démarche proposée pour pratiquer la certification continue. L’article conclut par une discussion sur les avantages et les perspectives de déploiement industrielle de cette proposition.
MOTS-CLÉS
processus agilité Logiciels embarqués génie logiciel sécurité des logiciels génie logiciel assisté par ordinateur développement logiciel agile production continue DevOps méthodes et outils certification continue développement piloté par les tests intégration continue automatisation des tests
KEYWORDS
process | agility | Embedded software | software engineering | software safety | computer-aided software engineering | Agile software development | continuous production | DevOps | Methods and tools | Continuous certification | Test-driven development | Continuous integration | Test automation
DOI (Digital Object Identifier)
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
4. Conclusion
Cet article propose une méthode et un outillage pour déployer la certification continue, en montrant que l’on peut mettre en place des mécanismes pour créer toutes les données d’ingénierie (spécification, code, tests unitaires et tests d’intégration) tout en assurant la conformité aux exigences du processus de certification. Sur la base d’une gestion du projet par ticket, notre proposition intègre et combine plusieurs mécanismes, inspirés de frameworks agiles, compatibles avec la certification, comme l’automatisation des tâches répétitives (des tests en particulier) que l’on retrouve dans DevOps et Scrum, la répartition des rôles entre les membres de l’équipe propre à Scrum, ou encore le mécanisme de Pull/Merge Request sur toutes les données de génie logiciel, ce qui permet de systématiser les révisions indépendantes.
Notre proposition permet donc d’intégrer en douceur la certification dans le processus de développement logiciel, et supprime tous les biais actuels qui la font intervenir trop tardivement dans le processus. Par sa conformité aux normes, elle permet le développement continu de logiciels critiques soumis à certification. Elle permet de garantir la traçabilité entre tous les éléments, en apportant des preuves d’indépendance.
L’industrialisation de cette approche laisse entrevoir une productivité bien supérieure à celle annoncée par les quelques autres initiatives opérationnelles de ce type. Le défi majeur réside maintenant dans le changement de paradigme (méthodes et outils) qu’elle représente, pour des acteurs qui ont déjà mis en place des processus complexes pour se conformer aux exigences de certification.
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Conclusion
BIBLIOGRAPHIE
-
(1) - REMPEL (P.), MÄDER (P.), KUSCHKE (T.), CLELAND-HUANG (J.) - Mind the Gap: Assessing the Conformance of Software Traceability to Relevant Guidelines. - International Conference on Software Engineering (ICSE), New York, USA, ACM, p. 943-954 (2014).
-
(2) - STEGHÖFER (J.-P.), KNAUSS (E.), HORKOFF (J.), WOHLRAB (R.) - Challenges of Scaled Agile for Safety-Critical Systems. - International Conference on Product-Focused Software Process Improvement, p. 350-366 (2019).
-
(3) - - https://www.launizo.com/blog/methodes-et-outils-de-productivite-en-entreprise-1/post/les-methodes-agiles-3 – consulté en octobre 2021.
-
(4) - BALAJI (S.), SUNDARARAJAN MURUGAIYAN (M.) - Wateerfallvs V-model vs Agile: a comparative study on SDLC. - International Journal of Information Technology and Business Management, 2(1), p. 26-30 (2012).
-
(5) - - https://www.scaledagileframework.com/system-team/
-
...
DANS NOS BASES DOCUMENTAIRES
-
Vers une certification continue des logiciels critiques en aéronautique.
-
Normalisation en matière de sûreté de fonctionnement des logiciels.
-
Développement de logiciels sûrs : une approche dirigée par la conception.
-
Conduire un projet avec la méthode Scrum.
-
Méthode Agile SCRUM – Comment l’utiliser de manière opérationnelle ?
NORMES
-
Software Considerations in Airborne Systems and Equipment Certification. - DO-178C/ED12C - 2011
-
Functional Safety of Electrical/Electronic/Programmable Electronic Safety-related Systems. - IEC 61508 - 2010
-
Software product assurance. - ECSS-Q-ST-80C - 2017
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive