Gestor de stints para carreras en simuladores (MyRacingManager)
Abstract
Grado en Ingeniería Informática de Servicios y Aplicaciones
Full text
ESCUELA DE INGENIERÍA INFORMÁTICA (SEGOVIA) Grado en Ingeniería Informática de Servicios y Aplicaciones Gestor de stints para carreras en simuladores (MyRacingManager) Alumno: Sergio Hernando Mateo Tutor: José Vicente Álvarez Bravo
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 1
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. “The winner ain’t the one with the fastest car, it’s the one who refuses to lose” -Dale Earnhardt “You miss 100% of the shots you don’t take” -Wayne Gretzky 2
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 3
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Agradecimientos A mi tutor José Vicente por el tiempo invertido en apoyarme en la realización de este proyecto. A mi familia, por mostrarme día a día que si te esfuerzas, puedes conseguir todo lo que te propongas. A mis amigos y compañeros de carrera, por todos los grandes momentos que hemos vivido y viviremos. Y en especial a Carlos, compañero de fatigas durante toda la carrera y sin el cual, probablemente, no estaría escribiendo estas palabras. A todos, muchas gracias. 4
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 5
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Resumen El objetivo de este proyecto es el desarrollo de una aplicación informática que permita la gestión de los stints realizados en carreras de simulación online. Esta aplicación permitirá la gestión que van a llevar a cabo tanto los equipos formados por los diferentes pilotos, como los stints que realizará cada piloto en el transcurso de una carrera virtual. Palabras clave: stint/s, gestión, piloto, equipo, carrera virtual. Abstract This project’s objective is developing a desktop application that allows the user to manage the stints done by a driver on an online simulation race. This application will allow team management, as well as the stint management for online races. Key words: stint/s, management, driver, team, online race. 6
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 7
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Índice Agradecimientos 4 Resumen 6 Abstract 6 Índice 8 Índice de tablas 12 Índice de figuras 15 Capítulo 1: Introducción 17 Motivación 20 Objetivos y alcance 20 Árbol de características 22 Estado del arte 23 JRT (Joel Real Timing) (iRacing) 23 Hoja Excel (iRacing) 24 McLaren ATLAS (McLaren) 24 Pi ToolBox (Cosworth) 25 Entorno tecnológico 26 Visual Studio 26 GitHub 26 NuGet 26 WPF (Windows Presentation Foundation) 27 SQLite 27 SQLite Browser 27 C# (C Sharp) 27 XAML (eXtensible Application Markup Language) 28 Extended WPF Toolkit (Librería) 28 Selenium WebDriver 28 Usuarios de la aplicación 29 Piloto de iRacing 29 Piloto de simulación 29 Estrategas 29 Jefes de equipo 29 Fan de carreras en general 29 Organización del documento 30 Contenido del CD-ROM 31 8
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Índice de figuras Figura 1: Variación de ingresos y audiencia en los e-Sports 19 Figura 2: Max Verstappen corriendo en iRacing 20 Figura 3: Rubens Barrichello posa para una foto en twitter 20 Figura 4: Árbol de características 23 Figura 5: Imagen de la pantalla del JRT en acción 24 Figura 6: Imagen calculador de datos excel 25 Figura 7: Imagen del visor de horarios de excel 25 Figura 8: Imagen de una de las aplicaciones de ATLAS 25 Figura 9: Imagen de una de las herramientas de Pi ToolBox 26 Figura 10: Logo Visual Studio 27 Figura 11: Logo GitHub 27 Figura 12: Logo NuGet 27 Figura 13: Logo WPF 28 Figura 14: Logo SQLite 28 Figura 15: Logo SQLite Browser 28 Figura 16: Logo C# 28 Figura 17: Logo XAML 29 Figura 18: Logo Xceed 29 Figura 19: Logo Selenium 29 Figura 20: Esquema de desarrollo de una aplicación ágil 35 Figura 21: Diagrama de Gantt planificación 42 Figura 22: Diagrama de casos de uso gestión de pilotos 88 Figura 23: Diagrama de casos de uso gestión de equipos 89 Figura 24: Diagrama de casos de uso gestión de eventos 89 Figura 25: Diagrama de casos de uso gestión de carreras 90 Figura 26: Diagrama casos de uso gestión de opciones 90 Figura 27: Arquitectura Lógica 93 Figura 28: Arquitectura Física 94 Figura 29: Diagrama de clases de presentación 95 Figura 30: Diagrama de clases de modelo 96 Figura 31: Diagrama de secuencia editar disponibilidad 97 Figura 32: Diagrama de secuencia guardar credenciales de iRacing 98 Figura 33: Diagrama de secuencia añadir piloto con ID 99 Figura 34: Diagrama Entidad-Relación 100 Figura 35: Diagrama relacional base de datos 101 Figura 36: Boceto pestaña Events 106 Figura 37: Boceto pestaña Drivers 107 Figura 38: Boceto pestaña Teams 108 Figura 39: Boceto pestaña Races 109 15
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Figura 40: Boceto pestaña Schedules 110 Figura 41: Boceto ventana Edit driver availability 111 Figura 42: Boceto ventana Add driver to team 112 Figura 43: Boceto ventana Error 113 Figura 44: Boceto ventana Add driver with ID 114 Figura 45: Boceto ventana Enter iRacing credentials 115 Figura 46: Boceto menu Options 116 Figura 47: Boceto ventana About 116 Figura 48: Boceto ventana Language Selection 117 Figura 49: Análisis página login iRacing.com 120 Figura 50: Jerarquía de elementos página membersite iRacing.com 121 Figura 51: Análisis página membersite iRacing.com 122 Figura 52: Algoritmo de creación de horarios 125 Figura 53: Algoritmo de elección entre colores de fuente 126 Figura 54: Pruebas de caja negra 129 Figura 55: Prueba creación de evento 130 Figura 56: Prueba creación de piloto sin ID 131 Figura 57: Prueba creación de piloto con ID 132 Figura 58: Prueba creación de equipo 133 Figura 59: Prueba adición de piloto a equipo 134 Figura 60: Prueba eliminación piloto de equipo 135 Figura 61: Prueba crear carrera 136 Figura 62: Prueba eliminar carrera 136 Figura 63: Prueba editar disponibilidad 137 Figura 64: Prueba cambiar idioma 138 Figura 65: Prueba guardar credenciales 139 Figura 66: Estructura de la carpeta “TFG_Sergio_Hernando_Mateo_SQLite” 141 Figura 67: Manual de cambio de idioma 145 Figura 68: Manual manual de información sobre el TFG 145 Figura 69: Manual de gestión de eventos 146 Figura 70: Manual de gestión de pilotos 147 Figura 71: Manual de búsqueda de piloto con ID 148 Figura 72: Manual de inserción de credenciales 148 Figura 73: Manual de gestión de equipos 149 Figura 74: Manual de añadir un piloto a equipo 150 Figura 75: Manual de gestión de carreras 151 Figura 76: Manual de gestión de horarios 151 Figura 77: Manual de edición de disponibilidad 152 16
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 1. Capítulo 1: Introducción 17
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Los e-sports, un término que se escucha mucho últimamente, sobre todo en los círculos de gente más joven, son aquellos videojuegos de carácter competitivo que se juegan de acuerdo a una serie de normativas estipuladas por los desarrolladores y/o entidades organizadoras de eventos. Figura 1. Variación de ingresos y audiencia de los e-Sports Existen muchos géneros de videojuegos en los que se pueden encontrar competiciones de e-Sports. Uno de los géneros con mayor crecimiento tanto en nuestro país como en el mundo es el conocido como simracing. El simracing reúne a todos los juegos competitivos que intentan crear una simulación virtual de carreras reales en las cuales pueden competir los jugadores respetando unas normas establecidas. Dentro de este género existen muchos títulos, desde los más conocidos como Gran Turismo o Forza Motorsport, hasta los menos como Richard Burns Rally o Nascar Racing 2003. Como reconoce Dom Duhan en la web www.motorsport.com en el articulo ”Insight: Why it’s time to take the Sim Racing business seriously?”, Los juegos de carreras tienen el poder de formar nuevos aficionados al automovilismo. De hecho, muchos jóvenes crecen jugando a los eSports sin seguir esas categorías del mundo real, no están interesados en el motorsport tradicional a través de las rutas tradicionales. Y dado que el automovilismo es un deporte que requiere una cantidad enorme de inversión incluso a nivel de karting, ¿por qué no entrar en el simracing? 18
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. El videojuego que representa el estándar a seguir por los e-sports en el simracing, es el conocido como iRacing. iRacing es un videojuego con un servicio de suscripción mensual, en el cual se reúnen todo tipo de aficionados al mundo del motor y las carreras para disfrutar de una experiencia de simulación lo más parecida posible a la de aquellos afortunados que la pueden tener de verdad. Con un “prizepool” de más de 500.000$ repartido entre diferentes competiciones, iRacing es considerado para muchos un simple pasatiempo, pero para otros, su forma de ingresos. iRacing también es considerado como una herramienta de entreno para muchos pilotos reales, gracias a su gran precisión en la simulación tanto de los coches como de los circuitos. Si participas en iRacing puedes competir con miles de jugadores de todas partes del mundo, incluyendo a pilotos de la talla de Max Verstappen (7 victorias en F1), Rubens Barrichello (11 victorias en F1) o Raffaele Marciello (Campeón de la F3 Europea y las GT Blancpain Series y Blancpain Sprint Series) entre otros. Figura 2. Max Verstappen corriendo en iRacing. Figura 3. Rubens Barrichello posa para una foto en twitter. Un competidor de iRacing tiene la oportunidad de participar en diferentes eventos, que representan carreras de resistencia virtuales, y que tienen lugar, normalmente, una semana antes de que estos se realicen en la vida real. Estos eventos van desde las prestigiosas 24 Horas de LeMans (Tercer fin de semana de Junio, Circuit de la Sarthe, Le Mans, Francia), hasta eventos no tan conocidos en el continente europeo como los Chilli Bowl Nationals (2 semanas después de Navidad, Tulsa Expo Center, Tulsa, Oklahoma, EEUU) o los 1000 Kilómetros de Bathurst (Segundo fin de semana de Octubre, Mount Panorama Circuit, Bathurst, Nueva Gales del Sur, Australia). En estos eventos de resistencia, dos o más pilotos se turnan el control de un mismo coche para conseguir ser los primeros en el momento que finaliza el tiempo establecido por la organización. Este tipo de carreras conllevan un enorme trabajo de gestión. Por desgracia, 19
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. los programas informáticos usados por los equipos profesionales para organizar los stints o turnos de los pilotos, la extracción de tiempos oficiales o la telemetría del coche, no están disponibles para el público en general y tampoco para los competidores de iRacing. 1.1. Motivación Atendiendo a lo expuesto anteriormente, en este TFG se presenta el desarrollo de MyRacingManager (MRM), una aplicación que permite a cualquier persona desempeñar el rol de jefe de un equipo de carreras, dándole la oportunidad de añadir pilotos, crear equipos y eventos, y crear y gestionar los turnos de conducción de dichos pilotos. De esta forma, se facilitará el acceso a todos aquellos que lo deseen, a una herramienta que les permita disfrutar de las experiencias de carreras de resistencia. 1.2. Objetivos y alcance El objetivo principal es el desarrollo de una aplicación de escritorio, que simplifique lo máximo posible todos los procesos de gestión de pilotos, equipos y eventos, y que presente una interfaz sencilla y amigable para el usuario. Un requisito a tener en cuenta a la hora de definir el alcance de la aplicación será el hecho de que el usuario final deberá tener un cierto conocimiento sobre el funcionamiento de una carrera de coches. En el Anexo I se facilita un glosario de términos utilizados en este proyecto que pueden ser confusos si no se está familiarizado con las carreras de coches de simulación. A continuación, en la tabla 01 se desglosa este objetivo principal en los siguientes objetivos específicos: ID Objetivo OBJ-01 El programa permitirá la gestión de pilotos. OBJ-02 El programa permitirá la gestión de equipos OBJ-03 El programa permitirá la gestión de eventos OBJ-04 El programa permitirá la gestión de carreras OBJ-05 El programa permitirá la gestión de horarios de pilotaje OBJ-06 El programa podrá ser usado por personas tanto hispanohablantes como angloparlantes Tabla 1. Tabla de objetivos En este sentido, y como complemento a los objetivos, se muestran las suposiciones (tabla 2) y las dependencias (tabla 3) que se han tenido en cuenta en la realización de este proyecto. Con respecto a las dependencias, decir que estas definen aspectos ajenos a la aplicación que pueden afectar a su rendimiento y su funcionamiento, y cuyos cambios no pueden ser controlados. 20
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. . ID Suposición SUP-1 Se supone que el usuario de la aplicación tiene un mínimo conocimiento sobre el funcionamiento y la gestión de carreras de resistencia Tabla 2. Tabla de suposiciones ID Dependencia DEP-1 La creación y extracción de datos de los pilotos desde la página de iRacing dependerá de que el árbol DOM de esta no cambie y esta esté disponible. Tabla 3. Tabla de dependencias 21
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 1.2.1. Árbol de características El árbol de características nos ayuda a representar las diferentes funcionalidades de nuestra aplicación e identificar las tareas relacionadas con estas. La figura a continuación (Figura 4) muestra el diagrama de características en el que se detallan las aspectos más relevantes de la aplicación: Figura 4. Árbol de características. 22
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. ●Gestión de eventos: Detalla las acciones que el usuario puede realizar respecto a los eventos. Permite crear, editar y eliminar un evento. ●Gestión de pilotos: Detalla las acciones que el usuario puede realizar respecto a los pilotos. Permite crear piloto sin ID, crear piloto con ID, editar piloto y eliminar piloto. ●Gestión de equipos: Detalla las acciones que el usuario puede realizar respecto a los equipos. Permite crear, editar y eliminar un equipo, así como a su vez añadir y eliminar pilotos de dicho equipo. ●Gestión de carreras: Detalla las acciones que el usuario puede realizar respecto a las carreras. Permite crear, editar y eliminar una carrera. ●Gestión de horarios: Detalla las acciones que el usuario puede realizar respecto a los horarios. Permite generar y editar horarios, a la vez que editar la disponibilidad de los pilotos que participan en una carrera. ●Gestión de credenciales de iRacing: Detalla las acciones que el usuario puede realizar respecto a sus credenciales de inicio de sesión de iRacing. Permite insertar y eliminar las credenciales. 1.3. Estado del arte A día de hoy no existe una aplicación software para iRacing que cumpla con los objetivos señalados con anterioridad. Sin embargo, sí que existen herramientas que permiten una gestión parcial que nos pueden servir para contextualizar nuestro proyecto. A continuación se describen las más importantes. 1.3.1. JRT (Joel Real Timing) (iRacing) JRT es una aplicación desarrollada por Joel Guez, miembro de la comunidad de iRacing, que permite ver el estado de la carrera en tiempo real a través de un navegador web. Ofrece opciones como la visualización del mapa del circuito o la realización capturas de pantalla. Figura 5. Imagen de la pantalla del JRT en acción. 23
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 1.3.2. Hoja Excel (iRacing) Hoja de Excel creada por un miembro de la comunidad de iRacing que permite la creación y compartición de horarios de pilotaje manualmente. Figura 6. Imagen del calculador de datos excel. Figura 7. Imagen del visor de horarios de la hoja excel. 1.3.3. McLaren ATLAS (McLaren) ATLAS es un paquete software creado para obtener, mostrar y analizar los datos obtenidos de sistemas de seguimiento de datos utilizados en el mundo de los deportes de motor. Creado, licenciado y mantenido por McLaren Applied Technologies. Usado por ingenieros en carreras reales. Figura 8. Imagen de una de las aplicaciones de ATLAS. 24
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. ●Capítulo 8: Manuales de usuario: Capítulo dedicado a dar las instrucciones de como usar la aplicación y se dan consejos y advertencias sobre las consecuencias de las acciones del usuario. ●Capítulo 9: Conclusiones y futuras mejoras: En este capítulo se exponen las conclusiones a las que se ha llegado durante la realización de este trabajo de fin de grado. Se exponen las futuras mejoras que se podrían aplicar al proyecto en un futuro, tanto cercano como lejano. ●Bibliografía y Webgrafía: En este apartado se muestran los elementos bibliográficos usados para obtener información útil para la realización del proyecto, así como páginas web visitadas y útiles. ●Glosario: En este anexo se exponen todos los contenidos los cuales no están relacionados con ninguno de los demás capítulos, o sirven para ampliar el contexto en el que se desarrolla este proyecto. 1.7. Contenido del CD-ROM Con este Trabajo de Fin de Grado se entregan dos tipos de CD-ROM: ●CD-ROM Biblioteca: contiene la documentación del TFG para su almacenamiento en los sistemas de información de la UVA ●CD-ROM Tribunal: contiene tres carpetas: ○Programa: Contiene el programa realizado, compilado. Es el Programa “Final”. ○Código: Contiene todos los archivos del proyecto sin compilar. ○Documentación: Contiene la documentación del TFG. 31
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 32
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 2. Capítulo 2: Planificación, presupuesto y estimación 33
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 2.1. Metodología La metodología empleada en este proyecto es la metodología agile. Agile permite realizar de una manera iterativa una serie de prototipos útiles del programa que nos ayudan a realizar el seguimiento del proyecto a la vez que nos permiten añadir nuevas funcionalidades. En este caso se han llevado a cabo tres iteraciones, en las cuales se vuelven a realizar todos los procesos principales del desarrollo de una aplicación (Análisis, diseño, implementación y pruebas), siendo estas: - 1ª Iteración: Desarrollo de las funcionalidades que nos permiten introducir datos sobre pilotos, equipos y eventos. Aplicación de técnica de scraping en la página web de iRacing. Desarrollo de los mecanismos de introducción de datos sobre una carrera o evento específicos. - 2ª Iteración: Desarrollo de las funciones necesarias para ofrecer al usuario la opción de editar los horarios creados para cada carrera. - 3ª Iteración: Desarrollo de algoritmo de creación de “stints” y interfaz de visualización de dichos turnos. Figura 20. Esquema de desarrollo de una aplicación ágil. 34
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 2.2. Estimación Para la estimación en temporal y monetaria del proyecto se usa una de las técnicas aprendidas durante el desarrollo del grado, llamada “estimación por puntos de función”, la cual consiste en varios pasos: - El primer paso, es definir una serie de características de la aplicación y agruparlas en diferentes secciones como son Entradas, salidas, consultas, ficheros internos y ficheros externos. - Tras ello, y siguiendo las tablas de complejidad Tabla 07/08/09, se asigna a cada una de las carácteristicas una complejidad (baja/media/alta). - Después de asignar la complejidad, y para extraer los puntos de función no ajustados, realizamos una suma ponderada con los pesos presentes en la Tabla 10, la cual nos dará los puntos de función no ajustados (PFNA). - A continuación debemos extraer el Factor de Ajuste (FA), el cual se calcula dando peso a una serie de parámetros descritos en la Tabla 11 y usando su suma en la fórmula a continuación: FA = (0,01 * Suma) + 0,65. - Con el FA definido, podremos definir los puntos de función como la multiplicación de los puntos de función no ajustados por el factor de ajuste (PF = PFNA * FA) - Finalmente, con los puntos de función ajustados y el tiempo por cada punto de función, obtenemos el tiempo total de desarrollo del proyecto. Entradas Salidas Consultas F. Internos F. Externos Información sobre pilotos (Baja) Listado general de pilotos (Baja) Consulta general de un piloto (Baja) Fichero información pilotos (Baja) Manual de instalación (Media) Información sobre eventos (Baja) Listado de pilotos por equipo (Baja) Consulta modificación de piloto (Media) Fichero información equipos (Baja) Manual de usuario (Media) Información sobre equipos (Media) Listado general de eventos (Baja) Consulta general de evento (Baja) Fichero información eventos (Baja) Información sobre carreras (Media) Listado general de equipos (Media) Consulta general de equipo (Baja) Fichero información carreras (Baja) Información sobre stints (Alta) Listado general de carreras (Media) Consulta modificación de equipo (Media) Fichero información stints (Baja) Listado de stints por evento (Media) Consulta general de carrera (Baja) 35
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Consulta modificación de carrera (Media) Consulta general de stints (Media) Consulta modificación de stints (Alta) Tabla 6. Tabla de salidas/entradas/consultas/fi/fe 36
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. A continuación, se muestran las tablas usadas para asignar la complejidad a los diferentes tipos de datos. Entradas y consultas 1 a 4 TED 5 a 15 TED >15 TED 0-1 TER Accedidos Baja Baja Media 2 TER Accedidos Baja Media Alta >2 TER Accedidos Media Alta Alta Tabla 7. Tabla de complejidad entradas y consultas Salidas 1 a 5 TED 6 a 9 TED >19 TED 0-1 TER Accedidos Baja Baja Media 2-3 TER Accedidos Baja Media Alta >3 TER Accedidos Media Alta Alta Tabla 8. Tabla de complejidad salidas Ficheros internos y externos 1 a 19 TED 20 a 50 TED >50 TED 1 TER Accedidos Baja Baja Media 2 a 5 TER Accedidos Baja Media Alta >5 TER Accedidos Media Alta Alta Tabla 9. Tabla de complejidad ficheros externos e internos Siendo TER → Tipos de Elementos de Registro y TED → Tipos de Elementos de Datos 37
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Seguidamente, con la complejidad asignada, obtenemos los puntos de función no ajustados mediante una suma ponderada de las cantidades con los pesos que aparecen a continuación: Tipo de función Complejidad Total x Complejidad Total por tipo Suma Ficheros internos Simple Media Alta x7 x10 x15 5 0 0 35 0 0 Ficheros externos Simple Media Alta x5 x7 x10 0 2 0 0 14 0 Entradas de usuario Simple Media Alta x3 x4 x6 2 2 1 6 8 6 Salidas de usuario Simple Media Alta x4 x5 x7 3 3 0 12 15 0 Consultas de usuario Simple Media Alta x3 x4 x6 4 4 1 12 16 6 Total de puntos de función no ajustados: 130 PFNA Tabla 10. Tabla de calculo puntos de función no ajustados 38
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Factor de ajuste Complejidad 1 Comunicación de datos 0 2 Funciones distribuidas 0 3 Prestaciones 3 4 Gran uso de la configuración 1 5 Velocidad de las transacciones 2 6 Entrada on-line de datos 4 7 Diseño para la eficiencia del usuario final 5 8 Actualización de datos on-line 4 9 Complejidad del proceso lógico de la aplicación 4 10 Reusabilidad de código 1 11 Facilidad de instalación 4 12 Facilidad de operación 4 13 Localizaciones múltiples 1 14 Facilidad de cambios 1 TOTAL: 34 Tabla 11. Tabla de complejidades Factor de Ajuste (FA) = (0.01 x 34) + 0.65 = 0,99 Puntos de Función Ajustados = 130 x 0.99 = 128.7 ≈ 129 PFA Días de proyecto = 129 Puntos de Función * 1 Dia/Punto de Función = 129 Días = 4,3 Meses 39
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 2.3. Planificación Atendiendo a la estimación realizada de 4,3 meses, se realiza una planificación de las 3 iteraciones. Como se puede observar en el diagrama de Gantt más abajo, la primera iteración es la que ocupa la mayor parte del tiempo de proyecto, dado que es la iteración donde se asientan los fundamentos de la aplicación. También influye en el tiempo planificado que la primera iteración cuenta con una de las tareas de programación más importantes y tediosas del proyecto, así como un periodo de pruebas muy extensivo. Dado a que en el momento en el que se haya terminado la primera iteración ya se estará más familiarizado con la herramienta, el desarrollo de las demás funcionalidades debería ser más rápido y eficiente. Para la planificación se cuenta con que el trabajo se empezará a realizar el dia de Marzo de 2019, y, siguiendo la estimación, se acabará el 10 de Julio de 2019. El horario de trabajo será el siguiente: LUNES MARTES MIÉRCOLES JUEVES VIERNES SÁBADO DOMINGO 4H 4H 4H 3H 4H 2H 0H Tabla 12. Horario de trabajo Con este horario y nuestra planificación, el proyecto tendría una duración aproximadamente de 396 horas. 40
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Seguidamente, se pasa a detallar cada uno de los requisitos de usuario: US-01 Crear piloto con ID Descripción El usuario puede crear un piloto introduciendo su ID de iRacing Objetivo relacionado OBJ-01 Prioridad Alta Iteración 1 Precondición El ID de piloto introducido debe existir en la página web de iRacing Postcondición El piloto queda registrado junto con todos sus datos en el programa Comentarios Tabla 17. US-01: Crear piloto con ID 47
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. US-02 Crear piloto sin ID Descripción El usuario podrá crear un piloto introduciendo los datos del piloto Objetivo relacionado OBJ-01 Prioridad Alta Iteración 1 Precondición Postcondición El piloto queda registrado junto con todos sus datos en el programa Comentarios Tabla 18. US-02: Crear piloto sin ID US-03 Eliminar Piloto Descripción El usuario puede eliminar un piloto introducido en el programa Objetivo relacionado OBJ-01 Prioridad Alta Iteración 1 Precondición El piloto debe existir en los datos del programa Postcondición El piloto queda eliminado del programa junto con todos sus datos Comentarios Tabla 19. US-03: Eliminar piloto 48
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. US-04 Editar Piloto Descripción El usuario puede editar un piloto ya guardado en el programa Objetivo relacionado OBJ-01 Prioridad Alta Iteración 1 Precondición El piloto debe existir en los datos del programa Postcondición Los datos del piloto quedan cambiados en el programa Comentarios Los datos que se pueden editar de un piloto son: - Nombre Tabla 20. US-04: Editar piloto US-05 Crear evento Descripción El usuario puede crear un evento Objetivo relacionado OBJ-03 Prioridad Alta Iteración 1 Precondición Postcondición Los datos del evento quedan registrados en el programa Comentarios Tabla 21. US-05: Crear evento 49
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. US-06 Editar evento Descripción El usuario puede editar un evento Objetivo relacionado OBJ-03 Prioridad Alta Iteración 1 Precondición Debe existir un evento dentro de los datos del programa Postcondición Los nuevos datos del evento quedan registrados en el programa Comentarios Tabla 22. US-06: Editar evento US-07 Eliminar evento Descripción El usuario puede eliminar un evento Objetivo relacionado OBJ-03 Prioridad Alta Iteración 1 Precondición Debe existir un evento dentro de los datos del programa Postcondición El evento queda eliminado de los datos del programa Comentarios Tabla 23. US-07: Eliminar evento 50
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. US-08 Crear carrera Descripción El usuario puede crear una carrera Objetivo relacionado OBJ-04 Prioridad Alta Iteración 1 Precondición Postcondición Los datos de la carrera quedan registrados en el programa Comentarios Tabla 24. US-08: Crear evento US-09 Eliminar carrera Descripción El usuario puede eliminar una carrera Objetivo relacionado OBJ-04 Prioridad Alta Iteración 1 Precondición Debe existir una carrera en los datos del programa Postcondición La carrera queda eliminada del programa Comentarios Tabla 25. US-09: Eliminar carrera 51
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. US-10 Crear equipo Descripción El usuario puede crear un equipo dentro del programa Objetivo relacionado OBJ-02 Prioridad Alta Iteración 1 Precondición Debe existir por lo menos 1 piloto dentro del programa Postcondición Queda creado un equipo con los datos especificados por el usuario Comentarios Tabla 26. US-10: Crear equipo US-11 Editar equipo Descripción El usuario puede editar los datos de un equipo Objetivo relacionado OBJ-02 Prioridad Alta Iteración 1 Precondición Debe existir un equipo en los datos del programa Postcondición Los datos del equipo quedan editados en el sistema Comentarios Tabla 27. US-11: Editar equipo 52
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. US-12 Añadir piloto a equipo Descripción El usuario puede añadir un piloto a un equipo Objetivo relacionado OBJ-02 Prioridad Alta Iteración 1 Precondición Debe existir un equipo en los datos del programa Debe existir un piloto en los datos del programa Postcondición El piloto queda relacionado con el equipo Comentarios Tabla 28. US-12: Añadir piloto a equipo US-13 Eliminar piloto de equipo Descripción El usuario puede eliminar un piloto de un equipo Objetivo relacionado OBJ-02 Prioridad Alta Iteración 1 Precondición Debe existir un equipo con un piloto dentro de los datos del programa Postcondición Se elimina la relación del piloto con el equipo Comentarios Tabla 29. US-13: Eliminar piloto de equipo 53
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. US-14 Eliminar equipo Descripción El usuario puede eliminar un equipo que exista dentro del programa Objetivo relacionado OBJ-02 Prioridad Alta Iteración 1 Precondición El equipo a eliminar debe existir dentro del programa Postcondición El equipo seleccionado queda eliminado de los datos del programa Comentarios Tabla 30. US-14: Eliminar equipo US-15 Insertar credenciales de iRacing Descripción El usuario puede insertar sus credenciales de iRacing Objetivo relacionado OBJ-01 Prioridad Alta Iteración 1 Precondición El usuario debe de poseer unas credenciales de iRacing válidas Postcondición Las credenciales de iRacing del usuario se quedan guardadas en el programa Comentarios Tabla 31. US-15: Insertar credenciales de iRacing 54
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. US-16 Eliminar credenciales de iRacing Descripción El usuario puede eliminar sus credenciales de iRacing Objetivo relacionado OBJ-01 Prioridad Alta Iteración 1 Precondición Deben de existir unas credenciales de iRacing insertadas en el programa Postcondición Las credenciales de iRacing del usuario quedan eliminadas del programa Comentarios Tabla 32. US-16: Eliminar credenciales de iRacing US-17 Editar disponibilidad del piloto Descripción El usuario puede editar la disponibilidad de un piloto para una carrera Objetivo relacionado OBJ-05 Prioridad Alta Iteración 2 Precondición Debe existir una carrera en el sistema Postcondición La disponibilidad de un piloto queda guardada para su futuro uso en horarios Comentarios Tabla 33. US-17: Editar disponibilidad del piloto 55
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. US-18 Crear horario manualmente Descripción El usuario puede editar la disponibilidad de un piloto para una carrera Objetivo relacionado OBJ-05 Prioridad Alta Iteración 2 Precondición Debe existir una carrera en el sistema Postcondición El horario de pilotaje queda guardado en el sistema Comentarios Tabla 34. US-18: Crear horario manualmente US-19 Generar horario automáticamente Descripción El usuario puede crear un horario de pilotaje automáticamente Objetivo relacionado OBJ-05 Prioridad Alta Iteración 3 Precondición Debe existir una carrera en el sistema Todos los pilotos del equipo deben tener su disponibilidad establecida Debe existir por lo menos un horario válido Postcondición El horario de pilotaje queda guardado en el sistema Comentarios Tabla 35. US-19: Crear horario automáticamente 56
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. RI-04 Datos equipo Descripción El sistema almacenará los datos de un equipo Información almacenada - Nombre - SOF Tabla 43. RI-04: Datos equipo RI-05 Datos carrera Descripción El sistema almacenará los datos de una carrera Información almacenada - Equipo - Evento - Tiempo por vuelta - Medida de combustible - Combustible medio por vuelta - Tiempo por vuelta - Tiempo en boxes - Número de vueltas - Horario de pilotaje Tabla 44. RI-05: Datos carrera RI-06 Datos disponibilidad Descripción El sistema almacenará los datos de una disponibilidad de un piloto en una carrera Información almacenada - Piloto - Carrera - Disponibilidad Tabla 45. RI-06: Datos piloto RI-07 Datos relación piloto-equipo Descripción El sistema almacenará los datos de una relación de un piloto con un equipo Información almacenada - Piloto - Equipo Tabla 46. RI-07: Datos piloto 63
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. RI-08 Credenciales iRacing Descripción El sistema almacenará las credenciales de iRacing del usuario Información almacenada - Email - Contraseña Tabla 47. RI-08: Credenciales iRacing 3.5. Casos de uso A continuación se muestran los casos de uso que se han ido extrayendo durante el transcurso de las tres iteraciones del proyecto. Los casos de uso representan actividades que un usuario realiza dentro de las limitaciones de un sistema. 3.5.1. Listado de casos de uso ID Iteración Nombre CU-01 1 Crear piloto con ID CU-02 1 Crear piloto sin ID CU-03 1 Eliminar piloto CU-04 1 Editar piloto CU-05 1 Crear evento CU-06 1 Editar evento CU-07 1 Eliminar evento CU-08 1 Crear carrera CU-09 1 Eliminar carrera CU-10 1 Crear equipo CU-11 1 Editar equipo CU-12 1 Añadir piloto a equipo CU-13 1 Eliminar piloto de equipo CU-14 1 Eliminar equipo CU-15 1 Insertar credenciales de iRacing CU-16 1 Eliminar credenciales de iRacing 64
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. CU-17 2 Editar disponibilidad del piloto CU-18 2 Crear horario manualmente CU-19 3 Generar horario automáticamente CU-20 3 Cambiar idioma del programa CU-21 3 Consultar información del programa Tabla 48. Lista de casos de uso Seguidamente, se procede a realizar la especificación de los casos de uso descritos CU-01 Crear piloto con ID Descripción El usuario de la aplicación puede crear pilotos con ID Iteración 1 Precondiciones El ID de piloto introducido debe existir en la página web de iRacing El usuario debe haber introducido sus credenciales de iRacing en el programa. Secuencia normal Paso 1 El usuario selecciona la sección de pilotos Paso 2 RF-01 El programa muestra al usuario la opción de crear un nuevo piloto Paso 3 El usuario selecciona la opción de crear un nuevo piloto mediante ID de iRacing Paso 4 El usuario inserta el ID de iRacing del piloto elegido Paso 5 RF-02 El programa extrae los datos de la página web de iRacing Paso 6 RF-03 El programa muestra al usuario los datos extraídos de la página oficial de iRacing Paso 7 El usuario acepta los datos extraídos de la página web de iRacing Paso 8 RF-04 El programa creará un piloto con los datos extraídos Postcondiciones El piloto queda guardado en los datos de la aplicación Excepciones Fallo a la hora de recuperar la información del piloto de la página de iRacing Paso 1 RF-05 El sistema muestra un mensaje de error El usuario declina los datos extraídos de la página web de iRacing 65
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Paso 1 RF-06 El sistema cancela el proceso Frecuencia Alta Comentarios Tabla 49. CU-01: Crear piloto con ID 66
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. CU-02 Crear piloto sin ID Descripción El usuario de la aplicación puede crear pilotos sin ID de iracing Iteración 1 Precondiciones El Usuario debe disponer de los datos necesarios para crear el piloto. Secuencia normal Paso 1 El usuario selecciona la sección de pilotos Paso 2 RF-01 El programa muestra al usuario la opción de crear un nuevo piloto Paso 3 El usuario selecciona la opción de crear un nuevo piloto sin IDl Paso 4 RF-07 El programa muestra los campos para que el usuario introduzca los datos del nuevo piloto Paso 5 El usuario inserta los datos del piloto que quiere registrar Paso 6 El usuario selecciona la opción de crear nuevo piloto Paso 7 RF-08 El programa guarda los datos del piloto sin ID en el sistema Postcondiciones El piloto queda guardado en los datos de la aplicación Excepciones Fallo por falta de información sobre el piloto Paso 1 RF-05 El programa muestra un mensaje de error Frecuencia Alta Comentarios Tabla 50. CU-02: Crear piloto sin ID 67
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. CU-03 Eliminar Piloto Descripción El usuario de la aplicación puede eliminar pilotos Iteración 1 Precondiciones Debe de existir por lo menos un piloto registrado en la aplicación Secuencia normal Paso 1 El usuario selecciona la sección de pilotos Paso 2 El usuario selecciona el piloto que quiere eliminar Paso 3 RF-09 El sistema muestra al usuario los datos del piloto seleccionado Paso 4 El usuario selecciona la opción de eliminar piloto Paso 5 RF-10 El sistema elimina el piloto seleccionado Postcondiciones El piloto queda eliminado de los datos de la aplicación Excepciones Frecuencia Baja Comentarios En la acción de borrado también se borra el piloto de los diferentes equipos en los que se encuentre, así como también se borran los stints que estén relacionados con este piloto. Tabla 51. CU-03: Eliminar piloto 68
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. CU-04 Editar Piloto Descripción El usuario de la aplicación puede eliminar pilotos Iteración 1 Precondiciones Debe de existir por lo menos un piloto registrado en la aplicación Secuencia normal Paso 1 El usuario selecciona la sección de pilotos Paso 2 El usuario selecciona el piloto que quiere editar Paso 3 RF-09 El sistema muestra al usuario los datos del piloto seleccionado Paso 4 El usuario edita los datos del piloto que desee Paso 5 El usuario selecciona la opción de guardar usuario Paso 6 RF-11 El sistema guarda los nuevos datos del piloto Postcondiciones Los nuevos datos del piloto quedan registrados en la aplicación Excepciones Frecuencia Baja Comentarios Solo podrán ser editados los datos del piloto personalizables, no podrán ser editados ni ID, sRating ni iRating. Tabla 52. CU-04: Editar piloto 69
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. CU-05 Crear evento Descripción El usuario de la aplicación puede crear eventos Iteración 1 Precondiciones Secuencia normal Paso 1 El usuario entra en la sección de eventos Paso 2 RF-12 El sistema muestra la opción de crear un nuevo evento Paso 3 El usuario selecciona la opción de crear un nuevo evento Paso 4 El usuario inserta los datos del nuevo evento Paso 5 El usuario selecciona la opción de guardar el nuevo evento Paso 6 RF-13 El sistema guarda el nuevo evento. Postcondiciones El evento queda creado dentro del sistema. Excepciones Fallo por falta de información sobre el evento Paso 1 RF-05 El programa muestra un mensaje de error Frecuencia Media Comentarios Tabla 53. CU-05: Crear evento 70
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. CU-06 Editar Evento Descripción El usuario de la aplicación puede editar eventos Iteración 1 Precondiciones Tiene que existir un evento creado anteriormente Secuencia normal Paso 1 El usuario entra en la sección de eventos Paso 2 RF-14 El sistema muestra un listado con los eventos disponibles Paso 3 El usuario selecciona el evento a editar Paso 4 El usuario inserta los nuevos datos del evento Paso 5 El usuario selecciona la opción de guardar los nuevos datos del evento Paso 6 RF-15 El sistema guarda los nuevos datos del evento Postcondiciones El evento queda editado dentro del sistema. Excepciones Fallo por falta de información sobre el evento Paso 1 RF-05 El programa muestra un mensaje de error Frecuencia Baja Comentarios Tabla 54. CU-06: Editar evento 71
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. CU-07 Eliminar Evento Descripción El usuario de la aplicación puede eliminar eventos Iteración 1 Precondiciones Debe de existir por lo menos un evento en la aplicación Secuencia normal Paso 1 El usuario selecciona la sección de eventos Paso 2 El usuario selecciona el evento que quiere eliminar Paso 3 RF-16 El sistema muestra la opción de eliminar evento Paso 4 El usuario selecciona la opción de eliminar evento Paso 5 RF-17 El sistema elimina el evento Postcondiciones El evento queda eliminado de los datos de la aplicación Excepciones Frecuencia Baja Comentarios En la acción de borrado de un evento también se borran los stints y carreras de ese evento. Tabla 55. CU-07: Eliminar evento 72
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. CU-14 Eliminar equipo Descripción El usuario puede eliminar un equip Iteración 1 Precondiciones Debe existir un equipo dentro del sistema Secuencia normal Paso 1 El usuario selecciona la pestaña equipos Paso 2 El usuario selecciona el equipo que desea eliminar Paso 3 RF-30 El sistema muestra la opción de eliminar equipo Paso 4 El usuario selecciona la opción de eliminar equipo Paso 5 RF-31 El sistema elimina el equipo Postcondiciones El equipo queda eliminado del sistema Excepciones Los datos introducidos no son válidos Paso 1 RF-05 El sistema muestra un mensaje de error Frecuencia Media Comentarios Tabla 62. CU-14: Eliminar equipo 79
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. CU-15 Insertar credenciales de iRacing Descripción El usuario puede insertar sus credenciales de iRacing Iteración 1 Precondiciones El usuario ha de tener una cuenta activa en iRacing Secuencia normal Paso 1 El usuario selecciona la opción de insertar credenciales de iRacing en el programa Paso 2 RF-32 El sistema muestra los campos para introducir las credenciales de iRacing Paso 3 El usuario introduce las credenciales de iRacing Paso 4 El usuario selecciona guardar las credenciales de iRacing Paso 5 RF-33 El sistema guarda las credenciales de iRacing Postcondiciones Las credenciales del usuario quedan guardadas en el programa Excepciones Las contraseñas no coinciden Paso 1 RF-05 El sistema muestra un mensaje de error. El email tiene un formato incorrecto Paso 1 RF-05 El sistema muestra un mensaje de error. El usuario cancela la introducción de credenciales Paso 1 RF-06 El sistema cancela el proceso Frecuencia Baja Comentarios Tabla 63. CU-15: Introducir credenciales de iRacing 80
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. CU-16 Eliminar credenciales de iRacing Descripción El usuario puede eliminar sus credenciales de iRacing Iteración 1 Precondiciones El usuario ha de tener una cuenta activa en iRacing Las credenciales de iRacing han de estar insertadas en el programa previamente Secuencia normal Paso 1 El usuario selecciona la opción de insertar credenciales de iRacing en el programa Paso 2 RF-34 El sistema muestra la opción de eliminar las credenciales de iRacing Paso 3 El usuario selecciona la opción de eliminar las credenciales de iRacing Paso 4 RF-35 El sistema elimina las credenciales de iRacing Postcondiciones Las credenciales del usuario quedan eliminadas del programa Excepciones Frecuencia Baja Comentarios Tabla 64. CU-16: Eliminar credenciales de iRacing 81
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. CU-17 Editar disponibilidad del piloto Descripción El usuario de la aplicación puede editar la disponibilidad de un piloto durante una carrera Iteración 2 Precondiciones Debe existir por lo menos una carrera dentro del sistema Debe existir un piloto en el equipo que está registrado a la carrera Secuencia normal Paso 1 El usuario selecciona un piloto de la lista en la pestaña de schedules Paso 2 El usuario selecciona la opción de editar disponibilidad Paso 3 RF-36 El sistema muestra el menú de edición de disponibilidad de un piloto Paso 4 El usuario selecciona la disponibilidad del piloto para cada uno de los stints de la carrera Paso 5 El usuario selecciona la opción de guardar disponibilidad del piloto para la carrera Paso 6 RF-37 El sistema guarda la disponibilidad del piloto para la correspondiente carrera. Postcondiciones La disponibilidad del piloto queda registrada en el programa Excepciones El usuario selecciona la opción de cancelar disponibilidad Paso 1 RF-06 El sistema cancela el proceso Paso 2 RF-05 El sistema muestra un mensaje de error Frecuencia Alta Comentarios Tabla 65. CU-17: Editar disponibilidad del piloto 82
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. CU-18 Crear horario manualmente Descripción El usuario de la aplicación puede crear un horario de carrera manualmente Iteración 2 Precondiciones Debe existir por lo menos una carrera para poder crear algún horario Secuencia normal Paso 1 El usuario selecciona una carrera para crear el horario de esta Paso 2 RF-38 El sistema muestra una lista con los stints que se han de completar en dicha carrera Paso 3 El usuario selecciona el piloto que desea que haga cada stint Paso 4 El usuario selecciona la opción de guardar el horario creado Paso 5 RF-39 El sistema guarda el horario creado manualmente por el usuario Postcondiciones El horario creado queda registrado en el programa Excepciones Frecuencia Alta Comentarios Tabla 66. CU-18: Crear horario manualmente 83
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. CU-19 Generar horario automáticamente Descripción El usuario de la aplicación puede crear un horario de carrera automáticamente Iteración 3 Precondiciones Debe existir por lo menos una carrera para poder crear algún horario Secuencia normal Paso 1 El usuario selecciona una carrera para crear el horario de ésta Paso 2 El usuario selecciona la opción de generar horario automáticamente Paso 3 RF-40 El sistema genera el horario automáticamente Paso 4 El usuario selecciona la opción de guardar horario Paso 5 RF-41 El sistema guarda el horario creado automáticamente Postcondiciones El horario creado queda registrado en el programa Excepciones Frecuencia Alta Comentarios Tabla 67. CU-19: Generar horario automáticamente 84
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. CU-20 Cambiar idioma del programa Descripción El usuario puede cambiar el idioma del programa Iteración 3 Precondiciones Secuencia normal Paso 1 El usuario selecciona la opción de cambio de idioma Paso 2 RF-42 El sistema muestra los controles para el cambio de idioma Paso 3 El usuario selecciona el idioma que desea Paso 4 El usuario acepta el cambio de idioma Paso 5 RF-43 El sistema cambia el idioma de la aplicación Postcondiciones El idioma de aplicación queda cambiado al seleccionado por el usuario Excepciones El usuario cancela el cambio de idioma Paso 1 RF-06 El programa cancela el proceso Frecuencia Alta Comentarios Tabla 68. CU-20: Cambiar idioma del programa 85
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. CU-21 Consultar información del programa Descripción El usuario puede cambiar el idioma del programa Iteración 3 Precondiciones Secuencia normal Paso 1 El usuario selecciona la opción de información sobre el programa Paso 2 RF-44 El sistema muestra la información sobre el programa Postcondiciones Excepciones Los datos introducidos no son válidos Paso 1 RF-05 El programa muestra un mensaje de error. Frecuencia Alta Comentarios Tabla 69. CU-21: Consultar información del programa 86
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 3.5.2. Diagramas de casos de uso Los diagramas de caso de uso representan una serie de acciones que se realizan por un usuario dentro de un sistema y muestran la relación entre los casos de uso de un sistema y sus actores. Figura 22. Diagrama casos de uso gestión de pilotos 87
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Figura 23. Diagrama casos de uso gestión de equipos Figura 24. Diagrama casos de uso gestión de eventos 88
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Figura 30. Diagrama de clases de modelo 95
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 4.4. Diagramas de secuencia Los diagramas de secuencia muestran la interacción entre los diferentes módulos de la aplicación de una forma temporal y de forma que se diferencian los mensajes que se realizan entre ellos. Debido a que muchos de los casos de uso tendrían diagramas de secuencia similares solo se realizan los diagramas más significativos. Figura 31. Diagrama de secuencia editar disponibilidad 96
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Figura 32. Diagrama de secuencia guardar credenciales de iRacing 97
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Figura 33. Diagrama de secuencia Añadir piloto con ID 98
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 4.5. Diagrama entidad-relación de la base de datos El diagrama entidad-relación de la base de datos representa la relación entre las diferentes entidades de la base de datos, mostrando sus atributos. Seguidamente se muestra el perteneciente a la aplicación desarrollada. Figura 34: Diagrama Entidad-Relación. 99
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 4.6. Diagrama relacional base de datos El diagrama relacional de la base de datos vincula entre sí las diferentes tablas que aparecen en la base de datos a través de la expansión de un campo en común, en este caso, la clave primaria de cada tabla. Este diagrama relacional se puede extraer de el diagrama entidad-relación de una forma sencilla siguiendo una serie de normas: - Las relaciones 1:N provocan una propagación de la clave primaria desde la tabla que contiene la relación 1..1 a la tabla que contiene la relación múltiple - Las relaciones N:M provocan la creación de una nueva tabla que consiste de las dos claves primarias de las entidades que se relacionan, y de todos los atributos que forman esa relación si esta los contiene. - -Las relaciones 1:1 provocan una propagación de clave primaria, pero a diferencia de las relaciones 1:N, es indiferente desde qué tabla hacia qué tabla sea la propagación. Siguiendo estas sencillas reglas, se genera el diagrama relacional que se muestra a continuación, formado por un total de 7 tablas, 6 pertenecientes a las entidades que forman la base de datos, y 1 (DrivesFor) perteneciente a la relación N:M PILOTA PARA. Figura 35. Diagrama relacional base de datos 100
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 4.7. Diccionario de datos En el diccionario de datos a continuación se detallan todos los elementos que forman parte de los datos manejados en la aplicación. Este diccionario de datos será útil en el momento de necesitar el acceso a información sobre los datos manejados por la aplicación. Event Nombre atributo Tipo de atributo Descripción Comentarios Eid int Id del evento UNIQUE AUTOINCREMENT PRIMARY KEY Event_name string Nombre del evento Start_date DateTime Fecha de inicio del evento End_date DateTime Fecha de fin del evento Event_type string Tipo de evento Image_path string URL relativa de la imagen del evento Tabla 70. Tabla especificación entidad Event 101
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Driver Nombre atributo Tipo de atributo Descripción Comentarios Did int Id del piloto UNIQUE AUTOINCREMENT PRIMARY KEY Iracing_id int ID del piloto en iRacing Name string Nombre del piloto Ir int iRating del piloto en iRacing Sr string sRating del piloto en iRacing Color string Color identificativo del piloto Tabla 71. Tabla especificación entidad Driver Team Nombre atributo Tipo de atributo Descripción Comentarios Tid int Id del equipo UNIQUE AUTOINCREMENT PRIMARY KEY Team_name string Nombre del equipo Team_sof int SOF del equipo Para info sobre SOF mirar glosario de términos Tabla 72. Tabla especificación entidad Team 102
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Race Nombre atributo Tipo de atributo Descripción Comentarios Rid int Id de la carrera UNIQUE AUTOINCREMENT PRIMARY KEY Eid int Id del evento donde se disputa la carrera FOREIGN KEY Tid int Id del equipo que disputa la carrera FOREIGN KEY Name string Nombre de la carrera Lap_time int Tiempo por vuelta Lap_count int Número de vueltas Fuel_metric string Métrica de medida del combustible Litros/Galones Fuel_consumption float Consumo del combustible por vuelta Fuel_capacity float Capacidad del tanque de combustible Pit_duration int Duración de una parada en boxes Schedule string Horario de pilotaje Tabla 73. Tabla especificación entidad Race 103
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Availability Nombre atributo Tipo de atributo Descripción Comentarios Aid int Id de la disponibilidad UNIQUE AUTOINCREMENT PRIMARY KEY Did int Id del piloto con disponibilidad FOREIGN KEY Rid int Id de la carrera de la disponibilidad FOREIGN KEY Av string Representación de la disponibilidad con números 0 → No disponible 1 → Disponible 2 → Tentativa Tabla 74. Tabla especificación entidad Availability DrivesFor Nombre atributo Tipo de atributo Descripción Comentarios Rid int Id de la relación piloto-equipo UNIQUE AUTOINCREMENT PRIMARY KEY Did int Id del piloto FOREIGN KEY Tid int Id del equipo FOREIGN KEY Tabla 75. Tabla especificación entidad DrivesFor 104
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. DI-07 Ventana “Add driver to team” Definición En esta ventana se mostrará todos los controles necesarios para añadir pilotos a un equipo. Activación Al hacer clic en el botón “Add driver to team” Boceto Figura 42. Boceto ventana add driver to team Eventos El usuario podrá añadir cualquier piloto que ya no esté dentro de un equipo, como parte de este. Tabla 82. Interfaz ventana add driver to team 111
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. DI-08 Ventana “Error” Definición Esta ventana mostrará un mensaje de error y una imagen de error Activación Al existir un error dentro del programa Boceto Figura 43. Boceto ventana error Eventos El usuario podrá reconocer que conoce el error dando al botón “Accept” Tabla 83. Interfaz ventana error 112
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. DI-09 Ventana “Add driver with ID” Definición Esta ventana mostrará los controles para añadir un piloto mediante su ID de iRacing Activación Al hacer clic sobre el botón “Add driver with ID” Boceto Figura 44. Boceto ventana add driver with ID Eventos El usuario podrá insertar sus credenciales de iRacing, así como introducir el ID de un piloto para buscar sus datos y añadir el piloto si se está conforme con los datos obtenidos. Tabla 84. Interfaz ventana add driver with ID 113
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. DI-10 Ventana “iRacing credentials” Definición Esta ventana mostrará los controles para poder guardar las credenciales de inicio de sesión en iRacing del usuario para su posterior uso. Activación Al hacer clic sobre el botón “Edit iRacing credentials” Boceto Figura 45. Boceto ventana insert iRacing credentials Eventos El usuario podrá insertar sus credenciales de inicio de sesión para su posterior uso, podrá eliminar sus credenciales. Tabla 85. Interfaz ventana enter iRacing credentials 114
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. DI-11 Menu “Options” Definición Esta pestaña permitirá al usuario acceder a diferentes funcionalidades de la aplicación como el cambio de idioma, una ventana de información, o permitirá otra forma de salir de la aplicación Activación Al hacer click sobre el ítem superior “Options” Boceto Figura 46. Boceto menu options Eventos El usuario podrá seleccionar diferente opciones de la lista. Tabla 86. Interfaz opciones DI-12 Ventana “About” Definición Esta ventana mostrará diferente información sobre la aplicación a los usuarios. Activación Al hacer click sobre el ítem “About” del menú “Options” Boceto Figura 47. Boceto ventana About Eventos Ninguno Tabla 87. Interfaz ventana “About” 115
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. DI-13 Ventana “Change language” Definición Esta ventana permitirá cambiar el idioma de la aplicación Activación Al hacer click sobre el ítem “Language” del menú “Options” Boceto Figura 48. Boceto ventana Language Selection Eventos El usuario podrá cambiar el idioma de la aplicación seleccionando un idioma de la lista y haciendo click en el botón de “Change language” Tabla 88. Interfaz ventana “Change language” 116
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 5. Capítulo 5: Implementación 117
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. En este apartado se discuten los aspectos relacionados con la implementación del programa que se consideran dignos de mención tanto por ser ciertamente interesantes, utilizar prácticas poco comunes, o simplemente para su mejor entendimiento. 5.1. Análisis página web iRacing (Scraping de datos) Como pequeña introducción, el scraping de datos es una técnica de programación usada para la extracción de datos de páginas web que no pueden ser accedidos de otra forma (APIs/acceso a bases de datos). Esta técnica es principalmente utilizada para extraer datos de páginas tipo server render, es decir, aquellas en las que lo que se muestra en pantalla lo decide el servidor y no el usuario mediante llamadas a AJAX. Esta técnica puede ser ejecutada con infinidad de herramientas, pero en nuestro caso, necesitaremos una herramienta que no está específicamente diseñada para este propósito llamada Selenium, ya explicada anteriormente en el apartado de Entorno Tecnológico.. Esta necesidad viene por tener que interactuar con la página web objetivo para hacer login cada vez que se desee extraer datos.Los principales pasos de la técnica del Scraping son: 1. Identificación de la web objetivo 2. Identificación de los datos objetivo 3. Análisis de la estructura del árbol DOM de la web 4. Recorrido del árbol DOM con una herramienta 5. Extracción de los datos deseados 6. Almacenamiento de los datos 7. Presentación de los datos A continuación, se muestra de la forma más clara posible el proceso que se ha seguido para analizar la página web de iRacing y extraer los datos de cada piloto. Para realizar el scraping con éxito, se deberá de interactuar con páginas completamente diferentes, la primera será la de login de iRacing, en la cual deberemos diferenciar tres elementos principales, el campo de usuario (class name = username), el campo de contraseña (class name = password), y el botón de submit del formulario (id = submit). Tras ello, deberemos introducir el usuario dentro del campo del usuario, la contraseña dentro del campo de contraseña, y tras ello, pulsar el botón de submit del formulario. 118
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Figura 49. Análisis página login iRacing.com 119
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Tras la pagina de login nos encontramos que la página “membersite” tiene un sistema de clases más complejo, y que los elementos que nosotros buscamos solo tienen la etiqueta style, con lo cual, no podemos identificarlos mediante id o class name como antes, lo que nos obliga a identificar el elemento accesible más cercano y desde ahí trabajar para llegar a ellos. Encontramos que elemento accesible más cercano es la imagen de licencia (class name = licenseImage) dentro del elemento roadTabContent (id = roadTabContent) (Este elemento roadTabContent es importante porque siempre escogemos el iRating y Safety rating que el piloto tenga en la categoría Road). Tras ello, tenemos que ir bajando en la jerarquía usando el método CssSelector eligiendo los hijos correctos que nos permitan acceder a los datos que necesitamos. En nuestro caso, la jerarquía de elementos tiene este aspecto: Figura 50. Jerarquía de elementos página membersite iRacing.com 120
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 6. Capítulo 6: Pruebas 127
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Las pruebas son una parte fundamental del desarrollo de un proyecto software, ya que determinan el correcto funcionamiento de la aplicación. Deben ser realizadas por un tester y han de abarcar todos los aspectos de la aplicación. Éstas pruebas pueden ser de caja negra y/o de caja blanca. 6.1. Caja negra Las pruebas de caja negra son utilizadas para comprobar las funcionalidades del código sin tener en cuenta los procesos que se llevan a cabo entre medias. En las pruebas de caja negra se indica las entradas de datos que se llevan a cabo y la salida de datos o resultado esperado. Figura 54. Pruebas de caja negra. En las tablas mostradas en este apartado se muestran las pruebas de caja negra realizadas. PCN-01 Creación de evento Descripción Crear un evento Precondiciones Entradas Start date: 1/1/2020 10:00 Finish date: 1/1/2020 16:00 Road event with time ✓ Event name: New Event Image: No Salidas Start date: 1/1/2020 10:00 Finish date: 1/1/2020 16:00 Road event with time ✓ Event name: New Event Image: No Resultado satisfactorio Sí 128
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Prueba Figura 55. Prueba creación de evento Tabla 89. PCN-01: Prueba caja negra creación de evento 129
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. PCN-02 Creación de piloto sin ID Descripción Crear un piloto sin ID de iRacing Precondiciones Entradas Driver name: Francisco Lopez Color: #FF00FF (Rosa) Salidas Driver name: Francisco Lopez Color: #FF00FF (Rosa) Resultado satisfactorio Sí Prueba Figura 56. Prueba creación de piloto sin ID Tabla 90. PCN-02: Prueba caja negra creación de piloto sin ID 130
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. PCN-03 Creación de piloto con ID Descripción Crear un piloto con ID de iRacing Precondiciones El piloto ha de existir en el sistema de iRacing Entradas Driver ID: 190926 Color: #00FF00 (Verde) Salidas Driver ID: 190926 Driver name: Sergio Hernando Driver iRating: 4464 Driver SRating: Class A 4.92 Resultado satisfactorio Sí Prueba Figura 57. Prueba creación de piloto con ID Tabla 91. PCN-03:Prueba caja negra creación de piloto con ID 131
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. PCN-04 Creación de equipo Descripción Crear un equipo Precondiciones Entradas Nombre: Equipo Team Salidas Nombre: Equipo Team Team SOF: 0 Resultado satisfactorio Sí Prueba Figura 58. Prueba creación de equipo Tabla 92. PCN-04::Prueba caja negra creación de equipo 132
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. PCN-05 Añadir piloto a equipo Descripción Añadir un piloto al equipo Precondiciones Se ha de crear primero un equipo y guardarlo en la base de datos Ha de existir algún piloto dentro de la base de datos Entradas Add driver to team: Sergio Hernando | 190926 Salidas Nombre: Equipo Team Team SOF: 4464 Driver List: - Sergio Hernando | 190926 Resultado satisfactorio Sí Prueba Figura 59. Prueba adición piloto a equipo Tabla 93. PCN-05: Prueba caja negra adición de piloto a equipo 133
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. PCN-06 Eliminar piloto de equipo Descripción Eliminar un piloto de un equipo Precondiciones Se ha de crear primero un equipo y guardarlo en la base de datos con algún piloto que pertenezca a ese equipo Entradas Remove driver from team: Sergio Hernando | 190926 Salidas Nombre: Equipo Team Team SOF: 0 Driver List: - Resultado satisfactorio Sí Prueba Figura 60. Prueba eliminación piloto de equipo Tabla 94. PCN-06: Prueba caja negra eliminación piloto de equipo 134
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. PCN-07 Crear carrera Descripción Crear una carrera que relacione un equipo y un evento Precondiciones Ha de existir algún evento en el sistema Ha de existir algún equipo en el sistema Entradas Event: New Event Team: Equipo Team Average lap time (seconds): 100 Fuel metric: Litres Average Fuel Consumption: 2,7 Tank fuel capacity: 100 Full pit stop duration: 60 Salidas Event: New Event Team: Equipo Team Average lap time (seconds): 100 Fuel metric: Litres Average Fuel Consumption: 2,7 Tank fuel capacity: 100 Full pit stop duration: 60 Resultado satisfactorio Sí Prueba Figura 61. Prueba crear carrera Tabla 95. PCN-07: Prueba caja negra creación de carrera PCN-08 Eliminar carrera Descripción Eliminar una carrera Precondiciones Debe existir por lo menos una carrera en el sistema Entradas Selected race: Equipo Team | SOF 0 @ New Event…… Delete selected race Salidas Deleted race: Equipo Team | SOF 0 @ New Event…… Resultado satisfactorio Sí Prueba Figura 62. Prueba eliminar carrera Tabla 96. PCN-08: Prueba caja negra eliminar carrera 135
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. PCN-09 Editar disponibilidad Descripción Editar una disponibilidad de un piloto en una carrera Precondiciones Debe existir por lo menos una carrera en el sistema Entradas Driver: Sergio Hernando | 190926 Availability: - Available - Tentative - Not Available Salidas Availability: - Available - Tentative - Not Available Resultado satisfactorio Sí Prueba Figura 63. Prueba editar disponibilidad Tabla 97. PCN-09: Prueba caja negra editar disponibilidad 136
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. En este apartado se presenta un manual de usuario con una explicación clara del funcionamiento de la aplicación desde el punto de vista de un usuario. En primer lugar, nos encontramos con la interfaz general a todo el programa, la cual es el menú superior, desde el cual podremos acceder al cambio de idioma, a la ventana de información sobre el TFG, y salir del programa. En el lateral izquierdo encontramos las pestañas que nos permiten desplazarnos por todos los apartados del programa. En la pantalla de cambio de idioma encontraremos una lista con los idiomas en los que está disponible el programa, y un botón para salir y otro para aplicar el idioma seleccionado. Para cambiar el idioma simplemente seleccionar uno de la lista y presionar el botón de cambiar idioma. Figura 67. Manual de cambio de idioma. En la ventana de información sobre el TFG nos encontraremos toda la información relacionada con el TFG, y el botón para cerrar la ventana. Si hacemos clic en el link de dicha pantalla, nos abre una pestaña del navegador predefinido en la página www.flaticon.com, de la cual se han extraído todos los iconos usados en la aplicación. Figura 68. Manual de información sobre el TFG 143
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Todas las pestañas del programa están divididas en dos secciones, la sección superior, en la que nos encontramos el selector de lista para los elementos, y diferentes opciones del programa, y la sección inferior, dirigida a la introducción/edición de datos y creación/borrado de datos. En la pestaña eventos nos encontramos la lista de selección de eventos, y el botón para crear un evento desde 0. ●Para crear un evento, clicar el botón de crear nuevo evento, introducir los datos pedidos, y clicar el botón verde para crear un nuevo evento. ●Para editar un evento ya creado, seleccionar el evento en la lista superior, editar el dato que se desee, y clicar el botón verde. ●Para eliminar un evento ya creado, seleccionar el evento deseado en la lista superior, y clicar el botón rojo de eliminar evento. ATENCIÓN: Cuando se elimine un evento, se eliminarán todas las carreras creadas en ese evento. Figura 69. Manual de gestión de eventos En la pestaña pilotos nos encontramos la lista de selección de pilotos, el botón para crear un piloto sin ID de iRacing, y el botón para crear un piloto con ID de iRacing. ●Para crear un piloto sin ID, clicar el botón de crear piloto sin ID, introducir el nombre del piloto, y clicar el botón verde de crear nuevo piloto. ●Para crear un piloto con ID de iRacing, clicar el botón de crear piloto con ID, seguir los pasos que se indican en este manual de usuario, y tras ello, se insertará automáticamente los datos recuperados del piloto. Clicar el botón verde de añadir piloto para añadir el piloto con ID al sistema. 144
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. ●Para editar un piloto, tanto con ID como sin ID, seleccionar el piloto deseado de la lista superior, y editar su nombre en la sección inferior. Clicar el botón verde de edición de piloto cuando se quieran guardar los datos. ●Para eliminar un piloto, seleccionar el piloto a eliminar en la lista superior, y clicar el botón rojo de eliminar piloto. ATENCIÓN: Cuando se elimine un piloto, se eliminarán todos los horarios en los que participe ese piloto. Figura 70. Manual de gestión de pilotos En la ventana de creación de piloto con ID nos encontraremos tres secciones. la sección superior permitirá insertar las credenciales de iRacing del usuario, introducir el ID del piloto a añadir, y buscar el piloto con el ID introducido. La sección media, servirá para mostrar los datos extraídos sobre el piloto, y la sección inferior para aceptar los datos extraídos o cancelar el proceso. ●Para introducir las credenciales de iRacing clicar el botón de introducir credenciales y seguir las instrucciones especificadas en este manual. ●Para añadir un piloto por ID, introducir el ID deseado en el campo indicado, y clicar en el botón de buscar piloto, esperar un tiempo, y cuando los datos del piloto aparezcan en la sección correspondiente, clicar el botón de añadir piloto. 145
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Figura 71. Manual de búsqueda de piloto con ID En la ventana de inserción de credenciales de usuario encontraremos los campos necesarios para la inserción de las credenciales y tres botones que nos permitirán eliminar las credenciales guardadas en el sistema, cerrar la ventana, y guardar las credenciales introducidas. ●Para añadir credenciales al sistema, introducir los campos requeridos y clicar en el botón de guardar credenciales. ATENCIÓN: Las credenciales deberán ser válidas para funcionar, el sistema no comprueba la validez de las credenciales hasta que se usan para buscar un piloto. ATENCIÓN: El correo deberá tener el formato ******@***.*** ●Para eliminar las credenciales clicar el botón de eliminar credenciales y cerrar la ventana. Figura 72. Manual de inserción de credenciales 146
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. En la pestaña de gestión de equipos encontraremos la lista de equipos disponibles y el botón para empezar a crear un equipo en la sección superior y todas las opciones para crear y editar un equipo en la sección inferior. ●Para crear un equipo clicar el botón de crear nuevo equipo, escribir el nombre del equipo y clicar el botón verde de crear nuevo equipo. ●Para añadir pilotos al equipo, tras crear un equipo, seleccionarlo en la lista y clicar el botón añadir piloto a equipo, tras ello seguir las instrucciones que se indican en este manual de uso. Tras ello, clicar el botón verde de editar equipo. ●Para eliminar pilotos de un equipo, seleccionar un equipo en la lista de pilotos del equipo y seleccionar la opción de eliminar piloto de equipo. Tras ello clicar el botón verde de editar equipo. ●Para editar un equipo, seleccionar el equipo en la lista superior, cambiar el nombre al que se desee, y clicar el botón verde de editar equipo. ●Para eliminar un equipo, seleccionar un equipo de la lista superior y clicar el botón rojo de eliminar equipo. ATENCIÓN: Al eliminar un equipo se eliminarán todas las carreras y horarios en las que el equipo participa. Figura 73. Manual de gestión de equipos 147
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. En la ventana de añadir piloto a equipo, encontramos una lista de los pilotos que no forman parte del equipo, y en la parte inferior la opción para salir y añadir el piloto seleccionado al equipo. ●Para añadir un piloto al equipo, seleccionar el piloto deseado y seleccionar el botón de añadir piloto a equipo. Cuando se haya acabado de añadir pilotos, cerrar la ventana. Figura 74. Manual de añadir piloto a equipo En la pestaña carreras, encontramos la lista de carreras y el botón para empezar a crear una carrera en la parte superior, y los campos para todos los datos de una carrera en la sección inferior. ●Para crear una carrera, clicar el botón de crear nueva carrera, rellenar todos los campos necesarios para la carrera, y clicar el botón verde para añadir la carrera al sistema. ATENCIÓN: Una vez creada una carrera no se podrá editar. ●Para eliminar una carrera, seleccionar la carrera deseada en la lista superior y clicar el botón rojo de eliminar carrera para eliminarla. ATENCIÓN: Una vez eliminada la carrera se eliminarán también el horario relacionado con ella. 148
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. Figura 75. Manual de gestión de carreras En la pestaña de gestión de horarios, encontramos la lista de horarios disponibles, y el botón para editar el horario seleccionado en la lista, en la sección inferior encontramos todas las herramientas necesarias para la creación y edición de horarios. ●Para editar un horario, se ha de seleccionar el horario a editar en la lista y clicar el botón de editar horario. Tras ello, y tras editar la disponibilidad de los pilotos, se podrán elegir en el horario de la derecha. Tras editar el horario, seleccionar la opción de guardar horario. ●Para generar un horario automáticamente, se ha de seleccionar el horario a editar en la lista y clicar el botón de editar horario. Tras ello, y tras editar la disponibilidad de los pilotos, elegir la opción de generar horario, y después, clicar el botón de guardar horario. ATENCIÓN: el horario sólo podrá ser creado si existen pilotos disponibles o en tentativa para TODOS los stints. Figura 76. Manual de gestión de horarios 149
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. En la ventana de edición de disponibilidad del piloto, se distinguen dos secciones principales, la sección de elección de disponibilidad y las opciones para guardar la disponibilidad, poner todos los stints como no disponible / tentativa / disponible, y para cerrar la ventana. ●Para editar individualmente la disponibilidad de un piloto en cada uno de los stints, seleccionar cada stint por separado y elegir una disponibilidad para cada uno de ellos. Clicar el botón de guardar disponibilidad para guardar la disponibilidad del piloto. ●Para editar todos los stints como no disponible / tentativa / disponible, clicar el botón correspondiente y clicar el botón de guardar disponibilidad. Figura 77. Manual de edición de disponibilidad 150
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 151
Gestor de stints para carreras en simuladores. Sergio Hernando Mateo. 9. Capítulo 9: Conclusiones y futuras mejoras 152