magasabb szintű formalizmus - inf.mit.bme.hu · pdf fileállapottérképek...

Download Magasabb szintű formalizmus - inf.mit.bme.hu · PDF fileÁllapottérképek szerepe az UML 2 esetén •Állapot alapú, eseményvezérelt működés leírása –Aktív objektumok

If you can't read please download the document

Upload: dinhtu

Post on 06-Feb-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 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