Transcript
Page 1: Predstavitev raziskav 2006

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

Page 2: Predstavitev raziskav 2006

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)

Page 3: Predstavitev raziskav 2006

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

Page 4: Predstavitev raziskav 2006

4/58Iskratel d.o.o., Kranj, 25. 01. 2007

Tehnika preverjanja modelov

Page 5: Predstavitev raziskav 2006

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

Page 6: Predstavitev raziskav 2006

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

Page 7: Predstavitev raziskav 2006

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.

Page 8: Predstavitev raziskav 2006

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.

Page 9: Predstavitev raziskav 2006

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.

Page 10: Predstavitev raziskav 2006

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

Page 11: Predstavitev raziskav 2006

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

Page 12: Predstavitev raziskav 2006

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.

Page 13: Predstavitev raziskav 2006

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.

Page 14: Predstavitev raziskav 2006

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

Page 15: Predstavitev raziskav 2006

15/58Iskratel d.o.o., Kranj, 25. 01. 2007

Sistem V76test

Page 16: Predstavitev raziskav 2006

16/58Iskratel d.o.o., Kranj, 25. 01. 2007

Blok DLC[ab]

Page 17: Predstavitev raziskav 2006

17/58Iskratel d.o.o., Kranj, 25. 01. 2007

Model okolja

Page 18: Predstavitev raziskav 2006

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).

Page 19: Predstavitev raziskav 2006

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

Page 20: Predstavitev raziskav 2006

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

Page 21: Predstavitev raziskav 2006

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

Page 22: Predstavitev raziskav 2006

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

Page 23: Predstavitev raziskav 2006

23/58Iskratel d.o.o., Kranj, 25. 01. 2007

Temporalne lastnosti

Page 24: Predstavitev raziskav 2006

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.

Page 25: Predstavitev raziskav 2006

25/58Iskratel d.o.o., Kranj, 25. 01. 2007

Page 26: Predstavitev raziskav 2006

26/58Iskratel d.o.o., Kranj, 25. 01. 2007

Protiprimer

Page 27: Predstavitev raziskav 2006

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

Page 28: Predstavitev raziskav 2006

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

Page 29: Predstavitev raziskav 2006

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

Page 30: Predstavitev raziskav 2006

30/58Iskratel d.o.o., Kranj, 25. 01. 2007

Rezultati formalne verifikacije za protokol PAR v orodju DT Spin

Page 31: Predstavitev raziskav 2006

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

Page 32: Predstavitev raziskav 2006

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.

Page 33: Predstavitev raziskav 2006

33/58Iskratel d.o.o., Kranj, 25. 01. 2007

Rezultati formalne verifikacije za protokol PAR v orodju Spin

Page 34: Predstavitev raziskav 2006

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.

Page 35: Predstavitev raziskav 2006

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”

Page 36: Predstavitev raziskav 2006

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).

Page 37: Predstavitev raziskav 2006

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

Page 38: Predstavitev raziskav 2006

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

Page 39: Predstavitev raziskav 2006

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; }}

Page 40: Predstavitev raziskav 2006

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.

Page 41: Predstavitev raziskav 2006

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

Page 42: Predstavitev raziskav 2006

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.

Page 43: Predstavitev raziskav 2006

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 */

Page 44: Predstavitev raziskav 2006

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

Page 45: Predstavitev raziskav 2006

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 })}

Page 46: Predstavitev raziskav 2006

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).

Page 47: Predstavitev raziskav 2006

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.

Page 48: Predstavitev raziskav 2006

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.

Page 49: Predstavitev raziskav 2006

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.

Page 50: Predstavitev raziskav 2006

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.

Page 51: Predstavitev raziskav 2006

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

Page 52: Predstavitev raziskav 2006

52/58Iskratel d.o.o., Kranj, 25. 01. 2007

Povezave blokov IUAsg in IUAcs

Page 53: Predstavitev raziskav 2006

53/58Iskratel d.o.o., Kranj, 25. 01. 2007

Grafična specifikacija bloka L3

Page 54: Predstavitev raziskav 2006

54/58Iskratel d.o.o., Kranj, 25. 01. 2007

Grafična specifikacija bloka SCTP

Page 55: Predstavitev raziskav 2006

55/58Iskratel d.o.o., Kranj, 25. 01. 2007

Grafična specifikacija bloka L2

Page 56: Predstavitev raziskav 2006

56/58Iskratel d.o.o., Kranj, 25. 01. 2007

Izsek iz inicializacije sistema IUAsystem

Page 57: Predstavitev raziskav 2006

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.

Page 58: Predstavitev raziskav 2006

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.