18
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

Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

  • Upload
    others

  • View
    25

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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

Page 2: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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.

Page 3: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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

Page 4: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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

Page 5: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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

Page 6: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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.

Page 7: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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

Page 8: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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

Page 9: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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

Page 10: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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

Page 11: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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

� Inicijalna vrednost atributaOsoba

*šifrar+prezime: String+ime: String#jmbg : String?datumz : String-plata: Real -stimulacija: Real= 100

Klju č atributa

Vidljivost atributaTip atributa

Inicijalna vrednost atributa

64

Definisanje operacija

vidljivost naziv povratni tip

� Operacija se definiše:

� nazivom operacije

� vidljivošću i

� povratnim tipom – tip rezultata koji operacija vraća

Naziv klase

+ operacija (parametar): povratni tip

65

Definisanje operacija

Za klasu Osoba, definišu se sledeće operacije:

� unos (unos podataka o radniku)

� promenaPlate (evidentiranje isplate radniku)

� promenaStimulacije (promena vrednosti atributa stimulacija)

� računanjeIsplate (računa se isplata na osovu plate i stimulacije)

Osoba

*šifrar+prezime: String+ime: String#jmbg : String?datumz : String-plata: Real -stimulacija: Real= 100

+unos(): String

+promenaPlate(): Real +promenaStimulacija(): Real

+računanjeisplate(): Real

operacije

66

Definisanje veza izme đu klasa

� Veze – obezbeđuju komunikaciju između klasa

� 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

Page 12: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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

Page 13: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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

Page 14: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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

82

Konceptualni model

OdeljenjeRadno mestoJezik

Certifikat

Pol

Muškarac Žena Redovan Konsultant

Status

Isplata

Radna lista

Osoba*

*

*

1..* 0..*

0..*

0..*

0..*

83

*

Primer definisanja dijagrama klasa

Osoba

*šifrar+prezime: String+ime: String#jmbg : String?datumz : String-plata: Real -stimulacija: Real= 100

+unos()

+promenaplate()+promenastimulacija()

+računanjeisplate()

Radno mesto

-naziv

+unos ()

Odeljenje

-naziv-mesto

+ unos ()

Radna lista

-brsati

Status

+unos

Redovan

-vrstaposla

Konsultant

- brsati

Žena

-devojackop

Muškarac

-sluziovosjku

Jezik

- naziv

Pol

+unos ()

Certifikat

stepenznanja

Isplata

-datum-iznos

+uplata ()0..*

0..*

1..*0..*

0..*

0..*

1

0..*

1..1

1..1

1..1

1..1 1..1

1..1

0..*

1..1

1..1

84

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

Page 15: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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

Page 16: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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

Page 17: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

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

vremenski izrazvremenska oznaka

101

Primer

p1:Pretplatnik

p2:Pretplatnik

r:Razgovor

:Centrala

podigniSlušalicu

uspostaviTonskoBiranje

biranje: *pozivnaCifra(c) {biranje.vremeIzvršavanja<30sec}

proslediPoziv(p1,n)

<<create>>

uspostaviVezu(p1,p2)uspostaviVezu(p2) uspostaviVezu(p1)

podigniSlušalicu

zvoni()

Pretplatnici p1 i p2 mogu da razmenjuju informacije kada je veza uspostavljena

102

Dijagrami sekvenci

Page 18: Objektno modelovanje - UML Modelovanje aplikacije koriš ... · dokumentovanje softverskih sistema UML kombinuje najbolje iz: ... Arhitekte sistema – projektanti sistema koji će

18

103

Alati za izradu UML dijagrama