Oblikovanje i implementacija ISa Vjebe ak god 201314
Oblikovanje i implementacija IS-a Vježbe, ak. god. 2013/14.
Terminski plan vježbi � Utorak, 1. 2. 3. 4. 5. 6. 7. 13: 15 -16: 30 h 26. 11. 2013. 03. 12. 2013. 10. 12. 2013. 17. 12. 2013. 07. 01. 2014. 21. 01. 2014. Class diagram Use-Case diagram Component diagram Object diagram Sequence diagram
Vježbe 1. Teorijski dio 2. Praktični dio 3. Zadatak �Osnovne karakteristike dijagrama �Tvorbeni elementi �Rad u UML editoru ASTAH �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 (4 x) Timski zadaci na vježbama (5 x) 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)
Dijagrami
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 STUDENT Pero Perić Marković OBJEKTI KLASA Ivanković
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: 1. naziv klase 2. atribute 3. operacije velikim slovom – početna slova – informacije o objektu, prva riječ malim slovom, ostatak velikim – stvari koje objekt ili klasa čine, prva riječ malim slovom, ostatak velikim Narudzba. Robe -datum : date -iznos : double -kolicina : long +izvrsi() +zakljuci()
KLASA � Primjer: � Svaki Definirati klasu Student 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: 1. PRIDRUŽIVANJE 2. PODTIP
PRIDRUŽIVANJE PODTIP
Pridruživanje (asocija) � Jednosmjerno (unidirekcionalno) � Dvosmjerno (bidirekcionalno) � Agregacija � Refleskivno Ukoliko smjer nije naznačen, smatra se da je veza ili nepoznata ili dvosmjerna!
Pridruživanje - dvosmjerno � Primjer � Veza dvosmjerne veze: 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 veze 1 n 1. . n 2, n 3 n. . * točno 1 pojedinac 0. . * ili n više pojedinaca, neograničeno bilo koji točno određeni broj (0, 1, 5, 23) između n 1 i n 2 (5. . 8 5, 6, 7 ili 8) između n 1 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)
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: � Na Veza između klase Racun i Artikl 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 (broj. Indeksa) ◦ 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, unlimited. Integer) �Java tipovi (byte, char, double, float, int) ◦ POČETNA VRIJEDNOST – inicijalna vrijednost dodana atributima (klasa automobil atribut broj. Vrata vrijednost 4) � Pravilo pisanja atributa: [vidljivost] ime. Atributa : tip. Atributa
ATRIBUTI � Tipovi atributa navode se pokraj imena, nakon znaka „ : „ ◦ STRING – tekstualni tip, za prikaz znakova �ime. Studenta : String = „Marko” ◦ INTEGER – za prikaz cijelih brojeva �broj. Indeksa : Integer = 34952 ◦ DOUBLE – za prikaz decimalnih brojeva �prosjek. Ocjena : Double = 3, 7 ◦ BOOLEAN – sadržava 2 vrijednosti: true ili false �prosao. Ispit : 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] ime. Operacije (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
NASLJEĐIVANJE
� 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
Ovisnost
� � � 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.
- Slides: 47