Verifica automatica di sistemi (2020/2021)

Codice insegnamento
4S003252
Docente
Matteo Cristani
Coordinatore
Matteo Cristani
crediti
6
Settore disciplinare
INF/01 - INFORMATICA
Lingua di erogazione
Italiano
Sede
VERONA
Periodo
I semestre dal 1-ott-2020 al 29-gen-2021.

Orario lezioni

Vai all'orario delle lezioni

Obiettivi formativi

Il corso si propone di fornire i concetti fondamentali di verifica di sistemi sia hardware che software, per esempio usando logiche temporali e semantica delle tracce per rappresentarne il comportamento. Al termine del corso lo studente (1) avrà acquisito le conoscenze tecniche della verifica basata su modelli, (2) saprà utilizzarle per modellare il comportamento di specifici sistemi sia hardware che software e (3) sarà in grado di proseguire, anche autonomamente, lo studio e la ricerca nell’ambito delle tecnologie per la verifica formale di sistemi.

Programma

Verifica dei sistemi:
l’approccio basato sul model checking
Sistemi di modellazione concorrenti:
sistemi di transizione,
parallelismo e comunicazione,
esplosione degli stati
Proprietà del tempo lineare:
safety e invarianti,
liveness,
fairness
Linear Temporal Logic:
sintassi,
semantica,
model checking in LTL
Computation Tree Logic:
sintassi,
semantica,
espressività di CTL vs LTL,
model checking simbolico
CTL *
Equivalenza e astrazione:
bisimulazione,
bisimulazione e equivalenza in CTL *

Testi di riferimento
Autore Titolo Casa editrice Anno ISBN Note
Christel Baier and Joost-Pieter Katoen Principles of Model Checking MIT press 2008

Modalità d'esame

L’esame consiste in una prova scritta, ed in un orale integrativo, cui lo studente è ammesso, su propria richiesta, al superamento della prova scritta con una votazione di almeno 24/30. Se lo studente non richiede la prova orale integrativa, il voto dello scritto è definitivo.

La prova scritta verterà sugli argomenti del corso, e sarà articolata in due parti.
La parte teorica della prova, a valere per il 50% del voto, richiederà la conoscenza degli argomenti trattati a lezione, con una domanda per ciascuno dei macro-argomenti: Sistemi di modellazione concorrenti, Proprietà del tempo lineare, Linear Temporal Logic, Computation Tree Logic, CTL*, Equivalenza e astrazione.
La parte applicata della prova, a valere per il residuo 50%, richiederà la verifica delle competenze acquisite specificamente su Sistemi di transizione, Model checking su logiche temporali, Bisimulazione, Astrazione.

La prima parte della prova orale consisterà in domande relative agli stessi contenuti teorici del corso trattati nella prova scritta, e la seconda parte consisterà nello svolgimento de visu di un esercizio selezionato dal docente sugli stessi argomenti della prova scritta.

La valutazione della prova scritta terrà conto di:

- ampiezza della conoscenza di sistemi a transizione, logiche temporali, modelli di astrazione;
- correttezza dello svolgimento degli esercizi;
- completezza della conoscenza degli argomenti trattati.

La valutazione della prova orale terrà conto di:

- completezza analitica nella risposta ai quesiti;
- competenza sui temi specificati nel programma;
- correttezza delle risposte, e loro ampiezza.