Što je formalna verifikacija?

Često se koristi u testiranju računalnih sklopova i softvera, formalna verifikacija je kada se funkcija ovih sustava analizira korištenjem matematičkih formula. U slučaju razvoja softvera, proces se obično koristi da pokaže radi li program ispravno, na temelju unaprijed određenog modela. Ponekad se pokaže da je teorijski model nezadovoljavajući. Osim izvornog koda softvera, formalna verifikacija se može koristiti u razvoju kombinacijskih sklopova koji se koriste za izvođenje proračuna u računalima, kao i memorije računala. Različiti pristupi uključuju naknadnu provjeru, paralelnu provjeru i integriranu provjeru uz razne metode.

Matematički postupci za izračune, nazvani algoritmi, koriste se u formalnoj verifikaciji za testiranje funkcija proizvoda u svakoj fazi razvoja. Programeri softvera mogu pronaći pogreške ili bugove i u izvornom kodu i u modelu koji se koristi za njegovu izgradnju. Ponekad se temeljne promjene u načinu na koji se kod piše mogu napraviti prije nego što greška u dizajnu utječe na krajnji rezultat. Korak provjere općenito pomaže utvrditi radi li proizvod ono što je namijenjeno i zadovoljava li specifikacije aplikacije za koju je namijenjen.

Formalna provjera može se dogoditi kada je proizvod dovršen, što se zove naknadna provjera. Standardna metoda, koja se koristi tijekom procesa dizajna i razvoja, ne analizira se sve dok sustav nije gotov. Lociranje ozbiljnih pogrešaka u ovoj fazi često dovodi do skupih i dugotrajnih revizija. Razvoj i provjeru također mogu provoditi dva odvojena tima za verifikaciju paralelno. Kroz međusobnu komunikaciju, programeri se mogu usredotočiti na nezavisne zadatke tijekom cijelog procesa dizajna.

Integrirana verifikacija je kada jedan tim obavlja razvoj i potrebnu procjenu. Složeni matematički koncepti često se koriste za provjeru sposobnosti proizvoda na putu. Metode formalne provjere razlikuju se među projektima, ali jedna se često koristi je provjera modela. Hardverski ili softverski model sastoji se od raznih svojstava koja dizajneri žele u gotovom proizvodu. Model i sustav mogu se povremeno provjeravati kako bi se vidjelo podudaraju li se svojstva.

Druga tehnika u formalnoj verifikaciji uključuje korištenje matematičkih formula i logike za predstavljanje sustava i njegovih svojstava. Pravila definirana u formalnom sustavu općenito se nalaze u logici. Obje ove tehnike koriste različite načine kako bi utvrdile je li određena specifikacija proizvoda zadovoljena. Programeri mogu koristiti različite vrste softvera u formalnom procesu provjere, a svaki je prilagođen određenom sustavu ili programskom jeziku.