REPUBLICA BOLIVARIANA DE VENEZUELA UNIVERSIDAD NUEVA ESPARTA FACULTAD DE CIENCIAS DE LA INFORMÁTICA ESCUELA DE COMPUTACIÓN TRABAJO DE GRADO SISTEMA AUTOMATIZADO BASADO EN TÉCNICAS DE GAMIFICACIÓN PARA EL REGISTRO DE DATOS DE USUARIOS CON FINES PREDICTIVOS. CASO: PREDICTVIA Tutor: Jorge A. Padua Trabajo de Grado presentado por: Br. Serrada, Ismael C.I 18.830.513 Para optar por el título de: Licenciado en Computación Mayo, 2015 Caracas – Venezuela SISTEMA AUTOMATIZADO BASADO EN TÉCNICAS DE GAMIFICACIÓN PARA EL REGISTRO DE DATOS DE USUARIOS CON FINES PREDICTIVOS. CASO: PREDICTVIA by Ismael Serrada is licensed under a Creative Commons Attribution 4.0 International License. APROBACIÓN DEL TUTOR En mi carácter de Tutor del Trabajo de Grado presentado por el ciudadano ISMAEL SERRADA para optar al grado de Licenciado en Computación, considero dicho Trabajo de Grado reúne los requisitos y méritos suficientes para ser sometido a la presentación pública y evaluación por parte del jurado examinador que se designe. En la Ciudad de Caracas, a los 27 del mes de Julio de 2015. __________________ Lic. Jorge A. Padua C.I:14.889.520 ii Universidad Nueva Esparta Facultad de Ciencias de la Informática Escuela de Computación Trabajo de Grado SISTEMA AUTOMATIZADO BASADO EN TÉCNICAS DE GAMIFICACIÓN PARA EL REGISTRO DE DATOS DE USUARIOS CON FINES PREDICTIVOS. CASO: PREDICTVIA HOJA DE JURADOSdo JURADO I JURADO II Nelly Meléndez Martha E. Gómez C.I:7.835.301 C.I: 11.819.722 Firma Firma Tutor Jorge A. Padua C.I: 14.889.520 Firma Julio, 2015 Caracas, Venezuela 3 DEDICATORIA A mis padres Jaime Serrada y Luz Serrada por ser siempre guía en mi vida, y la inspiración necesaria para llevar a cabo mi carrera profesional con esmero y esfuerzo. A todas las personas cuya pasión por el tema de aplicaciones de entretenimiento digital han marcado pauta y momentos vitales en sus vidas. La perseverancia siempre nos hará alcanzar grandes metas. Ismael Serrada. 4 AGRADECIMIENTOS. Primeramente a Dios, por siempre estar presente en mi vida, por darme la sabiduría y las fuerzas para crear y desarrollar este trabajo de grado, y a su vez permitir que pudiera desarrollarme en una trayectoria profesional. A mis padres Jaime y Luz Serrada, y mi Hermano Samuel Serrada por siempre darme su apoyo incondicional en todos los momentos de este trabajo, por su ejemplo vital en mi vida. A PREDICTVIA C.A, por darme la oportunidad de formar parte de su equipo de desarrollo. Por todas las enseñanzas y conocimientos que pude conservar en el desarrollo de todo el proyecto. A la Profesora Nelly Meléndez, por su apoyo incondicional y consejos motivadores que fueron de gran ayuda en momentos difíciles del trayecto de trabajo de grado. A mi tutor José A. Padua, por ser un tutor excepcional, un gran compañero de trabajo, y un vital amigo. Su apoyo, su ayuda, y su guía fueron invaluables para el desarrollo de este trabajo de grado, y por siempre ser un modelo ejemplar como profesional. A Rosamar Osorio, por ser mi soporte en momentos difíciles y siempre impulsarme a mejorar mi desarrollo tanto en la elaboración de este proyecto, como en mis estudios universitarios. A Pablo Temoche, Arnaldo Añez y Daniel Garrido. Por su aporte incondicional como compañeros de trabajo y como amigos. Por el aporte fundamental de sus talentos profesionales a lo largo de todo el proyecto dentro de la empresa. 5 INDICE GENERAL APROBACION DEL TUTOR ii HOJA DE JURADOS iii DEDICATORIA iv AGRADECIMIENTOS v INDICE GENERAL vi LISTA DE CUADROS x LISTA DE GRAFICOS xii RESUMEN xiii INTRODUCCION 1 CAPITULOS I II MARCO PROBLEMATICO 3 1.1 Planteamiento del problema 3 1.2 Objetivo General 6 1.3 Objetivos Específicos 6 1.4 Justificación 6 1.5 Delimitación 7 1.5.1 Temática 7 1.5.2 Geográfica 7 1.5.3 Temporal 7 MARCO REFERENCIAL 8 2.1 Antecedentes de la Investigación 8 2.2 Bases teóricas y conceptuales 9 2.2.1 Ludificación o Gamification 9 2.2.2 Video Juegos o Juegos de Video 10 2.2.3 Creación de Juegos 11 2.2.4 Géneros de Aplicaciones de entretenimiento digital 6 Interactivo 12 2.2.5 Física para videojuegos 17 2.2.6 Base de Datos para videojuegos 17 2.2.7 Programación Grafica 18 2.2.8 Técnicas de Programación para tecnologías especificas 18 2.2.9 Sistemas en Red 18 2.2.10 Actionscript 19 2.2.11 Starling 19 2.2.12 FlashDevelop 19 2.2.13 MySQL 20 2.2.14 TexturePacker 20 2.2.15 GitHub 20 III MARCO METODOLOGICO 21 3.1 Tipo de la Investigación 21 3.2 Diseño de Investigación 21 3.4 Población 22 3.5 Muestra 23 3.6 Técnicas e Instrumentos de Recolección de Información 24 3.7 Metodología de Desarrollo de Sistema 25 3.7.1 Definición de Scrum 25 3.7.2 Características de Scrum 25 3.7.3 Roles de Scrum 26 3.7.3.1 Product Owner 26 3.7.3.2 ScrumMaster (Facilitador) 26 3.7.3.3 Equipo de Desarrollo 26 3.7.3.4 StakeHolders 26 3.7.3.5 Administradores 27 7 3.7.4 Sprint 27 3.7.5 Product Backlog 27 3.7.6 Sprint Backlog 28 IV SISTEMA ACTUAL V 29 4.1 Análisis e Interpretación de Resultados 29 4.2 Sprint / Iteración 1 32 4.2.1 Elemento número 1 del Sprint Backlog 1 33 4.2.2 Elemento número 2 del Sprint Backlog 1 34 4.2.3 Elemento número 3 del Sprint Backlog 1 34 4.2.4 Elemento número 4 del Sprint Backlog 1 35 4.2.4 Elemento número 5 del Sprint Backlog 1 36 SISTEMA PROPUESTO 38 5.1 Sprint / Iteración 2 38 5.1.1 Elemento número 1 del Sprint Backlog 2 38 5.1.2 Elemento número 2 del Sprint Backlog 2 39 5.2 Sprint / Iteración 3 40 5.2.1 Elemento número 1 del Sprint Backlog 3 41 5.2.2 Elemento número 2 del Sprint Backlog 3 42 5.2.3 Elemento número 3 del Sprint Backlog 3 44 5.2.4 Elemento número 4 del Sprint Backlog 3 47 5.3 Sprint / Iteración 4 48 5.3.1 Elemento número 1 del Sprint Backlog 4 50 5.3.2 Elemento número 2 del Sprint Backlog 4 55 5.3.3 Elemento número 3 del Sprint Backlog 4 57 5.3.4 Elemento número 4 del Sprint Backlog 4 59 5.4 Sprint / Iteración 5 65 5.5 Sprint / Iteración 6 66 8 5.6 Sprint / Iteración 7 67 5.7 Sprint / Iteración 8 68 5.5 Sprint / Iteración 9 69 5.6 Pruebas 70 CONCLUSIONES 75 BIBLIOGRAFIA 77 ANEXOS 79 9 LISTA DE CUADROS Cuadros 01 Objetivos Específicos del sistema propuesto 31 02 Historias de Usuario 1 32 03 Sprint número 1 33 04 Sprint Backlog 2 38 05 Product Backlog 40 06 Sprint Backlog 3 40 07 Sprint Backlog 4 48 08 Diccionario de Datos tbl_user 50 09 Diccionario de Datos tbl_user_megatiles 51 10 Diccionario de Datos tbl_user_missions 52 11 Diccionario de Datos tbl_user_trophies 53 12 Diccionario de Datos tbl_user_vehicles 54 13 Diccionario de Datos tbl_user_friends 55 14 Diccionario de Datos tbl_votes 56 15 Diccionario de Datos tbl_trophy_types 56 16 Diccionario de Datos tbl_trophies_vs_votes 57 17 Diccionario de Datos tbl_languages 58 18 Diccionario de Datos tbl_missions_vs_text_values 58 19 Diccionario de Datos tbl_text_identifiers 59 10 20 Diccionario de Datos tbl_categories 60 21 Diccionario de Datos tbl_logins 60 22 Diccionario de Datos tbl_megamaps 61 23 Diccionario de Datos tbl_megatiles 61 24 Diccionario de Datos tbl_object_media 62 25 Diccionario de Datos tbl_object_sources 63 26 Diccionario de Datos tbl_objects 63 27 Diccionario de Datos tbl_objects_vs_categories 64 28 Diccionario de Datos tbl_scenes 64 29 Sprint Backlog 5 65 30 Sprint Backlog 6 66 31 Sprint Backlog 7 67 32 Sprint Backlog 8 68 33 Sprint Backlog 9 69 34 Product Backlog resultante de la etapa de desarrollo 71 11 LISTA DE GRÁFICOS Gráficos 01 Esquema de Análisis Predictivo de Predictvia C.A. 3 02 Pantalla de Flujo de Selección de niveles 41 03 Pantalla de Sistema de votación 01 42 04 Pantalla de Sistema de votación 02 43 05 Pantalla de Sistema de juego 01 44 06 Pantalla de Sistema de juego 02 46 07 Pantalla de Sistema de juego 03 46 08 Pantalla de flujo del escenario de historia 01 47 09 Pantalla de flujo del escenario de historia 02 48 10 Modelo Entidad Relación de la Base de Datos 49 11 Burndown Chart del Sprint 5 66 12 Burndown Chart del Sprint 6 67 13 Burndown Chart del Sprint 7 68 14 Burndown Chart del Sprint 8 69 15 Burndown Chart del Sprint 9 70 12 UNIVERSIDAD NUEVA ESPARTA FACULTAD DE CIENCIAS DE LA INFORMÁTICA ESCUELA DE COMPUTACIÓN SISTEMA AUTOMATIZADO BASADO EN TÉCNICAS DE GAMIFICACIÓN PARA EL REGISTRO DE DATOS DE USUARIOS CON FINES PREDICTIVOS. CASO: PREDICTVIA Autor: Tutor: Fecha: Br. Ismael Serrada Lic. Jorge A. Padua Julio del 2015 Resumen Esta investigación plantea el desarrollo y solución de un problema proporcionado por una empresa llamada Predictvia C.A. Dicho problema radica en la búsqueda de mejor información y una manera más acertada, portátil y a su vez entretenida de la captura de datos con el fin de análisis predictivo. El objetivo el cual desarrollaremos será el de desarrollar una aplicación de entretenimiento digital interactiva de acceso libre para teléfonos inteligentes y computadoras personales, basada en el método de gamificación, para incrementar las frecuencia de uso de las aplicaciones de captura de datos y registrar un mayor número de acciones que permitan afinar el proceso de análisis predictivo. Nos desenvolveremos en la metodología de investigación de tipo factible, ya que procederemos a investigar, elaborar y desarrollar, a su vez el diseño de investigación será del tipo investigación de campo, de la perspectiva de la temporalidad. Como población para el desarrollo se seleccionarán personas con un perfil orientado a mayoría de edad, así como gustos por temas en específicos; y respecto a la muestra, nos enfocaremos en el muestreo no probabilístico ya que el sistema será de acceso libre, por ende utilizaremos como técnica de recolección de información la entrevista no estructurada, y así poder indagar sobre las necesidades de la empresa así como herramientas anteriores utilizada por la misma. El presente sistema se desarrollara bajo la metodología ágil Scrum, ya que posee herramientas útiles para este proyecto. De este modo podemos finiquitar que el resultado de las pruebas vía mediante este sistema optimizo de manera efectiva, la información necesaria para la empresa y su desarrollo de análisis predictivo, del cual se puede recomendar principalmente mantener una actualización activa de la plataforma, y mantener siempre la comunicación continua. Palabras Clave: Captura de datos, sistema de entretenimiento, Metodología Scrum, 13 INTRODUCCION El desarrollo de software, siempre ha estado relacionado con elementos de la informática, siendo este uno de los tantos productos de esta ciencia. Entonces, ¿qué es en esencia un sistema automatizado? Es un sistema donde se transfieren tareas de producción, realizadas habitualmente por operadores humanos a un conjunto de elementos tecnológicos. En esta investigación se encuentra un problema para la empresa Predictvia C.A. el cual reside en la necesidad de otro método de captura de datos más eficiente, portátil y entretenido, ya que el medio de captura actual está basado en métodos tradicionales no suficientes; por lo tanto, el objetivo de esta investigación es desarrollar una aplicación de entretenimiento digital interactiva de acceso libre para teléfonos inteligentes y computadoras personales, basada en el método de gamificación, para incrementar la frecuencia de uso de las aplicaciones de captura de datos y registrar un mayor número de acciones que permitan afinar el proceso de análisis predictivo. Para el desarrollo del mismo, se estudió una nueva estrategia para la creación de una aplicación de entretenimiento digital interactivo llamada Gamificación, que junto a estudios hechos y comprobados de ciclos de compulsión podremos tener un buen soporte para la finalidad de este trabajo de investigación. Una vez completado el trabajo, se espera poder recibir los datos e información necesaria, obtenidas por la constancia y esfuerzo de la participación de diversos usuarios, para abastecer de información acertada y más confiable al predictor de la empresa. 14 A continuación en esta investigación se estudiarán las diferentes etapas para el desarrollo de este sistema automatizado. Este posee la siguiente estructura: Capítulo I: Se desarrolla y explica los elementos que conforman la problemática que posee la empresa, en el cual se denotan: El planteamiento del problema, los objetivos, la justificación y delimitaciones. Capítulo II: En este, se describen los elementos teóricos en los cuales se sustenta la investigación al igual que los antecedentes, bases teóricas y las bases legales utilizadas en este documento. Capítulo III: Este capítulo contempla todas las explicaciones referentes a la metodología a emplear tanto en la investigación como en el desarrollo del sistema propuesto, se definirá el tipo y diseño de la investigación, población y muestra de la misma, técnicas e instrumentos de recolección de datos, así como una explicación en detalle de la metodología de desarrollo de sistemas. Capítulo IV: Comprende todo el desarrollo y aplicación de la metodología planteada en el capítulo anterior, aplicada al análisis e interpretación de los resultados obtenidos. Capítulo V: Comprende todo los procesos de desarrollo, creación, modelados, pruebas e implementaciones del sistema propuesto, especificados bajo la metodología elegida. Bibliografía: Donde se encuentran detalladas cada una de las referencias hechas en la presente investigación. 15 CAPITULO I MARCO PROBLEMATICO Planteamiento del Problema Predictvia C.A. es una empresa dedicada al análisis predictivo de datos, para una descripción más breve utilizan la frase “Plug-and-Play Predictive Analytics Platform”. El sistema de análisis predictivo de Predictvia, se resume en el siguiente gráfico: Apps Acciones Final Aprendizaje de Tickets Economía Valor máquina, Sistema Decisión Predictores, etc. Secuencia de Secuencia de Valor para ser Acción Votos aprendido (Votos (Valores) Abstractos) Gráfico n°01: Esquema de Análisis Predictivo de Predictvia C.A. El sistema de análisis predictivo de la empresa utiliza un conjunto de aplicaciones, sistemas de tickets, entre otras para obtener una secuencia de acciones provenientes de los usuarios, las cuales tienen la propiedad de reflejar la conducta de un usuario con respecto a un objeto. Estas acciones son manipuladas por un sistema de economía que busca generar una equivalencia entre los sentimientos provenientes de estas acciones, es decir, una asociación de acciones a valores en el intervalo. 16 Actualmente, el principal procedimiento para la captura de datos que realiza dicha empresa son las aplicaciones, de estadística y aplicaciones en redes sociales, cuyo objetivo principal es servir de encuestas de satisfacción de usuarios. En este caso en particular, realizan encuesta de gustos y preferencias personales, otorgándole un valor de puntos a uno o varios objetos en particulares, que pueden ser: marcas, comidas, actores o personajes, entre otros. Este procedimiento tradicional, y otros aplicados como la utilización de redes sociales como Facebook para obtener datos presentan ciertas desventajas, como son la inconsistencia de datos y la actualización de dichas votaciones recolectadas por este medio. Dicho esto se formula la siguiente pregunta: ¿Se puede realizar una aplicación de entretenimiento que sea de acceso libre y a su vez portátil, para obtener más datos que permitan afinar la predicción de un análisis predictivo? El problema radica en que la captura de datos del sistema de análisis predictivo de esta empresa se realiza mediante un sistema de encuestas y consumo (algo parecido al sistema que desarrollan empresas como Amazon, EBay, Hunch, Wish). Al realizarse de esta manera las personas, a las cuales se les dirige la encuesta, no responden de manera objetiva puesto que realizan esta actividad por obligación, pero, a través de mecánicas de juego, estas personas se comprometen de mayor manera y tienden a dar mayor cantidad de información debido a la naturaleza adictiva que generan estas mecánicas de juegos aplicadas, también tomando en cuenta que la información proporcionada es de mayor constancia gracias a su repetición. La Ludificación o “Gamification” es el empleo de mecánicas de juego en entornos y aplicaciones no lúdicas con el fin de potenciar la motivación, la concentración, el esfuerzo, la fidelización y otros valores positivos comunes a todos los juegos. Se trata de una nueva y poderosa estrategia para influir y motivar a grupos de personas (Gamificacion S.L., 2013). 17 Por esta razón se necesita buscar una vía alterna que sea más entretenida, portátil y constante; para ello se propone desarrollar una aplicación de entretenimiento digital interactivo para mejorar y refinar la captura de datos. Una correcta implementación de estrategias de Ludificación permite pasar de la mera conectividad al compromiso, logrando que los miembros de una comunidad, los trabajadores de una empresa, los estudiantes de un instituto, los habitantes de una ciudad -prácticamente cualquier colectivo o individuo- participen de una manera dinámica y proactiva en acciones que generalmente requieren un esfuerzo de la voluntad (Gamificacion S.L., 2013). La integración de dinámicas de juego en entornos no lúdicos no es un fenómeno nuevo, pero el crecimiento exponencial del uso de videojuegos en los últimos años ha despertado el interés de expertos en comunicación, psicología, educación, salud, productividad –y cualquier área de actividad humana- por descifrar las claves que hacen del video juego un medio tan eficaz. En estos últimos años ha comenzado también la expansión en el estudio de su aplicación a otros ámbitos no necesariamente lúdicos. Gamificación es el término escogido para definir esta tendencia. (Gamificacion S.L., 2013). Una vez que estas acciones son asociadas a valores, se podrá estimar, utilizando mecanismos como series de tiempo (basado en la variación del comportamiento de una persona con respecto a un objeto), para así generar el siguiente valor que mostrará dicha persona por ese objeto. Finalmente, utilizando el valor para aprender de cada persona por cada objeto se procede a realizar el aprendizaje mediante el cual se podrá predecir preferencias, atributos reales, similitud entre sujetos y objetos, entre otras cosas. Una vez desarrollada esta aplicación se puede obtener datos más específicos que definan aún mejor los gustos de las personas para la posterior creación de un perfil característico definiremos como ADN virtual, no obstante, la empresa cuenta con procesos como aplicaciones y encuestas, esta necesita de datos más 18 constantes de parte del usuario que se vean alimentados con procesos más compulsivos que responder una encuesta o comprar un producto. Objetivo General Implementar un sistema automatizado basado en técnicas de Ludificación, de acceso libre para computadoras personales y teléfonos inteligentes, para incrementar las frecuencias de uso de las aplicaciones de captura de datos para afinar el proceso de análisis predictivo de la empresa. Objetivos Específicos - Realizar el levantamiento de información de los requerimientos actuales de la empresa Predictvia para la captura de datos. - Analizar los requerimientos dictados por la empresa para la selección de la metodología a emplear. - Establecer las interfaces gráficas y modelo de base de datos. - Seleccionar las herramientas necesarias para la realización de la aplicación. - Establecer y desarrollar el algoritmo necesario para crear un sistema que sirva de solución al problema general de la empresa. - Definir la estrategia de implantación de la aplicación y elegir en que medios se distribuirá. Justificación Para el desarrollo de este trabajo especial de grado se aplicara la técnica o metodología de Ludificación previamente definida, una de las mayores razones por la cual se aplicará, es por el gran aumento de las aplicaciones de entretenimiento digital en los últimos 5 a 10 años (Association, 2013) El estudio de “Ciclos de compulsión (Compulsion Loops)”, demuestra que: Los ciclos de compulsión son unas estructuras diseñadas para mantener a una persona ocupada mediante la relación entre sus acciones y las recompensas apropiadas para dicho esfuerzo. (Collier, 2011) 19 Dicho esto, se demuestra que las aplicaciones mediante la ludificación o gamificación son una gran fuente de entretenimiento y de información. Implementaciones previas de esta metodología ha demostrado un cambio positivo para los usuarios en actividades no lúdicas, por ende, es importante el estudio e implementación de ello para este problema planteado (Tuutti, 2012) Para la empresa Predictvia este desarrollo resuelve el problema de incrementar para refinar la captura de datos para el aprendizaje de máquina del análisis predictivo, pero a su vez, podremos demostrar la aplicabilidad de ella, la cual no se ha desarrollado a nivel nacional, aportando así una nueva herramienta de desarrollo para las instituciones y para la región, las cuales podrán beneficiarse en un futuro de la investigación en este aspecto en particular. Delimitación Temática Este sistema se sitúa en la línea de la tecnología, debido a que es el desarrollo e implementación de un sistema informático. Geográfica La producción de este sistema propuesto será desarrollada para el departamento de desarrollo digital de la empresa Predictvia, ubicada en CaracasVenezuela, Municipio Chacao, Edif. Xerox, piso 6 Temporal Se estima que el desarrollo de esta aplicación de entretenimiento digital será de un promedio de 12 meses distribuidos en análisis de requerimiento, diseño de la aplicación desarrollo de la aplicación. 20 CAPITULO II MARCO REFERENCIAL Antecedentes de la investigación A continuación se presentan algunos estudios que de una forma u otra resultan antecedentes de sustento a la presente investigación. Entre ellas cabe destacar: Díaz y Lizárraga (2013), desarrollaron para la Universidad de Sonora, una experiencia en ludificación para la entrega de trabajos en un curso híbrido (blended learning) de Física Computacional. Usando como metodología el plan de ludificación en la entrega de productos en el curso. El desarrollo consistió en una variedad de actividades y tareas, que involucraron la descarga y configuración de software, involucrándose además actividades de aprendizaje como son búsquedas en Internet, resolución de problemas, contestar cuestionarios de autoevaluación y participar en un sitio de red social en línea. Como conclusión, la estrategia de ludificación del proceso reporto los avances y la conclusión de cada actividad en un wiki público, sirvió como motivación para los estudiantes participaran en una competencia sana donde se presumían los avances y a la vez se ejerce presión de avanzar a aquellos que se retrasaban por diversos motivos. Este trabajo de investigación aporta una referencia bastante directa, ya que en ella se presencia la metodología de ludificación para servir como motivación en la población en la cual fue efectuada. Hagglund (2013) desarrollo su tesis para la universidad UMEA Universitet, Hagglund determino que el enfoque esta tesis fue el de incrementar el conocimiento general acerca de la ludificación (Gamification) mediante la explicación de cómo y por qué funciona. Explora la ludificación en detalle y explica, no solo como son utilizados los conceptos de ludificación, sino también motiva la efectividad de estos conceptos en una base científica. 21 Su aporte a esta investigación será invaluable ya que el enfoque en el cual estará dirigido el desarrollo de esta aplicación de entretenimiento digital, será el de la ludificación del proceso de recolección de información. Además que nos da un mejor entendimiento del pasado, presente y posible futuro de la ludificación o “Gamification”. Bases Teóricas y Conceptuales Ludificación o Gamificación Ludificación se refiere a la acción de convertir algo en actividad lúdica, cuyas raíces etimológicas provienen del latín ludus de lūdere, que significa jugar, divertirse, pasar el tiempo. También es utilizado a veces el anglicismo gamificación, por referirse al término correspondiente en Inglés gamification, pero en Español ya se tiene ludificación. Gamificación es el empleo de mecánicas de juego en entornos y aplicaciones no lúdicas con el fin de potenciar la motivación, la concentración, el esfuerzo, la fidelización y otros valores positivos comunes a todos los juegos. Se trata de una nueva y poderosa estrategia para influir y motivar a grupos de personas. (S.L., 2013) (De acuerdo con Huzinga) Todos jugamos, es parte de naturaleza humana (Huizinga, 1938). El jugar es divertido, el juego es distinto de la vida real, el jugar nos ofrece la posibilidad de explorar, de aprender, exige reglas, respetar un orden y nos ofrece retos a vencer. Aunque no ofrece una satisfacción material, si ofrece un reto intelectual y satisfacción personal, que nos motiva y nos atrae. La integración de dinámicas de juego en entornos no lúdicos no es un fenómeno nuevo, pero el crecimiento exponencial del uso de videojuegos en los últimos años ha despertado el interés de expertos en comunicación, psicología, educación, salud, productividad -y casi cualquier área de actividad humana- por 22 descifrar las claves que hacen del videojuego un medio tan eficaz. En estos últimos años ha comenzado también la expansión en el estudio de su aplicación a otros ámbitos no necesariamente lúdicos. Gamificación es el término escogido para definir esta tendencia (S.L., 2013) Video Juegos o Juego de Video Es un juego electrónico en el que una o más personas interactúan, por medio de un controlador, con un dispositivo dotado de imágenes de vídeo. Este dispositivo electrónico puede ser una computadora, una máquina arcade, una videoconsola, un dispositivo portátil (un teléfono móvil, por ejemplo), etc., los cuales son conocidos como "plataformas". Al dispositivo de entrada usado para manipular un videojuego se lo conoce como controlador de videojuego, y varía dependiendo de la plataforma. Por ejemplo, un controlador podría únicamente consistir de un botón y una palanca de mando (joystick), mientras otro podría presentar una docena de botones y una o más palancas. Los primeros juegos informáticos solían hacer uso de un teclado para llevar a cabo la interacción, o bien requerían que el usuario adquiriera un joystick con un botón como mínimo. Muchos juegos de computadora modernos permiten o exigen que el usuario utilice un teclado y un ratón de forma simultánea. Entre los controladores más típicos están los gamepads, joysticks, teclados, ratones y pantallas táctiles. Por lo general, los videojuegos hacen uso de otras maneras, aparte de la imagen, de proveer la interactividad e información al jugador. El audio es casi universal, usándose dispositivos como altavoces y auriculares. Otros de reproducción tipos de de feedback se sonido, hacen a tales través de periféricos hápticos que producen una vibración o realimentación de fuerza, con la manifestación de vibraciones cuando se intenta simular la realimentación de fuerza. 23 Creación de juegos Al investigar o buscar por diferentes medios, podemos conseguir en varios foros, comunidades, e institutos vía web, podemos observar que algunos piensas que la creación de juegos es un arte, en la cual no existe un método formal para su realización y que simplemente son una serie de representaciones artísticas como lo puede llegar a ser una pintura o escultura. Según lo observado en muchos videojuegos y en los comentarios realizados por varios de sus creadores, no se le podría considerar como ninguna de las dos en su totalidad. En los juegos, el arte viene a jugar un rol importante cuando se está teniendo la visión inicial del videojuego y en las primeras etapas de diseño, lo que llamaríamos la etapa de creación. Pero tampoco se le puede considerar una ciencia ya que no se rige por un método científico donde se plantee una hipótesis o se esté buscando una verdad absoluta. Algo que se debe tener en cuenta a la hora de crear videojuegos, es que estos son en esencia un desarrollo de software. Los videojuegos son software con arte, audio y jugabilidad (gameplay). Muchas veces el desarrollo de un juego no se considera como una ciencia si no como un arte y es excluido de los métodos de producción y desarrollo formales, cosa que es completamente falsa. Los juegos contienen elementos tanto artísticos como funcionales a la vez, ya que deben ser (de alguna u otra manera) estéticamente atractivos y al mismo tiempo divertido para el jugador. Existen distintos ciclos de vida del desarrollo de estos juegos, los cuales han sido actualizados a través de los años. Según (McConnell, 1996) podría encontrarse los siguientes tipos: Ciclo de vida en cascada Ciclo de vida en espiral Ciclo de vida incremental Ciclo de vida basado en prototipos 24 Ciclo de vida basado en versiones Además existen diversas metodologías que son aplicadas en la actualidad en la mayoría de los desarrollos grandes de software, entre las cuales encontramos: RUP (Rational unified Process) AUP (Agile Unifiied process) AM (Agile Modeling) XP (eXtreme Programming) Aunque estos métodos han sido comprobados y utilizados en innumerables ocasiones, ninguno de ellos contempla aspectos particulares de un software en específico, incluyendo los videojuegos. Estas faltas o deficiencias de las metodologías establecidas, hacen que se pierda tiempo y dinero en adaptarlas al desarrollo que se está realizando. Géneros de aplicaciones de entretenimiento digital interactivo Para el desarrollo de una aplicación de entretenimiento digital interactivo, se debe tomar una decisión al momento de producción, una de ellas es elegir el género de esta aplicación. La taxonomía de los juegos es muy diversa y no existe una clasificación exacta o definitiva, por lo que es necesario tener una visión de cuáles pueden ser los más comunes para el desarrollo. Es necesario considerar esta clasificación como un punto de partida que puede determinar ciertos elementos adicionales para su desarrollo (Crawford, 1984). A continuación, se tomara una taxonomía general basada en la clasificación de Crawford y varios autores. 1. Géneros Principales 25 1.1 Juegos de acción Los juegos de acción son prácticamente el género más popular, se caracterizan por su orientación al combate y situaciones de reacción rápida. 1.1.1 Action-adventure games Los juegos de acción y aventura, involucran situaciones de combate, exploración, recolección de artículos y solución de rompecabezas. En este género encontramos juegos como Adventure (1978), la serie The Legend of Zelda (1986-Actual) entre otros. 1.1.2 First-person shooter games Popularmente conocidos como FPS los first-person shooters hacen particularmente énfasis en los disparos y el combate en una perspectiva de juego en primera persona. La idea es provocar la sensación de que el jugador es realmente quien participa en el juego. Estos juegos requieren de un alto nivel de destreza y reflejos por parte de jugador. En el encontramos juegos como Wolfstein 3D (1992), Doom (1993), Half Life (1998) y Halo (2001) entre otros. 1.1.3 Third-person shooter games Conocidos como TPS o 3PS son juegos que se centran en combate, disparar y destruir con una perspectiva de tercera persona. En este género se encuentras juegos como: Gears of War (2006), MDK (1997) y Grand Theft Auto (1998). 1.1.4 Tactical Shooter Games Los tactical shooters son juegos first person o third person shooter con un contenido táctico y basado en el manejo de escuadrones de asalto. Se basan en simular situaciones reales de combate militar, policial, antiterrorista y no consisten en dispararle a todo lo que se mueva. Entre 26 estos encontramos, juegos como la serie Rainbow Six (1998) de Tom Clancy, Ghost Recon (2001), SWAT (1995) entre otros. 1.2 Peleas Los juegos de peleas consisten tener el control de un personaje y golpear a otros personajes para llegar a un fin específico. 1.2.1 Pelea Competitiva Los jugadores participan en una lucha uno contra uno, hasta que uno de los dos sea el ganador. Estos juegos tienen un alto nivel de popularidad en los salones de arcade por su alto nivel de competitividad. Entre ellos encontramos juegos como Street Fighter (1990 - Actual), Tekken (1994) Soul Calibur (1998), Mortal Kombat (1992), King of Fighters (1994). 1.2.2 Beat 'em up games En este género los jugadores tienen la tarea de resolver a golpes varios encuentros cuerpo a cuerpo con numerosos enemigos a lo largo de un nivel. Deben ir avanzando hasta llegar a un destino específico. Entre estos, encontramos: Double Dragon (1987), Final Fight (1989), Streets of Rage (1991), Fighting Force (1997). 1.3 Role-playing games Llamados popular mente juegos de Rol o por el acrónimo RPG se basan en los juegos de Rol tradicionales de mesa como Dungeons and Dragons, en el desarrollo del personaje controlado por el jugador y en la forma en que este asume un rol en la historia. Los personajes van evolucionando a través del tiempo de juego en conjunto con la historia. Los RPG tienen un fuerte basamento en la toma de decisiones que 27 tienden a cambiar el rumbo de la historia. Juegos como Final Fantasy (1987), Phantasy Star (1987), Baldur’s Gate (1998), Oblivion (2006) y Shinning Force (1992). 1.4 Plataformas Son juegos basados en trasladarse a lo largo de un nivel saltando de una plataforma a otra hasta llegar a un objetivo. Es un de los géneros más populares de todos aunque su popularidad ha disminuido desde el crecimiento de los juegos en 3D. Los juegos de plataformas han logrado evolucionar al 3D pero no con el mismo éxito que en 2D. En muchas ocasiones los juegos de plataformas utilizan elementos de otros juegos como por ejemplo los shooters o RPG. Entre estos encontramos Super Mario Bros. (1985), Sonic The Hedgehog (1991), Crash Bandicoot (1996) Mega Man (1987), Rayman (1995), Castlevania (1986). 1.5 Simulación Los juegos de simulación tienden a manejar situaciones específicas de la forma más real posible. Entre sus aplicaciones más básicas, encontramos simuladores de vuelo y automovilismo. Juegos de gestión o gerencia de distintos elementos como puede ser Sim City (1989) en el que el jugador debe hacer de alcalde de una ciudad, Total Club Manager (2002) se realiza la gestión del manager un equipo de futbol. En los juegos de simulaciones existen tipos como los llamados God games o juegos de Dios, donde simplemente el usuario juega a ser Dios y controlar todos los aspectos de un ambiente entre estos encontramos juegos como Black & White (2001) o Populous (1989). Los juegos de este género toman mucha atención a detalles específicos y este muchas veces es usado como un sub-género. 1.6 Sports 28 Los juegos de deportes tienen la finalidad de representar deportes de actividad física, cumplen la necesidad del usuario tomando en cuenta los detalles que hacen al deporte que se busca representar, emocionante en la vida real. Los deportes tradicionales se basan en la representación de aquellos deportes que son de culto popular como puede ser el Fútbol, Beisbol, Tenis entre otros en estos se encuentran juegos como la serie Fifa Soccer, Madden NFL, MLB the Show o Virtua Tennis. También existen juegos orientados a representar deportes menos populares como los son: Tony Hawk´s Pro Skater (1999) basado en montar patineta entre otros. 1.7 Strategy Los juegos de estrategia manejan un enfoque que requiere de un detalle a la planificación en el manejo de distintos recursos para lograr un fin específico. Estos juegos tienen como características, al recolección de recursos, y producción de unidades para conformar un ejército para combatir con un contrario. En estos encontramos juegos como Warcraft (1994), Starcraft (1998), Age of Empire (1997) y Civilization (1991). 2. Sub-Géneros Existen varios sub-géneros y muchos de ellos son dados por combinaciones de varios géneros, por ejemplo: puede existir un juego de plataformas con acción y aventura o juegos de acción y RPG. Sin embargo, es necesario mencionar algún un subgénero aplicable a todos los géneros como lo es: 2.1 Massively Multiplayer Online games MMORPG “son videojuegos que permiten a miles de jugadores introducirse en un mundo virtual de forma simultánea a través de Internet, e interactuar entre ellos. Puede tratarse de administrar una ciudad, un ejército para ganar en montones de batallas, o más comúnmente crear un personaje, 29 del cual puedes elegir su raza, profesión, armas, etc., e ir aumentando niveles y experiencia en peleas contra otros personajes.” (VGS, 2007). Física para videojuegos Diversos tipos de juegos están muy cerca de la simulación y es por ello que en este ámbito resultan necesarios los principios físicos y los motores software que los implementan y que permiten obtener un mayor realismo en la interacción. Algunos tópicos fundamentales (adquiribles en cursos de ciencias básicas) son: modelado de sistemas físicos, colisiones, sistemas de partículas, física del cuerpo humano. Actualmente existen entornos de desarrollo (Frameworks) para los efectos dinámicos o física, entre los más utilizados se encuentran: Havok Open Dynamics Engine (ODE) Newton Game Dynamics Phyx BOX2D Librería Nape Bases de datos para videojuegos La industria de los juegos de videos está experimentando un gran cambio, puesto que el terreno tradicional de los juegos de video se expande a nuevos tipos de plataforma, técnicas de juegos y jugadores. Por ello, los desarrolladores y marcas relacionadas a juegos de video tienen la oportunidad de aplicar técnicas de análisis de información (Big data analytics) para poder capturar información importante tanto del comportamiento del jugador, como de la estructura y reacción del juego. (Chulis, 2012) 30 Muchos juegos de video, conservan estadísticas y registro de sus usuarios (principalmente los juegos en línea), Esta información debe ser manejada en bases de datos. En muchos casos los videojuegos utilizan este recurso para manejar registros de comportamientos del usuario y posibles respuestas de los NPC (Non Player Characters o Personajes no jugadores). Programación gráfica Los programadores gráficos, comúnmente, son los que tienen conocimientos científicos bastantes elevados y su posición es muy respetada en la industria. Estos deben tener un alto conocimiento de matemáticas, física, vectores y trigonometría, y saberlos aplicar de manera de llevar a la realidad el concepto creado por el diseñador. Los mundos y objetos creados por estos “Artistas” son con los que interactúan los usuarios. Además deben emplear técnicas de optimización de procesos, mediante los cuales se mejoran los motores de gráficos. Algunas áreas de enfoque en la programación gráfica son: construcción de motores gráficos, generación de texturas, iluminación, animación de personajes y/u objetos, gestión de escenarios. Técnicas de programación para tecnologías específicas Son las que no se incluyen por lo general en los estudios de Informática convencionales, pero son absolutamente necesarias en el caso de un desarrollador de videojuegos. Algunas pueden ser: programación para audio, control de dispositivos de entrada/salida, programación basada en guiones (scripts), dispositivos móviles. Sistemas en Red Actualmente existe un auge de los juegos de video en red. Si el diseño del proyecto tiene planteado realizar un juego de este estilo, es fundamental para el diseñador/desarrollador conocer modelos, protocolos, arquitecturas y tecnologías asociados con aplicaciones en red y distribuidas. 31 Actionscript Actionscript es un lenguaje de programación orientado a objetos desarrollado por Macromedia Inc. Desarrollado y usado principalmente para el desarrollo de páginas web y aplicaciones para ejecutarse en la plataforma de Adobe Flash Player. Una de las utilidades de Actionscript 3 es el desarrollo de sistemas para computadoras personales y para aplicaciones destinadas a ser portable (tecnología Mobile). El lenguaje en si es de software libre queriendo decir que el uso de este lenguaje para desarrollar cualquier tipo de aplicación es libre de costo. Este es el lenguaje en que se desarrollara la aplicación de entretenimiento digital propuesta en el proyecto, ya que, al integrarlo en el adobe flash player, permitirá su exportación a diversas áreas de interés (celulares inteligentes, computadoras personales, redes sociales). Starling Starling es un motor de juego basado en la estructura interna de ActionScript 3 que se distingue por procesar las imágenes directamente por el GPU (Graphics Processing Unit) y es una aplicación de software libre. Se utilizara el lenguaje de ActionScript 3 junto a Starling para tener mejor rendimiento y calidad de imágenes para la aplicación que se desarrollara. FlashDevelop Es un ambiente integrado de desarrollo (IDE por sus siglas en inglés) estructurado para la realización de aplicaciones web, aplicaciones para computadoras personales y páginas web destinadas a Adobe Flash. Capaz de correr y exportar aplicaciones en Adobe Flash Player para Microsoft Windows, Mac OS X, Android o iOS. 32 Se utilizara esta herramienta como nuestro IDE para el desarrollo de nuestro proyecto por su capacidad y facilidad de exportación y su sencillez de uso MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario. Es muy utilizado en aplicaciones web y plataformas Linux/Windows. Bajo MySQL se estructurará todo el modelo de tablas y campos necesarios para el almacenamiento de datos para la aplicación propuesta en este proyecto. TexturePacker TexturePacker es una interfaz gráfica de usuario y una herramienta diseñada para la creación de Hojas de Sprites y Atlas de Sprites. Las Hojas de Sprites son una combinación de numerosas pequeñas imágenes o iconos creando así una sola imagen y Los Atlas de Sprites son aquellos que contienen largas imágenes que a su vez se dividen en sub imágenes, una de sus funciones es poder diferenciar directamente cada imagen que este suscrita dentro de la Hoja de Sprite, para así poder adquirirla individualmente o un grupo de imágenes. Esta herramienta es de gran utilidad para el proyecto, puesto que se manejara una numerosa cantidad de imágenes y mediante esta aplicación se podrá reducir y ahorrar una gran cantidad de memoria lo cual permitirá que el ejecutable sea de menor peso. GitHub Esta herramienta es un repositorio web que ofrece una interfaz gráfica (Vía web y aplicación de Windows y Mac) la cual provee un control y manejo del código fuente, tareas y traqueo de errores para un proyecto. Se utilizara GitHub como herramienta para manejar las versiones de la aplicación, manejo del código fuente, actualizaciones y respaldar el proyecto. 33 CAPITULO III MARCO METODOLOGICO Tipo de Investigación Esta investigación contempla la elaboración de un sistema automatizado, al ser un desarrollo de un sistema podemos ubicar este proyecto como un tipo de investigación de proyecto factible, el cual consiste en investigar, elaborar y desarrollar “(…) una propuesta de un modelo operativo viable y factible para solucionar problemas, requerimientos o necesidades de organizaciones o grupos sociales; puede referirse a la formación de políticas, programas, tecnologías, métodos o procesos”. (USM, 2001, p.7). Se ubica en esta tipología de investigación, puesto que, la finalidad del mismo es el de desarrollar una aplicación de entretenimiento digital interactiva, que permita incrementar la captura de datos de interacción del usuario para aumentar la información y datos necesarios que permitan afinar el proceso de análisis predictivo. Diseño de la Investigación Acotando a Cerda se tiene que una definición del Diseño de investigación seria la del conjunto de decisiones, pasos, esquemas y actividades a realizar en el curso de la investigación. (Cerda, 1991). En el texto de UPEL (2005) se tiene que la investigación de campo, consiste en el análisis sistemático de problemas en la realidad; con el propósito bien sea de describirlos, interpretarlos, entender su naturaleza y factores constituyentes, explicar sus causas y efectos, o predecir sus ocurrencias haciendo usos de los métodos característicos de cualquiera de los paradigmas y enfoques de investigación conocidos o en desarrollo. Los datos de interés son recogidos en forma directa de la realidad; en este sentido se trata de investigaciones a partir de datos originales o primarios. (UPEL, 2005) 34 Dicho esto, este trabajo de investigación se apoyará en el modelo de la investigación de campo, ya que deberá recopilar información y manejar datos para poder solucionar las necesidades que la empresa posee. De igual manera, situamos este trabajo de investigación en el campo, de la perspectiva de temporalidad, como transeccional. En la perspectiva de temporalidad, las Transeccionales son investigaciones en un período de Tiempo. (Fernández C, 2002). Para esto se creará un Backlog (o repositorio) con todas las funcionales necesarias en la aplicación que satisfagan la necesidad de la empresa. En base a este Backlog se programaran todos los User Stories que son las actividades a realizar, definiendo así los próximos pasos y esquemas a seguir. Moldeando así esta investigación de campo a la metodología que se usara en todo el proyecto para su desarrollo la cual es Scrum. Población Se entiende por población un conjunto finito e infinito de personas, casos o elementos que presentan características comunes. (Gabaldón, 2002) Para nuestro sistema se harán análisis necesarios basados en 100 personas mínimo, para poder hacer los análisis necesarios respecto a los resultados de este sistema propuesto. Dicho esto, la población seleccionada para esta investigación son aquellas que cumplen con los siguientes perfiles: 1. Personas que residan en el territorio de Venezuela, en el estado de Caracas. 2. Personas con gustos por la música, deportes, juegos, películas, videojuegos, videojuegos de rompecabezas, y coleccionistas. 3. Mayores a 18 años de edad. 4. Personas cuyo idioma principal sean el español o inglés. 35 Muestra La muestra, es una parte de la población, o sea, un número de individuos, un objeto seleccionado científicamente, cada uno de los cuales es un elemento del universo. La muestra, es obtenida con el fin de investigar, a partir del conocimiento de sus características particulares, las propiedades de una población. (Gabaldón, 2002) En nuestro caso tomaremos una muestra del 50% del alcance de la población posterior a las pruebas e implementación del sistema propuesto. Al igual encontramos que según Hurtado de Barrera (2000), existen 2 tipos de muestreo generales: 1. Muestreo Probabilístico: Se determina de antemano la probabilidad que tiene de ser seleccionado, cada uno de los elementos que integran la población. Existen diferentes tipos: a. Estratificado b. Azar Simple c. Azar Sistemático d. Por Conglomerados 2. Muestreo No Probabilístico: Puede haber clara influencia de la persona o personas que seleccionan la muestra o simplemente se realiza atendiendo a razones de falta de tiempo y dinero para realizar un estudio completo. Que posee diversos tipos: a. Casual b. Intencional c. Autoselección d. Por Cuota 36 El tipo de muestreo que se ajusta a este trabajo de investigación es el del muestreo no probabilístico de tipo intencional; debido a que, aunque el sistema automatizado este pautado para ser de acceso libre, la muestra para la empresa son las personas que cumplen el perfil previamente denotado. Técnicas e Instrumentos de Recolección de Información Las entrevistas caracterizadas por ser no estructuradas, es decir de tipo abierta, en muchos casos no requieren de una estructura formal o guion y tampoco de una validación minuciosa, ya que no existe un instrumento donde exista una serie de respuestas que el encuestado deba elegir (dependiendo de cuál se adaptase más a su situación), se deban formular preguntas constantemente de una manera específica a lo largo de toda la muestra, preguntas que deban ser respondidas en un orden determinado, entre otros. Sin embargo los encuestadores deben seguir ciertos criterios para determinar cuál es la información necesaria que deben obtener y dependiendo de la situación y persona con la que se trate se desarrollara una estrategia que permita la recolección de dicha información. A continuación se presentan ciertos datos sobre la aplicación del instrumento y la información que se quiere obtener de los entrevistados, de manera de adaptar el producto de esta investigación a las necesidades de estas personas. Lugar de realización: Empresa Predictvia C.A. Momento de realización: 10/12/2013 Información a obtener: Información necesaria para poder realizar los requerimientos apropiados que para la estructura, desarrollo y modelación del proyecto a realizar. 37 Metodología de Desarrollo de Sistemas La metodología utilizada para el desarrollo de este trabajo de investigación, es la metodología creada por Ken Schwaber y Jeff Sutherland llamada “Scrum”, debido a que es: Ligero. Fácil de entender. Difícil de dominar. Definición de Scrum Scrum es un modelo de desarrollo ágil caracterizado por: Adoptar una estrategia de desarrollo incremental, en lugar de la planificación y ejecución completa del producto. Basar la calidad del resultado más en el conocimiento tácito de las personas en equipos auto-organizados, que en la calidad de los procesos empleados. Solapamiento de las diferentes fases del desarrollo, en lugar de realizar una tras otra en un ciclo secuencial o de cascada. Características de Scrum SCRUM es un modelo de referencia que define un conjunto de prácticas y roles, y que puede tomarse como punto de partida para definir el proceso de desarrollo que se ejecutará durante un proyecto. Los roles principales en Scrum son el ScrumMaster, que mantiene los procesos y trabaja de forma similar al director de proyecto, el ProductOwner, que representa a los stakeholders (interesados externos o internos), y el Team que incluye a los desarrolladores. (Scrum Org, 2009) Durante cada sprint, un periodo entre una y cuatro semanas (la magnitud es definida por el equipo), el equipo crea un incremento de software potencialmente 38 entregable (utilizable). El conjunto de características que forma parte de cada sprint viene del Product Backlog, que es un conjunto de requisitos de alto nivel priorizados que definen el trabajo a realizar. Los elementos del Product Backlog que forman parte del sprint se determinan durante la reunión de Sprint Planning. Durante esta reunión, el Product Owner identifica los elementos del Product Backlog que quiere ver completados y los hace del conocimiento del equipo. Entonces, el equipo determina la cantidad de ese trabajo que puede comprometerse a completar durante el siguiente sprint. 1 Durante el sprint, nadie puede cambiar el Sprint Backlog, lo que significa que los requisitos están congelados durante el sprint. (Scrum Org, 2009) Roles del Scrum Product Owner: Representa la voz del cliente. Se asegura de que el equipo Scrum trabaje de forma adecuada desde la perspectiva del negocio. El Product Owner escribe las historias de usuario, las prioriza, y las coloca en el Product Backlog. (Scrum Methodology, 2010). ScrumMaster (Facilitador): El Scrum es facilitado por un ScrumMaster, cuyo trabajo primario es eliminar los obstáculos que impiden que el equipo alcance el objetivo sprint. El ScrumMaster no es líder del equipo (Porque ellos se autoorganizan), sino que actúa como una protección entre el equipo y cualquier influencia que le distraiga. El ScrumMaster se asegura que el proceso Scrum sea utilizado como es debido. (Scrum Methodology, 2010). Equipo de Desarrollo: El equipo que tiene la responsabilidad de entregar el producto. Un pequeño equipo de 3 a 9 personas con las habilidades transversales necesarias para realizar el trabajo (Análisis, diseño, desarrollo, pruebas, documentación, entre otros). (Scrum Methodology, 2010). Stakeholders (Clientes, Proveedores, Vendedores, entre otros): Se refiere a la gente que hace posible el proyecto y para quienes el proyecto producirá el 39 beneficio acordado que justifica su producción. Sólo participan directamente durante las revisiones del sprint. (Scrum Methodology, 2010). Administradores (Managers): Es la gente que establece el ambiente para el desarrollo del producto. (Scrum Methodology, 2010). Sprint El Sprint es el período en el cual se lleva a cabo el trabajo en sí. Es recomendado que la duración de los Sprint sea constante y definida por el equipo con base en su propia experiencia. Se puede comenzar con una duración de sprint en particular (2 o 3 semanas) e ir ajustándolo con base en el ritmo del equipo, aunque sin relajarlo demasiado. Al final de cada sprint, el equipo deberá presentar los avances logrados, y el resultado obtenido es un producto potencialmente entregable al cliente. Asimismo, se recomienda no agregar objetivos al sprint o sprint backlog menos que la falta de estos objetivos amenace al éxito del proyecto. La constancia permite la concentración y mejora la productividad del equipo de trabajo. (Scrum Methodology, 2010). Product Backlog Es un documento de alto nivel para todo el proyecto. Contiene descripciones genéricas de todos los requisitos, funcionalidades deseables, etc. priorizadas según su retorno sobre la inversión (ROI). Es el qué va a ser construido. Es abierto y solo puede ser modificado por el product owner. Contiene estimaciones realizadas a grandes rasgos, tanto del valor para el negocio, como del esfuerzo de desarrollo requerido. Esta estimación ayuda al product owner a ajustar la línea temporal (KEV) y, de manera limitada, la prioridad de las diferentes tareas. Por ejemplo, si dos características tienen el mismo valor de negocio la que requiera menor tiempo de desarrollo tendrá probablemente más prioridad, debido a que su ROI será más alto. (Scrum Methodology, 2010). 40 Sprint Backlog El sprint backlog es un documento detallado donde se describe el cómo el equipo va a implementar los requisitos durante el siguiente sprint. Las tareas se dividen en horas pero ninguna tarea con una duración superior a 16 horas. Si una tarea es mayor de 16 horas, deberá ser dividida en otras menores. Las tareas en el sprint backlog nunca son asignadas, son tomadas por los miembros del equipo del modo que les parezca oportuno. (Scrum Methodology, 2010). 41 CAPITULO IV SISTEMA ACTUAL Análisis e Interpretación de Resultados En el siguiente tramo, se explicarán una serie de preguntas realizadas en una entrevista al Gerente de producto e Ingeniero de datos de la Empresa, cuyo fin es el recopilar la información necesaria referente a los procesos actuales de recopilación de información, para detectar así las necesidades primordiales para la elaboración del producto. Las preguntas fueron las siguientes: 1. Describa las herramientas que se han utilizado en el pasado para recopilar los datos de los usuarios. Esta pregunta se realizó para describir de una forma más detallada los procesos previos de recopilación de datos de la empresa, para así tener un mayor entendimiento de ellos. Las herramientas que se han utilizado son: La elaboración de una encuesta virtual: Esta encuesta realizada via web, permite a los usuarios expresar sus afinidades con respecto a un objeto, mediante votación. El usuario puede votar en una escala, del -3 (siendo la menor afinidad hacia el objeto) al +3 (siendo mayor afinidad hacia el objeto). Una aplicación en la el usuario elegía entre dos actores de televisión, en la cual el usuario expresa su afinidad en la selección de dichos personaje. 42 2. ¿Qué inconvenientes o problemas tiene o ha tenido la empresa para el proceso de captura de datos de los usuarios? La finalidad de esta pregunta es analizar las necesidades desde el punto de vista del usuario, en el proceso de captura de datos en las herramientas mencionadas anteriormente. Para así tener un mejor entendimiento en los procesos necesarios para el desarrollo del sistema. La necesidad de hacer la captura de datos de una manera más interactiva y entretenida para el usuario. La falta de consistencia de datos, referente a la frecuencia de usuarios en las aplicaciones previas. 3. ¿Cuál es el proceso para medir el nivel de importancia y valor de un objeto para el usuario? Esta pregunta fue realizada para saber la estructura bajo la cual se realiza la evaluación de la captura de datos, mediante los procesos realizado en aplicaciones pasadas. Mediante encuestas de afinidad y aplicaciones de selección de objetos, en los cuales se realiza una votación, donde se evalúa la afinidad por puntajes. 43 A continuación, se puede observar en el siguiente capítulo el desarrollo de la metodología ágil SCRUM, con el fin de obtener información necesaria para la planificación en la elaboración del desarrollo del sistema propuesto. Para ello se toma como base los objetivos específicos en el siguiente cuadro: Cuadro n°01: Objetivos Específicos del sistema propuesto ID Objetivos Especifico 1 Realizar el levantamiento de información de los requerimientos actuales de la empresa Predictvia para la captura de datos. 2 Analizar los requerimientos dictados por la empresa para la selección de la metodología a emplear. 3 Establecer las interfaces gráficas y modelo de base de datos. 4 Seleccionar las herramientas necesarias para la realización de la aplicación. 5 Establecer y desarrollar el algoritmo necesario para crear un sistema que sirva de solución al problema general de la empresa. 6 Definir la estrategia de implantación de la aplicación y elegir en que medios se distribuirán. Fuente: serrada (2014) Dados estos objetivos específicos, se elabora las Historias de Usuario (User Stories) las cuales describen las siguientes actividades para el desarrollo del sistema propuesto: 44 Cuadro n°02: Historias de Usuario 1 ID Iteración ID obj. Historia de Usuario Puntos Especifico 1 1 1 Como desarrollador, deseo conocer los 4 requerimientos de los procesos de la empresa para así desarrollar el diseño de la aplicación. 2 1 2 Como desarrollador, deseo estructurar y 2 denotar los requerimientos dados de las entrevistas para poder seleccionar la metodología necesaria para el sistema 3 1 3 Como programador, puedo generar el 2 modelo entidad - relación con los requerimientos del sistema. Fuente: serrada (2014) Sprint/Iteración 1 Después de tener y analizar las Historias de usuario, procedemos a desglosar las tareas del Sprint Backlog número uno, la cual tiene como duración de 1 semana: 45 Cuadro n°03: Sprint número 1 ID Descripción 1 Puntos Identificar las especificaciones técnicas de los servidores de la 1 empresa. 2 Enumerar las herramientas utilizadas para la elaboración y 1 desarrollo de las aplicaciones de la empresa. 3 Investigar y analizar los estándares de programación utilizados en el 2 desarrollo tecnologico de la empresa. 4 Investigar y analizar los estándares de la Base de Datos de la 2 empresa. 5 Describir el proceso para recopilar información del usuario en la 2 empresa Fuente: serrada (2014) A continuación, dado las Historias de Usuario, se desglosa las tareas específicas del Sprint Backlog, el cual sirve como soporte en los resultados obtenidos por medios de los instrumentos de recolección de datos. Elemento número 1 del Sprint Backlog 1 Descripción: Identificar las especificaciones técnicas de los servidores de la empresa. La empresa Predictvia maneja el desarrollo de sus aplicaciones y productos bajo el siguiente servidor: 46 Alias: App Develop Sistema Operativo: Ubuntu 12.04 LTS Descripción: En este servidor se albergan la cantidad de data necesaria para los procesos de desarrollo de la empresa Predictvia. Elemento número 2 del Sprint Backlog 1 Descripción: Enumerar las herramientas utilizadas para la elaboración y desarrollo de las aplicaciones de la empresa. Las herramientas que posee y maneja la sección tecnológica de la empresa son las siguientes: 1. Lenguaje de programación: a. Flash / Action Script b. PHP 2. Gestor de Base de Datos: a. MySQL Elemento número 3 del Sprint Backlog 1 Descripción: Investigar y analizar los estándares de programación utilizados en el desarrollo tecnológico de la empresa. En lo que concierne a los estándares que utiliza la empresa Predictvia, utilizan un framework que maneja lenguajes de programación PHP, JavaScript, CSS y HTML llamado Zend Framework. Zend utiliza una serie de modelos a seguir, los cuales proveen de una estandarización funcional, para mejorar su uso: Constantes: Deben estar escritas siempre en mayúsculas, pueden poseer nombres compuestos con caracteres alfanuméricos. 47 Clases: En este caso, Zend Framework define los nombres de las clases según la carpeta raíz en donde esté localizada, sustituyendo las barras “/” de la ruta por barras bajas “_”. Ejemplo: Zend_DB_User. Métodos: Estos solo deben empezar con letra minúscula, utilizando el formato “camelCase”, el cual consiste en colocar la primera letra de la segunda palabra (si posee alguna) en mayúscula. Variable: En variables, los nombres poseen caracteres alfanuméricos a excepción de las variables de tipo private o protected que deben empezar con una barra baja “_”. Elemento número 4 del Sprint Backlog 1 Descripción: Investigar y analizar los estándares de la Base de Datos de la empresa. Los estándares con los cuales la empresa se rige son los siguientes: Nombre de la Base de Datos: o Utilizar el mismo nombre que el sistema al que pertenece. o Utilizar capitalización estilo PascalCase. Ejemplo: DbQuiniela. DbAftermath. Tablas: o Se recomienda utilizar plural para facilitar el entendimiento de su contenido. 48 o Utilizar prefijo para facilitar la identificación del mismo. Prefijo “tbl_”. Ejemplo: tbl_usuarios, tbl_fechas. Columnas: o Las columnas que posean tablas primarias deberán ser identificadas con el prefijo “pk_”. o Las columnas que posean tablas foráneas deberán ser identificadas con el prefijo “fk_”. o Las columnas siguen un orden en específico: primero las claves primarias, seguidas por las claves foráneas si existe alguna seguido por el resto de las columnas. Elemento número 5 del Sprint Backlog 1 Descripción: Describir el proceso para recopilar información del usuario en la empresa En lo que concierne a la recopilación de información, la empresa prosigue el proceso tomando en cuenta los siguientes puntos claves: Frecuencia de Data: Uno de los objetivos de la empresa es tener una constancia en la data que los usuarios de sus aplicaciones proveen, que esté constantemente actualizando de manera entretenida y a su vez asertiva. Esto para tener un mejor resultado al usuario final. Aplicaciones con entretenimiento: Que el usuario final pueda tener una experiencia placentera y agradable, es uno de los pilares de la empresa en consideración al desarrollo de sus aplicaciones. Esto debido a que el valor del usuario en la información que se obtiene tiene mayor validez y mayor importancia, ya que es proporcionada de una manera no obligatoria. 49 Frecuencia de Usuarios: La cantidad de usuarios que visitan o utilizan las aplicaciones de la empresa es un dato muy importante en el momento de estructurar la arquitectura del sistema. Este número es proporcionado por el llamado por sus siglas en inglés “MAU” y “DAU”, los cuales significan Usuarios Activos Mensuales (MAU) y Usuarios Activos Diarios (DAU). Según Shanti Bergel en su publicación “Desing for Monetization: Hot to App THE Key Metric In Social Apps”, podemos interpretar que teniendo en cuenta los MAU y los DAU, podemos calcular que la división DAU entre MAU (DAU / MAU) nos puede decir que tan bien se mantiene nuestra aplicación. 50 CAPITULO V Sistema Propuesto En el siguiente capítulo se describen todos los procedimientos realizados para llevar a cabo el desarrollo y el diseño del sistema propuesto mediante a la metodología ágil SCRUM. Luego de desarrollar la Iteración número 1 del desarrollo, podemos tomar lo requerimientos de los procesos de la empresa, y generar el nuevo Sprint Backlog correspondiente a la segunda iteración que tendrá una duración estimada de una semana. Sprint/Iteración 2 Tabla n°04: Sprint Backlog 2 ID Descripción Puntos 1 Analizar los procesos de las aplicaciones actuales de la empresa. (Encuesta Predictvia, Protagonista de Nuestra Tele). 5 2 Construir las Product Backlog basados en el análisis de los sistemas Actuales. 3 Total 8 Fuente serrada (2014) Elemento número 1 del Sprint Backlog 2 Descripción: Analizar los procesos de las aplicaciones actuales. (Encuesta Predictvia, Protagonista de Nuestra Tele). La empresa Predictvia posee dos aplicaciones con la finalidad de la recopilación de información para el motor de predicción que ellos poseen, estos son: Protagonistas de Nuestra tele: En protagonistas de nuestra tele el jugador es presentado con distintos participantes del show de televisión. La idea era que el jugador debía elegir entre uno de dos actores y el sistema determina cuáles son sus favoritos luego de comparar a todos contra todos. 51 Esta aplicación compara un elemento con otro (un protagonista con otro), y era necesario hacer una comparación masiva para poder dar con la ponderación final del elemento. Siendo esto muy elaborado y complejo para lograr obtener una votación por un solo elemento de parte del usuario. Encuesta Predictvia: Esta encuesta consta de una serie de: Marcas, actores, lugares, objetos, gustos, los cuales se les denomina elementos. Cada elemento denominado por la empresa es mostrado al usuario junto a una tabla de votación denominada de la siguiente manera: o -3: Corresponde al voto más bajo equivalente a “Odiar” este elemento. o -2: Corresponde al voto equivalente a “No me gusta” este elemento. o -1: Corresponde al voto equivalente a “No está bien” este elemento. o 0: Corresponde al voto equivalente a “No me importa” este elemento. o 1: Corresponde al voto equivalente a “Esta bien” este elemento. o 2: Corresponde al voto equivalente a “Me gusta” este elemento. o 3: Corresponde al voto equivalente a “Amo” este elemento. Esta encuesta sufre de una alta tasa de deserción con más del 40%, esto indica que hay un gran porcentaje de usuarios que no completan la encuesta, haciendo que esta aplicación se vuelva ineficiente al momento de transferir la data al motor de predictivo de la empresa. Elemento número 2 del Sprint Backlog 2 Descripción: Construir las Product Backlog basados en el análisis de los sistema Actuales. Realizado previamente el análisis de las aplicaciones de los sistemas actuales de la empresa, se debe definir el Product Backlog para la realización del diseño y desarrollo del sistema propuesto. El presente sistema será el de una aplicación de entretenimiento digital, con técnicas de gamificación que sirvan de herramienta para la recopilación de información para el motor predictivo de la empresa. A continuación la estructura del Product Backlog de este sistema: 52 Tabla n°05: Product Backlog ID Descripción 1 Generar el diseño de flujo de pantallas y escenarios necesarios para la estructura del sistema. 2 Diseñar el modelo entidad relación de la base de datos que se ajuste a las necesidades del sistema propuesto. 3 El jugador puede elegir una misión específica para rescatar un objeto por ejemplo la Pizza porque le gusta mucho. 4 El jugador tiene una limitación de tiempo que le obliga regresar a la base con los objetos que rescata antes de destruirse con por motivo de la radiación de los cristales. 4 El jugador tiene una limitación de espacio de los objetos que puede cargar, que ayuda a determinar un nivel de gusto por el objeto basado en el orden prioridad a la hora de rescatarlos. 5 El Jugador puede destruir los objetos que no quiere indicando su disgusto por el objeto. 6 El jugador administrará sus recursos para realizar tareas más complejas como destruir enemigos y resolver acertijos solo por aquellos objetos que le interesan. Fuente: serrada (2014) Sprint/Iteración 3 Tabla n°06: Sprint Backlog 3 ID Descripción Puntos 1 Diagramar e implementar las ventanas finales necesarias para el funcionamiento del flujo del escenario de selección de niveles. 4 2 Diagramar e implementar las ventanas finales necesarias para el funcionamiento del sistema de votaciones del sistema. 4 3 Diagramar e implementar las ventanas finales necesarias para el funcionamiento del sistema de juego de la aplicacion. 4 4 Diagramar e implementar las ventanas finales necesarias para el 4 53 funcionamiento del flujo del escenario de historia del sistema. Total 16 Fuente: serrada (2014) Elemento número 1 del Sprint Backlog 3 Descripción: Diagramar e implementar las ventanas finales necesarias para el funcionamiento del flujo del escenario de selección de niveles. En esta Iteración se definen e integran todas las pantallas que componen al flujo de escenario de selección de niveles, junto con la descripción de su funcionalidad. Gráfico n°02: Pantalla de Flujo de Selección de niveles En el gráfico se puede observar que esta es la pantalla en la cual el usuario tendrá la posibilidad de acceder a los distintos módulos que esta aplicación presenta. Esta pantalla define un mapa o mundo en el cual el cliente se encuentra para poder seleccionar una misión. Dentro de esta misión, el motor de análisis predictivo de la Empresa podrá definir elementos para que el usuario pueda ejercer acciones sobre este (recoger, destruir o ignorar). En esta pantalla se dispone a su vez de tres botones en el costado posterior derecho, los cuales son: 54 Botón de laboratorio (imagen de los dos matraz de Erlenmeyer): La funcionalidad de este botón es la de re direccionar al usuario a la escena del “Laboratorio”, donde el usuario podrá ver los elementos que el rescato de las misiones y poder votar por ellos si así lo desea. Botón de herramientas (imagen de engranajes): La funcionalidad de este botón es la de abrir el menú de opciones para que el usuario pueda modificar aspectos del juego como el manejo de su sonido, como la opción de poder repetir las instrucciones del tutorial del sistema. Botón de Historias (Libro de historietas): La funcionalidad de este botón es la de abrir un menú de selección de historias para que el usuario pueda repetir el segmento de historias que el sistema posee y habilita a lo largo de la aplicación. Elemento número 2 del Sprint Backlog 3 Descripción: Diagramar e implementar las ventanas finales necesarias para el funcionamiento del sistema de votaciones del sistema propuesto. En esta Iteración se definen e integran todas las pantallas que componen el sistema de votaciones del sistema. Gráfico n°03: Pantalla de Sistema de votación 01 55 En esta pantalla se presentan los elementos con los cual el usuario tuvo interacción en las misiones, ya sea para rescatarlo u obtenerlo, como también el de destruirlo. Esta es una de las más importantes partes de este sistema, ya que es el núcleo de y razón de este sistema para la empresa. Dentro de esta pantalla el usuario podrá hacer clic a cualquier elemento que esté a su disposición para poder obtener información de él así como se muestra a continuación: Gráfico n°04: Pantalla de Sistema de votación 02 Una vez que el usuario consulta la información de un elemento en la pantalla anteriormente explicada, se le re direcciona a este gráfico n° , aquí se detalla el elemento con su respectiva imagen, titulo, y un texto con una breve descripción de lo que el elemento representa en el mundo real. De la misma manera se encuentran 7 botones en la parte posterior izquierda de esta pantalla. Estos botones representan la tabla de acciones de votaciones que la empresa definió para la votación de estos elementos las cuales son respectivamente de izquierda a derecha: -3: Corresponde al voto más bajo equivalente a “Odiar” este elemento. -2: Corresponde al voto equivalente a “No me gusta” este elemento. -1: Corresponde al voto equivalente a “No está bien” este elemento. 0: Corresponde al voto equivalente a “No me importa” este elemento. 1: Corresponde al voto equivalente a “Esta bien” este elemento. 56 2: Corresponde al voto equivalente a “Me gusta” este elemento. 3: Corresponde al voto equivalente a “Amo” este elemento. El usuario tendrá la opción de interactuar con cualquier botón de votación que el desee, siendo esta data almacenada en la Base de datos del sistema, para su posterior transmisión al motor de predicción que provee la empresa. Esto es uno de las acciones con mayor importancia en todo el sistema, pues es el que da respuesta directa a uno de los problemas de la Empresa con respecto a la recopilación de datos. Elemento número 3 del Sprint Backlog 3 Descripción: Diagramar e implementar las ventanas finales necesarias para el funcionamiento del sistema de juego de la aplicación. En esta Iteración se definen e integran todas las pantallas que componen el sistema de juego de la aplicación. Este punto se refiere a la mayor parte de las mecánicas de gamificación implementadas para el disfrute del usuario. Gráfico n°05: Pantalla de Sistema de juego 01 Como podemos observar en el gráfico n° el usuario es representado por un vehículo, el cual puede desplazarse dentro del mundo que seleccionó previamente 57 para la recolección de elementos que se encuentran esparcidos a lo largo del mapa. Podemos ver varios aspectos de esta pantalla, se explicara uno a uno: En la parte superior izquierda, se encuentra un contador de “Bishcoins”, este representa el sistema económico de la aplicación, la cual agrega un valor equivalente al dinero dentro de la misma, con ella se podrá efectuar compras por mejoras, habilidades o facilidades en la aplicación. En la parte superior central, hay un medidor de puntos, seguido posteriormente de un reloj, el cual nos limita de cuenta regresiva la cantidad de tiempo que disponemos de completar dicha misión. El medidor de puntos aumenta a medida que el usuario haga acciones dentro del juegos, algunas de ellas sería el recoger un elemento, destruir un elemento, destruir a un enemigo, entre otros. Seguidamente tenemos un dos contadores: el primero que posee un trofeo de imagen, es el contador de los elementos que se encuentran actualmente en el mapa, a medida que el usuario va coleccionando o eliminando dichos elementos el contador se actualizará. A su vez, el próximo contador que presenta con una imagen de un cristal, se trata de una mecánica de gamificación, en la cual el usuario tendrá que destruir en su totalidad los cristales que se encuentran dentro del mapa, para poder así obtener más puntos y completar un cien por ciento del mapa. En la posición superior derecha, se encuentra un mapa, en el cual muestra la posición del usuario y a su vez muestra dentro de ella los elementos, cristales u otros objetivos de relevancia para el usuario en el sistema de juego. En la parte inferior derecha se encuentra el botón de almacenamiento de elementos. En cada misión que el jugador decida ejecutar dispondrá solamente de un espacio para guardar cuatro elementos por partida. Esta es otra mecánica para que el usuario se vea en la necesidad de tener que ejecutar la misión más de una vez. Con esto generamos más constancia de parte del usuario, haciendo aún más valiosa la información que el nos va a proveer. 58 Gráfico n°06: Pantalla de Sistema de juego 02 Esta pantalla se encuentra dentro de nuestro sistema de juego. Aparece al momento en que el usuario interactúa con un doble clic al elemento dentro del juego, posterior a esto el jugador selecciona la opción de información del elemento, para así poder obtener una información más detallada del objeto dentro del juego. Gráfico n°07: Pantalla de Sistema de juego 03 59 Una vez completado el propósito u objetivo de la misión elegida, aparecerá esta pantalla de resultados. Como podemos ver, se muestra al usuario los elementos que rescato, los elementos que destruyó, el total de cristales destruidos, y el puntaje total. A su vez el usuario tiene la opción de poder salir y salvar la misión o de volver a realizar la misión si así lo desee. Esta mecánica es para que el usuario pueda superar el puntaje anterior, creando así una competitividad individual que genera más frecuencia de uso. Elemento número 4 del Sprint Backlog 3 Descripción: Diagramar e implementar las ventanas finales necesarias para el funcionamiento del flujo del escenario de historia del sistema. Gráfico n°08: Pantalla de flujo del escenario de historia 01 Esta sección de esta pantalla, contiene un módulo dentro del sistema en el cual detalla una serie de imágenes en pantalla seguida de unos textos, los cuales sirven al usuario de historia. Esta historia explica la temática que se encuentra dentro de esta aplicación, la cual sirve de valor agregado para el usuario, pues se envuelve en la temática de esta aplicación, teniendo como consecuencia obtener un motivo “lógico” y con “sentido” que ayuda al incremento de usabilidad de esta aplicación de un mismo usuario. 60 Gráfico n°09: Pantalla de flujo del escenario de historia 02 Sprint/Iteración 4 Tabla n°07: Sprint Backlog 4 ID Descripción Puntos 1 Elaborar las tablas necesarias en la base de datos para el funcionamiento del módulo de Usuarios 4 2 Elaborar las tablas necesarias en la base de datos para el funcionamiento del módulo de Votaciones 2 3 Elaborar las tablas necesarias en la base de datos para el funcionamiento del módulo de Localización 2 4 Elaborar las tablas necesarias en la base de datos para el funcionamiento del módulo de Elemento 8 Total 16 Fuente: serrada (2014) A continuación se presenta el modelo de la base de datos en la gráfica n° 10, el cual servirá de base esencial para todo el sistema propuesto 61 Grafica n°10: Modelo Entidad Relación de la Base de Datos 62 Elemento número 1 del Sprint Backlog 4 Descripción: Elaborar las tablas necesarias en la base de datos para el funcionamiento del módulo de Usuarios Para este módulo se encuentra presente un conjunto de tablas necesarias para el funcionamiento del mismo. tbl_user tbl_user_megatiles tbl_user_missions tbl_user_trophies tbl_user_vehicles tbl_user_friends Con la finalidad de explicar el funcionamiento de este módulo de base de datos, se presenta su estructura, composición y funcionalidad de las tablas antes mencionadas. A. tbl_user Cuadro n°08: Diccionario de Datos tbl_user Nombre Tipo de Dato Permitir Nulo Clave Primaria tcy_user_id int No Si u_facebook_id Varchar Si Multiple u_name Varchar No No u_tutorial_done DateTime Si No u_created DateTime Si No u_last_update TimeStamp Si No u_bishcoins Text Si No u_picture Text Si No 63 Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada a cada usuario que utilice la aplicación propuesta. En ella existen campos que ayudarán al flujo de uso de la aplicación. B. tbl_user_megatiles Cuadro n°09: Diccionario de Datos tbl_user_megatiles Nombre Tipo de Dato Permitir Nulo Clave Primaria user_megatile_id Int No Si um_user_id Int No Multiple um_megatile_id Int No Multiple um_cleared Int No No um_unlocked Int No No um_created DateTime Si No Si No um_last_updated TimeStamp Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada a cada usuario junto a su respectivo “megatile”. En este sistema, Megatile se define como el conjunto de misiones con elementos definidos por el motor de predicción de la empresa que posee un usuario. Este posee datos indispensables para el flujo del escenario de selección de niveles, ya que determina la identificación, cantidad y estado del conjunto de misiones que posee un usuario en específico. C. tbl_user_missions 64 Cuadro n°10: Diccionario de Datos tbl_user_missions Nombre Tipo de Dato Permitir Nulo Clave Primaria user_mission_id Int No Si um_user_id Int No Multiple um_mission_id Int No Multiple um_identifier Varchar Si No um_json_map MediumText Si No um_finished TinyInt Si No um_active um_active No No um_source Text Si No um_n_pickups Int No No um_pickups Text Si No um_n_final_pickups Int No No um_final_pickups Text Si No um_created DateTime Si No um_last_updated TimeStamp No No um_score Int Si No um_stats Text Si No Si No um_json_mission_extras MediumText Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada a cada usuario junto a su respectiva “misión”. En este sistema, Misión se define como el espacio dentro del sistema de juego, el cual está compuesto por un conjunto de elementos a rescatar, un conjunto de enemigos de diferentes tipos, una estructura gráfica única para cada misión y una 65 cantidad de cristales por destruir los cuales conforman las mecánicas que componen el núcleo central del módulo de sistema de juego para este proyecto. D. tbl_user_trophies Cuadro n°11: Diccionario de Datos tbl_user_trophies Nombre Tipo de Dato Permitir Nulo Clave Primaria user_trophy_id Int No Si ut_user_id Int No Multiple ut_object_id Int No Multiple ut_user_mission_id Int No No ut_mission_id Int No No ut_created DateTime Si No um_last_updated TimeStamp Si No Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada a cada elemento que existe en todo el sistema propuesto. A lo largo de este sistema se trata el término “Elemento”, este se define como cualquier marca, sujeto, película, música u objeto que defina la empresa, el cual puede ser ponderado con la tabla de acción de votos definida por Predictvia. Esto implica, que cualquier necesidad de información que posea la empresa respecto a un tema en específico, lo puede transformar en un elemento para este sistema, y así obtener la información necesaria de parte de los usuarios que usen el mismo. Estos campos, almacenan la información de los Elementos que el usuario ha obtenido o destruido a lo largo del desarrollo del sistema de juego que presenta este proyecto. 66 E. tbl_user_vehicles Cuadro n°12: Diccionario de Datos tbl_user_vehicles Nombre Tipo de Dato Permitir Nulo Clave Primaria user_vehicle_id Int No Si uv_user_id Int No Multiple uv_vehicle_id Int No Multiple uv_cryogel Text No No uv_fuel Text No No uv_damage Text No No uv_body Text No No uv_velocity Text No No uv_weapon Text No No uv_shield Text No No uv_bodiesBought Text No No uv_shieldValue No No Text Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada a la mecánica de gamificación la cual permite al usuario cambiar el aspecto y atributos del vehículo que es seleccionado para utilizar en cada misión dentro del sistema de juego. Contiene campos los cuales dan las especificaciones de dichos vehículos relacionados con un usuario en particular. 67 F. tbl_user_friends Cuadro n°13: Diccionario de Datos tbl_user_friends Nombre Tipo de Dato Permitir Nulo Clave Primaria user_friend_id Int No Si user_id Int No No friend_user_id Int Si No friend_facebook_id Varchar Si No friend_name Varchar Si No is_registered TinyInt No No Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada a la integración social de esta aplicación. El sistema propuesto tiene la capacidad de iniciar sesión a la red social conocida como Facebook para poder invitar y agregar la lista de amigos del usuario que utilice este sistema. Los campos, señalados en esta tabla, almacenan la información para que el usuario disponga de un módulo social el cual genera una mecánica de gamificación de mucho valor conocida como competitividad social. La cual es uno de los atributos más importantes para generar el aumento de usuarios activos para este sistema, y así obtener mayor información para el motor de predicción de la empresa Predictvia. Elemento número 2 del Sprint Backlog 4 Descripción: Elaborar las tablas necesarias en la base de datos para el funcionamiento del módulo de Votaciones. Para este módulo se encuentra presente un conjunto de tablas necesarias para el funcionamiento del mismo. tbl_votes tbl_trophy_types 68 tbl_trophies_vs_votes Con la finalidad de explicar el funcionamiento de este módulo de base de datos, se presenta su estructura, composición y funcionalidad de las tablas antes mencionadas. A. tbl_votes Cuadro n°14: Diccionario de Datos tbl_votes Nombre vote_id Tipo de Dato Permitir Nulo Clave Primaria Int v_vote_value Varchar No Si Si No Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada a las votaciones que los usuarios pueden realizar para cada elemento que exista en el sistema. Está compuesto por dos campos: El campo con su identificador en específico, y otro campo con la ponderación correspondiente a la tabla de acciones de votaciones de la empresa. B. tbl_trophy_types Cuadro n°15: Diccionario de Datos tbl_trophy_types Nombre Tipo de Dato Permitir Nulo Clave Primaria trophy_type_id Int No Si tt_trophy_type No No Int Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada a los elementos que estarán disponibles en el módulo del sistema determinado “laboratorio” explicado anteriormente en las pantallas. C. tbl_trophies_vs_votes 69 Cuadro n°16: Diccionario de Datos tbl_trophies_vs_votes Nombre Tipo de Dato Permitir Nulo Clave Primaria trophy_vs_vote_id Int No Si tv_user_trophy_id Int No No tv_vote_id Int No No tv_scene_id Int No No tv_trophy_type_id Int Si No tv_created DateTime Si No tv_last_updated TimeStamp Si No Fuente: serrada (2014) Esta tabla es una tabla generada por la relación entre la tabla “tbl_trophies” y la tabla “tbl_votes” por motivos de normalización de estas. Funciona de intermediaria entre las dos tablas. Elemento número 3 del Sprint Backlog 4 Descripción: Elaborar las tablas necesarias en la base de datos para el funcionamiento del módulo de Localización. Para este módulo se encuentra presente un conjunto de tablas necesarias para el funcionamiento del mismo. tbl_languages tbl_missions_vs_text_values tbl_text_identifiers Con la finalidad de explicar el funcionamiento de este módulo de base de datos, se presenta su estructura, composición y funcionalidad de las tablas antes mencionadas. 70 A. tbl_languages Cuadro n°17: Diccionario de Datos tbl_languages Nombre Tipo de Dato Permitir Nulo Clave Primaria languages_id Int No Si language Varchar Si No language_acronym Varchar Si No Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada a la localización del juego. Esto quiere decir, que toda la data relacionada al manejo de la selección del idioma del juego es almacenada en esta tabla. Esto debido a que el juego se encuentra tanto en el idioma Inglés, como el idioma Español. B. tbl_missions_vs_text_values Cuadro n°18: Diccionario de Datos tbl_missions_vs_text_values Nombre Tipo de Dato Permitir Nulo Clave Primaria mission_vs_text_value_id Int No Si fk_mission Int No No fk_text_identifier Int No No fk_text_value Int No No Fuente: serrada (2014) Esta tabla es una tabla generada por la relación entre la tabla “tbl_missions” y la tabla “tbl_text_values” por motivos de normalización de estas. Funciona de intermediaria entre las dos tablas. 71 C. tbl_text_identifiers Cuadro n°19: Diccionario de Datos tbl_text_identifiers Nombre Tipo de Dato Permitir Nulo Clave Primaria text_identifier_id Int No Si ti_language_id Int No No ti_scene_id Int No No ti_name Varchar Si No Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada al manejo de los textos provenientes de los archivos de localización del sistema propuesto, para ser desplegados en las diferentes escenas y pantallas que posee el sistema. Elemento número 4 del Sprint Backlog 4 Descripción: Elaborar las tablas necesarias en la base de datos para el funcionamiento del módulo de Elemento. Para este módulo se encuentra presente un conjunto de tablas necesarias para el funcionamiento del mismo. tbl_categories tbl_logins tbl_megamaps tbl_megatiles tbl_object_media tbl_object_sources tbl_objects tbl_objects_vs_categories tbl_scenes 72 Con la finalidad de explicar el funcionamiento de este módulo de base de datos, se presenta su estructura, composición y funcionalidad de las tablas antes mencionadas. A. tbl_categories Cuadro n°20: Diccionario de Datos tbl_categories Nombre Tipo de Dato Permitir Nulo Clave Primaria category_id Int No Si c_name Varchar Si No Si No parent_category_id Int Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada a las categorías presentes en el sistema de votación y el sistema de juego. Esto va directamente relacionadas a su vez con las llamadas misiones en este sistema. B. tbl_logins Cuadro n°21: Diccionario de Datos tbl_logins Nombre l_user_id Tipo de Dato Permitir Nulo Clave Primaria Int No Si l_last_login TimeStamp No No l_operation Varchar No No Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada al inicio de sesión realizado por los usuarios en este sistema propuesto. Esto se utiliza para llevar un registro en los análisis del sistema de la empresa, en cuanto a número de usuarios activos, y otros datos de interés para Predictvia. 73 C. tbl_megamaps Cuadro n°22: Diccionario de Datos tbl_megamaps Nombre Tipo de Dato Permitir Nulo Clave Primaria megamap_id Int No Si mm_width Int No No mm_height Int No No mm_name Varchar No No status Int No No mm_posX Int No No mm_posY Int No No Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada al conjunto de “Megatiles” que posea el mismo. Los campos almacenan información de identificación y posicionamiento de todo que puede poseer dentro el determinado “Megatiles” definido a continuación. D. tbl_megatiles Cuadro n°23: Diccionario de Datos tbl_megatiles Nombre megatile_id Tipo de Dato Permitir Nulo Clave Primaria Int No Si mt_megamap_id TimeStamp No No mt_name No No Varchar Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada al conjunto de atributos que posee el llamado “Megatile” 74 Dentro de este sistema un “Megatile” consiste en el conjunto de misiones que posee un usuario en cierto tiempo determinado. Esto se evidencia en el sistema de selección de misiones definido y mostrado anteriormente. E. tbl_object_media Cuadro n°24: Diccionario de Datos tbl_object_media Nombre Tipo de Dato Permitir Nulo Clave Primaria object_media_id Int No Si om_object_id Int No No om_type Varchar No No om_source_link Text No No om_pixels_width Int Si No om_pixels_height Int Si No om_created No No No No DateTime om_last_updated TimeStamp Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada a las imágenes que poseen los elementos dentro del sistema de juego y sistema de votaciones. El propósito de la misma es crear un vínculo entre la identificación del elemento definido por la empresa y las imágenes correspondientes que identifican a la misma. 75 F. tbl_object_sources Cuadro n°25: Diccionario de Datos tbl_object_sources Nombre Tipo de Dato Permitir Nulo Clave Primaria object_source_id Int No Si os_object_id Int No No os_summary Varchar Si No os_language_id Text No No os_created DateTime No No os_last_updated TimeStamp Si No Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada a la información que poseen los elementos dentro del sistema de juego y sistema de votaciones. El propósito de la misma es crear un vínculo entre la identificación del elemento definido por la empresa y la información correspondientes que identifican a la misma. G. tbl_objects Cuadro n°26: Diccionario de Datos tbl_objects Nombre Tipo de Dato Permitir Nulo Clave Primaria tcy_object_id Int No Si o_name Int No No o_created DateTime Si No No No o_last_updated TimeStamp Fuente: serrada (2014) 76 Esta tabla tiene como función almacenar toda la data relacionada a la creacion de un elemento nuevo de parte de la Empresa. En esta tabla se almacena la información necesaria para definir un elemento nuevo. Proceso el cual realiza la empresa Predictvia cuando desea agregar al sistema un nuevo elemento. H. tbl_objects_vs_categories Cuadro n°27: Diccionario de Datos tbl_objects_vs_categories Nombre Tipo de Dato Permitir Nulo Clave Primaria objects_vs_category_id Int No Si ovc_object_id Int No No ovc_category_id Int No No Fuente: serrada (2014) Esta tabla es una tabla generada por la relación entre la tabla “tbl_objects” y la tabla “tbl_categories” por motivos de normalización de estas. Funciona de intermediaria entre las dos tablas. I. tbl_scenes Cuadro n°28: Diccionario de Datos tbl_scenes Nombre Tipo de Dato Permitir Nulo Clave Primaria scene_id Int No Si s_name Si No Varchar Fuente: serrada (2014) Esta tabla tiene como función almacenar toda la data relacionada a los diferentes tipos de escenarios o pantallas las cuales están a disposición del usuario para acceder o interactuar. Como por ejemplo: La pantalla de inicio, la pantalla de historia, la pantalla de laboratorio, la pantalla de selección de misión, entre otros. 77 Desarrollo Esta sección abordo el desarrollo de las actividades que se mostraran a continuación del Product Backlog tomadas como resultado de la elaboración de la metodología y diseño anteriormente elaboradas. Debido a que el código fuente resultante de la elaboración del sistema propuesto es muy extenso, en esta sección nos centraremos en mostrar el flujo de las actividades mediante sus respectivos Sprints/Iteraciones como intervalos de tiempo. Sprint/Iteración 5 Cuadro n°29: Sprint Backlog 5 # Responsable Historia de Usuario Puntos 1 Ismael Serrada Como programador Puedo crear de un vehículo que tenga movilidad en el sistema de juego. 4 2 Ismael Serrada Como programador Puedo hacer que el vehículo pueda recoger y botar un elemento. 2 3 Ismael Serrada Como programador Puedo hacer un mensaje de alerta cuando el vehículo esté lleno 2 4 Ismael Serrada Como programador Puedo hacer que el vehículo cambie de Angulo. 2 78 Gráfico n°11: Burndown Chart del Sprint 5 Sprint/Iteración 6 Cuadro n°30: Sprint Backlog 6 # Responsable Historia de Usuario Puntos 1 Ismael Serrada Como programador Puedo generar un archivo externo con la estructura de los mapas de las misiones 4 2 Ismael Serrada Como programador Puedo cargar múltiples texturas para crear un mapa 4 3 Ismael Serrada Como programador Puedo cargar animaciones para animar objetos que estén en las misiones 2 4 Ismael Serrada Como programador Puedo cargar un elemento de un punto A a un punto B para activar un evento 4 5 Ismael Serrada Como programador Puedo organizar y depurar el código fuente, para optimizar el sistema 2 79 Gráfico n°12: Burndown Chart del Sprint 6 Sprint/Iteración 7 Cuadro n°31: Sprint Backlog 7 # Responsable Historia de Usuario Puntos 1 Ismael Serrada Como programador Puedo modificar la velocidad del vehículo para mejorar su rendimiento. 2 2 Ismael Serrada Como programador Puedo definir zonas de activación, para agregar nuevas mecánicas de juego 4 3 Ismael Serrada Como programador Puedo mostrar un número de elementos recogidos para mostrar su progreso 2 4 Ismael Serrada Como programador Puedo crear un boton de pausa y reanudar para 4 80 utilizarlos cuando sean necesarios. Gráfico n°13 Burndown Chart del Sprint 7 Sprint/Iteración 8 Cuadro n°32: Sprint Backlog 8 # Responsable Historia de Usuario 1 Ismael Serrada Como programador Puedo agregar un área prohibida en la selección de misiones. 4 2 Ismael Serrada Como programador Puedo salvar la data de las misiones en la Base de datos, para poder cambiar su contenido 4 3 Ismael Serrada Como programador Puedo crear cristales en las misiones, para que el jugador pueda destruirlos 4 4 Ismael Como programador 4 81 Puntos Serrada Puedo crear recursos de Agua y energía, para que el jugador pueda tomarlas Gráfico n°14: Burndown Chart del Sprint 8 Sprint/Iteración 9 Cuadro n°33: Sprint Backlog 9 # Responsable Historia de Usuario Puntos 1 Ismael Serrada Como programador Puedo hacer que el vehículo dispare a diferentes niveles 2 2 Ismael Serrada Como programador Puedo agregar un efecto de sonido cuando el jugador le dispara a un cristal 2 3 Ismael Serrada Como programador Puedo agregar sonido a los distintos escenarios del sistema. 4 4 Ismael Como programador 4 82 Serrada Puedo crear objetos explosivos dentro de los mapas Grafico n°15 Burndown Chart del Sprint 9 Pruebas Las actividades que se realizaron durante todo este proceso de desarrollo poseen un criterio de aceptación, razón por la cual, se realizó una prueba al final de cada una de las Iteraciones correspondientes. Si esta no cumple con el criterio de aceptación no puede finalizarse la actividad. A continuación, se muestra el Product Backlog en donde se puede observar las actividades relacionadas al desarrollo del sistema propuesto, al igual que su respectivo criterio de aceptación y su resultado. 83 Cuadro n°34: Product Backlog resultante de la etapa de desarrollo Sprint/ Actividad Iteración 2 Analizar los procesos de las aplicaciones actuales de la empresa. (Encuesta Predictvia, Protagonista de Nuestra Tele). 2 Construir las Product Backlog basados en el análisis de los sistemas Actuales. 3 Diagramar e implementar las ventanas finales necesarias para el funcionamiento del flujo del escenario de selección de niveles. 3 Diagramar e implementar las ventanas finales necesarias para el funcionamiento del sistema de votaciones del sistema propuesto 3 Diagramar e implementar las ventanas finales necesarias para el funcionamiento del sistema de juego de la aplicación. 3 Diagramar e implementar las ventanas finales necesarias para el funcionamiento del flujo del escenario de historia del sistema. Puntos Criterio de Aceptación Aceptada? 5 Realizar una descripción y análisis de las herramientas Si 3 Generar un Product Backlog inicial para el sistema propuesto. Implementar funcionalidad de ventanas de selección de niveles. Si 4 Implementar funcionalidad de ventanas de sistema de votaciones. Si 4 Implementar funcionalidad de ventanas de sistema de juego de la aplicación. Implementar funcionalidad de ventanas necesarias para el funcionamiento del flujo del escenario de historia del sistema. Si 4 4 84 Si Si Cuadro n°34: (cont) Product Backlog resultante de la etapa de desarrollo Sprint/ Actividad Iteración 4 Elaborar las tablas necesarias en la base de datos para el funcionamiento del módulo de Usuarios 4 Elaborar las tablas necesarias en la base de datos para el funcionamiento del módulo de Votaciones 4 Elaborar las tablas necesarias en la base de datos para el funcionamiento del módulo de Localización 4 Elaborar las tablas necesarias en la base de datos para el funcionamiento del módulo de Elemento 5 Como programador Puedo crear de un vehículo que tenga movilidad en el sistema de juego. 5 Como programador Puedo hacer que el vehículo pueda recoger y botar un elemento. 5 Como programador Puedo hacer un mensaje de alerta cuando el vehículo esté lleno 5 Como programador Puedo hacer que el vehículo cambie de ángulo. Puntos 4 Criterio de Aceptación Aceptada? Modelo físico de la base de datos con el diccionario de datos y explicación del funcionamiento. Modelo físico de la base de datos con el diccionario de datos y explicación del funcionamiento. Modelo físico de la base de datos con el diccionario de datos y explicación del funcionamiento. Modelo físico de la base de datos con el diccionario de datos y explicación del funcionamiento. Poder mover el vehículo haciendo clic. Si 2 Permitir el poder recoger y soltar un elemento Si 2 Ver el mensaje de alerta de manera eficiente y correcta. Si 2 Cambio de ángulo cambiando las caras del vehículo correspondientes. Si 2 2 8 4 85 Si Si Si Si Cuadro n°34:(cont) Product Backlog resultante de la etapa de desarrollo Sprint/ Actividad Iteración 6 Como programador Puedo generar un archivo externo con la estructura de los mapas de las misiones 6 Como programador Puedo cargar múltiples texturas para crear un mapa 6 Como programador Puedo cargar animaciones para animar objetos que estén en las misiones 6 Como programador Puedo cargar un elemento de un punto A a un punto B para activar un evento 6 Como programador Puedo organizar y depurar el código fuente, para optimizar el sistema 7 Como programador Puedo modificar la velocidad del vehículo para mejorar su rendimiento. 7 Como programador Puedo definir zonas de activación, para agregar nuevas mecánicas de juego 7 Como programador Puedo mostrar un número de elementos recogidos para mostrar su progreso 7 Como programador Puedo crear un botón de pausa y reanudar para utilizarlos cuando sean necesarios. Puntos Criterio de Aceptación Aceptada? 4 Creación de un archivo JSON. Si 4 Carga de texturas a diferentes misiones del sistema. Si 2 Carga de animaciones en las diferentes misiones. Si 4 Activaciones de eventos respecto a mecánicas de juego. Si 2 Optimización de código y ejecución. Si 2 Mejora de velocidad y rendimiento del vehículo. Si 4 Agregar mecánica de juego mediante zonas de activación de eventos. Contador de elementos en el sistema de juego. Si 2 4 86 Botón de pausa en el sistema de juego. Si Cuadro n°34: (cont) Product Backlog resultante de la etapa de desarrollo Sprint/ Actividad Iteración 8 Como programador Puedo agregar un área prohibida en la selección de misiones. 8 Como programador Puedo salvar la data de las misiones en la Base de datos, para poder cambiar su contenido 8 Como programador Puedo crear cristales en las misiones, para que el jugador pueda destruirlos 8 Como programador Puedo crear recursos de Agua y energía, para que el jugador pueda tomarlas 9 Como programador Puedo hacer que el vehículo dispare a diferentes niveles 9 Como programador Puedo agregar un efecto de sonido cuando el jugador le dispara a un cristal 9 Como programador Puedo agregar sonido a los distintos escenarios del sistema. 9 Como programador Puedo crear objetos explosivos dentro de los mapas Puntos Criterio de Aceptación Aceptada? 4 Crear área deshabitada en selección de misiones. Si 4 Conexión a tablas de base de dato para salvar data. Si 4 Implementación de mecánica de destrucción de cristales. Si 4 Implementación de mecánica. Si 2 Mecánica de disparo de vehículo Si 2 Implementación de efecto de sonido de explosión. Si 4 Implementación general de efectos de sonido. Si 4 Implementación de mecánica de objetos explosivos. Si 87 CONCLUSIONES Se realizaron encuestas del tipo no estructuradas las cuales sirvieron de base para el análisis de requerimiento para la empresa Predictvia. Las cuales dieron como resultado la necesidad de generar mayor atracción en sus aplicaciones y así poder generar información confiable para la empresa y generar una información precisa para el posterior análisis predictivo. Una vez analizados dichos requerimientos de la empresa se determinó el uso de scrum para obtener una mejor visibilidad del proyecto dado los tiempos de entrega tan exigentes para poder tener una retroalimentación constante de cada de hito del desarrollo de proyecto. Lo cual permitió realizar diversos cambios de forma dinámica. El uso de la metodología Scrum permitió la medición de la productividad de los recursos de forma sencilla y al mismo tiempo la creación de un equipo multifuncional y autónomo. La metodología seleccionada reconoce la reducción de actividades burocráticas tales como excesos de documentaciones y reuniones, teniendo un énfasis en la comunicación cara a cara. Dicho esto el proyecto tuvo la capacidad de responder fácil al cambio y los problemas pudieron ser identificados rápidamente. Se evaluó la secuencia de uso de la aplicación y se determinó la arquitectura de la interfaz gráfica, las herramientas a utilizar y el correcto flujo de información. Se realizó un modelo entidad relación el cual sirvió para almacenar datos vitales para este sistema tales como, la información del usuario, de los elementos de afinidad que la empresa necesitaba recaudar para el análisis predictivo, y lo necesarios para el desarrollo del sistema. Se utilizó como engine de desarrollo Starling por su facilidad de uso, por su portabilidad para las distintas plataformas (Móvil, Android, IOS, Web), por el acceso a su documentación y por costos ya que es un framework gratuito, además la experiencia de uso previo sobre. Base de datos: Se mantuvo la utilización de MYSQL para la utilización de base de datos ya que proporcionaban la facilidad de uso por experiencias de la empresa, también su capacidad de conectividad con el engine anterior. De igual manera se usó un repositorio por medio de GITHUB para poder compartir el proyecto en los diferentes departamentos que fuese necesario, y también tener un almacenamiento del mismo en la web. 88 Una vez elegida las herramientas, se crearon historias de usuario para determinar todas las funcionalidades que posee el sistema, y se realizaron los algoritmos necesarios para completar cada una de las funcionalidades. Finalmente, una vez desarrollada y finalizada la aplicación se definió como plataforma de publicación principal una versión de navegador web por medio de la red social de Facebook, para luego poder hacer la publicación correspondiente en plataformas móviles Android por medio de Google Play. Como resultado en un periodo de seis meses de actividad se obtuvo un total de usuarios de mil setenta y siete (1.077). A su vez se mantuvo un MAU (Monthly Active Users) de doscientos setenta y nueve (279) usuarios, hasta un MAU setecientos noventa y ocho (798) usuarios. Se crearon un total de ciento cinco (105) objetos y se registraron un total de ocho mil doscientos cincuenta y ocho (8.258) votos por objetos para un total de vente y cuatro (24) niveles creados. Estos resultados superan el volumen de usuarios de las actividades anteriores en más de un cincuenta por ciento (50%) en la cantidad de usuarios activos y en un setenta y dos punto ocho por ciento (72.8%) la cantidad de votos obtenidos por objetos, demostrando así que este tipo de aplicaciones gamificadas resultan mucho más atractivas para los usuarios, por lo tanto, la empresa recopilo más información para la herramienta de análisis predictivo. 89 BIBLIOGRAFÍA Chulis, K. (2012, Agosto 24). Big data analytics for video, mobile, and social game monetization. [En linea] Disponible en: http://www.ibm.com/developerworks/ssa/industry/library/ba-big-datagaming/. [Consulta: Noviembre,2013] Collier, P. (2011, Diciembre). Compulsion Loops in the Short, Medium and Longterm. Inglaterra. [En linea] Disponible en: http://www.petecollier.com/?p=259. [Consulta: Octubre, 2013]. Crawford, C. (1984). The Art of Computer Game Design. Berkeley: McGrawHill/Osborne Media. Huizinga, J. (1938). Homo Ludens: A study of the play-element in culture. Boston: Beacon. McConnell, S. (1996). Rapid Development. Microsoft Press. Gamificacion S.L. (2013). Gamificación| La vida es un juego. Valencia, España. [En linea] Disponible en: http://www.gamificacion.com/que-es-lagamificacion. [Consulta: Octubre,2013]. Tuutti, C. (2012, April 30). The Business of Federal Technology. [En linea] Disponible en: http://fcw.com/articles/2012/04/30/gamification-tool-federalagencies.aspx. [Consulta: Noviembre,2013]. VGS. (2008, Abril 17). Video Games Sales. San Francisco, California, Estados Unidos de Norte America. [En Linea] Disponible en: http://vgsales.wikia.com/wiki/Video_game_industry. [Consulta: Octubre, 2013]. Association, E. S. (2013). The Esa. [En Linea] Disponible en: http://www.theesa.com/facts/pdfs/esa_ef_2013.pdf [Consulta: Junio, 2014]. USM (2001, Marzo 30). Proyecto Factible. [En linea] Disponible en: http://proyectofactible6.blogspot.com/ [Consulta: Noviembre,2013]. 90 UPEL (2005, Marzo 30). Manual de trabajos de Grado de Especializacion y Maestría y Tésis Doctorales. [En linea] Disponible en: http://neutron.ing.ucv.ve/NormasUPEL2006.pdf [Consulta: Diciembre,2013]. Hurtado de Barrera, J. (2000). Metodología de la Investigación Holística. Caracas: Spypal. Schwaber, K. Sutherland, J (1990). Improving the profession of Software Development. [En linea] Disponible en: https://www.scrum.org/ [Consulta: Enero,2014]. Cerda, H. (1991). Los elementos de la investigación. Bogota: El Buho. Fernández, C. (2002). Metodología de la investigación. Mc Graw Hill. Gabaldón, N. (2001). Como se elabora un proyecto de investigacion. [En Linea] Disponible en: http://dip.una.edu.ve/mae/metodologiaII/paginas/Belestrini,%20M%20Cap% 20VII%20U4.pdf [Consulta en: Noviembre, 2013]. Hurtado de Barrera (2000). Población y Muestra. [En Linea] Disponible en: http://msctecnologiaeducativa3.blogspot.com/p/poblacion-ymuestra_19.html. [Consultado en: Diciembre, 2013]. Scrum Org (2009). Improving the profession of software Development. [En Linea] Disponible en: https://www.scrum.org. [Consulta en: Octubre, 2013]. Scrum Methodology (2010). Learn Scrum: Scrum Methology. [En Linea] Disponible en: http://scrummethodology.com/. [Consulta: Octubre, 2013]. 91 ANEXOS ANEXO A: Entrevista a Gerente de Producto e Ingeniero de datos de la empresa Predictvia C.A 1. Describa las herramientas que se han utilizado en el pasado para recopilar los usuarios. ___________________________________________________________ ___________________________________________________________ ___________________________________________________________ ___________________________________________________________ ___________________________________________________________ ___________________________________________________________ 2. Que inconvenientes o problemas tiene o ha tenido la empresa para el proceso de captura de datos de los usuarios? ___________________________________________________________ ___________________________________________________________ ___________________________________________________________ ___________________________________________________________ ___________________________________________________________ ___________________________________________________________ 3. Cuál es el proceso para medir el nivel de importancia y valor de un objeto para el usuario? ___________________________________________________________ ___________________________________________________________ ___________________________________________________________ 92