Los automóviles modernos dependen de s / w. Cuando los automóviles modernos fallan, por ejemplo, la computadora del motor falla, generalmente (aunque no siempre, pero generalmente) es la electrónica que la cargó, no el s / w.
Pregúntele a cualquier propietario de un automóvil moderno con una ECU cuánto tiempo dura antes de una falla costosa. Me sorprendería si tienes 10 años. Los autos modernos llenos de electrónica y sensores son increíblemente poco confiables.
Si estudia la teoría de la confiabilidad, la respuesta se vuelve cegadoramente obvia. Todo lo mecánico (espere el software) tiene una confiabilidad de estado estable, que es la tasa de falla cuando se encuentra fuera de las regiones de mortalidad infantil y desgaste. La tasa de falla del artículo final es la SUMA de las tasas de falla de las partes. Agregue más partes: la tasa de falla agregada se convierte en un número mayor. El desafío, entonces, es lograr que las tasas de falla de todos esos componentes sean realmente bajas.
Cuando se trata de cosas como correas dentadas y desgaste de cilindros y sensores de oxígeno que se llenan de basura, y los conectores se vuelven óhmicos y los cables se rompen debido a la vibración, existen técnicas que pueden usarse para reducir la tasa de fallas. El costo también aumenta a medida que haces esto.
El software, por otro lado, tiene una tasa de falla constante. A pesar de la dificultad de encontrar defectos a veces, al final todo el software es una máquina de salchichas. Entradas -> Hacer cosas -> Salidas. A veces, el ORDEN de las entradas y las combinaciones de entradas conducen al fracaso con modos que son detectables. Cuando eso sucede, has encontrado tu defecto, lo arreglas y sigues adelante.
El software que no tiene defectos (conocidos) tiene efectivamente una tasa de falla de 0. Se ejecutará para siempre sin fallas. (Tiempo medio entre fallas = 1 / tasa de fallas). La plataforma de hardware fallará primero.
El software con defectos puede ejecutarse solo hasta que la combinación correcta de condiciones de entrada, con el tiempo, haga que el defecto se manifieste.
La FALACIA en todo esto es tratar de comparar las tasas de falla de las cosas físicas (causadas por el desgaste, la migración de metales en los circuitos integrados, la entrada de agua, la vibración, etc.) con una tasa de falla de lo que es esencialmente una máquina de estado finito que simplemente hace exactamente lo que su secuencia de instrucciones le dice que haga.
(Incluso cosas como voltear los bits de las partículas alfa en la RAM es un fenómeno físico, no un defecto de software. Sin embargo, la forma de manejar una situación tan uniforme PUEDE ser un defecto de software, pero recuerde que esa desagradable partícula alfa fue solo otra entrada al software. )