In questo appuntamento con "Concetti di Informatica", esploriamo cosa significa realmente quando un programma "gira" ed è in grado di
computare la funzione per cui è stato scritto.Scopri perché la correttezza non è un concetto assoluto, ma è sempre relativa a una
specifica (la formulazione precisa del problema che il software deve risolvere).
Approfondiremo i due livelli fondamentali di correttezza: la
correttezza sintattica, che rimanda alle regole grammaticali del linguaggio di programmazione e che è facilmente verificabile in maniera automatica da compilatori e interpreti, e la ben più delicata
correttezza semantica, che riguarda il significato e la coerenza del programma rispetto alla specifica.Vedremo come identificare i tre tipi principali di errori—dagli
errori accidentali (tipicamente sintattici, più semplici da risolvere)
a quelli
molto gravi legati alla mancata comprensione dei requisiti/specifiche o all'
algoritmo sbagliato—e perché la fase di raccolta e analisi dei requisiti è fondamentale per evitare costi di rimozione elevati in fasi successive dello sviluppo.Infine analizzeremo le
modalità di verifica della correttezza: dal
testing basato sui dati di prova (che lavora su classi di input selezionate) ai metodi di
dimostrazione di carattere formale, utilizzati in contesti di applicazioni particolarmente critiche e rischiose.
Un'analisi essenziale per comprendere lo sviluppo di software affidabile e di qualità.
DISCLAIMERIl podcast è stato generato con l’aiuto di
NotebookLM, uno strumento sperimentale basato su AI che trasforma contenuti scritti in formato audio.
Di conseguenza, potrebbero esserci imprecisioni nella pronuncia di termini tecnici o parole in lingua straniera ma il contenuto tecnico resta fedele alle fonti.
- Video Youtube https://youtu.be/8Gb-2tn5nog
Questo episodio include contenuti generati dall’IA.