Stručna praksa I

Stručna praksa I Stručna praksa I

24.05.2015 Views

Stručna praksa I Aleksandra Klašnja nja-Milićević Konsultacije: Ponedeljak 14.00 - 17.30h Kabinet 2

Stručna <strong>praksa</strong> I<br />

Aleksandra Klašnja<br />

nja-Milićević<br />

Konsultacije: Ponedeljak 14.00 - 17.30h<br />

Kabinet 2


Stručna <strong>praksa</strong> I<br />

Tema 3 - Primena prezentacionih alata u različitim<br />

poslovnim aktivnostima u poslovnom sistemu i sa<br />

drugim poslovnim subjektima<br />

Tema 4 - Korišćenje infrastrukture Interneta u različitim<br />

poslovnim aktivnostima u poslovnom sistemu i sa<br />

drugim poslovnim subjektima<br />

2


Plan rada<br />

Priprema za izradu praktičnog rada - mart, april<br />

Pronalazak poslovne organizacije i usaglašavanje<br />

sadržaja predstojećeg praktičnog rada – do 10.aprila<br />

Izrada praktičnog rada – u toku maja<br />

Za sve dileme, nejasnoće i pomoć u praktičnom radu u<br />

ovoj fazi, studentima je dostupan nastavnik praktične<br />

nastave iz ovog segmenta – ponedeljak 14-17.30 u kab2<br />

Krajnji rok za predaju praktičnih radova – 29.maj<br />

3


Modelovanje sistema<br />

korišćenjem UML-a


Objektno modelovanje - UML<br />

<br />

<br />

<br />

UML (Unified Modeling Language) - objedinjeni vizuelni jezik za<br />

poslovno i softversko modelovanje u svim fazama razvoja i za sve<br />

tipove sistema, kao i za generalno modelovanje kojim se definišu<br />

statičke strukture i dinamičko ponašanje.<br />

Standardni jezik za:<br />

<br />

<br />

<br />

<br />

vizuelizaciju<br />

specifikaciju<br />

konstruisanje i<br />

dokumentovanje softverskih sistema<br />

UML kombinuje najbolje iz:<br />

<br />

<br />

<br />

Koncepta “Data Modeling” (Entity Relationships Diagrams)<br />

Poslovnog modelovanja (work flow)<br />

Objektnog i komponentnog modelovanja<br />

5


UML<br />

UML je projektovan kao vrlo fleksibilan i prilagodiv jezik, koji<br />

omogućava vrlo različite vrste modelovanja, uključujući:<br />

<br />

<br />

<br />

<br />

<br />

<br />

modele koji olakšavaju razumevanje poslovnih procesa,<br />

odvijanja tokova događaja,<br />

sekvenci upita,<br />

aplikacija,<br />

baza podataka,<br />

arhitektura i drugog.<br />

6


UML<br />

<br />

<br />

UML je nastao kao rezultat evolucije objektno orijentisanih jezika<br />

za modelovanje.<br />

Razvila ga je kompanija Rational Software objedinjavanjem tri<br />

vodeće metode objektno orijentisanog modelovanja:<br />

<br />

<br />

<br />

Booch koji je razvio Grady Booch,<br />

OMT (Object Modeling Technique) koji je razvio Jim Rambaugh i<br />

OOSE (Object-Oriented Software Engineering) koji je razvio Ivar<br />

Jacobson.<br />

7


Arhitektura softverskih sistema<br />

Kako je sistem<br />

struktuiran?<br />

Koje su funkcije<br />

sistema?<br />

Kako izgraditi<br />

sistem?<br />

Kako se sistem<br />

ponaša?<br />

Gde instalirati?<br />

Kako je sistem<br />

predstavljen?<br />

8


Kategorije korisnika<br />

UML koriste sledeće kategorije korisnika<br />

Sistem analitičari i krajnji korisnici – specifikacija<br />

zahtevane strukture i ponašanje sistema<br />

Arhitekte sistema – projektanti sistema koji će<br />

zadovoljiti zahteve<br />

Razvojni inženjeri (developers) – transformišu<br />

arhitekturu u izvršni kod<br />

Kontrolori kvaliteta – provera strukture i ponašanje<br />

sistema<br />

Rukovodioci projekta (menagers) – vode i usmeravaju<br />

kadrove i resurse<br />

9


UML dijagrami<br />

<br />

<br />

Dijagram u UML-u – grafička predstava skupa elemenata - iscrtan kao<br />

graf čvorova (stvari) i lukova (relacija)<br />

Dijagrami UML-a prikazuju sistem iz više uglova:<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Dijagram slučajeva upotrebe (Use-Case Diagram)<br />

Dijagram klasa (Class Diagram)<br />

Dijagram objekata (Object Diagram)<br />

Dijagram sekvenci (Sequence Diagram)<br />

Dijagram saradnje (Collaboration Diagram)<br />

Dijagram promene stanja (State Diagram)<br />

Dijagram aktivnosti (Activity Diagram)<br />

Dijagram komponenti (Component Diagram)<br />

Dijagram razvoja (Deployment Diagram)<br />

10


Gradivni blokovi UML-a<br />

Stvari (things)<br />

Relacije (relationships)<br />

11


Things<br />

Postoje 4 vrste elemenata (things):<br />

Elementi strukture – statički delovi modela koji<br />

reprezentuju konceptualne ili fizičke elemente (imenice)<br />

Elementi ponašanja – dinamički delovi modela koji<br />

reprezentuju ponašanje kroz prostor i vreme (glagoli)<br />

Elementi grupisanja - organizacioni delovi modela<br />

Elementi anotacije – opisni delovi modela, komentari koji<br />

se primenjuju na bilo koji dokument<br />

12


Statički delovi modela<br />

Ime<br />

Klasa<br />

Interfejs<br />

Kolaboracija<br />

(Saradnja)<br />

Korisnik<br />

Slučaj<br />

upotrebe<br />

Aktivne<br />

klase<br />

Komponenta<br />

Čvor<br />

Simbol<br />

Opis<br />

Opis skupa objekata koji dele iste atribute, operacije, veze i<br />

semantiku. Implementira 1 ili više interfejsa.<br />

Kolekcija operacija koje opisuju servise klase ili komponente.<br />

Definiše interakciju i udružuje uloge i druge elemente tako da<br />

rade zajedno i obezbeđuju kolaborativno ponašanje.<br />

Spoljašnji entitet koji komunicira sa sistemom, obično osoba.<br />

Opis skupa sekvenci akcija koje sistem izvodi da bi izvršio<br />

neki zahtev korisnika.<br />

Klase čiji objekti poseduju jedan ili više procesa ili niti –<br />

mogu inicirati kontrolnu aktivnost.<br />

Fizički i zamenljivi deo sistema koji obezbeđuje realizaciju<br />

skupa interfejsa<br />

Fizički element koji postoji u vreme izvršavanja i predstavlja 13<br />

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


Dinamički delovi UML modela<br />

Ime<br />

Interakcija<br />

Prikaz stanja<br />

Simbol<br />

prikaz<br />

Čekanje<br />

Opis<br />

Ponašanje prilikom razmene skupa poruka između<br />

skupa objekata da bi se objasnile specifične namene.<br />

Ponašanje specificirano sekvencom stanja objekta ili<br />

neke interakcije.<br />

14


Organizacioni delovi UML modela<br />

Ime<br />

Paket<br />

Simbol<br />

Opis<br />

Grupe na koje model može biti dekomponovan.<br />

Mehanizam opšte namene, za organizovanje elemenata<br />

u grupe.<br />

Paket je čisto konceptualan – postoji samo u vreme<br />

razvoja.<br />

15


Delovi za objašnjenja<br />

Ime<br />

Anotacija<br />

Simbol<br />

Opis<br />

Komentari kojima opisujemo, objašnjavamo i<br />

naznačavamo bilo koji element u modelu.<br />

Osnovna vrsta anotacije je napomena (note).<br />

16


Relacije (relationships)<br />

Ime<br />

Zavisnost<br />

Asocijacija<br />

Generalizacija<br />

Realizacija<br />

Simbol<br />

0..1 *<br />

radi radj<br />

Opis<br />

Semantička relacija između nezavisne i zavisne<br />

stvari. Nezavisna stvar utiče na semantiku zavisne.<br />

Usmerenje – iz zavisnog slučaja.<br />

Strukturna relacija koja opisuje skup veza kojim se<br />

postavlja veza između objekata.<br />

Objekti specijalizovanih elemenata (dete)<br />

predstavljaju zamene za objekte generalizovanih<br />

elemenata (roditelj).<br />

Vrh strelice na roditelju.<br />

Semantička relacija između klasifikatora, gde jedan<br />

klasifikator specificira ugovor koji drugi klasifikator<br />

garantuje da će ispuniti.<br />

17


Dijagrami slučajeva<br />

upotrebe (korišćenja)<br />

18


Dijagram slučajeva upotrebe<br />

(Use-Case Diagram)<br />

Omogućavaju krajnjim korisnicima da razumeju sistem<br />

Pogled korisnika na funkcionisanje sistema (šta sistem radi, a<br />

ne kako sistem funkcioniše)<br />

Razvoj dijagrama slučajeva upotrebe definiše se sledećim<br />

aktivnostima:<br />

<br />

<br />

<br />

<br />

Definisanjem učesnika<br />

Definisanjem slučajeva upotrebe<br />

Definisanjem tipova veza između učesnika i slučajeva upotrebe<br />

Izradom dijagrama slučajeva upotrebe<br />

Asocijativni naziv<br />

Učesnik<br />

Slučaj upotrebe<br />

19


Primer 1.<br />

Potrebno je napraviti aplikaciju koja će omogućiti korisniku<br />

da preko Interneta rezerviše bioskopske ulaznice za željene<br />

projekcije.<br />

Takođe je potrebno omogućiti korisniku stalan uvid u<br />

bioskopski repertoar i informacije o bioskopu u kojem<br />

željeni film igra.<br />

20


Dijagram slučajeva upotrebe<br />

Pregled filmova<br />

korisnik<br />

Pregled bioskopa<br />

Rezervacija<br />

21


Dijagram slučaja upotrebe<br />

procesa rezervacije<br />

Odabir filma<br />

Odabir bioskopa<br />

korisnik<br />

Odabir termina<br />

Rezervacija karata<br />

Potvrda rezervacije<br />

Unos podataka<br />

22


Definisanje učesnika<br />

Korisnik je čovek koji koristi sistem, dok je učesnik specifična<br />

uloga koju korisnik ima u komunikaciji sa sistemom<br />

Učesnik – osoba ili veštački entitet (softver ili sistem) koji<br />

učestvuje u slučaju upotrebe<br />

23


Definisanje učesnika<br />

Učesnika je moguće identifikovati na osnovu odgovora na sledeća<br />

pitanja:<br />

<br />

<br />

<br />

<br />

<br />

<br />

Ko će koristiti osnovnu funkcionalnost sistema (primarni<br />

učesnici)<br />

Ko treba da upravlja, administrira i održava sistem (sekundarni<br />

učesnici)<br />

Kome će biti potrebna podrška sistema u obavljanju dnevnih<br />

zadataka<br />

Kojim hardverskim uređajima sistem treba da upravlja<br />

Sa kojim drugim sistemima dotični sistem treba da bude u vezi<br />

Ko ili šta je zainteresovan za rezultate koje sistem proizvodi<br />

24


Definisanje slučajeva upotrebe<br />

Slučaj upotrebe – definiše funkcionalnost sistema sa<br />

stanovišta učesnika – šablon ponašanja delova sistema<br />

Pitanja za učesnika – identifikuju slučajeve upotrebe:<br />

<br />

<br />

<br />

<br />

Koje funkcije učesnik zahteva od sistema – šta učesnik treba da<br />

radi?<br />

Da li učesnik treba da čita, kreira, briše, izmeni ili da unese<br />

neke informacije u sistem?<br />

Da li učesnik treba da bude obavešten o događajima u sistemu?<br />

Da li svakodnevni rad učesnika može da se pojednostavi kroz<br />

nove funkcije sistema?<br />

25


Definisanje veze između učesnika<br />

i slučajeva upotrebe<br />

Veze koje se uspostavljaju u dijagramu slučajeva upotrebe:<br />

<br />

<br />

<br />

Asocijacija (Association)<br />

<br />

<br />

Asocijacija između slučajeva upotrebe tipa <br />

Asocijacija između slučajeva upotrebe tipa <br />

Generalizacija (Generalization-Inheritance)<br />

Zavisnost (Depedency)<br />

26


Asocijacija<br />

<br />

<br />

Bidirekciona veza – linija koja spaja učesnike i slučajeve upotrebe<br />

Asocijacija između samih učesnika ili slučajeva upotrebe, definiše<br />

povezanost tih elemenata<br />

Menadžer projekta<br />

Razvoj sistema<br />

Inženjer razvoja<br />

27


Upotreba tipa <br />

<br />

<br />

Slično ponašanje deli se između sličnih slučajeva upotrebe<br />

Veza opisuje odnos između slučajeva upotrebe u<br />

kojem jedan slučaj upotrebe koristi usluge drugog<br />

<br />

Razvoj softvera<br />

<br />

<br />

Definicija problema<br />

Razvoj sistema<br />

Operacije sistema<br />

28


Upotreba tipa <br />

><br />

Korisnik<br />

Pristupa<br />

Webu<br />

Login<br />

29


Upotreba tipa <br />

“Proširivanjem” jednog sučaja upotrebe opisuje se neka<br />

složenija funkcija sistema<br />

Proširivanje se vrši sa jednim ili više drugih postojećih<br />

slučajeva upotrebe<br />

A<br />

<br />

B<br />

Ako slučaj A proširuje slučaj B:<br />

<br />

<br />

i slučaj A i slučaj B mogu da postoje sami<br />

slučaj B može (a ne mora) da bude proširen slučajem A<br />

30


Upotreba tipa <br />

<br />

Praćenje finansija<br />

<br />

Periodična kontrola<br />

Praćenje dnevnog kumulativa<br />

31


Generalizacija<br />

<br />

<br />

Generalizacija – veza između roditelja i deteta – vezana za pojam<br />

nasleđivanja – dete nasleđuje osobine roditelja<br />

Generalizacija učesnika – izvedeni učesnik ima sve osobine i<br />

ponašanje osnovnog (apstraktnog) učesnika, ali može dodati<br />

osobine ili redefinisati ponašanje<br />

zaposlen<br />

Rukovodilac Knjigovođa Kontrolor<br />

32


Generalizacija<br />

<br />

Generalizacija slučajeva upotrebe – izvedeni slučaj upotrebe ima<br />

sve osobine i ponašanje apstraktnog slučaja upotrebe, ali može<br />

dodati osobine ili redefinisati ponašanje<br />

Novčane transakcije<br />

Isplata<br />

Uplata<br />

33


Primer 2.<br />

Operator<br />

Korisnik<br />

sesija<br />

transakcije<br />

Banka<br />

uplata isplata transfer izveštaj<br />

34


Primer 3.<br />

Otkazuje pregled<br />

pacijent<br />

Zakazuje pregled<br />

Zahteva lečenje<br />

Plaćanje računa<br />

Tačke proširenja<br />

Naredni tretmani<br />

Provera pacijentove<br />

dokumentacije<br />

Različliti načini<br />

plaćanja<br />

kartoteka<br />

doktor<br />

službenik<br />

Polisa osiguranja<br />

35


Elektronska prodavnica<br />

knjiga<br />

Primer 4.


Analiza sistema<br />

Analiza sistema treba da omogući odgovor na pitanje:<br />

“Koja je prioritetna funkcija koju treba da ostvari sajt<br />

namenjen elektronskoj trgovini?”<br />

Jedan od načina za realizaciju sajta je uočavanje<br />

poslovnih ciljeva, na osnovu kojih se razvija lista<br />

funkcionalnosti sistema i zahteva za informacijama.<br />

37


Analiza sistema<br />

<br />

<br />

<br />

<br />

Poslovni ciljevi predstavljaju jednostavnu listu mogućnosti koje od<br />

sajta očekujemo.<br />

Funkcionalnosti sistema predstavljaju listu mogućnosti<br />

informacionog sistema koje su potrebne da bi se ostvarili poslovni<br />

ciljevi.<br />

Informacioni zahtevi za sistem predstavljaju informacione<br />

elemente koje sistem mora da produkuje da bi se realizovali<br />

poslovni ciljevi.<br />

Tako formirane liste moraju se dostaviti programerima da bi znali<br />

šta menadžer od njih očekuje.<br />

38


Poslovni ciljevi<br />

Prikazati knjige.<br />

Obezbediti detaljnije<br />

informacije o knjigama.<br />

Personalizovati/kastomizovati<br />

svaku knjigu.<br />

Neposredno pretražiti katalog<br />

i dodati knjige u potrošačku<br />

korpu.<br />

Prikupiti podatke o<br />

potrošaču.<br />

Obezbediti podršku<br />

potrošaču nakon kupovine<br />

knjiga.<br />

Mogućnost lakog ažuriranja i<br />

proširivanja kataloga<br />

Razumeti efikasnost<br />

marketinga.<br />

Funkcionalnost sistema<br />

Digitalni katalog<br />

Baza podataka knjiga<br />

Veza sa potrošačem<br />

Baza podataka knjiga<br />

Baza podataka potrošača<br />

Baza podataka o<br />

porudžbinama<br />

Upravljanje inventarom<br />

Sistem za praćenje i izveštaj o<br />

sajtu<br />

Informacioni zahtevi<br />

Dinamičan tekst i grafički katalog.<br />

Opis knjige, broj zaliha, nivo<br />

inventara.<br />

Upis svakog korisnika koji pristupi<br />

sajtu.<br />

Naziv, autor, cena, izdavač i kratak<br />

opis svake knjige.<br />

Ime, adresa, telefon i e-mail svakog<br />

potrošača. Online registracija<br />

korisnika.<br />

Korisnikov ID, knjige, datum<br />

porudžbine.<br />

Inventar proizvoda, ID i kontakt<br />

izdavača.<br />

Broj posetilaca, posećene stranice,<br />

kupljeni proizvodi.<br />

39


Specifikacija zahteva<br />

Korisnika<br />

Registraciju novih korisnika<br />

Prijavljivanje starih korisnika<br />

Pregled kataloga<br />

Pretragu kataloga<br />

Postavljanje odabranih knjiga u<br />

potrošačku korpu<br />

Modifikaciju potrošačke korpe<br />

Pražnjenje cele korpe<br />

Administratora<br />

Registraciju novog administratora<br />

Izmenu lozinke registrovanog administratora<br />

Brisanje administratora<br />

Postavljanje novih kategorija u katalog<br />

Uklanjanje kategorija iz kataloga<br />

Postavljanje novih knjiga u katalog<br />

Editovanje atributa knjige u katalogu<br />

Uklanjanje knjiga iz kategorija<br />

Premeštanje knjiga iz jedne u drugu kategoriju<br />

Postavljanje novih izdavača<br />

Modifikaciju atributa postojećih izdavača<br />

40


Prikaz opštih slučajeva upotrebe<br />

Login<br />

Login<br />

Registracija<br />

Registracija<br />

Pretraga kataloga<br />

Modifikacija kategorija<br />

korisnik<br />

Formiranje porudžbine<br />

Modifikacija knjiga<br />

administrator<br />

Modifikacija porudžbine<br />

Modifikacija administratora<br />

Pražnjenje cele korpe<br />

Modifikacija izdavača<br />

41


Slučaj korišćenja: Modifikacija<br />

podataka<br />

42


Slučaj korišćenja: Pretraga<br />

43


Slučaj korišćenja: Logovanje<br />

administratora na sistem<br />

Unos lozinke<br />

provera lozinke<br />

44


Dijagrami aktivnosti


Razvoj dijagrama aktivnosti<br />

<br />

<br />

<br />

<br />

Poslovni proces – slučaj upotrebe – posmatra se kao sistem koji<br />

ima svoja stanja u kojima se obavljaju aktivnosti, dok prelaze iz<br />

jednog u drugo stanje koje diktiraju događaji<br />

Prikazuje sekvencijalni tok aktivnosti<br />

Sastoji se od:<br />

Stanja<br />

Akcija<br />

Prelaza<br />

Proces Razvoja dijagrama aktivnosti sadrži:<br />

Definisanje plivačkih staza<br />

Definisanje stanja dijagrama aktivnosti<br />

Definisanje tranzicija<br />

46


Definisanje stanja dijagrama aktivnosti<br />

<br />

<br />

Stanje dijagrama aktivnosti može da predstavlja:<br />

<br />

<br />

<br />

<br />

Akciju – ne može biti dekomponovana, traje kratko vreme, ne<br />

može se prekidati<br />

Aktivnost – ima trajanje, može se prekidati zbog nekih<br />

događaja, može se dekomponovati<br />

Pseudostanje ili<br />

Stanje toka objekta<br />

Oznaka stanja je jedinstvena:<br />

Naziv stanja<br />

47


Definisanje stanja dijagrama aktivnosti<br />

<br />

Definisanje pseudostanja – stanja prelaza<br />

<br />

Početno stanje<br />

<br />

<br />

<br />

Krajnje stanje<br />

Stanje odluke - grananje<br />

Sinhronizacija<br />

48


Definisanje tranzicija<br />

<br />

<br />

<br />

Tranzicija - prelazak iz jednog u drugo stanje – prouzrokuje (okida)<br />

neki događaj<br />

Događaji mogu da budu:<br />

Spoljni – generišu se van sistema – generišu ga učesnici<br />

Kraj aktivnosti<br />

Vremenski – spoljni ali bez učesnika<br />

Upravljački – generiše rukovodilac posla<br />

Tranzicija prouzrokuje događaj koji sadrži uslove, argumente i akcije<br />

Događaj 1 (argument) [uslov 1] /<br />

Akcija 1<br />

<br />

Događaj – poruka – ako su očigledne ne prikazuju se na dijagramu<br />

49


Prikaz grananja<br />

grananje<br />

A<br />

[uslov]<br />

B<br />

[not uslov]<br />

C<br />

50


Prikaz grananja<br />

početno stanje<br />

postavi<br />

iterator<br />

[kraj]<br />

[not kraj]<br />

završno stanje<br />

radi()<br />

promeni<br />

iterator<br />

51


Sinhronizacija<br />

Sinhronizacija – zadebljana horizontalna linija<br />

Račvanja (fork) i udruživanja (join) niti – obavljaju se u<br />

sinhronizacionim tačkama<br />

Tranzicije koje ulaze u sinhronizaciju su uslov za paralelno<br />

obavljanje tranzicija koje iz nje izlaze – jedna aktivnost<br />

“čeka” na ispunjenje uslova (“pristizanje” svih događaja) za<br />

njeno izvršenje<br />

52


Prikaz sinhronizacije<br />

Račvanje (fork)<br />

Priprema<br />

Sinhronizaciona tačka<br />

Aktivnost 1 Aktivnost 2<br />

Udruživanja (join)<br />

Finalizacija<br />

53


Definisanje plivačkih staza<br />

Dijagram aktivnosti deli se u odgovarajuće logičke celine –<br />

plivačke staze – definišu odgovornost pojedinih objekata za<br />

izvršenje odgovarajućih akcija<br />

Svaka staza – navode se učesnici, aktivnosti – “radna lista” –<br />

definisana u okviru opisa radnog mesta prilikom opisa organizacije<br />

<br />

Stanja pripadaju stazama, a tranzicije mogu da prelaze iz jedne<br />

staze u drugu<br />

55


Definisanje plivačkih staza<br />

Ime 1 Ime 2 Ime 3<br />

A<br />

B<br />

Plivačka<br />

staza<br />

C<br />

D<br />

56


Primer<br />

korisnik prodaja magacin<br />

Zahtev za<br />

isporukom<br />

Plaćanje<br />

Order<br />

[placed]<br />

Prijem<br />

porudžbine<br />

Order<br />

[filled]<br />

Order<br />

[entered]<br />

Priprema<br />

isporuke<br />

Isporuka<br />

Preuzimanje<br />

robe<br />

Order<br />

[delivered]<br />

Isporuka<br />

57


Korisnik Automat Banka<br />

Postavi karticu<br />

Unesi PIN<br />

Podižem iznos<br />

Identifikacija<br />

Provera stanja na<br />

računu<br />

Preuzmi novac<br />

Umanji iznos<br />

na računu<br />

Prikazuje stanje<br />

na računu<br />

Vraća karticu<br />

Uzmi karticu<br />

58


Dijagrami aktivnosti

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!