Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Modelovanje aplikacije korišćenjem UML-a
Objektno modelovanje - UML
UML (Unified Modeling Language) - objedinjeni vizuelni jezik za poslovno i softversko modelovanje u svim fazama razvoja i za svetipove 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
UML
UML je projektovan kao vrlo fleksibilan i prilagodiv jezik, kojiomoguć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.
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.
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?
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
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)
Gradivni blokovi UML-a
Stvari (things)
Relacije (relationships)
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
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.
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
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.
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).
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
Dijagrami slučajeva upotrebe (korišćenja)
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
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.
Dijagram slučajeva upotrebe
korisnik
Pregled filmova
Pregled bioskopa
Rezervacija
Dijagram slučaja upotrebeprocesa rezervacije
Odabir filma
Odabir bioskopa
Odabir termina
Rezervacija karata
Potvrda rezervacije
Unos podataka
korisnik
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
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
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?
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 <<extends>>
Generalizacija (Generalization-Inheritance)
Zavisnost (Depedency)
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
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
Upotreba tipa <<include>>
Korisnik LoginPristupa Webu
<< include>>
Upotreba tipa <<extends>>
“Proširivanjem” jednog sučaja upotrebe opiše 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<<extends>>
Upotreba tipa <<extends>>
<<extends>> Praćenje finansija
Praćenje dnevnog kumulativaPeriodična kontrola
<<extends>>
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
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
Primer 2.
Operator
Korisnik
Banka
sesija
transakcije
uplata isplata transfer izveštaj
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
Elektronska prodavnica knjiga
Primer 4.
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.
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.
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
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
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
Slučaj korišćenja: Modifikacija podataka
Slučaj korišćenja: Pretraga
Slučaj korišćenja: Logovanje administratora na sistem
Unos lozinke
provera lozinke
Dijagrami aktivnosti
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
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
Definisanje stanja dijagrama aktivnosti
Definisanje pseudostanja – stanja prelaza
Početno stanje
Krajnje stanje
Stanje odluke - grananje
Sinhronizacija
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
Prikaz grananja
A
C
[uslov]
[not uslov]
B
grananje
Prikaz grananja
postavi iterator
radi()
promeni iterator
[kraj]
[not kraj]
početno stanje
završno stanje
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
Prikaz sinhronizacije
Priprema
Aktivnost 1 Aktivnost 2
Finalizacija
Sinhronizaciona tačkaRačvanje (fork)
Udruživanja (join)
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 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
Definisanje plivačkih staza
Ime 1 Ime 2 Ime 3
A
B
C
D
Plivačka staza
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
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
Dijagrami aktivnosti