49
Fakulteta za elektrotehniko, računalništvo in informatiko Smetanova ulica 17 2000 Maribor, Slovenija Marko Poštrak INFORMACIJSKA PODPORA ZA SPREMLJANJE IN UPRAVLJANJE PROJEKTOV NA MOBILNIH NAPRAVAH Diplomsko delo Maribor, april 2014

INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Fakulteta za elektrotehniko, računalništvo in informatiko

Smetanova ulica 17 2000 Maribor, Slovenija

Marko Poštrak

INFORMACIJSKA PODPORA ZA SPREMLJANJE IN UPRAVLJANJE

PROJEKTOV NA MOBILNIH NAPRAVAH

Diplomsko delo

Maribor, april 2014

Page 2: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Fakulteta za elektrotehniko, računalništvo in informatiko

Smetanova ulica 17 2000 Maribor, Slovenija

INFORMACIJSKA PODPORA ZA SPREMLJANJE IN

UPRAVLJANJE PROJEKTOV NA MOBILNIH NAPRAVAH

Diplomsko delo

Študent: Marko Poštrak

Študijski program: Univerzitetni študijski program

Informatika in tehnologije komuniciranja

Smer: Informacijski sistemi

Mentor: doc. dr. Domen Verber

Somentor: red. prof. dr. Ivan Rozman

Lektor: Jernej Simič, prof.

Page 3: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

I

Page 4: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

II

INFORMACIJSKA PODPORA ZA SPREMLJANJE IN UPRAVLJANJE

PROJEKTOV NA MOBILNIH NAPRAVAH

Ključne besede: projekt, mobilna aplikacija, Android, upravljanje, vodenje

UDK: 621.39:004.5(043.2)

Povzetek

V diplomski nalogi se bomo osredotočili na spremljanje in upravljanje projektov s pomočjo

mobilnih naprav. Najprej bomo pregledali, kako zgleda vodenje projektov ter kako uspešni so

projekti v današnjem času. Nato bomo opisali in primerjali nekaj aplikacij za vodenje

projektov. Na koncu bomo implementirali lastno mobilno aplikacijo za spremljanje projektov.

Page 5: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

III

INFORMATION SUPPORT FOR MONITORING AND MANAGING

PROJECTS ON MOBILE DEVICES

Key words: project, mobile application, Android, management, monitoring

UDK: 621.39:004.5(043.2)

Abstract

In this thesis, we will focus on monitoring and managing projects with mobile applications.

Firstly we will take a look how project management looks like and how succesfull are

nowdays projects. Later on we will describe and compare some applications for project

management. In the end we will implement our own mobile application for project

management.

Page 6: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

IV

Kazalo 1 UVOD ........................................................................................................................... 1

2 PROJEKTNO VODENJE ............................................................................................. 2

2.1 Metodologije ........................................................................................................... 2

2.2 Sodelujoči ............................................................................................................... 3

2.3 Pomen uspešnega vodenja projektov ...................................................................... 3

2.4 Tveganja ................................................................................................................. 5

2.4.1 Identifikacija tveganj ....................................................................................... 6

2.4.2 Ocenitev tveganj .............................................................................................. 6

2.4.3 Zmanjševanje tveganj ...................................................................................... 6

2.4.4 Kontrola ter nadzor tveganj ............................................................................. 6

2.5 Komunikacija .......................................................................................................... 6

2.6 Opis vodenja projektov ........................................................................................... 7

2.6.1 Začetek projekta .............................................................................................. 7

2.6.2 Planiranje projekta ........................................................................................... 7

2.6.3 Začetek izvajanja projekta ............................................................................... 8

2.6.4 Kontrola projekta ............................................................................................. 8

2.6.5 Zaključek projekta ........................................................................................... 8

2.7 Pristopi k vodenju projektov v IT sektorju ............................................................ 8

2.7.1 Tradicionalni pristop ....................................................................................... 9

2.7.2 Agilni pristop ................................................................................................... 9

2.8 Primerjava posameznih pristopov za vodenje projektov v IT sektorju ................ 10

3 OPIS APLIKACIJ ZA POMOČ PRI VODENJU PROJEKTOV ............................... 11

3.1 JIRA ...................................................................................................................... 12

3.2 Microsoft Project 2010 ......................................................................................... 12

3.3 ZOHO Projects ..................................................................................................... 13

3.4 Collabtive .............................................................................................................. 13

Page 7: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

V

3.5 EasyProjects .......................................................................................................... 13

3.6 ConceptDraw Project ............................................................................................ 14

3.7 Project planning pro .............................................................................................. 14

3.8 iScope ................................................................................................................... 14

4 PRIMERJAVA APLIKACIJ ZA VODENJE PROJEKTOV ..................................... 16

5 IMPLEMENTACIJA MOBILNE APLIKACIJE ....................................................... 18

5.1 Analiza .................................................................................................................. 18

5.2 Uporabljene tehnologije in storitve ...................................................................... 19

5.3 Načrtovanje ........................................................................................................... 20

5.4 Potek implementacije mobilne aplikacije ............................................................. 26

5.5 Izboljšave .............................................................................................................. 34

6 SKLEP ......................................................................................................................... 35

7 VIRI ............................................................................................................................. 36

Page 8: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

VI

KAZALO SLIK

Slika 1: Prikaz razmerij med dejavniki, ki vplivajo na uspešnost projekta [2] ..................... 4

Slika 2: Prikaz projektov glede na tip zaključka [3] ............................................................. 5

Slika 3:Diagram primerov uporabe naše mobilne aplikacije .............................................. 19

Slika 4: Prijavna stran mobilne aplikacije ........................................................................... 20

Slika 5: Seznam projektov ................................................................................................... 21

Slika 6: Seznam nalog dodeljenih trenutnemu uporabniku ................................................. 22

Slika 7: Pregled naloge ........................................................................................................ 23

Slika 8: Dodajanje naloge ................................................................................................... 24

Slika 9: Potisno sporočilo .................................................................................................... 25

Slika 10: Model podatkovne baze ....................................................................................... 27

Slika 11: Gnezdenje elementov pri pregledu naloge ........................................................... 31

Slika 12: Prikaz delovanja potisnih sporočil s pomočjo diagrama zaporedja [18] ............. 33

KAZALO TABEL

Tabela 1: Primerjava aplikacij ............................................................................................. 17

Page 9: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

VII

SEZNAM UPORABLJENIH KRATIC:

GCM – Google Cloud Messaging for Android

GUI – Graphical user interface

IDE – integrated development environment

JSON - JavaScript object notation

PMBOK - Project Management Body of Knowledge

PRINCE2 - Projects in Controlled Environments, version 2

PRiSM - Projects integrating sustainable methods)

REST – Representational state transfer

SDK - Software development kit

Page 10: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

1

1 UVOD

Danes smo priča razvoju zelo dovršene programske opreme, za izdelavo katere je potrebno

veliko dela. Razvoj takšne programske opreme je projekt, ki mora biti zelo dobro načrtovan

ter nadzorovan. Tukaj ima pomembno vlogo projektno vodenje, saj brez tega ne bi bili

sposobni izdelati takšne programske opreme. Projektno vodenje je skupek metodologij in

dobrih praks, ki nam pomagajo, da je projekt voden karseda uspešno. Uspešno voden projekt

je vedno zaključen pravočasno in znotraj danega proračuna.

Cilj diplomske naloge je poudariti pomen vodenja projektov ter določiti vlogo mobilnih

aplikacije pri vodenju projektov. Prav tako bomo implementirali lastno mobilno aplikacijo.

Dokument je sestavljen iz štirih poglavij, kjer v prvem poglavju opišemo, kako poteka

vodenje projektov, kaj je za uspešen projekt potrebno ter kako uspešni so projekti v

današnjem času. Nato v drugem delu opišemo aplikacije za pomoč pri vodenju projektov in

jih v tretjem delu med seboj primerjamo. Zadnji del je namenjen implementaciji naše lastne

mobilne aplikacije za pomoč pri vodenju projektov.

Page 11: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

2

2 PROJEKTNO VODENJE

Najprej je potrebno vedeti, kaj je projekt. Projekt je začasno okolje, s pomočjo katera pridemo

do zastavljenega produkta ali storitve.

Vsak projekt ima tudi aktivnosti, ki so unikatne, saj se ne morejo ponavljati v več projektih na

enak način. Aktivnosti so med seboj povezane, kjer mora vsaka aktivnost imeti svoj vhod

(začetek) in izhod (konec). Prav tako ima vsak projekt zgolj en cilj, kot je na primer »Polet na

Luno«. Da uspešno pridemo do zastavljenega cilja, potrebujemo projektno vodenje.

Projektno vodenje je množica različnih dejavnosti, pri katerih ljudi spodbujamo,

nadzorujemo, organiziramo in vodimo. S temi dejavnostmi si pri tem pomagamo od začetka

do konca. Projektno vodenje potrebujemo zato, da je projekt pravočasno zaključen in se ne

preseže sredstev, ki so bila dodeljena projektu. Pri projektnem vodenju lahko sledimo

različnim metodologijam, ki se lahko med seboj zelo razlikujejo. Spodaj je zapisano, kaj misli

avtor Robert K. Wysocki:

»A project is a sequence of unique, complex, and connected activities that have one goal or

purpose and that must be completed by a specific time, within budged, and according to

specification.« [1]

2.1 Metodologije

Metodologije morajo vsebovati splošna navodila, ki jih je mogoče prilagoditi različnim

projektov. Prav tako morajo biti napisana čim bolj preprosto (za lažja razumevanje), vsebovati

pa morajo tudi navodila za specifične probleme.

Spodaj smo našteli nekaj najbolj pogostih ter priznanih metodologij:

PRINCE2 (Projects in controlled environments)

PMBOK (Project management body of knowledge)

KANBAN

PRiSM (Projects integrating sustainable methods)

SCRUM

Vsaka metodologija ima svoje specifične lastnosti, tako moramo pred začetkom projekta

izbrati nam najboljšo oz. najbolj primerno.

Page 12: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

3

2.2 Sodelujoči

V projektu sodelujejo različni ljudje, ki jih lahko ločimo na večje ali manjše skupine.

Običajno jih ločimo na stranke ter izvajalce.

Stranke ločimo na kliente in uporabnike, medtem ko izvajalce ločimo na vodstvo, uslužbence

ter vzdrževalce.

Vsak projekt ima prav tako vsaj eno osebo, ki je vodja projekta. Nekatere metodologije

dopuščajo tudi več vodij, kar je v več primerih lahko slabo, saj se odgovornost in delo deli na

dva človeka. Večina metodologij »zahteva«, da je vodja projekta zgolj ena oseba.

Nad projektnim vodjo je višje vodstvo, ki skrbi za financiranje ter podporo projektu.

Pri projektu je potrebno voditi ljudi, za katere moramo poskrbeti, da so motivirani. Motivacije

so lahko različne, najbolj pogoste pa so redna zaposlitev, plača, možnost napredovanja, dobri

delovni pogoji, itd.. Pomembno je tudi, da pri reševanju problemov omogočimo

strokovnjakom proste roke. [1]

2.3 Pomen uspešnega vodenja projektov

Uspešno vodenje projektov je zelo pomembno, saj lahko le s tem zagotovimo, da bo projekt

potekal v okvirju zastavljenih sredstev. Če želimo projekt uspešno voditi, moramo najprej

vedeti, kaj je cilj projekta. Ko imamo cilj, moramo vedeti, kako ga bomo dosegli, pri čemer si

pomagamo s planiranjem projekta. Pri planiranju se osredotočimo na to, kako bomo

nadzorovali in usmerjali projekt. Prav tako pri planiranju določimo, kakšno kakovost izdelka

oz. izdelkov želimo.

Page 13: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

4

Če želimo projekt uspešno izvesti, moramo upoštevati tri dejavnike. Ti so čas, stroški ter viri.

[2]

Pri času je potrebno upoštevati rok zaključka projekta. Prav tako moramo pri vodenju

projekta upoštevati stroške ter razpoložljivost virov, saj brez ljudi, materialov in opreme ne

moremo delati. Dejavniki so grafično prikazani na spodnji sliki, kjer lahko vidimo, da je

optimalno področje sredina trikotnika.

Slika 1: Prikaz razmerij med dejavniki, ki vplivajo na uspešnost projekta [2]

Žal pa se več kot 2/3 projektov končata neuspešno. To je pokazala raziskava skupine

CHAOS, katere podatki so prikazani na naslednjem grafu. Graf prikazuje tri tipe zaključenih

projektov. Prvi tip so uspešno zaključeni projekti, ki so zaključeni v določenem finančnem in

časovnem okviru ter imajo vse predvidene funkcionalnosti. Drugi tip so delno uspešno

Page 14: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

5

zaključeni projekti, ki so prekoračili časovni in finančni okvir in/ali so imeli manj

funkcionalnosti, kot je bilo predvideno. Zadnji tip pa so neuspešno dokončani projekti, kateri

so bili prekinjeni ali opuščeni. [3]

Slika 2: Prikaz projektov glede na tip zaključka [3]

2.4 Tveganja

Pri vsakem projektu se pojavi tveganje, ki lahko podaljša projekt ali pa ga celo zaustavi.

Tveganja lahko delimo na zunanja in notranja. Na zunanja tveganja nimamo vpliva, saj gre

tukaj za tveganja ekonomske krize, vojaških spopadov, zloma valute ali drugega tveganja.

Vpliv pa imamo na notranja tveganja, ki jih tudi lahko obvladujemo. Delimo jih na tri

skupine, in sicer: [2]

tehnično tveganje – sprememba tehnologije med projektom, nerealistični performančni

cilji, neprimerna tehnologija za projekt;

tveganje projektnega vodenja – slabo razporejanje virov (viri se prekrivajo),

nenatančen projektni plan;

organizacijsko tveganje – prevelika cena, premalo časa, viri razporejeni med več

projektov.

Tveganja obvladujemo skozi celoten potek projekta. Pri obvladovanju tveganj si pomaga s

štirimi koraki, ki so opisani spodaj.

Page 15: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

6

2.4.1 Identifikacija tveganj

Identifikacija tveganj se običajno izvaja v fazi planiranja projekta. Takrat se zberejo vsi, ki na

projektu sodelujejo, ter identificirajo tveganja, ki bi se lahko pojavila pri projektu.

2.4.2 Ocenitev tveganj

Ko so tveganja že znana, jih poskušamo oceniti. S pomočjo ocene določimo, kako pogosto se

lahko to tveganje zgodi, ter kakšne so lahko posledic. Ocene podamo s pomočjo tabele, kjer

ocenimo verjetnost tveganja ter škodo, ki ga lahko to tveganje povzroči. Velika tveganja

obvladuje nadzorni svet projekta, medtem ko lahko manjša tveganja obvladuje vodja projekta

ali vodja skupine za obvladovanje tveganj (pri večjih projektih). [1]

2.4.3 Zmanjševanje tveganj

Tveganja lahko zmanjšujemo s pomočjo vpeljave novih kontrol ali kupimo opremo, ki jih

pomaga zmanjševati (npr. UPS proti izpadu toka ali strelovod za primer udarca strele). Prav

tako lahko tveganje prenesemo na zunanjega partner, kjer lahko na primer varovanje objekta

izvaja nekdo drug. [1]

2.4.4 Kontrola ter nadzor tveganj

Vsa tveganja, ki smo jih identificirali, moramo tudi nadzorovati. Vpisujemo jih v dnevnik

tveganj. Ta mora vsebovati ID tveganja, opis tveganja, odgovorno osebo za tveganje, kako

ukrepati, ko tveganje nastopi ter rezultat zmanjševanja tveganja. [1]

Pomembno je, da upravljamo s tveganji skozi celoten projekt. Tako bi se morali o tveganjih

pogovarjat skoraj na vsakem sestanku, saj bo ekipa vedela več o tveganjih ter jih bo znala

primerno reševati.

2.5 Komunikacija

Pomembno vlogo pri projektih ima tudi komunikacija, ki je eden glavnih vzrokov za

neuspešno zaključen projekt. Kadar je komunikacije premalo, pride do odstopanj ter manjšega

izmenjevanja znanja, kadar pa je komunikacije preveč, pa za njo porabimo preveč časa in nam

ga lahko zmanjka za druge stvari.

Upravljanje s komunikacijo je pomembno področje vodenja projektov. Da jo lahko uspešno

izvajamo, moramo vedeti, koliko različnih skupin imamo pri projektu ter ali je pomembno, da

te skupine med seboj komunicirajo. Prav tako moramo urediti komunikacijo tako, da se

Page 16: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

7

prenašajo zgolj pomembne informacije. Različne skupine ljudi uporabljajo različne

komunikacijske kanale, pri čemer je naloga projektnega vodje, da to poskusi zagotoviti.

Komunikacija lahko poteka po elektronski pošti, klepetu, video konferenci, preko sestankov,

sistema za pomoč pri vodenju projektov ali preko dokumentov. Zraven kanala moramo

upoštevati še čas, ker lahko informacije, ki so prispele ob nepravem času, ogrozijo sam

projekt.

Če informacije prispejo prehitro, se lahko pozabijo ali pa se lahko vmes kaj spremeni in več

niso pravilne. Če pa informacije dobimo prepozno, bodo povzročile, da se bo projekt zavlekel

ali pa preprosto ne bodo več potrebne.

Prav tako mora projektni vodja vedeti, katera skupina ljudi na projektu potrebuje določene

informacije, saj programerju ne bodo pomagale informacije o izdatkih projekta.

Zelo pomembno vlogo ima komunikacija z zunanjimi partnerji ter strankami, ki se velikokrat

izkaže za slabo.

2.6 Opis vodenja projektov

Vse metodologije vodenja projektov imajo pet skupnih korakov, ki so opisani v nadaljevanju.

2.6.1 Začetek projekta

V začetni fazi moramo najprej vedeti, kaj želimo doseči. Tako moramo najprej vzpostaviti

poslovne zahteve ter definirati, kakšen naj bi bil uspešen zaključek projekta, tako da bomo

vedeli, kdaj smo prišli do cilja.

V tej fazi podrobno analiziramo ter zapišemo uporabnikove zahteve, izberemo in imenujemo

projektnega vodjo, napišemo kratek opis projekta in pridobimo dovoljenje višjega vodstva za

planiranje projekta.

2.6.2 Planiranje projekta

Samo ime faze nam pove, da bomo tukaj projekt planirali. Planirali bomo aktivnosti, kontrole,

pričakovano kvaliteto izdelkov ter razporejali vire med te aktivnosti. V tej fazi bomo lahko

določili, kako dolgo bo projekt trajal, kakšna bo cena, katere vire bomo potrebovali ter kakšna

tveganja lahko nastopijo.

Page 17: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

8

Prav tako bomo izdelali plan dela na projektu in plan tveganj. Na koncu faze bomo ponovno

potrebovali dovoljenje višjega vodstva, da lahko projekt pričnemo izvajati.

2.6.3 Začetek izvajanja projekta

Ko imamo vse načrtovano, lahko začnemo z izvajanjem projekta. Najprej je potrebno

pridobiti vire, ki jih rabimo za uspešno izvajanje projekta. Ko imamo vire, je potrebno

dopolniti vzpostavitveni dokument, ter zapisati pravila za delo na projektu. Prav tako je

potrebno vzpostaviti komunikacijo med posamezniki in definirati delovne pakete (izdelke).

Tukaj tudi dokončno zaključimo projektni plan.

2.6.4 Kontrola projekta

Po pričetku izvajanja projekta moramo izvajanje tudi nadzorovati. Ta faza je najdaljša faza,

saj poteka skozi celotno izvajanje projekta. Najprej moramo razviti sistem nadzorovanja in

javljanja napredka.

V tej fazi nadzorujemo izvajanje projekta ter tveganja. Pomembno je, da nadzorujemo predajo

delovnih paketov ter da odkrivamo in rešujemo probleme povezane z njimi. Prav tako je

potrebno poročati višjemu vodstvu o možnih problemih ter napredku projekta.

Tukaj se pokaže izkušenost vodje projekta, ki lahko vodi v uspešno ali neuspešno končanje

projekta.

2.6.5 Zaključek projekta

Ko smo končali z izvajanjem vseh aktivnosti, moramo projekt zaključiti. Pri zaključitvi

projekta se postavi vprašanje, kako dobro smo naredili projekt. Tukaj ocenimo uspešnost

projekta ter pridobimo potrdilo uporabnikov, da izdelek/storitev ustreza njihovim zahtevam.

V tej fazi planiramo namestitev izdelka ter samo namestitev tudi izvedemo. Na koncu

napišemo še končno projektno poročilo ter planiramo izvajanje po-projektnih aktivnosti

(vzdrževanje). [2]

2.7 Pristopi k vodenju projektov v IT sektorju

Kot smo že povedali, lahko pri vodenju projektov sledimo več pristopom, mi smo izbrali dva

najbolj pogosta. To sta tradicionalni in agilni pristop k vodenju projektov.

Page 18: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

9

2.7.1 Tradicionalni pristop

Tradicionalni pristop k vodenju projektov je pristop, pri katerem celoten projekt načrtujemo v

naprej. Tako na začetku naredimo analizo in napišemo vse funkcionalnosti ter jim določimo

roke za zaključek. Metoda je zelo nefleksibilna in ni primerna za projekte, kjer izdelujemo

stvari, katere temeljijo na novih tehnologijah. Obstaja več metodologij vodenja projektov po

tradicionalnem pristopu, med temi pa je najbolj znan slapovni (Waterfall) model. [4]

2.7.2 Agilni pristop

Agilni pristop je pristop, ki projekte vodi »sproti«. Tudi pri agilnem pristopu se naredi

analiza, vendar pa se kasneje komponente in funkcionalnosti lahko spreminjajo in

dopolnjujejo. Pri agilnem pristopu imamo tako imenovane »Sprinte«, kjer se določi, kaj bi se

naj izdelalo v določenem časovnem okviru (običajno v enem tednu). Sprinti se definirajo

sproti, tako da niso podrobno določeni v naprej, tako kot je projektni plan pri tradicionalnem

pristopu. [4]

Page 19: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

10

2.8 Primerjava posameznih pristopov za vodenje projektov v IT sektorju

Pri vodenju projektov je zelo pomembno, za kakšen projekt gre, saj niso vsi pristopi in

metodologije primerne za vse projekte. Če imamo veliko število udeležencev in projekt, za

katerega vemo, kaj vse je potrebno narediti in imamo s tem že izkušnje, lahko uporabimo

tradicionalni pristop, saj tako zmanjšamo komunikacijo med izvajalci. Prav tako lahko

podrobno definiramo aktivnosti, saj smo se z njimi že srečali in znamo oceniti trajanje ter

možnosti za napake.

Pri projektih, ki uporabljajo nove tehnologije ali so raziskovalni, pa je uporaba

tradicionalnega pristopa zelo nepriporočljiva, saj imajo takšni projekti veliko nepričakovanih

stvari. Tukaj je priporočljivo uporabiti agilni pristop, saj se dela na kratke intervale in je

mogoče stvari (arhitekturo, tehnologijo itd.) lažje spremeniti. Pri agilnem vodenju so tudi

pogostejši sestanki, kjer lahko vsako nepričakovano stvar obravnavamo.

Page 20: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

11

3 OPIS APLIKACIJ ZA POMOČ PRI VODENJU

PROJEKTOV

Za pomoč pri vodenju projektov obstaja veliko aplikacij. Te aplikacije so lahko namizne,

spletne ali mobilne. Spodaj smo opisali nekaj aplikacij in jih nato poskusili med seboj

primerjati.

Primerjali smo jih na podlagi spodaj naštetih možnosti:

Vrsta aplikacije (mobilna, spletna ali namizna)

Možnost dodajanja več virov na nalogo

Možnost sledenja nalogam (pregled nad opravljenim delom)

Možnost razporejanja nalog v urniku (ali v Gaant chartu)

Možnost upravljanja z viri (več virov, dodeljevanje cene virom)

Možnost upravljanja z dokumentacijo

Možnost upravljanja z denarjem (pregled na zapravljenim denarjem in še ostalim

denarjem, lahko izračuna tudi dobiček na projektu)

Možnost sledenja porabljenemu času

Možnost sledenja napakam

Zahtevnost aplikacije za razumevanje (ocenjevali smo s številom od 1 do 4, kjer je 1

najlažje in 4 najtežje)

Ali aplikacija ponuja tudi mobilno različico (v primeru da je aplikacija spletna ali

namizna)

Možnost komentiranja nalog

Page 21: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

12

3.1 JIRA

JIRA [5] je spletna aplikacija, ki temelji na agilnem pristopu in nam omogoča uporabo

metodologij Scrum in Kanban. Omogoča nam sledenje nalog, vendar pa ne omogoča

razporejanja nalog v urnik.

Vsako nalogo je mogoče komentirati, kar pripomore k reševanju nejasnosti pri nalogi.

Ker je JIRA usmerjena v agilno vodenje projektov, nudi izdelavo sprintov. Ustvari jih lahko

samo vodja projekta. Z njihovo pomočjo lahko hitreje razvijamo funkcionalnosti, ki so

trenutno potrebne. Sprinti so prav tako pokazatelj napredka projekta ter organiziranosti

projektne skupine. Spremljamo jih preko tako imenovanih »sprint boardov«, kjer so naloge

razvrščene med štiri kategorije (čakajoče naloge, naloge v delu, naloge za testiranje in

dokončane naloge).

JIRA ima prav tako možnost razširitve z dodatkom Confluence, ki nam pomaga pri zapisu

dokumentacije in beleženje sestankov.

Prav tako ima JIRA še razširitve za verzioniranje datotek, ki temeljijo na GIT-u ali SVN-ju.

Primer je Bitbucket, ki temelji na GIT-u.

Aplikacija ne omogoča popolno upravljanje z viri, saj jim ne moremo dodeliti vrednosti.

Zaradi tega je onemogočeno upravljanje z denarjem na projektu.

JIRO uporabljajo Cisco, eBay, Adobe, BMW, Twitter, NASA in LinkedIn. [5]

Aplikacija je obsežna, ampak ima razumljive video vodiče, tako da je ocena težavnosti 2.

3.2 Microsoft Project 2010

Microsoft Project 2010 [6] je namizna aplikacija za upravljanje projektov. Omogoča sledenje

nalogam ter razporejanje nalog v urnik, nima pa možnosti komentiranja nalog.

Prav tako omogoča upravljanje z viri, kjer lahko vsak vir dodamo, ter mu dodelimo vrednost.

S tem lahko kasneje tudi vodimo upravljanje z denarjem, saj točno vemo, koliko denarja smo

porabili do sedaj.

S pomočjo Microsoft Project 2010 lahko upravljamo tudi z dokumenti, vendar moramo imeti

povezavo s strežnikom.

Page 22: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

13

Za razumevanje programa pa je potrebnega kar nekaj časa, zato bi težavnost razumevanja na

lestvici od 1-4 označili s 3.

3.3 ZOHO Projects

ZOHO Projects [7] je spletna aplikacije podjetja ZOHO, ki omogoča upravljanje projektov.

Omogoča sledenje nalogam, razporejanje nalog v urnik ter komentiranje nalog.

Ima pa tudi dodatno možnost tako imenovane štoparice, kjer lahko uporabnik pri določeni

nalogi pritisne na sliko ure, ki nato prične beležiti čas. Ko uporabnik zaključi nalogo ali izbere

»done«, se čas avtomatsko zabeleži. Tako je omogočeno zelo enostavno dodajanje časa na

projekt. Prav tako lahko čas pišemo sami za več dni ali tednov nazaj, kar pa ni priporočljivo.

Nekatera podjetja sicer beležijo aktivnosti na projektih vsak teden, kjer zapišejo, kaj se je

naredilo čez teden.

Aplikacija pa žel ne omogoča upravljanja z viri ter upravljanja z denarjem, zato si moramo

stroške projekta na določeni točki preračunati ročno.

Program je lahko razumljiv, prav tako pa ima vsako poglavje video vodiča, zato je težavnost

razumevanja enaka 1.

3.4 Collabtive

Collabtive [8] je spletna aplikacije, ki jo je potrebno namestiti na lasten strežnik. Omogoča

sledenje, komentiranje ter dodajanje nalog na urnike.

Ima omogočeno upravljanje virov ter dokumentov.

Aplikaciji lahko dodamo razširitve, ki omogočajo avtomatsko beleženje dela s pomočjo

štoparice. Prav tako razširitve omogočajo lažji pregled nalog, različna poročila ter

komentiranje nalog.

Razumevanje aplikacije je oteženo, saj ni koristnih vodičev. Težavnost razumevanja smo

ocenili z 2, saj aplikacija ni preveč obsežna.

3.5 EasyProjects

EasyProjects [9] je spletna aplikacija, ki omogoča upravljanje projektov. Podpira možnost

razporejanja nalog na urnik, sledenja nalog, komentiranja nalog, upravljanja z viri, dokumenti

Page 23: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

14

in denarjem ter sledenje porabljenemu času. Prav tako omogoča avtomatsko beleženje

porabljenega časa.

Po navedbah podjetja, EasyProjects uporabljajo tudi Toshiba, Goodyear, UPS in Harvard. [9]

Dostopa do aplikacije žal nismo imeli, njene funkcionalnosti pa so lepo razvidne iz vodičev,

ki so izmed vseh opisanih aplikacij najboljši.

3.6 ConceptDraw Project

ConceptDraw Project [10] je zelo podoben Microsoft Project-u 2010, saj sta skoraj identična.

ConceptDraw Project ima zraven vodenja projektov še tako imenovan »Mind map«, kjer

lahko uporabljamo nevihto možganov. Z »Mind mapa« lahko takoj prenesemo naloge na

urnik, kjer jih razporedimo in določimo čas.

Vse ostale funkcionalnosti so praktično enake kot pri Microsoft Project-u 2010, zato je tudi

ocena težavnosti enaka 3.

3.7 Project planning pro

Project planning pro [11] je mobilna aplikacija, ki omogoča sledenje nalog ter razvrščanje v

urnik. Prav tako omogoča upravljanje z viri ter upravljanje z denarjem. Aplikacija je zelo

podobna Microsoftovemu Project-u 2010, saj imata skoraj identične funkcionalnosti in izgled.

Na vsako nalogo je mogoče dodati več virov.

Upravljanja z dokumenti ter komentiranja nalog ne omogoča. Prav tako nima možnosti

sledenja napakam.

Ocena težavnosti je 2, saj je podoba Microsoft Project-u 2010, vendar ima manj

funkcionalnosti.

3.8 iScope

iScope [12] je mobilna aplikacija za upravljanje projektov, ki omogoča sledenje nalog, vendar

ne omogoča razporejanja nalog v urnik ali sledenja porabljenemu času. Prav tako ne omogoča

več virov na eni nalogi, sledenja napakam, komentiranja nalog, upravljanja z denarjem in

dokumenti ter upravljanja z viri.

Page 24: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

15

Je zelo okrnjena verzija aplikacije za pomoč pri vodenju projektov. Za naš primer je bila

skoraj neuporabna, tako da za težavnost prejme oceno 1, saj se pri njej nismo skoraj ničesar

naučili.

Page 25: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

16

4 PRIMERJAVA APLIKACIJ ZA VODENJE PROJEKTOV

V prejšnjem poglavju smo opisali aplikacije, katere bomo sedaj primerjali med seboj.

Primerjava je bila izvedena na podlagi parametrov, katere smo vključili v opise aplikacij.

Pri primerjavi smo ugotovili, da so najboljše spletne aplikacije, saj ponujajo vse

funkcionalnosti, ki so pri mobilnih in namiznih aplikacijah, ter možnost deljenja datotek in

komentiranja nalog. Prav tako smo opazili, da se večina aplikacij zateka bolj k

tradicionalnemu pristopu, saj jih večina nudi možnost razporejanja nalog na urnik (ali Gantt

chart).

Pri določenih aplikacijah smo pogrešali možnost upravljanja z viri, ki je zelo pomembno.

Upravljamo lahko tudi z denarjem v primeru, da imamo možnost upravljanja z viri.

Prav tako imajo spletne aplikacije po večini možnost uporabe mobilne aplikacije, ki omogoča

določene funkcionalnosti same spletne aplikacije. Te aplikacije lahko temeljijo na spletni

aplikaciji ali pa so prirejene za vsako mobilno platformo posebej. Iz tega sklepamo, da so

mobilne aplikacije pri vodenju projektov zelo pomembne.

V spodnji tabeli so prikazani rezultati.

Page 26: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

17

Tabela 1: Primerjava aplikacij

Ime

aplikacije JIRA

Microsoft

Project

ZOHO

Project Collabtive

Easy

Projects

Concept

Draw

Project

planning pro iScope

Vrsta

aplikacije Spletna Namizna Spletna Spletna Spletna Spletna Mobilna Mobilna

Več virov na

nalogi NE DA DA DA DA DA DA NE

Možnost

sledenja

nalogam

DA DA DA DA DA DA DA DA

Možnost

razporejanja

nalog v urnik

NE DA DA DA DA DA DA NE

Upravljanje z

viri NE DA DA DA DA DA DA NE

Upravljanje z

dokumenti

DA

(razširitev) DA DA

DA

(razširitev) DA DA NE

DA

(priloge,

beležke)

Upravljanje z

denarjem NE DA NE

DA

(razširitev) DA DA DA NE

Sledenje

porabljenemu

času

DA DA DA DA DA DA DA NE

Sledenje

napakam DA NE DA DA DA DA NE NE

Zahtevnost

razumevanja 2 3 1 2 / 3 2 2

Mobilna

aplikacija DA NE DA DA DA NE / /

Komentiranje

nalog DA NE DA DA DA DA NE NE

Page 27: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

18

5 IMPLEMENTACIJA MOBILNE APLIKACIJE

Cilj diplomske naloge je bil tudi implementacija lastne mobilne aplikacije. Tega smo se

najprej lotili z analizo, v kateri smo določili funkcionalnosti in želje uporabnikov. Ko smo z

njo zaključili, smo začeli z načrtovanjem in kasneje z implementacijo.

5.1 Analiza

Najprej smo naredili analizo že obstoječih mobilnih aplikacij na trgu ter s tem določili izgled

in funkcionalnosti naše aplikacije. Tako smo se odločili, da mora aplikacija imeti prijavo, saj

lahko le tako avtenticiramo uporabnika.

Prav tako mora biti aplikacija čim bolj enostavna, saj ne želimo zapravljati prostora za

nepotrebne reči.

Ker je aplikacija namenjena projektnemu vodenju, mora prikazovati seznam projektov

prijavljenega uporabnika ter nalog, na katere je uporabnik dodeljen. Prav tako bomo

omogočili dodajanje nove naloge za vodje projektov.

Naročniki so želeli tudi urejanje stanja naloge, da lahko prikažejo in vidijo napredek. Izrazili

so tudi željo, da lahko naloge označijo kot pomembne oz. priljubljene, ter jih tako lažje vidijo.

Tako bodo naloge, ki jih izvajajo ali želijo spremljati, uvrstili na vrh seznama.

Aplikacija mora prav tako omogočati pregleda nalog brez internetne povezave.

Naša aplikacija temelji na agilnem pristopu, saj se lahko naloge med izvajanjem projekta

dodajajo ali spreminjajo. Agilni pristop je možen tudi zato, ker na projektih sodeluje okoli 5

do nekje 10 ljudi.

S pomočjo analize smo naredili diagram primerov uporabi, ki je prikazan na spodnji sliki.

Page 28: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

19

Slika 3:Diagram primerov uporabe naše mobilne aplikacije

5.2 Uporabljene tehnologije in storitve

Pri razvoju naše aplikacije smo uporabili spodaj naštete tehnologije:

Ogrodje Spring (Spring framework) - ogrodje, ki omogoča lažje delo z REST

storitvami v Javi. Ogrodje vsebuje velik nabor funkcij, ki olajšajo delo razvijalcem. Te

funkcije so različni mapperji, funkcije za pridobivanje podatkov preko HTTPja,

avtomatska pretvorba objektov v JSON format, itd. [13]

Android - operacijski sistem za mobilne naprave. Uporabljali smo Ice Cream

Sendwich (4.0.0) saj ima več funkcij kot Gingerbread (2.3.3) in je nameščen (ICS ali

novejše verzije) na večini mobilnih naprav. [14]

Google Cloud Messaging for Android (GCM) - ogrodje, ki omogoča pošiljanje

potisnih sporočil na vse naprave. Uporabljamo ga pri spremembah na projektih ter

tako omogočamo uporabniku, da ima vedno na razpolago aktualne spremembe. [15]

Glassfish - strežnik za namestitev naše aplikacije. [16]

MySQL - SQL baza za hranjenje podatkov. [17]

Page 29: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

20

5.3 Načrtovanje

Pri načrtovanju smo najprej definirali, kakšne podatke bomo potrebovali ter nato definirali

entitetne razrede. Ko smo končali, smo začeli načrtovati spletno storitev. Za spletno storitev

smo izbrali strežnik Glassfish ter ogrodje Spring, saj nudi veliko funkcij in dobro podprto.

Pri načrtovanju mobilne aplikacije smo se najprej posvetili grafičnemu vmesniku (GUI).

Sprva smo si zastavili vprašanje, kaj bi si mi sami želeli od aplikacije. Odgovor je bil zelo

enostaven, saj si vsakdo želi preprosto aplikacijo, ki jo zna uporabljati, prav tako pa želi

»čist« uporabniški vmesnik ter tekoče delovanje. Tako smo naredili prijavno okno, kjer

uporabnik vpiše potrebne podatke in se nato izvede prijavni postopek. Če je uporabnik vnesel

podatke napačno, se izpiše opozorilo, drugače se pričnejo nalagati podatki. Če uporabnik

nima vključenega interneta, se izpiše opozorilo, s pomočjo katerega lahko uporabnik vklopi

internet ali nadaljuje v načinu brez interneta. Način brez interneta omogoča pregled projektov

ter nalog, ne omogoča pa spreminjanje stanja nalog ter dodajanja nalog in pridobivanja

aktualnih podatkov preko potisnih sporočil.

Slika 4: Prijavna stran mobilne aplikacije

Page 30: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

21

Sprva smo želeli po prijavi narediti seznam projektov, na katerih uporabnik sodeluje, vendar

smo kasneje videli, da je bolje, če naredimo domačo stran, kjer so prikazane samo njegove

naloge. V meniju zavihkov (Tab) ima uporabnik možnost izbrati med zavihkom »Moje

naloge« in »Projekti«. Zavihek »Moje naloge« uporabniku prikaže seznam nalog, za katere je

on zadolžen, medtem ko zavihek »Projekti« prikaže projekte, na katerih sodeluje.

Slika 5: Seznam projektov

Če izbere projekt, se mu prikažejo naloge, ki so na tem projektu. Pri vsakem projektu

prikažemo vse naloge, saj se je naročnikom zdelo pomembno, da uporabnik vidi tudi naloge

drugih uporabnikov ter zaključene naloge, kar prepreči nepotrebno čakanje in podvajanje

nalog. Prav tako smo pri obliki uporabili Android-ove dobre prakse, kot so ikona za vrnitev na

seznam ter uporaba novega »vrnitvenega snopa« (back stack-a) pri preklopu med zavihkoma.

Page 31: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

22

Na spodnji sliki lahko vidite seznam nalog, kjer ikona pove stanje naloge, drugi podatki pa so

ime naloge, čas do roka za zaključek naloge ter ime uporabnika, ki je za posamezno nalogo

zadolžen. Na desni strani so zvezdice, kjer oranžne predstavljajo naloge, ki jih je uporabnik

označil kot priljubljene. Naloge so razvrščene na tri sklope, kjer so najvišje uvrščene nove

naloge (to so naloge, ki so bile dodane ali urejen), sledijo jim priljubljene naloge ter ostale

naloge. Znotraj vsakega sklopa so posamezne naloge razvrščene na podlagi stanja naloge, kjer

so najvišje uvrščene naloge v čakanju, sledijo jim naloge v delu in nato še končane naloge.

Slika 6: Seznam nalog dodeljenih trenutnemu uporabniku

Page 32: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

23

Ko uporabnik izbere nalogo iz seznama, se mu izpišejo dodatni podatki o nalogi. Preko

mobilne aplikacije lahko uporabnik nalogi spremeni stanje ter nalogo označi kot priljubljeno.

Če je bila naloga prej označena kot »nova«, se pri pregledu ta oznaka odstrani.

Spodnja slika prikazuje pregled naloge, kjer lahko vidimo podatke o posamezni nalogi ter

spremenimo stanje le-te. Prav tako ima vsaka naloga na vrhu ime projekta, kar omogoča

uporabniku lažje sledenje. Sprva smo želeli za sledenje uporabiti »pot z drobtinicami«, vendar

se je izkazalo, da to ni najbolj praktično na mobilnih napravah, saj imajo premajhne zaslone.

Slika 7: Pregled naloge

Page 33: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

24

Pri pregledu nalog na projektu se uporabniku prikaže možnost za dodajanje naloge, vendar

samo v primeru, da je uporabnik vodja tega projekta. Ko želimo dodati nalogo, se naložijo

podatki, kot so sodelavci na projektu ter možna stanja nalog in se preveri, ali je uporabnik

vodja projekta.

Slika 8: Dodajanje naloge

Dodajanje nove naloge ter spreminjanje stanja na nalogi lahko izvajamo samo v primeru, da

mamo povezavo z internetom.

Pri hranjenju podatkov smo se odločili, da bomo uporabili notranji pomnilnik, saj so podatki v

naši aplikaciji zelo majhni.

Pri varnostni smo uporabili RSA šifriranje gesla in e-pošte med prenašanjem, medtem ko smo

za potrebe shranjevanja nad geslom uporabili zgoščevalni algoritem BCrypt.

Page 34: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

25

Za potisna sporočila smo uporabili GCM. Uporabnik dobi sporočila, ko mu je dodeljena nova

naloga ali projekt, ter ko se uredi katerakoli naloge na projektu. Da uporabnik dobi sporočilo

ob spremembi stanja vseh nalog na projektu, smo se odločili zato, da je vsak uporabnik

seznanjen z napredkom projekta. Tukaj smo predvsem ciljali na naloge, ki se morajo med

seboj čakati, kot je na primer naloga »Oblikuj plakat za koncert« in naloga »Natisni plakate za

koncert«. Primer je podan čim bolj preprosto, v uporabi bodo takšne naloge lahko zelo

komplicirane.

Slika 9: Potisno sporočilo

Za poglede smo uporabili fragmente, saj so bolj odzivni ter so pripravljeni za nadaljnji razvoj

aplikacije, kjer bomo podprli tudi tablične računalnike.

Page 35: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

26

5.4 Potek implementacije mobilne aplikacije

Začeli smo s vzpostavitvijo strežnika ter ogrodja. Pridobili smo dostopne podatke do strežnika

ter vzpostavili razvijalno okolje (IDE). Za naš IDE smo izbrali Eclipse, saj smo ga uporabljali

tekom študija ter ga dovolj dobro poznamo. Ko smo namestili IDE, smo morali namestiti še

razširitev (plugin) za Spring. Najprej smo naredili načrt baze, ki je prikazan na spodnjem E-R

diagramu.

Načrt baze je bil narejen za spletno aplikacijo, kasneje pa se je priključila še mobilna

aplikacija. Mobilna aplikacija uporablja samo del baze, in sicer tabele:

Member – Osebni podatki uporabnika.

Memeber_roles – Vmesna tabela med member in member_role.

Member_role – Vloge uporabnikov v organizaciji (član upravnega odbora, aktivist,

član nadzornega sveta, itd.).

Membership – Članstvo uporabnika v določenem študentskem klubu za določeno

leto. Entiteta vsebuje tudi podatke o šoli ter programu, ki ga uporabnik obiskuje.

Organization – Podatki o študentskem klubu.

Participants – Vsi uporabniki, ki sodelujejo na določenem projektu.

Participant_role – Vloge uporabnikov na projektu (vodja projekta, oblikovalec,

gostinec, varnostnik, itd.).

Project – Podatki o projektu

Project_state – Možna stanja projektov (predlagan, v izvajanju, zaključen, itd.).

Task – Podatki o nalogah.

Task_state – Možna stanja nalog (v čakanju, v delu in zaključena)

Page 36: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

27

Slika 10: Model podatkovne baze

Page 37: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

28

Ko smo dokončali bazo, smo jo namestili na strežnik ter začeli z razvojem aplikacije. Najprej

smo morali narediti prijavo, saj brez prijave ni mogoče dostopati do podatkov. Geslo in e-

pošta sta šifrirana z RSA algoritmom zaradi varnosti med pošiljanjem, medtem ko je geslo

zgoščeno z zgoščevalno funkcijo BCrypt (za potrebe shranjevanja v podatkovni bazi). Javni

ključ se nahaja v sami aplikaciji v mapi »assets«, medtem ko privatni ključ hranimo na

strežniku. Spodnja izseka kode prikazujeta, kako se izvaja kodiranje.

//Encrypt password

AssetManager am = getAssets(); String encPw = Encryption.rsaEncrypt(password, am);

Programska koda 1: Klic metode za kodiranje

Zgornji izsek kode je klic iz razreda LoginActivity, kjer pridobimo razred AssetManager, ki je

potreben za dostop do datotek. V spodnjem izseku se izvaja dejansko šifriranje, kjer najprej iz

datoteke preberemo javni ključ, nato kreiramo instanco Chiper razreda, s pomočjo katerega

kasneje šifriramo geslo. Zaradi znakov, ki se pojavijo pri normalnem RSA šifriranju, moramo

podatke šifrirati še z Base64, preden jih pošljemo na strežnik.

ObjectInputStream oin = new ObjectInputStream (new BufferedInputStream

(am.open("public.key"))); BigInteger m = (BigInteger) oin.readObject();

BigInteger e = (BigInteger) oin.readObject();

RSAPublicKeySpec keySpec = new RSAPublicKeySpec(m, e); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); pubKey = keyFactory.generatePublic(keySpec); //Naložimo javni ključ iz datoteke oin.close();

//Kreiramo instanco Chiper razreda s potrebnimi argumenti Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");

cipher.init(Cipher.ENCRYPT_MODE, pubKey);

//Šifriranje gesla

byte[] cipherData = cipher.doFinal(password.getBytes()); //Šifriranje gesla za potrebe pošiljanja byte[] codedBytes = Base64.encodeBase64(cipherData);

return new String(codedBytes);

Programska koda 2: Branje javnega ključa ter šifriranje

Enako naredimo z elektronskim naslovom, na kar pošljemo podatke na strežnik, kjer podatke

dešifriramo in primerjamo s shranjenimi. Če se podatki ujemajo, nam strežnik vrne osnovne

podatke o uporabniku, drugače počistimo vnosna polja in izpišemo opozorilo.

Page 38: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

29

Po prijavi smo se lotili implementacije uporabniškega vmesnika, kjer smo najprej razvili

meni, kjer lahko uporabnik preklopi med svojimi nalogami ter projekti. Meni je fragment, ki

je na samem vrhu aplikacije. Za fragment smo se odločili zaradi lažje kontrole akcij v sami

kodi, prav tako pa omogoča preklop med osrednjimi fragmenti v primeru, da se kateri izmed

njih preneha odzivati.

Osrednji fragmenti so vsi drugi fragmenti v naši aplikaciji. Preklapljanje med njimi smo

implementirali z v naprej pripravljenima animacijama pojavljanja (fade in) in pojemanja (fade

out), kar je poudarilo tekoče delovanje aplikacije.

Page 39: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

30

Pri določenih fragmentih omogočamo spreminjanje podatkov s pomočjo kretnje levo ali

desno. S pomočjo teh kretenj lahko preklapljamo med projekti in nalogami.

Sprememba je odvisna od smeri potega, kjer se prikaže naslednji ali prejšnji projekta oz.

naloga. Preklapljanje s pomočjo kretnje levo ali desno je krožno, saj nismo želeli omejevati

uporabnika. Kretnje razpoznamo s pomočjo vmesnika OnTouchListener in razreda

SimpleOnGestureListener. Pri slednjem uporabimo metodo onFling(), preko katere dobimo

podatke o premiku prsta. Ko imamo podatke, izračunamo, ali se je uporabnik premaknil levo

ali desno po osi X (os Y bi uporabili pri kretnjah gor ali dol). Primer zaznave kretenj je

prikazan v spodjem izseku kode, katero smo našli na forumu in priredili za potrebe naše

aplikacije.

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

//V primeru hitrih zaporednih kretenj se lahko zgodi, da sta e1 ali e2 enaka null, v tem

primeru ne naredimo ničesar

if(e1==null||e2==null) return false;

//Izračunamo razliko med koordinatami X in Y

float diffY = e2.getY() - e1.getY(); float diffX = e2.getX() - e1.getX();

//Preverimo ali je bila daljša kretnja po X osi, kar pomeni da je bila kretnja levo ali desno

if (Math.abs(diffX) > Math.abs(diffY)) {

//Na koncu še preverimo smer, hitrost in dolžino kretnje ter kličemo ustrezno metodo if (Math.abs(diffX) > 50 && Math.abs(velocityX) > 50) {

if (diffX > 0) { onSwipeRight(); } else {

onSwipeLeft(); }

}

return true; }else

return false;

}

Programska koda 3: Prepoznava kretenj

Po zaznavi kretnje vzamemo prejšnji ali naslednji element v polju ter ga prikažemo.

Page 40: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

31

Nato smo se lotili implementacije pregleda uporabnikovih lastnih nalog. Najprej smo podatke

pridobili s pomočjo REST klica na strežnik ter jih nato uredili in prikazali v aplikaciji. Na

enak način smo implementirali tudi pridobivanje projektov. Po pridobitvi vseh podatkov le te

shranimo v notranjo shrambo (internal storage).

Ko smo imeli podatke shranjene, smo implementirali prikaz. Za naloge ter projekte smo

uporabili ListView, pri katerem smo sami implementirali postavitev vrstic. Tako imajo naloge

na začetku ikono stanja, kateri sledi opis z možnostjo prikaza slike »nova naloga«, na koncu

pa je zvezdica, preko katere lahko uporabnik označi posamezno nalogo kot priljubljeno. Pri

projektih imamo samo ikono projekta ter ime projekta, saj so vsi drugi podatki dostopni preko

spletne aplikacije in niso potrebni na mobilni aplikaciji.

Po seznamu smo implementirali prikaz posamezne naloge, kjer prikazujemo vse potrebne

podatke o nalogi. Prikaz naloge je implementiran s kombinacijo ScrollView-a,

RelativeLayout-a ter LinearLayout-a. Na spodnji sliki lahko vidimo, kako so posamezni

gradniki gnezdeni.

Slika 11: Gnezdenje elementov pri pregledu naloge

Takšno gnezdenje smo potrebovali zato, da lahko z drsenjem navzdol vidimo tudi zelo dolge

opise nalog.

Pri prikazu naloge lahko uporabnik spremeni stanje ter oznako priljubljena.

Nadaljevali smo z implementacijo dodajanja nalog na projektu. Uporabnik lahko dodajanje

naloge izbere preko menija, če se nahaja na projektu, ali pa z daljšim pritiskom na vrstico pri

seznamu projektov, pri katerem se pokaže možnost dodajanja naloge.

Page 41: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

32

Pri dodajanju nove naloge najprej preverimo, ali imamo dostop do interneta, saj brez interneta

dodajanje nalog ni omogočeno. Nato preverimo, ali je uporabnik vodja projekta in prikažemo

vnosna polja. Če uporabnik ni vodja projekta, se prikaže pojavno okno z obvestilom, da nima

pravice dodati naloge, ter se vrne na seznam projektov ali na sam projekt (odvisno od prej

izbrane možnosti za dodajanje nove naloge).

Izbiranje datuma za zaključek naloge smo naredili po vzoru Googlovih koledarjev (Google

Calendar), kjer imajo preprosto tipko, ki prikaže dialog za izbiro datuma. Ko uporabnik datum

izbere, se ta prikaže kot besedilo na sami tipki. Prav tako je narejeno izbiranje časa, kjer je

začetni čas zmeraj 08:00.

Če dodajanja naloge ne zaključimo s pritiskom na gumb »Dodaj nalogo«, se podatki ohranijo

v vnosnih poljih, dokler uporabnik ne zapre aplikacije.

Page 42: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

33

Na koncu smo implementirali še GCM za sprejemanje potisnih sporočil ter prikazovanje

obvestil le teh. Aplikacija se ob prijavi uporabnika registrira na GCM ter na naš strežnik.

Strežnik hrani unikaten identifikacijski ključ (token) vsake naprave, ki se poveže z

uporabnikom. Preden se pošlje sporočilo, se določijo uporabniki, ki morajo sporočilo prejeti.

Nato se preko našega strežnika kliče GCM strežnik, kateremu posredujemo identifikatorje

naprav, na katere želimo dostaviti določeno sporočilo. Skupaj z identifikatorji pošljemo na

GCM strežnik tudi sporočilo in API ključ, katerega je potrebno predhodno pridobiti.

Spodnja slika prikazuje komunikacijo med aplikacijo, GCM-jem ter našim strežnikom s

pomočjo diagrama zaporedja.

Slika 12: Prikaz delovanja potisnih sporočil s pomočjo diagrama zaporedja [18]

Page 43: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

34

Na sliki 12 sta prikazana registracija (register) ter pošiljanje sporočila. Pri registraciji

pošljemo zahtevo na GCM strežnik, kateri vrne unikaten identifikacijski ključ (token), ki ga

nato posredujemo našemu strežniku (na sliki poimenovan BusinessServer). Tam ključ

dodelimo uporabniku in ga shranimo.

Pri pošiljanju sporočila je potrebno najprej določiti uporabnike. Uporabnike določamo glede

na sodelovanje pri projektu, saj ne želimo, da bi vsi uporabniki sistema prejemali potisna

sporočila vseh projektov. Ko imamo seznam uporabnikov, pridobimo ključe naprav, ki tem

uporabnikom pripadajo. S temi podatki pošljemo zahtevek na GCM strežnik, ki nato razpošlje

sporočilo vsem napravam.

V primeru posodobitve ključa (case1) nam GCM vrne star in nov ključ, ki ga nato na našem

strežniku zamenjamo in shranimo.

V primeru, ko naprava ni registrirana (case2), nam GCM vrne stanje »NotRegistered«, kar

nam pove, da naprava ni več registrirana. To se lahko zgodi, ko naš strežnik ni na voljo, saj se

naprava lahko odjavi na GCMju, ne more pa se odjaviti na našem strežniku. Pri tem stanju

napravo s tem ključem odstranimo iz seznama.

Podatki se osvežujejo na podlagi potisnih sporočil ali aktivnostih uporabnika, prav tako pa je

v meniju dodana možnost ročnega osveževanja podatkov. Pridobivanje podatkov se izvaja v

ozadju z androidovimi servisi.

5.5 Izboljšave

Aplikacije sedaj pokriva osnovne funkcionalnosti, v prihodnje pa bomo dodali še možnost

vnosa ur dela na posameznih nalogah ter omogočili pregled aktivnosti na projektih. Kot

aktivnosti štejemo vse aktivnosti od dodane naloge do oddaje poročil in nalaganja prilog.

Kasneje bomo dodati še možnost pregledovanja prilog (podobno kot pri Dropbox-u) ter

možnost dodajanja slik, ki se bodo na naloge prenesle kot priloge.

Prav tako bomo dodali še podporo za tablične računalnike.

Če bodo uporabniki zadovoljni bomo razvili tudi aplikacijo za iOS in Windows Phone.

Želje za izboljšave bodo podali tudi uporabniki, ko bo aplikacija na voljo v Google Play.

Page 44: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

35

6 SKLEP

V diplomskem delu smo spoznali, kaj je vodenje projektov ter kako poteka. Predstavili smo

tudi, kakšen je pomen uspešnega vodenja projektov ter razmerja med uspešno in neuspešno

zaključenimi projekti. Prav tako smo predstavili pomembnost upravljanja tveganj ter

komunikacije.

Spoznali smo različne metodologij, ki smo jih med seboj tudi primerjali. Kot smo videli, je

zelo pomembno, da se projekt pravilno upravlja in spremlja, saj se lahko le tako uspešno

zaključi.

Opisali smo različne aplikacije za pomoč pri spremljanju ter upravljanju projektov. Te

aplikacije smo med seboj tudi primerjali in ugotovili, da so si zelo podobne. Pomembno vlogo

pri tem imajo tudi mobilne aplikacije, saj je spremljanje projektov z njimi veliko lažje. Tako

imamo vedno možnost dostopati do aktualnih podatkov ter spremljati razvoj projekta.

Pri mobilnih aplikacijah je zelo pomembno, da se prikažejo zgolj pomembni podatki, ter da so

ti podatki podani v čim bolj »čistem« uporabniškem vmesniku. Prav tako je zelo pomembno,

da aplikacije deluje tekoče.

Trenutno smo v času pametnih telefonov in tablic, z novimi tehnologijami pa bomo dobili

nove načine za spremljanje in upravljanje projektov.

Page 45: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

36

7 VIRI

[1] R. K. Wysocki, Effective project management: Traditional, Agile, Extreme, Indianapolis:

Wiley Publishing, 2009.

[2] Institute, Project Management, PMBOK Guide, 2000 edition ured., Newtown Square:

Project Management Institute, lnc., 2001.

[3] K. T. Yeo, „Critical failure factors in information system projects,“ zv. 20, št. 2002, pp.

241-246, 2002.

[4] J. D. Fernandez in D. J. Fernandez, „Agile project management - agilism versus

traditional approaches,“ The Journal of Computer Information Systems, pp. 10-17,

2008/2009.

[5] „JIRA,“ Atlassian, [Elektronski]. Available: https://www.atlassian.com/software/jira.

[Poskus dostopa 05 11 2013].

[6] „Microsoft Project 2010,“ Microsoft, [Elektronski]. Available:

http://www.microsoft.com/project/en/au/default.aspx. [Poskus dostopa 05 11 2013].

[7] „ZOHO Projects,“ ZOHO Corporation, [Elektronski]. Available:

https://www.zoho.com/projects/. [Poskus dostopa 05 11 2013].

[8] „Collabtive,“ [Elektronski]. Available: http://collabtive.o-dyn.de/. [Poskus dostopa 05 11

2013].

[9] „Easy Projects,“ Logic Software, [Elektronski]. Available:

http://www.easyprojects.net/home/. [Poskus dostopa 05 11 2013].

[10] „ConceptDraw Project,“ CS Odessa corp., [Elektronski]. Available:

http://www.conceptdraw.com/products/project-management-software/. [Poskus dostopa

05 11 2013].

[11] „Project Planning Pro,“ i2e Consulting LLC, [Elektronski]. Available:

http://www.planningproapp.com/. [Poskus dostopa 05 11 2013].

Page 46: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …

Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah

37

[12] „iScope,“ Maihue, [Elektronski]. Available: http://www.iscopeapp.com/. [Poskus

dostopa 05 11 2013].

[13] „Spring Framework,“ Pivotal, [Elektronski]. Available: http://projects.spring.io/spring-

framework/. [Poskus dostopa 05 11 2013].

[14] „Android,“ [Elektronski]. Available: http://www.android.com/. [Poskus dostopa 05 11

2013].

[15] „Google Cloud Messaging,“ [Elektronski]. Available:

https://developer.android.com/google/gcm/index.html. [Poskus dostopa 05 11 2013].

[16] „GlassFish Server,“ Oracle Corporation, [Elektronski]. Available:

https://glassfish.java.net/. [Poskus dostopa 05 11 2013].

[17] „MySQL,“ Oracle Corporation, [Elektronski]. Available: https://www.mysql.com/.

[Poskus dostopa 05 11 2013].

[18] J. V. D. Linden, „Octo Talks,“ 13 9 2012. [Elektronski]. Available:

http://blog.octo.com/push-du-nouveau-avec-gcm-et-notifications-stylees-sur-android-4-

1/. [Poskus dostopa 14 3 2014].

[19] University of Portsmouth; Central computer and telecommunications agency; Key

computer software (Europe) limited, Prince2 - Electronic on-line manual.

Page 47: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …
Page 48: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …
Page 49: INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …