Современные автомобили полагаются на з / ж. Когда современные автомобили выходят из строя, например, выходит из строя компьютер с двигателем, обычно это (хотя и не всегда, но обычно) электроника, которая его обслуживает, а не ПО.
Спросите любого владельца современного автомобиля с ECU в нем, как долго его пробег до дорогостоящего отказа. Я буду ошеломлен, если ты получишь 10 лет. Современные автомобили, полные электроники и датчиков, потрясающе ненадежны.
Если вы изучите теорию надежности, ответ станет ослепительно очевидным. Все механическое (ожидаемое программное обеспечение) обладает стабильной надежностью, то есть частотой отказов за пределами областей детской смертности и износа. Частота отказов конечного элемента - это СУММА частоты отказов деталей. Добавьте больше частей: совокупная частота отказов становится более высокой. Задача состоит в том, чтобы получить очень низкие показатели отказов всех этих компонентов.
Когда дело доходит до таких вещей, как зубчатые ремни и износ цилиндров и датчики кислорода наполняются дерьмом, разъемы становятся омическими, а провода ломаются из-за вибрации - существуют методы, которые можно использовать для снижения частоты отказов. Стоимость также увеличивается, когда вы делаете это.
Программное обеспечение, с другой стороны, имеет постоянную частоту отказов. Несмотря на то, что порой трудно найти дефекты, в конце концов, все программное обеспечение представляет собой колбасный аппарат. Входы -> Делать вещи -> Выходы. Иногда ПОРЯДОК входов и комбинаций входов приводит к сбоям в режимах, которые можно обнаружить. Когда это происходит, вы нашли свой дефект, исправляете его и идете дальше.
Программное обеспечение, которое не имеет (известных) дефектов, имеет частоту отказов 0. Оно будет работать без сбоев вечно. (Среднее время между отказами = 1 / частота отказов). Аппаратная платформа выйдет из строя первой.
Программное обеспечение с дефектами может работать только до тех пор, пока правильная комбинация условий ввода с течением времени не станет причиной появления дефекта.
FALLACY во всем этом состоит в том, чтобы попытаться сравнить частоту отказов физических вещей (вызванных износом, миграцией металла в микросхемах, попадании воды, вибрации и т. Д.) С частотой отказов того, что по сути является конечным автоматом, который просто делает точно что его последовательность команд говорит ему сделать.
(Даже такие вещи, как переворачивание битов альфа-частиц в оперативной памяти, - это физическое явление, а не программный дефект. Однако способ обработки такого события МОЖЕТ быть программным дефектом, но помните, что неприятная альфа-частица была просто еще одним входом в программное обеспечение. )