Dans tous les secteurs industriels, le processus de certification pour tous les logiciels et programmes gérant le (bon) fonctionnement des systèmes informatiques et, en particulier, les systèmes embarqués, s’avère d’une importance cruciale, parfois vitale.
Les mésaventures du Boeing 737 MAX en sont une illustration parfaite. En Wallonie aussi, la formation en certification est critique pour de nombreuses entreprises évoluant dans des secteurs soumis à certification.
La certification logicielle: le contre-exemple du Boeing 737 MAX
Le 29 octobre 2018, le Boeing 737 MAX de Lion Air, une compagnie aérienne low cost, reliant Jakarta à Pangkal Pinang, s’abîme en mer après 13 minutes de vol. Le 10 mars 2019, le vol à bord d’un appareil identique d’Ethiopian Airlines, reliant Addis-Abeba à Nairobi, ne dure que 6 minutes. En quelques mois, 346 passagers perdent la vie.
Arguant dans un premier temps que les accidents ne sont pas liés, beaucoup de compagnies aériennes continuent d’exploiter ces avions pour leurs vols commerciaux. Il faut neuf jours pour que l’ensemble des compagnies aériennes clouent au sol l’ensemble des 737 MAX face à l’accumulation des preuves montrant la similarité des conditions des deux accidents.
Après des mois d’enquête, un lien entre les crashs et un logiciel appelé MCAS (Manoeuvering Characteristics Augmentation System) est mis en évidence. Plutôt que de revoir la conception de l’appareil pour répondre aux exigences de consommation énergétique, les ingénieurs de Boeing ont adapté la conception et l’architecture d’un modèle précédent, et ont eu recours à une solution logicielle pour pallier les déficiences: le MCAS. Ce logiciel est censé corriger automatiquement l’assiette de l’avion lorsqu’un dépassement est constaté. Sur le papier, l’idée est intéressante : Boeing réutilise la conception des appareils précédents déjà certifiés et réduit ainsi le temps nécessaire à une nouvelle certification. Boeing espère alors commercialiser le 737 MAX rapidement sur un segment de marché très concurrentiel.
Une chaîne de lacunes
Lors de l’inspection de certification, Boeing obtient d’éluder la mention du MCAS dans le manuel mis à disposition des pilotes. L’analyse de sûreté menée par le constructeur conclut que l’effet du logiciel n’est pas des plus critiques. Il est attendu des pilotes qu’ils évaluent et corrigent les éventuelles erreurs du MCAS dans un délai de quatre secondes.
Il a fallu le double de temps aux pilotes des appareils Lion Air et Ethiopian Airlines pour se rendre compte du problème et tenter de le corriger, en suivant une procédure préétablie… en vain.
L’enquête met aussi en lumière des documents internes à Boeing attestant que l’absence de réaction appropriée à une activation de MCAS dans les dix secondes peut conduire à une catastrophe. Des choix technologiques hasardeux, non conformes à la pratique habituelle dans l’aéronautique, mais également de nombreuses décisions managériales visant une rapide mise sur le marché et une économie dans les coûts de mise en circulation, ont eu des conséquences désastreuses. Certains faits ont même été révélés en interne et ont été, au mieux, ignorés, au pire, couverts par de hauts responsables.
“Des choix technologiques hasardeux, non conformes à la pratique habituelle dans l’aéronautique, ont eu des conséquences désastreuses.”
Le cas du Boeing 737 MAX n’est pas un cas isolé. Les accidents liés à des défaillances logicielles dans des systèmes embarqués critiques émaillent l’actualité de ces 30 dernières années. En 1996, l’explosion du vol inaugural d’Ariane 5 après 37 secondes de vol, attribuée à un problème de conversion de valeurs numériques dans le calculateur de poussée, marque les esprits.
Dans le domaine médical, au moins six patients en traitement de radiothérapie ont subi une irradiation massive, à savoir plus de 100 fois la dose normale. Parmi eux, certains décèdent dans les mois qui suivent. Le problème? Le Therac-25, une machine de radiothérapie dont les mesures de protection ne reposent que sur des vérifications logicielles facilement contournables par les opérateurs.
Plus récemment, Mercedes-Benz rappelle deux millions de véhicules équipés du système de freinage Sensotronic à cause d’un problème logiciel. Heureusement, ce système de freinage électronique est couplé à un système hydraulique qui prend le relais en cas de défaillance du premier. Pas de catastrophes routières, mais une facture de plusieurs millions pour le constructeur automobile.
Dans tous ces cas, les répercussions économiques sur les entreprises commercialisant ces produits sont profondes et durables. Mais les pertes humaines sont encore plus désastreuses. Les astronautes sont conscients des dangers qu’ils encourent lorsqu’ils embarquent dans une fusée. Mais quel patient se pense en danger de mort alors même qu’il vient se faire soigner?
”Les astronautes sont conscients des dangers qu’ils encourent lorsqu’ils embarquent dans une fusée. Mais quel patient se pense en danger de mort alors même qu’il vient se faire soigner?”
La certification logicielle, essentielle pour les systèmes embarqués
Qu’est-ce que la certification logicielle et pourquoi est-elle si importante dans le domaine des systèmes embarqués critiques?
Dans son acception la plus générale, certifier un logiciel consiste à démontrer à une autorité indépendante qu’une norme de qualité est respectée. Chaque norme définit un périmètre précis en relation à des objectifs, fixés par des impératifs légaux. Par exemple, un logiciel de vote électronique doit assurer qu’un électeur est inscrit sur une liste, ne puisse voter qu’une seule fois, et qu’aucun vote non attribué à une personne ne puisse être introduit dans le système. Ce logiciel doit démontrer sa capacité à résister aux tentatives d’intrusion et pouvoir tracer les votes tout en préservant l’anonymat des votants.
Dans un système cyber-physique, ce sont les critères liés à sa criticité que l’on cherche à satisfaire. Il faut réduire autant que faire se peut les pannes liées à un dysfonctionnement logiciel. Ainsi, une métrique importante est le nombre d’erreurs ou de pannes logicielles par heure d’utilisation du logiciel. La tolérance de ce nombre d’erreurs est en corrélation avec le niveau d’intégrité SIL (Safety Integration Level) que le logiciel va gérer. Dans une voiture par exemple, le calculateur activant le freinage doit assurer un taux de panne inférieur au millionième, tandis que le logiciel affichant les vidéos pour distraire les enfants n’a pas un impact direct sur la sûreté du véhicule.
Ces niveaux d’intégrité sont définis dans un standard applicable à toute l’industrie manipulant des équipements électroniques et/ou programmables: l’IEC 61508. Cette norme reste un cadre général qui se décline suivant les pratiques, l’état de l’art et les exigences particulières d’un secteur industriel. Ainsi, on trouve l’EN 50128 pour le ferroviaire, l’IEC 60880 pour le nucléaire, l’ISO 26262 pour l’automobile, l’IEC 60601 pour le médical et la DO-178 pour l’aéronautique.
Ces normes standardisées diffèrent aussi selon leur caractère contraignant. Seuls les industriels de l’aéronautique et du ferroviaire (et, dans une autre mesure, les mêmes secteurs relevant de l’équipement militaire) sont tenus de présenter leurs produits devant une autorité de certification indépendante. Cette autorité est garante de l’exploitation de ces systèmes, de son suivi et de sa maintenance. Elle a le pouvoir de retirer les autorisations d’exploitation, comme on l’a vu dans le cas du Boeing 737 MAX. Mais le retrait d’un système défectueux peut aussi être fair à l’initiative d’un constructeur lorsqu’il décèle un problème grave. Ce n’est malheureusement pas toujours le cas.
“La certification repose sur des pratiques reconnues qui orientent la manière dont le logiciel est produit, testé, relu, versionné.”
De nombreux produits dans l’automobile ou le médical ont fait l’objet d’un rappel afin d’éviter d’autres catastrophes. Pourtant, même s’il n’existe aucune étude publique démontrant la supériorité de la norme avionique, force est de constater qu’il n’y a pas eu de crash d’avion dû à une défaillance logicielle depuis décembre 1992, malgré plus de 25.000 avions en service dans le monde. La certification repose sur des pratiques reconnues qui orientent la manière dont le logiciel est produit, testé, relu, versionné (c’est-à-dire conservé, avec toute l’infrastructure informatique nécessaire, de manière à pouvoir reproduire n’importe quel bug dans les conditions exactes de sa survenue), et impose de décrire explicitement ces procédures dans des documents de planification, et de tracer et documenter toute déviation par rapport à ces plans. Cette réflexion en amont force l’industriel à démontrer une certaine maîtrise et clairvoyance sur son produit, garante de la qualité du résultat.
Mais cette norme aéronautique va même plus loin. Tout outil externe, utilisé pour automatiser certaines tâches, par exemple pour produire des tests à partir de modèles décrivant certaines parties du logiciel, doit lui-même être qualifié, c’est-à-dire démontrer un niveau de confiance approprié par rapport à l’activité qu’il remplace. Cette norme présente donc un niveau d’exigence très important, puisque c’est toute la chaîne d’outils et tous les processus impliqués dans la phase de développement, qu’un industriel doit maîtriser pour pouvoir espérer certifier son logiciel.
En Wallonie, un tissu industriel dynamique
La Wallonie présente un tissu industriel très riche, avec de nombreuses entreprises évoluant dans des secteurs soumis à certification: des acteurs historiques du ferroviaire (Alstom), du spatial (SpaceBel) et de la défense (Fabrique Nationale, Sonaca), mais aussi de nombreux sous-traitants de ces entreprises, ainsi qu’un large et dynamique réseau de sociétés de consultance…
Si ces sociétés échangent fréquemment des ingénieurs entre eux, une tendance nouvelle s’est développée: la Wallonie accueille volontiers des start-ups qui viennent s’y implanter. Tout ce tissu industriel, varié et très dynamique, construit des produits de haute technicité qui utilisent des logiciels embarqués.
L’exemple de l’industrie du drone montre l’attrait que représente la Wallonie pour la création de start-ups dont l’expertise se concentre sur un domaine qui n’existait pas il y a quelques années encore. La Wallonie accueille d’ailleurs un Espace Drone à Temploux, qui est devenu l’unique centre agréé en Belgique pour la formation des pilotes de drones. Cet espace permet de facilement conduire des tests grandeur nature, ce qui explique en partie l’installation de nombreuses start-ups dans les environs.
Le marché des drones a vu une croissance importante ces dernières années face à la démocratisation des appareils et la chute de leurs prix, mais aussi grâce à des utilisations qui permettent de gagner du temps et de l’argent: la maintenance de grands réseaux (tels les lignes de distribution électriques) ou de bâtiments, la cartographie, et la surveillance de grandes étendues (comme les champs agricoles ou les exploitations nucléaires). Bien que peu régulé pour le moment, l’Europe devrait prochainement statuer sur les normes standardisées applicables à leur utilisation, en particulier lorsqu’ils remplissent des missions de manière autonome. En effet, survoler des zones habitées avec un appareil volant de plusieurs kilos peut représenter un risque si une défaillance logicielle venait à faire crasher le drone.
Une multitude de secteurs
L’utilisation de drones n’est pas la seule à nécessiter des normes de développement strictes. L’automobile évolue, elle aussi, vers l’utilisation de normes proches de celles de l’aéronautique. Dans une voiture, les logiciels pilotent de plus en plus d’éléments critiques, d’autant plus lorsqu’on cherche à autonomiser la conduite.
Ces dernières années, l’usage de nombreux équipements médicaux s’est démocratisé. Pacemakers et pompes à insulines sont devenus complètement autonomes afin de favoriser le confort des patients. De récentes avancées ciblent des systèmes prévenant les crises d’épilepsie avant même leur survenue, améliorant ainsi considérablement la vie des patients répondant mal aux médicaments existants. Tous ces produits influent directement sur la sûreté de leurs utilisateurs, et devraient dès lors suivre des normes précises durant le développement des logiciels qui les pilotent.
Que ce soit les secteurs industriels classiques ou les domaines émergents, proposer des produits répondant aux normes de certification apporte un avantage concurrentiel majeur dans un marché hautement compétitif. Proposer des produits dont le logiciel est certifié apporte une plus-value certaine, même lorsque les normes correspondantes ne présentent pas encore de caractère contraignant comme c’est le cas dans l’aéronautique et le ferroviaire.
“Que ce soit les secteurs industriels classiques ou les domaines émergents, proposer des produits répondant aux normes de certification apporte un avantage concurrentiel majeur dans un marché hautement compétitif.”
Afin de répondre à cette demande grandissante, et face à la pénurie d’ingénieurs formés à ces domaines, les entreprises wallonnes recrutent souvent en dehors de la Belgique. Leurs ingénieurs sont issus de larges pôles industriels des pays avoisinants, qui se sont historiquement organisés autour de grands groupes où la certification est partie prenante. On peut citer Toulouse en France, avec la présence d’Airbus, mais aussi toute la région bavaroise où sont installés la plupart des constructeurs automobiles allemands.
Mais la disponibilité de cette force vive a des conséquences dramatiques sur les entreprises wallonnes. Ces ingénieurs, hautement qualifiés, viennent travailler en Wallonie pour un temps. Ils finissent souvent par repartir dans leur pays d’origine au détour d’un changement de situation familiale, de difficultés personnelles, ou simplement parce qu’ils ont le mal du pays. Ils emportent avec eux l’expérience acquise sur place, empêchant ainsi les entreprises wallonnes de capitaliser sur la formation et l’expertise développée durant le temps de leur présence.
Ce turnover important impacte directement la montée en compétence et la compétitivité de ces entreprises. La conséquence de ce retard va se faire sentir dans les prochaines années, lorsque le marché aura évolué pour imposer comme une pratique standard le fait de disposer de logiciels certifiés dans des produits aéronautiques, ferroviaires, médicaux, liés aux drones, etc. de plus en plus compétitifs pour répondre aux demandes de sûreté croissantes du public qui les utilise.
D’où l’initiative prise conjointement par l’UNamur, l’ULB et l’UCLouvain de lancer, dès 2022, un Certificat interuniversitaire en certification de logiciels embarqués critiques (CCES). Avec le soutien de Form@Nam.
Voir notre article à ce sujet.
Moussa Amrani
chercheur à l’UNamur
Instituts NaDI et PReCISE
Découvrez-nous sur Facebook
Suivez-nous sur Twitter
Retrouvez-nous sur LinkedIn
Régional-IT est affilié au portail d’infos Tribu Médias.