Hva er formell bekreftelse?
Ofte brukt i testing av datakretsløp og programvare, er formell bekreftelse når funksjonen til disse systemene analyseres ved hjelp av matematiske formler. Ved utvikling av programvare brukes prosessen vanligvis for å vise om programmet fungerer som det skal, basert på en forhåndsbestemt modell. Noen ganger er den teoretiske modellen bevist å være utilfredsstillende. I tillegg til kildekoden for programvare, kan formell verifisering brukes til å utvikle kombinasjonskretser, som brukes til å utføre beregninger i datamaskiner, så vel som dataminne. De forskjellige tilnærmingene inkluderer etterkontroll, verifisering parallelt og integrert verifisering i tillegg til forskjellige metoder.
Matematiske prosedyrer for beregninger, kalt algoritmer, brukes i formell verifisering for å teste funksjonene til produktene i hvert utviklingstrinn. Programvareutviklere kan finne feil eller feil i både kildekoden og modellen som ble brukt for å bygge den i utgangspunktet. Noen ganger kan det gjøres grunnleggende endringer i hvordan koden skrives før en designfeil påvirker sluttresultatet. Bekreftelsestrinnet hjelper generelt å bestemme om produktet gjør det som var ment å gjøre, og oppfyller spesifikasjonene for applikasjonen det er til.
Formell bekreftelse kan skje når et produkt er fullført, som kalles etterkontroll. En standardmetode, brukt i hele prosjekterings- og utviklingsprosessen, blir ikke analysert før systemet er ferdig. Å finne alvorlige feil på dette stadiet fører ofte til dyre og tidkrevende revisjoner. Utvikling og verifisering kan også utføres av to separate team for verifisering parallelt. Gjennom interkommunikasjon kan utviklerne fokusere på uavhengige oppgaver under hele designprosessen.
Integrert verifisering er når ett team utfører utviklingen og den nødvendige vurderingen. Komplekse matematiske konsepter blir ofte brukt for å verifisere produktets evner underveis. Metoder for formell verifisering varierer mellom prosjekter, men en ofte brukt er modellkontroll. En maskinvare- eller programvaremodell består av forskjellige egenskaper som designere ønsker i det ferdige produktet. Modellen og systemet kan kontrolleres med jevne mellomrom for å se om egenskapene stemmer overens.
En annen teknikk i formell verifisering innebærer å bruke matematiske formler og logikk for å representere et system og dets egenskaper. Regler definert i et formelt system finnes vanligvis i logikken. Begge disse teknikkene bruker forskjellige måter for å bestemme om en spesiell spesifikasjon av et produkt er oppfylt. Utviklere kan bruke forskjellige typer programvare i den formelle bekreftelsesprosessen, hver skreddersydd til et bestemt system eller programmeringsspråk.