http://www.ilustrados.com/documentos/modulo-persistencia-datos-examenes-070308.pdf

Anuncio
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, jquevedo@uci.cu
2. Ing Omar Correa Madrigal
Dpto Práctica Profesional, UCI, ocorrea@uci.cu
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
Descargar