Skip to main content

Formal Methods

  • Chapter
  • First Online:
Guide to Discrete Mathematics

Part of the book series: Texts in Computer Science ((TCS))

  • 188k Accesses

Abstract

This chapter discusses formal methods, which consist of a set of mathematic techniques that provide an extra level of confidence in the correctness of the software. They consist of a formal specification language, and employ a collection of tools to support the syntax checking of the specification, as well as the proof of properties of the specification. They allow questions to be asked about what the system does independently of the implementation, and they may be employed to formally state the requirements of the proposed system, and to derive a program from its mathematical specification. They may be employed to provide a rigorous proof that the implemented program satisfies its specification, and they have been applied mainly to the safety critical field.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 44.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 59.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

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    It is debatable whether step-wise refinement is cost effective in mainstream software engineering, as it involves re-writing a specification ad nauseam. It is time-consuming, as significant time is required to prove that each refinement step is valid.

  2. 2.

    We mentioned the serious problems with the Therac-25 radiotherapy machine in Chap. 17.

  3. 3.

    A comprehensive disclaimer of responsibility for problems (rather than a guarantee of quality) accompany most software products, and so the legal aspects of licensing software may protect software companies from litigation. However, greater legal protection for the customer can be built into the contract between the supplier and the customer for bespoke-software development.

  4. 4.

    The U.K. Defence Standards 0055 and 0056 have been revised in recent years to be less prescriptive on the use of formal methods.

  5. 5.

    However, the resulting software was never actually deployed on the A-7 aircraft.

  6. 6.

    This was an impressive use of mathematical techniques and it has been acknowledged that formal methods must play an important role in future developments at Darlington. However, given the time and cost involved in the software inspection of the shutdown software some managers have less enthusiasm in shifting from hardware to software controllers [7].

  7. 7.

    The IFAD Toolbox has been renamed to VDMTools as IFAD sold the VDM Tools to CSK in Japan.

  8. 8.

    Many existing theorem provers are difficult to use and are for specialist use only. There is a need to improve their usability.

  9. 9.

    This verification was controversial with RSRE and Charter overselling VIPER as a chip design that conforms to its formal specification.

  10. 10.

    This position is controversial with others arguing that if correctness is defined mathematically then the mathematical definition (i.e. formal specification) is a theorem, and the task is to prove that the program satisfies the theorem. They argue that the proofs for non-trivial programs exist, and that the reason why there are not many examples of such proofs is due to a lack of mathematical specifications.

  11. 11.

    The VDM Tools are now available from the CSK Group in Japan.

  12. 12.

    The domain in which the software is being used will influence the willingness or otherwise of the customers to become familiar with the mathematics required. There is very little interest from customers in mainstream software engineering, and the perception is that formal methods are difficult to use. However, in some domains such as the regulated sector there is a greater willingness of customers to become familiar with the mathematical notation.

  13. 13.

    The author?s experience is that most customers have a very limited interest in using mathematics.

  14. 14.

    Mathematics that is potentially useful to software engineers was discussed in Chap. 17.

References

  1. The Z Notation. A Reference Manual. J.M. Spivey. Prentice Hall. International Series in Computer Science. 1992.

    Google Scholar 

  2. Rational for the development of the U.K. Defence Standards for Safety Critical software. M.J.D Brown. Compass Conference. 1990.

    Google Scholar 

  3. Applications of Formal Methods. Edited by Michael Hinchey and Jonathan Bowen. Prentice Hall International Series in Computer Science. 1995.

    Google Scholar 

  4. 00-55 (Part 1)/ Issue 1. The Procurement of Safety Critical Software in Defence Equipment. Part 1: Requirements. Ministry of Defence. Interim Defence Standard. UK. 1991.

    Google Scholar 

  5. 00-55 (Part 2)/ Issue 1. The Procurement of Safety Critical Software in Defence Equipment. Part 2: Guidance. Ministry of Defence. Interim Defence Standard. UK. 1991.

    Google Scholar 

  6. The Evolution of Def Stan 00-55 and 00-56. An intensification of the formal methods debate in the UK. Margaret Tierney. Research Centre for Social Sciences. University of Edinburgh. 1991.

    Google Scholar 

  7. Experience with Formal Methods in Critical Systems. Susan Gerhart, Dan Craighen and Ted Ralston. IEEE Software. January 1994.

    Google Scholar 

  8. The Structure of Scientific Revolutions. Thomas Kuhn. University of Chicago Press. 1970.

    Google Scholar 

  9. Mathematical Approaches to Software Quality. Gerard O? Regan.Springer. 2006.

    Google Scholar 

  10. The Vienna Development Method. The Meta language. Dines Bjørner and Cliff Jones. Lecture Notes in Computer Science (61). Springer Verlag. 1978.

    Google Scholar 

  11. Formal Specification and Software Development. Dines Bjørner and Cliff Jones. Prentice Hall International Series in Computer Science. 1982.

    Google Scholar 

  12. Computation Models and Computing. PhD Thesis. Mícheál Mac An Airchinnigh. Dept. of Computer Science. Trinity College Dublin.

    Google Scholar 

  13. How to Solve It. A New Aspect of Mathematical Method. Georges Polya. Princeton University Press. 1957.

    Google Scholar 

  14. Proof and Refutations. The Logic of Mathematical Discovery. Imre Lakatos. Cambridge University Press. 1976.

    Google Scholar 

  15. MSc. Thesis. Eoin McDonnell. Dept. of Computer Science. Trinity College Dublin. 1994.

    Google Scholar 

  16. The Science of Programming. David Gries. Springer Verlag. Berlin. 1981.

    Google Scholar 

  17. A Disciple of Programming. E.W. Dijkstra. Prentice Hall. 1976.

    Google Scholar 

  18. Communicating Sequential Processes. C.A.R. Hoare. Prentice Hall International Series in Computer Science. 1985.

    Google Scholar 

  19. A Calculus of Mobile Processes. Part 1. Robin Milner et al. LFCS Report Series. ECS-LFCS-89-85. Department of Computer Science. University of Edinburgh.

    Google Scholar 

  20. A Personal View of Formal Methods. B.A. Wichmann. National Physical Laboratory. March 2000.

    Google Scholar 

  21. On the Criteria to be used in Decomposing Systems into Modules. David Parnas. Communications of the ACM, 15(12). 1972.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gerard O’Regan .

Rights and permissions

Reprints and permissions

Copyright information

© 2016 Springer International Publishing Switzerland

About this chapter

Cite this chapter

O’Regan, G. (2016). Formal Methods. In: Guide to Discrete Mathematics. Texts in Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-319-44561-8_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-44561-8_18

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-44560-1

  • Online ISBN: 978-3-319-44561-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics