Slika broj 1. Primer dijagrama sekvenci

Similar documents
Biznis scenario: sekcije pk * id_sekcije * naziv. projekti pk * id_projekta * naziv ꓳ profesor fk * id_sekcije

MRS. MRSLab03 Metodologija Razvoja Softvera Vežba 03 LAB Dijagram aktivnosti

Podešavanje za eduroam ios

IZDAVANJE SERTIFIKATA NA WINDOWS 10 PLATFORMI

SIMPLE PAST TENSE (prosto prošlo vreme) Građenje prostog prošlog vremena zavisi od toga da li je glagol koji ga gradi pravilan ili nepravilan.

MRS MRSLab09 Metodologija Razvoja Softvera Vežba 09

MRS MRSLab08 Metodologija Razvoja Softvera Vežba 08

GUI Layout Manager-i. Bojan Tomić Branislav Vidojević

Otpremanje video snimka na YouTube

Eduroam O Eduroam servisu edu roam Uputstvo za podešavanje Eduroam konekcije NAPOMENA: Microsoft Windows XP Change advanced settings

Ulazne promenljive se nazivaju argumenti ili fiktivni parametri. Potprogram se poziva u okviru programa, kada se pri pozivu navode stvarni parametri.

AMRES eduroam update, CAT alat za kreiranje instalera za korisničke uređaje. Marko Eremija Sastanak administratora, Beograd,

NIS PETROL. Uputstvo za deaktiviranje/aktiviranje stranice Veleprodajnog cenovnika na sajtu NIS Petrol-a

Port Community System

Projektovanje softvera. Dijagrami slučajeva korišćenja

SAS On Demand. Video: Upute za registraciju:

KAPACITET USB GB. Laserska gravura. po jednoj strani. Digitalna štampa, pun kolor, po jednoj strani USB GB 8 GB 16 GB.

Uvod u relacione baze podataka

TEHNIKA I INFORMATIKA U OBRAZOVANJU

Tutorijal za Štefice za upload slika na forum.

TRAJANJE AKCIJE ILI PRETHODNOG ISTEKA ZALIHA ZELENI ALAT

ENR 1.4 OPIS I KLASIFIKACIJA VAZDUŠNOG PROSTORA U KOME SE PRUŽAJU ATS USLUGE ENR 1.4 ATS AIRSPACE CLASSIFICATION AND DESCRIPTION

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

STRUČNA PRAKSA B-PRO TEMA 13

3D GRAFIKA I ANIMACIJA

PROJEKTNI PRORAČUN 1

STABLA ODLUČIVANJA. Jelena Jovanovic. Web:

Bušilice nove generacije. ImpactDrill

CJENOVNIK KABLOVSKA TV DIGITALNA TV INTERNET USLUGE

za STB GO4TV in alliance with GSS media

CJENIK APLIKACIJE CERAMIC PRO PROIZVODA STAKLO PLASTIKA AUTO LAK KOŽA I TEKSTIL ALU FELGE SVJETLA

- Vežba 1 (dodatan materijal) - Kreiranje Web šablona (template) pomoću softvera Adobe Photoshop CS

Upute za korištenje makronaredbi gml2dwg i gml2dgn

INSTALIRANJE SOFTVERSKOG SISTEMA SURVEY

Struktura indeksa: B-stablo. ls/swd/btree/btree.html

Relacije spajaju opšta sredstva dok dijagrami grupišu opšta sredstva.

1. Instalacija programske podrške

1.7 Predstavljanje negativnih brojeva u binarnom sistemu

Klasterizacija. NIKOLA MILIKIĆ URL:

11 Analiza i dizajn informacionih sistema

Univerzitet u Novom Sadu. Fakultet tehničkih nauka. Odsek za računarsku tehniku i računarske komunikacije. Uvod u GIT

Posmatrani i objekti posmatraci

TRENING I RAZVOJ VEŽBE 4 JELENA ANĐELKOVIĆ LABROVIĆ

Direktan link ka kursu:

IMPLEMENTACIJA PODLOGE ZA SARADNJU KROKI ALATA SA ALATIMA ZA UML MODELOVANJE OPŠTE NAMENE

mdita Editor - Korisničko uputstvo -

UPUTSTVO. za ruter TP-LINK TD-854W/ TD-W8951NB

Mindomo online aplikacija za izradu umnih mapa

Pravljenje Screenshota. 1. Korak

Struktura i organizacija baza podataka

DEFINISANJE TURISTIČKE TRAŽNJE

Projektovanje softvera. Uvod

Priprema podataka. NIKOLA MILIKIĆ URL:

Materijali za pripremu usmenog ispita Predmet: Procesi razvoja softvera

KONFIGURACIJA MODEMA. ZyXEL Prestige 660RU

Ciljevi. Poslije kompletiranja ove lekcije trebalo bi se moći:

LabVIEW-ZADACI. 1. Napisati program u LabVIEW-u koji računa zbir dva broja.

PLAN RADA. 1. Počnimo sa primerom! 2. Kako i zašto? 3. Pejzaž višestruke upotrebe softvera 4. Frameworks 5. Proizvodne linije softvera 6.

Office 365, upute za korištenje elektroničke pošte

Prvi koraci u razvoju bankarskog on-line sistema u Japanu napravljeni su sredinom 60-tih godina prošlog veka i to najpre za on-line, real-time obradu

Nejednakosti s faktorijelima

Asinhronizam: pojmovi sada i kasnije

Tema 2: Uvod u sisteme za podršku odlučivanju (VEŽBE)

BENCHMARKING HOSTELA

JEDINSTVENI PORTAL POREZNE UPRAVE. Priručnik za instalaciju Google Chrome dodatka. (Opera preglednik)

1.UVOD. Ključne reči: upotrebljivost, praćenje, korisnički interfejs, aplikacija

INFORMATIKA II AutoCAD 9. deo. Rudarsko-geološki fakultet Rudarski odsek

TEHNIČKO (TEHNOLOŠKO) OBRAZOVANJE U SRBIJI

VEŽBA 4 TOOLS - RAD SA ALATIMA

VBA moduli. mr Milovan Milivojević dipl. ing. Visa Poslovno Tehnička Škola - Užice

Idejno rješenje: Dubrovnik Vizualni identitet kandidature Dubrovnika za Europsku prijestolnicu kulture 2020.

Upotreba selektora. June 04

Pokretanje izvršnog fajla


Veb portal za aukcijsku prodaju - projekat -

Babylon - instalacija,aktivacija i rad sa njim

Advertising on the Web

Uputstvo za pravljenje i korišdenje biblioteka sa dinamičkim povezivanjem (.dll)

Visoka škola strukovnih studija za informacione i komunikacione tehnologije. SMS Gateway. Dr Nenad Kojić

KAKO GA TVORIMO? Tvorimo ga tako, da glagol postavimo v preteklik (past simple): 1. GLAGOL BITI - WAS / WERE TRDILNA OBLIKA:

UVOD. Uvod. Ključna pitanja: Koji objekti postoje u Toolbox-u? Koje metode Toolbox objekata postoje?

MODEL OBJEKTI - VEZE KONCEPTI MODELA METODOLOGIJA MODELIRANJA

2. Objektno orjentirana analiza i dizajn poslovnih aplikacija, MVC model

Da bi se napravio izvještaj u Accessu potrebno je na izborniku Create odabrati karticu naredbi Reports.

UNIVERZITET U BEOGRADU RUDARSKO GEOLOŠKI FAKULTET DEPARTMAN ZA HIDROGEOLOGIJU ZBORNIK RADOVA. ZLATIBOR maj godine

MikroC biblioteka za PDU format SMS poruke

1. MODEL (Ulaz / Zadržavanje / Stanje)

2. Kreiranje nove baze podataka

POSEBNA POGLAVLJA INDUSTRIJSKOG TRANSPORTA I SKLADIŠNIH SISTEMA

INFORMACIONI SISTEMI ZA PODRŠKU MENADŽMENTU

Aplikacija za podršku transferu tehnologija

Testiranje koda - JUnit. Bojan Tomić

Poglavlje 1 POČETAK RADA SA MICROSOFT OFFICE-OM 2016

RANI BOOKING TURSKA LJETO 2017

Ime sekvence mora biti uključeno u CREATE SEQUENCE iskazu, a svi ostali izrazi su opcioni, ali se savetuje da se uključe svi izraz.

PowerPoint deo Umetanje oblika (shapes)

TEHNIKA I INFORMATIKA U OBRAZOVANJU

Sadržaj: Učenje na daljinu i e-učenje (4) 3 Mala škola programiranja C# (4) 6 Internet komunikacija sa Windows Live

Kako instalirati Apache/PHP/MySQL na lokalnom kompjuteru pod Windowsima

Interaktivni Generator Vizuelnih Simulatora Digitalnih Sistema (IGoVSoDS)

Transcription:

MRS LAB 05 MRSLab05 Metodologija Razvoja Softvera Vežba 05 Dijagram senkvenci Komunikacioni dijagram 1. Dijagram sekvenci Dijagram sekvenci je UML dijagram interakcije. On prikazuje hronologiju prenošenja poruka između objekata u sistemu i učesnika. Mogu se koristiti da ilustruju mogući scenario načina upotrebe, izvršenje operacija, ili jednostavno interakciju između klasa sistema. Može se koristiti jedan ili više sekvencijalnih dijagrama da bi se odredili načini upotrebe, ili da bi se identifikovale sve mogućnosti složenog ponašanja sistema. Jedna od glavnih prednosti dijagrama sekvenci predstavlja to što se mogu prikazati najčešće interakcije, a takođe se lako mogu dodati alternativni ili paralelni scenariji korišćenjem interakcionih fragmenata. Zbog toga, u jednom dijagramu sekvence se može opisati više povezanih interakcija. Slika broj 1. Primer dijagrama sekvenci U primeru gore, učesnik Client šalje narudžbinu. Poruka Place Order kreira objekat Order. Fragment interakcije obrađuje različite mogućnosti za potvrdu narudžbine. Objekat Account i učesnik Manager mogu vršiti interakciju sa narudžbinom u zavisnosti od veličine narudžbine. Kada 1

se pošalje poruka Confirm order započeta je interakcija Process Order. Interakcija se nalazu u drugom dijagramu sekvenci, a ovde je predstavljena preko reference interakcije. 1.1. Analiza slučajeva korišćenja Dijagram sekvenci se može koristiti da bolje objasni slučajeve korišćenja sistema. Ovaj pristup je koristan kod analize zahteva jer može pomoći kod identifikacije klasa i asocijacija koje nisu uočene na početku. Često je potrebno kreirati više dijagrama kako bi se opisali svi mogući scenariji slučajeva korišćenja. U ovakvim situacijama, dobro je koristiti dijagrame sekvenci kako bi se otkrili svi potrebni objekti pre identifikovanja klasa koje ih instanciraju. Posle identifikovanja klasa, mogu se zaključiti asocijacije između njih na osnovu poruka koje se šalju između objekata. 1.2. Analiza dijagrama klasa Kreiranje dijagrama sekvenci može biti mogućnost da bi se testirao statički model na nivou koncepta: on može predstavljati scenario u kom su klase iz klasnih dijagrama instancirane kako bi se kreirali objekti neophodni za pokretanje scenarija. On dopunjuje dijagram klasa koje predstavlja statičku strukturu sistema tako što definiše ponašanje klasa, interfejsa i moguću upotrebu njihovih operacija. 1.3. Kreiranje dijagrama sekvenci Da bi kreirali novi dijagram sekvenci iz menija u PowerDesigner-u biramo File New Model da bi se prikazao prozor New Model kao na sledećoj slici. Slika broj 2. Kreiranje dijagrama sekvenci 2

U listi tipova modela na levoj strani prozora biramo "Object-Oriented Model". U polju First diagram biramo "Sequence Diagram". 2. Objekti u dijagramu sekvenci U dijagramu sekvenci se najčešće kreiraju sledeći objekti: Učesnik Objekat Alat Simbol Opis Spoljašnja osoba, proces ili nešto što vrši interakciju sa sistemom, podsistemom ili klasom. Objekat Predstavlja klasu. Aktivacija Vreme potrebno da se izvrši procedura ili funkcionalnost. Referenca interakcije Fragment interakcije Referenca na drugi dijagram sekvenci. Kolekcija povezanih poruka. Poruka Rekurzivna poruka Poruka poziva procedure Samopozivajuća poruka Komunikacija koja prenosi informacije Rekurzivne poruke: objekat koji šalje je i objekat koji prima. Poruka poziva procedure sa podrazumevanom aktivacijom. Rekurzivna poruka poziva procedure sa podrazumevanom aktivacijom. Povratna poruka Rekurzivna povratna poruka Specificira kraj procedure. Najčešće je povezana sa pozivom procedure, povratna poruka može biti izostavljena jer se podrazumeva na kraju aktivacije. Rekurzivna poruka sa povratkom toka kontrole. Slika broj 3. Objekti dijagrama sekvenci 3

2.1. Učesnik Učesnik je spoljašnji korisnik ili grupa korisnika koji vrše interakciju sa sistemom. Učesnici mogu biti ljudi ili drugi spoljašnji sistemi. Učesnici su uglavnom oni entiteti čije ponašanje ne možemo da kontrolišemo ili menjamo, jer oni nisu deo sistema koji opisujemo. U dijagramima sekvenci učesnik ima liniju života koja predstavlja vreme njegovog života. Učesnik se ne može razdvojiti od svoje linije života. Ukoliko je učesnik taj koji započinje interakciju, on je obično predstavljen prvom (skroz levom) linijom života u dijagramu sekvenci. Ukoliko imamo nekoliko učesnika u dijagramu, treba pokušati da se oni smeste tako da predstavljaju skroz leve ili skroz desne linije života jer su učesnici po svojoj definiciji spoljašnji učesnici sistema. Ticket SD theater admin server customer insert card pick date offer seat select seat submit order Slika broj 4. Primer učesika 2.2. Objekat Objekat se definiše kao deo sistema koji se opisuje. Mogu se predstaviti tri moguće situacije vezane za prikaz objekta: objekat nije instanca klase - on ima samo ime objekat predstavlja instancu klase - ima ime i klasu objekat predstavlja instancu klase ali zapravo predstavlja bilo koju instancu klase - ima klasu ali nema ime. U dijagramima sekvenci objekat ima liniju života: to je isprekidana vertikalna linija koja se nalazi ispod simbola za objekat. Prolazak vremena se na stranici uvek prikazuje na dole. Linija 4

života objekta prikazuje period tokom kojeg objekat postoji. Objekat se ne može odvojiti od svoje linije života. Ukoliko je objekat kreiran ili uništen tokom vremenskog perioda koji se prikazuje na dijagramu, onda njegova linija života počinje ili se završava u odgovarajućoj tački. Objekti se pojavljuju na vrhu dijagrama. Oni među sobom razmenjuju poruke. Objekat koji postoji kada razmena poruka počne je prikazan na vrhu dijagrama, iznad prve strelice koja predstavlja poruku. Linija života objekta koji i dalje postoji kada je transakcija završena, se nastavlja ispod poslednje strelice poruke. Caller Receiver Lift receiver Ringing tone Slika broj 5. Objekti i linije života (timeline) 2.3. Aktivacija Aktivacije predstavljaju opcione simbole koji prikazuju vreme potrebno da se neka akcija izvrši. Oni se kreiraju na liniji života objekta. Oni su čisti simboli i nemaju svoju stranicu sa osobinama. Aktivaciji se mogu pridružiti ili se sa nje mogu ukloniti poruke. Takođe je moguće promeniti veličinu aktivacije, pomerati je ili prouzrokovati da aktivacija preklopi druge aktivacije. Aktivacija se automatski kreira kada se kreira poruka poziva procedure. 2.4. Referenca interakcije Referenca interakcije se koristi da predstavi jedan dijagram sekvenci koji se nalazi u telu drugog. Ovo osobina omogućava da se često korišćene interakcije grupišu u module i više puta koriste u nizu dijagrama sekvence. U sledećem primeru korisnik mora da se loguje na sistem pre nego što bude u mogućnosti da pristupi stranici sa računima na web aplikaciji. Pošto će se proces logovanja pojavljivati kao deo velikog broja interakcija sa web aplikacijom, on je izdvojen u poseban dijagram sekvenci koji se naziva Log In, i predstavljen je pomoću reference interakcije: 5

Account Page User ref Log In() request Slika broj 6. Referenca interakcije Referenca interakcija se može pomerati, može joj se menjati veličina, itd. Kada simbol preklopi liniju života objekta, on se povezuje sa objektom automatski, a ova povezanost je prikazana sa malim ispupčenjem na gornjoj strani simbola gde se on susreće sa linijom života. Ukoliko pomerimo simbol od linije života objekta, on automatski prestaje da bude povezan. 2.5. Fragment interakcije Fragment interakcije omogućava da se grupišu povezane poruke u dijagramu sekvenci. Dostupni su različiti predefinisani tipovi fragmenata koji omogućavaju da se navedu drugačiji ishodi, paralelne poruke ili petlje. U sledećem primeru, korisnik šalje zahtev ka stranici sa računima. Dva različita odgovora i uslova od kojih oni zavise su sadržana u fragmentu interakcije. Account Page User request alt [Approved] Yes [Not Approved] No Slika broj 7. Fragment interakcije Osobine fragmenta interakcije se mogu menjati iz njegove stranice sa osobinama. Da bi se otvorila stranica sa osobinama za fragment interakcije, potrebno je dvokliknuti levim tasterom miša na gornji levi deo simbola blizu taga operator. Najčešće korišćene osobine iz taba General su: 6

Operator - određuje tip fragmenta. Može se birati između: o Alternative (alt) - fragment je podeljen na dva ili više međusobno isključivih regiona, pri čemu svaki od njih ima pridružen uslov. Poruka iz samo jednog od ovih regiona će biti izvršena u vreme izvršavanja programa. o Assertion (assert) - interakcija se mora desiti tačno onako kako je navedeno ili će biti neispravna o Break (break) - ako je pridruženi uslov tačan, prethodna interakcija se završava na kraju fragmenta o Consider (consider) - samo prikazane poruke su važne o Critical Region (critical) - ni jedna spoljašnja poruka ne može učestvovati u interakciji dok se date poruke ne izvrše o Ignore (ingore) - određene beznačajne poruke nisu prikazane o Loop (loop) - fragment interakcije će biti ponovljen određen broj puta o Negative (neg) - interakcija je nevalidna i ne može se desiti o Option (opt) - interakcija se dešava samo ako je uslov ispunjen o Parallel (par) - fragment je podeljen u dva ili više regiona, pri čemu će svi biti izvršeni u paraleli u vreme izvršavanja programa o Strict Sequencing (strict) - redosled poruka je strogo zadat o Weak Sequencing (seq) - redosled poruka je zadat na svakoj liniji života ali ne i između linija života Stereotip - proširuje značenje objekta izvan UML definicija Uslov - navodi bilo koji uslov koji je pridružen fragmentu. Ovo može biti provera varijable (npr. X > 3) ili u fragmentu petlje navođenje minimalne i maksimalne vrednosti koje predstavljaju broj izvršavanja (npr. 1,10). Za operatore Consider i Ignore ovo polje prikazuje listu pridruženih poruka. Ovo polje nije dostupno ukoliko fragment ne podržava uslove. Fragment interakcije se može pomerati, može se menjati njegova veličina, itd. Kada simbol preklopi liniju života objekta, on se povezuje sa objektom automatski, a ova povezanost je prikazana sa malim ispupčenjem na gornjoj strani simbola gde se on susreće sa linijom života. Ukoliko pomerimo simbol od linije života objekta, on automatski prestaje da bude povezan. 2.6. Poruka Poruka predstavlja komunikaciju između objekata. Objekti mogu sarađivati korišćenjem više tipova zahteva (pošalji signal, pozovi operaciju, kreiraj objekat, obriši postojeći objekat, itd.). Svi ovi zahtevi predstavljaju poruke. Poruka ima objekat ili učesnika koji je šalje, objekat ili učesnika koji je prima i akciju. Akcija se izvršava na objektu ili učesniku koji primaju poruku. Mogu se kreirati i rekurzivne poruke pri čemu isti objekta i šalje i prima poruku. Simbol za poruku je strelica koja pokazuje smer poruke. Pored ovoga poruka može sadržati: broj koji ukazuje redosled u kom će se poruke izvršavati ime poruke uslov povratnu vrednost argument 7

U dijagramima sekvenci poruka je prikazana kao horizontalna puna linija koja ide od linije života jednog objekta ili učesnika do linije života drugog objekta ili učesnika. Linija na sebi ima ime poruke. U dijagramima sekvenci može se birati između sledećih tipova poruka: poruka rekurzivna poruka poruka poziva procedure samopozivajuća poruka povratna poruka rekurzivna povratna poruka Osobine poruke se mogu menjati iz njene stranice sa osobinama. Da bi se otvorila ova stranice, potrebno je da se dvoklikne levim tasterom miša na simbol poruke. Najčešće korišćene osobine u karticama su: General o Name - navodi ime stavke, koje treba da bude jasno i da pokriva značenje stavke o Code - navodi tehničko ime objekta koje se koristi za generisanje koda ili skripti o Comment - opisni komentar poruke o Sequence number - omogućava da se manuelno dodaju brojevi redosleda poruka. Uglavnom se koristi u komunikacionim dijagramima da bi opisao redosled poruka, ali se može koristiti i u dijagramima sekvenci o Stereotype - proširuje značenje poruke izvan UML definicija o Sender - učesnik ili objekat iz kog kreće poruka. Pomoću alata koji su dostupni sa desne strane ove stavke moguće je kreiranje novih objekata, pregled stabla dostupnih objekata ili osobine trenutno odabranog objekta. o Receiver - učesnik ili objekat u kom se poruka završava. Pomoću alata koji su dostupni sa desne strane ove stavke moguće je kreiranje novih objekata, pregled stabla dostupnih objekata ili osobine trenutno odabranog objekta. Pored ovoga nalazi se i dugme Reverse direction pomoću kog se mogu zameniti Sender i Receiver. Smer poruke se ne može zameniti ako je to poruka koja kreira ili uništava objekat. Detail o Action - navodi tipove akcija poruke. Može se birati između: Create - objekat koji šalje poruku instancira i inicijalizuje objekat koji prima poruku. Poruka sa akcijom kreiranja je prva poruka između pošaljioca i primaoca. Destroy - objekat koji šalje poruku uništava objekat koji prima poruku. Oznaka X se prikazuje na liniji života objekta koji prima poruku. Poruka sa akcijom uništenja je poslednja poruka između pošaljioca i primaoca. Self-Destroy - dostupna je samo ako je osobina toka kontrole podešena na Return. Objekat koji šalje poruku upozorava objekat koji prima poruku da će da uništi sebe. Oznaka X se prikazuje na liniji života objekta koji prima poruku. Poruka sa akcijom samouništenja je poslednja poruka između pošaljioca i primaoca. o Control flow - navodi način na koji se poruka šalje. Može se birati između: Asynchronous - objekat koji šalje poruku ne čeka rezultat, već radi nešto drugo u međuvremenu. 8

Procedure Call - poziv procedure. Sekvenca se završava pre početka sledeće sekvence. Objekat koji šalje mora čekati odgovor ili kraj aktivacije. Return - uglavnom se povezuje sa pozivom procedure. Može biti izostavljena jer se podrazumeva na kraju aktivacije. Undefined - nije definisan tok kontrole. o Operation - povezuje poruku sa operacijom iz klase. Ukoliko je primalac poruke objekat, i objekat ima klasu, poruka, kao dinamički tok informacija, poziva operaciju. Na osnovu ovoga, moguće je povezati poruku sa postojećom operacijom klase, ali takođe i operacijama definisanim u klasama roditeljima, ili se može kreirati operacija iz liste operacije u stranici sa osobinama poruke. Ukoliko je operacija povezana sa porukom, moguće je zameniti ime poruke sa imenom metode koju objekat proziva. o Arguments - argumenti operacija o Return value - povratna vrednost funkcije o Predecessor list - lista koja govori koje poruke se moraju izvršiti pre trenutne poruke. Npr. poruke 1,2,4 se moraju izvršiti pre poruke 3 se zapisuje "1,2,4/3" o Condition - uslov povezan sa porukom o Begin time - vreme definisano od strane korisnika koje služi da se zadaju ograničenja. Npr. vreme početka = t1, vreme završetka = t2, ograničenje = {t2 - t1 < 30 sec} o End time - vreme definisano od strane korisnika koje služi da se zadaju ograničenja. o Support delay - navodi da poruka može imati trajanje. Simbol poruke može ići na dole. Ukoliko ova opcija nije odabrana, slanje poruke je trenutno a simbol je horizontalan. Ova opcija nije dostupna kod rekurzivnih poruka. 2.7. Tok kontrole U podrazumevanom slučaju, poruka ima nedefinisan tok kontrole. Ukoliko želimo da učinimo dijagram čitljivijim, možemo dodati povratnu strelicu kako bi pokazali tačno vreme kada se akcija vraća pošaljiocu. Object_1 Object_2 Object_3 Message_1 Message_2 explicit return Slila broj 8. Primer Toka kontrole 9

U zavisnosti od toka kontrole menja se i simbol kao što je prikazano u sledećoj tabeli: Tok kontrole Asynchronous Simbol Procedure Call Return Undefined 2.8. Poruka za kreiranje objekta Slika broj 9. Prmeri vrste tokova kontrole Poruka može kreirati objekat ako je to prva poruka koju objekat prima i ako osobinu poruke Action postavimo na Create. Ne može se kreirati učesnik niti se koristiti kreiranje kod rekurzivnih poruka. Licence Manager Create User 2.9. Poruka za uništavanje objekta Slika broj 10. Primer poruke za kreiranje objekta Poruka može uništiti objekat ukoliko je to poslednja poruka koju je objekat primio i ako osobinu Action postavimo na Destroy. Ne može se uništiti učesnik niti se koristiti uništavanje kod rekurzivnih poruka. Linija života objekta koji je uništen je označena sa X u tački preseka linije života i poruke. Postoje dve forme poruke uništavanja: poruka uništavanja poruka samouništavanja 10

Licence Manager User Destroy Licence Manager User Self Destroy Slika broj 11. Primer poruke uništavanja i poruke samouništavanja 2.10. Kreiranje rekurzivnih poruka Poruka je rekurzivna kada objekat sam sebi šalje poruku. U ovom slučaju strelica počinje i završava se na liniji života istog objekta. Licence Manager Application findappl addlicence 2.11. Poruke i kapije Slika broj 12. Primer rekurzivnog poziva U UML-u 2, može se slati poruka ka i od frejma interakcije koji okružuje dijagram sekvenci. Frejm predstavlja spoljašnju ivicu sistema (ili dela sistema) koji se modeluje i može služiti kao zamena za učesnika. Za poruku koja polazi iz tačke na frejmu se kaže da je poslata sa ulazne kapije, dok se za poruku koja stiže do frejma kaže da je stigla iz spoljašnje kapije. 11

Primer: Naručivanje robe: SequenceDiagram_1 OrderController CheckController StockController AccountController Customer ProcessOrder CheckOrder OrderStatus alt Order refused RefuseMessage Else Reserve CreateInvoice OrderMessage Slika broj 13. Primer kapija 12

3. Komunikacioni dijagram Komunikacioni dijagram je UML dijagram interakcije koji opisuje određenu funkcionalnost sistema tako što prikazuje skup hronoloških interakcija između objekata. On se može koristiti da ilustruje moguće načine upotrebe, izvršenje operacija ili način interakcije između klasa u sistemu. Može se koristiti jedan ili više komunikacionih dijagrama da bi se prikazale sve mogućnosti složenih sistema. Komunikacioni dijagram prikazuje isti tip informacija kao i sekvencijalni dijagram, sa razlikom da se koncentriše na strukturu objekata umesto na redosled poruka koje se između njih razmenjuju. Komunikacioni dijagram prikazuje učesnike, objekte, njihove komunikacione linkove (koji se nazivaju i linkovi instanci) i poruke koje se razmenjuju između njih. Redosled u kom se poruke razmenjuju se prikazuje pomoću sekvence brojeva. 1: call receiver Caller Exchange 3: answer phone 2: phone rings Receiver 3.1. Analiza slučajeva korišćenja Slika broj 14. Primer komunikacionog dijagrama Komunikacioni dijagrami se mogu koristiti da bolje pojasne slučajeve korišćenja ili ponašanje sistema. Ovaj pristup je koristan kod analize zahteva jer može pomoći da se identifikuju klase i asocijacije koje nisu uočene na početku. Često je potrebno kreirati više dijagrama da bi se opisali svi slučajevi korišćenja. U ovakvim situacijama, može biti korisno da se kreira komunikacioni dijagram da bi se otkrili svi značajni objekti pre identifikovanja klasa koje ih instanciraju. 3.2. Analiza dijagrama klasa Kreiranje komunikacionog dijagrama može biti prilika da se testira statički model na nivou koncepta. On može predstavljati scenario u kom su klase iz dijagrama klasa instancirane da bi se kreirali objekti koji su neophodni da bi se scenario pokrenuo. On dopunjuje dijagram klasa koji predstavlja statičku strukturu sistema jer navodi ponašanje klasa, interfejsa i moguću upotrebu njihovih operacija. 13

4. Objekti u komunikacionom dijagramu U komunikacionom dijagramu se kreiraju sledeći objekti: Objekat Alat Simbol Opis Učesnik Spoljašnja osoba, proces ili nešto što vrši interakciju sa sistemom, podsistemom ili klasom. Objekat Instanca klase. Link instance Poruka Komunikacioni link između dva objekta Interakcija koja prenosi informacije Slika broj 15. Objekti komunikacionog dijagrama 4.1. Učesnik Učesnik je spoljašnji korisnik ili grupa korisnika koji vrše interakciju sa sistemom. Učesnici mogu biti ljudi ili drugi spoljašnji sistemi. Učesnici su uglavnom oni entiteti čije ponašanje ne možemo da kontrolišemo ili menjamo, jer oni nisu deo sistema koji opisujemo. U komunikacionim dijagramima učesnik može biti povezan sa objektom preko linka instance i može slati ili primati poruke. 4.2. Objekat Objekat se definiše kao deo sistema koji se opisuje. Mogu se predstaviti tri moguće situacije vezane za prikaz objekta: objekat nije instanca klase - on ima samo ime objekat predstavlja instancu klase - ima ime i klasu objekat predstavlja instancu klase ali zapravo predstavlja bilo koju instancu klase - ima klasu ali nema ime. 4.3. Link instance Link instance predstavlja konekciju između dva objekta. On se prikazuje kao puna linija između dva objekta. Može biti prikazan između: dva objekta objekta i učesnika Simbol za link instance može sadržati i više poruka koje su povezane sa njim. Link instance sadrži redosled poruka koje su pridružene za njega. 14

4.4. Poruka Poruka predstavlja komunikaciju između objekata. Objekti mogu sarađivati korišćenjem više tipova zahteva (pošalji signal, pozovi operaciju, kreiraj objekat, obriši postojeći objekat, itd.). Svi ovi zahtevi predstavljaju poruke. Poruka ima objekat ili učesnika koji je šalje, objekat ili učesnika koji je prima i akciju. Akcija se izvršava na objektu ili učesniku koji primaju poruku. Mogu se kreirati i rekurzivne poruke pri čemu isti objekta i šalje i prima poruku. Simbol za poruku je strelica koja pokazuje smer poruke. U komunikacionom dijagramu svaka poruka je povezana sa linkom instance. Link instance može imati više pridruženih poruka, ali svaka poruka može biti pridružena samo jednom linku instance. Uništavanje linka instance uništava sve poruke pridružene njemu. Za vežbu na času / Domaći zadatak Kreirati sekvencijalni i komunikacioni dijagram za učenika koji koristi sistem školske biblioteke. Za dati sistem potrebno je kreirati dijagrame za iznajmljivanje knjiga i dijagrame za vraćanje knjiga. Sistem treba da pruži sledeće funkcionalnosti: upravljanje korisnicima o prijavljivanje na sistem o odjava sa sistema upravljanje knjigama o pretraga knjiga o upis u listu čekanja usluge iznajmljivanja knjiga o iznajmljivanje knjige o vraćanje knjige o računanje vremena do kada knjiga treba da bude vraćena formiranje izveštaja o pregled knjiga koje je učenik pročitao o izveštaj o nevraćenim knjigama Sistem radi na sledeći način: Učenik se prvo prijavljuje na sistem i zahteva knjigu koja mu je potrebna. Nakon ovoga se vrši pretraga dostupnih knjiga u biblioteci. Ukoliko je knjiga zauzeta, on se upisuje u listu čekanja. Ako je knjiga nije zauzeta, učenik iznajmljuje knjigu i dobija informaciju do kada mora da je vrati. On tada dobija izveštaj u kome može videti knjige koje nije vratio. Prilikom vraćanja knjige, učenik se prijavljuje na sistem i vraća knjigu. On tada dobija izveštaj u kome može videti knjige koje je pročitao. Za rešavanje zadatka obavezno koristiti Reference interakcije i Fragmente interakcije. Pitanja za obnavljanje gradiva: 1. Čemu služe dijagrami sekvence? 2. Čemu služi učesnik u dijagramima sekvence? 3. Čemu služi objekat? 4. Čemu služi aktivacija? 15

5. Čemu služi referenca interakcije? 6. Čemu služi fragment interakcije? 7. Čemu služi poruka i kakve mogu biti? 8. Čemu služi komunikacioni dijagram? 9. Koji su osnovni elementi u komunikacionim dijagramima? 16