Journal "Software Engineering"
a journal on theoretical and applied science and technology
ISSN 2220-3397
Issue N9 2019 year
N-version programming is one of the most effective approaches to improve software reliability. It is based on the program redundancy, so one program module consists of several versions. They aim to solve identical tasks, but have differences in their constructions. For this reason, faults and errors are independent. As a result the higher one module versions diversity, the higher N-version software reliability. In view of this, it is necessary to define diversity metric for that purpose. The authors suggest comparing versions by comparing their programming languages to find versions measure of diversity, which is diversity metric. Comparison is based on a set of criteria, which allow one to figure out the difference between current programming language and a "perfect" one. The notion (collocation) of perfect programming language means an abstract programming language, which contains the values of all criteria for every compared programming language. The more values of some criterion for current programming language match the values of the same criterion for "perfect" programming language, the higher level of similarity is determined between them on the basis of this criterion. To figure out a full similarity level between current and "perfect" programming languages it is necessary to divide sum of similarity levels for all criteria by number of criteria. So diversity metric for two N-version software versions is presented as difference between one (it is equal to 100 %) and full similarity level difference between those versions languages. The metric can be used for program quality estimation.