UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA
La Universidad Católica de Loja
ÁREA TÉCNICA
TÍTULO DE INGENIERO EN SISTEMAS INFORMÁTICOS Y
COMPUTACIÓN
Intercambio síncrono de información a través de un video juego en
dispositivos móviles.
TRABAJO DE TITULACIÓN
AUTOR
: Chalán Romero, Luis Claudio
Loaiza Rosas, Roberth Paúl
DIRECTOR
: Torres Tandazo, Rommel Vicente, PhD.
Esta versión digital, ha sido acreditada bajo la licencia Creative Commons 4.0, CC BY-NY-SA: Reconocimiento-No comercial-Compartir igual; la cual permite copiar, distribuir y comunicar públicamente la obra, mientras se reconozca la autoría original, no se utilice con fines comerciales y se permiten obras derivadas, siempre que mantenga la misma licencia al ser divulgada. http://creativecommons.org/licenses/by-nc-sa/4.0/deed.es
APROBACIÓN DEL DIRECTOR DEL TRABAJO DE TITULACIÓN
Ph.D.
Rommel Vicente Torres Tandazo.
DOCENTE DE LA TITULACIÓN
De mi consideración:
El presente trabajo de titulación denominado: “Intercambio síncrono de información a través de un video juego en dispositivos móviles”. realizado por Luis Claudio Chalán
Romero - Roberth Paúl Loaiza Rosas, ha sido orientado y revisado durante su ejecución, por cuanto se aprueba la presentación del mismo.
Loja, Septiembre de 2016
f). . .
Rommel Vicente Torres Tandazo, PhD
DECLARACIÓN DE AUTORÍA Y CESIÓN DE DERECHOS
Nosotros, Luis Claudio Chalán Romeroy Roberth Paúl Loaiza Rosas declaramos ser autores del presente trabajo de titulación “Intercambio síncrono de información a través de
un video juego en dispositivos móviles.”, de la Titulación de Ingeniero en Sistemas Informáticos y Computación, siendo Rommel Vicente Torres Tandazo director del
presente trabajo; y eximo expresamente a la Universidad Técnica Particular de Loja y a sus representantes legales de posibles reclamos o acciones legales. Además certifico que
las ideas, conceptos, procedimientos y resultados vertidos en el presente trabajo investigativo, son de mi exclusiva responsabilidad.
Adicionalmente declaro conocer y aceptar la disposición del Art. 88 del Estatuto Orgánico de la Universidad Técnica Particular de Loja que en su parte pertinente textualmente dice: “Forman parte del patrimonio de la Universidad la propiedad intelectual de
investigaciones, trabajos científicos o técnicos y tesis de grado que se realicen con el apoyo financiero, académico o institucional (operativo) de la Universidad”.
f)...
Luis Claudio Chalán Romero
C.I: 1104471170
f)...
Roberth Paúl Loaiza Rosas
DEDICATORIA
Luis Claudio Chalán Romero, dedico el presente Trabajo de Titulación realizado con mucho esfuerzo y dedicación, a Dios por darme vida, salud y fortaleza, guiándome en los
momentos de calma y angustia para cumplir con esta etapa de mi vida. A mis padres quienes son mi ejemplo a seguir de humildad, honestidad, perseverancia y amor, por
hacer de mi un hombre lleno de valores, principios y coraje para conseguir mis objetivos, a mi familia que siempre ha apoyado las decisiones y que de alguna manera me apoyado con un granito de arena para que esté sueño se haga realidad. Y a todas aquellas
personas que Dios las puso en mi camino con las que he compartido momentos felices siendo un sustento de amor, amistad y lealtad.
Roberth P. Loaiza Rosas, dedico el presente Trabajo de Titulación a Dios por regalarme la salud y la sabiduría para poder terminar mis estudios, a mis padres por que día a día
son ejemplo a seguir de perseverancia y superación, a toda mi familia por apoyarme y estar pendiente de mis triunfos y derrotas. Y Anita Cristina quien día a día es mi fuerza e
AGRADECIMIENTO
Luis Chalán y Roberth Loaiza agradecemos a los profesores y personal en general de la
Universidad Técnica Particular de Loja por compartir sus conocimientos y experiencias para nuestra formación profesional. A nuestro tribunal por su colaboración incondicional
ÍNDICE DE CONTENIDOS
UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA ... i
DECLARACIÓN DE AUDITORÍA Y CESIÓN DE DERECHOS ... iii
DEDICATORIA ... iv
AGRADECIMIENTO ... v
INDICE DE CONTENIDOS ... vi
GLOSARIO DE TERMINOS
...
ixRESUMEN
...
1ABSTRACT
...
2INTRODUCCIÓN
...
3CAPITULO I
...
51. Contexto de la investigación
...
51.1 Introducción
...
61.2 Planteamiento del problema - Contexto ... 6
1.3 Justificación
...
71.4 Alcance
...
101.5 Objetivos
...
111.5.1 Objetivo general
...
111.5.2 Objetivo específico
...
11CAPITULO II
...
122. Estado del arte
...
122.1 Redes
...
132.1.1 Análisis redes móviles
...
132.1.2 Definición Wi-Fi Direct
...
152.1.2.1 Características de Wi-Fi Direct
...
162.1.2.2 Beneficios de Wi-Fi Direct
...
172.1.2.3 Wi-Fi Direct con conexión a Internet
...
182.1.2.4 Wi-Fi Direct sin conexión a Internet
...
182.2 Dispositivos móviles
...
192.2.1 Definición de dispositivo móvil
...
192.3.1.1 Versiones del Sistema Operativo Android
...
232.3.1.2 Desarrollo de herramientas lúdicas en Android
...
242.4 Lenguajes de programación y herramientas de desarrollo de software
...
252.4.1 Características IDEs
...
252.4.2 IDEs móviles
...
252.4.3 IDE Juegos móviles
...
262.4.3.1 Integración del marco de desarrollo AndEngine
...
272.5 Metodología de desarrollo para proyectos de software
...
292.5.1 Metodología XP (Programación Extrema)
...
302.5.1.1 Definición
...
312.5.1.2 Actividades del ciclo XP
...
312.5.1.3 Planeación
...
312.5.1.4 Diseño
...
332.5.1.5 Codificación
...
342.5.1.6 Pruebas
...
35CAPITULO III
...
373. Diseño de la aplicación Math
...
373.1 Introducción
...
383.2 Situación actual
...
383.3 Propuesta de solución
...
393.4 Herramientas de desarrollo
...
393.5 Iteraciones para el desarrollo de las historias de usuario
...
403.6 Definición del alcance
...
413.6.1 Interfaz principal (Tutor)
...
413.6.2 Interfaz principal (Estudiante)
...
433.6.3 Resultados esperados
...
44CAPITULO IV
...
454. Desarrollo de Math
...
454.1 Introducción
...
464.2 Planeación
...
464.2.1 Historia de usuario (Escenario tutor)
...
474.2.2 Historia de usuario (Escenario estudiante)
...
524.3 Diseño
...
544.3.2 Modelo Entidad - Relación
...
554.3.3 Diccionario de datos
...
554.3.4 Diagrama de solución
...
564.3.5 Diagrama de UML
...
564.3.5.1 Diagrama de clases
... 57
4.3.5.2 Diagrama de componentes
... 57
4.4 Codificación
...
584.4.1 Aplicación móvil
...
584.5 Lenguaje de programación
...
594.6 Diseño y modelado de interfaces
...
594.6.1 Pruebas e implementación
...
594.6.1.1 Pruebas unitarias
...
624.6.1.2 Pruebas de calidad de software
...
624.6.1.3 Pruebas de campo
...
624.6.2 Implementación de Math
...
63CONCLUSIONES
...
64RECOMENDACIONES
...
65BIBLIOGRAFÍA
...
66ANEXOS
...
71ANEXOS A
...
72ANEXOS B
...
76ANEXOS C
...
81ANEXOS D
...
87ANEXOS E
...
89ANEXOS F
...
91ANEXOS G
...
103ANEXOS H
...
105ANEXOS I
...
107ANEXOS J
...
110GLOSARIO DE TERMINOS
HTML: Lenguaje de marcas de hipertexto (HyperText Markup Language), hace referencia
al lenguaje de marcado para la elaboración de páginas web, facilitando publicar información, estableciendo como un idioma, o una especie de lengua materna para que
todos los equipos puedan entender, creando la premisa de que todo tipo de dispositivos deben ser capaces de utilizar la información en la Web: PCs, teléfonos móviles,
dispositivos de mano, dispositivos para el discurso de salida y entrada, ordenadores con ancho de banda alto o bajo, etc. (Raggett, Le Hors, Jacobs, & others, 1999).
WWW: Red informática mundial (World Wide Web), es un medio de comunicación de texto, gráficos y otros objetos multimedia a través de Internet, denominada red de
recursos de información. La web se basa en mecanismos (URI, HTTP, HTML) para hacer que estos recursos fácilmente estén disponibles en la mayor parte del público potencial (Raggett et al., 1999).
HTTP: Protocolo de transferencia de hipertexto (HyperText Transfer Protocol) que permite la transferencia de información en la World Wide Web. Es un protocolo a nivel de
aplicación para distribuir información, colaboración, sistemas hipermedia, más allá de su uso para hipertexto puede ser usado para muchas tareas, tales como servidores y
sistemas distribuidos de gestión de objetos, a través de la extensión de sus métodos de petición, códigos de error y las cabeceras (Fielding et al., 1999).
TT: Sigla usada para acortar el nombre del “Trabajo de Titulación”
SO: (Sistema Operativo) Programa o conjunto de programas de un sistema informático
que es el encargado de gestionar los recursos del hardware.
IDE: Un entorno de desarrollo integrado (IDE) es una suite de software que consolida las
herramientas básicas de desarrolladores que necesitan para escribir el software de prueba. Por lo general, un IDE contiene un editor de código, un compilador o intérprete y un depurador, que el desarrollador tiene acceso a través de una única interfaz gráfica de
usuario ( GUI ). (Furey & Pottjewijd, 2015).
ÁBACO: Instrumento que facilita realizar las operaciones aritméticas de adición,
colocadas paralelamente y cada cuerda contenía diez bolas que se puedan desplazar a lo largo de la cuerda.
SDK: Kit de Desarrollo de Software que contienen plataformas y otros componentes que necesitas para desarrollar aplicaciones Android (Android, 2008).
CRUD: Se refiere a las cuatro funciones básicas de almacenamiento persistente (OracleFAQ, 2010):
• Crear (Create) • Recuperar (Retrieve) • Actualizar (Update) • Eliminar (Delete)
UML: El Lenguaje de Modelamiento Unificado (Unified Modeling Language) es un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que
comprende el desarrollo de software. UML entrega una forma de modelar cosas conceptuales como lo son procesos de negocio y funciones de sistema, además de cosas
RESUMEN
En el presente TT se muestra el desarrollo de una herramienta lúdica para apoyar el aprendizaje de matemática en la educación básica. La herramienta utiliza tecnologías de
información específicamente dispositivos móviles. Está herramienta considera tres aspectos: 1) Una plataforma de comunicación que permite sincronizar las tareas entre
tutor y estudiante. 2) Una interfaz gráfica amigable. 3) El desarrollo de operaciones matemáticas de suma y resta en los dispositivos.
La herramienta permite la interacción de un tutor con el estudiante a través de dispositivos
móviles, un dispositivo es asignado al tutor que es quien propone las operaciones
matemáticas y el estudiante utiliza otro dispositivo para resolverlas. La herramienta ha sido desarrollada para dispositivos móviles con sistema operativo Android. Debido a que
los requerimientos se fueron depurando en el desarrollo y pruebas de la herramienta, fue necesario el uso de la metodología ágil Programación Extrema XP. Para el intercambio de datos se la realizó a través de Wi-Fi Direct para evitar la dependencia de puntos de
acceso externos. La interfaz gráfica y animación fue desarrollada usando el marco de desarrollo AndEngine.
ABSTRACT
In the present TT is shown the development of a ludic tool to support the mathematic
learning in the basic education. The tool uses information technologies specifically mobile devices. The mentioned tool considers three aspects: 1) A platform of communication that
allows tasks synchronization between tutor and student 2) A friendly graphical interface. 3) The development of mathematical operations as addition and subtraction on devices.
The tool allow the interaction between tutor and student through mobile devices; a mobile
device is assigned to the tutor who is responsible for proposing the mathematical operations, while the student uses other mobile device to resolve them. The tool has been
developed for mobile devices whose operating system is Android. Due to the fact that the requirements were depurated throughout the development and testing of the tool, it was
necessary the use of an agile methodology Extreme Programming XP. The synchronization between devices for data interchange was done by the use of Wi-Fi Direct
to avoid the dependence of external access points. The graphical interface and animation were developed using the development framework AndEngine.
INTRODUCCIÓN
“El aprendizaje más eficaz y efectivo no es el que se obtiene a través del juego
por el juego, No se aprende jugando exactamente, sino jugando con lo que se
aprende” Avilio de Gregorio.
El presente TT muestra el desarrollo de una herramienta lúdica que demuestra el
intercambio síncrono entre dispositivos móviles. La herramienta lúdica y la tecnología móvil apoya el aprendizaje en los niños en el área de la educación básica
específicamente matemática. Se considera pertinente el nivel de enseñanza establecido en las instituciones educativas de los primeros años de educación básica (primer,
segundo y tercero) de nuestro país. Además la herramienta enfatiza la interacción entre un tutor y el estudiante, donde el tutor será quien deba guiar al estudiante formulando las operaciones para el aprendizaje. El estudiante a través de la herramienta podrá
interactuar con un ábaco virtual para resolver las operaciones matemáticas de adición y la sustracción.
Una característica principal de la herramienta es que está enfocada dentro de la educación básica para facilitar el aprendizaje del alumno a través de la interacción que
existe entre los participantes y la facilidad de manejo de la herramienta. La calidad de las interfaces y la animación también son características relevantes para que el estudiante se vea atraído y pueda resolver las operaciones. La adición y la sustracción son las
operaciones que se pueden realizar con la herramienta. De igual forma se considera que
la adición y la sustracción son la base para resolver operaciones complejas en los años superiores y por eso es necesario que el estudiante pueda aprender rápido, fácil y que
mejor manera de hacerlo disfrutando y aprendiendo.
Para realizar la herramienta lúdica se consideró el uso de dispositivos móviles. Estos dispositivos como los teléfonos inteligentes dependen de un sistema operativo para su
funcionamiento como por ejemplo Android.
Android es un sistema operativo con mayor número de aplicativos descargados en la
la herramienta lúdica se desarrolle en Android Studio, con lenguaje de programación nativo de Java.
El desarrollo de la herramienta se lo realizó bajo la metodología de Programación Extrema XP; la cual es una metodología ágil que se acopla a las necesidades del equipo de
desarrollo que tiene como principal objetivo aumentar la productividad a la hora de desarrollar un proyecto software. Está metodología da prioridad a los trabajos que dan un
CAPÍTULO I
1.1 Introducción.
El presente apartado tiene como principal objetivo describir la problemática del TT, y
establecer el alcance que se debe cumplir, basándose en los objetivos que sé propone en el TT, y que demuestre la importancia que puede tener una herramienta lúdica dentro de la educación básica.
La finalidad de cumplir con los objetivos y requerimientos del TT para obtener una herramienta lúdica con normas de calidad de software para que sea un proyecto que
participe de futuras versiones y continúe aportando en la educación de los niños.
1.2 Planteamiento del problema – Contexto.
Este trabajo de titulación se enfoca en el desarrollo de una herramienta lúdica en red
para dispositivos móviles, para ello, los dispositivos móviles deben estar sincronizados y cumplir con ciertos requerimientos de software y hardware tales como: Teléfonos Inteligentes con sistema operativo Android a partir de la versión 4.4,
y conexión Wi-Fi Direct. Para cumplir con dichos requerimientos se analizaron tiempos como los componentes de software y hardware que permiten que las
interfaces de comunicación del dispositivo móvil operen correctamente.
Es parte del TT desarrollar una herramienta lúdica, en la cual sea necesaria como
infraestructura de red solo los recursos de comunicación (interfaces) disponibles en el dispositivo como: la conexión inalámbrica Wi-Fi Direct. Por ejemplo los dispositivos sincronizados con Wi-Fi Direct deben comunicarse directamente, un dispositivo móvil
es el cliente y el otro dispositivo el punto de acceso.
La herramienta lúdica se orienta en el área de la educación básica, para crear o aprovechar la interacción que puede existir entre tutor y estudiante, para facilitar a través de la herramienta el poder identificar la dificultad que tiene el niño para
resolver las operaciones matemáticas como adición o sustracción, o la facilidad con la que puede resolver.
Lo que cambia con la ayuda de la tecnología es el conjunto de problemas que se pueden plantear y la forma en que se pueden presentar dichas operaciones. Algunos
operaciones, los niños deben experimentar con objetos matemáticos y disfrutar al momento de realizar la operación. Dichos niños necesitan de representaciones
visuales como (diagramas, figuras geométricas o imágenes en movimiento), para poder responder con mayor facilidad dicha operación.
Piaget sostiene que la compresión de la inclusión constituye un requisito esencial para comprender la adición y la sustracción. Los niños entienden las palabras “uno y
dos son tres” pero no podrán entender lo que significa hasta que lo puedan comprender, como el conjunto “tres” puede dividirse en los subconjuntos “uno y dos”.
Piaget afirma que la comprensión de la inclusión en clase, supone un requisito indispensable para operar con éxito la adición y la sustracción. El uso del ábaco resuelve en parte el problema de la inclusión porque se puede entender la forma de
cómo resolver cada operación gráficamente facilitando la comprensión en el alumno.
La finalidad es que los niños puedan resolver problemas y aplicar los conceptos y habilidades matemáticas para desenvolverse en la vida cotidiana e incrementar la interacción con sus padres a través de la enseñanza en la herramienta.
1.3 Justificación.
El dispositivo móvil hoy en día es un dispositivo multifuncional que permite registrar información importante para el usuario como: contactos, ubicación, pronóstico del tiempo, ofertas, publicaciones, etc., También, contiene aplicativos que hacen del
teléfono más utilizable con la interacción con redes sociales, registro de mensajes, uso de aplicaciones, reproducción de sonidos e imágenes, etc. Dichas aplicaciones
son usadas de forma propia por el dispositivo.
Es así que con el fin de que la tecnología móvil sea una ayuda en el área de
educación básica, se desarrolla una herramienta lúdica que facilita el aprendizaje para resolver operaciones matemáticas de adición y sustracción, y que permite
interactuar con un tutor a través de otro dispositivo con el que este sincronizado.
Para la justificación del alcance se realizó una infografía (ver figura 1) del proceso de
investigación donde se nombra cada investigación realizada en el TT.
1. Herramientas.- Se investiga cada herramienta disponible para el desarrollo de la herramienta lúdica y que se adapte a las necesidades del equipo de trabajo.
2. Tipo de Conexión.- Se analiza la forma apropiada para realizar el intercambio de información síncrona entre los dispositivos móviles, comparando cada una de las
interfaces de comunicación que tienen los dispositivos como se explican en la sección 2.1.1.
3. Wi-Fi Direct.- Realizar una investigación integra sobre este tipo de conexión para implementar en la herramienta lúdica.
4. Conexión móvil.- Establecer la conexión entre los dispositivos.
5. Aplicación del juego.- Desarrollar la lógica y escenarios posibles de la
Figura 1: Infografía del proceso de investigación.
1.4 Alcance.
Investigación
Ø Investigar las comunicaciones entre dispositivos móviles, que sea independiente a una infraestructura de red externa.
Ø Investigar y determinar el marco de desarrollo para establecer la lógica de la herramienta lúdica, considerando la historia de desarrollo de estos software como una breve reseña del alcance que han tenido en la actualidad.
Ø Establecer las buenas prácticas y pasos para el desarrollo de herramientas orientado a dispositivos móviles.
Desarrollo
Ø Definir el mejor IDE de desarrollo para programar la lógica de la herramienta lúdica como las diferentes interfaces que tendrá el aplicativo.
Ø Definir la metodología ágil que mejor se acople para el desarrollo de la herramienta.
Ø Analizar la estructura de conexión síncrona mediante Wi-Fi Direct de los dispositivos móviles.
Ø Desarrollar la lógica de sincronización entre los dispositivos móviles. (Teléfonos inteligentes)
Ø Establecer la complejidad de las operaciones aritméticas de la adición y sustracción aplicada por niveles:
• Nivel inicial, unidades - dos dígitos (la adición no puede ser mayor a nueve).
• Nivel básico, unidades y decenas, tres dígitos (la adición no puede ser mayor a nueve tanto en unidades como en decenas, en la sustracción no puede pedir decenas para poder operar en las unidades).
1.5 Objetivos.
1.5.1 Objetivo general.
Ø Diseñar una herramienta lúdica que permita la interacción en tiempo real entre los dos dispositivos móviles, con el objeto de diseñar interfaces que permita a los usuarios la sincronización en los dispositivos móviles con Sistema
Operativo Android.
1.5.2 Objetivos específicos.
Ø Estudiar y seleccionar las formas en que las interfaces de comunicación de los
dispositivos móviles trabajen.
Ø Familiarizarse con el IDE de programación Android Studio para dispositivos móviles.
CAPÍTULO II
2.1 Redes.
El presente capítulo se enfoca en las redes de comunicación, señalando la
importancia que tiene dentro del TT.
Entre las redes más destacadas para elaborar una conexión síncrona entre
dispositivos móviles está la comunicación inalámbrica, como Wi-Fi, Wi-Fi Direct y Bluetooth. Se considera pertinente conocer a fondo cada una de estas tecnologías,
tanto similitudes como diferencias para elegir la más adecuada.
2.1.1 Análisis redes móviles.
Los dispositivos al tener diferentes tipos de conexiones que permite establecer una comunicación entre dos o más equipos con adaptadores inalámbricos a una red
conocida con el nombre de "ad hoc", es decir, una conexión de equipo a equipo, sin necesidad de usar un punto de acceso.
En caso de que uno de los equipos de la red ad hoc esté conectado a Internet, éste
puede compartir su conexión con los demás equipos de esa red como en una red local tradicional. Las características de los dispositivos inteligentes, cámaras,
acelerómetro, GPS, pantalla táctil, interfaz gráfica e interfaz inalámbrica, pueden generar un intercambio colectivo de información, en una topología completa y
detallada (Torres Tandazo, 2011).
Las redes móviles son diseñadas para que un dispositivo móvil establezca un intercambio de datos de tal forma que un usuario se pueda trasladar de un lugar a
otro sin perder la conexión.
La tabla 1 muestra diferentes tipos de conexión y sus principales características.
Ø Redes infrarrojas (IR): Este tipo de conexión permite la comunicación entre dos nodos, utilizando leds infrarrojos. Son emisores/receptores de las ondas infrarrojas entre ambos dispositivos, cada uno de estos dispositivos necesita del otro para realizar esta comunicación (Jiménez Chavolla, López Ixtla, Martinez Perez, &
Mancilla, 2015).
de radiación del emisor y receptor tienen que estar lo más cerca posible y su alineación debe ser correcta, adicionalmente no debe existir ningún tipo de
interferencia ya que de lo contrario la conexión se perdería.
Ø Bluetooth: es una especificación para redes inalámbricas de área personal (WPAN) que hace posible la transmisión de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia. Los principales objetivos del
Bluetooth son facilitar las comunicaciones entre dispositivos móviles y fijos, eliminar cables y conectores entre éstos y que sea posible crear pequeñas redes
inalámbricas así como facilitar la sincronización de datos entre dispositivos (Lee, Su, & Shen, 2007).
Ø Conexión de datos móviles: conexión que el teléfono usa para enviar y recibir datos por antena a través de la red celular del operador, es decir, el servicio que brinda las redes telefónicas para realizar las llamadas desde los celulares a
cualquier lugar donde tenga cobertura (Bilib, 2012).
Ø Conexión Wi-Fi: Wi-fi, es sin duda un recurso esencial que forma parte del hardware en un teléfono. Eventualmente surgen nuevas necesidades en los usuarios, ya que Wi-Fi necesita estar conectado a Internet para enviar y recibir
datos. Wi-Fi Direct es una nueva tecnología que está disponible en diferentes equipos electrónicos como: móviles, Teléfonos Inteligentes, Tablet y Smart TV (Mao, Wang, & Jiang, 2015). A diferencia de Wi-Fi, Wi-Fi Direct no necesita de una
conexión a un punto de acceso para enviar datos a otro dispositivo con la misma
tecnología y red, este tipo de tecnología es la que se usa en el desarrollo de la herramienta lúdica,
Tabla 1: Comparativa de diferentes tipos de conexión móvil
Nombre Comunicación Dependencia Conexión
Redes
infrarrojas (IR)
Comunicación entre dos nodos utilizando leds infrarrojos.
Necesita de otro dispositivo para la comunicación
Punto a punto, el emisor y receptor
con ondas
Bluetooth
Transmisión de voz y datos entre diferentes
dispositivos
mediante un enlace por radiofrecuencia
Necesita de otro dispositivo para la comunicación
Redes
inalámbricas de área personal (WPAN), en el cual no se use cables y conectores, así facilita la sincronización entre dispositivos.
Conexión de datos móviles
Sirve para enviar y recibir datos por antena a través de la red celular.
Necesita tener habilitada la conexión de datos que provee la
empresa de
telecomunicación.
Redes telefónicas con las que se realiza llamadas desde nuestros celulares a cualquier lugar donde tenga cobertura.
Conexión Wi-Fi
Sirve para enviar y recibir datos a través
de una red
inalámbrica a la que se puede conectar
cuando esté
disponible.
Necesita de una contraseña para conectarse.
Se conecta a Internet de forma inalámbrica a través de un router por medio de un dispositivo.
Wi-Fi Direct
Soportan una tecnología que permite a los dispositivos con conexión Wi-Fi.
Pueden conectarse entre sí sin unirse
a una red
doméstica, de oficina o punto de acceso tradicional
Elaboración : Autores
2.1.2 Definición Wi-Fi Direct.
Wi-Fi CERTIFIED Wi-Fi Direct ® es una marca de certificación para los dispositivos que soportan una tecnología que permite a los dispositivos con conexión Wi-Fi Direct
poder conectarse directamente figura 2, por lo que es simple y conveniente para hacer tareas como imprimir, compartir, sincronizar y visualizar en pantalla. Los
productos que llevan la marca de certificación Wi-Fi Direct pueden conectarse entre sí sin unirse a una red doméstica, de oficina o punto de acceso tradicional (Alliance,
Figura 2: Conectividad entre dispositivos móviles con Wi-Fi Direct.
Fuente : Autores
2.1.2.1 Características de Wi-Fi Direct.
La introducción de Wi-Fi Direct en los dispositivos extiende la utilidad de Wi-Fi en las necesidades del contenido portátil y facilita la portabilidad de los contenidos y
aplicaciones a través de todos los dispositivos que utilizan una sola tecnología, lo que permite a los usuarios acceder a datos fácilmente.
Wi-Fi Direct se basa en los puntos fuertes de Wi-Fi tradicionales como (Alliance,
2010):
Ø Rendimiento.
Ø Seguridad.
Ø Facilidad de uso
Ø y la ubicuidad.
Añade características que optimizan el consumo como (Alliance, 2015):
Ø Los usuarios pueden conectarse directamente a los dispositivos. Esto permite por ejemplo, que un dispositivo móvil tal como un teléfono móvil se conecte
directamente a un ordenador portátil, sin importar si está conectado a una red de infraestructura disponible.
Los dispositivos certificados por Wi-Fi Direct extienden el alcance de la tecnología inalámbrica para incluir las conexiones simples y directas que muchos usuarios
pueden lograr utilizando cables.
2.1.2.2 Beneficios de Wi-Fi Direct.
La movilidad y portabilidad: Dispositivos certificados por Wi-Fi Direct se conectan en cualquier momento y en cualquier lugar.
Utilidad inmediata: Los usuarios tienen la capacidad de crear conexiones con cualquier dispositivo Wi-Fi Direct.
Facilidad de uso: Dispositivos Wi-Fi Direct tienen características que permiten a los
usuarios identificar los dispositivos disponibles y servicios antes de establecer una conexión.
Conexiones seguras simples: Wi-Fi Protected Setup ™ hace que sea sencillo crear seguridad y protección de conexiones entre dispositivos. (Alliance, 2010).
Ø Es suficiente que un solo dispositivo envié la solicitud de conexión Wi-Fi Direct, para que el resto de dispositivos puedan establecer una conexión con dicho dispositivo, una ventaja de esta tecnología es que cualquier dispositivo
se puede conectar sin importar que tecnología tenga, el único requisito seria
que tenga conexión Wi-Fi Direct.
Ø Un dispositivo con Wi-Fi Direct tiene la facilidad de conectarse con varios dispositivos simultáneamente como impresoras, cámaras, Smart Tv, etc. Sin necesidad de router.
Wi-Fi Direct no es afectado por modificaciones del hardware, ya que está
proveedores de software pueden implementar dicha funcionalidad en distintos dispositivos a través de actualizaciones de software (Alliance, 2015).
2.1.2.3 Wi-Fi Direct con conexión a Internet.
Wi-Fi Direct sigue cumpliendo la funcionalidad de conectarse con otro dispositivo así
funcione con Internet, la diferencia es que la dirección IP del dispositivo será generada por el servidor DHCP de la red a la que está conectada. La conexión a
Internet seguirá funcionando de forma normal sin ser interrumpida por la conexión Wi-Fi Direct, en la figura 3 se representa la conexión con Internet.
Figura 3: Conexión Wi-Fi Direct con acceso a Internet
Fuente: Autores
2.1.2.4 Wi-Fi Direct sin conexión a Internet.
Como se indica en la figura 4, los dispositivos con certificación Wi-Fi Direct pueden formar conexiones con todos los dispositivos Wi-Fi Direct ™(Alliance, 2015).
Esta conexión sin duda alguna resulta de gran ayuda en la transferencia de datos, la
conexión de los dispositivos Wi-Fi Direct pueden ocurrir en cualquier lugar, en cualquier momento. El dispositivo con Wi-Fi Direct emite una señal a otros
dispositivos en el área que se puede hacer una conexión. Se puede ver los dispositivos disponibles y pedirles conectarse. En algunos casos, es posible que se
reciba una invitación para conectarse a otro dispositivo con Wi-Fi Direct, el usuario puede decidir si acepta la invitación o no. En muchos dispositivos la única acción
Una vez que se confirma una conexión el protocolo Wi-Fi hace una conexión segura para ayudar a proteger su comunicación. Esta conexión segura se completa con
seguridad WPA2 estándar de la industria (Alliance, 2010). Una vez que dos o más dispositivos con Wi-Fi Direct se conectan directamente, han formado una red Wi-Fi.
Figura 4: Conexión Wi-Fi Direct sin acceso a Internet
Fuente: Autores
2.2 Dispositivos móviles.
En la actualidad los usuarios utilizan sus equipos portátiles y sus dispositivos móviles para la mayoría de actividades como navegar en la red o revisar sus correos
electrónicos.
2.2.1 Definición de dispositivo móvil.
Un dispositivo móvil se puede definir como un aparato de tamaño pequeño, con capacidad de procesamiento, conexión permanente o intermitente a una red, con
memoria limitada, diseñado específicamente para una función. Pueden llevar a cabo otras funciones más generales. De acuerdo con esta definición existe multitud de dispositivos móviles, desde los reproductores de audio portátiles hasta los
navegadores GPS, pasando por los teléfonos móviles, PDAs o Tablet, PCs, entre otros (Alonso, Artime, Rodríguez, & Baniello, n.d.).
Los autores (Alonso et al., n.d.) del artículo “Dispositivos Móviles” lo clasifican al
Ø PDAs (Personal Digital Assintant): Un PDA, es una computadora de mano originalmente diseñada como una agenda electrónica con un sistema de
reconocimiento de escritura. Inicialmente estos dispositivos incluían aplicaciones relacionadas con su función como el de la agenda electrónica, con el pasar del
tiempo han evolucionado hasta los dispositivos actuales que ofertan muchas más aplicaciones multimedia. Las características del PDA moderno son pantalla touch,
conexión a un ordenador para su sincronización, ranura para tarjeta de memoria, y al menos Infrarrojo, Bluetooth o Wi-Fi.
Ø Teléfonos móviles: Es un dispositivo electrónico inalámbrico basado en las tecnologías de ondas de radio, que tiene la misma funcionalidad que cualquier
teléfono de línea fija. Su principal característica es su portabilidad, ya que realiza llamadas y no es dependiente de ningún terminal fijo y no requiere de ningún tipo de cableado para llevar a cabo la conexión a la red telefónica. Aunque su principal
función es la comunicación de voz, como el teléfono convencional, su rápido desarrollo ha incorporado funciones adicionales como mensajería (sms), agenda,
juegos, cámara fotográfica, agenda, acceso a Internet, reproducción de videos e incluso GPS y reproductor mp3. En un inicio los teléfonos móviles solo permitían
realizar llamadas de voz y enviar mensajes de texto. Con el avance de nuevas tecnologías se incluyeron nuevas aplicaciones como juegos, alarma, calculadora y acceso WAP (acceso a Internet mediante páginas web especialmente responsivas
para móviles).
Ø Teléfonos Inteligentes o “Smartphones”: Un Teléfono Inteligente es un dispositivo electrónico que funciona como un teléfono móvil con características
similares a las de un ordenador personal. Es un elemento a medio camino entre un teléfono móvil clásico y una PDA ya que permite hacer llamadas y enviar mensajes de texto como un móvil convencional. Además incluye características cercanas a
las de un ordenador personal. La mayoría de teléfonos inteligentes tienen como característica importante, permitir la instalación de programas para incrementar el
procesamiento de datos y la conectividad. Los teléfonos inteligentes se pueden llegar a distinguir por muchas características, entre las que destacan las pantallas
algunos programas de navegación así como la habilidad de leer documentos en una gran variedad de formatos como PDF y Office. Estos dispositivos tienen una
ventaja importante sobre el uso de redes geográficamente distribuidas a nivel global por lo que los hace vulnerables a virus o ataques informáticos.
En la guía NISTIR 7100 del Instituto Nacional de Estándares de Tecnología (NIST) los autores (Ayers, Jansen, & Brothers, 2014) clasifica a los teléfonos móviles con
tecnología básica de comunicación de voz y SMS, mientras que los teléfonos avanzados ofrecen tecnología y servicios multimedia, por último, los teléfonos
inteligentes combinan las capacidades de un teléfono avanzado con la de un PDA, cuya característica de hardware se detalla en la Tabla 2.
Tabla 2: Características a nivel de hardware
Avanzado Inteligente
Procesador Velocidad Limitada (~52Mhz)
Velocidad superior (~1 GHz
dual-core)
Memoria Capacidad Limitada
(~5 MB) Capacidad superior (~128 GB)
Tamaño de pantalla Color , 4k – 260k (12-bit a 18-(12-bit)
De gran tamaño, color de 16.7 millones (~24-bit)
Ranuras para tarjetas MiniSD o XC MiniSDIO o XC
Cámara Foto Foto Panorámica, Video (HD).
Entrada de texto Teclado numérico, Teclado virtual
Pantalla táctil, reconocimiento de escritura, teclado incorporado
estilo QWERTY
Entrada de voz Ninguna Reconocimiento de voz (Marcación y control)
Interfaz celular Voz y datos limitados Voz y datos de alta velocidad
Wireless IrDA, Bluetooth Bluetooth, Wi-Fi and NFC
Batería Fijo /Desmontable, Li-Ion Polímero
Fijo/Desmontable, Recargable
Li-Ion Polímero.
Los teléfonos inteligentes cuentan en la actualidad con diferentes sistemas operativos como: Android, iOS, BlackBerry, Windows Phone, entre los más destacados. A pesar
de existir una amplia gama de SO, los autores del TT eligen trabajar en base al SO Android, donde se analiza de antemano las principales características y beneficios
que aporta este SO.
2.3 Android en los dispositivos móviles.
Android es un sistema operativo móvil basado en el kernel de Linux, con una interfaz de programación Java, diseñado para ser utilizado en dispositivos móviles como
teléfonos inteligentes, tabletas, Google TV y otros. Desarrollado por Open Handset Alliance la cual es liderada por Google.
Android permite programar aplicaciones en una variación de Java llamada Dalvik. El sistema operativo proporciona todas las interfaces necesarias para que puedan desarrollar para dispositivos móviles. Android admite aplicaciones que accedan a las
funciones del teléfono (GPS, llamadas, SMS, agenda, entre otras) de una forma muy fácil en un lenguaje de programación muy popular como es Java (Tapia, 2013).
Android es de código abierto, por lo que cualquiera puede hacer una copia y añadir características que consideren necesarias, no es un requisito que los cambios se
presenten a Google de hecho hay varias versiones desarrolladas por diferentes empresas para llegar a tener una mejor experiencia con el usuario final de Android (Herraiz Antón, 2012).
Según el artículo de Android indica que no hay dos dispositivos Android en que se
vean exactamente los mismos resultados (Herraiz Antón, 2012).
2.3.1 Sistema operativo Android.
Dentro de la guía de los autores (Sacristán & Fernández, 2012) de Programación en Android menciona las características que posee Android y a su vez su historia.
Android es un sistema operativo inicialmente diseñado para teléfonos móviles, en la
2.3.1.1 Versiones del sistema operativo Android.
Las versiones disponibles en la actualidad se las menciona en la Tabla 3, donde se
exponen las diferentes denominaciones de cada una de las versiones.
Tabla 3: Versiones del Sistema Operativo Android
Historial de versiones de Android
Versión CODENAME
1.0 Apple Pie
1.1 Banana Bread
1.5 Cupcake
1.6 Donut
2.0/2.1 Eclair
2.3.x Gingerbread
3.x Honeycomb
4.0.x Ice Cream Sandwich
4.1 Jelly Bean
4.2 Jelly Bean (Gummy Bear)
4.3 Jelly Bean (Michel)
4.4 KitKat (Doger)
5.0 Lollipop
6.0 Marshmallow
Fuente: (“Android - Historia,” 2015)
Elaboración: Autores
Para el desarrollo de la herramienta se considera que la herramienta debe poseer diferentes plugins y su kit de desarrollo (SDK), que contiene nuevas actualizaciones por parte del IDE de desarrollo. Para la compatibilidad de la herramienta con
versiones futuras de Android se establece desarrollar sobre la versión 4.4.0 en adelante, debido a que el marco de desarrollo de diseño 2D AndEngine no soporta
2.3.1.2 Desarrollo de herramientas lúdicas en Android.
Los juegos en los dispositivos móviles tuvieron su gran acogida desde el lanzamiento
del iPhone según menciona en la guía (Campíns Frau, 2012), un ejemplo claro es el famoso y conocido juego de Angry Birds, el cual está disponible para la mayoría de
plataformas móviles. (TICbeat, 2011) menciona que se tendrá alrededor de 182.700 millones de descargas de apps en el año 2015, por tal motivo este tipo de
aplicaciones son las más descargadas del mercado según datos publicados por (McQuilken, 2011) hasta abril. Los juegos de entretenimiento encabezan las listas de
las categorías de aplicaciones más descargadas en Android. En la plataforma de Android los juegos representan el 29% y en entretenimiento el 17% (McQuilken,
2011).
El juego es una actividad lúdica que permite desarrollar en el individuo una serie de potencialidades psicomotoras que están presentes en el niño durante el transcurso de
su vida, mientras que el entretenimiento es el uso del tiempo para realizar un descanso con diversión que implica participación activa pero de una manera
refrescante y divertida.
Figura 5: Categorías de aplicaciones más populares
El TT es desarrollado en Android Studio teniendo en cuenta que es software gratuito para desarrolladores estándar y permite publicar aplicaciones en Play Store, se debe
tener en cuenta que Play Store actualmente hace un cobro de 25 USD por una única vez con lo que se puede ser desarrollador que contribuya con aplicaciones.
2.4 Lenguajes de programación y herramientas de desarrollo de software.
Los IDE (Entorno de Desarrollo Integrado) son entornos de programación que han
sido denominados como un programa que contienen diferentes herramientas como un editor de código, un compilador, un depurador y a su vez un constructor de interfaz
gráfica. Para automatizar partes de las tareas que se deben realizar dentro del ciclo de desarrollo de la aplicación.
2.4.1 Características IDEs.
Los IDEs ofrecen un marco de desarrollo amigable haciendo al programador trabajar en varios lenguajes como C++, Python, Java, C#, Delphi, Visual Basic, etc.
Actualmente existe la posibilidad de que un IDE pueda trabajar con varios lenguajes de programación. Este es el caso de Netbeans, al que mediante el panel de
proyectos se puede crear ya sea POO (Programación Orientada a Objetos) o desarrollo Web como PHP-HTML.
2.4.2 IDEs móviles.
El software Android SDK incorpora herramientas básicas para desarrollar aplicaciones (apps) en Android que incluye funciones como conversor de código,
debugger, librerías, emulador, documentación y algunos ejemplos de códigos
(Tomas, 2015).
(Villegas, 2014a) menciona que los IDEs expuestos en la Tabla 4 con mayor
popularidad preferidos por los desarrolladores de aplicaciones móviles son:
Tabla 4: IDE(s) de desarrollo
IDE(s)
Eclipse: Entorno de desarrollo, de código abierto y gratuito, utiliza un patrón de
con una gran variedad de lenguajes de programación.
Android Studio: Entorno de desarrollo creado por Google para facilitar la tarea de
programación dentro de su sistema operativo. Hasta este momento toda la documentación oficial gira en torno a Eclipse como IDE recomendado por Google.
Netbeans: Es un IDE que de igual manera es de código abierto, gratuito, posee una
estructura modular para aumentar las características del entorno de desarrollo dependiendo de las necesidades que planteen los desarrolladores, permite de forma
rápida y fácil desarrollar aplicaciones de escritorio, móvil y web, usando tecnologías y lenguajes como HTML5, Javascript y CSS. Además nos proporciona un conjunto
de herramientas para PHP, C y C++.
IntelliJ IDEA: Entorno integrado de desarrollo usado y bastante recomendado para el desarrollo de apps en Android. Existen dos distribuciones disponibles en este IDE la
una es gratuita y de código abierto denominado IntelliJ IDEA Community Edition y la segunda de pago denominado IntelliJ IDEA Ultimate.
AIDE: Se trata de un IDE que permite programar y compilar proyectos directamente
en nuestro dispositivo móvil. Entre las características tenemos la posibilidad de seguir programando nuestros proyectos en los dispositivos como son Smartphone,
Tablets para poder emular directamente la aplicación desarrollada.
Fuente: (Villegas, 2014a) Elaboración: Autores
2.4.3 IDE juegos móviles.
Dentro de las recomendaciones que realiza el autor (Villegas, 2014b) sobre los IDEs más óptimos para el desarrollo de este tipo de herramienta lúdica, se elige Android Studio como el más apropiado para utilizar en el desarrollo del TT, además por ser
un entorno multiplataforma disponible para Windows, Linux y Mac, siendo un entorno de desarrollo que facilita la tarea de programar dentro del sistema operativo Android.
Es basado en el IDE IntelliJ IDEA Community Edition por lo tanto se puede afirmar que consta con las características antes mencionadas, a diferencia que este entorno
de desarrollo posee algunas otras características propias que ha incorporado Google.
Ø Sistema de construcción y ayudas para codificación: Sistema de construcción y empaquetamiento de proyectos Android, añadiendo una compatibilidad con
Maven (Apache Software Foundation., n.d.), usando el lenguaje específico de dominio basado en (Groovy, n.d.), permitiendo añadir servicios de integración
continuos. Este permite una edición fluida, refactorizando y mejorando el análisis del código.
Ø Pre-visualización y generación de recursos: Posibilidad de visualizar el recurso graficado en varios tipos de densidad y resolución. Añade un selector de color
que aparece tras indicar el código pulsando sobre él.
Ø Ayuda para el diseño y detección de errores: Diálogos que facilitan la generación
de recursos para distintas configuraciones. Cuenta con un depurador de código que facilita y ayuda en la labor de corrección de errores de forma automática. Por lo que permite mostrar errores de sintaxis para poder mejorar el código fuente.
Ø El sistema tiene una característica de análisis personalizada que les permite trabajar sobre áreas específicas de Android.
Ø El sistema comprueba y visualiza una serie de opciones para pasar como parámetro así de esta forma ayuda a evitar fallos mejorando el desarrollo de
nuevas aplicaciones.
Los IDEs de juegos para móvil necesitan de otros recursos para facilitar el desarrollo al programador como los marcos de desarrollo que son el complemento del IDE.
2.4.3.1 Integración del marco de desarrollo AndEngine.
AndEngine es un marco de desarrollo (Carretero, 2013), que usa OpenGL ES 2 para juegos en la plataforma Android. Se ha optado por usar AndEngine por sus
excelentes funcionalidades y la disponibilidad de ser un recurso libre y abierto.
La herramienta lúdica tendrá una estructura especial bajo el marco de desarrollo que trabaja bajo escenarios y no como una estructura XML, como normalmente lo trabaja
El proceso de integración AndEngine con Android Studio está disponible en el Anexo A.
La terminología usada en AndEngine es la siguiente:
BaseGameActivity: Es la raíz del juego, que contiene el motor y crea la vista donde
se va a dibujar los escenarios, solo existe un solo Engine por cada raíz.
Engine: Motor interno del juego el cual se encarga de ir dibujando en la pantalla
como también el actualizar los objetos en la escena, marco a marco.
EngineOptions: Para el manejo de resolución y orientación de escenarios
dependiendo del tamaño del dispositivo y la orientación.
IResolutionPolicy: La implementación de IResolutionPolicy Interface es parte del
EngineOptions. Abstrae la resolución del terminal cuando trabaja para una resolución en especial y AndEngine se encarga del acoplamiento de las gráficas. Si la herramienta lúdica se va a correr en un dispositivo con una pantalla de diferente
resolución, las librerías de OpenGL, escalaría la resolución más próxima a la de ese dispositivo, pero siempre manteniendo el IResolutionPolicy planteado por defecto.
Camera: Un objeto Camera define el rectángulo de la parte de la escena visible. Normalmente hay una cámara por escena. Hay subclases específicas que permiten
hacer zoom y mover la cámara suavemente, de esta forma, consiguen un efecto en el que la cámara sigue al personaje principal cuando se desplaza.
Scene: Esta clase, es el contenedor para todos los objetos que se van a dibujar en la
escena visibles o no en ese momento. Una escena puede tener capas (layers), para
poder ordenar los objetos, existen subclases como CameraScene/HUD/MenuScene que tienen comportamientos específicos.
Entity: Esta entidad, es un objeto que puede ser dibujado, como por ejemplo imágenes, texto, líneas, rectángulos y otras figuras más. La entidad tiene posición, rotación, zoom y color. Lo que visualizamos en la Scene hereda de Entity que se
ITextureRegion: Una ITextureRegion define un rectángulo en el que guarda en memoria la imagen, que probablemente será un archivo .png o .jpg.
BitmapTextureAtlas: Contenedor para ITextureRegion´s, no es obligatorio su uso ya que su implementación genera complejidad al momento de programar, pero mejora el
rendimiento, lo que hace este rectángulo es permitir encajar diferentes imágenes permitiendo así al motor cargar todas las imágenes de una sola vez.
IUpdateHandler: Objeto que puede ser implementado bien al motor del juego o a la escena. Cualquiera de los dos casos su función es ejecutarse cada vez que se
cambie de marco, un fragmento de código por defecto del programador.
2.5 Metodología de desarrollo para proyectos de software.
Se realiza una comparativa de las diferentes metodologías de desarrollo ágil basados en (Letelier & Penadés, 2006) Tabla 5, donde la Media Total representa la agilidad de cada metodología a mayor cantidad mayor agilidad está comparativa se enfoca en 3
parámetros:
Ø Vista del sistema algo cambiante: Valoración considerando la metodología que más se apega a todo el desarrollo del proyecto.
Ø Colaboración: Valoración basada en el aporte de los integrantes que conforma el equipo de desarrollo.
Ø Características de la propia metodología (CM): Valoración en función de cada una de las características que están sujetas a cada metodología ágil como la
simplicidad, excelencia técnica, resultados, adaptabilidad y prácticas de
Tabla 5: Comparativa Metodologías Ágiles
Fuente: (Letelier & Penadés, 2006)
El análisis en la Tabla 5 determina que XP y ASD (Desarrollo Adaptable de Software) son las metodologías con el resultado más alto. Sin embargo, XP tiene mejores
características y procesos (Echeverry Toón & Delgado Carmona, 2007) los cuales se deben practicar durante el tiempo de desarrollo que dure el proyecto. La principal
característica es ser susceptible a modificaciones durante el periodo de desarrollo. Además de poder mantener una colaboración con todos los miembros del equipo de desarrollo. Para el TT es necesario la implementación de una metodología que sea
adaptable a los diferentes cambios, permitiendo tener una buena relación de comunicación entre programador y los interesados. Por tal motivo la metodología ágil
de desarrollo de software XP (Programación extrema), será usada para el desarrollo del TT.
2.5.1 Metodología XP (Programación Extrema).
La metodología ágil XP se basa en realimentar al cliente continuamente y al equipo
de desarrollo, en una comunicación fluida entre todos los interesados. Es usada especialmente en proyectos que necesitan soluciones flexibles para cambios en
2.5.1.1 Definición.
El nombre fue elegido por Kent Beck (Beck, 2000), debido a que el enfoque se lleva a
niveles “extremos”, como el desarrollo iterativo; en el libro de Ingeniería de Software (Sommerville, 2005) lo define como “el enfoque de desarrollo utilizando buenas
prácticas reconocidas, como el desarrollo iterativo y la participación del cliente en niveles extremos” (p.364).
2.5.1.2 Actividades del ciclo XP.
La Programación Extrema abarca un conjunto de reglas y prácticas que ocurren en el
contexto de cuatro actividades del marco de trabajo: planeación, diseño, codificación y pruebas (Calabria & Píriz, 2005). En la figura 5 se observa las actividades y tareas
que respectan a cada actividad del marco de trabajo.
Figura 5: Proceso de la Programación Extrema (Murillo Montesdeoca, 2015).
Fuente: (Calabria & Píriz, 2005) 2.5.1.3 Planeación.
La planeación comienza con la creación de las historias de usuario, poniendo en
v Historias de usuario.
Técnica usada para especificar los requisitos del software, describen las
características ya sean requisitos funcionales o no funcionales y funcionalidades requeridas para el software que se construirá. Los integrantes del equipo de
desarrollo evalúan las historias de usuario las cuales le asignan un costo que se mide en semanas de desarrollo, si las historias tienen mucha carga y tienen más de tres
semanas de desarrollo, piden al interesado reducirla en historias. Son muy dinámicas y flexibles las cuales permiten reemplazarse por otras más específicas o generales,
añadirse nuevas o ser modificadas (Calabria & Píriz, 2005).
Para colocar la información en las historias de usuario, se hace uso de plantillas ya
elaboradas como por ejemplo la Tabla 6, es la más conocida por desarrolladores.
Tabla 6. Formato Historia de Usuario.
Historia de Usuario
Número: Nombre Historia de Usuario
Modificación (o extensión) de Historia de Usuario (Nro. y Nombre):
Usuario: Quien la genera o usa Iteración Asignada:
Prioridad en Negocio:
Alta/Media/Baja
Puntos Estimados: Semanas de desarrollo
Riesgo en desarrollo:
Alta/Media/Baja
Programador Responsable:
Persona que se encargara de
desarrollar la historia de usuario
Descripción: Descripción de la tarea o proceso que da lugar a esta historia
de usuario
Observación:
v Valores.
La Programación Extrema básicamente no es un conjunto de reglas a seguir sino un
conjunto de valores y principios como son: la comunicación, la sencillez, la realimentación y la valentía, asumiendo la responsabilidad de hacer un trabajo de
calidad (Murillo Montesdeoca, 2015).
v Criterios de pruebas de aceptación.
Los criterios de pruebas de aceptación se los realiza basándose en las historias de usuario. El cliente aclarará los escenarios para poder poner a prueba la historia de
usuario, validando si la implementación es correcta y garantizando la funcionalidad del requisito planteado (Wells, 2013).
v Plan de iteración.
Es una planificación donde los desarrolladores y clientes establecen de cuanto serán los tiempos, dividendo el desarrollo de una a tres semanas de duración, ideales para
la implementación en los tiempos de las historias de usuario, con una visión en la prioridad con la que serán implementadas cada versión del aplicativo (Wells, 2013).
2.5.1.4 Diseño.
Diseño de aquellas historias de usuario que el cliente ha seleccionado para la
iteración actual. Por un lado se establece que no es posible tener un diseño completo del sistema, sin errores desde el principio y segundo es que debido a los cambios del proyecto dentro de los requisitos, el hacer un diseño muy extenso en las fases
iniciales del proyecto para luego tener que modificarlo es un desperdicio de tiempo
(Echeverry Tobón & Delgado Carmona, 2007).
v Diseño simple
Una de las partes más importantes es la simplicidad en todos los aspectos, donde se establece que un diseño sencillo se logra rápido y se puede llegar a implementar en menos tiempo, la idea es que se pueda diseñar lo más sencillo pero cumpliendo los
v Tarjetas CRC
El uso de la tarjeta CRC (Clase, Responsabilidad, Colaboración), tiene la principal
funcionalidad de ayudar a dejar el pensamiento procedimental para incorporar un enfoque orientado a objetos (Echeverry Tobón & Delgado Carmona, 2007). Cada
tarjeta representa una clase usando el formato que se muestra en la Tabla 7.
Tabla 7. Tarjetas CRC
Nombre de la clase:
Responsabilidades Colaboradores
Fuente: (Echeverry Tobón & Delgado Carmona, 2007) Elaboración: Autores
v Soluciones en punto
Crear soluciones puntuales (Spike Solution), pequeña aplicación la cual intenta explorar el problema y propone una solución potencial al enfrentar a requerimientos
de los clientes que generan problemas desde el punto de vista del diseño o la implementación (Echeverry Tobón & Delgado Carmona, 2007).
v Prototipos
Técnica la cual se puede obtener una visión preliminar del futuro sistema que se implementará. Un prototipo permite ver la reacción del cliente llegando a determinar
cierto tipo de sugerencias o posibles cambios de manera temprana antes de empezar
con la codificación del aplicativo.
2.5.1.5 Codificación.
Actividad más importante y de la cual es inevitable prescindir que sin está no existiera
aplicativo funcional. Por lo tanto, se necesita codificar y plasmar los requerimientos a través del código. Para el presente desarrollo la programación extrema propone una
v Programación en parejas
El trabajar en pareja se obtiene un diseño de mejor calidad con un código más
organizado, con menos errores. Tiene una ventaja importante la cual es contar con un compañero que ayuda a solucionar los inconvenientes en tiempo de codificación.
Mientras un integrante del equipo se preocupa del método que se está escribiendo el otro se ocupa de cómo encaja este en el resto de la clase.
Cuando los programadores terminan su trabajo éste debe ser integrado, en algunas ocasiones está tarea se encarga directamente el equipo de integración. Realizar la
estrategia de integración continua, apoya en gran parte a evitar algunos problemas como la compatibilidad de interfaces, ayudando a mitigar errores desde un principio
(Echeverry Tobón & Delgado Carmona, 2007).
Cabe resaltar que para el presente TT se aplicara está metodología ágil con una programación en parejas ya que existen dos personas involucradas en este tema.
Respecto a la plataforma de desarrollo a utilizar será Android Studio más detalle en la sección 2.4.2.
2.5.1.6 Pruebas.
Las pruebas cuando están bien implementadas no habrá temor de modificar el código
del otro programador. Las pruebas muestran los errores y de esta manera permite corregirlos (Echeverry Tobón & Delgado Carmona, 2007). Existen diferentes tipos de pruebas:
v Pruebas de aceptación
Llamadas también pruebas funcionales son supervisadas por el cliente basándose principalmente por los requerimientos tomados en las historias de usuario. En todas
v Pruebas unitarias
Las pruebas que se crean deben ser implementadas en un marco de trabajo que
permita ejecutarse de manera fácil y repetida. Este tipo de pruebas busca asegurar que el código funciona de acuerdo con las especificaciones, para ello se dividen en
módulos y se realiza la prueba a cada uno (Wells, 2013).
v
Pruebas de campoCorrer el aplicativo en el ambiente real planteado por los propios interesados para
encontrar errores y poder garantizar el producto contra las especificaciones originales.
El capítulo IV muestra un detalle del desarrollo de la aplicación usando la metodología ágil XP con sus respectivos entregables, los cuales serán:
ü Historias de usuario.
ü Tarjetas CRC.
CAPÍTULO III
DISEÑO DE LA APLICACIÓN“MATH”.
3.1 Introducción.
En este capítulo se muestra el contexto de la herramienta lúdica para matemática
básica que se ha denominado “Math”. Se ha determinado el estado actual de este tipo de herramientas dentro de la educación básica como la solución y la inclusión de
Math para la enseñanza de la matemática en la educación.
3.2 Situación actual.
La educación es fundamental para lograr el progreso de un país y para avanzar hacia una sociedad más libre y con oportunidades para cada persona. Sin embargo, a
pesar de los aumentos en cobertura del sector académico en los últimos años, la calidad de la educación que reciben los niños y jóvenes en el país no parece haber
algún tipo de mejora. De acuerdo con la última evaluación nacional a los estudiantes, la mayoría obtuvo calificaciones insuficientes para matemática, donde el 49% de los estudiantes culminan el colegio con conocimientos insuficientes (Adrián Briones
Rugel, André Rivas Requena, Eduardo Viteri Narváez, Mario Estrada Aguilar, & de Tesis, n.d.).
Para la enseñanza de la matemática la guía (Ministerio de Educación, 2016) menciona que dentro de la integración del concepto de número y de reconocer
situaciones del entorno requieren la formulación de expresiones matemáticas sencillas para resolverlas de forma individual o grupal, utilizando los algoritmos de adición, sustracción, multiplicación y división exacta.
Se han desarrollado metodologías de enseñanza donde la guía (Ministerio de
Educación, 2014) de primer año indica la matemática con, relación – número – cantidad, donde los niños asociación los números con cantidades y establecen una
cantidad correcta. La guía (El & Caribe, 2014) de segundo año menciona la resolución de adición y sustracción sin reagrupación, con números hasta la centena con un valor de 999 donde los resultados no supere a 9. La guía (Caribe, 2014) de
tercer año menciona la formulación y resolución de la adición con reagrupación con números de dos cifras en la resolución de problema, como aplica la misma