Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoSavina Ferrario Modificato 11 anni fa
1
Infinite-state Verification e Link con EOS Giorgio Delzanno
2
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
3
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
4
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
5
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) ….
6
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
7
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)
8
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,...
9
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)
10
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)
11
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)
12
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
13
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
14
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.