Sunteți pe pagina 1din 55

ACADEMIA DE STUDII ECONOMICE

FACULTATEA DE CIBERNETIC, STATISTIC I


INFORMATIC ECONOMIC

LUCRARE DE LICEN
Aplicaie mobil pentru planificarea traseelor pentru livrarea
comenzilor unei firme

Coordonator:
Prof. univ. dr. Paul Pocatilu

Absolvent:
Mazilu Oana Teodora

- Bucureti, 2016 -

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Cuprins
1.

Introducere................................................................................................................................3

2.

Analiza sistemului informatic..................................................................................................6


2.1.

Descrierea problemei......................................................................................................6

2.2.

Studiul asupra realizrilor similare din domeniu........................................................7

2.3.

Stabilirea funcionalitilor aplicaiei.........................................................................10

2.4.

Diagrame UML.............................................................................................................13

3.

Proiectarea sistemului informatic...........................................................................................20

4.

Implementarea sistemului informatic.....................................................................................28


4.1.

Tehnologii utilizate........................................................................................................28

4.2.

Arhitectura aplicaiei....................................................................................................35

4.3.

Modul de implementare a aplicaiei............................................................................37

5.

Modul de utilizare al aplicaiei...............................................................................................48

6.

Concluzii................................................................................................................................53

Bibliografie....................................................................................................................................54
Anexa Lista de abrevieri.............................................................................................................55

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

1. Introducere
Timpul este una dintre cele mai importante resurse de care dispunem si care trebuie
valorificate, att pentru binele nostru, ct i pentru binele societii. Lund n considerare faptul
c timpul este un bun rar, limitat i c acesta nu poate fi cumprat, stocat sau pus de o parte,
putem afirma c pentru o via mplinit i organizat, gestionarea eficient a timpului reprezint
un punct esenial.
O aplicaie informatic n domeniul gestionrii eficiente a timpului i a resurselor alocate
presupune integrarea tehnologiilor web n scopul informatizrii si optimizrii proceselor ce stau
la baza activitii unei firme ce distribuie ap plat, determinnd reducerea costurilor,
planificarea optim a resurselor i accesul rapid la informaii.
ntruct n zilele noastre traficul este o alt problem major prezent n societate, acesta
fiind din ce n ce mai aglomerat, iar timpul petrecut n trafic crete considerabil, n cazul firmelor
ce se ocup de curierat apare problema gestionrii cu atenie a timpului alocat fiecrei livrri,
scopul acestora fiind acela de a livra cu succes ct mai multe comenzi ntr-un timp ct mai scurt.
Apare astfel necesitatea de a gestiona planificarea optim a traseelor efectuate de un ofer,
sarcin ce nu poate fi pus in responsabilitatea unei singure persoane i duce la dezvoltatea unui
software specializat.
Datorit evoluiei rapide a tehnologiei, telefoanele smart i dispozitivele mobile sunt
omniprezente, astfel o aplicaie mobila faciliteaz accesul la date, fiind uor de utilizat in orice
circumstan. Studiile arat c la nivel mondial mai mult de un miliard din telefoanele mobile
sunt smartphone-uri, iar utilizatorii de internet de pe mobil sunt din ce in ce mai mul i. Se poate
explica, astfel, necesitatea i valoarea aplicaiilor mobile pentru bussiness. Un alt avantaj al unei
aplicaii mobile este faptul c aceasta premite o localizare precis, lucru foarte util in acest
context.
Aplicaiile concepute pentru a gestiona planificarea de rute i trasee n cazul firmelor ce
ditribuie diferite produse au rolul de a eficientiza munca angajailor i interaciunea cu clientul,
oferindu-le acestora o gam larg de funcionaliti. Printre acestea se numr introducerea cu
uurin a clienilor n sistem, datele acestora fiind pstrate ntr-o baz de date, prezentarea
3

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

interactiv a produselor firmei si recepionarea comenzilor, ct i distribuirea comenzilor i


notificarea clienilor. Totodat, prin intermediul acestor aplicaii, companiile pot obine o
eviden clar a activitii zilnice a fiecrui ofer. Printre alte avantaje se numr i eviden ierea
datelor n timp real i emiterea documentelor aferente livrrii cu ajutorul aplicaiei.
Scopul prezentei aplicaii mobile, denumit sugestiv WaterFlow, este de a realiza un
sistem menit sa interconecteze principalii actori din cadrul acestui proces de distribuire a
comenzilor ctre destinatari: clientul (cel care plaseaz o comand) i cel care se ocup cu
livrarea comenzii i notificarea clienilor cu privire la statusul unei comenzi (oferul).
Interaciunea dintre client i ofer este efectuat prin intermediul aplica iei, aceasta oferind cte
un modul pentru fiecare parte: un modul destinat clienilor i un modul destinat personalului.
Aadar, se dorete gestionarea unor conturi diferite de utilizator pentru fiecare instan, in funcie
de natura utilizatorului acesta accesnd in continuare partea de aplicaie aferent.
n modulul client utilizatorul va beneficia de o prezentare detaliat a produselor si
serviciilor oferite de firm, a preurilor aferente i a ofertelor disponibile. n cazul n care
compania i strnete interesul i dorete sa achiziioneze ap cu ajutorul aplicaiei, acesta i i va
crea cont de utilizator, dup care va putea plasa cu uurin comanda. Totodat, clientul poate
opta pentru primirea de notificri prin intermediul email-ului, meninndu-se astfel la curent cu
toate noutile de pe pia.
n modulul ofer, dup ce acesta a fost autentificat, va dispune de o list cu comenzile
de care se va ocupa n ziua repectiv i detaliile corespunztoare, dup care va putea ncepe
livrarea acestora. Aplicaia i pune problema planificrii eficiente a traseelor, astfel nct oferul
s plaseze ct mai multe comenzi ntr-un timp minim, cu un consum avantajos de combustibil.
Aceast problem va fi rezolvat cu ajutorul unor algoritmi ce vor avea la baz teoria din
domeniul Cercetrii Operaionale cu privire la Travelling Salesman Problem fiind dat o list
cu orae i distanele dintre fiecare pereche de orae, care este cea mai scurt rut posibil care
trece prin fiecare ora o singur dat i revine in punctul de origine? - i prin intermediul APIurilor Google Maps. Asemntor problemei amintite, oferul pleac de la depozit i dore te
vizitarea tuturor adreselor ce i-au fost repartizate, la final ntorcndu-se la depozit. Acesta
dorete minimizarea lungimii totale a traseului.

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Aadar, aplicaia WaterFlow, Aplicaie pentru planificarea traseelor pentru livrarea


comenzilor unei firme, i propune optimizarea procesului de recepionare i livrare a
comenzilor unei firme ce distribuie apa plat, prin stabilirea unor trasee eficiente i asigurarea
interaciunii corecte dintre client si personalul firmei. De asemenea, este un instrument util
pentru patronii firmelor, acetia avnd o viziune complet asupra fiecrui ofer.
Pe parcursul celor ase capitole ce formeaz lucrarea, este evideniat treptat evolu ia
aplicaiei, ncepnd de la faza de analiz a cerinelor domeniului cruia i apar ine, pn la faza
de implementare propriu-zis, testare i ntreinere.
Primul capitol descrie cerinele pieei n ceea ce privete firmele ce se ocup cu
comercializarea i distribuirea de produse (n acest caz ap plat) i eviden iaz utilitatea unei
aplicaii mobile n acest domeniu.
Pentru sigurana faptului c un produs informatic abordeaz n mod corect o problem,
trebuie, mai nti, s se studieze i s se nteleag problema ce necesit rezolvare. Astfel, cel deal doilea capitol i propune descoperirea problemei ce trebuie clarificat, de ce ea necesit o
rezolvare i totodat gsirea celei mai bune soluii pentru aceasta, informaii dobndite n urma
procesului de analiz a sistemului informatic.
Proiectarea sistemului presupune stabilirea soluiilor logice, organizarea i structurarea
componentelor, lucruri care vor fi prezentate n capitolul trei. Totodat, acest capitol va eviden ia
i proiectarea sistemului din punct de vedere fizic, mai exact a bazei de date utilizate i a
interfeelor cu utilizatorul.
Capitolul patru prezint implementarea soluiei, ce presupune realizarea i testarea
programelor ce compun aplicaia i funcionalitile acesteia. Acesta prezint i tehnologiile
utilizate pe parcursul dezvoltrii aplicaiei i rolul acestora in procesul de eficientizare i
optimizare a soluiei.
Capitolul cinci are ca scop descrierea modului de utilizare a aplica iei, eviden iind astfel
paii pe care i efectueaz un utilizator pe parcursul folosirii sistemului.
Ultimul capitol i propune stabilirea concluziilor deduse dup finalizarea proiectului, a
modului n care acesta poate fi mbuntit, dar i avantajele si dezavantajele soluiei elaborate.
5

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

2. Analiza sistemului informatic


n etapele de analiz i proiectare a sistemului informatic se vor folosi diagramele UML.
UML (Unified Modeling Language) este un limbaj ce permite construirea de modele necesare
proiectrii sistemului, fiind foarte util pe parcursul dezvoltrii aplicaiei. Va rezulta astfel un
model ce evideniaz n mod abstract o parte a realitii i ajut la ntelegerea sistemului ce
urmeaz a fi construit.

2.1.

Descrierea problemei

Prestarea de servicii reprezint un domeniu n care numeroase companii din Romnia


aleg sa i desfsoare activitatea, un principal motiv pentru aceast alegere fiind ob inerea de
profit n mod continuu i oarecum constant. Muli uit ns importana calitii serviciilor i a
satisfacerii clientului, lucruri eseniale unei afaceri de succes. Calitatea produselor i serviciilor
oferite de firme ar trebui sa reprezinte criterii de baz n dezvoltarea unei activit i, att pentru
mulumirea deplin a clientului, ct i pentru profitabilitate.
Avnd n vedere faptul c aplicaia dezvoltat n aceast lucrare va gestiona livrarea
comenzilor unei firme ce vinde ap plat, putem afirma c n acest domeniu nu mai exist
monopol, oamenii avnd numeroase posibiliti de alegere. Cu toii ne dorim ca produsele
achiziionate s fie de cea mai bun calitate, rezervndu-ne astfel dreptul de a refuza ceea ce nu
ne este pe plac. De aceea, aplicaia de fa i propune inovaia n rndul firmelor deja existente,
oferind att pentru client, ct i pentru personalul companiei o mai bun gestionare a timpului i
a calitii seviciilor.
Timpul devine o resurs din ce n ce mai preioas, valorificarea acestuia fiind un punct
forte al unei persoane de succes. Odat cu evoluia rapid a tehnologiei, dac aceasta este folosit
n mod corespunztor, poate permite optimizarea timpului i a resurselor de care dispune o firm,
ducnd astfel la creterea productivitii acesteia. O problem frecvent ce apare n cadrul
6

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

firmelor ce se ocup cu livrarea de produse sau cu activitatea de curierat o reprezint ntrzierea


livrrii coletelor, ducnd astfel la nemulumirea i pierderea clienilor abonai. Traficul,
dezorganizarea sau gestionarea ineficient a timpului alocat unei livrri sunt doar cteva dintre
cauzele acestor probleme.

2.2.

Studiul asupra realizrilor similare din domeniu

Efectund o analiz asupra pieei, se pot remarca trei companii mari ce se ocup cu
livrarea de ap plat la domiciliu: BeviAqua, Aquatulip i Doraqua. Acestea sunt companii de
servicii n domeniul aprovizionrii cu ap plat pentru firme sau uz casnic, totodat oferind i
produse suplimentare pentru protocolul companiilor. Fiecare dintre cele trei companii ofer
clienilor posibilitatea de a vizualiza o gam variat de produse i de a comanda online cantitatea
de ap dorit, mbuteliat n diferite recipiente. Firmele dispun de un site web, unde clien ii pot
face comanda fr s fie obligai sa aib un contract semnat cu firma. Fie c este vorba de o
persoan fizic sau juridic, aceasta poate comanda ap ncepnd de la cantiti mici, pn la
cantiti industriale. Companiile menionate livreaz apa direct la domiciliu, ncasnd banii la
efecutarea livrrii sau prin intermediul cardului. Acestea ofer clientului posibilitatea de a
comanda ap online, cu ajutorul unui formular de comand disponibil pe site, unde clientul i
completeaz datele personale, adresa, cantitatea de ap pe care dorete sa o achiziioneze i
recipientele n care aceasta va fi mbuteliat conform standardelor de calitate. Cele trei firme
ofer utilizatorului o interfa prietenoas, punndu-i n eviden ofertele i promoiile de care
dispun printr-o strategie bun de marketing.
Aadar, la o prim cercetare asupra firmelor ce activeaz n acest domeniu, se poate
observa cu uurin calitatea superioar a produselor, faptul c acestea sunt menite s satisfac
cerinele consumatorilor, ns plasarea unei comenzi nu este efectuat prin cea mai practic
metod, ntruct aceasta este realizat prin intermediul unui site web. Fiind in secolul vitezei,
oamenii tind ctre alegerea celei mai simple soluii atunci cnd vine vorba de orice, n special
cnd au de ales ntre numeroase opiuni. Astfel, o aplicaie mobil uureaz considerabil procesul
7

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

de plasare al unei comenzi, chiar dac este vorba despre ap plat. Majoritatea companiilor ce se
ocup cu vnzarea de produse sau prestarea de servicii, fie acestea din domeniul culinar,
vestimentar, cri, cosmetice, etc., le ofer utilizatorilor aplicaii mobile menite sa faciliteze
accesul la informaii i efectuarea unei comenzi. Inclusiv n activitatea de taximetrie, s-a dovedit
faptul c unei persoane i este mult mai uor sa comande un taxi de pe o aplica ie mobil, dect
prin intermediul apelului telefonic. n acelai timp, aplicaia reprezint un beneficiu i pentru cei
care presteaz serviciul, acetia gestionnd mai uor numeroasele comenzi primite, interac iunea
client furnizor devenind mult mai accesibil i mai organizat.
Putem afirma, astfel, c datorit faptului c smartphone-ul a devenit rapid unul dintre cele
mai iubite gadget-uri ale generaiei actuale, o aplicaie mobil este benefic oricrei companii,
aceasta reuind chiar s creasc numrul de clieni ai firmei i n acela i timp profitul. Oamenii
sunt ntr-o continu micare, smartphone-ul fiind cel mai rapid i accesibil mod de a afla
informaiile de care au nevoie.
Pe de alt parte, aplicaia dezolvat nu este destinat doar clienilor, ci i personalului
firmei. Pe lng utilitatea pe care aceasta o ofer utilizatorului n procesul de vizualizare, alegere
i comandare a produselor, are, de asemenea, o deosebit funcionalitate pentru persoanele care
se ocup de livrarea comenzilor. n acest sens, se poate remarca asemnarea dintre aceast parte
a aplicaiei i o firm de curierat, ambele bazndu-se pe gestionarea eficient a comenzilor i
ctigarea respectului clientului prin promptitudine i punctualitate. Dup cum am menionat, o
problem frecvent n acest domeniu o reprezint lipsa de profesionalism, ce poate fi chiar o
cauz a soft-ului pe care firma l folosete pentru efectuarea livrrilor i care poate produce
ntrzieri n acest proces. Chiar dac accept sau nu acest lucru, oamenii i formeaz o impresie
nc de la nceput despre persoanele cu care interacioneaz, produsele pe care le achiziioneaz
sau serviciile pe care le ateapt. Dac acestea sunt satisfctoare nc din prima clip, atunci vor
tinde, n mod subcontient, s mai apeleze nc o dat la acelai lucru atunci cnd vor avea
nevoie. Pe de alt parte, dac prima lor impresie este dezagreabil, cu siguran nu vor face
aceeai greeal de dou ori. n ceea ce privete firmele de curierat existente de pia n
momentul actual, firme cu care aplicaia dezvoltat poate fi comparat prin prisma faptului c
printre funcionalitile acesteia se numr i livrarea de comenzi, se fac remarcate Fan Curier,
Sprint Curier, Global Curier Express, Cargus, etc. Dei activitatea unei firme de curierat nu este
8

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

aceei cu activitatea de a livra la domiciu produse specifice unui domeniu concret (n acest caz
livrarea de ap plat), putem afirma c scopul este acelai : satisfacerea clientului prin livrarea
unei comenzi n stare perfect i n timp util. Cu siguran capacitatea unui curier/ ofer de a tii
cum s comunice cu clientul, de a fi un bun conductor auto i de a reu i s interac ioneze n
mod plcut cu oamenii din jur reprezint un bonus pentru firmele care dispun de asemenea
persoane, ns n acelai timp i sistemele informatice utilizate n aceast activitate au un rol
extrem de important.
n ultima vreme piaa serviciilor de curierat este pe o linie ascendent, nregistrndu-se o
cretere semnificativ a numrului de furnizori de astfel de servicii. Din pcate, odat cu aceast
dezvoltare s-au fcut remarcai i clienii nemulumii, majoritatea din cauza ntrzierilor n
livrarea coletelor, ce pot varia ntre cteva ore i cteva zile. Acest lucru este o problem i
pentru firme, acestea devenind contiente de dificultile pe care le ntmpin i n majoritatea
cazurilor dnd vina pe programul informatic cu care lucreaz i incapacitatea acestuia de a
planifica traseele pentru curieri i a organiza ordinea n care comenzile sunt livrate. Astfel, att
clientul ct i furnizorul pierd bani i timp preios.
Evoluia vieii sociale se bazeaz din ce n ce mai mult pe calitatea dobndit din diferite
procese, n orice domeniu al dezvoltrii economice i sociale. n cazul firmelor din domeniul
dezbtut, aceasta const n primul rnd n calitatea comercial a unui produs i capacitatea unui
serviciu de a satisface cerinele consumatorilor. Necesitatea unui software specializat pe
planificarea traseelor i gestionarea drumului parcurs de un ofer se remarc att la nivelul
firmelor ce livreaz produse, ct i n firmele de taximetrie. Putem spune, astfel, c aplica ia
dezvoltat poate fi comparat i cu acest domeniu, ntruct oferii de taxi folosesc diferite
produse informatice pentru calculul rutei ce trebuie parcurs pn la destinaie, al timpului alocat
unei curse, etc. La ora actual n acest domeniu exist deja aplica ii mobile prin intermediul
crora un client poate comanda un taxi, poate vizualiza timpul n care acesta va sosi, i poate
transmite diferite mesaje oferului, obinndu-se astfel o interaciune sporit ntre cele doua pr i
implicate. Exemple de astfel de aplicaii sunt Speed Taxi, Meridian Taxi, Clever Taxi, etc., care,
asemntor aplicaiei prezentate n lucrare, menin o relaie strns pe parcursul schimbului de
servicii ntre furnizor i beneficiar. S-a dovedit c odat cu apariia acestor aplica ii procesul de a
comanda un taxi a devenit mult mai facil att pentru client, care nu mai are obliga ia de a efectua
9

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

un apel telefonic i a atepta rspuns, ct i pentru companie, care gestioneaz comenzile primite
mult mai eficient.
Concluzia tras n urma analizrii problemelor ce apar la nivelul firmelor ce se ocup cu
livrarea de produse este aceea c pe msura creterii i dezvoltrii pieei, preten iile
consumatorilor se mresc i gradul de satisfacere a acestora este esen ial pentru o firm ce vrea
s se menin pe pia. Principalii factori care duc la creterea productivitii sunt capacitatea
personalului de a-i face datoria n mod corespunztor, dar i produsele software pe care acesta le
are la dispoziie.

2.3.

Stabilirea funcionalitilor aplicaiei

n urma analizei efectuate, problemele ce apar din cauza utilizrii unui software
necorespunztor pot fi rezolvate prin soluia prezentat n aceast lucrare, solu ie ce i propune
oferirea unui avantaj la nivelul firmelor existente deja pe pia prin mbunt irea prii
operaionale i adugarea de servicii noi. Spre deosebire de produsele software deja utilizate de
oferii companiilor, produse ce nu au capacitatea de a le optimiza i eficientiza munca, prezenta
aplicaie aduce inovaia prin simplul fapt c acesta este destinat dispozitivelor mobile cu sistem
de operare Android, fiind uor de folosit n orice context. Astfel, oferii firmei vor avea
posibilitatea de a urma traseul de livrare generat de aplicaie n timp real, nemaiavnd nevoie de
GPS sau de indicaii despre drum. Totodat, acestora le este permis expedierea instantanee de
notificri, confirmri sau alte evenimente ce pot aprea n legtura cu statusul unei comenzi. n
acest fel este meninut continuu interaciunea dintre client i furnizor, posibilele nelmuriri sau
nemulumiri putnd fi rezolvate pe loc.
Un management eficient pentru firmele ce se ocup de comer online i livrare la
domiciliu presupune att planificarea ntr-un mod optim a rutelor de distribuie ce va cre te
productivitatea companiei, ct i satisfacerea clienilor, care caracterizeaz o astfel de companie
prin respectarea intervalelor orare stabilite i primirea coletelor nedeteriorate. Exista o perioad
n care furnizorii de mrfuri i cei care se ocupau cu transportul acestora erau nevoii sa apeleze
10

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

la ingineri industriali pentru stabilirea rutelor ce trebuiau parcurse i mbuntirea acestora.


Datorit evoluiei tehnologice aceast perioad a disprut, fiind nlocuit de solu ii software
specializate n efectuarea acestor operaiuni.
Dup cum am menionat n capitolele anterioare, prezenta aplicaie mbin ntr-un mod
plcut dou funcionaliti diferite, pentru clieni i personalul firmei. Utilitatea aplicaiei n ceea
ce privete utilizarea acesteia de ctre oferi este foarte sporit, aceasta asigurnd managementul
livrrilor n timp util i fr erori. Principalele probleme pe care aceasta le are n vedere sunt
reducerea costurilor, a distanelor i a timpului de livrare, dar i organizarea eficient a
resurselor. Astfel, fiecare ofer al companiei dispune de un cont individual de utilizator cu care
se va loga i va putea vizualiza comenzile de care se va ocupa n ziua respectiv i rutele
aferente.
Firma i desfoar activitatea n Bucureti, fiind foarte organizat din punct de vedere al
managementului angajailor de care dispune. Fiecare ofer este repartizat pe cte un sector,
acesta avnd alocate comenzile clienilor care au adresa n sectorul respectiv. Aplicaia tie, n
funcie de sectorul n care se afl oferul, ce comenzi s i atribuie. Astfel, un ofer i va ncepe
ziua de munc prin deschiderea aplicaiei, logarea i vizualizarea comenzilor pe care le va livra
n acea zi. Acesta va vizualiza cantitatea total de ap pe care are obligaia de a o ncrca n
main i va putea ncepe livrarea. Aplicaia asigur realizarea celei mai bune rute pentru oferi,
innd cont de toate variabilele: interval orar, ordinea n care se vor livra comenzile astfel nct
timpul i distana parcurs sa fie minime, caracteristicile traficului, etc. n cazul oricrui
eveniment ce poate interveni pe parcursul livrrii, oferul are posibilitatea de a solicita
recalcularea traseului n orice moment. Astfel, n situaia n care un client nu mai pot recep iona
comanda, oferul nu va fi influenat n niciun fel de acest incident, ntruct aplicaia i va
optimiza traseul excluznd adresa clientului respectiv.
Cu ajutorul unei aplicaii android pentru oferi se pot transmite i recep iona date din
teren n timp real, fiind depistate rapid ntrzieri sau probleme ale traficului i reconfigurri.
Majoritatea problemelor de care se loveau n trecut oferii sunt astfel rezolvate, ace tia deservind
un numr ct mai mare de clieni i totodat meninnd un consum de combustibil favorabil,
firma atingndu-i n acest fel obiectivele.
11

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Pe de alt parte, oferii au posibilitatea de a le comunica clien ilor detalii referitoare la


statusul unei comenzi n timp util (comand iniiat, livrat, anulat, etc.), iar finalizarea livrrii
este efectuat tot prin intermediul aplicaiei. Atunci cnd oferul ajunge la destinaie va folosi
aplicaia pentru a-i solicita clientului semntura cu privire la livrarea cu succes a comenzii i
astfel va genera un raport pdf util att pentru client, ct i pentru superiorii oferului, care vor
putea urmri cu exactitate ora la care comanda a fost livrat i evolu ia sa pe parcursul unei zile.
n acest fel manipularea datelor este efecturat cu uurin, iar acestea pot fi editate direct din
soft i exportate n fiiere ce rmn n memoria dispozitivului mobil.
n ceea ce privete modulul destinat clienilor, acetia vor beneficia de o descriere
complet a produselor comercializate de firm, a ofertelor i promoiilor disponibile i a
avantajului de a comanda ap direct la domiciliu. Utilizatorul are posibilitatea de a intra direct n
contul lui din aplicaie, unde va putea plasa o comand i va putea accesa detalii referitoare la
aceasta n timp real.
n concluzie, aplicaia WaterFlow gestioneaz ntreaga activitate a unei firme ce se
ocup cu vnzarea i livrarea de ap plat la domiciliu. Fie c este vorba de calcularea celor mai
bune rute pentru oferi, livrarea comenzilor, evidena activitii angajailor sau satisfacerea
clienilor printr-un mediu facil de a se documenta i comanda produse, WaterFlow ofer o
soluie plcut i eficient. Fiind uor de utilizat, aceasta reprezint un instrument modern prin
care activitatea firmei este organizat, controlat i urmrit ndeaproape, oferind acces la o baz
de date corect i corelat n timp util.
Faptul c firma i echipeaz personalul cu telefoane Android ce utilizeaz aplicaia
WaterFlow i menine un avantaj competitiv la nivel de pia, oferind clienilor si seriozitate i
servicii de calitate. Implementarea acestei aplicaii diminueaz riscul apari iei erorilor, uureaz
transmiterea datelor, toate acestea concretizndu-se n clieni mulumii

12

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

2.4.

Diagrame UML

n urma identificrii nevoilor de dezvoltare a aplicaiei, a problemelor pe care aceasta le


soluioneaz i a cerinelor sistemului se vor contrui diagrame UML, acestea fiind reprezentri
ale sistemului informatic i a prilor sale componente.
Pentru stabilirea funcionalitilor exacte ale aplicaiei se va utiliza d iagrama cazurilor
de utilizare, prin intermediul creia va fi evideniat modul n care utilizatorii aplicaiei
interacioneaz cu aceasta. Aceasta este format din actori (indivizii ce au un rol n utilizarea
aplicaie) i cazuri de utilizare (aciunile produse de actori). Diagrama cazurilor de utilizare
folosit pentru a descrie modul n care este utilizat aplica ia WaterFlow este eviden iat n
Fig. 2.1.
Dup cum am menionat n capitolele anterioare, aplicaia este constituit din dou
module, unul destinat personalului firmei i altul destinat clienilor. Acest lucru este evideniat n
diagrama din Fig. 2.1 prin reprezentarea celor doi actori cu care interac ioneaz sistemul: client,
respectiv ofer. Clientul are posibilitatea de a vizualiza produsele comercializate de companie,
ofertele i promoiile acesteia, iar n cazul n care dorete s achiziioneze ceva se va loga sau
ntregistra cu un cont de utilizator i va putea plasa comanda. n ceea ce prive te oferul, cel care
se ocup cu livrarea comenzilor, acesta are datoria s se logheze n aplica ie cu contul su, s
solicite calcularea traseului pentru ziua respectiv i s nceap livrarea.

13

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Fig. 2.1: Diagrama general a cazurilor de utilizare

n urma analizei aciunilor pe care le pot ntreprinde cele dou pri implicate n utilizarea
aplicaiei, se pot identifica urmtoarele cazuri de utilizare:

Autentificare utilizator: permite introducerea numelui de utilizator i parola, n

vederea accesului la aplicaie.


Comanda: presupune plasarea unei comenzi de ctre clientul autentificat i

vizualizarea acesteia de ctre ofer.


Selecie opiune notificri: reprezint opiunea clientului de a se abona sau nu la
serviciul de notificri, unde va putea primi pe email notificri cu privire la statusul

comenzii sau la ofertele companiei.


Vizualizare servicii companie: reprezint posibilitatea clientului de a vizualiza

serviciile oferite de companie, fr a fi necesar autentificarea.


Vizualizare comenzi: reprezint posibilitatea oferului de a vizualiza lista de comenzi
aferente unei zi de lucru i detaliile despre acestea.
14

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Realizare traseu: permite planificarea traseului pentru livrarea comenzilor i i ofer

oferului toate condiiile pentru a ncepe livrarea.


Generare rapoarte: reprezint posibilitatea oferului de a exporta prin intermediul
aplicaiei un fiier n format pdf cu datele corespunztoare unei comenzi (data i ora
recepionrii, cantitatea de ap, condiiile n care a fost livrat, etc.). Aplica ia i va
solicita destinatarului semntura cu privire la corectitudinea datelor ce urmeaz a fi
exportate i astfel vor fi generate rapoarte pdf utile att pentru client, ct i pentru
firm.

Pentru o bun gestionare i identificare a aciunilor ntreprinse de aplicaie i cei care


interacioneaz cu aceasta se va utiliza diagrama de activitate, ce evideniaz ntregul flux de
lucru. n cazul n care un utilizator are mai multe posibiliti de alegere n cadrul aplica iei
intervine problema unei ci de decizie, de asemenea relatat prin intermediul diagramei de
activitate. Aceasta se reprezint asemenea unei scheme logice ce evideniaz fluxurile create
ntre activiti i se folosete pentru modelarea comportamentului dinamic al sistemului. Fig. 2.2
ilustreaz diagrama de activitate utilizat la analiza aplicaiei WaterFlow.
Diagrama de activitate folosit n aplicaie descrie cazul de utilizare Comanda, care este
unul dintre cele mai importante cazuri de utilizare prezentate. Aceasta evideniaz aciunile
ntreprinse de la plasarea unei comenzi de ctre client la livrarea acesteia de ctre ofer. n
momentul n care un client dorete s achiziioneze produse, acestuia i este solicitat login-ul n
contul su, folosind un username i o parol. Credenialele introduse de acesta vor fi mai apoi
validate de sistem, urmnd acordarea permisiunii clientului de a plasa comanda. n cazul n care
datele introduse nu sunt valide, utilizatorul va fi redirecionat ctre pagina de logare. Este
surprins astfel prima cale de decizie, evideniat n diagrama de activitate prin intermediul unui
romb (Fig. 2.2). n continuare, utilizatorul va avea posibilitatea completrii unui formular de
comand cu datele corespunztoare, iar sistemul va decide validitatea acestuia. Dac datele
formularului sunt corecte comanda va fi nregistrat, n caz contrar utilizatorul fiind redirec ionat
la completarea formularului.

15

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

n ceea ce privete oferul, acesta va primi comanda, va solicita calcularea traseului i va


putea livra comanda. n momentul n care a finalizat livrarea acesta va solicita aplica iei
generarea unui fiier n format pdf cu date corespunztoare comenzii.

Fig. 2.2: Diagrama de activitate

16

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Una dintre cele mai importante diagrame n cadrul analizei i proiectrii este diagrama
de clase, avnd rolul de a structura natura static a claselor.
Din diagrama de clase (Fig. 2.3) se poate observa c:

Un ofer are obligatoriu un cont de utilizator.


Un client are niciunul sau un cont.
Un cont aparine unui singur ofer sau client.
Un client face zero sau mai multe comenzi.
Un ofer are zero sau mai multe comenzi.
O comand aparine unui singur ofer.
Un ofer realizeaz zero sau mai multe livrri.
O livrare aparine unui singur ofer.
Un client beneficiaz de zero sau mai multe livrri.
O livrare aparine unui singur client.
Un ofer efectueaz unul sau mai multe servicii, ce aparin tuturor oferilor
(raportul i detaliile comenzii sunt un tip de serviciu).

Efectund o analiz aspura aciunilor ntreprinse de actorii din lumea real (client i
ofer) ce utilizeaz aplicaia, se observ faptul c aciunile descrise n diagrama de clase respect
cu exactitate comportamentul acestora.

17

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Fig. 2.3: Diagrama de clase

Pentru a face o analiz a modului n care obiectele comunic ntre ele i a eviden ia astfel
interaciunea dintre ele se va folosi diagrama de secven, ce conine obiectele i mesajele
schimbate ntre acestea. ns, pentru ca acestea s poat fi determinate, se va descrie cazul de
utilizare pentru a vedea ce obiecte sunt necesare n implementarea soluiei. Diagrama de secven
are rolul se a uura ntelegerea ordinii n care se desfoar evenimentele.
Pe parcursul dezvoltrii aplicaiei s-a utilizat o diagram de secven (Fig. 2.4) pentru a
evidenia paii parcuri de un ofer n procesul de livrare a unei comenzi. n mod normal acesta
se autentific n aplicaie folosindu-i credenialele personale, urmnd ca sistemul s valideze
datele introduse. Dac datele au fost corecte oferul recep ioneaz confirmarea de logare i
primete acces la comenzile ce i sunt repartizate. Acesta solicit calcularea traseului i l
urmeaz, astfel ncepnd livrarea. De asemenea, ii poate trimite clientului o notificare in ceea ce

18

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

priveste statusul comenzii. Cnd ajunge la destinaie genereaz un raport pdf ce conine detaliile
comenzii i semntura destinatarului.

Fig. 2.4: Diagrame de secven

Toate diagramele UML menionate n etapa de analiz a sistemului informatic au un rol


fundamental pe parcursul dezvoltrii aplicaiei, acestea fiind reprezentrile unui proces sau ale
unui sistem. Ele asigur dezvoltarea corect a aplicaiei, uurnd munca programatorilor.

19

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

3. Proiectarea sistemului informatic


Proiectarea unui sistem informatic presupune elaborarea de soluii logice i eviden ierea
componentelor noului sistem. Pentru a proiecta un sistem informatic este necesar n prealabil
modelarea acestuia, proces ce presupune ntelegerea corect a problemei i eliminarea
informaiilor suplimentare. Dup ce un sistem informatic a fost proiectat, realizarea acestuia se
va putea produce ntr-un mod organizat i eficient, urmnd metodologia de proiectare. [1]
n aceast etap, rezultatele obinute n faza de analiz a sistemului informatic vor fi
detaliate, pentru a nelege exact comportamentul claselor ce alctuiesc aplicaia mobil i a
facilita dezvoltarea funcionalitii. Se va utiliza astfel diagrama de clase detaliat (Fig. 3.1), ce
evideniaz clasele mpreun cu metodele i atributele specifice.

Fig. 3.1: Diagrama de clase detaliat

20

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Proiectarea bazei de date


Folosirea unei baze de date corespunztoare i definirea acesteia ntr-un mod corect i

eficient reprezint un aspect important pe parcursul dezvoltrii i utilizrii aplica iei. Pentru
eliminarea diverselor anomalii ce pot aprea n utilizarea unei baze de date i asigurarea
performanei acesteia se va recurge, n prim faza, la etapa de proiectare a bazei de date. Avnd
n vedere faptul c n utilizarea aplicaiei WaterFlow se folosesc date dintr-o baz existent,
dac acestea nu sunt stocate conform normelor pot aprea numeroase probleme n momentul
prelucrrilor efectuate de sistem. De exemplu duplicarea datelor sau pierderea de informa ii pot
duce la planificarea unei rute greite pentru ofer, fenomen ce va genera nemulumirea clienilor
i irosirea resurselor companiei.
n procesul de proiectare a bazei de date se va analiza scopul aplicaiei i modul n care
aceasta va fi utilizat. Astfel, n aceast etap se vor identifica actorii participani i ac iunile
ntreprinse de acetia, rezultnd tabelele i cmpurile coloanelor din baza de date.
Folosindu-se de diagramele UML i datele obinute n urma efecturii etapei de analiz a
sistemului informatic, proiectarea bazei de date se va realiza prin proiectarea componentei
conceptuale, logice i fizice.
Proiectarea conceptual reprezint crearea unui model al datelor ce vor fi folosite n
aplicaie n aa fel n ct acesta s nu depind de resursele fizice ale sistemului. Aceasta are mai
multe etape: se vor identifica entitile i relaiile dintre acestea i se vor determina atributele,
cmpurile, cheile, etc.
Identificarea entitilor
Efectund o analiz asupra activitilor ce definesc aplicaia se poate remarca faptul c
principalele instane utilizate sunt reprezentate de ofer, client, comanda ce asigur interac iunea
ntre cei doi i adresa destinatarului, ntotmindu-se astfel traseul pentru ofer. n asa fel se vor
identifica entitile din baza de date, afiate in Fig. 3.2.

21

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

n baza de date vor exista i entiti ale cror instane nu depind de existena altor
instane, acestea numindu-se entiti independente. n Fig. 3.2 acestea sunt reprezentate cu
culoarea verde, n timp ce entitile dependente sunt galbene.

Fig. 3.2: Identificarea entitilor din baza de date

Definirea relaiilor dintre entiti


Entitile identificate n Fig. 3.2 interacioneaz ntre ele, ducnd astfel la producerea
unor legturi prezentate n Fig. 3.3. Fiecare tabel corespunztoare clasei ce este implicat n
asociere este nsoit de multiplicitate, descriind n acest fel legtura dintre entit i. De exemplu,
este evident faptul c un client poate efectua mai multe comenzi, n timp ce o comand poate
aparine doar unui client.

22

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Fig. 3.3: Definirea relaiilor dintre entiti (Diagrama Entitate-Asociere)

Identificarea atributelor entitilor i definirea schemei logice


ntruct orice persoan este caracterizat prin nsuiri proprii (nume, prenume, cnp, etc.),
la fel i o entitate din baza de date are asociate anumite atribute. Spre exemplu, datorit faptului
c un utilizator are nevoie de username i parol pentru a se loga n aplicaie i de utilizarea
numelui, prenumelui i email-ului pentru a se nregistra, toate acestea vor deveni atribute ale
entitii Utilizator. Atributele tuturor entitilor pot fi regsite n schema logic a bazei de date
(Fig. 3.4). Aceasta se va realiza cu ajutorul schemei conceptuale, prin intermediul unui proces de
normalizare a datelor.
n urma efecturii diagramei Entitate-Asociere (Fig. 3.4) s-au obinut entit ile bazei de
date, utilizate n aceast etap pentru a fi transformate n tabele. Legturile dintre ele vor fi
realizate cu ajutorul cheilor externe, care vor lipsi ns n cazul entitilor independente.
Baza de date aferent aplicaiei a fost realizat folosind instrumental MySQL Workbench
i limbajul aferent acestuia: MySQL. Aceasta conine ase tabele, fiecare avnd un scop bine
definit i fiind necesar n implementarea funcionalitii aplicaiei.

23

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Tabela UTILIZATOR gestioneaz datele conturilor de utilizator, att pentru soferi ct i


pentru clieni. Aceasta este o tabela independent, ntruct nu conine restric ii de tip cheie
extern.
Tabela CLIENT este dependent de tabela UTILIZATOR, relaie evideniat prin
intermediul cheii externe cod_utilizator. Aceasta gestioneaz clienii aplicaiei, fiind totodat
dependent i de tabela ADRESA_CLIENT care este folosit pentru stocarea adreselor clienilor.
Tabela SOFER este de asemenea dependent de tabela UTILIZATOR, aceast relaie fiind
realizat cu ajutorul cheii externe cod_utilizator_sofer. Scopul acesteia este acela de a gestiona
oferii companiei i informaiile aferente acestora (maina pe care o conduce, sectorul de care
este responsabil, etc.). Sectorul pe care este repartizat un ofer este gestionat tot prin intermediul
unei chei externe, crendu-se astfel o legtura cu tabela SECTOR_SOFER.
Tabela COMANDA este utilizat n procesul de stocare a unei comenzi primite de la
client i repartizarea acesteia unui ofer, n funcie de sectorul n care se afl clientul. Aceasta
reine date referitoare la comand, cum ar fi data i ora la care se asteapt clientul sa primeasc
comanda, totalul comenzii, cantitatea de ap comandat, precum i statusul i descrierea
comenzii. Ea este dependent de tabelele SOFER i CLIENT, prin intermediul cheilor externe
cod_sofer, respectiv cod_client.
ntruct

nu

conin

restricii

de

integritate,

tabelele

ADRESA_CLIENT

SECTOR_SOFER sunt tabele independente. Schema logic aferent aplicaiei este ilustrat n
Fig. 3.4.

24

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Fig. 3.4: Definirea schemei logice

Proiectarea interfeelor utilizator


Pentru un software bine contruit se va ine cont de utilizator i interaciunea acestuia cu

aplicaia. n acest fel, aplicaia i propune definirea unei interfee uor de nteles att pentru
utilizatorii ce dispun de cunotine tehnice, ct i pentru cei care nu au o pregtire profesional n
acest domeniu. Ea folosete imagini sugestive i un vocabular adecvat, modul de utilizare al
acesteia fiind uor de intuit.
n procesul de proiectare a interfeelor, n afar de cunoaterea aciunilor pe care la va
ntreprinde aplicaia este necesar ca proiectantul s tie foarte bine contextul n care va fi utilizat
25

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

aplicaia. n cadrul aplicaiei WaterFlow se pune accent pe consistena interfeelor, controalele


folosite fiind bine structurate, ntr-un mod ce ofer un aspect vizual plcut. Astfel, nc de la
pornirea aplicaiei utilizatorul va avea posibilitatea de alegere a modului n care va continua
utilizarea acesteia: client sau ofer. Acest lucru se dorete a fi implementat prin afiarea a dou
imagini sugestive pentru reprezentarea celor dou entiti menionate. n cazul n care se
continu navigarea n modul ofer, dup autentificare utilizatorul va putea vedea o hart ce
prezint locaia curent a acestuia. Se dorete implementarea unui meniu uor de folosit, aflat pe
acelai ecran cu harta Google Maps, pentru a-i facilita oferului procesul de accesare i livrare a
comenzilor. Fiecare opiune prezent n meniu va avea asociat o interfa prin care utilizatorul
va putea realiza diferite aciuni, evideniate n Fig. 3.5.

Fig. 3.5: Proiectarea interfeei pentru modulul ofer


n ceea ce privete partea destinat clientului, se dorete implementarea unei interfee ce
prezint ntr-un mod atractiv produsele comercializate de firm i incnt vizual utilizatorul.
Totodat acesta va avea acces la ecrane destinate autentificrii, nregistrrii i plasrii comenzii.
Acestea au fost proiectate prin intermediul schemei prezente in Fig. 3.6.

26

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Fig. 3.6: Proiectarea interfeei pentru modulul client


n procesul de implementare a interfeelor se va ine cont i de culorile utilizate, pentru a
scoate n eviden anumite informaii i a asigura o continuitate la nivel cromatic. Totodat,
informaiile de acelai tip vor fi grupate, avnd scopul de a focaliza atenia utilizatorului.

27

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

4. Implementarea sistemului informatic


4.1.

Tehnologii utilizate

Funcionalitile aplicaiei WaterFlow au fost implementate cu ajutorul unor tehnologii


specifice, menite s permit scrierea eficient de cod i s faciliteze realizarea aplica iei. Avnd
n vedere faptul c s-a optat pentru realizarea unei aplicaii mobile destinate dispozitivelor
Android, s-au folosit tehnologii ce pot fi integrate cu aceast platform.

o Sistemul de operare Android


Android este un sistem de operare destinat dispozitivelor mobile, ce ini ial a fost
dezvoltat de Google, dup care de Open Handset Alliance. Acesta a fost lansat n anul 2007,
iar n 2008 a fost scos pe pia primul smartphone cu acest sistem de operare, care la nceput
avea ns foarte multe lipsuri. Treptat, au aprut update-uri la varianta iniial, iar n scurt timp a
reuit s ating succesul din zilele noastre. n ultima perioad, datorit faptului c Android este
un sistem open source, acesta a devenit foarte popular, numrul utilizatorilor de smartphoneuri cu sistem de operare Android crescnd considerabil. ntruct aplicaiile mobile sunt cele care
se fac remarcate pe piaa dispozitivelor mobile, Android iese n eviden prin faptul c o aplica ie
creat conform API-ului Android poate funciona pe o multitudine de smartphone-uri pe care este
instalat acest sistem de operare. [6]
Platforma ofer dezvoltatorilor posibilitatea de a scrie cod n limbajul de programare
Java, sistemul de operare fiind bazat pe biblioteci Java i pe o versiune de Linux modificat. n
Fig. 4.1 este prezentat arhitectura sistemului de operare Android, ce este alctuit din cinci
seciuni grupate pe patru niveluri: nucleul Linux, bibliotecile, motorul Android i cadrul pentru
aplicaii.
n nucleul Linux se afl driver-ele pentru componentele hardware, bibliotecile conin
codul care implementeaz funcionalitile sistemului, iar motorul Android are rolul de a rula

28

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

aplicaiile. Sistemul ofer programatorilor diverse funcionaliti ce pot fi utilizate n aplicaii,


acestea fiind evideniate prin intermediul cadrului de aplicaii.

Fig. 4.1: Arhitectura Android


Surs: https://en.wikipedia.org/wiki/Android_(operating_system)

o Android Studio
IDE-urile folosite la ora actual pe pia pentru dezvoltarea de aplicaii Android sunt
numeroase, ns dintre acestea de fac remarcate Android Studio i Eclipse IDE.
Pentru aplicaia WaterFlow am ales utilizarea IDE-ului Android Studio, ntruct acesta
dispune de mai multe faciliti pentru performana sistemului, code refactoring i instalarea
mediului n care se va lucra, fiind IDE-ul oficial pentru crearea de aplicaii mobile. Un alt avantaj
al acestuia este c poate rula pe mai multe sisteme de operare, existnd cte o versiune pentru
Windows, Mac, Linux, dezvoltarea de aplicaii mobile Android devenind astfel accesibil tuturor
programatorilor. Pentru ca Android Studio s poat fi utilizat este necesar instalarea n prealabil
pe sistemul de calcul a Java Development Kit (JDK).

29

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Android Studio a permis dezvoltarea aplicaiei WaterFlow, includerea n proiect a


animaiilor i imaginilor, utilizarea API-urilor Google Maps pentru planificarea traseelor,
aplicaia finalizndu-se cu o interfa prietenoas i o funcionalitate corect.

o MySQL Workbench

My SQL este un sistem de gestiune a bazelor de date relaionale, produs de compania


suedez MySQL AB i distribuit sub Licena Public General GNU. [2] O baz de date
reprezint o colecie de date ce are rolul de a manipula i prelucra datele gestionate n cadrul
aplicaiei. Prin prelucrarea datelor se face referire la operaiile de introducere, actualizare,
tergere i interogare a datelor. n cazul prezentei aplicaii, din necesitatea pstrrii informa iilor
ce caracterizeaz activitatea companiei, s-a utilizat o baz de date MySQL.
MySQL Workbench este un instrument de gestiune a bazelor de date, care integreaz
dezvoltarea i administrarea acestora i care i uureaz utilizatorului procesul de creare i
ntreinere a unei baze de date. Acest intrument are numeroase funcionalit i, printre care se
numr posibilitatea de a genera diagrame ER (Entity Relationship), exportul i importul de
baze de date, funcii ce ajut la proiectarea bazei de date, administrarea bazelor de date, etc. [7]
n cadrul produsului dezvoltat, gestionarea datelor referitoare la entitile din lumea real
ce particip la utilizarea aplicaiei este realizat prin intermediul unei baze de date rela ional, ce
conine cte o tabel pentru stocarea informaiilor fiecrei entiti (ofer, client, comand,
utilizator, etc.).
WampServer este un produs software destinat utilizrii pe sistemul de operare Microsoft
Windows, ce conine serverul web Apache, OpenSSL pentru suport SSL, baze de date MySQL i
limbajul de programare PHP. Cea mai important parte a server-ului Wamp este pachetul
Apache, folosit pentru a rula server-ul web pe windows. Alturi de MySQL Workbench, acesta
este de asemenea folosit n dezvoltarea aplicaiei WaterFlow. Acest server permite conectarea
la workbench, aplicaia putnd astfel s manipuleze datele din baza de date.

30

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

O baz de date realizat corespunztor ofer acces la informaii concrete, actualizate.


ntruct gestionarea corect a unei baze de date este esenial n dezvoltarea unui sistem
informatic complex, MySQL Workbench i Wamp Server reprezint o parte din instrumentele
utilizate pe parcursul dezvoltrii aplicaiei actuale.

o Eclipse IDE i servii Rest


Eclipse este un mediu de dezvoltare integrat, open-source, folosit de ctre programatori
pentru crearea de produse software scrise n general n limbajul de programare Java. Cu ajutorul
unor plug-in-uri specifice, Eclipse permite i dezvoltarea de aplicaii n alte limbaje, cum ar fi
PHP, C, C++, Python, etc.
Eclipse particip la dezvoltarea aplicaiei WaterFlow prin furnizarea unui mediu folosit
pentru gestionarea comunicrii dintre aplicaie i baza de date, prin intermediul serviciilor REST.
REST (Representational State Transfer) este un standard web ce folose te protocoale HTTP
pentru accesul la date. Metodele HTTP utilizate de obicei n arhitectura bazat pe REST sunt
GET (asigur accesul la o resurs), PUT (folosit pentru a crea o nou resurs), DELETE (se
ocup cu stergerea unei resurse), POST (utilizat pentru a actualiza o resurs existent sau a crea
una nou) i OPTIONS (folosit pentru a efectua operaii asupra unei resurse).
n cazul de fa, sunt utilizate n special metodele GET, pentru a avea acces la datele
aferente unei comenzi din baza de date, pentru a verifica dac utilizatorul ce dore te s se
logheze are deja un cont de utilizator n baza de date, ct i pentru alte interogri de recuperare a
datelor din baz i POST, pentru a introduce utilizatori noi n baza de date, comenzile aferente i
alte date referitoare la adresa clientului, detalii cu privire la comanda acestuia, etc.
Un serviciu web este o colecie de standarde i protocoale folosite pentru a schimba date
ntre aplicaii i sisteme. Aplicaiile software scrise n diferite limbaje de programare pot utiliza
servicii web pentru a transmite date prin intermediul reelei (ex. : Internet). n situaia aplicaiei
de fa, serviciile web sunt folosite pentru a asigura comunicarea dintre aplicaie i baza de date
MySQL prin metode HTTP. Funcionalitatea necesar serviciilor web este implementat cu
ajutorul mediului de dezvoltare Eclipse.

31

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Aadar, independent de funcionalitatea aplicaiei implementat n Android Studio este


configurat un proiect Maven n Eclipse pentru realizarea serviciilor web i maparea entitilor
din baza de date n clase Java. Maven este un sistem de build i management al proiectelor, scris
n Java, ce face parte din proiectele gzduite de Apache Software Foundation. [3] Acesta este
extrem de util deoarece descarc dinamic bibliotecile Java utilizate n proiect, situate n diferite
repository-uri. Astfel, includerea manual a acestora este nlocuit cu men ionarea unor
dependine n fiierul specific unui proiect Maven, pom.xml. Un exemplu de utilizare al unei
dependine Maven este prezent n Fig. 4.2.

Fig. 4.2: Exemplu de dependin maven inclus n proiect

n figura de mai sus, este inclus n proiect framework-ul Jersey, folosit pentru a dezvolta
servicii web n Java. Acesta conine mai multe componente, printre care Core Server (utilizat
pentru a crea servicii Rest folosind adnotri), Core Client, suport JAXB i JSON.
Datele obinute prin servicii Rest sunt folosite n continuare n Android pentru
dezvoltarea funcionalitilor aplicaiei, accesul la acestea obinndu-se prin apelul serviciilor
Rest create n Java. Apelul unui serviciu este efectuat printr-un URI (Uniform Resource
Identifier), care este un string de caractere folosit pentru a identifica o resurs. Forma cea mai
comuna a unui URI este un URL (Uniform Resource Locator), asemntor Fig. 4.3.

Fig. 4.3: Exemplu URL pentru apel serviciu Rest

Clientul i server web comunic ntre ei prin mesaje. Clien ii fac o cerere de
identificare a resurselor ctre server, acesta o proceseaz i i trimite napoi un rspuns.
32

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Odat ce resursa a fost identificat, aceasta poate fi evideniat n sistem sub forma unor
formate. Cele mai utilizate formate sunt XML i JSON, primul dintre ele fiind folosit pentru
reprezentarea unor resurse mai complexe. n cazul de fa am recurs la JSON (JavaScript Object
Notation) pentru manipularea datelor din aplicaie, acesta fiind o alternativ mai uoar de folosit
dect XML. Formatul JSON este identic din punct de vedere sintactic cu codul utilizat pentru
crearea obiectelor JavaScript.
REST i solicit fiecrei resurse sa aib cel puin un URI, a crui sarcin este s identifice
resursa sau colecia de resurse. n exemplul din Fig. 4.3 resursa este reprezentat de comand, iar
parametrul sector=6 are rolul de a aplica o constrngere interogrii ce ruleaz n spatele
serviciului, i anume de a afia toate comenzile a cror adres se afl n sectorul ase. Astfel, n
funcie de sectorul n care este alocat oferul ce utilizeaz aplicaia, acestuia i vor fi repartizate
comenzile de care se va ocupa n ziua respectiv.
Serviciile REST utilizate n aplicaie vor rula cu ajutorului server-ului Apache Tomcat, un
server web ce implementeaz mai multe specificaii Java EE (Enterprise Edition) printre care
WebSocket, Java Servlet, JavaServer Pages, etc. Tomcat este adesea utilizat n dezvoltarea
aplicaiilor web Java.

o Alte tehnologii folosite


Google Maps Android API:
Pentru implementarea hrilor Google Maps n aplicaie i planificarea traseelor oferilor
s-a folosit Google Maps Android API. Acesta permite folosirea unei hr i personalizate pentru
aplicaia Android dezvoltat i crearea de diferite obiecte pe hart : cldiri 3D, imagini specifice
pentru reprezentarea punctelor de destinaie, etc. [4] Totodat, permite vizualizarea hrii ca
imagine din satelit sau imagine stradal. Android API este folosit mpreun cu alte API-uri
Google pentru realizarea pe hart a traseului pe trebuie sa l urmeze un ofer, pentru estimarea
numarului de km parcuri de un ofer pe zi i a timpului necesar livrrii. Printre acestea se

33

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

enumer Google Maps Distance Matrix API, Google Maps Geocoding API i Google Maps
Directions API.
API-ul Distance Matrix este utilizat pentru estimarea timpului i a distanei folosite
pentru evidena activitii unui ofer. Acestea sunt calculate n funcie de ruta care trebuie
parcurs. Api-ul permite, de asemenea, specificarea modului de transport pentru care se dore te
calcularea indicatorilor: se poate alege modul de transport n comun, cu autoturismul sau
pietonal.
API-ul Directions este folosit pentru a gsi cea mai bun rut necesar oferului n
drumul ce trebuie parcurs pentru a livra fiecare comand. Calcularei rutei este efectuat pe baza
punctelor de destinaie ce reprezint adresele clienilor. Folosind acest Api, rutele se pot calcula
din punct de vedere al ofatului, plimbatului sau mersului cu bicicleta. Pentru calcularea acestora
este necesar efectuarea unui request http ctre server i ateptarea rspunsului, ce va avea un
format JSON din care vor fi extrase datele necesare. Url-ul request-ului este un string ce poate
conine mai muli parametri, printre care punctul de origine al plecrii, punctul de destina ie,
punctele intermediare, modul de mers, etc. La aplicaia WaterFlow este utilizat parametrul
optimize:true, ce optimizeaz traseul astfel nct oferul s ajung la fiecare adres o singur dat
i suprafaa parcurs s fie minim.
API-ul Geocoding se ocup cu convertirea adreselor (oras, strad, numr) n coordonate
geografice. Avnd n vedere faptul c n cazul aplicaiei WaterFlow adresele sunt reprezentate
n baza de date exact aa cum sunt introduse de ctre clieni, respectiv prin Ora, Strada,
Numr, este necesar transformarea acestora n coordonate geografice i astfel apare utilitatea
api-ului Geocoding.
Spring pentru Android
n Android, Spring este un framework ce ofer aplicaiilor mobile numeroase
funcionaliti. n cazul de fa acesta este folosit pentru consumarea serviciilor Rest ce
returneaz un JSON. Framework-ul ofer posibilitatea parsrii json-ului i maparea direct a
cmpurilor acestuia pe clasele corespunztoare existente n proiect. Spring furnizeaz o clas
template denumit RestTemplate ca are rolul de a mapa rspunsul json-ului pe un obiect Java,
34

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

fiind printre cele mai importante clase ale acestei biblioteci. Aceasta utilizeaz o bibliotec
specific Android HTTP client pentru request-urile http pe care le efectueaz. nglobeaz, de
asemenea, mai multe obiecte ce faciliteaz prelucrarea datelor obinute. [5]

Butter Knife
Butter Knife este o bibliotec ce poate fi folosit n Android pentru a instan ia mai u or
view-urile existente n aplicaie. Pentru a nu mai fi nevoit sa foloseasc ntotdeauna metoda
findViewById() specific acestei operaii, un utilizator poate recurge la utilizarea acestei
biblioteci. Prin intermediul adnotrilor aceasta uureaz considerabil munca unui programator
prin evitarea repetiiei de cod i economisirea de timp.

4.2.

Arhitectura aplicaiei

Funcionalitatea aplicaiei WaterFlow este implementat folosind dou medii de


dezvoltare diferite, Eclipse i Android Studio, ce asigur partea de gestionare a bazei de date,
respectiv dezvoltare a funciilor i operaiilor aplicaei i a interfeelor cu utilizatorul. Astfel,
aplicaia prezentat poate fi caracterizat ca fiind o aplicaie cu arhitectur client/server.
Arhitectura client/server se bazeaz pe faptul c fiecare calculator sau proces dintr-o reea
poate fi fie client, fie server. n acest fel un client poate reprezenta calculatorul de pe care un
utilizator folosete aplicaia i care are nevoie de informaii pentru a efectua diferite opera ii.
Datele necesare funcionrii aplicaiei vor fi preluate de pe un server. n cazul de fat calculatorul
client este reprezentat de dispozitivul de pe care este folosit aplicaia i care totodat prezint
interfaa cu utilizatorul. n partea de client sunt efectuate de asemenea calculele i algoritmii
necesari funcionrii aplicaiei i recepionarea resurselor din baza de date.
Implementarea prii de client a aplicaiei s-a realizat n Android Studio, aceasta constnd
n crearea interfeelor ce prezint utilizatorilor informaii ntr-un mod stilizat i prietenos,
35

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

preluarea datelor comenzilor plasate de client i asigurarea corect a interaciunii dintre aplicaie
i utilizator. Totodat, sunt implementate metode ce descriu regulile afacerii i modul n care
trebuie sa reacioneze aplicaia n diferite situaii.
n ceea ce privete calculatorul server, el este reprezentat de sistemul de pe care a fost
dezvoltat aplicaia, ocupndu-se de gestionarea accesului la baza de date. Pe parcursul folosirii
aplicaiei, un utilizator are nevoie de anumite date, poate introduce n sistem informa ii proprii
sau poate modifica date deja existente, lucruri ce se afl n responsabilitatea pr ii server a
sistemului.
O imagine de ansamblu a noiunii de arhitectur client/server este evideniat n Fig. 4.4.

Fig. 4.4: Arhitectura client/server


Sursa: http://imasters.expert/rest-architecture-model-definition-constraints-benefits/

Arhitectura client/server este destinat n general aplicaiilor ce asigur comunicarea cu


baza de date prin servicii Rest, fiind astfel necesar aplica iei WaterFlow. n acest fel
consumatorul serviciului oferit nu are nicio ndatorire referitoare la comunicarea cu baza de date,
gestiunea memoriei, etc., iar server-ul funcioneaz independent de interfa i partea de funcii i
algoritmi.
36

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Principalul concept pe care se bazeaz aceast arhitectur presupune comunicarea dintre


client i server. Pentru stabilirea interaciunii dintre cele dou pri un server ateapt o cerere din
partea clientului, efectueaz ceea ce i se cere i ntoarce un rspuns.

4.3.

Modul de implementare a aplicaiei

Partea destinat server-ului


ntruct aplicaia dispune de o arhitectur client/server, partea alocat server-ului este
implementat cu ajutorul mediului de dezvoltare Eclipse, avnd ca scop efectuarea opera iilor de
prelucrare a datelor stocate ntr-o baz de date relaional MySQL. Acesta asigur o comunicare
continu ntre aplicaie i baza de date.
Fiecare tabel din baza de date are asociat o clas Java specific, utilizat pentru
maparea datelor n obiecte i utilizarea lor n viitoarele operaii din cadrul aplica iei. Pentru
realizarea conexiunii cu baza de date se utilizeaz un obiect de tip Connection astfel:
public static Statement getStatement() throws Exception {
try {
String connectionURL = "jdbc:mysql://localhost:3306/licenta";
Connection connection = null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = DriverManager.getConnection(connectionURL, "root","");
return connection.createStatement();
} catch (Exception e) {
throw e;
}
}

Metoda prezentat returneaz un obiect de tip Statement ce va fi mai apoi utilizat pentru a
executa integorri pe baza de date. De fiecare dat cnd este necesar utilizarea datelor din baz
se cere n prealabil conexiunea la aceasta.
Acest modul al aplicaiei are scopul de a gestiona schimbul de date dintre aplicaie i
baza de date, lucru realizat prin intermediul serviciilor web de tip Rest. De exemplu, n cazul
prelurii tuturor comenzilor destinate unui ofer n funcie de sectorul de care acesta este
37

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

responsabil, serviciul web va face un apel ctre baza de date pentru obinerea acestora printr-o
metod de tip GET. Serviciul va fi apelat de ctre aplicaie dup logarea oferului, n momentul
n care acestuia i vor fi prezentate comenzile din ziua respectiv.

Implementarea serviciului web descris arat astfel:


@GET
@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
@Path("list")
public List<Comanda> list(@QueryParam("sector")String sector) throws Exception {
try {
ResultSet rs = Database.getStatement().
executeQuery("select c.cantitate_comandata, c.data_comanda,
c.ora_comanda, c.total_comanda, c.status_comanda, cl.nume, cl. prenume,
cl.telefon, cl.companie, a.oras, a.strada, a.numar_strada, a.sector from
comanda c join sofer s on s.cod_sofer=c.cod_sofer join client cl on
cl.cod_client = c.cod_client join adresa_client a on a.cod_adresa =
cl.cod_adresa where s.cod_sector=a.sector and s.cod_sector = " + "'" + sector
+ "'");

return ComandaDAO.getComenzi(rs);
} catch (SQLException se) {
se.printStackTrace();
} catch (NamingException ne) {
ne.printStackTrace();
}
return new ArrayList<Comanda>();

Dup cum se poate observa, serviciul returneaz o list de comenzi, fiecare comand
coninnd datele corespunztoare acesteia ce au fost preluate din baza de date printr-o interogare
SQL. Lista va fi returnat n format JSON, astfel nct atunci cnd clientul va apela serviciul va
putea parsa acest format pentru a beneficia de informaiile dorite. S-a ales utilizarea serviciilor
Rest pentru a asigura interaciunea aplicaiei cu baza de date ntruct acestea sporesc performana
sistemului i faciliteaz manipularea datelor.
Prin intermediul adnotrii @QueryParam serviciul prezentat folosete parametrul sector
pentru a aplica o restricie n procesul de selectare a comenzilor, i anume faptul c se vor
recupera doar comenzile aflate n acelai sector cu oferul. Se pot remarca, de asemenea,
adnotrile specifice framework-ului Jersey, ele oferind funcionalitate serviciului.
38

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Toate datele corespunztoare oferilor, clienilor i comenzilor sunt stocate n baza de


date, accesul la acestea fiind implementat cu ajutorul serviciilor Rest.
Pentru a fi permis conectarea la baza de date i transmiterea informa iilor ctre client a
fost necesar crearea unor configurri n proiect. Clasele ce sunt folosite pentru implementarea
serviciilor Rest trebuie declarate n fiierul web.xml aferent proiectul, asemntor Fig. 4.5. n
cazul de fa s-a utilizat realizarea tuturor acestor clase ntr-un pachet separat, pentru organizarea
proiectului i clasificarea claselor n funcie de funcionalitatea oferit. De asemenea, toate aceste
operaii sunt suportate de un container web oferit de framework.

Fig. 4.5: Fiierul web.xml aferent proiectului

Aadar, framework-ul Jersey este responsabil de funcionalitatea unui serviciu Rest,


asigurnd trimiterea corect a informaiilor ctre client i asocierea dintre cmpurile tabelelor din
baza de date i obiectele Java.

Partea destinat clientului


Implementarea prii de client a aplicaiei este realizat folosind mediul de dezvoltare
Android Studio. Va fi creat un proiect nou, iar Android Studio va realiza automat un fiier utilizat
pentru configurarea proiectului. Acesta este intitulat build.gradle i are rolul de a gestiona

39

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

configurarea sistemului, stabilind versiunea de Sdk1 utilizat, pachetele din cadrul proiectelor i
bibliotecile ce pot fi incluse. Gradle este un sistem folosit n dezvoltarea proiectelor n Android
Studio, bazat pe Java Virtual Machine (JVM) ce permite scrierea propriului cod n Java i
utilizarea acestuia n Android Studio. Unul dintre punctele forte ale acestui sistem este faptul c
acesta permite adugarea de biblioteci surs ntr-un proiect deja existent. Astfel, dac un
utilizator dispune de o bibliotec ce ar putea s l ajute la implementarea anumitor func ionalit i
n Android, acesta o poate include n proiect prin intermediul fiierului build.gradle. Acesta
definete un proiect i funcionalitatea acestuia i totodat se ocup de compilarea codului surs.
Pentru dezvoltarea aplicaiei WaterFlow au fost incluse n proiect biblioteci precum
Butter Knife, iText, Rest Template, Http Components, Google Play Services, Jackson.
o Butter Knife i uureaz utilizatorului procesul de instaniere a view-urilor
existente n proiect bazndu-se pe utilizarea de adnotri. Un exemplu al folosirii
acestuia este:
@InjectView(R.id.input_email) EditText emailText;

n acest fel este instaniat un control de tip EditText utilizat de ctre client n
momentul logrii, pentru a-i introduce email-ul.
o iText este o bibliotec ce permite realizarea i manipularea fiierelor Pdf. Ea este
utilizat pentru generarea de rapoarte privind detaliile unei comenzi, astfel:
Document doc = new Document();
try {
String path =
Environment.getExternalStorageDirectory().getAbsolutePath() +
"/droidText";
File dir = new File(path);
if(!dir.exists())
dir.mkdirs();
File file = new File(dir, "raport.pdf");
FileOutputStream fOut = new FileOutputStream(file);
PdfWriter.getInstance(doc, fOut);
//open the document
doc.open();

1 Sdk (Software Development Kit): permite dezvoltatorilor crearea aplicaiilor pentru platforma
Android
40

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Paragraph preface = new Paragraph();


HeaderFooter pdfFooter = new HeaderFooter(footerText, false);
doc.setFooter(pdfFooter);

Obiectele de tip Document, Paragraph, HeaderFooter, PdfWriter sunt specifice


bibliotecii iText, acestea ocupndu-se cu crearea i scrierea documentului Pdf generat de
aplicaie. Dup cum se poate observa, se ncepe cu crearea unui document, deschiderea acestuia
i completarea cu informaiile nesesare, finalizndu-se cu nchiderea documentului. Biblioteca
ofer funcii specifice ce permit manipularea instanelor, fiind foarte util n acest context.
o Rest Template este o bibliotec destinat apelrii unui serviciu web Rest dezvoltat
n partea de server i recepionarea datelor oferite de acesta. Prin intermediul
acesteia datele primite se vor asocia cu clasa Java aferent.
o HttpComponents este o bibliotec utilizat pentru realizarea comunicrii ntre
client i server prin intermediul serviciilor http.
o Biblioteca Jackson asigur procesarea datelor n format JSON, fiind important
pentru parsarea rspunsului serviciilor web.
o Google Play Services conine interfeele necesare pentru trasarea pe hart a
traseului destinat oferului. Pentru a utiliza serviciile oferite de API-ul Google
Maps este necesar generarea unei chei unice pentru aplicaia dezvoltat. Astfel
aceasta va beficia de ultimele versiuni ale serviciilor oferite de Google.

Construirea aplicaiei WaterFlow este realizat prin organizarea eficient a proiectului,


acesta fiind mprit n pachete ce conin diferite clase, fiecare clas avnd propriul scop i o
funcionalitate corect implementat.
n procesul dezvoltrii de aplicaii mobile, Android ofer conceptul de activitate, aceasta
fiind o component a aplicaiei ce furnizeaz ecranele cu care interacioneaz utilizatorii.
Fiecrei activiti i este destinat o fereastr n care se va contura interfaa cu utilizatorul i o
clas Java destinat implementrii funcionalitii, ea avnd un ciclu de via prin care sunt
implementate metode de creare, oprire, distrugere, schimbare a strii, etc. Modul n care

41

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

utilizatorul interacioneaz cu aplicaia este implementat prin diverse metode din cadrul
aciunilor.
Aplicaia se deschide prin rularea unei activiti ce are rolul de a-i oferi oferului
opiunile prin care poate accesa modulul dorit: partea destinat oferului sau partea destinat
clientului. Astfel, n funcie de alegerea acestuia, asigurarea continuitii ntre activiti este
implementat prin utilizarea unui obiect de tip Intent, astfel:
Intent intent = new Intent(getApplicationContext(), ClientActivity.class);
startActivity(intent);

Controalele prin care este declanat aciunea de trecere la activitatea urmtoare sunt
reprezentate de dou imagini sugestive, una destinat oferului iar cealalt clientului. Pentru
modul ofer primul lucru care este prezentat este autentificarea utilizatorului. Un ofer nu
poate avea acces la aplicaie dect dup ce acesta s-a logat n contul su ce este stocat n baza de
date. Aadar acestuia i este prezentat un formular de autentificare ce i solicit completarea
email-ului i a parolei. Procesul de verificare a credenialelor introduse de utilizator i acordarea
accesului la aplicaie se realizeaz prin apelarea unui serviciu web creat n prealabil n partea de
server a aplicaiei. Acesta va prelua datele introduse i va verifica dac acestea exist n baza de
date, returnnd astfel true sau false. Dac rspunsul acestuia este pozitiv (true) oferul va putea
continua utilizarea aplicaiei, avnd acces la comenzile primite. n caz contrar acesta va primi un
mesaj prin care va fi noticat n privina posibilitii de a fi introdus gresit datele pentru conectare.
Implementarea acestei funcionaliti s-a realizat astfel:
public void invokeLoginWS(RequestParams params){
progressDialog.show();
AsyncHttpClient client = new AsyncHttpClient();
client.get("http://192.168.1.5:8080/RestServicesLicenta/rest/user/check", params,
new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode,
org.apache.http.Header[] headers,
String response) {
progressDialog.hide();
try {
// JSON Object
JSONObject object = new JSONObject(response);
if (object.get("status") == true) {
sectorSofer = object.getInt("sector");
Toast.makeText(getApplicationContext(), "Succes login!",
Toast.LENGTH_LONG).show();

42

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

// il va trimite la harta
Intent intent = new Intent(getApplicationContext(),
MapsActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
else {
Toast.makeText(getApplicationContext(), "Username sau parola
incorecte!", Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
Toast.makeText(getApplicationContext(), "Error Occured [Server's JSON
response might be invalid]!", Toast.LENGTH_LONG).show() }

Metoda prezentat utilizeaz un obiect de tip AsyncHttpClient gestionat de biblioteca


Http Components ce este utilizat pentru realizarea cererii ctre server, care conine i parametrii
reprezentai de email i parole, date ce trebuie verificate n baz. Aceti parametri sunt trimii cu
ajutorul obiectului de tip RequestParams prezent n antetul funciei. n cazul n care operaia se
va executa cu succes datele recepionate vor fi plasate ntr-un obiect JSONObject ce va fi parsat
pentru a obine rezultatul cererii.
Dup procesul de autentificare un ofer va putea vizualiza harta ca i indic loca ia
curent a acestuia i va avea posibilitatea alegerii dintr-un meniu personalizat a mai multor
opiuni: deconectarea de la aplicaie, vizualizarea comenzilor i a detaliilor aferente, gestionarea
contului su. Pe hart se afl un buton numit ncepe livrarea ce are rolul de a planifica traseul
oferului i a-l evidenia pe hart. La declanarea evenimentului de onClick() asupra acestui
control se va apela urmtoarea metod:
startLivrare.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//set total distance
try {
setKmNumber();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
for (String s : ComandaActivity.destinatiiSofer) {
Address destination = getLatLng(s);
LatLng latLng = new LatLng(destination.getLatitude(),
destination.getLongitude());
coordonate.add(latLng);
//check current location and recalculate rute
LatLng currentLocation = new LatLng(location.getLatitude(),
location.getLongitude());
if (currentLocation == latLng) {
coordonate.remove(latLng);

43

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

}
}
String url = getMapsApiDirectionsUrl();
ReadTask downloadTask = new ReadTask();
downloadTask.execute(url);
LatLng currentLocation = new LatLng(location.getLatitude(),
location.getLongitude());
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(currentLocation, 19));
addMarkers();}
});

La rndul ei, aceast metod apeleaz alte funcii ce i ofer oferului instrumentul
necesar pentru desfurarea activitii. oferul va putea vizualiza distana i timpul estimat
pentru livrarea tuturor comenzilor. Acest lucru este efectuat prin metoda setKmNumber(), care
face o cerere http ctre serverul ce furnizeaz informaii specifice Google Maps. Url-ul prin care
este efectuat cererea conine ca parametri suplimentari punctul de plecare i punctul de sosire al
oferului. Drept punct de plecare este luat locaia curent, iar la sfritul activitii acesta se va
ntoarce la depozit, destiaia fiind astfel reprezentat de adresa depozitului. Server-ul va trimite
un rspuns ntr-un format JSON, din care vor fi extrase timpul i distana total.
Comenzile sunt preluate printr-un serviciu web asemntor celui prezentat, care va
primi ca parametru sectorul pe care este repartizat oferul. De data aceasta rspunsul oferit de
server va fi parsat cu ajutorul obiectului bibliotecii RestTemplate astfel:
final String url = "http://192.168.1.5:8080/RestServicesLicenta/rest/comanda/list?
sector=" + LoginCompanyActivity.sectorSofer;
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
Comanda[] comanda = restTemplate.getForObject(url, Comanda[].class);

Se poate remarca utilizatea acestei biblioteci, care tie sa asocieze informa iile primite
din baza de date cu o clasa Java Comanda ce conine ca atribute aceleai atribute ca tabela
comanda din baza de date.
n acest fel adresele comenzilor recepionate vor deveni destinaiile oferilor, acestea
fiind transformate n coordonate geografice, pentru a fi prelucrate n continuare. Pentru aceast
operaie s-a utilizat un obiect LatLng ce stocheaz dou variabile, respectiv latitudinea i
longitudinea unui punct. Acestea vor fi utilizate pentru planificarea traseului, proces ce se
realizeaz tot prin iniierea unei cereri ctre serverul Google Maps. Acesta va conine punctul de
44

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

origine, destinaia, dar i punctele intermediare reprezentate de adresele clienilor. Ruta ob inut
va fi desenat pe hart cu ajutorul unui obiect PolyLineOptions ce este gestionat de o clas
separat ce se ocup cu parsarea obiectului Json. Urmnd indicaiile de pe hart un ofer va putea
ncepe livrarea comenzilor, acesta avnd posibiliatatea ca de fiecare dat cnd d click pe
butonul de ncepere a livrrii s beneficieze de replanificarea traseului, avnd ca punct de origine
locaia curent a oferului.
Meniul disponibil pentru ofer este unul particularizat, realizat prin folosirea unui
Adapter i crearea separat a unei clase necesare stocrii informaiilor despre un element din
meniu (clasa ItemSlideMenu). Acesta poate fi accesat din activitatea pe care se afl i harta, prin
micarea de tragere a ecranului ctre partea dreapt.
Din acest meniu oferul va avea posibilitatea de a alege opiunea de vizualizare a
comenzilor de care este responsabil n ziua respectiv. n momentul n care acesta selectez o
variant din meniu, se va declana automat o alt activitate corespunztoare acesteia. Astfel, la
atingerea butonului Comenzi utilizatorul va fi redirecionat ctre o alt pagin unde va putea
vedea o list cu comenzile primite. Pe fiecare rnd al acesteia se afl detalii privind adresa
clientului, cantitatea de ap comandat i o imagine corespunztoare comenzii. Aceste informa ii
sunt gestionate prin intermediul unei clase Java denumit ItemListRow, ce va permite
implementarea listei.
Pentru a obine informaii suplimentare despre o comand oferul o va selecta din list,
astfel deschizndu-se o alt activitate, denumit ComandaDetaliiActivity. Pe lng detaliile unei
comenzi, aceasta i ofer utilizatorului i posibilitatea de a genera un raport n format Pdf cu date
referitoare la livrare, raport ce va fi semnat de ctre client. Macheta realizat pentru crearea
ecranului acestei activiti este ilustrat n Fig. 4.6. Prin cele trei butoane prezente oferul va
putea recepiona semntura unui client, va putea genera documentul cu informa iile livrrii sau l
va putea vizualiza. Astfel, la declanrea evenimentului de onClick() asupra controlului Button ce
are scopul de a prelua semntura se va folosi o clas denumit Semnatura prezent n activitatea
despre detaliile comenzii. Prin intermediul acestei clase se va implementa un obiect de tip
Canvas ce i va oferi clientului posibilitatea de a se semna cu ajutorul degetului pe ecranul
dispozitivului, operaiune implementat prin suprascrierea metodelor onTouchEvent() i
onDraw().

45

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Butonul Genereaz raport are scopul de a realiza documentul necesar clientului


pentru pstrarea unei evidene a comenzilor i util firmei pentru monitorizarea activitii
oferului. Implementarea funcionalittii oferite este efectuat prin intermediul bibiliotecii
iText descris anterior.
Butonul Deschide raport are rolul de a deschide documentul creat n prealabil prin
cutarea acestuia n memoria dispozitivului. Se utilizeaz un obiect de tip Intent ce este folosit i
pentru trecerea de la o activitate la alta, ns de aceast dat el are rolul de a deschide fi ierul n
format Pdf:
Intent intent = new Intent(Intent.ACTION_VIEW);
String path = Environment.getExternalStorageDirectory().getAbsolutePath() +
"/droidText";
File file = new File(path, "raport.pdf");
intent.setDataAndType( Uri.fromFile(file), "application/pdf" );
startActivity(intent);

Fig. 4.6: Machet ce ofer detaliile unei comenzi

46

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Pentru a spori performana sistemului serviciile web utilizate au fost apelate prin
intermediul unor clase proprii ce extind clasa abstract AsyncTask. Aceasta permite folosirea n
mod eficient a firelor de execuie prin efectuarea n background a unor operaii i publicarea
rezultatelor pe firul principal de execuie. Un task asincron este definit n patru pai, i anume
metodele onPreExecute(), doInBackground(), onProgressUpdate() i onPostExecute(). n cazul
de fa partea ce ine de apelul unui serviciu web este implementat prin suprascrierea metodei
doInBackground() iar folosirea datelor oferite de acesta este realizat prin metoda
onPostExecute(). S-a ales utilizarea task-urilor asincrone deoarece astfel se va reduce timpul de
ateptare al utilizatorului, iar performanele aplicaiei vor crete.
n ceea ce privete clientul, dup selectarea modulului aferent acestuia din pagina de
deschidere a aplicaiei se va iniia o nou activitate. Prin intermediul imaginilor reprezentative i
a diferitelor controale oferite de Android Studio pentru decorarea interfeelor s-a creat un design
prietenos ce i prezint clientului produsele i ofertele firmei. n cazul n care utilizatorul dorete
achiziionarea unor produse va putea plasa comand, la apsarea butonului Plaseaz comanda.
n acest fel va fi redirecionat ctre pagina de logare, ntruct un utilizator va putea plasa o
comand numai dup ce se va autentifica n aplicaie. n cazul n care acesta nu are cont de
utilizator, i va putea crea unul prin intermediul opiunii de nregistrare disponibile n pagina de
login. Implementarea acestor procere se realizeaz tot prin intermediul serviciilor web Rest,
pentru partea de verificrii a email-ului i parolei introduse fiind utilizat un serviciu de tip GET
identic celui din modului pentru ofer i pentru partea de nregistrare un serviciu de tip POST ce
va stoca datele introduse se utilizator n baza de date.
Dupa efectuarea autentificrii un client va accesa un formular de plasare a comenzii
stilizat prin controale de tip EditText particularizate, ce au rolul de a permite utilizatorului
completarea datelor. Dup atingerea butonului de plasare a comenzii, datele identificare se vor
salva n baza de date prin apelarea unui serciu web de tip POST i vor putea fi gestionate n
modulul ofer.

47

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

5. Modul de utilizare al aplicaiei


Ecranul de pornire al aplicaiei WaterFlow conine dou butoane plcut stilizate ce i
ofer utilizatorului posibilitatea de a alege modulul dorit. Astfel, acesta poate continua utilizarea
aplicaiei n mod client sau n mod ofer. Acest ecran este evideniat cu ajutorul Fig. 5.1.

Fig. 5.1: Ecranul de pornire al aplicaiei

48

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

n cazul n care utilizatorul dorete s acceseze produsele oferite de companie sau s


plaseze o comand, acesta va accesa partea de aplicaie destinat clientului, beneficiind de o
imagine de ansamblu a produselor i ofertelor pe care le poate alege. Totodat, acesta are
posibilitatea de a plasa o comand prin intermediul unui formular special ce va fi deschis la
apsarea butonului Plaseaz comanda. Etapele efectuate de un client n procesul de plasare a
comenzii sunt evideniate n Fig. 5.2.

Fig. 5.2: Prezentarea companiei i a produselor oferite

Procesul de plasare a unei comenzi necesit n prim faz autentificarea utilizatorului,


realizat printr-un formular specific, asemntor celui destinat oferilor (Fig. 5.3). n cazul n
care un client nu are cont de utilizator, aplicaia i permite s se nregistreze, astfel avnd acces la
formularul de comand.
Pentru ofer, accesul la aplicaie se poate realiza doar dup ce acesta se autentific,
folosind email-ul i parola corespunztoare. Formularul ce va fi completat n acest proces este
ilustrat n Fig. 5.3.

49

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Fig. 5.3: Ecran utilizat pentru autentificare

Dup ce s-a conectat, oferul va vizualiza pe hart locaia n care se afl i meniul ce i
permite efectuarea mai multor aciuni. n acest fel va accesa comenzile ce i sunt alocate pentru
ziua respectiv i va ncepe livrarea acestora. Butonul ncepe Livrarea (Fig. 5.4) solicit
aplicaiei calcularea celui mai bun traseu, ce ulterior va fi desenat pe hart. Astfel, oferul va
putea ncepe livrarea comenzilor prin urmrirea indicaiilor de pe hart. Dup efectuarea unei
livrri acesta poate solicita replanificarea traseului, proces realizat prin intermediul aceluiai
buton. Att adresele clienilor, ct i destinaia final a oferului sunt reprezentate prin imagini
specifice, indicaiile de drum fiind astfel uor de urmat pentru orice utilizator.

50

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Fig. 5.4: Planificarea traseului pentru ofer

La alegerea opiunii Comenzi din meniul aplicaiei, un utilizator va obine o list a


comenzilor ce trebuie livrate, avnd posibilitatea ca prin selectarea unui element din list s vad
detalii referitoare la comand i s genereze un raport n format Pdf cu acestea. Totodat,
aplicaia permite captarea semnturii clientului ce confirm astfel recepionarea cu succes a
comenzii. Aceste aciuni sunt prezentate n Fig. 5.5, ce evideniaz interfee organizate, menite sa
faciliteze ntregul proces de livrare a unei comenzi.

51

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Fig. 5.5: Gestionarea comenzilor i a detaliilor corespunztoare

Aadar, prin intermediul interfeelor folosite se poate remarca uurina cu care aplicaia
poate fi folosit de ctre orice tip de utilizator i utilitatea acesteia pe pia a companiilor ce se
ocup cu comercializarea i livrarea de produse.

52

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

6. Concluzii
Dezvoltarea aplicaiei mobile WaterFlow a presupus utilizarea noiunilor i
cunotinelor de programare obiect, de creare i gestionare a bazelor de date n limbajul SQL, ct
i de dezvoltare a aplicaiilor mobile ce ruleaz pe sistemul de operare Android. Att efectuarea
proceselor de analiz i proiectare a sistemui informatic ce constituie etape importante pe
parcursul realizrii aplicaiei, ct i implementarea produsului final au nsemnat aprofundarea i
nelegea detaliat a cunotinelor de programare necesare dezvoltrii unei aplicaii mobile i a
interaciunii acesteia cu o baz de date extern.
Realizarea aplicaiei a constituit un proces complex de integrare a mai multor concepte,
fiind gestionate probleme de natur tehnic n ceea ce privete programarea acesteia i aspecte ce
in de partea grafic aferent interfeelor utilizator. Funcionalitatea aplicaiei este dezvoltat n
aa fel nct s faciliteze interaciunea utilizatorului cu aplicaia i modul n care aceasta
rspunde cerinelor beneficiarilor.
Concretizarea funcionalitilor propuse pentru optimizarea procesului de comand i
livrare a produselor a condus la dezvoltarea unui instrument ce i propune a fi util principalilor
actori implicai: clienii i personalul firmei. Planificarea optim a traseelor disponibile pentru
oferi pe parcursul efecturii livrrilor i reducerea timpului alocat plasrii i recepionrii unei
comenzi reprezint beneficii majore oferite de prezenta aplicaie. Totodat, aceasta a permis
realizarea unui context rapid i eficient pentru accesul la date i informaii.
Orice versiune a unei aplicaii mobile permite mbuntiri, n cazul de fa acestea
reprezentnd o serie de funcionaliti suplimentare adugate entitilor participante. n cadrul
propunerilor de dezvoltare ulterioar se pot regsi: oferirea de informaii suplimentare destinate
oferilor, cum ar fi detalii despre starea efectiv a strzilor, pentru a le putea evita pe cele foarte
avariate sau aflate n lucrri de construcie. De asemenea, s-ar putea mbunti timpul de
rspuns al aplicaiei dup plasarea unei comenzi on the fly, prin oferirea unui modul ce va
permite calcularea instantanee a resurselor i timpului necesar livrrii acesteia i trimiterea ei
ctre oferul ce dispune de aceste resurse.

53

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Bibliografie

[1]

I. Lungu, R. Bologa, A.Andreescu, A. Florea, Suport Curs Proiectarea sistemelor


informatice,Disponibil:
http://online.ase.ro/pluginfile.php/127541/mod_resource/content/1/T32-Proiectarea

[2]

%20arhitecturii%20s.pdf
Wikipedia, MySQL, https://ro.wikipedia.org/wiki/MySQL

[3]

Wikipedia, Apache Maven, https://ro.wikipedia.org/wiki/Apache_Maven

[4]

Google Maps APIs, Google Maps Android API, Disponibil:


https://developers.google.com/maps/documentation/android-api/

[5]

Spring

for

Android,

RestTemplate

Module,

Disponibil:

http://docs.spring.io/autorepo/docs/spring-android/1.0.x/reference/html/rest[6]

template.html
P. Pocatilu, I. Ivan (2015), Programarea aplicaiilor Android, Bucureti: Editura
ASE

[7]

Lungu, I. (2005), Baze de Date Oracle Limbajul SQL, Bucureti: Editura AS

54

ACADEMIA DE STUDII ECONOMICE


FACULTATEA DE CIBERNETIC, STATISTIC I INFORMATIC ECONOMIC

Anexa Lista de abrevieri

API
IDE
SDK
JDK
REST
HTTP
JAXB
JSON
URI
URL
XML
JVM
SQL
UML
ERD

Application Programming Interface


Integrated Development Environment
Software Development Kit
Java Development Kit
Representational State Transfer
Hypertext Transfer Protocol
Java Architecture for XML Binding
JavaScript Object Notation
Uniform Resource Identifier
Uniform Resource Locator
Extensible Markup Language
Java Virtual Machine
Structured Query Language
Unified Modeling Language
Entity-Relationship Diagram

55

S-ar putea să vă placă și