GETEPER: aplicación multiplataforma para la gestión de tests perceptuales de audio
Abstract
Grado en Ingeniería Informática
Full text
Escuela de Ingeniería Informática TRABAJO FIN DE GRADO Grado en Ingeniería Informática Mención en Computación (INdat) GETEPER: Aplicación multiplataforma para la gestión de tests perceptuales de audio Autor: Luis Miguel Calvo Magaz
Escuela de Ingeniería Informática TRABAJO FIN DE GRADO Grado en Ingeniería Informática Mención en Computación (INdat) GETEPER: Aplicación multiplataforma para la gestión de tests perceptuales de audio Autor: Luis Miguel Calvo Magaz Tutor: Cristian Tejedor García
A Irene Magaz, Luis Eugenio Calvo e Irene Calvo, sois el pilar principal de mi vida. A Irene Morales, por ser el foco de luz que me guía cuando lo necesito. .
Agradecimientos En primer lugar quiero agradecer enormemente a mi tutor del trabajo Cristian Tejedor García por su perseverante ayuda y disponibilidad en todo momento a la hora de realizar revisiones y correcciones en la aplicación y en la memoria (al final llegamos a tiempo). En segundo lugar dar las gracias a Irene Morales por aportarme tanto ánimo y fuerza siempre. También agradecer a mi madre Irene, a mi padre Luis Eugenio y a mi hermana Irene por brindarme tanto cariño y apoyo durante toda mi carrera universitaria y sobre todo este último año.
Resumen Hoy en día vivimos en un mundo global donde es probable que una persona tenga que aplicar otras lenguas además de la nativa, en su trabajo o en sus relaciones extralaborales. Con el tiempo todos los trabajos utilizarán más de un idioma base en su negocio y por ende las personas deberán dominar no solo la lengua, sino también deberán tener una buena pronunciación en esas lenguas no nativas. Tradicionalmente se han realizado pruebas de pronunciación anteriores y posteriores a un entrenamiento de lengua extranjera, evaluando dichas locuciones de audio mediante una grabadora de audio, lápiz y papel, siendo en muchas ocasiones un proceso tedioso. Esto motiva el diseño y desarrollo del sistema GETEPER, una aplicación multiplataforma que permite la creación de listas de elementos evaluables como palabras o frases, que posteriormente, son grabadas por sujetos y evaluadas por expertos gracias al mismo. Este sistema web se ha realizado en su mayoría en PHP basándose en un diseño de tipo formulario y apoyándose de una base de datos MySQL donde almacenar los datos de los elementos evaluables, las locuciones y las evaluaciones. El proyecto se ha planificado siguiendo una metodología SCRUM, una de las metodologías más populares en la gestión de proyectos Agile basados en la flexibilidad y capacidad de modificar el producto a lo largo del proyecto. Actualmente el proyecto se encuentra en producción para pruebas del grupo de investigación reconocido por la Universidad de Valladolid, ECA-SIMM.
ÍNDICE GENERAL D. Manual de uso 193 D.1.Roladministrador.........................................194 D.2.Rollocutor ............................................198 D.3.Rolevaluador...........................................200 E. Contenido del CD 203 Bibliografía 207 IV
Índice de figuras 1.1. Algoritmo PESQ de predicción de la calidad del diálogo.[10] . . . . . . . . . . . . . . . . . 3 1.2. Ciclo de vida SCRUM,Fuente:[13]. .............................. 6 2.1. Distribución de las iteraciones según sus semanas de desarrollo. . . . . . . . . . . . . . . 10 2.2. Distribución de las iteraciones según sus semanas de desarrollo. . . . . . . . . . . . . . . 14 3.1. Product Backlog y Sprint Backlog al comienzo de la primera iteración. . . . . . . . . . . . 23 3.2. Casos de uso de la aplicación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.3.Modelodedominio. ....................................... 39 3.4. Boceto del menú principal de inicio de sesión. . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.5. Boceto del menú de administrador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.6. Boceto de la creación de un nuevo usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.7. Boceto del menú de creación de una nueva lista de elementos evaluables . . . . . . . . . 45 3.8. Boceto del menú de gestión de sesiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.9. Boceto de la ventana de grabación de audio dada una lista de elementos evaluables . . . 47 3.10.Boceto de la pantalla de evaluación de una sesión . . . . . . . . . . . . . . . . . . . . . . 48 3.11.BocetodelavistadeError. ................................... 49 3.12.Product Backlog y Sprint Backlog al final de la primera iteración. . . . . . . . . . . . . . . 50 3.13.Formulario base desarrollado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.14.Primera versión de las tablas de la base de datos. . . . . . . . . . . . . . . . . . . . . . . 53 3.15.Product Backlog y Sprint Backlog al comienzo de la tercera iteración. . . . . . . . . . . . 54 3.16.Product Backlog y Sprint Backlog al final de la tercera iteración. . . . . . . . . . . . . . . . 61 3.17.Product Backlog y Sprint Backlog al comienzo de la cuarta iteración. . . . . . . . . . . . . 62 3.18.Segunda versión de las tablas de la base de datos. . . . . . . . . . . . . . . . . . . . . . . 64 3.19.Product Backlog y Sprint Backlog al final de la cuarta iteración. . . . . . . . . . . . . . . . 82 3.20.Product Backlog y Sprint Backlog al comienzo de la quinta iteración. . . . . . . . . . . . . 83 3.21.Tercera y última versión de las tablas de la base de datos. . . . . . . . . . . . . . . . . . . 84 3.22.Product Backlog y Sprint Backlog al final de la quinta iteración. . . . . . . . . . . . . . . . 104 3.23.Product Backlog y Sprint Backlog al comienzo de la última iteración. . . . . . . . . . . . . 105 3.24.Product Backlog y Sprint Backlog al final de la última iteración. . . . . . . . . . . . . . . . 114 4.1. Arquitectura por capas del servidor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 4.2. Patrón POST/Redirect/GET, Fuente: [43] . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 4.3. Patrón petición asíncrona de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 4.4. Acceso seguro a la aplicación mediante tokens de acceso. . . . . . . . . . . . . . . . . . 120 V
ÍNDICE DE FIGURAS 4.5.Diagramadepaquetes. .....................................121 4.6.Modelodelabasededatos. ..................................122 4.7.Mapaweb1. ...........................................123 4.8.Mapaweb2. ...........................................124 4.9. Diagramas de clases de diseño para el inicio de sesión. . . . . . . . . . . . . . . . . . . . 125 4.10.Diagramas de clases de diseño para Registro y creación de lista. . . . . . . . . . . . . . . 126 4.11.Diagramas de clases de diseño para gestión de sesiones y listas. . . . . . . . . . . . . . 126 4.12.Diagramas de clases de diseño para locutor. . . . . . . . . . . . . . . . . . . . . . . . . . 127 4.13.Diagramas de clases de diseño para evaluador. . . . . . . . . . . . . . . . . . . . . . . . . 127 4.14.Diagrama de secuencia de Iniciar sesión. . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 4.15.Diagrama de secuencia de Cerrar sesión. . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 4.16.Diagrama de secuencia de la reproducción de un elemento evaluable. . . . . . . . . . . . 131 4.17.Diagrama de secuencia del registro de un nuevo usuario. . . . . . . . . . . . . . . . . . . 132 4.18.Diagrama de la creación de un nuevo elemento evaluable. . . . . . . . . . . . . . . . . . . 132 4.19.Diagrama de la creación de una nueva lista de elementos evaluables. . . . . . . . . . . . 133 4.20.Diagrama de la eliminación de la locución de un elemento evaluable. . . . . . . . . . . . . 133 4.21.Diagrama de la eliminación de una sesión de locución. . . . . . . . . . . . . . . . . . . . . 134 4.22.Diagrama de la eliminación de una lista de elementos evaluables. . . . . . . . . . . . . . 135 4.23.Diagrama de la exportación de la evaluación de un elemento evaluable. . . . . . . . . . . 135 4.24.Diagrama de la selección de una sesión evaluable grabada. . . . . . . . . . . . . . . . . . 136 4.25.Diagrama de la grabación de un elemento evaluable. . . . . . . . . . . . . . . . . . . . . . 136 4.26.Diagrama de la grabación de una sesión evaluable. . . . . . . . . . . . . . . . . . . . . . 137 4.27.Diagrama de la evaluación de un elemento evaluable grabado. . . . . . . . . . . . . . . . 138 4.28.Diagrama de la evaluación de una sesión evaluable grabada. . . . . . . . . . . . . . . . . 139 4.29.Diagramadedespliegue. ....................................139 5.1. Ejemplo de caso de prueba en JIRA [44]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 C.1. Introducción de credenciales en la instalación de MySQL server . . . . . . . . . . . . . . 189 C.2. Credenciales para el acceso a la base de datos . . . . . . . . . . . . . . . . . . . . . . . . 190 C.3.Aplicacióndesplegada......................................191 D.1.Vistadeinicio. ..........................................193 D.2. Vista del Menú del Administrador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 D.3. Vista del Registro de un nuevo usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 D.4. Añadir elemento evaluable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 D.5. Nuevos métodos de evaluación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 D.6. Crear la nueva lista de elementos evaubales. . . . . . . . . . . . . . . . . . . . . . . . . . 196 D.7. Vista de gestión de sesiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 D.8. Inicio de sesión para el locutor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 D.9.Vistadelocutor. .........................................199 D.10.Inicio de sesión para el evaluador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 D.11.Vistadelocutor. .........................................201 VI
Índice de tablas 2.1. Posibles riesgos durante el desarrollo del proyecto. (Probabilidad sobre 1) . . . . . . . . . 12 2.2. Plan de acción de los riesgos del proyecto. ID: Identificador del riesgo. . . . . . . . . . . . 13 2.3. Especificaciones hardware del ordenador mac. . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4. Especificaciones hardware del ordenador Windows. . . . . . . . . . . . . . . . . . . . . . 16 2.5. Uno de los monitores utilizados en el desarrollo . . . . . . . . . . . . . . . . . . . . . . . . 16 2.6. Uno de los monitores utilizados en el desarrollo. . . . . . . . . . . . . . . . . . . . . . . . 16 2.7. Servidor web utilizado en el desarrollo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.8. Costes indirectos relacionados con el espacio de trabajo. . . . . . . . . . . . . . . . . . . 18 2.9. Costes del material físico / Hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.10.Costes de software y servicios hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.11.Costes de software y servicios hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.1.Requisitosnofuncionales.................................... 25 3.2.Requisitosdeinformación.................................... 27 3.3.Requisitosdeinformación.................................... 28 3.4.CasodeusoCU-01........................................ 29 3.5.CasodeusoCU-02........................................ 29 3.6.CasodeusoCU-03........................................ 30 3.7.CasodeusoCU-04........................................ 30 3.8.CasodeusoCU-05........................................ 31 3.9.CasodeusoCU-06........................................ 32 3.10.CasodeusoCU-07........................................ 32 3.11.CasodeusoCU-08........................................ 33 3.12.CasodeusoCU-09........................................ 34 3.13.CasodeusoCU-10........................................ 35 3.14.CasodeusoCU-11........................................ 36 3.15.CasodeusoCU-12........................................ 37 3.16.CasodeusoCU-13........................................ 37 3.17.CasodeusoCU-14........................................ 38 3.18.CasodeusoCU-15........................................ 38 3.19.Historiasdeusuario ....................................... 41 3.20.TC LOC-01 - Comprobación vista de locución. . . . . . . . . . . . . . . . . . . . . . . . . 56 3.21.TC LOC-02 - Grabación de audio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.22.TC LOC-03 - Parar grabación de audio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 VII
ÍNDICE DE TABLAS 3.23.TC LOC-04 - Guardar locución de elemento evaluable que no sea el último de la lista. . . 57 3.24.TC LOC-05 - Realizar una nueva grabación. . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.25.TC LOC-06 - Finalizar sesión de grabación. . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.26.TC LOC-07 - Redirección al menú principal cuando el usuario acaba con todos los elementosevaluables......................................... 59 3.27.TC LOC-08 - Cerrar sesión desde locución. . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.28.TC LOC-09 - Locutor no puede cerrar sesión si ha realizado algún evento de grabación. . 60 3.29.TC LOC-10 - Reproducción de audio grabado. . . . . . . . . . . . . . . . . . . . . . . . . 60 3.30.Error01delTCLOC-07...................................... 61 3.31.TC ADM-01 - Comprobación menú de Administrador . . . . . . . . . . . . . . . . . . . . . 65 3.32.TC ADM-02 - Redirección a vista de creación de usuarios . . . . . . . . . . . . . . . . . . 65 3.33.TC ADM-03 - Redirección a vista de creación de lista de elementos evaluables . . . . . . 65 3.34.TC ADM-04 - Redirección a vista de gestión de sesiones . . . . . . . . . . . . . . . . . . 66 3.35.TC ADM-05 - Cierre de sesión desde menú de administrador . . . . . . . . . . . . . . . . 66 3.36.TC REG-01 - Comprobación vista de registro . . . . . . . . . . . . . . . . . . . . . . . . . 66 3.37.TC REG-02 - Mostrar campo contraseña si el rol es administrador . . . . . . . . . . . . . 67 3.38.TC REG-03 - No mostrar campo contraseña si el rol no es administrador . . . . . . . . . 67 3.39.TC REG-04 - No se puede registrar un usuario si no se rellenan todos los campos . . . . 67 3.40.TC REG-05 - Registro de nuevo usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.41.TC REG-06 - Redirección al menú principal una vez registrado el usuario . . . . . . . . . 68 3.42.TC REG-07 - Cierre de sesión desde Registro de usuario . . . . . . . . . . . . . . . . . . 68 3.43.TC LIS-01 - Comprobación vista de creación de nueva lista . . . . . . . . . . . . . . . . . 69 3.44.TC LIS-02 - No se puede guardar un elemento evaluable si no se introduce su nombre . 69 3.45.TC LIS-03 - No se puede guardar un elemento evaluable si no se ha introducido al menos unmétododeevaluación .................................... 70 3.46.TC LIS-04 - Añadir nuevo método de evaluación . . . . . . . . . . . . . . . . . . . . . . . 70 3.47.TC LIS-05 - Eliminar el último método de evaluación añadido . . . . . . . . . . . . . . . . 70 3.48.TC LIS-06 - Eliminar todos los métodos de evaluación añadidos . . . . . . . . . . . . . . 71 3.49.TC LIS-07 - No se puede añadir un elemento evaluable cuyos métodos de evaluación no estáncompletados........................................ 71 3.50.TC LIS-08 - Adición de elemento evaluable . . . . . . . . . . . . . . . . . . . . . . . . . . 72 3.51.TC LIS-09 - No se puede guardar una nueva lista sin ningún elemento añadido a la lista . 72 3.52.TC LIS-10 - No se puede guardar una nueva lista sin nombre . . . . . . . . . . . . . . . . 72 3.53.TC LIS-11 - No se puede guardar una nueva lista sin contraseña . . . . . . . . . . . . . . 73 3.54.TC LIS-12 - Adición de lista de elementos evaluables . . . . . . . . . . . . . . . . . . . . 73 3.55.TC LIS-13 - Cancelación de adición de elemento evaluable . . . . . . . . . . . . . . . . . 73 3.56.TC LIS-14 - Cancelación de adición de lista de elementos evaluables . . . . . . . . . . . 74 3.57.TC LIS-15 - Redirección al menú principal después de creación de lista . . . . . . . . . . 74 3.58.TC LIS-16 - Cierre de sesión desde creación de lista de elementos evaluables . . . . . . 74 3.59.TC GES-01 - Comprobación vista de gestión de sesiones . . . . . . . . . . . . . . . . . . 75 3.60.TC GES-02 - Cambio de sesión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 3.61.TC GES-03 - Reproducción de la locución de sesión . . . . . . . . . . . . . . . . . . . . . 76 3.62.TC GES-04 - Cambio de lista con sesiones de locución . . . . . . . . . . . . . . . . . . . 76 VIII
ÍNDICE DE TABLAS 3.63.TC GES-05 - Cambio de lista sin sesiones de locución . . . . . . . . . . . . . . . . . . . . 77 3.64.TC GES-06 - Eliminar sesión de evaluación . . . . . . . . . . . . . . . . . . . . . . . . . . 77 3.65.TC GES-07 - Cancelación del borrado de sesión de evaluación . . . . . . . . . . . . . . . 77 3.66.TC GES-08 - Eliminar locución de elemento evaluable para una sesión de evaluación . . 78 3.67.TC GES-09 - Cancelación del borrado de la locución de un elemento evaluable para una sesióndeevaluación....................................... 78 3.68.TC GES-10 - Cierre de sesión desde vista de gestión de sesiones . . . . . . . . . . . . . 78 3.69.Error01delTCREG-03. .................................... 79 3.70.Error02delTCREG-03. .................................... 79 3.71.Error01delTCLIS-03. ..................................... 80 3.72.Error01delTCLIS-05. ..................................... 80 3.73.Error01delTCLIS-09. ..................................... 80 3.74.Error01delTCGES-04...................................... 81 3.75.Error01delTCLOC-07...................................... 81 3.76.Ejecución 2 del TC LOC-07: Redirección al menú principal cuando el usuario acaba con todos los elementos evaluables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.77.TC INI-01 - Comprobación menú principal . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 3.78.TC INI-02 - Campo contraseña de usuario se muestra si el rol es administrador . . . . . . 86 3.79.TC INI-03 - Campo contraseña de usuario NO se muestra si el rol NO es administrador . 86 3.80.TC INI-04 - Campo identificador de lista y contraseña de lista se muestra si el rol es locutoroevaluador........................................ 87 3.81.TC INI-05 - Campo identificador de lista y contraseña de lista NO se muestra si el rol es administrador........................................... 87 3.82.TC INI-06 - Campo identificador de la sesión de locución se muestra si el rol es evaluador 87 3.83.TC INI-07 - Campo identificador de la sesión de locución NO se muestra si el rol NO es evaluador............................................. 88 3.84.TC INI-08 - Inicio sesión administrador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 3.85.TC INI-09 - Inicio sesión locutor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 3.86.TC INI-10 - Inicio sesión evaluador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 3.87.TC INI-11 - Error al introducir nombre que no corresponde al rol seleccionado . . . . . . . 89 3.88.TC INI-12 - Error al introducir contraseña incorrecta para el administrador . . . . . . . . . 89 3.89.TC INI-13 - Error al introducir lista o contraseña incorrecta . . . . . . . . . . . . . . . . . . 90 3.90.TC INI-14 - Error al introducir una sesión inválida para la lista seleccionada . . . . . . . . 90 3.91.TC INI-15 - Error al no introducir alguno de los campos solicitados . . . . . . . . . . . . . 90 3.92.TC EVA-01 - Comprobación vista de evaluación . . . . . . . . . . . . . . . . . . . . . . . . 91 3.93.TC EVA-02 - Locución no se mostrará en la lista si no existe . . . . . . . . . . . . . . . . 91 3.94.TC EVA-03 - Locución se muestra en la lista si existe . . . . . . . . . . . . . . . . . . . . 92 3.95.TC EVA-04 - Locución se puede reproducir . . . . . . . . . . . . . . . . . . . . . . . . . . 92 3.96.TC EVA-05 - Envío de la evaluación de un elemento que no es el último de la lista . . . . 93 3.97.TC EVA-06 - Ir al siguiente elemento evaluable en elemento sin locución . . . . . . . . . . 93 3.98.TC EVA-07 - Finalizar evaluaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 3.99.TC EVA-08 - Envío al menú de inicio una vez se finalizan las evaluaciones . . . . . . . . 94 3.100.TC EVA-09 - No se puede cerrar sesión si hay una evaluación en curso . . . . . . . . . . 94 IX
ÍNDICE DE TABLAS 3.101.TC EVA-10 - Cerrar sesión si NO hay una evaluación en curso . . . . . . . . . . . . . . . 95 3.102.TC GES-11 - Exportación de las evaluaciones de la lista de elementos evaluables . . . . 95 3.103.TC GES-12 - Cancelación de la exportación de la lista de elementos evaluables . . . . . 95 3.104.TC GES-13 - Exportación de las evaluaciones para una sesión de locución . . . . . . . . 96 3.105.TC GES-14 - Cancelación de la exportación de las evaluaciones para una sesión de locución.............................................. 96 3.106.TC GES-15 - Exportación de evaluaciones de lista sin sesiones . . . . . . . . . . . . . . . 97 3.107.Error01delTCINI-06....................................... 98 3.108.Error01delTCINI-11....................................... 98 3.109.Error01delTCEVA-02...................................... 99 3.110.Error01delTCEVA-07...................................... 99 3.111.Error01delTCEVA-08...................................... 99 3.112.Error01delTCLOC-07......................................100 3.113.Error01delTCREG-03. ....................................100 3.114.Error02delTCREG-03. ....................................100 3.115.Ejecución 2 del TC REG-03: No mostrar campo contraseña si el rol no es administrador. . 101 3.116.Error01delTCLIS-03. .....................................101 3.117.Ejecución 2 del TC LIS-03: No se puede guardar un elemento evaluable si no se ha introducido al menos un método de evaluación. . . . . . . . . . . . . . . . . . . . . . . . . 101 3.118.Error01delTCLIS-05. .....................................101 3.119.Ejecución 2 del TC LIS-05: Eliminar el último método de evaluación añadido. . . . . . . . 102 3.120.Error01delTCLIS-09. .....................................102 3.121.Ejecución 2 del TC LIS-09: No se puede guardar una nueva lista sin ningún elemento añadidoalalista..........................................102 3.122.Error01delTCGES-04......................................103 3.123.Ejecución 2 del TC GES-04: Cambio de lista con sesiones de locución. . . . . . . . . . . 103 3.124.TC GES-16 - Eliminar lista de elementos evaluables . . . . . . . . . . . . . . . . . . . . . 106 3.125.TC GES-17 - Cancelación del borrado de lista evaluable . . . . . . . . . . . . . . . . . . . 106 3.126.TC INI-16 - Inicio sesión evaluador con todas las sesiones . . . . . . . . . . . . . . . . . . 107 3.127.TC EVA-11 - Envío de la evaluación del último elemento de la lista en una sesión que no eslaúltima ............................................107 3.128.TC EVA-12 - Envío de la evaluación del último elemento de la lista en la última sesión . . 108 3.129.TC EVA-13 - Ir a la siguiente sesión desde último elemento de la lista en una sesión que noeslaúltima ..........................................108 3.130.TC EVA-14 - Envío de la evaluación del último elemento de la lista en la última sesión . . 109 3.131.TC EVA-08 - Envío al menú de inicio una vez se finalizan las evaluaciones . . . . . . . . 109 3.132.Error01delTCEVA-01......................................110 3.133.Error01delTCEVA-03......................................110 3.134.Error01delTCEVA-13......................................110 3.135.Error01delTCINI-06.......................................111 3.136.Error01delTCINI-11.......................................111 3.137.Ejecución 2 del TC INI-11: Error al introducir nombre que no corresponde al rol seleccionado. ...............................................111 X
ÍNDICE DE TABLAS 3.138.Error01delTCEVA-02......................................112 3.139.Ejecución 2 del TC EVA-02: Locución no se mostrará en la lista si no existe. . . . . . . . 112 3.140.Error01delTCEVA-07......................................112 3.141.Error01delTCEVA-08......................................113 5.1. Tabla ejemplo de una prueba. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 5.2. Tabla ejemplo del reporte de un error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 5.3.Error01delTCLOC-07......................................143 5.4.Error01delTCREG-03. ....................................144 5.5.Error02delTCREG-03. ....................................144 5.6.Error01delTCLIS-03. .....................................144 5.7.Error01delTCLIS-05. .....................................145 5.8.Error01delTCLIS-09. .....................................145 5.9.Error01delTCGES-04......................................145 5.10.Error01delTCINI-06.......................................146 5.11.Error01delTCINI-11.......................................146 5.12.Error01delTCEVA-02......................................146 5.13.Error01delTCEVA-07......................................147 5.14.Error01delTCEVA-08......................................147 5.15.Error01delTCEVA-01......................................147 5.16.Error01delTCEVA-03......................................148 5.17.Error01delTCEVA-13......................................148 B.1. Ejecución 1 del TC LOC-01: Comprobación de la vista de locutor. . . . . . . . . . . . . . 157 B.2. Ejecución 1 del TC LOC-02: Grabación de audio. . . . . . . . . . . . . . . . . . . . . . . . 157 B.3. Ejecución 1 del TC LOC-03: Parar grabación de audio. . . . . . . . . . . . . . . . . . . . . 157 B.4. Ejecución 1 del TC LOC-04: Guardar locución de elemento evaluable que no sea el último.158 B.5. Ejecución 1 del TC LOC-05: Realizar una nueva grabación. . . . . . . . . . . . . . . . . . 158 B.6. Ejecución 1 del TC LOC-06: Finalizar sesión de grabación. . . . . . . . . . . . . . . . . . 158 B.7. Ejecución 1 del TC LOC-07: Redirección al menú principal cuando el usuario acaba con todos los elementos evaluables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 B.8. Ejecución 1 del TC LOC-08: Cerrar sesión desde locución. . . . . . . . . . . . . . . . . . 158 B.9. Ejecución 1 del TC LOC-09: Locutor no puede cerrar sesión si ha realizado algún evento degrabación............................................159 B.10.Ejecución 1 del TC LOC-10: Reproducción de audio grabado. . . . . . . . . . . . . . . . . 159 B.11.Ejecución 1 del TC ADM-01: Comprobación menú Administrador. . . . . . . . . . . . . . . 160 B.12.Ejecución 1 del TC ADM-02: Redirección a la vista de creación de usuarios. . . . . . . . 160 B.13.Ejecución 1 del TC ADM-03: Redirección a vista de creación de lista de elementos evaluables. ..............................................160 B.14.Ejecución 1 del TC ADM-04: Redirección a vista de gestión de sesiones. . . . . . . . . . 160 B.15.Ejecución 1 del TC ADM-05: Cierre de sesión desde menú de administrador. . . . . . . . 160 B.16.Ejecución 1 del TC REG-01: Comprobación vista de registro. . . . . . . . . . . . . . . . . 161 B.17.Ejecución 1 del TC REG-02: Mostrar campo contraseña si el rol es administrador. . . . . 161 B.18.Ejecución 1 del TC REG-03: No mostrar campo contraseña si el rol no es administrador. . 161 XI
ÍNDICE DE TABLAS B.19.Ejecución 1 del TC REG-04: No se puede registrar un usuario si no se rellenan todos los campo. ..............................................161 B.20.Ejecución 1 del TC REG-05: Registro de nuevo usuario. . . . . . . . . . . . . . . . . . . . 161 B.21.Ejecución 1 del TC REG-06: Redirección al menú principal una vez registrado el usuario. 161 B.22.Ejecución 1 del TC REG-07: Cierre de sesión desde Registro de usuario. . . . . . . . . . 162 B.23.Ejecución 1 del TC LIS-01: Comprobación vista de creación de nueva lista. . . . . . . . . 162 B.24.Ejecución 1 del TC LIS-02: No se puede guardar un elemento evaluable si no se introduce sunombre. ............................................162 B.25.Ejecución 1 del TC LIS-03: No se puede guardar un elemento evaluable si no se ha introducido al menos un método de evaluación. . . . . . . . . . . . . . . . . . . . . . . . . 162 B.26.Ejecución 1 del TC LIS-04: Añadir nuevo método de evaluación. . . . . . . . . . . . . . . 162 B.27.Ejecución 1 del TC LIS-05: Eliminar el último método de evaluación añadido. . . . . . . . 163 B.28.Ejecución 1 del TC LIS-06: Eliminar todos los métodos de evaluación añadidos. . . . . . 163 B.29.Ejecución 1 del TC LIS-07: No se puede añadir un elemento evaluable cuyos métodos de evaluación no están completados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 B.30.Ejecución 1 del TC LIS-08: Adición de elemento evaluable. . . . . . . . . . . . . . . . . . 163 B.31.Ejecución 1 del TC LIS-09: No se puede guardar una nueva lista sin ningún elemento añadidoalalista..........................................163 B.32.Ejecución 1 del TC LIS-10: No se puede guardar una nueva lista sin nombre. . . . . . . . 164 B.33.Ejecución 1 del TC LIS-11: No se puede guardar una nueva lista sin contraseña. . . . . . 164 B.34.Ejecución 1 del TC LIS-12: Adición de lista de elementos evaluables. . . . . . . . . . . . . 164 B.35.Ejecución 1 del TC LIS-13: Cancelación de adición de elemento evaluable. . . . . . . . . 164 B.36.Ejecución 1 del TC LIS-14: Cancelación de adición de lista de elementos evaluables. . . 164 B.37.Ejecución 1 del TC LIS-15: Redirección al menú principal después de creación de lista. . 164 B.38.Ejecución 1 del TC LIS-16: Cierre de sesión desde creación de lista de elementos evaluables. ..............................................165 B.39.Ejecución 1 del TC GES-01: Comprobación vista de gestión de sesiones. . . . . . . . . . 165 B.40.Ejecución 1 del TC GES-02: Cambio de sesión. . . . . . . . . . . . . . . . . . . . . . . . . 165 B.41.Ejecución 1 del TC GES-03: Reproducción de la locución de sesión. . . . . . . . . . . . . 165 B.42.Ejecución 1 del TC GES-04: Cambio de lista con sesiones de locución. . . . . . . . . . . 165 B.43.Ejecución 1 del TC GES-05: Cambio de lista sin sesiones de locución. . . . . . . . . . . . 165 B.44.Ejecución 1 del TC GES-06: Eliminar sesión de evaluación. . . . . . . . . . . . . . . . . . 166 B.45.Ejecución 1 del TC GES-07: Cancelación del borrado de sesión de evaluación. . . . . . . 166 B.46.Ejecución 1 del TC GES-08: Eliminar locución de elemento evaluable para una sesión de evaluación. ............................................166 B.47.Ejecución 1 del TC GES-09: Cancelación del borrado de la locución de un elemento evaluable para una sesión de evaluación. . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 B.48.Ejecución 1 del TC GES-10: Cierre de sesión desde vista de gestión de sesiones. . . . . 166 B.49.Ejecución 1 del TC INI-01: Comprobación menú principal. . . . . . . . . . . . . . . . . . . 167 B.50.Ejecución 1 del TC INI-02: Campo contraseña de usuario se muestra si el rol es administrado. ...............................................167 B.51.Ejecución 1 del TC INI-03: Campo contraseña de usuario NO se muestra si el rol NO es administrador............................................167 XII
ÍNDICE DE TABLAS B.52.Ejecución 1 del TC INI-04: Campo identificador de lista y contraseña de lista se muestra si el rol es locutor o evaluador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 B.53.Ejecución 1 del TC INI-05: Campo identificador de lista y contraseña de lista NO se muestra si el rol es administrador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 B.54.Ejecución 1 del TC INI-06: Campo identificador de la sesión de locución se muestra si el rolesevaluador. .........................................168 B.55.Ejecución 1 del TC INI-07: Campo identificador de la sesión de locución NO se muestra sielrolNOesevaluador. ....................................168 B.56.Ejecución 1 del TC INI-08: Inicio sesión administrador . . . . . . . . . . . . . . . . . . . . 168 B.57.Ejecución 1 del TC INI-09: Inicio sesión locutor. . . . . . . . . . . . . . . . . . . . . . . . . 168 B.58.Ejecución 1 del TC INI-10: Inicio sesión evaluador. . . . . . . . . . . . . . . . . . . . . . . 168 B.59.Ejecución 1 del TC INI-11: Error al introducir nombre que no corresponde al rol seleccionado. ...............................................169 B.60.Ejecución 1 del TC INI-12: Error al introducir contraseña incorrecta para el administrador. 169 B.61.Ejecución 1 del TC INI-13: Error al introducir lista o contraseña incorrecta. . . . . . . . . . 169 B.62.Ejecución 1 del TC INI-14: Error al introducir una sesión inválida para la lista seleccionada.169 B.63.Ejecución 1 del TC INI-15: Error al no introducir alguno de los campos solicitados. . . . . 169 B.64.Ejecución 1 del TC EVA-01: Comprobación vista de evaluación. . . . . . . . . . . . . . . 169 B.65.Ejecución 1 del TC EVA-02: Locución no se mostrará en la lista si no existe. . . . . . . . 170 B.66.Ejecución 1 del TC EVA-03: Locución se muestra en la lista si existe. . . . . . . . . . . . . 170 B.67.Ejecución 1 del TC EVA-04: Locución se puede reproducir. . . . . . . . . . . . . . . . . . 170 B.68.Ejecución 1 del TC EVA-05: Envío de la evaluación de un elemento que no es el último delalista..............................................170 B.69.Ejecución 1 del TC EVA-06: Ir al siguiente elemento evaluable en elemento sin locución. . 170 B.70.Ejecución 1 del TC EVA-07: Finalizar evaluaciones. . . . . . . . . . . . . . . . . . . . . . 170 B.71.Ejecución 1 del TC EVA-08: Envío al menú de inicio una vez se finalizan las evaluaciones 171 B.72.Ejecución 1 del TC EVA-09: No se puede cerrar sesión si hay una evaluación en curso. . 171 B.73.Ejecución 1 del TC EVA-10: Cerrar sesión si NO hay una evaluación en curso. . . . . . . 171 B.74.Ejecución 1 del TC GES-11: Exportación de las evaluaciones de la lista de elementos evaluables. ............................................171 B.75.Ejecución 1 del TC GES-12: Cancelación de la exportación de la lista de elementos evaluables. ............................................171 B.76.Ejecución 1 del TC GES-13: Exportación de las evaluaciones para una sesión de locución.172 B.77.Ejecución 1 del TC GES-14: Cancelación de la exportación de las evaluaciones para una sesióndelocución.........................................172 B.78.Ejecución 1 del TC GES-15: Exportación de evaluaciones de lista sin sesiones. . . . . . . 172 B.79.Ejecución 2 del TC LOC-01: Comprobación de la vista de locutor. . . . . . . . . . . . . . 173 B.80.Ejecución 2 del TC LOC-02: Gración de audio. . . . . . . . . . . . . . . . . . . . . . . . . 173 B.81.Ejecución 2 del TC LOC-03: Parar grabación de audio. . . . . . . . . . . . . . . . . . . . . 173 B.82.Ejecución 2 del TC LOC-04: Guardar locución de elemento evaluable que no sea el último.173 B.83.Ejecución 2 del TC ADM-01: Comprobación menú Administrador. . . . . . . . . . . . . . . 173 B.84.Ejecución 2 del TC ADM-02: Redirección a la vista de creación de usuarios. . . . . . . . 174 XIII
1.4. Metodología Interacción Hombre-Máquina: Sistemas de Interacción Persona-Computadora. Sistemas de Diálogo. Tecnologías del Lenguaje Hablado. Reconocmiento y Síntesis de Voz. Reconocimiento Automático de Locutor. Prosodia computacional. Computación móvil y ubicua. Técnicas gráficas: Interfaces de realidad virtual. Interacción multimodal con ambientes gráficos. Biometría: Técnicas de identificación y verificación Biométrica. Sus lineas de investigación actualmente son: Tecnologías del Lenguaje Hablado y mejora de pronunciación de segunda lengua (en la que se encuentra este Trabajo de Fin de Grado). Sistemas de Interacción Persona Computadora multimodales. Técnicas de Identificación y Verificación Biométrica. Técnicas gráficas y de realidad virtual. 1.4. Metodología 1.4.1. Introducción Existen multitud de metodologías de gestión de proyectos, sin embargo de entre todas ellas destacan: Metodología en cascada: Consiste en dividir el proyecto en diferentes procesos que se ejecutan de forma secuencial hasta conseguir los objetivos del proyecto o la fase. Estos procesos son: •Inicialización: definición inicial del proyecto. •Planificación: desarrollo de los planes de gestión •Ejecución: realización de las tareas planificadas. •Seguimiento y control: supervisión de las tareas ejecutadas, y definición y aplicación de contramedidas en caso de desviaciones. •Cierre: finalización de la fase o proyecto. Metodología PRINCE2:Basada en en el producto, centrada en la obtención de resultados concretos más que en la planificación (a diferencia del cascada). Procesos: •Puesta en marcha: Descripción del proyecto, equipo y objetivos. •Inicialización: Preparación inicial del proyecto. •Planificación. •Dirección: Determina cómo se controlará el proyecto. 4
Introducción •Control de las fases o etapas: realización de las tareas planificadas por fases. •Gestión de las próximas fases: Definición de las tareas de las próximas fases. •Administración de los entregables: Acuerdo y definición de los requisitos de los entregables. •Cierre: finalización del proyecto. Metodología AGILE:Metodología caracterizada por su flexibilidad y capacidad de modificar el producto a lo largo del proyecto, ya que este se va usando al mismo tiempo que se desarrolla. Es la metodología ideal para un producto en continuo desarrollo y evolutivo. Se basa en la división del proyecto en sprints, que van sucediendo y en cada una de ellas se incluye nueva funcionalidad hasta tener toda la funcionalidad demandada. Cada uno de los sprints tiene las siguiente fases: •Inicio: Se eligen los objetivos que se van a realizar durante el sprint , en función de estas se definirá la duración del sprint y el conjunto de tareas que lo compondrán. •Desarrollo del sprint:El equipo del proyecto planificará y ejecutará las tareas, mediante reuniones diarias se mirarán las tareas ejecutadas, en curso, y pendientes, así como posibles impedimentos y restricciones. •Cierre: al final del sprint se revisa que se hayan completado las tareas y objetivos definidos al inicio mediante la presentación de un producto funcional. El ensayo de este producto por parte del cliente puede hacer variar los objetivos del proyecto o su prioridad. Dadas las características de este proyecto, se ha optado por una planificación con metodología AGILE , concretamente la metodología SCRUM [12], debido a que es la metodología más óptima en cuanto a la gestión de cambios y tratamiento de errores ya que los cambios en la aplicación deben ser revisados lo antes posible de cara a posteriores modificaciones, según así lo requieran los clientes. 1.4.2. SCRUM Como ya se ha comentado en la introducción, SCRUM como cualquier otra metodología agile, consiste en la división del proyecto en sprints con una duración entre 1 y 4 semanas, es muy importante la elección de esta duración puesto que una mala planificación del sprint puede llevar a un retraso considerable en la entrega de todas las funcionalidades. Se debe establecer una carga de trabajo adecuada de manera que se puedan tener listos todos los entregables esperados al término de las semanas marcadas [12]. Un esquema típico del ciclo de vida de un proyecto SCRUM se puede observar en la figura 1.2. Como se puede observar en la figura en cada Sprint se realiza una elección de las tareas que se van a realizar, estas se eligen del Product Backlog durante el Planning del sprint, de ese conjunto de tareas se confecciona el llamado Sprint backlog de donde el equipo de desarrollo sacará las tareas a realizar. Una vez acabe el sprint se realiza una revisión del mismo y se proponen cambios para el futuro Sprint. Para completar todos los objetivos a tiempo, las personas implicadas en el proyecto adquieren los siguientes roles según su función y responsabilidades en el mismo [14]. 5
1.4. Metodología Figura 1.2: Ciclo de vida SCRUM, Fuente: [13]. Equipo de desarrollo Encargado de desarrollar, implementar y completar los entregables requeridos. El propio equipo, que suele estar formado por entre 5 y 9 personas, se autogestiona planificando los sprints y la división de trabajo entre ellos. Scrum Master Encargado de que se realice SCRUM correctamente, sin saltarse pasos ni reuniones, también se encarga de que nada externo a la funcionalidad del proyecto interfiera en el trabajo del equipo de desarrollo. Una de las principales funciones de este rol es el de poner en contacto los requisitos que adapta el Product Owner de los Stakeholders con el Equipo de desarrollo Product Owner Persona interesada en el desarrollo del proyecto de cara al equipo. Se encarga de detallar, priorizar y validar los requerimientos o historias de usuario según la perspectiva de negocio. Stakeholders Aquellas personas que aunque no deciden directamente sobre el proyecto, hacen que sea posible su realización. El Product Owner es el encargado de recoger sus opiniones y requerimientos y agregarlos al desarrollo si lo considera oportuno. En el caso particular de este proyecto de fin de grado, al disponer de un número de trabajadores reducido, se han solapado varios roles en más de un mismo trabajador, la distribución final sería Equipo de desarrollo: Luis Miguel Calvo Magaz Se encargará del desarrollo del proyecto entero, por lo tanto, no habrá un reparto de tareas al inicio del Sprint, todas las realizará el mismo trabajador. Realizará el desarrollo íntegro del proyecto encomendado, por lo que en este caso, el reparto de tareas es inexistente. Scrum Master: Cristian Tejedor García Apoyará al desarrollador en los eventos del SCRUM y supervisará la correcta finalización de los entregables y la correcta aplicación de la metodología. 6
Introducción Product Owner: Cristian Tejedor García Determinará las funcionalidades que se esperan del producto en la reunión inicial y proporcionará las prioridades de las mismas que irán actualizándose en sucesivos encuentros. Stakeholder: Cristian Tejedor García No se ha implementado el papel de Stakeholder literalmente en este proyecto. Sin embargo si se ha tomado el papel de demanda de funcionalidades. 1.5. Estructura de la memoria En este documento se detallan todos los aspectos relacionados con el desarrollo teórico y práctico del proyecto. Los bloques en los que se ha dividido esta memoria son los siguientes: Introducción: Capítulos introductorios que explican la motivación, objetivos y metodología utilizadas en este proyecto. Planificación: Descripción de los planes iniciales y previsiones de tiempos del proyecto. Descripción de las iteraciones: Explicación del proceso seguido para la elaboración del proyec- to, dividido en iteraciones. Diseño: Patrones de diseño y diagramas de análisis del sistema y descripción de los mismos. Pruebas: Descripción del tipo de pruebas realizadas en las iteraciones y breve resumen de los errores detectados por las mismas. Conclusiones y trabajo futuro: Conclusiones referentes a los aspectos finales derivados del proyecto e ideas de mejora surgidas al final del desarrollo. Apéndices: Resultados de las pruebas de las iteraciones, documentos adicionales como el manual de instalación y despliegue, el manual del usuario y la descripción del contenido del CD. Bibliografía: Relación de obras y páginas web consultadas durante la realización del proyecto y su documentación. 7
Capítulo 2 Planificación 2.1. Planificación inicial 2.1.1. Distribución temporal Al encontrarse el desarrollador de este TFG trabajando a la par que finalizando sus estudios universitarios, se ha decidido llevar un horario de trabajo de cinco horas diarias durante diez semanas, desde finales del mes de Febrero hasta finales de Mayo, lo que supondría unas 360 horas aproximadamente sobrepasando así las 300 horas de la normativa vigente referente al esfuerzo en horas que se le debe dedicar como mínimo al Trabajo de Fin de Grado en el curso 2018/2019. Además, teniendo en cuenta los riesgos y sus planes de contingencia (ver sección 2.1.3), se detallará la planificación real llevada a cabo (ver sección 2.1.4). Las diez semanas estimadas se han dividido en iteraciones, cada una de las cuales finaliza con sus pruebas correspondientes y su nuevo estado del Kanban, además de esto, después de finalizar una iteración se procede a realizar la documentación en la memoria de todo lo que se haga en la misma Las iteraciones se distribuirán de la siguiente manera: 1ª Iteración (1 semanas, 35 horas/hombre) En esta semana se llevará a cabo una reunión con el cliente para especificar las funcionalidades básicas de aplicación, la discusión de la plataforma en la que se desarrollará la misma y las herramientas que se utilizarán para la implementación de esta. En función de estas especificaciones se llevará a cabo un boceto de la aplicación y se le consultará al cliente si cumple sus demandas. 2ª Iteración (2 semanas, 70 horas/hombre) Aprendizaje de las herramientas elegidas para el desarrollo de la aplicación: HTML, Javascript, MySQL y PHP, y la búsqueda de una librería que permita la grabación y almacenamientos de audio de una manera fácil y sencilla, también se llevará a cabo la instalación e integración de una base de datos SQL para el almacenamiento de los datos del mismo y por último la instalación de un servidor local donde poder montar la aplicación temporalmente. 3ª Iteración (1 semanas, 35 horas/hombre) 9
2.1. Planificación inicial Implementación de la vista del Locutor y almacenamiento de las locuciones para que sean accesibles 4ª Iteración (2 semanas, 70 horas/hombre) Implementación del Menú de Administrador, junto con las vistas asociadas al mismo: Creación de nuevas listas de elementos evaluables, Creación de nuevos usuarios y Gestión de sesiones. 5ª Iteración (2 semanas, 70 horas/hombre) Implementación de la vista del Evaluador, y la integración de un mecanismo de acceso seguro a las páginas mediante tokens de acceso. 6ª Iteración (2 semanas, 70 horas/hombre) Montaje del servidor y retoques finales de la aplicación y de la memoria del proyecto. En la Figura 2.1 se puede ver la distribución gráfica de las semanas. Figura 2.1: Distribución de las iteraciones según sus semanas de desarrollo. 2.1.2. Pruebas periódicas de funcionalidad En el transcurso de cada una de las iteraciones se llevarán a cabo pruebas de las distintas funcionalidades de la aplicación. Estas pruebas estarán conformadas por casos de prueba que se definirán en apartados posteriores del documento, estos casos de prueba tendrán que ser lo más atómicos posibles para asegurar una especificidad de la funcionalidad y no dejar ningún supuesto sin cubrir. La planificación de estas pruebas será la siguiente: 10
Planificación Al final de cada iteración se llevará a cabo un Hardening 1en la que se realizarán las pruebas para todas las configuraciones y para todos los niveles de prioridad para las nuevas funcionalidades implementadas en la misma, (Smoke, Basic Sanity, Full Sanity), para encontrar todos los posibles errores en la funcionalidad que podrían tener las mismas. Al finalizar el desarrollo de una nueva configuración se procederá a realizar los casos de prueba de la misma para posteriormente efectuar las pruebas sobre esa configuración para todos los niveles de prioridad y opcionalmente hacer tests en el resto de configuraciones que podrían verse afectadas por los cambios para un nivel Smoke o Smoke y Basic Sanity. Lo que es una configuración y la definición de los niveles de prioridad se encuentra en el capítulo 5. 2.1.3. Análisis de riesgos En esta sección se detallan los posibles riesgos que podrían implicar retrasos en el desarrollo del proyecto o incluso la cancelación de funcionalidades planeadas. Estos riesgos se muestran representados en una tabla con una breve descripción del mismo, la probabilidad estimada de que suceda entre 0 y 1 inclusive, y un tiempo estimado del retraso que supondría que el riesgo se cumpliese. 2.1. Una vez detectados los posibles riesgos se debe tomar un plan de acción para cada uno de ellos para que, en caso de que ocurran, tener la solución del riesgo o en su defecto, paliar los efectos del mismo. A continuación de la tabla de posibles riegos, en la Tabla 2.2, se detalla el plan de acción para cada uno de los posibles riesgos que podrían ocurrir durante el desarrollo del proyecto. Estos planes de acción se muestran representados con una breve descripción del mismo, la exposición al riesgo que es una estimación del tiempo promedio que se perdería debido al riesgo, calculado como la probabilidad del riesgo multiplicado por el número de días perdidos estimados. 1Etapa de endurecimiento de la aplicación. 11
IDRiesgo Riesgo prob Descripción Retraso estimado (días) R01 Suspenso en la asignatura "Modelos Estadísticos de Computación Intensiva" 0.05 El desarrollador debe preparar la convocatoria extraordinaria de la asignatura. 10 R02 Enfermedad 0.1 El desarrollador cae enfermo. 3 R03 Complejidad de las herramientas de desarrollo 0.4 Retraso por la inexperiencia y la falta de conocimientos sobre las herramientas utilizadas en el desarrollo. 14 R04 Instalación de todas las herramientas 0.4 Retraso en el desarrollo por dificultades con la instalación de las herramientas. 4 R05 No disponibilidad de un servidor para montar la aplicación 0.05 Puede darse el caso de no tener disponible ningún servidor para montar la aplicación. 4 R06 Planificación inadecuada 0.8 Mala consideración y gestión de riesgos. 20 R07 Desarrollo en MAC OS 0.2 Retraso por aprendizaje del Sistema Operativo 2 R08 Problemas con el equipo informático 0.1 Retraso por avería del equipo 1 R09 Modificaciones en los requisitos 0.2 Una modificación de los requisitos en una fase avanzada del proyecto podría suponer cambios mayores en las fases ya finalizadas. 5 R10 Mal diseño 0.4 Un mal diseño de la aplicación puede suponer rehacer funcionalidades que se suponían ya terminadas. 6 R11 Prácticas de empresa 0.6 La realización de las prácticas de empresa por las mañanas podría retrasar el desarrollo de la aplicación y las reuniones con el cliente 8 R12 Otro trabajo de fin de grado 0.6 El desarrollo del TFG de Estadística podría retrasar el desarrollo de la aplicación y las reuniones con el cliente 8 Tabla 2.1: Posibles riesgos durante el desarrollo del proyecto. (Probabilidad sobre 1)
Planificación IDRiesgo Riesgo Exposición al riesgo Plan de acción R01 Suspenso en la asignatura "Modelos Estadísticos de Computación Intensiva" 0.5 - Marginal Posponer la presentación del proyecto a la convocatoria extraordinaria. R02 Enfermedad 0.3 - Marginal Recuperar las horas de enfermedades días después. R03 Complejidad de las herramientas de desarrollo 5.6 - Crítico Una vez se detecta la complejidad se procede a hacer más horas durante los fines de semana. R04 Instalación de todas las herramientas 1.6 - Marginal Buscar optativas de instalación de las herramientas. R05 No disponibilidad de un servidor para montar la aplicación 0.2 - Marginal Buscar un servidor ajeno a la universidad para montar la aplicación. R06 Planificación inadecuada 16 - Crítico Replantear periódicamente la planificación y dedicar más horas. R07 Desarrollo en MAC OS 0.4 - Marginal Dedicar horas extras al aprendizaje o en su defecto cambiar de sistema operativo. R08 Problemas con el equipo informático 0.1 - Marginal Cambio de equipo informático. R09 Modificaciones en los requisitos 1 - Marginal Hacer el sistema lo más modificable posible y dedicar más horas en el momento en el que se modifiquen los requisitos. R10 Mal diseño 2.4 - Crítico Dar gran importancia a la fase de diseño para reducir la probabilidad de que ocurra. R11 Prácticas de empresa 4.8 - Crítico Empezar el proyecto con antelación para que no se vea influenciado con la falta de horas por las prácticas de empresa R12 Otro trabajo de fin de grado 4.8 - Crítico Priorizar un proyecto frente a otro para finalizar primero uno y luego el otro Tabla 2.2: Plan de acción de los riesgos del proyecto. ID: Identificador del riesgo. 13
2.3. Estimación de costes En la tabla 2.11 se muestra que el coste total de todos las herramientas (humanas y técnicas) utilizadas en este proyecto suman la cantidad de 4362 een total, una cantidad bastante elevada y que se reduciría si el desarrollador tuviera condiciones de becario o aumentaría si el desarrollador tuviera más experiencia. 20
Capítulo 3 Descripción de las Iteraciones 3.1. Introducción 3.1.1. Product Backlog y Sprint Backlog Suponemos cada iteración como un Sprint del tiempo que hemos estimado en la planificación: Sprint A: Iteración 1 (2 semanas). Sprint B: Iteración 2 (2 semanas). Sprint C: Iteración 3 (1 semana). Sprint D: Iteración 4 (3 semanas). Sprint E: Iteración 5 (2 semanas). Sprint F: Iteración 6 (2 semanas). Al inicio de estos Sprints se seleccionan las tareas que se van a realizar del Product Backlog [35], que inicialmente estará vacío, y que según se determinen las historias de usuario y los casos de uso se irá rellenando de tareas que se deben hacer y asignar en cada uno de los Sprints, estas tareas se harán en orden prioritario, de más relevantes a menos. En cada Sprint se mantiene un Sprint Backlog [36] que se rellena con las tareas del Product Backlog que se estiman realizar en el periodo del Sprint. Para la presentación del Product Backlog se ha decidido utilizar una lista de tareas ordenadas por prioridad, la elección de cuál realizar en cada Sprint se realizará al comienzo del mismo. Para la representación del Sprint Backlog de cada uno de los Sprints se ha decidido utilizar un tablero de tipo Kanban [37], en el cual se muestran las tareas que hay que hacer, las que quedan por hacer y las que ya están hechas, este tablero va evolucionando ha medida que va progresando el Sprint. 21
3.1. Introducción Por comodidad para este proyecto se ha decidido mostrar el estado del Sprint Backlog al principio y al final del Sprint puesto que supondría de mucho espacio el representarlo en otros puntos intermedios. Las tareas del Product Backlog se pondrán en función de las Historias de Usuario y luego en el Sprint Backlog se descompondrán esas historias de Usuario en Casos de Uso a realizar. 3.1.2. Introducción a las historias de usuario Las historias de usuario o User stories en inglés, representan en un lenguaje coloquial los requisitos que el usuario define sobre el sistema, al ser una de las herramientas de la metodología de desarrollo agile, se procede a definir unas pautas a seguir en el desarrollo de las mismas: Las principales características de las historias de usuario siguen la regla mnemotécnica anglosajona INVEST [38]: Independientes (Independent). Las historias de usuario deben ser lo más atómicos posibles y sin ninguna dependencia con otras historias de usuario. Negociables (Negotiable). No representan requisitos firmes, sino más flexibles que permitan tener un margen para la modificación de las mismas. Útiles para el cliente (Valuable). Deben tener valor para el cliente. Estimables (Estimatable). Se debe poder evaluar el tiempo necesario aproximado para completarlas, y así tener una medida aproximada del tiempo total del proyecto. Cortas (Small). Deben escuetas, pero no tanto como para que se puedan unir varias historias de usuario en una, ni tan largas como para que se puedan dividir o que no permitan cumplir las iteraciones. Verificables (Testable). Se tiene que poder probar una vez implementada la historia de usuario, no puede ser ambigua ni sin resultado. Teniendo en cuenta estos requisitos y características que deben tener las historias de usuario, también deben responder las siguientes cuestiones: Rol: ¿Cuál es el rol que toma el usuario? Funcionalidad: ¿Qué es lo que el usuario quiere? Beneficio: ¿Cuál es el valor que le va a aportar al usuario el hecho de dicha funcionalidad exista? Por lo tanto, normalmente las historias de usuario se escriben en el formato: Como <rol> quiero <funcionalidad> para conseguir <beneficio>. 22
3.2. Iteración 1 En la primera fase del proyecto el ”Equipo de desarrollo” se debe reunir con el Product Owner y el Cliente para que el equipo conozca detalladamente las demandas que tiene el cliente para la aplicación. Gracias a esta primera toma de contacto, se podrán identificar los requisitos no funcionales y de información, también se podrán identificar las ”historias de usuario” definidas en el apartado anterior, necesarias para el correcto desarrollo del producto. También se podrán realizar los primeros bocetos de la aplicación y la estructura de las vistas. En este capítulo se van a describir también los casos de uso del sistema que se va a desarrollar, estos casos de uso están basados en la identificación de actores y tareas. También se especificará el modelo de dominio e interacción del sistema para así describir las distintas entidades, sus atributos, papeles y relaciones junto con las restricciones que rigen el dominio del problema y la interacción entre esas entidades. 3.2.1. Product Backlog y Sprint Backlog al comienzo del Sprint Figura 3.1: Product Backlog y Sprint Backlog al comienzo de la primera iteración.
3.2.2. Requisitos no funcionales Los requisitos no funcionales definen las características o cualidades generales que se esperan de un sistema y establecen restricciones sobre el mismo. Estos requisitos no se refieren directamente a las funciones específicas que entrega el sistema, sino a las propiedades emergentes de éste. En la tabla 3.1 se muestran los requisitos no funcionales del sistema.
Requisito Nombre Descripción Relevancia RNF-01 Navegador web El sistema deberá estar disponible a través de un navegador web Crítica RNF-02 Disponibilidad El sistema deberá estar disponible las 24 horas del día, los 365 día del año Deseable RNF-03 Intuitivo El sistema deberá garantizar un aprendizaje rápido, que el 80% de los usuarios sean capaces de usar el 80% de las funcionalidades con tan solo 1 hora de uso Deseable RNF-04 Rápido El sistema deberá tener un tiempo de respuesta máximo de 5 segundos Deseable RNF-05 Adaptable El sistema deberá tener una interfaz que se pueda adaptar a dispositivos móviles Baja RNF-06 Ajustable El sistema deberá tener una interfaz que se pueda adaptar a varios navegadores compatibles con la grabación de audio Crítica RNF-07 Formato de texto El sistema deberá utilizar el formato de texto ”UTF-08” Deseable RNF-08 Desplegado en servidor El sistema deberá estar desplegado en un servidor Crítica RNF-09 Acceso a base de datos El sistema deberá tener acceso a una base de datos donde almacenará y consultará los datos Crítica RNF-10 Tipos de usuarios El sistema tendrá tres tipos de usuarios: Administrador, Locutor y Evaluador. Crítica RNF-11 Métodos de evaluación El sistema tendrá dos tipos de métodos de evaluación para los elementos evaluables: Por rango de valores enteros y tricotómica de valores SI, NO, NS/NC. Crítica RNF-12 Compatibilidad con símbolos IPA El sistema permitirá la inclusión de símbolos IPA en el mismo. Deseable RNF-13 Multilenguaje El sistema deberá ser capaz de gestionar listas de elementos evaluables en cualquier idioma. Crítica RNF-14 Fácil de instalar El sistema deberá ser fácil de instalar en cualquier servidor o máquina. Deseable Tabla 3.1: Requisitos no funcionales
3.2.3. Requisitos de información Los requisitos de información recopilan todos los datos con los que trabaja la organización y que soportan información. En las tablas 3.2 y 3.3 se muestran los requisitos de información del sistema.
Descripción de las Iteraciones Requisito Nombre Descripción RI-01 Almacenamiento de los usuarios El sistema almacenará a los usuarios con los siguientes campos: 1. Identificador único del usuario. 2. Nombre del usuario. 3. Rol del usuario. 4. Contraseña del usuario. (Si es administrador) RI-02 Almacenamiento de listas de elementos evaluables El sistema almacenará las listas de elementos evaluables con los siguientes campos: 1. Identificador único de la lista. 2. Identificador único del creador de la lista. 3. Contraseña de la lista. 4. Notas de evaluador y de locutor. (Si procediese) 5. Fecha de creación de la lista. RI-03 Almacenamiento de los elementos evaluables El sistema almacenará los elementos evaluables con los siguientes campos: 1. Identificador único de la lista a la que pertenece el elemento evaluable. 2. elemento evaluable. 3. texto adicional para el locutor y para el evaluador. (Si procediese) RI-04 Almacenamiento de audio El sistema almacenará el audio de los locutores con los siguientes campos: 1. Identificador único del usuario que realiza la grabación del audio. 2. el elemento evaluable de la que se va a hacer el audio. 3. Identificador único de la lista a la que pertenece el elemento evaluable y de la sesión de grabación. 4. Ruta concreta de donde se encuentra el audio. 5. Fecha de creación del audio. RI-05 Almacenamiento de los tokens de acceso El sistema almacenará los token de acceso con un campo identificativo del token y el identificador del usuario que podrá acceder al sistema con ese token. Tabla 3.2: Requisitos de información 27
3.2. Iteración 1 RI-06 Almacenamiento de los métodos de evaluación El sistema almacenará los métodos de evaluación de los elementos evaluables con los siguientes campos: 1. Nombre del método de evaluación 2. el elemento evaluable al que pertenece ese método. 3. Tipo de método de evaluación. (Rango o tricotómico- SI, NO, NS/NC) 4. Rango inferior y superior de la evaluación con rango. Si procediese. RI-07 Almacenamiento de las evaluaciones El sistema almacenará las evaluaciones con los siguientes campos: 1. Identificador único del usuario que realiza la evaluación del audio. 2. el elemento evaluable que se va a evaluar. 3. Identificador único de la lista a la que pertenece el elemento evaluable y de la sesión de grabación. 4. Nombre del método del que se almacena la evaluación y las notas del evaluador sobre el audio. 5. Evaluación del audio. 6. Fecha de creación de la evaluación. Tabla 3.3: Requisitos de información 3.2.4. Casos de uso Los casos de uso representados en el diagrama de la figura 3.2 han sido extraídos de las historias de usuario que inicialmente se plantearon y que finalmente han sido implementadas. 28
Descripción de las Iteraciones Figura 3.2: Casos de uso de la aplicación. CU-01 IniciarSesion. Descripción El sistema permitirá a cualquier usuario previamente registrado acceder al sistema. Precondición El usuario se encuentra en el menú de inicio. el usuario está registrado en el sistema. Secuencia Paso 1: El sistema solicita las credenciales del usuario. Paso 2: El usuario introduce sus credenciales. Paso 3: El sistema valida las credenciales y comprueba si son correctas. Paso 4: El sistema muestra la vista correspondiente al usuario y el caso de uso finaliza. Postcondición El usuario iniciará sesión satisfactoriamente. Excepciones Paso 3: Si alguno de las credenciales del usuario son inválidas, se le informará al mismo y volverá al paso 1. Tabla 3.4: Caso de uso CU-01. CU-02 CerrarSesion. Descripción El sistema permitirá cerrar sesión. Precondición El usuario se encuentra en cualquier vista que no sea el menú de inicio. El usuario ha realizado el caso de uso ”Iniciar sesión”. Secuencia Paso 1: El usuario presiona sobre el botón de cerrar sesión. Paso 2: El sistema redirige al usuario al menú de inicio y el caso de uso finaliza. Postcondición Se cerrará la sesión del usuario en el sistema. Excepciones Tabla 3.5: Caso de uso CU-02. 29
3.2. Iteración 1 CU-11 ExportarEvaluacion. Descripción El sistema permitirá a un usuario administrador la exportación de evaluaciones. Precondición El usuario ha realizado el caso de uso ”Iniciar sesión”. El rol del usuario es Administrador. Secuencia Paso 1: El usuario administrador presiona sobre el botón de acceso a la gestión de sesiones y listas de elementos evaluables. Paso 2: El sistema valida la petición y dirige al usuario a la ventana de gestión de sesiones y listas de elementos evaluables. Paso 3: El usuario administrador realiza el caso de uso de ”Seleccionar sesión evaluable grabada”. Paso 4: El sistema procesa la petición y realiza la actualización de las sesiones evaluables grabadas para la sesión y lista seleccionadas por el usuario. Paso 5: El usuario administrador presiona sobre el botón de exportación de la lista o sesión seleccionada. Paso 6: El sistema solicita confirmación al usuario para realizar la descarga. Paso 7: El usuario confirma la descarga. Paso 8: El sistema procesa la petición y realiza la descarga de las evaluaciones seleccionadas, fin del caso de uso. Postcondición La locución para el elemento evaluable seleccionado para la sesión elegida será borrada satisfactoriamente. Excepciones Paso 3: En el caso en el que el usuario administrador no realice el cambio de uso de ”Seleccionar sesión evaluable grabada”, se mostrará la primera locución de la primera lista evaluable. Paso 6: En el caso en el que no haya ninguna sesión de locución para la lista de elementos evaluables elegida o para la sesión elegida, no se se podrá exportar las evaluaciones para el conjunto elegido ya que no existen, fin del caso de uso. Paso 7: En el caso en el que el usuario niegue la exportación de la evaluaciones, la descarga no se efectuará y el caso de uso volverá al paso 3. Tabla 3.14: Caso de uso CU-11. 36
Descripción de las Iteraciones CU-12 GrabarElementoEvaluable. Descripción El sistema permitirá a un usuario locutor la grabación de un elemento evaluable. Precondición El usuario ha realizado el caso de uso ”Iniciar sesión”. El rol del usuario es Locutor. Secuencia Paso 1: El usuario locutor se encuentra en la vista de locución de elementos evaluables. Paso 2: El usuario locutor presiona sobre el botón de grabación para iniciar la locución del elemento evaluable. Paso 3: El sistema procesa la petición y comienza la grabación del elemento. Paso 4: El usuario locutor presiona sobre el botón de finalizar la locución. Paso 5: El sistema procesa la petición y añade a la lista de grabaciones la nueva locución. Paso 6: El usuario presiona sobre el botón de añadir elemento evaluable. Paso 7: El sistema procesa la petición y redirige al usuario al siguiente elemento evaluable de la lista, fin del caso de uso. Postcondición La locución para ese elemento evaluable será almacenada correctamente. Excepciones Paso 7: En el caso en el que el elemento evaluado sea el último de la lista, el caso de uso finalizará . EXTENSIÓN: ”Grabar sesión evaluable” Tabla 3.15: Caso de uso CU-12. CU-13 GrabarSesionEvaluable. Descripción El sistema permitirá a un usuario locutor la grabación de una sesión evaluable. Precondición El usuario ha realizado el caso de uso ”Iniciar sesión”. El rol del usuario es Locutor. El usuario se encuentra en la locución del ultimo elemento de la lista de elementos evaluables. Secuencia Paso 1: El usuario locutor se encuentra en la vista de locución de elementos evaluables. Paso 2: El usuario locutor presiona sobre el botón de grabación para iniciar la locución del elemento evaluable. Paso 3: El sistema procesa la petición y comienza la grabación del elemento. Paso 4: El usuario locutor presiona sobre el botón de finalizar la locución. Paso 5: El sistema procesa la petición y añade a la lista de grabaciones la nueva locución. Paso 6: El usuario presiona sobre el botón de añadir elemento evaluable. Paso 7: El sistema procesa la petición y redirige al usuario al menú principal al haber acabado con todos los elementos de la lista, fin del caso de uso. Postcondición La sesión de evaluación será creada satisfactoriamente. Excepciones Tabla 3.16: Caso de uso CU-13. 37
3.2. Iteración 1 CU-14 EvaluarElementoEvaluableGrabado. Descripción El sistema permitirá a un usuario evaluador la evaluación de una locución de un elemento evaluable. Precondición El usuario ha realizado el caso de uso ”Iniciar sesión”. El rol del usuario es Evaluador. Secuencia Paso 1: El usuario evaluador se encuentra en la vista de evaluación de locuciones de elementos evaluables. Paso 2: El usuario evaluador introduce la evaluación de la locución para todos los métodos de evaluación y opcionalmente un comentario acerca de la misma. Paso 3: El usuario evaluador presiona sobre el botón de añadir evaluación. Paso 4: El sistema procesa la petición y redirige al usuario a la siguiente locución para el siguiente elemento evaluable de la lista, fin del caso de uso. Postcondición La evaluación será almacenada satisfactoriamente. Excepciones Paso 2: En el caso en el que no haya una locución para el elemento evaluable en esa sesión de locución, no se mostrará ninguna locución, y se le permitirá al usuario ir directamente al siguiente elemento evaluable de la lista, fin del caso de uso. Paso 4: En el caso en el que el elemento evaluado sea el último de la lista, el caso de uso finalizará . EXTENSIÓN: ”Evaluar sesión evaluable grabada” Tabla 3.17: Caso de uso CU-14. CU-15 EvaluarSesionEvaluableGrabada. Descripción El sistema permitirá a un usuario evaluador la evaluación de una sesión evaluable grabada. Precondición El usuario ha realizado el caso de uso ”Iniciar sesión”. El rol del usuario es Evaluador. El usuario se encuentra en la evaluación del ultimo elemento de la lista de elementos evaluables. Secuencia Paso 1: El usuario evaluador se encuentra en la vista de evaluación de locuciones de elementos evaluables. Paso 2: El usuario evaluador introduce la evaluación de la locución para todos los métodos de evaluación y opcionalmente un comentario acerca de la misma. Paso 3: El usuario evaluador presiona sobre el botón de añadir evaluación. Paso 4: El sistema procesa la petición y redirige al usuario al menú principal al haber acabado con todos los elementos de la lista, fin del caso de uso. Postcondición La evaluación será almacenada satisfactoriamente. Excepciones Paso 2: En el caso en el que no haya una locución para el elemento evaluable en esa sesión de locución, no se mostrará ninguna locución, y se le permitirá al usuario ir directamente al menú principal al haber acabado con todos los elementos de la lista, fin del caso de uso. Tabla 3.18: Caso de uso CU-15. 38
Descripción de las Iteraciones 3.2.5. Modelo de dominio En la figura 3.3 se muestra el diagrama del modelo de dominio de la aplicación, donde como se ha comentado al comienzo de este apartado, se reflejan los elementos de la aplicación y sus relaciones. Figura 3.3: Modelo de dominio. Un Usuario en el Sistema puede ser Evaluador, Locutor o Administrador, este último, necesitaría de una contraseña para autenticarse. Además, un Administrador podrá registrar a un nuevo usuario dando para e mismo un nuevo nombre, rol e identificador. Un Administrador también podrá gestionar ListasEvaluables, creándolas aportando un identificador, una contraseña, un nombre, la fecha de su creación y opcionalmente notas para el locutor y para el evaluado o eliminarlas si conoce su identificador. El usuario Administrador podrá inclusive exportar ListasEvaluables introduciendo su identificador. Asimismo, un administrador tendrá la posibilidad de eliminar cualquier audio grabados por un usuario de rol Locutor. Este usuario de rol Lo- 39
3.2. Iteración 1 cutor como ya se ha mencionado anteriormente podrá grabar un Audio aportando un identificador de la sesión de locución y la ruta donde estará almacenado el mismo. Este audio será calificado mediante un ElementoEvaluable que es el elemento básico que conforma las ListasEvaluables, todo ElementoEvaluable tiene su ”elemento_Evaluable” y opcionalmente un texto opcional para el locutor y el evaluador. Estos ElementosEvaluables son calificados por MétodosEvaluación, todos ellos tienen su nombre y pueden ser de dos tipos: Rango que almacena el rango superior y el inferior del método, y Tricotómica que almacena el nombre de los tres niveles que podría tener esa evaluación. El usuario de Evaluador es el responsable de evaluar el audio, creando SesionesEvaluables, para ello tendrá que dar un identificador a la evaluación, la fecha de la misma y opcionalmente unas notas de evaluación, estas sesiones evaluables están compuestas por ElementosEvaluables y pueden ser de dos tipos: EvaluacionRango que almacena la evaluación entre los dos rangos descritos por el método de evaluación del ElementoEvaluable, y EvaluacionTricotomica que almacenaría como boolean el valor de la evaluación tricotómica que el usuario ha elegido. 3.2.6. Historias de usuario ¿Por qué historias de usuario y no requisitos funcionales? La primera gran diferencia es que en un análisis funcional con descripción de requisitos, generalmente se utiliza UML. Un lenguaje descriptivo pensado inicialmente en la sencillez, pero que sin embargo, es muy complicado de utilizar correctamente. En cambio una Historia de Usuario está escrita en lenguaje coloquial ya que es el recordatorio de la conversación que se ha tenido con el cliente"[39], y por tanto un acuerdo formal de mínimos para dar por buena la funcionalidad descrita y esperada. El concepto de Criterios de Aceptación de las Historias de Usuario, es la gran segunda ventaja sobre los requisitos funcionales UML. No requieren de las terribles matrices de seguimiento de requisitos, al incluir en la propia historia de usuario todas las pruebas que debe superar para ser aceptada como completada. Y que dicha aceptación es dicotómica: o es válida o no. 40
Descripción de las Iteraciones Descripción de las historias de usuario User Story Nombre Descripción US-01 Inicio de sesión Como usuario quiero iniciar sesión para poder acceder a mis herramientas US-02 Cerrar sesión Como usuario quiero cerrar sesión para volver de manera segura al menú principal US-03 Registro de usuario Como usuario administrador quiero registrar un nuevo usuario para que ese nuevo usuario pueda iniciar sesión. US-04 Creación de lista de elementos evaluables Como usuario administrador quiero añadir una nueva lista de elementos evaluables para que se puedan realizar sesiones de grabación sobre ella US-05 Gestión de sesiones y listas Como usuario administrador quiero gestionar las sesiones y listas de elementos evaluables para tener un control sobre las mismas US-06 Grabación de sesión de locución Como usuario locutor quiero grabar una nueva sesión de locución para que esa sesión se pueda evaluar US-07 Evaluación de sesión de locución Como usuario evaluador quiero evaluar una sesión de locución para tener una nueva sesión de evaluación Tabla 3.19: Historias de usuario 3.2.7. Desarrollo de prototipos Como se ha comentado al comienzo de esta sección, de la reunión realizada con el ”Product Owner” y el ”Cliente” se realizan unos bocetos de cómo se pretende que sea la apariencia de la aplicación y de sus funcionalidades básicas. Estos bocetos se han realizado a papel en primera instancia y pasados a ordenador mediante la herramienta ”Balsamiq Cloud” que se menciona en el apartado 2.2.1. En la figura 3.4 se puede observar la página principal de la aplicación donde se realizará el inicio de sesión. Consta de un selector de rol,y en función de este selector se mostrarán unos campos u otros: Administrador: • Nombre del usuario. • Contraseña del usuario. Locutor: 41
3.2. Iteración 1 • Nombre del usuario. • Identificador de la lista de elementos evaluables que desea grabar. • Contraseña de la lista de elementos evaluables Evaluador: • Nombre del usuario. • Identificador de la lista de elementos evaluables. • Contraseña de la lista del elemento evaluable. • Identificador de la sesión de locución que desea evaluar. Y un botón ”Inicio de sesión” para validar los credenciales introducimos e iniciar sesión si son correctos. Figura 3.4: Boceto del menú principal de inicio de sesión. 42
En la figura 3.5 se muestra la vista del ”Menú de administrador” a la que se llegaría cuando el usuario realiza un inicio de sesión exitoso con un usuario de rol administrador. En el se muestran los tres botones correspondientes a las tres funciones que tiene un usuario de rol administrador: Registrar un nuevo usuario. Crear una nueva lista de elementos evaluables. Gestionar sesiones. Además de estos botones se incluye un botón de ”Cerrar sesión” que redirigirá al usuario a la ventana de inicio. Este botón se incluirá en todas las vistas que no sean la de inicio. Figura 3.5: Boceto del menú de administrador.
A continuación de esta se encuentra la vista de registro de nuevos usuarios, en la figura 3.6. En ella se muestra un selector del rol del usuario que se desea registrar, una entrada de texto para el nombre del mismo y otra para la contraseña en el caso de que el rol elegido sea ”administrador”. Figura 3.6: Boceto de la creación de un nuevo usuario.
En la figura 3.7 se observa la vista de creación de una nueva vista de elementos evaluables, donde se encuentra un campo de texto para introducir el nombre de la lista de elementos evaluables y a continuación se pueden diferenciar dos secciones: La primera sección de introducción de elementos evaluables donde el usuario puede introducir un nuevo elemento evaluable y las notas de evaluador y locutor junto con un botón para añadir un nuevo método de evaluación y el botón de añadir el elemento evaluable introducido junto con sus métodos de evaluación a la lista. Una segunda sección de creación de la lista donde el usuario introducirá la contraseña de la misma y cuando presione sobre el botón de registro de lista esta será almacenada satisfactoriamente. Figura 3.7: Boceto del menú de creación de una nueva lista de elementos evaluables
3.3. Iteración 2 gumStream =stream; input =audioContext.createMediaStreamSource(stream); rec =new Recorder(input,{numChannels:1}); rec.record(); }) se comienza la grabación de una nuevo audio, y mediante la función: rec.record(); se para la grabación del audio, una vez se ha iniciado la grabación del objeto de tipo Recorder y se ha finalizado, se puede exportar a un formato más cómodo como puede ser el WAV con la siguiente función: var url =URL.createObjectURL(blob); var hf =document.createElement('a'); //Enlace hf.download =url hf.click; 3.3.3. PHP7 PHP7 es el lenguaje elegido para las redirecciones entre las vistas de la aplicación y el acceso a la base de datos SQL. En esta segunda iteración se descubrió el patrón de diseño PHP POST/Redirección/GET [43] del que se hablará en apartados futuros de este documento en el que se puede hacer redirecciones seguras sin problemas de repetir peticiones. 3.3.4. MySQL MySQL es el sistema de gestión de bases de datos elegido para gestionar la base de datos SQL que almacenará los datos necesarios para el funcionamiento de la aplicación. En esta segunda iteración se ha llevado a cabo un diseño preliminar de las tablas necesarias para la base de datos así como los campos que deben de tener estas tablas, la primera versión de estas tablas se puede ver en la figura 3.14 3.3.5. Montaje del servidor local Al no disponer de primera mano de un servidor para montar la aplicación y hacer pruebas de la misma, se ha tomado la decisión de montar un servidor local en el ordenador del estudiante donde integrar la base de datos SQL y donde tener instalado PHP7. 52
Descripción de las Iteraciones Figura 3.14: Primera versión de las tablas de la base de datos. Para ello se ha usado la aplicación MAMP que se refiere al conjunto de programas software comúnmente usados para desarrollar sitios web dinámicos sobre sistemas operativos MAC OS: MAC Apache MySQL PHP [26]. 3.3.6. Pruebas realizadas En esta iteración todavía no se ha implementado nada funcional acerca de la aplicación por lo que no se han realizado pruebas. 53
3.4. Iteración 3 3.4.1. Product Backlog y Sprint Backlog al comienzo del Sprint Figura 3.15: Product Backlog y Sprint Backlog al comienzo de la tercera iteración. 3.4.2. Funcionalidad implementada En esta iteración se realiza la implementación de la funcionalidad principal de la aplicación que es la grabación y almacenamiento de los audios. Para ello se han creado usuarios artificiales con rol locutor y listas de elementos evaluables también artificiales para hacer las pruebas de grabación. En primer lugar se han implementado los botones de grabación y parada con la funcionalidad explicada en la iteración anterior con la diferencia de que una vez la grabación del audio termina, se le mostrará al usuario el nuevo audio grabado al final de la lista de audio grabados. (En el caso de que no haya una grabación previa), la lista aparecerá vacía y se le incluirá el nuevo audio, junto a este audio aparecerá un botón de adición del mismo a la sesión de grabación. Una vez el usuario presione sobre este la grabación será guardada en el directorio ”palabras” del servidor para la ruta: /palabras/lista_IDLista/sesion_sessionID/nombre_elemento_evaluable.wav De esta manera queda unívocamente identificado, esa ruta se añadirá a la base de datos en el campo de ”audio” junto con el resto de campos de la tabla ”Audios” (palabra (nombre del elemento evaluable), IDLista, sessionID (nuevo), UserIDlocutor). Una vez se haya almacenado el audio, y se haya guardado el nuevo registro del mismo en la base de datos, el sistema mostrará el nombre del nuevo elemento evaluable que hay en la lista que el usuario
Descripción de las Iteraciones debe grabar en la sesión. Una vez el usuario acabe con todos los elementos evaluables de la lista el sistema le informará de que ha finalizado y le dirigirá de nuevo al menú de inicio. 55
3.4.3. Casos de prueba definidos IdentificadorTC LOC-01 Título Comprobación vista de locución Prioridad Smoke Versión 1.0 GIVEN: Usuario de rol locutor Realizó un inicio de sesión satisfactorio. WHEN: El usuario acaba de acceder a la vista de locución (3.85). THEN: Se le mostrará al usuario el nombre de la lista de elementos evaluables que debe grabar El identificador de la lista de elementos evaluables y el botón de cerrar sesión aparecerán Se mostrará también las notas de locución para la misma (Si existen) El elemento evaluable actual aparecerá debajo la misma jun- to con un contador de elementos evaluables de la lista que comienza en 0 Las notas de locución del elemento evaluable actual aparecerán (Si existen) Los botones de grabar y parar también se mostrarán Y una lista de grabaciones vacía. Tabla 3.20: TC LOC-01 - Comprobación vista de locución. IdentificadorTC LOC-02 Título Grabación de audio Prioridad Smoke Versión 1.0 GIVEN: Usuario de rol locutor Realizó un inicio de sesión satisfactorio No tenía una grabación en curso. WHEN: El usuario presiona sobre el botón ”grabar”. THEN: El botón de ”grabar” quedará bloqueado y no se podrá pulsar El botón de ”parar” estará habilitado y podrá ser pulsado. Tabla 3.21: TC LOC-02 - Grabación de audio.
Descripción de las Iteraciones IdentificadorTC LOC-03 Título Parar grabación de audio Prioridad Smoke Versión 1.0 GIVEN: Usuario de rol locutor Realizó un inicio de sesión satisfactorio No ha realizado con anterioridad ninguna locución para ese elemento evaluable Tenía una grabación en curso. (3.21). WHEN: El usuario presiona sobre el botón ”parar”. THEN: El botón de ”parar” quedará bloqueado y no se podrá pulsar El botón de ”grabar” estará habilitado y podrá ser pulsado La nueva grabación será añadida a la lista de grabaciones anteriormente vacía El botón de ”Guardar elemento evaluable” se mostrará debajo de la nueva grabación y podrá ser pulsado. Tabla 3.22: TC LOC-03 - Parar grabación de audio. IdentificadorTC LOC-04 Título Guardar locución de elemento evaluable que no sea el último de la lista Prioridad Smoke Versión 1.0 GIVEN: Usuario de rol locutor Realizó un inicio de sesión satisfactorio No tiene ninguna grabación en curso. Ha realizado al menos una grabación de audio (3.22) para ese elemento evaluable. WHEN: El usuario presiona sobre el botón de "Guardar elemento evaluable". THEN: El audio será almacenado correctamente El siguiente elemento evaluable de la lista se mostrará sustituyendo a la anterior. El contador de elementos evaluables de la lista incrementará en uno. Tabla 3.23: TC LOC-04 - Guardar locución de elemento evaluable que no sea el último de la lista. 57
3.4. Iteración 3 IdentificadorTC LOC-05 Título Realizar una nueva grabación Prioridad Full Sanity Versión 1.0 GIVEN: Usuario de rol locutor Realizó un inicio de sesión satisfactorio No tiene ninguna grabación en curso. Ha realizado al menos una grabación de audio (3.22) para ese elemento evaluable. WHEN: El usuario presiona sobre el botón de "Grabar" Y cuando acabe de recitar el elemento evaluable presiona sobre el botón parar. THEN: El botón de ”parar” quedará bloqueado y no se podrá pulsar El botón de ”grabar” estará habilitado y podrá ser pulsado La nueva grabación será añadida a la lista de grabaciones El botón de ”Guardar elemento evaluable” se mostrará debajo de la nueva grabación y podrá ser pulsado. Tabla 3.24: TC LOC-05 - Realizar una nueva grabación. IdentificadorTC LOC-06 Título Finalizar sesión de grabación Prioridad Basic Sanity Versión 1.0 GIVEN: Usuario de rol locutor Realizó un inicio de sesión satisfactorio No tiene ninguna grabación en curso. Se encuentra en el último elemento evaluable de la lista Ha realizado al menos una grabación de audio (3.22) para ese elemento evaluable. WHEN: El usuario presiona sobre el botón de "Guardar elemento evaluable". THEN: El audio será almacenado correctamente El usuario será informado de que ha acabado con todos los elementos evaluables de la lista Junto con ese mensaje aparecerá un botón de .Aceptar". Tabla 3.25: TC LOC-06 - Finalizar sesión de grabación. 58
Descripción de las Iteraciones IdentificadorTC LOC-07 Título Redirección al menú principal cuando el usuario acaba con todos los elementos evaluables Prioridad Regression Versión 1.0 GIVEN: Usuario de rol locutor Realizó un inicio de sesión satisfactorio No tiene ninguna grabación en curso. Se encuentra en el último elemento evaluable de la lista. Ha finalizado una sesión de grabación (3.25) para ese elemento evaluable. WHEN: El usuario presiona sobre el botón de .Aceptar"del mensaje informativo. THEN: El usuario será redirigido al menú principal. La sesión del usuario se cerrará Tabla 3.26: TC LOC-07 - Redirección al menú principal cuando el usuario acaba con todos los elementos evaluables. IdentificadorTC LOC-08 Título Cerrar sesión desde locución Prioridad Regression Versión 1.0 GIVEN: Usuario de rol locutor Realizó un inicio de sesión satisfactorio No ha realizado ningún evento de grabación WHEN: El usuario presiona sobre el botón de Çerrar sesión". THEN: El usuario será redirigido al menú principal La sesión del usuario se cerrará satisfactoriamente. Tabla 3.27: TC LOC-08 - Cerrar sesión desde locución. 59
3.4. Iteración 3 IdentificadorTC LOC-09 Título Locutor no puede cerrar sesión si ha realizado algún evento de grabación Prioridad Full Sanity Versión 1.0 GIVEN: Usuario de rol locutor Realizó un inicio de sesión satisfactorio Ha realizado algún evento de grabación (Ha pulsado sobre ”grabar” al menos una vez. WHEN: El usuario presiona sobre el botón de Çerrar sesión". THEN: El usuario no será redirigido al menú principal La sesión del usuario no se cerrará. El usuario será notificado de que debe acabar la grabación de todos elemento evaluables. Tabla 3.28: TC LOC-09 - Locutor no puede cerrar sesión si ha realizado algún evento de grabación. IdentificadorTC LOC-10 Título Reproducción de audio grabado Prioridad Basic Sanity Versión 1.0 GIVEN: Usuario de rol locutor Realizó un inicio de sesión satisfactorio Ha realizado al menos una grabación de audio (3.22) para ese elemento evaluable. WHEN: El usuario presiona sobre el botón de reproducción del audio. THEN: El usuario escuchará la locución que había realizado Tabla 3.29: TC LOC-10 - Reproducción de audio grabado. 60
Descripción de las Iteraciones 3.4.4. Pruebas realizadas Las pruebas realizadas en esta iteración se encuentran en la sección B.1 del apéndice B. 3.4.5. Errores detectados Los errores detectados por las ejecuciones de la sección anterior son los siguientes: Identificador Locutor no es enviado al inicio al fin de una sesión IdentificadorTC LOC-07 Severidad MENOR Estado ABIERTO Versión Afectada 1.0 Versión Resuelta Resultado esperado El usuario será redirigido al menú principal. La sesión del usuario se cerrará Resultado detectado El usuario se mantiene en la vista de locución y su sesión sigue abierta Tabla 3.30: Error 01 del TC LOC-07. 3.4.6. Product Backlog y Sprint Backlog al final del Sprint Figura 3.16: Product Backlog y Sprint Backlog al final de la tercera iteración. 61
3.5. Iteración 4 IdentificadorTC REG-05 Título Registro de nuevo usuario Prioridad Smoke Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio. Se encuentra en la ventana de registro de un nuevo usuario. Se han rellenado todos los campos de registro. WHEN: El usuario administrador presiona sobre el botón de registro de usuario. THEN: El nuevo usuario será registrado. el usuario administrador será informado de que el nuevo usuario ha sido registrado. Tabla 3.40: TC REG-05 - Registro de nuevo usuario IdentificadorTC REG-06 Título Redirección al menú principal una vez registrado el usuario Prioridad Full Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio Se encuentra en la ventana de registro de un nuevo usuario. Acaba de realizar el registro de un nuevo usuario 3.40 Se le ha mostrado un mensaje informativo del registro. WHEN: El usuario administrador acepta el mensaje. THEN: el usuario administrador será redirigido al menú principal se cerrará la sesión del usuario Tabla 3.41: TC REG-06 - Redirección al menú principal una vez registrado el usuario IdentificadorTC REG-07 Título Cierre de sesión desde Registro de usuario Prioridad Regression Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio Se encuentra en la ventana de registro de un nuevo usuario. WHEN: El usuario administrador presiona sobre el botón de ”cerrar sesión”. THEN: el usuario administrador será redirigido al menú principal se cerrará la sesión del usuario Tabla 3.42: TC REG-07 - Cierre de sesión desde Registro de usuario 68
Descripción de las Iteraciones IdentificadorTC LIS-01 Título Comprobación vista de creación de nueva lista Prioridad Smoke Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio. WHEN: Se encuentra en la ventana de creación de una nueva lista de elementos evaluables tras 3.33 THEN: El campo de texto del nombre de la lista se mostrará El campo de texto del elemento evaluable se mostrará Lo campos de texto del texto opcional para el locutor y para el evaluador se mostrarán La sección de gestión de nuevos métodos de evaluación se mostrará junto con una lista vacía de métodos de evaluación El botón de guardar el elemento evaluable se mostrará Lo campos de texto de las notas para el locutor y para el evaluador de la lista se mostrarán El campo de texto de la contraseña se mostrará El botón de guardado de la lista se mostrará En la parte inferior del formulario se mostrará una lista con los elementos evaluables que se van a añadir una vez se presione el botón de guardado de la lista El botón de cerrar sesión se desplegará en la esquina superior izquierda. Tabla 3.43: TC LIS-01 - Comprobación vista de creación de nueva lista IdentificadorTC LIS-02 Título No se puede guardar un elemento evaluable si no se introduce su nombre Prioridad Basic Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio No ha introducido el nombre del elemento evaluable. WHEN: Presiona sobre el botón de guardar el elemento evaluable THEN: El sistema avisa al usuario de que debe añadir un elemento evaluable. Tabla 3.44: TC LIS-02 - No se puede guardar un elemento evaluable si no se introduce su nombre 69
3.5. Iteración 4 IdentificadorTC LIS-03 Título No se puede guardar un elemento evaluable si no se ha introducido al menos un método de evaluación Prioridad Full Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio No ha introducido ningún método de evaluación para el elemento evaluable. WHEN: Presiona sobre el botón de guardar elemento evaluable THEN: El sistema avisa al usuario de que debe añadir al menos un método de evaluación para el elemento evaluable El elemento evaluable NO se añadirá a la lista. Tabla 3.45: TC LIS-03 - No se puede guardar un elemento evaluable si no se ha introducido al menos un método de evaluación IdentificadorTC LIS-04 Título Añadir nuevo método de evaluación Prioridad Basic Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio WHEN: Presiona sobre el botón ”+” de la fila de botones que gestionan los métodos de evaluación THEN: Se despliega un nuevo método de evaluación en la lista de métodos de evaluación para el elemento evaluable Tabla 3.46: TC LIS-04 - Añadir nuevo método de evaluación IdentificadorTC LIS-05 Título Eliminar el último método de evaluación añadido Prioridad Basic Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio Se ha introducido como mínimo un método de evaluación para el elemento evaluable. (3.46) WHEN: Presiona sobre el botón ”-” de la fila de botones que gestionan los métodos de evaluación. THEN: El último método de evaluación será suprimido de la lista. Tabla 3.47: TC LIS-05 - Eliminar el último método de evaluación añadido 70
Descripción de las Iteraciones IdentificadorTC LIS-06 Título Eliminar todos los métodos de evaluación añadidos Prioridad Full Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio Se ha introducido como mínimo un método de evaluación para el elemento evaluable. (3.46) WHEN: Presiona sobre el botón ”Borrar todo” de la fila de botones que gestionan los métodos de evaluación. THEN: Todos los métodos de evaluación serán suprimidos de la lista. Tabla 3.48: TC LIS-06 - Eliminar todos los métodos de evaluación añadidos IdentificadorTC LIS-07 Título No se puede añadir un elemento evaluable cuyos métodos de evaluación no están completados Prioridad Regression Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio Se ha introducido como mínimo un método de evaluación para el elemento evaluable. (3.46) No ha rellenado el campo ”Nombre de evaluación” en alguno O no se ha elegido un tipo de evaluación en alguno O de haberse elegido el tipo Rango, no se ha puesto la evaluación mínima o la máxima en alguno. WHEN: Presiona sobre el botón de guardado del elemento evaluable. THEN: Se le informará al usuario de que tiene que introducir el nombre y el tipo de método Tabla 3.49: TC LIS-07 - No se puede añadir un elemento evaluable cuyos métodos de evaluación no están completados 71
3.5. Iteración 4 IdentificadorTC LIS-08 Título Adición de elemento evaluable Prioridad Smoke Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio Se ha introducido como mínimo un método de evaluación para el elemento evaluable. (3.46) Se han completado todos los campos necesarios. WHEN: Presiona sobre el botón de guardado del elemento evaluable. Acepta el guardado del elemento. THEN: El elemento evaluable se añadirá satisfactoriamente a la lista todos los campos se vaciarán para la posible adición de un nuevo elemento evaluable Tabla 3.50: TC LIS-08 - Adición de elemento evaluable IdentificadorTC LIS-09 Título No se puede guardar una nueva lista sin ningún elemento añadido a la lista Prioridad Basic Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio no ha introducido ninguna elemento evaluable a la lista WHEN: Presiona sobre el botón de guardado de la lista. THEN: Se le notificará al usuario administrador de que no puede crear una lista de elementos evaluables vacía La nueva lista de elementos evaluables no se creará Tabla 3.51: TC LIS-09 - No se puede guardar una nueva lista sin ningún elemento añadido a la lista IdentificadorTC LIS-10 Título No se puede guardar una nueva lista sin nombre Prioridad Full Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio no ha introducido el nombre de la lista WHEN: Presiona sobre el botón de guardado de la lista. THEN: Se le notificará al usuario administrador de que no puede crear una lista sin nombre Tabla 3.52: TC LIS-10 - No se puede guardar una nueva lista sin nombre 72
Descripción de las Iteraciones IdentificadorTC LIS-11 Título No se puede guardar una nueva lista sin contraseña Prioridad Full Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio no ha introducido una contraseña para la lista WHEN: Presiona sobre el botón de guardado de la lista. THEN: Se le notificará al usuario administrador de que no puede crear una lista sin contraseña Tabla 3.53: TC LIS-11 - No se puede guardar una nueva lista sin contraseña IdentificadorTC LIS-12 Título Adición de lista de elementos evaluables Prioridad Smoke Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio Se ha realizado el guardado de al menos un elemento en la lista de elementos evaluables. (3.50) Se han rellenado todos los campos necesarios. WHEN: Presiona sobre el botón de guardado de la lista de elementos evaluables. Acepta el guardado de la lista. THEN: La lista de elementos evaluables se creará satisfactoriamente Se le informará al usuario de la creación de la lista junto con un enlace de ”Aceptar” Tabla 3.54: TC LIS-12 - Adición de lista de elementos evaluables IdentificadorTC LIS-13 Título Cancelación de adición de elemento evaluable Prioridad Basic Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio Se ha introducido como mínimo un método de evaluación para el elemento evaluable. (3.46) Se han completado todos los campos necesarios. WHEN: Presiona sobre el botón de guardado del elemento evaluable. Cancela el guardado del elemento. THEN: El elemento evaluable no se añadirá a la lista Tabla 3.55: TC LIS-13 - Cancelación de adición de elemento evaluable 73
3.5. Iteración 4 IdentificadorTC LIS-14 Título Cancelación de adición de lista de elementos evaluables Prioridad Basic Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio Se ha realizado el guardado de al menos un elemento en la lista de elementos evaluables. (3.50) Se han rellenado todos los campos necesarios. WHEN: Presiona sobre el botón de guardado de la lista de elementos evaluables. Cancela el guardado de la lista. THEN: La lista de elementos evaluables no se creará Tabla 3.56: TC LIS-14 - Cancelación de adición de lista de elementos evaluables IdentificadorTC LIS-15 Título Redirección al menú principal después de creación de lista Prioridad Full Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio Se ha realizado el guardado de una lista de elementos evaluables. (3.54) Se encuentra con un mensaje de información. WHEN: Acepta el mensaje. THEN: El usuario será redirigido al menú principal. Tabla 3.57: TC LIS-15 - Redirección al menú principal después de creación de lista IdentificadorTC LIS-16 Título Cierre de sesión desde creación de lista de elementos evaluables Prioridad Regression Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio Se encuentra en la vista de creación de lista de elementos evaluables . WHEN: El usuario presiona sobre el botón de ”Cerrar sesión”. THEN: El usuario será enviado al menú principal. El usuario habrá cerrado sesión satisfactoriamente Tabla 3.58: TC LIS-16 - Cierre de sesión desde creación de lista de elementos evaluables 74
Descripción de las Iteraciones IdentificadorTC GES-01 Título Comprobación vista de gestión de sesiones Prioridad Smoke Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio. WHEN: Se encuentra en la ventana de gestión de sesiones tras 3.34 THEN: Un selector de la lista y de la sesión de locución se mostrarán Lo botones de exportación de evaluaciones de una lista y de una sesión se mostrarán El botón de eliminación de sesión de locución se mostrará también En la parte inferior del formulario se mostrará una lista con las locuciones de los elementos evaluables. El botón de cerrar sesión se desplegará en la esquina superior izquierda. Tabla 3.59: TC GES-01 - Comprobación vista de gestión de sesiones IdentificadorTC GES-02 Título Cambio de sesión Prioridad Basic Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio. Se encuentra en la ventana de gestión de sesiones WHEN: Realiza un cambio en la sesión de la lista de elementos evaluables THEN: Los elementos de la lista de locuciones se actualizarán para mostrar las locuciones de los elementos de la lista en la sesión seleccionada Se mostrará en el bloque de locución el nombre del elemento evaluable que pertenece y un botón de eliminación de locución La fecha de locución de la sesión se mostrará encima del botón de eliminación de sesión Tabla 3.60: TC GES-02 - Cambio de sesión 75
3.5. Iteración 4 IdentificadorTC GES-03 Título Reproducción de la locución de sesión Prioridad Smoke Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio. Se encuentra en la ventana de gestión de sesiones Ha realiza un cambio de sesión (3.60) WHEN: Presiona sobre el botón de reproducción en una de las locuciones de la sesión THEN: El usuario podrá escuchar la locución del elemento evaluable para la sesión seleccionada. Tabla 3.61: TC GES-03 - Reproducción de la locución de sesión IdentificadorTC GES-04 Título Cambio de lista con sesiones de locución Prioridad Basic Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio. Se encuentra en la ventana de gestión de sesiones WHEN: Realiza un cambio en la lista de elementos evaluables a una con sesiones de locución THEN: El selector de sesiones se actualizará con las sesiones correspondientes a esa lista Los elementos de la lista de locuciones se actualizarán para mostrar las locuciones de los elementos de la lista selecciona en la primera sesión de locución de la lista Se mostrará en el bloque de locución el nombre del elemento evaluable que pertenece y un botón de eliminación de locución La fecha de locución de la sesión se mostrará encima del botón de eliminación de sesión Tabla 3.62: TC GES-04 - Cambio de lista con sesiones de locución 76
Descripción de las Iteraciones IdentificadorTC GES-05 Título Cambio de lista sin sesiones de locución Prioridad Full Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio. Se encuentra en la ventana de gestión de sesiones WHEN: Realiza un cambio en la lista de elementos evaluables a una lista sin sesiones de locución THEN: La lista de grabaciones se mostrará vacía El selector de sesiones también aparecerá vacío. Tabla 3.63: TC GES-05 - Cambio de lista sin sesiones de locución IdentificadorTC GES-06 Título Eliminar sesión de evaluación Prioridad Basic Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio. Se encuentra en la ventana de gestión de sesiones Se encuentra en una lista con sesiones de evaluación (3.62) WHEN: Presiona sobre el botón de eliminación de sesión de locución Confirma el mensaje de eliminación THEN: Todas las locuciones de todas los elementos evaluables de esa sesión serán eliminadas. Se le notificará al usuario del borrado y se refrescará la página. Tabla 3.64: TC GES-06 - Eliminar sesión de evaluación IdentificadorTC GES-07 Título Cancelación del borrado de sesión de evaluación Prioridad Full Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio. Se encuentra en la ventana de gestión de sesiones Se encuentra en una lista con sesiones de evaluación (3.62) WHEN: Presiona sobre el botón de eliminación de sesión de locución Cancela el mensaje de eliminación THEN: Las locuciones de la sesión no se borrarán Tabla 3.65: TC GES-07 - Cancelación del borrado de sesión de evaluación 77
Figura 3.21: Tercera y última versión de las tablas de la base de datos.
Descripción de las Iteraciones Además de los cambios en la base de datos se han incluido todas las funcionalidades del rol evaluador: Una vez el usuario evaluador realiza un inicio de sesión exitoso se le redirigirá a la ventana de evaluación para la lista y sesión elegidas en el menú de inicio de sesión, en esa ventana podrá observar el nombre de la lista de elementos evaluables que está evaluando. Aparecerá el elemento evaluable que tiene que evaluar junto a un contador del número de elementos evaluables que le quedan por evaluar. Debajo de este aparecerá la lista de locuciones correspondientes a la sesión que el usuario eligió en el login, estas locuciones pueden no existir (esto puede darse si un usuario administrador ha borrado la locución de la misma o si el usuario locutor que grabó la sesión salió de la aplicación antes de finalizar la locución de ese elemento evaluable), en ese caso aparecerá un mensaje de advertencia para el usuario evaluador de que no existe audio para ese elemento evaluable en esa sesión y la opción de ir al siguiente elemento a evaluar en la lista. En el caso de que si exista locución para ese elemento evaluable, aparecerá la misma en la lista de grabaciones y debajo de esta la fecha en la que fue grabada y la lista de métodos de evaluación asociados al elemento evaluable. El usuario evaluador podrá introducir la evaluación del elemento para cada uno de los métodos y un comentario opcional acerca del mismo. Una vez ha finalizado la evaluación podrá presionar sobre el botón de continuar para guardar su evaluación sobre la locución para ese elemento evaluable. Cuando el usuario evaluador finaliza con todas las locuciones para todos los elementos evaluables de la lista elegida, será informado de que ha finalizado la evaluación y se le enviará al menú principal. El usuario no podrá cerrar sesión si está en mitad de una evaluación de elementos evaluables, en cuanto haga una evaluación de un elemento evaluable el botón de cerrar sesión quedará inutilizado. En el caso en el que el usuario no haya realizado ninguna evaluación, este podrá cerrar sesión con normalidad. Además de esto se implementará la funcionalidad de exportación de evaluaciones desde la vista de ”Gestión de sesiones” del menú de administración Y la implementación real del menú principal de inicio de sesión en la que el usuario podrá acceder a la vistas correspondientes dados sus roles si introducen las credenciales correctos. Esta iteración será un poco especial en cuanto a pruebas puesto que al haberse implementado el menú principal con inicio de sesión y el acceso a las vistas de la aplicación con seguridad mediante el Token de Acceso, esto podría haber influido en otras funcionalidades creadas en pasadas iteraciones, por ello se ha tomado la decisión de, además de pasar los tests correspondientes a esta iteración, pasar también tests de Nivel ”Smoke” para los casos de prueba confeccionados en iteraciones anteriores. 85
3.6.3. Casos de prueba definidos IdentificadorTC INI-01 Título Comprobación menú principal Prioridad Smoke Versión 3.0 GIVEN: WHEN: Usuario accede al menú principal. THEN: El selector de rol aparecerá El campo de texto del nombre aparecerá. El botón de inicio de sesión aparecerá en la parte inferior del formulario. Tabla 3.77: TC INI-01 - Comprobación menú principal IdentificadorTC INI-02 Título Campo contraseña de usuario se muestra si el rol es administrador Prioridad Basic Sanity Versión 3.0 GIVEN: El usuario está en el menú principal de la aplicación. WHEN: Cambia el rol a administrador THEN: El campo de contraseña aparecerá bajo el de nombre Tabla 3.78: TC INI-02 - Campo contraseña de usuario se muestra si el rol es administrador IdentificadorTC INI-03 Título Campo contraseña de usuario NO se muestra si el rol NO es administrador Prioridad Full Sanity Versión 3.0 GIVEN: El usuario está en el menú principal de la aplicación. WHEN: Cambia el rol a uno que no sea administrador. THEN: El campo de contraseña no aparecerá. Tabla 3.79: TC INI-03 - Campo contraseña de usuario NO se muestra si el rol NO es administrador
Descripción de las Iteraciones IdentificadorTC INI-04 Título Campo identificador de lista y contraseña de lista se muestra si el rol es locutor o evaluador Prioridad Basic Sanity Versión 3.0 GIVEN: El usuario está en el menú principal de la aplicación. WHEN: Cambia el rol a locutor o evaluador THEN: El campo identificador de lista y el de contraseña de lista aparecerán bajo el de nombre Tabla 3.80: TC INI-04 - Campo identificador de lista y contraseña de lista se muestra si el rol es locutor o evaluador IdentificadorTC INI-05 Título Campo identificador de lista y contraseña de lista NO se muestra si el rol es administrador Prioridad Full Sanity Versión 3.0 GIVEN: El usuario está en el menú principal de la aplicación. WHEN: Cambia el rol a administrador THEN: El campo identificador de lista y el de contraseña de lista NO aparecerán. Tabla 3.81: TC INI-05 - Campo identificador de lista y contraseña de lista NO se muestra si el rol es administrador IdentificadorTC INI-06 Título Campo identificador de la sesión de locución se muestra si el rol es evaluador Prioridad Basic Sanity Versión 3.0 GIVEN: El usuario está en el menú principal de la aplicación. WHEN: Cambia el rol a evaluador THEN: El campo identificador de la sesión de locución aparecerá bajo la contraseña de la lista Tabla 3.82: TC INI-06 - Campo identificador de la sesión de locución se muestra si el rol es evaluador 87
3.6. Iteración 5 IdentificadorTC INI-07 Título Campo identificador de la sesión de locución NO se muestra si el rol NO es evaluador Prioridad Full Sanity Versión 3.0 GIVEN: El usuario está en el menú principal de la aplicación WHEN: Cambia el rol a un rol que no sea evaluador THEN: El campo identificador de la sesión de locución NO aparecerá. Tabla 3.83: TC INI-07 - Campo identificador de la sesión de locución NO se muestra si el rol NO es evaluador IdentificadorTC INI-08 Título Inicio sesión administrador Prioridad Smoke Versión 3.0 GIVEN: El usuario está en el menú principal de la aplicación El usuario tiene seleccionado el rol administrador 3.78 Introduce el nombre y la contraseña correctos del usuario administrador correctamente. WHEN: Presiona sobre el botón de inicio de sesión THEN: El usuario será redirigido al menú de administrador. Y habrá iniciado sesión correctamente. Tabla 3.84: TC INI-08 - Inicio sesión administrador IdentificadorTC INI-09 Título Inicio sesión locutor Prioridad Smoke Versión 3.0 GIVEN: El usuario está en el menú principal de la aplicación El usuario tiene seleccionado el rol locutor (3.80) Introduce el nombre, el identificador de la lista y la contraseña de la lista correctos. WHEN: Presiona sobre el botón de inicio de sesión THEN: El usuario será redirigido a la vista de locución para la lista indicada. Habrá iniciado sesión correctamente. Tabla 3.85: TC INI-09 - Inicio sesión locutor 88
Descripción de las Iteraciones IdentificadorTC INI-10 Título Inicio sesión evaluador Prioridad Smoke Versión 3.0 GIVEN: El usuario está en el menú principal de la aplicación El usuario tiene seleccionado el rol evaluador (3.80 e 3.82) Introduce el nombre, el identificador de la lista, la contraseña de la lista y el identificador de la sesión correctos. WHEN: Presiona sobre el botón de inicio de sesión THEN: El usuario será redirigido a la vista de evaluación para la lista y sesión indicadas. Y habrá iniciado sesión correctamente. Tabla 3.86: TC INI-10 - Inicio sesión evaluador IdentificadorTC INI-11 Título Error al introducir nombre que no corresponde al rol seleccionado Prioridad Full Sanity Versión 3.0 GIVEN: El usuario está en el menú principal de la aplicación. El usuario tiene seleccionado un rol que no le corresponde al nombre introducido. WHEN: Presiona sobre el botón de inicio de sesión THEN: El usuario será informado de que el nombre que ha introducido no corresponde con el rol seleccionado. No iniciará sesión. Tabla 3.87: TC INI-11 - Error al introducir nombre que no corresponde al rol seleccionado IdentificadorTC INI-12 Título Error al introducir contraseña incorrecta para el administrador Prioridad Regression Versión 3.0 GIVEN: El usuario está en el menú principal de la aplicación El usuario tiene seleccionado el rol administrador Introduce un nombre de un usuario con rol administrador Introduce una contraseña incorrecta para ese usuario WHEN: Presiona sobre el botón de inicio de sesión THEN: El usuario será informado de que la contraseña que ha introducido no es correcta. No iniciará sesión. Tabla 3.88: TC INI-12 - Error al introducir contraseña incorrecta para el administrador 89
3.6. Iteración 5 IdentificadorTC INI-13 Título Error al introducir lista o contraseña incorrecta Prioridad Regression Versión 3.0 GIVEN: El usuario está en el menú principal de la aplicación El usuario tiene seleccionado un rol evaluador o locutor (3.80) Introduce un nombre de un usuario con el rol correspondiente Introduce un identificador de lista o contraseña incorrecta para esa lista WHEN: Presiona sobre el botón de inicio de sesión THEN: El usuario será informado de que la lista o la contraseña que ha introducido no es correcta. No iniciará sesión. Tabla 3.89: TC INI-13 - Error al introducir lista o contraseña incorrecta IdentificadorTC INI-14 Título Error al introducir una sesión inválida para la lista seleccionada Prioridad Regression Versión 3.0 GIVEN: El usuario está en el menú principal de la aplicación. El usuario tiene seleccionado un rol evaluador (3.80 y 3.82) Introduce un nombre de un usuario con rol evaluador Introduce un identificador de lista y contraseña correctas. Introduce un identificador de sesión incorrecto para esa lista. WHEN: Presiona sobre el botón de inicio de sesión THEN: El usuario será informado de que la sesión que ha introducido no es correcta para la lista seleccionada. No iniciará sesión. Tabla 3.90: TC INI-14 - Error al introducir una sesión inválida para la lista seleccionada IdentificadorTC INI-15 Título Error al no introducir alguno de los campos solicitados Prioridad Regression Versión 3.0 GIVEN: El usuario está en el menú principal de la aplicación El usuario tiene seleccionado un rol cualquiera No introduce alguno de los campos necesarios para el rol seleccionado. WHEN: Presiona sobre el botón de inicio de sesión. THEN: El usuario será informado de que debe introducir el campo que falta No iniciará sesión. Tabla 3.91: TC INI-15 - Error al no introducir alguno de los campos solicitados 90
Descripción de las Iteraciones IdentificadorTC EVA-01 Título Comprobación vista evaluación Prioridad Smoke Versión 3.0 GIVEN: Usuario de rol evaluador Realizó un inicio de sesión satisfactorio. WHEN: El usuario acaba de acceder a la vista de evaluación (3.86). THEN: El identificador de la lista y la sesión seleccionados se mostrarán. El título de la lista se mostrará junto al texto ”Evaluación:” El texto opcional del evaluador se mostrará debajo del nombre de la lista si existe El elemento evaluable que se está evaluando se mostrará Una lista de grabaciones se mostrará El botón de cerrar sesión se desplegará en la esquina superior izquierda. Tabla 3.92: TC EVA-01 - Comprobación vista de evaluación IdentificadorTC EVA-02 Título Locución no se mostrará en la lista si no existe Prioridad Full Sanity Versión 3.0 GIVEN: Usuario de rol evaluador Realizó un inicio de sesión satisfactorio Se encuentra en la vista de evaluación WHEN: Pasa a un elemento evaluable sin locución THEN: Se mostrará un mensaje de advertencia de que no hay locución para ese elemento evaluable Un botón de ir al siguiente elemento se mostrará. Tabla 3.93: TC EVA-02 - Locución no se mostrará en la lista si no existe 91
3.6. Iteración 5 IdentificadorTC EVA-03 Título Locución se muestra en la lista si existe Prioridad Basic Sanity Versión 3.0 GIVEN: Usuario de rol evaluador Realizó un inicio de sesión satisfactorio Se encuentra en la vista de evaluación WHEN: Pasa a un elemento evaluable con locución THEN: Se mostrará un un reproductor de audio para la locución Se mostrará la fecha de locución. Se mostrará los métodos de evaluación para ese elemento evaluable en la lista seleccionada Un botón de continuar se mostrará. Tabla 3.94: TC EVA-03 - Locución se muestra en la lista si existe IdentificadorTC EVA-04 Título Locución se puede reproducir Prioridad Smoke Versión 3.0 GIVEN: Usuario de rol evaluador Realizó un inicio de sesión satisfactorio Se encuentra en la vista de evaluación Se encuentra en un elemento evaluable que tiene locución para la sesión. (3.94) WHEN: Presiona sobre el botón de reproducción del elemento evaluable THEN: El usuario podrá escuchar la locución del elemento evaluable para esa sesión. Tabla 3.95: TC EVA-04 - Locución se puede reproducir 92
Descripción de las Iteraciones IdentificadorTC EVA-05 Título Envío de la evaluación de un elemento que no es el último de la lista Prioridad Basic Sanity Versión 3.0 GIVEN: Usuario de rol evaluador Realizó un inicio de sesión satisfactorio Se encuentra en la vista de evaluación Se encuentra en un elemento evaluable que tiene locución para la sesión. (3.94) WHEN: Inserta las evaluaciones de la locución para todos los métodos de evaluación y opcionalmente un comentario. Presiona sobre el botón de continuar THEN: La evaluación sera registrada El siguiente elemento evaluable aparecerá para evaluar. Tabla 3.96: TC EVA-05 - Envío de la evaluación de un elemento que no es el último de la lista IdentificadorTC EVA-06 Título Ir al siguiente elemento evaluable en elemento sin locución Prioridad Regression Versión 3.0 GIVEN: Usuario de rol evaluador Realizó un inicio de sesión satisfactorio Se encuentra en la vista de evaluación Se encuentra en un elemento evaluable que NO tiene locución para la sesión. (3.93) WHEN: Presiona sobre el botón de Siguiente THEN: El siguiente elemento evaluable aparecerá para evaluar. Tabla 3.97: TC EVA-06 - Ir al siguiente elemento evaluable en elemento sin locución 93
3.6. Iteración 5 3.6.6. Estados de los errores pasados Sólo se van a realizar las ejecuciones de los errores correspondientes a casos de prueba que no sean Smoke, ya que los Smoke ya se han realizado en el apartado de Pruebas realizadas en la iteración 5 (3.6.4). Identificador Locutor no es enviado al inicio al fin de una sesión IdentificadorTC LOC-07 Severidad MENOR Estado CERRADO Versión Afectada 1.0 Versión Resuelta 2.0 Resultado esperado El usuario será redirigido al menú principal. La sesión del usuario se cerrará Resultado detectado El usuario se mantiene en la vista de locución y su sesión sigue abierta Tabla 3.112: Error 01 del TC LOC-07. Identificador Campo contraseña se muestra cuando el rol es locutor IdentificadorTC REG-03 Estado CERRADO Versión Afectada 2.0 Versión Resuelta 3.0 Resultado esperado Debajo del campo de texto del nombre NO aparecerá un campo de texto de contraseña. Resultado detectado Debajo del campo de texto del nombre aparece un campo de texto para la contraseña del nuevo usuario locutor. Tabla 3.113: Error 01 del TC REG-03. Identificador Campo contraseña se muestra cuando el rol es evaluador IdentificadorTC REG-03 Severidad MAYOR Estado CERRADO Versión Afectada 2.0 Versión Resuelta 3.0 Resultado esperado Debajo del campo de texto del nombre NO aparecerá un campo de texto de contraseña. Resultado detectado Debajo del campo de texto del nombre aparece un campo de texto para la contraseña del nuevo usuario locutor. Tabla 3.114: Error 02 del TC REG-03. Nueva ejecución: 100
Descripción de las Iteraciones IdentificadorEjecucion Ejecucion2-REG-03. IdentificadorTC REG-03. Versión 3.0 Resultado Éxito Tabla 3.115: Ejecución 2 del TC REG-03: No mostrar campo contraseña si el rol no es administrador. Identificador Se puede guardar un elemento evaluable sin ningún método de evaluación IdentificadorTC LIS-03 Severidad MAYOR Estado CERRADO Versión Afectada 2.0 Versión Resuelta 3.0 Resultado esperado El sistema avisará al usuario de que debe añadir al menos un método de evaluación para el elemento evaluable. El elemento evaluable NO se guardará en la lista de elementos. Resultado detectado El sistema no avista al usuario de que debe añadir al menos un método de evaluación El elemento evaluable se guarda en la lista de elementos. Tabla 3.116: Error 01 del TC LIS-03. Nueva ejecución: IdentificadorEjecucion Ejecucion2-LIS-03. IdentificadorTC LIS-03. Versión 3.0 Resultado Éxito Tabla 3.117: Ejecución 2 del TC LIS-03: No se puede guardar un elemento evaluable si no se ha introducido al menos un método de evaluación. Identificador El botón de eliminar un único método de evaluación elimina todos los métodos de la lista. IdentificadorTC LIS-05 Severidad MENOR Estado CERRADO Versión Afectada 2.0 Versión Resuelta 3.0 Resultado esperado El último método de evaluación será suprimido de la lista. Resultado detectado Todos los métodos de evaluación de la lista son suprimidos. Tabla 3.118: Error 01 del TC LIS-05. 101
3.6. Iteración 5 Nueva ejecución: IdentificadorEjecucion Ejecucion2-LIS-05. IdentificadorTC LIS-05. Versión 3.0 Resultado Éxito Tabla 3.119: Ejecución 2 del TC LIS-05: Eliminar el último método de evaluación añadido. Identificador Se puede guardar una nueva lista sin ningún elemento añadido previamente IdentificadorTC LIS-09 Severidad MAYOR Estado CERRADO Versión Afectada 2.0 Versión Resuelta 3.0 Resultado esperado El sistema notificará al usuario administrador de que no puede crear una lista de elementos evaluables vacía La lista de elementos evaluables no se creará. Resultado detectado El sistema NO notifica al usuario administrador de que no puede crear una lista de elementos evaluables vacía La lista de elementos evaluables se crea. Tabla 3.120: Error 01 del TC LIS-09. Nueva ejecución: IdentificadorEjecucion Ejecucion2-LIS-09. IdentificadorTC LIS-09. Versión 3.0 Resultado Éxito Tabla 3.121: Ejecución 2 del TC LIS-09: No se puede guardar una nueva lista sin ningún elemento añadido a la lista. 102
Descripción de las Iteraciones Identificador Cambiar el selector de listas no actualiza el selector de sesiones para esa lista IdentificadorTC GES-04 Severidad MAYOR Estado CERRADO Versión Afectada 2.0 Versión Resuelta 3.0 Resultado esperado El selector de sesiones se actualizará con las sesiones correspondientes a esa lista. Resultado detectado El selector de sesiones NO se actualiza con las sesiones correspondientes a esa lista, se queda con las sesiones de la lista anterior. Tabla 3.122: Error 01 del TC GES-04. Nueva ejecución: IdentificadorEjecucion Ejecucion2-GES-04. IdentificadorTC GES-04. Versión 3.0 Resultado Éxito Tabla 3.123: Ejecución 2 del TC GES-04: Cambio de lista con sesiones de locución. 103
3.6.7. Product Backlog y Sprint Backlog al final del Sprint Figura 3.22: Product Backlog y Sprint Backlog al final de la quinta iteración.
3.7. Iteración 6 3.7.1. Product Backlog y Sprint Backlog al comienzo del Sprint Figura 3.23: Product Backlog y Sprint Backlog al comienzo de la última iteración. En esta última iteración se ha llevado a cabo el montaje y despliegue de la aplicación en el servidor. Los pasos que se han seguido para el despliegue y la instalación de todas las herramientas necesarias para el funcionamiento del servidor se encuentran en el capítulo C por lo que no aportará más información sobre el tema del servidor en esta sección. Sin embargo en esta iteración si se va a hacer una batería de pruebas de nivel ”Basic Sanity” para todas las configuraciones de la aplicación, esto sería realizar todos los casos de prueba de niveles Smoke y Basic Sanity de las anteriores configuraciones. El objetivo de esta última iteración es la de detectar el mayor número de errores posibles y cerrarlos. Además de esto se añadirán nuevas funcionalidades pequeñas a la aplicación para que las evaluaciones sean más peronalizables, en vez de haber dos evaluaciones dicotómicas de ”bien” y ”mal”, el usuario administrador podrá incluir los nombres de las dos opciones que desee. También se incluirán dos campos de ”Significado de las evaluaciones”, en la evaluación por rango en la que el administrador podrá incluir el significado del mínimo valor y del máximo. Adicionalmente, se implementará una evaluación de ”Todas las sesiones” en la que el usuario podrá evaluar todas las sesiones de una lista de elementos a la vez. Asimismo, se llevará a cabo un método de eliminación de listas de elementos evaluables desde el menú de gestión de sesiones y listas. Para incluir una mayor seguridad del sistema, se ha decidido encriptar las contraseñas de los usuarios Administrador con MD5, esto se ha incluido también en esta última iteración.
3.7. Iteración 6 3.7.2. Casos de prueba definidos IdentificadorTC GES-16 Título Eliminar lista de elementos evaluables Prioridad Basic Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio. Se encuentra en la ventana de gestión de sesiones Se encuentra con una lista seleccionada WHEN: Presiona sobre el botón de eliminación de lista de elementos evaluables Confirma el mensaje de eliminación THEN: Todas los elementos evaluables de esa lista serán eliminados junto con la misma lista. Se le notificará al usuario del borrado y se refrescará la página. Tabla 3.124: TC GES-16 - Eliminar lista de elementos evaluables IdentificadorTC GES-17 Título Cancelación del borrado de lista evaluable Prioridad Full Sanity Versión 2.0 GIVEN: Usuario de rol administrador Realizó un inicio de sesión satisfactorio. Se encuentra en la ventana de gestión de sesiones Se encuentra son una lista seleccionada WHEN: Presiona sobre el botón de eliminación de lista de elementos evaluables Cancela el mensaje de eliminación THEN: La lista evaluable y todos sus elementos evaluables no se eliminarán Tabla 3.125: TC GES-17 - Cancelación del borrado de lista evaluable 106
Descripción de las Iteraciones IdentificadorTC INI-16 Título Inicio sesión evaluador con todas las sesiones Prioridad Smoke Versión 4.0 GIVEN: El usuario está en el menú principal de la aplicación El usuario tiene seleccionado el rol evaluador (3.80 e 3.82) Introdujo el nombre, el identificador de la lista, la contraseña de la lista y presionó sobre el botón de ”Todas las sesiones”. WHEN: Presiona sobre el botón de inicio de sesión THEN: El usuario será redirigido a la vista de evaluación para la lista y sesión indicadas. Y habrá iniciado sesión correctamente. Tabla 3.126: TC INI-16 - Inicio sesión evaluador con todas las sesiones IdentificadorTC EVA-11 Título Envío de la evaluación del último elemento de la lista en una sesión que no es la última Prioridad Basic Sanity Versión 4.0 GIVEN: Usuario de rol evaluador Realizó un inicio de sesión satisfactorio para evaluar todas las sesiones (3.126) Se encuentra en la vista de evaluación Se encuentra en un elemento evaluable que tiene locución para la sesión y es el último de la lista, pero no de la última sesión. (3.94) WHEN: Inserta las evaluaciones de la locución para todos los métodos de evaluación y opcionalmente un comentario. Presiona sobre el botón de continuar THEN: La evaluación sera registrada El primer elemento de la lista será mostrado para la siguiente sesión de locución Tabla 3.127: TC EVA-11 - Envío de la evaluación del último elemento de la lista en una sesión que no es la última 107
3.7. Iteración 6 IdentificadorTC EVA-12 Título Envío de la evaluación del último elemento de la lista en la última sesión Prioridad Regression Versión 4.0 GIVEN: Usuario de rol evaluador Realizó un inicio de sesión satisfactorio para evaluar todas las sesiones (3.126) Se encuentra en la vista de evaluación Se encuentra en un elemento evaluable que tiene locución para la sesión y es el último de la lista y de última sesión. (3.94) WHEN: Presiona sobre el botón de Siguiente THEN: El usuario será informado de que ha acabado con todos los elementos evaluables de la lista Junto con ese mensaje aparecerá un botón de ”Aceptar”. Tabla 3.128: TC EVA-12 - Envío de la evaluación del último elemento de la lista en la última sesión IdentificadorTC EVA-13 Título Ir a la siguiente sesión desde último elemento de la lista sin locución en una sesión que no es la última Prioridad Basic Sanity Versión 4.0 GIVEN: Usuario de rol evaluador Realizó un inicio de sesión satisfactorio para evaluar todas las sesiones (3.126) Se encuentra en la vista de evaluación Se encuentra en un elemento evaluable que NO tiene locución para la sesión y es el último de la lista, pero no de la última sesión. (3.93) WHEN: Presiona sobre el botón siguiente. THEN: El primer elemento de la lista será mostrado para la siguiente sesión de locución Tabla 3.129: TC EVA-13 - Ir a la siguiente sesión desde último elemento de la lista en una sesión que no es la última 108
Descripción de las Iteraciones IdentificadorTC EVA-14 Título Fin de las evaluaciones desde último elemento de la lista sin locución en una sesión que no es la última Prioridad Regression Versión 4.0 GIVEN: Usuario de rol evaluador Realizó un inicio de sesión satisfactorio para evaluar todas las sesiones (3.126) Se encuentra en la vista de evaluación Se encuentra en un elemento evaluable que NO tiene locución para la sesión y es el último de la lista y de última sesión. (3.93) WHEN: Presiona sobre el botón de Siguiente THEN: El usuario será informado de que ha acabado con todos los elementos evaluables de la lista y de la sesión Junto con ese mensaje aparecerá un botón de ”Aceptar”. Tabla 3.130: TC EVA-14 - Envío de la evaluación del último elemento de la lista en la última sesión Modificación del caso de prueba EVA-08 3.99: IdentificadorTC EVA-08 Título Envío al menú de inicio una vez se finalizan las evaluaciones Prioridad Full Sanity Versión 4.0 GIVEN: Usuario de rol evaluador Realizó un inicio de sesión satisfactorio Se encuentra con un mensaje de fin de la evaluación (3.98 o 3.130). WHEN: Presiona sobre el botón de Aceptar. THEN: El usuario será redirigido al menú principal La sesión del usuario habrá finalizado. Tabla 3.131: TC EVA-08 - Envío al menú de inicio una vez se finalizan las evaluaciones 3.7.3. Pruebas realizadas Las pruebas realizadas en esta iteración se encuentran en la sección B.4 del apéndice B. 3.7.4. Errores detectados Los errores detectados por las ejecuciones de la sección anterior son los siguientes: 109
4.1. Patrones de diseño y diagramas de análisis donde se encuentran los ficheros temporales exportados de la aplicación. También podemos diferenciar la capa ”src” donde se encuentra el código de la aplicación, dentro de ella podemos apreciar la capa ”css” que contiene código en lenguaje css para la visualización de la web, la capa ”data_base_access” con el código de acceso a la base de datos, y por último la capa ”lib” donde se encuentran las librerías externas que se han usado. Figura 4.1: Arquitectura por capas del servidor. 4.1.2. Patrones de diseño 4.1.2.1. Patrón de diseño Web visual Al inicio del desarrollo de toda aplicación se debe definir un patrón de diseño para la visualización de la misma, al encontrarnos ante una aplicación web se plantean uno de los siguientes patrones de visualización de los elementos de la web: Patrón de diseño web de ancho fijo: Se trata de una técnica de diseño web por la que el contenido se ajusta a un ancho determinado y crece únicamente de manera vertical. Es lo más habitual, y por tanto, considerado un estándar bien soportado incluso por dispositivos de pantalla pequeña (móviles, tabletas, etc), cuyos navegadores detectan este patrón y permiten ampliar por áreas la página presentada. Patrón de diseño web líquido o fluido: El contenido ocupa todo el área visual disponible según 116
Diseño el tamaño de pantalla y las dimensiones de la ventana del navegador. Suele usarse para implementar herramientas accesibles a través de web. El diseño líquido tiene un impacto visual más limitado dado que por definición las proporciones de los elementos que lo componen son variables, abriendo necesariamente espacios vacíos entre ellos, la usabilidad se ve muy perjudicada y representa un fallo de ergonometría que afecta negativamente a la experiencia de usuario. Patrón de diseño web híbrido: Combinación de áreas con ancho fijo y otras con ancho variable. El resultado final es como una web de diseño líquido que conserva las proporciones en algunas áreas. Patrón de diseño web adaptativo, adaptable o adaptive:Usa plantillas estáticas basadas en puntos de quiebre. Cuando la pantalla alcanza cierto límite de tamaño, se cambia a otro diseño. Es un patrón que se suele usar mucho para adaptaciones a Patrón de diseño web responsivo o Responsive web design: En el responsive web design el diseño y el contenido se adaptan a cada pantalla, entregando una experiencia de usuario muy similar en resoluciones bajas, altas o en formatos de distintas pulgadas. Los contenidos se ordenan en bloques que se reorganizan según las características de la pantalla y el navegador que se utiliza. Al inicio del proceso de diseño de la aplicación se decidió usar un patrón de diseño web responsivo, sin embargo en la etapa de desarrollo de la aplicación se decidió cambiar a un patrón de diseño web ajustable de ancho fijo en el contenido, esto es, un diseño adaptable en cuanto al fondo de la aplicación, pero fijo en el contenido de la misma. Se ha optado finalmente por este patrón debido a la comodidad del mismo y el buen ajuste que tiene este patrón con una aplicación basada en el envío de formularios. 4.1.2.2. Patrón de diseño de traspaso de información Todas las aplicaciones web tienen dos objetivos básicos: Poder obtener información enviada por el usuario desde un navegador. Mostrar resultados obtenidos por el procesado de la información anterior. Esto se consigue mediante los métodos HTTP POST y GET. Para el envío de información importante desde el navegador al servidor es necesario utilizar el método POST, para que los datos viajen junto a las cabeceras de la petición HTTP y no en la URL. El problema reside cuando una página se ha generado de forma dinámica (por ejemplo, el envío de un formulario) dependiendo de los datos enviados por POST y ocurre alguna de las siguientes situaciones: Se recarga la página utilizando el botón de recarga del navegador o F5. Se usa el botón de ir a la página anterior y seguidamente usar el botón de ir a la página siguiente. 117
4.1. Patrones de diseño y diagramas de análisis Si no se tienen en cuenta estas situaciones el resultado es el reenvío de todos los datos para obtener nuevamente la página mencionada y por lo tanto el procesado de los mismos nuevamente, esto puede provocar un nuevo almacenado de datos en bases de datos, un error al intentar sobrescribir sobre un elemento ya existente en la misma, o otro inicio de sesión. Para solucionar esto se ha decidido usar un patrón de diseño de traspaso de la información POST/- Redirect/GET al realizar un inicio de sesión en la aplicación, este patrón esta representado en la figura 4.2 Figura 4.2: Patrón POST/Redirect/GET, Fuente: [43] El patrón POST/Redirect/GET consiste en la separación del fragmento de código que genera el formulario de envío de datos (El envío del formulario) y el fragmento de código que procesa los datos recibidos por dicho formulario. Y finalmente que este último realice una redirección GET inmediatamente después del procesado. Ya sea al fragmento de código que muestra la página tras procesado exitoso o nuevamente al fragmento de código que crea el formulario (normalmente por datos erróneos ). De esta manera cuando se recargue la página actual (respuesta al envió correcto de datos) se está realizando una petición GET. La cual no lleva datos del usuario incorporados en la petición. Y si estamos en la página de respuesta por envió correcto de datos, al presionar el botón ’atrás’ el navegador retornará a la página con el formulario. 118
Diseño 4.1.2.3. Patrón de acceso a la base de datos Para la conexión de la web con la base de datos se ha optado por un patrón Petición asíncrona de datos mostrado en la figura 4.3 en el cual se realiza un método POST a un script PHP añadiendo a la cabecera de la petición los parámetros que se usarán en la consulta SQL. En el script PHP se realizará la consulta con los parámetros recibidos y devolverá la respuesta asíncronamente a la aplicación. Es importante que la petición POST sea asíncrona porque para continuar con las funcionalidades de la aplicación se precisa de la respuesta de la consulta. Figura 4.3: Patrón petición asíncrona de datos. 4.1.2.4. Patrón de seguridad Para reforzar la seguridad de la aplicación y evitar que usuario que no han iniciado sesión accedan a las funcionalidades de la misma, se ha optado por usar un patrón de seguridad de Token de acceso temporal para cada usuario, este patrón está representado en la figura 4.4 y consiste en lo siguiente: Cada vez que un usuario inicia sesión, se genera para ese usuario un código alfanúmero de 16 caracteres, ese código se almacena en la base de datos junto con el identificador del usuario que ha iniciado sesión. Antes de cargar cualquier vista de la aplicación (Que no sea la de inicio de sesión), se realiza una comprobación de si el token recibido en la cabecera de la redirección con POST hace JOIN con el token que hay en la base de datos, en el caso de que el usuario haya iniciado sesión correctamente el token se habrá creado en ese mismo instante por lo que podrá navegar sin problema por todas las vistas a las que ese usuario tenga acceso, sin embargo si el usuario intenta acceder a la vista con un token inválido (El de otro usuario, o uno inventado), ese Token de acceso no hará JOIN con el Token que hay almacenado en la base de datos para ese usuario y por tanto no podrá acceder a esa vista. Para añadir una mayor seguridad se ha decidido añadir una fecha de creación del Token de acceso, de tal manera que en cada vista de la aplicación no sólo se compruebe si el Token de acceso hace JOIN con el que hay en la base de datos para el usuario sino que también comprueba si el tiempo de creación del Token y la fecha actual difieren menos de 20 minutos, si la diferencia es mayor, el usuario 119
4.2. Diagramas de diseño no podrá acceder a la vista y tendrá que volver a iniciar sesión. Además de esto, para evitar suplantaciones de identidad, cuando un usuario cierra sesión manualmente desde cualquiera de las vistas loggadas de la aplicación, se eliminará el registro del token de acceso para el usuario que ha cerrado sesión, de tal manera que ese token queda totalmente invalidado. Figura 4.4: Acceso seguro a la aplicación mediante tokens de acceso. 4.2. Diagramas de diseño 4.2.1. Diagramas de paquetes En el diagrama de la figura 4.5 se muestra la arquitectura lógica de la aplicación, el paquete WebUI es ficticio, su finalidad es meramente indicativa de que los paquetes reales que tiene en su interior poseen en su conjunto dependencias a otros paquetes. En el se pueden observar las conexiones entre todas las vistas de la aplicación (WebUI) con el paquete de error, el paquete css y el paquete de locuciones, esto es debido a que todas las vistas utilizan de una u otra manera las funcionalidades que esos paquetes aportan. También se puede ver la relación de dependencia de las vistas con el paquete ”lib” que está constituido por las dos librerías externas que usa la aplicación: recorder.js y jquery.js, la 120
Diseño primera de ellas se utiliza para la grabación de las locuciones y la segunda para agregar interactividad a las vistas. Adicionalmente el paquete ”GestionarSesioes” está conectado con el paquete ”files” puesto que es donde se almacenan las exportaciones que se realizan desde la vista de gestión de sesiones. Figura 4.5: Diagrama de paquetes. 4.2.2. Modelo de la base de datos En la figura 4.6 se muestra el diagrama del modelo de la base de datos SQL de la aplicación, este modelo es un tipo de modelo de datos que determina la estructura lógica de una base de datos y de manera fundamental determina el modo de almacenar, organizar y manipular los datos. Existen diversos tipos de modelos de base de datos, el más útil y descriptivo es el entidad-relación, este está compuesto de entidades (Las tablas) que están relacionadas con otras entidades, dos fases para la creación de un diagrama Entidad-Relación: Se elabora el diagrama (o diagramas) entidad-relación. Se completa el modelo con listas de atributos y una descripción de otras restricciones que no se pueden reflejar en el diagrama. 121
4.2. Diagramas de diseño Figura 4.6: Modelo de la base de datos. 4.2.3. Mapa web de la aplicación A continuación, en las figuras 4.7 y 4.8 se pueden observar el mapa web de la aplicación. Como se ha explicado en las historias de usuario, cualquier usuario puede acceder al menú principal, y desde el mismo se podrá acceder a las vistas de locución, evaluación y al menú de administrador. Desde la vista de locución el usuario locutor podrá volver de nuevo a la vista del menú principal cerrando la sesión, lo mismo con la vista de evaluación y con la vista del menú de administrador. Un usuario administrador puede registrar un nuevo usuario yendo a la vista de registro desde el menú de administrador. También podrá crear nuevas listas de elementos evaluables yendo a la vista de ”Crear nueva lista” y por último gestionar las listas de elementos evaluables y sus locuciones yendo a la vista de 00Gestión de sesiones y listas”. Los locutores podrán realizar las locuciones de los elementos evaluables creados por los administradores desde la vista de ”Locución”, y los evaluadores acceden a las locuciones grabadas por los locutores desde la vista de ”Evaluación”, y tanto Locutor como Evaluador vuelven al ”Menú Principal” una vez finalizar una sesión de locución y evaluación respectivamente. 122
Diseño Figura 4.7: Mapa web 1. 123
4.2. Diagramas de diseño Figura 4.8: Mapa web 2. 124
4.2.4. Diagramas de clases de diseño A continuación, en las figuras 4.9 se muestran los diagramas de clases de diseño de la aplicación, descompuesto en varios para una mejor comprensión de los mismos, en estos diagramas se detallan las iteraciones entre las clases. Figura 4.9: Diagramas de clases de diseño para el inicio de sesión.