Lezione 13. Verifica (I) Generalità; verification & validation

Slides:



Advertisements
Presentazioni simili
Automi temporizzati.
Advertisements

Definitezza Vogliamo poter richiedere la “definitezza” delle funzioni
Meccanismi di IPC Problemi classici di IPC
Sistemi dinamici discreti e computabilità intrinseca
Ricorrenze Il metodo di sostituzione Il metodo iterativo
2. Introduzione alla probabilità
Il problema del minimo albero ricoprente in un grafo non cooperativo
Specifiche Algebriche
COORDINATE POLARI Sia P ha coordinate cartesiane
6. Catene di Markov a tempo continuo (CMTC)
1 2. Introduzione alla probabilità Definizioni preliminari: Prova: è un esperimento il cui esito è aleatorio Spazio degli eventi elementari : è linsieme.
Introduzione Cosa sono le reti di Petri?
Sintassi- Semantica operazionale
1 Il punto di vista Un sistema è una parte del mondo che una persona o un gruppo di persone, durante un certo intervallo di tempo, sceglie di considerare.
Grafi Algoritmi e Strutture Dati. Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e strutture dati 2/ed 2 Copyright © The McGraw.
Algoritmi e Strutture Dati
Lez. 41 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Programmazione.
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
6. Catene di Markov a tempo continuo (CMTC)
3. Processi Stocastici Un processo stocastico è una funzione del tempo i cui valori x(t) ad ogni istante di tempo t sono v.a. Notazione: X : insieme di.
4. Automi temporizzati Il comportamento dei sistemi ad eventi temporizzati non è definito semplicemente da una sequenza di eventi o di valori dello stato,
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
Semantiche dei linguaggi di programmazione
Ordini Parziali - Reticoli
Esercitazioni su circuiti combinatori
Slide 1 [GMJ91, Sez. 5.5] [G87] u Condition-Event nets u Place-Transition nets u Time Petri Nets [Merlin] u Priorità u Token con valore u Richiami di logica.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 05/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
1 Capitolo 2: Semplificazione, Ottimizzazione e Implicazione.
1 Esempi di consistenza sui limiti Non consistente sui limiti, considera Z=2, poi X-3Y=10 Ma il dominio qui sotto e consistente sui limiti: Confrontare.
Algoritmo di Ford-Fulkerson
Il problema del minimo albero ricoprente in un grafo con archi privati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
8. Reti di Code Nella maggior parte dei processi produttivi risulta troppo restrittivo considerare una sola risorsa. Esempio: linea tandem arrivi 1 v.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Testing e Debugging.
eliana minicozzi linguaggi1a.a lezione2
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
Seminario su clustering dei dati – Parte II
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Introduzione alla programmazione ll
CONTROLLO DI SUPPLY CHAIN MEDIANTE TECNICHE H-INFINITO E NEGOZIAZIONE
Progettazione dei sistemi interattivi (A.A. 2004/05) - Lezione 3 1 La relazione di ereditarietà Punto di vista insiemistico: la relazione di ereditarietà
Algoritmi e Strutture Dati
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
Infinite-state Verification e Link con EOS Giorgio Delzanno.
Unità Didattica 1 Algoritmi
Strutture di controllo in C -- Flow Chart --
Notazioni Asintotiche e Ordini di Grandezza delle funzioni
Intelligenza Artificiale
L’AUTOMA ESECUTORE Un automa capace di ricevere dall’esterno una descrizione dello algoritmo richiesto cioè capace di interpretare un linguaggio (linguaggio.
Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
Contatore: esempio di circuito sequenziale
Candidato : Giuseppe Circhetta Relatori :
Elementi di Informatica di base
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Calcolo Parallelo e Distribuito
Discovering Relative Importance of Skyline Attributes Gruppo 8 Altobelli Andrea (Relatore) Ciotoli Fabio Denis Mindolin, Jan Chomicki.
Componenti fortemente connesse
1 How to generate testing models into MDA approach to software development. A beginner’s point of view. Università degli Studi dell’Aquila Facoltà di Scienze.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 21 Agosto.
Teoria dei sistemi Autore: LUCA ORRU'.
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano Reti Logiche A Macchine non completamente specificate.
5/6/20151 Metodi formali dello sviluppo software a.a.2013/2014 Prof. Anna Labella.
Automi temporizzati.
Problemi, algoritmi e programmazione
Algoritmi e Strutture Dati
Transcript della presentazione:

Lezione 13. Verifica (I) Generalità; verification & validation [S2001, Cap. 19] [GMJ91, Cap. 6] [R85, Cap. 6] Articoli citati in queste diapositive, e appunti Generalità; verification & validation Algoritmi di analisi per modelli a stati finiti Reachability analysis limiti e possibili soluzioni Algoritmi e complessità di problemi per reti di Petri boudedness, reachability in P/T nets e Time PN’s analisi degli invarianti [R85] W. Reisig, Petri Nets - An Introduction, EATCS Monographs on Theoretical Computer Science, Vol. 4, Springer-Verlag, 1985.

Verification and Validation (V&V) [S2001] Verification and Validation (V&V) ‘checking processes which ensure that software conforms to its specification (at each phase in the development) and meets the needs of the software customer’. [Boehm’79] Verification: "Are we building the product right”? Validation: "Are we building the right product”?

Dynamic V&V and static verification Concerned with exercising and observing product behaviour (testing) …and also executable formal specifications Static verification Concerned with analysis of the static system representation to discover problems

Verifica/validazione statica/dinamica * - Statica * * Dinamica

and verification [Sommerville]

Molteplicità di tecniche di verifica Nelle diverse fasi del ciclo di sviluppo, il sistema è rappresentato con diversi modelli e linguaggi: Requirements def. and spec., software spec. (specifiche informali in linguaggio naturale) specifiche semi-formali: Entity-Relation, Data Flow... specifiche formali: FSM’s, Petri nets, Basic LOTOS... Design specifiche formali: Ext. FSM’s, PrT nets, Full LOTOS, UML... Implementation Codice Fortran, C, C++, Java… Ad ogni modello e linguaggio corrispondono spesso piu’ tecniche (statiche e dinamiche) di verifica

Panoramica di tecniche di verifica Modelli a stati finiti Reachability analysis (*) Model checking (*) Petri Nets algoritmi di verifica di proprietà decidibili: boundedness... Analisi di invarianti Algebre di processo (LOTOS) Verifica di equivalenze (e preordini), tramite algoritmi di partition refinement assiomatizzazioni e sistemi di riscrittura Specifiche in Petri Nets o Algebre di Processo possono essere riconducibili a FSM, ed ereditarne le tecniche di analisi Codice o pseudo-codice Esecuzione simbolica (*) Analisi statica Theorem proving (*), manuale o automatico Testing (*) in the small, in the large Altre rappresentazioni, come ER, DFD, UML, architetture a oggetti…, si prestano a tecniche di analisi ‘superficiale’ (sintattica). Molte tecniche (*) sono ‘trasversali’, cioè applicabili a piu’ modelli

Reachability analysis Si applica a reti di (X)FSM’s, ma anche a qualunque modello il cui comportamento è riconducibile a un sistema finito di transizioni fra stati globali (ad esempio, per classi di Petri nets, sotto-insiemi di LOTOS…) In una rete di n XFSM’s (X1, …, Xn) lo stato globale è una matrice n x n: ... X1 X2 Xn s1 q12 q1n X1 ... sj è lo stato di Xj, comprendente i valori delle sue variabili locali qhk e’ il contenuto della coda Xh-->Xk q21 s2 X2 q2n ... ... qn1 qn2 sn Xn

qhi per un qualche h (input); qik per un qualche k (output) Si ha una transizione globale, fra due stati globali, quando qualche macchina Xi compie (atomicamente) una transizione locale. Nello stato globale di arrivo sono in generale modificati: si qhi per un qualche h (input); qik per un qualche k (output) Per rendere finito il grafo globale si considerano: variabili locali e messaggi a valori finiti code FIFO di capacita limitata Il grafo globale finito (GG) viene costruito con l’algoritmo ovvio, chiamato global state exploration, reachability analisys, perturbation technique, … Ai fini della analisi del GG è conveniente calcolarne le componenti fortemente connesse (strongly connected components - SCC).

Tipiche proprietà verificabili con reachability analysis Unspecified reception incapacità, da parte di una XFSM, di ricevere il messaggio disponibile in testa a una sua coda in input Deadlock statico un nodo di GG senza transizioni in uscita. In assenza di unspecified receptions, cio’ implica code vuote. Cicli improduttivi (deadlock dinamico) un ciclo di transizioni la cui esecuzione (se iterata indefinitamente) rappresenta mancanza di ‘progresso’ del sistema SCC senza transizioni verso altre SCC generalizzazione di ciclo improduttivo Stati (globali o locali) desiderabili ma non raggiungibili a partire dallo stato iniziale

Alcune applicazioni significative di reachability analysis Analisi di protocolli CCITT X.21, X.25, IBM/SNA (System Network Architecture) - Data Flow Control layer, IBM Token-ring protocols. [IBM Zurigo, C. West, P. Zafiropulo, H. Rudin1978…] Analisi di protocolli: alternating-bit, sliding window, ISO-OSI architecture/layer ‘transport’, ‘session’, su specifiche in Estelle, SDL -- innumerevoli articoli in serie conferenze IFIP WG6.1 PSTV - Protocol Specification, Testing, and Verification, dal 1981; e FORTE - Formal description Techniques for distributed systems and communication protocols, dal 1988.

Limite di reachability analysis: esplosione combinatoria... ...dovuta al prodotto degli spazi degli stati delle singole macchine, e degli spazi dei valori delle singole code ...aggravata dall’ordinamento totale di eventi anche non correlati causalmente: a; stop ||| b; stop ||| c; stop =========> a; b; c; stop [] a; c; b; stop [] b; a; c; stop [] … [] c; b; a; stop cioè 8 stati: 1 a b c 2 a c b c a b c b a 8

Rimedi alla esplosione combinatoria Ulteriori restrizioni su stati e canali (debole) Rappresentazione e manipolazione dello stato globale con strutture dati ed algoritmi efficienti (hash tables, bit-based state encoding…) Trattazione diretta di ordinamenti parziali degli eventi Rappresentazione simbolica di grandi insiemi di stati tutti quelli che soddisfano una formula, p. es. una disuguaglianza Uso di BDD’s (Binary Decision Diagrams - Bryant 1986) rappresentazione canonica di formule booleane basata su grafi, che consente una efficiente implementazione di op. booleane (/\, \/, ¬), verifica di soddisfacibilità, e di equivalenza fra formule. Usati per verificare (model checking) modelli a 10120 stati!

Verifica di proprietà specifiche di Reti di Petri Place/Transition Petri nets (P/T net) N=(S, T, A, W, M0), S = Places, T = Transitions, A = Arcs (A  PT  TP) W = Weight (W: A -> Nat\{0}) (quanti token alla volta) M0 = marking iniziale (Marking: S -> Nat) M [t > M’ nel marking M la transizione t è abilitata, e la sua esecuzione porta al marking M’ [M > insieme dei marking raggiungibili dal marking M GG(N) Grafo globale, con nodi [M0 > e transizioni tipo M [t > M’

Verifica di boundedness  K Nat:  M in [M0>, p in S: M(p) < K ovviamente una P/T net N è bounded sse GG(N) è finito Boundedness per P/T nets è una proprietà decidibile -- cioè esiste un algoritmo che decide sempre, e in un numero finito di passi, se una generica rete P/T e’ bounded … ma provare a costruire direttamente GG(N) non è una buona idea: quando fermarsi? È necessario introdurre un nuovo tipo di grafo globale:……...

Coverability graph CG(N) simile a GG(N), ma con marking ‘estesi’: Marking (esteso): S -> Nat  {}  etichetta un posto ‘divergente’, nel quale i token possono crescere illimitatamente M < M’ (M’ copre M) se per ogni p in S, M’(p) > M(p), con  > n per ogni n in Nat. In CG(N) ogni nodo è un marking reale di N oppure un marking esteso che copre dei marking reali di N.

In GG(N): Marking M1=(4, 2, 3, 8) e M2=(6, 2, 3, 8), con M2  [M1>, implicano ==> in CG(N): Marking M=(, 2, 3, 8) Il marking esteso M rappresenta in CG(N) una serie infinita e crescente di marking in GG(N)

Def. - Dati due marking estesi M1 e M2: M1 # M2 se  (M1 > M2) e  ( M2 > M1) (M1 ed M2 sono ‘inconfrontabili’) Per la precedente costruzione, i marking del CG(N) sono inconfrontabili a due a due Th.1 - Il coverability graph CG(N) di una P/T net N è sempre finito Dimostrazione (cenno) La dimostrazione, per induzione, si basa sul fatto che non possono esistere infiniti marking estesi che siano inconfrontabili a due a due.

e uno dei due sottoinsiemi deve essere infinito, poniamo MMh. Nel caso di due soli posti, si assuma per assurdo un insieme infinito MM di marking a due a due inconfrontabili. Sia M=(h, k) in MM un marking di riferimento, con h , k  (deve esistere…) L’insieme di tutti gli altri marking in MM, di tipo M’(x, y), è bipartito in: MMh: i marking che hanno x<h MMk: i marking che hanno y<k e uno dei due sottoinsiemi deve essere infinito, poniamo MMh. Ripartire MMh in classi MMh(0), MMh(1), … MMh(h-1), ciascuna con la prima componente x fissa: ancora, uno degli h sottoinsiemi deve essere infinito, poniamo MMh(1) ma ciò è impossibile, perche i suoi elementi sarebbero tutti confrontabili fra loro, essendo (1, y1), (1, y2), … []

Th.2 - Una P/T net N è bounded (e il suo GG(N) è finito) sse CG(N) non contiene alcun nodo con una componente  Dimostrazione Immediata conseguenza della definizione di CG(N). []

Coverability - Simultaneously unbounded un generico marking M è copribile se esiste in GG(N) un marking M’ tale che M < M’ Decidibile Cercare in CG(N) un nodo M’’ tale che M < M’’… Insieme di posti simultaneously unbounded un generico insieme P’  S di posti è simultaneously unbounded se  i  Nat,  un marking Mi in GG(N) tale che  p  P’: Mi(p) > i Cercare in CG(N) un nodo M’ tale che  p  P’: M’(p) = 

Sia t una generica transizione ed M un generico marking Reachable transition Sia t una generica transizione ed M un generico marking t è M-dead se  M’  [M>, t non è abilitata da M’ Reachable transition una generica transizione t è una reachable transition se non è M0-dead Decidibile Cercare in CG(N) un arco di tipo M--t-->M’ Le proprietà viste fin qui sono desumibili dalla ispezione di CG(N); tuttavia la costruzione di questo grafo è poco pratica si dimostra che la sua dimensione puo’ crescere, rispetto alla dimensione della rete, piu’ rapidamente di qualunque funzione primitiva ricorsiva. Si dimostra anche che la complessità di alcuni di questi problemi è di fatto inferiore a quella della costruzione di CG(N), e cio’ apre la strada ad algoritmi di analisi piu’ efficienti.

Reachable marking (‘Reachability’) un generico marking M è reachable se M  [M0> Questo problema, aperto nel 1969 [KM69], non è banalmente risolvibile per ispezione di CG(N). Decidibile La soluzione, ottenuta dopo 13 anni (!), è dovuta a Kosaraju [K82], con correzione di H. J. Muller (82), precedenti tentativi e contributi di J. Van Leeuwen (‘74), G. S. Sacerdote e R. L. Tenney (‘77), J. Hopcroft e J. J. Pansiot (‘79), E. W. Mayr (‘81)... [KM69] R. M. Karp, R. E. Miller, ‘Parallel Program Schemata’, Journal of Computer and System Sciences, 3 (1969), pp. 147, 195 (introduce Vector Addition Systems, un modello equivalente alle reti di Petri) [K82] S. R. Kosaraju, ‘Decidability of Reachability in Vector Addition Systems’, Proceedings of Fourteenth Annual ACM Symposium on Theory of Computing, 1982, pp. 267-281.

Liveness Live transition Live net una transizione t è M-live se  M’  [M>: t non è M’-dead (dunque  un M’’  [M’>, tale che M’’ abilita t) (M-live non è la negazione di M-dead !) Live net una P/T net N è live se ogni transizione è M0-live Decidibile [Lipton ‘76]

Verifica di proprietà di Time Petri Nets Time Petri Nets (Merlin’76) hanno maggior potenza espressiva delle P/T nets infatti possono simulare le Turing Machines Conseguentemente sono meno analizzabili. Ad esempio, le proprietà: reachability boundedness diventano indecidibili [JLL77] [JLL77] N. D. Jones, L. H. Landweber, Y. E. Lien, Complexity of some problems in Petri Nets, Theoretical Computer Science 4, (1977), 277-299.

Analisi degli S-invarianti per Reti di Petri [R85, Cap. 6] Place/Transition Petri nets (P/T net) N=(SN, TN, AN, WN, MN), SN = Places, TN = Transitions, AN = Arcs (A  PT  TP) WN = Weight (W: A -> Nat\{0}) (quanti token alla volta) MN = marking iniziale (Marking: SN -> Nat) Rappresentazione algebrica lineare di P/T nets per ogni t  TN definiamo il vettore t : SN --> Int: t(s) = W(t, s) sse s  t* \ *t (*t = posti in output da t) - W(s, t) sse s  *t \ t* (t* = posti in input di t) W(t, s) - W(s, t) sse s  *t  t* 0 altrimenti La matrice N: SN  TN --> Int è definita come: N(s, t) = t(s) dunque i vettori t sono le colonne di N. N(s, t) descrive il cambio del marking di s quando t viene eseguita

Ogni marking è rappresentato da un vettore a |SN| elementi Se la rete soddisfa alcune semplici proprietà (‘pura’, cioè senza coppie di archi a loop, e ‘contact-free’...) … allora il comportamento della rete è completamente determinato dalla matrice N e il vettore MN La firing rule diventa: se t è M-abilitata, allora: M [t> M’ sse M + t = M’

Sia S  SN un insieme di posti la cui somma di token non varia con l’esecuzione della transizione t. Allora:  s *t  S W(s, t) =  s t*  S W(t, s) … che, in base alla definizione del vettore t diventa  s *t  S t(s) = - s t*  S t(s) cioè  s *t  S t(s) +  s t*  S t(s) = 0 cioè  s (*t  t*)  S t(s) = 0 cioè  s S t(s) = 0 rimpiazzando S con il suo vettore caratteristico cs (a |SN| componenti):  s SN t(s) * cs (s) = 0, cioè t * cs = 0 … e se il numero di token in S non cambia per alcuna transizione, cio’ vale per tutte le transizioni, cioè N’ * cs = 0 (N’è la matrice trasposta di N: N’(x, y) = N(y, x))

S-invariant Un vettore inv:SN-->Int è un S-invariante di N sse N’*inv = 0 Lemma. Sia inv un invariante, M ed M’ due marking, t una transizione M-abilitata, con M [t> M’. Allora: M*inv = M’*inv. Dim. M’*inv = (M + t )* inv [M [t> M’ sse M + t = M’ (slide 28)] = M* inv + t * inv [distributività] = M* inv [N’*inv = 0 => t * inv = 0, essendo N = (t1, t2, …)] Lemma Siano i1 e i2 due S-invarianti di N, e z un intero. Allora: i1 + i2 è un S-invariante z*i1 è un S-invariante

Verifica di sistema ad accesso controllato La conoscenza degli invarianti di una rete puo’ rivelare alcune interessanti proprietà del sistema modellato. Esempio: N processi accedono un buffer in lettura o scrittura Se nessun processo sta scrivendo, fino a k < n processi possono leggere; ma la scrittura è consentita solo se nessuno sta già leggendo o scrivendo s5 k k k s4 t5 t2 s2 s0 = processi inattivi s1 = processi pronti a leggere s2 = processi che leggono s3 = processi pronti a scrivere s4 = processi che scrivono s5 = sincronizzazione s0 t4 n t1 s1 s3 t3 t0

k s0 s1 k s2 s3 s4 s5 s5 k t0 t1 t2 t3 t4 t5 i1 i2 MN -1 1 -1 1 1 n s4 1 -1 1 1 -1 1 1 s0 1 -1 1 t4 n 1 -1 1 k t1 -1 1 -k k 1 k s1 s3 t3 t0 N invarianti Si verifica che: N’ * i1 = N’ * i2 =

k k s5 k s4 t5 t2 s2 s0 t4 n Invariante i2 (0,0,1,0,k,1)  M  [MN> s0 = processi inattivi s1 = processi pronti a leggere s2 = processi che leggono s3 = processi pronti a scrivere s4 = processi che scrivono s5 = sincronizzazione k k k s4 t5 t2 s2 s0 t4 n Invariante i2 (0,0,1,0,k,1)  M  [MN> M(s2) + k*M(s4) + M(s5) = MN(s2) + k* MN(s4) + MN(s5) = k Interpretazione - s4 contiene sempre al piu’ un token: c’è un solo scrivente alla volta. - Quando s4 ha un token, s2 e s5 sono vuoti: mentre uno scrive, nessuno legge. - s2 ha al piu’ k token: al piu’ k processi leggono concorrentemente t1 s1 s3 t3 t0 Invariante i1 (1,1,1,1,1,0)  M  [MN> M * i1 =  i = 0,4 M(si) = MN * i1 =  i = 0,4 MN(si) = n Interpretazione s0-s4 sono i posti dei processi; dunque i processi rimangono costanti, e ciascuno è sempre in uno degli ‘stati’ s0-s4

La conoscenza degli invarianti puo’ aiutare nella dimostrazione di varie altre proprietà, per esempio liveness [R85, pag. 83]