Comment éviter les problèmes logiciels
Divers / / November 29, 2021
En cette ère numérique, vous devez avoir entendu parler des géants des médias sociaux tels que Facebook et Twitter et des plateformes de commerce électronique telles qu'Alibaba et Amazon. Ces sites Web en ligne s'appuient sur divers progiciels pour leur fonctionnement. Ces programmes ont franchement changé notre façon de travailler, de penser et de vivre.
En outre, de nombreux appareils qui étaient auparavant uniquement de nature mécanique sont désormais contrôlés par un logiciel. Par exemple, les thermostats étaient autrefois des appareils électromécaniques. Cependant, ils dépendent désormais fortement du logiciel pour leur fonctionnement.
Cependant, bogues logiciels peut être assez problématique, surtout avec notre dépendance accrue à leur égard pour les activités quotidiennes. En fait, il y a eu de nombreuses occasions où le logiciel n'a pas atteint son objectif, ce qui a entraîné des résultats désagréables.
Dans cet article, nous parlons de 4 occasions où les performances logicielles ont largement manqué leur cible et comment éviter de tels problèmes logiciels.
1. Panne du 911 dans plusieurs États aux États-Unis
Le 911 est un service essentiel, qui permet aux individus de contacter le personnel d'urgence en cas de besoin. Parfois, entrer en contact avec les répartiteurs d'urgence via le 911 peut littéralement faire la différence entre la vie et la mort.
Par conséquent, ce fut tout un désastre lorsque le 9 avril 2014, Échec de l'acheminement des appels 911 dans sept États des États-Unis, dont la Californie, la Floride, le Minnesota, la Caroline du Nord, la Pennsylvanie, la Caroline du Sud et Washington.
Cette panne a été causée par une erreur de codage évitable, survenue dans un centre de gestion des appels d'urgence du Colorado appartenant à Intrado.
2. Échouement de la flotte de United Airlines
En juillet 2015, United Airlines a été contrainte de immobilisé toute sa flotte des avions en raison d'un problème logiciel. Cela a affecté plus de 4 900 vols dans le monde et laissé de nombreux passagers bloqués dans les aéroports et manifestement frustrés.
Il y a eu probablement aussi un impact économique puisque la compagnie aérienne aurait dû indemniser de nombreux passagers pour la gêne occasionnée. Il y avait aussi probablement plusieurs réunions d'affaires importantes qui ont été ratées à cause de l'échouement.
3. Dysfonctionnement de la pédale d'accélérateur Toyota Camry
En septembre 2007, Jean Bookout voyageait sur l'Interstate Highway 69 en Oklahoma avec la passagère Barbara Schwarz, lorsqu'elle a rencontré des difficultés contrôler sa Toyota Camry.
Elle a tenté de lever les pieds de la manette des gaz, mais la voiture a continué d'accélérer. La pédale de frein n'a pas réussi à arrêter la voiture et elle a été forcée d'utiliser son frein d'urgence.
Malheureusement, cela a envoyé la voiture dans un talus. Schwarz en est décédé et Bookout a été hospitalisé pendant cinq mois en raison de blessures graves.
Il a été supposé que l'accident s'est produit en raison de plusieurs insuffisances de codage qui ont conduit au crash d'une tâche dans le processeur de la Camry. Ce processeur contrôlerait un nombre excessivement élevé de fonctions, notamment l'allumage, la commande des gaz et le régulateur de vitesse.
Le code de Toyota est devenu un gâchis enchevêtré après plusieurs années d'empilement de nouveaux codes sur les anciens. Ceci est généralement appelé « code spaghetti ».
Cependant, l'accident de Bookout a mis ce problème en lumière et a mis en évidence les défauts de Toyota dans leur processus logiciel. On a même découvert qu'il y avait plus de 10 millions de façons de une accélération indésirable peut se produire, basé sur la façon dont le code de Toyota a été structuré.
Panne du thermostat Nest
Nest est une entreprise, propriété d'Alphabet, qui fait des thermostats intelligents. Ces thermostats sont assez astucieux et permettent aux utilisateurs de contrôler la température de leur maison depuis leur smartphone.
L'hiver dernier, les thermostats Nest a connu un pépin sous la forme d'une mise à jour logicielle défectueuse, ce qui a entraîné l'épuisement de leurs batteries. Malheureusement, cette erreur s'est produite en plein hiver, laissant temporairement plusieurs utilisateurs sans chauffage. C'est certainement quelque chose que vous ne voulez pas arriver à cette période de l'année.
Une brève analyse des problèmes logiciels
Des approches telles que la conception basée sur des modèles et TLA+ permettent aux développeurs d'avoir une vue d'ensemble du fonctionnement de leur logiciel.
Brett Victor, un éminent chercheur en informatique, estime qu'il existe une déconnexion entre les programmeurs et les problèmes qu'ils essaient de résoudre avec des codes.
En raison de cette déconnexion, il devient difficile pour les programmeurs d'imaginer ce qu'ils essaient de mettre dans les codes. Victor pense que c'est l'un des facteurs qui contribuent au nombre de bogues dans les logiciels.
Cependant, il y a de l'espoir. Des approches telles que conception basée sur des modèles et TLA+ permettre aux développeurs d'avoir une vue d'ensemble du fonctionnement de leur logiciel.
La conception basée sur des modèles, comme son nom l'indique, permet le développement de logiciels via des modèles visuels. TLA+, abréviation de Temporal Logic of Actions, est un langage conçu pour écrire les spécifications d'un programme informatique. Ce qui est génial avec TLA+, c'est qu'il permet des tests et une vérification exhaustifs du logiciel avant qu'il ne soit rendu public.
La conception basée sur des modèles et TLA+ ont déjà fait leurs preuves. Technologies Esterel, une société de développement de logiciels, utilise une conception basée sur des modèles pour créer des logiciels critiques pour la sécurité, tandis que TLA+ a été utilisé par des personnes comme Microsoft pour corriger une erreur Xbox catastrophique possible, et par l'Agence spatiale européenne pour réécrire les codes d'une sonde qui a atterri sur un comète.
Le processus d'écriture de code est tenu en haute estime par les programmeurs. Beaucoup d'entre eux sont tout simplement intrigués par le processus d'écriture des codes. C'est donc un défi d'amener certains programmeurs à accepter des approches telles que la conception basée sur des modèles et TLA+. Ces approches sont souvent perçues comme strictement académiques sans viabilité dans le monde réel. Cependant, un changement de vue doit intervenir le plus tôt possible.
Dernières pensées
Les logiciels sont de plus en plus utilisés dans des applications qui nécessitent des précautions de sécurité intégrées. De meilleures méthodes de conception de logiciels doivent être introduites à tous les niveaux, car ces applications sont vitales dans nos vies.
Des processus tels que l'automatisation dépendent fortement des logiciels de nos jours, mais une erreur dans une ligne de code peut nous conduire à des revers majeurs, comme le montrent les exemples ci-dessus.
Maintenant, imaginez quelque chose comme l'intelligence artificielle (IA) incorporée dans ces applications. L'IA est assez effrayant tout seul sans problèmes logiciels. Ajoutez des bogues dans le mix et on ne sait pas ce qui pourrait arriver.
Cependant, il y a une doublure argentée ici. Avec un peu de travail et de nouveaux outils, nous pouvons faire de meilleurs logiciels et IA en les concevant plus solidement et en les testant jusqu'à ses goujons.
Espérons que ce problème critique soit pris au sérieux par les autorités concernées afin que nous puissions utiliser le logiciel à son plein potentiel, mais uniquement pour construire un avenir plus sûr et plus intelligent.