Formele methoden zijn wiskundige technieken die gebruikt worden in software engineering en hardware engineering om het gedrag van software, hardware en netwerksystemen nauwkeurig te definiëren. Het doel van formele methoden is om ervoor te zorgen dat software, hardware en netwerken op een gewenste, veilige manier samenwerken. Formele methoden gebruiken taalgebaseerde en mechanismegebaseerde technieken om consistentie, volledigheid en nauwkeurigheid op verschillende abstractieniveaus te controleren.
Formele methoden werden voor het eerst gebruikt in de jaren 1960 in de ruimtevaart, radiotechniek en besturingssystemen voor kernreactoren als een manier om de correctheid van de integratie van software en hardware systemen te garanderen. In de late jaren 1970 en 1980 werden formele methoden voor het eerst gebruikt in software engineering om te controleren op fouten in grote en complexe softwaresystemen.
Taalgebaseerde formele methoden gebruiken een formele taal om de specificatie van het software- en hardwaresysteem te beschrijven. Veel gebruikte formele talen voor formele methoden zijn TLA+, Z en NuSMV. De formele taal wordt gebruikt om de vereisten van een systeem en het gedrag van het systeem te specificeren. De taal moet nauwkeurig en ondubbelzinnig zijn en moet geverifieerd kunnen worden met het software- of hardwaresysteem.
Formele methoden op basis van mechanismen maken gebruik van formele methoden uit de wiskunde, zoals verzamelingenleer, procesalgebra's en modale logica. Deze benadering biedt een rigoureuze basis voor de analyse en verificatie van het gedrag van een software- en hardwaresysteem en wordt vaak toegepast in veiligheidskritische toepassingen in de lucht- en ruimtevaart, de auto-industrie, de spoorwegindustrie en medische apparatuur.
Formele methoden zijn ook gebruikt om veilige systemen te ontwikkelen, omdat ze gebruikt kunnen worden om te controleren of een systeem voldoet aan de beveiligingseisen. Door het gebruik van formele methoden is het mogelijk om bugs op te sporen, die ernstige gevolgen kunnen hebben als ze niet worden aangepakt voordat het systeem wordt vrijgegeven.
Formele methoden zijn een cruciaal onderdeel van software engineering, hardware engineering en cyberbeveiliging en worden gebruikt om de betrouwbaarheid van systemen en hun componenten te garanderen. Het gebruik van formele methoden verkort de ontwikkelingstijd van systemen door ervoor te zorgen dat het systeem correct wordt ontworpen en gebouwd.