Center odličnosti ICTCenter odličnosti ICT2004-20072004-2007
Predstavitev rezultatov Predstavitev rezultatov raziskovalnega delaraziskovalnega dela
dr. Boštjan Vlaovič, dr. Aleksander Vreže
Univerza v Mariboru
Fakulteta za elektrotehniko, računalništvo in informatiko
Laboratorij za mikroračunalniške sisteme
2/58Iskratel d.o.o., Kranj, 25. 01. 2007
Zasnova sistema brez specifikacije zahtev ne more biti napačna. Lahko je samo presenetljiva.
(povzeto po Willem Louis van der Poel)
3/58Iskratel d.o.o., Kranj, 25. 01. 2007
Pregled vsebine (1)
• Uvod v problematiko• Tvorba modela sistema iz specifikacije v jeziku SDL:
• uporaba formalnega pristopa,• podatkovni tipi,• komunikacija.
• Dopolnitev modela s sondami• Primer verifikacije specifikacije protokola V.76
4/58Iskratel d.o.o., Kranj, 25. 01. 2007
Tehnika preverjanja modelov
5/58Iskratel d.o.o., Kranj, 25. 01. 2007
Primer definicije in algoritma
Definicija 3.22: Proces je dvanajsterica (sdlime; pmlime; fpar;kanal; sigset; stanje; sigin; sigout; časo; sprem; zač; maks), kjer je:
sdlime - ime procesa v specikaciji;
pmlime - ime procesa v modelu sistema;
fpar - množica formalnih parametrov;
kanal - ime pridruženega kanala v modelu sistema;
sigset - množica eksplicitno in implicitno definiranih veljavnih signalov;
stanje - množica eksplicitno definiranih stanj;
sigin - množica signalov, ki jih proces ob sprejemu obravnava;
sigout - množica signalov, ki jih proces pošilja;
časo - množica časovnikov;
sprem - množica spremenljivk;
zač - število primerkov ob zagonu sistema;
maks - maksimalno število dovoljenih primerkov med izvajanjem sistema.
34 definicij
6/58Iskratel d.o.o., Kranj, 25. 01. 2007
Dodatno se preverja:• privzeta vrednost,• zaloga vrednosti,• dedovanje,• št. potrebnih bitov za
opis vseh vrednosti.
Posebnosti:• definicija polj z uporabo
zapisov,• eksplicitna definicija
literalov,• dodatna definicija
podatkovnega tipa za uporabo pri definiciji pridruženih kanalov,
• skrita spremenljivka za modeliranje implicitnega sprejema.
40 algoritmov
7/58Iskratel d.o.o., Kranj, 25. 01. 2007
Podatkovni tipi
V tej fazi smo uspešno modelirali naslednje podatkovne tipe jezika SDL:
standardni podatkovni tipi:
INTEGER,
BOOLEAN,
PId,
NATURAL,
CHARACTER,
CHARSTRING (po privzetem do 32 znakov, OG po privzetem 510),
REAL (cela števila),
TIME (cela števila),
DURATION (cela števila).
podintervalni podatkovni tipi,
zapisi,
polja,
naštevni podatkovni tipi.
8/58Iskratel d.o.o., Kranj, 25. 01. 2007
Pomembnejši rezultati raziskav
• modeliranje podatkovnih tipov:
omejitev: Modeliranje racionalnih podatkovnih podatkovnih tipov s celimi števili.
• modeliranje SDL konstruktov,
• modeliranje dinamične tvorbe procesov s ponovno uporabo pridruženih identikacijskih številk (PId-ov):
omejitev Promele: 256 sočasno aktivnih procesov
• modeliranje konstrukta shrani,
• modeliranje stanja zvezdica.
9/58Iskratel d.o.o., Kranj, 25. 01. 2007
Komunikacija
vrstavhodna
proces 1
vrstavhodna
proces 2 vrstavhodna
vrstavhodna
proces 3
signalna pot
signalna pot
BlokA
proces 1
BlokB
signalna pot
signalna pot
kanal
priključek
Naslavlja se lahko s:
PId-om,
imenom procesa ali
implicitno.
Določijo se lahko dodatne omejitve poti.
10/58Iskratel d.o.o., Kranj, 25. 01. 2007
Analiza potencialnih naslovnikov
BLOCK B;
SUBSTRUCTURE ;
CHANNEL k1
FROM B1 TO B2 WITH sig1;
FROM B2 TO B1 WITH sig1;
ENDCHANNEL;
CHANNEL k2
FROM B1 TO B2 WITH sig1;
FROM B2 TO B1 WITH sig1;
ENDCHANNEL;
BLOCK B1;
SIGNALROUTE sr3
FROM P1 TO P2 WITH sig1;
FROM P2 TO P1 WITH sig1;
SIGNALROUTE sr1 FROM P1 TO ENV WITH sig1;FROM ENV TO P1 WITH sig1;SIGNALROUTE sr2FROM P2 TO ENV WITH sig1;FROM ENV TO P2 WITH sig1;CONNECT k1,k2 AND sr1, sr2; PROCESS P1;PROCESS P2;ENDBLOCK;BLOCK B2;SUBSTRUCTURE ;CHANNEL k22FROM B22 TO ENV WITH sig1;FROM ENV TO B22 WITH sig1;ENDCHANNEL;
CHANNEL k21FROM B21 TO ENV WITH sig1;FROM ENV TO B21 WITH sig1;ENDCHANNEL;CONNECT k1 AND k22;CONNECT k2 AND k21;BLOCK B21;SIGNALROUTE sr1 FROM P1 TO ENV WITH sig1;FROM ENV TO P1 WITH sig1;SIGNALROUTE sr2FROM P2 TO ENV WITH sig1;FROM ENV TO P2 WITH sig1;CONNECT k21 AND sr1, sr2;
PROCESS P1;PROCESS P2;ENDBLOCK;BLOCK B22;SIGNALROUTE sr1FROM P1 TO ENV WITH
sig1;FROM ENV TO P1 WITH
sig1;CONNECT k22 AND sr1;PROCESS P1;ENDBLOCK;
P1P1
P2P2
P2
P1
P1
P2
B
B2
k1k2
sr2sr1sr3
B1
B21sr1 sr2
k21
B22
P1
sr1
k22
P1
k1
k21 k22
k2sr1
sr1 sr2
sr3
sr1
P1
11/58Iskratel d.o.o., Kranj, 25. 01. 2007
Komunikacijski konstrukti
2
4
prio2
s1
a > 5
5
6
a < 5
a := 7
pogoj
1
3
prio1sig1 sig3
s1
sig2
a := 0
s2
sig1caso
caso
a := 07
a = 0
a := 1
sprejem signala
prioritetni sprejem signala
konstrukt shrani
trajni signal in pogojni sprejem
set(NOW+5,caso)
prio1
sig3
prio2
sig1
sig2
prio1
sig3
sig2
sig2
sig1
sig2
caso
caso
sig2
sig2
prio2
sig2
sig1
prio2
sig1
sig2
sig1
sig3
12/58Iskratel d.o.o., Kranj, 25. 01. 2007
Pomembnejši rezultati raziskav
• algoritem za pripravo pridruženega kanala,
• modeliranje naslavljanja s PId,
• modeliranje naslavljanja z imenom procesa,
• modeliranje naslavljanja z uporabo omejevanja poti,
• modeliranje naslavljanja brez specifikacije naslovnika ali poti na osnovi strukture sistema,
• mehanizem za dinamično spremljanje pridružene vhodne vrste,
• modeliranje prioritetnega vhoda,
• modeliranje implicitnega prehoda,
• modeliranje spontanega prehoda,
• modeliranje pogojnega sprejema signala,
• modeliranje časovnika s parametri,
• modeliranje trajnega signala,
• modeliranje vhoda zvezdica.
13/58Iskratel d.o.o., Kranj, 25. 01. 2007
Dopolnitev modela s sondami
Dopolnitev modela s sondami omogoča iskanje:
• zagatnih stanj – veljavna končna stanja se določijo eksplicitno,
• kršitev semantičnih pravil jezika SDL:
• kršitev največjega predvidenega števila primerkov procesa,
• nepravilna uporaba konstrukta odločitev,
• prekoračitev predpisane zaloge vrednosti,
• uporaba spremenljivke, ki ji še ni bila prirejena vrednost,
• iskanje potencialno nepravilnih izvajalnih poti:
• implicitni sprejem,
• eksplicitno označene neželene izvajalne poti,
• iskanje cikličnih izvajalnih poti,
• preverjanje temporalnih lastnosti modela.
14/58Iskratel d.o.o., Kranj, 25. 01. 2007
Primer verifikacije protokola V.76
Laurent Doldi: Validation of Communications Systems with SDL:
the Art of SDL Simulation and Reachability Analysis, Wiley 2003
L_DataReqI
L_ReleaseReq
L_ReleaseInd
DISC
Prekinitev povezavePrenos informacijskega okvirja
L_EstabReq
L_EstabConf
SABME
UA
Vzpostavitev povezave
L_SetparmReq
L_SetparmConf
XIDcmd
XIDresp
Potrditev prisotnosti
L_EstabInd
L_EstabResp
L_SetparmInd
L_SetparmResp
L_DataIndL_ReleaseInd
UA
DLCa DLCb DLCa DLCb
DLCb DLCa DLCb DLCa
15/58Iskratel d.o.o., Kranj, 25. 01. 2007
Sistem V76test
16/58Iskratel d.o.o., Kranj, 25. 01. 2007
Blok DLC[ab]
17/58Iskratel d.o.o., Kranj, 25. 01. 2007
Model okolja
18/58Iskratel d.o.o., Kranj, 25. 01. 2007
Podatki o avtomatski tvorbi modela
Specifikacija sistema v jeziku SDL brez komentarjev … 1304 vrstic.
Model sistema v jeziku Promela … 4627 do 5034 vrstic.
Uporabili smo program sdl2pml, ki implementira rezultate
prve razvojne faze v več kot 100.000 vrsticah programske kode.
Formalno verifikacijo smo izvajali z orodjem Spin, ki je leta 2002
prejelo nagrado ¨Software System Award¨ strokovnega združenja
ACM (implementacija vsebuje okoli 50.000 vrstic programske
kode).
19/58Iskratel d.o.o., Kranj, 25. 01. 2007
Formalna verifikacija modela
Iskanje zagatnih stanj:
1. Označitev veljavnih končnih stanj vsakega procesa.
2. Izvajanje algoritmov za formalno verifikacijo v orodju Spin.
SABMESABME
SABME SABMESABMESABME
SABMESABME
SABMESABME
SABMESABME
SABMESABME
SABMESABME
SABME
environment datalink DLCb
SUb
environment
SUa
DLC
DLCa
DLC
DLCb
dispatch dispatch
DLCa
DLCstoppedDLCstopped
L_EstabReq L_EstabReq
20/58Iskratel d.o.o., Kranj, 25. 01. 2007
Večkratne dopolnitve specifikacije
SABMESABME
SABME SABME
SABME
SABME
Legenda:
shrani
zavrzi
blokiraproces se
environment datalink DLCb
SUa dispatch dispatch
DLCa
L_EstabReq
L_EstabReq
SUb
environment
SABME SABME
SABME SABME
SABME
SABME
SABME
L_EstabReq DLC
DLCb
DLC
DLCb
DLCstopped
L_ReleaseInd
SABME
L_EstabReq DLC
DLCb
DLCstopped
L_ReleaseInd
L_EstabReq
21/58Iskratel d.o.o., Kranj, 25. 01. 2007
Sonde
Kršitev semantičnih pravil jezika SDL nismo našli.
Iskanje potencialno nepravilnih izvajalnih poti je pokazalo sedem implicitnih sprejemov različnih signalov.
Označba vej “else” pri odločitvah je izpostavila izvajalno pot na kateri se ne obravnava ukaz DM.
dispatch
DLCaenvironment
SUa
datalink
XIDcmd XIDcmd
XIDrespXIDresp
DLC
DLCaL_EstabReq
SABME SABME
DLCb
dispatch
environment
SUb
L_SetparmInd
L_SetparmResp
L_EstabInd
L_ReleaseReqDM
(0,T)
DM
L_SetparmReq
L_SetparmConf
L_SetparmResp
22/58Iskratel d.o.o., Kranj, 25. 01. 2007
Temporalne lastnosti
[]!(environment__SUa__V_Data.val == 86)
dispatch
DLCaenvironment
SUa
datalink DLCb
dispatch
environment
SUb
XIDcmd
XIDresp
L_EstabReq
SABME
(0,T) DLC
DLCa
XIDresp
DLC
DLCb(0,F)
UA UA
UA
SABME
XIDcmd
environment__SUa__V_Data.val=86
L_EstabResp
L_EstabInd
L_SetparmResp
L_SetparmInd
L_SetparmReq
L_SetparmConf
L_EstabConf
23/58Iskratel d.o.o., Kranj, 25. 01. 2007
Temporalne lastnosti
24/58Iskratel d.o.o., Kranj, 25. 01. 2007
Pomembnejši rezultati raziskav
•avtomatski vnos trajnih sond za preverjanje skladnosti modela s semantičnimi pravili jezika SDL,
•avtomatski vnos sond za:• veljavna končna stanja,• stanja napredka,• sprejemna stanja,
•avtomatski vnos sond za iskanje potencialno nepravilnih izvajalnih poti,
•avtomatski vnos sond za preverjanje temporalnih lastnosti sistema.
25/58Iskratel d.o.o., Kranj, 25. 01. 2007
26/58Iskratel d.o.o., Kranj, 25. 01. 2007
Protiprimer
27/58Iskratel d.o.o., Kranj, 25. 01. 2007
Pregled vsebine (2)
• Modeliranje diskretnega časa v orodju Spin
• Modeliranje racionalnih števil
• Avtomatsko vključevanje zunanjih gradnikov C v model sistema
• Tvorba modela sistema protokola IUA
28/58Iskratel d.o.o., Kranj, 25. 01. 2007
Orodje DT Spin:
• razvito 1999 (D. Bošnački),
• orodje je razširitev orodja Spin verzije 3.3.10,
• časovnik je predstavljen s spremenljivko.
Prednosti:
• omogoča obravnavo časovnikov v modelu sistema,
• enostavna uporaba časovnikov v modelu sistema.
Slabosti:
• orodje DT Spin je samostojno orodje,
• orodje DT Spin ne sledi razvoju orodja Spin,
• časovna in prostorska zahtevnost formalne verifikacije je odvisna od vrednosti časovnikov.
Modeliranje diskretnega časa
29/58Iskratel d.o.o., Kranj, 25. 01. 2007
Model protokola PAR
Protokol PAR (Parallel Acknowledgment with Retransmission Protocol):
• protokol za enosmerni prenos podatkov, ki se uporablja pri nezanesljivem prenosu,
• pravilnost delovanja protokola je odvisna od časovnih parametrov.proctype Sender(chan in, out) { timer sc; byte mt; bit sn=0; R_h: udelay(sc); mt = (mt+1)%MAX; S_f: delay(sc,dK); out!mt,sn; set(sc,To-dK); . . .}
definicija časovnika
definicija procesnega tipa Sender
aktivacija časovnika
30/58Iskratel d.o.o., Kranj, 25. 01. 2007
Rezultati formalne verifikacije za protokol PAR v orodju DT Spin
31/58Iskratel d.o.o., Kranj, 25. 01. 2007
Model diskretnega časa v jeziku Promela
Motivacija:
• specifikacije realnih telekomunikacijskih sistemov vsebujejo časovnike,
• vrednosti časovnikov so pogosto velike in različne,
• orodje DT Spin ne sledi razvoju orodja Spin,
• jezik Promela nima definiranih konstruktov za obravnavo diskretnega časa.
Model diskretnega časa v jeziku Promela
32/58Iskratel d.o.o., Kranj, 25. 01. 2007
Primer izteka časovnikov
Model diskretnega časa:
• model je skladen z obravnavo časovnikov v Z.100,
• aktivacija in iztek časovnika sta modelirana s pošiljanjem signala
(DT Spin: uporaba spremenljivke),
• za iztek časovnikov skrbi dodaten proces Monitor,
• med procesom Monitor in ostalimi procesi sistema se uporablja sinhrona komunikacija.
33/58Iskratel d.o.o., Kranj, 25. 01. 2007
Rezultati formalne verifikacije za protokol PAR v orodju Spin
34/58Iskratel d.o.o., Kranj, 25. 01. 2007
Fischerjev protokol
Fischerjev protokol:
• zagotavlja medsebojno izključevanje,
• temelji na uporabi skupne spremenljivke in ure diskretnega časa.
35/58Iskratel d.o.o., Kranj, 25. 01. 2007
Rezultati formalne verifikacije Fischerjevega protokola
never{ do :: in_crit > 1 -> break;
:: skip od }
process “never claim”
36/58Iskratel d.o.o., Kranj, 25. 01. 2007
Pomembnejši rezultati raziskav
Modeliranje diskretnega časa v orodju Spin:
• algoritmi za avtomatsko analizo časovnikov,
• priprava ogrodja za uporabo časovnikov,
• edinstveno poimenovanje časovnikov,
• modeliranje aktivacije časovnikov,
• modeliranje izteka časovnikov,
• drugi algoritmi, ki so potrebni za delovanje modela (npr: funkcija za pošiljanje signalov ob dogodku timeout).
37/58Iskratel d.o.o., Kranj, 25. 01. 2007
V specifikacijah sistemov so pogosto uporabljene spremenljivke racionalnega podatkovnega tipa (REAL, TIME, DURATION).
Promela ne podpira uporabe racionalnih števil.
Modeliranje racionalnega podatkovnega tipa lahko v orodju Spin 4.0 ali višje izvedemo na dva načina:
• z uporabo primitivov za vključevanje kode C v model sistema (odpovemo se simulaciji),
• z uporabo dveh celih števil.
Element num predstavlja števec ulomka, element den pa njegov imenovalec.
typedef structRational { int num; int den;}#define real structRational#define time structRational#define duration structRational
Modeliranje racionalnih števil
38/58Iskratel d.o.o., Kranj, 25. 01. 2007
Definicija matematičnih operacij
Ime funkcije Opis Oznaka
add_rat_rat_rat(op1, op2, res) operacija seštevanja +
subtrack_rat_rat_rat(op1, op2, res) operacija odštevanja -
multiply_rat_rat_rat(op1, op2, res) operacija množenja *
divide_rat_rat_rat(op1, op2, res) operacija deljenja /
EQ_rat_rat_bool(op1, op2, res) operator enako =
NEQ_rat_rat_bool(op1, op2, res) operator različno /=
greater_rat_rat_bool(op1, op2, res) operator večje >
greater_EQ_rat_rat_bool(op1, op2, res) operator večje ali enako >=
less_rat_rat_bool(op1, op2, res) operator manjše <
less_EQ_rat_rat_bool(op1, op2, res) operator manjše ali enako <=
assign_rat_int(op1, op2) pretvorba int v real Float
assign_int_rat(op1, op2) pretvorba real v int Fix
assign_rat_rat(op1, op2) prirejanje dveh racionalnih števil :=
init_rat(rac1, stevec, imenovalec) inicializacija racionalnega števila
39/58Iskratel d.o.o., Kranj, 25. 01. 2007
Primera implementacije matematičnih operacij
inline greater_EQ_rat_rat_bool(op1, op2, res){ d_step { tmp_rat_result.num = op1.num * op2.den; tmp_rat_result.den = op1.den * op2.num; if :: tmp_rat_result.num >= tmp_rat_result.den -> res = true; :: else -> res = true; fi; }}
inline add_rat_rat_rat(op1, op2, res){ atomic { tmp_rat_result.den = op1.den * op2.den; tmp_int_result = (op1.num * op2.den) + (op2.num * op1.den); tmp_rat_result.num = tmp_int_result; gcd(); res.num = tmp_rat_result.num; res.den = tmp_rat_result.den; }}
40/58Iskratel d.o.o., Kranj, 25. 01. 2007
Pomembnejši rezultati raziskav
Modeliranje racionalnih števil:
• modeliranje racionalnih števil v jeziku Promela,
• dopolnitev modela diskretnega časa za obravnavo racionalnih vrednosti časovnikov,
• algoritmi analize in pretvorbe tistih konstruktov, ki se zaradi modeliranja racionalnih števil spremenijo (prirejanje spremenljivk, konstrukt synonym),
• modeliranje konstrukta odločitev.
41/58Iskratel d.o.o., Kranj, 25. 01. 2007
Opisi realnih specifikacij v jeziku SDL vključujejo zunanje gradnike.
Vključevanje zunanjih gradnikov je primerno, ko je implementacija:
• v jeziku SDL zahtevna,• algoritma v jeziku SDL manj učinkovita od implementacije v
jeziku C.
Zunanji gradniki so deli programske kode, najpogosteje implementirani v jeziku C, in so vključeni v specifikacijo v jeziku SDL.
Orodje Spin verzije 4.0 ali višje omogoča neposredno vključevanje kode C v model sistema.
Zunanji gradniki
42/58Iskratel d.o.o., Kranj, 25. 01. 2007
Zunanji gradniki
Za opis sistemov v jeziku SDL obstaja več razvojnih orodij. Pri naših raziskavah uporabljamo orodje ObjectGEODE.
Proučiti je potrebno:
• vključevanje kode C v opis sistema v jeziku SDL,
• postopek generiranja kode C iz jezika SDL in
• vključevanje kode C v model sistema v jeziku Promela.
43/58Iskratel d.o.o., Kranj, 25. 01. 2007
Vključitev kode C v jezik SDL
#ifndef u_t_operatorji_h#define u_t_operatorji_h
#ifndef GG_USER_OPER#define GG_USER_OPER#endif
#include "g2_appli.h"
#include "s_modeliranje.h"
#include "b_b1.h"
#include "p_sprejemnik.h"
#ifdef OPERATORS_SIGNATURE
/* * Signature of User Operator izracunajvrednost */SDL_INTEGER gu_T_OPERATORJI_izracunajvrednost
(SDL_INTEGER gc_par_1){ SDL_INTEGER gc_return; /* ... operator body ... */ return(gc_return);} …
#endif
#endif /* not u_t_operatorji_h */
44/58Iskratel d.o.o., Kranj, 25. 01. 2007
Postopek generiranja kode C iz jezika SDL
Orodje ObjectGEODE omogoča uporabo smernic s pomočjo katerih vplivamo na pravila, ki se uporabljajo pri generiranju kode C. Smernice se uporabijo v SDL konstruktu COMMENT.
Smernice:
• #c_bit,• #c_extern,• #c_file,• #c_name,• #c_pointer,• #c_predef,• #inline in• #G2_PRD_FILE.
/* opis v jeziku SDL */NEWTYPE novi_tip STRUCT element1 INTEGER COMMENT '#c_bit 3'; element2 INTEGER COMMENT '#c_bit 4';ENDNEWTYPE novi_tip;
/* koda v jeziku C */typedef struct { SDL_INTEGER fd_element1 :3; SDL_INTEGER fd_element2 :4;} GU_NOVI_TIP;
generiranje kode C
45/58Iskratel d.o.o., Kranj, 25. 01. 2007
Vključevanje kode C v model sistema
V model sistema v jeziku Promela lahko neposredno vključimo kodo C z naslednjimi primitivi:
• c_decl,• c_state,• c_track,• c_code in • c_expr.
c_decl { typedef struct structData { int stevec; } Data; void izpis(int val){ printf("Vrednost je : %d\n", val); }}
c_code {Data data; };c_track "&data" "sizeof(Data)"
active proctype proc(){ c_code { data.stevec = 2;
izpis(data.stevec);}; assert(c_expr{data.stevec == 2 })}
46/58Iskratel d.o.o., Kranj, 25. 01. 2007
Algoritmi za avtomatsko vključevanje kode C v model sistema
Algoritme delimo v dva sklopa:
• algoritmi za analizo in pretvorbo konstruktov jezika SDL:• analiza konstrukta OPERATORS,• analiza smernic,• vključevanje zunanjih operatorjev v model sistema,• ustrezna dopolnitev pretvorbe konstrukta TASK,
• algoritmi za analizo in dopolnitev kode C:• analiza kode C in njena dopolnitev za vključevanje v model
sistema,• analiza uporabniško definiranih podatkovnih tipov v kodi C,• analiza prenosa parametrov funkcij (pravilen prenos
parametrov pri klicu operatorja v modelu sistema).
47/58Iskratel d.o.o., Kranj, 25. 01. 2007
Pomembnejši rezultati raziskav
Zunanji gradniki:
• algoritmi analize konstrukta OPERATORS,
• algoritmi za analizo zunanjih gradnikov v jeziku C,
• algoritmi za avtomatsko vključevanje kode C v model sistema,
• mehanizem za abstrakcijo zunanjih gradnikov in njihovo vključevanje v model sistema,
• algoritmi za iskanje manjkajočih definicij podatkovnih tipov,
• modeliranje procedur.
48/58Iskratel d.o.o., Kranj, 25. 01. 2007
Orodje sdl2pml
Orodje sdl2pml je rezultat implementacije algoritmov iz najinih disertacij.
Orodje je implementirano v jeziku C++, razvito je bilo na operacijskem sistemu Linux. Orodje obsega preko 138.000 vrstic kode.
49/58Iskratel d.o.o., Kranj, 25. 01. 2007
Orodje sdl2pml
Opis sistemav jeziku SDL
sdl2pml.conf+
vhodni parametri
sdl2pml
model sistemav jeziku Promela
rezultat tvorbe modela
avtomatskatvorba modela
vhod v orodje
Vhod v orodje predstavlja konfiguracijska datoteka sdl2pml.conf in specifikacija sistema.
50/58Iskratel d.o.o., Kranj, 25. 01. 2007
Praktičen primer tvorbe modela protokola IUA
Praktičen primer:
• tvorba modela protokola IUA,• specifikacija narejena v podjetju Iskratel d.o.o.,
• protokol IUA se uporablja za prenos signalizacije DSS1 prek omrežja IP.
Postopek tvorbe modela sistema:
• priprava sistema:• tvorba novega sistema iz izvornega sistema,• priprava okolja novega sistema,• abstrakcija zunanjih gradnikov,
• avtomatska tvorba modela sistema z orodjem sdl2pml.
51/58Iskratel d.o.o., Kranj, 25. 01. 2007
Praktičen primer tvorbe modela protokola IUA
CS6111 LA6010AX
Specifikacija sistemav jeziku SDL:
~ 65.000 vrstic
Model sistema v jeziku Promela:
~ 102.000 vrstic
Verifikator v jeziku C:
1.915.803 vrstic
Izvršljiva koda verifikatorja:
54 MiB
52/58Iskratel d.o.o., Kranj, 25. 01. 2007
Povezave blokov IUAsg in IUAcs
53/58Iskratel d.o.o., Kranj, 25. 01. 2007
Grafična specifikacija bloka L3
54/58Iskratel d.o.o., Kranj, 25. 01. 2007
Grafična specifikacija bloka SCTP
55/58Iskratel d.o.o., Kranj, 25. 01. 2007
Grafična specifikacija bloka L2
56/58Iskratel d.o.o., Kranj, 25. 01. 2007
Izsek iz inicializacije sistema IUAsystem
57/58Iskratel d.o.o., Kranj, 25. 01. 2007
Prihodnje raziskave (1)
Kljub večletnim raziskavam so pred nami še številni izzivi.
Verjamemo, da jih lahko v sodelovanju z industrijo in kolegi iz tujine, uspešno rešimo.
Tako si želimo v okviru nadaljnjega dela posvetiti naslednjim raziskavam:
• Tvorba modela in orodje Spin:
• optimalna predstavitev podatkovnih tipov bit in bool pri tvorbi verifikatorja,
• podpora tabelam pri definiciji kanalov v jeziku Promela,• avtomatsko generiranje okolja sistema, • implementacija grafičnega vmesnika orodja sdl2pml,• podpora tvorbe verifikatorja za velike modele.
58/58Iskratel d.o.o., Kranj, 25. 01. 2007
Prihodnje raziskave (2)
• Formalna verifikacija:
• razširitev algoritmov orodja Spin za formalno verifikacijo s podporo paralelnemu izvajanju,
• razvoj metodologije za polavtomatsko pripravo specifikacije zahtev,
• razvoj napotkov za kompozicionalno verifikacijo zahtev,• formalna verifikacija ciljnega sistema s podporo
pri analizi rezultatov,• razvoj naprednih metod testiranja z uporabo
formalnih metod, ipd.