1 Oblikovanje i implementacija IS-aVježbe, ak.god. 2014/15.
2 Terminski plan vježbi Petak, 11:15-13:00h 05.12.2014. Class diagramUse-Case diagram Activity diagram Object diagram Activity diagram Seminarski radovi
3 Vježbe Teorijski dio Praktični dio ZadatakOsnovne karakteristike dijagrama Tvorbeni elementi Praktični dio Rad u UML editoru ASTAH Zadatak Rad u grupama Rješavanje zadatka na kraju svakog poglavlja
4 UML Dizajniranje poslovnih sustava – SLOŽENO!Problemi u interpretaciji dizajna Unified Modeling Language Jedinstveni jezik za modeliranje Koristi grafički prikaz za izradu apstraktnog modela sustava
5 UML Model pojednostavljeni opis sustava iz određene perspektiveDokumentira se dijagramima Notacije – elementi koji čine model Semantika – opis što neka notacija znači 1997. godine nastao UML 1.0. Trenutna verzija UML-a je
6 Dijagrami
7 Dijagram klasa 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
8 KLASA STUDENT KLASA OBJEKTI Osnovni tvorbeni element dijagramaOpis grupe objekata sa sličnim svojstvima STUDENT KLASA Pero Perić Marko Marković Ivan Ivanković OBJEKTI
9 KLASA 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 Apstrakcija – odbacivanje nevažnih detalja unutar određenog konteksta
10 KLASA Promatra se parkiralište Klasa? Objekti?
11 KLASA Odrediti: naziv klase – početna slova velikim slovomatribute – informacije o objektu, prva riječ malim slovom, ostatak velikim operacije – stvari koje objekt ili klasa čine, prva riječ malim slovom, ostatak velikim NarudzbaRobe -datum : date -iznos : double -kolicina : long +izvrsi() +zakljuci() Opcionalno!
12 ATRIBUTI svojstva klasa navode se u srednjem dijelu elementa klaseimaju svoja svojstva: NAZIV – prva riječ malim slovom, početno slovo ostalih riječi velikim (brojIndeksa), s tim da se riječi ne odvajaju razmakom. Paziti na naziv atributa! VIDLJIVOST javno + (public) privatno – (private) lase zaštićeno # (protected) paket ~ (package)
13 [vidljivost] imeAtributa : tipAtributaATRIBUTI 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
14 ATRIBUTI 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
15 ATRIBUTI 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
16 Vidljivost JAVNO (+) Najdostupnije obilježjeAtributi/operacije izravno dostupni bilo kojoj drugoj klasi
17 Vidljivost ZAŠTIĆENO (#)Atributima/operacijama može se pristupiti metodama koje su dio te klase i metodama koje su deklarirane u bilo kojoj klasi koja nasljeđuje od promatrane klase
18 Vidljivost PAKET (~) Atributi/operacije dostupni samo klasama unutar istog paketa
19 Vidljivost PRIVATNO (-)Atributi/operacije dostupni samo onoj klasi koja sadrži taj privatni element
20 [vidljivost] imeOperacije (parametri)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)
21 OPERACIJE Primjer: Prikazati klasu Blagajnik koja sadrži atribute Šifra, Ime, Prezime, OIB. Blagajnik priprema robu i izrađuje račun
22 Primjer: atributi i operacijePromatraju 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
23 Primjer: Definirati klasu StudentSvaki student ima svoj broj indeksa, prezime, ime i prosjek ocjena. Student može prijaviti i odjaviti ispit te mu pristupiti.
24 Odnosi među klasama Objekti klase su često vezani za druge objekte studenti POLAŽU ispite, asistenti ODRŽAVAJU vježbe, referenti OVJERAVAJU indekse Veze između klasa razlikuju se po jačini veze Dvije klase snažno povezane jedna s drugom blisko povezane
25 Ovisnost Klasa mora imati saznanja o drugoj klasi kako bi mogla koristiti objekte te klase Najslabija veza promjena u jednom entitetu utječe na drugi jednosmjerna veza
26 Ovisnost Primjer: U poduzeću manager ima najvišu funkcijuDirektor 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
27 Ovisnost
28 Pridruživanje (asocijacija)Ukoliko klasa čini neku radnju s objektom druge klase Jednosmjerno (unidirekcionalno) Dvosmjerno (bidirekcionalno) Refleskivno Ukoliko smjer nije naznačen, smatra se da je veza ili nepoznata ili dvosmjerna!
29 Pridruživanje - dvosmjernoPrimjer dvosmjerne veze: Veza između klasa Osoba i Knjiga Osoba je posudila knjigu Knjiga pokazuje koje su je sve osobe posudile Osoba Knjiga
30 Pridruživanje - dvosmjernoVeza 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
31 Višestrukost veze 1 n1 n1.. n2 n1.. n n1.. n2, n3 n..*točno 1 pojedinac n1 bilo koji točno određeni broj (0, 1, 5, 23) n1.. n2 između n1 i n2 (5..8 5, 6, 7 ili 8) n1.. n između n1 i više pojedinaca n1.. n2, n3 kombinacija (4..7,9 4, 5, 6, 7 ili 9) n..* n ili više pojedinaca, neograničeno (5..* 5 ili više) 0..* ili * ili n više pojedinaca, neograničeno
32 Višestrukost 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
33 Višestrukost Primjer: Veza između klase Racun i ArtiklNa računu može biti jedan ili više artikala
34 Višestrukost Nakon završetka ispitnog roka profesor svaki put ispravlja točno 60 pismenih ispita Profesor Ispit 1 60
35 Višestrukost 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..*
36 Pridruživanje - refleksivnoKlasa 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
37 Agregacija jedna klasa sadrži druge klase (agregirana je u drugoj klasi) Snažnija verzija asocijacije oblik odnosa nadskup-podskup (cjelina-dio) Simbol agregacije uvijek dodiruje razred nadskup, a prazna linija podskup Automobil - motor
38 Agregacija Primjer: U nekom poduzeću postoje odjeli nabave, prodaje, financija.. Zaposlenici su zaposleni u tim odjelima.
39 Kompozicija slična agregacijiuništavanjem (gašenjem, zatvaranjem) agregata (cjeline) gase se i njegovi dijelovi. jaki tip agregacije promatrana klasa ne može egzistirati bez druge klase
40 Kompozicija Primjer: Poduzeće osim svog sjedišta može imati i nekoliko poslovnica Zatvaranjem poduzeća, zatvaraju se i sve poslovnice. Veza 0..*??
41 Ponavljanje Vrsta veze na slici: Kompozicija Ovisnost AgregacijaAsocijacija
42 Ponavljanje Vrsta veze na slici: Kompozicija Ovisnost AgregacijaAsocijacija
43 Ponavljanje Kako se zove navedena vrsta pridruživanja: OvisnoRefleksivno Generalno Samostalno
44 Ponavljanje Koji atribut je ispravno napisan?UkupanIznosRacuna : double UkupanIznosRacuna : int ukupan iznos : double ukupanIznos : double
45 Ponavljanje Strelicom je označeno? NarudzbaRobe -datum : date-iznos : double -kolicina : long operacije nasljeđivanje atributi notacija +izvrsi() +zakljuci()
46 Ponavljanje Za atribut pod nazivom „uSustavuPdv”, koji označava je li poslovni subjekt u sustavu PDV-a ili nije, koristit će se sljedeći tip atributa: double int boolean string
47 Ponavljanje Ako se uništavanjem neke nadklase uništavaju i njezine podklase koristi se – koja vrsta zavisnosti? kompozicija generalizacija agregacija asocijacija
48 Nepotrebno ponavljanje programskog koda NASLJEĐIVANJEtemeljni 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
49 NASLJEĐIVANJE klasa A nasljeđuje od BA 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 „sadrži” vs. „je vrsta”
50 NASLJEĐIVANJE 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
51 NASLJEĐIVANJE
52 Klasa Osoba glavna klasaKlasa 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
53 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).
54 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).
55 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.
56 Dijagram objekata Objekt instanca klase Strukturni UML dijagramPrikazuju strukturu sustava u nekom trenutku Prikaz može biti djelomičan ili cjelovit Generiraju se iz dijagrama klasa Objekt : Klasa Naziv objekta (piše se podcrtano) atribut1 : vrijed. atribut2 : vrijed. atribut3 : vrijed. Atributi (samo naziv i vrijednosti)
57 Često se naziva dijagram instanciObjekti 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
58 Primjer 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
59
60 Veze Najčešća veza dvosmjerna Moguća i kompozicijaAko su dvije klase povezane nasljeđivanjem, veza između njihovih objekata bit će dvosmjerna Višestrukost veze je uvijek 1
61 Izrada dijagrama 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
62 Primjer Student (ime, prezime, broj indeksa, OIB) u zimskom ispitnom roku polaže 3 ispita
63 Nasljeđivanje Pojedinci klase koji nasljeđuju druge klase automatski nasljeđuju i sve atribute klase roditelja
64 Primjer
65 Zadatak neko poduzeće sastoji se od 2 poslovnicena čelu svake poslovnice nalazi se voditelj u poslovnicama radi 2 vrste zaposlenika: voditelji (Marko Jurić i Ivan Tadić) i 4 komercijalista (Ivan Šarić, Pero Katić, Domagoj Ivić, Josip Radić) – po 2 komercijalista u svakoj poslovnici 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
66 Dijagram slučajeva korištenja (Use-case)Prikazuju ponašanje sustava na način vidljiv korisniku sustava, ne opisuju kako je funkcionalnost izvedena unutar sustava Kreira se u ranim fazama oblikovanje (najčešće kao prvi dijagram) 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
67 Simboli 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 potvrde.
68 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!
69 Simboli Slučaj korištenja apstraktni zadatak kojeg izvode sudioniciSkup scenarija povezanih zajedničkim ciljem korisnika Pisati kao glagol (radnja) jednostavnost 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) Pisati kao imenicu u jednini
70
71 Postupak pisanja use-caseaOdabir 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
72 Kupovina proizvoda Glavni scenarij:Kupac pregledava katalog i odabire proizvode Kupac potvrđuje proizvode Kupac upisuje informacije o dostavi (npr. idući dan ili za 3 dana) Sustav prikazuje punu cijenu sa dostavom Kupac popunjava informacije o kred. kartici Sustav autorizira kupnju Sustav potvrđuje prodaju Sustav šalje potvrde kupcu
73 Podizanje novca s bankomataGlavni scenarij: Klijent ubacuje karticu u bankomat Sustav traži PIN Klijent upisuje PIN Klijent potvrđuje unos tipkom Enter Sustav provjerava valjanost PIN-a Kartica autorizirana, sustav traži da klijent unese željeni iznos Klijent unosi iznos i potvrđuje ga Sustav isplaćuje novac klijentu
74 Svaki use-case ima primarnog sudionikaPrimarni sudionik – sudionik s ciljem kojeg slučaj korištenja pokušava provesti i obično je (ali ne uvijek) inicijator use-casea Primarni sudionik se postavlja u gornji lijevi ugao dijagrama Postoje i drugi sudionici s kojima sustav komunicira dok se izvodi use-case sekundarni sudionici Sudionici se postavljaju izvan prostora Use-Case dijagrama Kao naziv ne treba pisati titulu koju sudionik ima, već posao koji obavlja (umjesto Voditelj korisničke podrške napisati Korisnička podrška)
75 Poželjno je navoditi slučajeve korištenja onim slijedom kojim se izvode i zadaciSvaki 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
76 Veze 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
77 Pridruživanje (asocijacija)Tipovi veza Pridruživanje (asocijacija) Generalizacija Uključivanje Proširenje
78 Asocijacija Sudionici se povezuju sa slučajevima korištenjaMoguć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
79 Generalizacija Povezuju se:2 sudionika – specifičniji sudionik preuzima sve uloge apstraktnijeg 2 SK – specifičniji proširuje funkcionalnosti apstraktnijeg Apstraktni iznad specifičnog
80 Uključivanje (include)Povezuju se 2 SK na način da 1 slučaj u tijeku svog izvođenja u potpunosti izvede uključeni SK Uključeni – desno od glavnog
81 Uključivanje (include)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”
82 Proširenje (extend) 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
83 Proširenje (extend) Jedan slučaj korištenja je osnovni, drugi je proširujući Veza uvijek ide od proširujućeg prema osnovnom
84
85 Primjer: 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
86
87 Zadatak 2 – Upravljanje hotelomAdministrator 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
88
89 Zadatak 3 – rent-a-car 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
90
91 Zadatak 4: 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
92
93 SEKVENCIJSKI DIJAGRAMDijagram slučajeva korištenja opisuje što sustav mora biti u mogućnosti napraviti Dijagram klasa opisuje različite dijelove koji čine strukturu sustava Sekvencijski dijagram opisuje kako će sustav zapravo napraviti neke zadatke Daje naglasak na vremenskom redoslijedu kojim se odvija interakcija sudionika Prikazuje slijed događaja među objektima ili među sudionicima
94 Pokazuje kronološki redoslijed događaja i operacijaAko su use-case dijagrami prethodno definirani, sekvencijski dijagram je njihova realizacija Pokazuje kronološki redoslijed događaja i operacija Definiraju se: Objekti (sudionici) Poruke
95 Sudionici Sudionik Životna linija sudionika NazivSudionikavrijeme Sudionik Životna linija sudionika
96 Aktivator (opcionalno)Događaji i poruke NazivSudionika1 NazivSudionika2 Poruka(parametri) Pošiljatelj poruke Primatelj poruke Poruka Povratna poruka Aktivator (opcionalno) Aktivator (opcionalno)
97 Poruke × Sinkrona Asinkrona Povratna poruka Kreiranje sudionikaBrisanje sudionika <
98 Primjer: 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.
99 Primjer 1. Pronaći sudionike u interakcijiKlijent, osobni bankar, baza podataka (pasivni sudionik) Klijent OsobniBankar BazaPodataka
100 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
101 Klijent će čekati na odgovor bankara OsobniBankar BazaPodataka 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
102 Izgled poruke *[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
103 Primjer „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 (Bankarklijent). Crta se isprekidanom linijom Crta se nakon sinkrone poruke
104 Klijent OsobniBankar BazaPodataka AKTIVATOR zatrazi_otvaranje_racuna()zatrazi_id_i_50kn() AKTIVATOR
105 „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
106 Klijent OsobniBankar BazaPodataka UVJETI zatrazi_otvaranje_racuna()zatrazi_id_i_50kn() [ima_id && ima_50kn] predaj (id, 50kn) UVJETI
107 a osobni bankar otvara račun u bazi 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.“
108 Klijent OsobniBankar BazaPodataka zatrazi_otvaranje_racuna()zatrazi_id_i_50kn() [ima_id && ima_50kn] predaj (id, 50kn) otvori_racun() racun_otvoren potvrda_racun_otvoren
109 Zadatak 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
110 Dijagrami aktivnosti 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 Koriste se za modeliranje poslovnog porcesa
111 Temeljni elementi Početno i konačno stanje Aktivnost Aktivnost
112 Temeljni elementi Prijelaz između aktivnostiOdluka (if-else) i spajanje Aktivnost Da Ne Aktivnost Aktivnost Aktivnost Aktivnost
113 Temeljni elementi Račvanje (fork) i skupljanje (join)- Za paralelne aktivnosti Aktivnost2 Aktivnost Aktivnost3
114 Temeljni elementi Signal (događaj) Šaljući signal Primajući signalVremenski signal
115 Signali Signali pokazuju da na neku aktivnost djeluju određeni događaji iz vanjskog procesa (autorizacija kartičnog plaćanja podrazumijeva verifikaciju kartice od strane davatelja kartice – banke) Takva aktivnost konstantno „sluša” signale, a dijagram definira kako aktivnost reagira
116 Primjer Odjel prodaje nekog poduzeća zaprima narudžbu kupcaPrvi 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
117 Početno stanje Račvanje Aktivnost Odluka Tijek (prijelaz) Spajanje Skupljanje Konačno stanje
118 Skupljanje (join) 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”
119 Odluke /spajanja 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
120 Plivaće staze Aktivnosti raspoređene u vertikalne ili horizontalne „staze”, razgraničene linijama Jedina svrha - organizacijska
121
122 Zadatak – narudžba pizzeKupac zove pizzeriu i naručuje pizzu Konobar zapisuje narudžbu od kupca i upisuje osobne podatke U isto vrijeme narudžbu šalje u kuhinju i priprema račun Kuhar zaprima narudžbu i počinje s pravljenjem tijesta Tijesto stavlja u posudu te na tijesto stavlja sve potrebne sastojke. Ukoliko nema sve sastojke odlazi u skladište po ono što mu nedostaje Na kraju pizzu stavlja u peć Nakon 10 min pizza je pečena Konobar preuzima pizzu, reže ju, stavlja u kutiju i priprema posudice s kečapom Dostavljač uzima pizzu i račun i nosi ju kupcu