Osnovni pojmovi

Klasa je skup objekata koji poseduje iste atribute, relacije i semantiku. Prikazuje se pravougaonikom. Klasa ima ime po kojem se razlikuje od drugih klasa. Ime mora biti jednostavno ali mora da oslikava klasu u potpunosti. Klasa može da se nacrta i tako da se prikaže samo ime. Pored imena se može navesti i paket ili putanja gde se klasa nalazi. Klasa u potpunosti odgovara klasi u programskim jezicima C++, Java. Pored atributa, klasa poseduje i metode (funkcije).

Ikona klase je pravougaonik podeljen horizontalnim linijama u odeljke (kao na slici). Naziv klase može biti:

  • jednostavan oblika <ime> ili
  • sa putanjom: <ime paketa>::<jednostavno ime>
    (npr: java::awt:: pravougaonik)

 

Atributi klase mogu da se prikažu samo preko imena. Međutim, veoma često se daje i kojeg je tipa dati atribut. Atribut za klasu je apstrakcija dok za objekte te klase uzima vrednosti. Postoje atributi koji mogu uzimati početne vrednosti koje se takođe navode uz ime atributa. Atributi se imenuju sa malim početnim slovom. Ako atribut u svom imenu ima više reči onda se one pišu bez razmaka ali svako početno slovo reči osim prve počinje velikim slovom.

Tipovi podataka atributa mogu biti: uobičajeni (Float, Int, String, Boolean) ali mogu biti i klasnog tipa. Vrednosti atributa mogu da budu ograničene po različitim pravilima.

Operacije ili metodi su implementacje servisa koji utiču na objekat tipa klase. Obično se operacije imenuju glagolima (npr. uzmi, dodaj, povećaj itd). Imena operacija počinju malim slovom. Ako se operacija sastoji od više reči samo prva reč počinje malim slovom. Operacije obično menjaju stanje objekta (menjaju mu atribute). Operacije se mogu specificirati navođenjem argumenata i njihovog tipa i podrazumevane vrednosti kao i navođenjem rezultata koji operacija vraća.

Odgovornosti klase su stavke njenog ugovora. Pišu se u zasebnom odeljku kao slobodan (neformalan) tekst i svaka počinje sa --. Svaka dobro strukturirana klasa bi trebalo da ima barem jednu odgovornost.

Prilikom izgradnje modela klasa uključuje se identifikacija klasa koje trebaju da postoje u sistemu. Potrebno je identifikovati većinu najvažnijih klasa koje pripadaju domenu za koji je vezan problem. Jedna tehnika je identifikovanje imenica. To se obavlja u dve faze: identifikujemo kandidatske klase skupljajući sve imenice (u jednini) i fraze iskazane u zahtevima sistema. Odbacuju se klase koje su neodgovarajuće iz nekog razloga.

Objekti i njihova podela u klase često se izvodi iz jednog od sledećih izvora:

  • “Real-word”  elementi: knjiga, kurs,...
  • Uloge (roles): član, student, direktor studija,...
  • Događaji (events): dolazak, odlazak, zahtev,...
  • Interakcija (interaction): sastanak, intersekcije,...


Ove kategorije se preklapaju i prve dve su više uobičajne nego zadnje dve. U principu ako identifikujemo objekte koji pripadaju u prve dve kategorije, druge dve nam pomažu da nađemo asocijaciju (vezu) između njih.

Klase se po pravilu imenuju na zajedički prihvatljivoj terminologiji, da bi ih, oni koji ih koriste, lakše razumeli.

Za biznis klase uzimaju se imena (imenice) koja su bazirana na terminologiji Customer, OrderItem, Shipment (Klijent, Narudžbenica, Isporuka). Za tehničke klase imena se baziraju na tehničkoj terminologiji kao: MessageQueue, ErrorLogger i sl. Preporučuje se korišćenje kompletne imenice za klasu npr. Customer a ne Cust, jer su one mnogo više opisne i lakše su za razumevanje. Isto tako za klase se praktikuje korisćenje imenice u jednini Customer a ne Customers.

Prikaz klase ne podrazumeva navođenje svih atributa i operacija. Naime, klase mogu biti izuzetno složene tako da se svi atributi i operacije ne mogu prikazati odjednom. Stoga se prikazuju samo oni atributi i operacije koji su važni za razmatrani aspekt. Prazno polje za atribute i operacije ne znači da atributi i operacije ne postoje već da za zadati aspekt nisu važne. Ako se želi naglasiti da atributa i operacija ima još može se staviti operator tri tačke “...”.

Da bi se bolje organizovali argumenti i operacije uveden je pojam stereotipa koji označava grupu atributa ili operacija. Stereotipi se označavaju sa imenom koje je uokvireno uglastim zagradama <<imeStereotipa>>.

Glagoli se koriste za imenovanje operacija. Operacije implementiraju funkcionalnost objekta i zbog toga se i one imenuju.

Na sličan način kako klase odgovaraju imenicama, asocijacije odgovaraju glagolima. One izražavaju veze između klasa. Npr: u sistemu Biblioteka, može se uočiti asocijacija “je kopija” i “iznajmiti”. Postoje instance asocijacije - linkovi, upravo kao i instance klase. Instanca asocijacije veže par objekata.

Atributi, operacije i odgovornosti su dovoljne za opis semantike klase. Međutim, ponekad je neophoodno specificirati detalje realizacije klase u nekom konkretnom programskom jeziku, pravila o konstantnosti objekta, izuzetke koji se mogu pojaviti u objektu. Klase su retko nezavisne već sarađuju unutar društva saradnika koje se vizuelizuju preko dijagrama klasa.

 

Dijagram klasa (engl. Class Diagram) opisuje tipove objekata u sistemu i različite vrste statičkih veza koje postoje među njima. Ovi dijagrami takođe prikazuju svojstva i operacije klasa kao i ograničenja načina povezivanja objekata i predstavljaju statički pogled na sistem. Dijagram klasa prikazuje samo klase, iako postoji varijanta ovog dijagrama koja prikazuje aktuelne objekte (dijagram objekata).

Na slici je prikazan dijagram klasa sistema Biblioteka:


 

Inicijalni model klasa biblioteke

Objekti predstavljaju instance neke klase. Na sledećoj slici prikazan je dijagram klasa šahovskih figura. Svaka klasa pojedinačne figure predstavlja specijalizaciju klase SahFigura.

Dijagram objekata dat je na sledećoj slici i prikazuje trenutnu situaciju na šahovskoj tabli:

 

  

Dodaj komentar Sviđa mi se - (0) Ne sviđa mi se - (0)    

  • Osnovni pojmovi dijagrama klasa 1
  • Osnovni pojmovi dijagrama klasa 2
  • Osnovni pojmovi dijagrama klasa 3
  • Osnovni pojmovi dijagrama klasa 4
  • Osnovni pojmovi dijagrama klasa 5