DinamiDinamiččki dijagramiki dijagrami
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Primer: grananje sa uslovomPrimer: grananje sa uslovom
UčesnikKlasa A
Klasa B
Klasa C
Klasa Dzahtev
rekurzija
poruka
poruka
[uslov] poruka
[uslov] poruka
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
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
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
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
Dijagram sekvenci kreiranja objektaDijagram sekvenci kreiranja objekta
Forma upisa
Studentstudent()upis
Službenik
Dijagram sekvenci sa privremenim Dijagram sekvenci sa privremenim objektomobjektom
Pretplatnik
Transakcijakreiraj ()
upiši klijenta (a,b,c)
urañeno ()
prekini ()
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
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
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
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
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)
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()
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()
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()
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()
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
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
Primer dijagrama saradnjePrimer dijagrama saradnje
Pretplatnik Transakcija
1. kreiraj
2. upiši klijenta (a,b,c)3. uradjeno
4. uradjeno
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
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
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
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
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
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 /
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
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
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
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
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
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
Top Related