There's been some speculation that some of Toyota's braking problems may stem from software interaction issues, and lack of mechanical backup. That's nothing, however, in comparison to what seems to have happened to Air France Flight 447, an Airbus A330 bound from Rio to Paris. Der Spiegel has the report, in "The Last Four Minutes of Air France Flight 447":
"The sheer complexity of the Airbus' systems makes it difficult to control in critical phases of the flight.... Could it therefore be that the flight computer, which is hard to manage in emergencies, actually contributed to the loss of control by the Airbus pilots? Air-safety experts Hüttig and Arnoux are demanding an immediate investigation into how the Airbus system reacts to a failure of its airspeed sensors."
What is known, is that the pilots were trying to reboot the flight computer on the way down. Meanwhile, what's the recommended procedure?
"The responsible pilot now had very little time to choose the correct flight angle and the correct engine thrust. This is the only way he could be certain to keep flying on a stable course and maintain steady airflow across the wings if he didn't know the plane's actual speed. The co-pilot must therefore look up the two safe values in a table in the relevant handbook -- at least that's the theory. "In practice, the plane is shaken about so badly that you have difficulty finding the right page in the handbook, let alone being able to decipher what it says," says Arnoux."
As we hand over more high-powered mechanical devices to software operations based on thousands or even millions of lines of code, with limited auditability given the number of potential interactions, these kinds of question are going to surface more and more often.