FACULTAD 5 Módulo de persistencia de datos para exámenes en simuladores de conducción. Autores: 1. Ing Juan Carlos Quevedo Lussón Dpto Ingeniería y Gestión de Software, UCI, [email protected] 2. Ing Omar Correa Madrigal Dpto Práctica Profesional, UCI, [email protected] RESUMEN La Facultad 5 de la Universidad de las Ciencias Informáticas, que atiende el perfil de Realidad Virtual, tiene como producto el simulador de conducción, el cual brinda la opción de realizar examenes para obtener la licencia de conducción. Los exámenes realizados en este simulador no son persistentes, una vez que el evaluado concluye su ejercicio no existe una forma de almacenar las principales incidencias del mismo, con el objetivo de resolver esta problemática se idea una herramienta que pueda ser incorporada a dicho simulador, que permita tener una constancia de la realización de los exámenes por parte de los clientes. Esta herramienta proveerá un vínculo mayor entre el Sistema de Evaluación Teórica, que es un producto acompañante del simulador y permite la realización de los exámenes teóricos previos al ejercicio de conducción, además de permitir almacenar los datos de los ejercicios realizados, y obtener después reportes que puedan contribuir a la mejora continua del proceso de evaluación. El presente trabajo explica las principales características de la herramienta propuesta. PALABRAS CLAVES Conducción ,examen , simulador, persistencia. ABSTRACT KEYWORDS INTRODUCCIÓN El simulador de conducción desarrollado por la Facultad 5, es un sistema que permite la evaluación de un ejercicio de conducción automovilística, realizado en un entorno virtual y con el objetivo de obtener la licencia de conducción. Este sistema va acompañado de un sistema de evaluación teórica, que automatiza mediante el uso de videos con situaciones del tránsito y preguntas acompañando a estos videos, la realización del examen teórico para obtener licencia de conducción. En el caso del sistema de evaluación teórica, los examenes son almacenados en una base de datos, donde se registran los datos personales de los aspirantes, así como los datos de los exámenes realizados, a partir de tenerlos almacenados se pueden obtener reportes de rendimiento, de complejidad de exámenes, y otros definidos por el sistema que permiten conocer en que nivel se encuentran los exámenes realizados. El simulador de conducción a pesar de ser la continuidad del examinador teórico no exige ninguna constancia de la realización del test teórico previo al ejercicio de conducción. En añadidura a esto tampoco se registran en ningún sitio los exámenes prácticos realizados, simplemente se da un resultado y al comenzarse otro examen, se borran de la memoria los datos referentes al anterior ejercicio. Esto anula la posibilidad de poder tener un informe con datos referentes a la realización de los ejercicios prácticos de conducción. El problema a solucionar en este caso es: ¿Cómo lograr una mayor vinculación entre las dos aplicaciones o sistemas que automatizan el proceso de obtención de la licencia de conducción, permitiendo además almacenar los datos inherentes al examen práctico? Para solucionar esta interrogante se plantea como objetivo general desarrollar un módulo de persistencia de datos que permita almacenar los datos correspondientes a los exámenes prácticos de conducción realizados en el simulador y vincularlos con los datos almacenados de los exámenes teóricos. Se plantean como tareas para cumplir el objetivo trazado las siguientes: • Estudiar y analizar las principales variables que se manipulan en un examen de conducción. • Analizar las principales tendencias en el almacenamiento de datos. • Plantear soluciones técnicas que solucionen la problemática analizada. • Realizar el análisis y diseño para obtener una arquitectura de clases que responda a los objetivos planteados. • Desarrollar una herramienta de visualización de reportes que permita a los encargados de aplicar los exámenes, obtener resúmenes de los datos almacenados. Con el desarrollo de este módulo y su posterior vinculación al simulador de conducción se espera que se pueda obtener un mejor seguimiento de la realización de los exámenes de conducción, que se puedan alamacenar los datos correspondientes a los ejercicios de conducción realizados y obtener reportes que indiquen las tendencias de los examinados durante los ejercicios, datos estos que pueden ser muy importantes y necesarios a la hora de tomar decisiones, y que anteriormente eran imposibles de obtener. DESARROLLO Sistemas Gestores de Bases de Datos (SGBD) Los sistemas de gestión de base de datos son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta.[Wikipedia 1] El propósito de los sistemas de gestión de bases de datos es el de manejar de manera sencilla y ordenada un conjunto de información almacenada en las bases de datos, para ello deben tener ciertos objetivos: • Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción. • Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella. • Redundancia mínima. Un buen diseño de una base de datos logrará evitar la aparición de información repetida o redundante. De entrada, lo ideal es lograr una redundancia nula; no obstante, en algunos casos la complejidad de los cálculos hace necesaria la aparición de redundancias. • Consistencia. En aquellos casos en los que no se ha logrado esta redundancia nula, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea. • Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra asegurada frente a usuarios malintencionados, que intenten leer información privilegiada; frente a ataques que deseen manipular o destruir la información; o simplemente ante las torpezas de algún usuario autorizado pero despistado. Normalmente, los SGBD disponen de un complejo sistema de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos. • Integridad. Se trata de adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Es decir, se trata de proteger los datos ante fallos de hardware, datos introducidos por usuarios descuidados, o cualquier otra circunstancia capaz de corromper la información almacenada. • Respaldo y recuperación. Los SGBD deben proporcionar una forma eficiente de realizar copias de seguridad de la información almacenada en ellos, y de restaurar a partir de estas copias los datos que se hayan podido perder. • Control de la concurrencia. En la mayoría de entornos (excepto quizás el doméstico), lo más habitual es que sean muchas las personas que acceden a una base de datos, bien para recuperar información, bien para almacenarla. Y es también frecuente que dichos accesos se realicen de forma simultánea. Así pues, un SGBD debe controlar este acceso concurrente a la información, que podría derivar en inconsistencias. • Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD tarda en darnos la información solicitada y en almacenar los cambios realizados. Ventajas de los sistemas de gestión de bases de datos: • Facilidad de manejo de grandes volúmenes de información. • Gran velocidad en muy poco tiempo. • Independencia del tratamiento de información. • Seguridad de la información (acceso a usuarios autorizados), protección de información, de modificaciones, inclusiones, consulta. • No hay duplicidad de información, comprobación de información en el momento de introducir la misma. • Integridad referencial el terminar los registros. Desventajas: • El costo de actualización del hardware y software son muy elevados. • Costo (salario) del administrador de la base de datos es costoso. • El mal diseño de esta puede originar problemas a futuro. • Un mal adiestramiento a los usuarios puede originar problemas a futuro. • Si no se encuentra un manual del sistema no se podrán hacer relaciones con facilidad. • Generan campos vacíos en exceso. • El mal diseño de seguridad genera problemas en esta. Variables a tener en cuenta en la realización de los ejercicios de conducción. Al analizar los datos necesarios para ser almacenados en un examen práctico de conducción, se nota que son muchas las variables que se manipulan. A diferencia de los exámenes teóricos, en los cuales solamente se almacena la información referente a las preguntas que existen en cada examen, las respuestas dadas por el examinado y el resultado del examen, en el ejercicio práctico de conducción se manipulan datos referentes a la velocidad del auto, al tiempo del examen, a las maniobras realizadas por el conductor, las infracciones cometidas, en fin una serie de datos que en algunos casos no son importantes su almacenamiento. Las variables que si son muy útiles de almacenar son: Maniobra: Se entiende por maniobra toda accion realizada por el conductor en un ejercicio (frenar, doblar, acelerar, etc), por cada maniobra se almacenará el instante de tiempo exacto en que se realizó, (partiendo de que el tiempo comienza a contarse partiendo del momento en que enciende el auto para comenzar el examen), en cada maniobra el examinado puede cometer una infracción, por lo cual este es un dato que se debe almacenar, en cada maniobra se debe almacenar como dato importante la velocidad del vehiculo al realizar cada maniobra. En el diseño de esta base de datos se debe tener en cuenta además que cada ejercicio practico constituye la continuidad de un examen teórico por lo que se debe almacenar además el identificador del examen teórico realizado por el conductor. Propuesta de solución técnica Se propone para el diseño de la base de datos que la misma sea una expansión de la base de datos existente para el Sistema de Evaluación Teórica.(ver fig 1). En la cual se almacenan los principales datos de los clientes y de los exámenes teóricos realizados por estos. A esta expansión se le deben añadir las tablas que permitan almacenar los datos identificados en el acápite anterior como importantes en un examen de conducción(ver fig 2). Se propone aplicar el patrón de acceso a datos Row Data Gateway, el cual se implementó para el Sistema de Evaluación Teórica, con excelentes resultados, lo que permitirá que se reúse gran parte de este código. Este patrón consiste en un objeto que actúa como puerta de acceso a un record en la fuente de datos (base de datos), existiendo una instancia del mismo por cada fila que exista en la tabla de la base de datos. La metodología propuesta para desarrollar el proyecto es RUP, que garantiza la elaboración de todas las fases de un producto de software orientado a objeto. RUP no es simplemente un proceso, sino un marco de trabajo extensible que puede ser adaptado para diferentes áreas de aplicación, diferentes organizaciones o proyectos específicos. Está metodología entre sus múltiples ventajas ayuda a asegurar la producción de software de alta calidad con un costo y tiempo predecible para el usuario. En vistas de que se quiere realizar un software de calidad y siguiendo metodologías de desarrollo de software como RUP, donde se usa la programación orientada a objetos, debemos desechar el lenguaje C, ya que este no incorpora el paradigma de Programación Orientado a Objetos (POO), el lenguaje de programación Java, nos brinda facilidades a la hora de programar, pues es multiplataforma, y podríamos obtener un software que corriera en cualquier sistema operativo, pero tiene los inconvenientes de que las aplicaciones de escritorio son poco comunes en este lenguaje de programación, debido a lo lentas que resultan y otras inconveniencias que posee el mismo, si a esto se le añade que las máquinas virtuales de java para compilar el código de nuestra aplicación poseen licencia comercial (deben ser pagadas por su uso), esto conlleva a desechar también este lenguaje de programación, en el caso del C#, la no existencia de compiladores para este lenguaje que no generen los programas para la plataforma .NET, y el hecho de que los compiladores de este lenguaje de programación también poseen licencia comercial, indican que la solución factible para programar el software deseado es hacerlo en C++, si se programa usando los tipos básicos de este lenguaje, se haría más factible una migración a software libre, ya que las versiones actuales del sistema solo corren en plataforma Win32. Configuracion_examen Config_preg_tipo id_configuracion : INTEGER tiempo_max : INTEGER valor_aprob : INTEGER tipo : INTEGER cantidad : INTEGER id_configuracion : INTEGER 0..1 1 0..1 ceCliente <<Non-Identifying>> 0..* <<Non-Identifying>> 0..1 id_cliente : INTEGER nombre_apell : VARCHAR(255) dir_part : VARCHAR(255) fecha_nac : DATE usuario : VARCHAR(255) 0..* <<Non-Identifying>> 0..1 ce_ExamenTeorico num_exam en : INTEGER nota : INTEGER fecha : DATE hora_inicio : DATE hora_fin : DATE usuario : VARCHAR(255) id_cliente : INTEGER id_configuracion : INTEGER 0..* <<Non-Identifying>> ceUsuario 0..* contras : VARCHAR(255) usuario : VARCHAR(255) 0..1 cePregunta 0..1 <<Identifying>> <<Identifying>> 0..* 1 PregExamen num_exam en : INTEGER id_pregunta : INTEGER id_pregunta : INTEGER texto_preg : VARCHAR(255) url_video : VARCHAR(255) tipo : INTEGER 1 1..* <<Identifying>> 0..* 1 <<Identifying>> 0..* RespPregEx id_respuesta : INTEGER num_exam en : INTEGER id_pregunta : INTEGER Fig 1. Modelo físico de datos del Sistema de Evaluación Teórica. ce_Respuesta texto : VARCHAR(255) correcta : BIT(1) id_respuesta : INTEGER id_pregunta : INTEGER Fig 2. Estructura de la BD para almacenar la información referente a los ejercicios de conducción. Conclusiones Durante la realización de este trabajo se investigó acerca de las tendencias actuales de almacenamiento de datos, lo cual permitió conocer como se comporta este aspecto a nivel internacional. Además se realize una investigación sobre el simulador de conducción desarrollado por estudiantes y profesores de la Facultad 5, para determinar las variables a almacenar en una base de datos que sirviera para recopilar información referente a los exámenes de conducción. Se obtuvo como fruto de la investigación un prototipo de diseño inicial de la BD que solucionaría la problemática planteada al inicio de este informe. Además de una arquitectura básica que diera soporte a esta solución. Actualmente se trabaja en desarrollar la primera versión del módulo que dará solución al problema existente. La herramienta desarrollada, incorpora nuevas funcionalidades al sistema ya existente. Referencias [Wikipedia 1]: Wikipedia "Firebird http://es.wikipedia.org/wiki/Firebird " Retrieved 22/01/2007, from