Upload
others
View
20
Download
0
Embed Size (px)
Citation preview
Revolucija se ne Revolucija se ne dogaña kada drudogaña kada drušštvo tvo prihvati nove alate. prihvati nove alate. Ona se dogaña kada Ona se dogaña kada drudrušštvo prihvati nova tvo prihvati nova ponaponaššanja.anja.
Clay ShirkyClay Shirky
Dijagrami UMLDijagrami UML––a i namene (1)a i namene (1)
StruktureStrukture
�� Klasa: klase, osobine i vezeKlasa: klase, osobine i veze
�� Objekata: primeri konfiguracije instanci klasaObjekata: primeri konfiguracije instanci klasa
�� Komponenata: struktura Komponenata: struktura i veze komponenatai veze komponenata
�� RasporeñivanjaRasporeñivanja: r: rasporeñivanje artefakata po asporeñivanje artefakata po ččvorovimavorovima
�� SloSložžene strukture: razlaganje klasa tokom ene strukture: razlaganje klasa tokom izvrizvrššavanjaavanja
�� Paketa: hijerPaketa: hijerarhijska struktura tokom arhijska struktura tokom prevoñenjaprevoñenja
Dijagrami UMLDijagrami UML––a i namene (2)a i namene (2)
PonaPonaššanjaanja
�� Aktivnosti: proceduralno i paralelno ponaAktivnosti: proceduralno i paralelno ponaššanjeanje
�� SluSluččajeva koriajeva koriššććenja: interakcija korisnika i enja: interakcija korisnika i sistemasistema
�� MaMaššine stanja: kine stanja: kako dogañaji menjaju objekat ako dogañaji menjaju objekat tokom njegovog postojanjatokom njegovog postojanja
Dijagrami UMLDijagrami UML––a i namene (3)a i namene (3)
InterakcijeInterakcije
�� Sekvence: interakSekvence: interakcija izmeñu objekata sa cija izmeñu objekata sa naglaskom na sekvencinaglaskom na sekvenci
�� Komunikacije: interakcijaKomunikacije: interakcija izmeñu objekata sa izmeñu objekata sa naglaskom na vezamanaglaskom na vezama
�� Pregleda interakcije: kombinacija dijagrama Pregleda interakcije: kombinacija dijagrama sekvence i aktivnostisekvence i aktivnosti
�� Vremenski: interakcVremenski: interakcija izmeñu objekata sa ija izmeñu objekata sa naglaskom na vremenskoj promeninaglaskom na vremenskoj promeni
StatiStatiččki model sistemaki model sistema�� U OO pristupu osnovni elementi opisa sistema U OO pristupu osnovni elementi opisa sistema
su klase i veze izmeñu njihsu klase i veze izmeñu njih, kao i objekti , kao i objekti posmatranih klasa, njihove veze i porukeposmatranih klasa, njihove veze i poruke
�� StatiStatiččka struktura sistema prikazuje se ka struktura sistema prikazuje se pomopomoćću dijagrama objekata i dijagrama klasau dijagrama objekata i dijagrama klasa
�� Dijagram klasa predstavlja kolekciju Dijagram klasa predstavlja kolekciju elemenata modela: klase, elemenata modela: klase, interfejsi, paketi i interfejsi, paketi i njihove meñusobne vezenjihove meñusobne veze
�� Dijagramom objektata prikazuju se objekti Dijagramom objektata prikazuju se objekti posmatranih klasa i njihove meñusobne vezeposmatranih klasa i njihove meñusobne veze
�� Dijagram objekta mora biti u saglasnosti sa Dijagram objekta mora biti u saglasnosti sa odgovarajuodgovarajuććim dijagramom klasaim dijagramom klasa
ObjektiObjekti�� VeVeććina ljudi ina ljudi ““razmirazmiššlja pomolja pomoćću objekatau objekata””
�� Objekat je celina koja se sastoji iz podataka i Objekat je celina koja se sastoji iz podataka i ponaponaššanjaanja
�� Objekat opisuje stvaran ili apstraktan pojam sa Objekat opisuje stvaran ili apstraktan pojam sa dobro definisanom ulogomdobro definisanom ulogom
�� On je entitet koji ima stanje (podaci)On je entitet koji ima stanje (podaci) i i ponaponaššanje nad stanjem (funkcije ili usluge)anje nad stanjem (funkcije ili usluge)
�� Podaci i ponaPodaci i ponaššanje se objedinjuju u jednom anje se objedinjuju u jednom paketupaketu
�� Funkcije (operacije) pruFunkcije (operacije) pružžaju usluge drugim aju usluge drugim objektimaobjektima
Karakteristike objekataKarakteristike objekata�� Objekti predstavljaju apstrakcije entitetaObjekti predstavljaju apstrakcije entiteta
�� Oni su odgovorni za upravljanje svojim stanjemOni su odgovorni za upravljanje svojim stanjem
�� Objekti pruObjekti pružžaju uaju ussluge drugim objektimaluge drugim objektima
�� Stanja, reprezentacija informacija i izmene Stanja, reprezentacija informacija i izmene iskljuisključčivo unutar objekataivo unutar objekata
�� Funkcionisanje sistema preko usluga (metoda)Funkcionisanje sistema preko usluga (metoda)
�� Ne postoji podruNe postoji područčje zajednije zajedniččkih podatakakih podataka
�� Objekti mogu biti distribuiraniObjekti mogu biti distribuirani
�� Izvoñenje objekata u sekvenci ili paralelnoIzvoñenje objekata u sekvenci ili paralelno
�� Objekat odreñuju njegovo stanjeObjekat odreñuju njegovo stanje, pona, ponaššanje i anje i identitetidentitet
Stanje objektaStanje objekta�� Stanje objekta obuhvata sve njegove osobine i Stanje objekta obuhvata sve njegove osobine i
njihove vrednostinjihove vrednosti
�� Osobine objekta predstavljene su njegovim Osobine objekta predstavljene su njegovim atributimaatributima
�� Ako je neka osobina sloAko je neka osobina složžena, onena, ona prestavlja a prestavlja novi objekatnovi objekat
�� Vrednosti osobina odreñuju vrednosti atributaVrednosti osobina odreñuju vrednosti atributa
�� Vrednost osobine moVrednost osobine možže biti statie biti statiččka ka (nepromenljiva) i dinami(nepromenljiva) i dinamiččkaka
�� Svaki objekat ima skup operacija koje se Svaki objekat ima skup operacija koje se mogu izvrmogu izvrššavati nad njim i menjati njegovo avati nad njim i menjati njegovo stanjestanje
PonaPonaššanje objektaanje objekta
�� Njegovo ponaNjegovo ponaššanje zavisi od:anje zavisi od:
�� izvrizvrššenja neke operacije nad objektom ienja neke operacije nad objektom i
�� stanja u kojem se on nalazio u trenutku stanja u kojem se on nalazio u trenutku njenog izvrnjenog izvrššenjaenja
�� PonaPonaššanje objekta je funkcija njegovog anje objekta je funkcija njegovog stanja i niza operacija koje se izvrstanja i niza operacija koje se izvrššavaju avaju nad njimnad njim
Identitet objektaIdentitet objekta�� Identitet je karakteristika objekta kojim se on Identitet je karakteristika objekta kojim se on
jednoznajednoznaččno odreñuje u skupu objekatano odreñuje u skupu objekata
�� Ta karakteristika odraTa karakteristika odražžava njegovo postojanje i ava njegovo postojanje i nepromenljiva je bez obzira na druge promenenepromenljiva je bez obzira na druge promene
�� Identitet predstavlja mehanizam za povezivanje Identitet predstavlja mehanizam za povezivanje sa drugim objektimasa drugim objektima
�� Objekat postaje osobina drugog objekta kada Objekat postaje osobina drugog objekta kada se njegov identitet javlja kao vrednost osobine se njegov identitet javlja kao vrednost osobine tog drugog objektatog drugog objekta
�� Na taj naNa taj naččin objekat postaje pojava nekog in objekat postaje pojava nekog drugog konceptadrugog koncepta
Identifikacija objekataIdentifikacija objekata
�� U priroU priroddnom jeziku: objekti su imenice, a nom jeziku: objekti su imenice, a usluge glagoliusluge glagoli
�� Kandidati za klase objekata: stvari,Kandidati za klase objekata: stvari, uloge uloge, , dogañajidogañaji, i, interakcije izmeñu uloganterakcije izmeñu uloga, l, lokacije, okacije, organizacione celine...organizacione celine...
�� Kada odreñeno ponaKada odreñeno ponaššanje dodelimo delovima anje dodelimo delovima sistema, usistema, uččesnici u ponaesnici u ponaššanju od znaanju od značčaja za aja za analizu analizu ččine objekteine objekte
�� Analizom zasnovanom na scenarijima (CRC Analizom zasnovanom na scenarijima (CRC kartice) uokartice) uoččavamo objekte, obeleavamo objekte, obeležžja i operacijeja i operacije
Dijagrami objekataDijagrami objekata
�� Dijagram objekta (instance) je snimak pojedinih Dijagram objekta (instance) je snimak pojedinih objekata sistema u datom trenutkuobjekata sistema u datom trenutku
�� Ne navode se vrednosti svih obaveznih atributa Ne navode se vrednosti svih obaveznih atributa
�� Koristi se u sluKoristi se u sluččajevima kada objekti ajevima kada objekti uspostavljaju slouspostavljaju složžene veze, da bi se prikazao ene veze, da bi se prikazao primer konfiguracije objekataprimer konfiguracije objekata
�� Na dijagramu se prikazuju primeri povezanih Na dijagramu se prikazuju primeri povezanih objekata objekata
Primer dijagrama objekataPrimer dijagrama objekataStudenti: VPŠSS
Lokacija: Novi Sad
Škola: VPŠSS
Lokacija: Liman
Škola: VPŠSS
Lokacija: Kralja Petra
Zgrada: Liman
Laboratorija: Ucionica 3
Zgrada: Liman
Laboratorija: Ucionica 4
Uloge objekta u vezamaUloge objekta u vezama
�� KlijentKlijent: mo: možže da zahteva izvre da zahteva izvrššenje operacija enje operacija drugih objekata, dok ni jedan drugi objekat ne drugih objekata, dok ni jedan drugi objekat ne momožže da zahteva izvre da zahteva izvrššenje njegovih operacijaenje njegovih operacija
�� ServerServer: ne mo: ne možže da zahteva izvre da zahteva izvrššenje drugih enje drugih operacija, a drugi objekti mogu da zahtevaju operacija, a drugi objekti mogu da zahtevaju izvrizvrššenje njegovihenje njegovih
�� AgentAgent: mo: možže da zahteva izvre da zahteva izvrššenje drugih enje drugih operacija i drugi objekti mogu da zahtevaju operacija i drugi objekti mogu da zahtevaju izvrizvrššenje njegovihenje njegovih
Tipovi objekataTipovi objekata
�� PasivniPasivni: ako se stanja (obele: ako se stanja (obeležžja) formiraju ja) formiraju iz interfejsa objekta (okruiz interfejsa objekta (okružženja) paralelno enja) paralelno sa operacijama formiranja stanjasa operacijama formiranja stanja
�� AktivniAktivni: ako se stanje objekta kreira samo : ako se stanje objekta kreira samo na osnovu internih operacija objekta, bez na osnovu internih operacija objekta, bez poziva interfejsapoziva interfejsa
Definicije vezane za klaseDefinicije vezane za klase�� Klasa je skup objekata koji imaju iste atribute Klasa je skup objekata koji imaju iste atribute
i operacije, istu semantiku i veze sa drugim i operacije, istu semantiku i veze sa drugim objektimaobjektima
�� Objekat je pojava posmatrane klaseObjekat je pojava posmatrane klase
�� Metaklasa je klasa Metaklasa je klasa ččije su pojave odreñene ije su pojave odreñene klaseklase
�� Parametrizovana klasa predstavlja uzorak za Parametrizovana klasa predstavlja uzorak za druge klase i konkretizuje se zamenom njenih druge klase i konkretizuje se zamenom njenih parametara sa konkretnim klasamaparametara sa konkretnim klasama
�� Pojam podklasa se vezuje za nasleñivanje Pojam podklasa se vezuje za nasleñivanje
Dijagram klasaDijagram klasa
�� Prikazuje statiPrikazuje statiččku strukturu sistemaku strukturu sistema
�� Sastoji se iz grafiSastoji se iz grafiččkog prikaza pojedinih kog prikaza pojedinih klasa povezanih imenovanim relacijama klasa povezanih imenovanim relacijama navedenih tipovanavedenih tipova
�� Koristi se za modelovanje reKoristi se za modelovanje reččnika sistema, nika sistema, jednostavnih drujednostavnih drušštava saradnika i logitava saradnika i logiččkih kih ššema baze podatakaema baze podataka
Prikaz pojedinih klasaPrikaz pojedinih klasa�� Prikazuje se u pravougaoniku podeljenom u Prikazuje se u pravougaoniku podeljenom u
3 obavezna dela, a mogu3 obavezna dela, a mogućć je i dodatni deo je i dodatni deo
�� U gornjem delu se navodi naziv, stereotip i U gornjem delu se navodi naziv, stereotip i osobine klaseosobine klase
�� U srednjem delu se navode atributiU srednjem delu se navode atributi
�� U donjem delu se navode operacije klaseU donjem delu se navode operacije klase
�� U dodatnom delu navode se informacije o U dodatnom delu navode se informacije o klasi, npr. o izuzecima, odgovornosti idr.klasi, npr. o izuzecima, odgovornosti idr.
�� Ovi delovi mogu biti imenovani, napisani u Ovi delovi mogu biti imenovani, napisani u centru pravougaonika i boldovanicentru pravougaonika i boldovani
KlaseKlase�� NajvaNajvažžniji blokovi u izgradnji OO sistemaniji blokovi u izgradnji OO sistema
�� PredstavljPredstavljaaju skup objekata sa istim ju skup objekata sa istim atributima, operacijama, relacijama atributima, operacijama, relacijama (vezama) i semantikom(vezama) i semantikom
�� Podrazumeva se da klasa pripada paketu u Podrazumeva se da klasa pripada paketu u kojem je definisanakojem je definisana
�� Strukturne karakteristike klase su njena Strukturne karakteristike klase su njena svojstva: atributi i operacijesvojstva: atributi i operacije
�� UobiUobiččajeno je da se klasa jednom prikaajeno je da se klasa jednom prikažže u e u kompletnom, implementacionom obliku, a da kompletnom, implementacionom obliku, a da se kasnije navodi samo naziv klasese kasnije navodi samo naziv klase
Pogledi klasaPogledi klasa
�� SpoljaSpoljaššnji pogled: sadrnji pogled: sadržži javni, zai javni, zašštitiććeni i eni i privatni deo, a sakrivena je struktura klase i privatni deo, a sakrivena je struktura klase i implementacija operacijaimplementacija operacija
�� UnutraUnutraššnji pogled: implementacija klase sa nji pogled: implementacija klase sa detaljima realizacije atributa i operacijadetaljima realizacije atributa i operacija
�� Javni deo: deklaracije dostupne drugim Javni deo: deklaracije dostupne drugim objektima drugih klasaobjektima drugih klasa
�� ZaZašštitiććeni deo: skup deklaracija dostupan eni deo: skup deklaracija dostupan samo klasi i njenim podklasamasamo klasi i njenim podklasama
�� Privatni deo: deklaracije dostupne samo toj Privatni deo: deklaracije dostupne samo toj klasiklasi
Naziv klaseNaziv klase�� Naziv je niz slova koji oznaNaziv je niz slova koji označčava njeno ava njeno
mnemonimnemoniččko imeko ime
�� Naziv paketa se moNaziv paketa se možže upotrebiti kao prefiks e upotrebiti kao prefiks sa dvotasa dvotaččkom, pre naziva klasekom, pre naziva klase
�� Stereotip klase se navodi ispod naziva u Stereotip klase se navodi ispod naziva u centru, izmcentru, izmeñu znakova eñu znakova << << ii >>>>
�� Ispod imena klase u vitiIspod imena klase u vitiččastim zagradama astim zagradama navode se osobine klasenavode se osobine klase
�� Npr. Npr. {{persistentpersistent}} oznaoznaččava da stanje objekta ava da stanje objekta postoji i nakon unipostoji i nakon unišštenja datog objektatenja datog objekta
AtributiAtributi
�� Opisuju imenovane osobine klaseOpisuju imenovane osobine klase
�� Vrednosti atributa su iz pridruVrednosti atributa su iz pridružženog domenaenog domena
�� Navode se u odeljku iza naziva klase i to:Navode se u odeljku iza naziva klase i to:
�� Oznaka vidljivosti i oblasti definisanostiOznaka vidljivosti i oblasti definisanosti
�� Naziv atributa Naziv atributa [[viviššestrukostestrukost]]
�� DvotaDvotaččkaka
�� Tip podatka = inicijalna vrednost (opciono)Tip podatka = inicijalna vrednost (opciono)
�� Domen podatka (u vitiDomen podatka (u vitiččastoj zagradi, astoj zagradi, opciono)opciono)
�� Na poNa poččetku se moetku se možže navesti stereotip, a na e navesti stereotip, a na kraju osobine atributakraju osobine atributa
Vidljivost i oblast definisanostiVidljivost i oblast definisanosti
�� Ista pravila vaIsta pravila važže i za atribute i operacijee i za atribute i operacije
�� + + --> javni, upotrebljiv od drugih klasa> javni, upotrebljiv od drugih klasa
�� -- --> privatni, upotrebljiv samo interno u > privatni, upotrebljiv samo interno u klasiklasi
�� # # --> za> zašštitiććen, moen, možže se koristiti samo uz e se koristiti samo uz specijalno odobrenjespecijalno odobrenje
�� podvupodvuččenoeno --> oblast definisanosti je cela > oblast definisanosti je cela klasa, a ne jedan objekatklasa, a ne jedan objekat
Tipovi i domen podatakaTipovi i domen podataka
�� Tip oznaTip označčava implementacioni tip atributa:ava implementacioni tip atributa:
�� Ceo broj: integerCeo broj: integer
�� Realan broj: realRealan broj: real
�� Karakter: charKarakter: char
�� Datum: dateDatum: date
�� ......
�� Domen podatka navodi se opisno bez strogih Domen podatka navodi se opisno bez strogih konvencija, npr. Za atribut konvencija, npr. Za atribut ““polpol”” domen domen momožže biti e biti {{žžensko, muensko, mušškoko}}
ViViššestrukost i dodela vrednostiestrukost i dodela vrednosti
�� Predstavlja broj vrednosti koje atribut u Predstavlja broj vrednosti koje atribut u datom objektu modatom objektu možže da imae da ima
�� Podrazumevana vrednost je 1Podrazumevana vrednost je 1
�� ViViššestrukost 0..1 oznaestrukost 0..1 označčava da datom atributu ava da datom atributu ne mora biti dodeljena vrednost (nije isto ne mora biti dodeljena vrednost (nije isto ššto to i dodeljena prazna vrednost)i dodeljena prazna vrednost)
�� Inicijalna vrednost atributa nije obaveznaInicijalna vrednost atributa nije obavezna
�� Ako se atributu ne dodeljuje vrednost, Ako se atributu ne dodeljuje vrednost, izostavlja se znak izostavlja se znak ““==““
Osobine atributaOsobine atributa�� Navode se opciono, na kraju opisa atributa, u Navode se opciono, na kraju opisa atributa, u
vitivitiččastoj zagradiastoj zagradi
�� Nepromenljiva svojstva oznaNepromenljiva svojstva označčavaju se sa avaju se sa {readOnly} {readOnly} ili saili sa {frozen}{frozen}
�� {{changablechangable}} je podrazumevana osobina, je podrazumevana osobina, oznaoznaččava da se vrednost atributa moava da se vrednost atributa možže e menjatimenjati
�� {{addOnlyaddOnly}} vrednost atributa se movrednost atributa se možže dodati, e dodati, ali ne i menjatiali ne i menjati
�� {{persistentpersistent}} oznaoznaččava da vrednost atributa ava da vrednost atributa postoji i nakon unipostoji i nakon unišštenja pojave objektatenja pojave objekta
Operacije klaseOperacije klase�� Apstrakcija akcija nad objektom klase Apstrakcija akcija nad objektom klase
�� OmoguOmoguććavaju izmenu stanja odreñenog oblekta avaju izmenu stanja odreñenog oblekta u klasi ili preuzimanje njegovog atributau klasi ili preuzimanje njegovog atributa
�� Jedino operacije pridruJedino operacije pridružžene klasi mogu da ene klasi mogu da pristupaju osobinama objekta u klasi radi pristupaju osobinama objekta u klasi radi njihovog anjihovog ažžuriranja ili preuzimanjauriranja ili preuzimanja
�� Time se ograniTime se ograniččava da se stanju objekta moava da se stanju objekta možže e pristupati ili se ono mopristupati ili se ono možže menjati samo preko e menjati samo preko definisanog skupa operacijadefinisanog skupa operacija
�� Javni deo objekta je skup operacija koje Javni deo objekta je skup operacija koje ččine ine njegov identitet i njegov protokolnjegov identitet i njegov protokol
OperacijeOperacijeKoriste se de bi se pomoKoriste se de bi se pomoćću njih iz atributa u njih iz atributa
izvrizvrššile uslugeile usluge
�� Navode se nakon atributa na sledeNavode se nakon atributa na sledećći nai naččin:in:
�� Stereotip (opciono)Stereotip (opciono)
�� Vidljivost Vidljivost
�� Naziv Naziv operacijeoperacije
�� DvotaDvotaččkaka
�� Spisak parametara (u zagradi)Spisak parametara (u zagradi)
�� Tip podatka koji se vraTip podatka koji se vraćća datom a datom operacijomoperacijom
�� Osobine (opciono)Osobine (opciono)
Parametri Parametri �� Zagrade ( i ) se navode obavezno nakon Zagrade ( i ) se navode obavezno nakon
naziva operacije, naziva operacije, ččak i ako se ne navode ak i ako se ne navode parametriparametri
�� Za svaki parametar se novode:Za svaki parametar se novode:
�� Vrsta, koja moVrsta, koja možže biti e biti ““inin””, , ““outout”” ili ili ““inoutinout””
�� Naziv parametraNaziv parametra
�� DvotaDvotaččka ka
�� Tip parametra, kao i kod atributaTip parametra, kao i kod atributa
�� Podrazumevana vrednost, navodi se Podrazumevana vrednost, navodi se opciono, posle znaka opciono, posle znaka ““==““
Osobine operacijaOsobine operacija�� I ovde su osobine opcione, na kraju opisa, u I ovde su osobine opcione, na kraju opisa, u
vitivitiččastoj zagradiastoj zagradi
�� {{queryquery}} ne menja stanje sistema, vene menja stanje sistema, većć samo samo vravraćća vrednosti parametaraa vrednosti parametara
�� {{polymorficpolymorfic}} oznaoznaččava da se osobina realizuje ava da se osobina realizuje preko vipreko višše operacijae operacija
�� {{sequentialsequential}} oznaoznaččava da nije dozvoljeno viava da nije dozvoljeno višše e istovremenih poziva operacije, podrazumevanaistovremenih poziva operacije, podrazumevana
�� {{guardedguarded}} dozvoljeno vidozvoljeno višše istovremenih poziva, e istovremenih poziva, ali se izvrali se izvrššavaju jedna po jednaavaju jedna po jedna
�� {{concurentconcurent}} dozvoljeno vidozvoljeno višše istovremenih e istovremenih poziva koji se istovremeno izvrpoziva koji se istovremeno izvrššavaju avaju
Napomena klaseNapomena klase�� SadrSadržži dodatne informacije o modelu kao i dodatne informacije o modelu kao ššto su to su
ograniograniččenja, komentari ili algoritam operacijeenja, komentari ili algoritam operacije
�� MoMožže se odnositi na razlie se odnositi na različčite elemente modelaite elemente modela
�� Data je u obliku teksta u odgovarajuData je u obliku teksta u odgovarajuććem em grafigrafiččkom simbolukom simbolu
�� Formalan tekst ili pseudokod se navode u Formalan tekst ili pseudokod se navode u vitivitiččastoj zagradiastoj zagradi
�� MoMožže da sadre da sadržži stereotip:i stereotip:
�� <<<<requrementrequrement>>>> odvaja ograniodvaja ograniččenje koje je enje koje je deo algoritmadeo algoritma
�� <<<<responsibilityresponsibility>>>> definidefinišše odgovornost za e odgovornost za jednu ili vijednu ili višše klasa modelae klasa modela
Vrste operacijaVrste operacija
�� ModifikatorModifikator: operacija koja menja stanje : operacija koja menja stanje objekta objekta
�� SelektorSelektor: pristupa stanju objekta, ali ga ne : pristupa stanju objekta, ali ga ne menjamenja
�� IteratorIterator: dozvoljava da svi delovi objekta budu : dozvoljava da svi delovi objekta budu dostupni u prethodno definisanom redosledudostupni u prethodno definisanom redosledu
�� KonstruktorKonstruktor: kreira objekat i mo: kreira objekat i možže inicijalizovati e inicijalizovati njegovo stanje (nema povratnu informaciju)njegovo stanje (nema povratnu informaciju)
�� DestruktorDestruktor: uni: unišštava objekat i oslobaña prostor tava objekat i oslobaña prostor koji je on zauzimaokoji je on zauzimao
Komunikacija objekataKomunikacija objekata
�� Ostvaruje se pozivanjem odgovarajuOstvaruje se pozivanjem odgovarajuććih ih operacija:operacija:
�� Prosleñivanje poruka Prosleñivanje poruka (uobi(uobiččajeno)ajeno)
�� Zahtevi za sprovoñenje odreñenih akcijaZahtevi za sprovoñenje odreñenih akcija
�� Akcije nad drugim objektimaAkcije nad drugim objektima
EnkapsulacijaEnkapsulacija�� Postupak objedinjavanja podataka i metoda Postupak objedinjavanja podataka i metoda
klase objekta u jednu celinu naziva se klase objekta u jednu celinu naziva se enkapsulacijaenkapsulacija
�� Sinonim: uSinonim: uččaurenjeaurenje
�� Podrazumeva da su detalji implementacije Podrazumeva da su detalji implementacije objekta sakriveni od drugih objekata u sistemuobjekta sakriveni od drugih objekata u sistemu
�� Objekat je u okruObjekat je u okružženju poznat po uslugama, a enju poznat po uslugama, a njegova unutranjegova unutraššnja struktura i podaci su nja struktura i podaci su nepoznati van objektanepoznati van objekta
�� Vidljivi deo klase: interfejsVidljivi deo klase: interfejs
�� Nevidljivi deo klase: interpretacijaNevidljivi deo klase: interpretacija
Primer klase objekataPrimer klase objekataTelefonski pretplatnikTelefonski pretplatnik
+ ime i prezime: abecedni string+ ime i prezime: abecedni string
# adresa: abecedni string# adresa: abecedni string
+ pol: karakter + pol: karakter {{m, m, žž}}
-- broj telefona: integerbroj telefona: integer
broj pretplatnika: integerbroj pretplatnika: integer
+ p+ pronañi ronañi (ime (ime i prezime:i prezime: abecedni abecedni string): integstring): integerer
# n# nañi adresu añi adresu (broj telefona: integer): (broj telefona: integer): abecedni stringabecedni string
PorukePoruke
�� Operacije jednog objekta se pozivaju od Operacije jednog objekta se pozivaju od strane drugog pomostrane drugog pomoćću porukau poruka
�� Poruka je zahtev upuPoruka je zahtev upuććen pojavi klase da en pojavi klase da izvrizvršši neku od svojih operacijai neku od svojih operacija
�� Pojave klase (objekti) komuniciraju putem Pojave klase (objekti) komuniciraju putem porukaporuka
�� Komunikacija izmeñu objekata realizuje se Komunikacija izmeñu objekata realizuje se prosleñivanjem poruka izmeñu njihprosleñivanjem poruka izmeñu njih
Realizacija komunikacijeRealizacija komunikacije
�� Poziv odgovarajuPoziv odgovarajuććih uslugaih usluga
�� Nazivi poruka odgovaraju nazivima usluga Nazivi poruka odgovaraju nazivima usluga u objektuu objektu
�� Ulazni parametri: kopiUlazni parametri: kopije informacija je informacija potrebnih za izvoñenjepotrebnih za izvoñenje
�� Izlazni parametri: rezulIzlazni parametri: rezultati izvoñenja tati izvoñenja uslugausluga
PolimorfizamPolimorfizam
�� Objekat koji prosleñuje poruku ne mora Objekat koji prosleñuje poruku ne mora znati kojem je objektu znati kojem je objektu ššaljealje
�� U razliU različčitim klasama se mogu kreirati itim klasama se mogu kreirati razlirazliččiti metodi pod istim nazivomiti metodi pod istim nazivom
�� Zato se ista operacija moZato se ista operacija možže implementirati e implementirati na razlina različčite naite naččine u razliine u različčitim klasamaitim klasama
�� Ovaj koncept se naziva polimorfizamOvaj koncept se naziva polimorfizam
Slobodni podprogramiSlobodni podprogrami
�� Funkcije koje se izvrFunkcije koje se izvrššavaju nad jednim ili viavaju nad jednim ili višše e objekata jedne ili viobjekata jedne ili višše klasae klasa
�� GrupiGrupiššu se prema klasama nad u se prema klasama nad ččijim pojavama ijim pojavama se izvrse izvrššavaju aktivnosti funkcijaavaju aktivnosti funkcija
�� Ove kolekcije programa se nazivaju usluOve kolekcije programa se nazivaju uslužžne ne klaseklase
�� Sve operacije i podprogrami koji se izvrSve operacije i podprogrami koji se izvrššavaju avaju nad klasom nazivaju se njen protokolnad klasom nazivaju se njen protokol
�� Protokolom se definiProtokolom se definišše ponae ponaššanje objektaanje objekta
�� On sadrOn sadržži statii statiččki i dinamiki i dinamiččki pogled nad ki pogled nad objektomobjektom
Veze izmeñu klasaVeze izmeñu klasa
�� Asocijacija Asocijacija
�� NasleñivanjeNasleñivanje
�� Agregacija Agregacija
�� Zavisnost Zavisnost
�� Veza pojave (binding)Veza pojave (binding)
OznaOznaččavanje relacija avanje relacija �� Klase nisu samostalne, oneKlase nisu samostalne, one sarañuju sarañuju
�� Saradnja klasa Saradnja klasa –– 3 vrste relacija:3 vrste relacija:
�� Zavisnost:Zavisnost: promena u nadklasi izaziva promena u nadklasi izaziva promenu u podklasi, oznapromenu u podklasi, označčava se:ava se:
�� GeneralizacijaGeneralizacija: n: nasleñivanjeasleñivanje, ozna, označčava se:ava se:
�� AsocijacijaAsocijacija: strukturna relacija preko koje se : strukturna relacija preko koje se iz objekata jedne klase pristupa objektima iz objekata jedne klase pristupa objektima druge, oznadruge, označčava se:ava se:
�� AgregacijaAgregacija: specijalna vrsta asocjacije, : specijalna vrsta asocjacije, oznaoznaččava se sa: ava se sa:
Primeri vezaPrimeri veza
Grañanin Zahtev
Telefonskipretplatnik
Telefonskalinija
generalizacija
zavisnost
asocijacija
ViViššestrukosti u vezamaestrukosti u vezama
�� Opisuju koliko se objekata povezuje vezomOpisuju koliko se objekata povezuje vezom
�� Opis uz klasu u vezi ukazuje koliko se Opis uz klasu u vezi ukazuje koliko se objekata te klase povezuje sa 1 objektom objekata te klase povezuje sa 1 objektom druge klase; ovi opisi mogu biti:druge klase; ovi opisi mogu biti:
�� (1) ta(1) taččno jedan,no jedan,
�� (0..1) jedan ili nijedan(0..1) jedan ili nijedan
�� (0..*) vi(0..*) višše, jedan ili nijedane, jedan ili nijedan
�� (1..*) jedan ili vi(1..*) jedan ili viššee
AsocijacijaAsocijacija�� Veza izmeñu klasa koja oznaVeza izmeñu klasa koja označčava semantiava semantiččku ku
zavisnost (zavisnost (ččesto se imenuje)esto se imenuje)
�� Primer: student Primer: student polapolažžee ispitispit
�� Specifikacija ove veze sadrSpecifikacija ove veze sadržži klase koje u njoj i klase koje u njoj uuččestvuju, uloge posmatranih klasa i njenu estvuju, uloge posmatranih klasa i njenu kardinalnost (vikardinalnost (viššestrukost)estrukost)
�� Veza zavisnosti je asocijacija kod koje prisustvo Veza zavisnosti je asocijacija kod koje prisustvo jedne zahteva prisustvo druge klasejedne zahteva prisustvo druge klase
�� OznaOznaččavaju se na 2 naavaju se na 2 naččina: kaina: kao operacije klase o operacije klase i kao veze izmeñu i kao veze izmeñu 2 klase2 klase
Dvosmerne asocijacijeDvosmerne asocijacije
�� Dvosmerna asocijacija je par svojstava koja Dvosmerna asocijacija je par svojstava koja su povezana kao uzajamno inverznasu povezana kao uzajamno inverzna
�� Primer: izmPrimer: izmeñu klasa Auto i Osoba mogu se eñu klasa Auto i Osoba mogu se formirati asocijacije Osoba je vlasnik Auta i formirati asocijacije Osoba je vlasnik Auta i Auto je u vlasniAuto je u vlasnišštvu Osobetvu Osobe
Osoba Auto0..1
Osoba Auto0..1 *
Osoba Auto0..1
Asocijacija u okviru klaseAsocijacija u okviru klase
�� Klasa moKlasa možže biti u asocijaciji sama sa sobome biti u asocijaciji sama sa sobom
�� Rekurzivna asocijacija: povezuju se razliRekurzivna asocijacija: povezuju se različčiti iti objekti iste klaseobjekti iste klase
�� Refleksivna asocijacija: povezan je jedan Refleksivna asocijacija: povezan je jedan objekat sam sa sobomobjekat sam sa sobom
Lista grupa
0..*
Student 0..*
{self}
prijatelj
Navigacija asocijacijeNavigacija asocijacije
�� Za svaku klasu asocijacije moZa svaku klasu asocijacije možže se definisati e se definisati njena vidljivost, tj. mogunjena vidljivost, tj. moguććnost pristupa nost pristupa objektima nje kao ciljne klaseobjektima nje kao ciljne klase
�� OznaOznaččava se uz ulogu klase objekta u vezi:ava se uz ulogu klase objekta u vezi:
�� javna (public) oznajavna (public) označčava da se moava da se možže slobodno e slobodno pristupiti ulozi ove iz drugih klasapristupiti ulozi ove iz drugih klasa
�� zazašštitiććena (protected) ulozi se moena (protected) ulozi se možže pristupiti e pristupiti iz potklase polazne klase i te klaseiz potklase polazne klase i te klase
�� privatna (private) ulozi klase se moprivatna (private) ulozi klase se možže e pristupiti samo iz polazne klasepristupiti samo iz polazne klase
Klasa asocijacijeKlasa asocijacije�� Klasa asocijacije je asocijacija sa osobinama Klasa asocijacije je asocijacija sa osobinama
klase, tj. sa atributima i operacijama kao i klase, tj. sa atributima i operacijama kao i vezama sa drugim klasamavezama sa drugim klasama
�� Oznaka klase asocijacije je ista kao i klase, s Oznaka klase asocijacije je ista kao i klase, s tim tim ššto se sa vezom asocijacije povezuje to se sa vezom asocijacije povezuje isprekidanom linijomisprekidanom linijom
�� Povezana je za samu pojavu asocijacije, a ne za Povezana je za samu pojavu asocijacije, a ne za klase povezane njom klase povezane njom
�� Za svaku pojavu date asocijacije postoji i jedna Za svaku pojavu date asocijacije postoji i jedna pojava ove klasepojava ove klase
�� Naziv ove klase je isti kao i naziv same Naziv ove klase je isti kao i naziv same asocijacijeasocijacije
Primer klase asocijacijePrimer klase asocijacije
Student Predmetpoložio
Ispit
ocena: Integer {ocena>5 and <11}
datum: Date
0..* 0..*
Kvalifikovana asocijacijaKvalifikovana asocijacija
�� Za asocijaciju moZa asocijaciju možže biti definisan kvalifikator e biti definisan kvalifikator (po 1 u oba smera), sastavljen iz 1 ili vi(po 1 u oba smera), sastavljen iz 1 ili višše e atributaatributa
�� Kvalifikator sluKvalifikator služži da se iz skupa objekata klase i da se iz skupa objekata klase izdvoje oni koji imaju datu vrednost atributaizdvoje oni koji imaju datu vrednost atributa
Proizvod Materijalid materijala0..* 0..*
Asocijacije veAsocijacije veććeg redaeg reda�� Pored binarnih, mogu se modelirati i asocijacije Pored binarnih, mogu se modelirati i asocijacije
veveććeg redaeg reda
�� GrafiGrafiččki prikaz nki prikaz n--arne asocijacije je romb, uz arne asocijacije je romb, uz koji se navodi mjen nazivkoji se navodi mjen naziv
�� Krajevi ovih asocijacija ne mogu biti agregacije Krajevi ovih asocijacija ne mogu biti agregacije i ne moi ne možže im se pridrue im se pridružžiti kvalifikatoriti kvalifikator
Predmet
Student
Profesor0..*0..1
5..*
predaje
OgraniOgraniččenja asocijacije enja asocijacije
�� Izmeñu asocijacija jedne klase moIzmeñu asocijacija jedne klase možže se e se uspostaviti ograniuspostaviti ograniččenje enje ““xorxor”” koje oznakoje označčava ava da moda možže postojati u jednom trenutku samo e postojati u jednom trenutku samo jedna od povezanih asocijacija jedna od povezanih asocijacija
�� ““unorderedunordered”” ukazuje da odgovarajuukazuje da odgovarajućće pojave e pojave klase nisu ureñene klase nisu ureñene (podrazumevano)(podrazumevano)
�� ““orderedordered”” ukazuje da postoji kriterijum ukazuje da postoji kriterijum ureñenja koji nije prikazanureñenja koji nije prikazan
�� ““sortedsorted”” ukazuje da su pojave klase sortirane ukazuje da su pojave klase sortirane saglasno njihovim vrednostimasaglasno njihovim vrednostima
Primer ograniPrimer ograniččenjaenja
Ugovor ostudiranju
Fond
StudentUgovor sa pravnim licem
Budžetski ugovor
{xor}
1..*
1..*
0..*
0..*
{ordered}
{sorted}
GeneralizacijaGeneralizacija�� Naziva se generalizacija ili specijalizacija Naziva se generalizacija ili specijalizacija
(zavisno od smera posmatranja)(zavisno od smera posmatranja)
�� OpOpššti naziv za oba smera: ti naziv za oba smera: nasleñivanjenasleñivanje
�� Podreñeni element je u potpunoj saglasnosti Podreñeni element je u potpunoj saglasnosti sa nadreñenim i poseduje sve njegove sa nadreñenim i poseduje sve njegove osobine, a moosobine, a možže posedovati i sopstvenee posedovati i sopstvene
�� Jedna klasa moJedna klasa možže imati jednu ili vie imati jednu ili višše e nadreñenih klasanadreñenih klasa: jednostruko i vi: jednostruko i viššestruko estruko nasleñivanjenasleñivanje
�� Specijalizacija nadreñene klase u stablo vrSpecijalizacija nadreñene klase u stablo vršši se i se po kriterijumu koji se naziva po kriterijumu koji se naziva ““diskriminatordiskriminator””
NasleñivanjeNasleñivanje�� Klasa objekata preuzima (naslKlasa objekata preuzima (nasleñujeeñuje) obele) obeležžja i ja i
operacije jedne ili vioperacije jedne ili višše klasae klasa
�� Objekti takoñe nasleñuju obeleObjekti takoñe nasleñuju obeležžja i operacije ja i operacije od svoje klaseod svoje klase
�� Superklasa (nadrSuperklasa (nadreñena klasaeñena klasa) je klasa od koje ) je klasa od koje se vrse vršši nasleñivanjei nasleñivanje
�� Podklasa (podrPodklasa (podreñena klasaeñena klasa) j) je klasa koja e klasa koja nasleñujenasleñuje
�� Podklasa moPodklasa možže povee poveććavati ili ograniavati ili ograniččavati avati strukturu i ponastrukturu i ponaššanje superklaseanje superklase
�� Pri ograniPri ograniččavanju menja se implementacija avanju menja se implementacija operacijaoperacija
Tipovi klasa u hijerarhijiTipovi klasa u hijerarhiji�� Sve klase u hijerarhiji nasleñivanja ne moraju Sve klase u hijerarhiji nasleñivanja ne moraju
imati konkretne pojaveimati konkretne pojave
�� Osnovna klasa ima najopOsnovna klasa ima najopšštiju strukturu i tiju strukturu i ponaponaššanje u stablu nasleñivanjaanje u stablu nasleñivanja
�� Konkretne klase su one koje imaju pojaveKonkretne klase su one koje imaju pojave
�� Apstraktne klase nemaju pojave, one obiApstraktne klase nemaju pojave, one običčno no dopunjuju implementaciju operacija ili ih dopunjuju implementaciju operacija ili ih ponovo definiponovo definiššuu
�� Vezom nasleñivanja medeliraju se Vezom nasleñivanja medeliraju se generalizacija i specijalizacijageneralizacija i specijalizacija
�� Dobro definisana hijerarhija nasleñivanja ima Dobro definisana hijerarhija nasleñivanja ima strukturu stablastrukturu stabla
Primer nasleñivanjaPrimer nasleñivanja
Motorno vozilo
Automobil Autobus Kamion
Privatni auto Službeni auto
AgregacijaAgregacija�� Veza celinaVeza celina--deo izmeñu pojava datih klasadeo izmeñu pojava datih klasa
�� SadrSadržžavanje po vrednosti: fiziavanje po vrednosti: fiziččko sadrko sadržžavanje, avanje, tj. objekat deo ne postoji bez celina tj. objekat deo ne postoji bez celina ččiji je deoiji je deo
�� Ovakva agregacija se naziva kompozicija Ovakva agregacija se naziva kompozicija (prikaz: puni romb)(prikaz: puni romb)
�� Primer: FakultetPrimer: Fakultet--OdsekOdsek--Smer Smer
�� SadrSadržžavanje po referenci: deo se moavanje po referenci: deo se možže koristiti e koristiti u viu višše celina i moe celina i možže postojati nezavisno od e postojati nezavisno od objekta celine (prikaz: prazan romb)objekta celine (prikaz: prazan romb)
�� Primer: LaboratorijaPrimer: Laboratorija--Grupa za veGrupa za vežžbebe--StudentStudent
�� ““Mislite o njoj kao o placebu u modelovanju.Mislite o njoj kao o placebu u modelovanju.””Jim RumbaughJim Rumbaugh
Veza zavisnostiVeza zavisnosti
�� Predstavlja vezu izmeñu Predstavlja vezu izmeñu 2 elementa modela2 elementa modela
�� OznaOznaččava da funkcionalnost ili prisustvo ava da funkcionalnost ili prisustvo jednog zahteva postojanje drugog elementajednog zahteva postojanje drugog elementa
�� Ovi elementi moraju postojati na istom nivou Ovi elementi moraju postojati na istom nivou apstrakcijeapstrakcije
�� Ovi elementi mogu biti klasa, interfejs ili Ovi elementi mogu biti klasa, interfejs ili paketpaket
�� Predstavlja se isprekidanom usmerenom Predstavlja se isprekidanom usmerenom linijom (zavisni element na polinijom (zavisni element na poččetku linije)etku linije)
�� OznaOznaččava se da izmena u nezavisnom ava se da izmena u nezavisnom elementu utielementu utičče na zavisni elemente na zavisni element
Stereotipovi zavisnostiStereotipovi zavisnosti�� <<<<tracetrace>>>> veza izmeñu elemenata istog veza izmeñu elemenata istog
modela na razlimodela na različčitim nivoima apstrakcijeitim nivoima apstrakcije
�� <<<<useuse>>>> funkcionalnost ili implementacija funkcionalnost ili implementacija jednog elementa zahteva prisustvo drugog jednog elementa zahteva prisustvo drugog elementa modelaelementa modela
�� <<<<refinerefine>>>> zavistan element izveden je na zavistan element izveden je na osnovu nezavisnogosnovu nezavisnog
�� <<<<realizerealize>>>> zavistan element predstavlja zavistan element predstavlja realizaciju (implementaciju) nezavisnogrealizaciju (implementaciju) nezavisnog
�� <<<<instanceOfinstanceOf>>>> zavistan element je pojava zavistan element je pojava nezavisnognezavisnog
Primeri veze zavisnostiPrimeri veze zavisnosti
Vektor Matrica
{refine}Nalog Narudžba
{use}
{instanceOf}Stavka Dokument
Veza pojave (binding)Veza pojave (binding)
�� Predstavlja vezu izmeñu parametrizovane Predstavlja vezu izmeñu parametrizovane klase i njenih izvedenih klasaklase i njenih izvedenih klasa
�� Generalizacija potpuno drukGeneralizacija potpuno drukččija od one kod ija od one kod nasleñivanjanasleñivanja
�� Primer: klasa stekPrimer: klasa stek
Napomene i komentariNapomene i komentari�� Napomene su komentari na dijagramuNapomene su komentari na dijagramu
�� Mogu biti nezavisni od drugih elemenata Mogu biti nezavisni od drugih elemenata dijagrama ili spojeni isprekidanom linijom dijagrama ili spojeni isprekidanom linijom sa elementima koje objasa elementima koje objaššnjavajunjavaju
�� Pojavljuju se na svim vrstama dijagramaPojavljuju se na svim vrstama dijagrama
�� Komentari se mogu dodati i elementima Komentari se mogu dodati i elementima dijagrama, ispred komentara se stavlja dijagrama, ispred komentara se stavlja ““----””
Ne obuhvata asistente
Nastavnik-- u svim zvanjima
Interfejsi Interfejsi �� Interfejs predstavlja skup operacija koje Interfejs predstavlja skup operacija koje
definidefiniššu neko ponau neko ponaššanjeanje
�� Jedan interfejs mogu odreñivati razliJedan interfejs mogu odreñivati različčite klaseite klase
�� Jedna klasa moJedna klasa možže se nalaziti u razlie se nalaziti u različčitim itim interfejsimainterfejsima
�� Obuhvata deo ponaObuhvata deo ponaššanja klase i ne sadranja klase i ne sadržži i unutraunutraššnju interpretacijunju interpretaciju
�� Izmeñu interfejsa se moIzmeñu interfejsa se možže definisati veza e definisati veza nasleñivanjanasleñivanja
�� Interfejs se mInterfejs se moožže posmatrati kao apstraktna e posmatrati kao apstraktna klasa bez atributa, sa apstraktnim operacijamaklasa bez atributa, sa apstraktnim operacijama
Projektovanje interfejsaProjektovanje interfejsa�� Ako je metod javan, on se smatra delom Ako je metod javan, on se smatra delom
interfejsa interfejsa
�� ViViššestruka upotrebljivost klasa stvara osnove za estruka upotrebljivost klasa stvara osnove za formiranje apstraktnih interfejsa formiranje apstraktnih interfejsa
�� Konkretni interfejsi streme ka odreñenostiKonkretni interfejsi streme ka odreñenosti
�� Primer: apstraktno Primer: apstraktno –– vozite me na Aerodrom vozite me na Aerodrom ““Nikola TeslaNikola Tesla””, konkretno , konkretno –– skrenite levo pa...skrenite levo pa...
�� Apstraktni interfejs se moApstraktni interfejs se možže vie višše puta upotrebitie puta upotrebiti
�� Interfejs treba da sadrInterfejs treba da sadržži samo neophodne i samo neophodne metode, sve ostale treba sakriti metode, sve ostale treba sakriti
PaPažžnja!nja!�� Nemojte meNemojte meššati interfejs u UMLati interfejs u UML--u i grafiu i grafiččki ki
korisnikorisniččki interfejs (GUI)ki interfejs (GUI)
�� GUI je specijalan sluGUI je specijalan sluččaj interfejsa izmeñu aj interfejsa izmeñu neposrednog korisnika i aplikacijeneposrednog korisnika i aplikacije
�� Interfejs u UMLInterfejs u UML--u je mnogo opu je mnogo opšštiji i tiji i šširi iri pojam, a njega ne pojam, a njega ne ““videvide”” korisnici, vekorisnici, veććprogrameriprogrameri
�� Promene u realizaciji operacija nisu bitne, Promene u realizaciji operacija nisu bitne, ukoliko one i dalje daju korektne rezultate ukoliko one i dalje daju korektne rezultate iste struktureiste strukture
PaketiPaketi
�� Modeli mogu biti organizovani u viModeli mogu biti organizovani u višše celina e celina povezanih vezama asocijacije, naslpovezanih vezama asocijacije, nasleñivanja ili eñivanja ili agregacijeagregacije
�� Takve logiTakve logiččke celine se nazivaju paketike celine se nazivaju paketi
�� Paket je podskup modela koji Paket je podskup modela koji ččine logiine logiččku ku celinu i sastoji se iz klasa i veza izmeñu njihcelinu i sastoji se iz klasa i veza izmeñu njih
�� On odreñuje oblast definisanosti klasaOn odreñuje oblast definisanosti klasa
�� Primer: baza podataka se moPrimer: baza podataka se možže podeliti u e podeliti u grupe meñusobno povezanih klasagrupe meñusobno povezanih klasa
ProProšširenje osnovnih elemenata irenje osnovnih elemenata modelamodela
�� Mehanizmi UMLMehanizmi UML--a pomoa pomoćću kojih se formiraju u kojih se formiraju novi elementi modela na osnovu postojenovi elementi modela na osnovu postojeććihih
�� Elementi modela proElementi modela prošširuju se sa novom iruju se sa novom semantikomsemantikom
�� VrVršši se pomoi se pomoćću stereotipa, ograniu stereotipa, ograniččenja i enja i oznaoznaččenih vrednostienih vrednosti
Stereotip Stereotip
�� Mehanizam koji omoguMehanizam koji omoguććava definisanje novih ava definisanje novih elemenata modela (koncepata) na osnovu elemenata modela (koncepata) na osnovu osnovnih elemenataosnovnih elemenata
�� Zasniva se na dodavanju nove semantike na Zasniva se na dodavanju nove semantike na postojepostojećći elementi element
�� Notacija novog elementa ista je kao i notacija Notacija novog elementa ista je kao i notacija elementa na osnovu kojeg je definisanelementa na osnovu kojeg je definisan
�� Novi element je oznaNovi element je označčen novim imenom en novim imenom (stereotipom), u okviru znakova (stereotipom), u okviru znakova ““<<<<““ ii ““>>>>””
Stereotipovi klase Stereotipovi klase
�� <<<<implementationClassimplementationClass>>>> predstavlja element predstavlja element modela u kojem se opisuju fizmodela u kojem se opisuju fizččke strukture ke strukture atributa i vezaatributa i veza
�� <<<<typetype>>>> tip koji definitip koji definišše domen objekatae domen objekata�� Klasa moKlasa možže imati 1 tip implementacije i vie imati 1 tip implementacije i višše e
tipova definicije domena objektatipova definicije domena objekta�� Stereotip Stereotip <<<<utilityutility>>>> definidefinišše uslue uslužžni tip klase, ni tip klase,
kojim se definikojim se definiššu globalne promenljive i u globalne promenljive i procedureprocedure
�� Stereotipom Stereotipom <<<<metaclassmetaclass>>>> definidefinišše se e se metaklasa, tj. klasa metaklasa, tj. klasa ččije su pojave klaseije su pojave klase
�� Interfejs se prikazuje pomoInterfejs se prikazuje pomoćću ikonice klase i u ikonice klase i rerečči i <<interface>><<interface>>
U realizaciji izvora koristi se odrediU realizaciji izvora koristi se odrediššte vezete veze<<use>><<use>>
Koristi se za razliKoristi se za različčita evidentiranja o vezamaita evidentiranja o vezama<<trace>><<trace>>
Izvor moIzvor možže zameniti odredie zameniti odredišštete<<substitute>><<substitute>>
Detalji o odnosu sa razliDetalji o odnosu sa različčitim znaitim značčenjimaenjima<<refine>><<refine>>
Izvor je realizacija odrediIzvor je realizacija odrediššne specifikacije ili interfejsane specifikacije ili interfejsa<<realize>><<realize>>
OdrediOdrediššte dozvoljava izvoru da pristupa privatnim te dozvoljava izvoru da pristupa privatnim karakteristikamakarakteristikama
<<permit>><<permit>>
Izvor je instanca odrediIzvor je instanca odredišštata<<instatiate>><<instatiate>>
Izvor je izveden iz odrediIzvor je izveden iz odredišštata<<derive>><<derive>>
Izvor pravi instance odrediIzvor pravi instance odredišštata<<create>><<create>>
Izvor poziva operaciju odrediIzvor poziva operaciju odredišštata<<call>><<call>>
ZnaZnaččenjeenjeRezervisana reRezervisana rečč
ProfilProfil
�� Predstavlja deo UMLPredstavlja deo UML--a proa prošširen koherentnim iren koherentnim skupom stereotipova i napravljen je radi skupom stereotipova i napravljen je radi odreñene nameneodreñene namene
�� Stereotipovi se koriste kao deo profilaStereotipovi se koriste kao deo profila
�� Pravi se kada se projektuje metamodelPravi se kada se projektuje metamodel
�� U praksi se najU praksi se najččeeššćće koriste prethodno e koriste prethodno formirani profiliformirani profili
OgraniOgraniččenje enje �� Dijagrami klasa uglavnom opisuju ograniDijagrami klasa uglavnom opisuju ograniččenja, enja,
ali ne mogu da ukaali ne mogu da ukažžu na svau na sva
�� Ovaj mehanizam definiOvaj mehanizam definišše dodatna ogranie dodatna ograniččenja enja nad elementom modelanad elementom modela
�� Navodi se u vitiNavodi se u vitiččastoj zagradi, kao slobodan astoj zagradi, kao slobodan teksttekst
�� Specificiraju se uslovi i osobine koje moraju biti Specificiraju se uslovi i osobine koje moraju biti zadovoljene da bi sistem bio korektanzadovoljene da bi sistem bio korektan
�� ProProšširuje skup prethodno definisanih iruje skup prethodno definisanih ograniograniččenjaenja
�� OCL: formalni jezik opisa ograniOCL: formalni jezik opisa ograniččenja zasnovan enja zasnovan na predikatskom rana predikatskom raččunuunu
OznaOznaččene vrednosti ene vrednosti
�� Mehanizam koji omoguMehanizam koji omoguććava definisanje ava definisanje razlirazliččitih osobina elementa modelaitih osobina elementa modela
�� Osobina se zadaje preko svog imena i Osobina se zadaje preko svog imena i vrednostivrednosti
�� MoMožže biti definisana za bilo koji element e biti definisana za bilo koji element modela modela –– klasu, atribut, operaciju, vezu...klasu, atribut, operaciju, vezu...
Proces OOPProces OOP�� Ustanovljavanje svih klasa u sistemu i Ustanovljavanje svih klasa u sistemu i
njihovih obelenjihovih obeležžja i operacijaja i operacija
�� UoUoččavanje meñusobnih odnosa izmeñu ovih avanje meñusobnih odnosa izmeñu ovih klasaklasa
�� Hijerarhijska agregacija objekata, tj. Hijerarhijska agregacija objekata, tj. formiranje formiranje šširih klasa objekatairih klasa objekata
�� Definisanje naDefinisanje naččina razmene poruka izmeñu ina razmene poruka izmeñu objekataobjekata
�� Specificiranje interfejsa izmeñu objekataSpecificiranje interfejsa izmeñu objekata
�� Sagledavanje buduSagledavanje buduććih korisnika klase je ih korisnika klase je jedna od najvajedna od najvažžnijih stvari u njenom nijih stvari u njenom projektovanju!projektovanju!
PaPažžnja!nja!
�� Klasa predstavlja Klasa predstavlja šširi kontekst odreñen iri kontekst odreñen domenom aplikacije, a ne pojedine datotekedomenom aplikacije, a ne pojedine datoteke
�� Npr. kod aplikacije praNpr. kod aplikacije praććenja poseta Web enja poseta Web sajtu klase mogu biti posetilac, poseta i sajtu klase mogu biti posetilac, poseta i misija sajtamisija sajta
�� Dijagrami korisniDijagrami korisniččkih funkcija predstavljaju kih funkcija predstavljaju osnovni izvor za formiranje klasaosnovni izvor za formiranje klasa
�� Prvo se nabrajaju svi potencijalni kandidati Prvo se nabrajaju svi potencijalni kandidati za klase, a zatim se rigorozno izdvajaju samo za klase, a zatim se rigorozno izdvajaju samo one neophodneone neophodne
PreporukePreporuke
�� Ne koristiti sve dostupne elemente, veNe koristiti sve dostupne elemente, većć samo samo osnovneosnovne
�� Konceptualni dijagrami klasa (bez generatora Konceptualni dijagrami klasa (bez generatora softvera) su veoma korisni za istrasoftvera) su veoma korisni za istražživanje ivanje poslovanja i terminologijeposlovanja i terminologije
�� Ne crtati modele za sve oblasti, veNe crtati modele za sve oblasti, većć za one za one najvanajvažžnijenije
�� Bolje je imati nekoliko stalno aBolje je imati nekoliko stalno ažžurnih urnih dijagrama, nego puno zastarelih i zaboravljenihdijagrama, nego puno zastarelih i zaboravljenih
Porudžbina
datumNarucivanja: Date[0..1]broj: String[1]
pošaljizaključi
Kupac
Ime:String[1]adresa:String[1]
čitajKreditnoStanje():String
* 1
kardinalnost
asocijacija
Stavka Porudžbine
količina: IntegerCena: Novac
* {ordered}stavke
ime uloge
Klijentska Firma
OsobaZaVezuKreditnoStanje
Pojedinačni Kupac
BrojKartice
generalizacijaklasaatributi
operacije