scieee Open visual document viewer

Desevolupament d'una app de gestió d'esdeveniments

Ramírez Navajón, Ferran

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.

Full text

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