International Conference «Mathematical and Information Technologies, MIT-2016»

28 August – 5 September 2016

Vrnjacka Banja, Serbia – Budva, Montenegro

Gruzenkin D.   Chernigovskiy A.S.   Tsarev R.Y.  

Requirements for N-version Software Modules Design and Development

Reporter: Gruzenkin D.

N-version programming as an approach to provision of fault tolerance in safety-critical systems proved itself positively for a row of various practical tasks [1–4]. Theoretical analysis and practical experiments demonstrate a substantial increase of reliability in case of using N-version software systems in contrast to traditional one-version software [5, 6]. General theoretical approach to N-version software design supposes that potential faults appearing in different versions are completely independent [7]. Independence of potential faults is determined by using different methods and algorithm of the task solving [8]. As for program realization, the problem of potential faults independence lies at the level of source codes. At the stage of software run, fault independence can be lost due to possible interactions disregarded at the stage of execution of the modules versions within the whole software.
This article enunciates requirements imposed for design and development of N-Version software and aimed at solution of this problem. These requirements develop N-version programming methodology, in particular, the task of N-version software deployment in the systems with shared memory is considered in the article. Besides, meeting the suggested requirements during development of N-version software allows to achieve such positive results as elimination of interreaction of the program modules, program faults localization and quick response, usability of deployment and enhancement of N-version program system, enlarging a range of NVP system program module potential developers.
The work describes the developed environment for N-version software runtime, which also allowed to research the functioning reliability of N-version software developed according to the suggested requirements. The stated above environment was developed on the basis of a component approach and besides the components as such it includes interface for program modules execution support, while the modules are realized as independent components.
Reliability and fault-tolerance analysis of N-version software was performed with the use of the developed runtime environment. At the same time, errors of various kind were injected into the N-version software versions. The conducted research confirms expediency of N-version software requirements and verifies theoretical conclusions about ensuring the software fault-tolerance thanks to N-version programming.

To reports list

© 1996-2019, Institute of computational technologies of SB RAS, Novosibirsk