Lezione 13 verifica i
Download
1 / 33

Lezione 13. Verifica (I) - PowerPoint PPT Presentation


  • 78 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


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


    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


    • 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 qualche macchina Xi compie (atomicamente) una transizione locale.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 qualche macchina Xi compie (atomicamente) una transizione locale.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 qualche macchina Xi compie (atomicamente) una transizione locale.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 qualche macchina Xi compie (atomicamente) una transizione locale.

    • 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 qualche macchina Xi compie (atomicamente) una transizione locale.

    • 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 qualche macchina Xi compie (atomicamente) una transizione locale.

    • 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:……...


    • Coverability graph CG( qualche macchina Xi compie (atomicamente) una transizione locale.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 qualche macchina Xi compie (atomicamente) una transizione locale.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)


    • Def qualche macchina Xi compie (atomicamente) una transizione locale.. - 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.


    • Nel caso di due soli posti qualche macchina Xi compie (atomicamente) una transizione locale., 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), … []



    Coverability simultaneously unbounded
    Coverability - Simultaneously unbounded qualche macchina Xi compie (atomicamente) una transizione locale.

    • 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 qualche macchina Xi compie (atomicamente) una transizione locale.

    • 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 qualche macchina Xi compie (atomicamente) una transizione locale.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 qualche macchina Xi compie (atomicamente) una transizione locale.

    • 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 qualche macchina Xi compie (atomicamente) una transizione locale.

    • 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 qualche macchina Xi compie (atomicamente) una transizione locale.[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


    • Ogni marking è rappresentato da un qualche macchina Xi compie (atomicamente) una transizione locale.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 qualche macchina Xi compie (atomicamente) una transizione locale. 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))


    • S-invariant qualche macchina Xi compie (atomicamente) una transizione locale.

      • 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 qualche macchina Xi compie (atomicamente) una transizione locale.

    • 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


    s5 qualche macchina Xi compie (atomicamente) una transizione locale.

    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 =


    s0 qualche macchina Xi compie (atomicamente) una transizione locale. = 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



    ad