Metode formal adalah teknik matematika yang digunakan dalam rekayasa perangkat lunak dan rekayasa perangkat keras untuk mendefinisikan secara tepat perilaku perangkat lunak, perangkat keras, dan sistem jaringan. Tujuan metode formal adalah untuk memastikan bahwa perangkat lunak, perangkat keras, dan jaringan berinteraksi dengan cara yang aman dan diinginkan. Metode formal menggunakan teknik berbasis bahasa dan mekanisme untuk memeriksa konsistensi, kelengkapan, dan akurasi dalam berbagai tingkat abstraksi.
Metode formal pertama kali digunakan pada tahun 1960an dalam bidang kedirgantaraan, teknik radio, dan sistem kendali reaktor nuklir sebagai cara untuk menjamin kebenaran integrasi sistem perangkat lunak dan perangkat keras. Pada akhir tahun 1970an dan 1980an metode formal mulai digunakan dalam bidang rekayasa perangkat lunak untuk memeriksa bug dalam sistem perangkat lunak yang besar dan kompleks.
Metode formal berbasis bahasa menggunakan bahasa formal untuk menggambarkan spesifikasi sistem perangkat lunak dan perangkat keras. Bahasa formal umum yang digunakan untuk metode formal termasuk TLA+, Z, dan NuSMV. Bahasa formal digunakan untuk menentukan persyaratan sistem dan perilaku sistem. Ini harus tepat dan tidak ambigu, dan harus diverifikasi terhadap sistem perangkat lunak atau perangkat keras.
Metode formal berbasis mekanisme menggunakan metode matematika formal, seperti teori himpunan, aljabar proses, dan logika modal. Pendekatan ini memberikan landasan yang kuat untuk analisis dan verifikasi perilaku sistem perangkat lunak dan perangkat keras dan sering diterapkan dalam aplikasi yang kritis terhadap keselamatan di industri Dirgantara, Otomotif, Kereta Api, dan perangkat Medis.
Metode formal juga telah digunakan untuk mengembangkan sistem yang aman, karena metode tersebut dapat digunakan untuk memverifikasi bahwa suatu sistem memenuhi persyaratan keamanan. Melalui penggunaan metode formal, bug dapat dideteksi, yang dapat menimbulkan konsekuensi serius jika tidak diatasi sebelum sistem dirilis.
Metode formal adalah bagian penting dari rekayasa perangkat lunak, rekayasa perangkat keras, dan keamanan siber, dan digunakan untuk memastikan keandalan sistem dan komponennya. Penggunaan metode formal mengurangi waktu pengembangan sistem dengan memastikan bahwa sistem dirancang dan dibangun dengan benar.