Introduzione al Corso di Verifica Automatica dei Sistemi: Teoria e Applicazioni

Documenti analoghi
Parole note, nuovi significati: linguaggio, determinismo e infinito

Ragionamento Automatico Logiche Temporali: LTL. Lezione 10 Ragionamento Automatico Carlucci Aiello, 2004/05Lezione Sommario

Metodi formali per la verifica dell affidabilità di sistemi: materiale didattico

Ragionamento Automatico Model checking. Lezione 12 Ragionamento Automatico Carlucci Aiello, 2004/05Lezione Sommario. Formulazione del problema

REGISTRI D'ESAME CODICE ESAME CORSO DI LAUREA NOME DEL CORSO LAUREA CFU

LAUREA TRIENNALE IN INFORMATICA - DM 270/04

Corso di Laurea in Ingegneria Informatica. Gli obiettivi del corso sono:

Interpreti, compilatori e semantica operazionale

Università di Pisa Facoltà di Scienze Matematiche Fisiche e Naturali

Analisi di Sistemi Complessi (1) Model Checking (1) Analisi di Sistemi Complessi (2) Proprietà Computazionalmente Interessanti

MATRICE TUNING competenze versus unità didattiche, Corso di Laurea in Informatica (classe L-31), Università degli Studi di Cagliari

INTELLIGENZA ARTIFICIALE (elementi) 6 cfu

164LE - INFORMATICA PER LE DISCIPLINE UMANISTICHE. Anno Accademico 2016/2017 Tommaso Mazzoli

Domenico Talia. Corso di Laurea in Ingegneria Informatica. Facoltà di Ingegneria A.A UNICAL. D. Talia SISTEMI DISTRIBUITI - UNICAL 1

CALENDARIO APPELLI MAGISTRALI INFORMATICA - INFORMATICA INTERNAZIONALE - SECONDA SESSIONE D'ESAME: dal 12/06/2017 al 28/07/2017

Ingegneria e Scienze Informatiche

Principles of Concurrent Programming

LOCATION SEMESTER LANGUAGE

INSEGNAMENTI/ ATTIVITÀ FORMATIVE CFU SEMESTRE S.S.D. insegnamenti obbligatori per tutti i percorsi: 33

ESEMPI DI PIANO DI STUDI PER STUDENTI A TEMPO PARZIALE

Introduzione al Calcolo Scientifico

INSEGNAMENTI/ ATTIVITÀ FORMATIVE CFU SEMESTRE S.S.D.

Basi di Dati: Introduzione

2. Finalità generali previste dalle indicazioni nazionali

A proposito di informatica

PN in sintesi. PN ASM: Corrispondenze. ASM in sintesi. ASM Analisi di Alcune Properietà. PN Ideate per rappresentare sistemi complessi

Sincronizzazione. Soluzioni software Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

Linguaggi Formali, Automi e Logiche

Indice Prefazione 1 Il diritto e la società dell informazione La società dell informazione Un nuovo paradigma soc

164LE - INFORMATICA PER LE DISCIPLINE UMANISTICHE. Anno Accademico 2015/2016 Tommaso Mazzoli

Linee di programmazione

Le aree dell informatica

Modellazione di sistemi software

INTELLIGENZA ARTIFICIALE (elementi) 6 cfu

Tabelle di corrispondenza

Per un vocabolario filosofico dell informatica. Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine

Metodi formali per la verifica dell affidabilità di sistemi software (e hardware) (Peled, Software Reliability Methods, cap. 1) Importanza della

Il Sistema Operativo Concorrenza e Grafi di precedenza

Verifiche delle proprietà del software e della loro corrispondenza alle specifiche formali

I corsi del Dipartimento di Informatica

Corso di Laurea in Informatica quinquennale (vecchio ordinamento)

Sistemi in tempo reale: applicazioni alla robotica. Sistemi in tempo reale: applicazioni alla robotica p.1/15

Analytical and simulation performance models for software system analysis and prediction

Le aree dell informatica

1 Tesina 1: Tecniche di costruzione di riduzioni polinomiali. 2 Tesina 2: Sistemi deduttivi per la logica proposizionale

CAPITOLO 18 LA PROGRAMMAZIONE CONCORRENTE

A proposito di informatica

Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione. Informatica: Evoluzione dei Linguaggi di Specifica e Programmazione

Metodi Formali dell Informatica

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

Registro dell'insegnamento

APPUNTI PER IL CORSO DI ALFABETIZZAZIONE INFORMATICA

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

! Problemi, domande, risposte. ! Algoritmi che calcolano funzioni. ! Funzioni computabili e non. ! Problema = insieme di domande omogenee. !

Le logiche temporali e di strategia nell ambito della verifica formale

Registro dell'insegnamento

Modelli e complessità di calcolo

Il Pensiero Cognitivo nell era del Cognitive Computing G. Scioscia

Sistemi di elaborazione delle informazioni

µ-calculus Model Checking

DIPARTIMENTO DI INFORMATICA. Dipartimento di Informatica sede di Crema

Corso di Fondamenti di Informatica II introduzione al corso (canale L-Z, prof. d Amore)

32 Laurea magistrale in Informatica Scienze

Informazione: notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere.

Corso di Laurea Magistrale in INFORMATICA AA 2016/2017

Linguaggi e Ambienti di Programmazione

MODELLO A MEMORIA COMUNE. Aspetti caratterizzanti

Corso di. Basi di Dati I. 1. Introduzione

Fondamenti matematici per l'informatica MAT/03 6 Base 1 2 Ghiloni R Probabilita e statistica MAT/06 6 Aff. 1 2 Agostinelli C.

Introduzione alle Basi di Dati

Report Corso INFORMATICA - Laurea Triennale

Report Corso INFORMATICA - Laurea Triennale

Basi di Dati. Concetti e Principi Generali. Maria Mirto

Corso di. Basi di Dati I. 1. Introduzione

Manuale pratico per il corso di Logica

Relazione sull Attività Didattica e Scientifica

Algoritmi e Strutture Dati

INFORMATICA PER LE SCIENZE UMANE a.a. 2017/2018

La Laurea Magistrale in Informatica

Introduzione al Calcolo Scientifico

Algoritmi e Strutture Dati

Titolo del progetto di ricerca e descrizione

UNIVERSITA' DEGLI STUDI DI MILANO - BICOCCA Facoltà di Scienze Matematiche, Fisiche e Naturali

INFORMATICA PER LE SCIENZE UMANE a.a. 2016/2017

Corso di Laurea in Ingegneria Informatica

Sviluppo di Software Sicuro -S 3 Introduzione. Sommario 24/02/2010 SCOPO DEL CORSO

Il Dipartimento di Informatica e i suoi corsi

Esercizi di Metodi e Modelli per l Ingegneria del Software

Corso di Laurea in Ingegneria Informatica

Syllabus A042 Insegnamenti disciplinari

Corso di Laurea in Ingegneria Informatica

RAPPRESENTAZIONE DELLA CONOSCENZA

Progettazione di basi di dati

INFORMATICA PER LE SCIENZE UMANE a.a. 2015/2016

Istituto d Istruzione Secondaria Superiore Carlo Emilio Gadda

Integrazione di tecnologia e ricerca in educazione matematica: il caso dell e-learning. Pier Luigi Ferrari Università del Piemonte Orientale

Introduzione alla System Dynamics. Alberto F. De Toni Massimo Bearzi Università degli studi di Udine

Basi di dati Basi di dati per bioinformatica

Transcript:

Introduzione al Corso di Verifica Automatica Anno Accademico 2010/11 1 Introduzione al Corso di Verifica Automatica dei Sistemi: Teoria e Applicazioni Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine

Introduzione al Corso di Verifica Automatica Anno Accademico 2010/11 2 Obiettivo Sviluppare tecniche, metodologie e strumenti per la specifica e la verifica formali di programmi/sistemi reattivi (e dell ambiente con cui essi interagiscono / che essi controllano) facendo uso della logica temporale Parole chiave: tecniche, metodologie e strumenti formali di specifica e verifica (verifica della consistenza della specifica; verifica della validità di proprietà attese del sistema/programma) programmi/sistemi reattivi vs. programmi trasformazionali logica temporale (linguaggi logici di specifica e strumenti per la verifica della soddisfacibilità e il model checking)

Introduzione al Corso di Verifica Automatica Anno Accademico 2010/11 3 Programmi/sistemi reattivi Un programma/sistema reattivo è un programma/sistema il cui scopo è mantenere nel tempo (durata indefinita) una data modalità di interazione con l ambiente in cui opera (anziché terminare la propria esecuzione restituendo un determinato valore finale) Esempi di programmi/sistemi reattivi. Sistemi operativi, programmi concorrenti e in tempo reale, programmi per il controllo di processi, programmi embedded (programmi la cui componente software è una parte integrata del sistema completo)

Introduzione al Corso di Verifica Automatica Anno Accademico 2010/11 4 La concorrenza La concorrenza è una componente fondamentale dei programmi/sistemi reattivi Due forme di concorrenza (in verità possono essere ricondotte ad un unica forma): un programma reattivo opera in maniera concorrente col suo ambiente la maggior parte dei sistemi reattivi è costituita da un insieme di processi che vengono eseguiti concorrentemente Studieremo tecniche formali per la specifica e l analisi dell interazione fra componenti che operano concorrentemente

Introduzione al Corso di Verifica Automatica Anno Accademico 2010/11 5 Modelli e linguaggi Presenteremo un modello computazionale - sistemi di transizioni equi (e un linguaggio di programmazione per programmi/sistemi reattivi) prima - automi su oggetti infiniti (parole, alberi, grafi) poi Useremo la logica temporale quale linguaggio di specifica formale Svilupperemo algoritmi per la verifica della soddisfacibilità e il model checking

Introduzione al Corso di Verifica Automatica Anno Accademico 2010/11 6 Comunicazione tra processi - 1 Per quanto riguarda il linguaggio di programmazione, analizzeremo i meccanismi per la comunicazione e la sincronizzazione tra processi concorrenti Due modalità fondamentali di comunicazione: - tramite variabili condivise - via scambio messaggi Presenteremo un approccio uniforme alla comunicazione tra programmi reattivi, indipendente dal particolare meccanismo/modalità di comunicazione adottato

Introduzione al Corso di Verifica Automatica Anno Accademico 2010/11 7 Comunicazione tra processi - 2 Vedremo come alcuni paradigmi fondamentali della programmazione concorrente - mutua esclusione - schema produttore/consumatore possano essere programmati attraverso entrambi i meccanismi/modalità di comunicazione Studieremo anche il legame che intercorre tra true concurrency e interleaving

Introduzione al Corso di Verifica Automatica Anno Accademico 2010/11 8 True concurrency vs. interleaving True concurrency: esecuzione realmente concorrente dei processi Interleaving: rappresentazione della concorrenza attraverso l alternanza di azioni atomiche scelte, una per volta, dai diversi processi concorrenti (analogie con la gestione di transazioni concorrenti nelle basi di dati) Vedremo quali restrizioni sintattiche sui programmi considerati e quali requisiti di equità (fairness) vadano imposti per consentire di utilizzare l interleaving quale modello fedele della true concurrency

Introduzione al Corso di Verifica Automatica Anno Accademico 2010/11 9 Proprietà dei programmi/sistemi reattivi Prenderemo in esame le classi di proprietà più rilevanti dei programmi/sistemi reattivi - sicurezza (safety) - vitalità (liveness) - reattività (reactivity) Sicurezza: situazioni non desiderate non devono mai presentarsi (condizioni universali) Vitalità: situazioni desiderate devono prima o poi realizzarsi (condizioni esistenziali)

Introduzione al Corso di Verifica Automatica Anno Accademico 2010/11 10 Model checking Model checking per le logiche temporali di base (LT L, CT L, CT L, µ-calculus) Complessità computazionale del model checking (il problema dell esplosione del numero degli stati). Possibili soluzioni: model checking simbolico, OBDD (Ordered Binary Decision Diagram) e varianti, partial order reduction Model checking mediante automi Alcuni model checker (SPIN, SMV, NuSMV), con esempi di utilizzo

Introduzione al Corso di Verifica Automatica Anno Accademico 2010/11 11 Testi di riferimento - 1 Z. Manna, A. Pnueli, The Temporal Logic of Reactive and Concurrent Systems: Specification, Springer, 1992 Z. Manna, A. Pnueli, Temporal Verification of Reactive Systems: Safety, Springer, 1995 A. Montanari, Sistemi Reattivi: Automi, Logiche e Algoritmi (note al corso). W. Thomas, Automata on Infinite Objects, in Handbook of Theoretical Computer Science, Vol B (Capitolo 4), J. van Leeuwen (ed.), Elsevier, 1990. W. Thomas, Languages, Automata, and Logic, in Handbook of Formal Languages, Vol. III, G. Rozenberg, A. Solomaa (eds.), Springer, 1997, pp. 389-455.

Introduzione al Corso di Verifica Automatica Anno Accademico 2010/11 12 Testi di riferimento - 2 D. Perrin, J. E. Pin, Infinite Words: Automata, Semigroups, Logic and Games, Pure and Applied Mathematics Series, Elsevier, 2004. A. Montanari, G. Puppis, Verification of Infinite State Systems, Note al Corso della 18th European Summer School in Logic, Language and Information (ESSLLI), Malaga, Spain, 2006. E. A. Emerson, Temporal and Modal Logic, Handbook of Theoretical Computer Science, Vol B (Capitolo 16), J. van Leeuwen (ed.), Elsevier, 1990. E.M. Clarke, O. Grumberg, D. Peled, Model Checking, The Mit Press, 2000. M. Huth, M. Ryan, Logic In Computer Science: Modelling And Reasoning About Systems, Cambridge University Press, 1999. Articoli su specifici temi del corso.