uml pagrindai
DESCRIPTION
UML pagrindai. Elgsenos modeliavimas Lekt. dr. Agnius Liutkevičius. Elgseną aprašančios diagramos. Būsenų ( angl. state, statechart) Sekų ( angl. sequence ) Bendradarbiavimo ( angl. collaboration) Apžvelgta anksčiau: scenarijų (activity). Būsenų diagrama. - PowerPoint PPT PresentationTRANSCRIPT
UML pagrindai
Elgsenos modeliavimasLekt. dr. Agnius Liutkevičius
Elgseną aprašančios diagramos
Būsenų (angl. state, statechart) Sekų (angl. sequence) Bendradarbiavimo (angl. collaboration)
Apžvelgta anksčiau: scenarijų (activity)
Būsenų diagrama
Aprašo visas įmanomas pasirinkto objekto būsenas.
Aprašo perėjimus tarp būsenų. Yra orientuota į vidinius objekto būsenos
kitimus. Naudojama sudėtingiems (elgesio
požiūriu) objektams aprašyti.
Būsenų diagrama
Specifikuoja objekto gyvavimo ciklą, nusakantį visus įmanomus elgesio variantus.
Formalus modelis – automatas (angl. state machine). Aprašomas orientuotu grafu, kurio viršūnės žymi būsenas, o briaunos – perėjimus.
Būsenų diagrama – šio modelio grafinė reprezentacija.
Objekto būsena (1)
Aprašo konkrečią objekto būseną. Yra prieš tai įvykusių įvykių ir veiksmų
rezultatas. Žymima:
Objekto būsena (2)
Pvz.: užklausa (objektas) yra apdorojama (būsena).
Aktyvi (angl. active). Neaktyvi (angl. inactive). Objekto būsenų kitimus nusako perėjimai.
Perėjimas (angl. transition)
Objektas keičia būseną kai kas nors įvyksta.
Perėjimas aprašo pilną objekto reakciją į tam tikrą įvykį.
Žymima rodykle iš vienos būsenos į kitą:
Baigėsi duomenys
Pradinė, galinė būsena
Pradinė būsena (angl. initial state):Nurodo pradinę būseną po objekto sukūrimo;Gali būti tik viena pradinė būsena.
Galinė būsena (angl. final state):Žymi objekto sunaikinimą;Arba bendradarbiavimo (collaboration)
pabaigą.
Pradinė, galinė būsena
Būsenos elementai
Pavadinimas Būsenos atributai Veiksmai (angl.
activities) ir įvykiai (angl. events)
Veiksmai ir įvykiai
Formalus aprašas:event_name argument list ‘/’ action_expression
Standartiniai įvykiai:entryexitdokiti
Perėjimo aprašas
Perėjimas tarp būsenų paprastai yra susietas su įvykiu.
Jei įvykis nenurodytas, perėjimas įvyksta, kai įvykdomi vidiniai būsenos veiksmai (automatinis perėjimas).
Formalus aprašas:[event_siganture] [‘[‘ guard_condition ‘]’] [‘/’ action_expression ‘^’ send_clause]
Perėjimo įvykis
Aprašo įvykį, kuris aktyvuoja perėjimą. Gali aprašyti papildomą informaciją –
įvykio parametrai. Pvz.:
Draw(f:Figure, c:Color)
Perėjimo sąlyga
guard_condition Boolean išraiška. Turi būti tenkinama, kad perėjimas įvyktų. Pvz.:
[t = 20][balance >= amount]
Veiksmai
action_expression – aprašo veiksmus objekto viduje. Pvz.: increase() / n := n + 1
send_clause – aprašo veiksmus susijusius su išoriniais objektais. Pvz.: out_of_fuel()^engine.stop()
Diagramos pavyzdys
<=
<=
Sudėtinės būsenos
Būsena gali turėti keletą vidinių būsenų. Tokia būsena vadinama sudėtine būsena
(angl. superstate), o vidinės būsenos – sub-būsenomis (angl. substates).
Sudėtinės būsenos
Sudėtiniai perėjimai (angl. compound transitions)
Sujungimo taškas (angl. junction point) –perėjimo sąlygos yra tikrinamos prieš pereinant į naują būseną.
Dinaminis išsišakojimas (angl. dynamic choice point) – perėjimo sąlygos yra tikrinamos perėjus į išsišakojimo tašką.
Sudėtiniai perėjimai
Sujungimo taškas Išsišakojimas
UML 2
Papildomai
Rekursyvūs perėjimai Lygiagrečios sub-būsenos Sub-būsenų sinchronizavimas
Sekų diagramos
Sekų diagramos parodo kaip objektai bendrauja tarpusavyje laike.
Naudojama sudėtingų vartojimo atvejų ar veiksmų detalizavimui.
Vertikali ašis žymi laiką, horizontalioje išdėstomi objektai.
Skaitoma iš kairės į dešinę iš viršaus į apačią.
Sekų diagramos elementai Objektai (dalyviai):
Klasių, aprašytų klasių diagramose egzemplioriai;
Vartotojai; Išoriniai objektai.
Aprašoma nurodant: Vardą; Klasę; Klasę ir vardą.
Sekų diagramos elementai
Pranešimai:Žymi informacijos perdavimą iš vieno objekto į
kitą. Pranešimų pavyzdžiai:
Metodo iškvietimas;Signalo perdavimas;Objekto sukūrimas ar sunaikinimas.
Pranešimai numeruojami.
Pranešimų tipai (1)
Asinchroninis
Sinchroninis
Reikšmės gražinimas
Pranešimų tipai (2)
Sinchroninis – tai pranešimas, kuomet kviečiantysis objektas laukia, kol kviečiamas objektas atliks veiksmus, susijusius su pranešimu.
Asinchroninis – tai pranešimas, kuomet kviečiantysis objektas nelaukia, kol kviečiamas objektas atliks veiksmus, susijusius su pranešimu.
Sekų diagramos pavyzdys
Objekto “gyvavimo linija” (lifeline)
Aktyvi / neaktyvi būsena Blokuotas objektas Pranešimas sau Rekursyvus pranešimas Aktyvūs objektai
Objekto “gyvavimo linija” (lifeline)
Objekto sukūrimas Objekto sunaikinimas
Laiko įvertinimas
Sąlyginis modeliavimas (išsišakojimai, ciklai ir pan.)
Lygiagretus vykdymas
Sekų diagramų tipai
Egzemplioriaus (angl. instace) diagrama – skirta aprašyti vieną galimą vykdymo variantą.
Bendra (angl. generic) – aprašo visus galimus vykdymo variantus.
Bendrą diagrama galima gauti apjungiant aibę instance diagramų.
Du lygiai – egzempliorinis (angl. instance) ir specifikavimo (angl. specification).
Bendradarbiavimo diagramos
Aprašo kaip elementai sąveikauja laike ir kaip jie yra susieti tarpusavyje.
Labiau pabrėžiama struktūra ir sąryšiai. Pateikiama ta pati informacija kaip ir sekų
diagramoje, tik kitu aspektu.
Diagramos elementai
Tokie patys kaip ir sekų diagramoje:Objektai;Pranešimai.
Taip pat pateikiama papildoma informacija:Sąryšiai (asociacijų egzemplioriai).
Pranešimo perdavimas
Žymima rodykle šalia sąryšio:
Žingsniai numeruojami – taip perteikiama veiksmų vykdymo seka.
Bendradarbiavimo diagramos pavyzdys
Papildomai
Multiobjektai – atvaizduojama keletas objekto egzempliorių.
Pranešimas į save Asociacijos Rolės
Ačiū už dėmesį