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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 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.
However, the resulting software was never actually deployed on the A-7 aircraft.
- 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.
The source code for the B-Toolkit is now available.
- 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.
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.
This verification was controversial with RSRE and Charter overselling VIPER as a chip design that conforms to its formal specification.
- 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.
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.
The VDM Tools are now available from the CSK Group in Japan.
- 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
Spivey JM (1992) The Z notation. A reference manual. Prentice Hall International Series in Computer Science
Brown (1990) Rational for the development of the U.K. defence standards for safety critical software. Compass Conference
Hinchey M, Bowen J (eds) (1995) Applications of formal methods. Prentice Hall International Series in Computer Science
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
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
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
Gerhart S, Craigen D, Ralston T. (1994). Experience with formal methods in critical systems. IEEE Softw
Woodcock J, Larsen PG, Bicarregui J, Fitzgerald J (2009) Formal methods: practice and experience. ACM Comput Surv
Kuhn T (1970) The structure of scientific revolutions. University of Chicago Press
Bjørner D, Jones C (1978) The vienna development method. The meta language. In: Lecture notes in computer science, vol 61. Springer
Bjørner D, Jones C (1982) Formal specification and software development. Prentice Hall International Series in Computer Science
O’Regan G (2017) Concise guide to formal methods. Springer
Mac An Airchinnigh M (1990) Computation models and computing. PhD Thesis. Department of Computer Science. Trinity College Dublin
Polya G (1957) How to solve it. A new aspect of mathematical method. Princeton University Press
Lakatos I (1976) Proof and refutations. The logic of mathematical discovery. Cambridge University Press
McDonnell E (1994) MSc. Thesis. Department of Computer Science. Trinity College Dublin
Hoare JP (1995) Application of the B method to CICS. Appl Formal Methods. Prentice Hall International Series in Computer Science
Gries D (1981) The science of programming. Springer, Berlin
O’Regan G (2006) Mathematical approaches to software quality. Springer
Hoare CAR (1985) Communicating sequential processes. Prentice Hall International Series in Computer Science
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
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
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)