Software development based on formal methods

  • C. B. Jones
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 275)


Formal methods employ mathematical notation to record specifications and use mathematical reasoning to justify designs with respect to such specifications. One avenue of formal methods research is known as the Vienna Development Method. VDM has been used on programming language and non-language applications. In this paper, programming languages and their compilers are ignored; the focus is on the specification and verification of programs. The discussion focusses on the approach to specification and the reliance on proof obligations in design steps of data reification and operation decomposition.


Programming Language Data Type Logical Expression Proof Obligation Proof Rule 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    “A Logic Covering Undefinedness in Program Proofs”, H. Barringer, J.H. Cheng and C.B. Jones, Acta Informatica, Vol. 21, No. 3, pp251–269, 1984.CrossRefGoogle Scholar
  2. [2]
    “Now You May Compose Temporal Logic Specifications”, H. Barringer, R. Kuiper and A. Pnueli, Proceedings of the 16th ACM Symposium on the Theory of Computing, Washington DC, 1984.Google Scholar
  3. [3]
    “Algorithmic Language and Program Development”, F.L. Bauer and H. Wössner, Springer-Verlag, 1982.Google Scholar
  4. [4]
    “Formal Specification and Software Development”, D. Bjørner and C.B. Jones, Prentice-Hall International, 1982.Google Scholar
  5. [5]
    “A Verification Condition Generator for FORTRAN”, R.S. Boyer and J. Strother Moore, pp9–101 in “The Correctness Problem in Computer Science”, (eds.) R.S. Boyer and J. Strother Moore, Academic Press, 1981.Google Scholar
  6. [6]
    “Partial Interpretations of Higher Order Algebraic Types”, M. Broy, to be published in the Proceedings of the 1986 Marktoberdorf Summer School, “Logic of Programming and Calculi of Discrete Design”, (ed.) M. Broy, Springer-Verlag.Google Scholar
  7. [7]
    “On the Usability of Logics which Handle Partial Functions”, J.H. Cheng and C.B. Jones, forthcoming.Google Scholar
  8. [8]
    “The Munich Project CIP — Volume 1: The Wide Spectrum Language CIP-L”, CIP Language Group, Springer-Verlag, Lecture Notes in Computer Science, Vol. 183, 1985.Google Scholar
  9. [9]
    “Implementing Mathematics with the Nuprl Proof Development System”, R.L. Constable, et al., Prentice-Hall, 1986.Google Scholar
  10. [10]
    “A Technical Review of Four Verification Systems: Gypsy, Affirm, FDM and Revised Special”, D. Craigen, August 1985.Google Scholar
  11. [11]
    “Fundamentals of Algebraic Specification 1: Equations and Initial Semantics”, H. Ehrig and B. Mahr, in “EATCS Monographs on Theoretical Computer Science”, Springer-Verlag, 1985.Google Scholar
  12. [12]
    “Abstract Errors for Abstract Data Types”, J.A. Goguen, in: “Formal Descriptions of Programming Concepts”, (ed.) E.J. Neuhold, North-Holland, 1978.Google Scholar
  13. [13]
    “Data Refinement Refined: Resume”, J. He, C.A.R. Hoare and J.W. Sanders, ESOP '86, (eds.) B. Robinet and R. Wilhelm, Vol. 213, Springer-Verlag, Lecture Notes in Computer Science, 1986.Google Scholar
  14. [14]
    “The Logic of Programming”, E.C.R. Hehner, Prentice-Hall International, 1984.Google Scholar
  15. [15]
    “An Axiomatic Basis for Computer Programming”, C.A.R. Hoare, CACM Vol.12, No.10, pp576–580, October 1969.Google Scholar
  16. [16]
    “Laws of Programming: A Tutorial Paper”, C.A.R. Hoare, He Jifeng, I.J. Hayes, C.C. Morgan, J.W. Sanders, I.H. Sørensen, J.M. Spivey, B.A. Sufrin and A.W. Roscoe, Oxford University Technical Monograph PRG-45, May 1985.Google Scholar
  17. [17]
    “Implementation Bias in Constructive Specifications of Abstract Objects”, C.B. Jones, 1977.Google Scholar
  18. [18]
    “Software Development: A Rigorous Approach”, C.B. Jones, Prentice-Hall International, 1980.Google Scholar
  19. [19]
    “Development Methods for Computer Programs including a Notion of Interference”, C.B. Jones, Oxford University Technical Monograph, PRG-25, June 1981.Google Scholar
  20. [20]
    “Specification and Design of (Parallel) Programs”, C.B. Jones, Proceedings of IFIP '83, North-Holland Publishing Co., 1983.Google Scholar
  21. [21]
    “Systematic Program Development”, C.B. Jones, in “Mathematics and Computer Science”, (eds.) J.W. de Bakker, M. Hazewinkel and J.K. Lenstra, CWI Monographs, North Holland Publishers, pp19–50, 1986.Google Scholar
  22. [22]
    “Systematic Software Development using VDM”, C.B. Jones, Prentice-Hall International, 1986.Google Scholar
  23. [23]
    “Program Specification and Verification in VDM”, C.B. Jones, to be published in the Proceedings of the 1986 Marktoberdorf Summer School, “Logic of Programming and Calculi of Discrete Design”, (ed.) M. Broy, Springer-Verlag.Google Scholar
  24. [24]
    “An Introduction to Proving the Correctness of Programs”, S.L. Hantler and J.C. King, ACM Computing Surveys, Vol. 8, No. 3, pp331–353, September 1976.CrossRefGoogle Scholar
  25. [25]
    “Introduction to Metamathematics”, S.C. Kleene, North-Holland Publishing Co. Amsterdam, 1967.Google Scholar
  26. [26]
    “Sorting and Searching”, D.E. Knuth, in ‘The Art of Computer Programming', Vol. III, Addison-Wesley Publishing Company, 1975.Google Scholar
  27. [27]
    “Algebra”, (Second Edition), S. MacLane and G. Birkoff, Collier Macmillan International, 1979.Google Scholar
  28. [28]
    “Non-Deterministic Data Types: Models and Implementations”, T. Nipkow, Acta Informatica Vol. 22, pp629–661, 1986.CrossRefGoogle Scholar
  29. [29]
    “Expressing Program Design in a Design Calculus”, M. Sintzoff, to be published in the Proceedings of the 1986 Marktoberdorf Summer School, “Logic of Programming and Calculi of Discrete Design”, (ed.) M. Broy, Springer-Verlag.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • C. B. Jones
    • 1
  1. 1.Department of Computer ScienceUniversity of ManchesterUnited Kingdom

Personalised recommendations