Download presentation
Presentation is loading. Please wait.
1
The Methodology of N-Version Programming
ALGIRDAS A. AVIZIENIS University of California, Los Angeles & Vytautas Magnus University, Kaunas, Lithuania Ajay Patel Hiren Mandalia Suchindra Sandhu
2
Overview Introduction Building N-Version Software
NVS Components Building N-Version Software Specifications of Member Versions of NVS The N-Version Programming Process Design Paradigm for Fault-Tolerant Systems Issues with N-Version Programming Conclusion
3
Introduction Fault -Tolerant Software: N-version software (NVS) unit:
A unit of software is fault tolerant if it can continue delivering the required service after dormant imperfections called software faults have become active by producing errors in program flow, internal state, or results generated within the software unit. A non-fault-tolerant software unit is called a Simplex unit. N-version software (NVS) unit: A fault tolerant software unit which depends on a generic decision algorithm to determine a consensus result from the results delivered by two or more member versions of the NVS unit. N-version programming (NVP): The process used to produce the various NVS versions. Independent generation of N ≥2 functionally equivalent programs from the same initial specification. Possess attributes for concurrent execution “c-vectors” - Comparison Vectors “cc-points’ - Cross-check Points NVX – N-version Executive:- Provides the environment to support execution of NVS & the decision algorithms at the specified CC-points.
4
NVS Components NVX v1 ccp(1) ccp(2) ccp(k) v2 Input output v3
c-vectors decision algorithms
5
Building N-Version Software
Approach & Objectives: Minimize the probability that two or more versions will produce the similar erroneous results that coincide in time for a decision action of NVX. Attain the maximum Isolation and Independence of the N concurrent version development efforts. Specify the member versions of the NVS unit explicitly. Design and build the NVX system for a very dependable and time-efficient execution of NVS units. Employ Design diversity in the following NVP elements :- Training, Experience, & Location of implementing personnel. Application Algorithms & Data structures. Programming Languages Software Development Methods. Programming Tools and Environments. Testing Methods and Tools.
6
The Specification of Member Versions for NVS
“V-spec” The starting point of NVS process. Must list the matching features that are needed by the NVX to execute the member functions in a Fault-Tolerant manner. Specifications of the functions to be implemented, the Time Constraints, the Inputs & the Initial state of a Version. Requirements for internal Error Detection and Exception Handling. Diversity Requirements. Cross-check Points. Recovery Points. Choice of NVX decision algorithm & it’s parameters. Response.
7
The N-Version Programming Process
The Communication & Documentation Protocol (C&D): Imposes Rigorous Control on the manner of Information flow and Documentation Efforts. Check P-Teams to stop influencing each other in an uncontrollable & unnoticed manner. Document Communication in sufficient detail to allow a search for “Fault Leaks” if required later. Coordinating Team(C-Teams): Prepare the final texts of V-specs & the test of data test sets. Set up the implementation of the C&D Protocol. Acquaint all P-Teams with the NVP Process. Conduct Formal reviews. N-Version Executive (NVX): Provide Decision Algorithms. Assurance of Input Consistency of all Versions. Version Synchronization & Communication. User Interface for Observation, Debugging & Data Collection during execution.
8
Design Paradigm for N-Version Software
Integrates the unique requirements of NVP with the conventional steps of Software Development Methodology. Reduces the possibility of oversights, mistakes, & inconsistencies in the process of software development and Testing. Eliminates most perceivable causes of related design faults in the independently generated Version of a program.
9
Issues with N-Version Programming
Budget/Effort A N-version system will cost at least about n times as much as a 1-version system. Initial Specification Formal specification methods is an active research area. A specification error will manifest itself in all N versions. Independence of Design Effort Is it possible to have identical faults in independent software? It all depends on the nature of the problem. If the specification allows for multiple creative solutions, then the chances of identical faults will be less.
10
Conclusion Key to success : Version Specifications.
This paper effectively traces the history of N – Version programming and presents a definitive design paradigm for N-Version software. It outlines the importance of fault-tolerance systems in life-critical applications & endorses the NVP process to build it.
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.