Software still needs to run on physical hardware. Code can absolutely be 100 precent perfect to the job it is intended to do. There logical structure and code could be flawless, but then the underlying hardware may fail in an unexpected way. This doesn't mean total system failure either, it could be as simple and small as a single bit flip in a critical section in RAM. And this bit flip could be caused by an external source.
Computers are more complex than civil engineering projects, because even though the physical system is smaller, there are significantly more pieces and people involved to make it happen. Just take a look at the number of contributes to which ever OS you're using, then the application stack on top of that.
Actually it's the opposite there is a predictive model for hardware service life.
That they called bathtub model which is based upon the service period of the hardware.
Which just says that the beginning operational life and ending operational life for the hardware, requires more maintenance to keep it at optimal safety standard.
This is the reason during the space race, Soviet space equipment is mostly manual based due to this predictability of the hardware service life for safety reasons.
From my understanding some industry standards use the same model to justify your safety on the hardware failure risk that is installed with your software like the IEC 61508.
There is another school of thought which is a mathematical predictive model for software is possible but it is up to the interpretation of safety and compliance to a specific standard.
Which differs from industry and the government who is adopting that particular standard.
Which my safety systems professor, who had taught me the standards always joke on.
He will never ride a self driving car even if he was given a million dollars since in terms of safety standards it is not safe by any account due to unpredictably of software.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.