Back to homepage

Grananja i spajanja

y

Na primeru online knjižare prikazan je dijagram aktivnosti. Početni čvor (engl. Initial Node) je mesto gde počinje aktivnost i obavezan je element svakog dijagrama aktivnosti (svaki dijagram aktivnosti mora imati jedan početni i jedan ili više krajnjih čvorova). Nakon ovoga imamo akciju koja se naziva Primljena narudžbenica, a iza te akcije grananje aktivnosti (engl. Fork) koje ima jedan ulazni tok i nekoliko paralelnih izlaznih tokova.

Dijagrami aktivnosti pokazuje da se akcije iz leve i desne grane dijagrama odvijaju paralelno. U suštini to znači da njihov redosled nije važan.

Slika 1

Slika 1

 

Dijagram dozvoljava da izvršilac postupka bira redosled kojim će obavljati pojedine poslove, tj. dijagram utvrđuje samo osnovna pravila redosleda koja se moraju poštovati.

Na osnovu dijagrama, mi možemo prvo pripremiti naručene knjige, poslati fakturu, isporučiti knjigu i naplatiti, ali isto tako dijagram nam dozvoljava da prvo pošaljemo fakturu, pripremimo i isporučimo knjigu pa tek onda izvršimo naplatu, itd.

To je važno u modelovanju poslova, pošto se postupci često odvijaju paralelno. Prilikom paralelnog izvršavanja, neophodna je sinhronizacija.

U tu svrhu koristi se isti grafički simbol kao i za grananje, ali se koristi pri spajanju (engl. Join) aktivnosti. Ukoliko pogledamo primer, uočavamo da ne možemo zaključiti narudžbenicu sve dok se ne završe i isporuka i naplata. To je pokazano oznakom spajanja ispred akcije “Zaključi narudžbenicu”. Izlazni tok spajanja započinje tek kada svi ulazni tokovi dođu do tačke spajanja. Na osnovu dijagrama, možemo zaključiti narudžbenicu tek kada smo naplatili i isporučili knjige.

Slika 1

Slika 2

Možemo zapaziti da čvorovi na dijagramu aktivnosti nemaju naziv aktivnosti, već akcije. Precizno govoreći, aktivnost predstavlja niz akcija, tako da dijagram prikazuje aktivnost koja je sačinjena od akcija.

Uslovno ponašanje se pokazuje odlukama i stapanjima. Odluka (engl. Decision), u verziji UML 1 poznata pod nazivom grana (engl. Branch), ima jedan ulazni tok i više uslovnih izlaznih tokova. Svakom izlaznom toku je pridružen jedan logički uslov, odnosno logički izraz između ugaonih zagrada. Pri svakom nailasku na odluku moguće je nastaviti samo jednim od izlaznih tokova, pa uslovi trebaju biti uzajamno isključivi.

U primeru sa slike, ako je osoba koja je izvršila narudžbenicu pretplatnik, prelazimo na akciju “Hitna isporuka”, inače prelazimo na akciju “Obična isporuka”. Rezervisana reč [else] ukazuje na tok kojim treba nastaviti ukoliko su netačni svi ostali uslovi odluke.

Stapanje (engl. Merge) ima više ulaznih tokova i jedan izlazni. Stapanje označava kraj uslovnog ponašanja započetog odlukom.

Akcije | Dijagram aktivnosti

Akcije se mogu razložiti u podaktivnosti. Akcije koje se odnose na isporuku u prethodnom primeru se mogu definisati kao posebna aktivnost, pa će dijagram aktivnosti dobiti novi izgled. Pomoćni dijagram aktivnosti izgleda:

Slika 3

Slika 3

 

Akcije se mogu realizovati kao podaktivnosti ili kao metode klasa. Podaktivnost se na dijagramu prikazuje simbolom račve, a sintaksa za poziv metode:

ime_klase :: ime_metode

Može se čak napisati i deo koda unutar oznake akcije, ako se akcija ne može opisati pozivom jedne metode.

Dijagrami aktivnosti se koriste za modelovanje dinamičkih aspekata sistema. Na dijagramima se mogu prikazati klase uključujući aktivne klase, interfejse, čvorove i komponente. Na gornjoj slici prikazan je jedan mogući primer za modelovanje toka poslova dok je primer dijagrama aktivnosti u modelovanju operacija prikazan na slici ispod.

Slika 4

Slika 4

 

Kod dijagrama aktivnosti, a posebno kod varijante za modelovanje operacija, postoji jednostavna mogućnost da se izvrši direktni i reverzni inženjering. Tako je za slučaj ovog dijagrama varijanta koda koja se dobija u C++ data kao:

Tačka Linija::presecanje (l:linija){
if(nagib==l.nagib) return Tačka(0,0);
int x=(l.delta-delta)/(l.nagib-nagib);
int y=(nagib*x)+delta;
return Tačka(x,y);
}

Tutorijali - Materijali za učenje