You are on page 1of 28

DIJAGRAM KLASA

Kolegij Razvoj poslovnih


aplikacija

Prof.dr.sc. Željka Požgaj


Prof.dr.sc. Vesna Bosilj Vukšić

Dijagram klasa
z Opisuje tipove klasa objekata u sustavu i statičke
relacije između njih.
z Klasa je apstrakcija objekta.
z Daje statičku sliku sustava.
z Obično se kreira više dijagrama klasa za jedan
sustav.
z Tijekom razvojnog procesa dijagrami klasa se
detaljiziraju dok ne postanu upotrebljivi za kreiranje
koda.
z Podvrsta dijagrama klasa su dijagrami paketa koji
dijele sustav na podsustave.

1
Objekt

z Entitet iz stvarnog svijeta ili neki koncept.


z 3 osnovna svojstva:
z Stanje – definira se skupinom atributa i njihovim
vrijednostima, te relacijama prema drugim
objektima
z Ponašanje – određuje kako objekt reagira na
poruku drugog objekta, određuje ga skup
operacija
z Identitet – jedinstvenost objekta u sustavu (serijski
broj)

Klasa

z Opis grupe objekata sa sličnim svojstvima


z Plan po kojem se stvara objekt
z Svaki objekt je instanca jedne klase
z Ime klase je obično imenica u jednini

2
Karakteristike klase
z Gornji dio: naziv klase i opcionalno stereotip
z Srednji dio: atributi
z Donji dio: operacije

z Radi lakšeg čitanja moguće sakriti klase i/ili


operacije
z Za svaki atribut i operaciju moguće je podesiti
vidljivost , tip podatka za svaki atribut

Stvaranje dijagrama klasa

z Tijek radnji:
z Otvaranje dijagrama klasa
z Upis naziva dijagrama klasa
z Otvaranje dijagrama klasa (dvoklik na dijagram
klasa u pretraživaču)
z Ucrtati klasu (povući s toolbara)
z U pretraživaču imenovati klasu (Zaposlenik)

3
Otvaranje dijagrama klasa

Dodavanje atributa

1. Dvoklik na klasu
2. Klik na Attributes
3. Desni klik, odabrati Insert, dodati novi
atribut
4. Ponoviti postupak dodavanja atributa,…

4
Dodavanje prvog atributa

Dodavanje atributa

5
Dodavanje operacija

Postavljanje specifikacije
atributa

6
Dodavanje operacija

Učiniti atribut statičnim

z Desni klik na atribut u pretraživaču


z Odabrati Open Specification
z Odabrati Detail
z Uključiti polje potvrde Static
z Rational Rose će podcrtati ime atributa

7
Učiniti atribut statičnim

Zaposlenik
Prezime i ime : string
Post.broj : integer
Grad : string
Ulica : string
Broj : integer
Tel. br. : integer
Datum rodenja

Primljen ()
...

Brisanje atributa, operacija ...


z Desni klik na atribut (ili operaciju ...) u
pretraživaču
z Odabrati Delete iz menija s prečacima

8
Podešavanje vidljivosti

z Rose notacija
z Desni klik na atribut u pretraživaču
z Odabrati Open Specification
z U polju Export control selektirati vidljivost atributa
(Public, Private, Protected ili Implementation)
z Na početku su svi atributi Private vidljivosti

Podešavanje vidljivosti

9
Podešavanje vidljivosti

z Podešavanje vidljivosti moguće je i za


operacije ( na isti način kao i kod atributa)

Zaposlenik
Prezime i ime : string
Post.broj : integer
Grad : string
Ulica : string
Broj : integer
Tel. br. : integer
Datum rodenja

Primljen ()
Premješten()
Otpušten()

Vidljivost atributa i operacija

z UML notacija:
z javno +
z privatno -
z zaštićeno #

z Paket ili implementacija nema ikone

10
Vidljivost atributa i operacija

Sakrivanje atributa (atributi vidljivi)

11
Sakrivanje atributa

Zaposlenik
Primljen ()
Otpušten()
Premješten()

Dodavanje stereotipa

12
Otvaranje postojećeg
dijagrama klase

Veze

z Povezivanjem elemenata dijagrama klasa


prikazuje se njihov međusobni odnos.
z Vrste veza (relacija):
z Asocijacija (engl. Association)
z Agregacija (engl. Aggregation)
z Kompozicija (engl. Composition)
z Generalizacija (engl. Generalization)
/Specijalizacija (Specialization)
z Zavisnost (Dependency)

13
Veze

Asocijacija
z Opisuje pridruživanje među klasama i njihov
statički odnos
z Na prikazuje komunikaciju
z Opisuje dvostruku vezu između klasa
z Može biti i jednosmjerna
z Najopćenitija
z Može se opisati glagolom, ili imenicom koja
opisuje ulogu
z Primjer: vozač – automobil, student - kolegij

14
Asocijacija
z Dodjela imena (naziva):
z Pritisnuti mišem na liniju veze u dijagramu
z Upisati naziv (akciju - glagol)

Asocijacija

15
Imenovanje uloge u asocijaciji
z Pojam “uloga asocijacije” objašnjava svrhu, cilj
asocijacije
z Imena uloga mogu se koristiti umjesto naziva
asocijacija
z Ime uloge je imenica koja označava svrhu ili
svojstvo asocijacije jedne klase sa drugom.
z Relacija prikazana na slici može se čitati u oba
smjera:
z Profesor koji ima ulogu Predavač u relaciji je sa klasom
Ponuda tečajeva
z Ponuda tečajeva je u relaciji sa Profesor koji ima ulogu
Predavač

Imenovanje uloge u asocijaciji

16
Indikatori višestrukosti
z Objekti jedne klase mogu biti povezani s
objektima druge klase.
z Za svaku asocijaciju postoje dva indikatora
višestrukosti (engl. Multiplicity indicators), po
jedan na svakom kraju veze.

Indikatori višestrukosti

z Indikatori višestrukosti:
z 1 točno jedan
z 0..* nula ili više
z 1..* jedan ili više
z 0..1 nula ili jedan
z 5..8 određeni opseg (5,6,7 ili 8)
z 4..7,9 kombinacija (4,5,6,7 ili 9)

17
Indikatori višestrukosti

z Izrada višestrukosti
z Dvostruki klik na liniju relacije, otvara se
Specification
z Izabrati Detail za ulogu koja se modificira (Role A
Detail ili Role B Detail)
z Unesti željeni indikator višestrukosti u polje
Cardinality (Multiplicity)
z OK kako bi se zatvorio prozor

Indikatori višestrukosti

18
Agregacija

z Odnos između cjeline i njenih dijelova


z Klasa ne mora pripadati samo jednoj cjelini
z Objekti unutar cjeline djeluju jedinstveno,
utjecaj na jedan objekt prenosi se na sve
objekte koji čine cjelinu
z Primjer: smjer studija – kolegij
z Primjer: automobil – komponente (dodavanje
gasa pritiskom na papučicu gasa, utječe na
kretanje automobila)

Agregacija

19
Kompozicija
z Specijalan tip agregacije
z Kao agregacija, ali puno jača veza
z Dio u kompoziciji može biti samo dio jedne
cjeline: Ako je jedna klasa povezana s drugom
klasom vezom kompozicije, onda ne može biti
vezana ni s jednom drugom klasom.
z Kod uništavanja objekta uništava se i klasa koja
je dio tog objekta
z Primjer: knjiga – poglavlje knjige
z Označava se linijom koja na kraju ima puni
“dijamant”

Nasljeđivanje

z Generalizacija/Specijalizacija
z Nije asocijacija
z Roditelj - dijete
z Klasifikacija, podjela u grupe
z Primjer: vozila: cestovna (putnička, teretna),
zračna, željeznička, …
z Primjer: životinje…

20
Nasljeđivanje

z Generalizacija – omogućuje stvaranje


nadklase koja objedinjuje strukturu i
ponašanje zajedničko za nekoliko klasa
z Specijalizacija – omogućuje stvaranje
podklase koja predstavlja dodavanje novih
elemenata

Nasljeđivanje

z Podklasa nasljeđuje od nadklase atribute,


relacije i operacije
z Podklasa može biti proširena atributima,
relacijama i operacijama tj. uvijek ima jednak
ili veći broj svojstava u odnosu na svoju
nadklasu
z Podklasa može imati svoju implementaciju
operacija koje je naslijedila

21
Nadklasa - podklasa

Višestruka generalizacija

22
Zavisnost

z Veza je slaba, ali pokazuje ovisnost jedne


klase o drugoj.
z Veza polazi od klase koja je ovisna i ide ka
klasi od koje zavisi.
z Promjena klase utječe na klasu koja je
zavisna, ali ne i suprotno.
z Često: zavisnost između paketa

Zavisnost
z Klasa Kupac ovisi o klasi Trgovac jer će
kupac kupiti ono što mu trgovac nudi.

23
Paketi
z Paket – skupina povezanih paketa i/ili klasa
z Klase se grupiraju radi lakšeg korištenja,
održavanja, ponovne uporabe
z Grupiranjem klasa u pakete možemo vidjeti
prikaz modela na višoj razini ili možemo
ulaziti dublje u model proučavajući sadržaj
paketa
z Sustav složen, paketi se koriste u ranoj fazi
razrade radi lakšeg komuniciranja

Paketi
z Stvaranje paketa:
z Iz Toolbara, klikom na ikonu + u dijagram
Ili
z Logical View, New:Package

24
Paketi i klase

z Premještanje klasa u pretraživaču:


z Mišem izabrati klasu u pretraživaču
z Prevući klasu do željenog paketa

25
Paketi i klase

26
Povezivanje klasa unutar
paketa

Dodatak poruke

27
28

You might also like