scieee Science in your language
[ca] (orig)

Desevolupament d'una app de gestió d'esdeveniments

Abstract

Aquest projecte presenta una solució de software la qual, aprofitant certs sistemes d'esdeveniments ja existents, aconsegueix unificar-los per així poder oferir moltes més opcions als seus usuaris.

Read accessible full text

Desevolupament d'una app de gestió d'esdeveniments

Author: Ramírez Navajón, Ferran
Publisher: Universitat Politècnica de Catalunya
Year: 2019
Source: https://upcommons.upc.edu/bitstream/2117/133406/1/137689.pdf
DESENVOLUPAMENT D’UN SISTEMA
DE GESTIÓ D’ESDEVENIMENTS
T eball de Final de G au
Fe an Ramí ez Na ajón
Da a de la de ensa: 25 d’Ab il de 2019
Di ec o del p ojec e: En ic Mayol Sa oca, Enginye ia de Se eis i Sis emes
d’In o mació
G au en Enginye ia In o mà ica
Especiali a en Enginye ia del So wa e
Resum
Quan s cops has sen i que el poc emps lliu e de què disposes, ha es a mal in e i ? En el
món en el qual i im a ui en dia, la u ina ens man é mol ocupa s, impossibili an -nos amplia
el nos e ce cle d’amics més enllà de o es aquelles pe sones amb qui coincidim al nos e dia a
dia, habi ualmen a la uni e si a o a la eina. Po se que, en a iba el cap de se mana,
inguem emps pe a les nos es a icions, o po se pe a descob i -ne de no es, pe ò no obem
amb qui compa i -les, ja que el nos e ce cle social és mol limi a .
A ui en dia hi ha mol a gen que disposa d’un disposi iu mòbil a l’abas , el mal ús del qual mol s
cops di icul a les in e accions socials eals, ja que ens aïlla de la eali a . Això no ol di que,
en un bon ús d’aques , no es pugui a iba a connec a amb mol íssimes al es pe sones, les
quals enen inquie uds simila s o simplemen poden en iqui la nos a ida social, de mane a
que pod íem compa i mol més que una simple con e sació a a és de la pan alla.
És aques el pun d’in lexió que a que la idea d’aques p ojec e so geixi: connec a pe sones de
di e en s en o ns, les quals poden no eni es a eu e, de mane a que conèixe -se
pe sonalmen no hagués sigu an àcil en una al a si uació, enca a que el e de compa i
a icions les pugui po a a gaudi -les jun es du an el seu emps lliu e mi jançan un sis ema que
els o e eixi aques a an a ge.
Aques p ojec e p esen a una solució de so wa e la qual, ap o i an ce s sis emes
d’esde enimen s ja exis en s, aconsegueix uni ica -los pe així pode o e i mol es més opcions
als seus usua is. D’aques a mane a es olen p omou e o es les ac i i a s de lleu e possibles i
així posa a l’abas de o hom, sense gas a un cèn im, el millo ecu s pe no eni cap excusa
pe pode gaudi , de la millo mane a, del emps de lleu e.
2
Resumen
¿Cuán as eces has sen ido que el poco iempo lib e del que dispones, no ha sido in e ido de
la mejo mane a? En el mundo en el que i imos hoy en día, la u ina nos man iene muy
ocupados, imposibili ándolos amplia nues o cí culo de amigos más allá de odas esas
pe sonas con quienes coincidimos en nues o día a día, habi ualmen e en la uni e sidad o en el
abajo. Puede se que, al llega el in de semana, engamos iempo pa a nues as a iciones, o
quizá pa a descub i alguna nue a, pe o no encon amos con quien compa i las, debido a que
nues o cí culo social es á muy limi ado.
Hoy en día hay mucha gen e que dispone de un disposi i o mó il al alcance, el mal uso del cual
muchas eces di icul a las in e acciones sociales eales, ya que nos aísla de la ealidad. Es o
no quie e deci que, con el buen uso de es e, no se puede llega a conec a con muchas o as
pe sonas, quienes ienen inquie udes simila es a las nues as, o simplemen e pueden
en iquece nues a ida social, po lo que pod íamos compa i mucho más que una simple
con e sación a a és de la pan alla.
Es es e el pun o de in lexión que hace que su ja la idea de es e p oyec o: conec a pe sonas de
dis in os en o nos, las cuales no ienen po qué ene nada que e , de modo que conoce se
pe sonalmen e no hab ía sido an ácil en o a si uación, odo i que el hecho de compa i
a iciones les pueda lle a a dis u a las jun as du an e su iempo lib e median e un sis ema que
les o ezca es a en aja.
Es e p oyec o p esen a una solución de so wa e la cual, ap o echando cie os sis emas de
e en os ya exis en es, consigue uni ica los pa a así pode o ece muchas más opciones a sus
usua ios. De es a mane a se quie en p omo e odas las ac i idades de ocio posibles y así
pone al alcance de odo el mundo, sin cos e alguno, el mejo ecu so pa a no ene ninguna
excusa an e pode dis u a , de la mejo mane a, de nues o iempo lib e.
3
Abs ac
How many imes did you eel like you did no make he mos ou o you ee ime? Nowadays,
ou ou ines keep us oo busy, making i almos impossible o g ow ou social ci cles beyond
hose people who a e p esen in ou daily ou ine, usually ei he a uni e si y o a wo k. Maybe
on he weekend we ha e ee ime o spend on ou hobbies, o o ind new ones, bu we may
no ha e people o sha e hem wi h, because ou social ci cles a e eally limi ed.
The inc easingly widesp ead use o sma phones oday makes social in e ac ions e en mo e
di icul by isola ing use s om eali y. Ne e heless, we can use ou phones o connec wi h
people wi h whom we sha e common likes and in e es s, and e en hose who can jus en ich
ou li es. We could be able o sha e mo e han a simple con e sa ion h ough he sc een.
This is he inspi a ion behind my idea - connec ing people om di e en en i onmen s, allowing
hem o sha e hei hobbies wi h hose hey could no ge o mee du ing hei daily ou ine. This
p ojec o e s a so wa e solu ion which uni ies many al eady exis ing sys ems in o de o o e
many mo e op ions o i s use s. In his way, wi h my sys em I wan o p omo e as much leisu e
ac i i ies as possible by o e ing o e e yone, wi hou spending a penny, he bes way o a oid
excuses, and o make he mos ou o hei ee ime.
4
Índex de con ingu s
1 P eàmbul 8
1.1 In oducció 8
1.1.1 Con ex 8
1.1.2 S akeholde s 9
1.2 Es a de l’a 10
1.3 Fo mulació del p oblema 12
1.3.1 Abas 12
1.4 Objec ius 14
1.5 Me odologia i igo 15
1.5.1 Eines de desen olupamen 16
1.5.1.1 Con ol de e sions del codi 16
1.5.1.2 Pos man 18
2 Ges ió del p ojec e 19
2.1 Plani icació empo al 19
2.1.1 Tasques 19
2.1.2 O gani zació de les asques 22
2.1.2.1 Diag ama de GANTT 22
2.1.2.2 Taula de dependències 23
2.1.3 Recu sos 24
2.1.3.1 Recu sos humans 24
2.1.3.2 Recu sos so wa e i ha dwa e 24
2.1.4 Valo ació d’al e na i es i pla d’acció 25
2.2 Plani icació econòmica 27
2.2.1 Iden i icació i es imació de cos os 27
2.2.1.1 Cos os di ec es 27
2.2.1.2 Cos os indi ec es 27
2.2.1.3 Resum de cos os o als 29
2.2.1.4 Imp e is os 29
2.2.2 Con ol de ges ió 30
2.3 Sos enibili a 32
2.3.2 Dimensions de sos enibili a 34
2.3.2.1 Econòmica 34
2.3.2.2 Ambien al 35
5

2.3.2.3 Social 35
2.3.2.4 Ma iu de sos enibili a 36
3 Especi icació 37
3.1 Model concep ual 37
3.2 Requisi s uncionals 39
3.2.1 Casos d’ús 39
3.3 Requisi s no uncionals 45
4 Disseny 47
4.1 A qui ec u a del sis ema 47
4.1.1 Con ex del sis ema 47
4.1.2 Componen s i ecnologies usades 48
4.2 Se ei web 49
4.2.1 API REST 49
4.2.2 Base de dades 51
4.2.3 Con ol de e sions 51
4.2.4 Au o ac 53
4.2.5 Au omappe 54
4.3 Aplicació web 56
4.3.1 In e ície 56
4.3.1.1 Mockups 56
4.3.1.2 Usabili a 58
4.3.2 Tecnologies 59
4.3.2.1 Unis o e 59
4.3.2.1 Ma e ial-UI 60
4.3.2.1 Reac JS 60
5 Implemen ació 61
5.1 C eació del se ei web 61
5.1.1 A qui ec u a Domain D i en Design 61
Capes i ni ells 62
Capa de p esen ació 63
Capa de Se eis Dis ibuï s 64
Capa d’Aplicació 65
Capa de Domini 65
Capa d’in aes uc u a pe a la pe sis ència de dades 66
6
Capa d’in aes uc u a ans e sal 67
5.1.2 P incipis SOLID 68
5.1.3 Pa ons i p incipis aplica s 71
5.2 C eació de l’aplicació web 74
5.2.1 Eines de supo 75
5.2.2 A qui ec u a je à quica 78
5.2.3 Compa ibili a 79
5.2.4 Flux de dades 79
5.3 Temps dedica 81
6 Validació 82
6.1 Tes ing 83
6.1.1 Tes s uni a is 83
6.1.2 In eg a ion Tes s 84
7 In eg ació de coneixemen 87
7.1 Coneixemen s aplica s 87
7.2 Assolimen de compe ències 87
8 Conclusions 89
8.1 Assolimen d’objec ius 89
8.2 Valo ació pe sonal 90
8.3 Con ibucions 90
8.4 T eball u u 90
9 Re e ències 92
10 Glossa i 95
7
1 P eàmbul
1.1 In oducció
1.1.1 Con ex
Són mol s els cops que olem so i de la nos a u ina o eali za ce es ac i i a s lúdiques
especí iques, pe ò an el i me de ida an ele a en el que mol s ens obem, com el simple e
de no conèixe la gen adequada pe eali za -les, ens impedeix pode so i de la nos a zona
de con o pe així pode amplia el nos e ang de hobbies a eali za en el nos e emps lliu e.
El p oblema pe ò, no és an sols aques , sinó que ambé hi ha mol es ac i i a s que deixem de
e i d'ap end e pe al a de ecu sos.
És pe això que ac ualmen ja hi ha més d’un lloc web i algunes aplicacions mòbils les quals
acili en la ce ca d'esde enimen s o gani za s, pe me en eali za ac i i a s de o a mena
mi jançan la publicació d’esde enimen s sense es icció pel que a a l'expe iència i sepa an
aques s depenen del lloc en el qual es eali zen. Aques es aplicacions o e eixen un g an
nomb e de possibili a s, cadascuna d’aques es o ien ades a di e ses menes de públic. Alguns
cops inclús, obem que la selecció del públic, donada pel ipus de uncionali a s o e ides a
cadascun dels di e en s sis emes, és an es ic a que so geixen ce es limi acions pe a l’usua i
es ànda d que no ol limi a an el ipus d’esde enimen s als quals es ol subsc iu e.
És pe això que, un cop obades aques es limi acions en els sis emes esmen a s, so geix la
idea de eali za una no a pla a o ma que uni iqui o s els esde enimen s p esen a s en els
sis emes exis en s. El nou sis ema a desen olupa , anomena Hi MeApp

, ind à com a inali a
enca les ba e es que aques s sis emes exis en s p esen en indi idualmen , pe què en
p esen a -los o s ag upa s, es a íem acili an la pa icipació en aques s pe pa dels usua is i
pe me en -los disposa de mane a apida del coneixemen de o es les ac i i a s lúdiques
d'in e ès eali zades al seu en o n d’una mane a més compac a i amb g an a ie a a escolli .
Lla o s no es a íem limi an a l’usua i a l'únic ús d’una de les pla a o mes, augmen an així el
seu en all de possibles esde enimen s als quals uni -se i no o çan -lo a només mou e's al
ol an d’un únic en o n social.
8
1.1.2 S akeholde s
Els s akeholde s són o s aquells ac o s implica s en el p ojec e, els quals enen un ce in e ès
en aques . En aques p ojec e, els podem classi ica en els següen s g ups:
1. Usua is. Els quals a an ús de les uncionali a s o e es en el sis ema desen olupa i pe
an són els p ime s bene icia is en la c eació d’aques , ja que gaudi an de o s els
a an a ges que es p esen a an, així com se an els qui in e ac ua an amb les
uncionali a s o e es.
2. O gani zado s. Es ac a de o es aquelles pe sones que s’han enca ega de publica
nous esde enimen s, ja que g àcies al nou sis ema augmen a an l’abas de pe sones
que eu an les ac i i a s que o e eixen i pe an pod an aspi a a aconsegui mol s més
pa icipan s en aques s.
3. Pla a o mes ja exis en s. Aques s ac o s són els quals p opo cionen les APIs que el
sis ema consumi à, de mane a que l’ús d’aques es els bene icia à pel e que les
uncionali a s que s’o e i an a l’usua i habi ualmen eque i an in e acció amb els se eis
o e s pe aques es pla a o mes i pe an es p omou à l’ús d’aques es.
4. Desen olupado . També jo, com a desen olupado , se é un ac o implica , ja que sóc
la pe sona enca egada de la implemen ació de l’aplicació dins de les da es ma cades,
així com de eali za o a la ece ca i ap enen a ge de les ecnologies a in eg a al
sis ema pe al que aques uncioni de mane a co ec a.
9
1.5.1 Eines de desen olupamen
Hi ha hagu ce es eines que han sigu mol impo an s du an o el p océs de
desen olupamen .
1.5.1.1 Con ol de e sions del codi
Gi ens p opo ciona un con ol de e sions sob e el nos e codi on du an el desen olupamen
de so wa e. G àcies a això, he pogu eni en o momen una e sió ac uali zada del meu codi
en línia. D’en e les opcions que es poden a egi als eposi o is c ea s a Gi Hub, he e se i els
Kanban Boa ds que p opo ciona pe pode isuali za les asques que s’han de eali za , les
que es an en p océs i les eali zades. Aques es pe me en eni una millo isió del lux de eball
segui i de la eina a e .
Figu a 1.1: Taulell de asques o e pe Gi Hub
16

El p océs a segui ha sigu , p ime amen , c ea un Basic Kanban

, que eia e e ència al
eposi o i sob e el qual ana a a eballa . Desp és, a l’apa a Issues

,

de ini o es les asques
que p e enia eali za abans de comença a esc iu e cap mena de codi.
Un cop de inides, anan al aulell, podia a ossega -les i assigna -les a la p ime a columna  o
do

. En aques a columna és on s’han de posa o es les asques assignades al p ojec e i que, en
algun momen o al e, es olen acaba eali zan .
Ha sigu a pa i d’aquí quan he a egi les issues

en les que es a ia eballan a la columna
doing

, de mane a que consul an aques a columna podia consul a en o momen la eina sob e
la qual s’es a a eballan en aquell momen .
Això em a pe me e pode eballa d’una mane a mol més o gani zada i no pe d e la línia de
eball en cap momen . Una úl ima ca ac e ís ica mol in e essan , a més, a se el e que amb
una ce a sin axi emp ada en la edacció del missa ge del commi podia incula aques sob e
aques es issues

i enca a més, eali za ce es ope acions sob e aques es com anca -les. Això
es po eu e a la següen ima ge, on mi jançan el símbol #

, indico sob e quina asca es a
e e ència en el commi puja .
Figu a 1.2: Conjun de commi s

eali za s du an el p ojec e.
17
Un cop inali zades aques es asques han sigu mogudes a la columna Done

.
1.5.1.2 Pos man
Un cop acabada la con igu ació del se ei web, g àcies a l’ús de Pos man, s’han pogu p o a
o s els endpoin s, pe així, abans de desen olupa l’aplicació mòbil es podia eali za un es eig
manual d’in eg ació, amb el que podíem eu e si s’ob enia la espos a espe ada.
Figu a 1.3: C ida a un dels endpoin s del se ei web.
A més Pos man pe me la c eació de col·leccions, amb les c ides ja con igu ades pe es al ia
emps a l’ho a de eali za les p o es.
18
2 Ges ió del p ojec e
2.1 Plani icació empo al
2.1.1 Tasques
Pe al de pode eali za co ec amen el p ojec e, cald à po a a e me la següen llis a de
asques i sub asques, les quals pe me an aconsegui que el sis ema es pugui desen olupa de
la mane a es able a en la seqüència mos ada:
T1 - Ges ió inicial del p ojec e
Pe comença amb la eali zació d’aques p ojec e ens a al a una plani icació de o a la eina
que es eali za à pos e io men pe al d’aconsegui el esul a espe a .
És pe això que es de ineixen o s els lími s d’aques s així com l’objec iu al qual es ol a iba
incloen o s els mè odes i eines pe aconsegui -ho.
Es calcula que el i me de eball dia i se à de 2,4 ho es du an 21 dies. Temps es ima : 50
ho es.
T2 - Documen ació
Amb la plani icació inicial ja es disposa à d’una documen ació inicial, la qual segui à en cu s
du an o a la eali zació del p ojec e pe al de pode comple a o s els apa a s aconseguin
in o mació més p ecisa. Aques a a més, comença à abans que la ges ió inicial del p ojec e
acabi, ja que la ges ió p incipal d’aques ambé cal inclou e-la dins la documen ació inal. No es
po es abli un i me de eball cons an pe a aques a, ja que al inal de cadascuna de les
p òximes asques cald à amplia aques a documen ació. Temps es ima : 50 ho es.
T3 - In es igació i amilia i zació amb les APIs
Ja que en aques p ojec e es a an se i les APIs p opo cionades pe di e ses pla a o mes
di e en s, p ime cald à in es iga quines se an les que s’u ili za an, a enin -se a l’objec iu
p incipal i les uncionali a s o e es pe cadascuna de les APIs. Un cop s’hagi supe a aques a
p ime a ase cald à es udia el uncionamen de les APIs escollides pe així sabe com pode
19
ap o i a o es les uncionali a s que aques es o e eixen i eali za ce es p o es sob e aques s
pe pode eu e quan es de les uncionali a s són compa ibles en e elles i així pode eali za
una es imació de quina se à la cà ega de eball que suposa à e un ús d’aques es en un
ma eix sis ema.
El i me de eball se à de 2,35 ho es dià ies du an 17 dies. Temps es ima : 40 ho es.
T4 - C eació de se ei web
Les APIs necessi a an connec a -se a un se ei web des del qual es con ola à l’inici de sessió
d’usua is els quals les a an se i . És pe això que una de les asques imp escindibles
consis i à en la c eació d’un se ei web el qual ac ua à com a in e media i en e les
uncionali a s o e es pe les aplicacions d’esde enimen s i l'aplicació esul an del p ojec e, la
qual els usua is a an se i pe pode gaudi del nou sis ema.
El i me de eball pe a aques a asca se à de 6.15 ho es dià ies du an 13 dies. Temps
es ima : 80 ho es.
T5 - C eació de l’aplicació web uncional
Un cop comple s els pun s an e io s, ja es disposa à del coneixemen i les eines su icien s pe
pode desen olupa l’aplicació mòbil que b inda à als usua is la possibili a de e se i el nou
sis ema, pe això cald à eali za di e ses sub asques:
T5.1 - C ea pa g à ica
Cald à plani ica quines són les di e ses is es que es olen eni a l’aplicació i
dissenya -les pe pode c ea els layou s co esponen s. Temps es ima : 40 ho es.
T5.2 - Connexió amb se ei web
Un cop ja disposem de cadascun dels layou s pe inen s podem eali za les connexions
al se ei web que pe anyin a cadascun d’aques s. Temps es ima : 20 ho es.
T5.3 - Connec a amb APIs d’esde enimen s
20
Cald à que es eali zin les connexions a les APIs ja anali zades an e io men , de les
quals s’ob ind à ce a in o mació pe així pode eali za les següen s sub asques:
T5.3.1 - A egi uncionali a s bàsiques
P ime amen s’inclou an a l’aplicació o es aquelles uncionali a s més
essencials, com ho po se el e de llis a les aplicacions mos an o a la
in o mació impo an d’aques es. Temps es ima : 50 ho es.
T5.3.2 - A egi uncionali a s ex a
Un cop el sis ema ja es igui comple i es disposi d’una e sió uncional d’aques ,
es plan eja à la inco po ació de no es uncionali a s les quals suposin una
millo a sob e les uncionali a s que les APIs p opo cionen al nos e sis ema.
Temps es ima : 40 ho es.
En o al es eballa an 38 dies a un i me de 4 ho es dià ies.
T6 - P o es inals
Enca a que l'aplicació ja sigui uncional, s’hau an d’ha e eali za p o es al lla g del p ojec e, i
s’hau à de e i ica que aques es pe me en ga an i el co ec e uncionamen de o es les
uncionali a s del sis ema.
El i me de eball se à més ele a , de mane a que augmen a à a 5 ho es dià ies du an 9 dies.
Temps es ima : 50 ho es.
T7 - P epa ació de la de ensa
Un cop ja o unciona cald à ellegi la documen ació i uni ica -la de mane a co ec a. Un cop
aconsegui , cald à p epa a la de ensa del eball.
Finalmen es eballa an 3.75 ho es dià ies du an 8 dies. Temps es ima : 30 ho es.
Temps inal: 450 ho es.
21

2.1.2 O gani zació de les asques
2.1.2.1 Diag ama de GANTT
Amb el següen diag ama de Gan , el qual és una eina de con ol de p oducció que ens pe me
eu e de mane a g à ica l’ac i i a a eali za en un p ojec e, s’exposa el emps de dedicació
p e is pe a les di e ses asques al lla g del desen olupamen del p ojec e.
Aques , pe ò, no indica cap mena de co elació en e les asques, de mane a que podem eu e
com en alguns casos aques es poden supe posa -se.
Figu a 2.1 Diag ama de Gan
22
2.1.2.2 Taula de dependències
G àcies a l’ús de la següen aula de dependències es po eu e el emps es ima pe a
l'execució de cadascuna d’aques es d’una mane a mol més cla a que en el diag ama an e io ,
així com la p ecedència en e aques es, pe què així sigui més cla l’o d e que se segui à a
l’ho a de po a -les a e me.
Codi
Tasca
Temps es ima
Da a inici
Da a i
Dependen de
T1
Ges ió inicial
50 h
17/09/2018
15/10/2018
-
T2
Documen ació
50 h
01/10/2018
04/01/2019
-
T3
In es igació APIs
40 h
01/10/2018
23/10/2018
-
T4
C eació se ei web
80 h
24/10/2018
09/11/2018
T3
T5
C eació APP
-
12/11/2018
02/01/2019
T4
T5.1
C eació pa g à ica
40 h
12/11/2018
23/11/2018
T5.2
Connexió se ei web
20 h
26/11/2018
30/11/2018
T5.3
Connexió APIs
-
03/12/2018
02/01/2019
T5.3.1
Funcionali a s bàsiques
50 h
03/12/2018
19/12/2018
T5.3.2
Funcionali a s ex a
40 h
19/12/2018
02/01/2019
T6
P o es inals
50 h
03/01/2019
15/01/2019
T5
T7
P epa ació de la
de ensa
30 h
16/01/2019
25/01/2019
T6
TOTAL
450 h
Figu a 2.2 Taula de dependències en e les asques a eali za du an el p ojec e
23
2.1.3 Recu sos
2.1.3.1 Recu sos humans
Com a ecu sos humans en aques p ojec e podem iden i ica -me a mi, l’au o d’aques ,
adqui in di e sos ols, com ho són an el de p ojec manage

, desen olupado i  es e

. El
p ime ecu s humà lla o s a ec a ia a o es les asques del p ojec e, a causa del e que no hi
ha cap al a pe sona pe a la edacció de la documen ació. A més ambé cal inclou e al u o del
p ojec e, qui s’enca ega de les eines de u o i zació que inclouen la e isió de la documen ació
a mesu a que aques a es comple a. El ol de p ojec manage in e é especialmen a la T1, T4 i
T5, el de desen olupado i es e a les asques T3, T4 i T5 en de all, o i que el de es e é
g an impo ància a la T6 i inalmen , el u o del p ojec e in e é a les asques T1, T2 i T7.
2.1.3.2 Recu sos so wa e i ha dwa e
Pe a les asques que impliquen elació amb la p og amació de l’aplicació web, la connexió amb
les APIs i la c eació i connexió del se ei web, a més de les p o es inals, an ús de ce s
ecu sos an so wa e com ha dwa e.
To es aques es enen en comú l’ús d’un o dinado po à il ASUS A55A i en els casos que cal
eali za asques que impliquen p og amació mòbil ambé es a à se i un e minal mòbil, en
conc e un Xiaomi Mi A1

. A més cald à l’ús del p og ama i Visual S udio Code pe a o a la
p og amació de l’aplicació web i l’ús de Visual S udio 2017

pe a la p og amació del se ei web.
Aques s ecu sos han in e ingu a les asques T3, T4, T5 i T6, o i que l’o dinado ambé s’ha
e se i pe a les asques de edacció, de mane a que ha in luï en o a la es a ambé.
24
2.1.4 Valo ació d’al e na i es i pla d’acció
En aques p ojec e hi ha ce s ac o s que poden posa en pe ill el complimen de les da es
es imades pe a la eali zació del p ojec e, és pe això que cal es udia els p oblemes que
poden so gi pe així eni en comp e el e às que aques s poden suposa .
Els p oblemes que s’espe a que poden so gi són els següen s.
E o en la plani icació empo al
Po se que la plani icació empo al es able a an e io men no sigui an ajus ada a la eali a de
mane a que això a ia ia en g an mesu a l’esquema ho a i gene al.
Fal a d’expe iència
La al a d’expe iència és el p oblema més g an p esen a a l’ho a de c ea aques p ojec e, en
especial en els següen s pun s:
Di icul a en l’ús de les APIs
Que po suposa un a egi espec e al emps es ima en la asca d’es udi i selecció de
les APIs a consumi en el sis ema.
Di icul a en la c eació del se ei web
La qual pod ia ambé a egi un emps ex a un cop es comencin a eali za les p ime es
asques del p ojec e.
No disponibili a de les APIs p e is es
Pod ia dona -se que les APIs que s’han consul a ins al momen no uncionessin o no
es iguessin disponibles desp és de ja ha e -les selecciona .
25
2.3 Sos enibili a
A pa i de l’enques a eali zada es poden ex eu e mol es conclusions, ja que a ui en dia en
eni an p esen la ecnologia, el desconeixemen en e mes de sos enibili a sob e aques a po
a iba a suposa un g an impac e nega iu en di e ses à ees del nos e en o n.
Cal p end e consciència sob e els e ec es que suposa el g an a anç ecnològic, que mol s cops
de i a en una necessi a social de eno a p ema u amen mol s disposi ius elec ònics sense
ha e -los amo i za ins a la ida ú il espe ada i con e i -los en esidus en comp es d’in en a
eap o i a -los pe així e i a c ea una g an pe jada ecològica, ja que aques s con enen
componen s que són mol òxics pe al medi ambien .
A més el no ac a de eu ili za els componen s elec ònics a que els ecu sos na u als
s’esgo in d’una mane a insos enible pe al de p odui -los de nou. És pe això que cal que la
socie a sigui esponsable pel que a al consum i ecicla ge d’aques s. Especialmen o s els
que ens plan egem po a a e me un nou p ojec e, ja que cal alo a si aques se à sos enible
an en els aspec es econòmic, social i ambien al pe al d’aconsegui que l’a anç ecnològic
agi di ec amen elaciona amb la sos enibili a .
Pe aconsegui -ho cal conèixe l’impac e ambien al de l’ús de les ecnologies de la in o mació i
de la comunicació, e ús dels indicado s adequa s, es udia els ecu sos a u ili za i el cicle de
ida d’aques s pe així, un cop el p ojec e ja es igui de ini , es pugui ac a de oba no es
idees i solucions que pe me in con e i cadascun dels nos es p ojec es ecnològics en una
e sió millo ada i més sos enible. To això po aconsegui -se aplican di e sos mè odes i
ecnologies, els quals pe me an que disminuïm els alo s dels indicado s d’impac e ambien al
exis en s.
Això semp e es a so a el p e ex d’aconsegui un plane a més sos enible, de mane a que cal
in odui als nos es p ojec es idees com jus ícia social, eu ili zació de ecu sos i economia
ci cula . És només així com, amb la col·labo ació de o hom, es pod an millo a o s aquells
desa an a ges que les no es ecnologies han p o oca al nos e en o n.
Pe úl im, pe assoli un bon ni ell de sos enibili a en els equips de eball cal es abli de
mane a cla a les pau es del p ojec e i que pe pa de o s els memb es es pugui o e i
comp omís pe compli l’objec iu comú que o s els memb es de l’equip han de compa i .
32

Cald à eni cu a de la eina e a pe al que no obs aculi zi la eina de la es a de memb es de
g up, així com e i a deixa aspec es del p ojec e penden s a ac a els quals poden suposa
obs acles u u s en el bon desen olupamen i en enimen del g up.
33
2.3.2 Dimensions de sos enibili a
A l’ho a d’a alua si un p ojec e és sos enible, són di e sos els aspec es que ens cal anali za
pe a pode de e mina la iabili a d’aques . Podem classi ica els aspec es a es udia en les
dimensions següen s.
2.3.2.1 Econòmica
Pe anali za la iabili a econòmica cal es udia o s els cos os que aques implica. Tal com
hem is a l’apa a an e io obem que el p eu del p oduc e no se à gai e ele a pel e que no
eque eix cap cos ex a a pa dels ecu sos bàsics pe al desen olupamen del p ojec e, com
ho són l’o dinado i el elè on mòbil p opis del desen olupado , de mane a que s’es an
ap o i an els ecu sos dels quals ja es disposa a i els quals no es pod ia e i a paga de cap
al a mane a, ja que aques s són els elemen s bàsics pe al desen olupamen de qualse ol
so wa e mòbil.
Respec e a l’ús de ecu sos humans, no s’espe a cap a iació impo an , ja que amb un únic
desen olupado es po man eni el sis ema en cas que aques es olgués ana millo an . L’únic
e que pod ia inc emen a el p eu en un u u se à el can i de se ido en el qual es desplega
o el sis ema, el qual, a mesu a que es eque eixin majo s p es acions, pod à inc emen a el
seu cos .
Cal di que, com les APIs de les quals es consumi an ecu sos des del nou sis ema no són de
pagamen (l’ús de ecu sos en si, o i que alguns esde enimen s poden eque i un p eu
d’insc ipció) el nos e sis ema no es à millo an econòmicamen espec e als sis emes ja
exis en s, ja que no és l’objec iu p incipal d’aques .
Pod ien apa èixe ce s iscos du an la eali zació del p ojec e que pe judica ien la iabili a
d’aques , o i que aques s p oblemes se ien solucionables. Aques ja s’han is pe ò
an e io men a l’apa a del p essupos .
Veiem que el cos del p ojec e és el mínim a espe a , de mane a que és mol compe i iu pe què
els cos os inicials a cob i se ien despeses mínimes i no hi hau ia mane a que un p ojec e
simila es desen olupés amb mol s menys ecu sos o en un emps mol in e io si no os
augmen an els ecu sos humans, e que enca i ia el p oduc e. A més sob e les despeses
34
causades no es cob i ien amb dine s dels usua is, ja que els sis emes d’aques cai e no enen
cap ànim de luc e.
2.3.2.2 Ambien al
En quan s als ecu sos usa s pe al desen olupamen del p ojec e, obem que l’impac e
ambien al que aques ind à se à mínim pel e que només es a à ús d’un elè on mòbil i d’un
o dinado po à il amb una an igui a de 4 anys, de mane a que el cos d’aques ja es à
amo i za .
Aques s ecu sos s’es an eu ili zan , ja que no es an únicamen des ina s a la eali zació del
p ojec e, de mane a que podem conside a que el cos de l'elec ici a que aques s compo en
pe les ho es des inades a la eali zació del p ojec e no suposa un inc emen signi ica iu.
A més, en ac a -se d’un p og ama i so wa e, no es eque i à a egi cap cos a causa de la
ab icació del p oduc e, ja que se à inexis en .
No es oba cap millo a quan a la dimensió ambien al com que espec e a les pla a o mes
in oduïdes a l’es a de l’a ambé es p esen en solucions amb els ma eixos a an a ges, aien
el e que p obablemen aques es sí que han ingu més d'un ecu s únicamen des ina al
desen olupamen d’aques es, amb o l’impac e que això compo a.
2.3.2.3 Social
T obem que en aques p ojec e la pa social é una impo ància signi ica i a pe què l’objec iu
d’aques és acili a una asca que implica una g an in e acció pe pa di e en s pe sones i que
alho a sense aques a, els sis emes implica s no ind ien cap mena de sen i i manca ien de
con ingu a o e i .
Du an la posada en p oducció, dona que aques p ojec e posa en ma xa una idea que
eque eix ce s coneixemen s en una à ea del meu in e ès i a més a ús d’un conjun de
sis emes els quals pe sonalmen m’han esul a mol ú ils, conside o que el ni ell apo ació
pe sonal en aques p ojec e és bas an al .
35
El p ojec e esold à en g an mesu a un p oblema social, acili an a un g an nomb e de
pe sones el coneixemen d’ac i i a s donades al seu ol an , pe ò o es aques es d’una mane a
uni icada, e que no obà em a cap de les pla a o mes p esen ades a l’es a de l’a . Això és a
causa del e que o es aques es pla a o mes es a en en ocades a un objec iu i un usua i mol
conc e , pe ò no es con empla a el e de pode a iba a mol es més pe sones pe al de no
di idi -les an i així a a o i la di e si icació dels usua is, que compo a ia una majo
di e si icació dels assis en s a o a mena d’esde enimen s.
Cal eni en comp e que el nou sis ema a desen olupa é com a objec iu p incipal acili a la
ges ió d’una uncionali a bàsica ja exis en , de mane a que o i eni expec a i es d’una lla ga
ida ú il pel g an alo social i la in encionali a d’aques .
Pel que a als iscs, no hi ha cap que pugui suposa e s nega ius espec e a la dimensió social.
Únicamen es pod ia dona el cas que apa eguessin sis emes simila s que essin que aques no
es es se i .
2.3.2.4 Ma iu de sos enibili a
Finalmen , ob enim la següen ma iu de sos enibili a , la qual mos a els alo s en les uni a s
co esponen s dels apa a s PPP i ida ú il, o la pun uació de 0 a 10 en el cas de la dimensió
social.
PPP
Vida ú il
Riscs
Econòmica
198,46 €
13,46 €
Pocs
Ambien al
110 kWh
165 kWh/any
Pocs
Social
9
8
Cap
(To s els alo s de la aula es an explica s amb de all als apa a s an e io s)
Figu a 2.3 Ma iu de sos enibili a
36
3 Especi icació
3.1 Model concep ual
Pe comença amb l'especi icació del p ojec e, és indispensable ep esen a de mane a g à ica
o el sis ema. Cal e una composició amb o s els elemen s que in e enen en la esolució de
l’objec iu del p ojec e pe al d’es abli ce s concep es d’una mane a cla a.
G àcies al següen model concep ual, puc e una abs acció de o s els concep es eals de
mane a que es poden ep esen a o es les elacions en e els di e en s elemen s que pa icipen
en el sis ema.
Claus o anes: (Ca ego ia, Nom); (Esde enimen , Id); (Locali zació, La i ud, Longi ud); (Ho a i;
da aInici, da aFi)
Figu a 3.1: Model concep ual del sis ema
37

Com es po obse a en el diag ama an e io , hi ha qua e en i a s di e en s, de les quals
Ca ego ia

i Esde enimen

que són les p incipals que es ac a an al sis ema.
Si pa em a enció sob e les elacions en e en i a s, eiem que dins del sis ema Hi MeApp

,
cadascun dels esde enimen s únicamen pe anye à a una ca ego ia p òpia d’aques , al ma ge
de la ca ego ia en què es obés al sis ema que o e eix aques esde enimen .
A més, els esde enimen s es poden elaciona amb al es en i a s les quals donen més
in o mació sob e aques s. Aques es an e e ència a la locali zació en la qual l’esde enimen é
lloc i l’ho a i en què aques es eali za à.
Aques esde enimen se à únic, al com la clau o ana id indica, ja que si es pogués dona el
cas que un esde enimen amb un ce nom succeeix pe iòdicamen , aques es ac a à com a
una no a en i a sense cap mena de elació amb cap al a pel seu nom

. Pe aques mo iu eiem
que cada esde enimen només pod à eni una única Da a

i Locali zació

.
En de ini i a, es po eu e com l’esde enimen és l’en i a de la qual o es les al es depenen, i
pe an sob e el ol an de la qual s’es abli à el p ojec e.
38
3.2 Requisi s uncionals
Pe pode conc e a les uncionali a s d’un sis ema, abans d’implemen a -lo, és necessa i de ini
quins se an els equisi s uncionals d’aques [8].
Els equisi s uncionals no són ni més ni menys que una ca ac e ís ica eque ida del sis ema
que exp essa una capaci a d’acció d’aques ma eix. Pe a la me a especi icació de equisi s
uncionals a é se i un diag ama UML de casos d’ús[9].
3.2.1 Casos d’ús
Un cop desc i es les en i a s que in e ind an en el so wa e a desen olupa , a un al ni ell
d’abs acció, es eque eix es abli quines són les uncionali a s que el sis ema se à capaç de
eali za .
Aques es uncionali a s queden cla es amb l’especi icació dels equisi s uncionals els quals,
bàsicamen , desc iuen el que el sis ema ha de e . Aques s es poden eu e al diag ama de
casos d’ús que es oba a con inuació[10].
39
Figu a 3.2: Diag ama de casos d’ús
A pa de l’esmen a , mi jançan els escena is d’ús, es poden desc iu e amb més de all els
di e en s casos d’ús que es poden oba en el nos e sis ema Hi MeApp, pe me en dona més
in o mació espec e a o es les si uacions que es poden dona .
És pe això que, a con inuació, es mos a l’escena i p incipal dels di e en s casos d’ús que han
sigu usa s pe ep esen a els equisi s uncionals del sis ema:
40
Nom del cas d’ús
Mos a esde enimen s p ope s
Ac o p incipal
Usua i
P econdicions
- L’usua i disposa de se ei de locali zació al seu disposi iu
mòbil.
- L’usua i disposa de connexió a in e ne .
Escena i p incipal
1L’usua i en ia una pe ició al sis ema Hi MeApp incloen les
coo denades de la se a locali zació.
2 El sis ema Hi MeApp p ocessa la pe ició de l’usua i.
3El sis ema Hi MeApp consul a els se eis d’esde enimen s amb les
coo denades ob ingudes.
4Els se eis d’esde enimen s e o nen els esde enimen s que
coincideixen amb les condicions es able es
5El sis ema Hi MeApp e o na o s els esde enimen s p ope s a
l'à ea de l’usua i.
41
Com es po obse a a la igu a 4.1, el se ei web disposa d’una base de dades on es gua da à
ce a in o mació elle an . A més, com es eu a la pa d e a de la ima ge, aques se ei web
ap o i a di e en s se eis ex e ns pe sa is e les necessi a s del sis ema.
El se ei web es à cons uï en o ma d’API REST, que és el se ei web mos a a la ima ge.
Aques se ei web és l’enca ega de comunica -se amb les APIs ex e nes al sis ema, les quals
o e eixen in o mació elle an que con é els esde enimen s dels quals disposen així com les
se es ca ego ies. Un cop es ep aques a in o mació, en o ma json

, és ac ada i e o nada
com a una no a espos a json

cap al clien .
Així i o , no o es les casuís iques eque i an e una pe ició a les APIs ex e nes
d’esde enimen s al sis ema, ja que alguna de les pe icions pod à eque i únicamen accedi a
la base de dades.
Cal des aca els bene icis que aques a a qui ec u a ens p opo ciona, en sepa a el clien del
se ido . El p incipal bene ici és el e que, com s’espe a un g an c eixemen del sis ema
Hi MeApp, el e de pode ac uali za -lo en cap momen depend à de l’usua i.
A més amb aques a a qui ec u a s’aconsegueix una lògica més ben encapsulada dins de cada
componen , de mane a que les esponsabili a s del sis ema queden mol cla amen sepa ades.
El se ei web ind à com a uncionali a p ocessa les dades, i l’aplicació web pe , únicamen ,
consumi -les i p esen a -les a l’usua i.
G àcies a aques a a qui ec u a es pod an a egi mol s més casos d’ús en un u u , ja que el
sis ema és mol més escalable que si es obés o en un únic componen .
4.1.2 Componen s i ecnologies usades
Un cop queda cla a la dis ibució ísica de o s els elemen s que con o ma an el sis ema
desen olupa , és ho a de de ini com se à l’es uc u a lògica que pe me à aconsegui que o a
aques a es uc u a ísica desc i a pugui ealmen unciona co ec amen .
Pe de ini l’a qui ec u a lògica cal esmen a les ecnologies usades pe al de e possible o es
les uncionali a s del sis ema.
48

4.2 Se ei web
Pe al desen olupamen d’aques se ei web s’ha e ús de la pla a o ma .NET Co e del
llengua ge C#

[13]

. Aques és un llengua ge simple, o amen ipa i de p opòsi gene al. A més,
una ca ac e ís ica bàsica pe al desen olupamen d’aques p ojec e és el e que eballa amb el
pa adigma de p og amació o ien ada a objec es.
Al ma ge del llengua ge, les p incipals ecnologies usades al se ei web són:
4.2.1 API REST
Aques se ei web és un sis ema REST ul

, és a di , una API REST

. Una API

no és més que
una o ma de desc iu e com els p og ames in e can ien dades, i en aques cas el o ma
d’in e can i és json

.
Algunes de les ca ac e ís iques p incipals que podem oba en un sis ema REST ul són:
- La comunicació amb aques es es eali za mi jançan d’un endpoin

. Aques endpoin

es
basa en una URI amb un o ma de e mina , que es ableix quina és la u a del ecu s de
l'API Res al qual es ol accedi . El o ma se ia el següen : {p o ocol}://{nom del
hos }:{po }/{ u a del ecu s}?{pa àme es de il a ge (opcional)}
-Ús dels mè odes HTTP. Pe què sigui possible in e ac ua amb una API REST ens cal
e se i els mè odes HTTP:
-POST: Pe pode c ea un nou ecu s.
-PUT: Pe pode ac uali za un ecu s ja exis en .
-GET: Ob eni la in o mació sob e un ecu s.
-DELETE: Elimina un ecu s
-PATCH: Modi ica un únic a ibu d’un ecu s.
49
-Respos a de les pe icions. Desp és de manipula un ecu s del se ido , aques
semp e hau à de e o na una espos a pe al d’indica si l'ope ació que el clien ha
in en a eali za s’ha e ec ua de mane a co ec a o si s’ha p oduï alguna mena d’e o .
D’en e les espos es més comunes obem que hi ha:
-200 OK. La pe ició s’ha comple a co ec amen
-201 C ea ed. La pe ició s’ha comple a amb la c eació d’un nou ecu s.
-400 Bad Reques . La sol·lici ud del ecu s no é la sin axi co ec a.
-403 Fo bidden: La sol·lici ud e a co ec a, pe ò qui l’ha eali za no disposa dels
pe misos adequa s pe a aques a.
-404 No Found. No s’ha oba el ecu s sol·lici a .
-500 In e nal Se e E o . Hi ha hagu un e o in e n en el se ei pe alguna
excepció no con olada o un e o de p og amació.
Conside an el model de madu esa de Richa dson REST, es po conc e a que aques se ei
web es ac a d’una API Res de ni ell 2. Això és pe què a ús d'HTTP pe a les in e accions
emo es (ni ell 0), els ecu sos s’iden i iquen a a és d’una URI la qual no especi ica l’acció a
execu a sob e el ma eix ecu s (ni ell 1) i, com a úl im aspec e, s’ha e se i un ús co ec e
dels e bs i les se es espos es (ni ell 2).
El con ol de les espos es s’ha aconsegui g àcies a l’ús de il es a la capa de se eis
dis ibuï s, els quals cap u en les excepcions llençades a la capa d’aplicació pe així edi igi -les
i ac a -les com a e o s HTTP.
50
Pel que a als endpoin s

, que es poden c ida al se ei web pe pode consumi els seus
ecu sos, són els següen s:
GET /api/ca ego ies -> Re o na o es les ca ego ies emmaga zemades al sis ema.
GET /api/e en s ->
- Pa àme es de la consul a:
ca ego yId

->

Re o na els esde enimen s pe anyen s a la ca ego ia ca ego yId

.
la i ude

, longi ude

-> Re o na els esde enimen s p ope s a les coo denades in oduïdes.
4.2.2 Base de dades
T obem que, al com s’ha is a la ima ge amb l’a qui ec u a ísica del sis ema, el se ei web
connec a di ec amen amb una base de dades p òpia. Aques a emmaga zema les ca ego ies
p òpies del sis ema, aconseguides a pa i de o es les ca ego ies ex e es dels di e en s
sis emes d’esde enimen s, i ag upan -les quan os possible.
La base de dades ha sigu ac ada amb SQL Se e

, el qual eali za ope acions sob e les
dades mi jançan el llengua ge T ansac SQL i l’accés a aques a s’ha e mi jançan en i y
amewo k

, el qual o e eix un accés a les dades mol simple i ne a a ni ell de codi. La base de
dades es po eu e a la igu a 4.2.
4.2.3 Con ol de e sions
Pe pode disposa de les di e en s e sions de la base de dades a mesu a que aques a
pogués ana augmen an , s’ha e se i un con ol de e sions mi jançan l’eina  lyway

. G àcies
a aques a es poden inclou e nous i xe s, els quals ep esen en una no a e sió de la base de
dades, i ana a egin no es e sions sob e aques a a mesu a que cal modi ica -la.
51
L’ús de lyway acili a mol la c eació de la base de dades un cop s’ha de desplega sob e el
se ido , pe me en a més pode ecupe a una e sió an e io uncional en cas que so geixi
qualse ol p oblema amb l’ac ual.
L’es uc u a de la base de dades del se ei web é lla o s la següen es uc u a en què es
oba, a més de les aules no mals del sis ema, amb una aula que emmaga zema el e siona
amb lyway.
Figu a 4.2: Base de dades del se ei web
En cas que ulguem ac uali za la base de dades a la e sió més ac ual de la que es disposa,
cald à execu a la comanda
lyway mig a e.
Pe comp o a que les mig acions s’han eali za co ec amen se à an àcil com in odui la
comanda
lyway in o.
Pe pode eu e com lyway unciona ealmen , a la següen ima ge podem ap ecia com la
base de dades can ia en a egi una no a e sió (con inguda dins d’un i xe .sql com es eu), i
aques a s’implemen a amb la comanda mig a e

an e io men esmen ada.
52
Figu a 4.3: Rep esen ació de les e sions amb lyway
Ima ge ex e a de h ps:// lywaydb.o g/asse s/balsamiq/command-mig a e.png
4.2.4 Au o ac
Una de les ca ac e ís iques que han pe mès millo a el codi, amb l’aplicació dels p incipis
explica s amb més de all a l’apa a d’implemen ació, ha sigu la injecció de dependències.
Pe aconsegui -la, i així desacobla les di e en s pa s del codi, s’ha e se i Au o ac

, una eina
amb la qual, mi jançan uns mòduls d’injecció, pe me que o es les dependències del codi
s’injec in en emps d’execució, és a di , que en comp es d’ins ancia cadascuna de les classes
mi jançan les se es cons uc o es, en comp es de e ús de la ins anciació adicional
mi jançan new

i el nom de la classe, només se à necessa i a egi la classe al mòdul
co esponen , i les se es cons uc o es es c ida an au omà icamen un cop el p og ama
s’execu i.
Figu a 4.4: Exemple amb codi de com egis a un nou ipus dins d’un con enido d’Au o ac
A la igu a 4.4 es eu com l’a ibu builde

, que es ac a d’un cons uc o de “con enido s”, es à
egis an el ipus Ca ego ySe iceBl

, i ho a mi jançan la se a in e ície
IReques Se iceBL<Ca ego yBl>

.
53

És d’aques a mane a com, sense cap mena d’ins anciació abans de l’execució, se à possible
que la classe de la següen ima ge, la qual necessi a l’objec e de la classe que es oba
egis ada al mòdul mos a an e io men , pod à ob eni aques objec e.
Figu a 4.5: Exemple amb codi de la cons uc o a de la classe Ca ego yCon olle
Això pe me un g an aïllamen de les dependències del codi ( eduin l’acoblamen a g an
escala) així com la possibili a de modi ica el codi injec a en emps d’execució.
4.2.5 Au omappe
L’a qui ec u a u ili zada eballa amb di e en s en i a s a les di e ses capes, les quals no són
més que el model amb què es ac a a cada ni ell de l’aplicació. Aques s models ep esen a an
un ma eix concep e, o i que aques po eni ce es di e ències als di e sos ni ells.
Pe què aques es es puguin comunica en e les di e ses capes, és necessa i que hi hagi un
p océs de mapeig, el qual consis eix a con e i i/o adap a les dades d’una en i a a les
pe anyen s a la no a en i a amb la que es ac a al ni ell ac ual, de mane a que la in o mació
sigui cohe en i la co esponen pe al de e mina objec e. Pe aques mo iu l’eina Au omappe
és de g an ajuda, ja que és l’enca egada de eali za aques p océs.
P ime amen , és necessa i c ea un mapa que de ineixi quins se an els models o igen i des í
d’aques mapeig. En el cas de la següen ima ge, eiem que un objec e Ca ego y se à mapeja
a un de ipus Ca ego yBl

.
54
Figu a 4.6: Codi d’exemple de la c eació d’un mapa en e dues en i a s amb Au oMappe
Un cop es able a la con igu ació del mapeig, se à necessa i c ea un nou mappe , el qual
pe me à eali za aques a ope ació de con e sió d’una en i a a una al a, de la següen
mane a:
Figu a 4.7: Codi d’exemple del mapeig d’una en i a a una al a amb Au oMappe
Com es po eu e, l’objec e ca ego yLis

, el qual és del ipus Lis <Ca ego y>

, és mapeja amb la
unció Map

, de mane a que s’aconsegueixen po a aques es dades cap a un objec e de ipus
Lis <Ca ego yBl>

, que és la con e sió que ha íem p ees able en la p ime a ima ge mi jançan
la c eació del mapa.
D’aques a mane a eiem com s’aconsegueix la in e acció de les di e ses en i a s dins de les
capes del sis ema.
55
4.3 Aplicació web
El sis ema, com a clien del se ei web, disposa d’una aplicació web, la qual s’enca ega de
eali za o es les pe icions web al se ei web implemen a , de mane a que sigui capaç de c ea
un con ingu en enedo pe a l’usua i i que a més, el eball eali za amb aques sigui capaç
d’assoli els equisi s especi ica s an e io men .
4.3.1 In e ície
La in e ície de l’aplicació cons a à d’una es uc u a simple i cla a pe al de no con e i la
in e acció de l’usua i amb aques a en una eina ediosa i que no li p opo cioni de cap mane a
una bona expe iència d’usua i.
4.3.1.1 Mockups
D’aques a mane a la in e ície p esen a p incipalmen qua e pan alles amb les quals
s’aconsegui à eali za de la millo mane a les uncionali a s disponibles.
Figu a 4.8: Mockup de la pes anya Ca ego ies

de
l’aplicació mòbil
Figu a 4.9: Mockup de la pes anya E en s

de
l’aplicació mòbil
56
L’aplicació cons a de es pes anyes, les quals són Ca ego ies

,E en s iRada

. Aques es
queden mol més cla amen de inides amb l'an e io ep esen ació del disseny de l’app amb
mockups

, a les igu es 4.8 i 4.9.
La igu a 4.8 ep esen a la pes anya Ca ego ies.

Tal com es po eu e, en aques a pan alla
mos a un llis a amb o es les ca ego ies disponibles ac ualmen dins del sis ema.
A més cadascun dels elemen s d’aques a llis a, en e clic, can ia la pes anya ac ual cap a
E en s

, on es mos a an els esde enimen s co esponen s a la ca ego ia en qües ió.
Si obse em a la igu a 4.9, podem eu e com és la pes anya E en s

. En aques a es mos en
o s els esde enimen s que ind an lloc al ol an de l’à ea de l’usua i. Això ho a mi jançan una
pe ició al se ei web, a egin les coo denades com a pa àme es, les quals són ob ingudes
mi jançan els senso s del elè on mòbil.
En aques a l’usua i po eu e el í ol, una ima ge (si la é) i el p incipi de la desc ipció de
l’esde enimen conc e . A més, si l’usua i clica sob e aques , sob e una no a ines a
sob eposada amb la qual s’a egeix uncionali a de més espec e a l’esde enimen .
Aques a és la ima ge mos ada a la igu a 4.10. En aques a pan alla, di ec amen es mos a
l’esde enimen o iginal a l'usua i, amb o a la in o mació comple a, i amb o es les uncionali a s
que el ma eix sis ema que ha o e l’esde enimen o e eix.
Finalmen es disposa de la pes anya Rada

. Com es po eu e a la igu a 4.11, aques a mos a
un segui d’esde enimen s que es an succein al ol an de l’usua i, pe ò en comp es de
mos a -los en un llis a els mos a amb pe i s ma cado s si ua s sob e un mapa, de mane a que
l’usua i po clica -lo pe consul a de quin esde enimen es ac a.
57
a la pa de  on end

s’ha e se i un llengua ge de p og amació i unes ecnologies
comple amen di e en s, al com s’explica al capí ol co esponen d’aplicació web. De o a
mane a, aques clien se à qui ingui la esponsabili a de la capa de p esen ació.
Pe en end e-ho millo , la capa de p esen ació és la esponsable de mos a o a la in o mació a
l’usua i i, alho a, d’in e p e a les accions d’aques . Els componen s de la capa de p esen ació
implemen en la uncionali a eque ida pe al que els usua is puguin in e ac ua amb el conjun
de capes in e io s que de ineixen el compo amen del sis ema.
Capa de Se eis Dis ibuï s
En aques a és on es con enen els con olado s de ca ego ies i esde enimen s que eben les
pe icions, les quals se an ac ades a al es capes pe així pode e o na una espos a cap al
clien .
Tan si una aplicació ac ua com a p o eïdo de se eis pe a al es aplicacions emo es, com
se ia el cas ac ual, com si la capa de p esen ació es oba ísicamen dins de la ma eixa
locali zació emo a on s’ubica la pa del backend del se ei web, no malmen es publica la
lògica de negoci ( e e en a o es les capes de negoci, ambé conside ades d’aplicació)
mi jançan una capa de se eis dis ibuï s. Aques a capa de se eis dis ibuï s és la que ac ua
com a pon pe pode accedi a les capes que de ineixen la lògica de negoci.
És impo an des aca que aques a capa ha de se el més lleuge a possible i és pe això que no
inclou cap mena de lògica de negoci, sinó que simplemen ac ua com a in e medià ia en la
comunicació en e l’aplicació mòbil (que se ia la pa  on end

) que ol consumi els se eis
o e s, amb o a la lògica del backend

que es oba implemen ada a les capes de negoci.
D’aques a mane a e i a em mol es de les males p àc iques que ens guien cap a una inco ec a
assignació de esponsabili a s dins de l’a qui ec u a, les quals acaba ien de i an a inclou e
ce s p opòsi s que no li pe anyen a aques a capa.
64

Capa d’Aplicació
Un ni ell pe so a de la capa de se eis dis ibuï s, obem una connexió di ec a amb la capa
d’aplicació.
En aques a es de ineixen o es les asques que l’aplicació com a al ha de eali za , de mane a
que s’enca ega de la edi ecció de les en i a s de les capes de domini i dels models de dades
de la capa d’in aes uc u a pe a la pe sis ència de dades, ja que aques es són di ec amen les
que s’enca eguen de esold e o es les uncionali a s, al ni ell més baix, de o a l’es uc u a.
Això és degu al e que aques a la capa d’aplicació pe me la comunicació en e les di e en s
capes que s’enca eguen de les ope acions de pe sis ència i accés a dades.
És pe això que podem conside a aques a capa com l'enca egada de la coo dinació en e les
ope acions de les capes de domini així com les de la capa d’in aes uc u a.
Aques a asca de coo dinació en e capes és la que explica que, la capa d'aplicació com a al,
no ha de disposa de cap mena de coneixemen de les egles del domini, ni an sols de la lògica
del negoci, sinó que simplemen s’ha d’enca ega de la eali zació de asques de coo dinació
en e els di e sos aspec es ecnològics de l’aplicació els quals se an d’un ni ell de de all els
quals no ind ien cap elle ància pe a un expe del domini o usua i del negoci.
Un aspec e in e essan a inclou e en aques a capa és el wo k low de negoci

. Aques implica ia
l’execució d’una sè ie de passos de mane a que es p odueixin ce s esde enimen s al sis ema
d’una mane a o denada i sinc oni zada, en la que aques s enen una dependència en e ells,
o man així luxos de eball o dena s.
Capa de Domini
La capa de domini, ambé coneguda com a capa de negoci, és la que s’enca ega
d’implemen a les egles del domini. En aques a es oba o a la comunicació amb els se eis a
les aplicacions ex e nes, així com el ac amen d’aques es, seguin les egles de negoci.
Aques a capa es oba aïllada comple amen de o s els de alls elaciona s amb la pe sis ència
de dades. Els elemen s p incipals que podem oba dins d’aques a capa se an:
65
-En i a s del domini. Són els models els quals s’enca eguen de ep esen a la
in o mació que s’en ia a a és de les di e en s capes. Pe ò a més, seguin les no mes
que l’a qui ec u a imposa sob e aques a capa, en aques a es eali za an ce es
ope acions que enen a eu e amb la lògica p òpia del p og ama. Un cop s’han eali za
aques es ope acions, l'en i a esul an se à en iada a la capa d’aplicació pe què
aques a el ac i com es degui segons la uncionali a del sis ema.
-Se eis del domini. A les capes del domini oba íem els se eis, els quals
s’enca eguen de ecolli ce s compo amen s que enen a eu e amb la lògica de
negoci di ec amen , pe ò que no enen cap mena d’es a . És a di que eali zen una
uncionali a al ma ge de la p incipal de negoci, pe ò aques a ha de se ac ada en
aques . T oba íem que en el nos e sis ema, els se eis se an aques s que pe me en
una in e acció amb aplicacions d'esde enimen s ex e nes.
-Con ac es dels eposi o is. To i que aques a classe no in e ac ua di ec amen amb
els eposi o is, pel e que la pe sis ència de dades no es ac a à en aques a capa, els
eposi o is sí que accedi an a aques a pe al de pode consul a les in e ícies a u ili za .
L’objec iu d'això és que el negoci sigui qui especi iqui o el que es ol que els eposi o is
o e eixin, ja que d’una mane a indi ec a, aques a capa els necessi a à.
Capa d’in aes uc u a pe a la pe sis ència de dades
Un cop a iba a aques a capa és quan, o i que no s’es ableix cap de les egles del negoci ni
del uncionamen del sis ema, s’aconsegueix ealmen in e ac ua amb les dades
emmaga zemades pe sis emes ex e ns i que així o s els mè odes dels ni ells supe io s inguin
sen i . El p incipal és que aques a connexió amb els sis emes de dades ex e ns es eali zi d’una
mane a desacoblada a la es a de l’aplicació.
En aques a capa es oben o es les connexions di ec es a la base de dades, de mane a que es
puguin an llegi com esc iu e les ca ego ies con ingudes a la base de dades. A més, ambé es
oben aquí o s els ecu sos que En i y F amewo k necessi a pe in e ac ua amb la base de
dades, com el con ex de la base de dades i els models que an elació a les aules d’aques a.
66
T oba em, com a classes p incipals, els Reposi o is, que són classes enca egades de
eali za o es les ope acions de pe sis ència i accés a les dades, en se i an un ORM

, com
di ec amen ADO.NET pe a in e ac ua amb el ges o de bases de dades en conc e . A més
l'accés a aques es dades es eali za à mi jançan una in e ície la qual es oba de inida als
con ac es de la capa de domini, la qual no es eu à a ec ada de cap mane a pe l'accés dels
eposi o is a aques a, ja que no accedi ien a es més que als con ac es p ees able s.
Aques e é mol de sen i enin en comp e que els eposi o is no han de disposa de les
egles de negoci dins la se a capa, enca a que ealmen les uncionali a s a eali za amb les
dades depenguin d’aques es.
Dins d’aques a capa obem:
-Els models de dades. Són explíci amen una ep esen ació dels objec es con ingu s
dins la base de dades, ja que se à amb aques s amb els que es a à un mapping

de la
in o mació ex e a d’aques a i pe me à, en cas de e se i un ORM, que les
ope acions de pe sis ència de dades es eali zin de mane a senzilla i quasi au omà ica.
-Agen de se eis ex e ns. To i que no és obliga o i que hi hagi cap. Aques s se eis
ex e ns a u ili za són àcilmen con usibles amb els se eis de domini, pe ò ealmen
ep esen en un concep e mol di e en dins del sis ema. És decisió de l’a qui ec e escolli
com conside a un se ei, i aques a es basa à en la mane a de ac a la in o mació
d’aques dins del sis ema. Si les dades ob ingudes no han de se ac ades i
coincideixen amb el model de da es, lla o s es pod an conside a com a se eis ex e ns
del eposi o i. Al amen , hau an de se ac ades segons lògica del negoci a la capa de
domini, com ha sigu en el cas d’aques sis ema.
Capa d’in aes uc u a ans e sal
Com el nom d’aques a capa dóna a en end e, aques a capa és accedida pe o es les capes
(excep uan la de p esen ació, quan aques a no es oba inclosa dins de la solució de l'aplicació
backend, com és el cas ac ual).
67
En aques a és on el nos e se ei web disposa de o s els helpe s

, els quals p opo cionen
ce es uncionali a s comunes que esul en mol ú ils a o s els ni ells del p ojec e, com acili a
llegi els i xe s de con igu ació, i que no enen associada una lògica conc e a de cap dels
ni ells.
5.1.2 P incipis SOLID
Un cop s’ha cla i ica l’es uc u a, esul a mol més àcil en end e com els p incipis SOLID s’han
aplica en les di e en s pa s del sis ema.
SOLID és un ac ònim que a e e ència a cinc p incipis bàsics de disseny de so wa e que enen
com a objec iu que el codi p oduï sigui mol més comp ensible, lexible i man enible[21].
-P incipi de esponsabili a única (Single esponsabili y p inciple)

. Especi ica que
cadascun dels elemen s del codi ha de eali za una única uncionali a , e i an que hi
hagi classes que eali zin an es asques que no es pugui en end e la in encionali a
d’aques a. Aques pa ó s’ha e se i d’una mane a cla a amb la c eació de di e en s
classes les quals, o i complemen a -se, enien uncionali a s di e en s i d’aques a
mane a queda a mol cla l’objec iu de cadascuna.
Aques p incipi es à aplica mol cla amen amb la c eació d’un p ojec e enca ega de
consumi els se eis dels sis emes d’esde enimen s, men e que a a és de la capa
d’aplicació, hi ha una connexió amb la capa d’in aes uc u a pe pode inse i les dades
adequades a la base de dades. Com es po eu e, pe un ma eix p océs com ho e a
l’emmaga zemamen de les dades d’un se ei ex e n a la base de dades s’han e se i
es capes di e en s, amb les se es classes i uncionali a s co esponen s.
-P incipi d’obe / anca (Open/closed p inciple)

. Les en i a s han d’es a obe es a
ex ensió, pe ò ancades a modi icació. És a di , que el codi que ja es à e no s’hau ia de
modi ica mai, i si es olguessin a egi no es ca ac e ís iques, mai sob eesc iu ien el
codi p è iamen exis en .
Aques p incipi queda mol cla quan, mi jançan l’ús de la in e ície de eposi o i, la qual
és genè ica (pe me unciona amb el ipus d’objec e de ini en la decla ació de la
68
classe), és mol àcil pode a egi nous eposi o is pe a nous elemen s que poguessin
ac a -se, sense ha e de modi ica el codi dels eposi o is ja exis en s.
Figu a 5.3: Codi d’exemple de la implemen ació d’un eposi o y usan genè ics.
Com es eu a la decla ació de la classe, és de ipus IReposi o y amb el ipus de la
classe a ac a . D'aques a mane a si es olgués implemen a alguna no a uncionali a
sob e un nou ipus d’objec e, en comp es de modi ica la classe Ca ego yReposi o y
només cald à c ea un nou eposi o i al qual li de ini em el ipus a ac a a la in e ície.
El codi es po es end e lla o s, sense necessi a de can ia el que ja es à c ea .
-P incipi de subs i ució de Lisko (Lisko subs i u ion p inciple)

. Aques p incipi diu
que les classes que he e en d’una al a mai hau ien de enca les de inicions de la
classe pa e. D’aques a mane a una classe semp e hau à de se subs i uïble pe la
classe pa e.
En el cas d’aques sis ema no ha sigu necessa i que cap classe he e i d’una al a, pe ò
es dóna el cas que una in e ície de i a d’una al a, de mane a que un objec e que la
implemen a se à comple amen subs i uïble pe un que només implemen a la in e ície
pa a. To i això, es mos a à un exemple més conc e amb l’explicació del següen
p incipi, el qual é mol a més elació amb aques .
-P incipi de seg egació d’in e ícies (In e ace seg ega ion p inciple)

.Aques p incipi
es ableix que cap clien ha de se o ça a depend e de mè odes que no u ili za. És pe
aques mo iu que, pe e i a que un clien implemen i d’una in e ície mol gene al i amb
mol s mè odes, els quals queda an bui s en mol s dels casos, és mol millo sepa a
aques s mè odes en di e ses in e ícies, pe això només implemen a les que s’adeqüin
a les uncionali a s eque ides.
69

A més, com a pun a egi , pe aconsegui que cada classe només implemen i una
in e ície, pe ò alho a es pugui compli aques p incipi, la in e ície que aques a classe
implemen a no é cap mè ode p opi, sinó que és un conjun d’in e ícies que de ineixen
exac amen les uncionali a s eque ides pe a aques cas conc e , com es po eu e a la
ima ge següen :
Figu a 5.4: Codi d’exemple de la implemen ació de di e ses in e ícies en una al a.
Les classes que he e in de IReposi o y<T> lla o s, disposa an de les uncionali a s de
les in e ícies que aques a implemen a. D’aques a mane a, si es donés el cas que una
classe no les eque eix o es, pod ia c ea una in e ície a mesu a, únicamen
implemen an les uncions que ealmen li cald à de ini .
-P incipi d’in e sió de dependències (Dependency in e sion p inciple)

. Com a úl im
dels p incipis SOLID i un dels més elle an s, es oba la in e sió de dependències.
Aques p incipi é com a objec iu p incipal aconsegui desacobla o s els mòduls de
so wa e, de mane a que els a mol més independen s en e si[22].
Pe què els mòduls d’al s ni ells puguin comunica -se amb els mòduls de ni ells més
baixos sense depend e d’aques s, ambdós hau an de depend e d'abs accions. Una
abs acció consis eix a aïlla un elemen del seu con ex o de la es a d'elemen s que
l’acompanyen. Això, en aques sis ema, s’ha aconsegui amb l’ús d’Au o ac

, com s’ha
esmen a a l’apa a de disseny, amb el que s’ha eali za una injecció de les
dependències. El o acoblamen s’ha elimina , ja que mai es eali za una no a
ins ància de cap dels objec es, sinó que a la capa de dis ibu ed se ices s’ha eali za la
injecció de mòduls que s’ha eali za només inicia el se ei web.
70
Figu a 5.5: Codi d’exemple de la con igu ació de di e sos mòduls amb Au oFac
5.1.3 Pa ons i p incipis aplica s
-Sepa ació d’in e essos (Sepa a ion o conce ns, SoC)

. Aques p incipi ens diu que
pe eni cohesió

, cald à que o el codi que és simila o o es les uncions o amen
elacionades hau an de se ag upades conjun amen [23]. En el de cas de la p og amació
en .NET, al com s’ha e pe a aques sis ema, aques s e mes simila s’han d’ag upa
en di e en s p ojec es.
-Baix acoblamen . Con inuan amb el p incipi an e io , cada p ojec e ha de se el més
au ònom possible. Cada peça de codi ha de eni una in e ície cla a i un abas de eball
que mol di ícilmen can ia à, semp e que les al es classes elacionades no can iïn la
uncionali a que eali zen.
-Pa ó eposi o i. Pe a l'accés de dades, a l'ha e -se e mi jançan En i y F amewo k

,
es poden u ili za els ecu sos que aques o e eix[24]. Aques bàsicamen ac a de, al
com ma ca l’a qui ec u a DDD[25], c ea una capa pe als eposi o is, de mane a que
aques a només s’enca egui de la comunicació del codi c# amb el ansac SQL de la
71
nos a base de dades. Pe aconsegui passa àcilmen la in o mació de la base de
dades en objec es de la nos a aplicació, el que s’ha e és bàsicamen c ea uns
objec es els quals mapeja an la in o mació de la base de dades de mane a simple, així
al sis ema se à mol àcil ac a amb aques es dades un cop han es a mapejades.
Figu a 5.6: Codi d’exemple de l’ús de LINQ

sob e la lec u a de ca ego ies de la base de dades amb
En i y F amewo k

.
- A més com es po eu e a la ima ge an e io , als eposi o is es po aplica aques pa ó
mi jançan LINQ (Language IN eg a ed Que y)

, es pe me en eali za mol es
uncionali a s simila s a les de l’sql, pe o dins d’en o ns de p og amació .NET sob e
qualse ol objec e que implemen i la in e ície IEnume able (així com ho són les
col·leccions i a ays).
Figu a 5.7: Codi d’exemple de la capa d’Aplicació eali zan una c ida sob e la capa d’in aes uc u a
amb pe sis ència de dades
72
- Pa ó Ac i e Reco ds. Aques és un pa ó implíci di ec amen amb l’ús de
l’a qui ec u a DDD usada, pel simple e d’emmaga zema ce es dades de l’aplicació en
una base de dades elacional[26]. Aques pa ó s’usa pe a la pe sis ència d’objec es de
mane a que un objec e es à incula a una aula de la base de dades, així que aques
dos es an incula s i si hi ha cap can i sob e l’objec e, aques can i s’hau à de eu e
e lec i a la base de dades.
73
Figu a 5.12. Connexió d’un componen al con enido d’es a
Un cop ca egades les ca ego ies en memò ia, les quals ja es pod an eu e en un llis a sob e
l’aplicació, es pod à e clic sob e aques es, de mane a que això eali za à una al a c ida sob e
el se ei web, ob enin esde enimen s pe anyen s a la ca ego ia seleccionada.
Aques s esde enimen s ob ingu s del nos e se ido , a més, ambé es gua da an dins la
memò ia del na egado , en el con enido d’es a global.
Si ens desplacem a la pes anya del mapa, es eali za una al a c ida al se ei web, amb el
ma eix uncionamen que amb la mos a d’esde enimen s ja explicada an e io men , amb la
di e ència que aques cop es mos en an sols els esde enimen s p ope s a la nos a
locali zació del disposi iu mòbil.
80

5.3 Temps dedica
A la següen aula es po eu e quin ha sigu el emps inal dedica a cadascuna de les asques
indicades a l’in o me inicial de GEP, excloen l'úl ima asca de p epa ació de la de ensa.
Codi
Tasca
Temps dedica
T1
Ges ió inicial
50
T2
Documen ació
90
T3
In es igació APIs
50
T4
C eació se ei web
150
T5
C eació APP
100
T6
P o es inals
70
T7
P epa ació de la de ensa
30 h
TOTAL
540 h
Figu a 2.2 Taula amb les ho es dedicades a cada una de les asques
Com es po obse a , el emps inal dedica ha sigu mol supe io , en especial en els apa a s
de documen ació, in es igació de les APIs ex e nes i la c eació del se ei web.
Això ha sigu degu al e que l’en ocamen del p ojec e a se modi ica , de mane a que es a
dona una majo impo ància al se ei web en comp es de la uncionali a o e a a l’aplicació
web com a al, de mane a que o a la no a in o mació adqui ida pe a pode aplica
l’a qui ec u a esmen ada, així com el complimen dels p incipis de disseny so wa e han
compo a un augmen de emps mol signi ica iu.
Aques can i ha compo a que, a més d’un eplan ejamen comple espec e a la mane a de
p og ama el se ei web, an pel que a a l’a qui ec u a d’aques com al llengua ge escolli en
un p incipi pe al de pode aconsegui un esul a mol més sa is ac o i.
La documen ació ambé ha compo a més emps, ja que en ha e -se ana eali zan a mesu a
que s’ana a a ançan amb el p ojec e, el qual a pa i ce s can is de umb, els quals an
compo a que aques a documen ació anés a ian cons an men du an el pe íode de c eació
de se ei web.
81
6 Validació
Pe a la alidació dels equisi s no uncionals, s’han usa els c i e is de sa is acció especi ica s a
l’apa a de equisi s no uncionals. Les p o es eali zades han sigu amb po encials usua is,
que han p o a l’aplicació pe al de e i ica que complien els equisi s es able s p è iamen .
Més conc e amen han alo a l’aspec e inal de l’aplicació mòbil, que és el que es po eu e a
les següen s ima ges:
Figu a 6.1: Cap u a de pan alla
de la pes anya Ca ego ies

de
l’aplicació mòbil
Figu a 6.2: Cap u a de pan alla
de la in o mació d’un dels
esde enimen s l’aplicació mòbil
Figu a 6.2: Cap u a de pan alla
de la pes anya Rada

de
l’aplicació mòbil
Un cop els usua is han usa l’aplicació han aconsegui en end e-la quasi immedia amen , a
causa del e que l’aspec e d’aques a els ha esul a mol àcil i in uï iu.
82
6.1 Tes ing
Pel que a a la alidació dels equisi s
uncionals, s’ha eali za mi jançan  es ing

.
El ipus de es ing eali za han sigu p o es
au oma i zades mi jançan el amewo k
MSUni

.
Aques només s’ha eali za sob e les classes
del ni ell d’in aes uc u a.
He escolli eali za aques ipus de es ing, ja
que el e d’usa -los o e eix un esul a
con iable, de mane a que el esul a se à
segu de mane a independen a qualse ol
condició ex e na al sis ema.
Figu a 6.4: Di e en s es s eali za s sob e el se ei
web.
El es ing eali za ha sigu an sob e connexió amb els se eis d’esde enimen s, comp o an
que la in o mació ob inguda, un cop mapejada, e a la co ec a, així com sob e l’accés a les
dades, an la lec u a com l’esc ip u a d’aques es.
S’ha de eni en comp e que pe als es s, com en el codi de p oducció, s’ha e ús d’injecció de
dependències, de mane a que ampoc enen cap mena de dependència ex e na i així imi en de
la millo mane a el compo amen del p og ama en uncionamen .
6.1.1 Tes s uni a is
Els es s uni a is enen com a objec iu p o a el compo amen d’una classe únicamen , sense
impo a si la es a de classes de les quals aques a po depend e uncionen o no. Pe a
aconsegui -ho, ha calgu e ús de mocking pe simula el compo amen de les se es
dependències amb la base de dades o els se eis ex e ns. El paque u ili za pe a e el
moqueig s’anomena Moq

.
83
El mocking es eali za au omà icamen , de mane a que amb la ac o ia Au omock es c ea el
mock en emps d’execució, emulan exac amen el compo amen de les dependències
injec ades.
La p ime a egla dels es s uni a is e s és la c eació de l’objec e x

, el qual és l'enca ega de e
se i el eposi o i adequa pe al model conc e que s’es à es ejan . Desp és d'aques pas, el
moqueig es eali za no malmen , com qualse ol al e que no a ús de la injecció de
dependències, en el que s’hau ia d’aconsegui el alo p ees able en la de inició d’aques .
Figu a 6.5: Codi d’exemple d’un es uni a i amb injecció de dependències en se i un Mock

.
Finalmen , com s’obse a a la ima ge an e io , només cald à compa a el esul a ob ingu amb
l’espe a . Com es po eu e, la p incipal di e ència amb un moqueig no mal és la unció
Au oMock.Ge Loose()

la qual e o na l’objec e mock injec a , en comp es de se ins ancia .
6.1.2 In eg a ion Tes s
Amb els es s d’in eg ació he pogu p o a que el compo amen d’una classe, jun amen amb el
de les se es dependències, e a l’espe a .
A la següen ima ge es po eu e la unció Se Up

, la qual p epa a l’en o n pe als es s, buidan
la base de dades i c ean objec es pe a se inse i s. El es mos a p o a que la inse ció dels
elemen s es eali za co ec amen .
84
A l'execu a -se abans de cada mè ode de es , és una bona mane a d’ap o i a codi, que a més
és mol àcilmen llegible.
Figu a 6.6: Codi d’exemple amb la p epa ació dels es s i un es d’in eg ació.
Pe a la eali zació dels es s d’in eg ació, pe no enca amb els p incipis Open-Closed ni
Dependence in e sion

, comen a s an e io men , s’ha hagu de c ea una no a classe, de la qual
cadascun dels es s d’in eg ació ha hagu d’he e a .
Figu a 6.7: Codi d’exemple amb la capçale a d’un es que a ús de la injecció de dependencies.
Aques a classe és la que podem eu e a la ima ge an e io , anomenada IoCSuppo edTes

, la
qual é com a ca ac e ís ica el e de se genè ica. És pe això que podem indica -li el seu ipus,
85

el qual co espon al mòdul co esponen a ac a , de mane a que no cal modi ica -la a aó del
mòdul a e se i .
A la ima ge següen es mos a com, g àcies a la classe esmen ada, es eali za ia la injecció de
la classe desi jada, pe així no ha e -la d’ins ancia .
Figu a 6.8: Codi d’exemple amb la c ida de la unció que ins ancia una classe en emps d’execució als
es s d’in eg ació.
Pe c ea una independència comple a sob e la es a de componen s de les di e en s capes, el
mòdul usa pe a cadascun dels es s és bàsicamen un nou mòdul con ingu dins del p ojec e
de es . D’aques a mane a els es s uncionen sense depend e de cap al e ni ell dins del codi.
L'es uc u a seguida és la mos ada en la següen ima ge.
Figu a 6.9: Codi d’exemple amb la es uc u a dels mòduls dins dels p ojec es de es .
86
7 In eg ació de coneixemen
7.1 Coneixemen s aplica s
Al lla g de la eali zació del meu eball he aplica els següen s coneixemen s ob ingu s de les
ma è ies d’especiali a :
-A qui ec u a del So wa e (AS). M’ha se i pe pode en end e i aplica l’a qui ec u a
en capes DDD, se capaç d’iden i ica i e ús de ce s pa ons de disseny i pode
conèixe el uncionamen de TDD.
-Aplicacions i Se eis Web (ASW). Pe eballa amb el pa adigma clien -se ido , així
com el desen olupamen d’una API REST.
-Disseny de Bases de Dades (DBD). Pe dissenya i desen olupa la base de dades del
sis ema.
-Enginye ia de Requisi s (ER). Aplica en l'especi icació dels equisi s uncionals i no
uncionals, així com en la plani icació i u ili zació de la in o mació anali zada al p incipi
d’aques eball.
-Ges ió de P ojec es de So wa e (GPS). Ús de les di e ses me odologies àgils així
com de ce es eines de desen olupamen pe millo a la quali a del eball eali za .
-P ojec e d’Enginye ia del So wa e (PES): Pel que a al desen olupamen d’un
p ojec e de so wa e en un en o n p o essional, en ús de di e ses ecnologies.
7.2 Assolimen de compe ències
CES1.2: Dona solució a p oblemes d'in eg ació en unció de les es a ègies, dels
es ànda ds i de les ecnologies disponibles.
Aques a compe ència suposa una de les p incipals, pel e que s’han hagu d’a alua mol
aspec es e e en s a les solucions so wa e disponibles, així com dels ecu sos de p og amació
87
ja exis en s a l’ho a d’a alua si e a possible eali za un sis ema que pogués compli els
objec ius desi ja s.
CES1.3: Iden i ica , a alua i ges iona els iscos po encials associa s a la cons ucció de
so wa e que es poguessin p esen a .
Ha calgu eni en comp e els di e sos p oblemes que podien so gi des d’un p ime momen ,
o i que la majo ia ana en a suposa una in e sió supe io pel que a al emps d’ap enen a ge,
pe ò així i o cap suposa a un impedimen a l’ho a de inali za el p ojec e.
CES1.4: Desen olupa , man eni i a alua se eis i aplicacions dis ibuïdes amb supo
de xa xa.
Aques coneixemen suposa la base del sis ema, ja que és el pun p incipal del so wa e c ea ,
el qual es basa en l’ús d’aplicacions dis ibuïdes en xa xa, que de i a ien en la c eació d’una
p òpia.
CES1.7: Con ola la quali a i dissenya p o es en la p oducció de so wa e.
El con ol de la quali a del so wa e s’ha po a a e me g àcies a ce es eines que han pe mès
el e siona ge i les p o es end- o-end manuals. Així i o el pun p incipal de con ol de quali a
han sigu els es s an uni a is com d’in eg ació que s’han implemen a a eu del p ojec e.
CES2.1: De ini i ges iona els equisi s d'un sis ema so wa e.
Ha sigu necessa i eni una isió cla a del sis ema que es olia a c ea , pe així pode , u ili zan
les millo p àc iques, de ini els seus equisi s i la mane a d’implemen a -los complin els
equisi s de quali a es able s.
CES2.2: Dissenya solucions ap opiades en un o més dominis d'aplicació, u ili zan
mè odes d'enginye ia del so wa e que in eg in aspec es è ics, socials, legals i
econòmics.
El sis ema en si ac a un aspec e mol social, de mane a que, al ma ge del se ei web, el e
d’ha e c ea una aplicació mòbil pe me als usua is accedi a les uncionali a s o e es, les
quals poden suposa un can i en el seu en o n social.
88
8 Conclusions
En aques eball de inal de g au he p oposa la c eació d’un sis ema pe a acili a la in e acció
dels usua is en e ells p omo en ce s sis emes d’esde enimen s. Els objec ius han es a
aconsegui s g àcies a la c eació d’un se ei web, el qual s’ha pogu p o a amb una aplicació
mòbil pe a And oid com a clien .
8.1 Assolimen d’objec ius
A con inuació es mos en esumi s els objec ius es able s al capí ol 1.4, pe al de de e mina
com s’han comple .
● C ea una aplicació web o ien ada a l’ús des d’un disposi iu mòbil. Objec iu comple
g àcies a la c eació del se ei web i de l’aplicació web, pe així aconsegui un sis ema
uncional. El ipus de disseny a l’aplicació web és el que mos a com, òb iamen ,
aques a ha es a dissenyada pe a se usada en disposi ius mòbils.
● Pe me e que els usua is puguin in e ac ua amb d’aques s esde enimen s. L’aplicació
web és la in e ície en e l’usua i i el se ei web, i aques se ei web in e acciona
di ec amen amb les aplicacions d’esde enimen s ex e ns, de mane a que el sis ema
Hi MeApp pe me aques a in e acció.
● Fil a esde enimen s. Com s’ha is an e io men , els usua is poden il a els
esde enimen s an a pa i de la ca ego ia d’aques s, com la locali zació segons un
mapa.
● Quali a en el codi. Un cop anali za el sis ema c ea hem is com, especialmen al
se ei web, s’ha e se i una a qui ec u a obus a, amb di e sos mè odes que han
a a o i l’aplicació dels p incipis SOLID, els quals ga an eixen una bona quali a en el
codi desen olupa .
89
Mockups: Un model del disseny g à ic d’un sis ema, imi an o o ien an l’espe a inalmen .
ORM: Ac ònim del e me anglès Objec - ela ional mapping, el qual és una ècnica pe
aconsegui con e i dades en e ipus de sis emes incompa ibles, mi jançan la p og amació
o ien ada a objec es.
P ojec manage : Pe sona enca egada de di igi el p ojec e pe així ga an i el complimen de
les da es en la eali zació d’un p ojec e.
REST: Ac ònim del e me anglès Rep esen a ional S a e T ans e , el qual a e e ència a un
es il d’a qui ec u a so wa e que de ineix una sè ie de condicions a usa a l’ho a de c ea
se eis web.
REST ul: P opie a dels sis emes REST.
Single Page Applica ion: Te me que a e e ència a o es aquelles pàgines web que
in e ac uen amb l’usua i amb el simple e de eca ega la ma eixa pàgina ac ual en comp es
de po a -ne una no a cada cop des del se ido .
S akeholde s: G ups de pe sones que poden a ec a o que són a ec a s pe les ac i i a s d’una
emp esa.
Tes e : Pe sona enca egada de eali za el es ing d’un p og ama.
Tes ing: Ac e de eali za di e ses p o es sob e el codi pe així pode e i ica el co ec e
uncionamen d’aques .
T anspila : P océs de con e sió d’un codi a un al e del seu ma eix ni ell d’abs acció pe què
així pugui se in e p e a pe al es sis emes.
URI: Ac ònim del e me anglès Uni o m Resou ce Iden i ie , el qual a e e ència a una cadena
de ca àc e s que iden i ica un ecu s en pa icula .
Ja aSc ip : Un llengua ge de p og amació u ili za habi ualmen pe a c ea e ec es in e ac ius
als na egado s web.
JSX: És una sin axi usada pe Reac , la qual es én de ECMASc ip , de mane a que es po usa
la sin axi HTML jun amen amb la sin axi Ja aSc ip .
96

97