PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

Elenco notifiche



Formal verification of concurrent and distributed software and systems

01QSBIU

A.A. 2022/23

Course Language

Inglese

Degree programme(s)

Doctorate Research in Ingegneria Informatica E Dei Sistemi - Torino

Course structure
Teaching Hours
Lezioni 22
Lecturers
Teacher Status SSD h.Les h.Ex h.Lab h.Tut Years teaching
Sisto Riccardo Professore Ordinario IINF-05/A 12 0 0 0 7
Co-lectures
Espandi

Context
SSD CFU Activities Area context
*** N/A ***    
La verifica formale riveste un ruolo importante nel ciclo di sviluppo di diverse categorie di software e sistemi (in particolare quelli safety-critical) e rappresenta anche un utile strumento per il ricercatore che voglia, per esempio, dimostrare la correttezza di nuovi protocolli o algoritmi. Il corso si propone di illustrare le principali tecniche di verifica formale, con particolare riferimento a quelle relative al software e ai sistemi concorrenti e distribuiti. Il corso intende affrontare questo tema soprattutto dal punto di vista dell'utilizzatore, fornendo gli elementi fondamentali necessari per comprendere le potenzialitą e i limiti delle varie tecniche. Per questo motivo, verrą data particolare enfasi agli strumenti che implementano o supportano le tecniche di verifica.
Formal verification plays an important role in the development cycle of several classes of software and systems (in particular the safety-critical ones) and also represents a useful tool for the researcher who wants, for example, prove the correctness of new protocols and algorithms. The course aims at illustrating the main formal verification techniques, with particular reference to those for concurrent and distributed software and systems. The course will address this topic mainly from the user point of view, giving the fundamental elements needed for understanding the potentiality and limitations of the various techniques. For this reason, particular emphasis will be given to the tools that implement or support the various techniques.
Abilitą di programmazione e conoscenza generale dell'ingegneria informatica, come fornita da una laurea magistrale in ingegneria informatica
Programming skills and general knowledge about computer engineering as provided by a Master in Computer Engineering
1. I metodi formali e il loro ruolo nello sviluppo del software e dei sistemi: classificazione e caratteristiche dei metodi formali, loro ambiti applicativi, loro inserimento nel ciclo di sviluppo, esempi di standard di riferimento. 2. Le tecniche di specifica e verifica formale: logiche temporali, theorem proving, model checking, satisfiability modulo theories (SMT), tecniche di astrazione. 3. La verifica formale in pratica: esempio di strumento di verifica general-purpose (Spin). 4. Esempi di tecniche e strumenti di verifica per ambiti specifici: verifica formale del codice sorgente, verifica formale e sintesi automatica delle configurazioni di una rete.
1. Formal methods and their role in software and system lifecycles: classification and characterization of formal methods, their applications, their integration in lifecycles, standard examples. 2. Formal verification techniques: temporal logics, theorem proving, model checking, satisfiability modulo theories (SMT), abstraction techniques 3. Formal verification in practice: general-purpose verification tools example (Spin). 4. Examples of verification techniques and tools for special domains: source code verification, formal verification and synthesis of network configurations.
In presenza
On site
Test a risposta multipla - Presentazione report scritto
Multiple choice test - Written report presentation
P.D.2-2 - Giugno
P.D.2-2 - June