Está en la página 1de 108

ESCUELA TCNICA SUPERIOR DE INGENIERA INFORMTICA

GRADO EN INGENIERA INFORMTICA


Curso acadmico 2013 / 2014

Trabajo Fin de Grado

DESARROLLO DE UNA APLICACIN PARA LA GESTIN DE


MENS SEMANALES BASADOS EN UNA DIETA EQUILIBRADA:
CHEFTASTIC

Autor
Vctor Hernndez Bermejo

Tutor
Mara Teresa Gonzlez de Lena
i

Agradecimientos
En primer lugar quiero agradecer a mis padres su apoyo incondicional, su cario y
su sacrificio para que yo haya tenido la posibilidad de estudiar lo que realmente me gusta
y apasiona.

En segundo lugar agradecer a Sergio San Victoriano Huertas por ensearme la


leccin ms valiosa que he podido aprender: trabajar duro y esforzarme a diario para
conseguir cualquier cosa que me proponga. Gracias.

Cmo no, agradecer a mi compaero y amigo Diego Seplveda, porque sin l la


carrera habra sido mucho ms aburrida y sobre todo por las interminables tardes de
biblioteca.

Y en ltimo lugar el agradecimiento ms especial de todos a mi pareja. Gracias por


haber estado en cada momento de ste ltimo ao, por darme tu ilusin y tu fuerza a cada
instante, sin ti esto no habra sido posible.
iii

Resumen
En los ltimos aos el mundo de la tecnologa y la informtica ha experimentado
una revolucin con la aparicin de los telfonos mviles inteligentes o smartphones, y ms
recientemente, con la evolucin de las tablets.

La tremenda popularidad que han alcanzado estos dispositivos ha ocasionado que


estos avances tecnolgicos hayan calado rpidamente en la sociedad. Si bien hace diez
aos Internet empezaba a expandirse al mbito domstico, los smartphones y tablets
permiten a da de hoy el acceso a Internet desde prcticamente cualquier lugar, con lo que
se han convertido en dispositivos casi indispensables para muchas personas en su da a
da. Estos dispositivos adems, tienen unas especificaciones tcnicas que hacen posible
desarrollar aplicaciones que permitan a sus usuarios trabajar con ellos casi como si
estuvieran frente a un ordenador.

Estas tecnologas permiten a los profesionales de la informtica desarrollar sus


competencias laborales en un sector en crecimiento y con prometedoras proyecciones
para el futuro.

As, el objeto del presente trabajo fin de grado ser el desarrollo, desde su anlisis
hasta la puesta en produccin mediante la publicacin en una tienda de aplicaciones, de
una aplicacin para dispositivos mviles y tablets que permita gestionar y obtener
automticamente mens semanales que sigan las recomendaciones de una dieta sana y
equilibrada.
v

ndice General

Captulo I Introduccin ............................................................................................................................................... 1


I.1 Estado del arte ..................................................................................................................................................... 1
I.2 Motivacin ............................................................................................................................................................. 2
Captulo II Objetivos ..................................................................................................................................................... 3
II.1 Estudio de alternativas .................................................................................................................................. 3
II.2 Metodologa empleada .................................................................................................................................. 5
Captulo III Requisitos del sistema ....................................................................................................................... 7
III.1 Elicitacin de requisitos .............................................................................................................................. 7
III.2 Alcance del trabajo fin de grado .............................................................................................................. 9
Captulo IV Conceptos tericos previos .......................................................................................................... 11
IV.1 Nutricin y salud .......................................................................................................................................... 11
Captulo V Descripcin informtica................................................................................................................... 13
V.1 Sprint 1................................................................................................................................................................ 13
V.1.1 Planificacin ............................................................................................................................................ 13
V.1.2 Desarrollo ................................................................................................................................................. 14
V.1.2.1 Base de datos ................................................................................................................................. 14
V.1.2.2 Carga y actualizacin de datos en la aplicacin ........................................................... 15
V.1.2.3 Interfaz de usuario ...................................................................................................................... 16
V.1.3 Revisin ..................................................................................................................................................... 16
V.2 Sprint 2................................................................................................................................................................ 18
V.2.1 Planificacin ............................................................................................................................................ 18
V.2.2 Desarrollo ................................................................................................................................................. 18
V.2.3 Revisin ..................................................................................................................................................... 19
V.3 Sprint 3................................................................................................................................................................ 21
V.3.1 Planificacin ............................................................................................................................................ 21
V.3.2 Desarrollo ................................................................................................................................................. 21
V.3.2.1 Listado de recetas ........................................................................................................................ 21
V.3.2.2 Ficha de receta .............................................................................................................................. 23
V.3.2.2 Explorador de recetas ............................................................................................................... 24
V.3.3 Revisin ..................................................................................................................................................... 26
V.4 Sprint 4................................................................................................................................................................ 28
V.4.1 Planificacin ............................................................................................................................................ 28
vi

V.4.2 Desarrollo ................................................................................................................................................. 29


V.4.2.1 Barra lateral de navegacin.................................................................................................... 29
V.4.2.2 Ajustes ............................................................................................................................................... 31
V.4.2.3 Vista de men semanal ............................................................................................................. 31
V.4.3 Revisin ..................................................................................................................................................... 32
V.5 Sprint 5................................................................................................................................................................ 34
V.5.1 Planificacin ............................................................................................................................................ 34
V.5.2 Desarrollo ................................................................................................................................................. 35
V.5.2.1 Vista de men semanal ............................................................................................................. 35
V.5.2.2 Confeccin de mens creados por el usuario................................................................ 37
V.5.3 Revisin ..................................................................................................................................................... 37
V.6 Sprint 6................................................................................................................................................................ 39
V.6.1 Planificacin ............................................................................................................................................ 39
V.6.2 Desarrollo ................................................................................................................................................. 39
V.6.2.1 Algoritmo de generacin de mens equilibrados ....................................................... 40
V.6.2.2 Integracin de la generacin de mens equilibrados con la interfaz de
usuario .............................................................................................................................................................. 41
V.6.3 Revisin ..................................................................................................................................................... 42
V.7 Sprint 7................................................................................................................................................................ 44
V.7.1 Planificacin ............................................................................................................................................ 44
V.7.2 Desarrollo ................................................................................................................................................. 44
V.7.2.1 Diseo e implementacin del grfico de informacin nutricional ..................... 44
V.7.2.2 Diseo e implementacin de la ficha de informacin nutricional ...................... 45
V.7.2.3 Diseo e implementacin del widget de resumen nutricional ............................. 47
V.7.3 Revisin ..................................................................................................................................................... 49
V.8 Sprint 8................................................................................................................................................................ 50
V.8.1 Planificacin ............................................................................................................................................ 50
V.8.2 Desarrollo ................................................................................................................................................. 51
V.8.2.1 Correccin de errores ................................................................................................................ 51
V.8.2.2 Mejoras .............................................................................................................................................. 51
V.8.2.3 Publicacin en Play Store ........................................................................................................ 54
V.8.3 Revisin ..................................................................................................................................................... 54
Captulo VI Conclusiones ........................................................................................................................................ 57
VI.1 Consecucin de los objetivos ................................................................................................................. 57
VI.2 Trabajos futuros ........................................................................................................................................... 58
vii

Bibliografa ..................................................................................................................................................................... 59
Glosario ............................................................................................................................................................................ 61
Anexo A Tablas de datos ......................................................................................................................................... 63
Anexo B Scrum ............................................................................................................................................................. 65
B.1 Teora de Scrum ............................................................................................................................................. 65
B.2 Roles del equipo Scrum .............................................................................................................................. 66
B.2.1 Dueo de producto o Product Owner ........................................................................................ 66
B.2.2 Equipo de desarrollo ........................................................................................................................... 66
B.2.3 Scrum Master .......................................................................................................................................... 67
B.3 Eventos de Scrum .......................................................................................................................................... 68
B.3.1 Sprint........................................................................................................................................................... 68
B.3.2 Reunin de planificacin del Sprint ............................................................................................ 69
B.3.3 Scrum diario ............................................................................................................................................ 69
C.3.4 Revisin del Sprint ............................................................................................................................... 70
C.3.5 Retrospectiva del Sprint .................................................................................................................... 71
B.4 Artefactos de Scrum ..................................................................................................................................... 71
B.4.1 Lista de Producto .................................................................................................................................. 71
B.4.2 Lista del Sprint ....................................................................................................................................... 72
B.4.3 Diagrama de quemado ....................................................................................................................... 72
B.5 Otras metodologas complementarias aplicadas .......................................................................... 72
B.5.1 Mtodo MoSCoW................................................................................................................................... 73
Anexo C Diagramas de apoyo al diseo ........................................................................................................... 75
C.1 Diagrama Entidad-Relacin de la base de datos servidor ........................................................ 75
C.2 Diagrama Entidad-Relacin de la base de datos cliente ............................................................ 76
C.3 Diagramas de clases para el modelo de datos................................................................................. 77
Anexo D Listas de Sprint ......................................................................................................................................... 83
Anexo E Especificaciones del diseo de la vista de men semanal .................................................. 89
Anexo F Manual de usuario ................................................................................................................................... 93
F.1 Primera ejecucin .......................................................................................................................................... 93
F.2 Men semanal .................................................................................................................................................. 93
F.3 Informacin nutricional.............................................................................................................................. 95
F.4 Navegando entre las pantallas de la aplicacin.............................................................................. 96
F.5 Explorador de recetas.................................................................................................................................. 96
F.6 Ajustes ................................................................................................................................................................. 96
F.7 Informacin sobre la aplicacin ............................................................................................................. 96
viii

ndice de figuras e ilustraciones

Figura 1 - Cuota de mercado de iOS, Android y Windows Phone en mviles y tablets para el
periodo 2011-2013 ....................................................................................................................................................... 4
Figura 2 - Millones de dispositivos vendidos con iOS, Android y Windows Phone para el
periodo 2011-2013 ....................................................................................................................................................... 5
Figura 3 - Diagrama de clases del modelo de datos de la aplicacin ............................................... 15
Figura 4 - Paleta de colores para las cabeceras de seccin y ttulos ................................................ 16
Figura 5 - Burn down chart del Sprint 1 .......................................................................................................... 17
Figura 6 - Diseo de la pantalla de carga ........................................................................................................ 19
Figura 7 - Burn down chart del Sprint 2 .......................................................................................................... 20
Figura 8 - Diseo de un elemento de la lista de recetas con todos los iconos ............................. 22
Figura 9 - Diseo de un elemento de la lista de recetas nicamente con el icono
vegetariano .................................................................................................................................................................. 23
Figura 10 - Situacin inicial de la barra de puntuacin .......................................................................... 23
Figura 11 - Pulsacin mantenida sobre la barra de puntuacin ........................................................ 24
Figura 12 - Puntuacin establecida para la receta .................................................................................... 24
Figura 13 - Diseo de la ficha de receta .......................................................................................................... 24
Figura 14 - Diseo del listado de recetas........................................................................................................ 25
Figura 15 - Diseo del listado de recetas para dispositivos con pantalla grande en
horizontal ........................................................................................................................................................................ 25
Figura 16 - Burn down chart del Sprint 3 ....................................................................................................... 26
Figura 17 - Diseo de la barra lateral de navegacin de la aplicacin ............................................ 29
Figura 18 - Error al integrar la barra lateral de navegacin con el explorador de recetas .. 29
Figura 19 - Rediseo del apartado 'Ingredientes' de la ficha de receta para incluir la
cantidad de ingredientes para el nmero de personas establecido ................................................. 31
Figura 20 - Diseo de la interfaz de usuario de la vista de men semanal ................................... 32
Figura 21 - Burn down chart del Sprint 4 ....................................................................................................... 33
Figura 22 - Algoritmo para la navegacin al contenido inmediatamente posterior ................ 35
Figura 23 - Algoritmo para la navegacin al contenido inmediatamente anterior .................. 35
Figura 24 - Algoritmo para el salto a contenido posterior al mostrado ......................................... 36
Figura 25 - Algoritmo para el salto a contenido anterior al mostrado ........................................... 36
Figura 26 - Barra de la aplicacin para agregar recetas al men ...................................................... 37
Figura 27 - Burn down chart del Sprint 5 ....................................................................................................... 38
Figura 28 - Iconos para la generacin automtica de mens semanales ...................................... 41
Figura 29 - Men contextual para la generacin de mens equilibrados ..................................... 42
Figura 30 - Burn down chart del Sprint 6 ....................................................................................................... 42
Figura 31 - Diseo del grfico de informacin nutricional ................................................................... 45
Figura 32 - Diseo de la interfaz de informacin nutricional para mviles en posicin
vertical .............................................................................................................................................................................. 46
Figura 33 - Diseo de la interfaz de informacin nutricional para tablets en posicin
horizontal ........................................................................................................................................................................ 47
Figura 34 - Diseo del icono para la ficha de informacin nutricional ........................................... 48
Figura 35 - Diseo del widget con el resumen nutricional del men semanal ........................... 48
Figura 36 - Diseo del widget con el resumen nutricional del men semanal para tablets en
posicin horizontal .................................................................................................................................................... 48
ix

Figura 37 - Burn down chart del Sprint 7 ....................................................................................................... 49


Figura 38 - Nuevo diseo de la barra de ttulo ............................................................................................ 51
Figura 39 - Pantalla de informacin de la aplicacin ............................................................................... 52
Figura 40 - Pgina de la aplicacin una vez publicada en Play Store............................................... 54
Figura 41 - Burn down chart del Sprint 8 ....................................................................................................... 54
Figura 42 - Burn down chart del proyecto ..................................................................................................... 55
Figura 43 - Diagrama Entidad-Relacin de la base de datos servidor ............................................ 75
Figura 44 - Diagrama Entidad-Relacin de la base de datos cliente ................................................ 76
Figura 45 - Diagrama de clases del modelo de datos de la aplicacin............................................. 77
Figura 46 - Especificacin de la clase CategoriaPlato del modelo de datos ................................. 78
Figura 47 - Especificacin de la clase TipoPlato del modelo de datos............................................. 78
Figura 48 - Especificacin de la clase GrupoNutricional del modelo de datos ............................ 78
Figura 49 - Especificacin de la clase TipoProducto del modelo de datos .................................... 78
Figura 50 - Especificacin de la clase Receta del modelo de datos ................................................... 79
Figura 51 - Especificacin de la clase Ingrediente del modelo de datos ......................................... 80
Figura 52 - Especificacin de la clase UnidadMedida del modelo de datos .................................. 80
Figura 53 - Especificacin de la clase UnidadTiempo del modelo de datos .................................. 80
Figura 54 - Especificacin de la clase PasoReceta del modelo de datos ......................................... 81
Figura 55 - Especificacin de la clase CantidadIngrediente del modelo de datos ..................... 81
Figura 56 - Men contextual para los platos con una receta seleccionada................................... 89
Figura 57 - Avanzar una semana en la vista del men semanal ......................................................... 90
Figura 58 - Retroceder una semana en la vista del men semanal................................................... 90
Figura 59 - Ejemplo de funcionamiento de la seleccin de un da de la semana en la vista de
men semanal ............................................................................................................................................................... 91
Figura 60 - Avanzar un da en la vista de men semanal ....................................................................... 91
Figura 61 - Retroceder un da en la vista de men semanal ................................................................ 92
Figura 62 - Casos de funcionamiento especial del botn "Atrs" ...................................................... 92
Figura 63 - Pantalla de carga ................................................................................................................................ 93
Figura 64 - Men semanal ...................................................................................................................................... 94
Figura 65 - Men de opciones .............................................................................................................................. 94
Figura 66 ......................................................................................................................................................................... 94
Figura 67 - Informacin nutricional.................................................................................................................. 95
Figura 68 - Icono de la barra de navegacin ................................................................................................. 96

Ilustracin 1 - Icono de la aplicacin ................................................................................................................ 16


Ilustracin 2 - Icono para recetas sin gluten ................................................................................................ 22
Ilustracin 3 - Iconos para recetas vegetarianas ........................................................................................ 22
Ilustracin 4 - Icono para las recetas habituales del usuario .............................................................. 22
Ilustracin 5 - Iconos para la puntuacin de usuario............................................................................... 23
Ilustracin 6 - Icono para la opcin 'Men semanal' de la barra de navegacin ....................... 53
Ilustracin 7 - Iconos para la opcin Recetas de la barra de navegacin .................................... 53
Ilustracin 8 - Icono para la opcin 'Ajustes' de la barra de navegacin ....................................... 53
Ilustracin 9 - Iconos para la opcin Informacin de la barra de navegacin .......................... 53
x

ndice de tablas
Tabla 1 - Lista de Producto inicial ...................................................................................................................... 13
Tabla 2 - Lista del Sprint 1 ..................................................................................................................................... 14
Tabla 3 - Lista de Producto al finalizar el Sprint 1 .................................................................................... 17
Tabla 4 - Lista del Sprint 2 ..................................................................................................................................... 18
Tabla 5 - Lista de Producto al finalizar el Sprint 2 .................................................................................... 20
Tabla 6 - Lista del Sprint 3 ..................................................................................................................................... 21
Tabla 7 - Lista de Producto al finalizar el Sprint 3 .................................................................................... 27
Tabla 8 - Lista del Sprint 4 ..................................................................................................................................... 28
Tabla 9 - Lista del Sprint 4 rectificada ............................................................................................................. 30
Tabla 10 - Lista de Producto al finalizar el Sprint 4.................................................................................. 33
Tabla 11 - Lista del Sprint 5................................................................................................................................... 34
Tabla 12 - Lista de Producto al finalizar el Sprint 5.................................................................................. 38
Tabla 13 - Lista del Sprint 6................................................................................................................................... 39
Tabla 14 - Lista de Producto al finalizar el Sprint 6.................................................................................. 43
Tabla 15 - Lista del Sprint 7................................................................................................................................... 44
Tabla 16 - Lista de Producto al finalizar el Sprint 7.................................................................................. 49
Tabla 17 - Lista del Sprint 8................................................................................................................................... 50
Tabla 18 - Datos de la cuota de marcado agregada de mviles y tablets ....................................... 63
Tabla 19 - Datos de ventas, en millones de unidades, a nivel internacional ................................ 64
Tabla 20 - Lista del Sprint 1 finalizado ............................................................................................................ 83
Tabla 21 - Lista del Sprint 2 finalizado ............................................................................................................ 83
Tabla 22 - Lista del Sprint 3 finalizado ............................................................................................................ 84
Tabla 23 - Lista del Sprint 4 finalizado ............................................................................................................ 85
Tabla 24 - Lista del Sprint 5 finalizado ............................................................................................................ 86
Tabla 25 - Lista del Sprint 6 finalizado ............................................................................................................ 87
Tabla 26 - Lista del Sprint 7 finalizado ............................................................................................................ 87
Tabla 27 - Lista del Sprint 8 finalizado ............................................................................................................ 88
Captulo I
Introduccin
Una aplicacin de planificacin de mens equilibrados es una herramienta que
permite al usuario disear el men semanal para toda la familia y que muestra el valor
nutricional del mismo detalladamente, de forma que resulte fcil aprender a mantener
unos hbitos alimenticios sanos y equilibrados.

Adems de permitir al usuario planificar sus propios mens, la aplicacin debe ser
capaz de generar mens semanales equilibrados automticamente que el usuario pueda
posteriormente modificar para adecuarlos a sus gustos.

Para cada una de las recetas se debe poder obtener una ficha en la que muestre
toda la informacin sobre la misma. As, desde la ficha de receta se debe poder consultar el
tiempo y dificultad de preparacin, si debe servirse fra o caliente, los ingredientes y
cantidades que sern necesarias para el nmero de miembros de la familia, los pasos para
su elaboracin, si contiene gluten, si es apta para dietas vegetarianas y la puntuacin
personal del usuario para la receta.

I.1 Estado del arte

Existen en la actualidad infinidad de pginas web y aplicaciones dedicadas al


mundo de la cocina, sin embargo casi en su totalidad consisten en recetarios que en
muchas ocasiones contienen recetas que requieren mucha elaboracin o que no son de
consumo habitual para el da a da.

En el mbito de la alimentacin saludable, por el contrario, no existe tanta cantidad


de aplicaciones en el mercado. Muchas de ellas contienen informacin sobre dietas
saludables y dan consejos para perder peso, y otras son directamente aplicaciones para
contar caloras. En esta categora se puede citar la aplicacin Caloras [1], que cuenta con
una base de datos de ingredientes con su aporte calrico y el porcentaje de protenas,
grasas e hidratos que contienen. Pese a que su funcionalidad es limitada, su interfaz de
usuario es limpia, cuidada y fcil de usar.

Otra aplicacin a destacar podra ser MyFitnessPal [2]. Al igual que Caloras
permite contar las caloras consumidas, pero en este caso adems puede emplearse como
diario nutricional. Aun as, presenta el gran inconveniente de que el usuario tiene que
introducir los ingredientes empleados en cada comida junto con sus cantidades, o incluso
tener que crear los ingredientes consumidos si stos no existen, recayendo sobre l la
responsabilidad de aadir su aporte calrico.

Finalmente, apenas hay un par de aplicaciones que permitan gestionar y planificar


el men familiar de toda la semana. Ambas estn diseadas para telfonos mviles y no
aprovechan todo el potencial que ofrecen las dimensiones de las tablets. Adems, no
ofrecen informacin nutricional del men planificado, por lo que resulta imposible
verificar que efectivamente se est siguiendo una dieta sana y equilibrada. De este grupo
de aplicaciones se puede mencionar MiMenuSaludable [3], ms por sus limitaciones que
por sus virtudes, pues resulta el ejemplo claro de lo que de ninguna manera se quiere

1
conseguir con el desarrollo de este proyecto: no muestra ninguna clase de informacin
nutricional sobre los mens planificados, la informacin de las recetas resulta muy escasa,
y su interfaz de usuario es muy poco amigable, con imgenes como fondo de las pantallas,
que no se adaptan al tamao del dispositivo y que provocan que la informacin se muestre
descolocada y sea complicada de leer.

I.2 Motivacin

No existe una nica causa por la que se decidi emprender el desarrollo de este
proyecto, sino que se trata ms bien de la combinacin de una idea que surge ante una
necesidad y la oportunidad de desarrollo ofrecida por el trabajo fin de grado.

La idea para la aplicacin surgi en el ao 2009, realizando una beca Erasmus, al


verme, por primera vez en la vida, en la situacin de decidir cul iba a ser la compra de la
semana. Originalmente se planteaba disear y construir una herramienta web con una
base de recetas que permitiera elegir la dieta semanal y proporcionara los ingredientes
necesarios. El proyecto finalmente no se llev a cabo debido principalmente a la falta de
tiempo, pero desde entonces he seguido evolucionando y dando forma a la idea que ha
llevado al desarrollo de la aplicacin actual.

Por ello, se decidi aprovechar la oportunidad brindada por el trabajo fin de grado
para desarrollar e implementar el proyecto. Esta oportunidad, adems de temporal, me ha
permitido afrontar la gestin y desarrollo de un proyecto de software desde su concepcin
hasta su puesta en produccin, teniendo que hacer uso de muchos de los conocimientos y
competencias adquiridas durante la carrera para ser capaz de desarrollar una aplicacin
con una tecnologa y una plataforma con la que no haba trabajado antes.

2
Captulo II
Objetivos
Una de las funcionalidades ms importantes que nos ofrece la tecnologa actual es
la de facilitar y optimizar la realizacin de tareas cotidianas.

La planificacin del men familiar es una de las ms comunes de estas tareas, y de


ella depende en gran medida nuestra salud a largo plazo. As, el principal objetivo a
alcanzar con el desarrollo del proyecto ser el de obtener una aplicacin que permita
generar y gestionar mens familiares que se adecuen a una dieta sana y equilibrada.

Para ello, la aplicacin deber permitir al usuario visualizar el men diario y


planificarlo a su gusto, o modificar el men generado por la propia aplicacin. De igual
manera, la aplicacin deber mostrar la informacin nutricional referente a las recetas
asignadas al men semanal, de forma que el usuario pueda ver en qu medida est
siguiendo las pautas establecidas para una dieta equilibrada y que le resulte sencillo
aprender a planificar los mens familiares de manera saludable.

Adems, planificar correctamente el men familiar ayuda a ahorrar en la compra


semanal, pues sabremos qu y cunto debemos comprar, lo que nos evitar quedarnos
cortos y tener que volver al supermercado o pasarnos y tener que tirar comida.

Finalmente, los usuarios finales de la aplicacin no pertenecern a un grupo de


edad determinado, por lo que la interfaz de usuario deber ser clara, limpia y fcil de usar
para que cualquier persona, independientemente de la experiencia que tenga en el uso de
nuevas tecnologas, sea capaz de aprender rpidamente a utilizar la aplicacin.

II.1 Estudio de alternativas

Si bien se podran estudiar las alternativas sobre el tipo de aplicacin a desarrollar,


las posibilidades que ofrecen los dispositivos mviles y tablets los convierte en el objetivo
idneo para esta aplicacin. As, los usuarios podrn hacer uso de la aplicacin en
cualquier lugar, pudiendo consultar los ingredientes que necesitan mientras hacen la
compra o incluso a la hora de cocinar colocando el dispositivo en atriles especficos para
cocina.

Para determinar la plataforma para la que se desarrollar la aplicacin se tendrn


en cuenta tres opciones: iOS, Android y Windows 8 / Windows Phone.

En primer lugar se compararn los costes de desarrollo y publicacin de


aplicaciones en las tiendas oficiales de cada sistema operativo:

El programa de desarrollador para iOS es gratuito para estudiantes


universitarios y posteriormente tiene un coste de 99 dlares al ao [4].

Las herramientas de desarrollo para Android son completamente gratuitas


y de libre acceso y el coste de publicacin de aplicaciones en la tienda de
aplicaciones Play Store de Google requiere un nico pago de 25 dlares [5].

3
Por ltimo, los servicios de desarrollo y publicacin de aplicaciones para
Windows Phone son gratuitos para estudiantes universitarios a travs del
programa DreamSpark [6] y posteriormente tienen un coste de 19 dlares
al ao [7].

Se debe tener en cuenta tambin que el sistema operativo Windows para mviles
es distinto al de las tablets, por lo que si esta fuera la opcin elegida finalmente habra que
adaptar el desarrollo a ambos sistemas.

Para apoyar la toma de la decisin final se ha estudiado la cuota de mercado actual


y el nmero de ventas de smartphones de cada sistema operativo. Para ello se han utilizado
los datos de ambos indicadores desde enero de 2011 a diciembre de 2013 trimestre a
trimestre.

En primer lugar se estudian los datos referidos a la evolucin de la cuota de


mercado, tanto de mviles como tablets, para los tres sistemas operativos. En el siguiente
grfico se muestra de color claro el valor real obtenido en cada trimestre, y en color oscuro
la tendencia que sigue su evolucin dentro de la muestra.

Las tablas completas de datos [8] con los que se ha elaborado el grfico pueden ser
consultadas en el anexo A.

70,00%

60,00%

50,00%

40,00%

30,00%

20,00%

10,00%

0,00%
2011 2011 2011 2011 2012 2012 2012 2012 2013 2013 2013 2013
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
iOS Android Windows Phone
Figura 1 - Cuota de mercado de iOS, Android y Windows Phone en mviles y tablets para el periodo 2011-2013

Dentro del periodo, el sistema operativo Windows / Windows Phone apenas ha


aumentado su cuota de mercado debido a que el sistema Windows Phone no fue lanzado
hasta el ltimo trimestre de 2010 y la primera tablet con el sistema operativo Windows 8
no sali a la venta hasta el ltimo trimestre de 2012, mientras que los otros dos
competidores ya se encontraban mucho ms asentados en este periodo.

Tanto iOS como Android ganaron cuota de mercado en el periodo, sin embargo,
mientras que Android ha mantenido una tendencia positiva, iOS alcanz su mximo en la
primera mitad del ao 2012 y desde entonces su evolucin ha sido negativa.

4
Para complementar estos datos, se ha analizado adems la informacin de ventas
de mviles con cada uno de los sistemas operativos. En el siguiente grfico se muestran los
datos de ventas a nivel mundial [9], expresados en millones de unidades, para el periodo
comprendido entre enero de 2011 a diciembre de 2013. Las tablas con los datos a partir
de los cuales se elabor la grfica pueden ser consultadas en el anexo A.

250

200

150

100

50

0
2011 2011 2011 2011 2012 2012 2012 2012 2013 2013 2013 2013
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
iOS Android WindowsPhone
Figura 2 - Millones de dispositivos vendidos con iOS, Android y Windows Phone para el periodo 2011-2013

Tanto Windows Phone como Android mantienen una tendencia de crecimiento de


ventas casi lineal, mientras que la venta de dispositivos para iOS flucta, alcanzando sus
mximos en las fechas de lanzamientos de nuevas versiones de iPhone.

Con estos datos podemos concluir que aunque Android no es a da de hoy el


sistema operativo dominante en mviles y tablets tiene una mayor proyeccin que sus
competidores, por lo que desarrollar una aplicacin para este sistema parece una apuesta
bastante segura a medio y largo plazo. A esto hay que aadir que es el sistema operativo
que requiere una inversin menor, ya que si bien los otros dos sistemas ofrecen planes
especficos para estudiantes universitarios posteriormente conllevar una cuota anual
mantener la aplicacin en sus respectivos mercados de aplicaciones.

Por estas razones se elige Android como el sistema operativo para el que se
desarrollar la aplicacin.

II.2 Metodologa empleada

Para el desarrollo de la aplicacin se han utilizado metodologas giles, en concreto


se han aplicado algunas de las directrices que propone Scrum [10].

Segn su gua, Scrum es un marco de trabajo por el cual las personas pueden
acometer problemas complejos adaptativos, a la vez que entregar productos del mximo
valor posible productiva y creativamente [11]. Por tanto, Scrum, ms que una
metodologa es un conjunto de recomendaciones y buenas prcticas para el desarrollo y
mantenimiento de productos.

5
Desde el punto de vista clsico de la gestin de proyectos, Scrum emplea un
enfoque iterativo e incremental para optimizar la predictibilidad y minimizar los riesgos.
sta es la razn principal por la que se decidi emplear Scrum para gestionar el desarrollo
del proyecto, porque ofrece tcnicas que permiten dirigir eficientemente proyectos que
evolucionan y porque en cada una de sus evoluciones se debe obtener una versin del
producto plenamente funcional y ms completa que la versin anterior.

En el caso del proyecto desarrollado, por sus caractersticas y por haber sido
desarrollado individualmente, no se obtuvo una versin plenamente funcional que sirviera
de prototipo hasta el final del tercer incremento, en el cual se implement el listado y la
ficha de recetas. A partir de la tercera iteracin, todos los dems concluyeron en un
prototipo plenamente operativo y con ms funcionalidades que el anterior.

Desde el punto de vista del usuario final, la primera versin de la aplicacin


corresponde a la presentada junto a esta memoria, y por tanto nombrada 1.0, puesto que
fue la primera versin que cumpla todos los objetivos propuestos al comienzo del
proyecto.

En el anexo B se explica ms en detalle la teora Scrum, as como sus caractersticas


principales y los artefactos a tener en cuenta.

Al haber sido desarrollado individualmente, no se pudo aplicar Scrum


ntegramente a este proyecto. Sin embargo se adaptaron las siguientes caractersticas de
Scrum para ser empleadas en el desarrollo:

Sprints, con una duracin de dos semanas. De los diez das de trabajo se
dedica el primer da a la planificacin ntegra del Sprint y el ltimo a la
revisin y retrospectiva del trabajo realizado.

Pila de Producto, definida al comienzo del primer Sprint y reexaminada en la


revisin de cada iteracin para actualizar el progreso realizado con el
incremento y aadir nuevos requisitos cuando sea conveniente. Sus atributos
sern para cada uno de los requisitos su descripcin, su valor para el
producto1 y la estimacin en jornadas de trabajo que requiere su
implementacin

Pila de Sprint, definida al inicio de cada iteracin. En la planificacin del Sprint


se definen los objetivos a alcanzar y se describen las tareas a realizar para
cumplir los requisitos establecidos.

Diagrama de quemado para cada Sprint a partir de los requisitos y tareas


definidas en la Pila del Sprint.

En cuanto a las reuniones que establece Scrum se emplearn los tiempos asignados
a las reuniones de planificacin, revisin y retrospectiva, detalladas en el anexo B, para los
mismos fines que stas.

1 Para asignar valor a los requisitos se utiliza el mtodo MoSCoW [13] explicado en el anexo B.

6
Captulo III
Requisitos del sistema
Este documento, ms que la especificacin de requisitos y objetivos a alcanzar con
el desarrollo de este trabajo fin de grado, se debe considerar como la especificacin formal
y detallada de la idea de producto, lo que permitir tener una idea clara de los objetivos a
medio y largo plazo. Con ello se pretende facilitar el desarrollo y minimizar el nmero de
modificaciones requeridas sobre el trabajo ya realizado en incrementos anteriores.

Al final del presente captulo se detallan los requisitos y objetivos que se


establecen para el trabajo fin de grado.

III.1 Elicitacin de requisitos

Se desea desarrollar una aplicacin que permita generar mens familiares que se
adapten a los principios de una dieta equilibrada, y que puedan ser personalizados a partir
de una serie de preferencias establecidas por el usuario, algunas de estas preferencias,
aunque se podran aadir otras, sern:

Mantener las recetas ya seleccionadas por el usuario y generar el men


semanal en base a stas.
No incluir platos que incluyan un ingrediente o tipo de producto para as
poder adaptar los mens a alergias, intolerancias y desrdenes alimentarios.
Dar un mayor peso a las recetas mejor valoradas por el usuario.
Utilizar mayoritaria o exclusivamente las recetas que se hayan establecido
como habituales por el usuario.

Si bien la aplicacin ser capaz de generar mens equilibrados, el usuario podr


modificar dichos mens seleccionando los platos que desee. Adems, la aplicacin deber
mostrar en qu medida el men semanal se adapta a una dieta equilibrada ideal. La
informacin nutricional sobre el men semanal que se presentar al usuario deber ser lo
suficientemente detallada como para que el usuario pueda aprender a planificar una dieta
equilibrada.

Las recetas pertenecern a un tipo de plato (aperitivo, sopa, pasta, verdura) y los
tipos de plato a su vez formarn parte de una categora de plato (primero, segundo,
postre). De igual manera, cada ingrediente tendr asignado un tipo de producto (crnico,
legumbre, verdura) y cada tipo de producto pertenecer a un grupo nutricional. Todas
las recetas deben tener un tipo de plato asignado, y estos a su vez una categora de plato;
sin embargo, todos los ingredientes debern pertenecer a un tipo de producto, pero no
todos los tipos de producto tendrn su correspondiente grupo nutricional. De esta manera,
se podr aadir, por ejemplo, el tipo de producto Utensilios que permitir aadir a las
recetas utensilios de cocina poco habituales pero que pueden ser indispensables en la
elaboracin de algunas recetas.

Sobre su elaboracin, cada receta tendr asignada una serie de pasos, debidamente
ordenados, en los que se describir el proceso a realizar y opcionalmente el tiempo
necesario para cada paso.

7
Adems, cada receta podra llevar asociada otra receta que pertenezca a la
categora de plato Guarniciones y salsas y que puede ser utilizada para aderezar o
acompaar el plato.

La aplicacin permitir al usuario crear nuevas recetas que se compartirn con el


resto de usuarios, para ello podra ser necesario utilizar ingredientes que no estn en la
base de datos del sistema, por lo que adems, deber permitir aadir informacin de
nuevos ingredientes. Cada receta estar asociada a un usuario, por lo que ser
indispensable tener una cuenta de usuario para poder crear nuevas recetas, de manera
que sea posible conocer quin es el autor de cada receta. Adems, se ofrecer al autor de la
receta la posibilidad de que aparezca su nombre de usuario en la ficha de la receta.

Toda la informacin creada por la comunidad de usuarios podr ser revisada por la
administracin de la aplicacin con el fin de comprobar que no haya duplicidades y que
todos los datos sean correctos y cumplan con las normas de la comunidad, marcando como
revisadas aquellas recetas que hayan sido aprobadas.

De cada receta se desea guardar la siguiente informacin:

Nombre.
Descripcin.
Tiempo aproximado de preparacin
Dificultad de preparacin
Si debe servirse fra o caliente.
Ingredientes y cantidades necesarias.
Pasos a seguir para su elaboracin.
Si contiene gluten.
Si es apta para una dieta vegetariana.
Puntuacin del usuario.
Puntuacin media de los usuarios de la comunidad.
Si es una receta que el usuario prepara habitualmente.
Autor de la receta.
Fecha de alta.
Tipo y categora de plato a la que pertenece.

De cada ingrediente se guardar la siguiente informacin:

Nombre en singular.
Nombre en plural.
Si contiene gluten.
Si es apto para una dieta vegetariana.
Autor del ingrediente.
Fecha de alta.
Tipo de producto y grupo nutricional, cuando proceda, al que
pertenece.

Adems, la aplicacin permitir al usuario obtener una lista de la compra con los
ingredientes necesarios para la elaboracin del men semanal planificado y con las
cantidades requeridas para el nmero de miembros de la familia.

8
III.2 Alcance del trabajo fin de grado

Del documento de requisitos anterior, se establece como objetivo del trabajo fin de
grado desarrollar una aplicacin que permita al usuario al menos:

Acceder a un listado de recetas y obtener la informacin almacenada para


cada una de ellas.
Planificar manualmente el men semanal a partir del listado de recetas.
Generar automticamente un men semanal equilibrado.
Obtener la informacin nutricional del men planificado.

Preferiblemente se debera poder personalizar la generacin automtica de mens


equilibrados con alguna de las preferencias enunciadas en el documento de elicitacin de
requisitos.

9
Captulo IV
Conceptos tericos previos
En este captulo se explicarn brevemente algunos de los conceptos tericos que se
han aplicado en el desarrollo del trabajo fin de grado y que se consideran necesarios para
una buena comprensin del resto de contenidos de este documento.

IV.1 Nutricin y salud

La nutricin es la ciencia que estudia los procesos fisiolgicos y metablicos que


tienen lugar en el organismo causados por la ingesta de alimentos.

Gran cantidad de enfermedades pueden ser prevenidas o aliviadas con una


determinada alimentacin, por esto, la nutricin tiene como fin entender cules son los
aspectos dietticos especficos que influyen en la salud.

El cuerpo humano necesita seis clases de nutrientes que es importante consumir


diariamente para mantener una funcin corporal saludable. Estos tipos de nutrientes son
los glcidos, las protenas, los lpidos, las vitaminas, los minerales y el agua.

Un desequilibrio de nutrientes, tanto por exceso como por defecto, puede causar
problemas en la salud. Adems, la mayora de nutrientes estn involucrados en la
sealizacin de clulas, por tanto, el exceso o defecto de varias clases de nutrientes podra
llegar a afectar a la funcin hormonal, lo que podra ocasionar problemas de salud ms
graves como la obesidad, la diabetes o algunos tipos de cncer.

Con el fin de facilitar la comprensin de los principales aspectos de la nutricin, la


Sociedad Espaola de Diettica y Ciencias de la Alimentacin (SEDCA) [12] cre en los
aos 70 la denominada Rueda de los alimentos, un recurso didctico muy visual que
resulta de gran utilidad en los siguientes contextos:

Como herramienta didctica para docentes.


Como recurso para profesionales de la hostelera a la hora de confeccionar mens
equilibrados en comedores, especialmente en colegios, residencias de ancianos y
hospitales.
Como ejemplo favorecedor de la comprensin de los conceptos bsicos de la dieta
saludable, incluyendo el papel de los distintos grupos alimenticios.

La Rueda de los alimentos resulta una herramienta ampliamente conocida, pues su


uso est muy extendido especialmente en el medio educativo. Por estos motivos, la Rueda
de los alimentos es un recurso didctico muy til en determinadas situaciones:

Cuando es necesario hacer comprender la importancia del conjunto de la dieta


para una alimentacin saludable.
Cuando queremos ensear visualmente que hay diferentes tipos de alimentos
clasificados segn sus funciones en nuestro organismo.
Cuando se requiere de un recurso sencillo para ensear a elaborar mens sanos
vlidos para todas las edades y circunstancias.

11
En el ao 2007, SEDCA, con la colaboracin de un grupo de expertos en nutricin y
diettica, elabor una nueva versin de la Rueda de los alimentos con algunas diferencias
frente a la versin original.

La Rueda de los alimentos distingue seis grupos alimenticios:

Energtico I: composicin predominante en hidratos de carbono. A este grupo


pertenecen los productos derivados de los cereales, patatas y azcar.
Energtico II: composicin predominante en lpidos. Alimentos tales como la
mantequilla, aceites y grasas en general.
Plsticos I: composicin predominante en protenas. A este grupo pertenecen
los productos de origen lcteo.
Plsticos II: composicin predominante en protenas. Productos crnicos,
huevos, pescado, legumbres y frutos secos.
Reguladores I: Hortalizas y verduras.
Reguladores II: Frutas.

En la versin de 2007 se incluye adems una mencin explcita al ejercicio fsico y


a la necesidad de ingerir agua en cantidades suficientes.

Si bien en la rueda original todos los grupos se mostraban con el mismo tamao, en
la nueva versin cada grupo tiene un tamao especfico, sealando as la importancia
relativa en nuestra dieta de los alimentos pertenecientes a cada grupo. As, los alimentos
que deben consumirse en ocasiones espordicas son representados con un tamao ms
reducido, mientras que los de consumo habitual presentan un mayor tamao dentro de la
rueda.

A continuacin se detalla el porcentaje de cada grupo de alimentos que se debe


ingerir a lo largo de una semana para mantener una dieta sana y equilibrada:

Energtico I .............................. 28%


Energtico II............................. 7%
Plsticos I................................... 7%
Plstico II ................................... 14%
Reguladores I........................... 22%
Reguladores II ......................... 22%

Como se ha visto, la rueda de los alimentos se trata de un elemento grfico muy


sencillo de comprender y aplicar. Por esta razn ser la herramienta que se utilizar como
base terica para la generacin de mens semanales equilibrados.

12
Captulo V
Descripcin informtica
A partir del documento de requisitos se crea la versin inicial de la Lista de
Producto que se utilizar durante la planificacin del primer Sprint para decidir el trabajo
a realizar en el mismo. En ella se detallan los requisitos detectados para el producto y para
cada uno de ellos se determina el valor que se considera que ofrecen al producto, se
realiza una estimacin de las jornadas de trabajo que consumirn y se hace una
planificacin inicial del Sprint en el que sern ejecutados.

Valor para el Estimacin Planificado


Requisito producto (en jornadas para el
(MoSCoW) de trabajo) Sprint
Base de datos M 5 1
Carga y actualizacin de datos en la
M 10 2
aplicacin
Listado de recetas M 3 3
Ficha de receta M 2 3
Vista de men semanal M 6 4
Confeccin de mens por el usuario M 3 4
Generacin automtica de mens
M 5 5
equilibrados
Informacin nutricional del men semanal
S 4 6
planificado
Ajustes C 2 6
Lista de la compra W 3 7
Ficha de creacin de recetas W 3 7
Ficha de creacin de ingredientes W 3 7
Tabla 1 - Lista de Producto inicial

V.1 Sprint 1

El objetivo del primer Sprint ser realizar el diseo e implementacin de las bases
sobre las que se desarrollar el resto del proyecto.

V.1.1 Planificacin
Los requisitos que se acometern en la primera iteracin del proceso de desarrollo
sern los que referidos a la Base de datos y a la Carga y actualizacin de datos en la
aplicacin. Dada la extensin del segundo, se subdividir en dos requisitos, de forma que
durante el primer Sprint se ejecutar parte del mismo, y se finalizar su implementacin
en la siguiente iteracin.

Se aade adems un nuevo requisito que no estaba presente en la Lista de


Producto, Interfaz de usuario, en el que se disear el icono de la aplicacin y se
determinarn los colores y el aspecto general que se deber mantener en todos los
componentes y apartados de la aplicacin.

13
A partir de los requisitos a implementar se planifica el trabajo a realizar y se
detalla en la Lista del Sprint.

Estimacin Tiempo
Requisito (en horas real
de trabajo) requerido
Base de datos
(1) Anlisis de los requisitos 2
(2) Diseo de la base de datos de la aplicacin 6
(3) Implementacin de la base de datos 8
Diseo y codificacin de las consultas de recuperacin de
(4) 8
datos
(5) Pruebas 8

(6) Diseo del proceso de carga y actualizacin de datos en la 2


aplicacin
Carga y actualizacin de datos en la aplicacin
(7) Implementacin del programa que genera el archivo de 4
datos para la aplicacin desde la base de datos de recetas
(8) Diagrama de clases para el modelo de datos de la aplicacin 6
(9) Implementacin de las clases del modelo de datos 10
Interfaz de usuario
(10) Diseo del icono de la aplicacin 4
(11) Diseo de los colores y aspecto global de la aplicacin 2
Tabla 2 - Lista del Sprint 1

V.1.2 Desarrollo

V.1.2.1 Base de datos

En primer lugar se analizan los requisitos del sistema y a partir de ellos se realiza
la implementacin de la base de datos para guardar la informacin necesaria para la
aplicacin.

Se disean dos bases de datos, una servidor y otra cliente. La base de datos
servidor ser nica y almacenar todos los datos a partir de los cuales las aplicaciones
cliente podrn actualizar su base de datos local. En el anexo C se pueden consultar los
diagramas entidad-relacin de ambas bases de datos.

Las principales diferencias de diseo entre la base de datos servidor y la base de


datos cliente son:

En la base de datos cliente desaparece la entidad Usuario, pues no tiene sentido


que en las aplicaciones cliente se almacene la informacin referente a todos los
usuarios. Este cambio ocasiona que la clave primaria de la entidad Usuario se
propague a las entidades Receta e Ingrediente para poder conocer qu usuario
es el autor de la receta o del ingrediente.

Los atributos Vegetariano y ContieneGluten que en la base de datos servidor


nicamente aparecen en la entidad Ingrediente, en la base de datos cliente

14
tambin aparecen en la entidad Receta. Esto es debido a que para minimizar
los clculos necesarios para determinar qu recetas son aptas para dietas sin
gluten o vegetarianas, stos sern realizados nicamente cuando la
informacin de la receta se inserte en la base de datos cliente, y podrn ser
consultados en cualquier momento. El valor de los atributos nicamente
tendra que ser recalculado si se cambiaran los ingredientes de la receta, por lo
que al tratarse de una operacin muy poco habitual raramente sern
calculados de nuevo.

Por las mismas razones expuestas en el punto anterior se ha aadido a la


entidad Receta de la base de datos cliente seis atributos que indican la cantidad
presente en la receta de cada uno de los seis grupos nutricionales que se
emplearn para el clculo de una dieta equilibrada.

Para su implementacin, se utiliza una base de datos relacional MySQL para el


servidor, y SQLite para la base de datos cliente.

Con el fin de reducir los accesos a la base de datos servidor, el proceso de carga y
actualizacin de datos en el cliente ser el siguiente: Se aadir una tabla en el servidor
que servir de registro de todas las inserciones, modificaciones y borrado de datos que
ocurran en el resto de tablas. Esta tabla registro se mantendr actualizada mediante
triggers asociados al resto de tablas que se ejecutarn cada vez que se realice una
operacin sobre alguna de ellas y registrarn la operacin realizada en la tabla de registro.
Peridicamente se generar uno o varios archivos de texto con el contenido de la tabla
registro, a partir del cual la aplicacin cliente actualizar sus datos para mantenerse en el
mismo estado que la base de datos servidor.

V.1.2.2 Carga y actualizacin de datos en la aplicacin

Se disea e implementa el modelo de datos con las clases que utilizar la aplicacin
para trabajar con la informacin de recetas almacenada en la base de datos. El modelo
resumido queda reflejado en la siguiente figura.

Figura 3 - Diagrama de clases del modelo de datos de la aplicacin

15
En el anexo C se puede consultar la especificacin detallada de cada una de las
clases del modelo de datos.

Adems se implementa el programa que permite obtener el fichero de datos a


partir de la tabla registro que utilizar la aplicacin para cargar y actualizar datos.

V.1.2.3 Interfaz de usuario

Se definen los colores y apariencia general que se aplicar a toda la aplicacin y se


disea el icono de la aplicacin:

El fondo de las actividades ser de color gris claro, definido por el valor
#e5e5e5.
El fondo de la actividad de carga y actualizacin de datos ser de color gris muy
oscuro, definido por el valor #252525.
El texto principal ser de color negro.
El texto secundario (por ejemplo, para elementos deshabilitados) ser de color
gris oscuro, definido por el valor: #444444
Para el fondo de las fichas o contenedores de contenido se usar un gris muy
claro definido por el valor #f7f7f7. Cuando estas fichas sean seleccionables,
mientras estn pulsadas el fondo cambiar a un color gris ms oscuro definido
por el valor #ababab.

Para el fondo de las cabeceras de seccin y ttulos se utilizarn colores de la


siguiente paleta de colores:

Figura 4 - Paleta de colores para las cabeceras de seccin y ttulos

Adems se disea el icono de la aplicacin:

Ilustracin 1 - Icono de la aplicacin

V.1.3 Revisin
Se revisa el trabajo realizado, comprobando que se hayan completado todos los
requisitos establecidos al inicio de la iteracin. Se actualiza la Lista del Sprint y su
correspondiente grfico de quemado. En el anexo D se pueden consultar todas las Listas de
Sprint con sus valores actualizados tras acabar la implementacin de cada iteracin.

16
Se completaron todas las tareas segn la planificacin establecida, salvo el retraso
de la tarea de diseo y codificacin de las consultas de recuperacin de datos que deba
terminar el tercer da de desarrollo y se complet el cuarto.

12
11
10
9
Tareas pendientes

8
7
6
5
4
3
2
1
0
0 1 2 3 4 5 6 7 8
Planificacin Ejecucin
Figura 5 - Burn down chart del Sprint 1

Se actualiza la Lista de Producto para aadir el requisito Interfaz de usuario que


no estaba incluido inicialmente, y se reevala para determinar el trabajo a realizar en el
siguiente Sprint, en el que se decide terminar el requisito de carga y actualizacin de datos
que se empez en este Sprint. Para simplificar la Lista de Producto de ahora en adelante se
omitirn los requisitos ya terminados.

Valor para el Estimacin Planificado


Requisito producto (en jornadas para el
(MoSCoW) de trabajo) Sprint
Carga y actualizacin de datos en la
M 7 2
aplicacin (Sprint 2)
Listado de recetas M 3 3
Ficha de receta M 2 3
Vista de men semanal M 6 4
Confeccin de mens creados por el usuario M 4 4
Generacin automtica de mens
M 6 5
equilibrados
Informacin nutricional del men semanal
S 4 6
planificado
Ajustes C 2 6
Lista de la compra W 3 6
Ficha de creacin de recetas W 3 7
Ficha de creacin de ingredientes W 3 7
Tabla 3 - Lista de Producto al finalizar el Sprint 1

17
V.2 Sprint 2

El objetivo establecido para el segundo Sprint ser finalizar el requisito Carga y


actualizacin de datos en la aplicacin, del que se inici su desarrollo en la iteracin
anterior.

V.2.1 Planificacin
Se prepara la Lista del Sprint con las tareas que se realizarn para terminar la
implementacin del proceso de carga y actualizacin de datos.

Estimacin Tiempo
Requisito (en horas real
de trabajo) requerido
Carga y actualizacin de datos en la aplicacin
(12) Implementacin del manejador de la base de datos 8

(13) Implementacin de los mtodos de recuperacin de 8


informacin desde la base de datos
(14) Diseo de la interfaz de la vista de carga de datos 2

(15) Implementacin del funcionamiento de la vista de carga de 6


datos
Implementacin del proceso de carga y actualizacin de
(16) 8
datos
Implementacin del proceso de clculo de valores
(17) 8
precalculados
(18) Pruebas 8
(19) Revisin y correccin de errores 8
Tabla 4 - Lista del Sprint 2

V.2.2 Desarrollo
En el Sprint anterior se implementaron las clases del modelo de datos que
permiten transformar la informacin almacenada en la base de datos cliente en objetos
con los que trabajar fcilmente. Sin embargo no existe una conexin con la base de datos
que permita recuperar informacin de sta y transformarla en los objetos del modelo de
datos, para ello se implementa un manejador de la base de datos que sirva de interfaz
entre la estructura de clases y los datos.

El manejador de la base de datos tendr las siguientes responsabilidades:

Crear la estructura de tablas de la base de datos cliente y mantenerla


actualizada ante los cambios que pueda sufrir en futuros incrementos.
Cargar y mantener actualizados los datos de la base de datos.
Permitir recuperar objetos del modelo de datos desde la base de datos a
partir de su identificador.
Permitir modificar la informacin guardada a partir de instancias de las
clases del modelo de datos.

Tras implementar el manejador de la base de datos se realiza el diseo de la


pantalla de carga de la aplicacin. En la siguiente figura puede verse el diseo realizado:

18
Figura 6 - Diseo de la pantalla de carga

Cuando haya datos que actualizar se mostrarn las barras de progreso, una
amarilla, que representa el progreso de la actualizacin de datos, y una verde que indica el
progreso del clculo de valores (vegetariano, sin gluten, y cantidades nutricionales).
Cuando no haya datos que actualizar las barras de progreso no se mostrarn y tan solo
ser visible el nombre de la aplicacin y el nmero de versin, que se muestra en la
esquina inferior izquierda.

Finalmente se implementa el diseo de la pantalla de carga y se integra en l el


funcionamiento del proceso de carga y actualizacin de datos. Para probar el correcto
funcionamiento del manejador de la base de datos y su correcta integracin con la interfaz
se generan una serie de datos de prueba que sern utilizados tambin para realizar
pruebas en futuros incrementos del proceso de desarrollo.

V.2.3 Revisin
En la revisin del Sprint se revisa el trabajo realizado para comprobar que se
hayan completado los objetivos establecidos para la iteracin y se actualizan la Lista del
Sprint y su grfico de quemado con la evolucin del Sprint.

Se completaron todas las tareas planificadas, sin embargo las dos primeras
consumieron ms tiempo del estimado inicialmente, lo que ocasion que durante todo el
Sprint se trabajara por encima de la planificacin establecida, tal y como se refleja en el
grfico de quemado. Sin embargo, al disponer de un da de margen para el desarrollo de la
iteracin no se produjo ningn retraso ni se provoc que alguna de las tareas planificadas
no pudiera ser realizada.

19
9

7
Tareas pendientes

0
0 1 2 3 4 5 6 7 8
Planificacin Ejecucin
Figura 7 - Burn down chart del Sprint 2

Tras la revisin del Sprint se revisa la Lista de Producto, actualizando los


requisitos ya cumplidos y se determinan los requisitos en los que se trabajar en la
siguiente iteracin, decidiendo trabajar en los requisitos Lista de recetas, Ficha de
recetas y Explorador de recetas.

Valor para el Estimacin Planificado


Requisito producto (en jornadas para el
(MoSCoW) de trabajo) Sprint
Listado de recetas M 3 3
Ficha de receta M 2 3
Explorador de recetas M 3 3
Vista de men semanal M 6 4
Confeccin de mens creados por el usuario M 4 4
Generacin automtica de mens
M 6 5
equilibrados
Informacin nutricional del men semanal
S 4 6
planificado
Ajustes C 2 6
Lista de la compra W 3 6
Ficha de creacin de recetas W 3 7
Ficha de creacin de ingredientes W 3 7
Tabla 5 - Lista de Producto al finalizar el Sprint 2

20
V.3 Sprint 3

El objetivo para el tercer Sprint ser implementar las interfaces de usuario que
permitirn obtener el listado de recetas, ordenadas por categora de plato, y la
informacin referente a cada una de las recetas.

V.3.1 Planificacin
Durante la planificacin se elabora la Lista del Sprint con las tareas que se llevarn
a cabo para completar los requisitos Listado de recetas, Ficha de receta y Explorador
de recetas.

Estimacin
Tiempo real
Requisito (en horas de
requerido
trabajo)
Listado de recetas
(20) Diseo de la interfaz del listado de recetas 4

(21) Diseo de los iconos y elementos grficos necesarios 4


para el listado de recetas
(22) Implementacin de la interfaz de los elementos que 5
compondrn la lista
(23) Implementacin de la interfaz listado de recetas 5

(24) Implementacin del mtodo de recuperacin de recetas 6


desde la base de datos e insercin en el listado
Ficha de receta
(25) Diseo de la interfaz de la ficha de receta 3

(26) Diseo de los iconos y elementos grficos necesarios 3


para la ficha de receta
(27) Implementacin de la interfaz de la ficha de receta 6

(28) Implementacin del funcionamiento de recuperacin de 2


la informacin de una receta y mostrado en la ficha
(29) Revisin y correccin de errores 2
Explorador de recetas
(30) Diseo de la interfaz del explorador de recetas 2

(31) Modificacin del listado de recetas para permitir 4


ordenar las recetas por categora de plato
(32) Implementacin de la interfaz del explorador de recetas 4

(33) Integracin del listado y ficha de recetas en el 8


explorador de recetas
(34) Revisin y correccin de errores 6
Tabla 6 - Lista del Sprint 3

V.3.2 Desarrollo

V.3.2.1 Listado de recetas

Cada uno de los elementos del listado de recetas incluir el nombre y descripcin
de la receta, y cuando proceda, los iconos que indican que una receta no contiene gluten,
que es apta para una dieta vegetariana, o que es una receta habitual del usuario.
21
En las siguientes ilustraciones se muestra el diseo realizado para los iconos que
se usarn en el listado de recetas:

Ilustracin 2 - Icono para recetas sin gluten

Ilustracin 3 - Iconos para recetas vegetarianas

En el caso de las recetas vegetarianas se disean dos versiones del icono. El de la


izquierda, con ms detalle en las hojas, se utilizar para pantallas con alta densidad de
pxeles, generalmente pantallas grandes o de muy alta calidad en las que se puede mostrar
tanto nivel de detalle. El icono de la derecha, con menor nivel de detalle y trazos
ligeramente ms gruesos, se utilizar en pantallas con una densidad de pxeles menor, ya
que de usar la versin con alto nivel de detalle se obtendra una imagen menos limpia del
icono.

Ilustracin 4 - Icono para las recetas habituales del usuario

Con estos iconos y con el nombre y descripcin de la receta se realiza el siguiente


diseo para los elementos de la lista de recetas.

Figura 8 - Diseo de un elemento de la lista de recetas con todos los iconos


22
En el diseo anterior se muestra un ejemplo de un elemento de la lista de recetas
con todos los iconos. De ellos solo se mostrarn en el listado de recetas aquellos que se
correspondan con la informacin de cada receta.

El margen derecho relativo a los iconos sin gluten y vegetariano es fijo, de


modo que si una receta contiene gluten y es apta para una dieta vegetariana no se
mostrar el icono sin gluten, y el icono vegetariano se situar a la derecha del todo
como se muestra en la siguiente figura:

Figura 9 - Diseo de un elemento de la lista de recetas nicamente con el icono vegetariano

V.3.2.2 Ficha de receta

En la ficha de receta se mostrar toda la informacin referente a una receta, as


como los ingredientes y los pasos necesarios para su elaboracin.

Adems de los recursos grficos del aparatado anterior, se usarn los siguientes
iconos en la ficha de receta:

Ilustracin 5 - Iconos para la puntuacin de usuario

Se colocarn cinco estrellas para representar y recoger la puntuacin del usuario


para cada receta, de forma que se pueda dar una puntuacin del uno al cinco con la
posibilidad de otorgar medias estrellas.

Inicialmente las cinco estrellas tendrn el aspecto del icono del medio, cuando el
usuario mantenga el dedo pulsado sobre la barra de puntuacin se resaltarn el nmero
de estrellas sobre las que se est presionando con el aspecto del icono de la derecha.
Finalmente, cuando se deje de pulsar sobre las estrellas se establecer la puntuacin de
usuario y las estrellas resaltadas tomarn el aspecto del icono de la izquierda.

En las siguientes figuras se muestra de manera grfica el funcionamiento


explicado:

Figura 10 - Situacin inicial de la barra de puntuacin

23
Figura 11 - Pulsacin mantenida sobre la barra de puntuacin

Figura 12 - Puntuacin establecida para la receta

Por ltimo, con todos los elementos definidos se realiza el diseo de la ficha de
receta que se muestra en la siguiente figura. El diseo muestra la interfaz completa de la
ficha de receta para tres ingredientes y tres pasos de receta, uno de ellos sin duracin de
tiempo definida. Al mostrarse la ficha de receta en el dispositivo se mostrarn la barra de
la aplicacin y las del sistema operativo y se ajustar el contenido a la pantalla, pudiendo
desplazarse el contenido cuando ste no quepa entero en la pantalla.

Figura 13 - Diseo de la ficha de receta

V.3.2.2 Explorador de recetas

Por ltimo, con la lista de recetas y la ficha de informacin completadas, falta por
implementar el explorador de recetas, que permitir al usuario buscar entre las recetas,

24
que se mostrarn ordenadas en pestaas segn su categora de plato, y acceder desde el
listado a la ficha de informacin de cada una de ellas.

En la siguiente figura se muestra el diseo del explorador de recetas:

Figura 14 - Diseo del listado de recetas

Adems, se crear un diseo alternativo para los dispositivos con pantallas


grandes cuando se encuentren en posicin horizontal. En l, se mostrar el listado de
recetas en la parte izquierda de la pantalla, y en la parte derecha se mostrar la ficha de la
receta seleccionada como se muestra en la siguiente figura:

Figura 15 - Diseo del listado de recetas para dispositivos con pantalla grande en horizontal
25
V.3.3 Revisin
En la fase de revisin se comprueba que se hayan completado todos los requisitos
fijados y se actualiza la Lista del Sprint y su grfico de quemado.

Al revisar el trabajo realizado se detect un problema con la visualizacin de los


ingredientes y los pasos de elaboracin en la ficha de receta cuando alguno de los valores
de stos ocupa ms de una lnea. Se anota el error para incluir su correccin en la
planificacin del siguiente Sprint.

16
15
14
13
12
Tareas pendientes

11
10
9
8
7
6
5
4
3
2
1
0
0 1 2 3 4 5 6 7 8
Planificacin Ejecucin
Figura 16 - Burn down chart del Sprint 3

Tras revisar el trabajo realizado en el Sprint se revisa la Lista de Producto para


determinar el trabajo a realizar en la siguiente iteracin.

Para el siguiente Sprint se decide empezar a implementar la vista de men


semanal, por lo que se necesitar un sistema de navegacin para poder acceder a las
diferentes secciones de la aplicacin. Por ello se aade el requisito Barra lateral de
navegacin, que implementar una barra de navegacin cmo marcan las
recomendaciones de diseo para Android [14].

Adems se cambia el valor para el producto de los ajustes de la aplicacin, y se


incluye la definicin de los ajustes para aadir la opcin que permite establecer el nmero
de personas para las que se cocinar, de manera que tambin se actualizar la ficha de
receta para mostrar las cantidades de ingrediente para el nmero de personas establecido.

Finalmente se disear la vista de men semanal e implementar parte ella, Se


dedicar especial cuidado al diseo de su interfaz, pues sta, al incluir la mayor parte de la
funcionalidad, ser la vista principal de la aplicacin. Los requisitos de la vista de men
semanal que no puedan ser implementados en el cuarto Sprint se terminarn en el quinto.

26
Valor para el Estimacin Planificado
Requisito producto (en jornadas para el
(MoSCoW) de trabajo) Sprint
Barra lateral de navegacin M 2 4
Ajustes M 2 4
Vista de men semanal (Sprint 4) M 3 4
Vista de men semanal (Sprint 5) M 3 5
Confeccin de mens creados por el usuario M 4 5
Generacin automtica de mens
M 6 6
equilibrados
Informacin nutricional del men semanal
S 4 7
planificado
Lista de la compra W 3 7
Ficha de creacin de recetas W 3 8
Ficha de creacin de ingredientes W 3 8
Tabla 7 - Lista de Producto al finalizar el Sprint 3

27
V.4 Sprint 4

Se marcan como objetivos del cuarto Sprint el diseo e implementacin de la barra


lateral de navegacin, la implementacin de los ajustes de la aplicacin con la opcin de
determinar el nmero de personas para los que calcular las cantidades de ingredientes, y
finalmente el diseo e inicio de la implementacin de la vista de men semanal.

V.4.1 Planificacin
En la planificacin de la iteracin se prepara la Lista del Sprint, en la que se
especifican las tareas que se llevarn a cabo en el para cumplir con los objetivos
establecidos.

Estimacin
Tiempo real
Requisito (en horas de
requerido
trabajo)
Barra lateral de navegacin
(35) Diseo de la barra lateral de navegacin 2
(36) Implementacin de la barra lateral de navegacin 6
(37) Integracin de la barra lateral en la aplicacin 4
(38) Revisin y correccin de errores 4
Ajustes
(39) Definicin de los ajustes de la aplicacin 2

(40) Implementacin o adaptacin de los cuadros de dialogo 6


necesarios para los ajustes de la aplicacin
(41) Implementacin de la vista de ajustes y su 6
funcionamiento
Ficha de receta
Correccin del problema de la interfaz que hace que en
(42) algunos casos la lista de ingredientes y pasos de la receta 2
aparezca cortada
Implementacin de la funcin de guardado y
(43) 2
recuperacin de la puntuacin del usuario de las recetas

Modificacin del listado de ingredientes para que


(44) muestre las cantidades para el nmero de personas 2
establecido en los ajustes
Vista de men semanal
(45) Diseo de la interfaz de la vista de men semanal 4
(46) Diseo de los componentes de la interfaz 4

(47) Implementacin de los componentes del widget con los 6


das de la semana
(48) Implementacin del widget con los das de la semana 8
(49) Implementacin de la interfaz del men de un da 6
Tabla 8 - Lista del Sprint 4

28
V.4.2 Desarrollo

V.4.2.1 Barra lateral de navegacin

Para navegar entre las secciones de la aplicacin se decide crear una barra de
navegacin tal y como indican las guas de diseo de Android [14]. Consistir en una lista
con el nombre de las secciones, y permanecer oculta en el uso normal de la aplicacin,
pudiendo acceder a ella deslizando el dedo desde el borde izquierdo de la pantalla hacia el
centro o pulsando el icono de la aplicacin situado en la barra de ttulo.

En la siguiente figura se muestra el diseo de la barra lateral de navegacin:

Figura 17 - Diseo de la barra lateral de navegacin de la aplicacin

Tras implementar e integrar la barra de navegacin lateral con el explorador de


recetas se produce el siguiente error en el explorador de recetas:

Figura 18 - Error al integrar la barra lateral de navegacin con el explorador de recetas

29
El error fue causado por el uso de la barra de pestaas integrada en la propia barra
de ttulo de la aplicacin. Para subsanar el error se deber reimplementar la barra de
pestaas como un componente aparte a la barra de ttulo e integrarlo en la vista del
explorador de recetas. Cmo la correccin del error llevar sustancialmente ms tiempo
del inicialmente planificado para la revisin y correccin de errores de la barra lateral de
navegacin, se deber revisar y modificar la Lista del Sprint.

Se aade a la Lista del Sprint el nuevo requisito para la correccin del error
producido por la barra de navegacin y se decide eliminar uno de los requisitos a cumplir
de la vista de men semanal.

Tras las modificaciones la Lista del Sprint queda como sigue:

Estimacin
Tiempo real
Requisito (en horas de
requerido
trabajo)
Barra lateral de navegacin
(35) Diseo de la barra lateral de navegacin 2 2
(36) Implementacin de la barra lateral de navegacin 6 8
(37) Integracin de la barra lateral en la aplicacin 4 3
(38) Revisin y correccin de errores 4 2
Explorador de recetas
(38') Reimplementacin de la barra de pestaas para su 8
correcta integracin con la barra lateral de navegacin
Ajustes
(39) Definicin de los ajustes de la aplicacin 2

(40) Implementacin o adaptacin de los cuadros de dialogo 6


necesarios para los ajustes de la aplicacin
(41) Implementacin de la vista de ajustes y su 6
funcionamiento
Ficha de receta
Correccin del problema de la interfaz que hace que en
(42) algunos casos la lista de ingredientes y pasos de la 2
receta aparezca cortada
Implementacin de la funcin de guardado y
(43) recuperacin de la puntuacin del usuario de las 2
recetas
Modificacin del listado de ingredientes para que
(44) muestre las cantidades para el nmero de personas 2
establecido en los ajustes
Vista de men semanal
(45) Diseo de la interfaz de la vista de men semanal 4
(46) Diseo de los componentes de la interfaz 4

(47) Implementacin de los componentes del widget con los 6


das de la semana
(48) Implementacin del widget con los das de la semana 8
Tabla 9 - Lista del Sprint 4 rectificada

30
V.4.2.2 Ajustes

Una vez corregido el error en el explorador de recetas se procede a crear los


ajustes de la aplicacin. Para ello no es necesario implementar ninguna interfaz, pues
Android permite definir los ajustes de manera sencilla en un archivo XML y aadir a la
aplicacin un tipo de actividad especial que se encarga de transformar el archivo de
preferencias en la correspondiente interfaz de usuario.

Tras definir la opcin de usuario que permite establecer el nmero de personas


para las que cocinar se modifica el diseo de la ficha de receta para aadir las cantidades
de ingrediente para el nmero de personas establecido. La seccin de ingredientes de la
ficha de receta quedar de la siguiente manera.

Figura 19 - Rediseo del apartado 'Ingredientes' de la ficha de receta para incluir la cantidad de ingredientes
para el nmero de personas establecido

Se implementan los cambios en el diseo y se corrigen los errores con la


visualizacin de ingredientes y pasos de receta detectados en el Sprint anterior.

V.4.2.3 Vista de men semanal

Como se mencion anteriormente, la vista de men semanal ser la vista principal


de la aplicacin, por lo que se dedicar especial atencin a que su diseo sea limpio,
intuitivo y fcil de utilizar.

La vista semanal permitir al usuario, por un lado, visualizar los mens diarios
planificados tanto para la semana actual como para semanas anteriores y posteriores, y
por otro lado, modificar el men semanal ya sea manualmente o generando un nuevo
men automticamente.

En la siguiente figura se muestra el diseo de la interfaz de usuario de la vista de


men semanal diseada para cumplir con la funcionalidad deseada:

31
Figura 20 - Diseo de la interfaz de usuario de la vista de men semanal

En el anexo E puede consultarse la especificacin detallada del diseo y


funcionamiento de la interfaz.

V.4.3 Revisin
Una vez finalizado el Sprint se revisa el trabajo realizado y se comprueba el
cumplimiento de los objetivos. Como se mencion, la implementacin de la barra lateral
de navegacin provoc que hubiera que reimplementar la barra de pestaas del
explorador de recetas, con lo que se elimin uno de los requisitos de la Lista del Sprint
para ajustar el trabajo al tiempo mximo del Sprint.

En el diagrama de quemado del Sprint puede verse como el tercer da de la


iteracin hubo que aadir un requisito y desde entonces el desarrollo de la iteracin ha
llevado un retraso de una tarea sobre la planificacin inicial. Sin embargo, como estaba
planificado terminar la implementacin de la vista de men semanal en el siguiente Sprint
se espera que esto no afecte en exceso el desarrollo del siguiente Sprint.

32
15
14
13
12
11
Tareas pendientes

10
9
8
7
6
5
4
3
2
1
0
0 1 2 3 4 5 6 7 8
Planificacin Planificacin rectificada Ejecucin
Figura 21 - Burn down chart del Sprint 4

Tras revisar el trabajo completado se actualiza la Lista de Producto y se decide el


trabajo que se realizar en el siguiente Sprint, para el cual se espera terminar la
implementacin de la vista de men semanal y aadirle la funcionalidad que permita al
usuario confeccionar sus mens semanales.

Valor para el Estimacin Planificado


Requisito producto (en jornadas para el
(MoSCoW) de trabajo) Sprint
Vista de men semanal (Sprint 5) M 3 5
Confeccin de mens creados por el usuario M 4 5
Generacin automtica de mens
M 6 6
equilibrados
Informacin nutricional del men semanal
M 4 7
planificado
Lista de la compra S 3 7
Ficha de creacin de recetas W 3 8
Ficha de creacin de ingredientes W 3 8
Tabla 10 - Lista de Producto al finalizar el Sprint 4

33
V.5 Sprint 5

El objetivo del quinto Sprint ser finalizar la implementacin de la vista de men


semanal diseada en la iteracin anterior y aadir funcionalidad para permitir al usuario
planificar sus propios mens.

V.5.1 Planificacin
En la fase de planificacin de la iteracin se prepara la Lista del Sprint con el
detalle de las tareas a realizar para cumplir con los objetivos fijados.

Estimacin
Tiempo real
Requisito (en horas de
requerido
trabajo)
Vista de men semanal
(49) Implementacin de la interfaz del men de un da 6

(50) Implementacin del widget que permite navegar entre 8


los mens diarios
(51) Integracin de los componentes de la interfaz 8

(52) Revisin y correccin de errores del funcionamiento de 8


la interfaz de men semanal
Confeccin de mens creados por el usuario
Diseo de las tablas y consultas de la base de datos
(53) necesarias para almacenar y recuperar los mens 4
diarios planificados
(54) Modificar la base de datos con el diseo realizado 4

Implementacin de los mtodos de recuperacin e


(55) insercin en el manejador de la base de datos para los 4
mens diarios
Listado de recetas
(56) Modificar el diseo de la interfaz del listado de recetas 2
para permitir agregar recetas a los mens
(57) Modificar la implementacin del listado de recetas para 6
que permita aadir recetas a los mens
Vista de men semanal
(58) Permitir agregar, cambiar y quitar las recetas a los 4
mens diarios
(59) Recuperar los platos asignados al men al cargarlo 4
desde la interfaz de usuario
Modificar las vistas que muestran los platos de men
(60) para que al hacer clic se abra la ficha de la receta 2
asignada al plato.
Confeccin de mens creados por el usuario
(61) Revisin y correccin de errores 8
Tabla 11 - Lista del Sprint 5

34
V.5.2 Desarrollo

V.5.2.1 Vista de men semanal

En el Sprint anterior se implement la interfaz del calendario semanal y queda por


implementar la interfaz que contendr cada uno de los mens diarios.

Una vez completadas las interfaces queda por implementar el funcionamiento de


stas detallado en el anexo E, para ello se usar el componente de Android ViewPager [15]
que permite agregar varias pginas de contenido y navegar hacia derecha e izquierda para
cambiar el contenido mostrado.

En este caso se usarn dos ViewPager, uno para el calendario semanal y otra para
el men diario, con tres pginas cada uno. En la pgina central se mostrar siempre el
contenido que se est visualizando, y en las pginas de la izquierda y la derecha el
contenido inmediatamente anterior e inmediatamente posterior al mostrado, de forma
que se pueda navegar a izquierda o derecha indefinidamente.

A partir de la definicin del diseo de la interfaz se detectan dos posibles


comportamientos. Por un lado, se podr navegar haca el da o semana inmediatamente
anterior o posterior, o ir a un da en concreto.

En las siguientes figuras se detalla el algoritmo que se implementar para la


navegacin al contenido inmediatamente anterior e inmediatamente posterior de ambos
ViewPager:

Paso PGINA IZQUIERDA PGINA CENTRAL PGINA DERECHA


Inicio Estado inicial -1 Estado inicial Estado inicial +1
El usuario navega a la pgina derecha
Copiar el contenido de la Copiar el contenido de la
1 Estado inicial +1
pgina central pgina derecha
Cambiar a la pgina central sin mostrar transicin
2 Estado inicial Estado inicial +1 Cargar Estado inicial +2
Fin Estado inicial Estado inicial +1 Estado inicial +2
Figura 22 - Algoritmo para la navegacin al contenido inmediatamente posterior

Paso PGINA IZQUIERDA PGINA CENTRAL PGINA DERECHA


Inicio Estado inicial -1 Estado inicial Estado inicial +1
El usuario navega a la pgina izquierda
Copiar el contenido de la Copiar el contenido de la
1 Estado inicial -1
pgina izquierda pgina central
Cambiar a la pgina central sin mostrar transicin
2 Estado inicial -2 Estado inicial -1 Estado inicial
Fin Estado inicial -2 Estado inicial -1 Estado inicial
Figura 23 - Algoritmo para la navegacin al contenido inmediatamente anterior

35
Para los saltos a das o semanas concretas se implementar el algoritmo indicado
en las siguientes figuras:

Paso PGINA IZQUIERDA PGINA CENTRAL PGINA DERECHA


Inicio Estado inicial -1 Estado inicial Estado inicial +1
El usuario selecciona un contenido posterior al actual
Copiar el contenido de la
1 Estado inicial Estado inicial +1
pgina central
Cambiar a la pgina izquierda sin mostrar transicin
Cargar el contenido del Cargar el contenido del
2 Estado inicial
nuevo valor seleccionado nuevo valor seleccionado +1
Desplazamiento con transicin a la pgina central
Nuevo contenido Nuevo contenido
3 Estado inicial
seleccionado seleccionado +1
Cuando termine el desplazamiento con transicin
Cargar el contenido del Nuevo contenido Nuevo contenido
4
nuevo valor seleccionado -1 seleccionado seleccionado +1
Nuevo contenido Nuevo contenido Nuevo contenido
Fin
seleccionado -1 seleccionado seleccionado +1
Figura 24 - Algoritmo para el salto a contenido posterior al mostrado

Paso PGINA IZQUIERDA PGINA CENTRAL PGINA DERECHA


Inicio Estado inicial -1 Estado inicial Estado inicial +1
El usuario selecciona un contenido anterior al actual
Copiar el contenido de la
1 Estado inicial -1 Estado inicial
pgina central
Cambiar a la pgina derecha sin mostrar transicin
Cargar el contenido del Cargar el contenido del
2 Estado inicial
nuevo valor seleccionado -1 nuevo valor seleccionado
Desplazamiento con transicin a la pgina central
Nuevo contenido Nuevo contenido
3 Estado inicial
seleccionado -1 seleccionado
Cuando termine el desplazamiento con transicin a la pgina central
Nuevo contenido Nuevo contenido Cargar el contenido del
4
seleccionado -1 seleccionado nuevo valor seleccionado +1
Nuevo contenido Nuevo contenido Nuevo contenido
Fin
seleccionado -1 seleccionado seleccionado +1
Figura 25 - Algoritmo para el salto a contenido anterior al mostrado

Los valores en negrita indican la pgina que se est mostrando en la interfaz de


usuario en cada paso.

Con la implementacin de estos algoritmos se ofrecer el funcionamiento


establecido en el diseo de la vista de men semanal.

36
V.5.2.2 Confeccin de mens creados por el usuario

Para permitir al usuario planificar sus propios mens se deber modificar el


listado de recetas de forma que permita seleccionar una receta y agregarla al men.

Cuando el usuario pulse el botn Agregar en platos sin receta asignada o la


opcin Cambiar receta del men en los platos con una receta asignada se abrir el listado
de recetas con aquellas que pertenezcan a la categora del plato que haya seleccionado el
usuario, primero, segundo o postre.

Una vez seleccionada una receta se abrir la ficha de la receta y la barra de la


aplicacin cambiar de aspecto y se mostrar cmo se indica en la siguiente figura:

Figura 26 - Barra de la aplicacin para agregar recetas al men

Si el usuario acepta agregar la receta se cambiar automticamente a la vista del


men semanal con la receta seleccionada agregada al men.

Para implementar estos cambios se aadir, adems, una tabla a la base de datos
de la aplicacin en la que se guardar la fecha, comida, categora de plato e identificador de
las recetas agregadas a los mens. Adems se crea la clase equivalente en el modelo de
datos que permitir el manejo de mens diarios. Igualmente se aaden los mtodos
necesarios al manejador de la base de datos para facilitar la recuperacin, modificacin y
borrado de platos en los mens diarios.

V.5.3 Revisin
Una vez finalizada la implementacin del Sprint se procede a su revisin,
comprobando que se hayan completado todos los objetivos establecidos al inicio de la
iteracin.

Pese a acarrear un requisito desde el Sprint anterior, ocasionado por el error de


integracin de la barra lateral de navegacin con el explorador de recetas, no solo se
pudieron completar todos los requisitos establecidos para el Sprint, sino que el desarrollo
fue por debajo de la planificacin realizada durante la mayor parte de la iteracin.

37
16
15
14
13
12
11
Tareas pendientes

10
9
8
7
6
5
4
3
2
1
0
0 1 2 3 4 5 6 7 8
Planificacin Ejecucin
Figura 27 - Burn down chart del Sprint 5

Tras revisar el trabajo realizado en el Sprint se reevala la Lista de Producto para


decidir el trabajo que se llevar a cabo en la siguiente iteracin.

Pese a que la implementacin de la generacin automtica de mens equilibrados


est estimada en seis jornadas de trabajo se considera que es un requisito muy importante
para la aplicacin, por tanto se decide dedicar el siguiente Sprint completo a su desarrollo
y no aadir parte del trabajo de otro requisito a la iteracin.

Valor para el Estimacin Planificado


Requisito producto (en jornadas para el
(MoSCoW) de trabajo) Sprint
Generacin automtica de mens
M 6 6
equilibrados
Informacin nutricional del men semanal
M 4 7
planificado
Lista de la compra S 3 7
Ficha de creacin de recetas C 3 8
Ficha de creacin de ingredientes C 3 8
Tabla 12 - Lista de Producto al finalizar el Sprint 5

38
V.6 Sprint 6

El objetivo que se establece para el Sprint ser el diseo e implementacin del


algoritmo de generacin de mens equilibrados y su integracin dentro de la interfaz de
usuario.

V.6.1 Planificacin
En la planificacin de la iteracin se elabora la Lista del Sprint con las tareas que se
realizarn para cumplir los objetivos establecidos. Se tendr en cuenta que se dispondr
de ocho das en lugar de los seis inicialmente estimados para la generacin automtica de
mens semanales.

Estimacin Tiempo
Requisito (en horas de real
trabajo) requerido
Generacin automtica de mens equilibrados
(62) Anlisis del problema y diseo del algoritmo de 8
generacin de mens equilibrados
(63) Implementacin del algoritmo de generacin de mens 12
equilibrados en la aplicacin
(64) Creacin de datos de prueba y verificacin del 6
funcionamiento del algoritmo
(65) Correccin de errores 8

(66) Diseo del icono de la opcin de generacin de mens 4


equilibrados
Diseo e implementacin de un cuadro de dialogo que
(67) permita seleccionar la semana para la que generar el 6
men semanal
Vista de men semanal
Integrar el icono de generacin automtica de mens en
(68) la vista de men semanal y mostrar el cuadro de dialogo 4
de seleccin de semana al hacer clic sobre el icono
(69) Aadir la generacin de mens semanales equilibrados 4
desde la vista de men semanal
Generacin automtica de mens equilibrados
(70) Revisin y pruebas 8
Tabla 13 - Lista del Sprint 6

V.6.2 Desarrollo
El desarrollo del Sprint se dividir en dos fases. En primer lugar se disear e
implementar el algoritmo de generacin de mens equilibrados y se realizarn pruebas
sobre l para verificar su funcionamiento, corrigiendo cualquier error que se detecte en su
revisin. Finalmente se integrar el algoritmo en la aplicacin para dotarla de esta
funcionalidad.

39
V.6.2.1 Algoritmo de generacin de mens equilibrados

Para poder evaluar las recetas y poder decidir cules agregar al men se utilizarn
las cantidades de cada grupo nutricional que contiene cada una y que fueron calculadas en
el proceso de carga de datos, de forma que el algoritmo que se seguir para la generacin
de mens equilibrados ser el siguiente:

1. Obtener el porcentaje a alcanzar de cada grupo nutricional.


2. Para cada plato a agregar al men semanal:
2.1. Obtener el porcentaje de cada grupo nutricional del men semanal
planificado hasta ahora.
2.2. Calcular la diferencia de cada grupo nutricional del men semanal con los
porcentajes objetivo.
2.3. Para cada posible receta a agregar:
2.3.1. Calcular la puntuacin de la receta como:

() ()

2.3.2. Aadir a la puntuacin de la receta otros parmetros.

2.4. Agregar al men la receta con mejor puntuacin.

En el paso 2.3.2 del algoritmo se indica que se aadirn a la puntuacin obtenida


otros parmetros. Estos parmetros hacen referencia a las opciones de personalizacin del
proceso de generacin de mens que se indicaron en el documento de requisitos. En esta
primera versin del algoritmo se incluirn dos de los parmetros enunciados en el
documento de requisitos y se aadirn otros dos para intentar garantizar la variabilidad
de los mens generados:

Se podr generar el men desde cero o utilizando las recetas ya seleccionadas.


Este parmetro no se calcula en el paso 2.3.2, sino que a la hora de obtener los
platos a agregar al men semanal se elegirn todos o se usarn los ya asignados
segn corresponda.

Se tendr en cuenta la puntuacin del usuario aplicando la siguiente frmula:


( )

Para fomentar la variacin de las recetas seleccionadas entre semanas se aplicar


la siguiente frmula:

( )

Finalmente, para provocar la variacin de recetas seleccionadas dentro de una


misma semana se dividir entre dos las puntuaciones de aquellas recetas que ya
estn presentes en el men de la misma semana.

40
Una vez implementado el algoritmo se generan nuevos datos de prueba en los que se
controla las cantidades de cada grupo nutricional de cada receta y se usan para verificar el
correcto funcionamiento del algoritmo.

V.6.2.2 Integracin de la generacin de mens equilibrados con la interfaz de usuario

Con el algoritmo de generacin de mens semanales implementado y verificado


queda aadir a la interfaz de usuario la opcin de generar un nuevo men e integrar el
funcionamiento de la interfaz con el proceso de generacin.

En la siguiente figura se muestra el conjunto de iconos diseados para aadir la


opcin de generar un nuevo men a la vista de men semanal.

Figura 28 - Iconos para la generacin automtica de mens semanales

Para este icono se crean dos versiones, una con el fondo claro y otra con el fondo
oscuro, y seis variaciones, dependiendo del estado del icono y de la densidad de pxeles de
la pantalla.

El motivo por el que se ha creado una versin con el fondo claro y otra con el fondo
oscuro es porque actualmente la barra de ttulo de la aplicacin es oscura, pero se
pretende cambiarla el color por uno ms claro en alguno de los Sprints siguientes.

Igual que con iconos anteriores, se crean diferentes variaciones segn la densidad
de pxeles de la pantalla, de forma que en dispositivos con pantallas grandes y de alta
densidad de pxeles se mostrar la varita mgica entera; en dispositivos con pantallas
grandes y medianas con una densidad de pxeles media se mostrar media varita; y
finalmente en dispositivos con una pantalla pequea o con muy baja densidad de pxeles
se mostrar tan solo la punta de la varita.

41
Adems, cuando el usuario est presionando el icono las estrellas pasarn a ser
completamente blancas. El cambio, aunque no demasiado sustancial, produce el efecto
deseado de hacer ver al usuario que la interfaz responde a sus acciones.

Por ltimo, se implementa el siguiente men contextual para permitir al usuario


seleccionar la semana para la que desea generar el men, y para que defina si se deben
mantener las recetas ya seleccionadas. Junto a cada semana se aade el intervalo para el
que se generar el men, en el caso de la semana actual el intervalo comenzar en el da en
curso, el viernes en la figura de ejemplo, y terminar en el domingo.

Figura 29 - Men contextual para la generacin de mens equilibrados

V.6.3 Revisin
Al finalizar el desarrollo de la iteracin se procede a revisar el trabajo realizado,
comprobando que se hayan cumplido todos los objetivos establecidos en la planificacin y
se actualiza la Lista del Sprint y su diagrama de quemado.

Se completaron todos los requisitos fijados para el Sprint siguiendo, casi


exactamente, la planificacin realizada.

10
9
8
Tareas pendientes

7
6
5
4
3
2
1
0
0 1 2 3 4 5 6 7 8
Planificacin Ejecucin
Figura 30 - Burn down chart del Sprint 6

42
Tras revisar el desarrollo del Sprint se actualiza la Lista de Producto y se decide el
trabajo a realizar en la siguiente iteracin.

La idea inicial para la pantalla con la informacin nutricional de los mens


semanales consista en una vista sencilla en la que se mostraban los porcentajes para cada
grupo nutricional y sus diferencias con respecto a los valores ideales. Sin embargo se
considera que este enfoque no resultara suficiente para cumplir con el objetivo del
proyecto que establece que la informacin nutricional presentada al usuario debe
mostrarle de forma clara y sencilla el valor nutricional del men planificado, de forma que
le resulte sencillo aprender a planificar sus propios mens de manera que sean sanos y
equilibrados.

Por esto se decide crear una interfaz mucho ms detallada que incluya un grfico
similar a la rueda de los alimentos [12] presentada en el captulo IV y que otorgue una
informacin visual de mucho ms valor que los datos en crudo.

As, el siguiente Sprint se dedicar en exclusiva a disear e implementar dicho


grfico y a incluirlo en una interfaz de usuario junto con los valores nutricionales y una
pequea descripcin de los mismos.

Valor para el Estimacin Planificado


Requisito producto (en jornadas para el
(MoSCoW) de trabajo) Sprint
Informacin nutricional del men semanal
M 8 7
planificado
Lista de la compra S 3 8
Ficha de creacin de recetas C 3 8
Ficha de creacin de ingredientes C 3 8
Tabla 14 - Lista de Producto al finalizar el Sprint 6

43
V.7 Sprint 7

Para el sptimo Sprint se marca como objetivo disear e implementar la interfaz


de usuario y sus componentes que se usar para presentar la informacin nutricional del
men semanal planificado.

V.7.1 Planificacin
Se prepara la Lista del Sprint con el detalle de las tareas a realizar para alcanzar los
objetivos establecidos para la iteracin. Se tendr en cuenta que se dedicar el Sprint
completo a la implementacin de la vista que mostrar la informacin nutricional del
men semanal planificado, y que se incluir el diseo e implementacin del grfico que se
usar para presentar de forma visual el valor nutricional del men.

Estimacin Tiempo
Requisito (en horas de real
trabajo) requerido
Informacin nutricional del men semanal planificado
(71) Diseo de la vista de informacin nutricional y de sus 8
componentes
(72) Implementacin del grfico de informacin nutricional 14

(73) Carga y presentacin de los datos nutricionales de un 4


men semanal en el grfico
(74) Implementacin de la interfaz de informacin nutricional 6
Implementacin de la carga y presentacin de los datos
(75) nutricionales de un men semanal en la vista de 6
informacin nutricional
(76) Diseo del widget de resumen nutricional para la vista de 4
men semanal
(77) Implementacin del widget de resumen nutricional 6

(78) Integracin del widget de resumen nutricional en la vista 6


de men semanal
(79) Revisin y correccin de errores 8
Tabla 15 - Lista del Sprint 7

V.7.2 Desarrollo

V.7.2.1 Diseo e implementacin del grfico de informacin nutricional

Para presentar el valor nutricional del men semanal planificado se emplear un


grfico circular en el que el tamao de cada porcin ser fijo, y el porcentaje real obtenido
en el men semanal se adaptar al grupo correspondiente.

En la siguiente figura se muestra el diseo del grfico de informacin nutricional


que se implementar:

44
Figura 31 - Diseo del grfico de informacin nutricional

Cada una de las seis porciones del grfico ocupar un valor fijo establecido por los
porcentajes objetivo de una dieta equilibrada, en el diseo se muestran estos porcentajes
en color azul en la parte exterior del grfico, pero en la implementacin del grfico no se
incluirn estos valores ni las medidas.

Sobre cada una de las porciones con el tamao de los objetivos a alcanzar se
mostrar la informacin nutricional del men semanal de la siguiente manera:

Cuando el valor obtenido coincida con el valor objetivo, como en el caso de


las barras verdes del ejemplo, se ocupar todo el espacio reservado para el
grupo nutricional determinado.
Cuando el valor obtenido exceda el valor objetivo, como sucede con la barra
roja y la barra naranja del ejemplo, se ocupar todo el espacio reservado y
se presentar en un color ms oscuro el porcentaje que se excede del valor
ideal.
Finalmente, cuando el valor obtenido sea inferior al objetivo, como sucede
con las barras azul y morada del ejemplo, no se ocupar todo el espacio
reservado, y se mostrar la diferencia con el objetivo en un color ms claro.

Para la implementacin del grfico se utilizar el objeto Canvas [16] de Android y


las funciones de pintado que ofrece.

V.7.2.2 Diseo e implementacin de la ficha de informacin nutricional

Con el grfico implementado se procede a disear la ficha de informacin


nutricional, para ello se crearn dos versiones, para mviles y tablets, y dos variantes para
cada versin dependiendo de la orientacin de la pantalla.

En mviles en posicin vertical se mostrar la interfaz como se muestra en la


siguiente figura:

45
Figura 32 - Diseo de la interfaz de informacin nutricional para mviles en posicin vertical

Para ver el contenido que no cabe en pantalla el usuario podr desplazar la


informacin hacia arriba, de manera que se mover todo el contenido, tanto el grfico
como la tabla con la informacin nutricional.

Cuando el mvil se encuentre en posicin horizontal no se mostrar el grfico y la


tabla ocupar toda la pantalla.

La versin para tablets en posicin vertical ser similar a la de mviles en la misma


posicin. El grfico ocupar la mitad superior de la pantalla y la tabla la mitad inferior,
pero en este caso, cuando el contenido no quepa en la pantalla se desplazar nicamente
el contenido de la tabla, quedando el grfico siempre visible.

Por ltimo, cuando la interfaz se muestre en tablets en posicin horizontal la


interfaz se mostrar como se indica en la siguiente figura:

46
Figura 33 - Diseo de la interfaz de informacin nutricional para tablets en posicin horizontal

En este caso el grfico se mostrar en la mitad izquierda de la pantalla y la tabla


con la informacin nutricional a la derecha. Igual que antes, cuando el contenido de la
tabla no quepa en la pantalla se podr desplazar slo ste. Quedando el grfico siempre
visible.

En todos los casos se mostrar en el centro del grfico un valor numrico y uno
textual que indicar el valor nutricional del men semanal. ste valor se calcular a partir
de las diferencias entre el porcentaje nutricional del men semanal con el porcentaje
objetivo de cada grupo, aplicando la siguiente frmula:

En lugar de usar la diferencia media o algn otro valor para dar una valor
nutricional la men semanal, se utilizar esta frmula con la intencin de penalizar
aquellos mens que la suma total de las diferencias sea grande.

V.7.2.3 Diseo e implementacin del widget de resumen nutricional

Con la ficha de informacin nutricional implementada falta por integrarla con el


resto de la aplicacin. Para ello se crear un widget con un pequeo resumen de la
informacin nutricional y que al pulsarlo llevar al usuario a la ficha con la informacin
detallada.

Se disea el siguiente icono, que presenta el mismo aspecto que el grfico, para
incluirlo en el widget de resumen nutricional.

47
Figura 34 - Diseo del icono para la ficha de informacin nutricional

Para el widget resumen se crearn dos versiones, una muy resumida en la que slo
se mostrar el valor nutricional del men semanal y otra en la que se mostrar el grfico y
el porcentaje obtenido de cada grupo nutricional, pero no su detalle.

La primera versin del widget se utilizar en la vista de men semanal, tanto en


mviles como en tablets en posicin vertical, mientras que la segunda versin nicamente
en tablets en posicin horizontal. No se modificar la vista de men semanal en mviles en
posicin horizontal para no dejar la pantalla sin apenas espacio para mostrar el men
semanal.

En las siguientes figuras se muestra el diseo widget con el resumen nutricional


para dispositivos en posicin vertical y el diseo de la vista de men para tablets en
posicin horizontal:

Figura 35 - Diseo del widget con el resumen nutricional del men semanal

Figura 36 - Diseo del widget con el resumen nutricional del men semanal para tablets en posicin horizontal

48
V.7.3 Revisin
Una vez completada la implementacin de los requisitos de la iteracin se procede
a revisar el trabajo realizado, actualizando la Lista del Sprint y el diagrama de quemado.

Se comprueba que se cumplieron los objetivos fijados y que se realiz todo el


trabajo siguiendo casi al detalle la planificacin realizada.

10

7
Tareas pendientes

0
0 1 2 3 4 5 6 7 8
Planificacin Ejecucin
Figura 37 - Burn down chart del Sprint 7

En este punto del desarrollo del proyecto se considera que la aplicacin es lo


suficientemente funcional como para su puesta en produccin, pero sin embargo antes
habra que revisarla para detectar y corregir errores y aadir pequeas mejoras, como
revisar algunos aspectos de la interfaz y agregar informacin de recetas reales.

Se revisa la Lista de Producto y se aaden los requisitos que se implementarn en


el siguiente Sprint antes de la puesta en produccin de la aplicacin.

Valor para el Estimacin Planificado


Requisito producto (en jornadas para el
(MoSCoW) de trabajo) Sprint
Correccin de errores antes de la puesta en
M 2 8
produccin
Mejoras antes de la puesta en produccin M 5 8
Datos de recetas reales M 2 8
Publicacin de la aplicacin en Play store M 1 8
Lista de la compra S 3 9
Ficha de creacin de recetas C 3 9
Ficha de creacin de ingredientes C 3 9
Tabla 16 - Lista de Producto al finalizar el Sprint 7

49
V.8 Sprint 8

El objetivo del Sprint ser revisar la aplicacin, corrigiendo los errores detectados
y la implementacin de algunas mejoras, como la revisin de la interfaz de usuario y la
creacin de datos de recetas reales para la puesta en produccin de la aplicacin mediante
su publicacin en una tienda de aplicaciones.

V.8.1 Planificacin
Durante la planificacin se revisa la aplicacin para detectar errores y se crea una
lista de mejoras a aadir. Finalmente se realiza una estimacin del tiempo que requerir
corregir los errores e implementar las mejoras y se prepara la Lista del Sprint.

Estimacin Tiempo
Requisito (en horas de real
trabajo) requerido
Correccin de errores antes de la puesta en produccin
(80) Revisin de todo el trabajo realizado y correccin de los 14
errores que se detecten
Mejoras antes de la puesta en produccin
Creacin de un tema visual para la aplicacin y modificacin
de las interfaces de usuario para conseguir una mayor
(81) 8
integracin con los colores y aspecto visual de toda la
aplicacin

(82) Diseo e implementacin de una pantalla con la informacin 4


sobre la aplicacin y con los medios de contacto
Revisin del aspecto de las interfaces en pantallas de
(83)
distintos tamaos y modificacin de las que sean necesarias 4
para una correcta visualizacin en cualquier tamao de
pantalla
Diseo de iconos para las opciones de la barra de
(84) 6
navegacin
Diseo e implementacin del proceso de actualizacin de
(85)
datos desde un repositorio remoto y modificacin del 12
proceso de carga y actualizacin de datos de la aplicacin
para implementar la actualizacin de datos remota
(86)
Aadir los ajustes la opcin de usar siempre las recetas ya 1
seleccionadas en la generacin de mens equilibrados
Aadir a los ajustes la opcin de slo descargar
(87) actualizaciones de datos cuando el dispositivo est 1
conectado a una red WiFi
Datos de recetas reales
Aadir informacin de recetas e ingredientes para disponer
(88) 16
de una base de datos inicial
Publicacin de la aplicacin en Play Store
Generacin del instalable de la aplicacin y publicacin en la
(89) 2
tienda de aplicaciones de Google
Tabla 17 - Lista del Sprint 8

50
V.8.2 Desarrollo

V.8.2.1 Correccin de errores

A continuacin se detallan los errores detectados y que fueron corregidos en el


Sprint:

Al generar un men en una semana ya empezada con la opcin de generar el


men de cero se borraban los mens de los das ya pasados. Se corrige para
que los mens de das anteriores al actual permanezcan guardados.
Al navegar a un ao anterior o posterior desde el calendario semanal se
produca un error en el calendario, retrocediendo o avanzando ms de una
semana cada vez. Se corrige la funcin del calendario que produca este desfase
de fechas.
Al iniciar la aplicacin se mostraba un instante una pantalla en blanco, se
corrige eliminando la barra de ttulo de la pantalla de inicio y cambiando el
fondo al mismo color de la pantalla de carga.
En dispositivos mviles con pantallas de 3.5 o menores el calendario de la
vista de men semanal no se mostraba entero. Se crean diferentes variaciones
de la interfaz del calendario dependientes del tamao y orientacin de la
pantalla para adaptar correctamente los elementos de la vista de men
semanal a todos los tamaos de pantalla.

V.8.2.2 Mejoras

Se implementan las mejoras indicadas en la Lista del Sprint y que se detallan en la


siguiente lista:

Se disea y se crea un tema visual para la aplicacin, para ello se sustituye la


barra de ttulo por defecto por la siguiente:

Figura 38 - Nuevo diseo de la barra de ttulo

Adems se modifican los indicadores de las barras de pestaas para que se


muestren en el color verde de la barra de ttulo en lugar del color azul por
defecto.

Se disea e implementa una pantalla de informacin en la que se incluye el


nmero de la versin y el correo electrnico de contacto. En la siguientes
figura se muestra la pantalla de informacin:

51
Figura 39 - Pantalla de informacin de la aplicacin

Adems de aadir la informacin de contacto, cuando se pulsa sobre la caja


con esta informacin se abre automticamente la aplicacin de correo
electrnico y prepara un correo con la direccin de destino y el asunto del
correo ya establecidos.

Se revisan todos los elementos grficos creados en los primeros Sprint y se


optimizan para pantallas con diferentes densidades.

Se implementa un servicio web que devuelve las URLs a los ficheros necesarios
para actualizar la base de datos cliente y se modifica el proceso de carga de la
aplicacin para acceder a este servicio y comprobar si hay nuevos datos para
actualizar. Adems se aade a los ajustes la opcin de slo descargar
actualizaciones de datos cuando el dispositivo est conectado a una red WiFi,
evitando as el consumo de datos.

Se aade tambin a los ajustes la opcin de usar por defecto las recetas ya
asignadas al men semanal.

Se disean y aaden a la barra lateral de navegacin un icono para cada una


de las opciones.

- Para la opcin Men Semanal el icono tiene el aspecto de una hoja del
calendario, se crea un icono para cada da del mes y se muestra la que
corresponda al da del mes actual.

52
Ilustracin 6 - Icono para la opcin 'Men semanal' de la barra de navegacin

- Para el explorador de recetas el icono consiste en un tenedor y una


lupa. Como en otros iconos se crea un icono con menor nivel de detalle
para pantallas con densidad de pxeles media y baja.

Ilustracin 7 - Iconos para la opcin Recetas de la barra de navegacin

- Para la opcin Ajustes se crea un icono con la apariencia de una


bscula de cocina.

Ilustracin 8 - Icono para la opcin 'Ajustes' de la barra de navegacin

- Se aade la opcin Informacin a la barra lateral de navegacin y se


disean tres versiones del icono para adaptarlo correctamente a todo
tipo de pantallas.

Ilustracin 9 - Iconos para la opcin Informacin de la barra de navegacin

53
V.8.2.3 Publicacin en Play Store

Finalmente se genera un archivo de instalacin firmado y se publica en la tienda de


aplicaciones Play Store.

Figura 40 - Pgina de la aplicacin una vez publicada en Play Store

V.8.3 Revisin
Tras finalizar el Sprint se revisa el trabajo realizado y se comprueba el
cumplimiento de todos los requisitos que fueron asignados a la iteracin, actualizando la
Lista del Sprint y obteniendo su grfico de quemado correspondiente.

El desarrollo del Sprint se mantuvo siempre dentro de la estimacin realizada y fue


por delante de la planificacin en dos ocasiones.

11
10
9
Tareas pendientes

8
7
6
5
4
3
2
1
0
0 1 2 3 4 5 6 7 8
Planificacin Ejecucin
Figura 41 - Burn down chart del Sprint 8

54
Una vez completado el desarrollo del mbito del trabajo fin de grado, se pone en
contexto el avance realizado en todos los Sprints implementados en un nico grfico de
quemado.

70
65
60
55
50
Tareas pendientes

45
40
35
30
25
20
15
10
5
0
0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64
Planificacin Ejecucin
Figura 42 - Burn down chart del proyecto

El nmero de tareas pendientes ha seguido una tendencia descendente excepto en


las tres situaciones en que se aadieron nuevos requisitos a la Lista de Producto, y que
pueden verse en la grfica en los picos que presenta.

El primero corresponde con el inicio del tercer Sprint, en el que se aadi la


implementacin del explorador de recetas. El segundo fue causado por la adicin de la
barra lateral de navegacin a los requisitos. Y el tercero y ltimo corresponde al octavo
Sprint al completo, en el que se implementaron nicamente nuevos requisitos, por lo que
el nmero de tareas pendientes entre el final del sptimo y octavo Sprint es el mismo.

Finalmente, el error que se produjo en el explorador de recetas al integrarlo con la


barra de navegacin increment el da 27 una tarea a la Lista del cuarto Sprint. En el
grfico puede apreciarse un pequeo incremento en ese da, aunque debido a que abarca
una cantidad muy grande de tiempo pasa casi desapercibo, lo que significa que aunque
hubo que modificar la Lista del Sprint y se propag una tarea a la siguiente iteracin el
error no caus apenas impacto sobre el desarrollo global del proyecto.

55
Captulo VI
Conclusiones
El desarrollo de este trabajo fin de grado me ha permitido poder aplicar muchos de
los conocimientos y capacidades adquiridas en el resto de asignaturas de la titulacin, y
adems aprender y poner en prctica nuevos conocimientos.

Si bien durante las asignaturas de ingeniera del software se ha estudiado la gestin


de proyectos desde un punto de vista clsico, en este trabajo hemos empleado la
metodologa gil Scrum. Pese a que dicha metodologa no forma parte del programa
formativo de la titulacin, fue elegida para el desarrollo del proyecto porque est pensada
para adaptarse con facilidad a cambios de requisitos y en concreto para proyectos que
evolucionan con el tiempo.

Por otro lado, aunque el desarrollo de aplicaciones Android utiliza Java como
lenguaje de programacin, lenguaje que s ha sido parte de mi itinerario formativo, emplea
el patrn de arquitectura software Modelo-Vista-Controlador (MVC). Dicho modelo separa
por completo los datos, la lgica del programa y la interfaz de usuario y, al no formar parte
del programa de la titulacin, he tenido que aprenderlo para poder completar este trabajo.

Finalmente, utilic un sistema de gestin de versiones que me result muy til


para manejar los cambios y la evolucin del cdigo fuente de la aplicacin.

Con todo ello, considero que he desempeado un trabajo similar al que deber
ejercer en mi vida laboral como graduado en ingeniera informtica.

Los conocimientos y habilidades que he adquirido con el desarrollo del proyecto


me han permitido crecer personal, acadmica y profesionalmente, y creo que el trabajo
realizado me permitir acceder con ms facilidad al mercado laboral ya que me permite
demostrar mis conocimientos en ingeniera informtica y en la gestin y desarrollo de
aplicaciones informticas.

VI.1 Consecucin de los objetivos

El principal objetivo que se fij fue desarrollar una aplicacin para dispositivos
Android que permitiera planificar y generar automticamente mens semanales que se
adapten a una dieta sana y equilibrada.

La aplicacin desarrollada cumple plenamente con los objetivos establecidos.


Adems, en el anlisis y diseo de la aplicacin se tuvo en cuenta una idea de producto
global, no slo los requisitos que se implementaran, lo que permitir implementar nuevas
funcionalidades sin tener que modificar el trabajo ya terminado.

Igualmente, se marc como objetivo realizar una interfaz de usuario clara, limpia e
intuitiva. En el desarrollo del proyecto se puso especial cuidado en este aspecto, con lo que
se ha obtenido una interfaz de usuario que sigue las indicaciones de diseo de Android
[14] y que resulta plenamente funcional y fcil de utilizar.

57
VI.2 Trabajos futuros

En la elicitacin de requisitos ya se indicaron algunos de los trabajos futuros con


los que se podr mejorar la aplicacin desarrollada.

Desde la perspectiva del usuario, la lista de la compra sera el que ms valor


aadira a la aplicacin, seguido de una mayor personalizacin en las opciones para
generar mens equilibrados. Por otro lado, desde la ptica del producto, el de mayor valor
sera la posibilidad de que los usuarios creen y compartan nuevas recetas, pues permitir
obtener una base de datos de recetas mucho mayor de la actual, y lo que es ms
importante, con recetas que los usuarios finales de la aplicacin consideran de valor.

Adems de las funcionalidades que se detectaron en el anlisis inicial de la


aplicacin, se han ido detectando otras posibles mejoras, algunas, incluso, propuestas por
los primeros usuarios de la aplicacin:

Posibilidad de imprimir las recetas y los mens planificados.


Aadir informacin estacional a los ingredientes y a las recetas para variar los
mens segn la poca del ao.
Aadir recetas pensadas para comer en el trabajo.
Seccin de favoritos y recetas destacadas en el explorador de recetas.
Permitir definir cuntos de los miembros de la familia son nios para calcular
mejor las cantidades de ingredientes en las recetas.
Aadir imgenes a las recetas.
Permitir vincular y reproducir vdeos explicativos sobre la elaboracin de las
recetas.

Finalmente, se plantean las siguientes mejoras que podran ayudar a financiar el


futuro desarrollo y evolucin de la aplicacin:

Adaptar las caractersticas de la aplicacin para su uso en colegios, universidades,


comedores en centros de trabajo, etc. Permitiendo a los usuarios acceder a dichos
mens para que puedan planificar el resto de comidas de la semana en base a
stos.
Aadir recetas patrocinadas con productos de marcas.
Permitir hacer la compra por internet desde la lista de la compra.

58
Bibliografa
[1] Aplicacin Caloras [acceso 11 de mayo de 2013]. Disponible en:
https://play.google.com/store/apps/details?id=com.cafetaso.foodinfo

[2] Aplicacin MyFitnessPal [acceso 11 de mayo de 2013]. Disponible en:


https://play.google.com/store/apps/details?id=com.myfitnesspal.android

[3] Aplicacin MiMenuSaludable [acceso 11 de mayo de 2013]. Disponible en:


https://play.google.com/store/apps/details?id=com.mmb.mimenu

[4] Apple Developer Program Enrollment [web]. Apple [acceso 12 de mayo de 2014].
Disponible en: https://developer.apple.com/programs/start/ios/

[5] Play Store [web]. Google [acceso 12 de mayo de 2014]. Disponible en:
https://play.google.com/apps/publish/signup/

[6] DreamSpark [web]. Microsoft [acceso 12 de mayo de 2014]. Disponible en:


https://www.dreamspark.com

[7] Windows Phone Dev Center [web]. Microsoft [acceso 12 de mayo de 2014]. Disponible
en: https://dev.windowsphone.com

[8] NetMarketShare [base de datos e internet]. Mobile/Tablet Operating System Market


Share [acceso 12 de mayo de 2014]. Disponible en: http://www.netmarketshare.com/

[9] Datos obtenidos por Gartner.com y publicados en Wikipedia [web] [acceso 12 de mayo
de 2014]. Disponible en:
http://en.wikipedia.org/wiki/Mobile_operating_system#Market_share

[10] Scrum.org [web] [acceso 12 de mayo de 2014]. Disponible en:


https://www.scrum.org/

[11] Schwaber K, Sutherland J. La gua de Scrum. Julio 2013 [acceso 12 de mayo de 2014].
Disponible en: https://www.scrum.org/scrum-guide

[12] Sociedad Espaola de Diettica y Ciencias de la Alimentacin [sede web]. SEDCA


[acceso 12 de mayo de 2014]. Disponible en: http://nutricion.org/

[13] International Institute of Business Analysis. A Guide to Business Analysis Body of


Knowledge. 2 Edicin. 2009

[14] Gua de diseo de Android [web]. Android [acceso 14 de mayo de 2014]. Disponible
en: https://developer.android.com/design/index.html

[15] Using ViewPager for Screen Slides [web]. Android [acceso 15 de mayo de 2014].
Disponible en: http://developer.android.com/training/animation/screen-slide.html

[16] Draw with canvas [web]. Android [acceso 15 de mayo de 2014]. Disponible en:
http://developer.android.com/guide/topics/graphics/2d-graphics.html#draw-with-
canvas

59
Glosario
Scrum: marco de trabajo para el desarrollo gil de proyectos software. No se trata de una
metodologa en s, sino que se basa en el ciclo de vida iterativo e incremental y
propone una serie de principios o recomendaciones a seguir.

Sprint: cada una de la iteraciones de un proyecto Scrum, con una duracin mxima
recomendable de un mes.

Trigger (base de datos): procedimiento que se ejecuta cuando se cumple una condicin
establecida. Generalmente los triggers suelen estar asociados a operaciones de
insercin, modificacin y borrado de datos.

XML: siglas en ingls de eXtensible Markup Language. Es un lenguaje de marcas diseado


para el almacenamiento de datos en forma legible, permitiendo definir gramticas
especficas para estructurar documentos de gran tamao.

Widget: Componente reutilizable de la interfaz grfica de usuario que ofrece una


funcionalidad clara y concisa. Puede combinarse con otros widgets para disear
interfaces de usuario complejas.

61
Anexo A
Tablas de datos
Tabla de cuota de mercado a nivel internacional de mviles y tablets para iOS,
Android y Windows Phone para el periodo de enero de 2011 a diciembre de 2013 [8].

Ao Mes iOS Android Windows Phone


2011 Enero 54.07% 12.75% 0.11%
2011 Febrero 46.57% 13.44% 0.14%
2011 Marzo 47.85% 14.17% 0.17%
2011 Abril 50.57% 14.82% 0.20%
2011 Mayo 49.83% 15.86% 0.20%
2011 Junio 52.41% 14.31% 0.21%
2011 Julio 54.57% 14.56% 0.23%
2011 Agosto 53.04% 15.98% 0.22%
2011 Septiembre 54.65% 16.26% 0.25%
2011 Octubre 61.50% 18.86% 0.23%
2011 Noviembre 54.04% 16.70% 0.29%
2011 Diciembre 52.10% 16.17% 0.27%
2012 Enero 53.65% 18.12% 0.29%
2012 Febrero 60.59% 19.02% 0.41%
2012 Marzo 59.87% 18.66% 0.42%
2012 Abril 63.19% 19.27% 0.49%
2012 Mayo 62.65% 19.69% 0.66%
2012 Junio 65.27% 19.73% 0.61%
2012 Julio 65.74% 20.16% 0.77%
2012 Agosto 65.94% 20.93% 0.62%
2012 Septiembre 63.48% 22.10% 0.70%
2012 Octubre 59.87% 27.35% 0.81%
2012 Noviembre 61.10% 28.08% 0.90%
2012 Diciembre 60.13% 24.60% 1.05%
2013 Enero 60.56% 24.51% 1.15%
2013 Febrero 54.91% 25.65% 1.24%
2013 Marzo 61.41% 24.85% 1.50%
2013 Abril 59.04% 26.02% 1.14%
2013 Mayo 59.49% 24.40% 1.12%
2013 Junio 57.56% 24.66% 1.33%
2013 Julio 58.26% 25.28% 1.15%
2013 Agosto 54.91% 28.12% 0.97%
2013 Septiembre 53.63% 29.42% 0.92%
2013 Octubre 55.39% 30.58% 0.50%
2013 Noviembre 55.17% 33.89% 0.67%
2013 Diciembre 54.27% 35.41% 0.55%
Tabla 18 - Datos de la cuota de marcado agregada de mviles y tablets

63
Tabla de millones de dispositivos vendidos trimestralmente con el sistema
operativo iOS, Android y Windows Phone a nivel internacional para el periodo de enero de
2011 a diciembre de 2013 [9].

Ao Trimestre iOS Android Windows Phone


2011 Primero 16.88 36.35 1.60
2011 Segundo 19.63 46.78 1.72
2011 Tercero 17.30 60.49 1.70
2011 Cuarto 35.46 75.91 2.76
2012 Primero 33.12 81.07 2.71
2012 Segundo 28.94 98.53 4.09
2012 Tercero 23.55 122.48 4.06
2012 Cuarto 43.46 144.72 6.19
2013 Primero 38.33 156.19 5.99
2013 Segundo 31.90 177.90 7.41
2013 Tercero 30.33 205.02 8.91
2013 Cuarto 50.22 219.61 8.53
Tabla 19 - Datos de ventas, en millones de unidades, a nivel internacional

64
Anexo B
Scrum
Scrum es un marco de trabajo por el cual las personas pueden acometer problemas
complejos adaptativos, a la vez que entregar productos del mximo valor posible
productiva y creativamente. Para optimizar la predictibilidad y minimizar los riesgos
emplea un enfoque iterativo e incremental para la gestin de proyectos.

Las entregas incrementales aseguran que siempre estar disponible una versin
funcional y potencialmente til del producto.

A continuacin se detalla de forma resumida las principales caractersticas y


particularidades de Scrum.

B.1 Teora de Scrum

Scrum se basa en la teora de control de procesos emprica, y dispone de tres


pilares fundamentales para soportar la implementacin de dicho control de procesos.
Estos pilares son: transparencia, inspeccin y adaptacin.

En primer lugar, transparencia hace referencia a que todos los aspectos


significativos del proceso de desarrollo deben ser visibles y comprensibles por todos
aquellos que son responsables de la consecucin del objetivo final. Por tanto, cualquier
persona implicada en el desarrollo de un proyecto Scrum, desde el cliente hasta cada uno
de los miembros del equipo de desarrollo deben poder conocer en todo momento la
situacin actual del proyecto, as como su evolucin hasta el estado actual y las
planificaciones de trabajo futuro. De esta manera todos los implicados podrn tener un
entendimiento comn de lo que se est viendo.

En segundo lugar, la inspeccin consiste en que todos los implicados en el proceso


inspeccionen regularmente, pero sin que llegue a interferir en el desarrollo, los artefactos
de Scrum y el progreso hacia el objetivo.

Finalmente, la adaptacin se refiere a ajustar el proceso o el material que est


siendo procesado cuando al realizar una inspeccin se detecte que ste se desva de los
lmites aceptables y que como consecuencia podra afectar negativamente en el producto
resultante. Este ajuste debe realizarse tan pronto como se detecte la desviacin con el fin
de minimizar desviaciones mayores.

Para la realizacin de las pertinentes inspecciones, y adaptaciones en los casos en


los que sea necesario, Scrum establece formalmente cuatro eventos que tienen lugar en
diferentes momentos de cada Sprint o iteracin:

Reunin de planificacin del Sprint.


Scrum diario.
Revisin del Sprint.
Retrospectiva del Sprint.

En el apartado 3 del presente anexo se detallan cada uno de estos eventos.

65
B.2 Roles del equipo Scrum

El equipo Scrum, o actores que forman parte del proceso, est compuesto por el
dueo de producto (denominado ms comnmente por su trmino en ingls Product
Owner), el equipo de desarrollo y un Scrum Master.

La principal particularidad de los equipos de desarrollo en Scrum es que stos son


auto-organizados y multifuncionales. Al tratarse de grupos auto-organizados stos no son
dirigidos por personas ajenas al equipo, lo que convierte la comunicacin interna en un
aspecto fundamental. Adems, al tratarse de equipos multifuncionales no necesitan
depender de otras personas externas al equipo, pues stos deben tener todas las
competencias que sean necesarias para llevar a cabo todo el trabajo.

B.2.1 Dueo de producto o Product Owner


Representa los intereses del cliente, y es por tanto el responsable de maximizar el
valor del producto y del trabajo del equipo de desarrollo.

Es el nico responsable de gestionar la Lista del Producto (explicada en el apartado


4 del presente anexo) y por tanto deber:

Expresar claramente los elementos de la Lista del Producto.


Ordenar los elementos de la Lista del Producto en funcin del valor que
ofrece cada uno de ellos al producto.
Optimizar el valor del trabajo desempeado por el equipo de desarrollo.
Asegurar que la Lista del Producto sea visible, transparente y comprensible
para todos.
Asegurar que el equipo de desarrollo entiende los elementos de la Lista del
Producto al nivel necesario.

El dueo del producto debe ser una nica persona, aunque podra representar los
intereses y deseos de un comit a la hora de cambiar la prioridad de los elementos de la
Lista del Producto, pero en ningn caso una persona distinta al dueo del producto podra
cambiar la lista.

Para que la aplicacin de Scrum sea correcta y eficiente toda la organizacin debe
respetar las decisiones del dueo de producto. Adems, no est permitido que nadie pida
al equipo de desarrollo que trabaje en base de un conjunto distinto de requisitos, y el
equipo de desarrollo no deber actuar en base a las opiniones o indicaciones de cualquier
otra persona distinta al dueo de producto.

B.2.2 Equipo de desarrollo


Formado por los profesionales que desempean el trabajo de entregar un
incremento de producto que potencialmente se pueda poner en produccin al final de
cada Sprint. nicamente los miembros del equipo de desarrollo participan en la creacin
del incremento.

El equipo tendr la potestad de organizarse y gestionar su propio trabajo con el fin


de optimizar la eficiencia, efectividad y compenetracin de todo el equipo.

66
Un equipo de desarrollo Scrum tiene las siguientes caractersticas:

Es auto-organizado. Nadie puede indicar al equipo como convertir los


elementos de la Lista del Producto en incrementos funcionales
potencialmente desplegables.
Es multifuncional. Deben contar con todas las habilidades necesarias para
crear un incremento del producto.
No se reconocen ttulos para los miembros del equipo, todos son
desarrolladores, independientemente del trabajo que realice cada persona.
No se admiten excepciones a esta regla.
No podrn existir sub-equipos dentro de un equipo de desarrollo.
Los miembros del equipo de desarrollo pueden tener diferentes
habilidades y estar especializados en distintas reas, pero la
responsabilidad recae en el equipo de desarrollo como un todo.

El tamao de un equipo de desarrollo debe ser lo suficientemente grande como


para completar una cantidad de trabajo significativa, y lo suficientemente pequeo como
para permanecer gil. Por regla general, tener menos de tres miembros reduce la
interaccin interna y la productividad, y tener ms de nueve miembros podra requerir
demasiada coordinacin como para ser auto-organizados, por lo que el tamao de un
equipo de desarrollo ptimo estara entre estos lmites.

B.2.3 Scrum Master


Es el responsable de asegurar que Scrum sea entendido y aplicado. Para ello debe
asegurarse de que el equipo Scrum al completo trabaja ajustndose a la teora, prcticas y
reglas de Scrum.

El Scrum Master es un lder que est al servicio del equipo Scrum, as, entre los
servicios que ofrecer al dueo de producto podemos destacar:

Encontrar tcnicas para gestionar la Lista de Producto de manera eficiente.


Ayudar a entender la necesidad de que los elementos de la Lista de
Producto sean claros y concisos.
Asegurar que el dueo de produzco sepa como ordenar la Lista de Producto
para maximizar su valor.

Los principales servicios que el Scrum Master proporcionar al equipo de


desarrollo son:

Ayudar al equipo de desarrollo a ser auto-organizado y multifuncional.


Guiar al equipo de desarrollo hacia la creacin de productos de alto valor.
Eliminar los impedimentos que puedan surgir para el progreso del
desarrollo.

Finalmente, las principales aportaciones del Scrum Master a la organizacin sern:

Liderar y guiar a la organizacin en la adopcin de Scrum.


Planificar la implementacin de Scrum en la organizacin.
Ayudar a los empleados a entender y llevar a cabo Scrum.

67
Motivar cambios que incrementen la productividad.

Adems, el Scrum Master deber facilitar los eventos de Scrum (explicados en el


apartado 3 de este anexo) segn se requiera o necesite, y guiar a los empleados cuando
Scrum no haya sido adoptado y entendido por completo.

B.3 Eventos de Scrum

Con el fin de crear regularidad y minimizar la necesidad de reuniones no definidas,


Scrum define una serie de eventos con una duracin mxima predefinida. El nico evento
de Scrum con una duracin mxima y mnima fija es el Sprint, el resto de eventos pueden
terminar siempre que se haya alcanzado el objetivo del evento, asegurando as que se
emplee una cantidad adecuada de tiempo sin permitir desperdicio en el proceso.

Adems de tener un tiempo fijo establecido, el Sprint es contenedor del resto de


eventos.

Como se mencion en el apartado 1 del anexo, cada uno de los eventos de Scrum
constituye una oportunidad formal para la inspeccin y adaptacin de los aspectos del
proceso. Estos eventos estn diseados especficamente para facilitar la transparencia y la
inspeccin, por lo que la falta de alguno de estos eventos da como resultado una
considerable reduccin de transparencia, lo que puede ocasionar un deterioro en la
inspeccin y por tanto en la capacidad de adaptacin.

B.3.1 Sprint
Constituye el ncleo de Scrum. Se trata de un bloque de tiempo, preferiblemente de
un mes como mximo, durante el cual se crea un incremento del producto, que sea
funcional y potencialmente desplegable.

Es recomendable que la duracin de los Sprints sea consistente a lo largo de todo


el proceso de desarrollo.

Durante el Sprint:

No se podrn realizar cambios que afecten al objetivo del Sprint.


Los objetivos de calidad nunca podrn disminuir.
El alcance puede ser clarificado y renegociado entre el dueo del producto
y el equipo de desarrollo.

Los Sprints no deben abarcar ms de un mes para evitar que la complejidad, y por
tanto el riesgo, aumente. De esta manera se puede aumentar la predictibilidad al asegurar
la inspeccin y adaptacin del progreso al menos una vez al mes.

Un Sprint puede ser cancelado antes de que el bloque de tiempo llegue a su fin.
nicamente el dueo de producto puede cancelar un Sprint, y por regla general no se debe
cancelar un Sprint a menos que los objetivos de la organizacin cambien y no tenga ningn
sentido proseguir con el Sprint, por lo que son muy poco comunes.

68
Cada nuevo Sprint comienza inmediatamente despus dela finalizacin del Sprint
anterior.

B.3.2 Reunin de planificacin del Sprint


En la reunin de planificacin de Sprint se determina el trabajo a realizar durante
el Sprint, y en ella participan todos los miembros del equipo Scrum.

La reunin de planificacin del Sprint tiene una duracin mxima de ocho horas
para Sprints de un mes, y para Sprints ms cortos el evento se podra definir de menor
duracin.

Durante la reunin se deben concretar las respuestas a las dos siguientes


preguntas:

Qu puede entregarse en el incremento resultante de Sprint?


Cmo se conseguir hacer el trabajo necesario para entregar el
incremento?

Para la primera cuestin, el dueo del producto presentar el objetivo que se


debera alcanzar en el Sprint y los elementos de la Lista de Producto que deben
completarse para alcanzar el objetivo del Sprint. El equipo de Scrum al completo colabora
para llegar a un acuerdo entre los requerimientos del dueo de producto y el trabajo que
el equipo de desarrollo cree que puede ser realizado en el Sprint. Para ello se tendr en
cuenta la Lista de Producto, el ltimo incremento obtenido, la capacidad proyectada del
equipo de desarrollo y el rendimiento de Sprints anteriores.

Una vez que se ha establecido el objetivo del Sprint y se han seleccionado los
elementos de la Lista de Producto que se llevarn a cabo en el Sprint, el equipo de
desarrollo discute y decide cmo se construirn los elementos seleccionados para obtener
un incremento de producto entregable.

Para ello se define la Lista del Sprint (tambin denominada Sprint Backlog por su
trmino en ingls, y explicada en ms detalle en el apartado 4 de este anexo) a partir de los
elementos seleccionados de la Lista de Producto para el Sprint y el plan para terminarlos.

El trabajo planificado por el equipo de desarrollo es descompuesto en unidades lo


ms pequeas posibles, recomendablemente de un da o menos, y el equipo de desarrollo
se auto-organiza para asumir el trabajo de la Lista del Sprint, si bien no para todo el Sprint,
al menos para los primeros das del mismo.

Al final de la reunin de planificacin del Sprint, el equipo de desarrollo debera


ser capaz de explicar tanto al dueo de producto como al Scrum Master como pretende
trabajar como un equipo auto-organizado para lograr el objetivo establecido y por tanto
crear el incremento esperado.

B.3.3 Scrum diario


Tambin denominado Daily Scrum, es una reunin diaria con un bloque de tiempo
de quince minutos para que el equipo de desarrollo sincronice sus actividades y cree un
plan para la siguiente jornada de trabajo.

69
El Scrum diario debe realizarse cada da en el mismo lugar y a la misma hora para
evitar aumentar la complejidad, y en l cada miembro del equipo de trabajo deber
explicar:

Qu hizo el da anterior para ayudar al equipo de desarrollo a alcanzar el


objetivo del Sprint.
Qu har hoy para ayudar al equipo de desarrollo a alcanzar el objetivo del
Sprint.
Que impedimentos prev que pueden aparecer que impidan al equipo de
desarrollo lograr el objetivo del Sprint.

El Scrum diario proporciona al equipo de desarrollo la oportunidad de evaluar el


progreso hacia la finalizacin del trabajo contenido en la Lista del Sprint, y la tendencia del
dicho progreso, de manera que optimiza las posibilidades de que el equipo de desarrollo
cumpla el objetivo establecido.

Esta reunin ayuda a los miembros del equipo a entender cmo trabaja el resto de
compaeros y aumenta la interaccin, lo que facilita el trabajo en equipo y la
compenetracin. El Scrum diario constituye por tanto una reunin clave para la inspeccin
y la adaptacin.

El Scrum Master debe asegurarse de que se realice la reunin, que sta tenga una
duracin mxima de quince minutos y de que se cumpla la regla de que nicamente
participen los miembros del equipo de desarrollo.

C.3.4 Revisin del Sprint


Se lleva a cabo al final de cada Sprint con el fin de inspeccionar el incremento y
adaptar la Lista de Producto si fuese necesario. Durante la revisin se presenta el trabajo
realizado en el Sprint y basndose en el esto y en cualquier cambio de la Lista de Producto,
los asistentes colaboran para determinar las siguientes tareas que podran llevarse a cabo
para optimizar el valor.

Se trata de una reunin informal, no una reunin de seguimiento, y tiene como


objetivo facilitar la retroalimentacin de informacin y fomentar la colaboracin.

El bloque de tiempo asignado para la revisin del Sprint tiene un tiempo mximo
de cuatro horas para Sprints de un mes, siendo algo ms corta en Sprints de menos
duracin.

En la reunin se realizarn al menos las siguientes tareas:

El dueo de producto explicar qu elementos de la Lista de Producto se


han terminado y cules no.
El equipo de desarrollo presenta los problemas que hayan surgido durante
el Sprint y cmo fueron resueltos.
El equipo de desarrollo presenta el trabajo realizado y responde a las
preguntas que se realicen sobe el incremento.

70
El dueo de producto valora el estado actual de la Lista de Producto y
proyecta estimaciones sobre la fecha de finalizacin basndose en el
progreso obtenido hasta la fecha.
El equipo al completo debate sobre el trabajo a realizar a continuacin, de
modo que la revisin del Sprint proporcione informacin valiosa de
entrada para reuniones de planificacin de Sprints posteriores.
Revisin de cmo los cambios en el mercado o en el uso potencial del
producto podra haber cambiado el valor de los elementos de la Lista de
Producto.

Como resultado de la revisin del Sprint se obtiene una Lista de Producto revisada,
que define los posibles elementos de la lista de Producto para el siguiente Sprint. Adems
podra suceder que la Lista de Producto sea ajustada para enfocarse en nuevas
oportunidades.

C.3.5 Retrospectiva del Sprint


La retrospectiva del Sprint ofrece al equipo Scrum la oportunidad de
inspeccionarse a s mismo y crear un plan de mejoras a abordar durante el siguiente
Sprint. Tiene lugar despus de la revisin del Sprint y tiene una duracin mxima de tres
horas para Sprints de un mes.

Los propsitos de la retrospectiva son:

Inspeccionar cmo fue el ltimo Sprint en todos sus aspectos: personas,


relaciones, procesos y herramientas.
Identificar y ordenar los elementos ms importantes que tuvieron xito y
las posibles mejoras.
Crear un plan para implementar dichas mejoras.

B.4 Artefactos de Scrum

Los artefactos de Scrum representan valor al proceso en la forma en que son tiles
para proporcionar transparencia y oportunidad para la inspeccin y adaptacin. Estn
diseados precisamente para maximizar la transparencia de la informacin clave
necesaria para que todos los interesados tengan el mismo entendimiento del artefacto en
s y del estado del proyecto.

B.4.1 Lista de Producto


La Lista de Producto es una lista ordenada de todo lo que podra ser necesario en
el producto final, y es la nica fuente de requisitos para cualquier cambio a realizarse en el
producto. El responsable de la lista es el dueo de producto, incluyendo su contenido,
disponibilidad y ordenacin.

Una Lista de Producto no se puede considerar nunca que est completa, sino que
en cada momento refleja los requisitos conocidos hasta el momento. As, la Lista de
Producto inicialmente es una lista de los requisitos detectados y mejor entendidos al
iniciar el proyecto, y segn avance el proyecto la lista cambiar cada vez que se detecte

71
una necesidad del producto. Al ser dinmica facilita que el producto final sea adecuado,
competitivo y til.

La Lista de Producto enumera todas las caractersticas, funcionalidades, requisitos,


mejoras y correcciones que constituyen cambios a ser hechos sobre el producto para
futuras entregas. Cada uno de estos elementos tienen como atributos la descripcin,
ordenacin estimacin y valor para el producto.

B.4.2 Lista del Sprint


La Lista del Sprint es el conjunto de elementos de la Lista de Producto
seleccionados para ser implementados en el Sprint actual ms un plan para entregar el
incremento y por tanto conseguir alcanzar el objetivo del Sprint. Es por tanto una
prediccin hecha por el equipo de desarrollo acerca de las funcionalidades que formarn
parte del prximo incremento y del trabajo necesario para entregar dicha funcionalidad en
un incremento terminado.

La Lista del Sprint hace visible todo el trabajo que el equipo de desarrollo identifica
como necesario para alcanzar el objetivo del Sprint. Debe tener el nivel de detalle
suficiente como para que los cambios en el progreso se puedan entender en el Scrum
diario, de forma que el equipo de desarrollo se encarga de modificar la Lista de Sprint
segn se van implementando cada uno de los detalles que incluye, o se aaden nuevos
elementos a la lista cuando se detecte que se requiere ms trabajo. De esta manera, la Lista
del Sprint resulta una imagen visible en tiempo real del trabajo que el equipo de desarrollo
ya ha llevado a cabo y del que planea realizar dentro del Sprint.

Es responsabilidad del equipo de desarrollo, y nicamente el equipo de desarrollo


puede cambiar la Lista de Sprint durante un Sprint.

B.4.3 Diagrama de quemado


Aunque el diagrama de quemado, denominado ms comnmente por el trmino en
ingls Burn down chart, no se encuentra definido en La gua de Scrum [11] como un
artefacto ms de Scrum, resulta una herramienta visual de gran utilidad para conocer de
un vistazo el progreso del Sprint actual y de todo el proyecto en conjunto.

Consiste en un grfico en el que se representan en el eje de ordenadas el nmero


total de requisitos o tareas pendientes y en el eje de abscisas el tiempo, generalmente en
das, de forma que permite mostrar una serie de datos con la planificacin realizada y otra
serie con el progreso del proyecto, resultando sencillo evaluar el estado actual del
proyecto y el cumplimiento de las estimaciones realizadas.

Por lo general ambas series de datos consistirn en una lnea ms o menos recta,
con pendiente descendente, tornndose sta en una pendiente ascendente cuando se
aadan nuevos requisitos a la Lista de Producto.

B.5 Otras metodologas complementarias aplicadas

A continuacin se explican otras metodologas que se han utilizado para


complementar Scrum.

72
B.5.1 Mtodo MoSCoW
Es una tcnica que permite asignar valor o importancia a cada uno de un conjunto
de requisitos. Tambin se conoce como priorizacin MoSCoW o anlisis MoSCoW [13].

Consiste en catalogar cada uno de los requisitos dentro de una de las siguientes
categoras:

M (Must), define que un requisito debe ser implementado en el producto


final para que ste sea considerado un xito.
S (Should), determina que un requisito es de alta prioridad y que debe ser
implementado siempre que sea posible.
C (Could), describe un requisito que sera deseable cumplir pero que no
resulta necesario.
W (Would), representa aquellos requisitos que se sabe que no van a ser
implementados pero que se desea que vuelvan a ser considerados en el
futuro.

Al aplicar este mtodo conjuntamente con Scrum, las categoras asignadas a cada
requisito son reevaluadas, y actualizadas si fuera necesario, en la reunin de revisin de
cada Sprint.

73
Anexo C
Diagramas de apoyo al diseo

C.1 Diagrama Entidad-Relacin de la base de datos servidor

Figura 43 - Diagrama Entidad-Relacin de la base de datos servidor

75
C.2 Diagrama Entidad-Relacin de la base de datos cliente

Figura 44 - Diagrama Entidad-Relacin de la base de datos cliente

76
C.3 Diagramas de clases para el modelo de datos

Figura 45 - Diagrama de clases del modelo de datos de la aplicacin

77
CategoriaPlato

-idCategoriaPlato : int
-nombre : String
+static retrieveCategoriaPlato (int) : CategoriaPlato
#static retrieveCategoriaPlato (Cursor) : CategoriaPlato
Figura 46 - Especificacin de la clase CategoriaPlato del modelo de datos

TipoPlato

-idTipoPlato : int
-nombre : String
+static retrieveTipoPlato (int) : TipoPlato
#static retrieveTipoPlato (Cursor) : TipoPlato

Figura 47 - Especificacin de la clase TipoPlato del modelo de datos

GrupoNutricional

-idGrupoNutricional : int
-nombre : String
-detalle : String
-porcentajeRecomendado : Double
+static retrieveGrupoNutricional (int) : GrupoNutricional
#static retrieveGrupoNutricional (Cursor) : GrupoNutricional

Figura 48 - Especificacin de la clase GrupoNutricional del modelo de datos

TipoProducto

-idTipoProducto : int
-nombre : String
+static retrieveTipoProducto (int) : TipoProducto
#static retrieveTipoProducto (Cursor) : TipoProducto

Figura 49 - Especificacin de la clase TipoProducto del modelo de datos

78
Receta

-idReceta : int
-nombre : String
-descripcon : String
-tiempoPreparacion : Integer
-servirCalient : Boolean
-puntuacionTotal : Double
-numeroVotos : int
-puntuacionUsuario : Double
-habitualUsuario : Boolean
-revisado : Boolean
-vegetariano : Boolean
-fechaAlta : Date
-sinGluten : Boolean
-cantidadesGruposNutricionales : Double[6]
-calculosRealizados : Boolean
-idUsuarioAutor : int
-necesarioRecalcularCantidades : boolean
-necesarioRecalcularSinGluten : boolean
-necesarioRecalcularVegetariano : boolean
+agregarPasoReceta (PasoReceta) : PasoReceta
+agregarPasosReceta (Collection<PasoReceta>) : void
+eliminarPasoReceta (Integer) : void
+eliminarPasosReceta () :void
+getPasosReceta () : Iterator<PasoReceta>
+agregarIngrediente (CantidadIngrediente) : boolean
+agregarIngredientes (Collection<CantidadIngrediente>) : boolean
+eliminarIngrediente (CantidadIngrediente) : boolean
+eliminarIngredientes () : void
+agregarAderezo (Receta) : boolean
+agregarAderezos (Collection<Receta>) : boolean
+eliminarAderezo (Receta) : boolean
+eliminarAderezos () : void
+calcularCantidadesGruposNutricionales () : Double[6]
+calcularRecetaAptaDietaVegetariana () : boolean
+calcularRecetaAptaDietaSinGluten () : boolean
+static retrieveReceta (int) : Receta
#static retrieveReceta (Cursor) : Receta
-static retrieveAderezos (Cursor) : ArrayList<Receta>
-static retrievePasosReceta (Cursor) : TreeMap<Integer, PasoReceta>
-static retrieveIngredientesReceta (Cursor) : ArrayList<CantidadIngrediente>
+procesarIngredientes () : void
-actualizarValoresGruposNutricionales (SQLiteDatabase) : void
-actualizarValoSinGluten (SQLiteDatabase) : void
-actualizarValorVegetariano (SQLiteDatabase) : void
-actualizarValorCalculosRealizados (SQLiteDatabase) : void

Figura 50 - Especificacin de la clase Receta del modelo de datos

79
Ingrediente

-idIngrediente : int
-nombre : String
-nombrePlural : String
-contieneGluten : Boolean
-vegetariano : Boolean
-revisado : Boolean
-fechaAlta : Date
-idUsuarioAutor : int
+static retrieveIngrediente (int) : Ingrediente
#static retrieveIngrediente (Cursor) : Ingrediente

Figura 51 - Especificacin de la clase Ingrediente del modelo de datos

UnidadMedida

-idUnidadMedida : int
-nombre : String
-nombrePlural : String
-simbolo : String
-factorConversion : Double
+setUnidadReferencia (UnidadMedida, Double) : void
+static retrieveUnidadMedida (int) : UnidadMedida
#static retrieveUnidadMedida (Cursor) : UnidadMedida
-static retrieveUnidadMedidaReferencia (Cursor) : UnidadMedida

Figura 52 - Especificacin de la clase UnidadMedida del modelo de datos

UnidadTiempo

-idUnidadTiempo : int
-nombre : String
-nombrePlural : String
-simbolo : String
+static retrieveUnidadTiempo (int) : UnidadTiempo
#static retrieveUnidadTiempo (Cursor) : UnidadTiempo

Figura 53 - Especificacin de la clase UnidadTiempo del modelo de datos

80
PasoReceta

-idPasoReceta : int
-idReceta : int
-orden : int
-descripcon : String
-tiempo : Integer
+setTiempo (UnidadTiempo, Integer) : void
#static retrievePasoReceta (Cursor) : PasoReceta

Figura 54 - Especificacin de la clase PasoReceta del modelo de datos

CantidadIngrediente

-cantidadPersona : Double
+setCantidadPersona (UnidadMedida, Double) : void
#static retrieveCantidadIngrediente (Cursor) : CantidadIngrediente
+static calcularCantidadesGruposNutricionales (Collection<CantidadIngrediente>) : Double [6]
+static sonAptosDietaVegetariana (Collection<CantidadIngrediente> : boolean
+static sonAptosDietaSinGluten (Collection<CantidadIngrediente> : boolean

Figura 55 - Especificacin de la clase CantidadIngrediente del modelo de datos

81
Anexo D
Listas de Sprint
Estimacin
Tiempo real
Requisito (en horas de
requerido
trabajo)
Base de datos
(1) Anlisis de los requisitos 2 2
(2) Diseo de la base de datos de la aplicacin 6 6
(3) Implementacin de la base de datos 8 7

(4) Diseo y codificacin de las consultas de recuperacin 8 10


de datos
(5) Pruebas 8 7

(6) Diseo del proceso de carga y actualizacin de datos en 2 2


la aplicacin
Carga y actualizacin de datos en la aplicacin
Implementacin del programa que genera el archivo de
(7) datos para la aplicacin desde la base de datos de 4 3
recetas
(8) Diagrama de clases para el modelo de datos de la 6 6
aplicacin
(9) Implementacin de las clases del modelo de datos 10 12
Interfaz de usuario
(10) Diseo del icono de la aplicacin 4 3
(11) Diseo de los colores y aspecto global de la aplicacin 2 2
Tabla 20 - Lista del Sprint 1 finalizado

Estimacin
Tiempo real
Requisito (en horas
requerido
de trabajo)
Carga y actualizacin de datos en la aplicacin
(12) Implementacin del manejador de la base de datos 8 10

(13) Implementacin de los mtodos de recuperacin de 8 10


informacin desde la base de datos
(14) Diseo de la interfaz de la vista de carga de datos 2 2

(15) Implementacin del funcionamiento de la vista de carga 6 7


de datos
Implementacin del proceso de carga y actualizacin de
(16) 8 9
datos
Implementacin del proceso de clculo de valores
(17) 8 6
precalculados
(18) Pruebas 8 10
(19) Revisin y correccin de errores 8 6
Tabla 21 - Lista del Sprint 2 finalizado

83
Estimacin
Tiempo real
Requisito (en horas de
requerido
trabajo)
Listado de recetas
(20) Diseo de la interfaz del listado de recetas 4 3

(21) Diseo de los iconos y elementos grficos necesarios 4 6


para el listado de recetas
(22) Implementacin de la interfaz de los elementos que 5 3
compondrn la lista
(23) Implementacin de la interfaz listado de recetas 5 4

(24) Implementacin del mtodo de recuperacin de recetas 6 6


desde la base de datos e insercin en el listado
Ficha de receta
(25) Diseo de la interfaz de la ficha de receta 3 3

(26) Diseo de los iconos y elementos grficos necesarios 3 4


para la ficha de receta
(27) Implementacin de la interfaz de la ficha de receta 6 7

(28) Implementacin del funcionamiento de recuperacin de 2 2


la informacin de una receta y mostrado en la ficha
(29) Revisin y correccin de errores 2 1
Explorador de recetas
(30) Diseo de la interfaz del explorador de recetas 2 3

(31) Modificacin del listado de recetas para permitir 4 3


ordenar las recetas por categora de plato
(32) Implementacin de la interfaz del explorador de recetas 4 4

(33) Integracin del listado y ficha de recetas en el 8 7


explorador de recetas
(34) Revisin y correccin de errores 6 6
Tabla 22 - Lista del Sprint 3 finalizado

84
Estimacin
Tiempo real
Requisito (en horas de
requerido
trabajo)
Barra lateral de navegacin
(35) Diseo de la barra lateral de navegacin 2 2
(36) Implementacin de la barra lateral de navegacin 6 8
(37) Integracin de la barra lateral en la aplicacin 4 3
(38) Revisin y correccin de errores 4 2
Explorador de recetas
(38') Reimplementacin de la barra de pestaas para su 8 8
correcta integracin con la barra lateral de navegacin
Ajustes
(39) Definicin de los ajustes de la aplicacin 2 2

(40) Implementacin o adaptacin de los cuadros de dialogo 6 6


necesarios para los ajustes de la aplicacin
(41) Implementacin de la vista de ajustes y su 6 5
funcionamiento
Ficha de receta
Correccin del problema de la interfaz que hace que en
(42) algunos casos la lista de ingredientes y pasos de la 2 3
receta aparezca cortada
Implementacin de la funcin de guardado y
(43) 2 2
recuperacin de la puntuacin del usuario de las recetas

Modificacin del listado de ingredientes para que


(44) muestre las cantidades para el nmero de personas 2 2
establecido en los ajustes
Vista de men semanal
(45) Diseo de la interfaz de la vista de men semanal 4 4
(46) Diseo de los componentes de la interfaz 4 3

(47) Implementacin de los componentes del widget con los 6 8


das de la semana
(48) Implementacin del widget con los das de la semana 8 10
Tabla 23 - Lista del Sprint 4 finalizado

85
Estimacin
Tiempo real
Requisito (en horas de
requerido
trabajo)
Vista de men semanal
(49) Implementacin de la interfaz del men de un da 6 5

(50) Implementacin del widget que permite navegar entre 8 7


los mens diarios
(51) Integracin de los componentes de la interfaz 8 6

(52) Revisin y correccin de errores del funcionamiento de 8 4


la interfaz de men semanal
Confeccin de mens creados por el usuario
Diseo de las tablas y consultas de la base de datos
(53) necesarias para almacenar y recuperar los mens 4 4
diarios planificados
(54) Modificar la base de datos con el diseo realizado 4 3

Implementacin de los mtodos de recuperacin e


(55) insercin en el manejador de la base de datos para los 4 4
mens diarios
Listado de recetas
(56) Modificar el diseo de la interfaz del listado de recetas 2 2
para permitir agregar recetas a los mens
(57) Modificar la implementacin del listado de recetas para 6 8
que permita aadir recetas a los mens
Vista de men semanal
(58) Permitir agregar, cambiar y quitar las recetas a los 4 4
mens diarios
(59) Recuperar los platos asignados al men al cargarlo 4 5
desde la interfaz de usuario
Modificar las vistas que muestran los platos de men
(60) para que al hacer clic se abra la ficha de la receta 2 3
asignada al plato.
Confeccin de mens creados por el usuario
(61) Revisin y correccin de errores 8 6
Tabla 24 - Lista del Sprint 5 finalizado

86
Estimacin Tiempo
Requisito (en horas de real
trabajo) requerido
Generacin automtica de mens equilibrados
(62) Anlisis del problema y diseo del algoritmo de 8 8
generacin de mens equilibrados
(63) Implementacin del algoritmo de generacin de mens 12 11
equilibrados en la aplicacin
(64) Creacin de datos de prueba y verificacin del 6 8
funcionamiento del algoritmo
(65) Correccin de errores 8 4

(66) Diseo del icono de la opcin de generacin de mens 4 3


equilibrados
Diseo e implementacin de un cuadro de dialogo que
(67) permita seleccionar la semana para la que generar el 6 7
men semanal
Vista de men semanal
Integrar el icono de generacin automtica de mens en
(68) la vista de men semanal y mostrar el cuadro de dialogo 4 3
de seleccin de semana al hacer clic sobre el icono
(69) Aadir la generacin de mens semanales equilibrados 4 5
desde la vista de men semanal
Generacin automtica de mens equilibrados
(70) Revisin y pruebas 8 8
Tabla 25 - Lista del Sprint 6 finalizado

Estimacin Tiempo
Requisito (en horas de real
trabajo) requerido
Informacin nutricional del men semanal planificado
(71) Diseo de la vista de informacin nutricional y de sus 8 8
componentes
(72) Implementacin del grfico de informacin nutricional 14 16

(73) Carga y presentacin de los datos nutricionales de un 4 6


men semanal en el grfico
(74) Implementacin de la interfaz de informacin nutricional 6 5
Implementacin de la carga y presentacin de los datos
(75) nutricionales de un men semanal en la vista de 6 4
informacin nutricional
(76) Diseo del widget de resumen nutricional para la vista de 4 3
men semanal
(77) Implementacin del widget de resumen nutricional 6 6

(78) Integracin del widget de resumen nutricional en la vista 6 8


de men semanal
(79) Revisin y correccin de errores 8 6
Tabla 26 - Lista del Sprint 7 finalizado

87
Estimacin Tiempo
Requisito (en horas de real
trabajo) requerido
Correccin de errores antes de la puesta en produccin
(80) Revisin de todo el trabajo realizado y correccin de los 14 12
errores que se detecten
Mejoras antes de la puesta en produccin
Creacin de un tema visual para la aplicacin y modificacin
(81) de las interfaces de usuario para conseguir una mayor 8 8
integracin con los colores y aspecto visual de toda la
aplicacin

(82) Diseo e implementacin de una pantalla con la informacin 4 4


sobre la aplicacin y con los medios de contacto
Revisin del aspecto de las interfaces en pantallas de
(83) distintos tamaos y modificacin de las que sean necesarias 4 3
para una correcta visualizacin en cualquier tamao de
pantalla
Diseo de iconos para las opciones de la barra de
(84) 6 5
navegacin

Diseo e implementacin del proceso de actualizacin de


(85)
datos desde un repositorio remoto y modificacin del 12 14
proceso de carga y actualizacin de datos de la aplicacin
para implementar la actualizacin de datos remota

(86) Aadir los ajustes la opcin de usar siempre las recetas ya 1 1


seleccionadas en la generacin de mens equilibrados
Aadir a los ajustes la opcin de slo descargar
(87) actualizaciones de datos cuando el dispositivo est 1 1
conectado a una red WiFi
Datos de recetas reales
(88) Aadir informacin de recetas e ingredientes para disponer 16 16
de una base de datos inicial
Publicacin de la aplicacin en Play Store
(89) Generacin del instalable de la aplicacin y publicacin en la 2 2
tienda de aplicaciones de Google
Tabla 27 - Lista del Sprint 8 finalizado

88
Anexo E
Especificaciones del diseo de la vista de men semanal
En la parte superior de la interfaz de usuario encontramos un calendario que
cargar por defecto los siete das de la semana en curso. Para indicar qu da corresponde
con el men que se est mostrando, en este caso el lunes 13 de enero, la barra inferior se
muestra visiblemente ms gruesa que en el resto de das.

Debajo del calendario semanal se muestra el nombre del da de la semana


seleccionado, y debajo de ste el men para la comida y la cena de ese da.

Para los platos que tengan una receta asignada, en este caso los de la comida, se
mostrar el texto en color negro y el botn asociado tendr icono de Android para
representar mens contextuales, y los platos para los que no se haya seleccionado an una
receta mostrarn el nombre del plato en cursiva y en color de texto secundario. En este
caso botn del plato llevar el icono de Android para representar la accin de adicin y al
pulsar sobre l se permitir al usuario agregar una receta.

Cuando el usuario presione el botn de acciones para un plato con receta


seleccionada se le mostrar el siguiente men contextual que le permitir quitar la receta
seleccionada o cambiarla por otra receta.

Figura 56 - Men contextual para los platos con una receta seleccionada

89
Para cambiar de semana, el usuario tan solo deber tocar la barra del calendario, y
manteniendo presionado el calendario deslizarlo hacia la izquierda para navegar a la
semana siguiente, o hacia la derecha para cambiar a la semana anterior. En las figuras 57 y
58 se muestra este funcionamiento:

Figura 57 - Avanzar una semana en la vista del men semanal

Figura 58 - Retroceder una semana en la vista del men semanal

La imagen de la izquierda de ambas figuras representa el estado inicial de la vista


de men semanal. Al deslizar la barra del calendario semanal hacia la izquierda (figura
57.1) o hacia la derecha (figura 58.1) todo el calendario sigue el movimiento del dedo y se
desplaza hacia derecha o izquierda respectivamente. La imagen central de las dos figuras
muestra el estado intermedio en el que el calendario sigue el desplazamiento realizado por
el usuario. Finalmente, la imagen de la derecha representa el estado final de la vista de
men semanal tras haber avanzado o retrocedido una semana. Esta accin no cambia el
da seleccionado, y por tanto el men mostrado ser el mismo que hubiera previamente.

Una vez que el usuario haya cambiado de semana tan slo deber pulsar sobre el
da que desee para mostrar el men semanal de ese da. En la figura 59 se muestra la
situacin, en la que partiendo del estado inicial, seleccionado en da 13 de enero, se ha
cambiado a la semana siguiente y se ha pulsado sobre el da 24 de enero.

90
Figura 59 - Ejemplo de funcionamiento de la seleccin de un da de la semana en la vista de men semanal

Al seleccionar un da posterior al del men que se est mostrando se desplazar


automticamente el men hacia la izquierda para representar que se est cambiando al
men de alguno de los das siguientes. Si por el contrario se seleccionara un da anterior al
actual este desplazamiento automtico se producira hacia la derecha. La imagen central
de la figura 59 muestra este desplazamiento automtico.

Adems de poder cambiar de da desde la barra con el calendario semanal, el


usuario podr avanzar o retroceder da a da deslizando el contenido del men diario a
izquierda, para avanzar un da, o a derecha, para retroceder un da. El funcionamiento,
anlogo al del calendario semanal, se muestra en figuras 60 y 61:

Figura 60 - Avanzar un da en la vista de men semanal

91
Figura 61 - Retroceder un da en la vista de men semanal

Adems, cuando al avanzar o retroceder un da se cambie de semana, como en el


caso representado en la figura 61, el calendario semanal retroceder igualmente a la
semana anterior de forma automtica.

En la imagen derecha de la figura 61 se muestra el men semanal de un da


anterior al actual, como puede verse los botones de cada plato desaparecen, por lo que no
se podr cambiar el men de das que ya han pasado pero s se podr consultarlos.

Se podr avanzar y retroceder tantos das y semanas cmo se deseen siguiendo el


funcionamiento explicado.

En muchas de las imgenes de las figuras anteriores se puede ver que el botn
Atrs de la barra inferior del sistema est marcado con un crculo azul como el que se
muestra en la figura 62:

Figura 62 - Casos de funcionamiento especial del botn "Atrs"

En todas las situaciones en las que la vista de men semanal no est mostrando el
da o la semana actual el botn Atrs tendr un funcionamiento especial, en lugar de
volver a la pantalla anterior o salir de la aplicacin se seleccionar el da actual, de forma
que resulte sencillo al usuario volver al da y semana actual. Cuando se est mostrando el
da y la semana actual el botn Atrs seguir su comportamiento estndar.

92
Anexo F
Manual de usuario
A continuacin se detallar la gua de uso de las funcionalidades que ofrece la
aplicacin, se utilizar un lenguaje claro y sencillo de forma que cualquier persona pueda
entender este manual y utilizar todas las utilidades de la aplicacin.

F.1 Primera ejecucin

La primera vez que se entre en la aplicacin se prepararn los datos de recetas


para su uso. Este proceso podra llevar varios minutos dependiendo de las
especificaciones del dispositivo en el que se est ejecutando Cheftastic.

Durante el proceso de carga de datos se


mostrarn dos barras de progreso. Primero
una barra de color amarillo, que indicar que
se estn leyendo los datos de recetas y
guardando debidamente para su uso. Y a
continuacin una barra verde, que indicar que
se estn optimizando los datos para que la
aplicacin funcione ms rpido.

Este proceso slo debera demorarse


durante la primera ejecucin. En el uso
habitual de la aplicacin, cada vez que se
acceda se comprobar si hay nuevos datos
disponibles. Cuando haya actualizaciones de
datos se repetir el proceso de carga, pero ste
debera durar slo unos segundos, pues se
estarn actualizando unos pocos datos, en
lugar de la informacin de todas las recetas de
la aplicacin.
Figura 63 - Pantalla de carga

Para evitar el consumo de datos de la tarifa del mvil, se puede seleccionar usar
nicamente redes WiFi para la descarga de actualizaciones de recetas.

F.2 Men semanal

Una vez completado el proceso de carga se abrir la pantalla con la informacin del
men semanal. Desde aqu se puede planificar el men seleccionando manualmente las
recetas, o podremos dejar que la aplicacin nos genere un men sano y equilibrado
automticamente.

93
Para aadir una receta al men tan
solo hay que hacer pulsar sobre el botn
representado por el signo +, y seleccionar la
receta que se quiera aadir.

En la parte inferior de la pantalla se


muestra un resumen con el valor nutricional
de la semana en curso. Al aadir recetas al
men este valor se actualizar
automticamente. Si se est usando Cheftastic
en una tablet en posicin horizontal, el
resumen nutricional de men semanal se
mostrar en una barra a la derecha de la
pantalla.

Las recetas seleccionadas se pueden


quitar del men o cambiar por otras recetas
pulsando sobre el botn de la receta en
cuestin y seleccionando la opcin que se
desee efectuar.
Figura 64 - Men semanal

Figura 65 - Men de opciones

Se puede avanzar o retroceder el calendario de semanas deslizando a izquierda o


derecha respectivamente el calendario semanal. Anlogamente se podr cambiar el men
mostrado al de das posteriores o anteriores.

Si se quiere mostrar el men de un da en concreto bastar con pulsar sobre el da


deseado en el calendario semanal de la parte superior de la pantalla.

Para volver al men de hoy desde el men de cualquier otro da tan solo habr que
pulsar sobre el botn Atrs de la barra de Android.

Finalmente, la varita mgica de la barra de acciones de la


aplicacin har que Cheftastic genere un men equilibrado
automticamente.

Figura 66

Los mens generados por la aplicacin tendrn en cuenta las puntuaciones


otorgadas a las recetas, de forma que se seleccionarn ms frecuentemente las
recetas mejor valoradas.

94
Al pulsar sobre alguna de las recetas asignadas al men se abrir una pantalla con
toda la informacin de la receta.

F.3 Informacin nutricional

Se puede acceder a la pantalla de


informacin nutricional pulsando sobre el resumen
nutricional de la vista del men semanal.

En esta pantalla se detallar la informacin


para cada grupo nutricional del men semanal
planificado, y se podr visualizar si se deberan
consumir ms o menos ingredientes de alguno de
los grupos.

Esta informacin se mostrar tanto


grficamente como en una tabla con los valores
obtenidos.

El grfico de informacin nutricional est


compuesto por seis porciones de un tamao fijo. El
tamao de cada porcin se corresponde con el
porcentaje ideal de productos de cada grupo
nutricional que deben ingerirse a lo largo de una
semana. El porcentaje obtenido en el men
semanal se mostrar sobre cada una de estas
porciones, de manera qu: Figura 67 - Informacin nutricional

Si para un grupo nutricional se ha obtenido el porcentaje ideal exacto, la


porcin de este grupo aparecer completamente rellena. Este es el caso de las
porciones verde oscuro y azul de la figura.

Cuando el porcentaje obtenido es inferior al recomendado para el grupo no se


rellenar todo el espacio reservado, quedando el porcentaje restante en un
color mucho ms claro. Los grupos que se corresponden con los segmentos
rojo y morado de la figura han obtenido un porcentaje inferior al recomendado.

Por ltimo, los grupos que obtengan un valor superior al recomendado


mostrarn el porcentaje excedente con un color ms oscuro, como sucede con
los grupos correspondientes a las porciones verde claro y naranja del ejemplo
de la figura.

95
F.4 Navegando entre las pantallas de la aplicacin

La barra de navegacin permite acceder a las distintas secciones de la aplicacin, y


ser accesible desde las pantallas que muestren el siguiente icono en la barra de acciones:

Figura 68 - Icono de la barra de navegacin

Para mostrar la barra de navegacin bastar con pulsar sobre el icono anterior o
deslizar el dedo desde el borde izquierdo de la pantalla hacia el centro.

F.5 Explorador de recetas

El explorador de recetas permite obtener un listado de las recetas de la aplicacin


ordenadas por categoras de plato, pudiendo adems obtener una ficha con toda la
informacin sobre cada una de las recetas.

Desde la ficha con la informacin de la receta se puede establecer la puntuacin


personal de la misma seleccionando el nmero de estrellas que se deseen.

F.6 Ajustes

Desde la pantalla de ajustes de la aplicacin se pueden establecer las siguientes


preferencias de usuario:

Nmero de personas para las que cocinar. Se mostraran las cantidades de


ingredientes de cada receta para el nmero de personas establecido.

Usar siempre recetas ya seleccionadas. Para generar los mens automticos en


base a las recetas ya seleccionadas en el men semanal.

Actualizar datos slo por WiFi. Para evitar consumo de la tarifa de datos al
descargar actualizaciones de recetas.

F.7 Informacin sobre la aplicacin

En la pantalla de informacin de la aplicacin se muestra el nmero de versin y la


informacin de contacto.

Al pulsar sobre la informacin de contacto se crear un nuevo correo electrnico


listo para redactar y enviar.

96

También podría gustarte