You are on page 1of 32

Objektno-orijentisana analiza i

projektovanje sa UML-om
DEV475 Mastering Object-Oriented Analysis and Design with UML - Volume 1

Modul 6 b
Prof. dr Angelina Njegu
Vanredni profesor Univerziteta Singidunum
anjegus@singidunum.ac.rs

Beograd, 2009/2010.

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Konceptualni dijagram klasa

Fokus na klase
Pronalaenje relacija izmeu klasa
Poreenje modela podataka (ERD) i dijagrama klasa
Primer grupisanja klasa u pakete
Poreenje konceptualnog i dijagrama klasa

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Fokus na klase

Do sada smo identifikovali klase analize i dodelili im


odgovornosti sluajeva korienja

Sada je vreme da se obrati panja na svaku klasu


analize i da se sagleda ta svaki use case zahteva od
njih

Osnovni cilj ovog fokusa je da se dokumentuje ono to


klasa zna i ono ta radi

Koje su odgovornosti (ponaanja) klase?

Ponaanje je iskaz onoga to se trai da objekat obezbedi


Ponaanja ukljuuju jednu ili vie operacija klase u
projektovanju i mogu biti opisane kao:

Kako pronai ponaanja?

Akcije koje objekat moe da izvrava


Znanje koje objekat odrava i prua drugim objektima

Mogu se izvui iz poruka sa dijagrama interakcije (za svaku


poruku treba ispitati objekat klase kome je poruka poslata)
Druga ponaanja se mogu izvui iz nefunkcionalnih
zahteva

Ponaanja klase se mogu dokumentovati na dva


naina:

Operacije: ukoliko se koristi ovaj pristup, onda je vano da


se koristi neka konvencija imenovanja jer e se
najverovatnije ukljuiti u dizajnu reenja
Tekstualno: dokumentuju se u opisu klasa analize

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

ta su kljune apstrakcije?
Kljuna apstrakcija je koncept, koji nije pokriven u
Zahtevima
Nije cilj razviti kompletni model klasa, ve samo definisati
neke kljune apstrakcije i osnovne relacije
Identifikovane klase e se najverovatnije menjati tokom
projekta
Definisanje kljunih apstrakcija:
Definisati klase i njihove relacije
Modelovati klase i relacije na dijagramu klasa
Mapirati klase ka mehanizmima analize

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Primer: Kljune apstrakcije


Neki od ovih apstrakcija
se podudaraju sa
akterima u use case
modelu
Ovo je apsolutno
prihvatljivo, jer je
neophodno odravati
informacije i o akterima
u sistemu
Ove apstrakcije koje
odgovaraju spoljnim
entitetima (tj. akterima),
nazivaju se surogatima
(surrogates)

Profesor: osoba koja poduava studente na univerzitetu


Student: osoba koja je upisana na univerzitet
Raspored: kursevi koje je student upisao u semestru
Katalog kurseva (CourseCatalog, na slici): katalog svih kurseva koje nudi univerzitet
Program kursa (CourseOffering, na slici): program kursa koji ukljuuje dane u nedelji i
vremena
Kurs (Course): kurs koji se izuava na univerzitetu

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Primer ponaanja klasa

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Identifikovanje kljunih apstrakcija


na primeru klase Lift
Da li je klasa dobro
dizajnirana?
Obavlja puno posla, teko ju je
odravati i nije dovoljno jasno
ta klasa tano radi

Koliko klasa LiftController


sadri kljunih apstrakcija?
Svaka klasa treba da sadri
samo jednu kljunu
apstrakciju, tj. da predstavlja
jednu stvar iz realnog ivota
Klasa LiftController pokuava
da modeluje bar 3 odvojene
kljune apstrakcije, i to:
Alarm, Vrata, Log

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Identifikovanje kljunih apstrakcija


na primeru klase LiftController

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Odravanje konzistentnosti
Obratite panju na klase koje rade sve!
Svaka klasa bi trebala da ima nekoliko odgovornosti
Klasa sa samo jednom operacijom je verovatno suvie
jednostavna i postavlja se pitanje emu
Klasu koja ima previe operacija bi trebalo razdvojiti u
nekoliko klasa

Obezbediti da ne postoje dve klase sa slinim


odgovornostima
Treba ih kombinovati i aurirati dijagram interakcije

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

ta je asocijacija?
Asocijacija predstavlja relaciju izmeu dva ili vie objekata
razliitih klasa
Veina asocijacija je jednostavna (izmeu tano dve klase) i
prikazuje se kao puna linija izmeu simbola klasa
Ponekad klasa ima asocijaciju na samu sebe
Uglavnom oznaava da jedna instanca klase ima asocijaciju ka
drugoj instanci iste klase

Naziv asocijacije treba da bude glagol

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Pronalaenje relacija

Fokusirajte se samo na asocijacije koje su neophodne za realizaciju use case-a


Svakoj asocijaciji treba dati nazive i multiplikativnosti

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

ta je agregacija?

Specijalni oblik asocijacije koja modeluje relacije izmeu celine i njenih delova

Relaciju agregacije bi trebalo koristiti kada je:

Prazan romb je na strani celine ukazuje na relaciju agregacije


Kada je klasa u relaciji agregacije sa samom sobom, to znai da jedna instanca klase se sastoji
od drugih instanci iste klase
Jedan objekat fiziki sainjen od drugih objekata (npr., kola su fiziki sainjena od motora,
tokova i dr.)
Jedan objekat logiki sastavljen od drugih objekata (npr., porodica je sastavljena od roditelja i
dece)
Jedan objekat fiziki sadri druge objekte (npr., avion fiziki sadri pilota)

Na slici, relacija izmeu studenta (Student) i rasporeda (Schedule) je modelovana kao


agregacija, jer je raspored nerazdvojivo vezan za odreenog studenta

Raspored van konteksta studenta nema nikakvog smisla u sistemu Course Registration
Relacija od Schedule do CourseOffering je asocijacija jer kursevi mogu da se pojave na vie
rasporeda

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Asocijacija ili agregacija?

Ukoliko su dva objekta usko povezana relacijom celina-deo, onda je relacija


agregacija

Ukoliko modelujete prodavnice kola, onda relacija izmeu 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 asocijacija

Ukoliko modelujete prodavnicu auto delova, onda relacija izmeu kola i vrata moe
da bude asocijacija, jer onda telo kola moe da se pojavi nezavisno od vrata

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Kompozicija

Relacija kompozicije je slina relaciji agregacije samo to se kod


unitavanja objekta unitava i klasa koja je deo tog objekta

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

ta su role (uloge)?
Asocijacije sadre neku ulogu u relaciji izmeu klasa
Uloga ili rola se ispisuje na krajevima linije asocijacije
Uloga mora imati naziv (obino imenica)

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Multiplikativnost
Za svaku rolu se navodi multiplikativnost klase
Multiplikativnost je broj objekata klase koji se moe pridruiti jednom objektu
druge klase
Kada je multiplikativnost nula, onda je takva asocijacija opciona
Belei se na oba kraja relacije
Multiplikativnost odgovara na dva pitanja:

Da li je asocijacija obavezna ili opciona?


Koji je minimalni, a koji maksimalni broj instanci koje mogu biti povezane ka drugoj
instanci?

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Primer viestruke asocijacije

Kada postoje viestruke asocijacije izmeu dve klase, onda bi one


trebalo da prikazuju razliite uloge, a ne pozivanje razliitih
operacija
Obavezno je imenovanje asocijacija

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Primer pronalaenja relacija

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Primer taksonomije osoba na


univerzitetu

Taksonomija klasifikacija entiteta prema nivoima hijerarhije


Ontologija za razliku od taksonomije koja ukazuje na klasifikaciju hijerarhija, ontologija
predstavlja i znanje, kao i relacije i osobine entiteta

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Poreenje modela podataka (ERD) i


dijagrama klasa

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Primer grupisanja klasa u


pakete

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Dijagram klase prema slojevima


arhitekture

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Konceptualni dijagram klasa primer

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Poreenje konceptualnog i dijagrama


klasa

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Dijagram klasa

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Veba 1: Nacrtati dijagram

Fakultet se sastoji od min. jedne i max. vie Katedri


Katedru ini min. jedan, a max. vie nastavnika
Samo jedan nastavnik moe biti ef katedre
Na katedri se dri min. jedan, a max. vie kurseva
Fakultet se sastoji od vie studenata
Studenti pohaaju kurseve

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Veba 2: Nacrtati konceptualni


dijagram

Jedan tim doktora (Team) se sastoji od minimum 2 ili vie doktora


Doktori mogu biti junior doktor ili doktor konsultant
Jedan tim je predvoen (isHeadedBy) jednim doktorom konsultantom
Jedan tim brine o vie pacijenata
Doktor lei vie pacijenata
Za vie pacijenata odgovoran je jedan doktor konsultant
U bolnikoj sobi moe biti vie pacijenata

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Veba 3: Nacrtati konceptualni


dijagram
lan (Member) moe pri jednom iznajmljivanju (Loan) da
uzme maksimalno 6 DVD-a
Jedno iznajmljivanje (Loan) moe da ukljui samo jednu
konkretnu kopiju filma nasnimljenog na DVD
Film moe imati vie kopija DVDa

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Veba 4: Kreirati dijagram klase za


oping korpu
Kreirati dijagram klasa za oping korpu artikala
Neophodne klase: Klijent (Customer), kreditna kartica (CreditCard), oping
korpa (ShoppingCart), artikli (Item)
Perzistentne informacije o klijentu kao to su naziv, adresa naplate
(billingAddress), adresa isporuke (deliveryAddress) i e-mail su uskladitene
u objekat Klijent
Objekat creditCard:
sadri podatke o kreditnoj kartici kao to su: broj kreditne kartice, datum isteka
kartice
sadri metod za proveru validnosti kartice (ValidateCard)
povezan je sa objektom FrequentShopperDiscount koji sadri procenat popusta

Klijent moe da postavi ili otkae porudbinu, kao i da dodaje, menja ili
brie podatke sa oping karte (ShoppingCart)
Artikli (Items) sadre naziv artikla, cenu i opis
Porueni artikli odnosno artikli koji su selektovani i prikazani u oping korpi
mogu se dodavati (addOrderItems) i brisati (removeOrderItems)

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Veba 5: Identifikovati klase i


njihova ponaanja iz dijagrama
saradnje
Modelovanje poruka
Koraci:

Sistem pita
OrderFulfillmentClerk za
broj porudbine (zamislite
da je ovo ekran koji eka
na unos), a zatim se i
vraa broj porudbine
Sistem pokuava da
pronae porudbinu u bazi
podataka porudbina
(OrderDB)
Sistem zatim prikazuje
porudbinu
OrderFulfillmentClerk-u
koju je pronaao u bazi
podataka
(OrderFulfillmentClerk
predstavlja interfejs koji e
oni koristiti za ovaj use
case). Znai sistem govori
da ekran prikae
podatak ...

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

Mapiranje elemenata dijagrama


kolaboracije u dijagram klase

Projektovanje informacionih
sistema
prof. dr Angelina Njegu

IBM Rational Software Architect

http://publib.boulder.ibm.com/infocenter/rsahelp/v8/index.jsp?topic=/com.ibm.xtools.modeler.doc/top
ics/cclassd.html

You might also like