SlideShare a Scribd company logo
1 of 17
Dependable Software System Course
Chapter 2
The Methodology of N-Version
Programming
By: Shabnamshafie
ComputerEngineering Department
Golestan University
Outline
 Introduction
 What is NVP
 Design Diversity
 Number of Versions
 Output Comparison
 V-spec
 C-team
 Design paradigm For NVS
 Recovery Block
 NVP and Recovery Block
 Techniques Based on NVP
 Conclusion
 References
Introduction
 NVP ( N-Version Programming)
 The concept of N-version programming was first introduced
by Avizienis in 1977 [1]
 The same specification is implemented in a number of
different versions by different teams [1]
 All versions compute simultaneously and the majority output
is selected using a voting system [1]
 This is the most commonly used approach e.g. in Airbus
320.
Avizienis
What is NVP?
 With N-Version Programming, NVP, independent
development teams use the same specification to
generate multiple implementations.
 During development the design teams are kept separate
and do not share their designs nor do they discuss the
specification’s meaning with each other.
 The design teams should use different algorithms and
different programming languages to produce multiple
versions that contain different faults from the other
versions [1].
What is NVP?
 NVP can tolerate both hardware and software faults.
 Correlated faults are not tolerated by the NVP.
 There is some empirical evidence that teams commonly
misinterpret specifications in the same way and chose
the same algorithms in their systems.
Version 1
Version 2
Version 3
Voter OutputInput
Decider
Design Diversity
 NVP is based on the principle of design diversity, that is
coding a software module by different teams of
programmers, to have multiple versions [2]
 The diversity can also be introduced by employing
different algorithms for obtaining the same solution or by
choosing different programming languages [2]
Diversity in:
 Programming teams (personnel and structure)
 Software architecture
 Algorithms used
 Programming languages
 Verification tools and methods
 Data (input re-expression and output adjustment)
Number Of Versions
 In NVP, deciding the number of versions required to
ensure acceptable levels of software reliability is an
important design consideration.
Output comparison
 As in hardware systems, the output comparator is a
simple piece of software that uses a voting mechanism
to select the output.
 In real-time systems, there may be a requirement that
the results from the different versions are all produced
within a certain time frame.
Version2
Version1
Version3
Output
comparator
N-versions
Agreed
result
V-spec
 V-spec is the specification of the member versions
 It represents the starting point of the NVP process
 the V-spec needs to state the functional requirements
completely and unambiguously, while leaving the widest
possible choice of implementations [1]
C-team
major functions of the coordination team [1]:
to prepare the final texts of the V-specs and of the test data sets
to set up the implementation of the C&D protocol
to acquaint all P-teams with the NVP process
to distribute the V-specs, test and all other information needed by the
P-teams
 to collect all P-team inquiries and evaluate them
Design paradigm For NVS
Recovery Block
 Force a different algorithm to be used for each version so they
reduce the probability of common errors
 However, the design of the acceptance test is difficult as it must be
independent of the computation used
 There are problems with this approach for real-time systems
because of the sequential operation of the redundant versions [3]
Acceptance
test
Algorithm2
Algorithm1
Algorithm3
Recovery
blocks
Test for
success
Retest
Retry
Retest
Tryalgorithm
1
Continueexecutionif
acceptance testsucceeds
Signalexceptionif all
algorithms fail
Acceptancetest
fails –re-try
NVP & Recovery Block
 NVP is a forward recovery scheme - it masks faults.
 RB is a backward error recovery scheme.
 In NVP, multiple versions of the same task is executed
concurrently, whereas in RB scheme, the versions of a
task are executed serially[1].
 NVP relies on vo ting .
 RB relies on acce ptance te st.
NVP & Recovery Block
NVP[1]
RB[1]
Techniques Based on NVP
 N-Version Programming Tie Broker [4]
 N-Version Programming and Acceptance
Test[4]
 N-Version Programming-Tie Broker-
Acceptance Test[4]
 N-Self Checking Programming [5]
 Alternative one
Conclusion
 N-version programming and recovery blocks are two different
approaches to designing fault-tolerant software architectures
 In NVP, The same specification is implemented in a number of
different versions by different teams
 During development the design teams are kept separate and do not
share their designs nor do they discuss the specification’s meaning
with each other
 The major function of the coordination team is managing the P-
teams
 The purpose of the design paradigm is to integrate the unique
requirements of NVP with the conventional steps of software
development methodology
 NVP is based on Voter, but RB is based on Acceptance test
References
]1[Avizienis A.. "The Methodology Of N-Version Programming", Software Fault Tolerance, vol.3
pp.23-46, 1995.
]2[A. Avizienis and J. PJ Kelly. Fault tolerance by design diversity: Conceptsand experiments.
Computer, 17(8):67–80, 1984 
]3[Pullum L. L., "Software fault tolerance techniques and implementation": Artech House Publishers,
2001
]4[Banki H., Babamir S., Farokh A., Morovati M., "Enhancing Efficiency of Software Fault Tolerance
Techniques Satellite Motion System", Journal of Information Systems and Telecommunication, Vol.
2, September 2014.
]5[Xie Z., Sun H., Saluja K., "A Survey of Software Fault Tolerance Techniques", University of
Wisconsin-Madison, 2007.

More Related Content

What's hot

python project ppt.pptx
python project ppt.pptxpython project ppt.pptx
python project ppt.pptxAkshatGoswami3
 
Women security application
Women security applicationWomen security application
Women security applicationAkshay Surve
 
Software testing.ppt
Software testing.pptSoftware testing.ppt
Software testing.pptKomal Garg
 
Clock synchronization in distributed system
Clock synchronization in distributed systemClock synchronization in distributed system
Clock synchronization in distributed systemSunita Sahu
 
Slicing and testing
Slicing and testingSlicing and testing
Slicing and testingTaegeonLee1
 
Hand gesture recognition system(FYP REPORT)
Hand gesture recognition system(FYP REPORT)Hand gesture recognition system(FYP REPORT)
Hand gesture recognition system(FYP REPORT)Afnan Rehman
 
Software reuse ppt.
Software reuse ppt.Software reuse ppt.
Software reuse ppt.Sumit Biswas
 
Using Machine Learning in Networks Intrusion Detection Systems
Using Machine Learning in Networks Intrusion Detection SystemsUsing Machine Learning in Networks Intrusion Detection Systems
Using Machine Learning in Networks Intrusion Detection SystemsOmar Shaya
 
Single pass assembler
Single pass assemblerSingle pass assembler
Single pass assemblerBansari Shah
 
Software reliability
Software reliabilitySoftware reliability
Software reliabilityAnand Kumar
 
The Full Stack Web Development
The Full Stack Web DevelopmentThe Full Stack Web Development
The Full Stack Web DevelopmentSam Dias
 

What's hot (20)

Software metrics
Software metricsSoftware metrics
Software metrics
 
python project ppt.pptx
python project ppt.pptxpython project ppt.pptx
python project ppt.pptx
 
Software Reliability
Software ReliabilitySoftware Reliability
Software Reliability
 
Fault tolerance
Fault toleranceFault tolerance
Fault tolerance
 
Women security application
Women security applicationWomen security application
Women security application
 
Software testing.ppt
Software testing.pptSoftware testing.ppt
Software testing.ppt
 
Fault tolerance
Fault toleranceFault tolerance
Fault tolerance
 
Clock synchronization in distributed system
Clock synchronization in distributed systemClock synchronization in distributed system
Clock synchronization in distributed system
 
Slicing and testing
Slicing and testingSlicing and testing
Slicing and testing
 
Hand gesture recognition system(FYP REPORT)
Hand gesture recognition system(FYP REPORT)Hand gesture recognition system(FYP REPORT)
Hand gesture recognition system(FYP REPORT)
 
IP Security
IP SecurityIP Security
IP Security
 
Software reuse ppt.
Software reuse ppt.Software reuse ppt.
Software reuse ppt.
 
Using Machine Learning in Networks Intrusion Detection Systems
Using Machine Learning in Networks Intrusion Detection SystemsUsing Machine Learning in Networks Intrusion Detection Systems
Using Machine Learning in Networks Intrusion Detection Systems
 
Virtual Mouse
Virtual MouseVirtual Mouse
Virtual Mouse
 
Single pass assembler
Single pass assemblerSingle pass assembler
Single pass assembler
 
Common Standards in Cloud Computing
Common Standards in Cloud ComputingCommon Standards in Cloud Computing
Common Standards in Cloud Computing
 
Software reliability
Software reliabilitySoftware reliability
Software reliability
 
Recognition-of-tokens
Recognition-of-tokensRecognition-of-tokens
Recognition-of-tokens
 
The Full Stack Web Development
The Full Stack Web DevelopmentThe Full Stack Web Development
The Full Stack Web Development
 
Javacard
Javacard Javacard
Javacard
 

Viewers also liked

Fault tolerant presentation
Fault tolerant presentationFault tolerant presentation
Fault tolerant presentationskadyan1
 
Fault tolerance techniques for real time operating system
Fault tolerance techniques for real time operating systemFault tolerance techniques for real time operating system
Fault tolerance techniques for real time operating systemanujos25
 
Fault Tolerance System
Fault Tolerance SystemFault Tolerance System
Fault Tolerance Systemprakashjjaya
 
Software Fault Tolerance
Software Fault ToleranceSoftware Fault Tolerance
Software Fault ToleranceAnkit Singh
 
Fault tolearant system
Fault tolearant systemFault tolearant system
Fault tolearant systemarvinthsaran
 
Main MeMory Data Base
Main MeMory Data BaseMain MeMory Data Base
Main MeMory Data BaseSiva Rushi
 
Fault Tolerance (Distributed computing)
Fault Tolerance (Distributed computing)Fault Tolerance (Distributed computing)
Fault Tolerance (Distributed computing)Sri Prasanna
 
Fault tolerance and computing
Fault tolerance  and computingFault tolerance  and computing
Fault tolerance and computingPalani murugan
 
Real time database (MDARTS)
Real time database (MDARTS)Real time database (MDARTS)
Real time database (MDARTS)Pradeep Kumar TS
 
Fault management presentation
Fault management presentationFault management presentation
Fault management presentationardhita banu adji
 
Fault Management System (OSS)
Fault Management System (OSS)Fault Management System (OSS)
Fault Management System (OSS)Riswan
 
Be information technology2008course
Be information technology2008courseBe information technology2008course
Be information technology2008courseAnuj Sharma
 
Chapter 19 - Real Time Systems
Chapter 19 - Real Time SystemsChapter 19 - Real Time Systems
Chapter 19 - Real Time SystemsWayne Jones Jnr
 
Introduction to Real-Time Operating Systems
Introduction to Real-Time Operating SystemsIntroduction to Real-Time Operating Systems
Introduction to Real-Time Operating Systemscoolmirza143
 
Real Time Systems & RTOS
Real Time Systems & RTOSReal Time Systems & RTOS
Real Time Systems & RTOSVishwa Mohan
 
Distributed File Systems
Distributed File Systems Distributed File Systems
Distributed File Systems Maurvi04
 

Viewers also liked (20)

Fault tolerant presentation
Fault tolerant presentationFault tolerant presentation
Fault tolerant presentation
 
Fault tolerance
Fault toleranceFault tolerance
Fault tolerance
 
Fault tolerance techniques for real time operating system
Fault tolerance techniques for real time operating systemFault tolerance techniques for real time operating system
Fault tolerance techniques for real time operating system
 
Fault Tolerance System
Fault Tolerance SystemFault Tolerance System
Fault Tolerance System
 
Software Fault Tolerance
Software Fault ToleranceSoftware Fault Tolerance
Software Fault Tolerance
 
Fault tolearant system
Fault tolearant systemFault tolearant system
Fault tolearant system
 
Main MeMory Data Base
Main MeMory Data BaseMain MeMory Data Base
Main MeMory Data Base
 
Fault Tolerance (Distributed computing)
Fault Tolerance (Distributed computing)Fault Tolerance (Distributed computing)
Fault Tolerance (Distributed computing)
 
Fault tolerance and computing
Fault tolerance  and computingFault tolerance  and computing
Fault tolerance and computing
 
Vxworks
VxworksVxworks
Vxworks
 
Real time database (MDARTS)
Real time database (MDARTS)Real time database (MDARTS)
Real time database (MDARTS)
 
Fault management presentation
Fault management presentationFault management presentation
Fault management presentation
 
Fault Management System (OSS)
Fault Management System (OSS)Fault Management System (OSS)
Fault Management System (OSS)
 
Be information technology2008course
Be information technology2008courseBe information technology2008course
Be information technology2008course
 
Chapter 19 - Real Time Systems
Chapter 19 - Real Time SystemsChapter 19 - Real Time Systems
Chapter 19 - Real Time Systems
 
Ch21 real time software engineering
Ch21 real time software engineeringCh21 real time software engineering
Ch21 real time software engineering
 
Introduction to Real-Time Operating Systems
Introduction to Real-Time Operating SystemsIntroduction to Real-Time Operating Systems
Introduction to Real-Time Operating Systems
 
Real Time Systems & RTOS
Real Time Systems & RTOSReal Time Systems & RTOS
Real Time Systems & RTOS
 
In-memory Databases
In-memory DatabasesIn-memory Databases
In-memory Databases
 
Distributed File Systems
Distributed File Systems Distributed File Systems
Distributed File Systems
 

Similar to N-version programming

Mapping and visualization of source code a survey
Mapping and visualization of source code a surveyMapping and visualization of source code a survey
Mapping and visualization of source code a surveyNakul Sharma
 
Manual testing by reddy
Manual testing by reddyManual testing by reddy
Manual testing by reddyKrishna Gurjar
 
Software development slides
Software development slidesSoftware development slides
Software development slidesiarthur
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified ProcessOmkar Dash
 
Code review automation and functional tests on Carrefour
Code review automation and functional tests on CarrefourCode review automation and functional tests on Carrefour
Code review automation and functional tests on CarrefourDenis Santos
 
Software Development presentation basic only
Software Development presentation basic onlySoftware Development presentation basic only
Software Development presentation basic onlyAbhishekMishra498106
 
4.LanguageProcessors and language Processing Activities.pdf
4.LanguageProcessors and language Processing Activities.pdf4.LanguageProcessors and language Processing Activities.pdf
4.LanguageProcessors and language Processing Activities.pdfSwapnaliPawar27
 
7a Good Programming Practice.pptx
7a Good Programming Practice.pptx7a Good Programming Practice.pptx
7a Good Programming Practice.pptxDylanTilbury1
 
Qualidade de Software em zOS usando IBM Debug Tool e RDz
Qualidade de Software em zOS usando IBM Debug Tool e RDzQualidade de Software em zOS usando IBM Debug Tool e RDz
Qualidade de Software em zOS usando IBM Debug Tool e RDzPaulo Batuta
 
Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxAsst.prof M.Gokilavani
 

Similar to N-version programming (20)

Manual testing
Manual testingManual testing
Manual testing
 
2
22
2
 
2
22
2
 
Mapping and visualization of source code a survey
Mapping and visualization of source code a surveyMapping and visualization of source code a survey
Mapping and visualization of source code a survey
 
Manual testing by reddy
Manual testing by reddyManual testing by reddy
Manual testing by reddy
 
Testing tools
Testing toolsTesting tools
Testing tools
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Software development slides
Software development slidesSoftware development slides
Software development slides
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified Process
 
Code review automation and functional tests on Carrefour
Code review automation and functional tests on CarrefourCode review automation and functional tests on Carrefour
Code review automation and functional tests on Carrefour
 
Software maintenance
Software maintenance Software maintenance
Software maintenance
 
Software Development presentation basic only
Software Development presentation basic onlySoftware Development presentation basic only
Software Development presentation basic only
 
Intro to prog
Intro to progIntro to prog
Intro to prog
 
Rup
Rup Rup
Rup
 
DevOps.pptx
DevOps.pptxDevOps.pptx
DevOps.pptx
 
4.LanguageProcessors and language Processing Activities.pdf
4.LanguageProcessors and language Processing Activities.pdf4.LanguageProcessors and language Processing Activities.pdf
4.LanguageProcessors and language Processing Activities.pdf
 
7a Good Programming Practice.pptx
7a Good Programming Practice.pptx7a Good Programming Practice.pptx
7a Good Programming Practice.pptx
 
Qualidade de Software em zOS usando IBM Debug Tool e RDz
Qualidade de Software em zOS usando IBM Debug Tool e RDzQualidade de Software em zOS usando IBM Debug Tool e RDz
Qualidade de Software em zOS usando IBM Debug Tool e RDz
 
Software Development Process
Software Development ProcessSoftware Development Process
Software Development Process
 
Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptx
 

Recently uploaded

Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 

Recently uploaded (20)

Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 

N-version programming

  • 1. Dependable Software System Course Chapter 2 The Methodology of N-Version Programming By: Shabnamshafie ComputerEngineering Department Golestan University
  • 2. Outline  Introduction  What is NVP  Design Diversity  Number of Versions  Output Comparison  V-spec  C-team  Design paradigm For NVS  Recovery Block  NVP and Recovery Block  Techniques Based on NVP  Conclusion  References
  • 3. Introduction  NVP ( N-Version Programming)  The concept of N-version programming was first introduced by Avizienis in 1977 [1]  The same specification is implemented in a number of different versions by different teams [1]  All versions compute simultaneously and the majority output is selected using a voting system [1]  This is the most commonly used approach e.g. in Airbus 320. Avizienis
  • 4. What is NVP?  With N-Version Programming, NVP, independent development teams use the same specification to generate multiple implementations.  During development the design teams are kept separate and do not share their designs nor do they discuss the specification’s meaning with each other.  The design teams should use different algorithms and different programming languages to produce multiple versions that contain different faults from the other versions [1].
  • 5. What is NVP?  NVP can tolerate both hardware and software faults.  Correlated faults are not tolerated by the NVP.  There is some empirical evidence that teams commonly misinterpret specifications in the same way and chose the same algorithms in their systems. Version 1 Version 2 Version 3 Voter OutputInput Decider
  • 6. Design Diversity  NVP is based on the principle of design diversity, that is coding a software module by different teams of programmers, to have multiple versions [2]  The diversity can also be introduced by employing different algorithms for obtaining the same solution or by choosing different programming languages [2] Diversity in:  Programming teams (personnel and structure)  Software architecture  Algorithms used  Programming languages  Verification tools and methods  Data (input re-expression and output adjustment)
  • 7. Number Of Versions  In NVP, deciding the number of versions required to ensure acceptable levels of software reliability is an important design consideration.
  • 8. Output comparison  As in hardware systems, the output comparator is a simple piece of software that uses a voting mechanism to select the output.  In real-time systems, there may be a requirement that the results from the different versions are all produced within a certain time frame. Version2 Version1 Version3 Output comparator N-versions Agreed result
  • 9. V-spec  V-spec is the specification of the member versions  It represents the starting point of the NVP process  the V-spec needs to state the functional requirements completely and unambiguously, while leaving the widest possible choice of implementations [1]
  • 10. C-team major functions of the coordination team [1]: to prepare the final texts of the V-specs and of the test data sets to set up the implementation of the C&D protocol to acquaint all P-teams with the NVP process to distribute the V-specs, test and all other information needed by the P-teams  to collect all P-team inquiries and evaluate them
  • 12. Recovery Block  Force a different algorithm to be used for each version so they reduce the probability of common errors  However, the design of the acceptance test is difficult as it must be independent of the computation used  There are problems with this approach for real-time systems because of the sequential operation of the redundant versions [3] Acceptance test Algorithm2 Algorithm1 Algorithm3 Recovery blocks Test for success Retest Retry Retest Tryalgorithm 1 Continueexecutionif acceptance testsucceeds Signalexceptionif all algorithms fail Acceptancetest fails –re-try
  • 13. NVP & Recovery Block  NVP is a forward recovery scheme - it masks faults.  RB is a backward error recovery scheme.  In NVP, multiple versions of the same task is executed concurrently, whereas in RB scheme, the versions of a task are executed serially[1].  NVP relies on vo ting .  RB relies on acce ptance te st.
  • 14. NVP & Recovery Block NVP[1] RB[1]
  • 15. Techniques Based on NVP  N-Version Programming Tie Broker [4]  N-Version Programming and Acceptance Test[4]  N-Version Programming-Tie Broker- Acceptance Test[4]  N-Self Checking Programming [5]  Alternative one
  • 16. Conclusion  N-version programming and recovery blocks are two different approaches to designing fault-tolerant software architectures  In NVP, The same specification is implemented in a number of different versions by different teams  During development the design teams are kept separate and do not share their designs nor do they discuss the specification’s meaning with each other  The major function of the coordination team is managing the P- teams  The purpose of the design paradigm is to integrate the unique requirements of NVP with the conventional steps of software development methodology  NVP is based on Voter, but RB is based on Acceptance test
  • 17. References ]1[Avizienis A.. "The Methodology Of N-Version Programming", Software Fault Tolerance, vol.3 pp.23-46, 1995. ]2[A. Avizienis and J. PJ Kelly. Fault tolerance by design diversity: Conceptsand experiments. Computer, 17(8):67–80, 1984  ]3[Pullum L. L., "Software fault tolerance techniques and implementation": Artech House Publishers, 2001 ]4[Banki H., Babamir S., Farokh A., Morovati M., "Enhancing Efficiency of Software Fault Tolerance Techniques Satellite Motion System", Journal of Information Systems and Telecommunication, Vol. 2, September 2014. ]5[Xie Z., Sun H., Saluja K., "A Survey of Software Fault Tolerance Techniques", University of Wisconsin-Madison, 2007.