{'fraction_non_alphanumeric': 0.015827338129496403, 'fraction_numerical': 0.0, 'mean_word_length': 5.27027027027027, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Software Fault Tolerance by Design Diversity

This chapter reviews the use of software diversity, and especially multi-version programming, as a means of improving system reliability and safety. It considers the theoretical and experimental research undertaken in this eld together with some of the more pragmatic issues in implementing diversity. Some alternatives to multi-version programming are also considered. The author concludes that software diversity is a viable option for improving reliability, and the extra costs could well be justiable in an overall project context. However it is not the only option, and better results might be obtained by employing diversity at a higher level.