dinamički dijagrami - vps.ns.ac.rs · pdf filepredstavlja izraz iz bulove algebre koji mora...

52
Dinami Dinami č č ki dijagrami ki dijagrami

Upload: vuongdat

Post on 18-Feb-2018

220 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

DinamiDinamiččki dijagramiki dijagrami

Page 2: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Formalna Formalna prezentacija treba prezentacija treba da bude koliko god da bude koliko god

je to moguje to mogućće e jednostavna, ali ne jednostavna, ali ne jednostavnija od jednostavnija od

toga.toga.

Pamela ZavePamela Zave

Page 3: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

DinamiDinamiččki modeliki modeli

�� DinamiDinamiččkim modelima se opisuju pojedinakim modelima se opisuju pojedinaččna na ponaponaššanja objekata u sistemu koa i ponaanja objekata u sistemu koa i ponaššanje anje kompletnog sistema koji se modelirakompletnog sistema koji se modelira

�� Tokovi kontrole i podataka ne mogu se Tokovi kontrole i podataka ne mogu se analizirati posmatranjem pojedinih klasaanalizirati posmatranjem pojedinih klasa

�� Neophodno je analizirati njihovu komunikaciju Neophodno je analizirati njihovu komunikaciju koja se realizuje radi ostvarivanja nekog ciljakoja se realizuje radi ostvarivanja nekog cilja

�� Pojedine pojave moraju se posmatrati u sklopu Pojedine pojave moraju se posmatrati u sklopu celineceline

Page 4: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

DinamiDinamiččke karakteristike sistemake karakteristike sistema

Opisuju se pomoOpisuju se pomoćću:u:

�� ObjekataObjekata

�� Uloga objekata u sistemuUloga objekata u sistemu

�� Vezama izmeñu objekataVezama izmeñu objekata

�� Poruka izmeñu objekata i operacija kao Poruka izmeñu objekata i operacija kao odgovor na primljene porukeodgovor na primljene poruke

�� Stanja u kojima se objekti mogu naStanja u kojima se objekti mogu naćći i promena i i promena stanja kao odgovora na primljene porukestanja kao odgovora na primljene poruke

Page 5: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

InterakcijaInterakcija

�� Opisuje naOpisuje naččin na koji objekti meñusobno in na koji objekti meñusobno komunicirajukomuniciraju

�� Predstavlja specifikaciju poruka koju objekti Predstavlja specifikaciju poruka koju objekti meñusobno prosleñuju u toku komunikacijemeñusobno prosleñuju u toku komunikacije

�� DefiniDefinišše se u kontekstu saradnje (kolaboracije)e se u kontekstu saradnje (kolaboracije)

�� Predstavlja se pomoPredstavlja se pomoćću uloga objekata i veza u uloga objekata i veza izmeñu objekata u datom trenutkuizmeñu objekata u datom trenutku

�� Razmena poruka izmeñu objekata predstavlja Razmena poruka izmeñu objekata predstavlja poslatu poruku i odgovor na njuposlatu poruku i odgovor na nju

Page 6: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

PorukaPoruka�� Komunikacija izmeñu objekata ostvaruje se Komunikacija izmeñu objekata ostvaruje se

pomopomoćću porukau poruka

�� PoPoššiljalac je objekat koji prosleñuje porukuiljalac je objekat koji prosleñuje poruku

�� Primalac prima poruku od drugog objektaPrimalac prima poruku od drugog objekta

�� Poruka moPoruka možže predstavljati prosleñivanje signala e predstavljati prosleñivanje signala primaocu, poziv izvrprimaocu, poziv izvrššenja njegove operacije, enja njegove operacije, njegovo kreiranje ili uninjegovo kreiranje ili unišštavanjetavanje

�� Kada primalac primi poruku on izvrKada primalac primi poruku on izvrššava ava odgovarajuodgovarajućću operaciju, tj. metoduu operaciju, tj. metodu

�� Prijem poruke moPrijem poruke možže da inicira promenu stanja e da inicira promenu stanja primaoca, a time i primaoca, a time i ččitavog sistemaitavog sistema

Page 7: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Sinhronizacija porukeSinhronizacija poruke

�� Poruka predstavlja sinhronizaciju dve ili viPoruka predstavlja sinhronizaciju dve ili višše e tokova kontrole kada postoji vitokova kontrole kada postoji višše poruka e poruka koje moraju biti obrañene pre nego koje moraju biti obrañene pre nego ššto se to se poruka prosledi i obradiporuka prosledi i obradi

�� Ako obrada poruke uslovljava slanje dve ili Ako obrada poruke uslovljava slanje dve ili vivišše poruka da razlie poruka da različčitih objekata sistema, itih objekata sistema, tada ona predstavlja grananje toka kontroletada ona predstavlja grananje toka kontrole

Page 8: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

IzvrIzvrššavanje porukaavanje poruka�� U jednom toku kontrole poruke sr izvrU jednom toku kontrole poruke sr izvrššavaju avaju

sekvencionalno, u odrsekvencionalno, u odreñenom redosledueñenom redosledu

�� U razliU različčitim tokovima kontrole poruke se mogu itim tokovima kontrole poruke se mogu izvrizvrššavati paralelno (konkurentno) ili u avati paralelno (konkurentno) ili u proizvoljnom redosleduproizvoljnom redosledu

�� U konkurentnom reU konkurentnom režžimu neophodno je voditi imu neophodno je voditi raraččuna kako objekti sinhronizuju svoje una kako objekti sinhronizuju svoje aktivnostiaktivnosti

�� Ako 2 objekta poAko 2 objekta poššalju poruke trealju poruke treććem radi em radi modifikovanja njegovog stanja, mora se modifikovanja njegovog stanja, mora se obezbediti metod meñusobnog iskljuobezbediti metod meñusobnog isključčenjaenja

Page 9: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Tipovi porukaTipovi poruka

�� Sinhrona porukaSinhrona poruka: p: podrazumeva prosleñivanje odrazumeva prosleñivanje poruke za koju se tok kontrole vraporuke za koju se tok kontrole vraćća poa poššiljaocu iljaocu tek nakon tek nakon ššto je primalac primio i obradio to je primalac primio i obradio porukuporuku

�� Asinhrona porukaAsinhrona poruka: tok kontrole se vra: tok kontrole se vraćća a popoššiljaocu ne iljaocu ne ččekajuekajućći odgovor od primaocai odgovor od primaoca

Page 10: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

GrafiGrafiččke oznake porukake oznake poruka

Poruka koja predstavlja vraPoruka koja predstavlja vraććanje anje toka kontrole potoka kontrole poššiljaocuiljaocu

Sinhrona poruka sa eksplicitno Sinhrona poruka sa eksplicitno prikazanom vraprikazanom vraććenom vrednoenom vrednoššććuu

Nije specificiran tip porukeNije specificiran tip poruke

Asinhrona porukaAsinhrona poruka

Sinhrona porukaSinhrona poruka

Page 11: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

ZahtevZahtev

�� Predstavlja specifikaciju komunikacije izmeñu Predstavlja specifikaciju komunikacije izmeñu objekataobjekata

�� Postoje 2 vrste zahteva: signal i poziv operacijePostoje 2 vrste zahteva: signal i poziv operacije

�� Signal je iniciranje izvrSignal je iniciranje izvrššavanja akcije kada avanja akcije kada primalac ne prosleñuje odgovor poprimalac ne prosleñuje odgovor poššiljaocu, koji iljaocu, koji ne ne ččeka na njegov odgovoreka na njegov odgovor

�� Poziv operacije omoguPoziv operacije omoguććava iniciranje akcije sa ava iniciranje akcije sa kojom se mokojom se možže vratiti rezultat njenog izvre vratiti rezultat njenog izvrššenjaenja

Page 12: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

IzuzetakIzuzetak

�� Poseban tip signala kojim se signalizuje Poseban tip signala kojim se signalizuje gregrešška u toku izvrka u toku izvrššenja neke metodeenja neke metode

�� Ovim signalom se inicira obrada greOvim signalom se inicira obrada grešškeke

�� Primalac ove poruke je exception hendler, Primalac ove poruke je exception hendler, objekat zaduobjekat zadužžen za obradu green za obradu greššakaaka

Page 13: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

AkcijaAkcija�� Predstavlja izraz kojim se opisuje funkcija Predstavlja izraz kojim se opisuje funkcija

sistemasistema

�� Svaka akcija ima izvorni objekat (poSvaka akcija ima izvorni objekat (poššiljaoca) i iljaoca) i listu objekata kojima se poruka prosleñuje listu objekata kojima se poruka prosleñuje (primaoce)(primaoce)

�� Akcija ima listu parametara koji u toku njenog Akcija ima listu parametara koji u toku njenog izvrizvrššenja postaju konkretne vrednostienja postaju konkretne vrednosti

�� Pri izvrPri izvrššenju akcije mogu se koristiti i atributi enju akcije mogu se koristiti i atributi primaoca i njegove veze sa drugim objektimaprimaoca i njegove veze sa drugim objektima

�� MoMožže se specificirati broj prosleñenih porukae se specificirati broj prosleñenih poruka, , uslov za njihovo slanje i da li se one uslov za njihovo slanje i da li se one ššalju alju sekvencionalno ili paralelnosekvencionalno ili paralelno

Page 14: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Vrste akcija IVrste akcija I

�� SendSend: asinhrona poruka kojom se : asinhrona poruka kojom se ššalje signal alje signal primaocuprimaocu

�� CallCall: sinhron ili asinhron poziv akcije kod : sinhron ili asinhron poziv akcije kod jednog ili vijednog ili višše primalaca koja inicira izvre primalaca koja inicira izvrššenje enje akcije primaocaakcije primaoca

�� CreateCreate: kreira objekat ne navode: kreira objekat ne navodećći primaoca i primaoca porukeporuke

�� TerminateTerminate: objekat koji izvr: objekat koji izvrššava akciju ava akciju prestaje da postojiprestaje da postoji

�� DestroyDestroy: uni: unišštava primaoca poruketava primaoca poruke

Page 15: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Vrste akcija IIVrste akcija II

�� ReturnReturn: vra: vraćća primaocu vrednost predstvljenu a primaocu vrednost predstvljenu argumentom akcijeargumentom akcije

�� AssigmentAssigment: predstavlja dodelu nove vrednosti : predstavlja dodelu nove vrednosti nekom atributu primaoca akcijenekom atributu primaoca akcije

�� UninterpretedUninterpreted: bilo koja akcija razli: bilo koja akcija različčita od ita od navedenihnavedenih

Page 16: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

ScenarioScenario�� Predstavlja odreñenu sekvencu interakcija Predstavlja odreñenu sekvencu interakcija

izmeñu objekata sistemaizmeñu objekata sistema

�� On je prototip jednog toka kontroleOn je prototip jednog toka kontrole

�� SadrSadržži interakciju izmeñu objekata koja se ne i interakciju izmeñu objekata koja se ne momožže videti analizom pojedinih objekatae videti analizom pojedinih objekata

�� Opisuje naOpisuje naččin na koji objekti pojedinih klasa in na koji objekti pojedinih klasa meñusobno sarañujumeñusobno sarañuju

�� Scenario se prikazuje dijagramima sekvenci i Scenario se prikazuje dijagramima sekvenci i saradnjesaradnje

�� PonaPonaššanje objekata jedne klase prikazuje se anje objekata jedne klase prikazuje se dijagramima aktivnosti i stanjadijagramima aktivnosti i stanja

Page 17: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Dijagrami sekvenceDijagrami sekvence�� Opisuju saradnju objekata prilikom neke Opisuju saradnju objekata prilikom neke

aktivnostiaktivnosti

�� Posebno su prikladni za vizuelni prikaz Posebno su prikladni za vizuelni prikaz izvoñenja pojedinih sluizvoñenja pojedinih sluččajeva koriajeva koriššććenja enja

�� ObiObiččno prikazuju jedan scenario koji no prikazuju jedan scenario koji obuhvata izvestan broj objekata i poruka koje obuhvata izvestan broj objekata i poruka koje oni razmenjuju u okviru sluoni razmenjuju u okviru sluččaja koriaja koriššććenjaenja

�� Mogu se koristiti za specifikaciju vremenskih Mogu se koristiti za specifikaciju vremenskih zahteva i opis slozahteva i opis složženih scenarijaenih scenarija

�� Koriste se i za analizu zahteva i za dizajnKoriste se i za analizu zahteva i za dizajn

Page 18: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Osobine dijagrama sekvenceOsobine dijagrama sekvence�� IstiIstičču vremenski redosled porukau vremenski redosled poruka

�� SadrSadržže grafie grafiččke prikaze prenosa kontroleke prikaze prenosa kontrole

�� Prikazuju skup poruka izmeñu objekata koji Prikazuju skup poruka izmeñu objekata koji sarañuju u realizaciji odreñene uslugesarañuju u realizaciji odreñene usluge

�� Prikazuju se u dve dimenzije: vertikalna Prikazuju se u dve dimenzije: vertikalna ––vreme, horizontalna vreme, horizontalna –– objektiobjekti

�� Dijagramom se prikazuje i linija Dijagramom se prikazuje i linija žživota ivota objekataobjekata

�� Imaju izuzetno jednostavnu interpretaciju Imaju izuzetno jednostavnu interpretaciju (lako se tuma(lako se tumačče)e)

�� Akcenat kod DS je opis sekvence poruka, tj. Akcenat kod DS je opis sekvence poruka, tj. njihov redosled njihov redosled

Page 19: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Elementi DSElementi DS

�� Objekti: pravougaoniciObjekti: pravougaonici

�� Poruke: poloPoruke: položžene usmerene linijeene usmerene linije

�� Linija Linija žživota: vertikalna isprekidana linijaivota: vertikalna isprekidana linija

�� Fokus upravljanja: uzani vertikalni Fokus upravljanja: uzani vertikalni pravougaonikpravougaonik

�� UniUnišštavanje objekta: znaktavanje objekta: znak

�� Uslov za izvrUslov za izvrššenje poruke: navodi se u uglastoj enje poruke: navodi se u uglastoj zagradi zagradi

Page 20: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Grananja na DSGrananja na DS�� Na DS dobro se prikazuju grananjaNa DS dobro se prikazuju grananja

�� Na njima je uoNa njima je uoččljivo da li je za grananje ljivo da li je za grananje potrebno ispunjenje uslova, ili su grananja potrebno ispunjenje uslova, ili su grananja iskljuisključčivaiva

�� U sluU sluččaju iskljuaju isključčivih grananja postoji viivih grananja postoji višše od e od jednog toka kontrolejednog toka kontrole

�� Na dijagramima sekvence mogu se prikazati Na dijagramima sekvence mogu se prikazati tokovi kontrole, vremenska ogranitokovi kontrole, vremenska ograniččenja i enja i konkurentnostkonkurentnost

�� Na sledeNa sledeććem primeru prikazano je izvrem primeru prikazano je izvrššenje enje jedne od grana, zavisno od ispunjenosti uslovajedne od grana, zavisno od ispunjenosti uslova

Page 21: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Primer: grananje sa uslovomPrimer: grananje sa uslovom

UčesnikKlasa A

Klasa B

Klasa C

Klasa Dzahtev

rekurzija

poruka

poruka

[uslov] poruka

[uslov] poruka

Page 22: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Primer: centralizovano upravljanjePrimer: centralizovano upravljanje

Učesnik

PoudžbinaStavka

porudžbineProizvod Kupac

računaj cenu

uzmi podatke o popustima

uzmi količinu

uzmi proizvod

uzmi podatke o ceni

računaj osnovnu cenu

računaj popuste

Page 23: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Primer: distribuirano upravljanjePrimer: distribuirano upravljanje

Učesnik

PoudžbinaStavka

porudžbineProizvod Kupac

računaj cenu

cena sa popustom

računaj cenu

uzmi cenu

uzmi osnovnu cenu

uzmi cenu sa popustom

Page 24: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Primer: konkurentno grananjePrimer: konkurentno grananje

Klasa A Klasa B Klasa C

poruka

poruka

poruka poruka

poruka

vreme

Napomena: vraćene poruke se implicitno podrazumavaju;na vertikali se mogu označiti vremenska ograničenja

t1

t2

t3

t0

t4

Page 25: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Vremenska ograniVremenska ograniččenjaenja

�� Mogu biti prikazana da dijagramuMogu biti prikazana da dijagramu

�� Mogu se odnositi na vreme odgovora na poruku Mogu se odnositi na vreme odgovora na poruku ili na vreme slanja porukeili na vreme slanja poruke

�� Drugi naDrugi naččin je koriin je koriššććenjem operacija sendTime i enjem operacija sendTime i receiveTimereceiveTime

�� Primer: receiveTime(por2)Primer: receiveTime(por2)--sendTime(porsendTime(por--1)1)<<3s3s

Page 26: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Dijagram sekvenci kreiranja objektaDijagram sekvenci kreiranja objekta

Forma upisa

Studentstudent()upis

Službenik

Page 27: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Dijagram sekvenci sa privremenim Dijagram sekvenci sa privremenim objektomobjektom

Pretplatnik

Transakcijakreiraj ()

upiši klijenta (a,b,c)

urañeno ()

prekini ()

Page 28: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Dijagram sekvenci sa iterativnim izvrDijagram sekvenci sa iterativnim izvrššenjemenjem

Službenik

Zapisnik

o polaganjuLista

predmetaPredmet

formiranje zapis.prikaži predmete

preuzmi

predmete

izaberi predmet izaberi

lista studenatavrati izbor

podaci o ispitnoj prijavi

send message

podaci o ispitnoj

prijavi until

ima prijava

Page 29: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Petlje i uslovi na DSPetlje i uslovi na DS�� Dijagrami sekvence namenjeni su prvenstveno Dijagrami sekvence namenjeni su prvenstveno

vizuelizaciji interakcije objekatavizuelizaciji interakcije objekata

�� Dijagrami sekvence mogu da prikaDijagrami sekvence mogu da prikažžu i petlje i u i petlje i uslove, ali ne bas na najbolji nauslove, ali ne bas na najbolji naččinin

�� Pravo okruPravo okružženje za ovakve upravljaenje za ovakve upravljaččke ke strukture su dijagrami aktivnostistrukture su dijagrami aktivnosti

�� Petlje i uslovi opisuju se okvirima interakcije, Petlje i uslovi opisuju se okvirima interakcije, kojima se ogranikojima se ograniččava deo dijagrama sekvence ava deo dijagrama sekvence sa jednim ili visa jednim ili višše fragmenatae fragmenata

�� Svaki okvir sadrSvaki okvir sadržži operator i svakom fragmentu i operator i svakom fragmentu momožže biti pridrue biti pridružžen uslov, naveden u srednjoj en uslov, naveden u srednjoj zagradizagradi

Page 30: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Operatori okvira interakcijeOperatori okvira interakcije

Dijagram sekvence: sluDijagram sekvence: služži da bi se uokvirio ceo DSi da bi se uokvirio ceo DSsdsd

Referenca: odnosi se na interakciju sa drugog dijagramaReferenca: odnosi se na interakciju sa drugog dijagramarefref

Negativno: fragment prikazuje pogreNegativno: fragment prikazuje pogreššnu interakcijunu interakcijunegneg

KritiKritiččna oblast : ne mona oblast : ne možže se istovremeno izvre se istovremeno izvrššavati viavati višše niti e niti regionregion

Petlja: fragment se izvrPetlja: fragment se izvrššava viava višše puta, dok je ispunjen uslove puta, dok je ispunjen uslovloop loop

Paralelno: fragmenti se istovremeno izvrParalelno: fragmenti se istovremeno izvrššavajuavajuparpar

Opcioni: fragment se izvrOpcioni: fragment se izvrššava ako je ispunjen uslovava ako je ispunjen uslovoptopt

Alternativni izbor: izvrAlternativni izbor: izvrššava se fragment koji ispunjava uslovava se fragment koji ispunjava uslovaltalt

ZnaZnaččenjeenjeOperatorOperator

Page 31: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Primer: okviri interakcijePrimer: okviri interakcijePoudžbina

Specijalni

distributer

Regularni

distributerKurir

slanje

isporuči

loop [for each stavka]

alt [vrednost > 1000]

[else] isporuči

opt [potrebna potvrda] potvrdi

Page 32: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Primer 1Primer 1: Scenario formiranja grupe za ve: Scenario formiranja grupe za vežžbebe

: Student : GrupeZaVezbeForma : ListaGrupa : GrupaZaVezbe

prikaziGrupe()prikazi()

preuzmiGrupe()

selektujGrupu() selektuj()

dodajUGrupu() vratiSelekciju()

dodaj(s:Student)

Page 33: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Primer 2Primer 2: Dijagram sekvenci sa grananjem: Dijagram sekvenci sa grananjem

: Student : GrupeZaVezbeForma : ListaGrupa : GrupaZaVezbe

: PorukaForma

prikaziGrupe()

selektujGrupu()

dodajUGrupu()

prikazi()preuzmiGrupe()

selektuj()

vratiSelekciju()

[broj>=10] poruka(p:String)

[broj<10] dodaj(s:Student)

[broj>=10] potvrdi()

Page 34: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Primer 3Primer 3: Formiranje rang liste kandidata za upis: Formiranje rang liste kandidata za upis

: SluzbenikStudSluzbe

: Formiranje Liste Kand Forma

: Kandidat : Prijemni : Rang Lista Kandidata

formirajRangListu()

send messageselektujKandidata()until imaKandidata

selektujKandidata()preuzmiPodatke()

preuzmiPodatkeOPri jemnom(k:Kandidat)preuzmiPodatke()

ubaciKandidata(k:Kandidat; uspeh,rez:Float)azurirajListu()

Page 35: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Primer 4Primer 4: Isplata novca sa teku: Isplata novca sa tekuććeg raeg raččunauna

: BankarskiSluzbenik

: TekuciRacunForma

: TekuciRacun

: PorukaForma

pregledRacuna(brRacuna:Integer)prikazi(brRacuna:Integer)

preuzmiPodatke()

oduzmiIznos(iznos:Float)

[iznos>ukIznos] poruka(iznos,ukIznos:Float)

[iznos<=ukIznos] oduzmi (iznos:Float)azurirajRacun()

[iznos>ukIznos] potvrdi()

Page 36: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Primer Primer 55: Obrada kandidata pri upisu na fakultet: Obrada kandidata pri upisu na fakultet

: SluzbenikStudSluzbe

: Obrada Kandidata Forma

: Rang Lista Kandidata

: Student

prikaziKandidata(k:Kandidat)selektuj(k:Kandidat)

preuzmiPodatke()

obradiKandidata(k:Kandidat, odustao:Boolean)[rbr<=100 and not odustaje] upisi(k:Kandidat)

[rbr>100 or odustaje] brisi(k:Kandidat)azurirajListu()

Page 37: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Kada koristiti dijagrame sekvenciKada koristiti dijagrame sekvenci�� Kada hoKada hoććete da posmatrate nekoliko objekata u ete da posmatrate nekoliko objekata u

okviru jednog sluokviru jednog sluččaja koriaja koriššććenjaenja

�� UspeUspeššno prikazuju kolaboraciju objekata, ali no prikazuju kolaboraciju objekata, ali nisu najpogodniji za precizno definisanje nisu najpogodniji za precizno definisanje ponaponaššanjaanja

�� Za posmatranje jednog objekta u veZa posmatranje jednog objekta u veććem broju em broju slusluččajeva koriajeva koriššććenja ili vienja ili višše niti koristi se e niti koristi se dijagram aktivnostidijagram aktivnosti

�� Za prikaz veza koristi se dijagram interakcije, a Za prikaz veza koristi se dijagram interakcije, a vremenski dijagrami za prikaz vremenskih vremenski dijagrami za prikaz vremenskih ograniograniččenjaenja

Page 38: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Dijagrami saradnjeDijagrami saradnje�� SemantiSemantiččki ekvivalentni dijagramima sekvenceki ekvivalentni dijagramima sekvence

�� IstiIstičču strukturnu organizaciju objekata koji u strukturnu organizaciju objekata koji uuččestvuju u interakcijiestvuju u interakciji

�� Ne sadrNe sadržže liniju e liniju žživota objekta niti fokus ivota objekta niti fokus upravljanjaupravljanja

�� SadrSadržže objekte iz interakcije sa vezama koje e objekte iz interakcije sa vezama koje sadrsadržže poruke izmeñu njihe poruke izmeñu njih

�� Poruke imaju svoje redne brojeve (sa Poruke imaju svoje redne brojeve (sa prefiksom)prefiksom)

�� Postoji putanja porukaPostoji putanja poruka

Page 39: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Primer dijagrama saradnjePrimer dijagrama saradnje

Pretplatnik Transakcija

1. kreiraj

2. upiši klijenta (a,b,c)3. uradjeno

4. uradjeno

Page 40: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Nivoi dijagrama saradnjeNivoi dijagrama saradnje�� Na nivou specifikacije prikazuju se uloge klasa Na nivou specifikacije prikazuju se uloge klasa

objekata i veze izmeñu njihobjekata i veze izmeñu njih, a saradnja se , a saradnja se definidefinišše vezama izmeñu uloga klasa e vezama izmeñu uloga klasa (a ne (a ne samih klasa)samih klasa)

�� Uloga predstavlja jedan pogled na klasu koji je Uloga predstavlja jedan pogled na klasu koji je od znaod značčaja za saradnjuaja za saradnju

�� Na nivou pojave navode se konkretni objekti Na nivou pojave navode se konkretni objekti neophodni za realizaciju operacije, klase ili neophodni za realizaciju operacije, klase ili slusluččaja koriaja koriššććenja, zatenja, zatim veze izmeñu objekata i im veze izmeñu objekata i poruke koje oni razmenjujuporuke koje oni razmenjuju

�� Ova 2 nOva 2 nivoa predstavljanja moraju biti ivoa predstavljanja moraju biti meñusobno usaglameñusobno usaglaššenieni

Page 41: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Opis ponaOpis ponaššanjaanja�� Obuhvata opise statiObuhvata opise statiččkih i dinamikih i dinamiččkih osobina kih osobina

objekata koje uobjekata koje uččestvuju u realizaciji njegovog estvuju u realizaciji njegovog ponaponaššanjaanja

�� Prikazuju se objekti i veze koji postoje pre Prikazuju se objekti i veze koji postoje pre popoččetka interakcije, kao i oni koji se kreiraju (a etka interakcije, kao i oni koji se kreiraju (a mogu se i unimogu se i unišštavati) za vreme same interakcijetavati) za vreme same interakcije

�� Sekvence poruka i konkurentnih tokova Sekvence poruka i konkurentnih tokova kontrole oznakontrole označčavaju se sekvencama brojevaavaju se sekvencama brojeva

�� Prikazuju se samo objekti i veze znaPrikazuju se samo objekti i veze značčajni za ajni za ostvarivanje odreñene funkcionalnostiostvarivanje odreñene funkcionalnosti

�� Jednoj vezi moJednoj vezi možže se pridrue se pridružžiti viiti višše poruka u oba e poruka u oba pravcapravca

Page 42: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Osobine dijagrama saradnjeOsobine dijagrama saradnje�� Predstavljaju dinamiPredstavljaju dinamiččku sliku odnosa izmeñu ku sliku odnosa izmeñu

objekataobjekata

�� Ova dinamika vidi se iz poruka koje oni Ova dinamika vidi se iz poruka koje oni razmenjujurazmenjuju

�� Isto tako na njima se prikazuje i saradnja Isto tako na njima se prikazuje i saradnja objekata, koja pripedstavlja statiobjekata, koja pripedstavlja statiččku slikuku sliku

�� Dijagrami saradnje objedinjuju ova 2 aspektaDijagrami saradnje objedinjuju ova 2 aspekta

�� Objekti posmatrane klase mogu imati Objekti posmatrane klase mogu imati razlirazliččite uloge na jednom dijagramu saradnjeite uloge na jednom dijagramu saradnje

�� Ove uloge su odreñene osobinamaOve uloge su odreñene osobinama, odnosno , odnosno vrednostima atributa objekatavrednostima atributa objekata

Page 43: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

OgraniOgraniččenja za veze na enja za veze na dijagramima saradnjedijagramima saradnje

OdgovarajuOdgovarajućća pojava je kreirana i unia pojava je kreirana i unišštenatena{transient}{transient}

OdgovarajuOdgovarajućća pojava je kreiranaa pojava je kreirana{new}{new}

OdgovarajuOdgovarajućća pojava je unia pojava je unišštenatena{destroyed}{destroyed}

Veza je samoreferencirajuVeza je samoreferencirajuććaa{self}{self}

Objekat predstavlja parametar operacijeObjekat predstavlja parametar operacije{parameter}{parameter}

Objekat predstavlja lokalnu promenljivuObjekat predstavlja lokalnu promenljivu{local}{local}

Objekat predstavlja globalnu promenljivuObjekat predstavlja globalnu promenljivu{global}{global}

Posmatrani objekat je vidljiv preko asocijacijePosmatrani objekat je vidljiv preko asocijacije{association}{association}

InterpretacijaInterpretacijaOgraniOgraniččenjeenje

Page 44: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Informacije o poslatoj poruciInformacije o poslatoj poruci�� Uloga objekta koji je poslao poruku i Uloga objekta koji je poslao poruku i

eventualno eventualno ččeka na odgovoreka na odgovor

�� Uloge objekata koji primaju i obrañuju porukuUloge objekata koji primaju i obrañuju poruku

�� O porukama koje moraju biti obrañene pre ove O porukama koje moraju biti obrañene pre ove porukeporuke

�� O poruci koja inicira akcije nakon koje je O poruci koja inicira akcije nakon koje je poslata porukaposlata poruka

�� O akciji koja inicira slanje porukeO akciji koja inicira slanje poruke

�� Odgovor primaoca na prosleñenu porukuOdgovor primaoca na prosleñenu poruku

�� Sintaksa poruke je:Sintaksa poruke je:

preduslov uslov izraz vrednost := poruka argumentpreduslov uslov izraz vrednost := poruka argument

Page 45: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

PreduslovPreduslov

preduslovpreduslov uslov izraz vrednost := poruka argumentuslov izraz vrednost := poruka argument

�� NNije obavezanije obavezan

�� Predstavlja sekvencu brojeva poruke koja se Predstavlja sekvencu brojeva poruke koja se mora prethodno izvmora prethodno izvššiti da bi se izvriti da bi se izvrššila i ova ila i ova porukaporuka

�� Ako je viAko je višše ovih sekvenci one su odvojene e ovih sekvenci one su odvojene zarezom zarezom

�� Poruka sa sekvencom sa manjim brojem Poruka sa sekvencom sa manjim brojem prethodi sekvenci sa veprethodi sekvenci sa veććim brojemim brojem

�� Na kraju preduslova se navodi /Na kraju preduslova se navodi /

Page 46: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

UslovUslov

preduslov preduslov uslovuslov izraz vrednost := poruka argumentizraz vrednost := poruka argument

�� Predstavlja izraz iz Bulove algebre koji mora Predstavlja izraz iz Bulove algebre koji mora biti tabiti taččan da bi se poruka prosledilaan da bi se poruka prosledila

�� Takoñe je opcioni deo sintakseTakoñe je opcioni deo sintakse

�� Predstavlja uslov sinhronizacije poruka, odn. Predstavlja uslov sinhronizacije poruka, odn. tokova kontoletokova kontole

�� Navodi se u srednjoj zagradiNavodi se u srednjoj zagradi

Page 47: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

IzrazIzrazpreduslov uslov preduslov uslov izrazizraz vrednost := poruka argumentvrednost := poruka argument

�� Predstavlja sekvencu brojeva koja je broj Predstavlja sekvencu brojeva koja je broj porukeporuke

�� Izraz je oblika: broj naziv uslov izvrIzraz je oblika: broj naziv uslov izvrššenjaenja

�� Broj je broj iz sekvence i oznaBroj je broj iz sekvence i označčava koje ava koje ćće se e se poruke izvrporuke izvrššavati, ukljuavati, uključčujuujućći i ugnjei i ugnježždenedene

�� Naziv sluNaziv služži za oznai za označčavanje konkurentnih avanje konkurentnih tokova kontroletokova kontrole

�� U izrazu se navodi ili broj ili naziv U izrazu se navodi ili broj ili naziv

�� Uslov izvrUslov izvrššenja je specifikacija uslovnog ili enja je specifikacija uslovnog ili iterativnog izvriterativnog izvrššenjaenja

Page 48: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Uslov izvrUslov izvrššenjaenja

�� MoMožže biti oblika: e biti oblika:

�� * * [[izraz iteracijeizraz iteracije]] –– oznaoznaččava iteraciju izvrava iteraciju izvrššenja enja poruke, iliporuke, ili

�� [[izraz uslovaizraz uslova]] –– oznaoznaččava uslovno izvrava uslovno izvrššenje enje porukeporuke

�� Iteracija je oznaIteracija je označčava izvrava izvrššenje niza poruka, a enje niza poruka, a ako se one izvrako se one izvrššavaju konkurentno, to se avaju konkurentno, to se oznaoznaččava sa *ava sa *

�� Izraz uslova moIzraz uslova možže biti opisan na vie biti opisan na višše nae naččina: u ina: u OCLOCL--u, pseudokodom ili u slobodnoj formiu, pseudokodom ili u slobodnoj formi

Page 49: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Vrednost, poruka i argument Vrednost, poruka i argument preduslov uslov izraz preduslov uslov izraz vrednost := poruka argumentvrednost := poruka argument

�� OznaOznaččava listu promenljivih koje sadrava listu promenljivih koje sadržže e vravraććene vrednosti operacijaene vrednosti operacija

�� Vrednosti mogu biti koriVrednosti mogu biti koriššććene kao parametri ene kao parametri poruka koje slede nakon posmatrane porukeporuka koje slede nakon posmatrane poruke

�� Poruka ne mora da ima vraPoruka ne mora da ima vraććene vrednostiene vrednosti

�� Ako ih ima, navodi se znak njihovog Ako ih ima, navodi se znak njihovog pridrupridružživanja poruci :=ivanja poruci :=

�� Poruka prestavlja oznaku poziva operacije ili Poruka prestavlja oznaku poziva operacije ili prosleñivanja signala i obavezno se navodiprosleñivanja signala i obavezno se navodi

�� Argument predstavlja listu parametara Argument predstavlja listu parametara posmatrane porukeposmatrane poruke

Page 50: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

PrimeriPrimeri1: prika1: prikažži() i() –– inicijalna porukainicijalna poruka

[[mode=displaymode=display]] 2.1: crtaj() 2.1: crtaj() -- poruka sa uslovom poruka sa uslovom izvrizvrššenjaenja

2*2*[[x=1...10x=1...10]]: vred=novavrednost() : vred=novavrednost() –– iterativno iterativno izvrizvrššenje poruke novavrednost, nakon enje poruke novavrednost, nakon ššto se to se izvrizvršši poruka sa brojem 2i poruka sa brojem 2

3.1 3.1 [[xx<0]<0]: saberi(): saberi()

3.3.2 [x>=0]2 [x>=0]:: oduzmi() oduzmi() -- poruke uz uslov grananjaporuke uz uslov grananja

1.1a,1.1b / 1.2: nastavi() 1.1a,1.1b / 1.2: nastavi() –– sinhronizacija sinhronizacija konkurentnih poruka konkurentnih poruka

Page 51: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov

Primer dijagrama saradnje na nivou Primer dijagrama saradnje na nivou pojavapojava

:Klasa A

O:Klasa B :Klasa D{new}

:Klasa CUčesnik

poruka()

{self}

poruka()

1.1*[i=1..n]:poruka(i)1.2:poruka(p1, p2)

{local, new}

{parameter}12.1: p:=poruka()

podatak

Page 52: Dinamički dijagrami - vps.ns.ac.rs · PDF filePredstavlja izraz iz Bulove algebre koji mora biti ta čan da bi se poruka prosledila Takoñe je opcioni deo sintakse Predstavlja uslov