Considering the current views on software problems, does this only relate to the ‘numbers’ (bits), which might have been contained with better choice of software design, or does this also involve an external ‘glitch’, interference or hardware fault.
In the first instance, revising the software should solve the problem (but also involving many ‘wise’ system interface and logic changes - after the fact).
However, with external influence, it would be necessary to first identify the problem in order to created a proven certification solution. How else would we know that software / logic changes would resist external influence if we don’t know what the influence is.
Much of this depends on what has been found during investigation. Software, with hindsight can be matched with many situations to deduce cause, it leaves no trace at the accident site, but bits and pieces in a field less so.