ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012....

105
1 ENGINYERIA DEL SOFTWARE II Memòria del projecte Photo Trip Jordi Cazorla Riera Eduard Rando Segura Ivan Rando Segura Pau Xiberta i Armengol 18/05/2012

Transcript of ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012....

Page 1: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

1

ENGINYERIA DEL SOFTWARE II

Memòria del projecte

Photo Trip

Jordi Cazorla Riera

Eduard Rando Segura

Ivan Rando Segura

Pau Xiberta i Armengol

18/05/2012

Page 2: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

2

Í ndex

1. Pla de projecte ............................................................................ 6 1.1. Introducció, motivació i objectius .......................................................... 6

1.2. Tasques ............................................................................................................. 7 1.2.1. Pla de projecte ............................................................................................................ 7

1.2.2. Requeriments ............................................................................................................. 7

1.2.3. Anàlisi ............................................................................................................................ 7

1.2.4. Disseny .......................................................................................................................... 7

1.2.5. Prototipatge ................................................................................................................ 7

1.2.6. Documentació ............................................................................................................. 8

1.3. Metodologia .................................................................................................... 8

1.4. Recursos humans .......................................................................................... 8

1.5. Software ............................................................................................................ 9 1.5.1. Dropbox ........................................................................................................................ 9

1.5.2. Microsoft Office ....................................................................................................... 10

1.5.3. Visual Paradigm for UML .................................................................................... 10

1.6. Temporització ............................................................................................. 10

1.7. Viabilitat ........................................................................................................ 13 1.7.1. Costos .......................................................................................................................... 13

1.7.2. Ingressos ................................................................................................................... 13

2. Revisió del pla de projecte .................................................. 15 2.1. Temporització ............................................................................................. 15

3. Requeriments del sistema ................................................... 17 3.1. Introducció ................................................................................................... 17

3.1.1. Conceptes .................................................................................................................. 17

3.1.2. Països, regions, sub-regions i indrets ............................................................ 17

3.1.3. Fotografies dels indrets ....................................................................................... 18

3.1.4. Tipus d’usuari .......................................................................................................... 18

3.2. Requeriments funcionals ........................................................................ 19 3.2.1. Usuari principiant .................................................................................................. 19

3.2.1.1. Registrar-se.................................................................................................................. 19

3.2.1.2. Mostrar regió .............................................................................................................. 19

3.2.1.3. Obtenció dels Indrets ............................................................................................... 19

3.2.1.4. Mostrar Indret ............................................................................................................ 20

3.2.1.5. Cercar Indret ............................................................................................................... 20

3.2.1.6. Obtenir itinerari ......................................................................................................... 20

3.2.1.7. Validació de la fotografia ........................................................................................ 20

3.2.1.8. Puntuació ...................................................................................................................... 20

3.2.1.9. Classificació d’usuaris .............................................................................................. 21

Page 3: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

3

3.2.1.10. Incidències ................................................................................................................... 21

3.2.1.11. Informació de fotografies ....................................................................................... 21

3.2.1.12. Àlbum de fotografies ................................................................................................ 21

3.2.1.13. Llista d’amistats ......................................................................................................... 21

3.2.1.14. Publicar fotografia al Facebook ............................................................................ 21

3.2.2. Usuari expert ........................................................................................................... 22

3.2.2.1. Crear itinerari ............................................................................................................. 22

3.2.2.2. Suggeriments .............................................................................................................. 22

3.2.3. Administrador ......................................................................................................... 23

3.2.3.1. Gestió d’usuaris .......................................................................................................... 23

3.2.3.2. Gestió d’indrets .......................................................................................................... 23

3.2.3.3. Gestió de suggeriments ........................................................................................... 23

3.2.3.4. Gestió d’incidències .................................................................................................. 23

3.2.3.5. Estadístiques ............................................................................................................... 23

3.3. Requeriments no funcionals ................................................................. 24

4. Anàlisi ......................................................................................... 27 4.1. Diagrama de casos d’ús general ........................................................... 28

4.2. Diagrama de casos d’ús: Part Administrador ................................. 29

4.3. Diagrama de casos d’ús: Part Amics Usuari .................................... 30

4.4. Diagrama de casos d’ús: Part Classificació ...................................... 31

4.5. Fitxes de cas d’ús ....................................................................................... 32 4.5.1. Registrar-se .............................................................................................................. 33

4.5.2. Mostrar indret ......................................................................................................... 34

4.5.3. Cercar indret ............................................................................................................ 35

4.5.4. Enviar incidència .................................................................................................... 35

4.5.5. Fer fotografia ........................................................................................................... 36

4.5.6. Veure informació indret ...................................................................................... 36

4.5.7. Veure incidència ..................................................................................................... 37

4.5.8. Veure estadístiques ............................................................................................... 38

4.5.9. Afegir amic ................................................................................................................ 38

4.5.10. Eliminar amic ........................................................................................................... 39

4.5.11. Validar fotografia ................................................................................................... 40

4.5.12. Crear itinerari .......................................................................................................... 41

4.5.13. Generació automàtica d’itinerari ..................................................................... 41

4.5.14. Veure classificació global i tots......................................................................... 42

4.5.15. Veure classificació global i amics..................................................................... 42

4.5.16. Veure classificació països i tots ........................................................................ 43

4.5.17. Veure classificació països i amics .................................................................... 44

4.5.18. Suggerir indret ........................................................................................................ 45

4.5.19. Mostrar itinerari ..................................................................................................... 45

4.5.20. Mostrar llista d’amics ........................................................................................... 46

4.5.21. Afegir usuari ............................................................................................................. 46

4.5.22. Inhabilitar usuari ................................................................................................... 47

Page 4: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

4

4.5.23. Afegir indret ............................................................................................................. 47

4.5.24. Eliminar indret ........................................................................................................ 48

4.6. Diagrama d’activitat ................................................................................. 49 4.6.1. Mostrar itinerari ..................................................................................................... 49

4.7. Diagrames de seqüència ......................................................................... 50 4.7.1. Afegir amic ................................................................................................................ 51

4.7.2. Crear indret .............................................................................................................. 52

4.7.3. Mostrar indret ......................................................................................................... 53

4.7.4. Validar fotografia ................................................................................................... 54

4.7.5. Veure classificació global i tots......................................................................... 55

4.7.6. Veure incidència ..................................................................................................... 56

4.7.7. Veure estadístiques ............................................................................................... 57

4.8. Diagrama de classes inicial .................................................................... 59

5. Disseny ....................................................................................... 60 5.1. Patrons ........................................................................................................... 61

5.1.1. Patró Composite ...................................................................................................... 61

5.1.2. Patró Strategy .......................................................................................................... 62

5.1.3. Patró Singleton ........................................................................................................ 64

5.1.4. Altres patrons .......................................................................................................... 65

5.2. Diagrama de classes amb patrons ...................................................... 66

5.3. Restriccions OCL ........................................................................................ 67

5.4. Diagrama de classes final ....................................................................... 69

5.5. Model relacional ......................................................................................... 71 5.5.1. Taules .......................................................................................................................... 71

5.5.2. Diagrama entitat-relació ..................................................................................... 72

6. Prototipatge .............................................................................. 73 6.1. Icona ................................................................................................................ 73

6.2. Pantalla inicial ............................................................................................. 73

6.3. Seleccionar indret ...................................................................................... 74 6.3.1. Llista d’indrets ........................................................................................................ 75

6.3.2. Seleccionar indret concret ................................................................................. 76

6.4. Validar fotografia ....................................................................................... 76

6.5. Classificació .................................................................................................. 77 6.5.1. Classificació global i tots ..................................................................................... 77

6.5.2. Classificació global i amics ................................................................................. 78

6.5.3. Classificació països i tots ..................................................................................... 79

6.5.4. Classificació països i amics ................................................................................. 80

6.6. Gestió d’amics ............................................................................................. 80

6.7. Àlbum de fotografies ................................................................................ 81

6.8. Itineraris ........................................................................................................ 83

Page 5: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

5

6.9. Suggeriments ............................................................................................... 85

Annex I: Reunions realitzades ................................................. 86

Annex II: Generació automàtica d’itineraris ....................... 88 A2.1. Introducció ................................................................................................. 88

A2.2. Circular Range Searching ..................................................................... 88

A2.3. Disk/ball Range Searching Queries ................................................... 90 A2.3.1. Range counting ..................................................................................................... 91

A2.3.2. Range reporting ................................................................................................... 91

A2.3.3. Anàlisi de complexitat ....................................................................................... 92

A2.4. Conclusions ................................................................................................ 92

Annex III: Manual d’usuari ........................................................ 93 A3.1. Ínici de l’aplicació .................................................................................... 93

A3.2. Funcionalitats bàsiques de l’aplicació ............................................ 93

A3.3. Mapamundi ................................................................................................ 94 A3.3.1. Seleccionar país ................................................................................................... 94

A3.3.2. Seleccionar indret ............................................................................................... 95

A3.3.3. Fotografiar indret ............................................................................................... 95

A3.4. Classificació ............................................................................................... 96

A3.5. Amistats ...................................................................................................... 98

A3.6. Àlbum de fotografies ........................................................................... 100

A3.7. Itineraris .................................................................................................. 101

A3.8. Suggeriments ......................................................................................... 104

Annex IV: Control d’hores ........................................................ 105

Page 6: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

6

1. Pla de projecte

En aquest document es recull el disseny d’un projecte sobre una aplicació mòbil

que ens permetrà saber quin percentatge de països d’arreu del món hem visitat.

L’aplicació està pensada com un joc per competir amb altres usuaris.

1.1. Introducció, motivació i objectius

Aquest projecte neix de la idea de crear una aplicació per a mòbils o smartphones.

Seguint aquesta idea, els membres del grup vam iniciar una pluja d’idees donant com a

resultat diferents propostes encarades en aquest àmbit, el de les aplicacions per a

dispositius mòbils.

Un cop obtingudes les diferents propostes, vam comentar-les i debatre-les fins que,

amb el consentiment de cadascú, vam arribar a reduir-les a dues. La primera d’aquestes

era quelcom força semblant al que avui coneixem com a la “cronologia” de la xarxa social

Facebook. Precisament aquest motiu, el fet de mantenir aquesta semblança, ens va acabar

de convèncer per descartar-la, de manera que vam aconseguir quedar-nos amb una única

proposta.

Aquesta proposta final consisteix en una aplicació que pretén motivar els seus

usuaris a recórrer el món. La manera escollida per moure’s i viatjar a tots els indrets es

caracteritza per intentar fotografiar certs llocs emblemàtics escampats arreu del planeta

que estaran inclosos a l’aplicació, obtenint al mateix temps una determinada puntuació per

a cada indret. Així, un usuari de l’aplicació podrà consultar els punts que ha obtingut i el

percentatge d’indrets visitats per fer-se una idea de la seva virtut de viatjant.

A més a més, aquesta aplicació no abandona del tot la connotació de xarxa social

que tenia la primera proposta, i podrà permetre als usuaris buscar i afegir altres usuaris

amics a la seva aplicació per saber-ne la seva puntuació o percentatge, reforçant així

l’esperit competitiu.

És per això que el nostre objectiu serà proporcionar als usuaris de les aplicacions

mòbils una eina d’entreteniment que els permetrà poder veure diferents llocs del món, a la

vegada que podran crear diferents rutes d’indrets i compartir-les, tal com si organitzessin

un pla de viatge.

En aquest document però, tot i que el nostre projecte es focalitzarà en poder

assolir l’objectiu que hem descrit, també ens dedicarem a crear una planificació adequada

tot dividint les tasques a realitzar. A més, el seguiment d’una determinada metodologia,

entendre bé els rols de cadascú, encara que en determinats moments no se segueixin al

peu de la lletra, saber quin software emprar, i la realització d’un correcte i alhora profund

anàlisi i disseny, seran part imprescindible en el nostre projecte.

Page 7: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

7

1.2. Tasques

Dividirem el pla de projecte en diferents parts. Aquestes parts, que anomenarem

fases, es troben explicades a continuació.

1.2.1. Pla de projecte

Consisteix en l’elaboració d'un full de ruta a seguir durant el projecte. Es tracta

d’una guia, de manera que el seu seguiment no serà estricte i es podrà veure modificat al

llarg de l’elaboració de la nostra aplicació.

1.2.2. Requeriments

Tot i que la primera fase real de l'aplicació és l'elaboració del pla de projecte, en

tractar-se d’un full de ruta, podem considerar que la fase de requeriments és la inicial.

Així doncs, en aquesta primera fase es treballarà en la definició dels requeriments,

els quals ens indicaran quines seran les tasques que haurà de realitzar la nostra aplicació,

és a dir, cadascuna de les seves funcionalitats, ja siguin funcionals o no funcionals.

1.2.3. Anàlisi

La següent tasca que durem a terme serà la part del projecte que ens permetrà

poder comprendre d'una manera més clara i precisa cadascuna de les necessitats del

nostre sistema. Per tant, la feina que caldrà realitzar en aquest sentit serà especificar més

clarament els requeriments anteriors alhora que comencem a definir quines seran les

classes que intervindran a la nostra aplicació, de la mateixa manera que haurem

d’especificar els diagrames d'interacció amb l'usuari. Tots aquests diagrames estaran

modelats amb UML.

1.2.4. Disseny

En aquesta tercera fase, la de disseny, ens centrarem en l'especificació del

programari mirant d'adaptar la documentació creada a la fase d'anàlisi per poder-la

encarar a la implementació final del sistema.

1.2.5. Prototipatge

El projecte que desenvolupem en aquest document es basa únicament en

l’elaboració correcta de les fases anteriors, deixant de banda així la part de programació.

És per aquest motiu que, en comptes d’implementar la nostra aplicació, intentarem

substituir aquesta part amb la creació d’un conjunt d'imatges o prototipus representatius

per poder fer-nos una idea a simple vista de com estarà estructurada, a nivell d'interfície,

la nostra aplicació.

Page 8: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

8

1.2.6. Documentació

Aquesta darrera part ens serà útil per detallar cadascuna de les parts del projecte

en què haurem treballat durant la seva elaboració. Tot i tractar-se d’una feina feixuga i que

pot reservar-se fàcilment pel final, intentarem anar-la duent a terme a mesura que anem

avançant entre les fases del projecte, aprofitant que tindrem els conceptes més clars i

aconseguint una reducció important en l’acumulació de feina al tram final.

1.3. Metodologia

En aquest apartat comentarem quina metodologia hem emprat durant la

realització del nostre projecte. Per escollir-ne una, després de saber com s’estructuraria el

projecte, ens vam reunir per pensar quins serien els millors mètodes a seguir per poder

optimitzar recursos i temps.

D’aquesta manera, un cop definits els requeriments del sistema, vam creure que la

metodologia que millor s’adequava a l’elaboració del nostre projecte era el seguiment d’un

procés iteratiu incremental. Això significa que, a mesura que anàvem evolucionant la

nostra aplicació, també avançàvem a través de l’anàlisi i el disseny, i en el cas que topéssim

amb alguns errors o aspectes a modificar, retornàvem a punts anteriors per tornar a

construir amb les peces ben col·locades.

El següent esquema il·lustra i resumeix el procés iteratiu incremental que s’ha

utilitzat com a metodologia.

1.4. Recursos humans

Per avançar en un projecte i elaborar una aplicació, qualsevol equip de

desenvolupament requereix de recursos humans. Aquí explicarem com hem estructurat

aquests recursos per intentar repartir-nos la feina equitativament.

El nostre equip de treball està compost per quatre persones. Cadascuna d’elles

assumirà un rol per garantir que el projecte s’acabi realitzant amb èxit. D’entre els

possibles rols, hem escollit el cap de projecte, l'analista, el creatiu i el finalitzador. Cal dir

però, que aquests rols són orientatius i un membre del grup no serà mai l’únic responsable

d’una tasca del projecte, perquè la virtut d'aquest grup de treball és que existeix la

Diagrama 1. Esquema representatiu de la metodologia emprada

Page 9: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

9

possibilitat d'adaptar-se al rol que més s’adeqüi en un moment concret. Tot i així, a

continuació llistem els diferents membres de l’equip juntament amb el rol que han

assumit:

Cap de projecte: Jordi Cazorla Riera

Analista: Ivan Rando Segura

Creatiu: Eduard Rando Segura

Finalitzador: Pau Xiberta i Armengol

El diagrama següent intenta il·lustrar de forma gràfica la distribució i l’estructura

d’aquests rols.

1.5. Software

Tot i que en aquest projecte no s’ha dut a terme la implementació de l’aplicació,

també hem hagut de fer ús d’algun software per a l’elaboració de la documentació i dels

diagrames, així com d’algun sistema de control de versions per a compartir els documents

amb tots els membres del grup.

En aquest apartat farem una descripció de cadascuna de les eines software que

hem necessitat.

1.5.1. Dropbox

Es tracta d’un sistema de control de versions que ens ha permès compartir entre

tots els membres del grup diferents documents referents a les parts del projecte

elaborades per cadascú.

Diagrama 2. Esquema dels rols assumits pels membres de l’equip.

Page 10: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

10

S’han descartat altres sistemes de control de versions, com ara el Subversion o el

Git, perquè, en tractar-se d’un projecte mancant d’implementació, aquestes eines ens

afegien funcionalitats innecessàries que feien una mica més difícil la gestió dels documents

durant l’elaboració de la nostra aplicació.

En tractar-se d’una eina gratuïta, no hi ha hagut problemes per cap membre del

grup a l’hora d’obtenir-la.

1.5.2. Microsoft Office

Microsoft Office fa referència a un conjunt d’eines software d’oficina que ens han

permès elaborar tota la documentació.

Entre aquestes eines hi trobem el Microsoft Word , que és un editor de textos que

ens ha servit per redactar cadascuna de les parts de la documentació; el Microsoft Excel,

una fulla de càlcul que hem utilitzat per a la creació de taules i gràfics; i el Microsoft

PowerPoint, un software per elaborar presentacions que també permet l’elaboració

d’esquemes i d’altres figures que ajuden a il·lustrar millor alguns aspectes de la

documentació.

No és una eina gratuïta, però com que tots els membres del grup en tenim llicència,

s’ha optat per utilitzar-la.

1.5.3. Visual Paradigm for UML

Es tracta d’una eina de modelatge UML que ens ha servit per a poder realitzar tots

els diagrames corresponents a la fase d’anàlisi i disseny del nostre projecte, descrivint els

conceptes de manera ràpida i eficaç.

Tampoc és una eina gratuïta, però tots els membres del grup disposem d’una

llicència de la Universitat de Girona que ens permet utilitzar-la.

1.6. Temporització

Aquest apartat ens servirà per a definir una temporització, és a dir, un data inicial i

una data final, per a cadascuna de les diferents tasques del projecte.

La temporització, o sigui, la quantitat de temps destinat a cada tasca, s’ha realitzat

en funció de la importància i la prioritat de la tasca. Per tant, tot seguit mostrem la data

inicial i final del nostre projecte, i la distribució de temps per a cada tasca:

Data d’inici: 21 de febrer del 2012.

Data de fi: 18 de maig del 2012.

Page 11: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

11

FASE HORES % DE TEMPS DESTINAT

Pla projecte 15 5% Requeriments 30 10%

Anàlisi 75 25% Disseny 120 40%

Prototipatge 45 15% Documentació 15 5%

Total 300 100%

Taula 1. Temporització per tasques.

Si ens fixem en la taula anterior, podem observar que hem estimat una durada total

del projecte d’unes 300 hores, a repartir en 13 setmanes. Per tant, això significa que cada

membre del grup haurà de treballar de 5 a 6 hores a la setmana si es vol complir aquesta

planificació.

No obstant, el ritme de treball en el projecte pot fluctuar, i hi poden haver

setmanes que hi dediquem més o menys temps. Per aquest motiu prenem la dada de les

hores a dedicar com a orientativa. A més a més, seguint amb el que hem comentat abans,

cada membre del grup té assignat un rol, fet que significa que en determinades fases del

projecte haurà d’assumir més o menys responsabilitat, i podrà comportar-li un augment o

una reducció de les hores de dedicació.

La taula següent estima el nombre d’hores que haurà de dedicar a cada fase del

projecte cadascun dels membre del grup, representats pel rol que assumeixen.

Pla Proj. Requer. Anàlisi Disseny Prototip. Docum. Total

Cap proj. 6 7 18 30 10 5 76

Analista 3 7 20 30 10 2 72

Creatiu 3 9 19 30 10 2 73

Finalitz. 3 7 18 30 15 6 79

Total 15 30 75 120 45 15 300

Taula 2. Temporització per rols i tasques.

A més a més, periòdicament es realitzaran una sèrie de reunions per avaluar com

avança el projecte i cadascuna de les seves parts [Annex I]. També es mantindrà un control

de les hores que cada membre hagi dedicat a cadascuna de les parts del projecte [Annex

IV].

Page 12: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

12

21/02/2012 12/03/2012 01/04/2012 21/04/2012 11/05/2012

Pla projecte

Requeriments

Anàlisi

Disseny

Prototipatge

Documentació

Cal tenir present que un dels elements que han condicionat el nostre estudi de

planificació han estat les dates d’entrega de cadascuna de les parts del projecte. Les dates

són les següents:

Requeriments i pla de projecte: 27 de març.

Anàlisi: 20 d’abril.

Disseny: 11 de maig.

Prototipatge, documentació i manual d’usuari: 18 de maig.

Presentació final del projecte: 7 de juny.

Finalment, també hem elaborat un diagrama de Gantt per resumir el nostre estudi

de planificació. Al diagrama hi podem apreciar clarament com ha estat repartida la feina,

encara que algunes de les tasques en què es divideix el projecte s’aniran revisant a mesura

que aquest avanci.

També volem destacar que, tot i que les dates d’entrega de cada part del projecte

estiguin fixades, tal com hem vist abans, això no implica que després d’aquestes dates no

es continuï avançant i millorant cadascuna d’aquestes parts. És per aquest motiu que les

dates finals que apareixen al diagrama poden ser diferents de les dates d’entrega.

Diagrama 3. Diagrama de Gantt de la planificació inicial.

Page 13: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

13

1.7. Viabilitat

Per saber si un projecte es pot dur a terme o no, cal fer un estudi de viabilitat. Això

significa que cal saber quins costos representaria la seva implementació i d’on trauríem el

finançament per cobrir aquests costos en el cas que el projecte anés endavant.

1.7.1. Costos

Si el projecte que expliquem en aquest document es volgués portar a la pràctica, hi

hauria un conjunt de factors relacionats que suposarien unes despeses i que caldria tenir

en compte abans de continuar.

Entre aquests factors hi podríem trobar els salaris dels treballadors que

s’encarregarien d’implementar l’aplicació. En aquest sentit, caldria estudiar el nombre

d’hores necessàries per fer la implementació i decidir quin seria el preu per cada hora

treballada.

D’altra banda, cal comptar amb tots els recursos necessaris per a desenvolupar

l’aplicació. En serien un exemple el lloguer del local, si calgués, o les llicències de software

específic per a la implementació.

A més a més, dins dels recursos necessaris també hi podríem incloure els elements

hardware imprescindibles per garantir el bon desenvolupament de l’aplicació.

En tractar-se d’una aplicació mòbil, també haurem de pensar, un cop acabada

l’aplicació, o almenys una primera versió, en el cost de publicació d’una aplicació a

l’Android Market, en el cas de la versió per Android, o a l’Apple Store, en el cas de la versió

per iPhone.

Per acabar, haurem de tenir en compte un element específic de la nostra aplicació.

Es tracta del conjunt de fotografies dels indrets que mostrarem. Podem obtenir-les de

diverses maneres, però la majoria podrien representar-nos un cost més. Per exemple, si

les prenguéssim de la xarxa hauríem de vigilar amb els drets d’autor.

1.7.2. Ingressos

Per fer front a tots els costos que hem exposat a l’apartat anterior s’hauran de

buscar vies de finançament que pal·liïn aquestes despeses.

La primera idea per obtenir ingressos és intentar treure profit dels dos tipus de

versions de la nostra aplicació. Per un costat hi haurà la versió gratuïta que s’oferirà a tots

als usuaris. Els ingressos d’aquesta versió es poden aconseguir mitjançant la publicitat que

es mostrarà en algunes funcionalitats de l’aplicació. Per l’altre costat, també es disposarà

d’una versió de pagament per aquells usuaris que no vulguin publicitat a l’aplicació. Així,

els ingressos d’aquesta versió s’obtindrien directament dels usuaris, que passarien a ser

usuaris premium.

Page 14: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

14

L’altra idea que plantegem per disposar de finançament es basa en les

funcionalitats de la mateixa aplicació. Es pot aprofitar el fet que s’hagin de fotografiar certs

indrets per comunicar a empreses propietàries de llocs emblemàtics que tenen l’opció

d’aparèixer a la nostra aplicació com a indret a fotografiar si aporten una part del

finançament. De la mateixa manera, també es pot demanar finançament a ajuntaments o a

d’altres entitats públiques que vulguin que el seu territori tingui un pes més important a

l’aplicació pel que fa al nombre d’indrets a fotografiar.

De fet, és per aquest motiu que existeix el tipus d’usuari “corporatiu”, per oferir a

aquestes entitats públiques l’opció de promocionar el seu territori a través de la nostra

aplicació.

Page 15: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

15

2. Revisio del pla de projecte

Poques vegades la planificació final d’un projecte coincideix exactament amb la

planificació inicial que s’havia previst. El nostre cas no ha estat una excepció i ens hem

endarrerit en la segona entrega del desenvolupament del projecte, la que fa referència a la

part d’anàlisi. En aquest apartat redefinirem el pla de projecte tenint en compte aquesta

modificació.

De fet, les tasques que cal realitzar no han canviat respecte les que teníem al pla de

projecte inicial, de la mateixa manera que tampoc han canviat els recursos humans i el

software. Per tant, l’únic punt que s’ha vist afectat i que cal tornar a definir és l’apartat de

temporització.

2.1. Temporització

Abans d’entrar en detall, cal tenir en compte que l’objectiu de la temporització

continua sent el mateix: tenir el projecte acabat per la data d’entrega final. Per tant, caldrà

revisar les hores dedicades al projecte per cada membre del grup fins al moment, i

comprovar si s’havia fet una mala planificació inicial o si cal més implicació per part de

tots els membres del grup.

De moment, recordem les dates inicials i finals del projecte:

Data d’inici: 21 de febrer del 2012.

Data de fi: 18 de maig del 2012.

Hem de destacar que tots aquests imprevistos i aquestes modificacions han estat a

l’ordre del dia de les reunions que mantenim periòdicament els membres del grup.

Pel que fa a les hores que s’havien previst, hem comprovat que es va fer una

estimació massa optimista de la fase d’anàlisi, assignant-li menys hores de les que li

haurien pertocat. De fet, el nombre d’hores que s’han dedicat a aquesta fase actualment ja

és superior al nombre d’hores previstes al principi, fet que també pot afectar a la fase de

disseny. Per tant, tot això ens ha fet replantejar les dates previstes per la resta de tasques

del projecte i ens ha fet modificar el diagrama de Gantt inicial.

A continuació tornem a llistar les dates d’entrega de les diferents tasques del

projecte amb les modificacions pertinents des de la fase d’anàlisi. Com que la data

d’entrega d’aquesta part s’ha allargat, també s’ha vist afectada la data d’entrega de la part

de disseny, encara que hem volgut mantenir la mateixa data d’entrega final.

Requeriments i pla de projecte: 27 de març.

Anàlisi: 26 d’abril.

Disseny: 13 de maig.

Page 16: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

16

21/02/2012 12/03/2012 01/04/2012 21/04/2012 11/05/2012

Pla projecte

Requeriments

Anàlisi

Disseny

Prototipatge

Documentació

Prototipatge, documentació i manual d’usuari: 18 de maig.

Presentació final del projecte: 7 de juny.

Podem observar com la primera data d’entrega s’ha mantingut, però la d’anàlisi

s’ha endarrerit sis dies i, com a conseqüència, la de disseny ho ha fet dos dies més. Com

que hem d’intentar mantenir el client content, hem procurat no modificar les dues

darreres dates d’entrega perquè la documentació, juntament amb el prototipatge i el

manual d’usuari, són tasques del projecte que és important entregar el dia proposat al pla

de projecte inicial.

Així, si duem a terme les modificacions al diagrama de Gantt, obtenim un nou

diagrama que reflecteix la nova planificació del projecte.

Diagrama 4. Diagrama de Gantt de la planificació inicial revisat.

Page 17: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

17

3. Requeriments del sistema

Es tracta d’una aplicació mòbil que ens permet mantenir un registre dels diferents

llocs del món que hem visitat. Ho farà seguint la idea d’un joc, de manera que a més llocs

visitats, més puntuació. L’aplicació proposarà una sèrie d’imatges dels diferents indrets, i

l’usuari haurà de fotografiar-los amb el mòbil per demostrar que hi ha viatjat.

3.1. Introducció

3.1.1. Conceptes

Indret (o punt d’interès): Un indret serà un punt d’interès geogràfic de la nostra

aplicació al qual tindrem l’opció de fer una fotografia.

Regió: Agrupació d’indrets o d’altres regions.

Itinerari: Un itinerari estarà format per una seqüència ordenada d’indrets a

visitar.

3.1.2. Països, regions, sub-regions i indrets

La nostra aplicació no ha de permetre només la separació d’indrets per països. En

algunes situacions, pot ser que un país concret tingui algunes regions on hi ha molts més

indrets destacats que no pas d’altres, i també pot passar que alguns països tinguin molt

pocs indrets a visitar.

Per aquest motiu, hem de poder permetre agrupar els indrets en regions. Així, un

país podrà tenir una col·lecció d’indrets i una col·lecció de regions. Es farà ús de les

regions quan en una zona molt petita hi hagi molts indrets a visitar.

Una regió, per la seva banda, també podrà tenir una col·lecció d’indrets i una

col·lecció de regions (sub-regions). D’aqueta manera, per més indrets que afegim (sempre

pensant en el creixement de l’aplicació), tindrem l’opció d’agrupar-los en una regió per

poder gestionar-los millor.

Quan l’usuari seleccioni un país, podrà veure la col·lecció d’indrets i la de regions, i

en qualsevol moment podrà seleccionar una regió per veure’n les seves col·leccions

(d’indrets o bé de sub-regions).

Per posar un exemple, si seleccionéssim Catalunya com a país, podríem veure una

determinada col·lecció d’indrets escampats arreu del país. Però si pensem en Barcelona,

en tenir tants indrets destacats per visitar, hi hauria una concentració d’indrets massa

densa en un punt prou petit. Per tant, Barcelona passaria a ser una regió (o el Barcelonès)

que contindria una col·lecció de tots els indrets d’aquesta regió. Si, tot i així, hi continués

havent massa concentració, es podrien crear més regions dins d’una regió (per exemple,

que cada barri fos una sub-regió).

Page 18: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

18

Amb aquesta tècnica permetem el creixement de la nostra aplicació pel que fa al

nombre d’indrets sense afectar a la visualització d’aquests.

3.1.3. Fotografies dels indrets

Un indret podrà tenir associades més d’una imatge per poder permetre a l’usuari

diferents perspectives (els punts des d’on farà la fotografia) de l’indret. Per exemple, si

l’indret fos la Muralla xinesa, seria poc seriós que només es pogués fer la fotografia des

d’una sola perspectiva; per tant, la idea seria incloure diferents fotografies de la Muralla

xinesa (al llarg del seu recorregut), i que l’usuari pogués escollir aquella que li fos més

convenient per intentar imitar-la.

3.1.4. Tipus d’usuari

L’aplicació contindrà diferents tipus d’usuaris:

Usuari principiant

Usuari expert

Usuari premium

Usuari corporatiu

Considerarem usuaris principiants a aquells que acaben de descarregar-se

l’aplicació o que tenen menys d’uns determinats punts (n punts). Aquest usuaris només

podran utilitzar les funcionalitats bàsiques de l’aplicació.

Considerarem usuaris experts aquells usuaris que han obtingut més de n punts.

Aquests usuaris podran realitzar tot el que feia l’usuari principiant i, a més a més, podran

suggerir indrets o crear itineraris.

Els usuaris

premium, en no

tenir influència

directa sobre les

funcionalitats, no

es contemplaran

com a actors.

Diagrama 5. Tipus d’usuari.

Page 19: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

19

Considerarem usuari premium els usuaris que han pagat perquè no els aparegui

publicitat a l’aplicació. Depenent dels punts que hagin aconseguit podran realitzar les

mateixes funcionalitats que els usuaris principiants o els usuaris experts.

Considerarem usuari corporatiu a entitats o empreses que vulguin fer publicitat a

través de la nostra aplicació. Aquests usuaris, de la mateixa manera que els usuaris

experts, podran suggerir indrets o crear itineraris. Serà un tipus d’usuari força diferent de

la resta, perquè el seu objectiu no serà avançar en el joc, sinó proporcionar eines per

complementar-lo des del seu propi benefici.

3.2. Requeriments funcionals

3.2.1. Usuari principiant

En aquest apartat explicarem les funcionalitats de l’aplicació que podran dur a

terme els usuaris principiants.

3.2.1.1. Registrar-se

L’usuari ha de poder introduir la seva informació bàsica per poder ser reconegut

pel sistema.

La informació que necessitarem guardar serà el nom d’usuari, que haurà de ser

únic en el sistema. Un cop registrat, no es tornarà a preguntar el nom d’usuari.

3.2.1.2. Mostrar Regió

Una regió serà una agrupació d’indrets (punts d’interès) o d’altres regions (sub-

regions). L’aplicació haurà de mostrar el perfil geogràfic de la regió i indicar els seus

components (les seves col·leccions), ja siguin punts d’interès o sub-regions.

3.2.1.3. Obtenció dels Indrets

L’usuari podrà obtenir les fotografies i la informació bàsica dels diferents indrets

disponibles a la nostra aplicació.

Si es disposa d’Ínternet, qualsevol indret podrà ser descarregat al moment. D’altra

banda, també tindrem l’opció de poder-nos descarregar els indrets d’un itinerari concret

en un moment determinat, si sabem que la nostra connexió a Internet estarà limitada.

Finalment, si es dóna el cas que no tenim Internet i no hem fet la previsió de descarregar-

nos la informació dels indrets amb antelació, aleshores no serà possible la seva

visualització.

Page 20: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

20

3.2.1.4. Mostrar Indret

Caldrà mostrar la imatge (o imatges) a reproduir de l’indret. D’aquesta manera,

l’usuari podrà saber com ha de ser la fotografia que ha de realitzar. Per ajudar-lo, també es

mostrarà la posició de l’indret (coordenades) i una indicació per tal que l’usuari pugui

assegurar-se que està al lloc correcte.

Si l’indret encara no ha estat validat, s’haurà de permetre a l’usuari realitzar una

fotografia per fer-ho; si, per altra banda, ja ha estat validat, es mostrarà l’última fotografia

realitzada per l’usuari d’aquell indret. En el cas que un usuari esborri una fotografia seva

d’un indret correctament validat, aleshores l’aplicació haurà de mantenir l’estat de la

validació encara que no es mostri cap imatge.

3.2.1.5. Cercar Indret

Tenint en compte que un país o regió pot tenir un nombre considerable d’indrets

(tot i que sempre que sigui possible s’intentaran agrupar en regions), es podran mostrar

en forma de llistat paginat (amb uns deu indrets per pàgina) i ordenat.

A més a més, caldrà permetre a l’usuari fer una cerca sobre un indret concret per

fer-li més còmode la seva obtenció si ja sap des d’un bon principi allò que està buscant.

3.2.1.6. Obtenir itinerari

Per cercar itineraris només farà falta indicar el país del qual es vol un itinerari i

l’aplicació haurà de mostrar un llistat de tots els itineraris disponibles.

El usuaris podran visualitzar l’itinerari desitjat des del seu dispositiu sempre que

disposin de connexió. Però també hi ha la possibilitat de visualitzar itineraris offline (fora

de línia, sense connexió). En aquest cas, l’itinerari es descarregarà en el dispositiu de

l’usuari i podrà consultar-lo de forma local sense necessitat de cap connexió.

3.2.1.7. Validació de la fotografia

Per validar que una fotografia s’ha realitzat des del lloc correcte i que correspon

realment a l’indret indicat, se seguiran dos processos bàsics: es calcularan les coordenades

GPS del mòbil en fer la fotografia i es comprovarà que corresponguin a les de l’indret

indicat, i es farà una comprovació mitjançant els píxels de la fotografia per comprovar si

les imatges són semblants.

Tot aquest procés es durà a terme en el propi dispositiu mòbil.

3.2.1.8. Puntuació

La puntuació de cada usuari vindrà relacionada amb el nombre de fotografies

validades correctament que hagi fet. Cada fotografia validada correspondrà a un punt (es

podrà contemplar la possibilitat de fotografies amb puntuació extra, ja sigui per dificultat

o per publicitat del lloc a fotografiar).

Page 21: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

21

3.2.1.9. Classificació d’usuaris

Es podrà visualitzar la classificació dins del joc dels diferents usuaris. Es podrà fer

per puntuació o per percentatge de llocs visitats.

A la llista de la classificació es mostraran els deu millors usuaris i el nostre

percentatge o puntuació.

A més a més, també es podrà escollir si es vol veure la classificació global (qui ha

visitat més indrets d’arreu del món), o la classificació per països (qui ha visitat més indrets

d’un país concret). Per la segona opció, l’aplicació ens demanarà que seleccionem un dels

països on hi ha llocs per visitar.

Es podrà fer un filtrat dels usuaris per veure la classificació de tots els usuaris que

utilitzen l’aplicació o bé només de la nostra llista d’amics.

3.2.1.10. Incidències

Si algun usuari detecta que algun indret que forma part de l’aplicació ja no existeix,

podrà comunicar-nos-ho mitjançant l’enviament d’una incidència, afegint-hi els

comentaris pertinents si ho creu convenient.

3.2.1.11. Informació de fotografies

Quan l’usuari hagi seleccionat un indret, haurà de poder obtenir informació

d’aquell indret com a complement cultural.

En aquesta informació hi podran constar els horaris (si es tracta d’algun indret

visitable, com un museu), una descripció històrica, un mapa per accedir-hi...

3.2.1.12. Àlbum de fotografies

Hi haurà la possibilitat de veure totes les fotografies que s’han anat fent per a

poder-les gestionar. Per exemple, hi haurà l’opció d’eliminar-les si així ho creu convenient

l’usuari.

3.2.1.13. Llista d’amistats

Un usuari podrà fer una cerca a l’aplicació per buscar altres usuaris. Podrà enviar

peticions d’amistat a aquells usuaris que vulgui, i quan rebi l’acceptació per part d’aquests

passaran a formar part de la seva llista d’amistats. Evidentment, també hi haurà la

possibilitat d’eliminar usuaris de la llista d’amistats.

3.2.1.14. Publicar fotografia al Facebook

L’usuari ha de poder decidir si vol publicar una de les seves fotografies al seu

compte de Facebook. Per fer-ho, s’utilitzarà un applet de Facebook per facilitar el procés i

poder proporcionar a l’usuari totes les funcionalitats que permet Facebook, com ara afegir

comentaris.

Page 22: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

22

3.2.2. Usuari expert

En aquest apartat explicarem les funcionalitats de l’aplicació que podran dur a

terme només els usuaris experts. Per tant, cal deixar clar que aquests usuaris també

podran fer ús de les funcionalitats dels usuaris principiants.

3.2.2.1. Crear itinerari

L’aplicació haurà de permetre la creació i visualització d’itineraris. L’usuari haurà

de poder crear els seus propis itineraris o utilitzar itineraris d’altres usuaris.

Un itinerari es podrà crear de forma automàtica o de forma manual. Si es fa de

forma automàtica, només caldrà seleccionar un indret central i un radi màxim, i l’aplicació

s’haurà d’encarregar de crear una seqüència d’indrets dins d’aquest radi; si es fa de forma

manual, l’usuari haurà d’anar introduint per ordre cadascun dels indrets de l’itinerari.

En tot moment es podrà modificar l’itinerari afegint o eliminant indrets, o alterant

l’ordre de la seqüència.

Com que la generació d’itineraris és una feina complexa, els usuaris podran

compartir els seus itineraris amb la resta des de la mateixa aplicació.

Aquesta és una funcionalitat molt útil pels usuaris corporatius, perquè tindran

l’opció de fer publicitat d’una determinada regió mitjançant la creació d’itineraris.

3.2.2.2. Suggeriments

Els usuaris hauran de poder suggerir indrets que es puguin incloure a la següent

actualització de l’aplicació.

De la mateixa manera que realitzen les fotografies per avançar en el joc, també en

podran fer d’altres indrets dels quals no disposa l’aplicació per suggerir-los als

administradors (incloent els comentaris corresponents).

Per evitar l’allau de suggeriments, es podrà limitar el nombre de suggeriments que

pot enviar cada usuari. Per exemple, es podrà establir que cada usuari pugui enviar un

màxim de cinc suggeriments al mes, o que el nombre de suggeriments vingui relacionat

amb la seva puntuació (un suggeriment cada deu punts, per exemple).

Page 23: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

23

3.2.3. Administrador

L’administrador podrà gestionar el funcionament de l’aplicació, especialment

aquelles parts que afectin als usuaris. Les parts essencials que ha de poder controlar es

descriuen a continuació.

3.2.3.1. Gestió d'usuaris

Podrà gestionar els diferents usuaris, eliminant o bloquejant aquells que tinguin

una conducta incorrecta, o bé modificant, si fos el cas, les puntuacions d’algun d’ells per

imatges fraudulentes o per algun error concret.

3.2.3.2. Gestió d'indrets

Podrà gestionar els diferents punts d’interès, afegint-ne de nous (consensuats per

l’equip administratiu o bé atenent els suggeriments enviats pels usuaris), eliminant-ne

d’existents (perquè ja no existeixen o per decisió de l’equip administratiu), o bé

modificant-los (per canviar, per exemple, la informació o les imatges que tenen

associades).

3.2.3.3. Gestió de suggeriments

Haurà d’atendre els suggeriments enviats pels usuaris experts. L’aplicació haurà de

permetre mantenir un control d’aquests suggeriments i avisar a l’administrador si algun

d’ells es repeteix molt sovint, tot indicant que és adequat per ser inclòs a l’aplicació.

L’administrador també ha de poder veure en tot moment quins són els suggeriments

enviats i poder-los revisar; si algun d’ells és prou original, també pot tenir opcions de ser

inclòs en pròximes versions de l’aplicació.

3.2.3.4. Gestió d’incidències

Haurà d’atendre les incidències enviades pels usuaris. L’aplicació haurà de

permetre mantenir un control d’aquestes incidències i avisar a l’administrador si alguna

d’elles es repeteix massa sovint, fet que podria provocar l’eliminació d’aquell indret de

l’aplicació. L’administrador també ha de poder veure en tot moment quines són les

incidències enviades i el nombre d’incidències relacionades amb cada indret.

3.2.3.5. Estadístiques

Haurà de poder veure les estadístiques de l’aplicació, que poden incloure

informacions com els països més visitats pels usuaris, el correcte funcionament general de

l’aplicació, el control del creixement dels usuaris, l’ús de les diferents funcionalitats de

l’aplicació, les plataformes i versions més utilitzades, etc. L’aplicació haurà de controlar

tots aquests aspectes i oferir els resultats de forma ordenada a l’administrador.

Així, els punts més importants que haurà de tenir en compte aquest apartat,

mostrats en forma de llista, són els següents:

Page 24: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

24

Freqüència de visites de cada país.

Nombre de fallades de les aplicacions en els mòbils.

Nombre d’usuaris nous per dia.

Plataformes més utilitzades per descarregar-se l’aplicació.

Tots aquests aspectes es mostraran en forma de llista, ordenats de la mateixa

manera, visualitzant-se només aquells que l’administrador hagi seleccionat.

3.3. Requeriments no funcionals

L’aplicació serà suportada pels sistemes operatius Android 2.2 i superiors, i per IOS

4 i superiors.

La raó per la qual s’ha escollit Android i IOS és perquè ocupen la major part del

mercat, tal com mostra el següent gràfic:

Gràfic 1. Ús dels sistemes operatius per a mòbils. Font: http://blog.nielsen.com/nielsenwire/, corresponents al tercer

quadrimestre del 2011.

Page 25: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

25

Pel que fa a les versions dels dos sistemes operatius, els següents gràfics ens

mostren quines són les versions més utilitzades actualment, i quines ja no utilitza gairebé

ningú. A partir d’aquí, hem escollit el segment que inclou més gent.

Gràfic 2. Versions del sistema operatiu Android. Font: http://developer.android.com/resources/dashboard/platform-versions.html,

corresponents al primer quadrimestre del 2012.

Gràfic 3. Versions del sistema operatiu IOS. Font: http://insights.chitika.com/, corresponents al darrer quadrimestre del 2011.

Page 26: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

26

L’aplicació acceptarà, al principi, un màxim de 100.000 usuaris. Com que la

informació a guardar per cada usuari no és molt gran (només necessitarem guardar el

nom i la puntuació), la capacitat del servidor no serà cap problema. Es calcula que amb

200 Gb n’hi hauria d’haver prou per emmagatzemar tota la informació.

Pel que fa a les fotografies que faci l’usuari, es guardaran en una carpeta pròpia de

l’aplicació i inaccessible per l’usuari, és a dir, de manera local. Quan l’aplicació mostri les

imatges fetes per l’usuari (mitjançant l’àlbum), les anirà a buscar a aquesta carpeta, i

l’usuari tindrà l’opció d’esborrar-les des d’allà.

Page 27: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

27

4. Ana lisi

En aquest apartat durem a terme la fase d’anàlisi de la nostra aplicació. Això

significa que s’ha fet un estudi de les diferents funcionalitats, corresponents als nostres

requeriments, de les que hauria de disposar el nostre sistema. Així doncs, veurem la

documentació necessària i més rellevant per a poder implementar l’aplicació si així es

decidís.

Aquesta fase comprendrà la realització de diferents diagrames de casos d’ús amb

els corresponents conjunts de funcionalitats. A més a més, tindrem diferents fitxes de

casos d’ús a nivell de programador per poder entendre millor algunes de les funcionalitats

més importants. Com veurem, alguns diagrames diferencien les parts que tenen a veure

amb el sistema de les parts que tenen a veure amb el dispositiu mòbil. Aquesta indicació

ens servirà per saber on es realitzen les funcionalitats que inclouen.

El conjunt de tots aquests diagrames ens ajudaran a elaborar una primera versió

del diagrama de classes.

Page 28: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

28

4.1. Diagrama de casos d’ús general

El següent diagrama representa la relació entre els diferents actors del sistema i el

conjunt de casos d’ús. Es tracta d’un diagrama a alt nivell, i alguna de les seves parts

s’explica en detall en els següents apartats. Ho hem fet així per poder entendre millor el

funcionament general.

Diagrama 6. Diagrama de casos d’ús general.

Page 29: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

29

4.2. Diagrama de casos d’ús: Part Administrador

Aquí detallarem d’una forma més concreta els casos d’ús corresponents a la part

d’administrador. Al diagrama de casos d’ús general hem englobat aquesta part sota el nom

de “Part Administrador”.

Diagrama 7. Diagrama de casos d’ús: Part Administrador.

Page 30: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

30

4.3. Diagrama de casos d’ús: Part Amics Usuari

Aquí detallarem d’una forma més concreta els casos d’ús corresponents a la part

d’amics de l’usuari. Al diagrama de casos d’ús general hem englobat aquesta part sota el

nom de “Part Amics Usuari”.

Diagrama 8. Diagrama de casos d’ús: Part Amics Usuari.

Page 31: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

31

4.4. Diagrama de casos d’ús: Part Classificació

Aquí detallarem d’una forma més concreta els casos d’ús corresponents a la part de

la classificació. Al diagrama de casos d’ús general hem englobat aquesta part sota el nom

de “Part Classificació”.

Diagrama 9. Diagrama de casos d’ús: Part Classificació.

Page 32: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

32

4.5. Fitxes de cas d’ús

Per explicar de forma més detallada el funcionament d’alguns casos d’ús

utilitzarem les fitxes de cas d’ús. Hem creat fitxes d’aquells casos d’ús que hem cregut més

rellevants o més complicats d’entendre, i ho hem fet amb fitxes a nivell de programador,

de manera que quan vulguem crear determinats diagrames per especificar millor el cas

d’ús, com ara els diferents diagrames de seqüència o el diagrama de classes, ja tinguem

una base i ens sigui més còmode.

Pel que fa al cas d’ús “Generació Automàtica d’Ítinerari”, com que tracta un

problema geomètricament més complex, s’explicarà detalladament el seu procediment a

l’annex [Annex II].

La llista de casos d’ús que hem detallat és la següent:

Registrar-se

Mostrar indret

Cercar indret

Enviar incidència

Fer fotografia

Veure informació indret

Veure incidència

Veure estadístiques

Afegir amic

Eliminar amic

Validar fotografia

Crear itinerari

Generació automàtica d’itinerari

Veure classificació global i tots

Veure classificació global i amics

Veure classificació països i tots

Veure classificació països i amics

Suggerir indret

Mostrar itinerari

Mostrar llista d’amics

Afegir usuari

Inhabilitar usuari

Afegir indret

Eliminar indret

Page 33: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

33

4.5.1. Registrar-se

Nom: Registrar-se Autor: Membres del grup Data 17/04/12 Descripció: Procés inicial que s’executa en iniciar l’aplicació Actors: Usuari Pre-condicions:

L’usuari ha iniciat l’aplicació

Flux principal:

1. SÍ és la primera vegada que s’inicia l’aplicació LLAVORS 1.1. Demanar nom d’usuari 1.2. Demanar contrasenya 1.3. Repetir contrasenya 1.4. Demanar correu electrònic 1.5. Comprovar disponibilitat del nom 1.6. Enviar les dades de creació de l’usuari al servidor 1.7. Mostrar missatge de benvinguda

2. ALTRAMENT 2.1. Comprovar que l’usuari no estigui inhabilitat per l’administrador. 2.2. Mostrar pantalla inicial de l’aplicació de l’usuari del dispositiu.

Flux alternatiu:

1.2. Si el nom ja existeix (està ocupat per un altre usuari), aleshores cal retornar al punt 1.1. 1.4. Si les dades no s’envien correctament o són invàlides, mostrar un missatge d’error. 2.1. Si l’usuari està inhabilitat no se li permetrà accedir a l’aplicació.

Post-Condició: L’usuari ha accedit a l’aplicació (registrant-se en el cas que sigui nou) Comentaris: ---

Page 34: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

34

4.5.2. Mostrar indret

Nom: Mostrar indret Autor: Membres del grup Data 17/04/12 Descripció: Permet veure un indret concret de l’aplicació Actors: Usuari Pre-condicions:

-

Flux principal:

1. Obtenir llista de països. 2. Mostrar llista de països. 3. Seleccionar país. 4. Obtenir llista de regions. 5. Mostrar llista de regions. 6. Seleccionar regió. 7. SI la regió té més regions i l’usuari vol veure-les LLAVORS

7.1. Obtenir llista de regions de la regió. 7.2. Mostrar llista de regions de la regió. 7.3. Seleccionar regió. 7.4. Tornar al punt 7.

8. ALTRAMENT SÍ la regió no té més regions o si l’usuari vol veure els indrets LLAVORS 8.1. Obtenir llista d’indrets de la regió. 8.2. Mostrar llista d’indrets de la regió. 8.3. Seleccionar indret

9. Mostrar l’indret seleccionat

Flux alternatiu:

6. L’usuari pot tornar enrere per seleccionar un altre país. 7.3. L’usuari pot tornar enrere per seleccionar una altra regió. 8.3. L’usuari pot tornar enrere per seleccionar una altra regió. 9. L’usuari pot tornar enrere per seleccionar un altre indret.

Post-Condició: Es mostra l’indret seleccionat per l’usuari. Comentaris: ---

Page 35: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

35

4.5.3. Cercar indret

Nom: Cercar indret Autor: Membres del grup Data 17/04/12 Descripció: Permet cercar un indret de l’aplicació pel seu nom Actors: Usuari Pre-condicions:

-

Flux principal:

1. Escriure nom de l’indret. 2. Obtenir nom de l’indret escrit per l’usuari. 3. Obtenir llista d’indrets de l’aplicació. 4. Ordenar alfabèticament la llista d’indrets obtinguda. 5. Fer una cerca dicotòmica a la llista per trobar el nom de l’indret

escrit per l’usuari. 6. Un cop trobat, mostrar l’indret corresponent.

Flux alternatiu:

6. Si el nom de l’indret escrit per l’usuari no es troba a la llista ordenada d’indrets, aleshores cal mirar en quin punt de la llista s’ha quedat la cerca dicotòmica i mostrar el nom dels cinc indrets anteriors i dels cinc indrets posteriors (proposant altres noms a l’usuari suposant que s’ha equivocat).

Post-Condició: Es mostra l’indret cercat per l’usuari (si hi és) o els noms dels indrets més propers alfabèticament (si no hi és).

Comentaris: ---

4.5.4. Enviar incidència

Nom: Enviar incidència Autor: Membres del grup Data 17/04/12

Descripció: Permet avisar als administradors de l’existència d’alguna incidència amb algun indret

Actors: Usuari Pre-condicions:

Cal que l’usuari hagi seleccionat un indret

Flux principal:

1. Escriure descripció de la incidència. 2. Establir connexió amb el servidor. 3. Empaquetar les dades a enviar (s’empaquetarà en una cadena de

caràcters on la primera part farà referència a l’identificador de l’indret, i la segona part correspondrà a la descripció de la incidència, separant les dues parts pel caràcter ‘#’).

4. Enviar paquet. 5. Finalitzar connexió.

Flux alternatiu:

Post-Condició: S’envia una incidència al servidor indicant de quin indret es tracta i amb una descripció adjunta.

Comentaris: Només tindrem un punt d’accés al servidor.

Page 36: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

36

4.5.5. Fer fotografia

Nom: Fer fotografia Autor: Membres del grup Data 17/04/12 Descripció: Permet fer una fotografia d’un indret Actors: Usuari Pre-condicions:

L’usuari ha seleccionat un indret o bé vol enviar un suggeriment.

Flux principal:

1. Mitjançant la interfície pròpia de la càmera del dispositiu, fer una fotografia de l’indret que interessa.

2. Obtenir la fotografia. 3. Mostrar la fotografia. 4. SÍ l’usuari havia seleccionat un indret de l’aplicació LLAVORS

4.1. Validador = Crear validador() 4.2. Validador.validar(fotografia) 4.3. Guardar la fotografia a l’àlbum de fotografies de l’aplicació.

Flux alternatiu:

4.2. Si la fotografia no es valida correctament, aleshores no es guarda la fotografia a l’àlbum de fotografies de l’aplicació.

Post-Condició: Es mostra la fotografia (i es guarda a l’àlbum de fotografies de l’aplicació en el cas que l’usuari hagi seleccionat un indret i la fotografia hagi estat validada) que l’usuari ha fet d’un indret.

Comentaris: ---

4.5.6. Veure informació indret

Nom: Veure informació indret Autor: Membres del grup Data 17/04/12 Descripció: Permet veure la informació associada a un indret Actors: Usuari Pre-condicions:

L’usuari ha seleccionat un indret.

Flux principal:

1. Obtenir la informació associada a l’indret seleccionat per l’usuari. 2. Mostrar nom de l’indret. 3. PER cada atribut de la informació FER

3.1. Mostrar atribut en una secció diferent. Flux alternatiu:

Post-Condició: Es mostra la informació associada a l’indret seleccionat per l’usuari.

Comentaris:

Com que la informació pot variar segons l’indret (un museu, a diferència d’un monument, pot tenir horari), es mostrarà cada atribut de la informació en un bloc diferent, permetent mostrar la informació sota una mateixa interfície.

Page 37: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

37

4.5.7. Veure incidència

Nom: Veure incidència Autor: Membres del grup Data 17/04/12

Descripció: Permet veure als administradors les diferents incidències sobre els indrets que han enviat els usuaris.

Actors: Administrador Pre-condicions:

-

Flux principal:

1. Obtenir la llista d’indrets de l’aplicació. 2. Crear una estructura de dades funcional (EDF) que tingui indrets

per clau i col·leccions d’incidències per valors. 3. PER cada indret de la llista FER

3.1. Obtenir les incidències associades a l’indret 3.2. Afegir una nova entrada a l’EDF que tingui l’indret per clau i la col·lecció d’incidències per valor.

4. PER cada entrada de l’EDF FER 4.1. Mostrar el nom de l’indret que té per clau 4.2. Mostrar el nombre d’incidències de la col·lecció que té per valor

5. Seleccionar un dels noms d’indrets 6. PER cada incidència de la col·lecció de l’indret seleccionat FER

6.1. Obtenir l’usuari que ha enviat la incidència 6.2. Obtenir el nom de l’usuari 6.3. Mostrar el nom de l’usuari

7. Seleccionar una incidència 8. Mostrar nom de l’indret associat a la incidència 9. Mostrar nom de l’usuari associat a la incidència 10. Mostrar descripció associada a la incidència

Flux alternatiu:

Post-Condició: Es visualitza la informació d’una de les incidències enviades pels usuaris de l’aplicació.

Comentaris: En tot moment l’administrador pot tornar enrere per seleccionar una nova incidència.

Page 38: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

38

4.5.8. Veure estadístiques

Nom: Veure estadístiques Autor: Membres del grup Data 17/04/12 Descripció: Permet veure als administradors les estadístiques de l’aplicació Actors: Administrador Pre-condicions:

-

Flux principal:

1. Obtenir la llista d’atributs de les estadístiques. 2. PER cada atribut de la llista FER

2.1. Mostrar el nom de l’atribut 2.2. Mostrar el valor de l’atribut

Flux alternatiu:

Post-Condició: Es visualitzen les estadístiques de l’aplicació. Comentaris: ---

Més endavant, quan mostrem el diagrama de seqüència corresponent, s’explicarà

en detall tot el que fa referència a les estadístiques.

4.5.9. Afegir amic

Nom: Afegir amic Autor: Membres del grup Data 17/04/12 Descripció: Permet afegir un usuari a la llista d’amistats d’un usuari Actors: Usuari Pre-condicions:

-

Flux principal:

1. Escriure el nom de l’usuari que es vol afegir al cercador d’usuaris. 2. Comprovar que l’usuari existeix i que utilitza l’aplicació. 3. Enviar una petició d’amistat a l’usuari que es vol afegir. 4. Verificar que l’usuari que es vol afegir ha acceptat la petició

d’amistat. 5. Obtenir la llista d’amistats de l’usuari sol·licitant. 6. Afegir el nou usuari a la llista. 7. Obtenir la llista d’amistats de l’usuari que es vol afegir. 8. Afegir l’usuari sol·licitant a la llista.

Flux alternatiu:

2. Si l’usuari no existeix es mostrarà un error indicant-ho. 4. Si l’usuari que es vol afegir no accepta la petició d’amistat, aleshores no s’afegeix cap nou usuari a cap de les dues llistes d’amistats (la de l’usuari sol·licitant i la de l’usuari que es vol afegir).

Post-Condició:

S’ha afegit un nou usuari (l’usuari que s’ha escrit al cercador) a la llista d’amistats de l’usuari sol·licitant (si existeix), i un nou usuari (l’usuari sol·licitant) a la llista d’amistats de l’usuari que s’ha escrit al cercador (si existeix).

Comentaris: ---

Page 39: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

39

4.5.10. Eliminar amic

Nom: Eliminar amic Autor: Membres del grup Data 17/04/12 Descripció: Permet eliminar un usuari de la llista d’amistats d’un usuari Actors: Usuari Pre-condicions:

-

Flux principal:

1. Obtenir la llista d’amistats de l’usuari sol·licitant. 2. Mostrar la llista. 3. Seleccionar un usuari de la llista. 4. Eliminar l’usuari de la llista. 5. Obtenir la llista d’amistats de l’usuari que s’ha eliminat de la llista. 6. Eliminar l’usuari sol·licitant d’aquesta llista.

Flux alternatiu:

Post-Condició: S’ha eliminat un nou usuari (l’usuari seleccionat) de la llista d’amistats de l’usuari sol·licitant.

Comentaris: ---

Page 40: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

40

4.5.11. Validar fotografia

Nom: Validar Fotografia Autor: Membres del grup Data 17/04/12

Descripció: Procés que comprovarà si una fotografia feta per l’usuari és acceptada o no.

Actors: Sistema Pre-condicions:

L’usuari ha d’haver seleccionat un indret i ha d’haver fet una fotografia a d’aquest indret.

Flux principal:

1. Obtenir la localització GPS del dispositiu. 2. Calcular la distància entre les coordenades de l’indret i les

coordenades obtingudes del dispositiu. 3. Obtenir la distància màxima vàlida de l’indret. 4. Validar la distància.

4.1. SI distància calculada < distància màxima LLAVORS acceptem 5. Obtenir fotografia. 6. Executar algorisme de validació per píxels. 7. Establir connexió amb el servidor. 8. Empaquetar les dades a enviar (s’empaquetarà en una cadena de

caràcters on la primera part farà referència a l’usuari, i la segona part correspondrà a l’indret, separant les dues parts pel caràcter ‘#’).

9. Enviar paquet. 10. Finalitzar connexió. 11. Mostrar a l’usuari el missatge: “Validació correcte”.

Flux alternatiu:

4.1. Si la distància calculada és més gran que la distància màxima, es mostra el missatge de “Validació incorrecte: estàs massa allunyat de l’indret”. 6. Si es dóna el cas que la foto no ha estat validada llavors es mostra el missatge de “Validació incorrecte”. 9. Si no s’ha pogut enviar la validació, no es comptarà l’indret com a visitat.

Post-Condició: L’usuari ha visitat l’indret. A més, la seva puntuació s’ha actualitzat. Comentaris: ---

Page 41: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

41

4.5.12. Crear itinerari

Nom: Crear itinerari Autor: Membres del grup Data 17/04/12 Descripció: Procés que crearà un itinerari manualment Actors: Usuari expert i usuari corporatiu Pre-condicions:

---

Flux principal:

1. Crear itinerari. 2. MENTRE no final FER

2.1. Buscar regió. 2.2. Mostrar indrets de la regió. 2.3. Seleccionar indret a afegir. 2.4. Afegir indret a l’itinerari. 2.5. Obtenir regió de l’indret. 2.6. Afegir a l’itinerari la regió obtinguda.

3. Íntroduir nom de l’itinerari. 4. Guardar nom. 5. Desar itinerari. 6. Mostrar missatge: “Ítinerari creat”

Flux alternatiu:

En qualsevol moment, l’usuari pot decidir cancel·lar l’operació. En aquest cas, es destruirà l’itinerari creat.

Post-Condició: Itinerari creat amb els seus indrets, les corresponents regions i amb un nom assignat.

Comentaris: En el punt 2.1, el fet de buscar regió és opcional perquè d’una mateixa regió ens pot interessar seleccionar més d’un indret sense haver de tornar a realitzar aquesta cerca.

4.5.13. Generació automàtica d’itinerari

Nom: Generació automàtica d’itinerari Autor: Membres del grup Data 17/04/12 Descripció: Procés que crearà un itinerari de forma automàtica Actors: Sistema Pre-condicions:

L’usuari ha d’indicar un indret inicial i una distància concreta que servirà de radi.

Flux principal: Veure annex [Annex II] Flux alternatiu:

Post-Condició: Itinerari creat amb els seus indrets, les corresponents regions i amb un nom assignat.

Comentaris: ---

Page 42: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

42

4.5.14. Veure classificació global i tots

Nom: Veure classificació global i tots Autor: Membres del grup Data 22/04/12

Descripció: Procés que calcularà la classificació actual de tots els usuaris de tots els països

Actors: Usuari Pre-condicions:

-

Flux principal:

1. Obtenir llista d’usuaris de l’aplicació. 2. Ordenar de forma decreixent els usuaris per puntuació. 3. Obtenir els 10 primers usuaris de l’ordenació. 4. Obtenir puntuació de l’usuari sol·licitant. 5. Crear un llistat a partir dels 10 usuaris seleccionats que contingui

només el nom de l’usuari i la seva puntuació. 6. Enviar aquest llistat i la puntuació de l’usuari sol·licitant.

Flux alternatiu:

-

Post-Condició: S’enviarà el llistat dels 10 primers usuaris millors classificats de tota l’aplicació i de tots els països, i la puntuació de l’usuari sol·licitant.

Comentaris: - Si hi ha empat a la classificació, s’ordenarà de forma alfabètica - Si no hi ha més de 10 usuaris, es mostraran tots.

4.5.15. Veure classificació global i amics

Nom: Veure classificació global i amics Autor: Membres del grup Data 22/04/12

Descripció: Procés que calcularà la classificació actual dels usuaris amics de l’usuari sol·licitant de tots els països

Actors: Usuari Pre-condicions:

-

Flux principal:

1. Obtenir usuari sol·licitant. 2. Obtenir llista d’amics de l’aplicació de l’usuari sol·licitant. 3. Afegir l’usuari sol·licitant a la llista obtinguda al punt anterior. 4. Ordenar de forma decreixent els usuaris de la llista per puntuació. 5. Obtenir els 10 primers usuaris de l’ordenació. 6. Obtenir puntuació de l’usuari sol·licitant. 7. Crear un llistat a partir dels 10 usuaris seleccionats que contingui

només el nom de l’usuari i la seva puntuació. 8. Enviar aquest llistat i la puntuació de l’usuari sol·licitant.

Flux alternatiu:

-

Post-Condició: S’enviarà el llistat dels 10 primers usuaris millors classificats de la llista d’amics de l’usuari sol·licitant i de tots els països, i la puntuació de l’usuari sol·licitant.

Comentaris: - Si hi ha empat a la classificació, s’ordenarà de forma alfabètica - Si no hi ha més de 10 usuaris, es mostraran tots.

Page 43: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

43

4.5.16. Veure classificació països i tots

Nom: Veure classificació països i tots Autor: Membres del grup Data 22/04/12

Descripció: Procés que calcularà la classificació actual de tots els usuaris d’un país concret.

Actors: Usuari Pre-condicions:

L’usuari haurà d’haver seleccionat un país de la llista de països on hi ha indrets a visitar.

Flux principal:

1. Obtenir país seleccionat. 2. Obtenir llista de regions del país. 3. PER cada regió de la llista FER

3.1. SI la regió té altres regions LLAVORS afegir-les a la llista de regions 3.2. SI la regió té indrets LLAVORS afegir-los a la llista d’indrets FPER

4. PER cada indret de la llista FER 4.1. Obtenir els Índrets Visitats de l’indret. 4.2. Afegir-los a la llista d’Índrets Visitats. FPER

5. Crear una estructura de dades funcional (EDF) que tingui el nom de l’usuari per clau i la puntuació per valor.

6. PER cada Indret Visitat FER 6.1. Obtenir usuari de l’Índret Visitat. 6.2. Obtenir indret de l’Índret Visitat. 6.3. Obtenir nom de l’usuari. 6.4. Obtenir puntuació de l’indret. 6.5. Actualitzar l’EDF amb el nom de l’usuari i la puntuació de l’indret FPER

7. Ordenar de forma decreixent els usuaris de l’EDF per puntuació. 8. Obtenir els 10 primers usuaris de l’ordenació. 9. SÍ l’usuari sol·licitant existeix a l’EDF LLAVORS

9.1. Obtenir la seva puntuació ALTRAMENT 9.2. Puntuació de l’usuari = 0 FSI

10. Crear un llistat a partir dels 10 usuaris seleccionats que contingui només el nom de l’usuari i la seva puntuació.

11. Enviar aquest llistat i la puntuació de l’usuari sol·licitant. Flux alternatiu:

-

Post-Condició: S’enviarà el llistat dels 10 primers usuaris millors classificats de tota l’aplicació i d’un país concret, i la puntuació de l’usuari sol·licitant d’aquest país concret.

Comentaris: - Si hi ha empat a la classificació, s’ordenarà de forma alfabètica - Si no hi ha més de 10 usuaris, es mostraran tots.

Page 44: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

44

4.5.17. Veure classificació països i amics

Nom: Veure classificació països i amics Autor: Membres del grup Data 22/04/12

Descripció: Procés que calcularà la classificació actual dels usuaris amics de l’usuari sol·licitant d’un país concret.

Actors: Usuari Pre-condicions:

L’usuari haurà d’haver seleccionat un país de la llista de països on hi ha indrets a visitar.

Flux principal:

1. Obtenir usuari sol·licitant. 2. Obtenir llista d’amics de l’aplicació de l’usuari sol·licitant. 3. Afegir l’usuari sol·licitant a la llista obtinguda al punt anterior. 4. Obtenir país seleccionat. 5. PER cada usuari de la llista FER

5.1. Obtenir els Índrets Visitats de l’usuari 5.2. Afegir-los a la llista d’Índrets Visitats FPER

6. Crear una estructura de dades funcional (EDF) que tingui el nom de l’usuari per clau i la puntuació per valor.

7. PER cada Indret Visitat de la llista FER 7.1. Obtenir l’indret de l’Índret Visitat 7.2. Obtenir la regió de l’Índret 7.3. Obtenir el país de la regió 7.4. SI el país de la regió és igual al país seleccionat al principi LLAVORS 7.4.1. Obtenir usuari de l’Índret Visitat 7.4.2. Obtenir nom de l’usuari 7.4.3. Obtenir puntuació de l’indret 7.4.4. Actualitzar l’EDF amb el nom de l’usuari i la puntuació de l’indret FPER

8. Ordenar de forma decreixent els usuaris de l’EDF per puntuació. 9. Obtenir els 10 primers usuaris de l’ordenació. 10. Obtenir la puntuació de l’usuari sol·licitant a partir de l’EDF 11. Crear un llistat a partir dels 10 usuaris seleccionats que contingui

només el nom de l’usuari i la seva puntuació. 12. Enviar aquest llistat i la puntuació de l’usuari sol·licitant.

Flux alternatiu:

-

Post-Condició: S’enviarà el llistat dels 10 primers usuaris millors classificats de la llista d’amics de l’usuari sol·licitant i d’un país concret, i la puntuació de l’usuari sol·licitant d’aquest país concret.

Comentaris:

- Si hi ha empat a la classificació, s’ordenarà de forma alfabètica. - Si no hi ha més de 10 usuaris, es mostraran tots. - Si algun usuari de la llista d’amics no ha visitat cap indret del país seleccionat, aleshores la puntuació d’aquest usuari en el país és de 0.

Page 45: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

45

4.5.18. Suggerir indret

Nom: Suggerir indret Autor: Membres del grup Data 24/04/12

Descripció: Procés que suggerirà als administradors un nou indret per incloure’l a la següent versió de l’aplicació.

Actors: Usuari expert i usuari corporatiu Pre-condicions:

La fotografia ha de tenir associades unes coordenades GPS.

Flux principal:

1. Íntroduir nom de l’indret. 2. Adjuntar fotografia amb coordenades GPS. 3. Breu descripció del lloc. 4. Obtenir nom d’usuari. 5. Enviar suggeriment.

Flux alternatiu:

En tot moment es pot cancel·lar l’operació. Si és així, s’esborraran les dades introduïdes fins al moment.

Post-Condició: Suggeriment enviat als administradors.

Comentaris: L’obtenció del nom de l’usuari és important perquè un cop l’administrador rebi el suggeriment, buscarà quin tipus d’usuari l’ha realitzat per saber si és prioritari o no.

4.5.19. Mostrar itinerari

Nom: Mostrar itinerari Autor: Membres del grup Data 24/04/12 Descripció: Procés que mostrarà per pantalla un itinerari. Actors: Usuari Pre-condicions:

L’usuari ha d’haver seleccionat un itinerari concret i se l’ha d’haver descarregat prèviament.

Flux principal:

1. Obtenir regions. 2. Obtenir la seqüència d’indrets de l’itinerari seleccionat. 3. Mostrar les regions. 4. PER i DE 0 FINS nombre d’indrets FER

4.1. Mostrar l’indret de la posició i 4.2. Unir l’indret de la posició i-1 amb l’indret de la posició i FPER

Flux alternatiu:

En el punt 4.2, el primer indret no tindrà cap altre indret amb qui unir-se.

Post-Condició: Es mostrarà per pantalla un itinerari concret, amb les seves respectives regions i els seus indrets units entre ells.

Comentaris: ---

Page 46: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

46

4.5.20. Mostrar llista d’amics

Nom: Mostrar llista d’amics Autor: Membres del grup Data 24/04/12 Descripció: Procés que mostrarà la llista d’amics d’un usuari concret. Actors: Usuari Pre-condicions:

-

Flux principal:

1. Obtenir del servidor els amics de l’usuari 2. indexInici = Calcular índex d’inici segons paginació 3. MENTRE i < 10 I (i + indexInici) < nombre d’amics FER

3.1. Mostrar l’amic de la posició (i + indexInici) 3.2. i = i + 1

4. Mostrar paginació Flux alternatiu:

Post-Condició: Es mostrarà per pantalla la llista d’amics de deu en deu. Comentaris: La paginació inicial serà de zero fins que l’usuari no indiqui el contrari.

4.5.21. Afegir usuari

Nom: Afegir usuari Autor: Membres del grup Data 24/04/12 Descripció: Procés que afegirà un nou usuari al sistema. Actors: Sistema Pre-condicions:

L’usuari ha omplert el formulari per donar-se d’alta

Flux principal: 1. Comprovar que el nom d’usuari no existeix al sistema 2. Crear usuari 3. Assignar nom

Flux alternatiu:

En el cas que el nom ja existeixi, no es permetrà l’alta de l’usuari i es mostrarà el missatge: “Usuari ja existent”.

Post-Condició: Es donarà d’alta a l’usuari a la nostra base de dades Comentaris: S’han de tenir en compte tots els elements d’inicialització

Page 47: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

47

4.5.22. Inhabilitar usuari

Nom: Inhabilitar usuari Autor: Membres del grup Data 24/04/12 Descripció: Procés que inhabilitarà l’usuari. Actors: Administrador Pre-condicions:

L’usuari ha d’existir

Flux principal: 1. Marcar l’usuari com a usuari inhabilitat Flux alternatiu:

Post-Condició: L’usuari ha estat inhabilitat de l’aplicació

Comentaris: L’usuari inhabilitat no s’esborra de la base de dades, ni tampoc els continguts que hi fan referència.

4.5.23. Afegir indret

Nom: Afegir indret Autor: Membres del grup Data 24/04/12 Descripció: Procés que afegirà un indret a la nostra aplicació. Actors: Administrador Pre-condicions:

Si es vol afegir un indret a partir de suggeriments, un usuari ha d’haver fet un suggeriment

Flux principal:

1. SI validar suggeriment LLAVORS 1.1. Crear indret a partir de la informació del suggeriment 1.2. Obtenir nom de la regió del suggeriment 1.3. Buscar regió a partir del nom

2. ALTRAMENT 2.1. Inserir imatge de l’indret 2.2. Introduir coordenades de l’indret 2.3. Afegir nom de l’indret 2.4. Afegir descripció bàsica 2.5. Crear indret 2.6. Seleccionar regió

3. Afegir regió a l’indret 4. Afegir l’indret a la col·lecció d’indrets de la regió 5. Guardar a l’indret a la base de dades

Flux alternatiu:

1.3 Si no existeix el nom de la regió a la nostra base de dades no és podrà crear l’indret. L’administrador pot decidir en qualsevol moment no continuar amb el procés. Si és així, s’haurà d’eliminar tota la informació introduïda.

Post-Condició: S’ha afegit un nou indret a la base de dades del sistema Comentaris: ---

Page 48: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

48

4.5.24. Eliminar indret

Nom: Eliminar indret Autor: Membres del grup Data 24/04/12 Descripció: Procés que eliminarà un indret de la nostra aplicació. Actors: Administrador Pre-condicions:

Flux principal:

1. Obtenir llistat d’indrets 2. Seleccionar indret a eliminar 3. Confirmació per part de l’administrador del procés d’eliminació 4. Obtenir regió de l’indret seleccionat 5. Obtenir la llista d’Índrets Visitats de l’indret seleccionat 6. Obtenir puntuació de l’indret 7. PER cada Indret Visitat FER

6.1. Obtenir usuari de l’Índret Visitat 6.2. Modificar puntuació de l’usuari segons la puntuació de l’indret 6.3. Eliminar Índret Visitat de la llista d’Índrets Visitats de l’usuari 6.4. Eliminar Índret Visitat de la llista d’Índrets Visitats de l’indret 6.5. Eliminar Indret Visitat FPER

8. Eliminar indret de la col·lecció d’indrets de la regió 9. Eliminar l’indret de la base de dades

Flux alternatiu:

3. L’administrador pot decidir no continuar amb el procés d’eliminació

Post-Condició: S’ha eliminat un indret de la base de dades del sistema Comentaris: ---

Page 49: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

49

4.6. Diagrama d’activitat

En aquest apartat veurem un exemple de diagrama d’activitat per fer-nos una idea

del flux d’informació entre l’usuari, el sistema del mòbil i el sistema del servidor. El cas

d’ús escollit per representar el diagrama d’activitat ha estat el de “Mostrar itinerari”.

4.6.1. Mostrar itinerari

Diagrama 10. Diagrama d’activitat del cas d’ús “Mostrar itinerari”.

Page 50: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

50

4.7. Diagrames de seqüència

Per acabar de complementar la definició d’algunes de les funcionalitats que hem

detallat a les fitxes de cas d’ús, veurem els seus corresponents diagrames de seqüència. A

partir dels mètodes i entitats que creem per a cada funcionalitat podrem aconseguir una

primera versió del diagrama de classes.

Així, els diagrames de seqüència que hem realitzat corresponen als següents casos

d’ús:

Afegir amic

Crear indret

Mostrar indret

Validar fotografia

Veure classificació global i tots

Veure incidència

Veure estadístiques

Page 51: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

51

4.7.1. Afegir amic

Dia

gra

ma

11. D

iagram

a de seqüèn

cia del cas d’ús “A

fegir am

ic”.

Page 52: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

52

4.7.2. Crear indret

Diagrama 12. Diagrama de seqüència del cas d’ús “Crear indret”.

Page 53: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

53

4.7.3. Mostrar indret

Diagrama 13. Diagrama de seqüència del cas d’ús “Mostrar indret”.

Page 54: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

54

4.7.4. Validar fotografia

Diagrama 14. Diagrama de seqüència del cas d’ús “Validar fotografia”.

Page 55: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

55

4.7.5. Veure classificació global i tots

Diagrama 15. Diagrama de seqüència del cas d’ús “Veure classificació global i tots”.

Page 56: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

56

4.7.6. Veure incidència

Dia

gra

ma

16. D

iagram

a de seqüèn

cia del cas d’ús “Veu

re incidèn

cia”.

Page 57: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

57

4.7.7. Veure estadístiques

A més del diagrama de seqüència, en aquest apartat també veurem quin

tractament fem de les estadístiques a la nostra aplicació.

El problema principal que tenim a l’hora de mantenir unes estadístiques és que

tenen un elevat cost de càlcul en aplicacions grans, i sempre es desitja obtenir la

informació de forma immediata. Partint d’aquest problema intentarem definir la solució

que hem proposat i amb la que es treballarà.

La idea bàsica d’aquesta solució és mantenir un fitxer estructurat amb els resultats

de les estadístiques. Aquest fitxer es modificarà periòdicament mitjançant un procés

batch, que tornarà a calcular els valors de les estadístiques i actualitzarà la informació ja

existent al fitxer. L’avantatge de fer-ho d’aquesta manera és que, en tenir els valors ja

calculats, la consulta de les estadístiques serà ràpida i eficient, amb l’únic inconvenient que

els resultats no seran exactament els actuals.

El sistema de funcionament de les subrutines del procés batch encarregat

d’actualitzar la informació és el següent:

1. Obrir el fitxer d’estadístiques per defecte. El sistema disposarà d’un path (camí) del

fitxer i serà el fitxer amb el qual treballarem. En el cas que es volgués restablir la

informació, o començar un nou document d’estadístiques (imaginem, per exemple,

que volem guardar diferents fitxers per cada any), només hauríem de canviar el

path guardat i no hauríem de modificar el codi de l’aplicació.

2. Calcular els resultats de les estadístiques.

3. Modificar les marques necessàries del fitxer. Per exemple, si calculem el nombre

d’usuaris nous, aleshores modificarem l’apartat d’usuaris.

4. Tancar el fitxer.

Tal com hem comentat anteriorment, el principal defecte d’aquesta solució és el fet

que, en el moment de consultar els resultats de les estadístiques, probablement obtinguem

dades no actualitzades. Per aquest motiu, el procés batch s’hauria d’executar diàriament. A

més a més, aquesta decisió també la recolza el fet que alguns valors de les estadístiques

necessiten calcular-se diàriament.

Els diferents valors de les estadístiques que calcularem inicialment són:

Freqüència de visita de cada país. Per calcular aquest valor haurem de conèixer

el nombre total d’indrets visitats i el nombre d’indrets visitats per país; aleshores

només caldrà fer el càlcul de la freqüència a partir d’aquests dos valors.

Nombre de fallades de les aplicacions en els mòbils. Per calcular aquest valor

haurem de sumar el total de notificacions d’error que hàgim rebut dels usuaris. Per

tant, cada cop que hi hagi una fallada a l’aplicació, l’usuari haurà de tenir la

possibilitat de notificar-ho.

Page 58: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

58

Nombre d’usuaris nous per dia. Per calcular aquest valor haurem d’obtenir el

nombre total d’usuaris del dia anterior (valor que tindrem guardat al mateix fitxer

d’estadístiques) i el nombre total d’usuaris actuals. Aleshores només caldrà fer la

diferència.

Plataformes més utilitzades per descarregar-se l’aplicació. Per calcular aquest

valor haurem de comptar el nombre de descàrregues que s’ha fet de la nostra

aplicació per cadascuna de les plataformes disponibles.

A continuació mostrem el diagrama de seqüència que explica els passos que se

segueixen per veure les estadístiques.

Diagrama 17. Diagrama de seqüència del cas d’ús “Veure estadístiques”.

Page 59: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

59

4.8. Diagrama de classes inicial

Després d’estudiar els diferents casos d’ús, ja podem elaborar una primera versió

del diagrama de classes. És una primera versió perquè encara no s’ha entrat a la fase de

disseny i, conseqüentment, encara no s’hi ha aplicat cap patró.

Dia

gra

ma

18

. Pri

mer

a v

ersi

ó d

el d

iagr

ama

de

clas

ses.

Page 60: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

60

5. Disseny

La fase de disseny ens servirà per millorar tots els resultats obtinguts a la fase

d’anàlisi.

En aquest sentit, buscarem la manera d’aplicar patrons de disseny a la versió

actual del diagrama de classes per fer-lo tan modular com sigui possible, de manera que

resisteixi a qualsevol canvi sense haver de modificar altres aspectes.

A més a més, com que ja tenim una idea dels mètodes i atributs de les classes,

també podrem definir algunes restriccions OCL que concretaran més el nostre diagrama

de classes. A partir d’aquí, també elaborarem una versió final del diagrama de classes amb

tots els mètodes i atributs rellevants.

Per acabar, dedicarem un apartat al disseny de la base de dades i del model

relacional, i ho il·lustrarem amb un diagrama entitat-relació.

Page 61: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

61

5.1. Patrons

5.1.1. Patró Composite

A la versió inicial del diagrama de classes podem observar que la relació entre

països, regions i indrets està descrita amb associacions entre les diferents classes, i el

gruix principal recau sobre la classe Regió, que pot contenir altres regions o bé un llistat

d’indrets (o ambdues coses).

La imatge següent mostra aquesta part en el diagrama de classes inicial:

Tot i això, també podem pensar aquestes relacions com un arbre, de manera que

una regió pot tenir altres regions (sub-regions que correspondrien a les branques de

l’arbre) o bé indrets (que correspondrien a les fulles dels arbres).

En aquest cas existeix un patró estructural que resol exactament aquest tipus de

problema; es tracta del patró Composite. Aquest patró és especialment adequat quan un

programa necessita manipular estructures de dades en forma d’arbre i es vol tractar

uniformement tant les branques com les fulles.

En el nostre exemple, un objecte Regió sovint conté alguns indrets o altres objectes

Regió, de manera que és un objecte complex, a la vegada que un objecte Indret és un

objecte simple. Cal destacar també que, com que els objectes Regió i Indret tenen varis

atributs en comú, és molt més senzill i convenient tractar els dos objectes definint una

interfície.

La imatge següent mostra aquesta part en el diagrama de classes actual:

Diagrama 19. Part de la primera versió del diagrama de classes referent a la relació entre països, regions i indrets.

Diagrama 20. Part de la segona versió del diagrama de classes referent a la relació entre països, regions i indrets, amb l’aplicació del patró Composite.

Page 62: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

62

El patró Composite està dividit en quatre parts:

El component (interfície Regió). El component és l’abstracció per les fulles i pels

compostos. Defineix una interfície que ha de ser implementada pels objectes de la

composició.

La fulla (classe Indret). Les fulles són objectes que no tenen fills. Implementen

serveis descrits per la interfície del component.

El compost (classe Sub-regió). Un compost desa els components fills a més a més

d’implementar mètodes definits per la interfície del component. Els compostos

implementen mètodes definits a la interfície del component delegant

responsabilitats als components fills. A més a més, els compostos ofereixen

mètodes addicionals per afegir, eliminar, o obtenir components.

El client (classe País). El client manipula els objectes de la jerarquia utilitzant la

interfície del component.

Un client té una referència a una estructura de dades en forma d’arbre i necessita

dur a terme operacions a tots els nodes independentment de si es tracta d’una branca o

una fulla. El client simplement obté la referència del node concret utilitzant la interfície del

component, i negocia amb el node utilitzant aquesta interfície; no és important si el nodes

és un compost o una fulla.

5.1.2. Patró Strategy

Quan l’usuari selecciona un indret i realitza la fotografia corresponent a aquest

indret, aleshores l’aplicació ha de poder determinar d’alguna manera si la fotografia es

correspon o no a l’indret. Per fer-ho, necessita validar-la a través d’algun algorisme de

validació. Per exemple, es pot determinar que una fotografia és vàlida si la posició (GPS)

de l’usuari en el moment de fer la fotografia és prou a prop de la posició fixada de l’indret, i

si algun algorisme de comprovació de píxels determina que les imatges són prou

semblants.

Per tant, com que l’algorisme pot canviar, en el diagrama de classes inicial havíem

plasmat aquesta idea afegint una classe per cada algorisme (classes Validador1,

Validador2...) que implementaven una mateixa interfície (interfície Validador).

La imatge següent mostra aquesta part en el diagrama de classes inicial:

Diagrama 21. Part de la primera versió del diagrama de classes referent a

la validació.

Page 63: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

63

Però precisament aquest problema és el que soluciona el patró de comportament

Strategy. Hi ha situacions habituals on les classes només es diferencien pel seu

comportament. En aquests casos és una bona idea aïllar els algorismes en classes

separades per a poder seleccionar diferents algorismes en temps d’execució.

La idea és definir una família d’algorismes, cadascun d’ells encapsulat, i fer-los

intercanviables. La interfície Strategy permet variar l’algorisme independentment de la

classe client que la utilitzi.

La imatge següent mostra aquesta part en el diagrama de classes actual:

El patró Strategy està dividit en tres parts:

L’estratègia (interfície Validador). Defineix una interfície comuna a tots els

algorismes suportats. El context utilitza aquesta interfície per cridar l’algorisme

definit per l’estratègia concreta.

L’estratègia concreta (classes Validador1, Validador2...). Cada estratègia concreta

implementa un algorisme.

El context. Els objectes de context contenen una referència a l’estratègia concreta

que cal utilitzar. Quan es demana una operació, aleshores s’executa l’algorisme des

de l’objecte estratègia. El context no coneix la implementació de l’estratègia. Si fos

necessari, es podrien definir objectes addicionals per passar dades de l’objecte

context a l’objecte estratègia.

L’objecte context rep peticions del client i les delega a l’objecte estratègia. Sovint

l’estratègia concreta és creada pel client i passada al context. Des d’aquest punt els clients

interactuen només amb el context.

Diagrama 22. Part de la segona versió del diagrama de classes referent a la validació, amb l’aplicació del patró Strategy.

Page 64: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

64

5.1.3. Patró Singleton

A la primera versió del diagrama de classes vam definir una classe especialitzada

en les estadístiques de l’aplicació. Aquesta classe ha de mantenir aspectes com ara els

països més visitats pels usuaris, índexs de creixement dels usuaris, les funcionalitats més

usades de l’aplicació, o les plataformes i versions dels dispositius des d’on s’han

descarregat l’aplicació els usuaris, entre d’altres.

Com que és una classe que s’ha d’actualitzar constantment i que afecta o està

relacionada amb gairebé tota la resta de classes, es va decidir aïllar-la del diagrama

representant així que era una classe global.

La següent imatge mostra aquesta part en el diagrama de classes inicial:

El cert, però, és que també necessitem que cada actualització de la informació que

desa aquesta classe sigui única en el temps, és a dir, que no hi pot haver més d’una

actualització simultània per qüestions de garantia de les dades. Si permetéssim

actualitzacions simultànies, es podria donar el cas que, mentre una actualització pren de

referència la informació antiga de la classe, l’altra actualització prengui de referència la

mateixa informació antiga, i no s’esperi a obtenir els resultats de la primera actualització.

D’aquesta manera estaríem perdent la informació d’una o més actualitzacions.

Aquest problema es pot resoldre utilitzant el patró de creació Singleton. A vegades

és important tenir només una instància d’una classe. Sovint els singletons s’utilitzen per

gestió centralitzada de recursos interns o externs i ofereixen un punt d’accés global a ells

mateixos.

El patró Singleton és un dels patrons de disseny més simples: involucra només una

classe que és responsable d’instanciar-se a si mateixa, per assegurar-se que no crea més

d’una instància. Al mateix temps ofereix un punt d’accés global a aquesta instància. En

aquest cas, la mateixa instància pot ser utilitzada des de qualsevol lloc, sent impossible

cridar directament el constructor cada vegada.

La implementació inclou un atribut estàtic a la classe Estadístiques (que fa de

Singleton), un constructor privat i un mètode públic estàtic que retorna una referència a

l’atribut estàtic.

Diagrama 23. Part de la primera versió del diagrama de classes referent a les estadístiques.

Page 65: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

65

La següent imatge mostra aquesta part en el diagrama de classes actual:

5.1.4. Altres patrons

Deixant de banda els patrons de disseny aplicats que hem vist als apartats

anteriors, cal tenir clar que durant tota la fase d’anàlisi i disseny s’ha intentat tenir en

compte tots els consells que ens proposen els patrons GRASP.

Així, mentre decidíem els atributs i mètodes de les classes, fèiem ús del patró

Expert per assignar les responsabilitats a la classe adequada, a la classe experta en la

informació.

A més a més, també hem intentat mantenir en tot moment un equilibri entre una

alta cohesió i un baix acoblament, creant classes especialitzades per a dur a terme

funcionalitats més concretes, però agrupant aquelles tasques que tenien parts comunes.

Diagrama 24. Part de la segona versió del diagrama de classes referent a les estadístiques, amb l’aplicació del patró Singleton.

Page 66: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

66

5.2. Diagrama de classes amb patrons

En aquest apartat veurem com ens queda el diagrama després d’haver-hi aplicat

els patrons esmentats en els punts anteriors.

Dia

gra

ma

25

. Seg

on

a ve

rsió

del

dia

gram

a d

e cl

asse

s, a

pli

can

t p

atro

ns.

Page 67: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

67

5.3. Restriccions OCL

Hi ha restriccions als requeriments del nostre projecte que no es poden reflectir

mitjançant els diagrames que hem elaborat fins ara i, en general, amb qualsevol diagrama

de modelatge UML.

L’OCL (Object Constaint Language) ens permet descriure formalment aquestes

expressions en els models UML.

Així, l’objectiu principal d’afegir aquest tipus de restriccions és aconseguir un

model UML final que no tingui cap ambigüitat.

Les restriccions OCL que hem cregut necessàries al nostre model UML són les

següents:

Un usuari pertany a la llista d’amics de cadascun dels seus amics

context Usuari

inv: self.Usuari->forAll(u | u.Usuari->exists(self))

Els usuaris principiants no poden crear itineraris

context Usuari

inv: self.tipus = “principiant”

implies self.Itinerari->isEmpty()

Un usuari serà expert si ha visitat 100 o més indrets

context Usuari

inv: self.IndretVisitat->size() >= 100

implies self.tipus = “expert”

Els usuaris corporatius no poden visitar indrets

context Usuari

inv: self.tipus = “corporatiu”

implies self.IndretVisitat->isEmpty()

Els usuaris principiants no poden fer suggeriments

context Usuari

inv: self.tipus = “principiant”

implies self.Suggeriment->isEmpty()

Page 68: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

68

Els usuaris experts podran fer tants suggeriments com indiqui la divisió entera

entre la seva puntuació i 10 (per exemple, 23 punts permeten 2 suggeriments)

context Usuari

inv: self.tipus = “expert”

implies self.Suggeriment->size() <=

self.puntuacio->div(10)

La latitud d’un indret no pot ser inferior a -90 (negatiu indica el sud)

context Indret

inv: self.posicio_latitud >= -90

La latitud d’un indret no pot ser superior a 90 (positiu indica el nord)

context Indret

inv: self.posicio_latitud <= 90

La longitud d’un indret no pot ser inferior a -180 (negatiu indica l’oest)

context Indret

inv: self.posicio_longitud >= -180

La longitud d’un indret no pot ser superior a 180 (positiu indica l’est)

context Indret

inv: self.posicio_longitud <= 180

Un itinerari ha de tenir com a mínim un indret

context Itinerari

inv: self.Indret->size() >= 1

Page 69: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

69

5.4. Diagrama de classes final

Un cop descrites les restriccions OCL, ja estem en disposició d’elaborar la versió

final del nostre diagrama de classes. D’aquesta manera podem unir el diagrama modelat

amb UML amb el conjunt de restriccions per no deixar cap dubte sobre la relació entre les

classes. Hem esperat fins al final per expressar les restriccions perquè necessitàvem saber

els atributs i mètodes de les classes. A la versió final del diagrama de classes ja podem

observar-ne els més rellevants.

La nostra aplicació treballa conjuntament amb una base de dades que detallarem al

següent apartat quan definim el model relacional. Per aquest motiu necessita un conjunt

d’operacions específiques per fer accessos a la base de dades des de la majoria de les

classes del nostre diagrama, ja sigui per consultar-ne informació o per emmagatzemar-ne

de nova.

Per evitar un acoblament massa elevat, no podem fer que cadascuna de les classes

que necessita accedir a la base de dades implementi separadament les seves operacions,

perquè si en algun moment hi hagués la intenció de canviar la base de dades o la seva

definició, també hauríem de modificar el codi de totes aquestes classes. Així, la solució

passa per crear una nova classe especialitzada que s’encarregui de fer aquestes operacions

contra la base de dades, de manera que seria l’única classe afectada en el cas de fer

qualsevol modificació en el model relacional.

Com que aquest problema no és nou i sol aparèixer a la majoria de projectes on hi

intervé la base de dades, veurem que a la versió final del diagrama de classes aquesta

classe especialitzada no hi apareix. Ho hem decidit així per fer el diagrama més entenedor

i evitar moltes relacions cap a una mateixa classe que no només embrutiria el diagrama,

sinó que considerem que s’entén molt millor si ho expliquem textualment. Tot i això, hem

de tenir en compte que aquesta classe existeix i que és part imprescindible pel bon

manteniment i funcionament de la nostra aplicació.

Page 70: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

70

Dia

gra

ma

26

. Ter

cera

ver

sió

del

dia

gram

a d

e cl

asse

s; v

ersi

ó f

inal

am

b m

èto

des

i a

trib

uts

.

Page 71: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

71

5.5. Model relacional

Tal com hem anat avançant en apartats anteriors, la nostra aplicació necessitarà

treballar amb una base de dades. Per aquest motiu hem dedicat un apartat per a definir-la.

Explicarem el model relacional mostrant les taules que hauria de tenir la base de

dades i el model entitat-relació que la defineix.

Pel que fa al model entitat-relació, també es mostraran quins dels atributs de cada

entitat poden ser nuls (marcats amb una N de color blanc) i quins han de ser únics

(marcats amb una U de color vermell). Les relacions

5.5.1. Taules

Les taules del model relacional vindran estretament lligades amb les classes

persistents del nostre model.

A continuació mostrem aquestes taules, on les claus primàries estan ressaltades en

negreta, i les claus foranes en cursiva.

Usuari(usuari_id, nom, contrasenya, correu, tipus, estat,

data_registre, puntuacio)

UsuarisAmics(usuari_id1, usuari_id2)

Indret(indret_id, pais_id, subregio_id, fotografia_id, nom,

posicio_latitud, posicio_longitud)

IndretVisitat(usuari_id, indret_id, puntuacio)

Incidencia(usuari_id, indret_id, descripcio)

Subregio(subregio_id, pais_id, regio_id, nom)

Pais(pais_id, nom)

Itinerari(itinerari_id)

IndretItinerari(indret_id, itinerari_id)

PaisItinerari(pais_id, itinerari_id)

Informacio(informacio_id, indret_id, informacio_monument_id,

informacio_museu_id, descripcio)

InformacioMonument(informacio_monument_id, mapa)

InformacioMuseu(informacio_museu_id, mapa, horari)

Suggeriment(suggeriment_id, usuari_id, fotografia_id, descripcio)

Fotografia(fotografia_id, imatge)

Page 72: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

72

5.5.2. Diagrama entitat-relació

Dia

gra

ma

27

. Dia

gram

a en

tita

t-re

laci

ó d

el m

od

el r

elac

ion

al.

Page 73: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

73

6. Prototipatge

Com que el desenvolupament d’aquest projecte no comprèn la part

d’implementació de l’aplicació, la part de prototipatge cobra una mica més d’importància,

perquè serà l’única referència visual que podrà tenir el client de la nostra aplicació.

Els següents apartats intentaran reflectir com hauria de ser la interfície gràfica de

les funcionalitats més rellevants de l’aplicació en el cas que s’acabés implementant.

6.1. Icona

Per a representar la nostra aplicació si s’acabés publicant als diferents mercats

d’aplicacions de smartphones, hem elaborat una icona pròpia.

Consta de la part frontal d’una càmera de fotografiar, on s’ha substituït l’objectiu

per una bola del món. En definitiva, un resum de la idea del nostre projecte.

6.2. Pantalla inicial

La primera pantalla que visualitzem en entrar a l’aplicació hauria de tenir un

aspecte semblant a la següent imatge.

Figura 1. Ícona de l’aplicació.

Figura 2. Prototipus de la pantalla inicial.

Page 74: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

74

6.3. Seleccionar indret

Si escollim l’opció de “Mapamundi” de la pantalla inicial, accedirem al mapa de tot

el món on podrem seleccionar el país d’on volem fotografiar algun indret.

A la part inferior dreta ens hi apareixerà el percentatge d’indrets visitats d’arreu

del món.

Quan haguem visitat algun país (algun dels seus indrets), aquest país quedarà

ressaltat. La tonalitat del color utilitzada per ressaltar el país significa el percentatge

d’indrets visitats d’aquell país (a més indrets visitats, més fosc).

Figura 3. Prototipus de l’opció “Mapamundi”.

Figura 4. Prototipus de l’opció “Mapamundi” amb països ressaltats.

Page 75: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

75

Com que alguns països són molt petits i la superfície de la pantalla d’un dispositiu

mòbil és força reduïda, per fer més còmode a l’usuari la selecció d’un país es podrà fer

zoom d’aquelles zones que més interessin.

En aquest cas, mostrem un exemple on s’ha fet zoom a la part dels països

ressaltats.

6.3.1. Llista d’indrets

Un cop seleccionat el país, accedirem a una pantalla amb un mapa específic del país

i el conjunt d’indrets a visitar.

Figura 5. Prototipus de l’opció “Mapamundi” amb zoom als països ressaltats.

Figura 6. Prototipus de selecció d’un país.

Page 76: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

76

6.3.2. Seleccionar indret concret

Quan seleccionem un dels indrets del conjunt, ja sigui des del mapa o des de la

llista, aquest indret quedarà ressaltat.

6.4. Validar fotografia

Un cop haguem seleccionat un indret concret, se’ns mostrarà la pantalla específica

d’aquell indret. Hi apareixerà el nom, les coordenades, la fotografia de l’aplicació, un espai

per a la fotografia de l’usuari, un botó d’incidències, un botó d’informació i una indicació

de validació de la fotografia.

En aquest primer prototipus podem observar un indret que encara no s’ha

fotografiat i que, per tant, no està validat (indicador de color vermell).

Figura 7. Prototipus de selecció d’un indret concret.

Figura 8. Prototipus de validació incorrecta d’un indret.

Page 77: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

77

Un cop hem fet la fotografia i l’aplicació ens l’ha validat, l’indicador passa a color

verd i l’indret es marca com a visitat.

6.5. Classificació

Una altra opció que tenim a la pantalla inicial és la de “Classificació”. Podem

separar la classificació en diferents modes: per puntuació o per percentatge, global o per

països, i tots els usuaris o només la llista d’amistats.

6.5.1. Classificació global i tots

Classificació de tots els usuaris de l’aplicació i tots els països, per puntuació.

Figura 9. Prototipus de validació correcta d’un indret.

Figura 10. Prototipus de classificació global i de tots els usuaris, per puntuació.

Page 78: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

78

Classificació de tots els usuaris de l’aplicació i tots els països, per percentatge.

6.5.2. Classificació global i amics

L’única diferència amb l’apartat anterior és que la llista d’usuaris seran els nostres

amics. Per això només mostrem el desplegable que deixa escollir entre les diferents

opcions de classificació, entre elles la de classificació per amics.

Figura 11. Prototipus de classificació global i de tots els usuaris, per percentatge.

Figura 12. Prototipus de selecció entre opcions de classificació.

Page 79: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

79

6.5.3. Classificació països i tots

Classificació de tots els usuaris de l’aplicació i d’un país concret. Per seleccionar el

país, l’aplicació mostrarà un llistat de països.

Un cop hem seleccionat el país, es mostra la classificació de tots els usuaris per

aquell país concret.

Figura 13. Prototipus del llistat de països a seleccionar per obtenir la classificació per països.

Figura 14. Prototipus de classificació per països i de tots els usuaris.

Page 80: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

80

6.5.4. Classificació països i amics

Classificació dels usuaris amics per un país concret.

6.6. Gestió d’amics

La tercer opció que ens permet la pantalla inicial és la d’“Amistats”. Quan hi

accedim veurem la llista dels nostres usuaris amics. Podem seleccionar-ne un per veure’n

la informació o buscar-lo mitjançant el cercador. Un cop seleccionat, també el podem

eliminar.

Figura 15. Prototipus de classificació per països i dels usuaris amics.

Figura 16. Prototipus de gestió d’amistats; veure informació d’un usuari amic.

Page 81: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

81

També podem utilitzar el cercador per buscar nous usuaris. Si l’usuari que

escrivim existeix, se’ns mostrarà la seva informació i tindrem l’opció d’enviar-li una petició

d’amistat.

6.7. Àlbum de fotografies

La següent opció de la pantalla inicial és la d’“Àlbum”. Aquí podem gestionar totes

les fotografies que haguem fet dels indrets.

Figura 17. Prototipus de gestió d’amistats; buscar un nou usuari amic.

Figura 18. Prototipus de visualització de l’àlbum de fotografies.

Page 82: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

82

Si es prem sobre una de les fotografies s’obtenen algunes característiques, com ara

la data de realització de la fotografia. Mentre visualitzem els detalls, podem prémer el botó

d’“Ínformació” per accedir al mapa, horaris o altres aspectes de l’indret, o també podem

eliminar la fotografia prement sobre el botó d’“eliminar”.

Si a l’inici de visualització de l’àlbum premem el botó d’“eliminar” en comptes de

prémer sobre una fotografia, aleshores tenim l’opció d’eliminar més d’una imatge de cop.

Seleccionem les que vulguem eliminar i premem el botó d’“OK!”.

Figura 19. Prototipus de visualització de l’àlbum de fotografies; detall de fotografia.

Figura 20. Prototipus de visualització de l’àlbum de fotografies; eliminar més d’una fotografia.

Page 83: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

83

6.8. Itineraris

La penúltima opció de la pantalla inicial fa referència als “Ítineraris”. Si l’escollim

accedirem a una pantalla on podrem seleccionar un itinerari de la llista, que conté el nom

de l’itinerari, el nombre d’indrets que comprèn i els països que engloba.

Un cop seleccionat l’itinerari, se’ns mostra un mapa amb els indrets que comprèn

amb l’ordre especificat, on ens indica quins indrets ens falten per visitar (de color vermell)

si volem completar l’itinerari. També disposem d’una llista amb tots els indrets de

l’itinerari per seleccionar-los més còmodament.

Figura 21. Prototipus de selecció d’itineraris.

Figura 22. Prototipus de seguiment d’itinerari.

Page 84: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

84

A més a més, els usuaris experts i els usuaris corporatius disposaran d’un botó a la

part superior dreta per crear nous itineraris. Si el premen, l’aplicació els demanarà si

volen fer la creació manual o automàtica.

Si se selecciona l’opció de creació manual, accedirem a una pantalla on podrem

indicar el nom del nou itinerari i anar afegint indrets segons l’ordre que desitgem. El botó

d’“afegir indret” ens transporta a la mateixa pantalla que utilitzàvem per seleccionar un

indret per fotografiar. L’aplicació ens anirà dient quins països estem englobant i quins

indrets tenim de moment, juntament amb el nombre total. Quan es vulgui acabar es prem

el botó de “Guardar” i l’itinerari es desarà.

Figura 23. Prototipus d’opcions de creació d’itinerari.

Figura 24. Prototipus de creació manual d’itinerari.

Page 85: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

85

Si, d’altra banda, se selecciona l’opció de generació automàtica, aleshores

accedirem a una altra pantalla molt semblant on, a part del nom, també se’ns demanarà

que seleccionem un indret inicial i que indiquem un radi. Aleshores, podem prémer el botó

de “Generar” per crear l’itinerari automàticament i veure’n informació associada com els

països que engloba, el conjunt d’indrets (ressaltant l’indret inicial) i el nombre total

d’aquests. Si ens agrada el resultat, podem prémer el botó de “Guardar”.

6.9. Suggeriments

L’última opció de la pantalla inicial ens permet enviar suggeriments de nous

indrets. Hi haurà un espai per a fer la fotografia de l’indret i dues caixes de text per indicar

el nom i comentaris.

Figura 25. Prototipus de generació automàtica d’itinerari.

Figura 26. Prototipus d’enviament de suggeriments.

Page 86: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

86

Annex Í: Reunions realitzades

DATA TEMA DE LA REUNIÓ

14 de febrer Primera idea del projecte a realitzar. Perfil bastant definit; sembla clar

que s’acabarà realitzant una aplicació per a telèfons mòbils.

21 de febrer Decisió final del tema del projecte.

28 de febrer

Acabar de perfilar alguns aspectes dels requeriments i començar a parlar

del contingut de les diapositives de la presentació del projecte. Decidir si

els primers prototipus creats són els que tothom s’esperava. Confirmació

dels rols de cada membre.

29 de febrer

Detallar el contingut de les diapositives. Decisió del nom del projecte,

encara que pugui patir algun canvi durant el seu desenvolupament.

Addició d’un nou requeriment.

13 de març Definir les properes tasques a realitzar: el pla de projecte i la primera

versió del diagrama de classes.

22 de març

Decidir com es redactaran els requeriments del nostre projecte i repartir

les tasques de redacció. Parlar sobre la primera idea i intentar ampliar els

requeriments. Comentar les qüestions necessàries sobre la primera

versió del diagrama de classes. Debatre alguns elements a tenir en

compte per a l’elaboració del pla de projecte.

6 d’abril

Insistir en els compliments de termini del pla de projecte. Realització dels

diagrames de casos d’ús per ensenyar-los al client a la reunió del dia 10

d’abril.

10 d’abril

Comentar alguns aspectes a modificar dels requeriments, sobretot pel

que fa a fer-los més entenedors. Posar en comú els diagrames fets fins ara

i aportar valoracions sobre possibles canvis. Deixar clar que el següent

punt és tenir el diagrama de classes més avançat. Proposar fer una llista

dels diferents casos d’ús per decidir quins necessiten fitxes de cas d’ús.

Aquestes fitxes es faran directament a nivell de programador. Anar

avançant la documentació.

17 d’abril

Parlar del diagrama de classes i de possibles millores que s’hi puguin

aplicar. Decidir les fitxes que s’han d’acabar de refinar. Proposar com a

següent pas l’elaboració del diagrama de seqüència de l’obtenció de

puntuació per part de l’usuari per observar el flux que segueix l’aplicació.

24 d’abril

Explicar els motius pels quals no s’ha complert amb la data d’entrega de

la fase d’anàlisi. S’han llistat els diagrames des seqüència necessaris per

afegir a la fase d’anàlisi, i s’ha parlat sobre l’estat de les noves dates

d’entrega. S’han establert els següents passos a dur a terme:

Fer els diagrames de seqüència a partir de les fitxes de cas d’ús.

Si a l’hora de realitzar els diagrames de seqüència cal modificar les fitxes, fer-ho i comentar-ho.

Revisió del pla de projecte.

Page 87: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

87

Comentar possibles patrons a dur a terme: idea molt general.

Primeres opcions de restriccions OCL, tot i que no s’implementaran fins que el diagrama de classes no sigui definitiu i tingui tots els atributs i mètodes.

Cerca de possibles algorismes per a la generació automàtica d’itineraris.

1 de maig

Determinar en quin punt es troba el projecte i quin camí cal seguir.

L’objectiu més proper és perfilar el diagrama de classes afegint-hi els

patrons que es trobin adequats. Comentar si cal fer algun diagrama de

seqüència més per assegurar-nos que el diagrama de classes és correcte.

Proposar un estudi per esbrinar com calcular els punts dels itineraris en

la generació automàtica.

8 de maig

Concretar les fitxes. Omplir el diagrama de classes amb els atributs i

mètodes utilitzats als diagrames de seqüència. Assegurar-se que no es

pot aplicar cap més patró. Avançar les restriccions OCL i definir el model

relacional (taules i model entitat-relació).

15 de maig

Mantenir la data de divendres 18 de maig com a data d’entrega del

projecte final, tot i que s’entregarà físicament (en paper) el següent

dilluns. Complementar la documentació amb l’addició d’algun exemple

d’obtenció d’estadístiques i acabar el diagrama de classes.

Page 88: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

88

Annex ÍÍ: Gen. automa tica d’itineraris

A2.1. Introducció

La generació automàtica d’itineraris no és un problema senzill. Per tant, caldrà

investigar quina estructura de dades serà la millor per emmagatzemar la informació per

agilitzar la feina a l’hora de generar els itineraris. De fet, el problema és saber com hem de

fer la cerca dels indrets per arribar a construir l’itinerari.

Però aquest problema ja és conegut com a Range Searching, que busca la manera

de fer un pre-procés per poder determinar si un conjunt concret P d’objectes, que en el

nostre cas correspondria a un conjunt d’indrets, forma part d’un determinat rang, que en

el nostre cas seria circular. Aquest problema és un dels principals temes en els quals

treballa la geometria computacional, entre molts altres.

Hem decidit que el nostre rang seria circular perquè és la millor manera

d’assegurar que la distància màxima al centre sigui la mateixa. Tot i això, el Range

Searching pot tenir diferents variants depenent, precisament, del tipus de rang. D’aquesta

manera podem tenir l’Orthogonal Range Searching per a rectangles, el Simplex Range

Searching per a figures simples, el Halfspace Range Searching per a figures dividides en

dues parts, o el Circular Range Searching per a cercles, que serà el que nosaltres

utilitzarem.

A2.2. Circular Range Searching

El principal objectiu que tindrem consistirà en realitzar una query respecte els

punts del nostre conjunt P tals que estiguin dins l’esfera de centre q i de radi r.

La idea és que tenim una triangulació T dels punts del nostre conjunt P, i un

triangle . El problema, tal com hem comentat anteriorment, consisteix en computar

tots els punts de P que estiguin dins de la circumferència de t. Aquest problema sovint

sorgeix en el conegut Higher Order Delaunay Triangulations.

En el nostre cas, el que ens preocupa és , que és el temps de resposta de la

query, , la grandària de l’estructura de dades, i , el temps de pre-procés de

l’algorisme. De fet, el nostre objectiu és que el temps de resposta no sigui més gran que la

grandària del conjunt de sortida, sense tenir en compte cap pre-procés. Així doncs,

analitzarem una tècnica eficient a la pràctica, que no utilitza cap mena de pre-

processament ni emmagatzematge addicional, que es basa en el recorregut del graf dual de

triangulació.

La tècnica proposada comença amb t, tot recorrent els seus veïns, i seguint de veí a

veí utilitzant la cerca en amplada. D’aquesta manera, anotem els punts que estan dins de la

circumferència de t. De fet, aquest mètode és útil per a qualsevol sistema de

triangulacions, però en el nostre cas ens interessa la triangulació de Delaunay.

Page 89: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

89

Suposem que mitjançant el centre i el radi obtenim el triangle t dins d’un conjunt

de figures triangulars T, tal com es pot apreciar a la figura següent. A més, determinem el

cercle C amb radi r (descrit abans) que té el centre situat a q, concretant així la

circumferència circumscrita del triangle t.

El procediment de cerca, que comença a partir del triangle t, visita t i els seus tres

vèrtexs, representats al triangle gris de l’apartat (a) de la figura. Tot seguit, es visiten els

triangles adjacents a t, en el sentit de les agulles del rellotge o, en aquest cas, per ordre

alfabètic. Així doncs, segons l’apartat (b) de la figura anterior, es visiten els triangles a, b i

c. El següent pas consistirà en realitzar el mateix procés pels nous triangles trobats.

D’aquest nou procés, haurem de tenir en compte els vèrtexs que es trobin dins de la

circumferència. A l’apartat (c) de la figura estan representats de color negre. Per tant,

podem concloure ràpidament que l’algorisme pretén envoltar els triangles visitats tot fent

un polígon frontera, traçat amb línies discontínues a l’apartat (d) de la figura.

Cal tenir en compte que a cada iteració l’algorisme visita els triangles no visitats

adjacents a la frontera. Així, en la següent iteració es visiten els sis nous triangles adjacents

a la frontera a la vegada que s’actualitza, tal com ens mostra l’apartat (c) de la figura.

Finalment, l’algorisme acaba quan visitem algun triangle que està fora de la

circumferència C, és a dir, si tenim un conjunt de triangles visitats TV, haurem de tenir

. Així doncs, la frontera s’estén fins que envolta C, tal com es veu a l’apartat (d)

de la figura.

Figura 27. Ídea principal de l’algorisme.

Page 90: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

90

La frontera és un polígon triangular simple de mida f, que té k punts addicionals a

l’interior. Podem afirmar que el nombre de triangles ja visitats a l’interior de la frontera és

de . Per tant, podem denotar la mida màxima de la frontera com a

, i el nombre total de triangles visitats com a T. Dit d’una altra manera, T ens

indica el nombre de triangles t’ de manera que no es buit, o sigui, |{ |

}|. Així, el temps necessari per respondre una consulta és .

El mètode proposat utilitza la triangulació com a clau amb arestes i visitant

totes aquelles arestes que tenen com a mínim un punt no més llunyà del centre q amb una

distància r. Per tant, tenim un temps esperat de funcionament de , on ( )

indica el grau esperat per cada vèrtex k dins de C. Dwyer va mostrar que pels

punts que es trien de manera uniforme a l’atzar en una bola d-dimensional. Per tant, és

raonable suposar que en la triangulació de Delaunay podem argumentar que

donat un temps esperat de funcionament de . La majoria d’aplicacions de Higher

Order Delaunay Triangulations (HODT) utilitzen Higher Order Voronoi Diagrams (HOVD)

per a determinar l’ordre d’un triangle donat. Aquest darrer mètode és emprat per a la

majoria de solucions òptimes per a problemes de rang circular de dues dimensions.

A continuació mostrem una taula de temps comparatius amb HOVD i el sistema

que hem descrit (CCRS), tenint en compte que no es comptabilitza cap temps de pre-

processament.

Algorisme Q(n) S(n) P(n)

HOVD

CCRS

Taula 3. Comparació entre HOVD i CCRS.

Ara bé, tot i ser més eficient, aquest mètode és més complex d’implementar. Aquest

és el motiu pel qual ens dedicarem a buscar un altre mètode on, tot i perdre eficiència,

guanyem en simplicitat.

A2.3. Disk/ball Range Searching Queries

Abans de res, hem d’aclarir que el que comentarem en aquest apartat és a nivell

molt general, i que l’objectiu és quedar-nos amb la idea per poder decidir quin dels dos

algorismes utilitzar si en un futur s’implementés l’aplicació.

Suposem que disposem d’un conjunt { }, on m és el número de rangs

de disk i el rang està definit pel centre i pel radi , que ens permet realitzar diferents

rangs de cerca de manera paral·lela. Així, distingim entre el rang de recomptes i el rang de

consultes que realitzem.

Page 91: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

91

Els centres del rang i el radi es transfereixen a les matrius d’una dimensió de la

GPU, tot rebent el nom de q i r respectivament. Les consultes de Range Searching es

resolen íntegrament a la GPU utilitzant la quadrícula que conté S, que ha estat

emmagatzemada i construïda dins la GPU, i les matrius q i r.

A2.3.1. Range counting

La solució del Range counting s’emmagatzema en un matriu d’una dimensió de

mida m, on guarda el nombre de punts que conté S en el rang . Executarem un fil

d’execució per a cada rang, tenint així fins a m fils d’execució. El fil d’execució de

l’identificador global i llegeix de la memòria global q(i) i r(i), i explora una àrea que

contingui el rang. Aquesta àrea és un quadrat/cub centrat a q(i) i de cel·les de

costat. Cal tenir en compte que el nombre de cel·les de la quadrícula que són intersecades

pel quadrat/cub depenen de les dimensions de la bounding box de la quadrícula. Cada fil

d’execució travessa la seva corresponent regió en un ordre de fila/(fila, columna).

Mitjançant un comptador local, s’obté el nombre de punts continguts a

Una vegada totes les cel·les s’han travessat, el nombre de punts obtinguts

s’emmagatzema a la memòria global a . Finalment, quan tots els fils d’execució han

acabat, conté la resposta del Range counting.

A2.3.2. Range reporting

El problema del Range reporting no es pot resoldre en un únic pas perquè la mida

de la seva resposta no es pot conèixer amb anterioritat i no és possible assignar memòria

dinàmicament a la GPU. La resposta ve donada per dues matrius unidimensionals i , on

els punts continguts en el rang són emmagatzemats en posicions consecutives de

començant a la posició .

Comencem resolent el problema de Range counting definit anteriorment. A

continuació, s’executa una exploració exclusiva de prefix sum sobre la resposta del Range

counting per obtenir . L’exploració exclusiva també s’empra per emmagatzemar el

nombre total de punts obtinguts M. Aquest valor és llegit per la CPU i després s’assigna

memòria a la GPU per emmagatzemar la matriu que conté els M punts. Finalment, el

problema del Range reporting es resol utilitzant les matrius de centres q, radis r, posicions

i la quadrícula . Un cop més, s’executa un fil d’execució per cada punt de consulta. El fil

d’execució de l’identificador global i llegeix q(i) de la memòria global i calcula la posició

linealitzada j de la cel·la de la quadrícula on és continguda. La regió quadrada/cúbica es

torna a visitar i els índexs de dels punts continguts a són emmagatzemats en

posicions consecutives de , començant per .

Observem que si estem interessats en obtenir les solucions del Range Searching a

la CPU, les matrius i han de ser llegides de la GPU a la CPU. La matriu pot contenir

els punts de coordenades o els seus índexs en el vector de la quadrícula. S’ha de tenir en

compte que els índexs esmentats no coincideixen amb els índexs d’origen a S i,

conseqüentment, quan s’utilitzen els índexs, el vector de la quadrícula ha de ser llegit

cap a la CPU.

Page 92: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

92

A2.3.3. Anàlisi de complexitat

Anomenarem I el nombre de punts continguts a les cel·les que poden intersecar-se

amb els rangs de R, i M la mida de la sortida del Range Searching. Sent n el nombre de

punts a S, en el pitjor cas i . Segons aquests valors, la complexitat de treball

del Range counting és ; de fet, cada fil d’execució visita tots els punts de les cel·les que

s’intersequen amb el seu corresponent rang. Per respondre el problema del Range

reporting, la complexitat de l’algorisme d’exploració és , on m es el nombre de

consultes de rang processades. Després, el Range reporting representa un temps

addicional de perquè tots els punts són reconsiderats, però només

s’emmagatzemen aquells que estan continguts al rang. Així, la complexitat de treball del

Range reporting és i, fent referència al nombre total de lectures i escriptures a

la memòria global, tenim un total de

accessos.

En el cas d’un conjunt S de punts uniformement distribuïts emmagatzemat en una

quadrícula amb una densitat de cel·les equivalent a , es podria fer un estudi molt més

detallat. Anomenem el nombre màxim de punts continguts a les cel·les que

s’intersequen amb un cercle/esfera de radi , on ⌈ ⌉ ⌈ ⌉ en el cas

bidimensional, i pel cas tridimensional cal afegir el terme multiplicatiu ⌈ ⌉. Utilitzant

aquesta notació, el nombre de cel·les visitades quan estem resolent un Range Searching

amb radi r és . Conseqüentment, el nombre total de punts visitats és ∑ , i la

grandària esperada de la sortida és , on V és la suma de les m àrees o volums del

rang, i B és l’àrea o volum de la bounding box que conté S. La resta de l’anàlisi no canvia.

A2.4. Conclusions

Tot i que el segon algorisme presentat sembla que només se centri en la part de la

CPU i la GPU, la idea és que podem obtenir un bon algorisme si tenim una estructura de

dades ben construïda.

En aquest punt hauríem de decidir quin dels dos algorismes seria preferible

implementar, però creiem que és un tema que, tot i que l’hem analitzat aquí, cobra més

importància si l’aplicació s’ha d’implementar. A més a més, veiem com, a nivell de

complexitat, els dos algorismes són força semblants.

Page 93: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

93

Annex ÍÍÍ: Manual d’usuari

El manual d’usuari pretén ser una eina d’ajuda per saber com navegar per

l’aplicació si volem fer ús d’alguna funcionalitat. Així, s’explicaran les diverses opcions que

ofereix cada pantalla, començant pel registre i continuant amb les funcionalitats que

apareixen a la pantalla inicial.

A3.1. Inici de l’aplicació

El primer pas per utilitzar l’aplicació és descarregar-nos-la des del mercat

d’aplicacions del nostre dispositiu. Per exemple, si s’utilitza un sistema operatiu Android

caldrà accedir a l’Android Market (o Play Store), i si s’utilitza un sistema operatiu ÍOS

caldrà accedir a l’Apple Store. Després de buscar la nostra aplicació, podrem descarregar-

nos la versió gratuïta o la de pagament. Tant el procés de descàrrega com el d’instal·lació

es farà de forma automàtica.

Un cop descarregada i instal·lada l’aplicació, veurem que apareix la nostra icona al

conjunt d’aplicacions del nostre dispositiu. Si la premem, accedirem a l’aplicació.

Quan accedim per primera vegada a l’aplicació haurem de registrar-nos. Se’ns

mostrarà un formulari on haurem d’omplir els següents camps:

Nom d’usuari

Contrasenya

Repetició de la contrasenya

Correu electrònic

Si ja existeix un usuari a la nostra aplicació amb el mateix nom d’usuari, aleshores

es mostrarà un missatge indicant-ho i es demanarà un altre nom d’usuari. Quan tot sigui

correcte, es mostrarà la pantalla inicial de l’aplicació.

Un cop registrats ja no tornarà a aparèixer el formulari de registre les pròximes

vegades que accedim a l’aplicació.

A3.2. Funcionalitats bàsiques de l’aplicació

Quan accedim a la pantalla inicial de l’aplicació podem observar un conjunt

d’opcions a escollir de la nostra aplicació. Cadascuna d’elles està considerada com una

funcionalitat bàsica, i són les que anirem explicant en els següents apartats.

En aquest manual no s’especificarà la manera de tornar enrere en la navegació per

pantalles, perquè sol ser una característica específica del dispositiu o del sistema operatiu.

En Android, per exemple, el propi dispositiu ja la incorpora.

Page 94: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

94

Les funcionalitats són les següents:

Mapamundi (selecció d’indrets)

Classificació

Amistats

Àlbum de fotografies

Itineraris

Suggeriments

A3.3. Mapamundi

Aquesta funcionalitat serà la més important de la nostra aplicació. Ens permetrà

seleccionar nous indrets per a fotografiar, així com informació sobre el percentatge

d’indrets visitats.

A3.3.1. Seleccionar país

A l’inici veurem la imatge d’un mapamundi sobre el qual ens podrem desplaçar. A

més a més, un país estarà pintat d’un color més fosc a mesura que es visitin més indrets

d’aquell país. Com que la superfície de la pantalla és petita i hi ha molts països per a poder

seleccionar, l’aplicació també permetrà fer zoom del mapamundi en qualsevol moment per

fer més còmode la selecció d’un país. Per fer zoom només caldrà desplaçar els dits en

direccions contràries cap enfora (per augmentar) o cap endins (per reduir).

A la part inferior dreta podrem observar en tot moment el percentatge d’indrets

visitats que tenim de tots els països.

Figura 28. Exemple de selecció de país fent zoom (augmentant).

Page 95: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

95

A3.3.2. Seleccionar indret

Un cop haguem seleccionat un país del mapamundi, se’ns mostrarà el mapa

d’aquell país juntament amb els possibles indrets que podem visitar. Els indrets se

situaran al mapa amb un punt verd si ja els hem visitat i validat correctament, o amb un

punt vermell si encara ens falta validar-los. Si premem sobre algun d’aquests punts

accedirem a l’indret corresponent.

Com que algun país pot tenir una concentració elevada d’indrets en determinades

zones i pot ser complicat seleccionar-ne algun, també disposarem del llistat d’indrets a la

part esquerra. Si premem sobre un indret d’aquest llistat veurem com es ressalta el punt

del mapa corresponent. Per accedir a l’indret haurem de prémer la fletxa posicionada al

costat del nom.

A la part inferior dreta podrem observar en tot moment el percentatge d’indrets

visitats que tenim d’aquest país.

A3.3.3. Fotografiar indret

Després de seleccionar un indret del mapa del país accedirem a una pantalla

específica per aquell indret.

A la part superior d’aquesta pantalla hi veurem el nom de l’indret i les seves

coordenades. A la part esquerra hi haurà la imatge que ens proposa l’aplicació i a la part

dreta hi tindrem un espai per proposar la nostra fotografia. Per fer la fotografia haurem de

prémer sobre la icona de la càmera.

A part de tota aquesta informació, tenim un botó per obtenir informació de l’indret

i un altre botó per enviar una incidència en el cas que l’usuari ho cregui necessari. A més a

més, hi haurà un indicador de validació que serà de color vermell si l’indret no està validat

o de color verd si l’indret està validat.

Quan l’indret estigui validat, a la part dreta hi apareixerà la nostra fotografia.

Figura 29. Exemple de selecció d’indret.

Page 96: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

96

A3.4. Classificació

L’usuari pot consultar la classificació de la resta d’usuaris mitjançant aquesta

funcionalitat. Podrem classificar els usuaris per la seva puntuació obtinguda en fotografiar

els indrets o bé pel percentatge d’indrets visitats que tinguin. També tindrem l’opció

d’escollir entre la classificació de tots els països o d’un país concret, i entre la classificació

de tots els usuaris de l’aplicació o només els de la nostra llista d’amistats.

L’opció per defecte serà la classificació global, de tots els usuaris i ordenada per

puntuació. Es mostraran els deu primers usuaris classificats, i si el nostre nom es troba en

aquesta llista quedarà ressaltat, destacant-se de la resta.

A més a més, a la part dreta de la pantalla hi trobarem sempre el tipus de

classificació i les nostres dades (posició, puntuació i percentatge).

Figura 30. Exemple de fotografia d’indret; indret no validat.

Figura 31. Exemple de fotografia d’indret; indret validat.

Page 97: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

97

A la part superior dreta hi trobarem una llengüeta per seleccionar el tipus de

classificació. Si la premem se’ns desplegaran les opcions que tenim: global o per països, i

tots els usuaris o només les amistats.

Si escollim l’opció de classificació per països, aleshores l’aplicació ens proposarà un

llistat dels països on hi ha indrets per visitar.

Figura 32. Exemple de classificació global i de tots els usuaris.

Figura 33. Exemple del desplegament d’opcions de classificació.

Page 98: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

98

Un cop seleccionat un país, veurem la classificació segons aquest i observarem el

seu nom sobre les dades de l’usuari.

A3.5. Amistats

L’aplicació també permet que cada usuari tingui una llista d’amistats (altres

usuaris que també utilitzin l’aplicació). D’aquesta manera pot saber quina puntuació o

percentatge tenen i veure’n la classificació entre ells.

A la part esquerra de la pantalla hi haurà la llista dels nostres amics, i a la part

dreta s’hi trobarà un cercador, per buscar usuaris nous o de la mateixa llista, i les dades

d’algun usuari que haguem seleccionat o buscat. De la mateixa manera que a la

funcionalitat de classificació, les dades que es mostraran dels usuaris seran la posició, la

puntuació i el percentatge global.

Figura 34. Exemple de la proposta de països per seleccionar.

Figura 35. Exemple de classificació per un país concret i de la nostra llista d’amistats.

Page 99: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

99

Així, per saber les dades d’un usuari de la nostra llista d’amistats, l’haurem de

buscar a la llista i seleccionar-lo. Si la llista és molt extensa, podem utilitzar el cercador per

trobar-lo. Un cop seleccionat, se’ns mostraran les seves dades i s’habilitarà el botó de la

part superior dreta que permetrà eliminar l’usuari de la nostra llista d’amistats, si així ho

desitja l’usuari.

Si, per altra banda, es desitja afegir un usuari nou a la nostra llista d’amistats,

aleshores caldrà buscar el nom de l’usuari mitjançant el cercador. Si l’usuari existeix,

apareixerà la seva informació sota del cercador i s’habilitarà el botó de la part superior

dreta que permetrà enviar una petició d’amistat a l’usuari cercat.

Figura 36. Exemple de selecció d’un usuari amic.

Figura 37. Exemple de cerca d’un usuari nou.

Page 100: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

100

A3.6. Àlbum de fotografies

Una de les altres funcionalitats de l’aplicació és la gestió de les imatges que fa

l’usuari de cada indret.

L’aplicació ofereix un àlbum de les fotografies realitzades, i l’usuari té l’opció de

prémer sobre qualsevol d’elles per veure’n els detalls. També té l’opció d’esborrar un

conjunt de fotografies prement el botó de la part superior dreta.

Si l’usuari decideix prémer sobre una de les fotografies per veure’n els detalls,

aleshores accedirem a una nova pantalla on veurem la fotografia ampliada, a la part

esquerra, i les seves característiques, a la part dreta. Pel que fa a aquestes característiques,

es mostrarà el nom de l’indret fotografiat, les seves coordenades, i la data i l’hora de la

captura.

A més a més, hi haurà un parell de botons a la part superior dreta que ens

permetran obtenir més informació sobre l’indret fotografiat (mapes, horaris...), o bé

eliminar la fotografia de l’àlbum i del dispositiu.

Figura 38. Exemple de visualització de l’àlbum de fotografies.

Figura 39. Exemple de visualització dels detalls d’una fotografia.

Page 101: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

101

D’altra banda, si l’usuari decideix eliminar un conjunt de fotografies quan es troba

a la pantalla de visualització de l’àlbum, prement el botó corresponent, aleshores haurà de

seleccionar aquelles imatges que vol esborrar. L’aplicació enfosquirà les fotografies

seleccionades, i quan l’usuari premi el botó de confirmació, que es trobarà situat a la part

superior dreta, al mateix lloc on es trobava el botó d’eliminar, s’eliminaran aquestes

fotografies de l’àlbum i del dispositiu.

A3.7. Itineraris

A banda de la totalitat d’indrets existents, l’aplicació ofereix l’opció de fer grups

més reduïts d’indrets, que s’anomenen itineraris, per plantejar als usuaris nous reptes més

assequibles a curt termini.

Quan accedeixi a aquesta funcionalitat, l’usuari veurà a la pantalla el llistat

d’itineraris creats. Es mostrarà el nom de l’itinerari, el nombre d’indrets que comprèn i els

països que engloba. Per accedir a la informació d’un itinerari, només caldrà seleccionar-lo

a la llista. Pels usuaris experts i els usuaris corporatius, a la part superior dreta s’habilitarà

un botó que permetrà crear nous itineraris.

Figura 40. Exemple d’eliminació d’un conjunt de fotografies de l’àlbum.

Figura 41. Exemple de visualització del llistat d’itineraris de l’aplicació.

Page 102: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

102

Una vegada haguem seleccionat un itinerari de la llista accedirem a una nova

pantalla on apareixerà, a la part dreta, un mapa amb tots els indrets indicats amb punts

(de color verd si estan validats i de color vermell si encara no ho estan) i amb la seqüència

d’ordre indicada mitjançant la línia que els uneix, i a la part esquerra, un conjunt de

característiques de l’itinerari. Entre aquestes característiques hi haurà el nom de

l’itinerari, els països que engloba, el nombre d’indrets completats i el nombre d’indrets

totals, i un llistat de tots els indrets de l’itinerari.

Per seleccionar un indret es farà de la mateixa manera que ho fèiem a la pantalla

de selecció d’indrets; prement sobre l’indret del mapa o sobre el nom de l’indret al llistat.

Si es decideix prémer el botó de creació d’itineraris, aleshores l’aplicació ens

preguntarà si volem crear l’itinerari manualment o automàticament.

Figura 42. Exemple de visualització d’un itinerari.

Figura 43. Exemple d’elecció entre creació d’itinerari manual o automàtica.

Page 103: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

103

Si s’escull l’opció de creació manual accedirem a una nova pantalla on haurem

d’indicar el nom de l’itinerari i anar afegint nous indrets mitjançant el botó destinat a

aquesta tasca. Per afegir un nou indret després de prémer el botó, se seguiran els mateixos

passos que hem explicat a l’apartat de selecció d’indrets, partint del mapamundi.

A mesura que anem afegint indrets anirem veient, a la part dreta de la pantalla, un

llistat amb tots els indrets de l’itinerari, i a la part esquerra, el nombre total d’indrets i els

països que s’han englobat fins al moment. Quan haguem acabat d’afegir indrets, haurem de

prémer el botó de guardar per incorporar l’itinerari al conjunt d’itineraris de l’aplicació.

Si, d’altra banda, s’escull l’opció de creació automàtica d’itineraris, aleshores

accedirem a una altra pantalla on ens deixarà escollir el nom de l’itinerari, l’indret inicial i

el radi màxim entre l’indret inicial i la resta d’indrets. Per seleccionar l’indret inicial,

després de prémer el botó corresponent, seguirem els mateixos passos que hem explicat a

l’apartat de selecció d’indrets, partint del mapamundi.

A més a més, també se’ns informarà dels països que engloba l’itinerari i del

nombre total d’indrets, a la part inferior esquerra, i del nom dels indrets afegits, a la part

dreta. De tots els noms dels indrets, el nom de l’indret inicial quedarà ressaltat, destacant-

se de la resta.

Un cop haguem omplert totes les dades que ens demanen, podrem dir-li a

l’aplicació que ens creï l’itinerari automàticament mitjançant el botó de generar. Si ens

sembla correcte, podrem incorporar-lo a la llista d’itineraris de l’aplicació prement el botó

de guardar.

Figura 44. Exemple de creació manual d’itineraris.

Page 104: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

104

A3.8. Suggeriments

Com a última funcionalitat de l’aplicació, els usuaris experts i els usuaris

corporatius tindran l’opció d’enviar suggeriments de nous indrets per incorporar-los a la

següent versió de l’aplicació.

Per fer-ho, accedirem a una pantalla que ens demanarà, a la part dreta, el nom de

l’indret i els comentaris que creiem oportuns per justificar l’addició de l’indret a la

pròxima versió. També ens exigirà, a la part esquerra, que fem una fotografia de l’indret

seguint els mateixos passos que fèiem quan fotografiàvem un indret de l’aplicació.

Finalment, si premem el botó d’enviar, el suggeriment arribarà als administradors

perquè el puguin considerar.

Figura 45. Exemple de generació automàtica d’itineraris.

Figura 46. Exemple de formulari de suggeriment.

Page 105: ENGINYERIA DEL SOFTWARE II - UdGima.udg.edu/~sellares/EINF-ES2/Present1112/FinalPhoto... · 2012. 5. 22. · Pau Xiberta i Armengol 18/05/2012. 2 Í ndex 1. ... Annex IV: ontrol d’hores.....

105

Annex ÍV: Control d’hores

Per comprovar si havíem fet una bona planificació inicial i per aprendre d’aquests

possibles errors de planificació, s’ha mantingut un control de les hores destinades a cada

tasca del projecte per cada membre del grup. Així, si sumem les hores de cada membre

podem observar si les hores que havíem planificat al principi són realment les que hem

acabat fent.

Pla Proj. Requer. Anàlisi Disseny Prototip. Document.

Total hores 15 44 70 106 26 23

Taula 4. Nombre d’hores realitzades per cada tasca del projecte.

Evidentment, veiem que no coincideixen amb les hores previstes inicialment, i

podem admetre que hem sigut massa optimistes a l’hora d’estimar el temps necessari de

realització d’alguna de les tasques.

Pel que fa al nombre d’hores destinades al projecte per cada membre del grup, la

taula següent en mostra els resultats.

Total hores

Pau Xiberta i Armengol 83

Jordi Cazorla Riera 69

Ivan Rando Segura 68

Eduard Rando Segura 64

TOTAL 284

Taula 5. Nombre d’hores realitzades per cada membre del grup.

Per acabar, mostrem una taula significativa de la dedicació de cada membre del

grup a cada tasca del projecte. No és difícil adonar-se que aquesta dedicació coincideix

bastant amb el rol assumit per cada membre del grup.

Pla Proj. Requer. Anàlisi Disseny Prototip. Document.

Pau Xiberta i Armengol 2 11 23 25 14 8

Jordi Cazorla Riera 6 12 11 22 6 12

Ivan Rando Segura 2 13 22 27 3 1

Eduard Rando Segura 5 8 14 32 3 2

Taula 6. Nombre d’hores dedicades per cada membre del grup a cada tasca del projecte.