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 (Bankarklijent). 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