Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

Osnove UML

Treće predavanje

Prof. dr Kristijan Kuk

Osnovne akademske
studije Informatika i
računarstvo
Šta je UML ?

 Ako ste u situaciji da radite u razvojnom timu ili


samostalno sigurno ste bili u prilici da kolegi objašnjavate
šta ste i kako zamislili da se uradi.

 Često je to skup nekih gestikulacija i mnogo reči kako


biste mu objasnili na primer da klasa Dokument treba da
ima mogućnost ažuriranja stavki sa automatizovanim
ažuriranjem stanja zaliha i po magacinima.
 Takođe u procesu objašnjavanja treba da mu skrenete
pažnju da klasu Dokument treba da izvede iz neke
osnovne domenske klase i da implementira neki unapred
zadati interfejs.

2 Projektovanje i modelovanje
Šta je UML ?

 Sve ovo se može dodatno iskomplikovati ako u celu priču


ubacimo i valute i učitavanja vrednosti za određene
kursne liste (prodajna, za efektivni strani novac itd…).

 Naravno, ovde se postavlja pitanje i gde klasu dodati, tj.


u koji folder i ako taj folder ne postoji kako ga imenovati?

 Iako programeri nisu ljubitelji crtanja, ponekad shvate je


taj korak neizbežan.
 Crtanje dijagram ili pisanje bilo koje dokumentacije može
da olakša misao “još samo ovo i još samo ovo da
završim ...”

3 Projektovanje i modelovanje
Šta je UML ?

 Zamislite da dođete u kompaniju koja vam odmah da


uredno sređenu dokumentaciju.
 To će vam u mnogome olakšati početak.

 Iako je čest slučaj da dokumentacija ne prati razvoj


sistema, a ponekad je nema uopšte, u nastavku
predavanja su date osnove crtanja UML dijagrama.
 Dijagrame možete svakodnevno koristi u praksi kako
biste olakšali (a često i poboljšali) komunikaciju sa
članovima tima.
4 Projektovanje i modelovanje
Proces razvoja softvera

 Specifikacija projektnih zahteva se definiše u


početnoj fazi procesa razvoja softvera:
 funkcionalni i nefunkcionalni zahtevi
 Izrada formalnih specifikacija može se realizovati
paralelno sa projektovanjem softvera:
Specifikacija
Formalna
sistemskih
specifikacija
zahteva
Definisanje
korisničkih Projekt
zahteva
Modelovanje Projektovanje
sistema arhitekture

5 Projektovanje i modelovanje
Uloga specifikacija

 Utiču na cenu razvoja softvera:


 povećava se cena izrade specifikacija
 smanjuje se broj grešaka, pa je niža cena projektovanja,
implementacije i validacije sistema, posebno za kritične
sisteme
 Proces razvoja softvera korišćenjem formalnih
metoda:

6 Projektovanje i modelovanje
Pojam modelovanje

 Razvoj softvera je veoma kompleksan proces da bi ga


mogli planirati iz glave.

 Kao proizvod faze analize i dizajna u razvoju softvera


dobijaju se modeli. U razvoju softvera, modeli su:
 Abstraktni /ne-fizički (Softver nije opipljiv)
 Grafički vidljivi (Težimo da vizuelizujemo neopipljive elemente)

 Model je uprošćena predstava kompleksne realnosti.


 Kompleksni sistemi i softver se ne mogu razumeti bez
odgovarajućeg modelovanja.
 Danas, softver postaje veoma kompleksan i zato ga
moramo razumeti kroz modelovanje.

7 Projektovanje i modelovanje
Modelovanje uopšteno

 Jednostavno rečeno, potrebna nam je jednostavna


predstava kompleksnih modela, a modelovanje je
sredstvo za savlađivanje ove kompleksnosti.

 Metodama modelovanja definisani su jezik, kao i


procedure za korišćenje jezika za konstruisanje
modela.

 Modelovanje je jedini način za vizuelizaciju vašeg


dizajna i njegovu proveru prema zahtevima pre
početka implementacije

8 Projektovanje i modelovanje
Modelovanje?

 Ciljevi modelovanja:

 pomaže u vizuelizaciji softvera onakvog kakav jeste ili


onakvog kakav želimo da bude,
 omogućava specifikaciju strukture i ponašanja softvera,
 definiše šablon koji pomaže prilikom konstruisanja
softvera,
 dokumentuje odluke koje su donešene,
 obezbeđuje zajednički jezik za sve u razvojnom timu,
 omogućava jasnoću i razumevanje.

9 Projektovanje i modelovanje
Vrste modela

 Skalirani modeli - umanjene kopije (maketa,


fotografija):

 Analogni modeli - modeliraju ponašanje i ne moraju


da podsećaju na sistem (mape, grafički modeli)

 Mentalni modeli - kvalitativni opisi (tekst)


 Matematički modeli - kvantitativni (analitički,
simulacioni)
10 Projektovanje i modelovanje
Modelovanje softverskih sistema

 U toku definisanja i analize zahteva koriste se modeli


sistema, koji su najčešće grafički (dijagrami).

 Model je pojednostavljena slika softverskog sistema,


koja razmatra kontekst u kome se razvija, ponašanje
i strukturu sistema.
 Primeri analognih (poli-formalnih) modela:
 dijagram toka podataka (Data Flow Diagram, DFD),
 ER model/dijagram,
 objektni UML modeli.

11 Projektovanje i modelovanje
UML
 UML, skraćenica od Unified Modeling Language, je skup grafičkih
notacija koji nam pomaže u opisu i dizajniranju softverskog sistema.

 Model dobre prakse koji objedinjuje druge grafičke notacije (na pr.
OMT- Object Modeling Technique, OOSE- Object Oriented Software
Engineering).

 Međunarodno prihvaćen standard – ISO standard - ISO/IEC 19501.

 Prednosti:
 Intuitivan
 Podrška alata
 Široko prihvaćen

12 Projektovanje i modelovanje
UML u praksi

 Anketa među menadžerima u razvojnom timu


pokazuju sledeće rezultate u primeni UML na
razvojnim projektima:

 20% organizacija koristi UML na svim razvojnim


projektima
 59% organizacija koriste UML na nekim razvojnim
projektima
 18% organizacija nikada ne koristi UML
 3% organizacija su koristili UML u prošlosti i ne planiraju
da ga koriste ponovo
13 Projektovanje i modelovanje
UML – vrste dijagrama

 Pogled korišćenja (Use-case View)


 Dijagram slučaja korišćenja (Use-Case)

 Logički pogled (Logical View)


 Dijagram klasa (Class)
 Dijagram sekvenci (Sequence)
 Dijagram kolaboracije (Collaboration)
 Dijagram stanja/aktivnosti (State/Activity)

 Pogled komponenti (Component View)


 Dijagram komponenti (Component)

 Pogled uvođenja (Deployment View)


 Dijagram uvođenja (Deployment)

14 Projektovanje i modelovanje
UML – vrste dijagrama

15 Projektovanje i modelovanje
UML – vrste dijagrama

 Pošto je UML jezik dosta obiman, fokus biće na


najčešće korišćene grafičke elemente i dijagrame u
praksi.

 Opisaćemo sledeće dijagrame:


 Dijagram klasa
 Dijagram sekvenci
 Dijagram slučajeva korišćenja (ovo nismo imali prilike da
viđamo često u praksi, češće se piše softverska
specifikacija)
 Dijagram aktivnosti

16 Projektovanje i modelovanje
UML – vrste dijagrama

 Dijagram slučajeva korištenja (Use case diagrams)

 Dijagram aktivnosti (Activity diagrams)

17 Projektovanje i modelovanje
UML – vrste dijagrama
 Dijagram klasa (Class diagrams)

Dijagram

sekvenci (Sequence diagrams)

18 Projektovanje i modelovanje
UML – primeri korišćenja

 Rational Unified Process metodologija


 objektno orijentisani proces razvoja softvera, zasnovan na
disciplinama u okviru kojih se raspoređuju poslovi i odgovornost
na članove projektantskog tima.
 primer primene RUP-a na projekt od jednog člana

 Tehnika CRC (Class Responsibility Collaboration)


 Kartice saradnje-odgovornosti-klase, veoma popularna tehnika
 Primer izrade CRC kartice

 Klase pogleda u web aplikaciji baziranoj na MVC arhitekturi


 MVC arhitektura je softverski patern Model-view-controller koji
odvaja prikaz informacija od interakcije korisnika sa tim
informacijama

19 Projektovanje i modelovanje
Početak UML-a, klase

 Ako dobijete pitanje od vašeg člana tima “Jel imate


dijagram da pogledam … ?” znate sigurno da se
najčešće odnosi na dijagram klasa.

 Zato ćemo početi od opisa dijagrama klasa i


kardinalnosti između samih klasa.

20 Projektovanje i modelovanje

You might also like