Articles published on N-version programming
Authors
Select Authors
Journals
Select Journals
Duration
Select Duration
108 Search results
Sort by Recency
- Research Article
2
- 10.1145/3785363
- Dec 17, 2025
- ACM Transactions on Software Engineering and Methodology
- Javier Ron + 4 more
N-Version Programming is a well-known methodology for developing fault-tolerant systems. It achieves fault detection and correction at runtime by adding diverse redundancy into programs, minimizing fault mode overlap between redundant program variants. In this work, we propose the automated generation of program variants using large language models. We design, develop and evaluate Galápagos : a tool for generating program variants using LLMs, validating their correctness and equivalence, and using them to assemble N-Version binaries. We evaluate Galápagos by creating N-Version components of real-world C code. Our original results show that Galápagos can produce program variants that are proven to be functionally equivalent, even when the variants are written in a different programming language. Our systematic diversity measurement indicates that functionally equivalent variants produced by Galápagos , are statically different after compilation, and present diverging internal behavior at runtime. We demonstrate that the variants produced by Galápagos can protect C code against real miscompilation bugs which affect the Clang compiler. Overall, our paper shows that producing N-Version software can be drastically automated by advanced usage of practical formal verification and generative language models.
- Research Article
- 10.25791/pribor.2.2025.1560
- Feb 28, 2025
- Приборы и системы. Управление, контроль, диагностика
- А Гончаренко В + 3 more
Предлагается подход к управлению надёжностью кластерных информационных систем с использованием нечеткого вывода. Рассматриваются этапы нечеткого вывода с применением алгоритма Мамдани и задаются функции принадлежности для различных уровней надежности. Обосновываются нечеткие правила выбора методов достижения надежности, включая резервирование, контроль вычислений и N-версионное программирование. Представлены схемы правил для критичных и некритичных систем, а также основные методы обеспечения их надежности. N-версионное программирование использует мажоритарный принцип выбора правильного результата. Выделены актуальные направления исследований, учитывающие интервальную неопределённость параметров временных распределений, для повышения точности оценки характеристик систем. An approach to managing the reliability of cluster information systems using fuzzy inference is proposed. The stages of fuzzy inference using the Mamdani algorithm are considered and membership functions for various levels of reliability are set. The fuzzy rules for choosing methods to achieve reliability, including redundancy, control of calculations and N-version programming, are substantiated. The schemes of rules for critical and non-critical systems are presented, as well as the main methods for ensuring their reliability. N-version programming uses the majority principle of choosing the right result. The current research directions are highlighted, taking into account the interval uncertainty of the parameters of time distributions, in order to increase the accuracy of evaluating the characteristics of systems.
- Research Article
- 10.35546/kntu2078-4481.2024.1.33
- May 1, 2024
- Вісник Херсонського національного технічного університету
- Є В Соколова + 1 more
У данній роботі надається огляд комплексної моделі розроблення програмного забезпечення (ПЗ) для кіберфізичних систем (КФС) життєвого циклу (ЖЦ), що включає в себе різноманітні методології та методи: Model in the Loop (MIL), Software in the Loop (SIL), Processor in the Loop (PIL), та Hardware in the Loop (HIL), доповнені N-версійним програмуванням, формальною верифікацією та валідацією, включаючи верифікацію на етапі компіляції. Інтеграція цих елементів у ЖЦ надає розробникам можливість оптимізувати робочі процеси, забезпечити сталість процесів та управляти ризиками, пов'язаними зі складністю системи. Включення верифікації на етапі компіляції дозволяє на ранніх етапах виявляти та вирішувати потенційні проблеми, що покращує коректність ПЗ. N-версійне програмування дозволяє розробникам не тільки покращувати якість та надійність ПЗ КФС, але й ефективно використовувати ресурси. Інтеграція елементів Field-Programmable Gate Arrays (FPGAs) у архітектуру КФС робить можливим створення масштабованих та адаптивних рішень для подолання проблем продуктивності, з якими стикаються вбудовані процесори. Використання паралельного оброблення даних та апаратного прискорення дозволяє розробникам КФС покращити продуктивність та надійність системи, що є надзвичайно важливим у задоволенні вимог до критичних застосувань у різних галузях, таких як авіація, оборона, охорона здоров'я та промислова автоматизація. Таким чином, впровадження комплексної моделі ЖЦ стає ключовим чинником у покращенні програмних рішень для КФС. Запропоновані рішення відповідають високим стандартам якості, ефективно вирішують різноманітні технологічні завдання та забезпечують задоволення різноманітних потреб користувачів. Зазначений підхід виступає каталізатором для інновацій та прогресу, надаючи розробникам КФС впевненість у здатності подолати технологічні виклики та розробити програмні рішення, які мають значний вплив на суспільство та світ у цілому. Ця стратегія дозволяє розробникам відмінно орієнтуватися в сучасних технологічних складнощах та створювати продукти, що відповідають сучасним вимогам ринку та мають значний соціальний вплив.
- Research Article
- 10.31772/2712-8970-2023-24-3-436-449
- Nov 17, 2023
- Siberian Aerospace Journal
- Svetlana V Efremova
Software is a key element that ensures the functioning of any modern complex technical system. One such system is the constellation of spacecraft and associated ground control complexes that provide reception, transmission, and processing of collected telemetry. The process of data acquisition and its subsequent processing is critical to the flight control of the spacecraft and its onboard scientific equipment. Furthermore, telemetry data processed by ground control systems involves large volumes of raw data, the processing of which is a complicated and time-consuming task. In order to solve this problem, various methods of automatic data processing are used. Improving them is a key factor in ensuring the fault tolerance of onboard software and hardware, improving its reliability. Of all the existing widely-used methods of data processing, we shall focus on N-version programming (NVP) approach. N-version programming has firmly established itself as an effective method for increasing software reliability and designing fault-tolerant systems. Since its inception in the 1970s, this approach has been deeply connected with the development of aerospace software systems, including, among others, satellite ground control stations. In light of the aforementioned, this paper discusses the application of NVP for processing telemetry data gathered from nanosatellites (CubeSats). Due to the fact that there exists a skeptical view on the NVP approach in terms of its efficiency, the author covers this issue in existing literature in terms of the approach’s applicability for processing satellite telemetry.
- Research Article
1
- 10.1142/s0218539323500262
- Oct 6, 2023
- International Journal of Reliability, Quality and Safety Engineering
- Sudeep Kumar + 3 more
Research and development teams have become increasingly focused on developing highly reliable software for safety-critical systems. It is a major challenge for real-time control systems to achieve high reliability software to meet safety standards. A reliability evaluation focuses primarily on analytical and modeling techniques for fault prediction. In safety-critical systems like nuclear plant controls, aircraft controls and railroad signalization systems, N-version programming (NVP) is an effective technique for raising software’s reliability, particularly in areas with high-risk ratios because small errors can result in hazardous incidents. It allows the software to be fault-tolerant, aiding it to produce accurate results even when the software has faults. We present an analytical method for assessing the reliability of N-version software systems. Analysis of the system’s reliability and other performance metrics is provided with closed-form expressions. As an additional extension, we conduct numerical analyses of two cases, the 2VP system and 3VP system, in which suitable parameters are used. We conduct numerical simulations using MATLAB to generate the analytical results and compare the analytical results by using numerical results and neuro-fuzzy results using fuzzy interference systems.
- Research Article
- 10.26583/bit.2022.2.03
- Jun 1, 2022
- Bezopasnost informacionnyh tehnology
- Vitaliy G Ivanenko + 2 more
The paper demonstrates a need to study the functional reliability of identification systems and the applicability of methods for ensuring the functional reliability of information systems for biometric identification systems. Methods of ensuring functional reliability of biometric identification systems via providing indicators of reliability of identification devices and introducing redundancy are considered. The applicability of the methods for biometric identification systems is investigated, its advantages and disadvantages are evaluated. Triple modular redundancy scheme has been developed for the program redundancy using N-version programming. An appropriate reliability scheme based on the principles of dual programming has been developed to implement the identification system with one additional redundant element. Based on the NIST statistics of face recognition algorithms for the developed reliability schemes the reliability indicators were evaluated and its advantages over a system consisting of a single non-redundant element have been shown. The proposed reliability schemes are consistent with the practice of ensuring the functional reliability of information systems and can be integrated into biometric identification systems that use biometric data as the main access identifier.
- Research Article
6
- 10.47813/2782-2818-2022-2-3-0127-0138
- Jan 1, 2022
- Современные инновации, системы и технологии - Modern Innovations, Systems and Technologies
- Д.В Грузенкин + 1 more
Today, computers are used in every kind of human activity (from scientific research to the service sector). This article covers the topic of software reliability increasing in connection with the importance of maintaining reliable and fault-tolerant software operations in critically important fields of science and technology for humans. The paper describes such methods of software reliability improving and protecting it from the errors influence, such as the method of recovery blocks and N-version programming approach. The constructive principle is described, and a diagram of the method of recovery blocks is given. A comparison of the N-version programming method and the recovery blocks method was carried out, followed by a theoretical analysis of the advantages and disadvantages of the method of recovery blocks. The results of the experiment comparing these two approaches are presented.
- Research Article
3
- 10.1088/1742-6596/2094/3/032026
- Nov 1, 2021
- Journal of Physics: Conference Series
- A Aljarbouh
The article discusses the problem of ensuring a high level of software reliability. A software reliability high level can be ensured using N-version programming. N-version software is distinguished by the software components redundancy, designed to solve one problem using different methods. Software redundancy requires additional resources. The challenge is thus to increase the software reliability, while at the same time minimising the resources used. In this article, ant colony optimization is used to solve the problem of choosing the optimal set of versions of N-version software.
- Research Article
6
- 10.1016/j.ress.2021.107920
- Jul 14, 2021
- Reliability Engineering & System Safety
- Gregory Levitin + 2 more
Security and reliability of N-version cloud-based task solvers with individual version cancellation under data theft attacks
- Research Article
13
- 10.1109/tsc.2020.3046360
- Dec 22, 2020
- IEEE Transactions on Services Computing
- Lei Wang + 4 more
Benefiting from the pay-as-you-go business model, cloud-based software applications are becoming more and more popular. A composite cloud system can be constructed by integrating existing component cloud services available over the internet as its system components. In order to fulfill the service-level agreements (SLAs), as well as users’ quality of experience (QoE), a stable execution of the constructed system is desirable in the long term. To achieve this goal, system components at high risk of failing must be identified and fault-tolerated. This is extremely challenging in the dynamic cloud environment that host the component cloud services. However, existing approaches are constrained by their lack of modeling and analysis of system components’ fluctuating reliability time series. To systematically address these issues, in this article, we propose PARS, a perturbation-aware approach, for measuring the reliability sensitivity of component cloud services. It first analyzes the negative perturbations in component cloud services’ historical reliability time series. Then, it calculates the reliability sensitivity of the component cloud services by analyzing how their reliability perturbations impact the reliability of the entire cloud system. Based on PARS, we propose a proactive adaptation approach for constructing and operating composite cloud systems with 1-out-of-2 N-version Programming fault-tolerance. This approach takes the reliability sensitivity of component cloud services estimated by PARS as input to assure the reliability of the cloud system. The results of experiments conducted on two widely used datasets demonstrate the effectiveness and efficiency of the proposed approaches in ensuring the reliability of composite cloud systems.
- Research Article
6
- 10.1088/1755-1315/548/3/032042
- Aug 1, 2020
- IOP Conference Series: Earth and Environmental Science
- V V Losev + 2 more
The article reviews current multiversion methods for improving the fault tolerance of software systems. The technological object of control and the monitoring system of the technological process parameters are considered as the subject of the research. There are given model examples of the programming method implementation by N-copy programming and N-version programming method with tie breaker and acceptance test when constructing the monitoring system of the technological process.
- Research Article
17
- 10.1016/j.ress.2020.106969
- May 7, 2020
- Reliability Engineering & System Safety
- Gregory Levitin + 2 more
Optimal early warning defense of N-version programming service against co-resident attacks in cloud system
- Research Article
- 10.32620/reks.2020.2.07
- Apr 26, 2020
- RADIOELECTRONIC AND COMPUTER SYSTEMS
- Вячеслав Вікторович Фролов + 3 more
The article is devoted to the analysis of a variant of two-version multi-module web application using cloud services. As the design and development of web applications are increasingly active, there is a need to increase their reliability in the face of the increasing complexity of the applications themselves and the infrastructure on which they are based. One of the key solutions to this problem is the use of cloud services, which can greatly simplify the task of ensuring the reliability and security of various applications. At the same time, cloud providers cannot fully guarantee the fault tolerance of applications that run in their environment. Therefore, users should worry about this themselves. One of the most promising approaches is the use of diversity to increase the security and reliability of web applications hosted in the clouds. The object of research and analysis of this work is a multi-module web application designed using cloud services. The study of this work aims to compare modern solutions and technologies that allow implementing sabotage for a web application. Since many companies are moving their infrastructure to the clouds, it becomes necessary to consider the possibility of using diversity by cloud services. They allow you to create and deploy web applications developed in various programming languages on the servers of cloud providers. Thus, part of the responsibility for ensuring reliability is transferred to them. However, it is still necessary to ensure the resiliency of your programs, which may fail due to defects in the program code. One of the main solutions to this problem is N-version programming, which allows you to create an application from several independent versions. Each version can be written in different programming languages and using various technologies by separate development teams, thereby increasing the reliability of the final software product. As a result, in this paper, we conclude that leading cloud providers provide the opportunity to implement diversity using services of various presentation models, such as IaaS and PaaS. Using the principle of diversity, you can design a reliable web application that will avoid its failure in case of an error in the program code.
- Research Article
7
- 10.1016/j.csi.2020.103424
- Feb 6, 2020
- Computer Standards & Interfaces
- Tingting Hu + 3 more
Automated fault tolerance augmentation in model-driven engineering for CPS
- Research Article
8
- 10.1177/0020294019887473
- Jan 13, 2020
- Measurement and Control
- Nadir Subasi + 2 more
Safety-critical systems are widely used in many sectors to prevent fatal accidents and prevent loss of life, damage of property, or deterioration of the environment. Implementation of software safety standards as part of the development of safety-critical software is generally considered an essential element of any safety program. Therefore, it has become more critical to produce highly reliable software to meet the safety requirements established by functional safety standards, such as IEC 61508, ISO 26262, and EN 50128. IEC 61508 supports well-known safety mechanisms such as design diversity like N-version (multi-version) programming. N-version (multi-version) programming is a method where multiple functionally equivalent programs are independently developed from the same software specifications. N-version (multi-version) programming is particularly an effective approach to increase the quality of software in a safety-critical system. In this paper, one of the well-known and widely used algorithms in the field of N-version (multi-version) programming, the majority voting algorithm, has been modified with an online stability checker where the decisions of the voter are judged against the stability of the underlying system. The plant where all the theoretical results are implemented is a tilt-rotor system with the proposed N-version (multi-version) programming–based controller. The experimental results show that the modified majority voter-based N-version (multi-version) programming controller provides more reliable control of the plant.
- Research Article
1
- 10.1504/ijrs.2020.10037442
- Jan 1, 2020
- International Journal of Reliability and Safety
- Madhu Jain + 1 more
N-Version Programming (NVP) based software has become popular owing to its tolerance of design faults. In the present paper, we propose a Software Reliability Growth Model (SRGM) for NVP-based software systems along with detection and removal efficiency of the faults. When a software fault is detected during testing and debugging, debugging activities are executed to remove the fault. In this investigation, the influence of testing effort on the cost of the software development during testing phase is explored. The maintenance cost analysis is presented to determine the optimal testing time under cost and cost-reliability constraints. A numerical illustration is facilitated to perform the sensitivity analysis for the reliability indices of 3-VP system. We employ fuzzy interference system to use neuro-fuzzy technique which helps to examine the SRGM computationally by approximating the system parameters. Furthermore, comparative discussion on analytical results and approximate results is presented with the help of supervised learning process.
- Research Article
5
- 10.1504/ijrs.2020.114694
- Jan 1, 2020
- International Journal of Reliability and Safety
- Ritu Gupta + 1 more
N-Version Programming (NVP) based software has become popular owing to its tolerance of design faults. In the present paper, we propose a Software Reliability Growth Model (SRGM) for NVP-based software systems along with detection and removal efficiency of the faults. When a software fault is detected during testing and debugging, debugging activities are executed to remove the fault. In this investigation, the influence of testing effort on the cost of the software development during testing phase is explored. The maintenance cost analysis is presented to determine the optimal testing time under cost and cost-reliability constraints. A numerical illustration is facilitated to perform the sensitivity analysis for the reliability indices of 3-VP system. We employ fuzzy interference system to use neuro-fuzzy technique which helps to examine the SRGM computationally by approximating the system parameters. Furthermore, comparative discussion on analytical results and approximate results is presented with the help of supervised learning process.
- Research Article
1
- 10.1088/1742-6596/1333/3/032086
- Oct 1, 2019
- Journal of Physics: Conference Series
- Denis V Gruzenkin + 6 more
Software reliability and fault tolerance are in the list of the primary importance tasks to be solved in industrial applications. N-version programming is one of the approaches contributing to the solution. This approach implies the realization of a set of software modules versions. The effectiveness of the approach is obtained by the modules versions diversification: the higher the diversification than higher the reliability. The subject matter of the article is the difference between the software modules versions at the level of algorithms, i.e. the version diversification. The hypothesis about the quantitative metric that defines the differences between programs is verified by the experiment results. The experiment was dedicated to the analysis of several realizations of program algorithms for inner sorting of numerical arrays. There was an execution trace for each algorithm and it reflected the way of algorithm operation in multidimensional space. The analysis that was held on the basis of the suggested concept about the obtained execution traces of implemented algorithms discovers both the differences between algorithms and the similarities between the modifications of the same algorithm.
- Research Article
- 10.1088/1742-6596/1333/3/032085
- Oct 1, 2019
- Journal of Physics: Conference Series
- A S Kuznetsov + 5 more
Software used to digitize manufacturing operations should provide high degree of reliability, since its failure may cause downtime or disruption of the production process and, as a result, financial losses. One of the approaches to improve software reliability is N-version programming where data processing is performed by different functionally equivalent software components which source code can be written in various programming languages with a number of distinguishing syntactic properties. This paper presents an abstract device for recognizing multi-syntax programming languages. The synthesized device can be used for the development of language translators for N-version software systems.
- Research Article
3
- 10.1088/1742-6596/1333/7/072014
- Oct 1, 2019
- Journal of Physics: Conference Series
- A S Kuznetsov + 5 more
Ensuring the reliability of the software has become increasingly complex and challenging. The most important problem is providing failure-free software operation to prevent financial losses or machinery breakdown. It can be solved with N-version programming which requires increased costs due to the use of redundant software components. In this paradigm, redundancy refers to diversity of software components. This paper discusses the implementation of software components in various languages with different syntax. We propose an efficient and time-reducing approach to the development of a multi-syntax programming language compiler. The technique of compiler parsing is based on the existing flex and bison specifications. The proposed approach makes it easier to detect errors in multi-syntax N-version software solutions, as well as reduce the likelihood of their occurrence due to the use of an automated tool, which is crucial for its implementation in an industrial setting.