You are on page 1of 16

Visoka škola "CEPS-Centar za poslovne studije" Kiseljak

Informacijske Tehnologije

Seminarski rad

Dijagram klasa u UML-u


(Principi softverskog inžinjerstva)

Mentor: MA Samir Ščetić Student: Denis Mihaljević 28-It-III/17

Kiseljak, veljača 2019


Sadržaj

1. UVOD ......................................................................................................................................................... 2
2. DIJAGRAMI................................................................................................................................................. 3
2.1 Strukturni dijagrami............................................................................................................................. 3
2.2 Dijagrami ponašanja ........................................................................................................................... 4
3. DIJAGRAM KLASE ....................................................................................................................................... 5
3.1 Osnovne kompomente dijagrama klase .............................................................................................. 6
3.2 Interakcije u dijagramu klase............................................................................................................... 8
3.2.1 Nasljedstvo ................................................................................................................................... 8
3.2.2 Asocijacija ................................................................................................................................... 10
3.2.3 Agregacija ................................................................................................................................... 12
3.2.4 Kompozicija ................................................................................................................................ 13
4. ZAKLJUČAK ............................................................................................................................................... 14
5. LITERATURA ............................................................................................................................................. 15
1. UVOD

Razvojem same discipline softverskog inžinjeringa kao odgovor na softversku


krizu 1960-ih, javlja se potreba za usvajanjem standrarda koji bi olakšao pristup izradi
softvera. U kontinuiranim naporima da se kvaliteta softvera i kvaliteta izrade softvera
poboljša, nastale su mnoge metode, prakse i procesi koji uvelike olakšavaju dizajn
softvera. Jedna od takvih metoda je upravo tema ovog rada; UML (engleska skraćenica
za Unified Modeling Language). UML je grafički jezik za projektiranje, vizualizaciju,
modeliranje i dokumentiranje izrade softverskih paketa uz pomoć grafičkih notacija i
dijagrama koji rezultira kreiranjem nacrta ili skice našeg programa.

Univeralni jezik za modeliranje predstavlja skup najboljih inženjerskih praksi koje


su se pokazale uspješnima u modeliranju velikih i složenih sustava. UML je vrlo važan
dio razvoja objektno orijentiranog softvera i procesa razvoja softvera. Koristi uglavnom
grafičke oznake za izražavanje dizajna softverskih projekata. Korištenje UML-a pomaže
projektnim timovima da komuniciraju, istražuju potencijalne dizajne i potvrđuju
arhitektonski dizajn softvera.

2
2. DIJAGRAMI

Bilo koji kompleksni sistem, ako je prikazan u dijagramu ima značajniji utjecaj na
naše razumjevanje sistema, nego da pokušamo naučiti o istom putem običnog teksta.
Dijagrame kreiramo tako što konektiramo oblike koji nam predstavljaju neki objekt ili
klasu sa ostalim oblicima da bi smo ilustrirali veze između objekata i protok podataka.
Dijagrame u univerzalnom jeziku za modeliranje generalno djelimo u dvije skupine;

 Strukturni dijagrami
 Dijagrami ponašanja

2.1 Strukturni dijagrami

Strukturni dijagram predstavlja statički aspekt sistema pomoću kojeg


dokumentiramo različite strukture i objekte u našem sistemu. Ovakav tip dijagrama
upućuje na hijerarhiju ili strukturu različitih komponenata našeg sistema, te povezanost i
interakciju kod istih. U strukturne dijagrame spadaju:

 Dijagrami klase
 Dijagrami paketa
 Objektni dijagram
 Komponentni dijagram
 Kompozitni strukturni dijagram
 Dijagram razvijanja

3
2.2 Dijagrami ponašanja

Dijagrami ponašanja nam služe da vizualiziramo, konstruiramo i dokumentiramo


dinamički dio sistema i pomoću njih opišemo interakciju između objekata u
funkcionalnom sistemu. U dijagrame ponašanja spadaju:

 Dijagram aktivnosti
 Dijagram slučaja korištenja (engleski: Use-Case)
 Dijagram stanja

Također u skupini dijagrami ponašanja imamo podskupinu koju nazivamo


dijagrami interakcije u koju spadaju sljedeći dijagrami:

 Dijagram sekvence
 Dijagram komunikacije
 Dijagram pregleda interakcije
 Vremenski dijagram

Od svih navedenih dijagrama, u ovom radu se planiram fokusirati samo na


dijagram klasa koji opisuje objektno orijentirano metadologiju razvoja softvera.

4
3. DIJAGRAM KLASE

Dijagrami klasa jedan su od najkorisnijih tipova dijagrama u UML-u jer jasno


ocrtavaju strukturu određenog sustava modeliranjem njegovih klasa, atributa, operacija i
odnosa između objekata. Popularni među softverskim inženjerima za dokumentiranje
arhitekture softvera, dijagrami klasa su tip dijagrama strukture jer opisuju ono što mora
biti prisutno u sustavu koji se modelira. Različite komponente u dijagramu klase mogu
predstavljati klase koje će zapravo biti programirane. Sam simbol klase u dijagramu
sastoji se od pravokutnika s tri reda. Gornji red sadrži naziv klase, srednji red sadrži
atribute klase, a donji dio izražava metode ili operacije koje klasa može koristiti. Slika 1.

Slika 1.

Budući da je grafička notacija indentična između klase i objekta i često se


svrstavaju u isti koš, treba napraviti jasnu dinstikciju između klase i objekta:

Klasa: Definicija objekata iste vrste. Drugim riječima predložak ili prototip koji definira i
objasni statičke atribute i dinamička ponašanja zajedničke jednoj vrsti objekta.

Objekt: Objekt je realizacija određenog itema iz klase. Sve istance imaju slična svojstva
opisana definicijom klase. Slika 2.

5
Slika 2.

3.1 Osnovne kompomente dijagrama klase

Već smo spomenuli da se standardni dijagram klase dijeli na tri djela:

 Gornji dio- sadrži naziv klase. Ovaj dio je uvijek potreban, bilo da
govorite o klasi ili objektu.
 Srednji dio- sadrži atribute klase i koristi se kao opisni odjeljak gdje
opisujemo klasu tako što joj dajemo atribute i vrijednosti tih atributa.
 Donji dio- sadrži operacije klase (metode), koje prikazujemo u obliku
liste tako što svaka metoda zauzima jedan redak. Operacije opisuju
interakciju klase s podacima.

6
Budući da sve klase imaju različite razine pristupa ovisno o modifikatoru pristupa
(vidljivosti), klase mogu sadržavati modifikatore pristupa članovima pomoću kojih
možemo specificirati tko može vidjeti šta. Ovdje su razine pristupa s odgovarajućim
simbolima:

 Javni- Public (+)


 Privatni- Private(-)
 Zaštičeni- Protected(#)
 Paket- Package(~)
 Izvedeno- Derived(/)
 Statično- Static(podvučeno)

Ako uzmemo za primjer na dijagram klasu ploče iz slike 2 i želimo odrediti


privatnost (vidljivost) nekih atributa npr. dodat ćemo atribut boja i želimo da taj atribut
bude privatan, želimo da su atributi dužina i širina javni i recimo da je metoda ove klase
zaštičena. To ćemo uraditi na ovaj način. Slika 3.

Slika 3.
7
Prilikom modeliranja sustava potrebno je označiti koji tip podataka sadržava
atribut ili metoda. Da bi smo definirali tip podataka u dijagramu klase, iza naziva atributa
ili metode stavimo dvije točke i onda oznaku za tip podataka. Na slici 3 možemo vidjeti
da su atributi dužina i širina brojevi jer imaju oznaku Int (Integer) i da je atribut boja
tekst. Također se da vidjeti da se iza naziva metoda stavlja zagrada, što nam daje do
znanja da se radi o funkciji. Te zagradi mogu sadržavati parametre, ukoliko su nam
poznate.

3.2 Interakcije u dijagramu klase

Pojam "interakcije" odnosi se na različite odnose i veze koje mogu postojati u


dijagramima klase i objekta što ih čini najznačajnijim faktorom prilikom modeliranja
softverskih sustava.

3.2.1 Nasljedstvo

U objektno orijentiranoj metadologiji općenito, nasljedstvo je jedno od bitnijih


svojstava a odnosi se na sposobnost jedne klase (podklase) da nasljedi neke osobine
od druge klase (super klase) te da uz naslijeđene osobine doda i svoje. Super klasa i
podklasa se također referiraju kao roditelj i dijete klasa. Da koncept nasljedstva bolje
ilustriramo zamislimo da imamo klasu naziva životinja koja ima dva atributa; ime i
starost, te jednu metodu; spavanje. Slika 4.

8
Slika 4.
Ukoliko naprimjer imamo potrebu napraviti klasu „Sova“ koja će imati sve
elemente klase“Životinja“, uz neke atribute svojstvene samo klasi „Sova“, napraviti ćemo
podklasu sove koja će naslijediti atribute i metode od klase životinje. Nasljedstvo u UML-
u označavanom punom linijom koja počinje od podklase i završava simbolom
neispunjene strelice na rub super klase. Slika 5.

9
Slika 5.
Čitajući dijagram možemo zaključiti da klasa „Sova“ uz sve atribute i metode koje
je naslijedila od super klase „Životinja“, posjeduje još atribut „Porodica“ i metodu „Lov“.
Često možemo vidjeti ovakav odnos gdje super klasa apstraktne prirode, što znači da
se odnosi na sve životinje kao koncept općenito, a njena pod klasa reprezentira realni
objekt, u kojem slučaju je običaj da se naziv super klase ogradi strelicama tipa
<<Životinja>>.

3.2.2 Asocijacija

Asocijacija između klasa može biti jednosmjerna ili dvosmjera a razlika je u tome
da kod jednosmjerne asocijacije, jedna klasa ne zna za postojanje druge dok ne dođe
do same interakcije. Jednosmjerna asocijacija se označava punom linijom sa otvorenom
strelicom na završetku a dvosmjerna samo punom linijom bez strelica. U UML-u se više
upotrebljava dvosmjerna asocijacija koju često nazivaju samo asocijacija, dok je
jednosmjerna manje poznata. Asocijaciju stavljamo kad imamo potrebu da uspostavimo
neku komunikaciju između dvije klase i da naglasimo neki odnos. Ako napravimo još
jednu klasu „Miš“ i ako je za potrebe našeg sustava kojeg modeliramo bitno naglasiti
odnos klasa „Sova“ i „Miš“ kao lovac-plijen, napraviti ćemo asocijaciju između te dvije
klase. Slika 6.

10
Slika 6.

Taj odnos onda možemo dalje opisati tako što po potrebi možemo staviti oznaku
da podrobnije opišemo prirodu asocijacije između klasa kao što možemo i indicirati
višestrukost veze. Na slici 6 vidimo asocijaciju između klasa „Sova“ i „Miš“ gdje je
naznačeno da sova lovi miša tj. Oznaka 1..* označava višetrukost ove veze, što u
ovom slučaju znači da jedna sova može uloviti više miševa.

11
3.2.3 Agregacija

Agregacija označava pripadnost jedne ili više klasa (podskup) drugoj klasi
(nadskup) s tim da mogu egzistirati neovisno jedna o drugoj. Naprimjer ukoliko imamo
klasu „Parlament“ (zanimljiv podatak skupina sova se ne zove jato već parlament),
možemo joj agregacijom pridodati klasu „Sova“, no ako uklonimo klasu „Parlament“ i
dalje nam ostaje „Sova“. Označava se punom linijom sa neispunjenim dijamantom koji
se naslanja na nadskup. Slika 7.

Slika 7.

Iz ovog dijagrama se vidi da sovu možemo pridodati parlamentu, ali i u svakom


trenutnu isključiti iz istog.

12
3.2.4 Kompozicija

Kompozija je također tip veze u kojoj jedna klasa može sadržavati jednu ili više
klasa, no u ovom slučaju podskup klasa ne može postojati bez nadskup klase. S
ovakom notacijom želimo ilustrirati jednu klasu kao sastavni i nerazdvojni dio druge
klase. Označava se slično kao i agregacija samo sa ispunjenim dijamantom. Slika 8.

Slika 8.

Za demonstraciju ove klase uzećemo kao primjer klasu „Kuća“ kojoj pridružujemo
vezom kompozicije klase „Kuhinja“ i “Dnevni boravak“. Jasno je u ovom primjer da ako
podklase ne mogu postojati van nadklase, te da u slučaju da uništimo ili izgubimo kuću
gubimo i sobe.

13
4. ZAKLJUČAK

Slika vrijedi tisuću riječi, ovaj idiom apsolutno odgovara opisu UML-a. Objektno
orijentirani koncepti uvedeni su mnogo prije UML-a. U tom trenutku nije bilo standardnih
metodologija za organiziranje i konsolidaciju objektno orijentiranog razvoja. Tada se
UML pojavio na slici. Postoji nekoliko ciljeva za razvoj UML-a, ali najvažnije je definirati
neki jezik za modeliranje opće namjene, koji svi modelari mogu koristiti, a također ga
treba učiniti jednostavnim za razumijevanje i korištenje. UML dijagrami nisu samo za
programere, već i za poslovne korisnike, obične ljude i sve zainteresirane za
razumijevanje sustava. Sustav može biti softverski ili ne-softverski sustav. Stoga mora
biti jasno da UML nije razvojna metoda, nego prati procese kako bi ga učinio uspješnim
sustavom.
Dijagram klase glavni je gradbeni element objektno orijentiranog modeliranja.
Koristi se za opće konceptualno modeliranje strukture aplikacije, te za detaljno
modeliranje prevođenja modela u programski kod. Dijagrami klasa također se mogu
koristiti za modeliranje podataka. Klase u dijagramu klase predstavljaju i glavne
elemente, interakcije u aplikaciji i razrede koje treba programirati. Svrha dijagrama
razreda je modeliranje statičnog prikaza aplikacije. Dijagrami klasa su jedini dijagrami
koji se mogu izravno mapirati s objektno-orijentiranim programskim jezicima i stoga se
široko koriste u vrijeme izrade. To je najpopularniji UML dijagram u zajednici softverskih
inžinjera.

14
5. LITERATURA

1. Learning UML 2.0: A Pragmatic Introduction to UML 1st Edition, Kim Hamilton
2. http://www.uml.org/what-is-uml.htm . [Pristupljeno18.12.2018.godine]
3. https://en.wikipedia.org/wiki/Unified_Modeling_Language.[Pristupljeno
20.11.2018.godine]
4.https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-uml/
[Pristupljeno21.11.2018.godine]

15

You might also like