Multiversion or N-version programming is well known as an effective approach, ensuring high level of software reliability. This approach is based on two fundamental strategies for enhancing the reliability of a software system—redundancy and diversity. Modules solving critical tasks are redundant and implemented in the form of functionally equivalent versions. In this connection versions can be developed by different programmer teams, in different languages, in different environment and can implement different methods and algorithms for solution of identical tasks in order to provide versions diversity. Complex software systems, as a rule, include a set of programs which can call the same modules for solving their target tasks, or to be mor...