Informacioni sistemi Prof dr Angelina Njegu Objektnoorijentisana analiza
Informacioni sistemi Prof. dr Angelina Njeguš Objektno-orijentisana analiza informacionih sistema Dijagram klasa i objektni dijagram Konceptualni dijagram klasa Objektni dijagram Beograd, 2016/2017.
Informacioni sistemi Prof. dr Angelina Njeguš Plan knjige
Informacioni sistemi Prof. dr Angelina Njeguš Šta su klase? Klasa opisuje grupu objekata sa sličnim osobinama (atributima), zajedničkim ponašanjima (operacijama/metodama), zajedničkim relacijama ka drugim objektima, jedinstveno značenje (“semantika”). Primeri Zaposleni: ima ID, ime i prezime, odelenje. ID gde radi; jedan zaposleni se može zaposliti, dobiti otkaz ili može raditi na projektima. Zaposlen Atributi Zaposleni. ID Ime Prezime Odelenje. ID zaposliti() otkaz() pridruziti. Na. Projektu() Naziv Operacije
Informacioni sistemi Prof. dr Angelina Njeguš Klase i njihove metode se dobijaju sa dijagrama sekvenci
Informacioni sistemi Prof. dr Angelina Njeguš Šta su ključne apstrakcije? Nije cilj razviti kompletni model klasa, već samo definisati neke ključne apstrakcije i osnovne relacije Definisanje ključnih apstrakcija: ú Definisati klase i njihove relacije ú Modelovati klase i relacije na dijagramu klasa ú Mapirati klase ka mehanizmima analize
Informacioni sistemi Prof. dr Angelina Njeguš Identifikovanje ključnih apstrakcija na primeru klase Lift Da li je klasa dobro projektovana? ú Obavlja puno posla, teško ju je održavati i nije dovoljno jasno šta klasa tačno radi Koliko klasa Lift. Controller sadrži ključnih apstrakcija? ú Svaka klasa treba da sadrži samo jednu ključnu apstrakciju, tj. da predstavlja jednu stvar iz realnog života ú Klasa Lift. Controller pokušava da modeluje bar 3 odvojene ključne apstrakcije i to: Alarm, Vrata, Log…
Informacioni sistemi Prof. dr Angelina Njeguš Identifikovanje ključnih apstrakcija na primeru klase Lift. Controller
Informacioni sistemi Prof. dr Angelina Njeguš Klasa u izvornom kodu 8
Informacioni sistemi Prof. dr Angelina Njeguš Šta je asocija? Asocija predstavlja relaciju između dva ili više objekata različitih klasa ú Većina asocija je jednostavna (između tačno dve klase) i prikazuje se kao puna linija između klasa ú Ponekad klasa ima asocijaciju na samu sebe - uglavnom označava da jedna instanca klase ima asocijaciju ka drugoj instanci iste klase ú Naziv asocijacije treba da bude glagol
Informacioni sistemi Prof. dr Angelina Njeguš Pronalaženje relacija Fokusirajte se samo na asocijacije koje su neophodne za realizaciju use case-a Svakoj asocijaciji treba dati nazive i multiplikativnosti
Informacioni sistemi Prof. dr Angelina Njeguš Asocija u izvornom kodu
Informacioni sistemi Prof. dr Angelina Njeguš Refleksivna asocija u izvornom kodu Klasa može da ima asocijaciju sa objektima istog tipa
Informacioni sistemi Prof. dr Angelina Njeguš Šta su role (uloge)? Asocijacije sadrže neku ulogu (rolu) u relaciji između klasa ú Uloga ili rola se ispisuje na krajevima linije asocijacije ú Rola mora imati naziv (obično imenica)
Informacioni sistemi Prof. dr Angelina Njeguš Uloga rola u izvornom kodu
Informacioni sistemi Prof. dr Angelina Njeguš Multiplikativnost je broj objekata klase koji se može pridružiti jednom objektu druge klase Beleži se na oba kraja relacije Multiplikativnost odgovara na dva pitanja: ú Da li je asocija obavezna ili opciona? – ako je nula onda je takva asocija opciona ú Koji je minimalni, a koji maksimalni broj instanci koje mogu biti povezane ka drugoj instanci?
Informacioni sistemi Prof. dr Angelina Njeguš Multiplikativnost u izvornom kodu Student * has Class Student { Course enrolls[4]; } Class Course { Student have[]; } 4 enrolls Course
Informacioni sistemi Prof. dr Angelina Njeguš Multiplikativnost u izvornom kodu
Informacioni sistemi Prof. dr Angelina Njeguš Asocijativna klasa
Informacioni sistemi Prof. dr Angelina Njeguš Usmerena asocija (Directed Association) Mnogo jača zavisnot od Dependency relacije Strelica ukazuje na relaciju u jednom pravcu Klasa A 1 koristi i sadrži instancu klase B 1, ali B 1 ne sadrži instance klase A 1. U Javi bi izgledalo: import B 1; public class A 1 { private B 1 b 1; public B 1 get. B 1() { return b 1; } }
Informacioni sistemi Prof. dr Angelina Njeguš Usmerena asocija u izvornom kodu
Informacioni sistemi Prof. dr Angelina Njeguš Šta je agregacija? Specijalni oblik asocijacije koja modeluje relacije između celine i njenih delova ú Prazan romb je na strani celine ukazuje na relaciju agregacije ú Kada je klasa u relaciji agregacije sa samom sobom, to znači da jedna instanca klase se sastoji od drugih instanci iste klase
Informacioni sistemi Prof. dr Angelina Njeguš Primer Relacija između studenta i rasporeda (Schedule) je modelovana kao agregacija, jer je raspored nerazdvojivo vezan za određenog studenta ú Raspored van konteksta studenta nema nikakvog smisla u sistemu Registrovanja na kurs (Course Registration) ú Relacija od Rasporeda (Schedule) do Ponude kurseva (Course. Offering) je asocija jer kursevi mogu da se pojave na više rasporeda
Informacioni sistemi Prof. dr Angelina Njeguš Asocija ili agregacija? Ukoliko su dva objekta usko povezana relacijom celina-deo, onda je relacija agregacija ú Ukoliko modelujete prodavnice kola, onda relacija između kola i vrata treba da bude modelovana kao agregacija, jer kola uvek dolaze sa vratima, a vrata se nikad samostalno ne prodaju Ukoliko su dva objekta nezavisna onda je relacija asocija ú Ukoliko modelujete prodavnicu auto delova, onda relacija između kola i vrata može da bude asocija, jer onda telo kola može da se pojavi nezavisno od vrata
Informacioni sistemi Prof. dr Angelina Njeguš Agregacija u kodu U Javi kod za agregaciju se može predstaviti npr. vektorom (vector)
Informacioni sistemi Prof. dr Angelina Njeguš Modelovanje multiplikativnosti u kodu import java. util. Array. List; import java. util. List; import B 1; public class A 1 { private List b 1 List; public A 1() { super(); b 1 List = new Array. List(); } //. . . }
Informacioni sistemi Prof. dr Angelina Njeguš Kompozicija Relacija kompozicije je slična relaciji agregacije samo što se kod uništavanja objekta uništava i klasa koja je deo tog objekta
Informacioni sistemi Prof. dr Angelina Njeguš Kompozicija u kodu
Informacioni sistemi Prof. dr Angelina Njeguš Odnos relacija
Informacioni sistemi Prof. dr Angelina Njeguš Generalizacija B 2 je nadklasa, a A 2 je podklasa Nasleđivanje u Javi: Primer: Customer import B 2; public class A 2 extends B 2 { //. . . } Regular Customer Loyalty Customer
Informacioni sistemi Prof. dr Angelina Njeguš Generalizacija u kodu
Informacioni sistemi Prof. dr Angelina Njeguš Apstraktne klase (klasa za koju se ne kreiraju instance)
Informacioni sistemi Prof. dr Angelina Njeguš Apstraktne metode Shape draw() Circle Rectangle draw()
Informacioni sistemi Prof. dr Angelina Njeguš Iimplementacija apstraktnih metoda public abstract class Shape { public abstract draw(); //declare without implementation ……… } public class Circle { public draw(){ ……. } …. . }
Informacioni sistemi Prof. dr Angelina Njeguš Zavisnost (Dependency) Najmanje formalna relacija koja ukazuje da klasa A zavisi od klase B Klasa A koristi klasu B, ali klasa A ne sadrži instancu klase B Promene na klasi B utiču na klasu A U Javi se zavisnost može predstaviti kao: import B; public class A { public void method 1(B b) { //. . . } public void method 2() { B temp. B = new B() //. . . } } import B; public class A { private B b; // pogrešno! public B get. B() { return b; } }
Informacioni sistemi Prof. dr Angelina Njeguš Realizacija (Realization) Povezana je sa generalizacijom, odnosno realizacija predstavlja implementaciju interfejsa od strane klase. Klasa A 3 implementira ili realizuje interfejs B 3 U Javi ova veza bi se prikazala: import B 3; public class A 3 implements B 3 { //. . . }
Informacioni sistemi Prof. dr Angelina Njeguš Interfejsi i relacije realizacije u kodu Java ima notaciju “implements” koja se prevodi u relaciju realizacije u UMLu
Informacioni sistemi Prof. dr Angelina Njeguš Moguće relacije na dijagramu klasa 37
Informacioni sistemi Prof. dr Angelina Njeguš Primer višestruke asocijacije Kada postoje višestruke asocijacije između dve klase, onda bi one trebalo da prikazuju različite uloge, a ne pozivanje različitih operacija
Informacioni sistemi Prof. dr Angelina Njeguš Primer pronalaženja relacija
Informacioni sistemi Prof. dr Angelina Njeguš Primer dijagrama klasa
Informacioni sistemi Prof. dr Angelina Njeguš Objektni dijagram je primarno alat za testiranje i verifikovanje tačnosti dijagrama klasa UML notacija objekta:
Informacioni sistemi Prof. dr Angelina Njeguš Poređenje objektnog dijagrama i dijagrama klasa
Informacioni sistemi Prof. dr Angelina Njeguš Primena objektnog dijagrama za testiranje dijagrama klasa Svaka isporuka može da ima nula ili više Proizvoda dobavljača i nula ili više kastimiziranih proizvoda (proizvoda po narudžbi) Svaki tip proizvoda može, a i ne mora biti isporučen
Informacioni sistemi Prof. dr Angelina Njeguš Primena objektnog dijagrama za testiranje dijagrama klasa Kastimizovan proizvod je sastavljen od proizvoda dobavljača. Proizvodi dobavljača 28, 38 i 72 kreiraju custom proizvod 425
Informacioni sistemi Prof. dr Angelina Njeguš Primena objektnog dijagrama za testiranje dijagrama klasa Koji je najmanji broj objekata koji čini Custom proizvod? Custom proizvod mora da se sastoji od najmanje dva proizvoda dobavljača, inače ga drugačije nećemo moći razdvojiti
Informacioni sistemi Prof. dr Angelina Njeguš Primena objektnog dijagrama za testiranje dijagrama klasa Da li postoji evidencija o tome da Custom proizvod može da bude ugrađen u drugi Custom proizvod? ú Mora da se podrži relacija agregacije između jednog i drugog custom proizvoda
Informacioni sistemi Prof. dr Angelina Njeguš Primena objektnog dijagrama za testiranje dijagrama klasa Da li postoje zajedničke karakteristike između objekata koji se koriste za konfigurisanje custom proizvoda? Custom proizvod i vendor proizvod mogu biti delovi custom prozvoda, tako da se generalizuju u proizvode što objašnjava da bilo koji tip proizvoda može da učestvuje u montaži kastimizovanog proizvoda
Informacioni sistemi Prof. dr Angelina Njeguš Poređenje modela podataka (ERD) i dijagrama klasa
Informacioni sistemi Prof. dr Angelina Njeguš Primer grupisanja klasa u pakete
Informacioni sistemi Prof. dr Angelina Njeguš Dijagram klase prema slojevima arhitekture
Informacioni sistemi Prof. dr Angelina Njeguš Konceptualni dijagram klasa - primer
Informacioni sistemi Prof. dr Angelina Njeguš Primer: Airline ticketing system 52
Informacioni sistemi Prof. dr Angelina Njeguš Primer: Dijagram klase za šoping korpu
Informacioni sistemi Prof. dr Angelina Njeguš Poređenje konceptualnog i dijagrama klasa
Informacioni sistemi Prof. dr Angelina Njeguš Dijagram klasa
Informacioni sistemi Prof. dr Angelina Njeguš Fizički model klasa
Informacioni sistemi Prof. dr Angelina Njeguš Vežba 1: Nacrtati konceptualni dijagram klasa Fakultet se sastoji od min. jedne i max. više Katedri (da bi Katedra postojala potrebno je da postoji Fakultet) Katedri su pridruženi profesori (min. jedan, a max više) Samo jedan nastavnik može biti šef katedre Na katedri se drži min. jedan, a max. više kurseva Studenti pohađaju kurseve Fakultet se sastoji od više studenata
Informacioni sistemi Prof. dr Angelina Njeguš Vežba 2: Nacrtati konceptualni dijagram klasa Jedan tim doktora (Team) se sastoji od minimum 2 ili više doktora Doktori mogu biti Junior ili Doktor konsultant Jedan tim je predvođen jednim doktorom konsultantom Jedan tim brine o više pacijenata Doktor leči više pacijenata Doktor konsultant je odgovoran za više pacijenata U bolničkoj sobi može biti više pacijenata
Informacioni sistemi Prof. dr Angelina Njeguš Rešenje vežbe 2 59
Informacioni sistemi Prof. dr Angelina Njeguš Vežba 3: Kreirati konceptualni dijagram klasa Jedna šoping karta (Shopping Cart) se sastoji od više artikla (Item) Jedna šoping karta kreira tačno jednu porudžbinu Jedna porudžbina odgovara tačno jednom klijentu Jedan klijent može da kreira više šoping karti
Informacioni sistemi Prof. dr Angelina Njeguš Rešenje vežbe 3
Informacioni sistemi Prof. dr Angelina Njeguš Vežba 4: Identifikovati klase i njihova ponašanja sa dijagrama komunikacije
Informacioni sistemi Prof. dr Angelina Njeguš Mapiranje elemenata dijagrama komunikacije u dijagram klase
Informacioni sistemi Prof. dr Angelina Njeguš IBM Rational Software Architect http: //publib. boulder. ibm. com/infocenter/rsahelp/v 8/index. jsp? topic=/com. ibm. xtools. modeler. doc/topics/cclassd. html
- Slides: 64