To the question of applying the correctness calculation technique for estimating the ultimate reliability of multi-version models of fault-tolerant systems
Authors: САРАМУД М.В. , КОВАЛЕВ И.В. , ЛОСЕВ В.В. , ПЕТРОСЯН М.О. , КОВАЛЕВ Д.И. 
Published: September 2024

В статье рассматривается вопрос применения оценки корректности программного обеспечения, как суммы всех сочетаний корректной работы компонентов, которые гарантированно приведут к корректному ответу системы, для определения предельной надежности разрабатываемых программных систем, в частности – отказоустойчивых систем управления. Методика позволяет выбрать модель повышения надежности с введением программной избыточности на основании значения корректности, определить минимальные требования к характеристикам программных модулей, аппаратного обеспечения и блока принятия решения, использующегося в конечной реализации избыточной системы, в зависимости от требований к уровню её надежности. Введено понятие корректности программной системы. Приведены расчетные формулы величины корректности для всех основных мультиверсионных методологий. Рассмотрена программная реализация предложенной методики, обеспечивающая возможность расчета величины корректности при заданных характеристиках компонентов для систем и использованием всех актуальных методологий: N-версионное программирование (NVP), N-версионное программирование с самопроверкой (NSCP), восстанавливающиеся блоки (RB) и t/(n-1) алгоритм принятия решения. Проведен анализ результатов моделирования в предложенной системе, к примеру – графики зависимостей корректности системы от надежности программных модулей пересекаются, из чего можно сделать вывод о том, что при различной надежности программных компонентов будет меняться оптимальный выбор применяемой мультиверсионной методологии, при совпадающих остальных параметрах системы: аппаратной надежности, количестве версий, вероятности возникновения межверсионных ошибок. А числовой выход корректности позволяет точно сравнить различные методологии, проанализировать чувствительность методологий к изменению различных входных параметров, изучить поведение системы при различной надежности версий программных модулей.

The article considers the application of the correctness assessment as a sum of all combinations of the correct operation of components, which with guarantee will lead to a correct response of the system for determination of the ultimate reliability of the developed software systems, in particular, faulttolerant control systems. The methodology allow to choose the most suitable model for increasing reliability with the introduction of program redundancy, determining the minimum requirements for the characteristics of software modules, hardware and the decision block used in the final implementation of the redundant system, depending on the requirements for its reliability level. The concept of the correctness of the software system is introduced. The calculation formulas for the correctness value for all the basic multi-version methodologies are given. The program implementation of the proposed methodology is considered, realizing the possibility of calculating the correctness value for specified characteristics of components for systems and using all relevant methodologies: N-version programming (NVP), N-self checking programming (NSCP), recovery blocks (RB) and t/(n-1) decision algorithm.. The results of modeling in the proposed system are analyzed. Indicative results are obtained, for example, the graphs of the dependencies of the correctness of the system on the reliability of software modules intersect, from which it can be concluded that for different reliability of software components, the optimal choice of the multi-version methodology to be used will change, with the other parameters of the system matching: hardware reliability, number of versions, the probability of occurrence of related faults. A numerical output of correctness allows you to accurately compare the different methodologies, analyze the sensitivity of methodologies to the variation of various input parameters, and study the behavior of the system with different reliability of software module versions.