Infinite-state Verification e Link con EOS Giorgio Delzanno.

Slides:



Advertisements
Presentazioni simili
23/11/06Dino Puller1 Analisi statica in tempo reale con domini numerici Facoltà di scienze MM.FF.NN. Università degli studi di Verona.
Advertisements

Introduzione al C++ e alla programmazione ad oggetti Corso Specialistico CNTC Bologna, febbraio 2001 Andrea Dell’Acqua e Claudio Grandi.
Linguaggi di Programmazione e compilatori
Linguaggi di programmazione
Specifiche Algebriche
Intelligenza Artificiale
Programmazione II Docente: Francesca Levi
Metodologie di Programmazione = decomposizione basata su astrazioni
Generalità Linguaggio e Macchina Astratta
1 Metodologie di Programmazione. 2 Contenuto generale §tecniche per la programmazione orientata ad oggetti (in piccolo) §esemplificate utilizzando il.
1 Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento.
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e sviluppo di.
Corso di Laurea in Informatica
Interpretazione Astratta
Analisi e Verifica di Programmi Laboratorio di AVP Corso di Laurea in Informatica AA Tino Cortesi.
Analisi e Verifica di Programmi Laboratorio di AVP Corso di Laurea in Informatica AA Tino Cortesi.
Semantiche dei linguaggi di programmazione
Barletta Massimiliano Gazzi Renzo
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
Laurea Specialistica in Informatica
Autronica LEZIONE N° 4 AUTRONICA.
1 Seminario di Sicurezza Martino Angela a.a Prof. S.Bistarelli.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Testing e Debugging.
La Riflessione computazione Elisa Ferrando. Cos è la Riflessione La Riflessione Sistema riflessivo Sistema computazionale.
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
A.Natali DL Maggio1999 Oggetti Concetti fondamentali.
LINGUAGGI DI PROGRAMMAZIONE
Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
Introduzione alla modellazione di sistemi interattivi
Cosa sono i sistemi distribuiti Prof. Andrea Omicini Corso di Sistemi Distribuiti A.A. 2001/2002 Parte I.
Lo sviluppo del software e i linguaggi di programmazione
Firenze – Festival della Creatività 2009 Comm.it s.r.l. – Ing. Davide Rogai, Ph.D. – Software >> fast on demand software.
Corso di Laurea Specialistica in Informatica Struttura generale.
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
Gian Luca Pozzato. AgentSpeak (L) & Jason AgentSpeak(L): linguaggio di programmazione per agenti BDI introdotto da Rao nel 1996 Si propone di colmare.
DAmb Sergio Lovrinich 28 Settembre Descrizione Questo Software si propone di eseguire una Analisi del Codice Sorgente, mettendo a disposizione Strumenti.
4/12/98Cristina Silvano - CEFRIEL1 Sintesi ad alto livello Cristina Silvano CEFRIEL - Politecnico di Milano Electronic Design Automation (EDA) Area Via.
1 Informazioni sull’esame §Esame orale su tutti gli argomenti trattati a lezione §Seminario: studio di un argomento avanzato, tipicamente di un formalismo.
4/21/20151 Metodi formali nel software a.a.2013/2014 Prof.Anna Labella.
PROGETTO E REALIZZAZIONE DI UN COMPONENTE SOFTWARE PROGRAMMABILE PER LA PIANIFICAZIONE DI COMMISSIONI DI LAUREA FACOLTA’ DI INGEGNERIA Corso di Laurea.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali (corso TIE) CORSO LAUREA MAGISTRALE IN SCIENZE E TECNOLOGIE DELLE PRODUZIONI ANIMALI.
1 Tipi di Dato §descrittori, tipi, controllo e inferenza dei tipi §specifica (semantica) e implementazione di tipi di dato l implementazioni “sequenziali”
Caso studio Tipologia 1 Piano di lavoro. Materia : Matematica Tipo di scuola :Liceo Scientifico Classe :2° Periodo:2° Quadrimestre Modulo:Disequazioni.
LINGUAGGI DI PROGRAMMAZIONE Per comunicare comandi e dati ad un computer occorre un particolare linguaggio detto LINGUAGGIO MACCHINA, che è un insieme.
1 Interpretazione astratta: un approccio sistematico all’analisi statica.
5/6/20151 Metodi formali dello sviluppo software a.a.2013/2014 Prof. Anna Labella.
Corso di Laurea Specialistica in Informatica Curriculum Progettazione Software Curriculum Sistemi di Elaborazione.
Linguaggi di programmazione: panoramica Linguaggi di programmazione ad alto livello: – –Programmazione procedurale – –Programmazione object oriented –
Linguaggi di Programmazione
Come ti sei comportato? Equivalenze comportamentali e loro applicazioni Daniele Gorla Roma, 21 Settembre 2009.
UML: Introduzione Corso IS I /03 Gianna Reggio Versione 0.0.
1 Macchine astratte, linguaggi, interpretazione, compilazione.
Specifiche Algebriche Introduzione Versione 1.0 Gianna Reggio
1 Linguaggi: guardando la semantica §esistono un insieme di concetti semantici e di strutture di implementazione in termini dei quali si descrivono in.
Elementi di Informatica SciGeo a.a. 2002/2003. Docente Giorgio Delzanno Ufficio 104 – I piano Dipartimento di Informatica e Sc. Inf. Tel
1 Metodologie di Programmazione §tecniche per la programmazione orientata ad oggetti §esemplificate utilizzando il linguaggio Java §testo di riferimento.
1 Metodologie di Programmazione = decomposizione basata su astrazioni.
B IBLIO S ERVICE consultazione di articoli online Anna Riccioni Progetto per il corso di Reti di Calcolatori L-S Anno Accademico
1 Metodologie di Programmazione §tecniche per la programmazione orientata ad oggetti §esemplificate utilizzando il linguaggio Java §testo di riferimento.
Il software Claudia Raibulet
Automi temporizzati.
ArchJava e AcmeStudio Studio delle tecnologie e case study Studente: Marco Di Sabatino Di Diodoro Esame: Analisi e Testing di sistemi a componenti Professore:
7/22/20151 Metodi formali nello sviluppo software a.a.2013/2014 Prof. Anna Labella.
Intelligenza Artificiale – M. Ornaghi 1 Lezione 17 Rappresentazione della conoscenza.
I linguaggi di programmazione -GALBIATI ALBERTO -ESPOSITO MATTIA.
Implementazioni di un analizzatore di protocollo Esistono quattro fondamentali tradeoff per la realizzazione di un analizzatore di protocollo:  Analisi.
Transcript della presentazione:

Infinite-state Verification e Link con EOS Giorgio Delzanno

Verification Goal Aumentare qualita, affidabilita e sicurezza e ridurre costi nello sviluppo di software, sistemi distribuiti e protocolli Metodo Dimostrare formalmente che limplementazione di un sistema soddisfa le specifiche funzionali definite nella fase di design

Considerazioni Quando applicare un metodo di verifica? Durante sviluppo del sistema lavorando su un modello dellimplementazione A sviluppo ultimato: Si applica al modello concettuale di un sistema (es. algoritmo in pseudo codice, descrizione informale di un protocollo) Si estrae (in modo manuale o automatico) un modello dallimplementazione (es. macchina a stati finiti da codice C) Verification vs Simulation Verification = provare formalmente correttezza di un modello Simulation = cercare errori generando test cases

Computer-aided Automated Verification Goal Automatizzare la fase di verifica di un sistema software (progettare programmi che verificano altri programmi) Metodo Algoritmi, strutture dati e tecniche di astrazione per estrarre un modello dallimplementazione e per verificare proprieta funzionali del modello

Modelli e Proprieta Modelli : Automi a stati finiti Reti di Petri Logica del I ordine o logica superiore Semantica operazionale e denotazionale ….. Proprieta Insiemi di stati Insiemi di configurazioni di una rete di Petri Formule logiche (es. logica temporale) Asserzioni ad hoc (es. a la Hoare) ….

Tecniche Theorem Proving Semi-automatico Per modelli e proprieta molto generali (es. logica del primordine, ordine superiore) Uso complicato e limitato ad esperti Model Checking Push button technology Modelli con spazio degli stati finito Proprieta in logica temporale Possibile integrazione in altri tool di analisi

Ricerca svolta in questi anni Estensione delle tecniche di model checking a sistemi con spazio degli stati potenzialmente infinito Analisi delle proprieta computazionali di modelli infinite-state Algoritmi simbolici per lanalisi e verifica funzionale Aumentare lespressivita dei modelli trattati permette di ridurre lincidenza delle tecniche di astrazione (spesso applicate manualmente)

Tecniche Modelli infinite-state Programmi logici/riscrittura con vincoli, reti di Petri colorate, process calculi (pi-calculus, mobile ambient) Rappresentazione simbolica di insiemi di configurazioni Con vincoli aritmetici, automi, ed espressioni regolari Esplorazione dello spazio degli stati di un modello Calcolo simbolico di punto fisso Terminazione basata su particolari ordinamenti well-quasi ordering (vettori, stringhe, bags, trees, graphs) Astrazioni ed euristiche per terminazione widening, approssimazioni,...

Risultati e applicazioni Risultati di decidibilita e algoritmi di verifica per lanalisi automatica di sistemi concorrenti parametrici nel numero di componenti Applicazione a Protocolli di cache coherence Modelli di programmi C e Java multithreaded Protocolli crittografici multi-sessione Alg. concorrenti e distribuiti per N processi Es. bakery, szymanski, ricart-agrawala Mobile ambients, membrane computing, molecular biology (Kappa)

Towards Verification of Multithreaded Java Programs [Tacas 2001] Modellazione (manuale) di programmi Java (flattened) tramite famiglia di automi finiti con operazioni di comunicazione che modellano wait/notify/notify_all Astrazione dei modelli con estensioni di reti di Petri (es. transfer arc, rendez-vous non bloccante) Algoritmo di analisi backward reachability per safety properties (mutua esclusione) con strutture dati dedicate (sort of BDD per memorizzare insiemi di marking) static analysis (marking equation=linear integer programming)

Progetti e collaborazioni Progetti PRIN CoVer: Constraint-based Verification (Gabbrielli) AIDA: Abstract Interpretation (Giacobazzi) Vincoli e preferenze (F. Rossi) Collaborazioni Parosh Abdulla (Uppsala University) Ahmed Rezine (Liafa, Paris VII) Javier Esparza (TUM) Andreas Podelski (Un. Freiburg) Jean-Francois Raskin (U. Bruxelles)

Direzioni future e possibili link con EOS Verified Software Initiative (Hoare et al.) Combinare formal verification e program analysis sullo stile di tool quali SLAM (Microsoft) e BLAST (Berkeley) usati per testare driver scritti in C Es. SLAM=CFL reachability con BDD + predicate abstraction

Possibili punti da esplorare Analisi programmi object-oriented multithreaded (es. Concurrent Java) Estrazione di modelli infinite-state da instrumented code (specifiche di linguaggi Java-like?) Astrazioni + infinite-state model checking Abstraction refinement

Keywords (catturate stamane...) Reti di Petri (object/nested nets ~ reflective nets?) Logiche (temporali?) per verifica Calcoli a processi/oggetti Tipi comportamentali Modelli infinite-state (CCS/Reti di Petri) Calcoli per systems biology