Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
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.
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
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
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
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.
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.
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.
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.
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.
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
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
Por estas razones se elige Android como el sistema operativo para el que se
desarrollar la aplicacin.
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.
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.
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.
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:
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
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
V.1.2 Desarrollo
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.
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.
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.
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.
15
En el anexo C se puede consultar la especificacin detallada de cada una de las
clases del modelo de datos.
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.
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
17
V.2 Sprint 2
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
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.
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.
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
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
V.3.2 Desarrollo
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:
Adems de los recursos grficos del aparatado anterior, se usarn los siguientes
iconos en la ficha de receta:
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.
23
Figura 11 - Pulsacin mantenida sobre la barra de puntuacin
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.
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.
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.
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
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
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
28
V.4.2 Desarrollo
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.
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.
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
30
V.4.2.2 Ajustes
Figura 19 - Rediseo del apartado 'Ingredientes' de la ficha de receta para incluir la cantidad de ingredientes
para el nmero de personas establecido
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.
31
Figura 20 - Diseo de la interfaz de usuario de la vista de men semanal
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.
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
33
V.5 Sprint 5
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
34
V.5.2 Desarrollo
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.
35
Para los saltos a das o semanas concretas se implementar el algoritmo indicado
en las siguientes figuras:
36
V.5.2.2 Confeccin de mens creados por el usuario
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.
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
38
V.6 Sprint 6
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
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:
() ()
( )
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.
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.
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.
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.
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.
43
V.7 Sprint 7
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
V.7.2 Desarrollo
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:
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
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.
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.
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.
10
7
Tareas pendientes
0
0 1 2 3 4 5 6 7 8
Planificacin Ejecucin
Figura 37 - Burn down chart del 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
50
V.8.2 Desarrollo
V.8.2.2 Mejoras
51
Figura 39 - Pantalla de informacin de la aplicacin
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.
- 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
53
V.8.2.3 Publicacin 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.
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
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.
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.
Con todo ello, considero que he desempeado un trabajo similar al que deber
ejercer en mi vida laboral como graduado en ingeniera informtica.
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.
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
58
Bibliografa
[1] Aplicacin Caloras [acceso 11 de mayo de 2013]. Disponible en:
https://play.google.com/store/apps/details?id=com.cafetaso.foodinfo
[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/
[7] Windows Phone Dev Center [web]. Microsoft [acceso 12 de mayo de 2014]. Disponible
en: https://dev.windowsphone.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
[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
[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.
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].
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].
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.
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.
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.
66
Un equipo de desarrollo Scrum tiene las siguientes caractersticas:
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:
67
Motivar cambios que incrementen la productividad.
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.
Durante el Sprint:
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.
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.
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.
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:
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.
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.
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.
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.
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 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.
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.
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:
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
75
C.2 Diagrama Entidad-Relacin de la base de datos cliente
76
C.3 Diagramas de clases para el modelo de datos
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
GrupoNutricional
-idGrupoNutricional : int
-nombre : String
-detalle : String
-porcentajeRecomendado : Double
+static retrieveGrupoNutricional (int) : GrupoNutricional
#static retrieveGrupoNutricional (Cursor) : GrupoNutricional
TipoProducto
-idTipoProducto : int
-nombre : String
+static retrieveTipoProducto (int) : TipoProducto
#static retrieveTipoProducto (Cursor) : TipoProducto
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
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
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
UnidadTiempo
-idUnidadTiempo : int
-nombre : String
-nombrePlural : String
-simbolo : String
+static retrieveUnidadTiempo (int) : UnidadTiempo
#static retrieveUnidadTiempo (Cursor) : UnidadTiempo
80
PasoReceta
-idPasoReceta : int
-idReceta : int
-orden : int
-descripcon : String
-tiempo : Integer
+setTiempo (UnidadTiempo, Integer) : void
#static retrievePasoReceta (Cursor) : PasoReceta
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
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
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
83
Estimacin
Tiempo real
Requisito (en horas de
requerido
trabajo)
Listado de recetas
(20) Diseo de la interfaz del listado de recetas 4 3
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
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
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
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
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
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.
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.
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:
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
91
Figura 61 - Retroceder un da en la vista de men semanal
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:
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.
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.
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.
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.
Figura 66
94
Al pulsar sobre alguna de las recetas asignadas al men se abrir una pantalla con
toda la informacin de la receta.
95
F.4 Navegando entre las pantallas de la aplicacin
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.6 Ajustes
Actualizar datos slo por WiFi. Para evitar consumo de la tarifa de datos al
descargar actualizaciones de recetas.
96