You are on page 1of 36

Verifikacija protokola upotrebom vremenskih automata

by Lamija Kasumagi & Erma Perenda

Agenda
1 2 3 4 5

Uvod Vremenski automati UPPAAL Verifikacija Subscriber protokola Zakljuak

Uvod
Verifikacija nekog programa ili logikog kola podrazumijeva provjeru da li je konkretna implementacija korektna, odnosno da li ispunjava neke unaprijed zadate zahtjeve. Verifikacija pomou provjere modela: - Eksplozija stanja; - Potpuna automatizacija;

Agenda
1 2 3 4 5

Uvod Vremenski automati UPPAAL Verifikacija Subscriber protokola Zakljuak

Vremenski automati
Bchi-ev automat s konanim brojem stanja, proiren sa skupom realnih varijabli modeliranih kao satovi; pojednostavljena verzija, nazvana Timed Safety Automata specificira bolja svojstva koristei lokalne invarijante.

Vremenski automati
Formalna sintaksa

Vremenski automati
Mrea vremenskih automata
Mrea vremenskih automata je paralelna kompozicija od n vremenskih automata, koji se u ovom sluaju nazivaju procesi i kombinuju se u jedan sistem, ali eksterne akcije mogu ostati skrivene.

Vremenski automati
Alati
KRONOS - razvijen na VERIMAG-u u Francuskoj s ciljem verifikacije kompleksnih real-time sistema; komponente realtime sistema su modelirane pomou vremenskih automata a korektnost zahtjeva su izraene preko real-time temporalne logike TCTL. UPPAAL- opisuje mreu vremenskih automata predstavljenu kao skup predloaka (engl. template) pojedinih automata. HyTECH - alat za automatsku analizu ugraenih sistema. On rauna uslove pod kojima linearni hibridni sistem zadovoljava vremenske zahtjeve. SGM - alat za specifikaciju i verifikaciju real-time sistema. Razvijen je od strane Formal Methods grupe na Institute of Information Science, Academia Sinica, Taipei, Taiwan i SGM grupe. Koristi razne sofisticirane provjere i tehnike razvijene u posljednih nekoliko godina.

Agenda
1 2 3 4 5

Uvod Vremenski automati UPPAAL Verifikacija Subscriber protokola Zakljuak

UPPAAL
Arhitektura

Autograph(.atg)-grafika prezentacije sistema TA; Atg2ta transformira opis sistema iz grafikog .atg u tekstualni .ta format ; Hs2ta- transformacija hibridnih sistema u vremenske automate; Checkta sintaksika provjera tekstualnog opisa sistema vremenskih automata; Verifyta - Provjera modela (verifikacija se odvija unazad).

UPPAAL
Proirenje vremenskih automata u UPPAAL-u
Template automata definie se kao set parametara koji mogu biti bilo kojeg tipa (npr. int, chan i sl.). Konstante deklariu se kao const name value. Ograniene cjelobrojne varijable deklariu se kao int[min,max] name, gdje su min i max donja i gornja granica, respektivno. Guard-ovi, invariant-i i asignment-i mogu sadrati izraze ije vrijednosti prelaze granice ogranienih cjelobrojnih varijabli. Binarni sinhronizacijski kanali deklariu se kao chan c. Tranzicija (engl. edge) oznaena sa c! se sinhronizira sa drugom tranzicijom koja je oznaena sa c?. Broadcast kanali deklariu se kao broadcast chan c. U broadcast sinhronizaciji jedan predajnik c! moe da se sinhronizira sa veim brojem prijemnika c?. Ukoliko nema prijemnika, predajnik ipak moe izvriti c! akciju (broadcast slanje nije nikad zabranjeno, odnosno blokirano). Hitni sinhronizacijski kanali deklariu se tako to se ispred obine deklaracije kanala doda kljuna rije urgent. U ovom sluaju, ne smiju postojati kanjenja ukoliko se tranzicija izvrava na hitnom kanalu. Tranzicije koje koriste iste hitne kanale za sinhronizaciju ne smiju imati vremenska ogranienja, npr. guard-ove satova.

UPPAAL
Proirenje vremenskih automata u UPPAAL-u Lokacija - poetna - hitne - izvrive - obine Izrazi - Invarijant poseban izraz koji vrijedi samo za cjelobrojne vrijednosti, konstante i satove.

UPPAAL
Proirenje vremenskih automata u UPPAAL-u
Edge Izrazi
- Select labela sadri zarezom odvojenu listu name : type izraza gdje je name ime varijable i type definisani tip. - Guard je poseban izraz kojem se dodjeljuje boolean vrijednost. Samo satovi, cjelobrojne varijable i konstante (ili nizovi ovih tipova) mogu imati guard-ove. - Sinhronizacijska labela je u obliku Expression!, Expression? ili je prazna. Ovim izrazima se dodjeljuju vrijednost kanala. Asignment labela je zarezom-odvojena lista izraza sa popratnim efektima.. Assigment izrazi se izvravaju kada se njima odgovarajua tranzicija izvri.

UPPAAL
TCTL Query jezik Formule stanja - je izraz koji moe vrijediti za neko stanje bez provjere ponaanje modela. Pomou ovih formula se moe provjeriti da li je neki proces na datoj lokaciji koritenjem izraza oblika P.1 gdje je P proces i 1 traena lokacija. Formule putanja - Svojstva dostupnosti - Svojstva sigurnosti - Liveness svojstva

UPPAAL
TCTL Query jezik Svojstva dostupnosti
- E <> p ::= mogue je

pronai stanje za koji vrijedi logika p. Odnosno postavlja se pitanje da li postoji putanja koja poinje u inicijalnom stanju, takva da na kraju p bude zadovljena du te putanje. Ovo su tzv. 'Mogua' svojstva.

UPPAAL
TCTL Query jezik Svojstva dostupnosti
- A <> p ::= 'neizbjeno p', automat e sigurno dostii stanje u kojem je p istinito (p je istinito u nekoliko stanja na svim putanjama). Odnosno, postavlja se pitanje da li e p biti na kraju zadvoljeno du svih putanja koje poinju u inicijalnom stanju. Ovo su tzv. 'Konana' svojstva.

UPPAAL
TCTL Query jezik Svojstva sigurnosti
- A [] p::= Postavlja se pitanje da li je p istinito u svim dostupnim stanjima. Ovo su tzv. 'Invarijantna' svojstva.

UPPAAL
TCTL Query jezik Svojstva sigurnosti
- E [] p::= Postoji putanja na kojoj je p istinito za sva stanja. Odnosno, postavlja se pitanje da li postoji najvea putanja, takva da je p uvijek istinito. Pri emu se najvea putanja definie kao putanja koja je ili beskonana ili kod koje posljednje stanje nema izlaznih tranzicija. Ovo su tzv. 'Potencijalna' svojstva.

UPPAAL
TCTL Query jezik Livness svojstva
- p - - > f ::= p uvijek vodi ka f, to se moe oznaiti kao p A <> f. To znai da kad god je p zadovljeno, na kraju e i f biti zadovoljeno. Ovo su tzv. 'Vodi ka' svojstva.

Agenda
1 2 3 4 5

Uvod Vremenski automati UPPAAL Verifikacija Subscriber protokola Zakljuak

Verifikacija Subscriber protokola


Koraci procesa verifikacije:
modeliranje
simulacija verifikacija
LamijaApplication, Lamija, ErmaApplication, Erma)

(Automati:

Verifikacija Subscriber protokola


Model Subscriber protokola

- Template automata LamijaApplication

Verifikacija Subscriber protokola


Model Subscriber protokola

- Template automata Lamija

Verifikacija Subscriber protokola


Model Subscriber protokola

- Template automata ErmaApplication

Verifikacija Subscriber protokola


Model Subscriber protokola

- Template automata Erma

Verifikacija Subscriber protokola


Model Subscriber protokola

- Deklaracija varijabli i kanala

Verifikacija Subscriber protokola


Model Subscriber protokola

- Sistemska deklaracija

Verifikacija Subscriber protokola


Simulacija modela Subscriber protokola

Verifikacija Subscriber protokola


Simulacija modela Subscriber protokola - MSC dijagram

Verifikacija Subscriber protokola


Verifikacija modela Subscriber protokola

Verifikacija Subscriber protokola


Verifikacija modela Subscriber protokola
Svojstva dostupnosti - A <> A.Call_established imply A.Idle - odnosi se na injenicu da e automat A iz lokacije Call_established uvijek prei u lokaciju Idle, ovo je neizbjeno; - E<> (A.Ringing_A && B.Ringing_B) mogue je pronai trenutak u kojem je automat A u lokaciji Ringing_A , a automat B u lokaciji Ringing_B; - E<> (y==5000 || x==4999) vrijednost sata x dostie makar u jednom trenutku vrijednost 4999, ili vrijednost sata y dostie makar u jednom trenutku vrijednost 5000; - E<> B.Ringing_B imply B.Idle mogue je da automat B iz lokacije Ringing_B pree u lokaciju Idle.

Verifikacija Subscriber protokola


Verifikacija modela Subscriber protokola
Svojstva sigurnosti - A[] not deadlock ne postoji niti jedan deadlock u sistemu; - A[] A.Call_initiated+ B.Call_initiated<=1 u sistemu je mogue da samo jedan ili pak nijedan automat bude u lokaciji Call_initiated. - A[] x<=1 && x>=35 not B.Call_established ako je vrijednost sata x manja ili jednaka od 1 i vea ili jednaka 35, tada automat ApplicationA nee generisati poruku Accept, te stoga automat B nee prei u lokaciju Call_established; -E[] not A.Call_initiated mogue je pronai putanju u prostoru stanja na kojoj automat A ne dostie lokaciju Call_initiated, ovo je posljedica toga da i automat B moe inicirati poziv;

Verifikacija Subscriber protokola


Verifikacija modela Subscriber protokola
Liveness svojstva - A.Call_initiated (A.Ringing_A && B.Ringing_B) ako je automat A u lokaciji Call_initiated, onda e sigurno automat A prei u lokaciju Ringing_A kao i automat B u lokaciju Ringing_B; - ApplicationA.Processing A.Idle ako je automat ApplicationA u lokaciji Processing tada e sigurno automat A u konanici prei u lokaciju Idle.

Agenda
1 2 3 4 5

Uvod Vremenski automati UPPAAL Verifikacija Subscriber protokola Zakljuak

Zakljuak
Vremenski automati su efikasan formalni jezik za opis ponaanja sistema, pogotovo sistema koji imaju izraene uvjete u vremenskoj domeni. Cilj razvoja UPPAAL-a je uvijek bio da poslui kao platforma u istraivanju vremenskih automata. Kao takav, vrlo je vaan alat koji obezbjeuje fleksibilnu arhitekturu za eksperimentisanje. Postupak verifikacije u UPPAAL-u je efikasan i jednostavan, iz razloga to je sistemom mogue upravljati pomou satova a i injenicom da je omoguena potpuna automatizacija sistema

You might also like