Skip to main content

Overview of Formal Methods

  • Chapter
  • First Online:
Mathematical Foundations of Software Engineering

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

  • 1037 Accesses

Abstract

Chapter 16 discusses formal methods, which consist of a set of mathematical techniques to rigorously specify the requirements of a software system, and a formal approach allows software to be produced that formally satisfies its specification. Formal methods may be employed to rigorously state the requirements of the proposed system; they may be employed to derive a program from its mathematical specification; and they may provide a rigorous proof that the implemented program satisfies its specification. 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

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 64.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Free shipping worldwide - see info
Hardcover Book
USD 99.99
Price excludes VAT (USA)
  • Durable hardcover 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

Notes

  1. 1.

    It is questionable whether stepwise refinement is cost effective in mainstream software engineering, as it involves rewriting a specification ad nauseum. It is time-consuming to proceed in refinement steps with significant time also required to prove that the refinement step is valid. It is more relevant to the safety critical field. Others in the formal methods field may disagree with this position.

  2. 2.

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

  3. 3.

    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].

  4. 4.

    The source code for the B-Toolkit is now available.

  5. 5.

    The IFAD Toolbox has been renamed to VDMTools as IFAD sold the VDM Tools to CSK in Japan. The CSK VDM tools are available for worldwide use.

  6. 6.

    Most existing theorem provers are difficult to use and are for specialist use only. There is a need to improve the usability of theorem provers.

  7. 7.

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

  8. 8.

    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 nontrivial programs exist and that the reason why there are not many examples of such proofs is due to a lack of mathematical specifications.

  9. 9.

    The IBM research laboratory was set up by Dr. Heinz Zamenek, and its members included Peter Lucas, Cliff Jones, Dines Bjørner, and others.

  10. 10.

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

  11. 11.

    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 appears to be little interest in mainstream software engineering, and their perception is that formal methods are unusable. However, there is a greater interest in the mathematical approach in the safety critical field.

References

  1. Spivey JM (1992) The Z notation. A reference manual. Prentice Hall International Series in Computer Science

    Google Scholar 

  2. Brown (1990) Rational for the development of the U.K. defence standards for safety critical software. Compass Conference

    Google Scholar 

  3. Hinchey M, Bowen J (eds) (1995) Applications of formal methods. Prentice Hall International Series in Computer Science

    Google Scholar 

  4. Ministry of Defence (1991) 00-55 (Part 1)/Issue 1 The procurement of safety critical software in defence equipment. Part 1: requirements. Interim Defence Standard. UK

    Google Scholar 

  5. Ministry of Defence (1991) 00-55 (Part 2)/Issue 1 The procurement of safety critical software in defence equipment. Part 2: guidance. Interim Defence Standard. UK

    Google Scholar 

  6. Tierney M (1991) The evolution of Def Stan 00-55 and 00-56. In: An intensification of the formal methods debate in the UK. Research Centre for Social Sciences. University of Edinburgh

    Google Scholar 

  7. Gerhart S, Craigen D, Ralston T. (1994). Experience with formal methods in critical systems. IEEE Softw

    Google Scholar 

  8. Woodcock J, Larsen PG, Bicarregui J, Fitzgerald J (2009) Formal methods: practice and experience. ACM Comput Surv

    Google Scholar 

  9. Kuhn T (1970) The structure of scientific revolutions. University of Chicago Press

    Google Scholar 

  10. Bjørner D, Jones C (1978) The vienna development method. The meta language. In: Lecture notes in computer science, vol 61. Springer

    Google Scholar 

  11. Bjørner D, Jones C (1982) Formal specification and software development. Prentice Hall International Series in Computer Science

    Google Scholar 

  12. O’Regan G (2017) Concise guide to formal methods. Springer

    Google Scholar 

  13. Mac An Airchinnigh M (1990) Computation models and computing. PhD Thesis. Department of Computer Science. Trinity College Dublin

    Google Scholar 

  14. Polya G (1957) How to solve it. A new aspect of mathematical method. Princeton University Press

    Google Scholar 

  15. Lakatos I (1976) Proof and refutations. The logic of mathematical discovery. Cambridge University Press

    Google Scholar 

  16. McDonnell E (1994) MSc. Thesis. Department of Computer Science. Trinity College Dublin

    Google Scholar 

  17. Hoare JP (1995) Application of the B method to CICS. Appl Formal Methods. Prentice Hall International Series in Computer Science

    Google Scholar 

  18. Gries D (1981) The science of programming. Springer, Berlin

    Google Scholar 

  19. O’Regan G (2006) Mathematical approaches to software quality. Springer

    Google Scholar 

  20. Hoare CAR (1985) Communicating sequential processes. Prentice Hall International Series in Computer Science

    Google Scholar 

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

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

O’Regan, G. (2023). Overview of Formal Methods. In: Mathematical Foundations of Software Engineering. Texts in Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-031-26212-8_16

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-26212-8_16

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-26211-1

  • Online ISBN: 978-3-031-26212-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics