lezione 13 verifica i n.
Download
Skip this Video
Download Presentation
Lezione 13. Verifica (I)

Loading in 2 Seconds...

play fullscreen
1 / 33

Lezione 13. Verifica (I) - PowerPoint PPT Presentation


  • 79 Views
  • Uploaded on

Lezione 13. Verifica (I). [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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Lezione 13. Verifica (I)' - zacharee-horn


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
lezione 13 verifica i
Lezione 13. Verifica (I)
    • [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
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
Dynamic V&V and static verification
  • Dynamic V & V
    • 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
Verifica/validazione statica/dinamica

Verifica

Validazione

*

-

Statica

*

*

Dinamica

slide5

and verification

[Sommerville]

molteplicit di tecniche di verifica
Molteplicità di tecniche di verifica
  • Nelle diversefasi 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

Panoramica di tecniche di verifica
reachability analysis
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

s2

q21

q2n

X2

...

...

sn

qn1

qn2

Xn

slide9
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 globalstate 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
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
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
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
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 DecisionDiagrams - 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
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
Verifica di boundedness
  • Boundedness:
    • K Nat:
        •  M in [M0>, p in S: M(p) <K
    • ovviamente una P/T net N è bounded sseGG(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:……...
slide16
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.
slide17

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)

slide18
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.
slide19
Nel caso di due soli posti, si assuma per assurdo un insieme infinitoMM 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), … []
slide20
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
Coverability - Simultaneously unbounded
  • 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’’…
  • Insieme di posti simultaneouslyunbounded
    • un generico insieme P’ S di posti è simultaneously unbounded se  i  Nat,  un marking Miin GG(N) tale che  p  P’: Mi(p) > i
    • Decidibile
      • Cercare in CG(N) un nodo M’ tale che  p  P’: M’(p) = 
reachable transition
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
Reachable marking (‘Reachability’)
  • Reachable marking
    • 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
Liveness
  • 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 !)
  • Live net
    • una P/T net N è live se ogni transizione è M0-live
      • Decidibile [Lipton ‘76]
verifica di propriet di time petri nets
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
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 matriceN: 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
slide27
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’
slide28
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  St(s) = - s t*  St(s)cioè
    •  s *t  St(s) +  s t*  St(s) = 0 cioè
    •  s (*t  t*)  St(s) = 0 cioè
    •  s St(s) = 0
    • rimpiazzando S con il suo vettore caratteristico cs (a |SN| componenti):
    •  s SNt(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))
slide29
S-invariant
    • Un vettore inv:SN-->Int è un S-invariante di NsseN’*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
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 ak < nprocessi 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

slide31

s5

k

t0 t1 t2 t3 t4 t5 i1 i2MN

k

s0

s1

s2

s3

s4

s5

-1 1 -1 1 1 n

k

s4

t5

t2

s2

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

0

0

0

0

0

0

0

0

0

0

0

0

Si verifica che:

N’ * i1 =

N’ * i2 =

slide32

s0 = processi inattivi

s1 = processi pronti a leggere

s2 = processi che leggono

s3 = processi pronti a scrivere

s4 = processi che scrivono

s5 = sincronizzazione

s5

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,4M(si) =

MN * i1 =  i = 0,4MN(si) = n

Interpretazione

s0-s4 sono i posti dei processi; dunque

i processi rimangono costanti,

e ciascuno è sempre in uno degli ‘stati’ s0-s4

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