You are on page 1of 43

1

UML

Pregled
1 Uvod
2 Osnovni pojmovi
3 Gradivni blokovi
4 Opšta sredstva
5 Relacije
6 Dijagrami

 2002 Prentice Hall. All rights reserved.


2

1. Uvod

• IS je složen proizvod
• U drugim granama ljudske djelatnosti složeni
sistemi se ne izgrađuju ad-hoc principom
– Prvo se izradi i analizira model sistema
• Model je pojednostavljena slika realnog sistema
– Izrađuje se sa ciljem analize i dokumentovanja sistema
– Može da olakša komunikaciju među članovima tima

 2002 Prentice Hall. All rights reserved.


3

1. Uvod

• Nije neuobičajeno da se izgradi više modela


– Koji daju sliku sistema iz različitih perspektiva
• Poželjno je da modeli budu formalni
– Posebno u računarstvu
– Postojanje jezika za modelovanje
• Skup notacija putem kojih se model zadaje
– Tekstualne
– Grafičke
– U građevinarstvu postoji precizan skup simbola koji se
koriste za izradu planova zgrada
– U idealnom slučaju svi koriste isti standardizovani skup
simbola i notacija (jezik)
• Poboljšavanje komunikacije
 2002 Prentice Hall. All rights reserved.
4

2. Osnovni pojmovi

• OO programiranje
– Vladajuća metodologija
• Sredinom devedesetih nekoliko timova je radilo
na razvijanju jezika koji će omogućiti
modelovanje OO sistema
• Stvoren je Unified Modeling Language (UML)
kao unifikovani jezik za modelovanje OO sistema
• Definicija:
“UML je standardizovan jezik za opis softverskih
sistema. Koristi se za vizuelizaciju, specificiranje,
konstruisanje i dokumentovanje softverski
intezivnih sistema”
 2002 Prentice Hall. All rights reserved.
5

2. Osnovni pojmovi

• UML je jezik za modelovanje


– Sadrži skup simbola putem se mogu kreirati modeli
– Skup koncepata je obiman
• Omogućava kreiranje više modela različitih tipova koji opisuju
sistem iz različitih perspektiva
• UML je u najvećoj mjeri grafički jezik
– Čitljivost
– Crtaju se dijagrami i sl.
– Za razliku od programskih jezika gdje se koriste tekstualne
notacije
• UML je više od skupa simbola, jer iza svakog
simbola stoji precizno definisana semantika
– To omogućava da jedan programer stvori model a da drugi
potpuno nezavisno napiše programski kod na osnovu modela
 2002 Prentice Hall. All rights reserved.
6

2. Osnovni pojmovi

• UML je jezik za specifikovanje


– Specifikovanje znači stvaranje modela koji su precizni,
nedvosmisleni i kompletni
– Ovim jezikom je moguće specifikovati sve analitičke,
projektne i implementacione odluke koje se donose tokom
razvoja sistema
• UML je jezik za konstruisanje
– Nije u pitanju programski jezik kao napr. Java, C#
– moguće ga je povezati sa raznim programskim jezicima
• Naročito OO jezicima
• Definisati preslikavanje koncepata UML u koncepte
programskog jezika, ili čak u tabele relacione baze podataka

 2002 Prentice Hall. All rights reserved.


7

2. Osnovni pojmovi

• Ovakvo preslikavanje naziva se se naziva direktni


inženjering
– Moguć je i obrnut proces tj generisanje modela na osnovu
implementacije. U pitanju je reverzni inženjering
• UML je jezik za dokumentovanje
– Dobro odrađen projekat ne podrazumijeva samo dobro
napisan programski kod već je neophodna i odgovarajuća
dokumentacija
– UML daje mogućnost da se dokumentovanja sistema kojeg
modelujemo

 2002 Prentice Hall. All rights reserved.


8

3. Gradivni blokovi

• Gradivni blokovi
– Opšta sredstva
– Relacije
– Dijagrami
• Opšta sredstva
– Strukturna opšta sredstva
– Opšta sredstva za opis ponašanja
– Grupišuća opšta sredstva
– Anotaciona opšta sredstva

 2002 Prentice Hall. All rights reserved.


9

3. Gradivni blokovi

• Strukturna opšta sredstva su “imenice” UML-a


– Klasa
– Interface
– Društvo saradnika
– Korisničke funkcije (use cases)
– Aktivne klase
– Komponenta
– Čvor
• Obično odražavaju statičku strukturu sistema

 2002 Prentice Hall. All rights reserved.


10

4. Opšta sredstva

• Klasa opisuje skup objekata koji imaju iste,


atribute, ponašanja, veze i semantiku
• Grafički predstava je pravougaonik

 2002 Prentice Hall. All rights reserved.


11

4. Opšta sredstva

• U OO pristupu postoji podjela na klase i objekte.


• Objekat je jedan konkretan primjerak klase pa se i
grafička notacija razlikuje

Clan
ime
prezime

loguje se()

 2002 Prentice Hall. All rights reserved.


12

4. Opšta sredstva

• Interfejs
– Skup operacija koje predstavljaju servis neke klase

• Društvo saradnika (Kolaboracija)


– Predstavlja skup klasa, interfejsa i ostalih elemenata koji
zajedno rade na ostvarivanju nekog kooperativnog ponašanja

 2002 Prentice Hall. All rights reserved.


13

4. Opšta sredstva

• Društvo saradnika
– Ima svoj strukturni dio i dinamički dio
– Strukturni dio se odnosi na klase, intrerfejse, itd.
– Dinamički dio određuje ponašanje društva saradnik
• Modeluje se dijagramima interakcije
• Korisničke funkcije (use cases)
– Služe za opis ponašanja sistema s korisničke tačke gledišta
– Odnose se samo na jedan sistem i ne posmatra se interna
struktura sistema
– Korisnička funkcija predstavlja skup sekvenci akcija koje se
izvršavaju i rezultat tog izvršavanja je značajan za korisnika

 2002 Prentice Hall. All rights reserved.


14

4. Opšta sredstva

• Korisničke funkcije (use cases)


– Da bi u potpunosti specificirali sistem potrebno je opisati sve
korisničke funkcije, u suprotnom specifikacija sistema je
nepotpuna
– Predstavljaju interfejs sistema ka korisniku
– Detaljan opis korisničke funkcije može biti dat u tekstualnoj
formi

 2002 Prentice Hall. All rights reserved.


15

4. Opšta sredstva

• Ostala strukturna opšta (aktivna klasa,


komponenta i čvor) sredstva slična su konceptu
klase
• Aktivne klase
– To su klase čiji objekti imaju jedan ili više niti kontrole
– Grafički simbol je isti kao i za klasu sa podebljanim linijama

 2002 Prentice Hall. All rights reserved.


16

4. Opšta sredstva

• Komponenta
– Predstavlja izmjenjivi dio sistema koji realizuje neke
interfejse.
– Često predstavlja fizičku realizaciju logički vezanih
elemenata kao što su klase,interfejsi i dr.

 2002 Prentice Hall. All rights reserved.


17

4. Opšta sredstva

• Čvor je
– Fizički element koji predstavlja računarski resurs
– U opštem slučaju ima memoriju i mogućnost procesiranja
– Jedna ili više komponenti može se nalazi u čvoru
– Komponente mogu da se šetaju od čvora do čvora

 2002 Prentice Hall. All rights reserved.


18

4. Opšta sredstva

• Opšta sredstva za opis ponašanja


– Dinamički djelovi, tj. glagoli UML modela
– Postoje dvije vrste sredstava za opis ponašanja
• Interakcija
• Konačni automat
• Interakcija
– Skup poruka razmijenjenih između objekata u cilju
ispunjenja nekog cilja
– Grafički se predstavlja usmjerenom linijom na kojoj je
napisan naziv operacije

 2002 Prentice Hall. All rights reserved.


19

4. Opšta sredstva

• Konačni automat
– Opisuje ponašanje koje specifikuje niz stanja kroz koje
objekat prolazi u toku svog životnog ciklusa
– Stanje se grafički prikazuje pravougaonikom sa zaobljenim
krajevima u kome je napisan naziv stanja

 2002 Prentice Hall. All rights reserved.


20

4. Opšta sredstva

• Grupišuća opšta sredstva


– Organizacioni djelovi UML modela
– To su djelovi po kojima model može biti razložen
– Postoji jedna osnovna vrsta grupišućeg opšteg sredstva-
paket
– Pomaže nam da lakše razložimo složeni sistem
– Paket nije implementaciono(ne postoji tokom izvršavanja)
već samo predstavlja konceptualno sredstvo(postoji samo
tokom projektovanja)

 2002 Prentice Hall. All rights reserved.


21

4. Opšta sredstva

• Anotaciona opšta sredstva


– To su djelovi koji nose objašnjenja u UML modelu
– Predstavljaju komentare kojima možete pojasniti,dati
komentar ili primjedbu o bilo kom elementu modela

 2002 Prentice Hall. All rights reserved.


22

5. Relacije

• U OO programiranju klase gotovo nikada nijesu


međusobno izolovane
– Nalaze se u međusobnoj interakciji
• Napr. Jedna klasa može da sadrži objekte druge klase ili
poziva funkcija druge klase
• Tri najvažnije kategorije
– Zavisnost
• Zapravo, u pitanju je zavisnost u pogledu implementacije
– Asocijacija
• Strukturna veza između objekata
– Generalizacija
• Koristi se za definisanje odnosa između izvedenih klasa

 2002 Prentice Hall. All rights reserved.


23

5. Relacije

• Zavisnost
– Veza između dva elementa modela koja označava da
implementacija jednog elementa zahtijeva prisustvo drugog
– Element modela može biti klasa interfejs ili paket
– Element od kojeg polazi usmjerena linija je zavistan dok
element na drugom kraju je nezavisan
– Ovom vezom se definiše da izmjena u implementaciji
nezavisnog elementa utiče na implementaciju zavisnog
elementa

 2002 Prentice Hall. All rights reserved.


24

5. Relacije

• Zavisnost
– Najčešće, ova veza označava da jedna klasa koristi drugu
kao argument funkcije

 2002 Prentice Hall. All rights reserved.


25

5. Relacije

• Generalizacija
– Opisuje nasljeđivanje između klasa

 2002 Prentice Hall. All rights reserved.


26

5. Relacije

• Asocijacija
– Specifikuje semantičku povezanost između objekata dva
opšta sredstva
– Ako su dvije klase povezane vezom asocijacije to znači da je
moguće pristupiti objektima jedne preko objekata druge
– Klasa može da bude povezana sama sa sobom i to je
rekurzivna asocijacija
– Moguće je vezi pridružiti ime i smjer

 2002 Prentice Hall. All rights reserved.


27

5. Relacije

• Asocijacija
– Pored imena i smjer, moguće je i definisati uloge i
kardinalitet

 2002 Prentice Hall. All rights reserved.


28

5. Dijagrami

• Dijagrami
– Grafička reprezentacija skupa elemenata
– Graf
• Opšta sredstva su čvorovi
• Relacije predstavljaju ivice
– Vizuelizacija sistema iz različitih perspektiva
– U teoriji dijagrami mogu sadržati proizvoljne opšte stvari i
relacije
– U praksi postoji manji broj kombinacija koje se javljaju
nekoliko tipova dijagrama koji se koriste

 2002 Prentice Hall. All rights reserved.


29

5. Dijagrami

• Dijagrami
– Dijagrami klasa
– Objekni dijagram
– Dijagram korisničke funkcije (Use-case dijagrami)
– Dijagram sekvence
– Dijagram društva saradnika
– Dijagram stanja
– Dijagram aktivnosti
– Dijagram komponenti
– Dijagram implementacije

 2002 Prentice Hall. All rights reserved.


30

5. Dijagrami

• Dijagrami klasa
– Ovaj dijagram prikazuje skup klasa, interfejsa, društava
saradnika i njihove relacije(zavisnost,asocijacija i
agregacija)
– Dijagrami klasa služe za prikazivanje statičke strukture
sistema,tj za modelovanje rječnika sistema
– Može da sadrži pakete i podsisteme
– Statički

 2002 Prentice Hall. All rights reserved.


31

5. Dijagrami

• Dijagrami klasa

 2002 Prentice Hall. All rights reserved.


32

5. Dijagrami

• Objektni dijagrami
– Ovaj dijagram prikazuje
objekte i njihove relacije
– On predstavlja statičku
strukturu konkretnih
primjeraka koji se nalaze na
dijagramima klase
– Objekti su instance klase. U
toku trajanja programa kreiraju
se i uništavaju
– Objektni dijagram je na neki
način presjek stanja

 2002 Prentice Hall. All rights reserved.


33

5. Dijagrami

• Use-case dijagrami
– Prikazuju dinamičku strukturu sistema
– Važni su za modelovanje ponašanja sistema
– Prikazuju skup korisničkih funkcija, njihove realizatore kao i
relacije zavisnosti generalizacije, asocijacije
– Korisnički pogled na sistem

Stavi u Korpu

KupiKorpu
web user <<include>>

Loguj se
Izloguj se

 2002 Prentice Hall. All rights reserved.


34

5. Dijagrami

• Use-case dijagrami
– Koriste se za modelovanje konteksta u kojem se sistem
nalazi
• Identifikuju se korisnici sistema, kao i druge insitucije i
sistemi koji koriste naš sistem
– Modelovanje zahjeva
• Svaki zahtjev se moduje kao jedan use-case

 2002 Prentice Hall. All rights reserved.


35

5. Dijagrami

• Dijagrami kojima se može prikazati dinamički model


sistema su
– Dijagram sekvenci
– Dijagram saradnje
– Dijagram stanja
– Dijagram aktivnosti
• Interakcija opisuje način na koji objekti u sistemu
međusobno sarađuju i komuniciraju da bi ostvarili zadani
cilj
• Komunikacija se odigrava prosleđivanjem poruka između
objekata
• Poruka može biti poziv neke operacije nad objektom,slanje
signala itd.
 2002 Prentice Hall. All rights reserved.
36

5. Dijagrami

• Dijagram sekvenci
– Dijagramom sekvenci je moguće prikazati komunikaciju
između skupa objekata koja se realizuje razmjenom poruka
između njih
– Na njemu se prikazuju dvije dimenzije:vertikalna koja
predstavlja vrijeme i horizontalna koja prestavlja objekte
– Ovako je moguće specificirati tok poruka koje objekti
razmjenjuju pri realizaciji neke operacije
– Akcenat je na sekvenci poruka, tj. na njihovom redosledu
– Na dijagramu su prikazani objekti i poruke koje razmjenjuju
u odgovarajućem redosledu i vremenskim intervalima

 2002 Prentice Hall. All rights reserved.


37

5. Dijagrami

: Admin : Form : DbClass

show(int)

getTableList( )

 2002 Prentice Hall. All rights reserved.


38

5. Dijagrami

• Dijagrami saradnje
– Njime se takođe prikazuje interakcija objekata u sistemu
– Saradnja se prikazuje objektima i njihovim međusobnim
vezama
• Zapravo u pitanju je graf čiji su čvorovi objekti, a ivice su
interkcije izmeđ objekata. Ivicama se pridružuju dodatne
informacije od porukama koje se prosljeđuju između objekata
– Za razliku od dijagrama sekvence na dijagramu saradnje
naznačena je veza između objekata
– Dijagram saradnje predstavlja pojavu klasnog dijagrama i kao
takav saglasan je sa njim
– Porukama mogu biti dodijeljeni i redni brojevi
– Dodatne informacije o tome da li je u pitanju lokalni ili
globalni objekat itd.
 2002 Prentice Hall. All rights reserved.
39

5. Dijagrami

 2002 Prentice Hall. All rights reserved.


40

5. Dijagrami

• Dijagrami stanja
– Modelovanje dinamičkog aspekta sistema
– U pitanju je konačan automat čiji su koncepti obogaćeni
pojmovima kao što su pseudostanje, završno stanje, složeno
stanje, složeni prelaz iz stanja u stanje
– Opisuju prostor stanja, tj. skup svih mogućih stanja u kojima
objekti date klase mogu da se nađu
• Događaji koji iniciraju prelazak iz jednog u drugo stanje, kao i
akcija koje su rezultat promjene stanja
– Stanje objekta je period vremena u kojem objekat
zadovoljava neki uslov, izvršava neku aktivnost, ili čeka
neki događaj

 2002 Prentice Hall. All rights reserved.


41

5. Dijagrami

 2002 Prentice Hall. All rights reserved.


42

5. Dijagrami

• Dijagrami aktivnosti
– Pridružuje se paketu, klasi, tj. implementaciji njene operacije
i opisuje akcije i aktivnosti koje se izvršavaju u okviru njih
– Stanje akcije
• Atomične operacije
– Stanje aktivnosti
• Mogu se dalje dekomponovati
• Imaju trajanje
– Grananja
– Konkurentno izvršavanje

 2002 Prentice Hall. All rights reserved.


43

5. Dijagrami

 2002 Prentice Hall. All rights reserved.

You might also like