Dijagrami aktivnosti Materijal za predmet Specifikacija i modelovanje

  • Slides: 52
Download presentation
Dijagrami aktivnosti Materijal za predmet Specifikacija i modelovanje softvera

Dijagrami aktivnosti Materijal za predmet Specifikacija i modelovanje softvera

Važna informacija: TEST PRISUSTVA • Prisustvo studenta predavanju se evidentira SAMO AKO JE STUDENT

Važna informacija: TEST PRISUSTVA • Prisustvo studenta predavanju se evidentira SAMO AKO JE STUDENT URADIO TEST PRISUSTVA, BEZ OBZIRA NA SKOR KOJI JE STUDENT OSTVARIO. • Test prisustva se radi korišćenjem platform MTTutor putem Interneta • Test se aktivira u 14: 30 • Test sadrži 5 pitanja • Izrada testa traje 5 minuta

Sadržaj • Dijagram aktivnosti: čemu služi, aspekti modelovanja, primene • Osnovna ideja • Izvršavanje

Sadržaj • Dijagram aktivnosti: čemu služi, aspekti modelovanja, primene • Osnovna ideja • Izvršavanje dijagrama aktivnosti • Akcija i aktivnost • Elementi dijagrama aktivnosti: čvorovi, veze, tokovi, tokeni

Dijagram aktivnosti: čemu služi • Služi za opisivanje ponašanja sistema • Opisuje sekvencu aktivnosti

Dijagram aktivnosti: čemu služi • Služi za opisivanje ponašanja sistema • Opisuje sekvencu aktivnosti ili tok aktivnosti koje se sprovode sa ciljem izvršenja nekog zadatka. • Fokus je na tokovima.

Dijagram aktivnosti: aspekti modelovanja • Naglašava sekvencioniranje i uslove za koordinaciju ponašanja nižeg nivoa

Dijagram aktivnosti: aspekti modelovanja • Naglašava sekvencioniranje i uslove za koordinaciju ponašanja nižeg nivoa a ne vlasništvo klasifikatora nad tim ponašanjima. • Ovi aspekti se uobičajeno zovu model toka kontrole i model toka objekata. • Koraci sekvence – akcije – koordinisani modelima aktivnosti mogu se inicirati: – – – Zato što su druge akcije završile svoje izvršavanje, Zato što su objekti i podaci postali raspoloživi, Zato što se se desili događaji izvan toka.

Dijagrami aktivnosti: primene ● Mnogo šira od modelovanja softvera – primenljivi su na modeliranje

Dijagrami aktivnosti: primene ● Mnogo šira od modelovanja softvera – primenljivi su na modeliranje bilo kakvog ponašanja (poslovni procesi, softverski procesi, radni tokovi) ● U modelovanju softvera aktivnosti obično predstavljaju ponašanja koja se realizuju pozivom metode. ● U poslovnim sistemima aktivnosti mogu da se pokrenu spoljašnjim (pristigla narudžba) ili unutrašnjim (vremenski određen) događajem. ● Dijagrami aktivnosti obuhvataju aktivnosti koje se sastoje od elementarnih koraka zvanih akcije. ● Dijagrami aktivnosti su od UML 2. 0 pretrpeli veoma značajne promene – promovisani su u elemente prve klase.

Dijagram aktivnosti: Osnovna ideja • Funkcionalnost sistema se ostvaruje izvršavanjem aktivnosti. • Izvršavanje aktivnost

Dijagram aktivnosti: Osnovna ideja • Funkcionalnost sistema se ostvaruje izvršavanjem aktivnosti. • Izvršavanje aktivnost se ostvaruje izvršavanjem elementarnih koraka koji se nazivaju akcije. • Izvršavanje se odvija putem tokova koji se sastoje od čvorova koji su međusobno povezani vezama po kojima se kreću tokeni. • Tokeni u sebi nose podatke i/ili upravljačke informacije

Dijagram aktivnosti: izvršavanje ● Iz. Izvršavanje akcije je izvršavanje jedne određene akcije. ● Izvršavanje

Dijagram aktivnosti: izvršavanje ● Iz. Izvršavanje akcije je izvršavanje jedne određene akcije. ● Izvršavanje aktivnosti je izvršavanje aktivnosti koje obavezno uključuje izvršavanje akcija u aktivnosti. ● Svaka akcija u aktivnosti može se, u toku jednog izvršavanja aktivnosti, izvršiti nula puta, jednom ili više puta. ● Za svoje izvršavanje akcija minimalno mora da ima pristup podacima, treba da transformiše i testira podatke i potrebno je sekvencioniranje akcija. ● Specifikacija aktivnosti dozvoljava više (logičkih) niti upravljanja tokom koje se izvršavaju istovremeno i mehanizme sinhronizacije koji osiguravaju izvršavanje aktivnosti specificiranim redosledom.

Dijagram aktivnosti: na jednoj slici

Dijagram aktivnosti: na jednoj slici

Metamodel aktivnosti

Metamodel aktivnosti

Metamodel toka

Metamodel toka

Dijagram aktivnosti: Akcija ● Osnovna jedinica izvršive funkcionalnosti sadržana u aktivnosti; nedeljiva u okviru

Dijagram aktivnosti: Akcija ● Osnovna jedinica izvršive funkcionalnosti sadržana u aktivnosti; nedeljiva u okviru aktivnosti. ● Predstavlja pojedinačni korak u okviru aktivnosti. ● Predstavlja se zaobljenim pravougaonikom (kao i aktivnost, samo je pravougaonik mali i u njemu nema drugih grafičkih simbola, samo ime).

Akcija: izvršavanje ● Izvršavanje akcije predstavlja neku transformaciju ili obradu u modelovanom sistemu ●

Akcija: izvršavanje ● Izvršavanje akcije predstavlja neku transformaciju ili obradu u modelovanom sistemu ● Akcija započinje izvršavanje preuzimanjem tokena sa svojih ulaznih upravljačkih veza i ulaznih pinova. ● Kada se izvršavanje završi, akcija izdaje tokene na svoje izlazne upravljačke tokove i pinove odakle su oni dostupni drugim akcijama.

UML akcije

UML akcije

Modelovanje aktivnosti ● ● ● Modelovanje aktivnosti naglašava zavisnosti ulaza/izlaza, sekvencioniranje, i uslove za

Modelovanje aktivnosti ● ● ● Modelovanje aktivnosti naglašava zavisnosti ulaza/izlaza, sekvencioniranje, i uslove za koordiniranje drugih ponašanja. Koristi sekundarne konstrukte da pokaže koji klasifikatori su odgovorni za ta ponašanja. Fokus je na zadacima koje treba uraditi, sa kojim ulazima, kojim redosledom a ne na tome ko/šta izvršava svaki zadatak.

Dijagram aktivnosti: Aktivnost ● Opisuje sekvencu akcija na bazi modela upravljanja tokom i modela

Dijagram aktivnosti: Aktivnost ● Opisuje sekvencu akcija na bazi modela upravljanja tokom i modela toka objekata. ● Sadrži čvorove (t. j. akcije) i veze. ● Predstavlja se zaobljenim pravougaonikom (kao i akcija, samo se u tom velikom pravougaoniku nalaze i mali pravougaonici koji predstavljaju akcije)

Dijagram aktivnosti: elementi • • Čvorovi Veze Tokovi Tokeni

Dijagram aktivnosti: elementi • • Čvorovi Veze Tokovi Tokeni

Dijagram aktivnosti: zadaci i redosled

Dijagram aktivnosti: zadaci i redosled

Dijagram aktivnosti: Čvorovi ● Akcije izvršavaju zadatke. ● Čvorovi su elementi kojima se predstavljaju

Dijagram aktivnosti: Čvorovi ● Akcije izvršavaju zadatke. ● Čvorovi su elementi kojima se predstavljaju akcije. Postoje tri vrste čvorova: akcioni, upravljački i objektni Akcioni čvorovi operišu direktno nad podacima (vrše računanja, upoređivanja i sl. ) – Upravljački čvorovi, koristeći upravljačke informacije, određuju putanju toka kroz koju će se tokeni kretati od čvora do čvora – vrše kontrolu toka aktivnosti – Objektni čvorovi privremeno skladište tokene dok oni čekaju na kretanje kroz tok. –

Dijagram aktivnosti: Veze ● Čvorovi su povezani usmerenim vezama (grafički simbol linije sa strelicom).

Dijagram aktivnosti: Veze ● Čvorovi su povezani usmerenim vezama (grafički simbol linije sa strelicom). Postoje dve vrste veza: – Veze kontrolnog toka (kontrolne veze): akcija na ciljnom kraju veze (na koju ukazuje strelica) ne može da započne pre nego što se izvorna akcija (od koje veza počinje) ne završi. Samo kontrolni tokeni mogu da prolaze po ovim vezama. – Veze toka objekata povezuju objektne čvorove da obezbede ulaze akcijama. Samo objekti i tokeni podataka mogu da prolaze ovim vezama.

Dijagram aktivnosti: Tokovi ● ● ● Čvorovi su povezani usmerenim vezama tako da formiraju

Dijagram aktivnosti: Tokovi ● ● ● Čvorovi su povezani usmerenim vezama tako da formiraju kompletan graf toka. Funkcionalnost sistema ostvaruje se kretanjem podataka od tekućeg čvora do sledećeg čvora uz izvršavanje akcija koje odgovaraju čvorovima ( intervencije nad podacima, privremeno skladištenje, i rutiranje podataka - određivanje sledećeg čvora u koji će se podaci uputiti iz tekućeg čvora). Rute kojima se podaci mogu kretati kroz graf u ovom procesu nazivaju se tokovi.

Dijagram aktivnosti: Tokeni ● ● ● UML konceptualno modeluje informacije koje se kreću po

Dijagram aktivnosti: Tokeni ● ● ● UML konceptualno modeluje informacije koje se kreću po vezama putem tokena. Akcija ima skup ulaza i počinje da se izvršava tek kada su ti ulazi zadovoljeni. Kada se akcija izvrši, ona obično generiše izlaze koji pokreću drugu akciju. Token može da predstavlja podatak, objekat ili kontrolnu informaciju. Ulazi i izlazi akcija predstavljaju se tokenima.

Dijagram aktivnosti: tokovi i tokeni

Dijagram aktivnosti: tokovi i tokeni

Dijagram aktivnosti: Akcioni čvorovi ● ● Akcije su jedini elementi u UML-u sposobni da

Dijagram aktivnosti: Akcioni čvorovi ● ● Akcije su jedini elementi u UML-u sposobni da vrše upite nad objektima, da ostvare prezistentne efekte nad objektima, pozovu operacije nad objektima. Akcioni čvorovi direktno operišu nad vrednostima podataka koje prime i obezbeđuju izlazne podatke za prosleđivanje drugim akcijama.

Dijagram aktivnosti: Objektni čvorovi ● ● Privremeno skladište podatke i objekte koji čekaju na

Dijagram aktivnosti: Objektni čvorovi ● ● Privremeno skladište podatke i objekte koji čekaju na kretanje kroz aktivnost. Povezani su usmerenim vezama (koje se predstavljaju linijom sa strelicom na vrhu): – Veze toka objekata povezuju objektne čvorove da obezbede ulaze akcijama. Samo objekti i tokeni podataka mogu da prolaze ovim vezama.

Akcioni i objektni čvorovi - Notacija 1: prihvatanje ulaza, startovanje ponašanja, izdavanje izlaza Notacija

Akcioni i objektni čvorovi - Notacija 1: prihvatanje ulaza, startovanje ponašanja, izdavanje izlaza Notacija 1 primenjuje se za isti tip ulaza/izlaza

Akcioni i objektni čvorovi - Notacija 2: prihvatanje ulaza, startovanje ponašanja, izdavanje izlaza Notacija

Akcioni i objektni čvorovi - Notacija 2: prihvatanje ulaza, startovanje ponašanja, izdavanje izlaza Notacija 2 mora se koristiti ako je tip izlaza različit od tipa ulaza.

Redovi čekanja Tokeni mogu: –Da se nagomilaju na ulazima/izlazima. –Da spreče “uzvodna” ponašanja da

Redovi čekanja Tokeni mogu: –Da se nagomilaju na ulazima/izlazima. –Da spreče “uzvodna” ponašanja da preuzimaju nove ulaze. ●Takve situacije se razrešavaju baferovanjem (privremenim skladištenjem) u redove čekanja. ●

Redovi čekanja Tokeni mogu – da se privremeno skladište – da se dele među

Redovi čekanja Tokeni mogu – da se privremeno skladište – da se dele među tokovima Tokeni ne mogu – da teku u više pravaca, ako se ne kopiraju

Parametarski čvorovi aktivnosti primaju i izdaju vrednosti za svako ponašanje koristi tu aktivnost. U

Parametarski čvorovi aktivnosti primaju i izdaju vrednosti za svako ponašanje koristi tu aktivnost. U primeru to je: Amount, Account (pravougaonici na levoj ivici aktivnosti) – ulaz Account (pravougaonik na desnoj ivici aktivnosti - izlaz

Striming parametri Striming: vrednosti se prihvataju i izdaju u toku izvršavanja akcije

Striming parametri Striming: vrednosti se prihvataju i izdaju u toku izvršavanja akcije

Dijagram aktivnosti: Upravljački čvor ● Sažeto rečeno, upravljački (kontrolni) čvor je čvor aktivnosti koji

Dijagram aktivnosti: Upravljački čvor ● Sažeto rečeno, upravljački (kontrolni) čvor je čvor aktivnosti koji se koristi za koordinaciju tokova između drugih čvorova. UML ima sedam vrsta kontrolnih čvorova: – inicijalni čvor – finalni čvor toka – finalni čvor aktivnosti – čvor odluke – čvor spajanja (merge) – čvor račvanja (fork) – čvor združivanja (join)

Čvorovi na početku i kraju aktivnosti: iniciranje i terminiranje Inicijalni čvor Finalni čvor aktivnosti

Čvorovi na početku i kraju aktivnosti: iniciranje i terminiranje Inicijalni čvor Finalni čvor aktivnosti Finalni čvor toka Kontroliše započinjanje aktivnosti koja ga sadrži. U njega se stavlja kontrolni token pri započinjanju aktivnosti. On odmah prosleđuje token na sve svoje izlaze. Prihvata ulaze, prekida izvršavanje aktivnosti koja ga sadrži, uništava sve tokene u svim tokovima aktivnosti. Prihvata ulaze, prekida izvršavanje toka kome pripada; uništava sve tokene koji su ušli u njega, ali ne utiče na druge tokove u aktivnosti

Čvorovi u sredini aktivnosti: odlučivanje i rutiranje Odluka Račvanje Spajanje (merge) Objedinjavanje (join) Prihvata

Čvorovi u sredini aktivnosti: odlučivanje i rutiranje Odluka Račvanje Spajanje (merge) Objedinjavanje (join) Prihvata jedan ili dva ulaza (drugi je ulazni tok odluke) i izdaje izlaz samo na jedan od dva moguća toka u zavisnosti od rezultat evaluacije ulaza (istinito, neistinito). Kopira ulazni tok u više izlaznih tokova. Služi za podršku paralelizmu u aktivnosti. Spaja više ulaznih alternativnih tokova u jedan izlazni tok. Ne objedinjuje tokene. Spaja više ulaznih tokova u jedan izlazni tok sa ciljem sinhronizacije više konkurentnih ulaznih tokova.

Čvor odluke: detalji ● ● ● Ulazni tokovi u čvor mogu biti: objektni tok,

Čvor odluke: detalji ● ● ● Ulazni tokovi u čvor mogu biti: objektni tok, kontrolni tok i poseban ulazni tok odluke. Objektni i kontrolni tokovi ne mogu se međusobno mešati (na ulazu ne mogu da budu i objektni i kontrolni tokovi). Svaki token pristigao u čvor odluke može se uputiti samo na jednu izlaznu vezu. Tokeni se ne dupliciraju. Svaki token ponuđen od strane ulaznih veza nudi se izlaznim vezama. Kojom će se izlaznom vezom token uputiti zavisi od ishoda evaluacije uslova na izlaznim vezama (istinito, nije istinito). Redosled evaluacije uslova na izlaznim vezama nije definisan. Predefinisana opcija "else" dozvoljena je za najviše jednu izlaznu vezu.

Čvor odluke: Ulazni tok odluke ● ● Čvor odluke može da ima i poseban

Čvor odluke: Ulazni tok odluke ● ● Čvor odluke može da ima i poseban ulazni tok koji se zove ulazni tok odluke. Ukoliko takav tok postoji tokeni, koji su ponuđeni putem ulaznog toka odluke i koji su stavljeni na raspolaganje proveri uslova na svakom izlaznom toku, određuju da li će ponuda sa “regularnog” ulaznog toka biti prosleđena kroz taj izlazni tok.

Čvor odluke: Ponašanje ulaza ● ● ● Odluke mogu da imaju i posebno specificirano

Čvor odluke: Ponašanje ulaza ● ● ● Odluke mogu da imaju i posebno specificirano ponašanje ulaza koje je uvedeno je da bi se izbegla redundantna sračunavanja u proverama. Ukoliko je specificirano ponašanje ulaza, svaki token podataka se prosleđuje tom ponašanju pre evaluacije uslova na izlaznim vezama. Izlaz tog ponašanja stavlja se na raspolaganje svakoj evaluaciji uslova na izlaznim vezama.

Ponašanje ulaza: primer korišćenja

Ponašanje ulaza: primer korišćenja

Spajanje (merge): detalji ● ● ● Spaja više ulaznih alternativnih tokova u jedan izlazni

Spajanje (merge): detalji ● ● ● Spaja više ulaznih alternativnih tokova u jedan izlazni tok. Svaki token koji prispe u čvor spajanja odmah se prosleđuju na izlaznu vezu čvora spajanja. Nema nikakvog objedinjavanja tokena. Sve ulazne i izlazne veze moraju da budu ili tokovi objekta ili tokovi kontrola.

Spajanje (merge): Primer spajanja alternativnih tokova

Spajanje (merge): Primer spajanja alternativnih tokova

Objedinjavanje (Join): detalji ● ● Kontrolni čvor koji ima više ulaznih veza i jednu

Objedinjavanje (Join): detalji ● ● Kontrolni čvor koji ima više ulaznih veza i jednu izlaznu vezu i koristi se za sinhronizovanje konkurentnih ulaznih tokova. Podržava paralelizam u aktivnostima. Ima pridruženu specifikaciju objedinjavanja koja je logička funkcija imena promenljivih koja definiše uslov pod kojim će čvor emitovati token. Specifikacija objedinjavanja se evaluira sveki put kada se novi token ponudi nekoj ulaznoj vezi. Evaluacija se ne prekida dolaskom novog tokena, niti se evaluacije startuju konkurentno za istovremeno pristigle tokene. Pretpostavljena specifikacija objedinjavanja je rezervisani string "and" što je ekvivalentno zahtevu da se nudi najmanje jedan token na svakoj ulaznoj vezi.

Objedinjavanje (join): primer

Objedinjavanje (join): primer

Račvanje: detalji ● ● Ima jednu ulaznu vezu i više izlaznih veza i razbija

Račvanje: detalji ● ● Ima jednu ulaznu vezu i više izlaznih veza i razbija jedan ulazni tok u više konkurentnih tokova. Podržava paralelizam u aktivnostima. Tokeni koji dolaze na račvu dupliciraju se po izlaznim vezama. Ako bar jedna izlazna veza prihvati token, prave se njegovi duplikati i jedna kopija prelazi svaku vezu koja prihvata token. Izlazne veze koje nisu prihvatile token zbog neuspeha njihovih odredišta da prihvate token, čuvaju svoju kopiju tokena u implicitnom FIFO redu dok odredište ne bude u stanju da ga prihvati. Ostale izlazne veze ne primaju token.

Račvanje: primer

Račvanje: primer

Dekomponovanje aktivnosti ● ● ● Komplikovanu aktivnost, sa mnogo akcija moguće je, po nekad,

Dekomponovanje aktivnosti ● ● ● Komplikovanu aktivnost, sa mnogo akcija moguće je, po nekad, razložiti na manje celine. Postoje sekvence akcija koje se više puta pozivaju u različitim aktivnostima ili na različitim mestima u istoj aktivnosti. Sve to opravdava potrebu da se aktivnost dekomponuje u delove.

Dekomponovanje aktivnosti: primer

Dekomponovanje aktivnosti: primer

Dekomponovanje aktivnosti: primer

Dekomponovanje aktivnosti: primer

Primer 1: On-line kupovina

Primer 1: On-line kupovina

Primer 2: Obrada narudžbe

Primer 2: Obrada narudžbe

Primer 2: Razrešavanje problema u softveru

Primer 2: Razrešavanje problema u softveru

Dijagrami aktivnosti: zaključak ● Služe za opisivanje ponašanja sistema sa fokusom na tokovima. ●

Dijagrami aktivnosti: zaključak ● Služe za opisivanje ponašanja sistema sa fokusom na tokovima. ● Obuhvataju aktivnosti koje se sastoje od elementarnih koraka zvanih akcije. ● Opisuju sekvencu aktivnosti ili tok aktivnosti koje se sprovode sa ciljem izvršenja nekog zadatka. ● Primena im je mnogo šira od modelovanja softvera – primenljivi su na modeliranje bilo kakvog ponašanja (poslovni procesi, softverski procesi, radni tokovi) ● U modelovanju softvera aktivnosti obično predstavljaju ponašanja koja se realizuju pozivom metode. ● Dijagrami aktivnosti su od UML 2. 0 pretrpeli veoma značajne promene – promovisani su u elemente prve klase.

Preporuka za dalje čitanje ● ● ● Conrad Bock, UML 2 Activity and Action

Preporuka za dalje čitanje ● ● ● Conrad Bock, UML 2 Activity and Action Models, The Journal of Object Technology, 2(4): 44 -53, July-August 2003; dostupno na http: //www. jot. fm/contents/issue_2003_07/column 3. html Conrad Bock, UML 2 Activity and Action Models, Part 2: Actions, The Journal of Object Technology, 2(5): 41 -56, September-October 2003; dostupno na http: //www. jot. fm/contents/issue_2003_09/column 4. html Conrad Bock, UML 2 Activity and Action Models, Part 3: Control Nodes, The Journal of Object Technology, 2(6): 7 -23, November 2003; dostupno na http: //www. jot. fm/contents/issue_2003_11/column 1. html UML 2 specifikacija: http: //www. omg. org/docs/formal/07 -02 -03. pdf