Software is infrastructure: failures, successes, costs, and the case for formal verification
Ce chapitre soutient que, puisque le logiciel fait office d'infrastructure critique et que les coûts vertigineux des défaillances historiques démontrent les conséquences graves d'une mauvaise qualité, l'adoption de la vérification formelle et de l'analyse de programmes est essentielle, une position appuyée par des applications industrielles réussies.
Article original sous licence CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Ceci est une explication générée par l'IA de l'article ci-dessous. Elle n'a pas été rédigée ni approuvée par les auteurs. Pour une précision technique, consultez l'article original. Lire la clause de non-responsabilité complète
L'idée principale : Le logiciel est le nouveau béton
Imaginez un monde où nos routes, nos ponts et nos centrales électriques ne sont pas faits d'acier et de béton, mais de code invisible. Les auteurs soutiennent que le logiciel est devenu l'infrastructure de la société moderne. Tout comme un pont doit supporter un camion sans s'effondrer, notre logiciel (qui fait fonctionner les hôpitaux, les banques, les avions et même votre grille-pain) doit fonctionner parfaitement.
Le papier pose une question simple mais terrifiante : Si un pont est construit avec de mauvais calculs, il s'effondre. Si un logiciel est construit avec de mauvais calculs, que se passe-t-il ? La réponse est : des milliards de dollars s'évaporent, des gens sont blessés et, parfois, des gens meurent.
Le problème : Nous construisons des châteaux de sable
Les auteurs soulignent que nous traitons le logiciel différemment de l'ingénierie physique.
- Construire un mur : Si vous construisez un mur, la physique effectue les tests. Si le mur est trop faible, la gravité le fera tomber avant même que vous ne le peigniez. Vous ne pouvez pas « exécuter » un mur pour voir s'il fonctionne ; vous le construisez simplement en espérant que les calculs tiennent bon.
- Écrire un logiciel : Un logiciel n'est que du texte. On ne peut pas « ressentir » un bug. Il faut exécuter le code pour voir s'il fonctionne. Mais exécuter le code, c'est comme conduire une voiture du haut d'une falaise pour voir si le parachute s'ouvre. Au moment où vous trouvez le bug, le crash a déjà eu lieu.
Le papier utilise un exemple amusant : si vous tapez rm -rf ~ dans un terminal informatique, cela supprime l'intégralité de votre dossier personnel. Vous n'avez pas besoin de l'exécuter pour savoir qu'il est dangereux ; il suffit de lire le manuel (les « calculs ») pour comprendre ce qu'il fait. Mais pour un code complexe, lire le manuel ne suffit pas.
Le coût de « mauvais calculs » : Une fuite d'un billion de dollars
Le papier présente un « Panthéon de la Honte » des échecs logiciels de ces 40 dernières années pour montrer à quel point les erreurs sont coûteuses. Considérez ceux-ci comme les « effondrements de ponts » du monde numérique :
- Le Therac-25 (Santé) : Une machine de radiothérapie a administré des doses massives aux patients parce que le code a permis d'appuyer sur deux boutons trop rapidement. Résultat : 6 décès.
- L'Ambulance de Londres (Services d'urgence) : Un nouveau système de répartition présentait une fuite de mémoire (comme un seau percé). Il s'est rempli de données obsolètes et a planté. Résultat : Les ambulances ne pouvaient plus trouver les patients ; 20 à 30 personnes sont décédées.
- Le Boeing 737 MAX (Aviation) : Un système logiciel appelé MCAS a poussé le nez de l'avion vers le bas en se basant sur un seul capteur défectueux. Résultat : Deux crashs, 346 morts et 20 milliards de dollars de coûts.
- Le scandale Horizon (Banque) : Un système de comptabilité défaillant a indiqué à des milliers de commerçants qu'ils volaient de l'argent. Résultat : Plus de 900 personnes ont été emprisonnées à tort, et le système a coûté plus d'un milliard de livres sterling aux contribuables pour être réparé.
- CrowdStrike (IT mondial) : Une minuscule erreur de mise à jour a fait que des millions d'ordinateurs dans le monde entier sont devenus bleus et sont « morts ». Résité : Chaos mondial, coûtant des milliards en pertes d'activité.
Les auteurs calculent que la mauvaise qualité des logiciels coûte 1,56 billion de dollars par an à l'économie américaine. C'est plus que le PIB de nombreux pays. C'est de l'argent purement gaspillé pour réparer des erreurs qui auraient pu être évitées.
La solution : Le « Plan Mathématique »
Le papier soutient que nous devons arrêter de deviner et commencer à prouver que notre logiciel fonctionne avant de l'exécuter. C'est ce qu'on appelle la Vérification Formelle.
L'analogie :
Imaginez que vous construisez un gratte-ciel.
- Méthode actuelle (Tests) : Vous construisez le 100e étage, puis le 101e, puis le 102e. Vous vérifiez si l'ascenseur fonctionne. Si le 102e étage s'effondre, vous le démolissez et recommencez. C'est coûteux et dangereux.
- Vérification Formelle : Avant de verser la moindre goutte de béton, vous utilisez des mathématiques avancées pour prouver que la structure ne peut pas s'effondrer sous n'importe quel poids. Vous vérifiez le plan par rapport aux lois de la physique pour garantir qu'il est parfait.
En informatique, cela signifie utiliser les mathématiques pour prouver que le code fera exactement ce qu'il est censé faire, et rien d'autre.
Est-ce rentable ? Oui, c'est une aubaine
Vous pourriez penser : « Les maths, c'est difficile et coûteux. Est-ce que ça en vaut la peine ? » Le papier répond : oui, absolument.
- Air...
Noyé(e) sous les articles dans votre domaine ?
Recevez des digests quotidiens des articles les plus récents correspondant à vos mots-clés de recherche — avec des résumés techniques, dans votre langue.