Magasabb szintű formalizmus - inf.mit.bme.hu · PDF fileÁllapottérképek...
Transcript of Magasabb szintű formalizmus - inf.mit.bme.hu · PDF fileÁllapottérképek...
1
Magasabb szint formalizmus: llapottrkpek
(statecharts)
dr. Majzik Istvn
BME Mrstechnika s Informcis Rendszerek Tanszk
2
Modellek a formlis ellenrzshez
Alapszint matematikai formalizmusok KS, LTS, KTS
Magasabb szint formalizmusok
SC, PN, CPN, DFN
Mrnki modellek
Modell- transzformcik
Mivel nyjt tbbet
egy magasabb szint
formalizmus?
Hogyan hasznlhat
szoftver szintzisre
s verifikcira?
3
Tartalomjegyzk
Alapelemek
Az llapottrkp szintaxisa
UML 2 statechart diagram
Az llapottrkp szemantikja
UML 2 State Machine szemantika
(Ms szemantika is lehet: pl. Harel-fle szemantika)
llapottrkpek hasznlata
4
Mi az llapottrkpek clja?
llapot alap, esemnyvezrelt rendszerek viselkedsnek megadsra alkalmasak Egy llapotgp viselkedsnek lersa
Reaktv viselkeds: Kls esemnyek hatsra trtn llapotvltst r le
Pl. bejv zenet, jelzs, hvs,
Akcik: az llapottmenetekhez rendelt tevkenysgek, trtnsek
Pl. rtkads, kimen zenet,
Szoksos hasznlat: Begyazott rendszerek: bejv esemnyek feldolgozsa
(pl. robot vezrlse, vagyonvdelmi rendszer, )
Protokollok: zenetek feldolgozsa
5
Alapfogalmak
llapot, aktv llapot Adott felttelek teljeslse (pl. mvelet vgrehajthat)
llapotvltozk adott rtkei
llapottmenet llapot vltozsa
Trigger esemny vlthatja ki Trigger nlkli tmenet: nmagtl kvetkezik be
rfelttel rendelhet hozz llapottmenet csak akkor trtnhet meg, ha az rfelttel igaz
Akci rendelhet hozz llapottmenethez rendelt tevkenysg, trtns
Esemny Aszinkron trtns, paramterei is lehetnek nll elem, esemnyosztly pldnya
rkls: esemny attribtumok bvtse
6
j ignyek a knnyebb hasznlat rdekben
llapotok finomtsa: llapothierarchia
Szuperllapot: alllapotok kzs tulajdonsgaihoz
Konkurens viselkeds lersa
Nem akarunk sorrendi ktttsget megadni (egyidejleg, vagy tetszleges sorrendben vgzett feldolgozs)
Tbbszl / elosztott / prhuzamos vgrehajts esetn
sszetett llapottmenetek
Sztvl, egyesl, feltteltl fgg elgaz tmenet
Emlkezs: Visszatrs egy korbbi aktv llapotkonfigurcira
Visszatrs adott feldolgozshoz kzbens esemny utn
Egy llapotfinomtsi szinten vagy mlyebben is
7
llapotdiagramok s llapottrkpek
llapotdiagram:
Egyszint, egyszer llapotok s tmenetek
Pl. UPPAAL esetn ltott automatk lersa
llapottrkp: az llapotdiagram kiterjesztse
llapothierarchia: llapotok finomtsa
Konkurens rgik: konkurens viselkeds lersa
sszetett tmenetek: sztvl, egyesl, feltteles
Emlkezs: Legutols aktv llapotkonfigurci trolsa
Szintaktikai segdelemek
Ritkn hasznlt (nem intuitv) kiegsztsek
Ksleltetett esemny
Szinkronizcis llapot
8
Egy llapottrkp
On
out
in
Red
Count0
Count1
Count2
CarIn
CarIn
CarIn
Yellow
Green
Red Yellow
On
Off
Shoot
H
CarGo
ManualO
ff
ManualO
n
T1
T4
T2
T3
Camera Count
Off
do/blink
9
Az llapottrkpek szintaxisa (UML szerinti szintaxis)
UML State Machine metamodell
10
11
llapotok: Akcik s llapotfinomts
llapotok: Alapszint modellelem
llapotokhoz ktd akcik:
Belpsi akci (entry / ...)
Kilpsi akci (exit / ...)
Bels aktivitsok (do / ...)
llapotfinomts
Egyszer llapot: nincs finomtsa
OR jelleg finomts: alrendelt alllapotok
Ezek kzl egyszerre egy llapot lehet aktv
AND jelleg finomts: konkurens rgik
Egyidejleg minden egyes rgiban kell legyen aktv llapot!
print_job
entry / init() exit / reset() do / poll() job / print()
15
Plda: llapotfinomts
On Off
Standby
Disconnected
Sound Image
SoundOn
SoundOff
snd mute out in
off
out
on
Picture
Videotext
txt txt
OR jelleg finomts AND jelleg finomts
16
Plda: llapotfinomts
On Off
Standby
Disconnected
Sound Image
SoundOn
SoundOff
snd mute out in
off
out
on
Picture
Videotext
txt txt
Clock
NoClock
clk clk
17
Pszeudo-llapotok
Kezdllapot jelzs: rgiba val belpskor lesz aktv
Minden OR finomtsban egy
Minden AND rgiban egy
Vgllapot jelzs: llapotgp terminls
Emlkez llapotok (history state)
A legutols aktv llapotkonfigurcit trolja
Egyszer emlkez llapot: csak az adott finomtsi szinten
Mlyen emlkez llapot: a mlyebb finomtsi szinteket is
Mit jelent az emlkez llapothoz hzott bemen tmenet?
Tzelsekor a trolt llapotkonfigurciba kerl az objektum
Az emlkez llapot egy hivatkozs a trolt llapotkonfigurcira
Mit jelent az emlkez llapotbl hzott kimen tmenet?
Alaprtelmezett trolt llapotot jell ki arra az esetre, ha elzleg mg nem volt aktv llapot
H
H*
18
Plda: Emlkez llapot
Print_job
Close
Print
Process Proc_ev
Get
Handle
ev1
H
19
llapottrkpek elemei
llapot
llapottmenet
Emlkez llapot
Felttel
Kezdllapot
Vgllapot
llapotcsonk
(Szinkronizci)
StateName
s1 s2
H H*
s1
sn
*
20
(llapot)tmenetek
llapottmenetek megadsa
Szintaxis: trigger [guard] / action
trigger: kivlt esemny
guard: az tmenet rfelttele
Prediktum az llapotvltozk s esemny paramterek felhasznlsval
llapotra val hivatkozs is lehet: is_in(state)
action: akci (mvelet)
akci szemantika: mvelet rszletezse
21
tmenetek specialitsai
Time-out mint trigger:
Fennll, ha az objektum az tmenethez tartoz kiindulsi llapotban tartzkodik vgig az adott idintervallumban
sszetett tmenetek:
Sztvl (fork): konkurens rgikban lv llapotokba val egyttes belps
Egyesl (join): konkurens rgikban lv llapotokbl val egyttes kilps
Elgaz (condition): tbb, rfeltteltl fgg tmenet egyszerstett jellse (szegmensek)
llapothierarchin tvel tmenetek
Megengedett (br nem elegns)
22
Plda: llapottmenetek
Prepare
Phase1
Act1
Phase2
Act2 Act3
Passed
Missed timeout(50)
Failure
error
Work
illegal_activity [fatal] / report_status
[fatal] / report_status
[not_fatal] / recovery
23
Az llapottrkpek informlis szemantikja (UML szerinti szemantika)
24
Szemantika: Hogyan mkdik?
Alapelemek:
llapotgp: Az llapottrkp rja le a viselkedst
Esemnysor + temez: Futtat rendszer (az llapotgp szempontjbl kls elemek)
Esemnysor
temez
llapotgp
e
25
Mit ad meg a szemantika?
Mit tesz az llapotgp egy esemny hatsra llapotgp egy lpse
llapottmenetek tzelnek
jdonsg: egy esemny hatsra tbb konkurens llapottmenet tzelhet
llapotkonfigurci vltozik
Tbb aktv llapot lehet
Aktv llapot minden rgijban kell legyen egy aktv llapot
Aktv llapot OR finomtsban kell legyen egy aktv llapot
Egy OR finomtsban illetve egy rgiban csak egy aktv llapot lehet
Rekurzvan rvnyes
26
A szemantika alaptulajdonsgai
Egyenknt feldolgozott esemnyek
Az temez akkor kld jabb esemnyt, ha az elz feldolgozsa teljes egszben megtrtnt
Stabil llapotkonfigurci kialakult: nincs trigger nlkli tmenet
Esemnyek teljes feldolgozsa (run to completion)
tmenetek maximlis halmaza tzel
Minden engedlyezett tmenet tzel, kivve ha ezt konfliktus megakadlyozza
Ezek tzelse utn dolgozza fel a kvetkez esemnyt
Az esemnyfeldolgozs a szemantika lnyege
Ez alapjn lehet programkd alakjban megvalstani az llapotgpet (forrskd generls)
27
Az esemnyfeldolgozs lpsei 1/4
Kls felttel: temez a stabil konfigurciban lv llapotgpnek egy esemnyt juttat
Engedlyezett tmenetek: Kiindulsi (forrs-) llapot aktv
A kivlasztott esemny az tmenet triggere
Az rfelttelek teljeslnek
Esetek az engedlyezett tmenetek szma alapjn: Ha csak egy van: Tzelhet!
Ha nincs: Halasztott-e az esemny?
Igen: trols, j esemny krse az temeztl
Nem: esemny eldobhat (hats nlkli)...
Ha tbb van: Tzel tmenetek kivlasztsa szksges
Befolysol: A konfliktus
28
Plda: Konfliktus
t4:
t5: t3: t2: t1:
a1 a2
a11 a12 a21
a22
a111
a112 a113
a121
a122
A t1, , t5 tmenetek ugyanazon e esemnyre triggereltek. Melyek nem tzelhetnek egytt?
- Egyszerre nem tzelhetnek: (t1,t2); (t1,t4); (t2,t4); (t3,t4)
- Nem engedlyezett: t5 (forrsllapota nem aktv)
- Egyszerre is tzelhetnek: (t1,t3); (t2,t3);
29
Esemnyfeldolgozs lpsei 2/4
Tzel tmenetek kivlasztsa:
Maximlis szm tmenet, nem lehet kzttk konfliktus
Konkurens tmenetek szimultn tzelse
Konfliktusban lv tmenetek:
Ugyanazt az llapotot hagyjk el, pontosabban az elhagyott llapothalmazok metszete nem res
Konfliktus f