Hvad er formel verifikation?
Ofte brugt til testning af computerkredsløb og software, er formel verifikation, når funktionen af disse systemer analyseres ved hjælp af matematiske formler. I tilfælde af udvikling af software bruges processen typisk til at vise, om programmet fungerer korrekt, baseret på en forudbestemt model. Undertiden er den teoretiske model vist sig at være utilfredsstillende. Foruden software-kildekoden kan formel verifikation bruges til at udvikle kombinationskredsløb, der bruges til at udføre beregninger i computere såvel som computerhukommelse. De forskellige tilgange inkluderer efterfølgende verifikation, parallel verifikation og integreret verifikation ud over forskellige metoder.
Matematiske procedurer til beregninger, kaldet algoritmer, bruges i formel verifikation til at teste produkters funktioner på hvert udviklingsstadium. Softwareudviklere kan finde fejl eller fejl i både kildekoden og modellen, der bruges til at opbygge den i første omgang. Nogle gange kan der foretages grundlæggende ændringer i, hvordan koden skrives, før en designfejl påvirker slutresultatet. Bekræftelsestrinnet hjælper generelt med at bestemme, om produktet gør det, der var beregnet til at gøre, og opfylder specifikationerne for den applikation, det er til.
Formel verifikation kan forekomme, når et produkt er færdig, hvilket kaldes den faktiske verifikation. En standardmetode, der bruges i hele design- og udviklingsprocessen, analyseres ikke, før systemet er færdigt. At finde alvorlige fejl på dette trin fører ofte til dyre og tidskrævende revisioner. Udvikling og verifikation kan også udføres af to separate teams til verifikation parallelt. Gennem interkommunikation kan udviklerne fokusere på uafhængige opgaver under hele designprocessen.
Integreret verifikation er, når et team udfører udviklingen og den krævede vurdering. Komplekse matematiske begreber bruges ofte til at verificere produktets muligheder undervejs. Metoder til formel verifikation varierer mellem projekter, men en ofte anvendt modelkontrol. En hardware- eller softwaremodel består af forskellige egenskaber, som designere ønsker i det færdige produkt. Modellen og systemet kan periodisk kontrolleres for at se, om egenskaber stemmer overens.
En anden teknik i formel verifikation involverer anvendelse af matematiske formler og logik til at repræsentere et system og dets egenskaber. Regler defineret i et formelt system findes generelt i logikken. Begge disse teknikker bruger forskellige midler til at bestemme, om en bestemt specifikation af et produkt er opfyldt. Udviklere kan bruge forskellige typer software i den formelle verificeringsproces, som hver er skræddersyet til et specifikt system eller programmeringssprog.