84
Objekti i klase Objekti i klase

Objekti i klase - vps.ns.ac.rs · Vidljivost i oblast definisanosti Ista pravila važe i za atribute i operacije + -> javni, upotrebljiv od drugih klasa--> privatni, upotrebljiv samo

  • Upload
    others

  • View
    20

  • Download
    0

Embed Size (px)

Citation preview

Objekti i klaseObjekti i klase

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

Unos ulaznihpodataka

Dobijanje izlaznihpodataka

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

Primeri agregacijePrimeri agregacije

OdsekFakultet

Laboratorija Student0..* 1..*

1 1..*

Kompozicija od viKompozicija od višše klasae klasa

Zaposleni

Proizvodni Neproizvodni Ugovorni

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

IKEA: Prijem radnika

Napravite stolicu isedite.