Библиографическое описание:T / (n - 1)-ВАРИАНТНОЕ ПРОГРАММИРОВАНИЕ : научное издание / Д. В. Грузенкин, В. В. Едреев, Д. А. Пантелеев. - Текст : непосредственный // Вестник Воронежского государственного технического университета. - 2022. - Т. 18, № 6. - С. 46-56. - ISSN 1729-6501. - ISSN 2782-4624, DOI 10.36622/VSTU.2022.18.6.006.
Аннотация:Существуют такие сферы человеческой жизнедеятельности, где надёжность программного обеспечения важна критически для бесперебойной работы различного рода систем управления. Для повышения надёжности программного обеспечения существует множество подходов, в том числе основанных на программной избыточности. Среди них наиболее популярны, например, блоки восстановления и мультиверсионное программирование. Однако существуют и альтернативные подходы, значительно менее освещённые в литературе, например, t/(n-1)-вариантное программирование. Хотя описание данного подхода представлено в публикациях очень скудно, он используется в научных работах и диссертациях для сравнения его эффективности с эффективностью алгоритмов голосования мультиверсионного программирования. Приведено общее описание и дополнительные разъяснения для подхода t/(n-1), а также раскрыты моменты, упущенные в оригинальных статьях. Кроме того, на основании данного подхода был составлен алгоритм, который фактически не был описан в оригинальных статьях, разбор принципов его работы произведён на модельном примере. Представленный в статье алгоритм позволяет решать не только конкретные задачи, но и может быть применён к целому классу задач. Описан эксперимент, в котором сравнивается эффективность алгоритма на базе t/(n-1)-вариантного программирования с алгоритмами голосования мультиверсионного программирования и подходом блоков восстановления. Приведены результаты эксперимента
There are such kinds of industry and human activity where software reliability is critically important for some control system correct functioning. To improve software reliability, there are many approaches, including those based on software redundancy. For example, recovery blocks and N-version programming are the most popular among them. However, there are also alternative approaches that are much less sanctified in the literature, for example, t/(n-1)-variant programming. Although the description of this approach is presented very sparsely in publications, it is used in scientific papers and dissertations to compare its effectiveness with the effectiveness of N-version programming voting algorithms. This paper provides a general description and additional explanations for the t/(n-1) approach, and also reveals the points missed in the original articles. In addition, based on this approach, we compiled an algorithm that was not actually described in the original articles, and the principles of its operation were analyzed using a model example. The algorithm presented in the article allows solving not only specific tasks, but can also be applied to a whole tasks class. The article describes an experiment in which the efficiency of an algorithm based on t/(n-1)-variant programming is compared with N-version programming voting algorithms and the recovery blocks approach. The results of the experiment are also presented