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à.
DISCLAIMER
Il 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.