1.19k likes | 1.42k Views
Oblikovanje i implementacija IS-a. Vježbe, ak.god. 2013/14. Terminski plan vježbi. Utorak, 13:15-16:30h 26.11.2013. Class diagram 03.12.2013. Class diagram 10.12.2013. Use-Case diagram 17.12.2013. Use-Case diagram 07.01.2014. Component diagram 14.01.2014. Object diagram
E N D
Oblikovanje i implementacija IS-a Vježbe, ak.god. 2013/14.
Terminski plan vježbi • Utorak, 13:15-16:30h • 26.11.2013. Class diagram • 03.12.2013. Class diagram • 10.12.2013. Use-Case diagram • 17.12.2013. Use-Case diagram • 07.01.2014. Component diagram • 14.01.2014. Object diagram • 21.01.2014. Sequence diagram
Vježbe • Teorijski dio • Osnovne karakteristike dijagrama • Tvorbeni elementi • Praktični dio • Rad u UML editoru ASTAH • Zadatak • Rad u grupama • Rješavanje zadatka na kraju svakog poglavlja
Vježbe • 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)
UML • Unified Modeling Language • Jedinstveni jezik za modeliranje • Koristi grafički prikaz za izradu apstraktnog modela sustava • Modeliranje: • Softwarea • Poslovnih procesa • Ogranizacijskih struktura • Ostalih sustava
UML • 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)
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
KLASA • Osnovni tvorbeni element dijagrama • Opis grupe objekata sa sličnim svojstvima KLASA STUDENT Ivan Ivanković Pero Perić Marko Marković OBJEKTI
KLASA • Promatra se parkiralište • Klasa? Objekti?
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
KLASA • Odrediti: • naziv klase – početna slova velikim slovom • atribute – 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()
KLASA • 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.
Odnosi među klasama • 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: • PRIDRUŽIVANJE • PODTIP
PRIDRUŽIVANJE PODTIP
Pridruživanje (asocijacija) • Jednosmjerno (unidirekcionalno) • Dvosmjerno (bidirekcionalno) • Agregacija • Refleskivno Ukoliko smjer nije naznačen, smatra se da je veza ili nepoznata ili dvosmjerna!
Pridruživanje - dvosmjerno • Primjer dvosmjerne veze: • Veza između klasa Osoba i Knjiga • Osoba je posudila knjigu • Knjiga pokazuje koje su je sve osobe posudile Osoba Knjiga
Pridruživanje - dvosmjerno • 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
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
Višestrukost • Primjer: Veza između klase Racun i Artikl • Na računu može biti jedan ili više artikala
Višestrukost • Nakon završetka ispitnog roka profesor svaki put ispravlja točno 60 pismenih ispita Profesor Ispit 1 60
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..*
Pridruživanje - refleksivno • 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
Agregacija • 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
Agregacija • Primjer: U nekom poduzeću postoje odjeli nabave, prodaje, financija.. Zaposlenici su zaposleni u tim odjelima.
Kompozicija • 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
Kompozicija • Primjer: Poduzeće osim svog sjedišta može imati i nekoliko poslovnica • Zatvaranjem poduzeća, zatvaraju se i sve poslovnice. Veza 0..*??
ATRIBUTI • 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
ATRIBUTI • 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
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
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
OPERACIJE • 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)
OPERACIJE • Primjer: • Prikazati klasu Blagajnik koja sadrži atribute Šifra, Ime, Prezime, OIB. • Blagajnik priprema robu i izrađuje račun
Primjer: atributi i operacije • 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
NASLJEĐIVANJE • 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
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
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
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
Ovisnost • jedna klasa ovisi o drugoj klasi • promjena u jednom entitetu utječe na drugi • neovisni entitet isporučitelj • ovisni entitet klijent • jednosmjerna veza
Ovisnost • 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 edukacijskizadatakmož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 bilokojeg razloga član vojnog osoblja napusti vojnu jedinicu, vojna odora seuniš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.
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 • 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
Dijagram slučajeva korištenja (Use-case) • 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 štosustav radi, a ne kako radi
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 e-mail potvrde.