Abstract

N-version programming is one of the approach ensuring high reliability and fault-tolerance of software on the basis of program redundancy and diversity. This approach ensures that faults of one of the versions of an N-version software module will not result in malfunction of the module operation process. N-version software realization, as a rule, depends upon capacities and preferences of the teams of designers and developers. This work is an attempt to denote basic requirements, which should be met at the design of N-version software to minimize the occurrence of possible program faults and influence of the modules versions on one another. The requirements to versions (program modules) of N-version software allow to ensure high-level reliability and fault-tolerance due to the elimination of the possible influence of separate versions on each other. A special attention has been paid to their interaction, which should not have any impact on the operation of the other components. For realization and research of N-version software developed taking into account the defined requirements an N-version software execution environment has been developed. Testing of the N-version software execution environment has demonstrated expediency of a component architecture application and high efficiency of N-version programming as a method of fault-tolerant software development.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call