Boeing 777 accident due to software failure?
blogs.law.harvard.edu
blogs.law.harvard.edu
If you add a monitor to check to see if a critical piece is running, then you need another to check if that is running, etc... This applies to both hardware and software. Then you layer on top of all the features of the system layers of process like CMMI, ISO whatever, etc. and designs are reviewed by committee after committee and eventually the design has to be approved and the cost keeps skyrocketing.