Research results indicate that (as usual in software engineering) these question can only be answered with reference to each specific application context and that diversity is no "silver bullet". But diversity is an attractive option, made more interesting by current trends like the preference for COTS items, and it is important for practitioners to go beyond the summary opinions and misunderstanding that surround it.
This tutorial is designed for people involved in system design, acceptance or certification, especially in companies with high dependability requirements or plans to improve on current levels to move into more demanding markets. It is also appropriate for researchers in software engineering wishing to obtain an up-to-date view of knowledge in this area.
This tutorial describes: the motivations behind the use of software fault tolerance, and thus the circumstances in which it should be considered as a possible choice; what design schemesone may adopt, and which issues a designer needs to be aware of, for effective application. We present both examples of industrial use and explanations of the important design choices and trade-offs. In this part, we cover the widely published solutions of N-version programming and recovery blocks, but also describe the various options available to a designer, and interesting specific solutions adopted in the railway and aviation industry, and scheme for applications to safety systems. We discuss the factors that may decide the scheme to be adopted and the design of adjudication between conflicting results; "what one should really believe" about the effectiveness of software fault tolerance in improving reliability, beyond the controversy and the misunderstandings surrounding it. We give a picture, assembled from more than 10 years of research, of what evidence has really been produced for and against software diversity. We explain the weaknesses of the extreme opinions voiced for and against software fault tolerance, and discuss the criteria that should affect practical decisions about using it, about how to improve its effectiveness by appropriate decisions in developing alternate versions of software components, and about its value for system acceptance.
研究结果表明(通常在软件工程中),只能参考每个特定的应用程序上下文来回答这些问题,并且多样性不是“灵丹妙药”。但是多样性是一种有吸引力的选择,它受到当前趋势(例如对COTS项的偏爱)的影响而变得更加有趣,并且对于从业人员来说,超越其周围的即席观点和误解也很重要。 P>
本教程专为从事系统设计,验收或认证的人员而设计,尤其是对于那些具有较高可靠性要求或计划在当前水平上进行改进以进入更具挑战性的市场的公司。对于希望获得该领域最新知识的软件工程研究人员来说,它也很合适。 P>
本教程介绍: 使用软件容错的动机以及因此在何种情况下应将其视为可能的选择; P> ITEM> 为了有效应用,设计人员可能会采用什么设计方案,以及设计人员需要注意哪些问题。我们既提供了工业用途的示例,也提供了重要的设计选择和折衷方法的解释。在这一部分中,我们介绍了已广泛发布的N版本编程和恢复块解决方案,还介绍了设计人员可用的各种选项,铁路和航空业采用的有趣的特定解决方案以及应用于安全系统的方案。我们讨论了可能决定采用该方案的因素以及冲突结果之间的裁决设计; P> ITEM> P>
机译:拜占庭式故障下基于复制的具有容错和容错能力的封闭式多机计算机模型
机译:实现设计多样性以实现容错
机译:抽象容错:一种无需误差校正的模型理论方法用于容错和故障补偿
机译:通过针对设计故障的多样性实现容错:设计原则和可靠性评估
机译:会话启动协议中的容错能力。
机译:违约的危险:使用贝叶斯SEM与小样本时默认前锋的影响的教程
机译:设计多样性DEDIX的软件容错能力:用于实验的工具
机译:设计多样性软件容错DEDIX:实验工具