21
UD摰BENICI SVEU摶ILIŠTA U ZAGREBU MANUALIA UNIVERSITATIS STUDIORUM ZAGRABIENSIS

UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

  • Upload
    buitu

  • View
    220

  • Download
    1

Embed Size (px)

Citation preview

Page 1: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

UD�BENICI SVEU�ILIŠTA U ZAGREBUMANUALIA UNIVERSITATIS STUDIORUM ZAGRABIENSIS

Page 2: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

NakladnikGraphis d.o.o.

Recenzentiprof. dr. sc. Nikola Bogunovi�izv. prof. dr. sc. Ninoslav Slavek

Priprema i dizajnGraphis d.o.o.

Za nakladnikaElizabeta Šunde, dir.

Objavljivanje ovog sveu�ilišnog priru�nika odobrio je Senat Sveu�ilišta u Zagrebu,rješenjem klasa: 32-01/12-01/30; ur. br.: 380-061-117-12-2 od 21.11.2012.

ISBN 978-953-279-035-1

Cip zapis dostupan u ra�unalnome katalogu Nacionalne i sveu�ilišne knji�nice u Zagrebu pod brojem 887718.

©Sva prava pridr�ava nakladnik GRAPHIS d.o.o., Maksimirska 88, Zagreb,tel./faks +385 1 2322-975, [email protected], www.graphis.hr

Tiskano u Hrvatskoj

Page 3: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

Zbirka primjera i riješenih zadataka

UML-dijagrami

dr. sc. Alan Jović, dipl. ing.dr. sc. Marko Horvat, dipl. ing.dr. sc. Igor Grudenić, dipl. ing.

Page 4: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

Sadr�aj

Predgovor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IX1. Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12. Dijagrami obrazaca uporabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1. Karakteristike dijagrama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2. Elementi dijagrama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2.1. Aktori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2.2. Obrasci uporabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2.3. Veze na dijagramima obrazaca uporabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.4. Asocijacija (engl. association). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.5. Generalizacija (engl. generalization) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2.6. Uklju�ivanje (engl. include). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2.7. Proširenje (engl. extend) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2.8. Riješeni slo�eni primjer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3. Zadaci za vje�bu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.4. Napomene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3. Sekvencijski i komunikacijski dijagrami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.1. Karakteristike dijagrama. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.2. Sekvencijski dijagrami. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2.1. Riješeni primjeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.2.2. Napomene u vezi sekvencijskih dijagrama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.2.3. Zadaci za vje�bu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.3. Komunikacijski dijagrami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.3.1. Riješeni primjeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.3.2. Napomene u vezi komunikacijskih dijagrama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.3.3. Zadaci za vje�bu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4. Dijagrami razreda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.1. Karakteristike razreda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2. Odnosi izme�u razreda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Page 5: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

4.3. Pridru�ivanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.4. Vrhovi i nazivi veza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.5. Višestrukost pridru�ivanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.6. Refleksivno pridru�ivanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.7. Agregacija i kompozicija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.8. Pridru�ivanje, agregacija ili kompozicija?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.9. Atributi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.10. Operacije. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.11. Naslje�ivanje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.12. Naslje�ivanje ili agregacija? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484.13. Ovisnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504.14. Su�elje i realizacija. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.15. Tipovi podataka i obroj�avanja (enumeracije) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.16. Komentari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544.17. Zadaci za vje�bu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5. Dijagrami objekata i paketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595.1. Dijagrami objekata. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5.1.1. Karakteristike objekata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595.1.2. Definiranje objekata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595.1.3. Veze izme�u objekata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605.1.4. Zadaci za vje�bu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

5.2. Dijagrami paketa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635.2.1. Karakteristike paketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635.2.2. Vidljivost i ugnje��enje paketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645.2.3. Veze paketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655.2.4. Stereotipovi paketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675.2.5. Zadaci za vje�bu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

6. Dijagrami stanja i aktivnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696.1. Karakteristike dijagrama. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696.2. Dijagram stanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

6.2.1. Elementi dijagrama. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696.2.2. Zadaci za vje�bu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

6.3. Dijagram aktivnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726.3.1. Elementi dijagrama. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726.3.2. Riješeni primjer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746.3.3. Zadaci za vje�bu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

7. Dijagrami komponenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777.1. Karakteristike dijagrama. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777.2. Svojstva komponenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787.3. Su�elja komponenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797.4. Vrste komponenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807.5. Stereotipovi komponenti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817.6. Zadaci za vje�bu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

8. Dijagrami razmještaja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858.1. Karakteristike dijagrama. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

VI Sadr�aj

Page 6: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

8.2. Elementi dijagrama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868.3. Veze �vorova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878.4. Stereotipovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898.5. Pojedinci �vorova i komponenti. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908.6. Zadaci za vje�bu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

9. Rješenja zadataka. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919.1. Dijagrami obrazaca uporabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919.2. Sekvencijski i komunikacijski dijagrami. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 969.3. Dijagrami razreda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039.4. Dijagrami objekata i paketa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079.5. Dijagrami stanja i aktivnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099.6. Dijagrami komponenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129.7. Dijagrami razmještaja. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

Literatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

VIISadr�aj

Page 7: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

Predgovor

U literaturi postoji razmjerno velik broj knjiga o raznim prakti�nim aspektimaizrade programske potpore (engl. software) u okviru podru�ja koje se naziva programskoin�enjerstvo (engl. software engineering). Pritom je fokus stru�ne literature naj�eš�e naraznim tehnikama programiranja, programskim jezicima, programskim knji�nicama iprogramskim alatima. Vrlo je malo priru�nika koji se bave in�enjerskim, sustavnim pri -stupom modeliranju programske potpore. Pogotovo nedostaje bilo kakve sli�ne literaturena hrvatskom jeziku.

Nedostatak literature navodi na zaklju�ak da su današnji procesi programskog in�e-njerstva neorganizirani ili još uvijek pod sveobuhvatnom kontrolom mentalnog sklopajednog ili nekolicine programera. To je, me�utim, daleko od istine. Bilo koja ozbiljnatvrtka nu�no radi na projektima koji zahtjevaju opse�nu tehni�ku dokumentaciju i kojisi ne mogu dozvoliti da ovise o mentalnim procesima nekolicine programera. Upravosuprotno, programska potpora mora biti pravilno dokumentirana i poduprta modelimakako bi bilo koji in�enjer mogao nastaviti njezin razvoj.

Modelno-usmjereni pristup oblikovanju programske potpore (engl. Model-BasedDesign) danas je u srcu procesa programskog in�enjerstva. U praksi se modelno-usmje -reni pristup �esto kombinira s drugim pristupima kao što su komponentni i agilni, tvore�izajedni�ki vrlo sna�an i uspješan hibridni proces, na zadovoljstvo razvojnog tima, klije-nata i krajnjih korisnika. Sr� modelno-usmjerenog pristupa �ini jezik za izgradnju mode-la. Iako je u prošlosti bilo raznih pokušaja tekstualnog opisa modela programskihsustava, tek je grafi�ki prikaz doveo do stvarnog poboljšanja u�inkovitosti cjelokupnograzvojnog procesa. Grafi�ki prikaz olakšao je razumijevanje programkog sustava svima.Zasigurno najuspješniji jezik za modeliranje programske potpore, koji se tijekom godinapostepeno razvijao i postao de facto industrijskom normom je UML.

Page 8: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

U ovom priru�niku, autori kroz primjere i riješene zadatke pokazuju ispravan na�inprimjene UML-a. Neizbje�na je �injenica da �e se ova norma mijenjati te je namjera au-tora da s vremena na vrijeme revidiraju neke detalje priru�nika. Ipak, trenuta�na ina�icapriru�nika predstavlja cjeloviti pogled u svijet modeliranja programske potpore korište -njem jezika UML. Autori se nadaju da �e ovaj priru�nik pomo�i svim in�enjerima kojimanedostaje formalno obrazovanje o ovom grafi�kom jeziku i koji ga �ele nau�iti kako biga uspješno primijenili u praksi.

U Zagrebu, 30. 9. 2014.

Autori

X Predgovor

Page 9: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

1. Uvod

Ujedinjeni jezik za modeliranje (engl. Unified Modelling Language, kra�e: UML) jenormirani jezik op�e namjene koji se koristi za modeliranje ra�unalnih sustava temelje -nih na objektno-orijentiranoj paradigmi. Jezik je normirala Grupa za upravljanje objek-tima (engl. Object Management Group, kra�e: OMG) s prvom normom iz 1997., a strenuta�nom ina�icom UML 2.4.1 iz 2011. godine i normiran od strane ISO-a u 2012.UML uklju�uje skup tehnika koje ostvaruju grafi�ki prikaz objektno-orijentiranih ra�u-nalnih sustava. Ra�unalni sustav modelira se raznovrsnim dijagramima, od kojih se svakikoristi za prikaz sustava iz ponešto druga�ije perspektive.

Dijagrami unutar UML-a mogu se podijeliti s obzirom na dinami�nost na stati�kei dinami�ke dijagrame. Stati�ki dijagrami ne razmatraju vremensku komponentu sustava,ve� daju sliku dijelova ili cijelog sustava kakav postoji u nekom trenutku. Te�nja di-nami�kih dijagrama je da uklju�e me�udjelovanje sudionika i vremensku komponentuu opis sustava kako bi se modelirali slijedovi doga�aja unutar sustava. Nešto suvremenijapodjela dijagrama je ona koja dijeli UML-dijagrame s obzirom na to da li modelirajustrukturu sustava (engl. structure diagram) ili ponašanje sustava (engl. behavior diagram).Ovakva podjela se okvirno podudara s podjelom na stati�ke (strukturni) i dinami�ke(ponašajni) dijagrami, s iznimkom dijagrama obrazaca uporabe koji, iako modelira po -našanje, ne modelira vremensku komponentu sustava. Podjela UML-dijagrama premanormi UML 2.4 prikazana je na slici 1.1. U okviru ove podjele postoji ve�i broj pojedi-na�nih dijagrama, od �ega se u okviru ove zbirke obra�uju oni dijagrami koji su ozna�enisivo na slici 1.1.

Cilj ove zbirke je predo�iti što više normiranih UML-dijagrama kako bi se omo -gu�ila kvalitetna komunikacija na grafi�koj razini izme�u in�enjera koji su uklju�eni urazvoj ra�unalnog sustava. Pritom je potrebno ovladati znanjem o komponentama svakogopisanog dijagrama i razumjeti za što se taj dijagram koristi. U zbirci je dan naglasak natri dijagrama koji se naj�eš�e koriste u praksi: dijagramu obrazaca uporabe, dijagramurazreda i sekvencijskom dijagramu. �itatelji se upoznaju s dijagramima kroz nekolikoprimjera i riješenih zadataka za svaku vrstu dijagrama. Rješavanjem zadanih zadataka �i-

Page 10: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

tatelj mo�e usporediti svoja rješenja s onima koja su dana u ovoj zbirci i na taj na�innau�iti ispravan na�in crtanja UML-dijagrama.

Zbirka je namijenjena poglavito studentima 3. godine preddiplomskog studija ra�u-narstva, na kolegiju Oblikovanje programske potpore (OPP), u sklopu Zavoda za elek-troniku, mikroelektroniku, ra�unalne i inteligentne sustave, Fakulteta elektrotehnike i

2 UML-dijagrami: Zbirka primjera i riješenih zadataka

Slika 1.1. Pregled UML-dijagrama, norma UML 2.4 [OMG 2011]

Page 11: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

ra�unarstva, Sveu�ilišta u Zagrebu (FER). Namjena zbirke je da se koristi kao dodatninastavni materijal koji �e olakšati studentima savladavanje gradiva iz modeliranja ra�u-nalnog sustava korištenjem jezika UML u okviru projekta iz kolegija OPP, što pokrivapribli�no tre�inu gradiva kolegija. Tako�er, vje�banjem zadataka iz ove zbirke studentise mogu uspješno pripremiti za ispite iz ovog kolegija. Zbirka je tako�er namijenjena isvim ostalim zainteresiranim �itateljima koji bi �eljeli nau�iti modelirati sustave korište -njem jezika UML.

Primjeri i zadaci unutar ove zbirke crtani su korištenjem dvaju alata dostupnih stu-dentima FER-a, a to su Microsoft Visio 2007 i 2010 (putem licence MSDNAA) i AstahCommunity v.6.8.0 (slobodan programski proizvod [Change 2014]). Izbor alata za crtanjeUML-dijagrama ostavljen je na volju �itatelja budu�i da kod samih alata postoji velikaraznolikost po pitanju licenciranja, podr�anih dijagrama i mogu�nosti crtanja njihovihkomponenata.

Zbirka je ustrojena na sljede�i na�in. U poglavlju 2 opisuju se dijagrami obrazacauporabe: njihovo zna�enje iz perspektive krajnjeg korisnika sustava i opis bitnih kompo-nenti dijagrama. Poglavlje 3 posve�eno je dijagramima me�udjelovanja, što zna�i sekven-cijskim i komunikacijskim dijagramima. Opisuju se karakteristike tih dijagrama, njihoverazlike i daju se razra�eni primjeri da bi se što lakše razumjelo kako modelirati me�u-djelovanje dijelova sustava. Dijagrami razreda detaljno su razra�eni u opse�nom po -glavlju 4, zajedno sa svim entitetima koji se na tim dijagramima prikazuju. Poglavlje 5opisuje dijagrame paketa i objekata, koji slu�e kao nadopuna dijagramima razreda.Poglavlje 6 posve�eno je dijagramima stanja i dijagramima aktivnosti koji modeliraju di-nami�ko ponašanje dijelova sustava. Poglavlje 7 uklju�uje dijagrame komponenti, apoglavlje 8 dijagrame razmještaja. Obje vrste dijagrama na sli�an na�in modeliraju sta-ti�ku sliku sustava iz perspektive povezanosti dijelova sustava, samo to �ine na razli�itojrazini. U poglavlju 9 dana su rješenja zadataka iz svih ostalih poglavlja. Studentima sesavjetuje da konzultiraju rješenja tek kad su sami izradili svoje rješenje zadatka natemelju primjera i uputa danih u ovoj zbirci. Literatura je navedena na kraju zbirke.

31. Uvod

Page 12: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

2. Dijagrami obrazaca uporabe

2.1. Karakteristike dijagrama

Dijagrami obrazaca uporabe (engl. use-case diagrams) koriste se da bi se prikazaloponašanje sustava, dijelova sustava ili konkretnog razreda na na�in vidljiv korisniku sus-tava. Obrasci uporabe tako�er slu�e tome da se razvojni tim i korisnici usaglase po pi-tanju ponašanja korisnika pri komunikaciji sa sustavom [Rational 2001]. Ponašanjesustava opisano je pomo�u scenarija (engl. use-cases – obrasci (slu�ajevi) uporabe) i ak-tora (engl. actors) koji predstavljaju apstrakciju korisnika sustava, odnosno op�enitijenekog od dionika (engl. stakeholder) sustava. Aktori mogu predstavljati i druge vanjskesustave koji sudjeluju u radu sustava koji se modelira. Jedan obrazac uporabe uklju�ujekomunikaciju aktora s modeliranim sustavom koji se ostvaruje kao niz poruka me�u su-dionicima obrasca uporabe, a koji doprinosi ostvarenju nekog jedinstvenog cilja. Na di-jagramima obrazaca uporabe dodatno se definiraju odnosi izme�u pojedinih obrazacauporabe kao i odnosi izme�u aktora.

Dijagrami obrazaca uporabe su stati�ki UML-dijagrami (kao i dijagrami razreda,objekata, paketa i razmještaja), a tako�er pripadaju i skupini ponašajnih dijagramabudu�i da modeliraju mogu�e ponašanje korisnika sustava.

Prika�ite u dijagramu obrazaca uporabe funkcionalnost blagajne u trgova�kom cen-tru.

U primjeru navedenom na slici 2.1 aktori u sustavu su Blagajnik i Kupac, ozna�enipojednostavljenim prikazom �ovjeka (engl. stickman). Blagajnik mo�e uklju�iti blagajnu,napraviti prijavu u sustav te napraviti transakciju. Te temeljne aktivnosti �ine obrasceuporabe (engl. use-case) koji se prikazuju elipsom. Obrazac uporabe Napravi transakcijuodnosi se na o�itavanje svih artikala, ispis ra�una, odabir na�ina pla�anja i pla�anje robe.

Primjer 2.1.1. Blagajna u trgova�kom centru

Page 13: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

3. Sekvencijski i komunikacijski dijagrami

3.1. Karakteristike dijagrama

Sekvencijski dijagrami (engl. sequence diagram) i komunikacijski dijagrami (engl.communication diagram) pripadaju široj skupini UML-dijagrama me�udjelovanja (engl.interaction diagram). Obje vrste dijagrama spadaju u nadskupinu ponašajnih dijagrama(engl. behavioral diagram), zajedno s dijagramima stanja, aktivnosti i obrazaca uporabe.Stari naziv za komunikacijski dijagram je kolaboracijski dijagram.

Za razliku od dijagrama obrazaca uporabe, kod kojih vremenska komponenta nijeva�na, sekvencijski i komunikacijski dijagrami daju naglasak na vremenskom redoslijedukojim se odvija me�udjelovanje sudionika u sustavu, tako da ih se svrstava i u dinami�keUML-dijagrame.

Sudionici koji se modeliraju na sekvencijskim i komunikacijskim dijagramima mogubiti aktori (predo�avanjem komunikacije aktora s dijagrama obrazaca uporabe) ili ob-jekti, pri �emu se prikazuje komunikacija instanci razreda prikazanih na dijagramu

Tablica 3.1. Razlike izme�u sekvencijskog i komunikacijskog dijagrama

Sekvencijski Komunikacijski

Ve�i naglasak na vremenskoj ure�enosti scenarija

Ve�i naglasak na pregledu scenarija, odnosnona me�usobnoj komunikaciji

Redoslijed poruka sudionika odozgora lijevoprema dolje desno

Redoslijed poruka sudionika odre�enje broj -�anim oznakama koje se stavljaju na poruke

Koristi se u ranim fazama specifikacije i analize projekta

Koriste se u fazi dizajniranja implementacijeodnosa

Rašireniji i �itljiviji Sa�etiji i te�i za �itati

Te�e izmjene Lakše izmjene

Page 14: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

4. Dijagrami razreda

4.1. Karakteristike razreda

Dijagrami razreda (engl. class diagrams) opisuju razrede i njihove me�usobne veze.Jednako tako, dijagrami razreda opisuju vrste objekata unutar nekog sustava i njihoveme�usobne stati�ne odnose.

Dijagrami razreda pripadaju strukturnoj skupini UML-dijagrama (engl. structurediagram). Oni ne opisuju doga�aje, stanja, aktivnosti ili bilo kakvu vremenski promjenji-vu karakteristiku sustava koji se modelira. Naprotiv, dijagrami razreda su stati�ni sobzirom na vremensku komponentu.

Razred ili klasa (engl. class) je osnovni tvorbeni element UML-dijagrama razreda.Stoga su drugi nazivi za dijagrame razreda dijagram klasa, ili class dijagram. Za ispravnorazumijevanje definicije razreda va�no je prvo odrediti zna�enje objekta. Objekt pred-stavlja entitet iz stvarnog svijeta ili neki koncept, odnosno apstrakciju ne�ega što imadobro definirane granice i smisao u sustavu. Stoga je razred opis grupe objekata sasli�nim svojstvima, a svaki objekt je obvezno pojedinac (instanca) jedne klase.

Za svaki razred nu�no je definirati naziv, a mogu�e je odrediti popis atributa i ope-racija. Makar atribute i operacije nije nu�no definirati, bez njih razred nema imple-mentacijsku svrhu. Za atribute nu�no je odrediti njihov naziv i tip podataka, a zaoperacije njihovu definiciju koja uklju�uje naziv operacije, te sve ulazne i izlazne para-metre.

Svaki student ima svoj identifikacijski broj (ID, podatkovnog tipa Long), ime(String), prezime (String) i prosjek ocjena (Double). Student mo�e prijaviti ispit, odjavitiispit i pristupiti ispitu. Za prijavu i odjavu ispita potrebna je šifra predmeta (Integer), aoperacije vra�aju logi�ke (boolean) vrijednosti da li je izvršenje uspjelo ili ne. Pristupanjeispitu je definirano druga�ije: ulazni argument operacije je šifra predmeta (Integer), a

Primjer 4.1.1. Definirati razred Student

Page 15: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

5. Dijagrami objekata i paketa

5.1. Dijagrami objekata

5.1.1. Karakteristike objekata

Dijagrami objekata (engl. object diagrams) kao i dijagrami razreda pripadaju struk-turnim UML-dijagramima, ali njihova uloga je razli�ita: dijagrami objekata prikazujustrukturu sustava u nekom trenutku. Prikaz mo�e biti djelomi�an ili cjelovit, odnosnonije nu�no prikazati objekte svih razreda sustava. U proizvoljno odabranim trenucimaobjekti sustava imaju razli�ite vrijednosti atributa i dijagrami objekata prikazuju upravote vrijednosti, zajedno s objektima i njihovim me�usobnim vezama. Naj�eš�e je dovoljnoprikazati samo jedan trenutak u radu sustava, ali ponekad ako je stanje sustava izrazitodinami�no potrebno je izraditi više dijagrama koji opisuju rad sustava u nekoliko trenu-taka s karakteristi�nim stanjima objekata.

5.1.2. Definiranje objekata

Simbol objekta je pravokutnik s dva pretinca – jedan za naziv objekta i drugi za vri-jednosti atributa. Objekti se razlikuju od razreda jer nemaju definicije atributa i proce-dura, ali imaju jasno ozna�eno stanje va�nih atributa. Prikazuju se atributi po kojima sepojedinci unutar dijagrama me�usobno razlikuju, odnosno po kojima su oni specifi�ni.

Razred Osoba ima sljede�e atribute: jedinstvena šifra (Integer), ime (String), pre -zime (String) i OIB (String). Šifra je zašti�ene vidljivosti, a ime, prezime i OIB javnodostupni podaci. Izradite tri pojedinca navedenog razreda s proizvoljnim vrijednostimaatributa.

Primjer 5.1.2.1. Objekti razreda Osoba

Page 16: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

6. Dijagrami stanja i aktivnosti

6.1. Karakteristike dijagrama

Dijagrami stanja (engl. statechart, UML state machine diagram) i aktivnosti (engl. ac-tivity diagram) pripadaju ponašajnim dijagramima (engl. behavioral diagram) u UML-u,zajedno s dijagramom obrazaca uporabe. Za razliku od dijagrama obrazaca uporabe, di-jagrami stanja i aktivnosti prikazuju funkcionalnost softverskog sustava iz perspektiveunutrašnjosti sustava. Pritom ovi dijagrami ne prikazuju niti aktore niti vanjsko su�eljeprema krajnjim korisnicima. Budu�i da razra�uju ponašanje sustava u smislu aktivnostii prijelaza izme�u stanja, svrstavaju se u dinami�ke dijagrame.

Iako sli�ni, ove dvije vrste dijagrama imaju i odre�ene razlike koje se mogu uo�iti.Prva razlika odnosi se na njihovu svrhu. Dijagram stanja slu�i za opis diskretnih stanjasustava i prijelaza izme�u tih stanja. Te�ište mu je na unutarnjem djelovanju dijelovasustava i �esto prikazuje prijelaze izme�u stanja u sustavu koji su poticani doga�ajima.Dijagram aktivnosti prikazuje radni tok (ili kontrolni tok) aktivnosti koje se obavljaju usustavu korak po korak. Stoga je kod dijagrama aktivnosti naglasak na jednostavnosti iposlovnim operacijama koje se uvijek odvijaju slijedno, jedna za drugom.

Druga razlika je u tome što dijagrami stanja na prijelazima izme�u stanja sadr�enaziv doga�aja koji je aktivirao prijelaz i �esto poziv izlazne metode ili operacije koja sedoga�a, dok kod dijagrama aktivnosti to nije slu�aj.

6.2. Dijagram stanja

6.2.1. Elementi dijagrama

Dijagram stanja sastoji se od sljede�ih (naj�eš�ih) gradivnih elemenata:1. Po�etno stanje i kona�no stanje. Po�etno stanje ozna�eno je crnim krugom, a kona�no

stanje ozna�eno je zaokru�enim crnim krugom, slika 6.1. Dijagram stanja mo�e imatijedno po�etno i više kona�nih stanja.

Page 17: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

7. Dijagrami komponenti

7.1. Karakteristike dijagrama

Dijagrami komponenti prikazuju komponente (strukturne cjeline) sustava i njihoveme�usobne odnose [Fowler 2000]. Komponenta je zasebna cjelina programske potpores vlastitim su�eljem. Komponenta predstavlja fizi�ku i stvarnu implementaciju logi�kihelemenata sustava kao što su razredi, su�elja i pridru�ivanja [Booch 1999]. Komponentnidijagrami poma�u u modeliranju fizi�kih cjelina sustava kao što su izvršne datoteke, pro-gramske biblioteke, tablice, datoteke i svi drugi dokumenti. �esto se ka�e da su u UML-usve fizi�ke „stvari“ modelirane kao komponente [Booch 1999].

U izradi programske podrške mnogi operacijski sustavi i ra�unalni jezici podr�avajukoncept komponente: objektne biblioteke, izvršne datoteke, DCOM i COM+ kompo-nente i Enterprise Java Beans su primjeri komponenata koje se mogu direktno pred-staviti u UML-u korištenjem komponenti [Booch 1999]. Jedan razred mo�e bitipredstavljen s više komponenata, ali samo s jednim paketom. Na primjer, razred JavaString je smješten u paket java.lang, ali istodobno sastoji se od mnogo komponenata[Fowler 2000].

Dijagrami komponenti su strukturni UML-dijagrami. Prikazuju vremenski nepro -mjenjiva (stati�ka) svojstva sustava s fizi�kog aspekta implementacije. Stoga se uz dija-grame razmještaja još nazivaju fizi�ki dijagrami te se �esto prikazuju zajedno u jednomUML-dijagramu komponenti i razmještaja.

Prikazati sistemsku datoteku 'gdi32.dll' operacijskog sustava Windows. Datotekaeksportira Graphics Device Interface (GDI) programsko su�elje. Zanemariti ostalasu�elja komponente.

Rješenje primjera 7.1.1 prikazano jer na slici 7.1.

Primjer 7.1.1. Sistemska DLL datoteka

Page 18: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

8. Dijagrami razmještaja

8.1. Karakteristike dijagrama

Dijagrami razmještaja (engl. deployment diagrams) opisuju topologiju sklopovlja iprogramsku potporu koja se koristi u implementaciji sustava u njegovom radnom i pro-dukcijskom okru�enju. Drugim rije�ima, dijagrami razmještaja prikazuju ra�unalneresurse koji su neophodni za ispravno funkcioniranje sustava i njihove me�usobneodnose: stvarne ure�aje (poslu�itelje, radne stanice, korisni�ka ra�unala, itd.), kompo-nente programske podrške koje se na njima izvršavaju i veze izme�u prikazanih resursa.Dijagrami razmještaja, kao i dijagrami paketa i razreda, su stati�ki i strukturni UML-di-jagrami.

Prika�ite u dijagramu razmještaja mre�ni poslu�itelj s komponentom za slanje elek-troni�ke pošte. Rješenje primjera 8.1.1 prikazano je na slici 8.1.

Primjer 8.1.1. Mre�ni poslu�itelj s komponentom

Slika 8.1. Rješenje primjera 8.1.1.

Page 19: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

9. Rješenja zadataka

9.1. Dijagrami obrazaca uporabe

Zadatak 2.1.

Page 20: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija

Literatura

[Bell 2004] D. Bell, UML basics: The sequence diagram, 2004, dostupno na:http://www.ibm.com/developerworks/rational/library/3101.html, [pristupljeno dana29. 8. 2014.]

[Booch 1999] G. Booch, J. Rumbaugh, I. Jacobson, The Unified Modeling Language UserGuide, Addison-Wesley, 1999.

[Change 2014] Change Vision, Astah, 2014, dostupno na: http://www.astah.net/ [pristu-pljeno dana 22. 8. 2014.]

[Fowler 2000] M. Fowler, K. Scott, UML Distilled, 2nd ed., Addison-Wesley, 2000.[Fowler 2004] M. Fowler, UML Distilled: a brief guide to the Standard object modeling

language, 3rd ed., Addison-Wesley, 2004.[Holub 2012] A. I. Holub, Allen Holub's UML Quick Reference (UML 2.0), version 2.1.3,

dostupno na: http://www.holub.com/goodies/uml/, [pristupljeno dana 29. 8. 2014.][Lethbridge 2005] T. C. Lethbridge, R. Laganière, Object-Oriented Software Engineering,

McGraw-Hill Education, 2005.[OMG 2011] Object Management Group, OMG Unified Modeling Language (OMG

UML), Infrastructure, Version 2.4.1, 2011, dostupno na: http://www.omg.org/spec/UML/2.4.1/Infrastructure/PDF/, [pristupljeno dana 29. 8.2014.]

[Quatrani 2002] T. Quatrani, Visual Modeling with Rational Rose 2002 and UML, 3rd ed.,Addison-Wesley, 2002.

[Rational 2001] Rational Software Corporation, Artifact: Use-Case Model, dostupno na:http://www.ts.mah.se/RUP/RationalUnifiedProcess/process/artifact/ar_ucmod.htm,[pristupljeno dana 29. 8. 2014.]

Page 21: UDBENICI SVEUILIŠTA U ZAGREBU MANUALIA · PDF fileraznim tehnikama programiranja, ... vjebanjem zadataka iz ove zbirke studenti se mogu uspješno pripremiti za ispite iz ovog kolegija