Skip to main content

The Effectiveness of Choice of Programming Language as a Diversity Seeking Decision

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3463))

Abstract

Software reliability can be increased by using a diverse pair of programs (1-out-of-2 system), both written to the same specification. The improvement of the reliability of the pair versus the reliability of a single version depends on the degree of diversity of the programs. The choice of programming language has been suggested as an example of a diversity seeking decision. However, little is known about the validity of this recommendation. This paper assesses the effect of language on program diversity.

We compare the effects of the choice of programming language as a diversity seeking decision by using programs written to three different specifications in the “UVa Online Judge”. Thousands of programs have been written to these specifications; this makes it possible to provide statistical evidence.

The experiment shows that when the average probability of failure on demand (pfd) of the programs is high, the programs fail almost independently, and the choice of programming language does not make any difference. When the average pfd of the pools gets lower, the programs start to fail dependently, and the pfd of the pairs deviates more and more from the product of the pfds of the individual programs. Also, we observe that the diverse C/Pascal or C++/Pascal pairs perform as good as or better than the other possible pairs.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Brilliant, S.S., Knight, J.C., Leveson, N.G.: Analysis of Faults in an N-Version Software Experiment. IEEE Transactions on Software Engineering SE-16(2), 238–247 (1990)

    Article  Google Scholar 

  2. Voges, U.: Software diversity. Reliability Engineering and System Safety 43(2), 103–110 (1994)

    Article  Google Scholar 

  3. Eckhardt, D.E., Lee, L.D.: A Theoretical Basis for the Analysis of Multi-Version Software Subject to Coincident Errors. IEEE Transactions on Software Engineering SE-11(12), 1511–1517 (1985)

    Article  Google Scholar 

  4. Eckhardt, D.E., Caglayan, A.K., Knight, J.C., Lee, L.D., McAllister, D.F., Vouk, M.A., Kelly, J.P.J.: An Experimental Evaluation of Software Redundancy as a Strategy for Improving Reliability. IEEE Transaction on Software Engineering 17(7) (July 1991)

    Google Scholar 

  5. Knight, J.C., Leveson, N.G.: An Experimental Evaluation of the Assumption of Independence in Multiversion Programming. IEEE Transaction on Software Engineering SE-12(1), 96–109 (1986)

    Google Scholar 

  6. Hatton, L.: N-Version Design Versus One Good Version. IEEE Software 14, 71–76 (1997)

    Article  Google Scholar 

  7. Littlewood, B., Miller, D.R.: Conceptual Modelling of Coincident Failures in Multiversion Software. IEEE Transactions on Software Engineering 15(2), 1596–1614 (1989)

    Article  MathSciNet  Google Scholar 

  8. Lyu, M.R.: Software Reliability Eningeering. McGraw Hill, New York (1995)

    Google Scholar 

  9. Popov, P., Strigini, L., Romanovsky, A.: Choosing Effective Methods for Design Diversity - How to Progress from Intuition to Science. In: Felici, M., Kanoun, K., Pasquini, A. (eds.) SAFECOMP 1999. LNCS, vol. 1698, p. 272. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  10. Skiena, S., Revilla, M.: Programming Challenges. Springer, Heidelberg (2003)

    MATH  Google Scholar 

  11. Lee, P.A., Anderson, T.: Fault Tolerance; Principles and Practice. In: Dependable Computing and Fault-Tolerant Systems, 2nd edn., vol. 3, Revised Edition (1981)

    Google Scholar 

  12. Chen, L., Avizienis, A.: N-Version Programming: A Fault Tolerance Approach to Reliability of Software Operation. In: Digest of 8th Annual International Symposium on Fault Tolerant Computing, Toulouse, France, pp. 3–9 (June 1978)

    Google Scholar 

  13. IEC, IEC61508: Functional Safety of E/E/PE safety-related systems, Geneva, 2001-2

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

van der Meulen, M.J.P., Revilla, M. (2005). The Effectiveness of Choice of Programming Language as a Diversity Seeking Decision. In: Dal Cin, M., Kaâniche, M., Pataricza, A. (eds) Dependable Computing - EDCC 5. EDCC 2005. Lecture Notes in Computer Science, vol 3463. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11408901_14

Download citation

  • DOI: https://doi.org/10.1007/11408901_14

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-25723-3

  • Online ISBN: 978-3-540-32019-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics