1 1 Modelovanje aplikacije korišćenjem UML-a 2 Objektno modelovanje - UML UML (Unified Modeling Language) - objedinjeni vizuelni jezik za poslovno i softversko modelovanje u svim fazama razvoja i za sve tipove sistema, kao i za generalno modelovanje kojim se definišu statičke strukture i dinamičko ponašanje. Standardni jezik za: vizuelizaciju specifikaciju konstruisanje i dokumentovanje softverskih sistema UML kombinuje najbolje iz: Koncepta “Data Modeling” (Entity Relationships Diagrams) Poslovnog modelovanja (work flow) Objektnog i komponentnog modelovanja 3 UML UML je projektovan kao vrlo fleksibilan i prilagodiv jezik, koji omogućava vrlo različite vrste modelovanja, uključujući: modele koji olakšavaju razumevanje poslovnih procesa, odvijanja tokova događaja, sekvenci upita, aplikacija, baza podataka, arhitektura i drugog. 4 UML UML je nastao kao rezultat evolucije objektno orijentisanih jezika za modelovanje. Razvila ga je kompanija Rational Software objedinjavanjem tri vodeće metode objektno orijentisanog modelovanja: Booch koji je razvio Grady Booch, OMT (Object Modeling Technique) koji je razvio Jim Rambaugh i OOSE (Object-Oriented Software Engineering) koji je razvio Ivar Jacobson. 5 Arhitektura softverskih sistema Kako je sistem struktuiran? Koje su funkcije sistema? Kako izgraditi sistem? Gde instalirati? Kako je sistem predstavljen? Kako se sistem ponaša? 6 Kategorije korisnika UML koriste sledeće kategorije korisnika Sistem analitičari i krajnji korisnici – specifikacija zahtevane strukture i ponašanje sistema Arhitekte sistema – projektanti sistema koji će zadovoljiti zahteve Razvojni inženjeri (developers) – transformišu arhitekturu u izvršni kod Kontrolori kvaliteta – provera strukture i ponašanje sistema Rukovodioci projekta (menagers) – vode i usmeravaju kadrove i resurse
18
Embed
Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
1
Modelovanje aplikacije koriš ćenjem UML-a
2
Objektno modelovanje - UML
� UML ( Unified Modeling Language) - objedinjeni vizuelni jezik za poslovno i softversko modelovanje u svim fazama razvoja i za sve tipove sistema, kao i za generalno modelovanje kojim se definišu statičke strukture i dinamičko ponašanje.
� UML je projektovan kao vrlo fleksibilan i prilagodiv jezik, koji omogućava vrlo različite vrste modelovanja, uključujući: � modele koji olakšavaju razumevanje poslovnih procesa,
� odvijanja tokova događaja,
� sekvenci upita,
� aplikacija,
� baza podataka,
� arhitektura i drugog.
4
UML
� UML je nastao kao rezultat evolucije objektno orijentisanih jezika za modelovanje.
� Razvila ga je kompanija Rational Software objedinjavanjem tri vodeće metode objektno orijentisanog modelovanja:� Booch koji je razvio Grady Booch,� OMT (Object Modeling Technique) koji je razvio Jim Rambaugh i � OOSE (Object-Oriented Software Engineering) koji je razvio Ivar
Jacobson.
5
Arhitektura softverskih sistema
Kako je sistem struktuiran?
Koje su funkcije sistema? Kako izgraditi
sistem?
Gde instalirati?
Kako je sistem predstavljen?
Kako se sistem ponaša?
6
Kategorije korisnika
� UML koriste sledeće kategorije korisnika� Sistem analitičari i krajnji korisnici – specifikacija
zahtevane strukture i ponašanje sistema
� Arhitekte sistema– projektanti sistema koji će zadovoljiti zahteve
� Razvojni inženjeri (developers) – transformišu arhitekturu u izvršni kod
� Kontrolori kvaliteta – provera strukture i ponašanje sistema
� Rukovodioci projekta (menagers) – vode i usmeravaju kadrove i resurse
2
7
UML dijagrami
� Dijagram u UML-u – grafička predstava skupa elemenata - iscrtan kao graf čvorova (stvari) i lukova (relacija)
� Dijagrami UML-a prikazuju sistem iz više uglova:
� Dijagram slučajeva upotrebe (Use-Case Diagram)
� Dijagram klasa (Class Diagram)
� Dijagram objekata (Object Diagram)
� Dijagram sekvenci (Sequence Diagram)
� Dijagram saradnje (Collaboration Diagram)
� Dijagram promene stanja (State Diagram)
� Dijagram aktivnosti (Activity Diagram)
� Dijagram komponenti (Component Diagram)
� Dijagram razvoja (Deployment Diagram)
8
Gradivni blokovi UML-a
� Stvari (things)
� Relacije (relationships)
9
Things
Postoje 4 vrste stvari (things):
� Stvari strukture – statički delovi modela koji reprezentuju konceptualne ili fizičke elemente (imenice)
� Stvari ponašanja – dinamički delovi modela koji reprezentuju ponašanje kroz prostor i vreme (glagoli)
� Stvari grupisanja - organizacioni delovi modela
� Stvari anotacije – opisni delovi modela, komentari koji se primenjuju na bilo koji dokument
10
Stati čki delovi modelaIme Simbol Opis
KlasaOpis skupa objekata koji dele iste atribute, operacije, veze i semantiku. Implementira 1 ili više interfejsa.
InterfejsKolekcija operacija koje opisuju servise klase ili komponente.
Kolaboracija (Saradnja)
Definiše interakciju i udružuje uloge i druge elemente tako da rade zajedno i obezbeđuju kolaborativno ponašanje.
Korisnik Spoljašnji entitet koji komunicira sa sistemom, obično osoba.
Slučaj upotrebe
Opis skupa sekvenci akcija koje sistem izvodi da bi izvršio neki zahtev korisnika.
Aktivne klase
Klase čiji objekti poseduju jedan ili više procesa ili niti –mogu inicirati kontrolnu aktivnost.
Komponenta Fizički i zamenljivi deo sistema koji obezbeđuje realizaciju skupa interfejsa
Čvor Fizički element koji postoji u vreme izvršavanja i predstavlja računarski resurs – ima memoriju i mogućnost procesiranja.
11
Dinami čki delovi UML modela
Ime Simbol Opis
InterakcijaPonašanje prilikom razmene skupa poruka između skupa objekata da bi se objasnile specifične namene.
Prikaz stanjaPonašanje specificirano sekvencom stanja objekta ili neke interakcije.
prikaz
Čekanje
12
Organizacioni delovi UML modela
Ime Simbol Opis
Paket
Grupe na koje model može biti dekomponovan. Mehanizam opšte namene, za organizovanje elemenata u grupe.
Paket je čisto konceptualan – postoji samo u vreme razvoja.
3
13
Delovi za objašnjenja
Ime Simbol Opis
Anotacija
Komentari kojima opisujemo, objašnjavamo i naznačavamo bilo koji element u modelu.
Osnovna vrsta anotacije je napomena (note).
14
Relacije (relationships)
Ime Simbol Opis
Zavisnost
Semantička relacija između nezavisne i zavisne stvari. Nezavisna stvar utiče na semantiku zavisne.
Usmerenje – iz zavisnog slučaja.
AsocijacijaStrukturna relacija koja opisuje skup veza kojim se postavlja veza između objekata.
Generalizacija
Objekti specijalizovanih elemenata (dete) predstavljaju zamene za objekte generalizovanih elemenata (roditelj).
Vrh strelice na roditelju.
RealizacijaSemantička relacija između klasifikatora, gde jedan klasifikator specificira ugovor koji drugi klasifikator garantuje da će ispuniti.
0..1 *
radi radj
15
Dijagrami slu čajeva upotrebe (koriš ćenja)
16
Dijagram slu čajeva upotrebe(Use-Case Diagram)
� Omogućavaju krajnjim korisnicima da razumeju sistem
� Pogled korisnika na funkcionisanje sistema (šta sistem radi, a ne kako sistem funkcioniše)
� Razvoj dijagrama slučajeva upotrebe definiše se sledećim aktivnostima:� Definisanjem učesnika
� Definisanjem slučajeva upotrebe
� Definisanjem tipova veza između učesnika i slučajeva upotrebe
� Izradom dijagrama slučajeva upotrebe
Učesnik
Asocijativni naziv
Slučaj upotrebe
17
Primer 1.
� Potrebno je napraviti aplikaciju koja će omogućiti korisniku da preko Interneta rezerviše bioskopske ulaznice za željene projekcije.
� Takođe je potrebno omogućiti korisniku stalan uvid u bioskopski repertoar i informacije o bioskopu u kojem željeni film igra.
18
Dijagram slu čajeva upotrebe
korisnik
Pregled filmova
Pregled bioskopa
Rezervacija
4
19
Dijagram slu čaja upotrebeprocesa rezervacije
Odabir filma
Odabir bioskopa
Odabir termina
Rezervacija karata
Potvrda rezervacije
Unos podataka
korisnik
20
Definisanje u česnika
� Korisnik je čovek koji koristi sistem, dok je učesnik specifična uloga koju korisnik ima u komunikaciji sa sistemom
� Učesnik – osoba ili veštački entitet (softver ili sistem) koji učestvuje u slučaju upotrebe
21
Definisanje u česnika
Učesnika je moguće identifikovati na osnovu odgovora na sledeća pitanja:
� Ko će koristiti osnovnu funkcionalnost sistema (primarni učesnici)
� Ko treba da upravlja, administrira i održava sistem (sekundarni učesnici)
� Kome će biti potrebna podrška sistema u obavljanju dnevnih zadataka
� Kojim hardverskim uređajima sistem treba da upravlja
� Sa kojim drugim sistemima dotični sistem treba da bude u vezi
� Ko ili šta je zainteresovan za rezultate koje sistem proizvodi
22
Definisanje slu čajeva upotrebe
� Slučaj upotrebe – definiše funkcionalnost sistema sa stanovišta učesnika – šablon ponašanja delova sistema
� Pitanja za učesnika – identifikuju slučajeve upotrebe:� Koje funkcije učesnik zahteva od sistema – šta učesnik treba da
radi?
� Da li učesnik treba da čita, kreira, briše, izmeni ili da unese neke informacije u sistem?
� Da li učesnik treba da bude obavešten o događajima u sistemu?
� Da li svakodnevni rad učesnika može da se pojednostavi kroz nove funkcije sistema?
23
Definisanje veze izme đu učesnika i slu čajeva upotrebe
� Veze koje se uspostavljaju u dijagramu slučajeva upotrebe:� Asocijacija (Association)
� Asocijacija između slučajeva upotrebe tipa <<include>>
� Asocijacija između slučajeva upotrebe tipa <<extend>>
� Generalizacija (Generalization-Inheritance)
� Zavisnost (Depedency)
24
Asocijacija
� Bidirekciona veza – linija koja spaja učesnike i slučajeve upotrebe
� Asocijacija između samih učesnika ili slučajeva upotrebe, definiše povezanost tih elemenata
Menadžer projekta
Inženjer razvoja
Razvoj sistema
5
25
Upotreba tipa <<include>>
� Slično ponašanje deli se između sličnih slučajeva upotrebe
� Veza <<include>> opisuje odnos između slučajeva upotrebe u kojem jedan slučaj upotrebe koristi usluge drugog
<<include>> <<include>>
<<include>>
Razvoj softvera
Operacije sistema
Razvoj sistema
Definicija problema
26
Upotreba tipa <<include>>
Korisnik LoginPristupa Webu
<< include>>
27
Upotreba tipa <<extend>>
� “Proširivanjem” jednog sučaja upotrebe opisuje se neka složenija funkcija sistema
� Proširivanje se vrši sa jednim ili više drugih postojećih slučajeva upotrebe
� Ako slučaj A proširuje slučaj B: � i slučaj A i slučaj B mogu da postoje sami
� slučaj B može (a ne mora) da bude proširen slučajem A
A B<<extend>>
28
Upotreba tipa <<extends>>
<<extend>> Praćenje finansija
Praćenje dnevnog kumulativaPeriodi čna kontrola
<<extend>>
29
Generalizacija
� Generalizacija – veza između roditelja i deteta – vezana za pojam nasleđivanja – dete nasleđuje osobine roditelja
� Generalizacija učesnika– izvedeni učesnik ima sve osobine i ponašanje osnovnog (apstraktnog) učesnika, ali može dodati osobine ili redefinisati ponašanje
zaposlen
Rukovodilac Knjigovo đa Kontrolor
30
Generalizacija
� Generalizacija slučajeva upotrebe– izvedeni slučaj upotrebe ima sve osobine i ponašanje apstraktnog slučaja upotrebe, ali može dodati osobine ili redefinisati ponašanje
Novčane transakcije
UplataIsplata
6
31
Primer 2.
Operator
Korisnik
Banka
sesija
transakcije
uplata isplata transfer izveštaj
32
Primer 3.
službenik
pacijent
Zakazuje pregled
Otkazuje pregled
Provera pacijentove
dokumentacije
Zahteva lečenje
Različliti načini plaćanja
Plaćanje računaTačke proširenjaNaredni tretmani
kartoteka
doktor
Polisa osiguranja
33
Elektronska prodavnica knjiga
Primer 4.
34
Analiza sistema
� Analiza sistema treba da omogući odgovor na pitanje: “Koja je prioritetna funkcija koju treba da ostvari sajt namenjen elektronskoj trgovini?”
� Jedan od načina za realizaciju sajta je uočavanje poslovnih ciljeva, na osnovu kojih se razvija lista funkcionalnosti sistema i zahteva za informacijama.
35
Analiza sistema
� Poslovni ciljevipredstavljaju jednostavnu listu mogućnosti koje od sajta očekujemo.
� Funkcionalnosti sistemapredstavljaju listu mogućnosti informacionog sistema koje su potrebne da bi se ostvarili poslovni ciljevi.
� Informacioni zahtevi za sistem predstavljaju informacione elemente koje sistem mora da produkuje da bi se realizovali poslovni ciljevi.
� Tako formirane liste moraju se dostaviti programerima da bi znali šta menadžer od njih očekuje.
36
Poslovni ciljevi Funkcionalnost sistema Informacioni zahtevi
Prikazati knjige. Digitalni katalog Dinamičan tekst i grafički katalog.
Obezbediti detaljnije informacije o knjigama.
Baza podataka knjiga Opis knjige, broj zaliha, nivo inventara.
Personalizovati/kastomizovati svaku knjigu.
Veza sa potrošačem Upis svakog korisnika koji pristupi sajtu.
Neposredno pretražiti katalog i dodati knjige u potrošačku korpu.
Baza podataka knjiga Naziv, autor, cena, izdavač i kratak opis svake knjige.
Prikupiti podatke o potrošaču. Baza podataka potrošača Ime, adresa, telefon i e-mail svakog potrošača. Online registracija korisnika.
Obezbediti podršku potrošaču nakon kupovine knjiga.
Baza podataka o porudžbinama Korisnikov ID, knjige, datum porudžbine.
Mogućnost lakog ažuriranja i proširivanja kataloga
Upravljanje inventarom Inventar proizvoda, ID i kontakt izdavača.
Razumeti efikasnost marketinga.
Sistem za praćenje i izveštaj o sajtu
Broj posetilaca, posećene stranice, kupljeni proizvodi.
7
37
Specifikacija zahteva
Korisnika� Registraciju novih korisnika
� Prijavljivanje starih korisnika
� Pregled kataloga
� Pretragu kataloga
� Postavljanje odabranih knjiga u potrošačku korpu
� Modifikaciju potrošačke korpe
� Pražnjenje cele korpe
Administratora
� Registraciju novog administratora
� Izmenu lozinke registrovanog administratora
� Brisanje administratora
� Postavljanje novih kategorija u katalog
� Uklanjanje kategorija iz kataloga
� Postavljanje novih knjiga u katalog
� Editovanje atributa knjige u katalogu
� Uklanjanje knjiga iz kategorija
� Premeštanje knjiga iz jedne u drugu kategoriju
� Postavljanje novih izdavača
� Modifikaciju atributa postojećih izdavača
38
Prikaz opštih slu čajeva upotrebe
Login
Registracija
Pretraga kataloga
Formiranje porudžbine
Modifikacija porudžbine
Pražnjenje cele korpe
Login
Registracija
Modifikacija kategorija
Modifikacija knjiga
Modifikacija administratora
Modifikacija izdava ča
korisnikadministrator
39
Slučaj koriš ćenja: Modifikacija podataka
40
Slučaj koriš ćenja: Pretraga
41
Slučaj koriš ćenja: Logovanje administratora na sistem
Unos lozinke
provera lozinke
42
Dijagrami aktivnosti
8
43
Razvoj dijagrama aktivnosti
� Poslovni proces – slučaj upotrebe – posmatra se kao sistem koji ima svoja stanja u kojima se obavljaju aktivnosti, dok prelaze iz jednog u drugo stanje koje diktiraju događaji
� Prikazuje sekvencijalni tok aktivnosti
� Sastoji se od:� Stanja� Akcija� Prelaza
� Proces Razvoja dijagrama aktivnosti sadrži:� Definisanje plivačkih staza� Definisanje stanja dijagrama aktivnosti� Definisanje tranzicija
44
Definisanje stanja dijagrama aktivnosti
� Stanje dijagrama aktivnosti može da predstavlja:
� Akciju – ne može biti dekomponovana, traje kratko vreme, ne može se prekidati
� Aktivnost – ima trajanje, može se prekidati zbog nekih događaja, može se dekomponovati
� Pseudostanjeili� Stanje tokaobjekta
� Oznaka stanja je jedinstvena:
Naziv stanja
45
Definisanje stanja dijagrama aktivnosti
� Definisanje pseudostanja – stanja prelaza
� Početno stanje
� Krajnje stanje
� Stanje odluke - grananje
� Sinhronizacija
46
Definisanje tranzicija
� Tranzicija - prelazak iz jednog u drugo stanje – prouzrokuje (okida) neki događaj
� Događaji mogu da budu:� Spoljni – generišu se van sistema – generišu ga učesnici� Kraj aktivnosti� Vremenski – spoljni ali bez učesnika� Upravlja čki – generiše rukovodilac posla
� Tranzicija prouzrokuje događaj koji sadrži uslove, argumente i akcije
� Događaj – poruka – ako su očigledne ne prikazuju se na dijagramu
Događaj 1 (argument) [uslov 1] / Akcija 1
47
Prikaz grananja
A
C
[uslov]
[not uslov]
B
grananje
48
Prikaz grananja
postavi iterator
radi()
promeni iterator
[kraj]
[not kraj]
početno stanje
završno stanje
9
49
Sinhronizacija
� Sinhronizacija – zadebljana horizontalna linija
� Račvanja (fork) i udruživanja (join) niti – obavljaju se u sinhronizacionim tačkama
� Tranzicije koje ulaze u sinhronizaciju su uslov za paralelno obavljanje tranzicija koje iz nje izlaze – jedna aktivnost “čeka” na ispunjenje uslova (“pristizanje” svih događaja) za njeno izvršenje
50
Prikaz sinhronizacije
Priprema
Aktivnost 1 Aktivnost 2
Finalizacija
Sinhronizaciona ta čkaRačvanje (fork)
Udruživanja (join)
51 52
Definisanje pliva čkih staza
� Dijagram aktivnosti deli se u odgovarajuće logičke celine –plivačke staze – definišu odgovornost pojedinih objekata za izvršenje odgovarajućih akcija
� Svaka staza – navode se učesnici, aktivnosti – “radna lista” –definisana u okviru opisa radnog mesta prilikom opisa organizacije
� Stanja pripadaju stazama, a tranzicije mogu da prelaze iz jedne staze u drugu
53
Definisanje pliva čkih staza
Ime 1 Ime 2 Ime 3
A
B
C
D
Plivačka staza
54
Primer
Isporuka
korisnik prodaja magacin
Zahtev za isporukom
Prijem porudžbine
Plaćanje
Isporuka Preuzimanje
robe
Order [placed] Order
[entered]
Order [filled]
Order [delivered]
Priprema isporuke
10
55
Korisnik Automat Banka
Postavi karticu
Unesi PIN
Podižem iznos
Preuzmi novac
Uzmi karticu
Identifikacija
Provera stanja na računu
Umanji iznos na računu
Prikazuje stanje na računu
Vraća karticu
56
Dijagrami aktivnosti
57
Dijagrami klasa
58
Izrada potpunog dijagrama klasa
� Iterativnim postupkom potebno je izvršiti identifikaciju klasa i pri tom dodati operacije.
� Dijagram klasa sadrži skup klasa i saradnji i njihove relacije.
� Dijagram klasa specificira logičke i statičke aspekte modela.
� Klasa – skup objekata sa zajedničkim atributima, operacijama, metodama, vezama i semantikom
� Operacija – definiše ponašanje klase
� Metoda - implementirana operacija specificirana u okviru operacionog algoritma ili procedure
� Tip - opisuje skup sličnih objekata sa atributima i operacijama, bez uključivanja metoda
� Interfejs - skup spoljnih vidljivih operacija
59
Definisanje klasa
� Klasa predstavlja skup objekata koji imaju zajedničku strukturu i ponašanje
� Granica između objekta i klase je izuzetno tanka:� Klasa – apstrakciju objekata – sposobnost prepoznavanja zajedničkih
osobina objekata neke klase i formiranje apstraktnog skupa tih svojstava (osmišljavanje klase)
� Objekat – primerak klase koji ima sva njena ponašanja i specifične vrednosti za svako svojstvo
Osoba Pera: Osoba Mika: Osoba : Osoba
Klasa Pojavljivanja (objekti)
objekat - anonimno pojavljivanje klase
60
Notacija klase
Notacija klase Primer
Odgovornost
GeometrijskaFigura
karakterističnaTačka
pomeri()promeniVeličinu()prikaži()
Responsibilitiesgeometrijska svojstva figura u ravni
naziv klase
operacije
atributi
odgovornosti
11
61
Definisanje klasa
� Naziv klase piše se velikim slovom
� Naziv atributa je kratka imenica ili fraza
� Naziv operacije je glagol ili glagolska fraza
� Vidljivost je pravo pristupa, čiji se znak piše ispred atributa/operacije
� javni domen: + pristup nije ograničen
� privatni domen:- pristup je ograničen na članove iste klase i podklase
� zaštićeni domen: # prošireno pravo pristupa i na klase izvedene iz date klase
� implementacioni domen: ? opseg tog trenutka nije definisan, definisaće se u okviru implementacije
62
Definisanje atributa
� Na najapstraktnijem nivou - kada se modeliraju strukturne osobine klasa pišu se samo imena atributa – dovoljna informacija za prosečnog korisnika
� Na primer, atributi klase Osoba su:� prezime� ime� jmbg� datum � plata � stimulacija
Osoba
prezimeimejmbgdatumzplatastimulacija
63
Osobine atributa
� Ključ atributa – jedinstvena identifikacija klase - označava se znakom * ispred atributa
� Tip atributa: ceo broj (integer), realni broj (real), karakter (char), ...
� Vidljivost atributa: javni, privatni, zaštićeni ili implementacioni domen
� UML standard definiše četiri tipa veza:� asocijacija (association) – definiše strukturalni odnos između instanci
klasa;
� zavisnost(depedency) – definišu se odnosi;
� generalizacija (generalization) – povezuje generalizovane klase kao podklase/superklase ili odnos dete/roditelj
� realizacija - koristi se kad su u pitanju interfejsi ili kada je reč o kolaboraciji
12
67
Asocijacija
� Bidirekciona veza između klasa – prikazuje se kao linija koja spaja klase
Osoba Odeljenje
Destination Source
angažman
Asocijativni naziv
0...* 1...1
Multiplikativnost
radnik radj
Uloga
68
Naziv asocijacije
� Asocijacija između klase Osobai klase Odeljenje je imenovana rečju angažmanšto znači: Osoba je angažovana u Odeljenju
� Klasa Odeljenje (Source) je u asocijaciji pod nazivom angažman sa klasom Osoba (Destination)
Osoba Odeljenje
Destination Source
angažman
Asocijativni naziv
69
Multiplikativnost asocijacije
� Multiplikativnost – kardinalnost- interval koji definiše najmanji i najveći broj pojavljivanja
� Jedna pojava klase Odeljenje može da angažuje nijednu ili više pojava klase Osoba (0..*), a jedna pojava klase Osoba može da bude angažovana u jednoj i samo jednoj pojavi klase Odeljenje (1..1)
Osoba Odeljenje
Destination Source
0...*1...1
Multiplikativnost
angažman
70
Indikatori multiplikativnosti asocijacije
Indikator Zna čenje
0..1 Nula ili jedan
1 ili 1..1 Samo jedan
0..* ili * Nula ili više
1..* Jedan ili više
n Samo n (gde je n>1)
0..n Od nule do n (gde je n>1)
1..n Od jedan do n (gde je n>1)
71
Uloga u asocijaciji
� Klasa Osoba je u asocijaciji angažman sa klasom Odeljenje ima ulogu radnik.
� Klasa Odeljenje ima ulogu radne jedinice (radj) u asocijaciji angažman sa klasom Osoba.
Osoba Odeljenje
Destination Source
radnik radj
Uloga
72
Agregacija (Aggregation)
� Agregacija – specijalni oblik asocijacije – jači oblik veze – uspostavlja veza između celine i dela (celina sastavljena od delova)
� Agregacija je veza tipa ”deo-celina”, “deo od”, “ima” ili “sadrži”
� Agregacija po referenciizmeđu celine i dela – uništavanje i kreiranje klasa je nezavisno
� Agregacija po vrednosti– kompozicija - fizičko zadržavanje celine i dela – deo ne postoji bez celine čiji je deo
Celina Deo1
Asocijativni naziv
*
sastavljen od
Celina Deo1
Asocijativni naziv
1..*
sastavljen od
13
73
Primer kompozicije
� Odeljenje pripada samo određenom preduzeću i nestankom preduzeća nestaje i odeljenje
Preduzeće
Odeljenje
Celina
Deo
1
*kompozicija
74
N-arna asocijacija
� Mogućnost – više od dve klase u vezi
Test Student
Soba
Radi
75
Rekurzivna asocijacija
� Asocijacija koja povezuje klasu samu sa sobom
� Rekurzivna asocijacija klase Osoba:� Osoba može da bude i Radnik i Rukovodilac� Radnik ima samo jednog Rukovodioca, a Rukovodilac rukovodi
nijednim ili sa više radnika
Osoba
radnik
rukovodilac
1..1
0..*
zaposlenje
76
Zavisnost
� Zavisnost se prikazuje kao isprekidana linija usmerena od klijenta (zavisni element) ka drugoj klasi (nezavisni element) – izmena u nezavisnom delu utiče na zavisni
� Najčešće se koristi – jedna klasa koristi drugu kao argument u oznaci operacije
FilmskiSnimak
ime
prikaziNa(k: kanal)
start()stop()
reset()
Kanal
77
Generalizacija
� Generalizacija – nasleđivanje koristi se za prikazivanje odnosa roditelj/dete
� Grafička predstava puna linija sa velikom otvorenom strelicom koja pokazuje na roditelja
� Podklase (dete) nasleđuju sve atribute, operacije i asocijacije od superklase (roditelja)
78
Primer koriš ćenja generalizacije
Oblik
poreklo
pomeri()
promeni veličinu()prikaži()
Osnovna klasa
Pravougaonik
corner : point
Krug
radijus : float
Poligon
tačke : lista
Kvadrat
Izvedene klasegeneralizacija
14
79
Realizacija
� Koristi se za:
� označavanje relacije između interfejsa i klase ili
� komponente koja obavlja operacije ili servis za interfejs
� Može se reprezentovati na dva načina:
� U kanoničkoj formi i
� U skraćenoj (elided) formi
Kanonička forma Skraćena forma
Klasa <<Interface>>Interfejs
Klasa
Interfejs
80
Definisanje interfejsa klase
� Interfejs se na dijagramu klasa može prikazati na dva načina:� Stereotipom <<interface>>iznad oznake klase, gde je popunjen samo
odeljak za operacije
� Krugom , uz koji se navodi ime interfejsa i koji je pripojen punom linijom klasama koje ga podržavaju
<<interface>>
Obračunplata
+prihvati podatke ()+obrada()+izlaz ()
Interfejs1
<<use>>Klasa koristi neke operacije iz posmatranog interfejsa
Klasa 1 Klasa 1
81
Definisanje dijagrama klasa
� Konceptualni model – “dijagram klasa bez operacija”
� Dijagram klasa sadrži:� klase,
� interfejse,
� saradnje,
� veze zavisnosti, generalizacije i asocijativnosti
Ograni čenja u navigaciji asocijacije � Po definiciji asocijacija i agregacija su bidirekcione, ali je često
potrebno ograničiti navigaciju samo u jednom smeru
� Ako je navigacija ograničena dodaje se strelica da bi se označio smer navigacije
� Za zadatog Korisnika – moguće je naći Lozinku, ali nije moguća identifikacija Korisnika na osnovu Lozinke – izraz efikasnosti puta
Korisnik Lozinka*1
navigacija
15
85
PrimerKorisnik Porudžbina
Plaćanje
Kredit Keš Ček
OpisPorudžbine Proizvod
86
Primer
:Int
Seminar Sekcija
Kompanija
RasporedTermina
Kooperator
Student
87
Dijagrami klasa
88
Dijagrami sekvenci
89
Izrada dijagrama sekvenci
� Dijagram sekvenci – koristi se za specifikaciju vremenskih zahteva u opisu složenih scenarija – opis toka poruka između objekata kojima se realizuje odgovarajuća operacija u sistemu
� Koristi se za modelovanje dinamičkih aspekata sistema
� Identifikuju se sistemski događaji i sistemske operacije za odgovarajući slučaj upotrebe
90
Dijagram sekvenci
� Dijagram sekvenci je jedan od dijagrama interakcije
� Interakcija – ponašanje koje obuhvata skup poruka koje se razmenjuju između skupa objekata u nekom kontekstu sa nekom namenom
� Poruka – specifikacija komunikacije između objekata koja prenosi informaciju
� Prijem poruke izaziva akciju – izvršenje naredbe
16
91
Izrada dijagrama sekvenci
� Ako su dijagrami slučajeva upotrebe prethodno definisani –dijagram sekvenci je jedna od njegovih realizacija - pokazuje redosled:
� Događaja – spoljašnji ulazni događaj – generiše učesnik
� Operacija – odziv na događaj u sistemu
� U okviru izrade sekvenci definišu se sledeće aktivnosti:
� Definisanje objekata
� Defisanje veza
� Definisanje poruka
92
Definisanje objekata
� Dijagrami sekvenci poseduju dve dimenzije:
� Vreme – prikazuje po vertikalnoj dimenziji
� Kolekciju objekata – prikazuje po horizontalnoj dimenziji
� Objekti – predstavljaju vertikalnim linijama
� Na vrhu linije - naziv i/ili simbol objekta
� Aktiviranje objekta – uzak pravougaonik na liniji objekta –operacija koju objekat obavlja – određena dužinom
Naziv objekta: Naziv koncepta
93
3: operacija 2
Notacija dijagrama sekvenci
Naziv učesnika :učesnik
aktivnost
vreme
linija života
Objekat 1
1: događaj
poruka
Objekat 2 Objekat 3 Objekat 4
2: operacija 1
4: operacija 3 5: operacija 4
porukarekurzivna poruka
94
Definisanje poruka
� Poruke – događaji preko kojih objekti komuniciraju – predstavljaju se usmerenim horizontalnim linijama – strelicama - tranzicije
� Poruka – definisana nazivom i parametrima –Naziv poruke (lista parametara) – može se navesti i broj koji definiše redosled izvođenja
� Mogu se koristiti: rekurzivne poruke – poruke koje objekat upućuje sam sebi
BA
95
Vrste akcija na osnovu poslatih poruka
Poruka Opis akcije
Pokreće operaciju objekta primaoca
Vraća vrednost pozivaocu (opciono)
Asinhrono se šalje signal primaocu
Kreira se objekat
Uništava se objekat
Objekat menja prirodu (na obe strane veze je isti objekat)
Poziv (call)
Povratak (return)
Slanje operacija (send)
<<create>>
<<destroy>>
<<become>>
iliili
96
Primer dijagrama sekvenci
p: preduzeće
o: osoba<<create>>
postavi()
vrednost
<<destroy>>
objekat
poziv
vraćanje rezultata
uništavanje objektakraj životnog veka
linija života
objekatstvaranje objekta
17
97
Primer
<<create>>
<<create>>
98
Asinhrone poruke na sekvencijalnim dijagramima
� Poruka je asinhrona ukoliko pošiljalac može da je pošalje kao dodatnu poruku u toku procesiranja originalne poruke
� Vreme slanja asinhrone poruke je nezavisno od realizacije ostalih poruka
� Redosled kojim su asinhrone poruke poslate, odnosno kompletirane, je potpuno irelevantan
� Vrsta komunikacije – ima semantiku poštanskog sandučeta - objekti nisu sinhronizovani� Pošiljalac šalje signal ili poziva operaciju i nastavlja svojim
nezavisnim putem� U međuvremenu primalac prihvata signal ili poziv kad god bude
spreman i nastavlja svojim putem kada to završi
99
Primer
� U primeru su prikazane dve asinhrone poruke od strane medicinske sestre� Upit u medicinsku laboratoriju radi zakazivanja datuma za test� Upit u osiguravajuću kompaniju, radi odobravanja testa
100
Modelovanje vremenskog ograni čenja
k:KameraS:ServerStranices:AgentSistema
a:osveži() b:dajSliku()
vremenska oznaka
{b.vremeIzvršavanja<100ns}
{a.periodičnoZapočinjanje svake 1ms}
{a.periodičnoZapočinjanja svake 1ms} – vreme periodičnog započinjanja događaja poziva osveži
{b.vremeIzvršavanja<100ns} – maksimalno vreme trajanja poziva akcije dajSliku