59
1 Modelovanje aplikacije korišćenjem UML-a

Modelovanje Aplikacije Koriscenjem UML

Embed Size (px)

DESCRIPTION

Modelovanje Aplikacije Koriscenjem UML

Citation preview

Page 1: Modelovanje Aplikacije Koriscenjem UML

1

Modelovanje aplikacije korišćenjem UML-a

Page 2: Modelovanje Aplikacije Koriscenjem UML

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

Page 3: Modelovanje Aplikacije Koriscenjem UML

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.

Page 4: Modelovanje Aplikacije Koriscenjem UML

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.

Page 5: Modelovanje Aplikacije Koriscenjem UML

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?

Page 6: Modelovanje Aplikacije Koriscenjem UML

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 7: Modelovanje Aplikacije Koriscenjem UML

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)

Page 8: Modelovanje Aplikacije Koriscenjem UML

8

Gradivni blokovi UML-a

Stvari (things)

Relacije (relationships)

Page 9: Modelovanje Aplikacije Koriscenjem UML

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

Page 10: Modelovanje Aplikacije Koriscenjem UML

10

Statički delovi modela

Fizički i zamenljivi deo sistema koji obezbeđuje realizaciju

skupa interfejsa

Komponenta

OpisSimbolIme

Čvor

Aktivne

klase

Slučaj

upotrebe

Korisnik

Kolaboracija

(Saradnja)

Interfejs

Klasa

Fizički element koji postoji u vreme izvršavanja i predstavlja

računarski resurs – ima memoriju i mogućnost procesiranja.

Klase čiji objekti poseduju jedan ili više procesa ili niti –

mogu inicirati kontrolnu aktivnost.

Opis skupa sekvenci akcija koje sistem izvodi da bi izvršio

neki zahtev korisnika.

Spoljašnji entitet koji komunicira sa sistemom, obično osoba.

Definiše interakciju i udružuje uloge i druge elemente tako da

rade zajedno i obezbeđuju kolaborativno ponašanje.

Kolekcija operacija koje opisuju servise klase ili komponente.

Opis skupa objekata koji dele iste atribute, operacije, veze i

semantiku. Implementira 1 ili više interfejsa.

Page 11: Modelovanje Aplikacije Koriscenjem UML

11

Dinamički delovi UML modela

OpisSimbolIme

Prikaz stanja

Interakcija

Ponašanje specificirano sekvencom stanja objekta ili

neke interakcije.

Ponašanje prilikom razmene skupa poruka između

skupa objekata da bi se objasnile specifične namene.prikaz

Čekanje

Page 12: Modelovanje Aplikacije Koriscenjem UML

12

Organizacioni delovi UML modela

OpisSimbolIme

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 13: Modelovanje Aplikacije Koriscenjem UML

13

Delovi za objašnjenja

OpisSimbolIme

Anotacija

Komentari kojima opisujemo, objašnjavamo i

naznačavamo bilo koji element u modelu.

Osnovna vrsta anotacije je napomena (note).

Page 14: Modelovanje Aplikacije Koriscenjem UML

14

Relacije (relationships)

Semantička relacija između klasifikatora, gde jedan

klasifikator specificira ugovor koji drugi klasifikator

garantuje da će ispuniti.

Objekti specijalizovanih elemenata (dete)

predstavljaju zamene za objekte generalizovanih

elemenata (roditelj).

Vrh strelice na roditelju.

Strukturna relacija koja opisuje skup veza kojim se

postavlja veza između objekata.

Semantička relacija između nezavisne i zavisne

stvari. Nezavisna stvar utiče na semantiku zavisne.

Usmerenje – iz zavisnog slučaja.

Opis

Realizacija

Generalizacija

SimbolIme

Asocijacija

Zavisnost

0..1 *

radi radj

Page 15: Modelovanje Aplikacije Koriscenjem UML

15

Alati za izradu UML dijagrama

Page 16: Modelovanje Aplikacije Koriscenjem UML

16

Alati za izradu UML dijagrama

Rational Rose

Microsoft Visio

System Architect

Describe Enterprise

Page 17: Modelovanje Aplikacije Koriscenjem UML

17

Rational Rose

Page 18: Modelovanje Aplikacije Koriscenjem UML

18

Dijagrami slučajeva upotrebe (korišćenja)

Page 19: Modelovanje Aplikacije Koriscenjem UML

19

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

Page 20: Modelovanje Aplikacije Koriscenjem UML

20

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.

Page 21: Modelovanje Aplikacije Koriscenjem UML

21

Dijagram slučajeva upotrebe

korisnik

Pregled filmova

Pregled bioskopa

Rezervacija

Page 22: Modelovanje Aplikacije Koriscenjem UML

22

Dijagram slučaja upotrebeprocesa rezervacije

Odabir filma

Odabir bioskopa

Odabir termina

Rezervacija karata

Potvrda rezervacije

Unos podataka

korisnik

Page 23: Modelovanje Aplikacije Koriscenjem UML

23

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

Page 24: Modelovanje Aplikacije Koriscenjem UML

24

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

Page 25: Modelovanje Aplikacije Koriscenjem UML

25

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?

Page 26: Modelovanje Aplikacije Koriscenjem UML

26

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)

Page 27: Modelovanje Aplikacije Koriscenjem UML

27

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 28: Modelovanje Aplikacije Koriscenjem UML

28

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 sistemaDefinicija problema

Menadžer projekta Inženjer razvojaklijent

Krajnji korisnik

Page 29: Modelovanje Aplikacije Koriscenjem UML

29

Upotreba tipa <<include>>

Korisnik LoginPristupa Webu

<< include>>

Page 30: Modelovanje Aplikacije Koriscenjem UML

30

Upotreba tipa <<extend>>

“Proširivanjem” jednog sluč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>>

Page 31: Modelovanje Aplikacije Koriscenjem UML

31

Upotreba tipa <<extends>>

<<extend>> Praćenje finansija

Praćenje dnevnog kumulativaPeriodična kontrola

<<extend>>

Page 32: Modelovanje Aplikacije Koriscenjem UML

32

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

Page 33: Modelovanje Aplikacije Koriscenjem UML

33

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 34: Modelovanje Aplikacije Koriscenjem UML

34

Primer 2.

Operator

Korisnik

Banka

sesija

transakcije

uplata isplata transfer izveštaj

Page 35: Modelovanje Aplikacije Koriscenjem UML

35

Primer 3.

službenik

pacijent

Zakazuje pregled

Otkazuje pregled

Provera pacijentove

dokumentacije

Zahteva lečenje

Različliti načini plaćanja

Plaćanje računa

Tačke proširenja

Naredni tretmani

kartoteka

doktor

Polisa osiguranja

Page 36: Modelovanje Aplikacije Koriscenjem UML

36

Elektronska prodavnica knjiga

Primer 4.

Page 37: Modelovanje Aplikacije Koriscenjem UML

37

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.

Page 38: Modelovanje Aplikacije Koriscenjem UML

38

Analiza sistema

Poslovni ciljevi predstavljaju jednostavnu listu mogućnosti koje od sajta očekujemo.

Funkcionalnosti sistema predstavljaju 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.

Page 39: Modelovanje Aplikacije Koriscenjem UML

39

Broj posetilaca, posećene stranice,

kupljeni proizvodi.

Sistem za praćenje i izveštaj o

sajtu

Razumeti efikasnost

marketinga.

Inventar proizvoda, ID i kontakt

izdavača.

Upravljanje inventaromMogućnost lakog ažuriranja i

proširivanja kataloga

Korisnikov ID, knjige, datum

porudžbine.

Baza podataka o

porudžbinama

Obezbediti podršku

potrošaču nakon kupovine

knjiga.

Ime, adresa, telefon i e-mail svakog

potrošača. Online registracija

korisnika.

Baza podataka potrošačaPrikupiti podatke o

potrošaču.

Naziv, autor, cena, izdavač i kratak

opis svake knjige.

Baza podataka knjigaNeposredno pretražiti katalog

i dodati knjige u potrošačku

korpu.

Upis svakog korisnika koji pristupi

sajtu.

Veza sa potrošačemPersonalizovati/kastomizovati

svaku knjigu.

Opis knjige, broj zaliha, nivo

inventara.

Baza podataka knjigaObezbediti detaljnije

informacije o knjigama.

Dinamičan tekst i grafički katalog.Digitalni katalogPrikazati knjige.

Informacioni zahteviFunkcionalnost sistemaPoslovni ciljevi

Page 40: Modelovanje Aplikacije Koriscenjem UML

40

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

Page 41: Modelovanje Aplikacije Koriscenjem UML

41

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

korisnik administrator

Page 42: Modelovanje Aplikacije Koriscenjem UML

42

Slučaj korišćenja: Modifikacija podataka

Page 43: Modelovanje Aplikacije Koriscenjem UML

43

Slučaj korišćenja: Pretraga

Page 44: Modelovanje Aplikacije Koriscenjem UML

44

Slučaj korišćenja: Logovanje administratora na sistem

Unos lozinke

provera lozinke

Page 45: Modelovanje Aplikacije Koriscenjem UML

45

Dijagrami aktivnosti

Page 46: Modelovanje Aplikacije Koriscenjem UML

46

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

Page 47: Modelovanje Aplikacije Koriscenjem UML

47

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

Pseudostanje ili

Stanje toka objekta

Oznaka stanja je jedinstvena:

Naziv stanja

Page 48: Modelovanje Aplikacije Koriscenjem UML

48

Definisanje stanja dijagrama aktivnosti

Definisanje pseudostanja – stanja prelaza

Početno stanje

Krajnje stanje

Stanje odluke - grananje

Sinhronizacija

Page 49: Modelovanje Aplikacije Koriscenjem UML

49

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

Page 50: Modelovanje Aplikacije Koriscenjem UML

50

Prikaz grananja

A

C

[uslov]

[not uslov]

B

grananje

Page 51: Modelovanje Aplikacije Koriscenjem UML

51

Prikaz grananja

postavi iterator

radi()

promeni iterator

[kraj]

[not kraj]

početno stanje

završno stanje

Page 52: Modelovanje Aplikacije Koriscenjem UML

52

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

Page 53: Modelovanje Aplikacije Koriscenjem UML

53

Prikaz sinhronizacije

Priprema

Aktivnost 1 Aktivnost 2

Finalizacija

Sinhronizaciona tačkaRačvanje (fork)

Udruživanja (join)

Page 54: Modelovanje Aplikacije Koriscenjem UML

54

Page 55: Modelovanje Aplikacije Koriscenjem UML

55

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

Page 56: Modelovanje Aplikacije Koriscenjem UML

56

Definisanje plivačkih staza

Ime 1 Ime 2 Ime 3

A

B

C

D

Plivačka

staza

Page 57: Modelovanje Aplikacije Koriscenjem UML

57

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 58: Modelovanje Aplikacije Koriscenjem UML

58

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

Page 59: Modelovanje Aplikacije Koriscenjem UML

59

Dijagrami aktivnosti