Professional Documents
Culture Documents
Mstorage 10155803866855092
Mstorage 10155803866855092
Vanja Novak
Tomislav Belcar
mStorage
Varaţdin, 2011.
SVEUČILIŠTE U ZAGREBU
FAKULTET ORGANIZACIJE I INFORMATIKE
VARAŢDIN
Vanja Novak
Redoviti student
Broj indeksa: 39642/10-R
Smjer: Programsko inţenjerstvo
Diplomski studij
Tomislav Belcar
Redoviti student
Broj indeksa: 38787/09-R
Smjer: Baze podataka i baze znanja
Diplomski studij
mStorage
PROJEKT IZ KOLEGIJA ANALIZA I RAZVOJ PROGRAMA
1. Uvod ............................................................................................................................................ 1
5. Ponuda ...................................................................................................................................... 14
II
1. Uvod
Projekt kojeg smo nazvali mStorage radi se u malom timu koji je sastavljen od dvoje
ljudi. Iz tog razloga bilo bi dobro iskoristiti neke od agilnih metoda u rješavanju zadatka. Kao
prvo bitno je definirati aktivnosti, kako bi mogli procijeniti vrijeme koje će nam biti potrebno za
izradu aplikacije, a prema tome odrediti troškove izrade aplikacije.
Iz razloga što je vrijeme za izradu ovog projekta fiksno, potrebno ja tako i planirati razvoj
same aplikacije. To je razlog kako moţemo utjecati na kvalitetu aplikacije. Najvaţniji cilj nam je
izrada pouzdane aplikacije što veće kvalitete, te se toga i pridrţavamo u svom radu. Tablica 1.1.
prikazuje je naš odnos prema projektu u kojoj su nam definirani rokovi. Sami smo izabrali
resurse vremena kako bi mogućnosti koje će aplikacija nuditi biti na dostatnoj razini.
Raspored
Resursi
Mogućnosti
1
Realizaciji ovog projekta pristupili smo preko iterativnog pristupa razvoja aplikacije gdje
se raspoređuje potrebno vrijeme na izradi projekta na nekoliko manjih projekata koje nazivamo
iteracijama. To nam omogućava da se fokusiramo na kratkoročne ciljeve i tako ih postupno
završavamo s velikom uspješnošću. U prvoj iteraciji isplanirali smo nekoliko ciljeva koje
moramo postići, a vidljivi su u djelu Iterativni proces. Vaţno je da prilikom početka iterativnog
procesa imamo isplanirano što u tom iterativnom procesu moramo napraviti, koji je prioritet
pojedinih aktivnosti i vrijeme trajanja realizacije tih aktivnosti.
U ovoj projektnoj dokumentaciji opisani su razni UML dijagrami koji nam uvelike
olakšavaju realizaciju samog projekta, kao što su, dijagrami slučajeva korištenja, dijagrami
aktivnosti, dijagrami slijeda, ERA dijagram te dijagram klasa.
2
2. Korisnički zahtjevi
„Ţelim aplikaciju preko koje će moj skladištar kod zaprimanja ili otpremanja robe u svoj
Pocket PC upisivati artikle, odnosno izrađivati primke i otpremnice, koje ću ja na svojem
računalu odmah moći vidjeti bez da moram njega nazivati i traţiti da mi faksira primku ili
otpremnicu. Isto tako ţelim da mi se omogući dodavanje novih poslovnih partnera, novih
zaposlenik i novih skladišta ukoliko bude potrebe za tim.“
Mi kao izvršitelji ovu rečenicu protumačili smo i u sljedećih nekoliko redaka opisali što
zapravo korisnik od nas očekuje. Korisnik zahtijeva da se napravi aplikacija koja će mu
omogućiti upravljanje svim ulazima i izlazima iz svih skladišta koje posjeduje. On naime ima u
posjedu nekoliko skladišta koja su prostorno dislocirana i ţeli da skladištari koji su zaduţeni za
pojedina skladišta upisuju ulaz ili izlaz proizvoda u skladište i da ih on nakon sinkronizacije baza
moţe vidjeti na svojem računalu u poduzeću.
Nakon razgovora s korisnikom, zaključili smo da korisniku treba mobilna aplikacija koja
će se pokretati na Pocket PC-u i stolna aplikacija koja će omogućiti praćenje stanja zaliha na
svim skladištima iz bilo kojeg drugog računala u poduzeću s pristupom na Internet. Mobilna
aplikacija će se koristiti u udaljenim skladištima gdje će se skladištari prvo morati prijaviti u
sustav, odnosno obaviti identifikaciju i autentikaciju kako ne bi došlo do bilo kakvih sigurnosnih
problema prilikom upravljanja skladištem. Nakon što se skladištar prijavi odabire neku od
ponuđenih akcija na glavnom izborniku. Nudi mu se unos materijala u skladište preko skladišne
primke te izrada otpremnice, odnosno izlaza robe iz skladišta. Skladištar kad dobije robu otvara
izradu nove primke i unosi primljene materijale ili proizvode u primku. Kada završava sa
izradom primke, on ju sprema jednostavnim klikom. Izradom otpremnice iz skladišta se
otpremaju proizvodi ili materijali u proizvodnju ili neko drugo skladište.
3
Stolna aplikacija isto kao i mobilna aplikacija mora sadrţavati neki tip sigurnosnog ulaza
u aplikaciju, pa se javlja potreba za implementiranjem prijave korisnika. U ovoj aplikaciji mora
se vidjeti izvještaj svih ulaza i izlaza po svim skladištima i poţeljno je da se moţe upravljati
korisnicima koji pristupaju stolnoj i mobilnoj aplikaciji. Stolna aplikacija će biti postavljena na
istom mjestu kao i centralna baza, a to mora biti provjereno i sigurno web mjesto za koje
moţemo osigurati pravljenje sigurnosnih kopija podataka.
4
3. Odabir tehnologije i metodika razvoja
Kako bi razvili što kvalitetniji programski proizvod s što manje troškova, većinom ćemo
se bazirati na korištenje tehnologija koje su nam dostupne preko fakulteta, a koje predstavljaju
izuzetno kvalitetno rješenje. Kako bi izradili korisnu projektnu dokumentaciju koristit ćemo
Microsoft Office paket. Za planiranje projekta koristit ćemo alat Microsoft Project 2007 u kojem
moţemo detaljno planirati sve aktivnosti, njihov tijek odvijanja, sve resurse i njihova zaduţenja
te na kraju dobiti detaljne izvještaje u obliku gantograma ili izračuna proračuna projekta.
Nadalje, za modeliranje ćemo koristiti alat Visual Paradigm u kojem izrađujemo sve UML
dijagrame. Izrađujemo dijagrame slučajeva korištenja, dijagrame aktivnosti, dijagrame slijeda, te
dijagram klasa i ERA model. Za programiranje koristimo razvojno okruţenje Microsoft Visual
Studio 2010. Za bazu podataka koristit ćemo Microsoft SQL Server 2005, a kao okruţenje za
upravljanje bazom podataka koristit ćemo Microsoft SQL Server Management Studio Express.
Metodika razvoja korištena u ovom projektu temelji se na RUP (engl. Rational Unified
Process) metodici koju prema potrebi prilagođavamo svojim potrebama i potrebama projekta.
Prema RUP metodici, projekt ima svoj ţivotni ciklus koji se sastoji od 4 faze. Te faze su slične
vodopadnom modelu razvoja programskog proizvoda, ali glavna prednost leţi u iterativnom
razvoju koji se odvija u svakoj od pojedinih faza. Slika 4.1 prikazuje faze prema RUP metodici u
odnosu na vrijeme.
5
4. Projektna dokumentacija
Tim koji će raditi na projektu mStorage sastoji se od dva člana. Bilo koji od dva član na
projektu zaduţen je za dio aktivnosti koje dobio nakon podjele poslova, dok je voditelj projekta
odgovoran za rad svih članova tima. Kako imamo mali tim potrebno je ravnopravno podijeliti i
poslove u njemu, a sam projekt moţemo u grubo podijeliti na poslove, odnosno aktivnosti prije
sklapanja ugovora, ili davanje ponude i aktivnosti poslije sklapanja ugovora.
programiranje aplikacije
testiranje aplikacije
Pošto se naš tim sastoji samo od samo dva člana, većina će zaduţenja između nas biti
podijeljena, tako ćemo i „developement“ dio međusobno podijeliti.
6
Slika 4.1. Zaduţenja za pojedinog člana tima
7
4.2. Aktivnosti projekta
I. Planiranje projekta
1. Sastanak projektnog tima
2. Pisanje plana projekta
3. Razmatranje i analiza korisničkih zahtjeva
4. Sastanak projektnog tima i podjela aktivnosti
5. Izrada projektne dokumentacije
II. Realizacija projekta
1. Modeliranje korisničkih zahtjeva
6. Analiza poslovne domene
2. Izrada UML dijagrama
7. Izrada dijagrama korištenja
8. Izrada dijagrama slijeda
9. Izrada dijagrama aktivnosti
10. Izrada ERA modela
11. Izrada dijagrama klasa
3. Modeliranje podataka
12. Izrada SQL skripte
13. Izrada idejnih skica ekrana
4. Izrada aplikacije
14. Stvaranje baze podataka iz postojećeg ERA modela
15. Dizajniranje sučelja
16. Izrada modula na temelju dijagrama korištenja
17. Povezivanje modula u cjelinu
5. Testiranje aplikacije
18. Alfa testiranje
19. Beta testiranje
20. Ispravljanje grešaka
6. Aţuriranje projektne dokumentacije
20. Aţuriranje dokumentacije
21. Pisanje korisničkog dokumentacije
5. Isporuka aplikacije
22. Instalacija aplikacije
23. Osposobljavanje korisnika
24. Zaključivanje projekta s klijentom
8
4.3. Plan projekta
Detaljni vremenski plan projekta mStorage izrađen je u alatu Microsoft Project 2007.
Tim15 sastoji se od dva programera/arhitekta koji u paru mogu funkcionirati kao veći tim
i raditi poslove svih uloga kao što su primjerice projektni menadţer, arhitekt, analitičar, razvojni
programer i tester aplikacija. Pošto je naš tim vrlo malen svaki član tima obavlja sve uloge koje
smo prethodno naveli. Svako jutro obavljaju se sastanci s nogu gdje se raspravlja o tome što će
tko napraviti i kako će to realizirati. Prije svake vaţnije aktivnosti rade se i dodatni sastanci gdje
se raspravlja kako će se nešto napraviti te koji bi bio najbolji način rješavanja pojedinog
problema.
Vremenski plan projekta izradili smo u alatu Microsoft Project 2007 u kojem imamo
nekoliko ključnih točaka. Prvi dio projekta odnosi se na detaljno planiranje cjelokupnog projekta
i izradu plana dok se drugi dio odnosi na realizaciju projekta. Realizacija projekta je pak
podijeljena na modeliranje korisničkih zahtjeva, modeliranje podataka i izradu stolne i mobilne
aplikacije. Kao početak projekta stavili smo 23. lipnja 2011, a okvirni završetak projekta bi bio
29. kolovoza 2011. Radno vrijeme ne moţemo definirati pošto su ljudi koji rade na projektu
studenti koji obveze izvršavaju prema dogovoru i prilagođavaju se planu projekta koji to i uzima
u obzir. Resursi korišteni na ovom projektu su dva računala koja su u vlasništvu članova tima te
po potrebi posuđuju prijenosno računalo.
9
4.3.1. Aktivnosti projekta, trajanje, resursi
Slika 4.2. prikazuje popis aktivnosti, trajanje i resurse koji se upotrebljavaju prilikom
izvedbe projekta.
10
4.3.2. Gantogram
11
4.3.3. Cijena projekta
12
4.3.4. Tijek novca kroz projekt
13
5. Ponuda
Tim15
OIB: 123456789
Adresa: Pavlinska 2, 42000 Varaždin
Tel: 097/777-777
Email: foi@foi.hr
Zaprimili smo Vaš upit za izradu programskog proizvoda za upravljanje skladištima te smo na
temelju prikupljenih korisničkih zahtjeva izradili ovu ponudu.
Naš sustav mStorage će Vam omogućiti izradu digitalnih primki i otpremnica te praćenje svih
nastalih knjiţenja preko centralne aplikacije. Rok izrade cjelokupnog sustava je 4 mjeseca od
datuma sklapanja ugovora i prihvaćanje ponude. Cijena sustava procijenjena prema danim
zahtjevima iznosi 12080,67 kn u što spada i dostupnost našeg stručnjaka 24 sata na dan za prvih
mjesec dana korištenja sustava.
Odrţavanje sustava vršimo besplatno u slučaju ispadanja istog, dok se dodatna odrţavanja kao i
sve dodatne nadogradnje sustava naplaćuju prema dogovorenom cjeniku.
Srdačan pozdrav,
Tim15.
Datum: Potpis:
________________ ________________
14
6. Modeliranje – UML dijagrami
U ovom djelu projektne dokumentacije prikazani su svi izrađeni dijagrami za naš projekt.
Izradili smo dva dijagrama slučajeva, jednog za skladištara, a drugog za direktora te nekoliko
detaljnih dijagrama za neke vaţnije slučajeve korištenja.
Svaki slučaj korištenja ima svoju specifikaciju, odnosno opisni tekst scenarija koji se
odvija kada korisnik obavlja neki slučaj korištenja. Imamo opisane sve moguće scenarije koji se
očekuju pri radu sa aplikacijom.. Specifikacije slučajeva korištenja su zapravo najvaţniji dio
modela slučajeva korištenja, dok dijagrami sluţe za ilustraciju scenarija.
15
6.1.1. Dijagram slučajeva korištenja – Skladištar
U našem modelu slučajeva korištenja imamo samo dva učesnika. Prvi od njih kojeg ćemo
ukratko objasniti jest skladištar. Skladištar bi uz pomoć aplikacije trebao imati mogućnost
obavljanja nekih od funkcija koje su vezane za sam problem. On koristi mobilnu aplikaciju koja
mu omogućuje navedene funkcionalnosti:
logiranje u sustav
upravljanje knjiţenjima
izrada primke
izrada otpremnice
sinkronizacija baze
16
Kako bi se dodijelili resursi aplikaciji za koje skladištar posjeduje ovlasti, on se mora
prijaviti u aplikaciju, što znači da je ova aktivnost obavezna i bez nje nije moguće ništa raditi na
aplikaciji. Sukladno tome sve slučajeve korištenja koje imamo u našem UseCase dijagramu
povezani su vezom uključi (<<include>>) sa slučajem korištenja Logiranje u sustav. Kada se
skladištar uspješno logira u aplikaciju tada on dobiva jasan pregled sučelja mobilne aplikacije. Iz
toga glavnog ekrana on moţe pozvati bilo koji od navedenih slučajeva korištenja. Ukratko,
aplikacija omogućuje skladištaru da nakon što se uspješno logira u istu ima mogućnost da
upravlja knjiţenjem, bilo da ţeli izraditi primke, odnosno otpremnice. Još jedan slučaj korištenja
je sinkronizacija baza podataka koja se vrši kada glavna baza ne sadrţava podatke koje su
upisani u mobilnoj bazi podataka.
Slika 6.2. prikazuje dijagram slučajeva korištenja za direktora odnosno korisnika stolne
aplikacije.
17
Kao i kod prvog slučaja korištenja za korisnika skladištara, tako I u ovom za korisnika
direktora vaţno je da uz pomoć aplikacije isti ima mogućnost obavljanja nekih od funkcija koje
su vezane za sam problem. Direktor za razliku od skladištara koristi stolnu aplikaciju koja mu
omogućuje navedene funkcionalnosti:
logiranje u sustav
pregled knjiţenja
dodavanje zaposlenika
dodavanje skladišta
sinkronizacija baze
Direktor se također prije upotrebe aplikacije mora uspješno prijaviti u sustav inače mu je
aplikacija beskorisna. Sukladno tome sve slučajeve korištenja koje imamo u našem UseCase
dijagramu za direktora povezani su vezom uključi (<<include>>) sa slučajem korištenja
Logiranje u sustav. Direktoru se pruţa mogućnost da kroz samu aplikaciju dodaje nove poslovne
partnere u bazu, moţe dodavati zaposlenike koji mogu pristupati aplikaciji, moţe dodavati nova
skladišta, moţe pregledavati knjiţenja te sinkronizirati baze podataka. Najvaţniji slučaj
korištenja je pregledavanje knjiţenja i on je najvaţniji za stolnu aplikaciju.
18
1. Logiranje u sustav
19
2. Izrada nove primke
2. Učesnik: Skladištar
3. Opis slučaja korištenja: Nakon što se uspješno prijavio u sustav skladištar ima
mogućnost izrade primke. U slučaju da to poţeli, on mora izabrati opciju za izradu
primke. Nakon odabira opcije popunjava formu za unos primke i navedeni podaci
pospremaju se u bazu podataka ukoliko to poţeli.
4. Početni dogaĎaj: Odabir opcije za izradu primke
5. Scenarij: Nakon izbora opcije za izradu primke, javlja se forma za unos primke.
Slijedeći korak je ispunjavanje iste i spremanje primke. Na kraju se podaci iz primke
spremaju u bazu podataka.
6. Uvjeti potrebni za izvršenje: Skladištar mora biti prijavljen u aplikaciju putem podataka
koje koristi za logiranje, te nakon toga ima mogućnost izrade primke.
7. Promjene po izvršenju: Skladištar ima omogućen uvid u novo unesene podatke a isto
tako moţe i uređivati iste.
8. Vaţnost: Slučaj korištenja izrada primke je vaţan za korisnika skladištara, iz razloga što
skladištar pomoću izrade primke unosi nove podatke u bazu podataka.
2. Učesnik: Skladištar
3. Opis slučaja korištenja: Druga mogućnost koju ima skladištar nakon što se uspješno
prijavio u sustav je izrada otpremnice. To izvršava na način da izabere opciju za izradu
otpremnice. Nakon odabira opcije popunjava se danu inicijaliziranu forma i navedeni
podaci pospremaju se u bazu podataka.
6. Uvjeti potrebni za izvršenje: Skladištar mora biti prijavljen u aplikaciju putem podataka
koje koristi za logiranje, te nakon toga ima mogućnost izrade otpremnice.
20
7. Promjene po izvršenju: Skladištar ima omogućen uvid u novo unesene podatke.
2. Učesnik: Direktor
3. Opis slučaja korištenja: Kada se direktor uspješno prijavi u sustav imam mogućnost
dodavanja poslovnih partnera. Odabirom te opcije javlja se forma koja se popunjava se
ţeljenim podacima, te se nakon toga vrši pospremanje podataka ukoliko se to zaţeli ili se
odustaje od toga.
6. Uvjeti potrebni za izvršenje: Direktor mora biti uspješno prijavljen u aplikaciju. Tek
nakon toga ima mogućnost da odabere opciju za unos novog poslovnog partnera.
8. Vaţnost: Unos novog poslovnog partnera vaţan je za direktora, iz razloga ukoliko se javi
neki novi poslovni partner. Nakon što se prijavi direktor ima mogućnost unosa novog
poslovnog partnera te svih potrebnih informacija koje su vezane uz njega u bazu
podataka.
21
5. Dodavanje novog zaposlenika
2. Učesnik: Direktor
3. Opis slučaja korištenja: Nakon prijave u sustav direktor je u mogućnosti dodati novog
zaposlenika ukoliko za to postoji potreba. Izabire opciju dodavanja novog zaposlenika, te
popunjava formu sa podacima vezanim za novog zaposlenika. Nakon toga vrši spremanje
iste ili odustaje od toga.
6. Uvjeti potrebni za izvršenje: Direktor mora biti uspješno prijavljen u aplikaciju. Nakon
toga izabire opciju za unos novog zaposlenika.
8. Vaţnost: Unos novog zaposlenika bitan je za samu aplikaciju, iz razloga ukoliko se javi
neki novi zaposlenik. Nakon što se prijavi direktor ima mogućnost unosa novog
zaposlenika te svih potrebnih informacija koje su vezane uz njega u bazu podataka.
2. Učesnik: Direktor
3. Opis slučaja korištenja: Ukoliko je direktor uspješno prijavljen u sustav ima mogućnost
dodavanja novog skladišta. Kad odabere opciju javlja se forma koju popunjava se
ţeljenim podacima, te se nakon toga vrši pospremanje podataka ukoliko se to zaţeli ili se
odustaje od toga.
5. Scenarij: Dodavanje novog skladišta radi se tako da direktor izabire opciju za unos
novog skladišta. Prilikom toga se pojavljuje forma za upis novog skladišta. Nakon što
22
direktor unese podatke on je u stanju te podatke pospremiti u bazu podataka ili odustati
od pospremanja.
8. Vaţnost: Ukoliko dođe do situacije da nema više mjesta u skladištima koje koristimo,
traţi se neko novo skladište te se vrši unos novog skladišta u bazu podataka. Nakon što se
prijavi direktor ima mogućnost unosa novog skladišta te svih potrebnih informacija koje
su vezane uz njega.
7. Pregled knjiţenja
2. Učesnik: Direktor
3. Opis slučaja korištenja: Ukoliko je direktor uspješno prijavljen u sustav ima mogućnost
pregledavanja knjiţenja koje je unio skladištar, bilo da ţeli pregledati primke ili
otpremnice.
5. Scenarij: Direktor izabire opciju pregleda knjiţenja koja se sastoji od dvije mogućnosti.
Prva mogućnost je da pregledava primke a druga mogućnost je da pregledava
otpremnice.
8. Vaţnost: Ukoliko direktor iz bilo kojeg razloga ţeli provjeriti neku od primki ili
otpremnica to mu ova opcija omogućuje vrlo lako. Uz pomoć te opcije veoma lako dolazi
do podataka koji ga zanimaju, a vezani su uz knjiţenja.
23
6.2. Dijagram slijeda
Koristi se za detaljan prikaz pojedinog slučaja korištenja kojim je prikazan detaljan slijed
akcija za taj slučaja korištenja. Dijagram slijeda (eng. Sequence Diagram) prikazuje vremenski
uređenu interakciju između instanci koje sudjeluju u njoj. Pod interakcijom se podrazumijeva
skup poruka koje se izmjenjuju između instanci objekata koje surađuju radi postizanja nekog
učinka.
U ovom djelu prikazat ćemo dijagrame slijeda za najvaţnije slučajeve korištenja. Tako
ćemo prikazati navedene dijagrame slijeda za slučaj korištenja Logiranje u sustav koji je jednak
za stolnu i mobilnu aplikaciju, za slučaj korištenja izrada primke i izrada otpremnice koji se
odnosi na skladištara i mobilnu aplikaciju, za slučaj korištenja pregled knjiţenja kojeg provodi
direktor na svom stolnom računalu te dodavanje poslovnih partnera, dodavanje zaposlenika i
dodavanje skladišta koji se također odnosi na direktora i stolnu aplikaciju. Što se tiče konkretnih
dijagrami slijeda oni se sastoje od tri instance objekata koji sudjeluju u aplikaciji, a većinom su
to korisnik (bilo da se govori o skladištaru ili direktoru), aplikacija (mobilna ili stolna) i razni
moduli.
24
6.2.1. Logiranje u sustav
26
6.2.2. Izrada primke
27
Kod ovog dijagrama slijeda imamo isto tako tri učesnika, a to su skladištar kao korisnik,
mobilna aplikacija (mStorage) i modul za izradu primke. Proces započinje nakon što skladištar
odabere opciju za izradu primke. Aplikacija pritom inicijalizira objekt i prikazuje formu za
izradu primke te zahtjeva podatke o artiklima. Modul dohvaća podatke i šalje ih aplikaciji koja ih
zatim prikazuje skladištaru. On ţeljene podatke unosi u formu, te nakon toga aplikacija
prosljeđuje podatke modulu koji ih naknadno posprema. Za kraj ovog procesa vrši se dealokacija
objekta.
28
6.2.3. Izrada otpremnice
30
6.2.4. Pregled knjiženja
31
Ovo je dijagram slijeda u kojem sudjeluje isključivo direktor kao korisnik. Isto tako on
koristi stolnu aplikaciju te kao treći učesnik koristi se modul za pregled knjiţenja. Za početak
direktor izabire opciju za pregled knjiţenja, nakon čega se inicijalizira objekt i prikazuje forma
za pregled knjiţenja. Direktor prilikom toga izabire skladište za koje ţeli pregledavati knjiţenja.
Aplikacija zatim prosljeđuje upit za pregled knjiţenja sa izabranim skladištem modulu koji zatim
dohvaća knjiţenja na temelju upita. Zatim ih prosljeđuje aplikaciji koja knjiţenja prikazuje
direktoru, te za kraj dealocira objekt.
32
6.2.5. Dodavanje poslovnog partnera
34
6.2.6. Dodavanje zaposlenika
36
6.2.7. Dodavanje skladišta
38
6.3. Dijagram aktivnosti
Ili (eng. Activity Diagram) je specijalni oblik dijagrama prijelaza stanja, koji prikazuje
stanja i prijelaze između slučajeva korištenja. Dijagrame aktivnosti smo organizirali u domene
odgovornosti (eng. swimlane), kako bi ga uspjeli što bolje razumjeti.
Svaki učesnik u dijagramu aktivnosti ima svoju plivačku stazu (eng. swimlane) uz pomoć
koje lako očitamo koja aktivnost pripada kojem učesniku.
Sustav koncepata koji su uključeni u dijagram aktivnosti nešto je drugačiji od onog u
dijagramima slijeda ili dijagramu slučajeva korištenja. Promatrajući dijagrame koji slijede,
moţemo primijetiti nekoliko koncepata, predstavljenih svojim oblicima:
Akcije: mali pravokutnik zaobljenih kutova, predstavlja aktivnosti u slijedu, a sa drugim
aktivnostima spojen je kontrolnim tokom
Aktivnosti: veliki pravokutnici zaobljenih kutova, predstavljaju jednu cjelinu, tj. nekoliko
spojenih akcija
Objekti: mali pravokutnici pravih kutova, predstavljaju instancu određene klase, sa
pripadajućim stanjem
Područje aktivnosti podloţno prekidu: predočeno područjem unutar aktivnosti, a
uokvirenim crtkanom crtom, predstavlja područje koje je podloţno prekidu bilo kakve
vrste, a koji se detaljnije definira unutar samog područja okvira
Upravitelj prekidom: predstavljen „munja strelicom“, opisuje slijed u slučaju prekida iz
prekidu podloţnog područja
Početna točka: prikazana crnom točkom, označava početak slijeda aktivnosti
Završna točka: prikazana crnom točkom sa bijelim prstenom, označava konačni kraj
slijeda aktivnosti
eng. Pin: mali kvadratić uz aktivnost, predstavlja element koji daje vrijednost
aktivnostima, ili sprema vrijednosti njihovih rezultata (Input/Output Pin)
Grananje: mali pravokutnik crno ispunjen, prikazuje da se slijed dijeli na dva
jednakopravna slijeda
Odluka: prikazan rombom, ovaj koncept označava odluku, mjesto odakle nastavlja samo
jedan od ponuđenih sljedova
Pošiljatelj signala: prikazan pravokutnikom sa izbočenjem s desne strane, ovo je koncept
koji označava da se šalje signal u program, primatelju tog signala, gdje se moţe pokrenuti
stroj stanja ili izvršiti neka aktivnost, tj. slijed aktivnosti
39
Primatelj signala (događaja): pravokutnik sa uvučenim dijelom s lijeve strane, predstavlja
koncept koji čeka događaj koji odgovara postavljenim kriterijima kako bi nastavio sa
aktivnostima ili pokrenuo slijed aktivnosti
Kako u našem projektu imamo sedam dijagrama slijeda, tako ćemo i za svaki od tih
dijagrama napraviti dijagram aktivnost. Svi ti dijagrami aktivnosti prikazani su na slikama i
opisani u daljnjem tekstu koji slijedi.
40
6.3.1. Logiranje u sustav
42
6.3.2. Izrada primke
43
Kod ovog dijagrama imamo tri domene odgovornosti, s tom razlikom što imamo samo
jednu vrstu korisnika, a to je skladištar i jednu vrstu aplikacije a to je mobilna aplikacija
mStorage, te još i modul za izradu primke. Aktivnost započinje kada skladištar izabire opciju za
izradu primke. Aplikacija nakon toga inicijalizira formu za unos primke te istu prikazuje. Modul
u isto vrijeme dohvaća podatke o artiklima te ih integrira u formu. Nakon toga korisnik izabire
ţeljene podatke i s njima popunjava formu. Kako je sada forma popunjena korisnik odabire
spremanje primke. Aplikacija priprema podatke za spremanje i šalje ih modulu koji ih zatim
sprema u bazu podataka. Pred sam kraj aktivnosti vrši se dealokacija primke i tu aktivnost
završava.
44
6.3.3. Izrada otpremnice
45
Dijagram aktivnosti koji je gotovo identičan kao i prethodni dijagram s tom razlikom što
se tu radi o otpremnici dok se u prijašnjem slučaju radilo o primci. Aktivnost kreće tako što
skladištar odabire opciju za izradu otpremnice. Slijedom toga aplikacija inicijalizira formu za
unos otpremnice i prikazuje ju. Modul za izradu otpremnice dohvaća podatke o artiklima koji se
zatim integriraju u formu. Zatim slijedi popunjavanje forme od strane skladištara, te nakon što se
forma popuni korisnik izabire spremanje otpremnice. Aplikacija priprema podatke te ih
prosljeđuje modulu koji ih zatim sprema u bazu podataka. Nakon spremanja izvršava se
dealokacija forme za unos otpremnice i tu je kraj ove aktivnosti.
46
6.3.4. Pregled knjiženja
48
6.3.5. Dodavanje poslovnog partnera
50
6.3.6. Dodavanje zaposlenika
52
6.3.7. Dodavanje skladišta
54
6.4. ERA model
ERA model je skraćenica od engl. riječi Entity, Relationship, Attributes, što u prijevodu
znači Entiteti, Veze, Atributi. ERA model je grafička prezentacija znanja o objektima, vezama i
svojstvima. Objekti mogu biti jaki i slabi. Jaki mogu postojati nezavisno od drugih objekata, a
slabi egzistencijalno zavise o drugim objektima. Kad govorimo o svojstvu (atributu), razlikujemo
dvije stvari: deskriptor i identifikator. Deskriptor upotpunjuje opis objekta dok identifikator
jednoznačno određuje svaku instancu objekta. O vezama moţemo govoriti na tri načina. Prvi
način je kad govorimo o redu veze (unarna i binarna veza), drugi je način učešća (obvezno i
opcionalno) i treći način je kad govorimo o tipu povezanosti (1:1, 1:M, M:N).
ERA model koristili smo kao metodu konceptualnog i fizičkog modeliranja podataka.
Entitet – je koncept ili objekt od interesa, bilo da je stvarni ili apstraktni predmet
odnosno događaj u kojemu se u informacijskom sustavu pamte podaci, sadrţi niz atributa
Ograničenja – ili cjelobrojnosti veza, nam kazuju koliki broj entiteta jednog tipa moţe
biti u vez s entitetima drugom tipa.
55
Slika 6.17. ERA model
Slika 6.17 prikazuje ERA model naše baze podataka u koju ćemo spremati sve podatke o
artiklima, skladištima, poslovnim partnerima, zaposlenicima i knjiţenjima.
Najvaţniju tablicu čini tablica Knjiženja preko koje se sve vrti i preko koje su povezane
sve ostale tablice. U toj tablici spremamo podatke o knjiţenjima, a u nju se dohvaćaju
identifikatori skladišta, partnera i zaposlenika koji čine strane ključeve i preko kojih
evidentiramo knjiţenja po skladištima.
U tablici Skladista spremljen je naziv skladišta koje je u posjedu našeg naručitelja i ono
se evidentira u knjiţenjima i njegova adresa.
56
Tablica Partneri sadrţi podatke o poslovnim partnerima kao što su naziv, adresa, OIB i
sl.
Tablica Vrsta_zaposlenika sluţi nam za definiranje uloga zaposlenika kao što su npr. u
našem slučaju skladištar i direktor.
Tablica Mjerne_jedinice predstavlja šifarnik mjernih jedinica koje mogu imati pojedini
artikli, a to mogu biti kilogrami, tone, litre i sl.
Vaţno je napomenuti da se naša baza podataka koristi i kod stolne i kod mobilne
aplikacije i svugdje ima jednaku strukturu kako bi se olakšalo sinkroniziranje podataka. Vaţnu
ulogu u tome ima atribut sync koji označava da li je neki redak sinkroniziran u odnosu na drugu
bazu. Kod sinkronizacije mobilne i web baze podataka moţemo jednostavnim podizanjem sync
atributa iz vrijednosti 0 u vrijednost 1 označiti da li smo taj redak sinkronizirali s obzirom na
drugu bazu i tako smanjiti veličinu prenesenih podataka.
57
6.5. Relacijski model
Relacijski model podataka predstavlja nam drugu fazu logičkog modeliranja podataka
vezano za našu aplikaciju mStorage. Izrađen temeljem prije oblikovanog ERA modela. Kao
sama baza relacijskog modela koristi se relacija. Relacija u relacijskom modelu predstavlja
dvodimenzionalnu tablicu – svaki red relacije sadrţi jednu n-torku, odnosno slog, a svaki stupac
relacije odgovara jednom elementu domene.
Mjerne_jedinice
kratica
naziv
Artikli
ID_artikla
naziv
opis
kratica
cijena
sync
Skladišta
ID_skladišta
naziv
adresa
sync
Knjiţenja_Artikli
ID_knjiženja
ID_artikli
ulaz
izlaz
duguje
potrazuje
sync
Knjiţenja
ID_knjizenja
datum
duguje
potrazuje
napomena
ID_skladista
ID_partnera
ID_zaposlenika
sync
Partneri
ID_partnera
naziv
adresa
OIB
58
tel
email
ziro
sync
Vrsta_zaposlenika
ID_vrsta_zaposlenika
naziv
Zaposlenici
ID_zaposlenika
ime
prezime
adresa
mob
tel
mail
korisnicko_ime
lozinka
ID_vrsta_zaposlenika
sync
Klase (eng. class) kao koncept koristili smo za definiranje opisa skupa objekata koji
dijele iste atribute, operacije i metode, veze i semantiku.
Operacije, kojima smo opisali ponašanje objekta, sadrţe naziv te opcionalno listu
argumenata (parametara) i vrijednosti koje vraćaju (koje zajedno čine eng. signature of the
operation jer opisuje sve što je operaciji potrebno). Kao i atributi, i operacije imaju vidljivost.
Dijagram klasa (eng. Class Diagram) predstavlja skup elemenata strukture kao što su
klase, sučelja, a ponekad i same instance (objekti), njihovu unutrašnju strukturu te međusobnu
povezanost prikazujemo određenim tipovima relacija. Osnovne komponente dijagrama klasa su
same klase te veze između njih. Klase moţemo povezivati osnovnim vezama generalizacije i
asocijacije.
Dijagramom klasa opisujemo objekte iz stvarnog svijeta ali i veze između njih.
Asocijacija je najvaţnija veza korištena u dijagramu klasa, a označava sposobnost objekta da
pošalje poruku drugom objektu.
59
(<<use>>). Takva veza predstavlja slabiji oblik veze koji označava ovisnost jedne klase o drugoj
iz razloga što jedna klasa u nekom trenutku koristi tu drugu klasu. U programskom kodu to moţe
značiti da jedna klasa prima drugu klasu kao parametar ili je u njoj sadrţana u obliku lokalne
varijable.
Pošto se naš cjelokupni sustav sastoji od dvije aplikacije, prikazat ćemo dijagrame klasa
za svaku od njih.
6.6.1. deskStorage
Statička klasa Postavke sluţi nam za spremanje nekih glavnih postavki aplikacije koje se
koriste tako dugo dok je korisnik prijavljen i ima pristup aplikaciji. U ovu klasu prilikom
uspješne prijave spremamo ID_zaposlenika kako bi u svakom djelu aplikacije točno i
jednoznačno mogli odrediti tko se prijavio, korisničko ime prijavljenog zaposlenika u svojstvo
61
KorisnickoIme te vrstu prijavljenog zaposlenika u svojstvo Vrsta_zaposlenika. Vaţno je
napomenuti kako se prilikom odjave pokreće metoda odjava() unutar klase Logika i kako se sva
svojstva klase Postavke postavljaju na vrijednosti koje ne moţe imati niti jedan zaposlenik
spremljen u bazi podataka.
Srţ cjelokupne aplikacije čini klasa Logika. Preko te klase komunicira se s web servisom
koji pak komunicira s web bazom podataka i tako dohvaća ili prima za obradu sve podatke koje
mu prosljeđuje klasa Logika. Moţemo reći da se u klasi Logika podaci samo pripremaju i šalju
web servisu koji onda nad njima vrši zadane obrane. Velika je šteta što Visual Studio 2008 ne
dopušta prikazivanje klasi iz nekog drugog projekta na dijagramu klasa kako bi se što bolje
prikazale veze između naše deskStorage aplikacije i našeg web servisa.
62
6.6.2. mStorage
Dijagram klasa mobilne aplikacije je po mnogo čemu sličan dijagramu klasa stolne
aplikacije, ali ipak ima razlike. Najveća razlika je u tome što u mobilnoj aplikaciji imamo osim
63
prezentacijskog i logičkog sloja, sloj za pristup bazi podataka. Još jedna razlika je u tome što u
mobilnoj aplikaciji koristimo takozvane poslovne objekte (engl. business objects) koji su
specifični za troslojnu arhitekturu aplikacija, a uvelike nam pomaţu u odvajanju poslovne logike
i prezentacije sadrţaja i omogućuju nam bolje strukturiranje cjelokupne aplikacije.
Forma frmGlavna je takozvana forma dobrodošlice u kojoj korisnik odabire što ţeli
raditi. Glavna forma povezana je s formom za pregled knjiţenja (frmPregledKnjizenja) te s
formom frmKnjizenje gdje se izrađuju primke i otpremnice. Naravno, tu je i veza prema glavnoj
klasi Logika.
Kao što smo već spomenuli, klase Knjizenje, ArtikliPoKnjizenju, Partner, Skladiste i
Zaposlenik su poslovni objekti koji se koriste u mobilnoj aplikaciji. Većinom se poslovni objekti
podudaraju tablicama u bazi podataka, ali to ne mora uvijek biti tako. Iako smo mogli koristiti
poslovne objekte, odnosno klase, iz web servisa, odlučili smo se na ovu izvedbu kako bi
osigurali neovisnost mobilne aplikacije koja bi se na taj način kasnije mogla lakše nadograđivati
i unaprjeđivati. U ovom slučaju zamjećujemo nedostatak već prije spomenute veze ovisnosti u
Visual Studiu te naše poslovne objekte ne moţemo nikako povezati s klasama koje ih koriste.
Klasa Logika sadrţi glavne metode koje omogućuju rad aplikacije i preko klase Baza
komuniciraju s bazom podataka. Logika sadrţi metode spremanja i aţuriranja stavki primljenih
od web servisa kako bi se sinkronizirale baze podataka, sprema knjiţenja i pripadajuće artikle,
vraća sve potrebne podatke iz baze podataka itd.
Klasa Baza čini podatkovni sloj u našoj aplikaciji i sadrţi metode za izvršavanje upita na
bazu podataka.
64
Mobilna aplikacija također sadrţi statičnu klasu Postavke u kojoj spremamo iste podatke
kao i u stolnoj aplikaciju, ali smo tu klasu u ovoj aplikaciji realizirali na drugačiji način. U
stolnoj aplikaciji korištena su svojstva dok ovdje koristimo metode za postavljanje (get) i
dohvaćanje (set) vrijednosti pojedinih atributa klase.
65
7. Korisničke upute
U ovom djelu dat ćemo detaljne korisničke upute za korištenje naše stolne i mobilne
aplikacije. Prva je na redu stolna deskStorage aplikacija koja je namijenjena direktoru poduzeća
ili direktoru nabave.
7.1. deskStorage
Ako je korisnik upisao točne podatke prikazuje se glavni prozor aplikacije s označenom
karticom Knjiženja i prikazom svih knjiţenja iz baze podataka. Slika 7.2. prikazuje karticu
Knjiženja.
66
Slika 7.2. Kartica Knjiženja
Glavni meni prikazuje trenutno prijavljenog korisnika gdje se klikom na njega prikazuje
opcija za odjavu korisnika. Klikom na opciju O programu otvara se prozor s osnovnim
informacijama o programu. Kartica Knjiženja prikazuje sva knjiţenja iz baze podataka, a
korisnicima je omogućeno i filtriranje tih podataka. Korisnik moţe odabrati ţeli li pregledavati
primke, otpremnice ili sve zajedno te moţe uključiti neki od filtera kao što su filter skladišta,
filter partnera i filter zaposlenika. Pritiskom na gumb Filtriraj prikazuju se podaci ovisno o
odabranim filterima. Gumb Reset vraća filter u prvotno stanje i prikazuje sva knjiţenja.
67
Kartica Skladišta prikazana je na slici 7.3., a odnosi se na upravljanje skladištima.
68
Na slici 7.4. prikazana je kartica Artikli.
Aţuriranje, brisanje i spremanje novih artikala radi na istom principu kao što je i
objašnjeno u prethodnom djelu na kartici Skladišta. U ovoj kartici korisniku se nudi mogućnost
upravljanja mjernim jedinicama. Klikom na poveznicu Mjerne jedinice otvara se novi prozor
prikazan na slici 7.5.
69
Slika 7.5. Upravljanje mjernim jedinicama
U ovom prozoru korisnici mogu dodavati, brisati ili aţurirati postojeće mjerne jedinice
koje mogu imati naši artikli. Nakon zatvaranja prozora, padajući izbornik s mjernim jedinicama
će se automatski aţurirati s novim podacima.
Kartica Partneri sluţi nam za upravljanje partnerima na već objašnjen način, a prikazana
je na slici 7.6.
71
7.2. mStorage
Nakon uspješne prijave, korisniku se otvara glavna forma u kojoj on odabire što ţeli
napraviti. Poţeljno je da se nakon prijave prvotno napravi sinkronizacija baze podataka. Klikom
na ikonu na glavnoj formi ili odabirom sinkronizacije iz glavnog izbornika pokreće se asinkrono
sinkroniziranje bazi podataka. Korisniku se u izborniku Sinkronizacija također nudi i testiranje
veze na web servis. Ako je veza uspješno uspostavljena, korisniku se prikazuje poruka
obavijesti, a ako je pak došlo do greške, javlja se poruka greške. Nakon sinkronizacije bazi
podataka, korisniku se prikazuje poruka da je sinkronizacija završila. Slika 7.10. prikazuje ekran
nakon uspješne sinkronizacije bazi podataka.
72
Slika 7.10. Sinkronizacija bazi podataka
73
Slika 7.11. Izrada novog knjiţenja
Ovdje korisnik odabire sve osnovne podatke kao što su skladište za koje se izrađuje
primka ili otpremnica, koji je partner i upisuje se napomena. Nakon što je popunio sve podatke,
odabire karticu Artikli po knjiženju. Slika 7.12. prikazuje tu karticu.
74
Slika 7.12. Odabir artikala po knjiţenju
Ovdje korisnik upisuje sve artikle koje ţeli imati na svojoj primci/otpremnici. To radi
tako da na padajućem izborniku odabere ţeljeni artikl, upiše količinu i klikne na gumb Dodaj.
Ako ţeli neki artikl obrisati s liste artikala, odabire ga i pritišče gumb Obriši. Korisnik moţe
nakon unosa odustati od spremanja odabirom gumba Odustani ili pak spremiti knjiţenje
odabirom gumba Spremi, a aplikacija ga vraća na glavnu formu aplikacije.
Nakon unosa knjiţenja korisnik ih moţe pregledavati odabirom opcije Pregled knjiženja
iz izbornika Knjiženja. Također, poţeljno je da se obavi sinkronizacija baza kako bi sva
knjiţenja bila spremljena u centralnu bazu podataka. Slika 7.13. prikazuje pregledavanje
knjiţenja dok slika 7.14. prikazuje izlaz iz programa.
75
Slika 7.13. Pregled knjiţenja