Mobil modern mengandalkan s / w. Ketika mobil modern gagal, misalnya komputer mesin gagal, biasanya (walaupun tidak selalu, tetapi biasanya) elektronik yang mencatatnya, bukan s / w.
Tanyakan pada setiap pemilik mobil modern dengan ECU di dalamnya berapa lama mobilnya berjalan sebelum kegagalan yang mahal. Saya akan terkejut jika Anda mendapatkan 10 tahun. Mobil modern yang penuh dengan elektronik dan sensor sangat tidak dapat diandalkan.
Jika Anda mempelajari teori reliabilitas, jawabannya menjadi sangat jelas. Semuanya mekanik (perangkat lunak yang diharapkan) memiliki keandalan kondisi mapan yang merupakan tingkat kegagalan ketika berada di luar wilayah kematian bayi dan keausan. Tingkat kegagalan dari barang akhir adalah SUM dari tingkat kegagalan bagian. Tambahkan lebih banyak bagian: tingkat kegagalan agregat menjadi angka yang lebih tinggi. Tantangannya kemudian adalah untuk mendapatkan tingkat kegagalan dari semua komponen yang sangat rendah.
Ketika datang ke hal-hal seperti timing belt dan keausan silinder dan sensor oksigen menjadi penuh omong kosong, dan konektor menjadi ohmic, dan kabel putus karena getaran - ada teknik yang dapat digunakan untuk mengurangi tingkat kegagalan. Biaya juga naik saat Anda melakukan ini.
Perangkat lunak, di sisi lain, memiliki tingkat kegagalan yang konstan. Terlepas dari kesulitan menemukan cacat di kali, pada akhirnya semua perangkat lunak adalah mesin sosis. Input -> Lakukan barang -> Output. Terkadang ORDER input dan kombinasi input menyebabkan kegagalan dengan mode yang dapat dideteksi. Ketika itu terjadi, Anda telah menemukan cacat Anda, Anda memperbaikinya, dan Anda melanjutkan.
Perangkat lunak yang tidak memiliki cacat (diketahui) secara efektif memiliki tingkat kegagalan 0. Ini akan berjalan selamanya tanpa kegagalan. (Mean Time Between Failures = 1 / tingkat kegagalan). Platform perangkat keras akan gagal terlebih dahulu.
Perangkat lunak dengan cacat mungkin berjalan hanya sampai kombinasi kondisi input yang tepat, seiring waktu, menyebabkan cacat menjadi nyata.
FALLACY dalam semua ini adalah untuk mencoba dan membandingkan tingkat kegagalan benda-benda fisik (yang disebabkan oleh keausan, migrasi logam di IC, masuknya air, getaran, dll.) Dengan tingkat kegagalan dari apa yang pada dasarnya adalah mesin keadaan terbatas yang hanya melakukan dengan tepat apa yang diperintahkan oleh urutan instruksi itu untuk dilakukan.
(Bahkan hal-hal seperti partikel alfa yang membalik bit dalam RAM adalah fenomena fisik, bukan cacat perangkat lunak. Cara penanganan yang merata MUNGKIN namun menjadi cacat perangkat lunak, tetapi ingat, partikel alfa jahat itu hanyalah input lain ke dalam perangkat lunak. )