Difference between N-version programming and Recovery blocks Techniques
Software fault-tolerance techniques use two common techniques to achieve fault-tolerance.
1. N-version programming :
In N-version programming technique, there are N groups or individual of developers that do not share the programming process and these independents develop N versions of software module. The idea behind this technique is that different individual will commit different mistakes and will cover all possibilities of fault.
2. Recovery blocks :
In recovery block technique, different algorithms are used for different try blocks. Try blocks are basically the redundant components. Here the redundant copies are not run simultaneously. The result in each try is block is tested by acceptance test.
Difference between N-version Programming and Recovery Blocks Techniques:
|N-VERSION PROGRAMMING||RECOVERY BLOCKS|
|N-versions of software are developed by n independent team.||Redundant copies are developed using different algorithms.|
|Redundant copies are run concurrently.||Redundant copies are run one by one.|
|Acceptance test is not performed.||Acceptance test is performed.|
|It can be applied top critical systems.||It can’t be applied to critical systems.|
|It is possible to achieve same fault for different version.||Same fault can’t be achieved by redundant copies.|
|It has statistical correlation of failure.||It is used only if task deadline is more than task computation time.|
|It can be used with task having more or less laxity.||It is used with tasks having more laxity.|