How did software get so reliable without proof?

  • C. A. R. Hoare
Invited Lectures
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1051)


By surveying current software engineering practice, this paper reveals that the techniques employed to achieve reliability are little different from those which have proved effective in all other branches of modern engineering: rigorous management of procedures for design inspection and review; quality assurance based on a wide range of targeted tests; continuous evolution by removal of errors from products already in widespread use; and defensive programming, among other forms of deliberate over-engineering. Formal methods and proof play a small direct role in large scale programming; but they do provide a conceptual framework and basic understanding to promote the best of current practice, and point directions for future improvement.


Model Check Formal Method Legacy Code Proof Rule Mutual Exclusion Protocol 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • C. A. R. Hoare
    • 1
  1. 1.Oxford University Computing LaboratoryOxfordUK

Personalised recommendations