Transcript Primjer

Vježbe, ak.god. 2013/14.

1.
2.
3.
4.
5.
6.
7.
Utorak, 13:15-16:30h
26.11.2013.
03.12.2013.
10.12.2013.
17.12.2013.
07.01.2014.
14.01.2014.
21.01.2014.
Class diagram
Class diagram
Use-Case diagram
Use-Case diagram
Component diagram
Object diagram
Sequence diagram
1.
Teorijski dio
 Osnovne karakteristike dijagrama
 Tvorbeni elementi
2.
Praktični dio
 Rad u UML editoru ASTAH
3.
Zadatak
 Rad u grupama
 Rješavanje zadatka na kraju svakog poglavlja


Kratki test u Loomen-u na početku vježbi
(provjera znanja s prethodnih vježbi)
Bodovanje:
◦
◦
◦
◦
◦
Dolasci na predavanja i vježbe
Aktivnost na predavanjima
Test u Loomenu (4x)
Timski zadaci na vježbama (5x)
Ispit (predrok / redovan)




Unified Modeling Language
Jedinstveni jezik za modeliranje
Koristi grafički prikaz za izradu apstraktnog
modela sustava
Modeliranje:
◦
◦
◦
◦
Softwarea
Poslovnih procesa
Ogranizacijskih struktura
Ostalih sustava




Model  pojednostavljeni opis sustava iz
određene perspektive
Dokumentira se dijagramima
1997. godine nastao UML 1.0.
Trenutna verzija UML-a je 2.4.1. objavljena
od OMG-a (Object Modeling Group)



Prikazuje sustav pomoću klasa (razreda) i
relacija među klasama
Statički dijagram  ne uzima u obzir
vremensku komponentu, nego dio ili cijeli
sustav u određenom trenutku
Pripada skupini strukturnih UML dijagrama


Osnovni tvorbeni element dijagrama
Opis grupe objekata sa sličnim svojstvima
STUDENT
Pero Perić
Marko Marković
OBJEKTI
KLASA
Ivan Ivanković


Promatra se parkiralište
Klasa? Objekti?

Objekt  entitet iz stvarnog svijeta, ima
dobro definirane granice i smisao u sustavu
◦ Osoba, mjesto, događaj...


Objekti imaju svoje atribute (svojstva) i čine
radnje (imaju operacije/metode)
Klasa je prikaz objekta, tj. predložak na
temelju kojeg se oni kreiraju
Odrediti:
1. naziv klase

– početna slova
velikim slovom
2.
atribute
3.
operacije
– informacije o
objektu, prva riječ malim slovom,
ostatak velikim
– stvari koje objekt ili
klasa čine, prva riječ malim
slovom, ostatak velikim
NarudzbaRobe
-datum : date
-iznos : double
-kolicina : long
+izvrsi()
+zakljuci()



Primjer: Definirati klasu Student
Svaki student ima svoj broj indeksa, prezime, ime i
prosjek ocjena.
Student može prijaviti i odjaviti ispit te mu
pristupiti.



Objekti su često vezani za druge objekte 
studenti POLAŽU ispite, asistenti ODRŽAVAJU
vježbe, referenti OVJERAVAJU indekse
Odnosi su prikazani kao linije koje spajaju 2
klase čiji su objekti (instance) povezani
2 tipa odnosa među klasama:
1. PRIDRUŽIVANJE
2. PODTIP
PRIDRUŽIVANJE
PODTIP




Jednosmjerno (unidirekcionalno)
Dvosmjerno (bidirekcionalno)
Agregacija
Refleskivno
Ukoliko smjer nije naznačen, smatra se da je
veza ili nepoznata ili dvosmjerna!

Primjer dvosmjerne veze:

Veza između klasa Osoba i Knjiga 
◦ Osoba je posudila knjigu
◦ Knjiga pokazuje koje su je sve osobe posudile
Osoba
Knjiga




Veza uvijek ima 2 vrha, povezanih s 2 klase.
Vrhovi se nazivaju ULOGE.
Vrh može i ne mora imati naziv (može biti
imenica ili glagol)
Višestrukost veze  koliko objekata može
sudjelovati u odnosu između 2 klase
1
n1
n1.. n2
n1.. n
n1.. n2, n3
n..*
točno 1 pojedinac
0..* ili * ili n
više pojedinaca, neograničeno
bilo koji točno određeni broj (0, 1, 5, 23)
između n1 i n2 (5..8  5, 6, 7 ili 8)
između n1 i više pojedinaca
kombinacija (4..7,9  4, 5, 6, 7 ili 9)
n ili više pojedinaca, neograničeno (5..* 
5 ili više)

Ako višestrukost nije naznačena, smatra se
vrijednost 1 (točno 1 pojedinac)
Primjer: Veza između klase Student i Indeks

Jedan student može imati samo jedan indeks


Primjer: Veza između klase Racun i Artikl

Na računu može biti jedan ili više artikala

Nakon završetka ispitnog roka profesor svaki
put ispravlja točno 60 pismenih ispita
Profesor
Ispit
1
60



Na nekom projektu profesor mora voditi
barem pet studenata
Studenti mogu biti samo na jednom projektu
Ako to žele, studenti ne moraju prijaviti
sudjelovanje na projektu
Profesor
Student
0..1
5..*



Klasa povezana sama sa sobom.
Više pojedinaca istog razreda moraju
međusobno komunicirati
Primjer: Programsko rješenje za vođenje poslovanja
poduzeća koristi šifarnik u koji se unose skladišta i blagajne
poduzeća. Međutim, svakoj blagajni potrebno je dodijeliti
jedno skladište.
Jedna blagajna je uvijek
pridružena jednom skladištu







jedna klasa sadrži druge klase (agregirana je
u drugoj klasi)
oblik odnosa nadskup-podskup (cjelina-dio)
Nadskup  agregat
Simbol agregacije uvijek dodiruje razred
nadskup, a prazna linija podskup
Veza agregacije usmjerena od nadskupa
prema podskupu
Automobil - motor

Primjer: U nekom poduzeću postoje odjeli
nabave, prodaje, financija.. Zaposlenici su
zaposleni u tim odjelima.




slična agregaciji
uništavanjem (gašenjem, zatvaranjem)
agregata (cjeline) gase se i njegovi dijelovi.
jaki tip agregacije
promatrana klasa ne može egzistirati bez
druge klase


Primjer: Poduzeće osim svog sjedišta može
imati i nekoliko poslovnica
Zatvaranjem poduzeća, zatvaraju se i sve
poslovnice. Veza 0..*??



svojstva klasa
navode se u pravokutniku ispod naziva klase
imaju svoja svojstva:
◦ NAZIV – prva riječ malim slovom, početno slovo
ostalih riječi velikim (brojIndeksa)
◦ VIDLJIVOST




javno + (public) – dostupan svim klasama i paketima
privatno – (private) – dostupan unutar iste klase
zaštićeno # (protected) – unutar iste i izvedenih klasa
paket ~ (package) – dostupan svim klasama istog
paketa
◦ TIP
 UML tipovi (boolean, integer, string, unlimitedInteger)
 Java tipovi (byte, char, double, float, int)
◦ POČETNA VRIJEDNOST – inicijalna vrijednost dodana
atributima (klasa automobil  atribut brojVrata 
vrijednost 4)

Pravilo pisanja atributa:
[vidljivost] imeAtributa : tipAtributa

Tipovi atributa navode se pokraj imena,
nakon znaka „ : „
◦ STRING – tekstualni tip, za prikaz znakova
 imeStudenta : String = „Marko”
◦ INTEGER – za prikaz cijelih brojeva
 brojIndeksa : Integer = 34952
◦ DOUBLE – za prikaz decimalnih brojeva
 prosjekOcjena : Double = 3,7
◦ BOOLEAN – sadržava 2 vrijednosti: true ili false
 prosaoIspit : Boolean = true




Primjer:
U bazi podataka fakulteta nalaze se podaci o
studentima.
Svaki student ima broj indeksa, ime, prezime,
OIB te odabrani smjer
Broj indeksa je privatni podatak, ime, prezime
i smjer su javni, OIB je zaštićeni



procesi koje klasa može izvršiti
navode se u pravokutniku ispod atributa
svojstva operacija:
◦ vidljivost (isto kao i kod atributa)
◦ ulazni i izlazni parametri – svojstveni samo za
operacije.

Pravilo pisanja operacija:
[vidljivost] imeOperacije (parametri)



Primjer:
Prikazati klasu Blagajnik koja sadrži atribute
Šifra, Ime, Prezime, OIB.
Blagajnik priprema robu i izrađuje račun



Primjer:
Promatraju se dobavljači nekog poduzeća.
Dobavljači sadržavaju sljedeće podatke:
◦
◦
◦
◦
◦

OIB (zaštićeni podatak)
Naziv (javni podatak)
Ukupan iznos nabave (javni podatak)
Kontakt osobu (javni podatak)
Telefon (privatni podatak)
Dobavljači obavljaju sljedeće operacije:
◦ Dobavljaju robu
◦ Ispostavljaju račune


temeljni koncept OO programiranja
između različitih klasa često postoje sličnosti
◦ mogu dijeliti iste atribute i/ili iste metode
Nepotrebno ponavljanje programskog koda 
NASLJEĐIVANJE

klasa A nasljeđuje od B
◦ A podklasa klase B
◦ B nadklasa klase A



„Čisto nasljeđivanje”  klasa A nasljeđuje SVE
atribute i metode od klase B
Jedna klasa je „roditelj” jednoj ili više drugih
klasa.
Veza  od podklase prema nadklasi






primjer:
Postoji mnogo sličnosti između klasa Student
i Profesor
Imaju iste atribute i obavljaju iste metode
Zajednički atributi su ime, prezime i OIB
Zajednička metoda je kupi pokaz za tramvaj
Kreira se nova klasa Osoba od koje nasljeđuju
klase Student i Profesor




Klasa Osoba glavna klasa. Apstraktna je jer
postoji samo zbog drugih klasa koje
nasljeđuju od nje (kosim slovima)
Student i Profesor imaju iste atribute i
metode koji se pišu u klasi Osoba
Nasljeđivanjem se smanjila količina
potrebnog posla
Atributi i metode se implementiraju samo
jednom, u klasi Osoba





jedna klasa ovisi o drugoj klasi
promjena u jednom entitetu utječe na drugi
neovisni entitet  isporučitelj
ovisni entitet  klijent
jednosmjerna veza






Primjer:
U poduzeću manager ima najvišu funkciju
Direktor prodaje nadređen je zaposlenicima u
prodaji
Komercijalist obavlja poslove prodaje
Svi su oni zaposlenici poduzeća
Manager smije promicati i davati povišice
svim zaposlenicima











Neki 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
Postoje dva konkretna tipa zaposlenika: predavači i asistenti.
Svaki predavač ima barem jedan kolegij koji predaje, a svaki
asistent drži 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 vježbi i ima svoj
naziv (String).
Ukidanjem kolegija ukidaju se predavanja i vježbe
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). Zavodske grupe imaju svoj naziv
grupe te naziv glavnog laboratorija (String).












Prepostavite da neka vojna jedinica može biti brigada ili satnija.
Svaka brigada sadrži jednu ili više satnija.
Na čelu brigade nalazi se brigadir, a na čelu satnije satnik. Brigadir i
satnik su vojno osoblje, kao i vojnik.
Brigadir smije odlikovati i promicati sve članove vojnog osoblja (osim
samog sebe).
Svaki član vojnog osoblja ima svoje zadatke. Zadatak ima svoj redni broj
(int), naziv (String) i rok izvršenja (Date).
Postoje dva tipa zadataka: edukacijski i akcijski. Edukacijske zadatke
smiju obavljati samo brigadir i satnik. Oni mogu imati najviše jedan
edukacijski zadatak.
Svaki edukacijski zadatak drži samo jedan brigadir ili satnik, ali jedan
edukacijski zadatak može istodobno imati brigadira i satnika.
Svaki član vojnog osoblja može imati jedan ili više akcijskih poslova, a
jedan akcijski posao može obavljati više različitih članova vojnog osoblja.
Svaki član vojnog osoblja nosi po jedan komad oružja i vojnu odoru.
Vojna odora je prilagođena svakom pojedinom članu vojnog osoblja i ako
iz bilo kojeg razloga član vojnog osoblja napusti vojnu jedinicu, vojna
odora se uništava.
Oružje nosi svaki član vojnog osoblja, ali ono ostaje na raspolaganju čak i
ako pojedinac napusti vojnu jedinicu.
Svaki član vojnog osoblja ima svoje ime i prezime (String) i broj vojne
isprave (int). Svaka brigada ima svoju oznaku (String) i broj vojnog osoblja
(int). Svaki komad oružja ima svoj broj (int) i naziv (String). Svaka odora
ima svoj kontrolni broj (int).










Neko poduzeće sastoji se od jednog ili više odjela, a na čelu
svakog odjela je direktor odjela.
Svaki odjel može imati više pododjela.
Svaki pododjel ima svog direktora pododjela i radnike.
Postoje dva tipa zaposlenika: direktori i radnici.
Nadalje, direktori mogu biti direktori odjela ili direktori pododjela.
Svaki zaposlenik može raditi na više poslova, a svaki posao može
raditi nijedan ili više zaposlenika.
Konkretni posao može biti administrativni ili razvojni.
Svaki posao ima svoj naziv (String) i rok dovršenja (Date). Ako je
posao razvojni, onda on sadrži i matični broj nekog drugog
poduzeća (String) za koje se takav posao obavlja.
Direktor odjela može zaposliti ili otpuštati sve direktore pododjela
i sve radnike u pododjelima (oni ovise o njemu). Direktor
pododjela ne može otpuštati niti zapošljavati radnika, ali ima
opciju da upita direktora odjela ako se ukaže potreba za
otpuštanjem ili zapošljavanjem radnika.
Poduzeće ima svoj matični broj (String), broj računa (String) i
ukupan broj zaposlenika (int). Svaki odjel ima svoj naziv i adresu,
a svaki pododjel, osim naslijeđenog naziva i adrese odjela, ima i
vlastiti naziv. Svaki zaposlenik ima svoj matični broj u poduzeću i
ime i prezime.




Prikazuju ponašanje sustava na način vidljiv
korisniku sustava, ne opisuju kako je
funkcionalnost izvedena unutar sustava
Statički UML dijagram
Kreira se u ranim fazama oblikovanje
(najčešće kao prvi dijagram)
Prikaz veze između:
◦ 2 slučaja korištenja
◦ Slučaja korištenja i sudionika




Slučajevi korištenja predstavljaju vanjski
pogled na sustav
Ne postoje korelacije između slučajeva
korištenja i klasa unutar sustava
Pozornost – ne na dijagram i kompleksnost
dijagrama nego na opise dijelova dijagrama
Grubi prikaz što sustav radi, a ne kako radi


Scenarij – slijed koraka koji opisuju
interakciju između korisnika i sustava
Primjer scenarija: Web trgovina
Kupac pretražuje web katalog proizvoda i dodaje
željene proizvode u košaricu. U trenutku kupnje,
kupac odabire mjesto dostave te daje podatke o
kreditnoj kartici i potvrđuje prodaju. Sustav
provjerava autorizaciju kreditne kartice, potvrđuje
prodaju i šalje e-mail potvrde.
Jedina moguća situacija?
 Autorizacija kreditne kartice – neuspješna 
poseban scenarij
 „obični kupac” koji ne mora dati adresu
dostave i informacije o kartici  poseban
scenarij
Svi scenariji su različiti, ali i slični. U čemu?
KORISNIK IMA ISTI CILJ – KUPITI PROIZVOD
 Korisnik ne mora uvijek uspjeti, ali cilj ostaje
 Korisnikov cilj je ključ za use-case!


Slučaj korištenja  apstraktni zadatak
kojeg izvode sudionici
◦ Skup scenarija povezanih zajedničkim ciljem
korisnika

Sudionik  vanjski entitet direktno
povezan sa sustavom, ali nije dio sustava
◦ Inicijator svih akcija
◦ Imaju imena koja ne bi smjela biti povezana s
organizacijom poduzeća
◦ Živo biće ili neki drugi sustav (npr. računalo)
1.
2.
3.
4.
Odabir jednog od mogućih scenarija kao
glavnog (uspješnog) scenarija
Glavni (uspješni) scenarij je prikaz niza
koraka
Uzimaju se ostali scenariji i navode se kao
alternative, opisujućih ih kao varijacije
glavnog uspješnog scenarija
Alternative mogu biti uspjesi ili neuspjesi
Glavni scenarij:
1. Kupac pregledava katalog i odabire proizvode
2. Kupac potvrđuje proizvode
3. Kupac upisuje informacije o dostavi (npr. idući
dan ili za 3 dana)
4. Sustav prikazuje punu cijenu sa dostavom
5. Kupac popunjava informacije o kred. kartici
6. Sustav autorizira kupnju
7. Sustav potvrđuje prodaju
8. Sustav šalje e-mail potvrde kupcu


Alternative:
◦ 3a: Kupac je „običan” kupac
1. Sustav prikazuje uobičajeni način dostave, cijenu i
informacije o kupnji
2. Kupac to može prihvatiti ili odbiti, kreće na korak 6
◦ 6a: Sustav nije uspio autorizirati kreditnu karticu
1. Kupac može ponovno unijeti informacije o kreditnoj
kartici ili odustati od kupnje
Glavni scenarij:
1. Klijent ubacuje karticu u bankomat
2. Sustav traži PIN
3. Klijent upisuje PIN
4. Klijent potvrđuje unos tipkom Enter
5. Sustav provjerava valjanost PIN-a
6. Kartica autorizirana, sustav traži da klijent
unese željeni iznos
7. Klijent unosi iznos i potvrđuje ga
8. Sustav isplaćuje novac klijentu


Alternative:
◦ 2a: Klijent poništava transakciju klikom na Cancel
1. Sustav vraća karticu klijentu
◦ 5a: Klijent unosi pogrešan PIN
1. Sustav javlja grešku i traži ponovni unos
2. Ukoliko klijent 3x zaredom unese krivi PIN sustav
poništava cijelu transakciju



Svaki use-case ima primarnog sudionika
Primarni sudionik – sudionik s ciljem kojeg
slučaj korištenja pokušava provesti i obično je
(ali ne uvijek) inicijator use-casea
Postoje i drugi sudionici s kojima sustav
komunicira dok se izvodi use-case 
sekundarni sudionici



Svaki korak u slučaju korištenja je element
interakcije između sudionika i sustava
Svaki korak bi trebao biti jednostavna izjava i
jasno pokazati tko pokreće koji korak
Korak pokazuje namjeru sudionika


Veza između sudionika i slučaja korištenja
prikazuje se ravnom linijom bez strelica
Može biti:
◦ Između sudionika i slučaja korištenja
◦ Dva ili više slučaja korištenja
◦ Dva ili više sudionika
Pridruživanje
(asocijacija)
Generalizacija
Uključivanje
Proširenje



Sudionici se povezuju sa slučajevima korištenja
Moguće koristiti i višestrukosti
Klijent može izraditi najviše 1 narudžbu, dok se u
istom trenutku može odvijati 0 ili više narudžbi
različitih klijenata

Povezuju se:
◦ 2 sudionika – specifičniji sudionik preuzima sve
uloge apstraktnijeg
◦ 2 SK – specifičniji proširuje funkcionalnosti
apstraktnijeg

Povezuju se 2 SK na način da 1 slučaj u tijeku
svog izvođenja u potpunosti izvede uključeni
SK


Kaže se da prvi use-case uključuje (includes)
drugog
Uključeni slučajevi korištenja koriste se:
◦ za kompleksne korake radi preglednosti glavnog
scenarija
◦ za korake koji se ponavljaju u nekoliko slučajeva
korištenja


Npr.
„Otprema robe” uključuje „ažuriranje stanja
na skladištu”




Povezuju se 2 SK pri čemu jedan proširuje
funkcionalnost drugog ako je zadovoljen
određen uvjet u točki proširenja
„detaljniji” use-case
Jedan use-case dodaje funkcionalnosti drugom
use-caseu pod određenim okolnostima
Npr. Login use-case tipične Web stranice
uključuje Registraciju novog korisnika – ali
samo ako korisnik već nema račun


Jedan slučaj korištenja je osnovni, drugi je
proširujući
Veza uvijek ide od proširujućeg prema
osnovnom


Kod veze uključivanja osnovni slučaj
korištenja ne može postojati bez uključenog
Kod veze proširenja moguće je ukloniti
prošireni slučaj korištenja, odnosno osnovni
slučaj korištenja može se izvoditi bez
proširenog

Funkcionalnost blagajne u trgovačkom centru





Klijent može zatražiti otvaranje jednog računa,
podići novac s računa te zatražiti zatvaranje
računa
Osobni bankar mu ove akcije mora omogućiti ako
su osobni dokumenti u redu (klijent ih daje na
provjeru)
Osobni bankar također može podnijeti
upravitelju zahtjev za povećanje svoje plaće
Pretpostavka je da postoje i drugi zaposlenici
osim osobnih bankara koji mogu zatražiti
povećanje plaće
Dvojica upravitelja razmatraju povišenja plaća i
eventualno podižu plaću



Administrator sustava može konfigurirati sustav
(upis svih raspoloživih soba, parkirnih mjesta i
cjenika)
Korisnici preko interneta mogu pretražiti
hotelsku ponudu i napraviti rezervaciju sobe.
Prilikom rezervacije mogu opcionalno rezervirati
parkirno mjesto, dokupiti doručak, polupansion
ili puni pansion
Recepcioner hotela može izdati sobu i napraviti
naplatu. Kod izdavanja sobe provjerava
rezervaciju i programira karticu za otvaranje
sobe. Prilikom naplate izdaje račun i naznačuje
da soba postaje slobodna






Korisnici mogu preko interneta napraviti i otkazati rezervaciju
vozila. Kod stvaranja rezervacije moraju unijeti broj kred
kartice
Kod stvaranja rezervacije mogu prema želji i raspoloživim
resursima napraviti i rezervaciju za GPS, dječju sjedalicu,
krovne nosače
Kad korisnici dođu u poslovnicu po auto, zaposlenik
provjerava rezervaciju
Zaposlenik ispisuje obrazac o preuzimanju koji se skenira i
unosi u računalo. Nakon toga odvodi klijenta do auta i
predaje mu ključeve i prometnu dozvolu
Kod povratka automobila korisnik dolazi u poslovnicu,
predaje obrazac o preuzimanju, prometnu dozvolu i ključeve
Zaposlenik odlazi s korisnikom do auta, provjerava stanje
auta i količinu goriva. Zatim generira račun i odobrava
terećenje kreditne kartice









Potrebno je izraditi use-case dijagram za prodaju
karata na autobusnom kolodvoru
Sustav koriste blagajnici i putnici
Blagajnik prodaje kartu putniku
Prodaja karte uključuje odabir relacije i naplatu
Naplata se može izvršiti u gotovini ili putem kartice
U slučaju da se naplata vrši putem kartice u naplati
sudjeluje putnik utipkavanjem PIN-a
Opcionalno kod prodaje karte blagajnik može izdati
R1 račun
Uz prodaju karata blagajnik može napraviti i
rezervaciju karte
Rezervaciju karte može napraviti i putnik samostalno
preko telefonskog automata





Objekt  instanca klase
Strukturni UML dijagram
Prikazuju strukturu sustava u nekom trenutku
Prikaz može biti djelomičan ili cjelovit
Generiraju se iz dijagrama klasa
Objekt : Klasa
atribut1 : vrijed.
atribut2 : vrijed.
atribut3 : vrijed.
Naziv objekta
(piše se
podcrtano)
Atributi
vrijednosti)
(samo naziv i





Često se naziva dijagram instanci
Objekti sustava imaju različite vrijednosti
atributa koje se prikazuju dijagramom
objekata
Prikazuju se samo atributi po kojima se
pojedinci unutar dijagrama međusobno
razlikuju (specifični)
Pojedinci se razlikuju po barem jednom
atributu
Ne mogu postojati dva pojedinca s istim svim
atributima


1.
2.
Klasa Osoba ima atribute: šifra (int), ime
(string), prezime (string) i OIB (int). Šifra je
zaštićena, ime, prezime i OIB su javni podaci.
Izraditi 3 pojedinca navedene klase s
proizvoljnim vrijednostima atributa
Definirati klasu Osoba
Definirati 3 objekta klase Osoba




Najčešća veza  dvosmjerna
Moguća i kompozicija
Ako su dvije klase povezane nasljeđivanjem,
veza između njihovih objekata bit će
dvosmjerna
Višestrukost veze je uvijek 1
1.
2.
3.
Odabiru se klase čiji se objekti prikazuju.
Najčešće su to najvažnije klase za ispravno
funkcioniranje sustava.
Unos proizvoljnih vrijednosti u objekte, ali
pazimo da one ispravno demonstriraju
vrijednosti koje će atributi imati tijekom
rada sustava.
Povezivanje objekata, označavanje veze
gdje je to potrebno

Student (ime, prezime, broj indeksa, OIB) u
zimskom ispitnom roku polaže 3 ispita

Pojedinci klase koji nasljeđuju druge klase
automatski nasljeđuju i sve atribute klase
roditelja











neko poduzeće sastoji se od 3 poslovnice
na čelu svake poslovnice nalazi se voditelj
u poslovnicama rade 3 vrste zaposlenika: voditelj (Marko Jurić),
4 komercijalista (Ivan Šarić, Pero Katić, Domagoj Ivić, Josip
Radić) i tajnica (Ana Tadić)
komercijalisti izdaju račune kupcima
računi mogu biti veleprodajni i maloprodajni
voditelj poslovnice može zaposliti ili otpustiti sve radnike koji
ovise o njemu
poduzeće ima svoj naziv, adresu, mjesto, OIB, matični broj i
broj žiroračuna
poslovnice imaju svoju šifru, naziv, adresu i mjesto
svaki zaposlenik ima svoj JMBG, ime i prezime
Voditelj još ima atribut „broj mobitela”, a komercijalist „ukupna
prodaja”
Potrebno je kreirati class dijagram, a potom i dijagram
objekata


Daje naglasak na vremenskom redoslijedu
kojim se odvija interakcija sudionika
Prikazuje slijed događaja među objektima ili
među sudionicima



Ako su use-case dijagrami prethodno
definirani, sekvencijski dijagram je njihova
realizcija
Pokazuje kronološki redoslijed događaja i
operacija
Definiraju se:
◦ Objekti (sudionici)
◦ Veze
◦ Poruke
Naziv sudionika
Sudionik
Životna linija sudionika
Naziv sudionika







Potrebno je modelirati otvaranje računa klijenta u
banci sekvencijskim dijagramom.
Klijent najprije zatraži otvaranje novog računa.
Osobnom bankaru je za akciju otvaranja računa
potreban identifikacijski dokument klijenta. Također,
za tu akciju treba naplatiti iznos od 50 kuna.
Osobni bankar zato najprije zatraži od klijenta
identifikacijski dokument i 50 kuna.
U slučaju da klijent nema dokument ili 50 kuna,
međudjelovanje se obustavlja i klijent odlazi.
Inače, klijent predaje dokument i novac, a osobni
bankar otvara račun u bazi podataka.
Čim je račun otvoren, osobni bankar to potvrđuje
klijentu i time je međudjelovanje završeno.
1. Pronaći sudionike u interakciji
◦ Klijent, osobni bankar, baza podataka (pasivni
sudionik)
Klijent
Osobni
bankar
Baza
podataka
2. Analizirati rečenice po redu, uvijek tražeći
prvu sljedeću poruku između 2 sudionika
„Klijent najprije zatraži otvaranje novog
računa”


Sa životne linije klijenta šalje se poruka
prema osobnom bankaru
Sadrži praznu listu argumenata
Klijent
Osobni
bankar
Baza
podataka
zatrazi_otvaranje_racuna()




Poruka između klijenta i bankara je sinkrona.
Pošiljatelj uvijek čeka na rezultat!
Klijent će čekati na odgovor bankara
Ako nije jasno naveden tip poruke, pretpostavlja
se sinkrona poruka
Označava se punom strelicom na vrhu
*[uvjet] naziv_poruke (parametri)
•
•
Znak * označava iteraciju: poruka se šalje
dok god je uvjet ispunjen
Ako nema znaka *, poruka se šalje samo
jednom ukoliko je ispunjen uvjet



„Osobnom bankaru je za akciju otvaranja
računa potreban identifikacijski dokument
klijenta. Također za tu akciju treba naplatiti
iznos od 50 kn. Osobni bankar zato najprije
zatraži od klijenta ID i 50 kn.”
Šalje se povratna poruka (Bankarklijent).
Crta se isprekidanom linijom
Crta se nakon sinkrone poruke
Osobni
bankar
Klijent
zatrazi_otvaranje_racuna()
zatrazi_id_i_50kn()
AKTIVACIJA
Baza
podataka


„U slučaju da klijent nema dokument ili 50
kuna, međudjelovanje se obustavlja i klijent
odlazi. Inače, klijent predaje dokument i
novac...”
UVJETI: da klijent ima ID i 50 kn. Tek tada mu
bankar smije otvoriti račun
Osobni
bankar
Klijent
zatrazi_otvaranje_racuna()
zatrazi_id_i_50kn()
[ima_id && ima_50kn] predaj (id, 50kn)
UVJETI
Baza
podataka

... a osobni bankar otvara račun u bazi
podataka. Čim je račun otvoren osobni
bankar to potvrđuje klijentu i time je
međudjelovanje završeno.“
Osobni
bankar
Klijent
Baza
podataka
zatrazi_otvaranje_racuna()
zatrazi_id_i_50kn()
[ima_id && ima_50kn] predaj (id, 50kn)
otvori_racun()
racun_otvoren
potvrda_racun_otvoren






potrebno je modelirati sekvencijskim dijagramom
kupovinu čokolade u trgovini
kupac sa police trgovine odabire željenu
čokoladu po cijeni od 7,50 kn
sa odabranim proizvodom dolazi na blagajnu,
gdje blagajnik na kasi otkucava barcode sa
proizvoda, a iz baze podataka se prikazuje cijena
blagajnik od kupca traži potvrdu da neće ništa
više kupiti te otkucava račun
nakon ispostavljanja računa kupcu, od njega traži
iznos od 7,50 kn
kupac predaje novac, a blagajnik vraća eventualni
ostatak




Prikazuju funkcionalnost softverskog sustava
iz perspektive unutrašnjosti sustava
Ne prikazuju niti sudionike niti vanjsko
sučelje prema krajnjim korisnicima
Prikazuju radni tok aktivnosti koje se
obavljaju u sustavu korak po korak
Naglasak na jednostavnosti i poslovnim
operacijama koje se odvijaju slijedno, jedna
za drugom
1.
Početno i konačno stanje
2.
Aktivnost
Aktivnost
3.
Prijelaz između aktivnosti
4.
Odluka (grananje)
5.
Račvanje (fork) i skupljanje (join)
Aktivnost2
Aktivnost
Aktivnost3
6.
Signal (događaj)
◦ Šaljući signal
◦ Primajući signal
◦ Vremenski signal


Signali pokazuju da na neku aktivnost djeluju
određeni događaji iz vanjskog procesa
Takva aktivnost konstantno „sluša” signale, a
dijagram definira kako aktivnost reagira





Odjel prodaje nekog poduzeća zaprima
narudžbu kupca
Prvi korak je ispunjavanje narudžbenice i
slanje računa kupcu
Prilikom ispunjavanja narudžbenice kupac
odabire način dostave koji može biti noćni
(prioritetni) ili regularni
Nakon nekog vremena od slanja računa,
poduzeće zaprima uplatu kupca
Zaprimanjem uplate i slanjem robe narudžba
se završava
Početno stanje
Račvanje
Aktivnost
Odluka
Tijek (prijelaz)
Spajanje
Skupljanje
Konačno stanje

Kod aktivnosti koje se odvijaju paralelno nije
bitan redoslijed odvijanja aktivnosti
◦ Svejedno je hoće li se prvo ispuniti narudžbenica, poslati
račun, dostaviti roba pa primiti uplata ili će se poslati
račun, primiti uplata, ispuniti narudžbenica i tek na kraju
dostaviti



Paralelne aktivnosti negdje moraju završiti
Iz tog razloga se koristi skupljanje (nije moguće
završiti narudžbu dok roba nije dostavljena)
Odlazni tok može se pokrenuti nakon što su svi
dolazni tokovi dosegli element „skupljanje”




Uvjetna ponašanja definiraju se odlukama ili
spajanjima
ODLUKA – jedan ulazni tok, više izlaznih
SPAJANJE – više ulaznih tokova, jedan izlazni
Spajanje označava kraj uvjetnog ponašanja
započetog odlukom


Aktivnosti raspoređene u vertikalne ili
horizontalne „staze”, razgraničene linijama
Jedina svrha - organizacijska








Kupac zove pizzeriu i naručuje pizzu
Konobar zapisuje narudžbu od kupca
U isto vrijeme narudžbu šalje u kuhinju i
priprema račun
Kuhar zaprima narudžbu i počinje s pravljenjem
tijesta
Na tijesto stavlja sve potrebne sastojke. Ukoliko
nema sve sastojke odlazi u skladište po ono što
mu nedostaje
Na kraju pizzu ubacuje u peć
Nakon 15 min pizza je pečena
Dostavljač preuzima pizzu i račun i nosi ju kupcu