30
Informacioni sistemi -vežbe- Tema: Dijagrami klasa

dijagrami klasa

  • Upload
    bico83

  • View
    176

  • Download
    10

Embed Size (px)

Citation preview

Page 1: dijagrami klasa

Informacioni sistemi-vežbe-

Tema: Dijagrami klasa

Page 2: dijagrami klasa

Klasa

Klasa predstavlja skup objekata koji imaju iste atribute i operacije, istu semantiku i zajedničke veze sa drugim objektima.

Objekat je pojava posmatrane klase i ima određenu ulogu u sistemu.

Page 3: dijagrami klasa

Veze između klasa

Asocijacija (association) Nasleđivanje (inheritance) Agregacija (aggregation) Zavisnost (dependency)

Page 4: dijagrami klasa

Dijagram klasa

Prikazuje statičku strukturu sistema Pogled na sistem koji obuhvata klase

sistema, njihove strukture i veze između njih

Page 5: dijagrami klasa

Notacija za klasu

ImeKlase

Atribut1 : tip1 = inicijalnaVrednost1Atribut2 : tip2 = inicijalnaVrednost2Atribut3 : tip3 = inicijalnaVrednost3

Operacija1(param1 : tip1, param2 : tip2) : povratniTip1Operacija2()Operacija3()

(from ImePaketa)

<<stereotip>>

Napomena

Page 6: dijagrami klasa

Primer: Klasa Student

StudentbrojIndeksa : Integergodina : Integerime : Stringprezime : Stringadresa : Stringstatus : Status={samofinansiranje, budzet} = budzetbrojIspita : Integer

student(brojIndeksa : Integer, godina : Integer, ime : String, prezime : String, status : Status)vratiBrdos() : IntegervratiStatus() : StatuspromeniPrezime(novoPrezime : String)promeniStatus() : Status

Page 7: dijagrami klasa

Primer 1 – asocijacija:

Veza binarne asocijacije između klasa Profesor i Predmet. Profesor ne mora da drži nastavu na fakultetu, ali isto tako može da drži nastavu iz više predmeta. Za nastavu iz jednog predmeta zadužen je jedan i samo jedan profesor.

Pri uvođenju novog predmeta u plan i program studija mora se definisati i eventualno priznavanje ispita, odnosno ekvivalencija između predmeta.

Page 8: dijagrami klasa

Primeri za rekurzivnu asocijaciju klase Predmet Novi predmet je sadržan u nijednom ili više Starih predmeta. Stari

predmet se priznaje kao nijedan ili više Novih predmeta.

Primer 1: Predmet Baze podataka I je sadržan u predmetu Baze podataka. Predmet Baze podataka se priznaje kao predmet Baze podataka I ili kao predmeti Baze podataka I i Baze podataka II.

Primer 2: Predmet Numeričke metode je sadržan u predmetima NUMELA i MROJ. Predmet NUMELA se priznaje kao deo predmeta Numeričke metode. Predmet MROJ se priznaje kao deo predmeta Numeričke metode.

Primer 3: Predmet Baze podataka je sadržan u predmetu Organizacija podataka. Predmet Organizacija podataka se priznaje kao predmet Baze podataka.

Page 9: dijagrami klasa

Primer 2 – asocijacija:

Veza asocijacije između klasa Publikacija (sa atributima: signatura, naslov, vrsta, autor, godIzdanja) i Korisnik (sa atributima člKarta, ime, prezime, godRođenja, zanimanje). Publikacija ne mora biti pozajmljena od strane nijednog korisnika, a u jednom trenutku može biti pozajmljena od strane najviše jednog korisnika. Korisnik istovremeno može pozajmiti više publikacija, a ne mora ni jednu.

Page 10: dijagrami klasa

Primer 3 – asocijacija:

Veza asocijacije između klasa Predstava (sa atributima: naziv predstave, žanr, pisac, datum premijere, režiser) i Glumac (sa atributima: id glumca, ime, prezime). U predstavi glumi najmanje jedan, a može i više glumaca. Glumac ne mora da glumi ni u jednoj, a može istovremeno i u više predstava.

Page 11: dijagrami klasa

Klasa asocijacije

Asocijacija koja ima atribute i operacije, može biti povezana sa drugim klasama u modelu.

Page 12: dijagrami klasa

Primer 4 – klasa asocijacije:

Veza asocijacije između klasa Student i Predmet predstavlja položene ispite na studijama. Svaki student može da položi ispit iz nijednog ili više predmeta. Takođe, svaki predmet može da položi nijedan ili više studenata. Za svaki položen ispit zna se ocena koja je postignuta na ispitu, kao i datum kada je student položio ispit. Ocena i datum predstavljaju atribute posmatrane asociajcije. Atribut ocena može imati vrednost iz intervala [6..10].

Page 13: dijagrami klasa

Primer 5 – klasa asocijacije

Veza asocijacije između klasa Proizvod i Račun predstavlja prodate proizvode, tj. stavke na računu. Proizvod se ne mora nalaziti ni na jednom računu, ali se može nalaziti i na više njih. Račun sadrži najmanje jedan, a može sadržati i više proizvoda. Za svaki prodat proizvod se zna količina u kojoj je prodat i jedinica mere. Količina prodatog proizvoda mora biti pozitivna vrednost.

Page 14: dijagrami klasa

Primer 6 – kvalifikovana asocijacija

Između klasa Fakultet i Profesor definisana je kvalifikovana asocijacija, gde je id_nastavnika kvalifikator posmatrane asocijacije. Profesor može da drži predavanja na jednom ili više fakulteta. Na svakom fakultetu profesor ima svoj identifikacioni broj. Zbog toga atribut id_nastavnika ne predstavlja atribut klase Profesor, već atribut asocijacije. Fakultet i identifikacioni broj nastavnika jedinstveno određuju profesora kao nastavnika na posmatranom fakultetu.

Page 15: dijagrami klasa

Primer 7: kvalifikovana asocijacija

Između klasa Univerzitet i Građanin definisana je kvalifikovana asocijacija, gde je id_fakulteta atribut, odnosno kvalifikator posmatrane asocijacije. Na jednom univerzitetu može biti prijavljeno više građana kao studenata, a ne mora ni jedan. Građanin može da bude student na više univerziteta, odnosno fakulteta posmatranih univerziteta, a ne mora ni na jednom. Zbog toga identifikator fakulteta na kome građanin studira ne predstavlja atribut klase Građanin, već atribut posmatrane asocijacije. Na osnovu univerziteta i identifikatora fakulteta posmatranog univerziteta određen je skup građana koji studiraju na posmatranom fakultetu.

Page 16: dijagrami klasa

Primer 8: asocijacije većeg reda

Ternarna asocijacija između klasa Predmet, Profesor i Student kojom su modelirana sledeća ograničenja: student sluša predmet kod najviše jednog profesora; ako profesor izvodi nastavu iz nekog predmeta izvodi je za više studenata, a najmanje za pet; student kod nekog profesora može da sluša više predmeta, a ne mora nijedan.

Page 17: dijagrami klasa

Agregacija

Tip veze asocijacije sa semantikom celina-deo

Agregacija se pojavljuje u dva oblika:Agregacija – sadržavanje po referenciKompozicija – sadržavanje po vrednosti

Kao i kod asocijacije, na dijagramu se mogu navesti: kardinaliteti, uloge, kvalifikatori, ime, navigacija

Page 18: dijagrami klasa

Primer 1: Grupa za vežbe

Grupa za vežbe iz nekog predmeta sačinjena je od jednog ili više studenata. Svaki student može da učestvuje u izvođenju vežbi iz nijednog ili više predmeta. Ako student učestvuje u izvođenju vežbi onda je on član odgovarajuće grupe.

Page 19: dijagrami klasa

Primer 2: Fakultet - Odsek

Svaki fakultet sačinjen je od jednog ili više odseka, a svaki odsek pripada jednom i samo jednom fakultetu.

Page 20: dijagrami klasa

Primer 3: Korisnički interfejs

Svaka ekranska forma korisničkog interfejsa (predstavljena klasom Prozor) može biti formirana iz više komponenti, kao što su polje za unos teksta (predstavljeno klasom Polje), lista za izbor vrednosti (predstavljeno klasom Lista), ili labela sa tekstom (predstavljeno klasom Tekst).

Page 21: dijagrami klasa

Primer 4: Sportsko društvo

Sportsko društvo čine 3 ili više klubova. Klub može pripadati tačno jednom sportskom društvu. Najmanje 5 sportista su članovi jednog kluba. Sportista može biti član najviše jednog kluba.

Page 22: dijagrami klasa

Generalizacija

Nasleđivanje je hijerarhijska veza između klasa. Naziva se generalizacija ili specijalizacija, u zavisnosti u kom smeru se posmatra veza.

Podređeni element je u saglasnosti sa nadređenim elementom i poseduje sve njegove osobine, a uz to može posedovati i dodatne osobine.

Superklasa – Potklasa

Page 23: dijagrami klasa

Primer 5: Klasa Student

Klasa Student sa potklasama:Student osnovnih studijaStudent specijalističkih studijaStudent magistarskih studijaStudent doktorskih studija

Page 24: dijagrami klasa

Primer 6: Klasa Stanovnik

Stanovnik može biti zaposlen, nezaposlen ili penzioner. Nezaposleni stanovnik je dete predškolskog uzrasta ili učenik ili student ili je prijavljen na birou rada.

Page 25: dijagrami klasa

Veza zavisnosti

Veza zavisnosti predstavlja vezu između dve klase, kojom se definiše da funkcionalnost i implementacija jedne klase zahteva prisustvo druge klase.

Veza zavisnosti se može definisati i između interfejsa ili paketa.

Page 26: dijagrami klasa

Primer 7: Veza zavisnosti

Klasa Vektor ima atribut v: Integer[4] i operaciju mnozi(m:Matrica, v:Vektor):Vektor

Klasa Matrica ima atribut e:Integer[4][4] Pošto operacija klase Vektor ima parametar

tipa Matrica, između ove dve klase postoji veza zavisnosti

Page 27: dijagrami klasa

Primer 8: Izvedena asocijacija

Svaki student se upisuje na studije na jednom i samo jednom odseku, a odsek pripada jednom i samo jednom fakultetu.

Na osnovu ovih veza, možemo zaključiti na kom fakultetu studira koji student.

Asocijacija između klasa Student i Fakultet je izvedena veza, koja se izvodi na osnovu veze asocijacije između klasa Student i Odsek i veze kompozicije između klasa Fakultet i Odsek.

Page 28: dijagrami klasa

Interfejs

Predstavlja skup apstraktnih operacija koje definišu neko ponašanje.

Interfejs je apstraktna klasa bez atributa, koja ima samo apstraktne operacije.

Različite klase mogu implementirati jedan interfejs, a jedna klasa može implementirati više različitih interfejsa.

Klasa može koristiti interfejs, ako koristi operacije koje sadrži taj interfejs.

Page 29: dijagrami klasa

Primer 9: Interfejs Instrument

Interfejs Instrument definiše operacije: sviraj(), naštimaj(), štaSvira().

Klase Udaraljke, ŽičaniInstrumenti i DuvačkiInstrumenti implementiraju interfejs Instrument.

Klasa Muzičar koristi interfejs Instrument.

Page 30: dijagrami klasa

Primer 10: Parametrizirana klasa

Data je parametrizirana klasa KošarkaškaEkipa sa formalnim parametrima uzrast, pol. Npr. ova klasa nam omogućava izvođenje klase Kadetkinje, ako se formalni parametri uzrast i pol, zamene redom stvarnim parametrima kadeti, ženski. Operacije nad klasom Kadetkinje su definisane klasom KošarkaškaEkipa.