A generic approach to structuring and implementing complex fault-tolerant software | IEEE Conference Publication | IEEE Xplore