Les voitures modernes reposent sur s / w. Lorsque les voitures modernes échouent, par exemple l’ordinateur moteur, c’est généralement (bien que pas toujours, mais habituellement) que l’électronique le répercute, pas le s / w.
Demandez à n'importe quel propriétaire d'une voiture moderne dotée d'un écu combien de temps il reste avant un échec coûteux. Je serai abasourdi si vous avez 10 ans. Les voitures modernes pleines d'électronique et de capteurs sont incroyablement peu fiables.
Si vous étudiez la théorie de la fiabilité, la réponse devient évidente. Tout ce qui est mécanique (logiciel attendu) a une fiabilité à l'état stable qui est le taux d'échec en dehors des régions de mortalité infantile et d'usure. Le taux d'échec du produit final est la somme des taux d'échec des pièces. Ajoutez plus de pièces: le taux de défaillance global devient un nombre plus élevé. Le défi consiste alors à obtenir un taux de défaillance de tous ces composants très bas.
En ce qui concerne des choses telles que les courroies dentées et l'usure des cylindres, les capteurs d'oxygène, les connecteurs qui deviennent ohmiques et les ruptures de fils dues aux vibrations, il existe des techniques qui peuvent être utilisées pour réduire le taux de défaillance. Le coût augmente également lorsque vous faites cela.
Les logiciels, en revanche, ont un taux d'échec constant. Malgré la difficulté de trouver des défauts parfois, tous les logiciels sont finalement des machines à saucisse. Entrées -> Faire des choses -> Sorties. Parfois, ORDER des entrées et des combinaisons d’entrées conduit à une défaillance des modes détectables. Lorsque cela se produit, vous avez trouvé votre défaut, vous le corrigez et vous poursuivez.
Un logiciel ne présentant aucun défaut (connu) a effectivement un taux d'échec de 0. Il fonctionnera indéfiniment sans échec. (Temps moyen entre les échecs = 1 / taux d'échec). La plate-forme matérielle va échouer en premier.
Les logiciels présentant des défauts peuvent ne fonctionner que jusqu'à ce que la combinaison correcte des conditions d'entrée rende le défaut manifeste.
La FALLACY consiste à essayer de comparer les taux d’échec des objets physiques (usure, migration du métal dans les circuits intégrés, pénétration d’eau, vibrations, etc.) et le taux d’échec de ce qui est essentiellement une machine à états finis ce que sa séquence d'instructions lui dit de faire.
(Même des choses telles que le basculement de bits de particules alpha dans la RAM sont un phénomène physique, pas un défaut de logiciel. La manière de gérer une telle soirée PEUT cependant être un défaut de logiciel, mais rappelez-vous que la particule alpha désagréable était juste une autre entrée du logiciel. )