Abstract
The theory developed by Eckhardt and Lee (and later extended by Littlewood and Miller) utilises the concept of a “difficulty function” to estimate the expected gain in reliability of fault tolerant architectures based on diverse programs. The “difficulty function” is the likelihood that a randomly chosen program will fail for any given input value. To date this has been an abstract concept that explains why dependent failures are likely to occur. This paper presents an empirical measurement of the difficulty function based on an analysis of over six thousand program versions implemented to a common specification. The study derived a “score function” for each version. It was found that several different program versions produced identical score functions, which when analysed, were usually found to be due to common programming faults. The score functions of the individual versions were combined to derive an approximation of the difficulty function. For this particular (relatively simple) problem specification, it was shown that the difficulty function derived from the program versions was fairly flat, and the reliability gain from using multi-version programs would be close to that expected from the independence assumption.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Avizienis, A., Chen, L.: On the Implementation of N-version Programming for Software Fault Tolerance during Execution. In: Proc. the First IEEE-CS International Computer Software and Applications Conference (COMPSAC 1977), Chicago (November 1977)
Avizienis, A., Kelly, J.P.J.: Fault Tolerance by Design Diversity: Concepts and Experiments. Computer 17(8) (August 1984)
Avizienis, A.: Software Fault Tolerance. In: Titter, G.X. (ed.) Information Processing, pp. 491–498. Elsevier Science Publishers, Holland (1989)
Bishop, P.G., Barnes, M., et al.: PODS a Project on Diverse Software. IEEE Trans. Software Engineering SE-12(9), 929–940 (1986)
Eckhardt, D.E., Lee, L.D.: A theoretical basis for the analysis of multiversion software subject to coincident errors. IEEE Transactions on Software Engineering SE-11(12), 1511–1517 (1985)
Knight, J.C., Leveson, N.G.: An Experimental Evaluation of the Assumption of Independence in Multi-Version Programming. IEEE Transactions on Software Engineering SE-12(1), 96–109 (1986)
Littlewood, B., Miller, D.R.: Conceptual Modelling of Coincident Failures in Multiversion Software. IEEE Transactions on Software Engineering 15(2), 1596–1614 (1989)
Littlewood, B., Popov, P., Strigini, L.: Modelling software design diversity - a review. ACM Computing Surveys 33(2), 177–208 (2001)
Skiena, S., Revilla, M.: Programming Challenges. Springer, Heidelberg (2003) ISBN: 0387001638, http://acm.uva.es/problemset/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bentley, J.G.W., Bishop, P.G., van der Meulen, M. (2004). An Empirical Exploration of the Difficulty Function. In: Heisel, M., Liggesmeyer, P., Wittmann, S. (eds) Computer Safety, Reliability, and Security. SAFECOMP 2004. Lecture Notes in Computer Science, vol 3219. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30138-7_6
Download citation
DOI: https://doi.org/10.1007/978-3-540-30138-7_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-23176-9
Online ISBN: 978-3-540-30138-7
eBook Packages: Springer Book Archive