A design paradigm for multi-version software
Michael Rung-Tsong Lyu · 1988
In the multi-version software (MVS) implementation of fault-tolerant software, design faults are detected and masked through the consensus of results from two or more independently designed and functionally equivalent versions. To maximize the effectiveness of the MVS approach, the probability of similar errors that coincide at multi-channel decision (consensus) points should be reduced to the lowest possible value. Design diversity is potentially an effective method to get this result. It has been the major concern and effort of the author to formulate a set of rigorous guidelines, or a design paradigm, for the application and implementation of design diversity in building MVS systems for practical applications. This design paradigm was developed and formulated based on the results of fault-tolerant software research conducted at UCLA since 1975. The most recent of these studies was a NASA-sponsored four-university MVS experiment, in which the author participated as a site coordinator. Combining software engineering disciplines and fault tolerance techniques, this design paradigm offers rigorous guidelines for the design and implementation of MVS systems. Using this design paradigm, the author took a major part in the design, coordination and evaluation of a UCLA/Honeywell joint research project on a large-scale MVS system, employing six different programming languages to create six versions of software for pitch control in an automatic aircraft landing program. The rationale, preparation, execution, and evaluation of this project are reported in detail. Moreover, the assessment and refinement of the proposed design paradigm are also presented as results from this project.