scieee AI-readable full text Open interactive document viewer

Repositorio Institucional de Documentos

Abstract

En este proyecto se ha implementado una herramienta que permite diseñar y ejecutar actividades enfocadas a personas mayores para el tabletop NIKVision. El objetivo principal de este proyecto es que cualquier persona que no tenga conocimientos previos de programación y que desee desarrollar una actividad de este tipo sea capaz de hacerlo utilizando la herramienta sin excesivas dificultades. El objetivo a largo plazo será conseguir implantar la herramienta en ámbitos sanitarios tales como residencias de ancianos, de modo que éstos puedan aprovechar las posibilidades que ofrecen los tabletops, proporcionarles una aproximación intuitiva a las tecnologías y permitirles mejorar sus capacidades cognitivas. En cuanto a las tareas realizadas en este proyecto, estas han sido las siguientes: primero se realizó un estado del arte sobre tabletops ya existentes que utilizan la interacción tangible, sobre las áreas cognitivas que más sufren deterioro con la edad y sobre las actividades que se suelen desarrollar para mejorar la capacidad cognitiva de los ancianos. Tras la realización del estado del arte, se procedió a seleccionar un conjunto de actividades que permitieran aprovechar al máximo el uso de objetos sobre tabletop y se hizo una propuesta de actividades a realizar. Tomando como base dichas actividades, se realizó el análisis de la herramienta extrayendo los requisitos que esta habría de cumplir. Tras el análisis, se realizó el diseño e implementación de la herramienta, la cual permite que el diseño de actividades se realice sin necesidad de programar, sino que simplemente hay que escribir la información relativa a la actividad en un fichero que posteriormente será tratado por la herramienta. En paralelo a la implementación de la herramienta se fueron desarrollando las actividades seleccionadas, desarrollándose un total de 7 actividades distintas. La herramienta también permite la ejecución de las actividades, ofreciendo dos opciones: la primera de ellas es ejecutar una actividad concreta indicando la actividad a ejecutar en un fichero de arranque, pudiendo elegir el usuario resetear la actividad cuando desee pulsando una tecla o situando un objeto concreto sobre el tabletop, pausar la actividad situando otro objeto concreto sobre el tabletop y pudiendo además modificar en ejecución el fichero de arranque para cambiar la actividad ejecutada. La otra opción es mostrar en el propio tabletop un menú en el cuál se muestran todas las actividades desarrolladas, de modo que el usuario puede seleccionar la actividad que desee ejecutar en ese momento de forma táctil sobre el tabletop. Una vez dentro de la actividad, el usuario también tiene las opciones de vuelta al menú y de pausa mencionadas antes además de poder modificar en tiempo de ejecución las actividades. La herramienta también guarda información sobre las actividades realizadas en un fichero de logs en el que se guarda la fecha y hora de realización de la actividad, el tiempo empleado en su resolución, las acciones correctas e incorrectas realizadas y si la actividad se ha completado hasta el final o no. Por último, se realizó una evaluación de usabilidad de la herramienta cuando se tuvo un primer prototipo de la misma obteniendo buenos resultados y nuevas ideas que podrán utilizarse para trabajos futuros. Bonillo Fernández, Clara; Cerezo Bagdasari, Eva; Marco Rubio, Javier

Full text

Repositorio de la Universidad de Zaragoza Zaguan http://zaguan.unizar.es Proyecto Fin de Carrera Desarrollo de una herramienta para el diseño y ejecución de actividades enfocadas a ancianos con el tabletop NIKVision Autora Clara Bonillo Fernández Directores Dra. Eva Cerezo Bagdasari Dr. Javier Marco Rubio Departamento de Informática e Ingeniería de Sistemas (DIIS) Escuela de Ingeniería y Arquitectura Septiembre 2014 Desarrollo de una herramienta para el dise˜no y ejecuci´on de actividades enfocadas a ancianos con el tabletop NIKVision RESUMEN En este proyecto se ha implementado una herramienta que permite dise˜nar y ejecutar actividades enfocadas a personas mayores para el tabletop NIKVision. El objetivo principal de este proyecto es que cualquier persona que no tenga conocimientos previos de programaci´on y que desee desarrollar una actividad de este tipo sea capaz de hacerlo utilizando la herramienta sin excesivas dificultades. El objetivo a largo plazo ser´a conseguir implantar la herramienta en ´ambitos sanitarios tales como residencias de ancianos, de modo que ´estos puedan aprovechar las posibilidades que ofrecen los tabletops, proporcionarles una aproximaci´on intuitiva a las tecnolog´ıas y permitirles mejorar sus capacidades cognitivas. En cuanto a las tareas realizadas en este proyecto, estas han sido las siguientes: primero se realiz´o un estado del arte sobre tabletops ya existentes que utilizan la interacci´on tangible, sobre las ´areas cognitivas que m´as sufren deterioro con la edad y sobre las actividades que se suelen desarrollar para mejorar la capacidad cognitiva de los ancianos. Tras la realizaci´on del estado del arte, se procedi´o a seleccionar un conjunto de actividades que permitieran aprovechar al m´aximo el uso de objetos sobre tabletop y se hizo una propuesta de actividades a realizar. Tomando como base dichas actividades, se realiz´o el an´alisis de la herramienta extrayendo los requisitos que esta habr´ıa de cumplir. Tras el an´alisis, se realiz´o el dise˜no e implementaci´on de la herramienta, la cual permite que el dise˜no de actividades se realice sin necesidad de programar, sino que simplemente hay que escribir la informaci´on relativa a la actividad en un fichero que posteriormente ser´a tratado por la herramienta. En paralelo a la implementaci´on de la herramienta se fueron desarrollando las actividades seleccionadas, desarroll´andose un total de 7 actividades distintas. La herramienta tambi´en permite la ejecuci´on de las actividades, ofreciendo dos opciones: la primera de ellas es ejecutar una actividad concreta indicando la actividad a ejecutar en un fichero de arranque, pudiendo elegir el usuario resetear la actividad cuando desee pulsando una tecla o situando un objeto concreto sobre el tabletop, pausar la actividad situando otro objeto concreto sobre el tabletop y pudiendo adem´as modificar en ejecuci´on el fichero de arranque para cambiar la actividad ejecutada. La otra opci´on es mostrar en el propio tabletop un men´u en el cu´al se muestran todas las actividades desarrolladas, de modo que el usuario puede seleccionar la actividad que desee ejecutar en ese momento de forma t´actil sobre el tabletop. Una vez dentro de la actividad, el usuario tambi´en tiene las opciones de vuelta al men´u y de pausa mencionadas antes adem´as de poder modificar en tiempo de ejecuci´on las actividades. La herramienta tambi´en guarda informaci´on sobre las actividades realizadas en un fichero de logs en el que se guarda la fecha y hora de realizaci´on de la actividad, el tiempo empleado en su resoluci´on, las acciones correctas e incorrectas realizadas y si la actividad se ha completado hasta el final o no. Por ´ultimo, se realiz´o una evaluaci´on de usabilidad de la herramienta cuando se tuvo un primer prototipo de la misma obteniendo buenos resultados y nuevas ideas que podr´an utilizarse para trabajos futuros. i Agradecimientos En primer lugar quiero dar las gracias a Eva y a Javier por la labor de direcci´on y supervisi´on realizada: gracias a Eva por las veces que ha tenido que corregir las m´ultiples versiones por las que ha ido pasando esta memoria y gracias a Javier por toda la ayuda proporcionada durante todo el desarrollo del proyecto, sin su ayuda este proyecto no ser´ıa el que es. Gracias tambi´en a Sandra por permitirme hacer un proyecto m´as completo con la colaboraci´on de los estudiantes de Dise˜no Centrado en el Usuario. En segundo lugar quiero dar las gracias a mi novio Pablo, por su apoyo constante durante todos los meses que ha durado este proyecto y sobre todo por su paciencia en los ´ultimos meses del mismo, cuando los nervios eran cada vez m´as frecuentes. Finalmente dar las gracias a mi hermana Claudia y a mis padres por haber estado ah´ı siempre y haberme tenido que aguantar cuando alguna cosa no iba todo lo bien que debiera ir durante el desarrollo del proyecto. Gracias a todos. Clara Bonillo Fern´andez iii ´ Indice 1. Introducci´on y objetivos 1 1.1. Introducci´on: tecnolog´ıa y tercera edad . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2. Objetivosdelproyecto.................................. 2 2. An´alisis 5 2.1. Estado del arte: tabletops y tercera edad . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2. ´ Areas cognitivas y actividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3. Selecci´on de actividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4. Propuesta de actividades a realizar . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4.1. Actividades de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4.2. Actividades de atenci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4.3. Actividades de razonamiento . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.5. Requisitosacumplir ................................... 12 2.5.1. Requisitos funcionales adicionales . . . . . . . . . . . . . . . . . . . . . . . . 12 3. Dise˜no e implementaci´on de la herramienta 15 3.1. Diagramadeclases.................................... 15 3.2. Clase Cargar imagen ................................... 16 3.3. Clase Area ........................................ 16 3.4. Clase Fiducial ...................................... 18 3.5. Clase Feedback ...................................... 18 3.6. Clase TratarXML ..................................... 19 3.7. Clase Inicio ........................................ 21 3.8. Fichero de definici´on de actividades . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4. Evaluaci´on de la herramienta 25 4.1. Metodolog´ıa........................................ 25 4.1.1. Antesdelasesi´on ................................ 25 4.1.2. Durantelasesi´on................................. 25 4.1.3. Despu´es de la sesi´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.2. Sesionesdeevaluaci´on .................................. 28 4.2.1. Comecocos .................................... 28 4.2.2. Granja....................................... 29 4.2.3. Series ....................................... 30 4.2.4. GranPrix..................................... 30 4.3. Resultados......................................... 32 4.3.1. Resultados cuestionario SUS . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4.3.2. Resultados cuestionario IMI . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.3.3. Resultados preguntas libre redacci´on y observaciones . . . . . . . . . . . . . 34 4.4. Conclusiones de la evaluaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5. Desarrollo de actividades 37 5.1. Actividad Lista de la compra .............................. 37 5.2. Actividad Viajes ..................................... 38 5.3. Actividad Tangram .................................... 39 5.4. Actividad Marca los s´ımbolos .............................. 40 5.5. Actividad ¿Cu´antos hay? ................................ 41 5.6. Actividad Completa la secuencia ............................ 42 5.7. Actividad Analog´ıas ................................... 43 6. Conclusiones y trabajo futuro 45 v Anexo 1. Detalles de implementaci´on 47 A1.1 Clase Cargar imagen ................................... 47 A1.2 Clase Area ........................................ 47 A1.3 Clase Fiducial ...................................... 53 A1.4 Clase Feedback ...................................... 53 A1.5 Clase TratarXML ..................................... 54 A1.6 Clase Inicio ........................................ 57 A1.7 Fichero de definici´on de actividades . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Anexo 2. Detalles de los resultados de evaluaci´on 65 A2.1 Resultados observaciones Comecocos .......................... 65 A2.2 Resultados observaciones Granja ............................ 65 A2.3 Resultados observaciones Series ............................. 66 A2.5.4 Resultados observaciones Gran Prix ......................... 67 A2.5 Resultados libre redacci´on Comecocos ......................... 68 A2.6 Resultados libre redacci´on Granja ........................... 68 A2.7 Resultados libre redacci´on Series ............................ 69 A2.8 Resultados libre redacci´on Gran Prix ......................... 69 A2.9 Resultados cuestionarios IMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Anexo 3. Desarrollo temporal 73 Bibliograf´ıa 75 ´ Indice de figuras 77 vi 1. Introducci´on y objetivos En los siguientes apartados se har´a una introducci´on para ponerse en el contexto de realizaci´on de este Proyecto Fin de Carrera y se explicar´an los objetivos del mismo. 1.1. Introducci´on: tecnolog´ıa y tercera edad El envejecimiento de la poblaci´on a nivel mundial en estos ´ultimos a˜nos ha supuesto una revoluci´on demogr´afica: la OMS (Organizaci´on Mundial de la Salud) estima que el n´umero de personas mayores de 60 a˜nos est´a alrededor de los 600 millones, y se prev´e que esta cifra ir´a creciendo en a˜nos posteriores. Aunque este hecho puede considerarse un ´exito de las pol´ıticas de salud p´ublica y del desarrollo socio-econ´omico, tambi´en supone un esfuerzo por parte de la sociedad, ya que el declive de las capacidades tanto f´ısicas como cognitivas que se produce en las personas mayores ha de ser considerado por el resto de la sociedad si queremos que estas personas se sientan integradas. Adem´as, tambi´en hay que tener en cuenta que los ancianos han de adaptarse a la nueva realidad que les rodea, que consiste en un mundo cada vez m´as tecnificado. Una manera de ayudar a esta adaptaci´on es el desarrollo de actividades que motiven a las personas mayores a usar las nuevas tecnolog´ıas y que adem´as permitan la detecci´on de problemas o la mejora de capacidades. Sin embargo, el uso de dispositivos tecnol´ogicos tales como el rat´on o el teclado puede suponer una considerable dificultad a las personas mayores que empiecen a usar estas tecnolog´ıas y pueden causar el efecto contrario de que estas personas mayores sean reacias a usar las nuevas tecnolog´ıas en lugar de estar motivadas a usarlas. Por esta raz´on, se est´a explorando el uso de nuevos dispositivos que vayan m´as all´a de los perif´ericos est´andar y de los estilos de interacci´on tradicionales, acerc´andose cada vez m´as al uso de mesas interactivas o, en ingl´es, tabletops. A grandes rasgos, un tabletop es un dispositivo con un aspecto m´as o menos cercano al de una mesa convencional, cuya superficie est´a aumentada mediante la proyecci´on de imagen y sonido procedente de una aplicaci´on inform´atica y en el que la interacci´on con dicha aplicaci´on se lleva a cabo mediante movimientos de los dedos en contacto con la superficie de la mesa (multit´actil), permitiendo una interacci´on m´as intuitiva con la tecnolog´ıa y con otros usuarios. Esta forma de interacci´on presenta muchas ventajas de cara a los ancianos, ya que la amplia superficie del tabletop supone un espacio amplio para sus capacidades visuales y motrices, la estimulaci´on audiovisual les resulta motivante, les ofrece un mayor rango de actividades que pueden abarcar uno o m´as aspectos de estimulaci´on cognitiva y les permite trabajar en grupo, activando con ello su actividad e integraci´on social. Debido a todo ello, la presencia de estas mesas ha ido aumentado tanto a nivel de investigaci´on como comercial ([PIX12], [SMA14] y [TOU13] son algunos ejemplos). Sin embargo, tambi´en presentan una importante desventaja, y es que la complejidad y precisi´on de muchos gestos t´actiles puede ser dificultosa y frustrante en usuarios con temblores, artritis, o reducci´on de motricidad final. Por ello, otros modelos de Interacci´on Natural, como la Interacci´on Tangible, pueden ofrecer una alternativa m´as adaptada a las caracter´ısticas de los usuarios mayores [KSG06]. La interacci´on tangible plantea que la interacci´on entre el usuario y la aplicaci´on inform´atica sea a trav´es de objetos f´ısicos de uso cotidiano. Un entorno especialmente apropiado para la aplicaci´on de Interacci´on Tangible son los dispositivos tabletop, ya que la superficie de una mesa es en s´ı mismo un entorno natural para la manipulaci´on de objetos. T´ecnicamente, un dispositivo tabletop Tangible es capaz de identificar distintos objetos colocados en su superficie, as´ı como seguir las distintas manipulaciones que los usuarios realizan con ellos, mostrando informaci´on proyectada sobre la misma superficie donde se manipulan los objetos. 1 2.2. ´ Areas cognitivas y actividades Como se ha comentado, el envejecimiento trae consigo diversos problemas tanto f´ısicos como cognitivos: adem´as del deterioro de la vista y el o´ıdo y de la aparici´on de complicaciones motoras, las personas mayores sufren principalmente p´erdidas de memoria, d´eficit cognitivo y de atenci´on y dificultades ling¨u´ısticas; por lo tanto, el objetivo es centrarse en buscar actividades que ayuden a potenciar las ´areas cognitivas tales como la memoria, la atenci´on, la capacidad de c´alculo, el lenguaje, la orientaci´on espacio-temporal y el razonamiento para ayudar a prevenir, en la medida de lo posible, su deterioro. Nuestro objetivo es encontrar una selecci´on de actividades que cubra el m´aximo n´umero de ´areas cognitivas previamente mencionadas y que adem´as aproveche al m´aximo el uso del tabletop, lo cual se traduce en nuestro caso como que las actividades elegidas han de necesitar el uso de objetos para su completitud. Por lo tanto, antes de realizar la selecci´on se explicar´a en qu´e consiste cada una de las ´areas cognitivas mencionadas anteriormente junto con ejemplos de actividades que se suelen desarrollar para potenciar dichas ´areas: Memoria: es una funci´on del cerebro y, a la vez, un fen´omeno de la mente que permite al organismo codificar, almacenar y recuperar la informaci´on del pasado. Como se ha dicho antes, las p´erdidas de memoria aparecen con cada vez m´as frecuencia conforme una persona se hace mayor, as´ı que este ´area cognitiva siempre est´a presente en las actividades enfocadas a ancianos. Algunos ejemplos de actividades de memoria se pueden ver en [SOC12], un proyecto europeo que introduce una nueva aproximaci´on para el entrenamiento cognitivo para personas mayores: •Find the Pairs: se muestran un conjunto de im´agenes situadas en forma de matriz 3x6 y pasados unos segundos se ocultan. El objetivo es emparejar las im´agenes que eran iguales. •Do you remember your order: se muestra un men´u por pantalla con diversos primeros platos, segundos platos y postres junto con una elecci´on de men´u. Pasado un tiempo se oculta dicha elecci´on de men´u y el objetivo es recomponer el men´u que se hab´ıa pedido. •Remember the Design: se muestra un dise˜no compuesto por l´ıneas. Pasados unos segundos se oculta y el objetivo es reproducir el dise˜no. Se puede ver que la mec´anica de las actividades de memoria suele ser siempre la misma: al usuario se le muestra durante un tiempo determinado una informaci´on y pasado ese tiempo, esa informaci´on se le oculta y el usuario tiene que recordarla. Adem´as, todas las actividades de memoria conllevan algo de atenci´on. Atenci´on: dentro de la atenci´on, podemos distinguir a su vez entre tres subtipos [Dra07]: •Selectiva: aquella que se basa en reaccionar ante est´ımulos concretos de entre todos los que se presentan. •Dividida: aquella en la que hay que centrarse en varios est´ımulos a la vez, perteneciendo generalmente estos est´ımulos a sentidos diferentes (por ejemplo, vista y o´ıdo). •Sostenida: aquella que requiere concentraci´on continua. Algunos ejemplos de actividades de atenci´on se pueden ver en [SOC12], donde aparecen actividades como: •Guess who: se muestran al usuario un conjunto de im´agenes de personas y se le van dando pistas para que adivine la persona de la que se est´a hablando. El usuario ha de ir descartando personas hasta quedarse con la persona correcta. 8 •Lost in the city: al usuario se le muestran 5 monigotes, 4 de los cu´ales tienen el brazo enfocado a una direcci´on (arriba-derecha, derecha, abajo-derecha, abajo, abajoizquierda, izquierda, arriba-izquieda o arriba) y el monigote que queda lo tiene enfocado a otra direcci´on. El usuario ha de modificar la posici´on del brazo del monigote que es distinto a los dem´as para que todos tengan la misma posici´on. Otro ejemplo de trabajo con la atenci´on puede verse en [AAG09] con su actividad “Pop those Ballons”, en la que el usuario ha de estar atento para ver qu´e globos tiene que explotar. C´alculo: este ´area cognitiva se refiere a la capacidad de una persona de realizar c´alculos matem´aticos sin instrumentos adicionales. Ejemplos de actividades de este tipo se pueden encontrar en [EJE14], donde se mencionan ejercicios de c´alculo tales como: •Parch´ıs: se usa el c´alculo cuando hay que ir contando los puntos por comerte una ficha, por llegar a una casilla final... •Domin´o: al ser el objetivo del juego alcanzar una puntuaci´on prefijada, el jugador tiene que estar constantemente calculando los puntos que lleva. •Emparejamiento de fichas: se dispone de un conjunto de fichas con n´umeros y operaciones matem´aticas y hay que emparejar las fichas correctos; por ejemplo, si se tiene una ficha con un “75:3” hay que emparejarla con una ficha con un “25”. Otro ejemplo de c´alculo se mencionaba en [KKP13], donde se ten´ıa una actividad para contar monedas. Lenguaje: capacidad de los seres humanos para comunicarse por medio de signos. Actividades que potencian este ´area se pueden ver en [SOC12], donde hay actividades de emparejar sin´onimos y ant´onimos. En [TAL14] se pueden ver diversos ejercicios de lenguaje tales como ordenar frases desordenadas o elegir la palabra que corresponde a la definici´on de entre varias opciones propuestas. Orientaci´on espacio-temporal: es la toma de conciencia de los movimientos en el espacio y el tiempo de forma coordinada. Se relaciona con el conocimiento que tiene cada persona del tiempo en el que est´a (fecha y hora) y del lugar en el que est´a. En [EST14] se pueden ver ejemplos de ejercicios de este tipo, en los que se distingue entre: •Orientaci´on temporal: donde se trabajan aspectos m´as recientes como el d´ıa, mes, a˜no y estaci´on, y aspectos m´as inmediatos, con preguntas del tipo: ¿qu´e hora es?, ¿en qu´e momento del d´ıa estamos?... •Orientaci´on espacial: donde se trabajan aspectos como el lugar donde se encuentra y aspectos m´as recientes como ciudad, provincia, pa´ıs... utiliz´andose preguntas del tipo: ¿en qu´e calle estamos?, ¿en qu´e planta estamos?... Razonamiento: facultad que permite resolver problemas, extraer conclusiones y aprender de manera consciente de los hechos, estableciendo conexiones causales y l´ogicas necesarias entre ellos. En [SOC12] se pueden ver ejemplos de actividades como: •Analogies: al usuario se le muestran dos im´agenes relacionadas de alguna manera (por ejemplo, lluvia y un paraguas) y otra imagen (un sol) a la que tiene que asociar otra imagen guardando relaci´on con las dos previamente mostradas. En este caso, la respuesta correcta podr´ıa ser´ıa elegir una imagen de una sombrilla. •Differences: se muestran dos im´agenes y el usuario ha de elegir la caracter´ıstica que m´as las diferencia. Por ejemplo, se le muestra una rosa en una maceta y un girasol, y el usuario tiene que elegir de entre las opciones: “tiene una maceta”, “son flores” y “son amarillas”. Aqu´ı la principal diferencia ser´ıa que el girasol es amarillo y la rosa no. •Similarities: lo mismo que “Differences” pero a la inversa, se trata de elegir la caracter´ıstica que m´as las asemeja. 9 Una vez explicadas las principales ´areas cognitivas en las que enfocarse y ejemplos de actividades de las mismas, en el pr´oximo apartado realizaremos la selecci´on de aquellas que pueden beneficiarse de su implementaci´on en un tabletop tangible como NikVision. 2.3. Selecci´on de actividades Gracias a la informaci´on analizada en el apartado anterior sobre los tipos de juegos que suelen utilizarse para ejercitar las capacidades cognitivas, se ha podido llegar a la conclusi´on de que actividades enfocadas a funciones cognitivas como el lenguaje, el c´alculo y la orientaci´on espaciotemporal no entrar´an dentro de nuestra selecci´on. Los motivos de esta conclusi´on son los siguientes: Las actividades de lenguaje mencionadas tales como emparejar sin´onimos, ant´onimos, ordenar frases y elegir la definici´on correcta pueden completarse en cualquier dispositivo t´actil ´unicamente utilizando el dedo para seleccionar la respuesta correcta, y por tanto el uso de objetos para la resoluci´on de actividades no aporta mucho. Se podr´ıa adaptar algunas de las actividades tales como la de elegir definiciones de modo que en vez de representar las opciones a elegir de forma escrita, estuvieran representadas como objetos de modo que el usuario tuviera que elegir de entre los objetos cu´al se corresponde. Sin embargo, dado que este tipo de actividades s´olo est´an pensadas para potenciar el lenguaje y no la atenci´on (de usar objetos, el usuario tendr´ıa que usar la atenci´on selectiva para ver qu´e objeto se corresponde con la definici´on), ser´ıa mejor no distraer al usuario del objetivo principal, que es simplemente seleccionar la palabra correcta. Las actividades de c´alculo mencionadas, excluyendo la de emparejar fichas, se refieren a juegos de mesa tales como el parch´ıs o el domin´o; por lo tanto, el uso de estos juegos ya cubrir´ıa las necesidades de la actividad y no har´ıa falta volver a implementarlas para tabletop, lo cual ser´ıa bastante costoso cuando el hecho de jugar al domin´o o al parch´ıs sobre un tabletop en lugar de sobre una mesa normal y corriente no aporta nada nuevo. Las actividades de orientaci´on espacio-temporal se basan en hacer preguntas concretas y por tanto no necesitan del uso de objetos para su resoluci´on. Por lo tanto, la selecci´on ha sido la siguiente: Actividades de memoria: puesto que adem´as de la memoria, todas requieren alg´un tipo de atenci´on (ya sea selectiva o dividida) y por tanto el tener que trabajar con objetos requiere algo de atenci´on adicional. Actividades de atenci´on: divididas a su vez en los tres subtipos de atenci´on que hay [Dra07] (selectiva, dividida y sostenida). Actividades de razonamiento: puesto que el razonamiento suele ir acompa˜nado de la atenci´on sostenida y por tanto el uso de objetos puede potenciar su desarrollo. Esto no quiere decir que actividades correspondientes al lenguaje, al c´alculo y a la orientaci´on espacio-temporal no se puedan dise˜nar con la herramienta en caso necesario, sino que en comparaci´on con el resto de actividades el uso de objetos sobre tabletop no les aporta demasiado, por tanto se ha decidido no incluirlas. En el siguiente apartado, se explicar´an las actividades que se han desarrollado para cada tipo de la clasificaci´on. 2.4. Propuesta de actividades a realizar A continuaci´on se van a comentar las actividades que se proponen como ejemplo para cada tipo de la clasificaci´on establecida en el apartado anterior. 10 2.4.1. Actividades de memoria Lista de la compra: en pantalla se muestra una imagen con una lista de la compra con alimentos durante 5 segundos. Pasado ese tiempo, se quita la imagen de lista poni´endose una imagen con una bolsa de la compra y el usuario ha de seleccionar los alimentos correctos y situarlos en la bolsa. Los objetos que se utilizan en esta actividad son 12 juguetes de comidas y bebidas: agua, cebolla, guisantes, huevo, leche, manzana, naranja, pimiento, tomate, zanahoria, zumo de naranja y zumo de uva. La actividad puede estar compuesta de diferentes tareas que combine los alimentos de manera distinta, de modo que primero puede mostrarse una lista con los alimentos: agua, huevo, manzana y tomate (complet´andose la actividad cuando esos 4 alimentos est´en sobre la bolsa) y despu´es que salga una lista con una anotaci´on que diga: “Mete en la bolsa dos bebidas” (complet´andose la tarea cuando est´en sobre la bolsa las bebidas leche-zumo de uva, leche-agua, zumo de naranja-agua...). Viajes: al usuario se le muestra un mapa de Europa y se reproduce una grabaci´on con un itinerario a seguir con distintos medios de transporte, por ejemplo: “Ir´e primero a Grecia en barco, despu´es a Ruman´ıa en tren y por ´ultimo a Alemania en avi´on”, de modo que el usuario ha de seleccionar el medio de transporte adecuado y situarlo en el pa´ıs correspondiente. En el ejemplo, la tarea se completar´ıa cuando el juguete de barco estuviera en Grecia, el de tren en Ruman´ıa y el de avi´on en Alemania. Los objetos que se utilizan en esta actividad son 3 juguetes de medios de transporte: tren, avi´on y barco. 2.4.2. Actividades de atenci´on Tangram (atenci´on sostenida): este juego [TAM14] tiene dos modos: el f´acil, en el que se ve en qu´e posici´on est´a cada una las piezas que conforman la figura, y el dif´ıcil, en el que solo se muestra el contorno de la figura. En la modalidad dif´ıcil tambi´en se trabaja el razonamiento, al tener que deducir d´onde va cada pieza. Los objetos con los que trabajamos en esta actividad son las 7 piezas del Tangram. Marca los s´ımbolos (atenci´on selectiva): se presenta un mapa con s´ımbolos de gasolineras, restaurantes, hoteles, farmacias...y se pide al usuario que marque todos los que sean de un tipo concreto. Los objetos que se utilizan en esta actividad son fichas que el usuario tendr´a que colocar en los s´ımbolos correspondientes. ¿Cu´antos hay? (atenci´on dividida): Al usuario se le muestra una imagen con n´umeros entre el 0 y el 9. Nada m´as empezar la actividad, suena una grabaci´on que le dice al usuario qu´e n´umero ha de buscar; por ejemplo, la grabaci´on dir´a algo del estilo: “Marca todos los treses que aparecen en pantalla”. El usuario tendr´a que ir situando fichas sobre todos los n´umeros que encuentre de ese tipo mientras que a la vez se estar´a reproduciendo una grabaci´on con una secuencia de golpes: por ejemplo, sonar´an 4 golpes, habr´a una pausa, sonar´an 8 golpes, habr´a una pausa... de modo que el usuario, a la vez que marca los n´umeros, durante la pausa tendr´a que decir cu´antos golpes han sonado. Los objetos que se utilizan en esta actividad son fichas que el usuario tendr´a que colocar en los n´umeros correspondientes. 11 2.4.3. Actividades de razonamiento Completa la secuencia: usando fichas de domin´o, se muestra una secuencia en la que faltan algunas piezas y el usuario ha de seleccionar la pieza que falta para completar la secuencia. Los objetos que se utilizan en esta actividad son las fichas de domin´o. Analog´ıas: se dispone de un conjunto de fichas con dos im´agenes cada una. A cada imagen le corresponde una pareja, que estar´a en otra ficha diferente. El objetivo de la actividad es que todas las fichas formen una cadena de modo que todos los extremos de las fichas est´en con su correspondiente pareja. Para este juego podr´ıa ser interesante que en lugar de haber ´areas de interacci´on fijas, ´estas se “creen” asociadas a las fichas, de modo que el usuario no tenga que preocuparse de d´onde poner la ficha sino s´olo de hacerla coincidir con la correspondiente pareja. Los objetos que se utilizan en esta actividad son las diferentes fichas. 2.5. Requisitos a cumplir Si se analizan las actividades propuestas en el apartado anterior, se puede observar que presentan una caracter´ıstica com´un: para completar la actividad hay que colocar determinados objetos en determinadas ´areas interactivas. En particular todas comparten: Una imagen de fondo de la actividad, que podr´a cambiar o no. Areas interactivas. Objetos correctos e incorrectos asociados a dichas ´areas interactivas. Por tanto, se pueden deducir los requisitos funcionales que una herramienta destinada a su desarrollo habr´a de cumplir, requisitos que se muestran en la Tabla 1. Requisitos Descripci´on Actividad R1 En la superficie de la mesa se han de tener ´areas interactivas Todas en las que poder poner uno o m´as objetos R2 En algunas actividades, se ha de tener en cuenta la orientaci´on Atenci´on de los objetos colocados sobre el ´area interactiva R3 Las ´areas tienen una lista de objetos correctos y una lista Todas de objetos incorrectos R4 La imagen que se muestra en pantalla puede cambiar pasado Memoria un determinado tiempo que ser´a configurable R5 Las ´areas interactivas pueden estar fijas en una posici´on en Todas la pantalla o ir asociadas a objetos R6 Se tiene que poder reproducir sonidos cuando se coloquen los Todas objetos en las ´areas dependiendo de si est´an bien o mal R7 Se tiene que poder definir secuencias de actividades, de modo Todas que cuando se complete una actividad, se pase a la siguiente R8 Las actividades pueden requerir objetos concretos diferenciados Todas o fichas del mismo tipo Tabla 1: Requisitos funcionales 2.5.1. Requisitos funcionales adicionales Adem´as de los requisitos funcionales de la tabla 1 que se extraen de las necesidades de las actividades del apartado anterior, durante la realizaci´on del estado del arte se pudieron observar dos cosas: 12 Se suele utilizar alg´un tipo de retroalimentaci´on o feedback en las actividades. Por ejemplo, en la actividad “Pop those balloons” de [AAG09], cada vez que el usuario estalla un globo con ´exito, ´este desaparece y su puntuaci´on aumenta, o en las actividades desarrolladas por [GMS09], se proporciona un feedback visual. Por lo tanto, es necesario que las actividades propuestas tengan alg´un tipo de feedback, ya sea visual o auditivo, de modo que el usuario pueda saber si la actividad la va resolviendo bien o no. Se suele utilizar alg´un tipo de registro de resultados (o logs) durante las actividades. Por ejemplo, en el juego del solitario de [JPM04] se guardaron los resultados de los usuarios durante las tres semanas que dur´o el estudio y en [GMS09], aparte del software de actividades el tabletop dispon´ıa de un m´odulo que permit´ıa al usuario registrarse, de modo que cada vez que el usuario realizaba alguna actividad, esa informaci´on se guardaba para poder ser analizada despu´es. Por lo tanto, podr´ıa ser ´util que las actividades propuestas guardaran alg´un tipo de informaci´on por si posteriormente en alg´un trabajo futuro fuera interesante hacer un estudio sobre la evoluci´on de un usuario que utilizara la herramienta. De este an´alisis se extraen, por tanto, dos nuevos requisitos funcionales que se presentan en la Tabla 2. Requisitos Descripci´on Actividad R9 Se tiene que poder mostrar im´agenes cuando se coloquen los Todas objetos en las ´areas dependiendo de si est´an bien o mal R10 Se tiene que poder guardar informaci´on relativa al proceso de Todas resoluci´on de cada actividad Tabla 2: Requisitos funcionales adicionales Por ´ultimo, los requisitos no funcionales de la herramienta ser´ıan los siguientes: Requisitos Descripci´on RN1 La herramienta se desarrollar´a con AS3. Por lo tanto se ha de tener instalado Adobe Flash CS5.5 en el ordenador para poder trabajar con la herramienta RN2 Para el dise˜no de actividades es recomendable disponer de alg´un programa de tratamiento de gr´aficos como Photoshop o Gimp Tabla 3: Requisitos no funcionales La raz´on de elegir AS3 para programar fue debido a que se iban a necesitar algunas librer´ıas y funciones ya implementadas que estaban programadas en AS3. 13 chapuza 3. Dise˜no e implementaci´on de la herramienta En este apartado se va hablar tanto del dise˜no como de la implementaci´on de la herramienta que permita el desarrollo de las actividades descritas en el apartado anterior. 3.1. Diagrama de clases Una vez seleccionadas las actividades a realizar, queda hacer el dise˜no de la herramienta que permita a su vez dise˜narlas y ejecutarlas. En la figura 8 se puede ver el diagrama de clases de la herramienta: Figura 8: Diagrama de clases de la herramienta En los siguientes apartados van a explicarse las clases de forma resumida con sus atributos y funciones m´as relevantes junto con algunos detalles de implementaci´on. Como se ha comentado anteriormente, todas las actividades a dise˜nar necesitan una imagen de fondo, ´areas interactivas, objetos asociados a dichas ´areas y feedback; por lo tanto, como m´ınimo la herramienta tendr´a que implementar dichas clases. 15 Antes de seguir hay que decir que aparte de las clases mostradas en el diagrama, se utiliz´o una librer´ıa (tuio) que no va a ser explicada en detalle puesto que fue ´unicamente reutilizada de proyectos anteriores y no se realiz´o sobre ella ninguna modificaci´on; ´unicamente decir que esta librer´ıa es la que permite establecer la conexi´on de la herramienta con el tabletop NIKVision mediante un socket UDP y es la que se encarga de gestionar el reconocimiento de los objetos que se ponen sobre la mesa. Aparte de tuio, tambi´en se utiliz´o otra librer´ıa que se encargaba del dibujo de las ´areas que tampoco se explicar´a puesto que tambi´en fue reutilizada. 3.2. Clase Cargar imagen Como su nombre indica, esta clase es la encargada de cargar una imagen en una capa (objeto MovieClip) en una posici´on concreta con unas dimensiones determinadas. Sus atributos son: loader: contiene el archivo de imagen (png o jpg). posX: posici´on X de la imagen en la actividad. posY: posici´on Y de la imagen en la actividad. ancho: ancho de la imagen. alto: alto de la imagen. nom: path absoluto de la imagen. layer: capa sobre la que se dibujar´a la imagen. esFlash: este atributo indica si la imagen pasada como par´ametro es jpg/png o flash (.swf). Esto puede ser ´util si cuando se completa un ´area se quiere que en lugar de una imagen, aparezca una animaci´on indicando la completitud del ´area. hayAlfa: este atributo indica si hay que guardarse el bitmap de la imagen (se presupone que la imagen con la que se trabaja cuando hayAlfa es true es png). mapa colisiones: variable en la que se guarda el bitmap de la imagen si el atributo hayAlfa es true; en caso contrario, vale null. Las funciones de la clase Cargar imagen son las siguientes: Cargar imagen: constructor de la clase. initListener: funci´on encargada de cargar la imagen <nombre>en la capa <capa>en la posici´on (<px>,<py>) de la pantalla y con las dimensiones <alto img>y<ancho img>. Ejemplos de c´odigo de dichas funciones se pueden ver en el anexo 1. 3.3. Clase Area La clase Area es la encargada del tratamiento de ´areas. Sus atributos son los siguientes: x: posici´on X del ´area en la actividad. y: posici´on Y del ´area en la actividad. W: ancho del ´area. H: alto del ´area. IDs: lista de ids de los objetos o fichas asociados al ´area, tanto correctos como incorrectos (puede ser una lista vac´ıa y que el ´area no tenga objetos asociados). IDsColocados: lista de ids de los objetos o fichas colocados sobre el ´area. 16 incorrecto: indica si el ´area tiene lista de objetos incorrectos. tieneFichas: indica si hay fichas en la lista de objetos asociados. verbos: si es true, indica que el contorno del ´area ser´a posteriormente dibujado cuando se ejecute la actividad; si es false, no se dibujar´a el contorno. estaBien: indica el estado de la ´ultima acci´on realizada sobre el ´area. Puede tener tres valores: el valor 0, que indica que no ha habido ning´un cambio, el valor 1, que indica que ha habido un cambio en el ´area y ha sido correcto, y el valor -1, que indica que ha habido un cambio en el ´area y ha sido incorrecto. El uso de este atributo se ver´a posteriormente en la clase Inicio, en la que se combina con el feedback para saber cu´ando cambiar de imagen neutra a correcta o incorrecta. hayAlfa: si es true, indica que se va a tener en cuenta el canal alfa de su imagen neutra; si es false, no se tendr´a en cuenta el canal alfa. cargadorAlfa: objeto Cargar imagen asociado a la imagen neutra del ´area. Se utiliza para poder acceder al atributo mapa colisiones y s´olo es distinto de null cuando hayAlfa vale true. Adem´as de estos atributos comunes a todas las ´areas, en el an´alisis de requisitos que se realiz´o se determin´o que hab´ıa actividades (como la de Analog´ıas) que necesitaban ´areas que dependieran de los objetos. Para manejar esa funcionalidad, se necesitan adem´as de los anteriores, los atributos: IDasociado: id del objeto al que va asociada el ´area. orientable: indica si el ´area ha de girar con respecto al objeto asociado. x dep: posici´on X absoluta del ´area. y dep: posici´on Y absoluta del ´area. fueraMesa: indica si el objeto asociado est´a fuera de la mesa. Por ´ultimo, para facilitar la realizaci´on de algunas actividades, puede ser interesante asociar im´agenes a ´areas, de modo que depende del estado del ´area aparezca una imagen u otra. Para eso, se utilizan los atributos: imgSpr: imagen que aparece asociada al ´area cuando es neutra. imgBienSpr: imagen que aparece asociada al ´area cuando est´a bien. imgMalSpr: imagen que aparece asociada al ´area cuando est´a mal. En el diagrama se refleja la relaci´on entre la clase Area y la clase Cargar imagen indicando que un ´area puede tener asociadas de 0 a 3 im´agenes. Las funciones de la clase Area son las siguientes: Area: constructor de la clase. a˜nadeFID: a˜nade los fiduciales asociados al ´area. colocaID: mete el id de fiducial <id>en la lista <IDsColocados>. buscaCambios: busca las diferencias entre el estado anterior del ´area y el actual. buscarAnterior: devuelve true si <id>no estaba colocado antes dameFiducial: devuelve el objeto fiducial a partir de su <id>o null si no estaba. correctitud: devuelve el estado del ´area (-1 incorrecta, 0 neutra, 1 correcta, 2 algo mal). SetAudioIncorrecto: carga el audio incorrecto. 17 chapuza 4. Evaluaci´on de la herramienta Una vez que se tuvo un prototipo implementado de la herramienta, alumnos de la asignatura Dise˜no Centrado en el Usuario de Grado de Ingenier´ıa Inform´atica de la Escuela de Ingenier´ıa y Arquitectura de Zaragoza hicieron, como pr´actica opcional de la asignatura, el dise˜no de una actividad para el tabletop NIKVision. Participaron 16 alumnos en total y se dividieron en 4 grupos con 4 personas por grupo. El objetivo principal que se buscaba era ver si la herramienta permit´ıa realizar el dise˜no de actividades de manera sencilla para aquellas personas que no estuvieran familiarizadas ni con el tabletop NIKVision ni con la herramienta mediante una evaluaci´on de su usabilidad. 4.1. Metodolog´ıa En el siguiente apartado se explicar´a el procedimiento que se sigui´o para realizar la evaluaci´on del prototipo de la herramienta. 4.1.1. Antes de la sesi´on Una semana antes de la primera sesi´on de evaluaci´on, los alumnos que iban a participar se dividieron en grupos de 4 personas, desempe˜nando cada miembro del grupo un rol diferente. Dichos roles eran los siguientes: Dise˜nador: encargado de crear el concepto de juego y de coordinar al resto de los miembros del equipo para que el juego resultante cumpla con su dise˜no. Juguetero: encargado de conseguir o de construir los juguetes necesarios y de su adaptaci´on para que puedan ser usados en el tabletop NIKVision. Grafista: encargado de conseguir o crear los recursos multimedia necesarios para el juego, tales como gr´aficos, animaciones y sonidos. Desarrollador: encargado de implementar el juego en el XML de la herramienta para que sea ejecutado con la herramienta en el tabletop NIKVision. Tambi´en se le proporcion´o a cada uno documentaci´on sobre lo que es NIKVision [NIK14], ejemplos de juegos desarrollados para NIKVision y documentaci´on personalizada para cada rol. Una vez decididos los roles, cada grupo pensaba el juego que quer´ıa hacer y mandaba un correo para confirmar si el juego cumpl´ıa los requisitos necesarios para ser desarrollado sobre NIKVision, los cu´ales se resumen en: Que estuviera dentro de las posibilidades t´ecnicas que ofrece la mesa; es decir, que la actividad est´e basada en la manipulaci´on de objetos sobre la mesa. Que previsiblemente diera tiempo a realizarla en el tiempo que duraba la sesi´on (2-3 horas). Como comentario, ninguna de las ideas propuestas tuvo que ser rechazada, sino como mucho simplificada ligeramente o dividida en diversas fases para asegurar que se podr´ıa realizar por lo menos un m´ınimo de la actividad durante la sesi´on. Los alumnos que participaron en total en la pr´actica fueron 16 estudiantes, por tanto se hicieron 4 sesiones de 2-3 horas cada una. Los alumnos ten´ıan edades comprendidas entre los 21 y 29 a˜nos, siendo todos estudiantes de grado en inform´atica como se ha comentado antes. 4.1.2. Durante la sesi´on Las sesiones tuvieron lugar en el laboratorio 2.07 del edificio Ada Byron de la Escuela de Ingenier´ıa y Arquitectura de Zaragoza y la metodolog´ıa de cada una de las sesiones fue siempre la misma: durante la sesi´on hab´ıa dos evaluadores, de modo que conforme iban viniendo los alumnos, uno de ellos apuntaba sus nombres, sus edades, los roles que desempe˜naban y el juego que iban a realizar. Seguidamente, el otro evaluador explicaba de forma pr´actica el funcionamiento de NIKVision y ya a continuaci´on cada miembro del grupo se pon´ıa a desempe˜nar su papel. 25 La forma de organizarse era la siguiente: Al desarrollador se le dejaba el ordenador conectado al tabletop para que pudiera estar haciendo pruebas sobre la mesa a la vez que programaba. Al juguetero se le proporcionaban materiales tales como papel, tijeras, pegamento, corcho, cuter...para que pudiera ir haciendo los juguetes en el caso de crearlos de cero o se le proporcionaba directamente los juguetes que luego ´el adaptaba para que fueran reconocidos en la mesa. Tambi´en se le facilitaban los fiduciales ya impresos. Al grafista se le dejaba un ordenador del laboratorio para que pudiera buscar los recursos multimedia necesarios para su actividad. El ordenador en cuesti´on tambi´en dispon´ıa de programas de trabajo gr´afico como photoshop o gimp para poder realizar los gr´aficos o animaciones. Al dise˜nador se le proporcionaba otro ordenador por si necesitaba ayudar al grafista en alg´un aspecto del dise˜no del juego, aunque la mayor parte del tiempo se dedicaba a coordinar el trabajo entre el desarrollador y el grafista, asegur´andose de que el primero tuviera todo lo necesario del segundo para continuar. Durante la sesi´on, uno de los evaluadores se dedicaba a resolver las dudas que les iban surgiendo proporcionando soporte t´ecnico (dudas relacionadas con la mesa, la detecci´on de los objetos...) mientras el otro se encargaba de tomar notas de observaci´on cuando ocurr´ıan incidencias durante la sesi´on (dudas y malfuncionamientos) as´ı como posibles mejoras a realizar que se derivaban de dichas incidencias. 4.1.3. Despu´es de la sesi´on Al finalizar la sesi´on, todos los alumnos completaron un cuestionario IMI (Intrinsic Motivation Inventory) [IMI85] y aquellos que hab´ıan desempe˜nado el rol de desarrollador, hicieron adem´as un cuestionario SUS (System Usability Scale) [SUS96]. Tambi´en se les pidi´o que dieran su opini´on sobre la sesi´on con dos preguntas de libre redacci´on (ver tabla 4). El cuestionario SUS permite obtener una visi´on global de la usabilidad de la herramienta desarrollada. Est´a compuesto por 10 preguntas evaluadas seg´un una escala de Likert de 1 a 7 puntos (significando el 1 totalmente en descuerdo y el 7 totalmente de acuerdo) que responden a declaraciones del estilo: “la herramienta ha sido f´acil de usar” (ver tabla 5). Este cuestionario s´olo lo rellena el desarrollador. El cuestionario IMI pretende obtener informaci´on sobre la experiencia subjetiva relativa a la actividad llevada a cabo por los alumnos en la sesi´on. El cuestionario IMI utilizado est´a formado por 19 preguntas tambi´en evaluadas mediante la escala de Likert anterior y adem´as cada pregunta permite medir una de las siguientes sub-escalas: inter´es/diversi´on, competencia percibida y presi´on/tensi´on percibida (ver tabla 6). Si bien el cuestionario IMI permite evaluar subescalas adicionales, se decidi´o centrarse ´unicamente en esas tres porque lo que se quer´ıa saber era si los roles se desempe˜naban satisfactoriamente sin resultar ninguno demasiado tedioso (inter´es/diversi´on), pudiendo cumplir cada uno con los requisitos propios de cada rol (competencia percibida) y si adem´as el desempe˜no de dichos roles se pod´ıa realizar de forma fluida sin demasiado estr´es (presi´on/tensi´on). Este cuestionario lo rellenaron todos los alumnos. En cuanto a las observaciones realizadas durante la sesi´on, se rellen´o una hoja en la que se iba anotando, para cada sesi´on, la hora de la incidencia, el rol de la persona que la detect´o, el tipo de incidencia (consulta o problema t´ecnico) que surgi´o y la descripci´on de la incidencia (ver tabla 7). 26 Pregunta 1. Explica brevemente en qu´e aspectos la herramienta no ha sido capaz de soportar tus ideas 2. Cualquier otro comentario general ser´ıa bienvenido Tabla 4: Preguntas de libre redacci´on Pregunta 1. Creo que me gustar´ıa usar la herramienta con frecuencia 2. He encontrado la herramienta excesivamente compleja 3. Pienso que la herramienta ha sido f´acil de usar 4. Creo que necesitar´ıa soporte de una persona t´ecnica para usar la herramienta 5. He visto que las distintas funcionalidades de la herramienta est´an bien integradas 6. Creo que hay mucha inconsistencia en la herramienta 7. Imagino que la mayor´ıa de la gente aprender´a a usar la herramienta muy r´apidamente 8. Encuentro extra˜na la forma de usar la herramienta 9. Mientras usaba la herramienta, me he sentido confiad@ 10. He tenido que aprender muchas cosas para poder empezar a usar la herramienta Tabla 5: Cuestionario SUS Pregunta Sub-escala 1. Durante la actividad pensaba en lo mucho que estaba disfrutando Inter´es/diversi´on 2. No me he sentido nervios@ para nada en la actividad Presi´on/tensi´on 3. La actividad no ha sido capaz de mantener mi atenci´on Inter´es/diversi´on 4. Pienso que lo he hecho realmente bien durante la actividad Inter´es/diversi´on 5. La actividad me ha parecido muy interesante Inter´es/diversi´on 6. Me he sentido muy tens@ durante la actividad Presi´on/tensi´on 7. La actividad ha sido muy divertida Inter´es/diversi´on 8. Creo que me he defendido mejor en la actividad que el resto de Inter´es/diversi´on mis compa˜ner@s 9. Durante la actividad, en todo momento sent´ıa que ten´ıa el control Competencia percibida de lo que hac´ıa 10. No he podido hacer algunas de las ideas que ten´ıa para la Competencia percibida actividad 11. Durante la actividad, estaba pensando en otras cosas Inter´es/diversi´on 12. Me he distra´ıdo frecuentemente con otras cosas ajenas a la Inter´es/diversi´on actividad 13. La actividad me ha abstra´ıdo por completo Inter´es/diversi´on 14. La actividad ha sido intr´ınsicamente interesante Inter´es/diversi´on 15. La actividad ha despertado mi curiosidad Inter´es/diversi´on 16. Me he sentido tan inmers@ en la actividad que he perdido Inter´es/diversi´on la noci´on del tiempo 17. Salgo con una opini´on muy positiva de la actividad Inter´es/diversi´on 18. La actividad ha estimulado mi imaginaci´on Inter´es/diversi´on 19. Estoy deseando participar en otra actividad similar Inter´es/diversi´on Tabla 6: Cuestionario IMI Hora Rol Consulta, problema t´ecnico Breve descripci´on ... ... ... ... Tabla 7: Formato de la hoja de observaciones 27 4.2. Sesiones de evaluaci´on En este apartado, se van a explicar las actividades que se realizaron en las 4 sesiones de pr´acticas. 4.2.1. Comecocos La actividad que se desarroll´o en la primera sesi´on fue una adaptaci´on del videojuego Pac-Man [PAC14]. El concepto de juego es el siguiente: se tiene un laberinto lleno de obst´aculos y de cocos (figura 12) por el cu´al tiene que moverse el comecocos sin chocar con las paredes mientras va “comiendo” los cocos que ve a su paso. A su vez, hay un fantasma que lo va persiguiendo por el laberinto. La actividad terminar´ıa cuando el comecocos se ha comido todos los cocos o cuando el fantasma pilla al comecocos. En un inicio tambi´en, se quer´ıa hacer que el comecocos pudiera convertirse en comefantasmas al pasar por ´areas especiales, pero debido a que ese comportamiento no es soportado por la herramienta (ya que ´esta no permite programaci´on) ese requisito de juego no se pudo desarrollar. Figura 12: Imagen de fondo de la actividad Comecocos con sus ´areas de interacci´on. Figura 13: Juguetes de la actividad Comecocos Por lo tanto, en esta actividad se manejan los dos juguetes mostrados en la figura 13: el comecocos y el fantasma. En la figura 12 se puede ver que hay ´areas de interacci´on en todo el escenario, para que as´ı en todo momento se pueda detectar cu´ando el comecocos se come un coco y cu´ando el comecocos o el fantasma chocan con la pared, y as´ı adem´as poder ejecutar un sonido u otro. Adem´as, cada vez que el comecocos come un coco, ese ´area pasa considerarse correcta y por lo tanto el coco “desaparece”. 28 4.2.2. Granja La actividad que se desarroll´o en la segunda sesi´on tem´ıa como tem´atica una granja. El concepto de juego es el siguiente: en la granja se pueden ver siluetas de 6 animales (figura 14): un caballo, un cerdo, una gallina, una oveja, un pato y una vaca. El objetivo de la actividad es que el usuario sit´ue los 6 juguetes de animales en su silueta correspondiente. Para ayudar al usuario, en esta actividad se hace uso del feedback, de modo que: Cada vez que se coloca un animal bien, aparece una cara sonriente en la esquina superior izquierda de la pantalla durante 3 segundos. Cada vez que se coloca un animal mal, aparece una cara triste en la esquina superior izquierda de la pantalla durante 3 segundos y suena el sonido correspondiente a la silueta sobre la que se ha colocado el animal para dar una pista de a qu´e animal corresponde dicha silueta. La actividad concluye cuando se han colocado los 6 animales en sus siluetas correspondientes y cuando se ha colocado un juguete especial que no tiene silueta (el perro) en cualquier lugar de la pantalla. En esta actividad se manejan los 7 juguetes mostrados en la figura 15: el cerdo, el caballo, la gallina, la oveja, el pato, el perro y la vaca. En la figura 14 se puede ver que cada silueta tiene su ´area de interacci´on excepto la del perro, que como se ha dicho, ocupa toda la pantalla. Figura 14: Imagen de fondo de la actividad Granja con sus ´areas de interacci´on. Figura 15: Juguetes de la actividad Granja. 29 4.2.3. Series La actividad que se desarroll´o en la tercera sesi´on fue sencilla en concepto pero fue de las que m´as trabajo llev´o. Como se puede ver en la figura 16, el escenario de la actividad consiste en una serie de figuras que siguen alg´un tipo de patr´on. El objetivo de la actividad es que el usuario sit´ue la figura o figuras correspondientes para completar la serie. Para ayudar al usuario, en esta actividad se hace uso de las im´agenes bien y mal asociadas a ´areas, de modo que: Cada vez que se coloca una pieza bien, aparece una cara sonriente encima del ´area en la que se ha colocado la pieza, manteni´endose ya desde entonces ah´ı. Cada vez que se coloca una pieza mal, aparece una cara triste encima del ´area en la que se ha colocado la pieza, y se mantiene ah´ı hasta que la pieza se quita. La actividad concluye cuando se han completado las 8 series de las que consta la actividad. Figura 16: Imagen de fondo de la actividad Series con sus ´areas de interacci´on. En esta actividad se manejan los 12 juguetes mostrados en la figura 17. En la figura 16 se puede ver que las ´areas de interacci´on se encuentran rodeando las figuras y los interrogantes que indican d´onde colocar la pieza. Figura 17: Juguetes de la actividad Series 4.2.4. Gran Prix La actividad que se desarroll´o en la cuarta y ´ultima sesi´on fue m´as parecida en complejidad a la del Comecocos de la primera sesi´on. En la figura 18 se puede ver el circuito que ten´ıa pensado el grupo. 30 Como se puede ver en la figura 19, el circuito tuvo que ser modificado por motivos que posteriormente se explicar´an y al final el escenario de la actividad consisti´o en un circuito rectangular rodeado de hierba y de desierto, por el cu´al van a correr un coche y una moto. El objetivo de la actividad es hacer una carrera con los dos transportes siguiendo el circuito sin salirse de los bordes. Cada vez que un transporte pasa por un tramo del circuito, suena el ruido de motor correspondiente y cada vez que un transporte se sale del circuito ya sea por el exterior o por el interior, suena un sonido de derrape. La actividad empieza situando los dos transportes en la casilla la salida. De ese modo, el sem´aforo que indica el comienzo de la carrera se activa junto con un sonido de cuenta atr´as. Cuando el sem´aforo se pone en verde empieza la carrera. La actividad termina cuando uno de los dos transportes llega a la meta, resultando el ganador. Figura 18: Circuito inicial de la actividad Gran Prix Figura 19: Imagen de fondo de la actividad Gran Prix con sus ´areas de interacci´on. En esta actividad se manejan los dos juguetes mostrados en la figura 20: el coche y la moto. En la figura 19 se puede ver que las ´areas de interacci´on son todo el escenario, ya que hay que detectar 31 el circuito, el exterior e interior del circuito, la salida y la meta. Figura 20: Juguetes de la actividad Gran Prix 4.3. Resultados A continuaci´on se muestran los resultados generales obtenidos en la evaluaci´on de la herramienta. Las respuestas de los alumnos a las preguntas de libre redacci´on, las observaciones anotadas durante las sesiones y los cuestionarios IMI separados por actividad se puede consultar en el anexo 2. 4.3.1. Resultados cuestionario SUS En total, el resultado promedio del SUS es de 74,57 sobre 100 con una desviaci´on t´ıpica de 15,33. Los resultados individuales del SUS se muestran a continuaci´on en la figura 21. Figura 21: Cuestionarios SUS realizados por los desarrolladores Como se puede observar, los resultados son bastante parecidos entre s´ı exceptuando el primer caso, siendo los resultados de Granja,Gran Prix ySeries superiores al tercer cuartil, con lo cu´al la herramienta tiene altas calificaciones de usabilidad y satisfacci´on. Analizando los resultados, una posible raz´on para esa diferencia de resultados de la actividad Comecocos con respecto a las dem´as puede ser que de las cuatro actividades desarrolladas, fue la m´as complicada y tediosa de implementar debido a la gran cantidad de ´areas que hac´ıan falta (140 ´areas) y por no tener la herramienta capacidad de programar. Adem´as el Comecocos fue la actividad que m´as hubo que adaptar a la mesa no pudiendo realizar muchas de las ideas que ten´ıan en mente. 32 4.3.2. Resultados cuestionario IMI En cuanto a los cuestionarios IMI, se van a hacer dos tipos de an´alisis: el primero se centrar´a en los resultados obtenidos en funci´on de los roles y el segundo en los resultados obtenidos en funci´on de las actividades. En el anexo 2 se pueden consultar los resultados obtenidos en cada actividad por separado. A continuaci´on, se van a mostrar los resultados obtenidos agrupados por actividad (figura 22): Figura 22: Cuestionarios IMI agrupados por actividad Los resultados conjuntos de las 4 actividades superan en media el 70 % de satisfacci´on, siendo el m´as elevado el resultado de la actividad Series y el m´as bajo el de la actividad Gran Prix. Adem´as, tanto el resultado de Series como el de Comecocos superan el tercer cuartil y la media de las 4 actividades es del 75 %, con lo cual se puede concluir que el nivel global de satisfacci´on es bastante elevado. Figura 23: Cuestionarios IMI agrupados por rol En cuanto a los resultados agrupados por roles (figura 23) se observa que ´estos superan tambi´en en media el 70 % de satisfacci´on, siendo el m´as elevado el resultado del rol dise˜nador y el m´as bajo el de desarrollador, pero la diferencia entre estos valores extremos es bastante peque˜na. Adem´as, tanto el resultado del rol dise˜nador como el del rol juguetero superan el tercer cuartil y la media de los 4 roles es tambi´en del 75 %, con lo cual el nivel global de satisfacci´on es bastante elevado. 33 En cuanto a los juguetes utilizados, se pueden ver en la figura 30. Figura 30: Juguetes de la actividad Tangram 5.4. Actividad Marca los s´ımbolos En este caso s´olo hay una imagen, el mapa, mostrado en la figura 31, y las ´areas de interacci´on son los s´ımbolos que aparecen en el mapa, como se muestra en la figura. Para esta actividad, los objetos correctos son las fichas colocadas en los s´ımbolos que se indiquen en la grabaci´on inicial de la actividad. Por ejemplo, si la grabaci´on de inicio de la la actividad dice: “Sit´ue fichas en todos los s´ımbolos de gasolineras”, la actividad se completar´a cuando todos los s´ımbolos de gasolinera tengan una ficha encima. En cuanto al feedback, en este caso adem´as de las im´agenes mostradas en la figura 32 tambi´en se usar´a sonido sonido, de modo que: Cuando se coloque una ficha en el s´ımbolo indicado, se reproducir´a un sonido de acierto indicando que se ha colocado bien y aparecer´a la imagen de acierto sobre el s´ımbolo. Cada vez que se coloque una ficha en un s´ımbolo no indicado, se reproducir´a un sonido de fallo indicando que se ha colocado mal y aparecer´a la imagen de fallo sobre el s´ımbolo. Figura 31: Imagen de fondo y ´areas de interacci´on de la actividad Marca los s´ımbolos. 40 Figura 32: Imagen de acierto y de fallo para la actividad Marca los s´ımbolos En cuanto a los juguetes utilizados, en este caso se usaron las fichas mostradas en la figura 33. Figura 33: Fichas que se usan en lugar de juguetes con fiduciales 5.5. Actividad ¿Cu´antos hay? En este caso s´olo hay una imagen, el conjunto de n´umeros, mostrado en la figura 34, y las ´areas de interacci´on son cada uno de los n´umeros que aparecen, como se muestra en la figura. Figura 34: Imagen de fondo y ´areas de interacci´on de la actividad Marca los s´ımbolos. En cuanto al feedback, en este caso se reutilizan las im´agenes mostradas en la figura 32, de modo que cuando se sit´ua una ficha sobre el n´umero correcto, aparece el tick de acierto sobre el n´umero, y cuando se coloca una ficha sobre un n´umero incorrecto, aparece la X de error sobre el n´umero. En este caso no utilizamos sonido en el feedback ya que el objetivo de esta actividad era que adem´as de que el usuario localizara los n´umeros correctos, estuviera pendiente de la secuencia de golpes que iba sonando mientras completaba la actividad, con lo cual si pon´ıamos un sonido de acierto o de fallo, interfer´ıa con la secuencia dificultando la tarea. 41 En cuanto a los juguetes utilizados, en este caso se usaron las fichas mostradas anteriormente en la figura 33. 5.6. Actividad Completa la secuencia En este caso s´olo hay una imagen, la secuencia, mostrado en la figura 35, y el ´areas de interacci´on es la ficha que el usuario ha de poner para completar la secuencia, como se muestra en la figura. Figura 35: Imagen de fondo y ´area de interacci´on de la actividad Completa la secuencia. Para esta actividad, el objeto correcto es la ficha de domin´o que completa la secuencia (en el caso de la secuencia mostrada en la figura 35, la ficha que falta es la 6/6). En cuanto al feedback, se usar´an las mismas im´agenes utilizadas en las actividades Lista de la compra,Viajes yTangram s´olo que ahora la forma de activarse ser´a la siguiente: Cuando se coloque una ficha de domin´o correcta, la imagen de cara neutra pasar´a a ser la imagen de cara feliz durante 3 segundos, indicando que el objeto se ha colocado bien, y adem´as se reproducir´a un sonido de acierto. Pasados esos 3 segundos, la cara volver´a a ser neutra. Cada vez que se coloque una ficha de domin´o incorrecta, la imagen de cara neutra pasar´a a ser la imagen de cara triste durante 3 segundos, indicando que el objeto se ha colocado mal, y adem´as se reproducir´a un sonido de fallo. Pasados esos 3 segundos, la cara volver´a a ser neutra. En cuanto a los juguetes utilizados, se pueden ver en la figura 36. 42 Figura 36: Juguetes de la actividad Completa la secuencia 5.7. Actividad Analog´ıas En este caso no hay ninguna imagen de fondo, debido a que las ´areas de interacci´on van asociadas a cada una de las fichas de modo que el usuario pueda situar las fichas en cualquier parte del tabletop y as´ı s´olo preocuparse de hacer coincidir los extremos de las fichas con las correspondientes parejas. En la figura 37 se puede ver una captura del juego junto con los 10 juguetes utilizados. Figura 37: Juguetes de la actividad Analog´ıas 43 chapuza 6. Conclusiones y trabajo futuro La meta de este proyecto era implementar una herramienta que permitiera desarrollar actividades enfocadas a personas de la tercera edad para el tabletop NIKVision, as´ı como desarrollar un conjunto de actividades que demostraran la validez de la herramienta. La implementaci´on de la herramienta se ha llevado a cabo con ´exito, permitiendo un dise˜no c´omodo de actividades al permitir al desarrollador de la actividad la posibilidad de hacer cambios sobre la misma en tiempo de ejecuci´on, lo cu´al facilita bastante la realizaci´on de pruebas mientras se est´a desarrollando. La herramienta adem´as permite la ejecuci´on de las mismas sin necesidad de ning´un dispositivo externo como teclado o rat´on, que era uno de nuestros objetivos principales al querer evitar dificultades a las personas mayores menos acostumbradas al uso de estas tecnolog´ıas. Adem´as, se ha podido realizar una evaluaci´on de la herramienta que ha permitido extraer las siguientes conclusiones: primero, la herramienta tiene una buena usabilidad, como muestran los resultados de la evaluaci´on en los que se obtiene que la usabilidad de la herramienta es superior al 74 sobre 100, y segundo, gracias a las actividades realizadas en las sesiones de evaluaci´on, aunque la herramienta desarrollada es para soporte de personas mayores, por la evaluaci´on se ve que puede servir para realizar actividades para cualquier ´ambito, por ejemplo actividades meramente l´udicas. En cuanto a trabajo futuro, uno de los objetivos ser´ıa implantar la herramienta en un ´ambito sanitario para que pueda ser probada por personas mayores y as´ı ver si su uso les permite mejorar sus capacidades cognitivas y evitar su deterioro, as´ı como comprobar la utilidad de los ficheros de logs generados durante la realizaci´on de las actividades para analizar si la informaci´on almacenada en ellos es suficiente o si habr´ıa que anotar alg´un otro tipo de datos. Esto tambi´en permitir´ıa confirmar que la herramienta tiene una buena usabilidad para cualquier persona que no tenga conocimientos previos de programaci´on. Por ´ultimo, ser´ıa interesante incluir la posibilidad de programaci´on en el dise˜no de actividades, lo cu´al complicar´ıa m´as el desarrollo de las mismas pero tambi´en permitir´ıa a su vez realizar juegos m´as complejos. En este proyecto no fue necesario incluir dicha posibilidad porque las actividades que iban a desarrollarse no requer´ıan tal grado de complejidad, pero podr´ıa ser interesante dar esa opci´on si la herramienta fuera a utilizarse en nuevos ´ambitos y no s´olo como soporte para personas de la tercera edad. 45 chapuza Anexo 1. Detalles de implementaci´on En este anexo se profundizar´a en la implementaci´on de las clases Cargar imagen,Area,Fiducial, Feedback,TratarXML eInicio, las cu´ales se comentaron brevemente en el apartado de Dise˜no e Implementaci´on. A1.1 Clase Cargar imagen El uso de la variable mapa colisiones se ver´a en el apartado de implementaci´on de la clase Area. En las figuras 38 y 39 se pueden ver fragmentos de c´odigo de las funciones de Cargar imagen. Figura 38: Fragmento de c´odigo donde se distingue si la imagen es o no flash y se llama a la funci´on de carga Figura 39: Funci´on de Cargar imagen que realiza la carga de la imagen sobre la capa A1.2 Clase Area En el apartado de dise˜no e implementaci´on se coment´o que un ´ Area pod´ıa tener en cuenta el canal alfa de su imagen asociada. El hecho de dar la opci´on de usar el canal alfa de una imagen png surgi´o en el proceso de evaluaci´on de la herramienta (explicado en el segundo anexo), y surgi´o porque hay actividades como el Tangram en las que debido a las formas de los objetos utilizados, ser´ıa interesante poder 47 trabajar con ´areas no rectangulares. Con el canal alfa se puede hacer eso puesto que nos podemos quedar con la parte opaca de la imagen y considerarla el ´area de interacci´on dejando fuera la parte no opaca. El uso de esto se ver´a m´as claramente en la clase Inicio. A continuaci´on, vamos a comentar algunas de las funciones m´as relevantes de la clase Area: Area: es la clase constructora. Adem´as de inicializar sus atributos, carga (si las hay) las im´agenes cuya informaci´on se le pasa como par´ametro mediante un fichero XML tal y como se ve en el diagrama de clases de la herramienta. En la figura 40 se puede ver el fragmento de c´odigo en el que se realiza la inicializaci´on de algunos de los atributos y la carga de la imagen neutra. Figura 40: Fragmento de c´odigo de la funci´on constructora de la clase Area Se puede ver que en un inicio el ancho y el alto de la imagen se inicializan a -1 para despu´es actualizarse en el caso de que el fichero XML de la imagen neutra tenga ancho y alto (img.@ancho yimg.@alto). Esto se hace porque si el Cargar imagen ve que el ancho o el alto es -1, interpreta que hay que tomar el ancho y alto que tiene la imagen real sin necesidad de escalarla. Tambi´en se ve que las coordenadas (x,y) de la imagen se calculan sumando las coordenadas del ´area a las de la imagen, puesto que como se coment´o ya, las coordenadas de las im´agenes dependen son siempre respectivas al centro del ´area. a˜nadeFID: a˜nade una lista de fiduciales a la lista IDs. Ya comentamos en la implementaci´on de la herramienta que un ´area tiene la opci´on de poder completarse de m´as de una manera; es decir, un ´area puede completarse cuando se colocan sobre ellas diferentes combinaciones de fiduciales. 48 Por ejemplo, en el caso del Tangram en la que hay objetos distintos pero iguales en forma y tama˜no, un ´area puede considerarse correcta cuando se coloca sobre ella uno u otro, o en la actividad Lista de la compra si la lista dice: “Mete en la bolsa dos bebidas”, el ´area se considerar´ıa correcta si se pusiera sobre ella las combinaciones vino-zumo, vino-leche, zumoleche. Por lo tanto, esto se traduce en implementaci´on en que necesitamos guardarnos en el atributo IDs una lista de lista de fiduciales. En la figura 41 se puede ver la funci´on completa. Figura 41: Funci´on a˜nadeFID de la clase Area El hecho de distinguir entre fichas y no fichas se hace porque en el caso de las fichas, es necesario tener en cuenta cu´antas fichas se necesitan para que el ´area se considere correcta, mientras que si se trata de un fiducial, al tener un id ´unico nunca va a repetirse un id en un ´area. El hecho de elegir 999 como id de las fichas se hizo porque se analiz´o que en ninguna actividad se van a tener que usar m´as 998 objetos. buscaCambios: busca las diferencias entre el estado anterior del ´area y el actual. De esta funci´on depende el funcionamiento del feedback, puesto que es la que comprueba qu´e nuevos fiduciales se han puesto sobre el ´area y si estos son correctos o no, para as´ı adem´as reproducir los sonidos correctos o incorrectos correspondientes. En la figura 42 se puede ver un fragmento de la funci´on. Lo primero que se hace es mirar si se ha producido alg´un cambio (la funci´on buscarAnterior devolver´ıa true en ese caso) y si ese es el caso, se inicializa el clip de la imagen por si se trata de un flash para ya a continuaci´on tratar los cambios. A continuaci´on se mira si el fiducial que se ha cambiado (funci´on dameFiducial que busca por la lista IDs para devolver el fiducial correspondiente al id que se la pasa como par´ametro) es distinto de null, lo cu´al significa que es uno de la lista de IDs, correcto o incorrecto. La variable yaBien s´olo vale true cuando el ´area ya ha sido correctamente completada y la variable sonido empieza inicializada a true, de modo que si el ´area est´a bien y sonido de momento no vale false, significa que se acaba de colocar el ´ultimo objeto correcto en el ´area y por tanto, si lo hay, hay que reproducir el sonido del fiducial. 49 Figura 52: Fragmento de c´odigo de la funci´on loadedIcon de la clase TratarXML donde se crean los iconos y se dibuja el men´u La clase TratarXML utiliza las funciones TratarFondo,TratarArea yTratarFeedback para realizar el tratamiento de la informaci´on de la actividad. Como el comportamiento de estas funciones es muy similar (pues todas se encargan de ir leyendo el fichero y de ir creando los objetos correspondientes), en la figura 53 se muestra un fragmento de la funci´on TratarArea para que sirva de ejemplo para el resto de funciones. Se puede ver que a la funci´on Area se le pasan los par´ametros previamente extra´ıdos del fichero para posteriormente realizar el tratamiento de fiduciales del ´area, a˜nadi´endose a esta con la funci´on a˜nadeFID. Tambi´en se actualizan algunos de los atributos de ´area como incorrecto ytieneFichas. 56 Figura 53: Fragmento de c´odigo de la funci´on TratarArea de la clase TratarXML donde se realiza la creaci´on de ´areas y fiduciales A1.6 Clase Inicio La clase Inicio es la encargada de realizar la ejecuci´on de la herramienta y de generar el fichero de resultados (o de logs) de las actividades con informaci´on relativa a estas. A continuaci´on, vamos a comentar algunas de sus funciones m´as relevantes: juego: funci´on que est´a continuamente ejecut´andose y que comprueba el estado de juego en cada momento, haciendo la comprobaci´on de si se ha seleccionado alguna actividad en el caso de que haya men´u y llamando a su vez a la funci´on actualizaListaJuego que es la encargada de comprobar el estado de las ´areas de la actividad que se est´e ejecutando en ese momento. En la figuras 54 y 55 se pueden ver fragmentos de c´odigo de la funci´on. Se puede ver en la funci´on que si no se ha seleccionado nada (si noSeleccion vale true) y es necesario cargar un juego (si cargarJuego vale true), se procede a limpiar la pantalla, a indicar que no es necesario ya cargar un juego (poner cargarJuego afalse) y a crear el objeto TratarXML para inmediatamente despu´es llamar a la funci´on actualizaListaJuego. Una vez que la tarea de la actividad termina, se comprueba si hay m´as tareas que tratar y en caso de no haberlas, indicamos que se va a volver al men´u o a resetear la actividad ejecutada en el caso de que no haya men´u y se escribe en el fichero de logs los resultados. La actualizaci´on de las variables bien ymal utilizadas en el c´odigo se realiza en la funci´on actualizaListaJuego. 57 Figura 54: Fragmento de c´odigo de la funci´on juego de la clase Inicio donde se comprueba si se ha seleccionado alguna actividad Figura 55: Fragmento de c´odigo de la funci´on juego de la clase Inicio donde se trata el final de la tarea y se escribe en el fichero de logs actualizaListaJuego: funci´on encargada de la comprobaci´on de las ´areas de la tarea que se est´a ejecutando. Lo primero que hace esta funci´on es ver si todav´ıa se est´a en el men´u o si ya se ha seleccionado un juego (figura 56). Una vez cargado el juego, se crea el fichero de logs en caso de que no exista guard´andonos la informaci´on sobre la fecha y la hora de inicio de la partida. A continuaci´on, se procede a dibujar las ´areas (en el caso de que la variable verbose est´e a true) y a recorrer, para cada ´area, toda la lista de objetos situados sobre la mesa (variable ListaTuioObject que se le pasa como par´ametro a la funci´on). Para cada objeto se comprueba: •si el ´area actual tiene un fiducial asociado, de modo que si el ´area es orientable se actualice, adem´as de la posici´on, la rotaci´on del ´area y la del objeto en cuesti´on en funci´on del fiducial asociado. 58 Figura 56: Fragmento de c´odigo de la funci´on actualizaListaJuego de la clase Inicio donde se comprueba selecci´on de actividad desde el men´u •si el objeto en cuesti´on est´a dentro del ´area con la rotaci´on adecuada (funci´on dentro de Area) teniendo en cuenta adem´as si el ´area tiene en cuenta el alfa de la imagen o no, para comprobar en caso de que tenga en cuenta el alfa si el objeto est´a en una zona opaca de la imagen. Si se cumplen las condiciones, se a˜nade el objeto a la lista de ids del ´area (funci´on ColocaID de Area) (figura 57). Figura 57: Fragmento de c´odigo de la funci´on actualizaListaJuego de la clase Inicio donde se comprueba si el objeto est´a dentro del ´area Tras comprobar cada objeto colocado, se mira el estado del ´area (funci´on correctitud de Area), y depende de lo que devuelva, actualizamos el feedback si es que lo hay y el estado de juego (figura 58). Por ´ultimo, si tarea se ha completado, mostramos la imagen de completado de feedback si es que la hay e indicamos que la tarea se ha completado para que la funci´on juego cargue la siguiente tarea o vuelva al men´u. 59 Figura 58: Fragmento de c´odigo de la funci´on actualizaListaJuego de la clase Inicio donde se comprueba el estado de ´area y se actualiza el feedback crearPartida: funci´on que guarda la informaci´on de la ´ultima partida ejecutada en un XML interno que posteriormente la funci´on cerrarXML volcar´a en el fichero de logs (figura 59). Figura 59: Fragmento de c´odigo de la funci´on crearPartida de la clase Inicio donde se crea el XML interno que se volcar´a en el fichero de logs 60 A1.7 Fichero de definici´on de actividades El elemento ra´ız del XML es <juego>, el cu´al tiene 2 tipos de elementos: <verbose>: cuyo valor puede ser “s´ı” (lo cu´al indica que las ´areas se dibujan en la pantalla como rect´angulos rojos) o “no” (las ´areas no aparecen dibujadas). La opci´on de dibujarlas o no se hizo para facilitar el desarrollo de actividades. <tarea>: un juego puede tener una o varias tareas, y cada una de ellas tiene sus propios elementos. De este modo, se pueden hacer diversas variantes de un mismo juego sin tener que hacer ficheros XML diferentes. Cada elemento <tarea>tiene a su vez 3 tipos de elementos: <fondo>: contiene la informaci´on necesaria para establecer los elementos de fondo de la actividad, tanto im´agenes como sonidos. Un ´area s´olo puede tener un elemento fondo. Los elementos de este son: •<color>: indica el color de fondo de la actividad en el atributo rgb en caso de que no haya imagen de fondo. •<icono>: indica el icono representativo de la actividad con el atributo path. Su uso se explicar´a en el apartado de implementaci´on de la herramienta. •<imagen>: indica la primera o ´unica imagen de fondo de la actividad con el atributo path. Adem´as, contiene los atributos: ◦cambiar: cuyo valor puede ser “s´ı”, lo cu´al indica que imagen cambia a imagen2 a los tiempo segundos de haber empezado la actividad, o “no”, la imagen de fondo de la actividad no cambia. ◦tiempo: indica los segundos que han de pasar desde el comienzo de la actividad para cambiar de imagen aimagen2. •<imagen2>: indica la segunda imagen de fondo de la actividad con el atributo path. •<sonido>: indica el sonido de fondo de la actividad con el atributo path. A su vez, contiene los atributos: ◦repetir: cuyo valor puede ser “s´ı”, indicando que el fichero de sonido path se reproduce cada tiempo segundos, o “no”, indicando que el fichero de sonido path s´olo se reproduce una vez al comienzo de la actividad. ◦tiempo: indica cada cu´antos segundos se reproduce el fichero de sonido path. <area>: contiene la informaci´on necesaria para la creaci´on de un ´area de la actividad. Sus elementos son: •posicion: indica la posici´on del ´area en pantalla, indicando que el centro del ´area est´a en el punto (x,y) de la pantalla y sus dimensiones son los atributos ancho yalto. El atributo alfa indica si se ha de tener en cuenta el canal alfa de la imagen. Su uso se explicar´a en el apartado de implementaci´on de la herramienta. •imagen: indica la imagen neutra asociada al ´area con el atributo path, indicando sus coordenadas y dimensiones de la misma manera que en posicion. Hay que tener en cuenta a la hora de trabajar con xeyque estos son relativos al centro del ´area, de modo que la posici´on real de la imagen es aquella cuyo centro est´a en (posicion.x+imagen.x, posicion.y+imagen.y). •imagenBien: indica la imagen asociada al ´area con el atributo path que aparece cuando ´esta es completada correctamente. Sus atributos son exactamente los mismos que los de imagen. •imagenMal: indica la imagen asociada al ´area con el atributo path que aparece cuando sobre esta se coloca un objeto incorrecto. Sus atributos son exactamente los mismos que los de imagen. •fidasoc: objeto del que depende el ´area. Sus atributos son: 61 ◦id: indica el identificador del fiducial del que depende el ´area. ◦orientable: cuyo valor puede ser “s´ı”, indicando que en el caso de que el fiducial asociado gire sobre la mesa, el ´area ha de girar con ´el, o “no”, indicando que el ´area no gira cuando gire el fiducial asociado, sino que s´olo actualiza su posici´on cuando este se mueva. •fid: contiene la informaci´on necesaria sobre los objetos asociados al ´area. Un mismo ´area puede tener 0 o m´as elementos fid. Sus atributos son: ◦id: indica los ids de los fiduciales asociados al ´area. El formato a seguir son los n´umeros de los ids entre comas en caso de tratar con objetos o el n´umero de fichas que hay que colocar sobre el ´area, con el formato “[num]fichas”, donde “[num]” es un n´umero mayor que 0. Si se coloca un “*” en id significa “cualquier fiducial”. ◦orientable: indica las orientaciones que ha de tener los fiduciales para ser considerados correctos o incorrectos. El formato a seguir son los diversos grados de orientaci´on entre comas. Es un atributo opcional, en caso de no aparecer, significa que el objeto se considera correcto o incorrecto independientemente de la orientaci´on que tenga. ◦correcto: cuyo valor puede ser “s´ı”, indicando que los fiduciales se consideran correctos cuando se colocan sobre el ´area, o “no”, indicando que los fiduciales se consideran incorrectos cuando se colocan sobre el ´area. ◦sonido: en el caso de que correcto valga “s´ı”, indica el fichero de sonido que se reproducir´a cuando todos los fiduciales de la lista id est´en colocados sobre el ´area; en el caso de que correcto valga “no”, indica el fichero de sonido que se reproducir´a cada vez que se coloque un objeto de la lista id sobre ella. Es un atributo opcional. Si aparece m´as de un elemento fid en un ´area, significa que el ´area puede ser completada correctamente de m´as de una manera: por ejemplo, si un ´area tiene nelementos fid, el ´area se considera correcta con tal de que se cumplan las condiciones de uno de los nelementos fid. Hay que tener en cuenta tambi´en que de salvo el elemento posicion, el resto de elementos de area son opcionales, de modo que las ´areas no tienen por qu´e tener un fiducial del que depender o im´agenes asociadas. <feedback>: contiene la informaci´on necesaria para establecer los elementos de feedback de la actividad, tanto im´agenes como sonidos. Un juego puede no tener el elemento feedback, pero si lo tiene ha de ser ´unico. Los elementos de feedback son: •pos: indica la posici´on del feedback en pantalla, indicando que el centro del feedback est´a en el punto (x,y) de la pantalla y sus dimensiones son los atributos ancho yalto. •imagen acierto: su atributo path indica la imagen que aparece cuando se coloca un objeto bien en un ´area. •imagen fallo: su atributo path indica la imagen que aparece cuando se coloca un objeto mal en un ´area. •imagen neutro: su atributo path indica la imagen que aparece por defecto mientras no se coloque ning´un objeto en ning´un ´area. •imagen completado: su atributo path indica la imagen que aparece cuando se completa con ´exito la tarea. •sonido acierto: su atributo path indica el sonido que se reproduce cuando se coloca un objeto bien en un ´area. •sonido completado: su atributo path indica el sonido que se reproduce cuando se coloca un objeto mal en un ´area. Hay que tener en cuenta que salvo pos, todos los elementos de feedback son opcionales, de modo que pueden hacerse diversas combinaciones entre im´agenes y sonidos para dar variedad a las actividades. 62 Una cosa a tener en cuenta tambi´en es que a la hora de definir im´agenes en area, si lo que se busca es que la imagen se sit´ue centrada en el ´area, no es necesario definir sus atributos xey, puesto que la herramienta har´a coincidir autom´aticamente los centros de la imagen y del ´area a la que pertenece. Tampoco son necesarios los atributos ancho yalto si se quiere que la imagen mantenga sus dimensiones, estos solo son necesarios cuando se desea reescalar la imagen. De la misma manera, si no se especifica ancho yalto en el elemento posicion de area, esta toma por defecto el ancho y alto indicado en imagen. 63 chapuza Anexo 2. Detalles de los resultados de evaluaci´on En este segundo anexo se explicar´a en detalle los resultados obtenidos en las observaciones, en las preguntas de libre redacci´on y en los cuestionarios IMI. Tras la realizaci´on de los 3 tipos de encuestas por los alumnos (preguntas de libre redacci´on, cuestionario SUS, cuestionario IMI) junto con las observaciones anotadas en las sesiones, se han podido extraer diversos resultados. Para las preguntas de libre redacci´on, en este apartado s´olo se mostrar´an lo que contest´o cada alumno para posteriormente agrupar los comentarios comunes y hacer su an´alisis en el siguiente apartado. A2.1 Resultados observaciones Comecocos En la tabla 9 se muestran las observaciones anotadas durante la primera sesi´on. Tipo Rol Descripci´on Malfun. Juguetero Juguete del comecocos tiene la base muy grande para las paredes Malfun. Desarrollador Incomodidad para hacer pruebas, ya que si se completa el juego hay que reiniciar la herramienta Malfun. Desarrollador Sonido incorrecto no funciona Duda Desarrollador Tama˜no de feedback del fiducial lleva a confusi´on al ser siempre del mismo tama˜no independientemente del tama˜no del objeto Tabla 9: Dudas y malfuncionamientos de la actividad Comecocos El primer fallo que se tuvo de hacer la base del comecocos demasiado grande fue por un fallo de coordinaci´on entre el desarrollador y el juguetero, ya que antes de hacer la base se hubiera tenido que hacer la prueba de que el fiducial asociado al objeto cab´ıa bien entre las paredes del laberinto. El malfuncionamiento de tener que reiniciar la herramienta dio la idea de que podr´ıa ser interesante que cuando se completara la actividad, se volviera al men´u en lugar de salir. El fallo de que no sonaran los sonidos incorrectos se solucion´o para la sesi´on 3. Por ´ultimo, la confusi´on del tama˜no del feedback del fiducial se produjo al hacer las pruebas con el juguete del comecocos, ya que en la visualizaci´on sobre la mesa, el feedback asociado al juguete no cab´ıa entre las paredes del laberinto aunque el fiducial asociado al juguete, que es el que hay que tener en cuenta, s´ı lo hiciera. Como comentario adicional, para la actividad Comecocos, pudimos comprobar la utilidad de la opci´on de vuelta al men´u junto con la recarga de los juegos, ya que esta actividad requer´ıa programar muchas ´areas y era necesario estar comprobando continuamente que se iban definiendo bien. Por lo tanto, si se analizan los resultados de la actividad Comecocos, a parte de la correcci´on del fallo del sonido se pudieron extraer dos ideas: Podr´ıa ser ´util modificar la herramienta de modo que al acabar una actividad, se volviera al men´u en lugar de tener que resetearse. Es necesario explicar mejor el funcionamiento del feedback de los objetos para que ´este no cree confusi´on. A2.2 Resultados observaciones Granja En la tabla 10 se muestran las observaciones anotadas durante la segunda sesi´on. 65 chapuza Anexo 3. Desarrollo temporal En este apartado se muestran las tareas realizadas a lo largo del desarrollo del proyecto en las figuras 64 y 65. Figura 64: Diagrama de gantt del Proyecto Fin de Carrera. 73 Figura 65: Tareas del Proyecto Fin de Carrera. 74 Bibliograf´ıa [AAG09] P. Annett, M. Anderson, F. Goertzen, D. Halton, J. Ranson, Q. Bischof, and W. Boulanger. Using a multi-touch tabletop for upper extremity motor rehabilitation. In Proceedings of the 21st Annual Conference of the Australian Computer-Human Interaction Special Interest Group: Design: Open 24/7, 2009 [Dra07] M. A. Drake. Evaluaci´on de la atenci´on. En D. Burin, M. Drake, P.Harris. Evaluaci´on neuropsicol´ogica en adultos. Buenos Aires: Paid´os, 2007 [IMI85] E. L. Deci & R. M. Ryan, Intrinsic Motivation and Self-Determination in Human Behavior. Springer. 1985 [EJE14] Ejercicios personas mayores: https://obrasocial.lacaixa.es/deployedfiles/ obrasocial/Estaticos/pdf/Gente 30/ejercicios es.pdf [EST14] Ejercicios de estimulaci´on cognitiva: http://blog.infoelder.com/ejercicios-deestimulacio-cognitiva-que-se-pueden-hacer-en-casa [GMS09] L. Gamberini, F. Martino, B. Seraglia, A. Spagnolli, M. Fabregat, F. Ibanez, M. Alcaniz, and J. M. Andres. Eldergames project: An innovative mixed reality table-top solution to preserve cognitive functions. In Human System Interactions, 2009. HSI ’09. 2nd Conference on, 2009 [GIG14] Giga Affective Lab: http://giga.cps.unizar.es/affectivelab/ [JPM04] H. Jimison, M. Pavel, J. McKanna, and J. Pavel. Unobtrusive monitoring of computer interactions to detect cognitive status in elders. In IEEE Transactions on Information Technology in Biomedicine, 2004 [KSG06] D. Kern, M. Stringer, G. Fitzpatrick, and A. Schmidt. Curball–A Prototype Tangible Game for Inter-Generational Play. In Enabling Technologies: Infrastructure for Collaborative Enterprises, 2006. WETICE’06. 15th IEEE International Workshops on (pp. 412-418). IEEE, 2006 [KKP13] G.H. Kwon, L. Kim, and S. Park. Development of a cognitive assessment tool and training systems for elderly cognitive impairment: A case study of a successful development of a cognitive assessment tool and training systems for the elderly people in South Korea. In proceedings of 7th International Conference on Pervasive Computing Technologies for Healthcare and Workshops, 2013 [LTK07] M. Leitner, M. Tomitsch, T. K¨oltringer, K. Kappel, T. Greshenig. Designing tangible tabletop interfaces for patients in rehabilitation. In Proceedings of Conference & Workshop on Assistive Technologies for People with Vision and Hearing Impairments: Assistive Technology for All Ages. M. Hersh (Eds.), Spain. pp. (1-7), 2007 [MCB08] Javier Marco, Eva Cerezo, Sandra Baldasarri. NIKVISION: NATURAL INTERACTION FOR KIDS, 2008 [MCB12] Javier Marco, Eva Cerezo, Sandra Baldasarri. ToyVision: A Toolkit for Prototyping Tabletop Tangible Games. In The fourth ACM SIGCHI EICS, 2012. [NIK14] NIKVision: http://webdiis.unizar.es/˜jmarco/?page id=10&lang=es [PAC14] Pac-Man: http://es.wikipedia.org/wiki/Pac-Man [PIX12] Pixelsense: http://www.microsoft.com/en-us/pixelsense [SMA14] Smart Table: http://smarttech.com/table [SOC12] Sociable: http://www.cognitivetraining.eu/?q=services-0 [SUS96] J. Brooke, SUS-A quick and dirty usability scale. Usability evaluation in industry, 189, 194. 1996 75 [TAL14] Ejercicios de estimulaci´on cognitiva: http://tallerescognitiva.com/descargas/muestra.pdf [TAM14] Tangram: http://es.wikipedia.org/wiki/Tangram [TOU13] TouchTable: http://www.touchtable.com/ 76 ´ Indice de figuras 1. Arriba a la izquierda: siluetas mostradas en la mesa. Abajo a la izquierda: Materiales did´acticos manipulables. Derecha: Ni˜no emparejando los materiales con su silueta. 2 2. A la izquierda: ejemplos de fiduciales que se colocan en los objetos. A la derecha: juguetes de animales con los fiduciales ya colocados. . . . . . . . . . . . . . . . . . 2 3. Captura de las aplicaciones CoCoMo (izquierda) y CoCoTa (derecha). . . . . . . . 5 4. A la izquierda: prototipo de tabletop de Eldergames. A la derecha: objetos/l´apices queutiliza. ........................................ 6 5. A la izquierda: Tabletop AIR touch. A la derecha: captura de la actividad “Pop thoseballoons”....................................... 6 6. Prototipo de actividades mediante el uso de cubos . . . . . . . . . . . . . . . . . . 7 7. Actividad “Making Cookies” del tabletop E-CoRe . . . . . . . . . . . . . . . . . . 7 8. Diagrama de clases de la herramienta . . . . . . . . . . . . . . . . . . . . . . . . . 15 9. Men´udelaherramienta ................................. 20 10. Formato del fichero XML de resultados de una actividad . . . . . . . . . . . . . . . 22 11. Formato del fichero XML de una actividad . . . . . . . . . . . . . . . . . . . . . . 23 12. Imagen de fondo de la actividad Comecocos con sus ´areas de interacci´on. . . . . . . 28 13. Juguetes de la actividad Comecocos .......................... 28 14. Imagen de fondo de la actividad Granja con sus ´areas de interacci´on. . . . . . . . . 29 15. Juguetes de la actividad Granja. ............................ 29 16. Imagen de fondo de la actividad Series con sus ´areas de interacci´on. . . . . . . . . 30 17. Juguetes de la actividad Series ............................. 30 18. Circuito inicial de la actividad Gran Prix ....................... 31 19. Imagen de fondo de la actividad Gran Prix con sus ´areas de interacci´on. . . . . . . 31 20. Juguetes de la actividad Gran Prix ........................... 32 21. Cuestionarios SUS realizados por los desarrolladores . . . . . . . . . . . . . . . . . 32 22. Cuestionarios IMI agrupados por actividad . . . . . . . . . . . . . . . . . . . . . . 33 23. Cuestionarios IMI agrupados por rol . . . . . . . . . . . . . . . . . . . . . . . . . . 33 24. A la izquierda: imagen de inicio de la actividad Lista de la compra. A la derecha: ´area de interacci´on de la actividad Lista de la compra. ................ 37 25. Imagen de cara neutra, cara feliz y cara triste para el feedback de las actividades . 37 26. Juguetes de la actividad Lista de la compra ...................... 38 27. Imagen de fondo y ´areas de interacci´on de la actividad Viajes............. 38 28. Juguetes de la actividad Viajes ............................. 39 29. A la izquierda: imagen de fondo de una figura de la actividad Tangram en modo f´acil. A la derecha: imagen de fondo de la misma figura en modo dif´ıcil. . . . . . . 39 30. Juguetes de la actividad Tangram ........................... 40 31. Imagen de fondo y ´areas de interacci´on de la actividad Marca los s´ımbolos. . . . . 40 32. Imagen de acierto y de fallo para la actividad Marca los s´ımbolos .......... 41 33. Fichas que se usan en lugar de juguetes con fiduciales . . . . . . . . . . . . . . . . 41 34. Imagen de fondo y ´areas de interacci´on de la actividad Marca los s´ımbolos. . . . . 41 35. Imagen de fondo y ´area de interacci´on de la actividad Completa la secuencia. . . . 42 36. Juguetes de la actividad Completa la secuencia .................... 43 37. A la izquierda: captura de la actividad Analog´ıas en la que se ven las ´areas asociadas. A la derecha: juguetes de la actividad Analog´ıas ................... 43 38. Fragmento de c´odigo donde se distingue si la imagen es o no flash y se llama a la funci´ondecarga ..................................... 47 39. Funci´on de Cargar imagen que realiza la carga de la imagen sobre la capa . . . . . 47 40. Fragmento de c´odigo de la funci´on constructora de la clase Area .......... 48 41. Funci´on a˜nadeFID de la clase Area ........................... 49 42. Fragmento de la funci´on buscaCambios de la clase Area ............... 50 43. Fragmento de la funci´on correctitud de la clase Area en la que se comprueba si todos los fiduciales puestos sobre el ´area son correctos . . . . . . . . . . . . . . . . . . . . 51 44. Fragmento de la funci´on correctitud de la clase Area en la que se comprueba si no hay ning´un fiducial incorrecto colocado sobre el ´area . . . . . . . . . . . . . . . . . 52 45. Fragmento de la funci´on dentro de la clase Area en la que se comprueban las orientaciones .......................................... 52 77 46. Funci´on constructora de la clase Fiducial ....................... 53 47. Ejemplo de funci´on de carga de imagen de la clase Feedback ............. 54 48. Ejemplo de funci´on de mostrar imagen de la clase Feedback ............. 54 49. Ejemplo de funci´on de cargar sonido de la clase Feedback .............. 54 50. Fragmento de c´odigo de la funci´on constructora de la clase TratarXML donde se cargaelficherodearranque ............................... 55 51. Fragmento de c´odigo de la funci´on constructora de la clase TratarXML donde se creaelmen´u ....................................... 55 52. Fragmento de c´odigo de la funci´on loadedIcon de la clase TratarXML donde se crean los iconos y se dibuja el men´u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 53. Fragmento de c´odigo de la funci´on TratarArea de la clase TratarXML donde se realiza la creaci´on de ´areas y fiduciales . . . . . . . . . . . . . . . . . . . . . . . . . 57 54. Fragmento de c´odigo de la funci´on juego de la clase Inicio donde se comprueba si se ha seleccionado alguna actividad . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 55. Fragmento de c´odigo de la funci´on juego de la clase Inicio donde se trata el final de la tarea y se escribe en el fichero de logs . . . . . . . . . . . . . . . . . . . . . . . . 58 56. Fragmento de c´odigo de la funci´on actualizaListaJuego de la clase Inicio donde se comprueba selecci´on de actividad desde el men´u . . . . . . . . . . . . . . . . . . . 59 57. Fragmento de c´odigo de la funci´on actualizaListaJuego de la clase Inicio donde se comprueba si el objeto est´a dentro del ´area . . . . . . . . . . . . . . . . . . . . . . 59 58. Fragmento de c´odigo de la funci´on actualizaListaJuego de la clase Inicio donde se comprueba el estado de ´area y se actualiza el feedback . . . . . . . . . . . . . . . . 60 59. Fragmento de c´odigo de la funci´on crearPartida de la clase Inicio donde se crea el XML interno que se volcar´a en el fichero de logs . . . . . . . . . . . . . . . . . . . 60 60. Cuestionarios IMI realizados por los miembros de la actividad Comecocos ..... 70 61. Cuestionarios IMI realizados por los miembros de la actividad Granja ....... 70 62. Cuestionarios IMI realizados por los miembros de la actividad Series ........ 71 63. Cuestionarios IMI realizados por los miembros de la actividad Gran Prix ..... 71 64. Diagrama de gantt del Proyecto Fin de Carrera. . . . . . . . . . . . . . . . . . . . 73 65. Tareas del Proyecto Fin de Carrera. . . . . . . . . . . . . . . . . . . . . . . . . . . 74 78 chapuza