Software Fault Tolerance Techniques And Implementation

Software Fault Tolerance Techniques And Implementation

by Laura L. Pullum

Hardcover(New Edition)

Eligible for FREE SHIPPING
  • Get it by Wednesday, May 30 , Order now and choose Expedited Delivery during checkout.


Software Fault Tolerance Techniques And Implementation by Laura L. Pullum

A textbook for a graduate course in software engineering or software fault tolerance on techniques to protect against software design faults, and to tolerate the operational effects of these introduced imperfections. After introductory material, it describes design, data, and other techniques and decision mechanisms used with many of the techniques.

Annotation c. Book News, Inc., Portland, OR (

Product Details

ISBN-13: 9781580531375
Publisher: Artech House, Incorporated
Publication date: 09/30/2001
Series: Artech House Computer Security Series
Edition description: New Edition
Pages: 362
Product dimensions: 6.14(w) x 9.21(h) x 0.81(d)

Table of Contents

1.1A Few Definitions3
1.2Organization and Intended Use4
1.3Means to Achieve Dependable Software6
1.3.1Fault Avoidance or Prevention7
1.3.2Fault Removal9
1.3.3Fault/Failure Forecasting11
1.3.4Fault Tolerance12
1.4Types of Recovery13
1.4.1Backward Recovery14
1.4.2Forward Recovery16
1.5Types of Redundancy for Software Fault Tolerance18
1.5.1Software Redundancy18
1.5.2Information or Data Redundancy19
1.5.3Temporal Redundancy21
2Structuring Redundancy for Software Fault Tolerance25
2.1Robust Software27
2.2Design Diversity29
2.2.1Case Studies and Experiments in Design Diversity31
2.2.2Levels of Diversity and Fault Tolerance Application33
2.2.3Factors Influencing Diversity34
2.3Data Diversity35
2.3.1Overview of Data Re-expression37
2.3.2Output Types and Related Data Re-expression38
2.3.3Example Data Re-expression Algorithms40
2.4Temporal Diversity42
2.5Architectural Structure for Diverse Software44
2.6Structure for Development of Diverse Software44
2.6.1Xu and Randell Framework45
2.6.2Daniels, Kim, and Vouk Framework51
3Design Methods, Programming Techniques, and Issues59
3.1Problems and Issues59
3.1.1Similar Errors and a Lack of Diversity60
3.1.2Consistent Comparison Problem62
3.1.3Domino Effect68
3.2Programming Techniques76
3.2.3Atomic Actions84
3.3Dependable System Development Model and N-Version Software Paradigm88
3.3.1Design Considerations88
3.3.2Dependable System Development Model91
3.3.3Design Paradigm for N-Version Programming93
4Design Diverse Software Fault Tolerance Techniques105
4.1Recovery Blocks106
4.1.1Recovery Block Operation107
4.1.2Recovery Block Example113
4.1.3Recovery Block Issues and Discussion115
4.2N-Version Programming120
4.2.1N-Version Programming Operation121
4.2.2N-Version Programming Example125
4.2.3N-Version Programming Issues and Discussion127
4.3Distributed Recovery Blocks132
4.3.1Distributed Recovery Block Operation132
4.3.2Distributed Recovery Block Example137
4.3.3Distributed Recovery Block Issues and Discussion139
4.4N Self-Checking Programming144
4.4.1N Self-Checking Programming Operation144
4.4.2N Self-Checking Programming Example145
4.4.3N Self-Checking Programming Issues and Discussion149
4.5Consensus Recovery Block152
4.5.1Consensus Recovery Block Operation152
4.5.2Consensus Recovery Block Example155
4.5.3Consensus Recovery Block Issues and Discussion159
4.6Acceptance Voting162
4.6.1Acceptance Voting Operation162
4.6.2Acceptance Voting Example166
4.6.3Acceptance Voting Issues and Discussion169
4.7Technique Comparisons172
4.7.1N-Version Programming and Recovery Block Technique Comparisons176
4.7.2Recovery Block and Distributed Recovery Block Technique Comparisons180
4.7.3Consensus Recovery Block, Recovery Block Technique, and N-Version Programming Comparisons181
4.7.4Acceptance Voting, Consensus Recovery Block, Recovery Block Technique, and N-Version Programming Comparisons182
5Data Diverse Software Fault Tolerance Techniques191
5.1Retry Blocks192
5.1.1Retry Block Operation193
5.1.2Retry Block Example202
5.1.3Retry Block Issues and Discussion204
5.2N-Copy Programming207
5.2.1N-Copy Programming Operation208
5.2.2N-Copy Programming Example212
5.2.3N-Copy Programming Issues and Discussion214
5.3Two-Pass Adjudicators218
5.3.1Two-Pass Adjudicator Operation218
5.3.2Two-Pass Adjudicators and Multiple Correct Results223
5.3.3Two-Pass Adjudicator Example227
5.3.4Two-Pass Adjudicator Issues and Discussion229
6Other Software Fault Tolerance Techniques235
6.1N-Version Programming Variants235
6.1.1N-Version Programming with Tie-Breaker and Acceptance Test Operation236
6.1.2N-Version Programming with Tie-Breaker and Acceptance Test Example241
6.2Resourceful Systems244
6.3Data-Driven Dependability Assurance Scheme247
6.4Self-Configuring Optimal Programming253
6.4.1Self-Configuring Optimal Programming Operation253
6.4.2Self-Configuring Optimal Programming Example257
6.4.3Self-Configuring Optimal Programming Issues and Discussion260
6.5Other Techniques262
7Adjudicating the Results269
7.1.1Exact Majority Voter273
7.1.2Median Voter278
7.1.3Mean Voter282
7.1.4Consensus Voter289
7.1.5Comparison Tolerances and the Formal Majority Voter295
7.1.6Dynamic Majority and Consensus Voters303
7.1.7Summary of Voters Discussed309
7.1.8Other Voters311
7.2Acceptance Tests311
7.2.1Satisfaction of Requirements314
7.2.2Accounting Tests315
7.2.3Reasonableness Tests315
7.2.4Computer Run-Time Tests318
List of Acronyms325
About the Author329

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews