Labos UML Uvod Dijagrami Klasa

105
UML - labosi Osnove UML-a Dijagrami klasa

description

dri

Transcript of Labos UML Uvod Dijagrami Klasa

Page 1: Labos UML Uvod Dijagrami Klasa

UML - labosi

Osnove UML-a

Dijagrami klasa

Page 2: Labos UML Uvod Dijagrami Klasa

Prije UML-a

• 1960’s - 70’s– COBOL, FORTRAN, C

– Tehnike strukturne analize i oblikovanja

• 1980’s - early 1990’s– Smalltalk, Ada, C++, Visual Basic

– Rane generacije OO metoda

• Sredina i kasne 1990– Java

– UML

– Unified Process (RUP)

programiranje

modeliranje

Page 3: Labos UML Uvod Dijagrami Klasa

Temelji UML-a• UML je jezik za:

– vizualizaciju

– specifikaciju

– oblikovanje (i konstruiranje)

– dokumentiranje

artefakata programske potpore.

• UML je posebice prikladan za specificiranje objektno

usmjerene arhitekture programske potpore.

• Dijelovi UML-a pogodni su u specificiranju i drugih

arhitektura.

• Uvođenje arhitekture programske potpore : to je

struktura ili strukture sustava koji sadrži elemente,

njihova izvana vidljiva obilježja i odnose između njih.

Page 4: Labos UML Uvod Dijagrami Klasa

Prednosti UML-a

• Otvoren standard.

• Podupire cijeli životni ciklus oblikovanja

programske potpore.

• Podupire različite domene primjene.

• Temeljen je na iskustvu i potrebama

zajednice oblikovatelja i korisnika

programske potpore.

• Podržavaju ga mnogi alati.

Page 5: Labos UML Uvod Dijagrami Klasa

Mnogo sudionika, mnogo pogleda

• Arhitekturu programske potpore različito vidi:– Korisnik-kupac– Projekt manager– Inženjer sustava– Osoba koje razvija sustav– Arhitekt– Osoba koja održava sustav (engl. Maintainer)– Drugi dionici

• Višedimenzionalna realnost

• Mnogo sudionika rezultira u

višestrukim pogledima, višestrukim

nacrtima

Page 6: Labos UML Uvod Dijagrami Klasa

6 UML 2

Korisnici UML – aSistem-analitičari i krajnji korisnici: specificiraju zahtjevanu strukturu i ponašanje sustava

Voditelji projekata: voĎenje i usmeravanje kadrova i upravljanje resursima

Arhitekti: projektirauju sustav koji zadovoljava zahtjeve

Razvojni inženjeri: transformiraju arhitekturu u izvršni kod

Kontrolori kvaliteta:provjeravaju strukturu i ponašanje sustava

Evidentičari komponenata: kreiraju i vode kataloge komponenti

Page 7: Labos UML Uvod Dijagrami Klasa

• Pogledi odgovaraju nekom kontekstu.

• Svi sustavi ne trebaju sve poglede:

– Jedan procesor, nije potreban nacrt razmještaja procesora.

– Jedan proces, nije potreba nacrt razmještaja procesa.

– Vrlo mali programi, nije potreban nacrt implementacije.

• Neki dodatni pogledi:

– Pogled podataka, pogled sigurnosti u sustavu

• Svaki pogled dokumentira se nacrtom – DIJAGRAMOM.

• Više pogleda (dijagrama) u okviru nekog konteksta = MODEL

• Model je apstraktan (reduciran, pojednostavljen, smanjen, ograničen) opis sustava iz određene perspektive.

Page 8: Labos UML Uvod Dijagrami Klasa

Kreiranje UML-a

Booch method OMT

Unified Method 0.8OOPSLA ´95

OOSEOther methods

UML 0.9Web - June ´96

public

feedback

Final submission to OMG, Sep „97

First submission to OMG, Jan ´97

UML 1.1

OMG Acceptance, Nov 1997

UML 1.3

UML 1.0UML partners

Page 9: Labos UML Uvod Dijagrami Klasa

Meyer

Before and after

conditions

Harel

Statecharts

Gamma, et al

Frameworks and patterns,

HP Fusion

Operation descriptions and

message numbering

Embley

Singleton classes and

high-level view

Wirfs-Brock

Responsibilities

Odell

Classification

Shlaer - Mellor

Object lifecycles

Rumbaugh

OMT

Booch

Booch method

Jacobson

OOSE

Sudjelovanje u kreiranju UML-a

Page 10: Labos UML Uvod Dijagrami Klasa

Povijesni razvoj UML-a

Page 11: Labos UML Uvod Dijagrami Klasa

Fizičko modeliranje

• Detaljno projektiranje

▫Dijagrami klasa

▫Model za projektiranje b.p.

▫DDL skriptovi

▫Baze podataka

▫Dijagrami komponenti

▫Dijagrami rasporeĎivanja

Faze modeliranje - ukratko

Logičko modeliranje

• Definiranje zahteva

▫modeli korisn. funkcija

sistema

▫Opisi korisn. funkcija sistema

• Analiza i preliminarno projektiranje

▫Dijagrami klasa

▫Dijagrami sekvenci

▫Dijagrami stanja

Konceptualno modeliranje

• Modeliranje poslovnih

korisničkih funkcija:

▫Modeli use case

▫Dijagrami aktivnosti

• Modeliranje poslovnih objekata

▫Modeli poslovnih objekata

▫Dijagrami sekvenci

• Modeliranje npr. baze podataka se fokusira uglavnom na opisivanje baze podataka

• Projektiranje baze podataka obuhvaća ukupan proces od definiranje i postavljanja zahtjeva, poslovnih

procesa, logičkih analiza i fizičkih ograničenja do razmeštaja baze podataka

• Npr., u projektiranju baze podataka fizičko modeliranje podataka obuhvaća ne samo modeliranje tablica i kolona,

nego i prostora za tabele, particije, HW i ukupno sastavljanje ukupnog sustava baze podataka

Page 12: Labos UML Uvod Dijagrami Klasa

UML vs. Tradicionalno modelovanje

• Tradicionalno modeliranje baze podataka polazi od osnovne teorije da je baza podataka osnova sustava, meĎutim ona ne može da postoji sama za sebe i ima mnogo drugih stvari koje sačinjavaju kompaniju i njene informacije– Bez aplikacija koje zaposlenima otvaraju tu bazu, ne bi bilo

dostupnih podataka

– Bez klijenata i transakcija, ne bi bilo informacija u bazi ...

• UvoĎenje UMLa omogućava se zajednički jezik za sve uključene timove

• UML pruža mogućnost da se jednim jezikom modeluje poslovni sistem, aplikacije, baza podataka i arhitektura sistema

Page 13: Labos UML Uvod Dijagrami Klasa

13 UML 2

Unificirani jezik za modeliranje

UML je skup grafičkih notacija zasnovanih na jedinstvenom metamodelu.

Notacija je skup grafičkih elemenata koji se koriste u modelima, tj. grafička

sintaksa jezika za modelovanje.

Metamodel predstavlja dijagram koji definiran koncepte jezika za modeliranje.

Iako je notacija često intuitivna, a ne formalna, vrlo se uspješno koristi u praksi.

Metamodel predstavlja pokušaj da se strože definiran notacija, bez narušavanja njene

korisnosti. Ni notacija ni metamodel se ne moraju strogo primenjivati.

UML se koristi za modeliranje i projektiranje softverskih sustava,

naročito sustava pravljenih primjenom objektno-orijentiranih tehnologija.

Čemu služi

UML?

Page 14: Labos UML Uvod Dijagrami Klasa

14 UML 2

Postupci razvoja

Direktni razvoj (forward engineering)

UML dijagram Programski kod

Povratna analiza (reverse engineering)

Programski kod UML dijagram

generiranje

tumačenje

Page 15: Labos UML Uvod Dijagrami Klasa

15 UML 2

Načini korištenja UML-a

UML

Izrada projekataIzrada dijagrama

Programski jezik

Page 16: Labos UML Uvod Dijagrami Klasa

16 UML 2

Izrada dijagrama

Dijagram opisuju pojedine aspekte sustava korištenjem UML-a kao pomoćnog

sredstva.

Osobine dijagrama:

predstavljaju najčešći način upotrebe UML-a

obično se generiraju neformalno i dinamički, tako da se rade brzo i na tabli

nepotpune su (?)

omogućavaju jednostavno ispitivanje više alternativnih rešenja

mogu se koristiti u dokumentaciji

Skice u direktnom razvoju:

sadrže samo nekoliko značajnih

problema koji će se javiti u kodu

predstavljaju ideje i alternative

predstojećeg posla

vizualiziraju dijelove projekta prije

programiranja

Skice u povratnoj analizi:

objašnjavaju kako radi neki dio

sustava (samo klase o kojima je

važno razgovarati)

Page 17: Labos UML Uvod Dijagrami Klasa

17 UML 2

Izrada UML projekata

UML projekti opisuju sustav sveobuhvatno, kako bi se programiranje koje

predstoji svelo uglavnom na mehaničku aktivnost.

Osobine UML projekata:

za izradu projekata koriste se složeni, tzv. CASE alati za računarsko

projektiranje softvera

projekti se moraju dosljedno pratiti i sprovoditi

Direktni razvoj:

Projekti sadrže detaljan opis sustava,

obično do nivoa IF-a - interfejsa

podsustava (dalje se razrada

realizacije se prepušta

programerima), na osnovu koga se

piše kod.

CASE alati omogućavaju crtanje

dijagrama i čuvanje informacija u

memoriji.

Povratna analiza:

Projekti sadrže detaljne informacije o

kodu u obliku papirne ili elektronske

dokumentacije. Mogu prikazati svaki

detalj neke klase u grafičkom obliku

koji programer razumije.

CASE alati čitaju izvorni kod,

tumačenja stavljaju u memoriju i

generiraju dijagrame.

Page 18: Labos UML Uvod Dijagrami Klasa

18 UML 2

UML kao programski jezik

.

UML postaje programski jezik u slučaju kada se cijeli sustav modelira UML

dijagramima, a zatim se ti dijagrami primjenom CASE alata neposredno

prevode u izvršni kod. Tada UML postaje izvorni kod, što odgovara

programskom jeziku.

Ovaj način upotrebe UML-a još nije doživjeo potpunu primjenu u praksi .

Djelomično

UML modeliranje

Programski kod

pro

gra

mira

nje

Intenzivno

UML modeliranje

CA

SE

ala

ti

UML modeliranje

cijelog sustavaC

AS

E a

lati

automatizacija

Programski kod Programski kod

Izvorni kod

Page 19: Labos UML Uvod Dijagrami Klasa

UML gradbeni blokovi

• U UML-u postoji sedam tipova

strukturalnih stvari. Strukturalne stvari su

imenice u UML modelima. To su najčešće

statički dijelovi modela i oni predstavljaju

elemente koji su ili konceptualni ili fizički.

U UML-u postoji sedam tipova

strukturalnih stvari:

Page 20: Labos UML Uvod Dijagrami Klasa

1. UML gradbeni blokovi - Klasa

• Klasa – predstavlja opis skupa objekata koji dijele iste atribute, operacije, relacije i semantiku. Klasa može implementirati jedno ili više sučelja (eng. interface).

• Grafički,klasa je prikazana kao pravokutnik koji obično sadrži ime, atribute i operacije

Page 21: Labos UML Uvod Dijagrami Klasa

2. UML gradbeni blokovi - Sučelja

• Sučelje - kolekcija operacija kojaspecificira usluge neke klase ili komponente. Sučelje stogapredstavlja izvana vidljivo ponašanje tog elementa i može predstavljati kompletno ponašanje klase ili komponente ili samo djelomično.

• Sučelje definira skup operacijskihspecifikacija (tj. njihovih potpisa), ali nikada skup njihovih implementacija.

• Grafički, sučelje je predstavljeno krugom zajdeno sa njegovim imenom. Sučelje, prema svojoj namjeni, nikada neće stajatisamo, većće obično biti vezano za odreĎenu klasu ili komponentu kojaga realizira.

Page 22: Labos UML Uvod Dijagrami Klasa

3. UML gradbeni blokovi - Suradnja

• Suradnja (eng. collaboration). Ono definira interakciju te je skup uloga (eng. roles) i ostalih elemenata koji zajednički rade i pružaju nekakvo kooperativno ponašanje koje je veće nego suma svih elemenata zajedno. Stoga, suradnja ima strukturalnu dimenziju kao i dimenziju ponašanja. Neka klasa može participirati u više suradnji odjednom i suradnje time reprezentiraju implementaciju predložaka (eng. patterns) koji čine sustav.

• Grafički, suradnja je predstavljena elipsom sa isprekidanim linijama i obično se u njoj nalazi njeno ime

Page 23: Labos UML Uvod Dijagrami Klasa

4. UML gradbeni blokovi – Slučaj

korištenja• Slučaj korištenja (eng.

Use case). On opisuje skup slijednih dogaĎaja koje sustav izvodi kako bi dobio neki rezultat i koristi se za strukturiranje stvari sa ponašanjem u samom modelu. Slučaj korištenja se u modelu realizira većspomenutim tipom: suradnjom.

• Grafički, slučaj korištenja je predstavljen elipsom.

Page 24: Labos UML Uvod Dijagrami Klasa

5. UML gradbeni blokovi –

Komponenta• Komponenta (eng. component) i

predstavlja fizički i zamjenjivi dio sustava koji se prilagoĎava skupu sučelja i pruža njihovu realizaciju. U sustavu se mogu sresti mnoge razne komponente kao što su COM+ komponente, zatim JavaBeans komponente kao i ostale komponente koje su dio razvojnog procesa, kao datoteke programskog koda. Komponenta tipično predstavlja fizičko pakiranje inače logičkih elemenata kao što su klase, sučelja i suraĎivanja.

• Grafički, komponenta se prikazuje kao pravokutnik sa hvataljkama

Page 25: Labos UML Uvod Dijagrami Klasa

6. UML gradbeni blokovi – Čvor

• Čvor (eng. node). To je fizički element koji postoji pri radu sustava i redstavlja računalni resurs i obično ima neku memoriju i procesne mogućnosti.

• Unutar čvora može se smjestiti skup komponenata, a komponente mogu, takoĎer,seliti se sa čvora na čvor.

• Grafički, čvor je predstavljen kockom

Page 26: Labos UML Uvod Dijagrami Klasa

7a. UML gradbeni blokovi – Stvari

sa ponašanjem • Stvari sa ponašanjem su dinamički

dijelovi UML modela. To su glagoli

modela i predstavljaju ponašanje kroz

prostor i vrijeme. Postoje, sve skupa,

samo dva primarna tipa stvari sa

ponašanjem.

• Prvi od njih je interakcija. Interakcija je

ponašanje koje obuhvaća skup poruka

koji se izmjenjuje u skupu objekata

unutar nekog odreĎenog konteksta s

odreĎenom svrhom. Ponašanje skupa

objekata ili individualne operacije može

se specificirati interakcijom.

• Interakcija uključuje i brojne druge

elemente kao što su poruke, slijedovi

akcija (ponašanje pokrenuto porukom) i

veze izmeĎu objekata.

• Grafički, poruka je predstavljena kao

linija sa strelicom u jednom smjeru i

najčešće uključuje i ime operacije

Page 27: Labos UML Uvod Dijagrami Klasa

7b. UML gradbeni blokovi – Stvari s

ponašanjem• Automat stanja (eng. State machine).

Automat stanja je ponašanje koje

specificira slijed stanja objekta ili

interakcije kroz koje prolazi za vrijeme

svog života kao odgovor na neki

dogaĎaj, zajedno sa odgovorom na taj

dogaĎaj.

• Ponašanje pojedine klase ili suradnje

klasa može biti specificirana

automatom stanja. Automat stanja

uključuje i brojne druge elemente, kao

što su stanja, tranzicije (prijelazi

izmeĎu dva stanja), dogaĎaje (stvari

koje okidaju tranziciju) i aktivnosti

(odgovori na tanziciju).

• Grafički, stanje je predstavljeno

pravokutnikom zaobljenih rubova i

obično uključuje ime stanja i njegova

podstanja.

Page 28: Labos UML Uvod Dijagrami Klasa

8a. UML gradbeni blokovi –

Grupirajuće stvari• Grupirajuće stvari su organizacijski dio

UML modela. To su "kutije" u koje se

može razložiti UML model i postoji

samo jedan tip grupirajućih stvari, a to

su paketi (eng. packages).

• Paket je mehanizam opće namjene za

organiziranje elemenata u grupe.

Strukturalne stvari, stvari sa

ponašanjem pa čak i druge grupirajuće

stvari mogu se smjestiti u paket. Za

razliku od komponenata (koje postoje

za vrijeme izvoĎenja), paket je čisto

konceptuale prirode (što znači da

postoji samo za vrijeme razvoja).

• Grafički, paket je prikazan kao

pravokutnik sa hvataljkom (eng.

tabbed folder) kako je prikazano na

Slici 10. i obično sadrži ime i, ponekad,

svoj sadržaj.

Page 29: Labos UML Uvod Dijagrami Klasa

9a. UML gradbeni blokovi – Opisne

stvari• Opisne stvari su dijelovi UML

modela koji daju neku vrstu objašnjenja. To su komentari koji se mogu primijeniti kako bi se opisalo, naglasilo ili dalo primjedbu na neki element unutar UML modela.

• Postoji samo jedan glavni tip opisnih stvari, a to je cedulja (eng. note).

• Cedulja je, jednostavno, simbol za pisanje ograničenja i komentara i vezana je za neki element ili kolekciju elemenata u UML modelu.

• Grafički, cedulja se predstavlja kao pravokutnik sa zavrnutim rubom, zajedno sa tekstualnim ili grafičkim komentarom

Page 30: Labos UML Uvod Dijagrami Klasa

UML – gradbeni blokovi –

Relacijske stvari u UML-u

• Postoje četiri tipa relacija unutar UML modela:

– Asocijacije (eng. association)

– Ovisnosti (eng. dependency)

– Generalizacije (eng. generalization)

– Realizacije (eng. realization)

Page 31: Labos UML Uvod Dijagrami Klasa

UML – gradbeni blokovi –

asocijacija

• Postoje četiri tipa relacija unutar UML modela:

– Asocijacije (eng. association)

– Ovisnosti (eng. dependency)

– Generalizacije (eng. generalization)

– Realizacije (eng. realization)

Page 32: Labos UML Uvod Dijagrami Klasa

UML – gradbeni blokovi –

ovisnost• Ovisnost, je semantička

relacija izmeĎu dvije stvari u kojoj promjena u jednoj (neovisnoj stvari) može utjecati na semantiku druge (ovisne stvari).

• Grafički, ovisnost se prikazuje kao isprekidana linija, sa mogućom oznakom direkcije (strelica) i imenom realization)

Page 33: Labos UML Uvod Dijagrami Klasa

UML – gradbeni blokovi –

asocijacija• Asocijacija, je strukturalna

relacija koja opisuje skup veza izmeĎu objekata. Kombinacija (eng. aggregation) je pecijalan

• oblik asocijacije i reprezentira strukturalnu relaciju izmeĎu cjeline i njenih dijelova.

• Grafički, asocijacija se predstavlja kao puna linija, uz mogućnost odreĎivanja smjera, i ponekad sadrži i dodatne stvari kao n-arnost i ime.

Page 34: Labos UML Uvod Dijagrami Klasa

UML – gradbeni blokovi –

generalizacija• Generalizacija (eng.

generalization), je relacija specijalizacije/generalizacijeu kojoj objekti specijaliziranih elemenata (djeca) se mogu zamijeniti objektima generaliziranih elemenata (roditelja). Na ovaj način, djeca dijele strukturu i ponašanje roditelja.

• Grafički, relacija generalizacije se prikazuje kao puna linija sa šupljom strelicom koja pokazuje prema roditelju

Page 35: Labos UML Uvod Dijagrami Klasa

UML – gradbeni blokovi –

realizacija• Realizacija (eng. realization), je semantička

relacija izmeĎu klasifikatora,gdje jedan

klasifikator specificira ugovor koji drugi

klasifikator garantira izvršiti.

• Realizacija se susreće na dva mjesta: izmeĎu

sučelja i klasa ili komponenata koje ih

realiziraju, i izmeĎu slučajeva korištenja i

suradnji koje ih realiziraju.

• Grafički, realizacija se prikazuje kao prijelaz

izmeĎu generalizacije i relacije ovisnosti (Ova

četiri elementa su osnovne relacijske stvari

koje se mogu uključiti u UML model.

• Postoje, takoĎer, i varijacije relacijskih stvari

kao što su uključivanje (eng. include),

proširenje (eng. extend), rafiniranje (eng.

refinement), i praćenje (eng. trace).

Page 36: Labos UML Uvod Dijagrami Klasa

Modeli i dijagrami

Model je pojednostavljeni opis sustava Iz odreĎene perspektive.

Dokumentira se dijagramima.

Pojedini dijagram je pogled u model.

Obilježja dijagrama:

• Dijagram je pogled u model predstavljen s aspekta odreĎenog

dionika.

• Daje odreĎeno predstavljanje sustava

• Dijagram je djelomičan opis sustava.

• Dijagram mora biti semantički konzistentan s ostalim

pogledima.

Page 37: Labos UML Uvod Dijagrami Klasa

Dijagrami

• Dijagram je grafička prezentacija skupa elemenata, najčešće

prikazanih kao povezani grafovi vertikala (stvari) i lukova (relacije).

• Dijagrami se crtaju kako bi se vizualizirao sustav iz različitih

perspektiva, pa to čini dijagram nekom vrstom projekcije u sustav.

• Za gotovo sve sustave, osim onih vrlo jednostavnih, dijagrami

predstavljaju poboljšani prikaz elemenata koji čine sustav. Isti

elementi mogu se pojaviti u svim dijagramima, nekim dijagramima

(najčešći slučaj) ili se uopće ne pojaviti (jako rijetko).

• Teoretski, dijagram može sadržavati bilo koju kombinaciju stvari i

relacija u modelu.

• U praksi, meĎutim, samo se mali broj kombinacija pojavljuje, i one

su konzistentne sa pet najkorisnijih pogleda na sustav koji čine

arhitekturu sustava koji se oslanjaju na programsku podršku.

Page 38: Labos UML Uvod Dijagrami Klasa

Tipovi UML dijagrama

Page 39: Labos UML Uvod Dijagrami Klasa

Use CaseDiagramsUse Case

DiagramsDijagrami

obrazaca uporabe(use case)

ScenarioDiagramsScenario

DiagramsKomunikacijskidijagrami

StateDiagramsState

DiagramsDijagrami komponenata

ComponentDiagramsComponent

DiagramsDijagramirazmještaja

StateDiagramsState

DiagramsDijagrami objekata

ScenarioDiagramsScenario

Diagrams“Statechart”

Dijagramistanja

Use CaseDiagramsUse Case

DiagramsSekvencijski dijagrami

StateDiagramsState

DiagramsDijagramirazreda

Dijagramiaktivnosti

Modeli

Dijagrami razmatrani u

sklopu analize i

dokumentiranja zahtjeva

Dijagrami specifični za objektno

usmjerenu programsku potporu

Page 40: Labos UML Uvod Dijagrami Klasa

40 UML 2

Dijagrami UML-a

Dijagram Namena Uvedeno u verziji

Aktivnosti proceduralno i paralelno ponašanje UML 1

Klasa klase, odlike i veze UML 1

Komponenata struktura i veze komponenata UML 1

Komunikacije interakcija izmeĎu objekata-naglasak na vezama UML 1

Mašine stanja kako dogaĎaji mijenjaju objekat tijekom njegovog

postojanja

UML 1

Objekata primjeri konfiguracije instanci Nezvanično u UML 1

Paketa hijerarhijska struktura tijeko prevoĎenja Nezvanično u UML 1

Pregleda interakcije kombinacija dijagrama sekvence i aktivnosti Novo u UML 2

RasporeĎivanja rasporeĎivanje artefakata po čvorovima UML 1

Sekvence interakcija izmeĎu objekata-naglasak na sekvenci UML 1

Složene strukture razlaganje klasa tijekom izvršavanja Novo u UML 2

Slučajeva korišćenja Interakcija korisnika i sustava UML 1

Vremenski interakcija izmeĎu objekata-naglasak na

vremenskoj promeni

Novo u UML 2

Page 41: Labos UML Uvod Dijagrami Klasa

41 UML 2

Klasifikacija dijagrama

Dijagram

Dijagram

ponašanja

Dijagram

strukture

Dijagram stanja

Dijagram slučajeva

korišćenja

Dijagram aktivnosti

Dijagram interakcije

Dijagram objekata

Dijagram složene

strukture

Dijagram klasa

Vremenski dijagram

Dijagram pregleda

interakcije

Dijagram komunikacije

Dijagram sekvence

Dijagram paketa

Dijagram rasporeĎivanja

Dijagram komponenata

Page 42: Labos UML Uvod Dijagrami Klasa

Podjela dijagrama

• U okviru UML-a postoji devet standardnih

dijagrama koji su grupirani u 2 skupine:

• Statički pogledi (5 dijagrama):

– Opisuje stanje sustava – vrijednosti izabranih varijabli sustava

nekim skupom podataka

– dijagram obrazaca uporabe, dijagram razreda/klasa, dijagram

objekata, dijagram komponenti, dijagram razmještaja

• Dinamički pogledi (4 dijagrama):

• Uvodi se dimenzija vremena; dogaĎaj (u sustavu ili van njega)

mijenja stanje sustava u pogledu neke njegove varijable

• sekvencijski dijagram, komunikacijski (kolaboracijski) dijagram,

dijagram stanja (“statechart”), dijagram aktivnosti

Page 43: Labos UML Uvod Dijagrami Klasa

Ak.god. 2008/2009 43

Modeliranje sustava

dijagrami slijeda

dijagrami klasa

specifikacija

slučaja korištenja

sudionik slučaj korištenja

Slučaj korištenja je niz akcija koje

sustav izvršava i koje daju opipljivi

rezultat odreĎenom sudioniku.

Dijagram slijeda opisuje

dinamiku slučaja korištenja

Dijagram klasa daje statički

prikaz slučaja korištenja

Page 44: Labos UML Uvod Dijagrami Klasa

Primjer: Modeliranje organizacije

fakultetaNeki fakultet sastoji se od jednog ili više zavoda, a svaki zavod od jedne ili više

zavodskih grupa. Zavodsku grupu čine zaposlenici. Zaposlenici mogu raditi i u nekoliko zavodskih grupa, ali ne mogu raditi na više zavoda.

Postoje dva konkretna tipa zaposlenika: predavači i asistenti. Svaki predavač ima barem jedan kolegij koji predaje, a svaki asistent drži laboratorijske vježbe iz barem jednog kolegija. Svaki kolegij može imati jednog ili više predavača i asistenata. Asistent ima jednog predavača u funkciji mentora, a predavač može imati više asistenata. Svaki kolegij se sastoji od više predavanja i više laboratorijskih vježbi i ima svoj naziv sastoji od više redavanja i više laboratorijskih vježbi i ima svoj naziv (String).

Ukidanjem kolegija ukidaju se predavanja i laboratorijske vježbe, ali naravno, ne otpuštaju se zaposlenici koji kolegij drže. Student je zasebna kategorija u organizaciji fakulteta i u ovom modelu pretpostavite samo da sluša jedan ili više kolegija. I student i zaposlenik su osobe. Svaka osoba ima svoje ime i prezime. Dodatno, svaki zaposlenik ima svoj matični broj zaposlenika (String), a svaki student svoj JMBAG (String). Fakultet ima svoj matični broj (String) i naziv (String). Zavod ima svoj naziv (String) i broj računa (String). Naziv i broj računa zavoda nasljeĎuju i zavodske grupe, s tim da one osim toga imaju i svoj naziv grupe te dodatno, naziv glavnog laboratorija (String).

Page 45: Labos UML Uvod Dijagrami Klasa
Page 46: Labos UML Uvod Dijagrami Klasa

46

Modeliranje s razredima

UML dijagrami razreda i

objekata (eng. Class Diagram)

Izvor: T.C.Lethbridge, R.Laganiere, 2005

Page 47: Labos UML Uvod Dijagrami Klasa

Naziv i izgled

• Najčešći termin koji se koristi je: – Class dijagram

• Hrvatski termin:– Dijagram razreda

– Dijagram klasa

• hrv. razred, klasa

= engl. class

Statični dijagram. Bez vremenske domene.

Tvore ga samo definicije razreda i njihovih odnosa.

Nema aktora. 5/50

Page 48: Labos UML Uvod Dijagrami Klasa

Svrha i cilj

• Class dijagram opisuje vrste objekata unutar nekog

sustava i njihove meĎusobne statične odnose

– Jednostavno rečeno: class dijagram opisuje razrede (klase) i

njihove meĎusobne veze

• Dva osnovna tipa odnosa izmeĎu razreda:

– Pridruživanje (veza ili asocijacija)

– Podtip

• Također, class dijagrami mogu prikazati atribute i

operacije razreda, njihova svojstva, ograničenja nad njima,

pakete, …

– Dozvoljeni su komentari i dokumentacija

6/50

Page 49: Labos UML Uvod Dijagrami Klasa

49

Temelji UML dijagrama klasa

• Osnovni simboli prikazani na dijagramima razreda su:– Razredi

– predstavljanju tip podataka (podatkovne apstrakcije koje sadrže procedure).

– Pridruživanja (engl. Associations)

– predstavljaju vezu izmeĎu instanci razreda.

– Atributi

– jednostavni podaci sadržani u razredima i njihovim instancama.

– Operacije

– predstavljaju funkcije koje izvode instance razreda (objekti).

– Generalizacije

– grupiranje razreda u hijerarhiju nasljeĎivanja.

Page 50: Labos UML Uvod Dijagrami Klasa

Razred

• Razred ili klasa (engl. class) je osnovni tvorbeni

element UML class dijagrama

1.Objekt

– Predstavlja entitet iz stvarnog svijeta ili neki koncept

– Apstrakcija nečega što ima dobro definirane granice i

smisao u sustavu

2.Razred

– Opis grupe objekata sa sličnim svojstvima

– Svaki objekt je pojedinac (instanca) jedne klase

10/50

Page 51: Labos UML Uvod Dijagrami Klasa

51 UML 2

Dijagrami klasa (Class diagrams)

Model klase

Ime klase

Atributi klase

Operacije klase

Dijagram klasa opisuje tipove objekata u sustavu i različite vrste statičkih veza

koje postoje meĎu njima, kao i ograničenja u načinu njihovog povezivanja.

Dijagrami klasa su najčešće korišćeni dijagrami UML-a.

Najbogatiji skup tehnika za modelovanje u UML-u imaju upravo dijagrami

klasa.

Porudžbina

datumNaručivanja:Date[0..1]

plaćenoUnapred:Boolean[1]

Broj:String[1]

cena:Novac

pošalji

zaključi

Primer klase

Page 52: Labos UML Uvod Dijagrami Klasa

52 UML 2

Svojstva klase (properties)

Svojstva klase predstavljaju strukturne karakteristike klase.

Svojstva klase

Načini predstavljanja

na dijagramu

Upotreba

Asocijacije

Atributi

za predstavljanje manje

važnih svojstava, kao što

su datumi ili logičke

promenljive

za eksplicitno isticanje

važnih klasa u sistemu

Većina informacija se može prikazati ravnopravno na oba navedena načina, mada

postoje i neke razlike meĎu njima. Izbor načina prikazivanja se ne zasniva na značenju

pojmova, već na tome šta želimo da naglasimo na dijagramu.

Page 53: Labos UML Uvod Dijagrami Klasa

generalizacija – donji razred proširuje NazivRazreda

generalizacija

naziv razreda

lista atributa

lista operacija

pridruživanje – odmah se generira novi razred

Primjer klase/razreda u ArgoUML alatu

pridruživanje – sam sa sobom (atribut tipa razreda)

11/50

Page 54: Labos UML Uvod Dijagrami Klasa

Paket

• UML paket (engl. package) je skup

različitih objekata

• Svrha paketa je omogućiti hijerarhijsku

organizaciju elemenata u UML dijagramu

• Može sadržavati druge pakete, objekte,

razrede, komponente, UC-ove, itd.

• U programskom kodu interpretira se kao

namespace u C++, package u Javi, …

12/50

Page 55: Labos UML Uvod Dijagrami Klasa

Java

package com.util.MojPaket;

public class A {}

Java

package com.util.MojPaket.DrugiPaket;

public class B {}

C++

namespace com {

namespace util {

namespace MojPaket {

namespace DrugiPaket {

class B {};

} /* End of namespace

com.util.MojPaket::DrugiPaket */

} /* End of namespace com.util.MojPaket */

} /* End of namespace com.util */

} /* End of namespace com */

Primjer paketa Napomena: Izvorni kod svih primjera dobiven je iz ArgoUML-a (kartica

Source Code). Kod je koristan za ilustraciju dijagrama, ali potrebno ga je

proširiti i provjeriti njegovu ispravnost u nekom od jezičnih procesora.

13/50

Page 56: Labos UML Uvod Dijagrami Klasa

56

Klase/razredi – grafička prezentacija

• Razred je predstavljen pravokutnikom s imenom.

– Grafički simbol razreda može prikazati atribute i operacije.

– Cjeloviti potpis operacije (metode) je::

[vidljivost] name([parameter-list]): returnType

• vidljivost je private ako nema oznake

Oznake za vidljivost

+ public (dostupni svima)

- private (dostupni unutar razreda)

# protected (dostupni od podrazreda)

Page 57: Labos UML Uvod Dijagrami Klasa

Višestrukost pridruživanja

• Vrh može odreĎivati višestrukost veze (engl. multiplicity)– Govori nam koliko objekata može sudjelovati u

odreĎenom odnosu

• Dozvoljene vrijednosti na bilo kojoj strani pridruživanja:– 1 = točno 1 pojedinac (podrazumijevana vrijednost)

– n1 = bilo koji točno odreĎen broj, npr. 0, 1, 3, 5, 15

– n1.. n2 = izmeĎu n1 i n2

– n1..* ili n1..n = izmeĎu n1 i više pojedinaca, neograničeno

– 0..* ili * ili n = više pojedinaca, neograničeno

17/50

Page 58: Labos UML Uvod Dijagrami Klasa

58

Pridruživanje i brojnost (višestrukost)

• Pridruživanje ili asocijacija pokazuje odnos izmeĎu dviju

klasa/razreda.

• Brojnost pokazuje broj instanci klasa/razreda.

• Simboli koji pokazuju brojnost smješteni su na svakom kraju

pridruživanja.

0 ili između 3 i 8

0 ili više

1 ili više

Page 59: Labos UML Uvod Dijagrami Klasa

Primjeri višestrukosti asocijacija

public class A1 {

public B1 myB1;

}public class B1 {

}

import java.util.Vector;

public class A2 {

public Vector myB2;

}

import java.util.Vector;

public class A3 {

public Vector myB3;

}

import java.util.Vector;

public class A4 {

public Vector myB4;

} 18/50

Page 60: Labos UML Uvod Dijagrami Klasa

60

Označavanje pridruživanja

– Svako pridruživanje može se označiti kako bi se

ekspliciralo njegovo značenje.

Page 61: Labos UML Uvod Dijagrami Klasa

61

Analiza i validacija pridruživanja

– Više (mnogo) - jedan• Jedna kompanija ima više zaposlenika.

• Jedan zaposlenik može raditi samo za jednu kompaniju.

– Ta kompanija nema podataka o radu “u fušu” (engl.

moonlighting).

• Kompanija ima nula zaposlenika.

– Npr. početna registracija, ili krovna kompanija.

• Nije moguće biti zaposlenik ako ne radiš za neku

kompaniju.

*worksFor

Employee Company1

zaposlenik

Page 62: Labos UML Uvod Dijagrami Klasa

62

Analiza i validacija pridruživanja

– Više - više• Jedan asistent može raditi za više menadžera.

• Jedan menadžer može imati više asistenata.

• Asistenti mogu biti organizirani u skupove (engl. pool).

• Menadžeri mogu imati grupu asistenata.

• Neki menadžeri mogu imati nula asistenata.

*

supervisor

*****1..*Assistant Manager

(0..* i * je ekvivalentno) (najmanje 1)

Page 63: Labos UML Uvod Dijagrami Klasa

63

Analiza i validacija pridruživanja

– Jedan - jedan• U svakoj kompaniji postoji točno jedan odbor direktora.

• Odbor direktora je odbor samo jednoj kompaniji.

• Kompanija mora uvijek imati odbor direktora.

• Odbor direktora je uvijek odbor u nekoj kompaniji.

Company BoardOfDirectors11

Page 64: Labos UML Uvod Dijagrami Klasa

64

Analiza i validacija pridruživanja

• Izbjegavaj nepotrebno jedan – jedan pridruživanje.

Izbjegavaj ovo Učini ovo

Page 65: Labos UML Uvod Dijagrami Klasa

65

Složeniji primjer pridruživanja (rezervacija leta)

– Rezervacija je uvijek samo za jednog putnika.

• Nema rezervacije za nula putnika.

• Rezervacija nikada ne uključuje više od jednog putnika..

– Putnik može imati bilo koji broj rezervacija.

• Putnik uopće ne mora imati neku rezervaciju.

• Putnik može imati više od jednu rezervaciju.

– Okvir oko ovoga dijagrama je opcija koju predviĎa UML 2.0. (nebitno za ova predavanja)

Page 66: Labos UML Uvod Dijagrami Klasa

66

Pridruženi razredi

– Ponekad se atribut koji se tiče više razreda ne može

smjestiti niti u jedan od navedenih razreda.

– Postoje dva ekvivalentna označavanja pridruženih

razreda:: Ako grade ovdje

nije moguće imati

jedan po studentu

(već samo jedan

po grupi za

predmet)

Ako grade

ovdje nije

moguće imati

jedan po

predmetu (već

samo jedan po

studentu)

Pridruženi

razred,

može imati

podrazrede

Sementički

jasnije

Jednostavnije

se čita

Page 67: Labos UML Uvod Dijagrami Klasa

67

Refleksivno pridruživanje

– Moguće je da se pridruživanje spaja na isti razred.

predmet može

imati druge

predmete kao

prerekvizite

vrlo slični predmeti se

ne mogu upisivati

Page 68: Labos UML Uvod Dijagrami Klasa

68

Smjer pridruživanja

• Pridruživanja su u osnovici bidirekcijska (u oba smjera) .

• Moguće je ograničiti smjer pridruživanja dodavanjem

strelice na jednom kraju (unidirekcijska).

(za odabrani dan pogledaj

bilješku, ali ne i obratno)

Page 69: Labos UML Uvod Dijagrami Klasa

C++

Razred Sveučilište

class Fakultet;

class Sveučilište {

public:

Fakultet *Pripadnost sveučilištu;

};

Razred Fakultet

class Student;

class Fakultet {

public:

Student *Pripadnost fakultetu;

};

Razred Student

class Fakultet;

class Student {

public:

Fakultet *Pripadnost fakultetu;

};

Java

Razred Sveučilište

public class Sveučilište {

public Fakultet Pripadnost sveučilištu;

}

Razred Fakultet

public class Fakultet {

public Student Pripadnost fakultetu;

}

Razred Student

public class Student {

public Fakultet Pripadnost fakultetu;

}

Još jedan primjer pridruživanja

16/50

Page 70: Labos UML Uvod Dijagrami Klasa

Agregacija

• Vrsta pridruživanja koja pokazuje da jedan

razred sadrži druge, tj. da je dio drugog razreda– Razred je agregiran (sadržan) u drugom razredu → oblik odnosa

podskup/nadskupC++

#ifndef Fakultet_h

#define Fakultet_h

#include <vector>

#include "Student.h"

class Fakultet {

public:

std::vector< Student* > myStudent;

};

#endif // Fakultet_h

Java

import java.util.Vector;

public class Fakultet {

public Vector myStudent;

}

Page 71: Labos UML Uvod Dijagrami Klasa

Kompozicija

• Vrsta pridruživanja slična agregaciji, ali kod

uništavanja objekta (tj. pojedinca) uništavaju se i

pojedinci razreda koji su dio tog objekta

C++

#ifndef Fakultet_h

#define Fakultet_h

#include <vector>

#include "Student.h"

class Fakultet {

public:

std::vector< Student > myStudent;

};

#endif // Fakultet_h

Java

import java.util.Vector;

public class Fakultet {

public Vector myStudent;

}

Page 72: Labos UML Uvod Dijagrami Klasa

Atributi

• Atributi (engl. attributes) razreda imaju sljedeća svojstva:

– Stupanj vidljivosti (engl. visibility)

– Naziv (engl. name)

– Vrsta ili tip (engl. type)

– Početnu vrijednost (engl. initial value)

• Dodatno:

– Promjenjivost (engl. changeability)

– Modifikator (engl. modifier)

19/50

Page 73: Labos UML Uvod Dijagrami Klasa

Stupanj vidljivosti atributa

• Moguće su četiri vrijednosti:

– Public• Atribut je dostupan svim razredima i paketima.

– Package• Atribut je dostupan svim razredima istog paketa.

– Protected• Atribut je dostupan unutar istog razreda i izvedenih

razreda.

– Private• Atribut je dostupan samo unutar istog razreda.

20/50

Page 74: Labos UML Uvod Dijagrami Klasa

Vrsta ili tip atributa

• Dozvoljeni su sljedeći UML tipovi:

– Boolean, Integer, String, UnlimitedInteger

• Dozvoljeni su i dodatni Java tipovi podataka:

– byte, char, double, float, int

– I razredi iz java.util (Collection, Date, List, Set,

SortedSet, Time, Vector …), java.lang,

java.lang.math i java.net (URL) paketa

– I vlastiti tipovi razreda i podataka u istom

dijagramu

21/50

Page 75: Labos UML Uvod Dijagrami Klasa

Promjenjivost atributa (1/2)

• addOnly

– Vrijednost atributa može se samo povećavati.

• changeable

– Vrijednost atributa može se nesmetano mijenjati. Podrazumijevana (default) postavka.

• frozen

– Vrijednost atributa (ili asocijacije) ne smije se promijeniti tijekom života (engl. lifetime) pripadajućeg objekta.

22/50

Page 76: Labos UML Uvod Dijagrami Klasa

Promjenjivost atributa (2/2)

• static

– Modifikator, vrijednost atributa ne mijenja se (konstanta) i ne ovisi o životu objekta.

• read-only

– Vrijednost atributa ne može se mijenjati izvan objekta kojemu pripada.

• Nije isto što i frozen.

– ArgoUML ne podržava direktno read-only, ali važno ga je spomenuti.

23/50

Page 77: Labos UML Uvod Dijagrami Klasa

Primjeri rada sa atributima (ArgoUML alat)

24/50

Page 78: Labos UML Uvod Dijagrami Klasa

Operacije

• Operacije (engl. operations) su procesi koje razred može izvršiti.

– Drugim riječima, to su vlastite metode i funkcije razreda

• Za njih možemo odrediti:

– Vidljivost (public,package,protected,private)

– Modifikatore (static,abstract,leaf,root,query)

– Istodobnost (sequential,guarded,concurrent)

– Parametre ili argumente

25/50

Page 79: Labos UML Uvod Dijagrami Klasa

79 UML 2

Operacije (1) (operations)

Vrste operacija:

Upiti

ne mijenjaju stanje sustava, tj.

nemaju sporedne efekte

vraćaju pročitanu vrednost iz klase

redoslijed izvršavanja im se može

mijenjati, a da se ne promijeni

ponašanje sustava

Modifikatori

mijenjaju stanje sustava

obično nemaju rezultat

Operacije su aktivnosti koje klasa može da obavi.

Nadtip

operacija

Podtip

operacija

Podtip

operacija

Podtip

operacija

metod

metoda1 metoda2 metoda3

operacija klase metod klase

Primer polimorfizma

deklaracija

procedure

tijelo

procedure

Page 80: Labos UML Uvod Dijagrami Klasa

80 UML 2

Operacije (2) (operations)

Sintaksa operacija na UML-u

vidljivost ime (lista-parametara) : tip-rezultata {opis-svojstva}

Primer operacije

+ stanjeNa (datum:Datum) : Novac

vidljivost označava da li je operacija javna (+) ili privatna (-)

ime je niz znakova

lista-parametara je lista parametara operacije

Sintaksa parametara operacije je: smer ime: tip = podrazumevana-vrednost

• ime, tip i podrazumevana-vrednost imaju isto značenje kao u sintaksi atributa

• smer pokazuje da li je parametar ulazni (in), izlazni (out), ili ulazno-izlazni (inout)

tip-rezultata ukazuje na tip rezultata operacije

opis-svojstva ukazuje na svojstva operacije (pr. query)

Obja

šnje

nje

Page 81: Labos UML Uvod Dijagrami Klasa

Primjer rada sa

operacijama

Page 82: Labos UML Uvod Dijagrami Klasa

NasljeĎivanje (1/2)

• Nasljeđivanje (engl. inheritance) je koncept

UML-a u kojemu objekt koji se nasljeĎuje je

proširen u objektu koji ga nasljeĎuje

• Oblik UML asocijacije ili veze

– Nasljedna veza izmeĎu razreda

– Jedan razred je roditelj (nadklasa) drugome

razredu (dijete ili podklasa)

Page 83: Labos UML Uvod Dijagrami Klasa

NasljeĎivanje (2/2)

• Generalizacija – omogućuje stvaranje nadklase koja

objedinjuje strukturu i ponašanje zajedničko za nekoliko

klasa

• Specijalizacija – omogućuje stvaranje podklase koja

predstavlja dodavanje novih elemenata

– Podklasa uvijek ima više ili jednak broj svojstava u odnosu na

nadklasu

– Podklasa nasljeĎuje od nadklase atribute, relacije i operacije

– Podklasa može biti proširena atributima, operacijama ili

relacijama

– Podklasa može imati svoju implementaciju operacija koje je

naslijedila

Page 84: Labos UML Uvod Dijagrami Klasa

public class Vozilo {

public int brojKotača;

}

public class Automobil extends Vozilo {

public int brojPutnika;

public int zapreminaPrtljažnika;

}

public class SportskiAutomobil extends Automobil {

public final int brojCilindara;

}

Primjer nasljeĎivanjaspecija

lizacija g

enera

lizacija

32/50

Page 85: Labos UML Uvod Dijagrami Klasa

85

Generalizacija

• Specijalizacija superrazreda u jedan ili više podrazreda.

– Generalizacijski skup je označena grupa generalizacija s

zajedničkim superrazredom.

– Oznaka (katkad nazvana diskriminator) opisuje kriterije za

specijalizaciju.

Page 86: Labos UML Uvod Dijagrami Klasa

86

Izbjegavanje nepotrebne

generalizacije (1/2)

Nepogodna hijerarhija

razreda, Trebali bi biti

instance (objekti).

Vidi slijedeću sliku.

Page 87: Labos UML Uvod Dijagrami Klasa

87

Izbjegavanje nepotrebne

generalizacije (2/2)

Slika pokazuje poboljšani dijagram razreda uz pridruženi

dijagram objekata (instanci) Razredi iz prethodnog dijagrama su

ovdje objekti (instance) jednog razreda RecordingCategory

Dijagram objekata

(razmatrat će se

kasnije)

Dijagram razreda

U dijagramu

objekata nema

oznaka brojnosti

Načini zapisivanja

Page 88: Labos UML Uvod Dijagrami Klasa

88

Rukovanje višestrukim diskriminatorima

– Kreiranje generalizacije više razine.Dvije generalizacije

koje dijele isti

superrazred.

(ovo je bolje rješenje

nego dvije odvojene

hijerarhije)

Page 89: Labos UML Uvod Dijagrami Klasa

89

Rukovanje višestrukim diskriminatorima(višestruko nasljeđivanje)

Page 90: Labos UML Uvod Dijagrami Klasa

90

Izbjegavanje da instance moraju mijenjati razred

– Instanca nikad ne treba mijenjati razred.

Studentov status se može promijeniti, pa taj objekt (instanca) mora

promijeniti razred (traži destrukciju – kreaciju novog objekta).

Jedno rješenje: uključi atribut attendanceStatus u razred

Student te ne koristiti podrazrede (ali tako se gubi mogućnost

polimorfizma - specifičnih metoda u različitim podrazredima).

Page 91: Labos UML Uvod Dijagrami Klasa

Sučelje

• Sučelje (engl. interface) je kolekcija

operacija koja specificira usluge nekog

razreda

– Sučelje definira skup operacijskih specifikacija

(tj. njihovih potpisa), ali nikada skup njihovih

implementacija

• Drugim riječima, sučelje je razred, ali bez

atributa i sve operacije imaju samo

tijelo, bez implementacije

Page 92: Labos UML Uvod Dijagrami Klasa

Primjer sučelja

public interface MojeSučelje {

public boolean nekaMetoda(int arg1);

public void josJednaMetoda(int arg1);

}

Page 93: Labos UML Uvod Dijagrami Klasa

Realizacija

• Realizacija (engl. realisation) je veza UML-a koja označava ostvarenje sučelja

• Razred realizira ili ostvaruje sučelje– Veza realizacije (strelica) je usmjerena od razreda prema

sučelju

• Realizacija je slična nasljeĎivanju samo što se kod realizacije nasljeĎuju samo operacije s parametrima, bez implementacije

• Realizacija u ArgoUML-u ima dva svojstva:– Supplier = Sučelje

– Client = Razred koji ostvaruje sučelje

Page 94: Labos UML Uvod Dijagrami Klasa

Java

public class IzvedenaKlasa implements NekoSučelje {

public int atributKlase;

public IzvedenaKlasa myIzvedenaKlasa;

public IzvedenaKlasa myIzvedenaKlasa;

public void metodaSučelja(int param) {

}

public Boolean metodaKlase(String param) {

return null;

}

}

public interface NekoSučelje {

public void metodaSučelja(int param);

}

Primjer sučelja i realizacije

38/50

Page 95: Labos UML Uvod Dijagrami Klasa

Stereotipovi

• Stereotipovi (engl. stereotypes) su

najvažniji način proširenja definicije UML-a

• Definiraju sučelja i enumeracije kao

posebne vrste razreda. Mogu se primijeniti

na pridruživanja i generalizacije.

Page 96: Labos UML Uvod Dijagrami Klasa

Enumeracije

• Enumeracije (engl. enumerations) su

oblik tipova podataka koji sadržavaju

ureĎene parove imenovanih identifikatora i

njima pridruženih vrijednosti

– Te vrijednosti nazivaju se enumerirani literali

•Koriste se za opis

diskretnih vrijednosti

Page 97: Labos UML Uvod Dijagrami Klasa

97 2

Obuhvata kamionete

i džipove, ali ne i

motocikle

Napomene i komentari

Auto

Napomene predstavljaju objašnjenja na dijagramu. Mogu biti nezavisne od

drugih elemenata dijagrama, ali mogu biti i spojene isprekidanom linijom sa

elementima dijagrama koje objašnjavaju. Kao oznaka kraja linije može se

koristiti kružić.

Komentar je tekst koji se može dodati elementu dijagrama pomoću dve crtice

ispred teksta (--).

Napomene i komentari se mogu pojaviti na svim vrstama dijagrama.

Page 98: Labos UML Uvod Dijagrami Klasa

PRIMJERI UML-A

Page 99: Labos UML Uvod Dijagrami Klasa

Primjer: Modeliranje organizacije

fakultetaNeki fakultet sastoji se od jednog ili više zavoda, a svaki zavod od jedne ili više

zavodskih grupa. Zavodsku grupu čine zaposlenici. Zaposlenici mogu raditi i u nekoliko zavodskih grupa, ali ne mogu raditi na više zavoda.

Postoje dva konkretna tipa zaposlenika: predavači i asistenti. Svaki predavač ima barem jedan kolegij koji predaje, a svaki asistent drži laboratorijske vježbe iz barem jednog kolegija. Svaki kolegij može imati jednog ili više predavača i asistenata. Asistent ima jednog predavača u funkciji mentora, a predavač može imati više asistenata. Svaki kolegij se sastoji od više predavanja i više laboratorijskih vježbi i ima svoj naziv sastoji od više redavanja i više laboratorijskih vježbi i ima svoj naziv (String).

Ukidanjem kolegija ukidaju se predavanja i laboratorijske vježbe, ali naravno, ne otpuštaju se zaposlenici koji kolegij drže. Student je zasebna kategorija u organizaciji fakulteta i u ovom modelu pretpostavite samo da sluša jedan ili više kolegija. I student i zaposlenik su osobe. Svaka osoba ima svoje ime i prezime. Dodatno, svaki zaposlenik ima svoj matični broj zaposlenika (String), a svaki student svoj JMBAG (String). Fakultet ima svoj matični broj (String) i naziv (String). Zavod ima svoj naziv (String) i broj računa (String). Naziv i broj računa zavoda nasljeĎuju i zavodske grupe, s tim da one osim toga imaju i svoj naziv grupe te dodatno, naziv glavnog laboratorija (String).

Page 100: Labos UML Uvod Dijagrami Klasa
Page 101: Labos UML Uvod Dijagrami Klasa

Zadatak 1

• Dijagramom klasa predstaviti model

fakulteta.

• Svaki student upisuje studije na jednom i

samo jednom odsjeku, a odsjek pripada

jednom i samo jednom fakultetu.

• Detaljno opisati atribute klase student.

Page 102: Labos UML Uvod Dijagrami Klasa

Zadatak 1 – rješenje

Page 103: Labos UML Uvod Dijagrami Klasa

Zadatak 2.

• Dijagramom klasa predstaviti logičku arhitekturu sistema za automatsku prijavu studenata za kurseve/predmete.

• Studenti biraju 4 primarna kursa/predmeta.

• Jedan kurs može pohaĎati maksimalno 10 studenata.

• Minimalan broj studenata za predmet je 3.

• Jedan profesor može da ponudi maksimalno 4 kursa, pri čemu više profesora mogu da ponude isti kurs.

Page 104: Labos UML Uvod Dijagrami Klasa

Zadatak 2. rješenje

Page 105: Labos UML Uvod Dijagrami Klasa

I na kraju poglavlja…

• U izradi projekta bit će vam neophodni sljedeći dijagrami:

• Dijagram klasa

• Dijagram slučajeva korištenja/Use case

• Dijagram aktivnosti

• Dijagram razmještanja/rasporeĎivanja (opcionalno)

• Za rješavanje nekih zadataka bit će poželjno koristiti i neke od preostalih dijagrama, recimo sekvencijalni

• U ovoj prezentaciji obradit će se detaljno use case i dijagrami aktivnosti