In ingegneria informatica e ingegneria del software, i metodi formali sono un insieme di tecniche matematicamente rigorose per la specifica, sviluppo e verifica di sistemi software e hardware.[1] L'impiego di metodi formali nella progettazione di software e hardware è motivato dall'assunzione che, come avviene in altre discipline ingegneristiche, lo svolgersi di una corretta analisi matematica contribuisca a rendere la progettazione più robusta e affidabile.[2]
I metodi formali sono solitamente descritti come l'applicazione di una gran varietà di fondamenti di informatica, in particolare il calcolo logico, i linguaggi formali, la teoria degli automi e la semantica dei programmi, a problemi di specifica e verifica di software e hardware.[3]
- Jonathan P. Bowen and Michael G. Hinchey, Formal Methods. In Allen B. Tucker, Jr. (ed.), Computer Science Handbook, 2nd edition, Section XI, Software Engineering, Chapter 106, pages 106-1 – 106-25, Chapman & Hall / CRC Press, Association for Computing Machinery, 2004.
- Hubert Garavel (editor) and Susanne Graf. https://www.bsi.bund.de/SharedDocs/DE/Publikationen/Studien/formal_methods_study_875/study_875.html[collegamento interrotto]. Bundesamt für Sicherheit in der Informationstechnik, BSI study 875, Bonn, Germany, December 2013.
- Hubert Garavel, Maurice H. ter Beek e Jaco van de Pol, The 2020 Expert Survey on Formal Methods (PDF), in Formal Methods for Industrial Critical Systems, Formal Methods for Industrial Critical Systems: 25 International Conference, FMICS 2020, Lecture Notes in Computer Science (LNCS), vol. 12327, Springer, 29 agosto 2020, pp. 3–69, DOI:10.1007/978-3-030-58298-2_1, ISBN 978-3-030-58297-5.
- Michael G. Hinchey, Jonathan P. Bowen, and Emil Vassev, Formal Methods. In Philip A. Laplante (ed.), Encyclopedia of Software Engineering, Taylor & Francis, 2010, pages 308–320.
- Marieke Huisman, Dilian Gurov e Alexander Malkis, Formal Methods: From Academia to Industrial Practice – A Travel Guide, 2020.
- Mario Gleirscher e Diego Marmsoler, Formal methods in dependable systems engineering: a survey of professionals from Europe and North America, in Empirical Software Engineering, vol. 25, n. 6, Springer Nature, 9 settembre 2020, pp. 4473–4546, DOI:10.1007/s10664-020-09836-5.
- Jean François Monin e Michael G. Hinchey, Understanding formal methods, Springer, 2003, ISBN 1-85233-247-6.