La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Slide 1 [S2001, Cap. 19] [GMJ91, Cap. 6] [R85, Cap. 6] Articoli citati in queste diapositive, e appunti u Generalità; verification & validation u Algoritmi.

Presentazioni simili


Presentazione sul tema: "Slide 1 [S2001, Cap. 19] [GMJ91, Cap. 6] [R85, Cap. 6] Articoli citati in queste diapositive, e appunti u Generalità; verification & validation u Algoritmi."— Transcript della presentazione:

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

2 Slide 2 Verification and Validation (V&V) u [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. u [Boehm79] Verification: "Are we building the product right? Validation: "Are we building the right product?

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

4 Slide 4 Verifica/validazione statica/dinamica * ** - Dinamica Statica Validazione Verifica

5 Slide 5 and verification [Sommerville]

6 Slide 6 Molteplicità di tecniche di verifica u 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: FSMs, Petri nets, Basic LOTOS... Design »specifiche formali: Ext. FSMs, PrT nets, Full LOTOS, UML... Implementation »Codice Fortran, C, C++, Java… u Ad ogni modello e linguaggio corrispondono spesso piu tecniche (statiche e dinamiche) di verifica

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

8 Slide 8 Reachability analysis u Si applica a reti di (X)FSMs, 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…) u In una rete di n XFSMs (X1, …, Xn) lo stato globale è una matrice n x n: X1XnX2 X1 s1s1 q 12 X2 Xn s2s2 q 21 q 1n q n1 q n2 q 2n snsn... s j è lo stato di Xj, comprendente i valori delle sue variabili locali q hk e il contenuto della coda Xh-->Xk

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

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

11 Slide 11 Alcune applicazioni significative di reachability analysis u 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…] u 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 u PSTV - Protocol Specification, Testing, and Verification, dal 1981; e u FORTE - Formal description Techniques for distributed systems and communication protocols, dal 1988.

12 Slide 12 Limite di reachability analysis: esplosione combinatoria... u...dovuta al prodotto degli spazi degli stati delle singole macchine, e degli spazi dei valori delle singole code u...aggravata dallordinamento 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: ab a c b b c a c c b a 2 1 8

13 Slide 13 Rimedi alla esplosione combinatoria u Ulteriori restrizioni su stati e canali (debole) u Rappresentazione e manipolazione dello stato globale con strutture dati ed algoritmi efficienti (hash tables, bit-based state encoding…) u Trattazione diretta di ordinamenti parziali degli eventi u Rappresentazione simbolica di grandi insiemi di stati tutti quelli che soddisfano una formula, p. es. una disuguaglianza u Uso di BDDs (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 stati!

14 Slide 14 Verifica di proprietà specifiche di Reti di Petri u 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) u M [t > M nel marking M la transizione t è abilitata, e la sua esecuzione porta al marking M u [M > insieme dei marking raggiungibili dal marking M u GG(N) Grafo globale, con nodi [M0 > e transizioni tipo M [t > M

15 Slide 15 Verifica di boundedness u Boundedness: K Nat: u M in [M0>, p in S: M(p) < K ovviamente una P/T net N è bounded sse GG(N) è finito u 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:……...

16 Slide 16 u 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(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.

17 Slide 17 In GG(N): Marking M1=(4, 2, 3, 8) e M2=(6, 2, 3, 8), con M2 [ M1>, implicano M3=(8, 2, 3, 8); M4=(10, 2, 3, 8), ….. ==> 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)

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

19 Slide 19 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…) Linsieme di tutti gli altri marking in MM, di tipo M(x, y), è bipartito in: »MMh: i marking che hanno x

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

21 Slide 21 Coverability - Simultaneously unbounded u Coverability 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… u Insieme di posti simultaneously unbounded un generico insieme P S di posti è simultaneously unbounded se i Nat, un marking M i in GG(N) tale che p P: M i (p) > i Decidibile »Cercare in CG(N) un nodo M tale che p P: M(p) =

22 Slide 22 Reachable transition u Sia t una generica transizione ed M un generico marking u t è M-dead se M [M>, t non è abilitata da M u 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 u 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.

23 Slide 23 Reachable marking (Reachability) u Reachable marking un generico marking M è reachable se M [M0> u 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)... u [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) u [K82] S. R. Kosaraju, Decidability of Reachability in Vector Addition Systems, Proceedings of Fourteenth Annual ACM Symposium on Theory of Computing, 1982, pp

24 Slide 24 Liveness u Live transition 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 !) u Live net una P/T net N è live se ogni transizione è M0-live »Decidibile [Lipton 76]

25 Slide 25 Verifica di proprietà di Time Petri Nets u Time Petri Nets (Merlin76) hanno maggior potenza espressiva delle P/T nets infatti possono simulare le Turing Machines u Conseguentemente sono meno analizzabili. u 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),

26 Slide 26 Analisi degli S-invarianti per Reti di Petri [R85, Cap. 6] u Place/Transition Petri nets (P/T net) N=(S N, T N, A N, W N, M N ), S N = Places, T N = Transitions, A N = Arcs (A P T T P) W N = Weight (W: A -> Nat\{0}) (quanti token alla volta) M N = marking iniziale (Marking: S N -> Nat) u Rappresentazione algebrica lineare di P/T nets per ogni t T N definiamo il vettore t : S N --> Int: t(s) = »W(t, s)sses t* \ *t(*t = posti in output da t) »- W(s, t)sses *t \ t*(t* = posti in input di t) »W(t, s) - W(s, t)sses *t t* »0altrimenti La matrice N: S N T N --> 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

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

28 Slide 28 u Sia S S N un insieme di posti la cui somma di token non varia con lesecuzione 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) = 0cioè s (*t t*) S t(s) = 0cioè s S t(s) = 0 rimpiazzando S con il suo vettore caratteristico c s (a | S N | componenti): s S N t(s) * c s (s) = 0, cioè t * c s = 0 … e se il numero di token in S non cambia per alcuna transizione, cio vale per tutte le transizioni, cioè N * c s = 0(Nè la matrice trasposta di N: N(x, y) = N(y, x))

29 Slide 29 u S-invariant Un vettore inv:S N -->Int è un S-invariante di N sse N*inv = 0 u Lemma. Sia inv un invariante, M ed M due marking, t una transizione M- abilitata, con M [t> M. Allora: M*inv = M*inv. u Dim. M*inv = (M + t )* inv [ M [t> M sse M + t = M (slide 28)] u = M * inv + t * inv [distributività] u = M * inv [ N*inv = 0 => t * inv = 0, essendo N = ( t1, t2, …)] u 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

30 Slide 30 Verifica di sistema ad accesso controllato u La conoscenza degli invarianti di una rete puo rivelare alcune interessanti proprietà del sistema modellato. Esempio: u N processi accedono un buffer in lettura o scrittura u 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 s4t5t2 t1 s3 s1 s2 t4 t3 s0 s0 = processi inattivi s1 = processi pronti a leggere s2 = processi che leggono s3 = processi pronti a scrivere s4 = processi che scrivono s5 = sincronizzazione k n t0 k k

31 Slide 31 s0 s1 s2 s3 s4 s5 t0 t1 t2 t3 t4 t5 i1 i2 M N n k k 1 k k s5 s4t5t2 s3 s1 s2 t4 t3 s0 k n N invarianti N * i1 = N * i2 = t0 t1 k k Si verifica che:

32 Slide 32 Invariante i1 (1,1,1,1,1,0) M [M N > M * i1 = i = 0,4 M(s i ) = M N * i1 = i = 0,4 M N (s i ) = n Interpretazione s0-s4 sono i posti dei processi; dunque i processi rimangono costanti, e ciascuno è sempre in uno degli stati s0-s4 s5 s4t5t2 s3 s1 s2 t4 t3 s0 k n t0 t1 k k Invariante i2 (0,0,1,0,k,1) M [M N > M(s2) + k*M(s4) + M(s5) = M N (s2) + k* M N (s4) + M N (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 s0 = processi inattivi s1 = processi pronti a leggere s2 = processi che leggono s3 = processi pronti a scrivere s4 = processi che scrivono s5 = sincronizzazione

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


Scaricare ppt "Slide 1 [S2001, Cap. 19] [GMJ91, Cap. 6] [R85, Cap. 6] Articoli citati in queste diapositive, e appunti u Generalità; verification & validation u Algoritmi."

Presentazioni simili


Annunci Google