PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

Elenco notifiche



Formal verification of concurrent and distributed software and systems

01QSBIU

A.A. 2020/21

Course Language

Inglese

Degree programme(s)

Doctorate Research in Ingegneria Informatica E Dei Sistemi - Torino

Course structure
Teaching Hours
Lezioni 20
Lecturers
Teacher Status SSD h.Les h.Ex h.Lab h.Tut Years teaching
Sisto Riccardo Professore Ordinario IINF-05/A 18 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.
PERIOD: MAY - JUNE 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 econoscenza 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 verifica formale: logiche temporali, theorem proving, model checking, tecniche di astrazione e composizionali. 3. La verifica formale in pratica: strumenti di verifica, esempi di strumenti general-purpose (Spin). 4. Esempi di tecniche e strumenti di verifica per ambiti specifici: verifica formale a livello di codice sorgente, verifica formale delle proprietą di security e dei protocolli crittografici.
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, abstraction and compositional techniques 3. Formal verification in practice: verification tools, general-purpose tool examples (Spin) 4. Examples of verification techniques and tools for special domains: source code verification, formal verification of security properties and cryptographic protocols.
Lezione videoregistrata
Videorecorded lesson
Test a risposta multipla - Presentazione report scritto
Multiple choice test - Written report presentation
P.D.2-2 - Maggio
P.D.2-2 - May