You are on page 1of 117

Informacioni

sistemi
Prof. dr Angelina
Njegu

Objektno-orijentisana analiza
informacionih sistema
Object-Oriented Information System Analysis
Koraci analize informacionih sistema
Poreenje funkcionalne, OO i SO analize
Poreenje konceptualnog, logikog i fizikog
modela
Poreenje disciplina sistema poslovanja
ta je naueno do sada i ta je ostalo u okviru
analize?
Modelovanje korisnikih zahteva
Objektno-orijentisana analiza sistema
Arhitektura softvera
Use case analiza Beograd, 2012/2013.
Informacioni
sistemi
Prof. dr Angelina
Njegu

Plan knjige
Informacioni
sistemi
Prof. dr Angelina

Koraci analize informacionih Njegu

sistema
Sveobuhvatni koraci analize sistema su:
1. Modelovanje poslovanja (Business
Modeling) dva glavna fokusa:
Modelovanje poslovnih procesa
Modelovanje podataka

2. Modelovanje korisnikih zahteva


(Requirements)
3. Detaljna analiza sistema, na osnovu
prethodnih modela, koja rezultira u kreiranju:
Konceptualnog modela sistema 3
Logikog modela sistema
Informacioni
sistemi
Prof. dr Angelina

Poreenje funkcionalne, OO i SO
Njegu

analize
Funkcionalna analiza sistema:
Analiza trenutnog stanja sa fokusom na reinenjering
postojeeg sistema
Nema mogunost mapiranja korisnikih zahteva!
Ne posmatra integrisano podatke i procese!
Ne postoji mogunost modeliranja distribuiranog sistema koji
koristi servise drugih provajdera/partnera!
Ne prikazuje sve aspekte sistema (komponente sistema,
uvoenje -deployment)!
Ne postoji mogunost generisanja koda upotrebom objektno-
orijentisanih ili servisno-orijentisanih tehnologija!
Logiki modeli podataka: ERD, IDEF1X
Logiki modeli procesa: DFD, IDEF0
Informacioni
sistemi
Prof. dr Angelina

Poreenje funkcionalne, OO i SO
Njegu

analize (nastavak)
Objektno-orijentisana (OO) analiza sistema:
Prikazuje integrisano podatke i procese
Fokus na korisnike zahteve
Postoji mogunost generisanja koda upotrebom objektno-
orijentisanih tehnologija
Nije prilagoen za analizu distribuiranog sistema (koji koristi
spoljne servise drugih provajdera) i uopte za servisno-
orijentisane sisteme koji se zasnivaju na SOA arhitekturi!
Logiki modeli procesa: Use case, Dijagram aktivnosti,
Dijagrami interakcije (sekvenci i komunikacije)
Logiki model podataka: Konceptualni dijagram klasa
Informacioni
sistemi
Prof. dr Angelina

Poreenje funkcionalne, OO i SO
Njegu

analize (nastavak)
Servisno-orijentisana (SO) analiza sistema:
Prikazuje integrisano i podatke i procese i kolaboraciju sa
spoljnim servisima
Automatsko prevoenje u izvrni kod koristei servisno-
orijentisane tehnologije
Jo uvek nisu usvojeni svi standardi!
Logiki modeli procesa: BPMN dijagrami: orkestracije,
koreografije i kolaboracije
Logiki modeli podataka: Dijagram konverzacije
Informacioni
sistemi
Prof. dr Angelina

Poreenje konceptualnog, logikog


Njegu

i fizikog modela
Konceptualni/konceptni model
Model visokog nivoa
Npr. klijent i arhitekta zgrade listaju zatheve klijenata, kao to su okruenje,
dizajn sobe, neophodni ureaji, infrastruktura i sl.

Logiki model
Model detaljnog nivoa, ali bez aspekta implementacije
Identifikovanje svega onoga to sistem treba da radi
Npr. arhitekta na osnovu konceptnog modela kreira kompletno okruenje, sobe,
infrastrukturu odakle se vide konkretni zahtevi za elektrinim kapacitetima,
nivoima svetlosti, ureajima za vodovod i sl.

Fiziki model
Ukljuen aspekt implementacije sistema, ali ne podrazumeva kodiranje reenja,
ve slui kao osnova za fazu razvoja sistema!
Npr: biraju se ureaji koji e se koristiti i podrati prethodno definisane zahteve
za strujom, kablovima
Informacioni
sistemi

Poreenje disciplina razvoja sistema,


Prof. dr Angelina
Njegu

podrke i discipline poslovanja


preduzea
Informacioni
sistemi
Prof. dr Angelina
Njegu

ta smo nauili do sada?


Modelovanje poslovanja (Business Modeling):
Modelovanje poslovnih procesa
Funkcionalno: DFD, IDEF0
Objektno-orijentisano: Use case i dijagram aktivnosti
Servisno-orijentisano: BPMN dijagrami
Modelovanje podataka
Funkcionalno: u okviru predmeta Baze podataka
Objektno-orijentisano: bie objanjeno upotrebom
konceptualnog i logikog dijagrama klasa
Servisno-orijentisano: Dijagram konverzacije
Informacioni
sistemi
Prof. dr Angelina

ta je ostalo da se naui u Njegu

okviru analize sistema?


Modelovanje korisnikih zahteva
Koja je razlika izmeu modelovanja poslovanja i
modelovanja zahteva?
Zato se modeluju zahtevi?
ta je izloeno estim promenama, zahtevi ili
poslovanje?
Detaljna analiza sistema
Logiki dizajn sistema
Dijagrami interakcije i konceptualni dijagram klasa
Informacioni
sistemi
Prof. dr Angelina
Njegu

Modelovanje korisnikih zahteva

Tip zahteva Govori nam o


Poslovni zahtev cilju/strategijama koje treba da se postignu
zadatku koji korisnik mora da bude u stanju da uradi kako
Korisniki zahtev
bi postigao cilj poslovanja
funkcionalnosti sistema koje sistem mora da obavlja kako
Funkcionalni
bi pomogao korisniku da uradi zadatak koji je neophodan
zahtevi
za postizanje poslovnog cilja
Nefunkcionalni
osobinama kvaliteta koje sistem treba da ispunjava
zahtevi
politikama/propisima/standardima koje sistem treba da
Poslovna pravila
sledi
Zahtevi za Informacijama koje su potrebne sistemu da bi obavljao
podacima svoje funkcije
Ogranienja Ogranienjima koje su nametnute sistemu
Informacioni
sistemi
Prof. dr Angelina
Njegu

Modelovanje zahteva
Informacioni
sistemi
Prof. dr Angelina
Njegu

Relevantni artifakti zahteva


Model sluajeva korienja
(use-case):
Use case dijagram
Use case specifikacija
Renik (glossary)
definie optu terminologiju
Olakava komunikaciju izmeu
eksperata i developera kao i
ostalih lanova projekta
Dodatna specifikacija
(supplementary specification)
sadri dodatne zahteve koji
nisu opisani sluajevima
korienja
Npr. nefunkcionalni zahtevi,
zahtevi za obuavanjem
korisnika
Informacioni
sistemi
Prof. dr Angelina

Objektno-orijentisana analiza
Njegu

sistema
Informacioni
sistemi
Prof. dr Angelina

Analiza vs Projektovanje Njegu

sistema
Analiza Projektovanje (Design)
Fokus na razumevanje Fokus na razumevanje reenja
problema Operacije i atributi
Idealizovanje dizajna Performanse
Ponaanje Pribliavanje realnom kodu
Struktura sistema ivotni ciklus objekta
Funkcionalni zahtevi Nefunkcionalni zahtevi
Mali model Veliki model

Cilj je razumevanje problema i


poetak razvoja vizuelnog modela Cilj je preraivanje modela radi
o tome ta treba da se izgradi, razvoja modela dizajna koji e
nezavisno od implementacije i omoguiti prelaz u fazu kodiranja
tehnologije
U projektovanju se podeavaju
Fokus je na prevoenju okruenja implementacije i
funkcionalnih zahteva u uvoenja
softverske koncepte
Fiziki dizajn sistema
Logiki dizajn sistema
Informacioni
sistemi
Prof. dr Angelina
Njegu

Objektno-orijentisana analiza nije top-


down ili bottom-up pristup kao kod
funkcionalnog modelovanja
Informacioni
sistemi
Prof. dr Angelina
Njegu

Koraci detaljne analize sistema


Arhitektura softvera
Obino se koristi neki od obrazaca (paterna) arhitekture,
npr. slojevita, MVC i sl.
Logiki prikaz arhitekture sistema sa podsistemima i
njihovim relacijama
Analiza sluajeva korienja
Dijagrami sekvenci
Dijagrami komunikacije
Konceptualni dijagram klasa

17
Informacioni
sistemi
Prof. dr Angelina
Njegu

ta je arhitektura softvera?
Arhitektura softvera podrazumeva skup stratekih odluka
o organizaciji ili strukturi softverskog sistema, koji je
prikazan kao kolekcija komponenata koji ispunjavaju
eljene funkcionalnosti sistema, optimizujui pritom
kvalitet, performanse, bezbednost i upravljivost
celokupnog sistema
Drugim reima, arhitektura se fokusira na organizovanje
komponenata kako bi se podrale specifine funkcionalnosti
sistema
Arhitektura softvera obuhvata niz znaajnih odluka o
organizaciji softverskog sistema koji se tiu funkcionalnosti,
upotrebljivosti, otpornosti, performansi, ponovne
upotrebljivosti, razumljivosti, ekonomskih i tehnolokih
ogranienja i kompromise. (Philippe Kruchten, Grady
Booch, Kurt Bittner i Rich Reitman)
Arhitektura softvera je struktura ili struktuiranje sistema
koji obuhvata softverske elemente, njihove javno vidljive
Informacioni
sistemi
Prof. dr Angelina
Njegu

Zato je arhitektura vana?


Softver mora da bude izgraen na vrstim temeljima
Savremeni alati i platforme pomau da se pojednostavi zadatak
razvoja aplikacija, meutim oni ne mogu zameniti potrebu da se
paljivo projektuje aplikacija na osnovu specifinih scenarija i
zahteva
Rizici loe arhitekture su nestabilnost softvera, nemogunost da
podri postojee ili budue poslovne zahteve ili ga je teko uvesti
ili upravljati u proizvodnom okruenju
Informacioni
sistemi
Prof. dr Angelina

Primer opte arhitekture Njegu

softvera
Informacioni
sistemi
Prof. dr Angelina
Njegu

Obrasci arhitekture
Obrasci (paterni) ili stilovi arhitekture softvera predstavljaju skup
principa koji nude apstrktni okvir sistema koji olakavaju podelu i
ponovnu upotrebu pruajui pritom reenja za uestale probleme
Svaki od stilova reava odreene probleme i odnosi se na
odreene karakteristike sistema, performansi, procese, distribuciju

Informacioni
sistemi
Prof. dr Angelina

Koraci definisanja arhitekture Njegu

softvera
Kljune aktivnosti projektovanja arhitekture
softvera su:
Identifikovati cilj arhitekture jasni ciljevi
pomau u fokusiranju na arhitekturu i na
reavanje pravih problema
Identifikovati kljuna scenarija pomau
u fokusiranju dizajna na ono to je najvanije
Pregled aplikacije identifikovati tip
aplikacije, arhitekturu uvoenja, stilove
arhitekture i tehnologije kako bi se sagledali
realni uslovi u kojima e aplikacija raditi
Identifikovati kljuna pitanja pitanja o
kvalitetu softvera i drugim problemima
Definisati kandidate reenja napraviti
prototip koji poboljava i procenjuje reenje u
odnosu na kljuna scenarija, probleme i
ogranienja pre nego to se krene na
narednu iteraciju projektovanja arhitekture
Informacioni
sistemi
Prof. dr Angelina
Njegu

Slojevita arhitektura
Veliki sistemi se moraju
dekomponovati
Sistem mora da vodi
rauna i o hardveru i o
optim servisima i
domenu problema itd.
Nije poeljno pisati
vertikalne komponente
koje rade na svim
nivoima!
Delovi sistema treba da
budu zamenjivi
Promene u
komponentama ne bi
trebalo da se osete
Sline odgovornosti bi
trebalo grupisati
zajedno
Veliina komponenti
kompleksne
komponente bi trebalo
dekomponovati
Informacioni
sistemi
Prof. dr Angelina

Primer grupisanja tj. pakovanja


Njegu

sluajeva korienja

Use case model Iznajmljivanje kola


Informacioni
sistemi

Primer grupisanja komponenata Prof. dr Angelina


Njegu

sistema iznajmljivanja kola u dva


paketa
Informacioni
sistemi
Prof. dr Angelina
Njegu

Primer grupisanja use case-ova


Informacioni
sistemi
Prof. dr Angelina

Primer rasporeivanja paketa Njegu

prema slojevima arhitekture


Informacioni
sistemi
Prof. dr Angelina

Slikoviti primer slojevite Njegu

arhitekture
Informacioni
sistemi
Prof. dr Angelina
Njegu

Primer Android arhitekture


Informacioni
sistemi
Prof. dr Angelina

Model-View-Controller, MVC
Njegu

obrazac arhitekture
Upotrebljivost softvera uglavnom zavisi od
korisnikih interfejsa
MVC se sastoji od tri kljune komponente:
1. Model komponenta koja sadri strukturu
poslovnog sistema tj. podatke i njene
operacije
2. View obezbeuje korisniki interfejs
preko koga korisnik komunicira sa
sistemom, a takoe alje korisniku
izvetaje dobijenih iz modela
3. Controller upravlja izvravanjem
sistemskih operacija. Prihvata zahtev od
klijenta i izvrava zadatke:
koordinira zahtevima klijenata
aurira Model i View na osnovu korisnikog
inputa
nadgleda i planira ta treba da se prikae i
izmeni
poziva izabrani Model i izvrava logiku
Npr., dok aurira podatke zaposlenih,
Controller odluuje koju veb stranu treba
prikazati
U domenu razvoja Web aplikacija, JSP
(JavaServerPages) specifikacija predvia
Informacioni
sistemi
Prof. dr Angelina

Opis MVC kroz dijagram Njegu

sekvenci
Informacioni
sistemi
Prof. dr Angelina
Njegu

Primer MVC
Informacioni
sistemi
Prof. dr Angelina
Njegu

Analiza sluajeva korienja


Analiza
Za svaki tok dogaaja use
case-a treba:
Identifikovati klase koje
izvravaju tokove dogaaja
sluajeva korienja
(upotrebe)
Raspodeliti ponaanja
use case-a na klase -
koristi se use case
realizacija
Modelovati interakcije
izmeu klasa na
dijagramima interakcije
Uoiti upotrebu
mehanizama arhitekture
Informacioni
sistemi
Prof. dr Angelina
Njegu

Use case realizacija


Use case realizacija se moe predstaviti skupom
dijagrama koji:
Modeluju sadraj kolaboracije - klase/objekti koji
implementiraju use case i njihove relacije dijagrami klasa
Modeluju interakcije kolaboracije - u kakvoj su interakciji
ove klase/objekti da bi izvrile use case dijagrami
komunikacije i sekvenci
Informacioni
sistemi
Prof. dr Angelina
Njegu

Analiziranje
Analiza klasa klasa
Kompletno ponaanje use case-a mora da se raspodeli na
klase
Informacioni
sistemi
Prof. dr Angelina
Njegu

Analiza klasa
Tehnika za pronalaenje klasa koristi tri razliite perspektive
sistema:
Granica izmeu sistema i aktera (Boundary)
Informacije koje sistem koristi (Entity)
Logika kontrole sistema (Control)

Boundary Entity Control

RegistrationForm CourseOffering RegistrationManager


Informacioni
sistemi
Prof. dr Angelina

ta su granine klase (boundary


Njegu

class)?
Sistem moe da ima nekoliko tipova graninih klasa:
Klase korisnikog interfejsa (user interface classes) klase
koje posreduju u komunikaciji sa ljudima, korisnicima sistema
Klase interfejsa sistema (system interface classes) klase
koje posreduju u komunikaciji sa drugim sistemima
Klase interfejsa ureaja (device interface classes) klase
koje obezbeuju interfejs ka ureajima koji detektuju spoljne
dogaaje

Za inicijalnu identifikaciju graninih klasa preporuuje se


jedna granina klasa po paru akter/use-case
Granine klase se koriste za modelovanje sistemskih
interfejsa
Informacioni
sistemi
Prof. dr Angelina
Njegu

Uloga granine klase


Granina klasa se koristi za modelovanje interakcija izmeu
okruenja sistema i njegovog unutranjeg rada
Informacioni
sistemi
Prof. dr Angelina
Njegu

Primer graninih klasa

RegisterForCoursesForm - CourseCatalogSystem je
prikazuje listu kurseva za interfejs izmeu legacy
tekui semestar od kojih sistema koji obezbeuje
student moe da bira katalog svih kurseva na
kurseve koje eli da doda univerzitetu
na svoj raspored
Informacioni
sistemi
Prof. dr Angelina
Njegu

ta su klase entiteta?
Klase entiteta
predstavljaju skladita
podataka u sistemu
Obino su perzistentni,
sadre atribute i
ponaanja u toku
ivotnog veka sistema
Tipini primeri klasa
entiteta:
u sistemu bankarskog
poslovanja su Raun i
Klijent
kod sistema umreavanja
su vor i link
Glavne odgovornosti
klasa entiteta su
skladitenje i upravljanje
Informacioni
sistemi
Prof. dr Angelina
Njegu

Klasa entiteta
Izvori za kreiranje klasa entiteta su:
Renik (razvijen tokom zahteva)
Model domena poslovanja (razvijen tokom modelovanja poslovanja)
Use case tok dogaaja (razvijen tokom zahteva)
Kljune apstrakcije (identifikovane u analizi arhitekture)
Informacioni
sistemi
Prof. dr Angelina

Primeri kandidata klase Njegu

entiteta

Sistem registrovanja na kurseve odrava informacije o studentima


nezavisno od toga to je student i akter u sistemu
Informacioni
sistemi
Prof. dr Angelina
Njegu

ta je kontrolna klasa?
Kontrolna klasa (Control class) je
klasa koja se koristi za
modelovanje ponaanja koje je
specifino za jedan ili vie
sluajeva korienja
Kontrolna klasa enkapsulira
ponaanje odreenog use case-a
Ne zahtevaju svi use case-ovi
kontrolne klase

Preporuka kod inicijalne


identifikacije kontrolnih klasa da
bude jedna kontrolna klasa po
use case-u
Informacioni
sistemi
Prof. dr Angelina
Njegu

Uloga kontrolnih klasa


Kontrolne klase obezbeuju ponaanje koje definie logiku
kontrole (redosled izmeu dogaaja) i transakcija sluajeva
korienja
Informacioni
sistemi
Prof. dr Angelina

Primer pronalaenja kontrolnih


Njegu

klasa
Identifikovati jednu kontrolnu klasu po use case-u
Sloeniji use case-ovi mogu da zahtevaju i vie kontrolnih klasa
Svaka kontrolna klasa je odgovorna za kontrolisanje procesa koji
implementira funkcionalnost use case-a
Na primeru, kontrolna klasa <<control>> RegistrationController je
definisana da vodi proces Register for courses unutar sistema
Informacioni
sistemi
Prof. dr Angelina
Njegu

Primer analize klasa

Za svaku realizaciju use case-a, postoji jedan ili vie dijagrama


klasa
Dijagrami klasa osiguravaju da postoji konzistentnost u use case
implementaciji
Informacioni
sistemi
Prof. dr Angelina
Njegu

Primer
Informacioni
sistemi
Prof. dr Angelina
Njegu

Primer
Informacioni
sistemi
Prof. dr Angelina
Njegu

Modelovanje interakcija izmeu klasa


Do sada smo identifikovali kandidate klasa, a sada treba da
raspodelimo use case ponaanja na klase!
Moete kreirati dijagrame interakcije za svaki scenario use case-a
Dijagrami interakcije pokazuju interakcije sistema sa akterima
Dijagrami interakcije su dijagram sekvenci i dijagram komunikacije
Interakcije treba da ponu sa akterom, jer akter uvek poziva use case!
Ukoliko imate nekoliko instanci aktera na istom dijagramu, trudite se da
ih stavite du ivica dijagrama

49
Informacioni
sistemi
Prof. dr Angelina
Njegu

Dijagram sekvenci
Dijagram sekvenci (Sequence diagram) opisuje interakcije
izmeu objekata ureenih hronolokim redom
Pokazuje objekte koji uestvuju u interakciji i poruke koje alju
vizuelizuje jedan scenario ili odreeno ponaanje poslovnih procesa u
vremenu
Objekat (Object) je prikazan kao vertikalna takasta linija koja se
zove lifeline
Lifeline ili ivotna linija prikazuje postojanost objekata u
odreenom vremenu
U simbolu objekta se navodi naziv objekta i njegove klase odvojenih
dvotakom i podvuenih
Informacioni
sistemi
Prof. dr Angelina
Njegu

Dijagram sekvenci
Poruka (Message) je
komunikacija izmeu objekata
koji prenosi informaciju
Poruka se prikazuje kao
horizontalna linija od ivotne
linije jednog objekta do ivotne
linije drugog objekta
Strelica je oznaena nazivom
poruke i njenim parametrima, a
moe biti oznaena i sa rednim
brojem
Fokus kontrole (Focus of
control) se obeleava kao uzak
pravougaonik i predstavlja
vreme kada je kontrola
fokusirana na objekat
Hijerarhijsko numerisanje
(Hierarchical numbering) - npr.,
poruka 1.1 zavisi od poruke 1.
Tekstovi (scripts) tekstualno
opisuju tok dogaaja
Informacioni
sistemi
Prof. dr Angelina
Njegu

Poruke (Messages)
Sinhrone poruke (Synchronous message)
Sinhrone poruke se koriste onda kada poiljalac eka dok primaoc ne
zavri obradu poruke, tek nakon toga pozivaoc moe da nastavi
Pravougaonik na ivotnoj liniji klase primaoca oznaava da se on odazvao
na poruku
Veina metoda poziva u objektno-orijentisanim programskim jezicima su
sinhrone
Zatvoren i popunjen vrh strelice oznaava da je poruka sinhronizovana

Ukoliko hoete da prikaete da je primaoc zavrio obradu poruke i vratio


kontrolu poiljaocu, nacrtajte isprekidanu liniju od primaoca do poiljaoca
Da bi dijagram bio lak za itanje, poeljno je prikazati povratnu strelicu
Informacioni
sistemi
Prof. dr Angelina
Njegu

Poruke
Trenutne poruke (Instantaneous message)
Poruke se smatraju trenutnim ukoliko je vreme koje je potrebno da stignu
do primaoca zanemarljivo (Slika 1)

Netrenutne poruke (NonInstantaneous message)


Nekim porukama je potrebno odreeno vreme da stignu do primaoca (npr.
preko mree) takve poruke se crtaju kosom linijom (Slika 2)
Ovakve poruke bi trebalo crtati jedino ukoliko se eli naglasiti da poruka
putuje sporim komunikacionim kanalom (i eventualno se eli dati iskaz o
moguem kanjenju poruke)
Informacioni
sistemi
Prof. dr Angelina
Njegu

Poruke
Pronaena poruka (Found message)
Pronaena poruka je poruka kod koje pozivaoc nije prikazan (ili
poiljaoc nije poznat ili nije relevantno za interakciju ko je
poiljaoc)
Prikazuje se kao pun krug na vrhu strelice
Informacioni
sistemi
Prof. dr Angelina
Njegu

Poruke
Asinhrone poruke (Asynchronous messages)
Kod asinhrone poruke poiljaoc ne eka primaoca da zavri obradu
poruke, ve odmah nastavlja sa slanjem drugih poruka
Poruke koje u drugom procesu ili pozivu zapoinju novu nit su primeri
asinhronih poruka
Asinhrona poruka se prikazuje kao otvorena strelica
Informacioni
sistemi
Prof. dr Angelina
Njegu

Poruke
Povratna poruka (Message to self)
Treba imati na umu da je svrha dijagrama sekvenci da prikae interakciju
izmeu klasa, te s toga treba dobro razmisliti kada se dodaju povratne
poruke na dijagram
Informacioni
sistemi
Prof. dr Angelina
Njegu

Poruke
Kreiranje i unitenje (Creation and destruction)
Objekti koji se kreiraju na poetku interakcije se stavljaju pri vrhu
dijagrama, a svaki naredni se nastavljaju na prethodni, u trenutku njihovog
nastajanja
ivotna linija objekta se protee dokle god objekat egzistira
Ukoliko se objekat tokom interakcije uniti, ivotna linija se prekida i stavlja
se oznaka X
Informacioni
sistemi
Prof. dr Angelina
Njegu

Poruke: Uslovne interakcije


Uslovne interakcije (Conditional interaction)
Poruka moe da ukljui uslov to oznaava da se poruka alje samo
ukoliko je ispunjen odreeni uslov
Uslov se ispisuje u srednjoj zagradi ispred naziva poruke
Informacioni
sistemi
Prof. dr Angelina
Njegu

Kombinovani fragment opt


Kombinovani fragment opt (opt combined fragment)
Ukoliko se nekoliko poruka alje pod istim uslovom onda se koristi opt
fragment
Prikazuje se kao veliki pravougaonik sa operatorom opt i uslovom i sadri
sve uslovne poruke koje treba da se dogode pod datim uslovom
Uslovne poruke ili opt fragment je slian if konstrukciji u programskim
jezicima
Informacioni
sistemi
Prof. dr Angelina
Njegu

Kombinovani fragment alt


Kombinovani
fragment alt
Ukoliko se ele prikazati
nekoliko alternativnih
interakcija, koristi se
alt kombinovani
fragment
Svaka alternativa ima
uslov i sadri interakcije
koje se dogaaju kada se
eljeni uslov ispuni
Najmanje jedan operand
treba da se dogodi
'alt fragment je slian
ugnjedenim if-then-else
ili switch/case
konstrukcijama kod
Informacioni
sistemi
Prof. dr Angelina
Njegu

Ponavljajua interakcija
Ponavljajua poruka (Repeated interaction)
Ukoliko ispred naziva poruke stoji simbol '*, znai da se poruka alje
uzastopnim ponavljanjem
Uslov ukazuje pod kojim stanjem se poruka ponovo alje
Dok god je uslov ispunjem poruka se ponavlja
Informacioni
sistemi
Prof. dr Angelina
Njegu

Ponavljajua interakcija
Slanje ponavljajue poruke elementima kolekcije
ee se koristi za slanje iste poruke razliitim elementima u kolekciji
U ovakvom scenariju, primaoc ponavljajue poruke je viestruki objekat, a
uslov ukazuje na stanje koje kontrolie ovo ponavljanje
Svaki element u kolekciji prihvata poruku
Za svaki element pre nego to mu se poalje poruka proverava se stanje
Obino, stanje predstavlja filter koji probira elemente iz kolekcije (npr.,
novi klijenti, odrasli, svi filteri za kolekciju objekata Osoba)
Informacioni
sistemi
Prof. dr Angelina
Njegu

Ponavljajua interakcija
loop kombinovani fragment
Ukoliko se vie poruka alje u istoj iteraciji, koristi se loop kombinovani
fragment
Operator fragmenta loop (petlja), a uslov predstavlja stanje koje kontrolie
petlju
Primaoc ponavljajue poruke je kolekcija, a uslov uglavnom predstavlja
odreeni filter za elemente kolekcije
Informacioni
sistemi
Prof. dr Angelina

Definisanje proirenih notacija na


Njegu

dijagramu sekvenci
Informacioni
sistemi
Prof. dr Angelina
Njegu

ATM sistem
Scenario:
podizanje
novca
Informacioni
sistemi

Primer dijagrama sekvenci


Prof. dr Angelina
Njegu

Scenario: Kreiranje rasporeda kurseva


u okviru use case-a: Registracija na kurseve

RegisterForCoursesFo
rm:
zna koji podaci joj
trebaju i kako da ih
prikae, ali ne zna gde
da ih potrai, to je
odgovornosti
RegistrationController
u interakciji je sa
akterom Student
RegistrationController
razume kako su
povezani Students i
Schedules
Jedino je klasa
CourseCatalogSyste
m u interakciji sa
spoljnim legacy
Course Catalog
Informacioni
sistemi
Prof. dr Angelina

Primer:
Njegu

Kreiranje zapisa i pretraga knjiga


Informacioni
sistemi
Prof. dr Angelina
Njegu

Primer za vebu: ATM


Korisnik bira opciju
podizanja novca
(withdrawCash) ova
poruka sa parametrima
(broj rauna i iznos) se
alje ATM interfejsu
ATM zahteva od sistema
banke stanje na raunu
(getBalance) za dati broj
rauna
Sistem banke vraa
stanje (balance)
Ukoliko je stanje vee od
iznosa, treba da se
zadui dati raun za
iznos koji je uneen za
podizanje
Informacioni
sistemi
Prof. dr Angelina

Primer za vebu
Njegu

Scenario logovanja na sistem


Klijent eli da se loguje - requestLogon()
SecurityLogon prikazuje ekran za
logovanje na sistem -
displayLogonScreen()
Klijent unosi name, pass
Izvrava se petlja pod sledeim uslovom
[while valid==false]:
SecurityLogon alje na proveru user i pass
(isValid(name, pass)) ka bazi korisnikih
naloga (AccountDB)
AccountDB proverava da li naziv postoji u
bazi (isInDatabase(name) u Sistemu
(System)
Sistem vraa tip korisnika (userType)
AccountDB vraa info o validnosti (valid)
Interfejs SecurityLogon prikazuje poruku o
greci (displayErrorMessage())
Ponovo otvara tj. prikazuje Logon ekran
(displayLogonScreen())
SecurityLogon proverava uslov:
Ukoliko je [userType==admin] onda
prikazuje ekran za logovanje administratora
(displayAdmin())
Informacioni
sistemi
Prof. dr Angelina
Njegu

Dijagram komunikacije
Opisuje interakcije izmeu objekata
prikazujui njihove veze i poruke koje
mogu poslati jedni drugima
Objekat se predstavlja na jedan od tri
naina:
NazivObjekta:NazivKlase
NazivObjekta
:NazivKlase
Poruka je komunikacija izmeu
objekata koja prenosi informaciju
Oznaava se kao imenovana strelica
pored linka, to znai da se link koristi
za prenos ili za implementaciju predaje
poruke ciljnom objektu
Strelica ukazuje na pravac ciljnog
objekta (onoga ko prima poruku)
Brojevi redosleda se koriste radi
oznaavanja redosleda poruka u
interakciji
Informacioni
sistemi
Prof. dr Angelina

Primer dijagrama komunikacije Njegu

Scenario: Kreiranje rasporeda kurseva


u okviru use case-a: Registracija na kurseve
Informacioni
sistemi
Prof. dr Angelina

Jedan dijagram interakcije nije


Njegu

dovoljan
Treba modelovati veinu tokova dogaaja kako bi se osiguralo da
su identifikovani svi zahtevi za operacijama klasa
Ponite sa opisivanjem osnovnog toka, koji je opti ili najvaniji tok
dogaaja
Zatim opiite varijante kao to su tokovi izuzetaka
Trivijalne tokove, koji se odnose samo na jedan objekat, bi trebalo
zanemariti
Primeri tokova izuzetaka:
Rukovanje sa grekama: ta bi sistem trebao da radi kada bi se
pojavila greka?
Isticanje vremena: Ukoliko korisnik ne odgovori u odreenom
periodu, onda bi use case trebao da preuzme odreene mere
Pogreni inputi
Informacioni
sistemi
Prof. dr Angelina

Dijagrami komunikacije vs Dijagrami


Njegu

sekvenci
Dijagrami saradnje i sekvenci prikazuju sline informacije, ali na razliite
naine
Predlo je da se dijagrami komunikacije koriste u fazi analize, a dijagram
sekvenci kod projektovanja
Dijagrami komunikacije Dijagrami sekvenci
Istiu strukturu saradnje objekata Prikazuju jasnu sekvencu poruka i
i pruaju jasniju sliku o relacijama bolje su za sloena scenarija u
i kontrolama koje postoje izmeu realnom vremenu
objekata koji uestvuju u use Ukljuuju hronoloku sekvencu
case-u Vremenska dimenzija je veoma laka
za itanje; operacije i parametre je
lake predstaviti i lake se upravlja
velikim brojem objekata
Informacioni
sistemi
Prof. dr Angelina

Dijagram komunikacije: log-on


Njegu

scenario
Informacioni
sistemi
Prof. dr Angelina

Veba 1: Napraviti dijagram


Njegu

komunikacije
Informacioni
sistemi
Prof. dr Angelina

Veba 1: Dijagram Njegu

komunikacije
Informacioni
sistemi
Prof. dr Angelina
Njegu

Veba 2: Rent-a-car
Informacioni
sistemi
Prof. dr Angelina

Veba 2: Dijagram Njegu

komunikacije
Informacioni
sistemi
Prof. dr Angelina
Njegu

Konceptualni dijagram klasa


Koje su odgovornosti (ponaanja) klase?
Akcije/Metode koje objekat moe da izvrava
Znanje koje objekat odrava i prua drugim objektima
Kako pronai ponaanja?
Mogu se izvui iz poruka sa dijagrama interakcije
Druga ponaanja se mogu izvui iz nefunkcionalnih zahteva

79
Informacioni

Primer identifikovanja metoda


sistemi
Prof. dr Angelina
Njegu

klasa za use case registrovanje


na kurs
Informacioni
sistemi
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
Informacioni
sistemi
Prof. dr Angelina

Identifikovanje kljunih apstrakcija


Njegu

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
Informacioni
sistemi
Prof. dr Angelina

Identifikovanje kljunih apstrakcija


Njegu

na primeru klase LiftController


Informacioni
sistemi
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
Informacioni
sistemi
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 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
Informacioni
sistemi
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
Informacioni
sistemi
Prof. dr Angelina
Njegu

ta je agregacija?
Specijalni oblik asocijacije koja modeluje relacije izmeu celine i
njenih delova
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
Relaciju agregacije bi trebalo koristiti kada je:
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)
Informacioni
sistemi
Prof. dr Angelina
Njegu

Primer

Relacija izmeu studenta i rasporeda (Schedule) je


modelovana kao agregacija, jer je raspored nerazdvojivo
vezan za odreenog studenta
Raspored van konteksta studenta nema nikakvog smisla u
sistemu Registrovanja na kurs (Course Registration)
Relacija od Rasporeda (Schedule) do Ponude kurseva
(CourseOffering) je asocijacija jer kursevi mogu da se pojave
na vie rasporeda
Informacioni
sistemi
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
Informacioni
sistemi
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
Informacioni
sistemi
Prof. dr Angelina
Njegu

Odnos relacija
Informacioni
sistemi
Prof. dr Angelina

Mogue relacije na dijagramu Njegu

klasa

92
Informacioni
sistemi
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)
Informacioni
sistemi
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
Belei se na oba kraja relacije
Multiplikativnost odgovara na dva pitanja:
Da li je asocijacija obavezna ili opciona? ako je nula onda je takva asocijacija
opciona
Koji je minimalni, a koji maksimalni broj instanci koje mogu biti povezane ka
drugoj instanci?
Informacioni
sistemi
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
Informacioni
sistemi
Prof. dr Angelina
Njegu

Primer pronalaenja relacija


Informacioni
sistemi
Prof. dr Angelina
Njegu

Objektni dijagram
Objektni dijagram je primarno alat za istraivanje i
testiranje
Moe se koristiti i za razumevanje problema
dokumentovanjem primera za odreeni domen problema,
kao i za verifikovanje tanosti dijagrama klasa
Objektni dijagram modeluje injenice o odreenim
entitetima, dok dijagram klasa modeluje pravila za tipove
entiteta
UML notacija objekta:
Informacioni
sistemi
Prof. dr Angelina

Poreenje objektnog dijagrama Njegu

i dijagrama klasa
Informacioni
sistemi
Prof. dr Angelina

Primena objektnog dijagrama za


Njegu

testiranje dijagrama klasa

Svaka isporuka moe da ima nula ili vie Proizvoda dobavljaa i nula ili vie
kastimiziranih proizvoda (proizvoda po narudbi)
Svaki tip proizvoda moe, a i ne mora biti isporuen
Informacioni
sistemi
Prof. dr Angelina

Primena objektnog dijagrama za


Njegu

testiranje dijagrama klasa


Kastimiziran proizvod je sastavljen od proizvoda dobavljaa.
Proizvodi dobavljaa 28, 38 i 72 kreiraju custom proizvod
425
Informacioni
sistemi
Prof. dr Angelina

Primena objektnog dijagrama za


Njegu

testiranje dijagrama klasa - nastavak


Koji je najmanji broj objekata koji ini Custom proizvod?
Custom proizvod mora da se sastoji od najmanje dva
proizvoda dobavljaa, inae ga drugaije neemo moi
razdvojiti
Informacioni
sistemi
Prof. dr Angelina

Primena objektnog dijagrama za


Njegu

testiranje dijagrama klasa - nastavak


Da li postoji evidencija o tome da Custom proizvod moe da bude
ugraen u drugi Custom proizvod?
Mora da se podri relacija agregacije izmeu jednog i drugog
custom proizvoda
Informacioni
sistemi
Prof. dr Angelina

Primena objektnog dijagrama za


Njegu

testiranje dijagrama klasa - nastavak


Da li postoje zajednike karakteristike izmeu 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 objanjava da bilo koji tip proizvoda
moe da uestvuje u montai kastimiziranog proizvoda
Informacioni
sistemi
Prof. dr Angelina

Poreenje modela podataka (ERD) i Njegu

dijagrama klasa
Informacioni
sistemi

Primer grupisanja klasa u


Prof. dr Angelina
Njegu

pakete
Informacioni
sistemi
Prof. dr Angelina
Dijagram klase prema slojevima Njegu

arhitekture
Informacioni
sistemi
Prof. dr Angelina

Konceptualni dijagram klasa -


Njegu

primer
Informacioni
sistemi
Prof. dr Angelina
Njegu

Primer: Airline ticketing system

108
Informacioni
sistemi
Prof. dr Angelina

Primer: Njegu

Dijagram
klase za
oping korpu
Informacioni
sistemi
Prof. dr Angelina

Poreenje konceptualnog i
Njegu

dijagrama klasa
Informacioni
sistemi
Prof. dr Angelina
Njegu

Dijagram klasa
Informacioni
sistemi
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
Informacioni
sistemi
Prof. dr Angelina

Veba 2: Nacrtati konceptualni


Njegu

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 jednim doktorom konsultantom
Jedan tim brine o vie pacijenata
Doktor lei vie pacijenata
Doktor konsultant je odgovoran za vie pacijenata
U bolnikoj sobi moe biti vie pacijenata
Informacioni
sistemi
Prof. dr Angelina
Njegu

Konceptualni dijagram klasa

114
Informacioni
sistemi
Prof. dr Angelina

Veba 3: Identifikovati klase i njihova


Njegu

ponaanja sa dijagrama komunikacije


Informacioni
sistemi
Prof. dr Angelina

Mapiranje elemenata dijagrama


Njegu

komunikacije u dijagram klase


Informacioni
sistemi
Prof. dr Angelina
Njegu

IBM Rational Software Architect


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

You might also like