Product Design, Manufacturing & Innovation Resources
Casa » Verifica formale

Verifica formale

1980
  • Edmund M. Clarke
  • E. Allen Emerson
  • Joseph Sifakis
Ingegnere informatico che esamina un modello di verifica formale in ufficio.

(Immagine generata a solo scopo illustrativo)

Formale verifica La verifica formale è l'utilizzo di metodi matematici per dimostrare o confutare la correttezza della progettazione di un sistema rispetto a una specifica formale. A differenza del testing, che può mostrare la presenza di bug solo per input specifici, la verifica formale può dimostrarne l'assenza per tutti i possibili input. Implica la creazione di un modello formale del sistema e l'utilizzo di tecniche come il model checking o la dimostrazione di teoremi.

La verifica formale fornisce il massimo livello di garanzia della correttezza del sistema. Il processo inizia con la creazione di un modello formale del sistema utilizzando un linguaggio matematico, come la logica temporale o l'algebra dei processi. Anche un insieme di proprietà, derivate dai requisiti del sistema, viene espresso in un linguaggio formale. Il processo di verifica utilizza quindi strumenti automatizzati per esplorare sistematicamente tutti i possibili stati del modello e determinare se le proprietà specificate sono vere.

Vengono utilizzate due tecniche principali: il model checking e la dimostrazione di teoremi. Il model checking è una tecnica automatizzata che esplora l'intero spazio degli stati di un modello a stati finiti. Se una proprietà viene violata, il model checker produce un controesempio, ovvero una specifica traccia di esecuzione che dimostra il fallimento. Questo metodo è molto efficace, ma può soffrire del problema dell‘’esplosione dello spazio degli stati" per sistemi molto complessi. La dimostrazione dei teoremi prevede la rappresentazione del sistema e delle sue proprietà come formule logiche (teoremi) e l'uso di prover automatici o interattivi per costruire una prova formale di correttezza. Questo approccio può gestire sistemi a stati infiniti, ma spesso richiede un notevole impegno manuale da parte degli esperti.

Sebbene sia computazionalmente costosa e richieda competenze specialistiche, la verifica formale è indispensabile per i sistemi critici per la sicurezza, dove il costo del fallimento è estremamente elevato. È stata applicata con successo per verificare la correttezza delle unità in virgola mobile delle CPU, dei protocolli di comunicazione e dei sistemi di controllo, dove i test esaustivi non sono fattibili.

UNESCO Nomenclature: 1203
- Informatica

Tipo

Software/Algoritmo

Interruzione

Fondamento

Utilizzo

Nicchia/Specializzato

Precursori

  • logica proposizionale e dei predicati
  • teoria degli automi
  • calcolo lambda
  • semantica del programma (ad esempio, logica di Hoare)
  • teoria della complessità computazionale

Applicazioni

  • progettazione di microprocessori (ad esempio, correzione del bug dell'intel pentium fdiv)
  • software avionico (ad esempio, sistemi fly-by-wire)
  • analisi dei protocolli crittografici
  • sistemi di segnalazione ferroviaria
  • driver software per sistemi operativi critici

Brevetti:

NA

Idee e potenziali innovazioni

A causa dell'eliminazione del traffico generato dai bot, che attualmente supera i 40.000 al giorno, questo contenuto è riservato ai membri della community.
> Accedi O > Registrati L'accesso a questo contenuto, così come a tutti gli altri contenuti e strumenti riservati, è (100% gratuito).

Correlato a: verifica formale, model checking, theorem proving, metodi formali, correttezza, verifica del software, verifica dell'hardware, logica temporale.

Contesto storico

Verifica formale

1970
1973
1980
1980
1980
1982-07-01
1988-06-01
1970
1970-01-01
1975-06-01
1980
1980
1980
1986-01-01
1990

(se la data è sconosciuta o non rilevante, ad esempio "meccanica dei fluidi", viene fornita una stima approssimativa della sua notevole comparsa)

Invenzioni, innovazioni e principi tecnici correlati

Le immagini a grandezza naturale e i download sono disponibili, 100% gratuitamente, solo per i membri registrati.

> Login <