Journal "Software Engineering"
a journal on theoretical and applied science and technology
ISSN 2220-3397

Issue N9 2019 year

DOI: 10.17587/prin.10.384-390
N-Version Software Diversity Metric Definition at the Programming Languages Level
D. V. Gruzenkin, gruzenkin.denis@good-look.su, A. S. Mikhalev, asmikhalev@yandex.ru, Siberian Federal University, Krasnoyarsk, 660041, Russian Federation
Corresponding author: Gruzenkin Denis V., Senior Teacher, Siberian Federal University, 660041, Krasnoyarsk, Russian Federation E-mail: gruzenkin.denis@good-look.su
Received on May 14, 2019
Accepted on July 31, 2019

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.

Keywords: N-version programming, N-version software, measure of software diversity, diversity metric on programming languages level, program quality estimation, software quality
pp. 384–390
For citation:
Gruzenkin D. V., Mikhalev A. S. N-Version Software Diversity Metric Definition at the Programming Languages Level, Programmnaya Ingeneria, 2019, vol. 10, no. 9—10, pp. 384—390.