Specifica e verifica di sistemi critici

A.A. 2025/2026
6
Crediti massimi
42
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
L'obiettivo dell'insegnamento è di presentare le metodologie e le tecniche per la specifica rigorosa e l'analisi formale di sistemi software critici, ossia quei sistemi il cui malfunzionamento e le cui vulnerabilità possono causare danni inaccettabili. Vengono quindi presentati i fondamenti teorici e gli strumenti per la specifica formale basata su macchine a stati astratte e la verifica formale di proprietà espresse in logica temporale.
Risultati apprendimento attesi
Al termine del corso, lo studente sarà in grado di sviluppare la specifica formale di un sistema critico e di validare la specifica. Lo studente acquisirà inoltre la capacità di specificare requisiti complessi tramite il raffinamento di modelli e di garantire la correttezza e la sicurezza (safety & security) del sistema tramite model checking di proprietà espresse in logica temporale.
Corso singolo

Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.

Programma e organizzazione didattica

Edizione unica

Periodo
Terzo quadrimestre

Programma
- Introduzione: Sistemi safety e security-critical. Cosa sono ed a cosa servono i Metodi Formali. Applicazione dei Metodi Formali alla progettazione ed all'analisi di sistemi critici.
- Modellazione ed analisi ad alto livello di astrazione: Le Abstract State Machines (ASM). Tecniche di raffinamento di modelli. Il tool-set ASMETA per modelli ASM. Casi di studio di specifica di sistemi.
- Modellazione ed analisi a basso livello di astrazione. Automi di Kripke e Logica Temporale CTL: sintassi, semantica, pattern di specifica. Algoritmi di model checking. Simbolic Model Checking con rappresentazione mediante OBDD. Verifica di proprietà temporali: proprietà di raggiungibilità, di safety, di liveness, di fairness, assenza di deadlock. Raffinamenti di modelli: mappatura di modelli ad alto livello di astrazione verso modelli temporali. Tool: NuSMV e AsmetaSMV.
Prerequisiti
E' fortemente consigliato il superamento dell'esame di "Logica".
Metodi didattici
Lezioni frontali
Attività di laboratorio
La frequenza è fortemente consigliata.
Materiale di riferimento
1) Egon Boerger, Robert Staerk. Abstract State Machines. A Method for High-Level System Design and Analysis. Springer Verlag, 2003.
2) Michael Huth , Mark Ryan. Logic in Computer Science: modelling and reasoning about systems (2nd edition). Cambridge University Press, 2004.
3) B. Berard et al., System and Software Verification Model-Checking Techniques and Tools, Springer Verlag, 2001.
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste di una prova scritta e in una pratica in laboratorio, entrambe obbligatorie ed entrambe della durata di due ore.
La prova scritta verte ad accertare l'acquisizione delle competenze sugli aspetti teorici dell'insegnamento; la prova pratica verte ad accertare l'acquisizione della capacità d'uso di ambienti software per la specifica, validazione e verifica di proprietà di sistemi.
Ciascuna prova è valutata in trentesimi e il voto complessivo è la media di voti riportati nelle due prove.
INF/01 - INFORMATICA - CFU: 6
Lezioni: 42 ore
Docente/i
Ricevimento:
su appuntamento
Dipartimento di Informatica