Upload
phamdiep
View
220
Download
0
Embed Size (px)
Citation preview
Projektovanje softvera
Dijagrami aktivnosti
29.10.2014.Dijagrami aktivnosti2
Uvod
� Dijagrami aktivnosti su namenjeni modeliranju dinamičkih aspekata (ponašanja) sistema
� Slični konvencionalnim dijagramima– kontrole toka (flow-chart) – toka podataka (data-flow)
� Prikazuju sekvencijalne i konkurentne korake u procesu obrade� Mogu se koristiti za opis:
– toka poslovnog procesa – toka neke operacije
� Semantika akcija – uvedena u UML1.5– uz definisanje sintakse akcija – formalna specifikacija ponašanja– podrška za izvršive modele
29.10.2014.Dijagrami aktivnosti3
Odnos prema drugim dijagramima
� Dijagram interakcije prikazuje – tok poruka koje se razmenjuju između objekata
� Dijagram stanja prikazuje – tok promene stanja objekta
� Dijagram aktivnosti prikazuje – tok aktivnosti koju izvršavaju objekti– eventualno i tok objekata između koraka aktivnosti
� Dijagram aktivnosti prikazuje ponašanje koristeći modele toka kontrole i toka podataka
29.10.2014.Dijagrami aktivnosti4
Aktivnosti i akcije
� Aktivnost je specifikacija parametrizovanog ponašanja koje se izražava kroz tok izvršenja preko sekvenciranja i konkurisanja podaktivnosti
– elementarne jedinice podaktivnosti – pojedine akcije– aktivnost reprezentuje neatomsku obradu koja se dekomponuje na jedinice
� Simbol aktivnosti: StarUML:
� Akcija je osnovna jedinica specifikacije ponašanja koja reprezentuje neku transformaciju ili obradu u modeliranom sistemu
– akcija je osnovni izvršni element aktivnosti � osnovna jedinica izvršne funkcionalnosti
– akcija predstavlja jedan korak u aktivnosti koji se obično dalje ne dekomponuje– aktivnost predstavlja kontekst akcije
� Simbol akcije: StarUML:ime akcije
akcija
ime aktivnosti
aktivnost
29.10.2014.Dijagrami aktivnosti5
Aktivnosti
� Svaka aktivnost se može predstaviti posebnim dijagramom
� Aktivnost definiše parametrizovano ponašanje – može se ponavljati na više mesta u dijagramu
� Akcija se dešava samo jednom – na datom mestu unutar date aktivnosti
ime aktivnosti
ime aktivnosti
akcija A akcija Bulazni parametar
izlazni parametar
29.10.2014.Dijagrami aktivnosti6
Akcije (1)
� Akcije mogu biti: – pokretanje aktivnosti
� pozivi operacija� slanje signala
– čitanje (vraćanje vrednosti) ili upis (promena stanja) podataka� kreiranje ili uništavanje objekata (vrsta upisa)
– izračunavanje� izvršenje primitivnih (npr. aritmetičkih) operacija i funkcija
� Izvršenje akcije koja pokreće neku aktivnost obuhvata izvršenje te aktivnosti (njenih akcija) - takva akcija nije atomska
� Akcija se može posmatrati i kao diskretan element i kao složeno ponašanje:– kao deo strukture u modelu aktivnosti
� akcija je diskretan element (aktivnosti)– kao specifikacija ponašanja
� akcija može pokrenuti ponašanje (aktivnost) proizvoljne složenosti
29.10.2014.Dijagrami aktivnosti7
Izvršenje a kcije /aktivnosti
� Akcija/aktivnost može biti inicirana iz sledećih razloga: – završeno izvršavanje prethodnih akcija/aktivnosti– objekat je postao raspoloživ– dogodio se spoljašnji događaj (izvan modeliranog toka kontrole)
� Akcija/aktivnost može imati skupove ulaznih i izlaznih grana– one specificiraju tok kontrole ili tok objekata
od i prema drugim čvorovima dijagrama aktivnosti– akcija/aktivnost neće početi izvršenje dok:
� nisu završene sve akcije/aktivnosti koje prethode po ulaznim granama� nisu svi objekti na ulaznim granama raspoloživi� nisu svi ulazni uslovi ispunjeni
– završetak izvršenja jedne omogućava izvršenje skupa sledećih akcija/aktivnosti
� UML 1: stanje akcije reprezentuje izvršenje neke atomske operacije– atomska operacija ne može biti dekomponovana – događaji se mogu dešavati za vreme izvršenja akcije ali ona se neće prekinuti– smatra se da traje beznačajno kratko vreme
29.10.2014.Dijagrami aktivnosti8
Elementi dijagrama aktivnosti
� Dijagrami aktivnosti su grafovi koji sadrže: – čvorove:
� akcije i aktivnosti� objekti� slanja signala (send signal)� prihvatanja događaja (accept event) � prihvatanja vremenskog događaja (accept time event)� kontrolni čvorovi:
– sekvencijalna grananja i spajanja u toku kontrole (decision i merge)– konkurentna grananja i spajanja u toku kontrole (fork i join)
� pseudočvorovi: početni, završni i kraj toka� konektori
– grane:� prelazi (tranzicije) između akcija� tok objekata
29.10.2014.Dijagrami aktivnosti9
Pseudo čvorovi, tranzicije, konektori
� Grafička notacija pseudočvorova:– za početni čvor: – za završni čvor (kraj svih tokova): – za kraj jednog (konkurentnog) toka:
� Prelaz (tranzicija) je legalna putanja od jednog do drugog čvora
� Grafička notacija:– poslednji oblik – izvorište je objekat (ne konkretni, već prototipski - uloga),
a n je broj objekata izvorišta koji se koriste u čvoru aktivnosti (akcije)– specijalne vrednosti: all, null– primer: formiranje fudbalskog tima
� Konektori sa istim imenom predstavljaju jednu tranziciju� Grafička notacija:
ime {weight=n}
A A
Igrač{weight=10}
Golman{weight=1}
Formiranje fudbalskog tima
29.10.2014.Dijagrami aktivnosti10
Sekvencijalna g rananja
� Grananje specificira alternativne putanje kojima će se ići u zavisnosti od uslova
� Isti simbol se koristi za grananje i spajanje sekvencijalnog toka kontrole:
– više grana može izlaziti iz simbola sekvencijalnog grananja (decision)
� uslov se piše u uglastim zagradama na grani� [else] grana – ako nije ispunjen ni jedan uslov
– više grana može ulaziti u simbol sekvencijalnog spajanja (merge)
� Dozvoljeno je kombinovanje grananja i spajanja u jednom kontrolnom čvoru
29.10.2014.Dijagrami aktivnosti11
Primeri grananja i iteracije
� Iteracija se formuliše pomoću grananja� Primeri:
– grananje: iteracija:
postavi iterator
[ kraj ]
radi()
pomeri iterator
[ not kraj ]
petlja sa izlazom
na vrhu
A
B
C
[ uslov ]
[ else ]
grananje
29.10.2014.Dijagrami aktivnosti12
Konkurentna grananja
� Nit kontrole se može u nekoj tački granati na više konkurentnih niti� Račvanja (fork) i udruživanja (join) niti
se obavljaju u sinhronizacionim tačkama� Grafička notacija:
Priprema
Aktivnost 1 Aktivnost 2
Zavrsetak
29.10.2014.Dijagrami aktivnosti13
Tok objekata
� Tok objekta se može naznačiti tako što se (prototipski) objekatpovezuje simbolima prelaza sa akcijama
� Akcije mogu kreirati, čitati, modifikovati ili uništavati objekat� Grafička notacija:
– nožice (pinovi) koje predstavljaju objekat
– alternativna sintaksa:� u pravougaoniku: klasa [stanje]
– tok objekata u UML 1:� isprekidanim strelicama� poseban tok u odnosu na tok kontrole:
paralelno sa granom prelaza između akcija� naziv objekta podvučen
A1 A2K[S] K[S]
K [S]A1 A2
K [S]
A1 A2
29.10.2014.Dijagrami aktivnosti14
Primer
A1
A2[ u1 ]
A3 A4
A8[ else ]
[ u2 ]
A5
A6
A9
[ else ]
početak aktivnosti
akcijauslov
sekvencijalno
spajanje
sekvencijalno
grananje
konkurentno
grananje
konkurentno
spajanje
kraj toka
aktivnost
završetak
aktivnosti O1objekat
A7
29.10.2014.Dijagrami aktivnosti15
Pliva čke staze
� Plivačke staze (swimlanes) specificiraju odgovornosti za delove celokupne aktivnosti
� Nemaju neku duboku semantiku� Staza reprezentuje neki subjekat odgovoran za sprovođenje akcije
– objekat aplikacije ili entitet realnog sveta� Notacija plivačkih staza:
� Akcije pripadaju stazama� Tranzicije mogu prelaziti
iz jedne staze u druguplivačku stazu
subjekat 1 subjekat 2 subjekat 3
A
B
C
D
29.10.2014.Dijagrami aktivnosti16
Hijerarhijske staze i particije
� Hijerarhijska plivačka staza: Višedimenzione particije:dimenzija 1
dim
enzi
ja 2
Part
icija
2.2
Particija 1.1
Part
icija
2.1
Particija 1.2Particija 1
Particija 1.1 Particija 1.2
29.10.2014.Dijagrami aktivnosti17
Primer dijagrama aktivnosti
Napomena:Alat StarUMLprikazuje tok objekata isprekidanim strelicama i podvlači imena objekata.
Kupac Prodavac Magacin
zahtevanje robe
prihvatanje zahteva
placanje
Narudzbenica [predata]
Narudzbenica [prihvacena]
izdavanje robe
isporuka robe
Narudzbenica [popunjena]
Narudzbenica [isporucena]
prijem robe
naplata
Racun [izdat]
Racun [placen]
29.10.2014.Dijagrami aktivnosti18
Izuzeci
� Bacanje i obrada izuzetaka:
� Tok aktivnosti sa:– bacanjem izuzetka– hvatanjem izuzetka i
– nastavkom aktivnosti
Bacanje Hvatanje
ispitni blok
bezbedan blok 2
blok obrade
Izuzetak
bezbedan blok 1
aktivnostkoja bacaizuzetak
aktivnost koja
hvata i obrađuje izuzetaktip izuzetka
29.10.2014.Dijagrami aktivnosti19
Signali i događaji
� Grafička notacija za signale i događaje:– slanje signala– prihvatanje događaja– prihvatanje vremenskog događaja
� npr. čekanje zadato vreme
slanje signala
prijem signala
29.10.2014.Dijagrami aktivnosti20
Primer slanja i prihvatanja signala
� Konkurentno izračunavanje binarne komutativne operacije– (1) sinhrona komunikacija
(2) asinhrona komunikacija
inicijalizacija
racunanje levog operanda
racunanje rezultata operacije
racunanje desnog operanda
cekanje prvog operanda
slanje levog operanda
racunanje levog operanda racunanje desnog operanda
slanje desnog operanda
inicijalizacija
cekanje drugog operanda
racunanje rezultata operacije
29.10.2014.Dijagrami aktivnosti21
Oblast ekspanzije
� Oblast strukturirane aktivnosti koja se izvršava više puta, u skladu sa elementima ulazne kolekcije (ekspanzionog čvora)
– izvršava se jednom za svaki element u ulaznoj kolekciji
� Grafička notacija:
� Stereotipovi oblasti: <<iterative>>, <<parallel>>
ulazni ekspanzioni cvor
izlazni ekspanzioni cvor
29.10.2014.Dijagrami aktivnosti22
Centralni bafer
� Vrsta čvora objekta � Namena: upravljanje tokovima objekata
iz više izvora prema više odredišta� Simbol:
� Primer:
K [S]
<<centralBuffer>>
Proizvodnja 1
Proizvodnja 2
Proizvod [proizveden]<<centralBuffer>>
Potrosnja 1
Potrosnja 2
Proizvod
[proizveden]
Proizvod
[proizveden]
Proizvod[proizveden]
Proizvod
[proizveden]
Proizvod
Magacin
1
Proizvodjac
1
Potrosac
1
<<instantiate>> <<use>>
29.10.2014.Dijagrami aktivnosti23
Skladište podataka
� Vrsta čvora objekata� Namena: opis podataka koji su permanentno na raspolaganju� Razlika u odnosu na centralni bafer
– podaci c. bafera su prolazni, a podaci skladišta podataka su stalni
� Simbol:
� Primer:
K [S]
<<datastore>>
Upis studenta BazaStudenata<<datastore>> Izbor kurseva
Prikaz podataka o studentu
<<selection>>
student.indeks==xx/yyyy