Moderne Autos setzen auf s / w. Wenn moderne Autos versagen, zum Beispiel der Motorcomputer, dann ist es normalerweise (wenn auch nicht immer, aber normalerweise) die Elektronik, die es auslöst, nicht das s / w.
Fragen Sie jeden Besitzer eines modernen Autos mit einem Steuergerät, wie lange es noch läuft, bis ein teurer Fehler auftritt. Ich bin fassungslos, wenn Sie 10 Jahre bekommen. Moderne Autos voller Elektronik und Sensoren sind erstaunlich unzuverlässig.
Wenn Sie Zuverlässigkeitstheorie studieren, wird die Antwort blind. Alles Mechanische (Softwareerwartung) hat eine Zuverlässigkeit im Steady-State, dh die Ausfallrate außerhalb der Bereiche Säuglingssterblichkeit und Abnutzung. Die Ausfallrate des Endartikels ist die Summe der Ausfallraten der Teile. Fügen Sie weitere Teile hinzu: Die Gesamtfehlerrate wird zu einer höheren Zahl. Die Herausforderung besteht dann darin, die Ausfallraten aller dieser Komponenten wirklich niedrig zu halten.
Wenn es um Dinge wie Zahnriemen- und Zylinderverschleiß geht und die Sauerstoffsensoren voll werden und die Anschlüsse ohmsch werden und die Drähte aufgrund von Vibrationen brechen - gibt es Techniken, mit denen die Ausfallrate verringert werden kann. Die Kosten steigen auch, wenn Sie dies tun.
Software hingegen weist eine konstante Ausfallrate auf. Trotz der Schwierigkeit, zeitweise Fehler zu finden, ist am Ende jede Software eine Wurstmaschine. Eingänge -> Aufgaben -> Ausgänge. Manchmal führt die Reihenfolge der Eingänge und die Kombination der Eingänge zu Fehlern mit erkennbaren Modi. Wenn dies passiert, haben Sie Ihren Defekt gefunden, beheben ihn und fahren fort.
Software, die keine (bekannten) Fehler aufweist, weist effektiv eine Fehlerrate von 0 auf. Sie wird für immer ohne Fehler ausgeführt. (Mittlere Zeit zwischen Ausfällen = 1 / Ausfallrate). Die Hardwareplattform wird zuerst ausfallen.
Software mit Fehlern wird möglicherweise nur so lange ausgeführt, bis die richtige Kombination von Eingabebedingungen im Laufe der Zeit dazu führt, dass sich der Fehler manifestiert.
Bei alledem geht es darum, die Ausfallraten physikalischer Dinge (die durch Verschleiß, Metallmigration in ICs, Eindringen von Wasser, Vibration usw. verursacht werden) mit einer Ausfallrate zu vergleichen, die im Wesentlichen einer endlichen Maschine entspricht, die genau das tut was seine Anweisungssequenz ihm sagt, zu tun.
(Sogar Dinge wie Alpha-Partikel, die Bits im RAM umdrehen, sind ein physikalisches Phänomen, kein Softwarefehler. Die Art und Weise, wie mit einem solchen Eveny umgegangen wird, kann jedoch ein Softwarefehler sein. Denken Sie jedoch daran, dass böse Alpha-Partikel nur eine weitere Eingabe für die Software waren. )