Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DEDICATORIA
Dedico este trabajo a mis amados padres; Vicente y Venancia, quienes me han brindado su
apoyo incondicional en todo momento, ensendome a levantarme en los momentos difciles, y es gracias a ellos por quienes estoy terminando satisfactoriamente la carrera universitaria. A mi amada esposa Elizabeth, quien llenado de felicidad mi vida, ha
por su paciencia y
comprensin y por supuesto, a todas las personas que de una u otra manera hicieron posible la ejecucin de este proyecto,
AGRADECIMIENTOS
A la licenciada Victoria Velianskaya por su asesora, consejos y su crtica constructiva que me llev a alcanzar un mejor resultado. Al Ing. Juan Carlos Galen Romero, por su paciencia y por las valiosas sugerencias que me guiaron a lo largo del desarrollo del proyecto. A mis padres polticos Andrs y Favia por creer y confiar en m, demostrndome siempre su preocupacin y cario. A Hivoneth mi cuada, quien desde la
distancia y sin condiciones me facilit herramientas importantes para desarrollar el proyecto. A la Universidad Pedaggica Mariscal Sucre, por el apoyo recibido para la realizacin de este proyecto.
RESUMEN
La construccin de horarios en una institucin educativa es un problema complejo debido a la cantidad de restricciones que presenta y el criterio con el que se aplican. Por otro lado, la necesidad de tener una forma de identificar de manera nica al personal de cualquier institucin, exige implementar una serie de mtodos para optimizar el control de personal. Hoy en da, el ms utilizado es el mtodo biomtrico que utiliza dispositivos electrnicos que captura patrones que identifica de manera nica a las personas. El objetivo del proyecto es el desarrollo de un sistema automatizado para facilitar y mejorar el registro de control de asistencia al personal, adems de apoyar en la construccin de horarios acadmicos para la Universidad Pedaggica Mariscal Sucre. Para la construccin de horarios se eligi el modelo de TTE (Time Tabling Educacional) el High-School Timetabling y los algoritmos genticos, debido a las caractersticas y restricciones propias de la Institucin. El proyecto ha sido desarrollado con conceptos de programacin Orientada a Objetos, utilizando el lenguaje de Modelado Unificado (UML) para modelar el sistema. La implementacin del sistema se la realiz con el lenguaje Java y el IDE Netbeans 6.01, junto con el gestor de bases de datos MySQL y como herramienta de mapeo ToplinkEssentials. La implementacin del sistema brinda a la Universidad Pedaggica Mariscal Sucre un mejor manejo de la informacin relacionada al control de asistencia del personal y la posibilidad de generar alternativas de horarios acadmicos.
NDICE DE CONTENIDO
CAPITULO I CAPITULO I .......................................................................................................................... - 1 INTRODUCCIN Y OBJETIVOS........................................................................................ - 1 1.1. Introduccin o antecedentes del proyecto ................................................................. - 1 1.2. Identificacin del problema central del proyecto ....................................................... - 4 1.3. Abordaje de solucin del problema .......................................................................... - 4 1.4. Objetivos del proyecto ................................................................................................ - 7 1.4.1. Objetivo general .......................................................................................................... - 7 1.4.2. Objetivos especficos .................................................................................................. - 7 1.4.3. Delimitaciones ............................................................................................................ - 8 1.5. Justificacin del proyecto ........................................................................................... - 9 1.5.1. Justificacin Tecnolgica ........................................................................................... - 9 1.5.2. Justificacin Operativa ............................................................................................... - 9 MARCO CONTEXTUAL................................................................................................... - 10 2.1. Anlisis de la Situacin Actual ...................................................................................... - 10 2.1.1. Asignacin de Horarios .............................................................................................. - 10 2.1.2. Control de Asistencia al Personal Docente................................................................. - 12 2.2. Anlisis del Dominio del Problema ............................................................................... - 12 MARCO TEORICO CONCEPTUAL ................................................................................ - 15 3.1. Marco Terico del Dominio del Problema .................................................................... - 15 3.1.2. Gestin de Recursos Humanos ................................................................................... - 16 3.1.3. Asignacin de Horarios .............................................................................................. - 16 3.2. Referencia a Proyectos Similares .................................................................................. - 16 3.3. Marco Terico de Ingeniera ......................................................................................... - 18 3.3.1. Sistemas de Informacin ............................................................................................ - 19 3.3.2. Biometra .................................................................................................................... - 19 3.3.3. Sistemas Biomtricos. ................................................................................................ - 19 3.3.4. Huella Digital ............................................................................................................. - 21 3.3.5. Tecnologas de huellas digitales ................................................................................. - 21 3.3.6. Timetabling................................................................................................................. - 24 3.3.7. Timetabling Educational (TTE) ................................................................................. - 25 3.3.7.1. Tipos de Problemas TTE ......................................................................................... - 26 3.3.8. Mtodos de Optimizacin........................................................................................... - 28 3.3.9. Tcnicas heursticas Modernas ................................................................................... - 28 3.3.9.1. Algoritmos Genticos ............................................................................................. - 29 3.3.9.2. Terminologa de los Algoritmos Genticos ............................................................. - 30 3.3.9.3. Modelo 1:................................................................................................................. - 33 3.3.9.4. Modelo 2:................................................................................................................. - 34 3.3.9.5. Modelo 3:................................................................................................................. - 36 3.3.10. Plataforma de Desarrollo del Software ..................................................................... - 38 3.3.10.1. Lenguaje de programacin java............................................................................. - 38 3.3.10.2. Arquitectura Modelo Vista Controlador ................................................................ - 38 3.3.10.4. Entorno de Programacin ...................................................................................... - 40 3.3.11. Generador de Reportes ............................................................................................. - 41 -
3.3.11.1. iReport ................................................................................................................... - 41 3.3.12. Gestor de Bases de Datos ......................................................................................... - 42 3.3.12.1. PostGreSQL........................................................................................................... - 42 3.3.12.2 MySQL ................................................................................................................... - 43 3.3.14. JPA: Java Persistence API ........................................................................................ - 44 3.3.15. Implementacion JPA. ............................................................................................... - 45 3.3.15.1.Toplink Essentials .................................................................................................. - 45 DESARROLLO DEL PROYECTO ..................................................................................... - 46 4.1. Proceso de Requerimientos ........................................................................................... - 46 4.1.2. Obtencin de Requerimientos .................................................................................... - 46 4.1.4. Requerimientos no Funcionales.................................................................................. - 47 4.1.5. Requerimientos del Usuario ....................................................................................... - 48 4.1.6. Identificacin de actores ............................................................................................. - 48 4.1.7. Diagramas de Casos de Uso ....................................................................................... - 49 4.1.8. Personas involucradas en el desarrollo y operacin ................................................... - 52 4.1.9. Interfaces que requieren los usuarios......................................................................... - 52 4.1.10. Correspondencia entre elementos funcionales e interfaces ...................................... - 53 4.2. Proceso de Anlisis y Diseo ........................................................................................ - 55 4.2.1. Riesgos del Proyecto .................................................................................................. - 55 4.2.2. Arquitectura del Sistema ............................................................................................ - 58 4.2.3. Estructura Esttica del Sistema .................................................................................. - 59 4.2.3.1. Estructura de Datos.................................................................................................. - 59 4.2.4. Estructura Dinmica del Sistema ................................................................................ - 64 4.2.4.1. Diagrama de secuencia ............................................................................................ - 65 4.2.4.2. Diagrama de colaboracin ....................................................................................... - 66 4.2.5. Mapeamiento para la implementacin del Sistema .................................................... - 67 4.2.5.1. Mapeamiento a Tablas ............................................................................................. - 67 4.2.5.2. Diseo de la Base de Datos ..................................................................................... - 68 4.2.6. Elaboracin del algoritmo gentico para la distribucin de los horarios en la Universidad Pedaggica Mariscal Sucre. .............................................................. - 69 4.2.6.1. Caractersticas Particulares de la Institucin ........................................................... - 69 4.2.6.2. Factores involucrados en la generacin de horarios ................................................ - 69 4.2.6.3. Diseo del Algoritmo .............................................................................................. - 71 4.2.6.4. Representacin del Cromosoma (Individuo) ........................................................... - 74 4.2.6.5. Representacin de la poblacin ............................................................................... - 76 4.2.6.6. Evaluacin de la poblacin ...................................................................................... - 78 4.2.6.7. Operadores Genticos .............................................................................................. - 80 4.2.6.8. Seleccin.................................................................................................................. - 83 4.2.6.9. Generacin de la poblacin inicial .......................................................................... - 83 4.3. Proceso de Implementacin ........................................................................................... - 86 4.3.1. Fases y plazos de implementacin............................................................................. - 86 4.3.2. Preparacin de la plataforma ..................................................................................... - 86 4.3.4. Preparacin del Software ............................................................................................ - 86 4.3.5. Diagrama de Componentes ......................................................................................... - 87 4.3.5.1. Mdulos del Sistema ............................................................................................... - 88 4.3.5.2. Diagrama de Despliegue.......................................................................................... - 89 4.3.6. Estructura de Directorios y Archivos ......................................................................... - 89 -
4.3.7. Implementacin de las clases en lenguaje de programacin ...................................... - 91 4.3.8. Implementacin de la Base de Datos .......................................................................... - 94 4.4. Seguridad del Sistema ................................................................................................... - 95 4.5. Proceso de Prueba .......................................................................................................... - 96 4.5.1. Pruebas de Software ................................................................................................... - 96 4.5.3. Diseo y ejecucin de las pruebas. ............................................................................. - 98 4.5.3.1. Pruebas de Unidad ................................................................................................... - 98 3.5.3.2. Pruebas de Integracin ............................................................................................ - 99 4.6. Cronograma de ejecucin ............................................................................................ - 100 4.6.1. Plan de desarrollo del Proyecto ................................................................................ - 100 4.6.2. Cronograma de Actividades ..................................................................................... - 105 DISCUSIN DE RESULTADOS...................................................................................... - 108 5.1. Resultados.................................................................................................................... - 108 5.1.1. Interfaces de Usuario ................................................................................................ - 108 Se debe recalcar que RUP no define un diseo de interfaces y pantallas en ninguna de las fases; a continuacin se muestra algunas de las interfaces ms relevantes del sistema. . 108 5.2. Puesta en Marcha ......................................................................................................... - 114 5.2.1. Especificacin tcnica de hardware y software ........................................................ - 114 5.2.2. Instalacin del Sistema ............................................................................................. - 115 5.2.3. Capacitacin a Usuarios ........................................................................................... - 115 5.2.2. Estimacin del costo y Esfuerzo del Producto ......................................................... - 116 CONCLUSIONES .............................................................................................................. - 118 RECOMENDACIONES .................................................................................................... - 119 REFERENCIA BIBLIOGRFICA .................................................................................... - 120 BIBLIOGRAFA ................................................................................................................ - 124 GLOSARIO DE TRMINOS ............................................................................................ - 125 ANEXOS ............................................................................................................................ - 127 REFERENCIA TCNICA ................................................................................................. - 141 -
INDICE DE TABLAS
Tabla 3.1. Comparacin de Mtodos Biomtricos .............................................................. - 20 Tabla 3.2. Diferencias entre High School y university timetabling. ................................... - 27 Tabla 3.3. Codificacin de la jornada de clases ................................................................... - 33 Tabla 3.4. Representacin no binaria de un gene ................................................................. - 33 Tabla 3.5. Comparativa de Entornos de Desarrollo.............................................................. - 40 Tabla 4.1. Prevencin y mitigacin de riesgos identificados .............................................. - 55 Tabla 4.2. Asignaturas ......................................................................................................... - 70 Tabla 4.3. Tabla Periodos ..................................................................................................... - 70 Tabla 4.4. Tabla Aulas .......................................................................................................... - 71 Tabla 4.5. Niveles de Acceso de Usuarios .......................................................................... - 96 Tabla 4.6. Prueba Gestionar Kardex .................................................................................... - 99 Tabla 4.7. Prueba Gestin de Usuarios................................................................................. - 99 Tabla 4.8. Planificacin de Actividades (Investigacin de las Herramientas) ................... - 101 Tabla 4.9. Planificacin de Actividades (Desarrollo del proyecto) .................................... - 101 Tabla 5.1. Especificacin tcnica de hardware (servidor) .................................................. - 114 Tabla 5.2. Especificacin tcnica de hardware (cliente) .................................................... - 114 Tabla 5.3. Especificacin tcnica de software .................................................................... - 115 Tabla 5.4. Costos de obtencin de informacin, papelera y otros ..................................... - 116 Tabla 5.5. Costos de licencias de software ......................................................................... - 116 -
INDICE DE FIGURAS
Figura 1.1. Abordaje de solucin del problema .................................................................... - 6 Figura 2.1. Proceso de construccin de horarios en la UPNMS .......................................... - 11 Figura 3.1. Lector de huella RS- 120 ................................................................................... - 21 Figura 3.2. Lector de huella Hamster ................................................................................... - 23 Figura 3.3. Lector de huella DigitalPersona ......................................................................... - 23 Figura 3.4. Tcnicas de Bsqueda ........................................................................................ - 28 Figura 3.5. Inicializar aleatoriamente una poblacin ........................................................... - 30 Figura 3.6. Cruce de Soluciones .......................................................................................... - 31 Figura 3.7 Mutacin de Soluciones .................................................................................... - 31 Figura 3.8. Seleccin de la Poblacin................................................................................... - 32 Figura 3.9. Representacin no binaria de un cromosoma .................................................... - 34 Figura 3.10. Correspondencia entre los cursos a impartir y los espacios disponibles .......... - 35 Figura 3.11 Esquema Modelo Vista Controlador ................................................................. - 39 Figura 4.1. Diagrama de Casos de Uso Principal ................................................................. - 49 Figura 4.2. Diagrama de Casos de Uso Gestionar Kardex de Personal................................ - 50 Figura 4.3. Diagrama de Casos de Uso Gestionar Asistencia .............................................. - 50 Figura 4.4. Diagrama de Casos de Uso Controlar Asistencia .............................................. - 51 Figura 4.5. Diagrama de Casos de Uso Generar Horarios ................................................... - 51 Figura 4.6. Diagrama de Paquetes de SISCAACH .............................................................. - 58 Figura 4.7. Diagrama de Clases ............................................................................................ - 60 Figura 4.8. Diagrama de Secuencia: Datos Personales ........................................................ - 65 Figura 4.9. Diagrama de Colaboracin: Datos Personales ................................................... - 66 Figura 4.10. Diagrama Entidad Relacin ............................................................................. - 67 Figura 4.11. Modelo Lgico Global de Datos ...................................................................... - 68 Figura 4.12. Representacin del Individuo Inicial ............................................................... - 75 Figura 4.13. Representacin del Individuo Final ................................................................. - 76 Figura 4.14. Representacin de la poblacin ........................................................................ - 76 Figura 4.15. Mdulos del Sistema ........................................................................................ - 88 Figura 4.16. Diagrama de Componentes .............................................................................. - 88 Figura 4.17. Diagrama de Despliegue .................................................................................. - 89 Figura 4.18. Estructura de Directorios y Archivos ............................................................... - 90 Figura 4.19. Implementacin de la base de datos (Interfaz SQL Maestro for MySQL) ...... - 95 Figura 4.20. Interfaz ingreso al sistema ................................................................................ - 96 Figura 4.21. Diagrama de Gant del proyecto...................................................................... - 105 Figura 4.22. Diagrama de Gant del Proyecto (Continuacin) ............................................ - 106 Figura 4.23. Diagrama de Gant del proyecto (Continuacin) ............................................ - 107 Figura 5.1. Men Principal del Sistema ............................................................................. - 108 Figura 5.2. Registro de Personal ......................................................................................... - 109 Figura 5.3. Registro Situacin Laboral ............................................................................... - 109 Figura 5.4. Bsqueda de Personal ...................................................................................... - 109 Figura 5.5. Reporte de personal .......................................................................................... - 110 Figura 5.6. Registro de Turnos ........................................................................................... - 110 Figura 5.7. Asignacin de Turnos ...................................................................................... - 111 -
Figura 5.8. Registro de Permisos ........................................................................................ - 111 Figura 5.9. Administrador de pin y huella .......................................................................... - 112 Figura 5.10. Registrar Asignaturas ..................................................................................... - 112 Figura 5.11. Configuracin Datos Horario ......................................................................... - 113 Figura 5.12. Horarios Construidos ..................................................................................... - 113 -
La Escuela Nacional de Maestros de Sucre, se cre el 6 de junio de 1909 con el nombre de Escuela de Preceptores de la Repblica, luego Escuela Normal de Maestros Mariscal Sucre, posteriormente Instituto Normal Superior, hoy Universidad Pedaggica Nacional Mariscal Sucre; cuyo objetivo principal es la formacin de profesionales de la educacin en todos los grados, modalidades y especialidades capaces de contribuir en la solucin de problemas de la educacin nacional, desarrollando investigacin educativa en el proceso pedaggico de formacin, a travs de procesos de interaccin social y cultural, permitiendo la aplicacin prctica de las capacidades y competencias adquiridas en la formacin profesional. La Universidad Pedaggica Nacional Mariscal Sucre es una Institucin de Educacin Superior dependiente del Ministerio de Educacin, cuyos ambientes se encuentran ubicados en la ciudad de Sucre Capital de la Repblica de Bolivia, en la Avenida del Maestro No. 331. La Universidad Pedaggica Nacional Mariscal Sucre cuenta con un personal dividido en tres reas: Docentes, Administrativos y de Servicio, de los cuales ciento tres (103) docentes firman en el cuaderno de registro de control de asistencia de acuerdo al horario que tienen asignados, mientras que veinticinco (25) administrativos, hacen uso del Sistema SIA (Sistema de Informacin Administrativa) [1]. El proyecto a desarrollarse beneficia al personal docente y alumnado de la institucin. La Universidad Pedaggica Nacional Mariscal Sucre cuenta con recursos informticos que responden a las necesidades actuales como ser: computadoras con procesadores desde Pentium III hasta Core 2 Duo, servidor, hubs, ups, ruter, switch de 32 puertos, cables UTP, conectores, software, redes, etc., los mismos que estn distribuidos de la siguiente manera: 40 computadoras para el rea administrativa (Rectorado 2, Unidad de Registro e Inscripciones 5, Almacenes 2, Recursos Humanos 2, Administracin 2, oficinas dependientes de Primaria 8, oficinas dependientes de Secundaria 5, Biblioteca 12, Bienestar Universitario 1, Portera 1) y 52 computadoras en Laboratorios de Primaria y Secundaria; tambin cuenta con el servicio de
Internet ADSL de 512 k. por intermedio de ENTEL y un servidor IBM procesador XEON de 1.60 Ghz, 400Gb RAM y un disco duro de 180Gb que soporta la red, pgina Web, correo y otros, para el servicio de toda la Comunidad Universitaria, el servicio de Internet es compartido por medio de una red LAN en las oficinas de la carrera de primaria y otra en la carrera de secundaria. Ministerio de Educacin. Actualmente el Centro de Cmputo de la Universidad se encuentra en la Unidad de Registro e Inscripciones que es encargada del Seguimiento y Control Acadmico (admisiones, inscripciones, registro de notas, matrculas, entre otras), kardex de personal docente y administrativo a travs del Sistema de Formacin Docente (SIFD), desarrollado con la herramienta de programacin Delphi, este sistema ha sido implementado el ao 2004 otorgado por el Ministerio de Educacin. Otro sistema con el que cuenta la institucin es el Sistema SINCON otorgado por el Ministerio de Hacienda y a cargo de la Unidad de Contabilidad. La Universidad cuenta con un Sistema de Control de Asistencia SIA [1] (Sistema de Informacin Administrativa) desarrollado con la herramienta de programacin Delphi que fue adquirido e implementado el ao 2005, y que hoy funciona solo para personal administrativo y no as para docentes. El control de asistencia al personal docente se lleva a cabo mediante la firma en un cuaderno de registro de asistencia que se encuentra en la puerta de la institucin, esta tarea muchas veces nos es muy efectiva ni confiable debido a la flexibilidad del control, ya que algunos docentes firman fuera de los horarios establecidos; por otra parte los reportes elaborados a partir del registro de asistencia se realizan en hojas electrnicas independientes (Excel) en la Unidad de Recursos Humanos, estos reportes (das trabajados, atrasos, faltas, licencias, etc.), pasan manualmente a la Unidad de Contabilidad para la elaboracin de planillas. El problema de la asignacin de horarios y distribucin de aulas radica en que normalmente se requiere varios das de trabajo para su elaboracin porque se debe tomar en cuenta varios parmetros y restricciones relacionados con los estudiantes, docentes y aulas, pero sobre todo debido a que este proceso es realizado manualmente. Inicialmente los horarios son realizados por un equipo conformado por los coordinadores de rea (Primaria y Secundaria), este -2CAPITULO I: Introduccin o Antecedentes del Proyecto
horario elaborado pasa a los responsables de carrera que son los encargados de corregir las dificultades e incluir aspectos relacionados con cada carrera, una vez corregido el horario regresa a los coordinadores de rea donde se aprueban los horarios y se procede a su publicacin. En la elaboracin de los horarios y la distribucin de aulas se toma como parmetro los horarios de las anteriores gestiones que mejor se han acomodado a los requerimientos de los estudiantes y docentes, pero aun as siguen existiendo dificultades, alumnos y docentes buscando aulas, poca cantidad de alumnos pasando clases en aulas amplias, materias troncales o fuertes en horarios continuos, etc. Segn una investigacin hecha en la Universidad de Palermo Las versiones de software comercial, libre y/o gratuito que existen en el mercado, generan horarios de clase pero no asignan aulas o algunas soportan visualmente la tarea de asignar aulas manualmente pero no suelen implementar inteligencia alguna ni optimizan la distribucin[2]. Aplicaciones como el Time Tables [3], software comercial 995 ; Visual Classroom Scheduler [4], software libre; Softaula [5] software comercial 590 , permiten generar el horario completo teniendo en cuenta varias condiciones incluyendo psico-higinicas asignaciones de grupos, inclusive es posible realizar cambios manuales, la dificultad radica en que existen muchas condiciones y restricciones que varan en comparacin al objeto de estudio en
cuestin y estn en idioma ingls. Kronowin [6] es un Software Generador de Horarios comercial con un costo de 800 Euros, permite obtener de una forma sencilla los horarios de un Centro Escolar, con un entorno grfico, intuitivo y amigable. Las alternativas mencionadas aportan un avance considerable en el proceso de asignacin de aulas sin embargo, son productos diseados para su uso general y aunque proclaman ser
ideales, no toman en cuenta factores importantes que son requeridos para su uso en la Universidad Pedaggica Mariscal Sucre, como por ejemplo que existen carreras por turnos y que cada bloque ya est asignado a una determinada carrera.
1.2.
El problema identificado en la Universidad Pedaggica Nacional Mariscal Sucre es la dificultad de generar horarios, asignar aulas y controlar la asistencia al personal docente por medio de un proceso manual.
1.3.
Para resolver el problema identificado se propone desarrollar una aplicacin cliente servidor centralizado que permita asignar aulas, generar horarios y controlar la asistencia al personal docente; utilizando el lenguaje de programacin Java SE, siguiendo el paradigma de programacin orientado a objetos [7], la metodologa RUP (Rational Unified Process)[8], ciclo de vida iterativo incremental, lenguaje de modelado UML[9], Interfaz de usuario empleando la herramienta de programacin Netbeans6.1[10], lenguaje de programacin Java[11]; la administracin y tratamiento de la informacin se realizar utilizando el gestor de Bases de Datos MySQL 5.1.31-win32[12]. Se eligi el gestor de bases de datos MySQL, porque el almacn de datos ms comn en nuestro medio son las bases de datos relacionales, para enmarcarnos dentro del paradigma orientado a objetos y mantener la persistencia de objetos se aplica el Mapeo Objeto Relacional (MOR)[13] con la ayuda de la implementacin Java Persistence Api (JPA) que proporciona un estndar para gestionar datos relacionales en aplicaciones Java, de forma que adems se simplifique el desarrollo de la persistencia de datos[14], el MOR es una tcnica que mapea representaciones de datos de un modelo de objetos a un modelo de datos relacional con un esquema basado en SQL. Adems, para la bsqueda de una solucin ptima en la distribucin de aulas y generacin de horarios se utilizar mtodos matemticos de optimizacin multiobjetivos como son los algoritmos genticos que forma parte de los algoritmos evolutivos. En cuanto a la metodologa utilizada en la elaboracin del proyecto se considera principalmente el mtodo cientfico, mtodos empricos y tericos. -4CAPITULO I: Identificacin del problema central del proyecto
Los mtodos y Medios de Investigacin utilizados son: La Revisin Bibliogrfica para realizar la revisin de toda la documentacin de investigaciones existentes sobre el tema y recolectar la informacin correspondiente a la aplicacin de la informtica en la bsqueda de soluciones optimas. [15] Las Entrevistas al personal involucrado con el proceso de control de asistencia y elaboracin de horarios en la Universidad Pedaggica. La Recopilacin de la Informacin fue en la fase de inicio y fue proporcionado por el Responsable de Recursos Humanos para el control de asistencia y por los Coordinadores de Nivel encargados de los horarios del Personal Docente. El Anlisis y Sntesis para descomponer el problema en varias partes o subproblemas resolviendo cada uno independientemente, identificando los requerimientos y definiendo los subsistemas y sus relaciones. El Experimental, para generar soluciones optimas y para determinar cambios que puede producir la implementacin de un sistema con estas caractersticas.
SE EMPLEA
SE EMPLEA
TCNICAS METAHEURSTIC AS
TECNICAS DE BIOMETRIA
HERRAMIENTAS
ENT. DE PROG
PROCESO UNIFICADO
ITERATIVO INCREMENTAL
MY SQL 5.1.31
WINDOWS XP
NETBEANS 6.0.1
LENGUAJES
DOC.
HERR. CASE
(Modelado) UML
(Programacin)
CON
JAVA
MICROSOFT WORD
JPA
RATIONAL ROSE
1.4.
1.4.1. Objetivo general Desarrollar e implementar un Sistema Cliente Servidor Centralizado que genere horarios, asigne aulas y permita el control de asistencia del Personal Docente, respondiendo a los requerimientos de la institucin en funcin a la informacin provista y ajustndose a las polticas de la misma. 1.4.2. Objetivos especficos Desarrollar un subsistema kardex del Personal Docente de la Institucin, que gestione la situacin laboral, formacin acadmica, datos personales, documentacin, etc., con las interfaces claras y entendibles, ajustndose a lo establecido en las normas ISO 9000. Desarrollar un subsistema para el control de asistencia del personal docente utilizando tecnologa biomtrica y que se ajuste a las polticas y normas de la institucin. Disear e implementar un subsistema para una distribucin ptima de recursos (Aulas, Horarios). Desarrollar un Subsistema de Reportes que permita obtener la informacin clara, concreta y confiable, adems de permitir la impresin de los mismos de acuerdo a las necesidades del usuario. Desarrollar un modulo de seguridad que permita el control de accesos de usuarios al sistema de tal manera que garantice la confiabilidad e integridad de los datos. Desarrollar e Implementar un Sistema de Ayuda que brinde informacin clara y concreta con relacin a todas las funcionalidades y recursos, permitiendo una navegabilidad fluida entre sus diferentes temas. Implementar y poner a prueba el Sistema durante un mnimo de dos meses para detectar errores y defectos tan temprano como sea posible de manera que el sistema cumpla con todas las especificaciones y requisitos de la Institucin, documentando todo el proceso. -7CAPITULO I: Objetivos del proyecto
1.4.3. Delimitaciones La delimitacin del proyecto identifica que las siguientes actividades quedan fuera del alcance del proyecto: Diseo e instalacin de redes de computadoras, ya que la institucin cuenta con las mismas. Desarrollo de Software para detectar e identificar huellas dactilares; se emplea el software proporcionado por el fabricante. Desarrollo de Software para emisin de planillas y sueldos.
1.5.
1.5.1. Justificacin Tecnolgica En la elaboracin del proyecto se utilizan mtodos matemticos de distribucin de espacios, de tal manera que puedan optimizar la asignacin de recursos. Los mtodos matemticos de optimizacin como los algoritmos genticos, multiobjetivos y evolutivos no han sido utilizados en nuestro medio y la utilizacin en este proyecto puede servir para resolver otros problemas similares de distribucin como ser asignacin de canales en comunicacin mvil, asignacin de carga acadmica, distribucin de redes de computadoras etc. 1.5.2. Justificacin Operativa La elaboracin del proyecto beneficia al personal encargado de la administracin de la Institucin por cuanto ahorra tiempo y esfuerzo ya que el sistema distribuye aulas y asigna horarios automticamente, pero sobre todo los estudiantes no tienen que andar buscando aulas adecuadas para el desarrollo normal de sus actividades acadmicas, adems la automatizacin del control de asistencia a docentes facilita el manejo de la informacin a la hora de generar reportes, etc., necesarios para el envo a planillas, adems de garantizar, la seguridad e integridad de la informacin.
El Coordinador de cada Nivel (Primaria, Secundaria) elabora los posibles horarios con los directores de cada carrera, una vez que los horarios han sido reunidos estos pasan a Direccin Acadmica para su revisin y aprobacin en caso de existir alguna observacin vuelve a ser revisado por el coordinador y directores de carrera este proceso se repite hasta que sea aprobado por direccin acadmica. Este proceso de asignacin y distribucin de aulas se muestra en la siguiente figura: Inicio Criterios de Evaluacin de horarios - Un Docente no puede impartir dos o ms asignaturas en el mismo horario. - Un Aula no puede ser utilizada por dos o ms asignaturas al mismo tiempo. - Una asignatura debe cumplir con la cantidad de horas semanales requeridas. - No deben coincidir los horarios de las asignaturas que corresponden a un mismo semestre en la malla curricular. -
Horarios
aceptables
n o si
Horarios Aprobados
n o
si Imprimir Horarios Fin Figura 2.1. Proceso de construccin de horarios en la UPNMS Fuente: Elaboracin propia fundamentada en los procedimientos de la Universidad Pedaggica
- 11 CAPITULO II: Anlisis de la Situacin Actual
2.1.2. Control de Asistencia al Personal Docente El control de asistencia al personal docente se realiza a travs de la firma que cada docente registra en una planilla de asistencia a la hora de ingresar y salir tomando en cuenta que el docente que firma la planilla tenga un turno asignado para ese da. La planilla de asistencia se encuentra en las puertas de ingreso a la institucin y al finalizar el mes el encargado de Recursos Humanos revisa dichas planillas y elabora un informe de asistencia resaltando las faltas licencias o atrasos, dicho informe es enviado a contabilidad para su posterior tratamiento. La planilla de control de asistencia tiene los siguientes datos: La fecha de la planilla de asistencia. Nombre de cada docente que tiene clases esa fecha. Hora de ingreso turno de la maana. Hora de salida turno de la maana. Hora de ingreso turno de la tarde. Hora de salida turno de la tarde.
Para la hora de ingreso se toma en cuenta la primera asignatura que dicta cada docente en esa fecha. Para la hora de salida se toma en cuenta la ltima asignatura que dicta cada docente en esa fecha. Este criterio se aplica a ambos turnos maana y tarde.
Director Acadmico: es el encargado de la publicacin del horario final previa evaluacin del mismo. Coordinador de Nivel: es el encargado de enviar los horarios propuestos al Director Acadmico, previa revisin y anlisis con los directores de Carrera del nivel correspondiente (Inicial, Primario y Secundario). Directores de Carrera: son los encargados de elaborar los horarios acadmicos para su nivel correspondiente (Inicial, Primario y Secundario). Jefe de Recursos Humanos: algunas funciones de esta entidad son: Elaborar la planilla de control de asistencia al personal. Recibir solicitudes de licencias, permisos, justificaciones de faltas y atrasos. Revisar peridicamente la planilla de asistencia para el control de atrasos y faltas, evitando que el personal firme fuera de horario. Elaborar informes diarios y mensuales de asistencia del personal.
Dificultad en el proceso de generacin de horarios Una de las dificultades que se presentan en la Universidad Pedaggica al inicio de una gestin acadmica y durante el desarrollo de la misma es la construccin de horarios ya que la institucin no cuenta con un software que elabora automticamente los horarios de clases, tarea que normalmente requiere varios das de trabajo manual. El problema de la construccin de horarios radica en la gran cantidad de combinaciones posibles que se provocan al intentar asignar horarios a los profesores. Esta situacin provoca regularmente molestias personales, problemas de funcionamiento, conflictos de asignacin de tiempos y choques de horarios, los cuales se solucionan en un proceso posterior ajustndose a la disponibilidad de tiempo de los profesores lo cual implica gran prdida de tiempo. Dificultad en el Control de Asistencia al Personal Docente Otra dificultad se presenta en el control de asistencia al personal docente, principalmente porque es un proceso manual, el docente debe buscar su nombre en la planilla, buscar su turno asignado para ese da, lo que muchas veces genera colas de espera y esto prdida de tiempo,
- 13 CAPITULO III Anlisis del Dominio del Problema
adems muchas veces es posible firmar fuera de horario ya que la planilla est disponible para otros docentes que tienen otros turnos. Por otro lado en el momento en que se requiere un reporte detallado de la asistencia (horas de ingreso, total tiempo atraso, total faltas, total licencias, etc.) de un determinado docente no es posible obtenerlo, ya que el informe de asistencia del personal se realiza cada fin de mes, donde el jefe de recursos humanos debe realizar un informe de forma manual con los datos obtenidos de planillas de control de asistencia. De acuerdo a los problemas identificados se ha determinado que existe la siguiente necesidad: Implementar un sistema que permita: Registrar datos del Personal Docente de forma legible rpida y que almacene los mismos de manera permanente. Obtener datos del personal de forma automtica e inmediata par su actualizacin o para la elaboracin de reportes segn criterios establecidos. Registrar turnos de trabajo de acuerdo a los perodos acadmicos establecidos por la institucin. Asignar turnos al personal docente, de acuerdo a los horarios acadmicos asignados al mismo. Registrar las carreras disponibles en la institucin. Registrar las asignaturas por carrera y con el docente asignado a la misma Construir horarios acadmicos tomando en cuenta las asignaturas de cada carrera y el docente que la imparte. Generar reportes relacionados al personal, al registro de asistencia, horarios por carrera y por docente.
MARCO TEORICO CONCEPTUAL 3.1. Marco Terico del Dominio del Problema
El uso de la computadora es un elemento indispensable en todos los mbitos de nuestra sociedad, proporciona adems de eficiencia un considerable ahorro en el tiempo. Las instituciones educativas superiores de hoy en da, se han visto en la necesidad de implementar Sistemas Informticos para un adecuado manejo y control de sus recursos, en la mayora de los casos estos sistemas estn destinados a diferentes reas como ser: Control de Almacenes, Inventarios, Planillas, Ventas, Cuentas por Cobrar y Pagar, Contabilidad, entre muchos otros. Una de las reas que mas a tardado en automatizarse ha sido la del Control de Asistencia y/o Permanencia del personal, esto debido a la an amplia utilizacin de sistemas tradicionales, como ser: los "Sistemas Manuales" de control basados en los antiguos relojes mecnicos que utilizan tarjetas de cartn, o nicamente con "partes de asistencia" que no son otra cosa que hojas de papel con lneas numeradas en las que los empleados firman e indican (ellos mismos) la hora en la cual ingresan o salen de la Institucin. Al mismo tiempo otro de los principales problemas para la modernizacin de las instituciones educativas superiores es la elaboracin y asignacin de horarios ptimos debido a la cantidad de restricciones que presenta y el criterio con el que se aplican. Las tendencias actuales acerca del Control de Asistencia a Personal Docente estn en la incorporacin de sistemas biomtricos, porque permiten establecer mecanismos de control y seguridad confiables; por otro lado para resolver el problema de la generacin de horarios y distribucin de aulas se han realizado muchas investigaciones con Tcnicas Heursticas Modernas conocidas tambin como Tcnicas de Bsqueda de Soluciones como ser: Algoritmos Evolutivos, Algoritmo Tab, Teora de Grafos, Algoritmos Genticos, etc. Segn el Instituto Tecnolgico de Nuevo Laredo La tcnica ms eficaz para generacin de horarios son los Algoritmos Genticos ya que esta tcnica ha sido muy utilizada en problemas similares y cuyo funcionamiento se inspira en procesos naturales combinando rapidez y eficiencia.[18]
3.1.2. Gestin de Recursos Humanos La gestin de recursos humanos es una actividad indispensable en toda entidad donde el control de asistencia del personal se convierte en un elemento de vital importancia, ms an si se trata de una entidad acadmica, donde la inasistencia o los permanentes atrasos del
personal afectan negativa y directamente a los objetivos acadmicos propuestos en el plan curricular de la institucin. Una buena gestin en el control de personal permite alcanzar los objetivos definidos de la manera ms eficaz y eficiente posible. [19] 3.1.3. Asignacin de Horarios El problema de programacin docentes, horarios y cursos consiste en elaborar una programacin de cursos que logra cumplir, lo mejor posible, los compromisos laborales y acadmicos de la institucin, tomando en cuenta la disponibilidad de horario de los docentes, los posibles cursos que estos pueden impartir, la disponibilidad de espacios fsicos, etc. Es conocido que el problema de Programacin docentes, horarios y cursos es NP- Hard y debido al grado de dificultad involucrado en resolver este tipo de problemas, es un rea de investigacin muy activa. Una prueba de esta ltima afirmacin es la Conferencia Internacional de Practice and Theory of Automated Timetabling realizada el ao 2007. Adems existen grupos tales como el Working Group on Automated Time Tabling (Euro WATT) el cual es parte de la Association Of European Operational Reserarch Societies, cuyo objetivo es mantener informacin actualizada acerca de este tema en la web. [20]
en otros pases y publicadas a travs de internet. A continuacin se describen brevemente algunos proyectos existentes similares a nuestro dominio del problema. Sistema de Control de Asistencia a Personal Importadora Medina Este Sistema fue desarrollado para control de asistencia al personal que trabaja en la Importadora Medina, el entorno de programacin es DELPHI 5, en el diseo de base de datos SQL Server 2000 y la tecnologa biomtrica a travs de huellas digitales . La Empresa se encuentra ubicada en la Avenida Jaime Mendoza cerca de la plazuela Treveris. El control de asistencia que realiza este sistema es en base a un horario fijo de entrada y otro de salida, adems no se cuenta con el cdigo fuente, por lo que no se puede adaptar a los requerimientos de nuestro problema. Sistema Biomtrico de control de asistencia y planillas de pago Este trabajo de proyecto de grado fue presentado en la Universidad Mayor de San Andrs el ao 2008. Para optar el titulo de Licenciatura en informtica mencin Ingeniera de Sistemas informticos. El objetivo principal de este proyecto de grado es controlar la asistencia del personal de la alcalda de El Alto, haciendo uso de tecnologa biomtrica, utilizando la
metodologa RUP, entorno de programacin Visual Basic.Net, gestor de Base de Datos SQL Server.[21] Algoritmos Genticos par la resolucin de un problema de tipo Timetabling Este trabajo de tesis fue presentado en la universidad de Valparaiso Chile el ao 2007 y se centra en encontrar una solucin al problema de asignacin de horarios que existe en la carrera de Ingeniera en Informtica Aplicada. Para resolver este problema se utiliz Algoritmos Genticos, que pertenecen al grupo de Tcnicas Metaheursticas y Algoritmos Evolutivos. El contenido del proyecto brinda un resumen sobre cmo resolver el problema de la construccin de horarios universitarios a travs de la aplicacin de algoritmos genticos. La importancia de este trabajo de tesis es que muestra en detalle un modelo
matemtico general para su resolucin, este modelo puede ser adaptado a los requerimientos de nuestro proyecto.[22] Distribucin ptima de Horarios de Clases utilizando la tcnica de Algoritmos genticos Trabajo de tesis implementado en la Universidad Tecnolgica de Mixteca (UTM) Mxico. El Algoritmo Gentico implementado en este trabajo de Tesis, reduce eficazmente el tiempo que toma elaborar una correcta asignacin de horarios, otra ventaja de utilizar el AG para la asignacin de horarios, es que no se limita a un determinado nmero de aulas si no que proporciona una opcin abierta para que dicho algoritmo se adapte al crecimiento de la infraestructura de dicha institucin. [23]
3.3.1. Sistemas de Informacin Un sistema de informacin es un conjunto de procedimientos ordenados que, al ser ejecutados, proporcionan informacin para apoyar la toma de decisiones y el control de la Institucin. La informacin se define como una entidad tangible o intangible que permite reducir la incertidumbre acerca de algn estado o suceso. Los sistemas de informacin administrativa estn volvindose indispensables, a gran velocidad, para la planificacin, la toma de decisiones y el control. La velocidad y exactitud con que los directivos pueden recibir informacin sobre lo que est funcionando bien o lo que est funcionando mal determinarn, en gran medida, la eficacia que tendrn los sistemas de control. Dado que los sistemas de informacin desempean un papel tan importante en la administracin de instituciones educativas, ahora es fundamental que los directivos entiendan cmo deben disear aplicar y manejar tales sistemas. [24] 3.3.2. Biometra Para David Zhang la biometra es: La biometra es la ciencia que se dedica a la identificacin de individuos a partir de una caracterstica anatmica o un rasgo de su comportamiento. Una caracterstica anatmica tiene la cualidad de ser relativamente estable en el tiempo, tal como una huella dactilar, la silueta de la mano, patrones de la retina o el iris. [25] 3.3.3. Sistemas Biomtricos. Son mtodos automatizados de reconocimiento de personas basados en caractersticas fisiolgicas o conductistas. Algunas de las caractersticas son cara, huellas digitales, geometra de la mano, escritura a mano, el iris, de retina, la vena, y la voz. Las tecnologas biomtricas se estn volviendo el principio bsico de un conjunto imponente de identificacin altamente seguro y soluciones de verificacin personal. Los sistemas biomtricos incluyen un dispositivo de captacin y un software que interpreta la muestra fsica y la transforma en una secuencia numrica nica. En el caso del reconocimiento de la huella digital, se ha de tener en cuenta que en ningn caso se extrae la imagen de la huella, sino una secuencia de nmeros que la representan; esto, adems, sirve para que nadie que opere con estos sistemas guarde un registro fotogrfico de las huellas digitales con la posibilidad de reproducirlas para otros usos.
- 19 CAPITULO II: Marco Terico de Ingeniera
A partir de los planteamientos de la asociacin internacional de biometra se deduce que, las aplicaciones de autenticacin biomtrica incluyen desde acceso seguro a computadoras, redes, la proteccin de datos, el acceso remoto a recursos, la seguridad en transaccin y la seguridad de Web, hasta el control horario y control de acceso fsico a una sala de acceso restringido. Utilizar sistemas biomtricos para la autenticacin personal se est volviendo conveniente y considerablemente ms preciso que los mtodos actuales (como la utilizacin de contraseas), esto es porque es particular (una contrasea o seal puede ser usada por alguien aparte del usuario autorizado), conveniente (nada a llevar o recordar), preciso (tiene prevista autenticacin positiva), pueden proveer una pista para auditoria y son socialmente aceptables.[25] Tabla 3.1. Comparacin de Mtodos Biomtricos
Ojo Iris
Fiabilidad Facilidad uso de
Ojo Retina Muy alta Baja Muy alta Media Alta Ambas -
Huellas dactilares Alta Alta Alta Alta Alta Ambas ANSI/NI ST Suciedad, heridas, Asperezas
Geometra de la Mano Alta Alta Alta Alta Media Autenticacin Artritis, Reumatismo .
Escritura Firma Alta Alta Media Muy alta Media Ambas Firmas fciles o cambiantes
Voz Alta Alta Media Alta Media Autentica cin SVAPI Ruido, resfriados ..
Gafas
Utilizacin
General
Industrial
3.3.4. Huella Digital Las huellas digitales son caractersticas exclusivas de los primates. En la especie humana se forman a partir de la sexta semana de vida intrauterina y no varan en sus caractersticas a lo largo de toda la vida del individuo. Son las formas caprichosas que adopta la piel que cubre las yemas de los dedos. Estn constituidas por rugosidades que forman salientes y depresiones. Las salientes se denominan crestas papilares y las depresiones surcos interpapilares. En las crestas se encuentran las glndulas sudorparas. El sudor que estas producen contiene aceite, que se retiene en los surcos de la huella, de tal manera que cuando el dedo hace contacto con una superficie, queda un residuo de sta, lo cual produce un facsmil o negativo de la huella [27] Para que un sistema biomtrico sea eficiente, los indicadores o rasgos personales deben reunir las siguientes cualidades. Permanencia: No cambian sus caractersticas con el tiempo. Unicidad: Siempre difieren, son nicas e irrepetibles an en gemelos. Universalidad: Todas las personas tienen huellas digitales. Cuantificacin: la caracterstica puede ser medida en forma cuantitativa.
Figura 3.1. Lector de huella RS- 120 Fuente [28] Es un producto ADEL que permite la captura, procesamiento y verificacin de huellas digitales utilizando el mismo como un perifrico de entrada ms en un equipo que opera bajo los sistemas operativos Windows. El mismo realiza un barrido ptico de alta resolucin y a
- 21 CAPITULO II: Marco Terico de Ingeniera
partir de la imagen as obtenida por medio de sofisticados algoritmos matemticos obtiene un template o firma de dichas huellas, la cual puede servir para determinar y verificar la identidad de una persona con distintos fines aplicativos. El mismo dispositivo tambin tiene por medio de su capacidad de procesamiento integrada, la posibilidad de realizar la comparacin de dos huellas y determinar con alto grado de seguridad si las mismas pertenecen o no la misma persona. Funcionalidades Instalacin Plug & Play Cumple plenamente con las especificaciones USB 2.0, backward compatible con USB 1.1 Valores de FRR y FAR en excelente equilibrio para aplicaciones generales Alta definicin de las imgenes capturadas Durabilidad del lente dado que el mismo est protegido por una pelcula especial de PVD a tal efecto Sistema monoltico (lente, sistema ptico, sensor y electrnica en una sola pieza) Moderado consumo y sin necesidad de fuentes de alimentacin adicionales (el dispositivo se alimenta del mismo puerto USB) SDK opcional para la integracin a otras aplicaciones del usuario.
Especificaciones Tiempo de captura menor a 2 segundos (enrolamiento) Tiempo de verificacin menor a 1 segundo FAR Menor a 1 en un milln FRR menor a 1% Comunicacin con el PC(provistos por la interface USB) ngulo de captura 360 Sistemas operativos soportados: Windows 2000, Windows XP
Figura 3.2. Lector de huella Hamster Fuente [27] Nitgen es lder mundial en tecnologa y aplicaciones biomtricas, focalizado en soluciones de reconocimiento de huella dactilar. El sensor biomtrico desarrollado por Nitgen, consta de un diseo ptico nico, con una distorsin de imagen casi cero. Especificaciones Tcnicas Tipo de interfaces USB o Paralelo Resolucin USB 500 10 (DPI) Sistema operativo Windows 95/98/NT 4.0., 2000, ME, XP Temperatura 0 - 40
Aplicaciones habituales Seguridad para el ordenador, software y red informtica. Comercio electrnico. Seguridad para la banca, instituciones financieras. Medio de pago por huella digital. Otras muchas aplicaciones que requiera la autenticacin del usuario.
USB Fingerprint
El lector U.are. U4000B es un lector de huella digital diseado por la empresa DigitalPersona, tiene la habilidad incomparable de reconocer incluso las huellas digitales ms difciles.
Tipo Resolucin
: :
Tamao de imagen: 355 x 390 pixeles Color Conexin : : 256 Levels grayscale USB 1.0., 1.1, 2.0 Windows Vista/XP/2003/2000 y Linux
SO Soportados
Los desarrolladores de software biomtrico que utilizan el lector DigitalPersona utilizan el FingerPrint SDK (Software Development kit). El FingerPrint SDK es un paquete de desarrollo de software para reconocimiento de huellas dactilares que permite integrar la biometra a un amplio y variado espectro de aplicaciones; este paquete es ofrecido en dos variantes: Fingerprint SDK para Windows que permite la programacin en varios lenguajes sobre Windows a travs del uso de componentes DLL o ActiveX(COM) y Fingerprint SDK para Java que le permite desarrollar programas multiplataforma en java y ejecutarlos tanto en Micorosoft Windows como en GNU/Linux. Conclusin Para dar solucin al problema del control de asistencia al personal docente de la Universidad Pedaggica Nacional Mariscal Sucre se eligi la tecnologa Biomtrica por medio de reconocimientos de huellas digitales, por ser la ms estudiada, desarrollada y aceptada hasta la fecha; as mismo se utilizar el lector de huellas DigitalPersona porque permite desarrollar aplicaciones tanto en Windows como en Linux, pero sobre todo porque la institucin cuenta con los lectores de huellas DigitalPersona. 3.3.6. Timetabling Araujo Lourdes [33] define el problema de Timetabling como la asignacin, sujeta a restricciones, de los recursos otorgados con el propsito de ser establecidos en un espacio de
tiempo, de tal manera que satisfaga lo ms cercanamente posible el conjunto de objetivos deseados. Una definicin general para un problema de Timetabling es aquella donde se asignan un conjunto de eventos (regiones, encuentros, exmenes, asignaturas, entre otros) dentro de un nmero limitado de periodos de tiempo sujeto a un conjunto de restricciones. Las restricciones son generalmente clasificadas en dos tipos: duras y blandas. Las restricciones duras bajo ninguna circunstancia deben ser infringidas y son utilizadas para encontrar soluciones factibles, y las restricciones blandas son deseables de cumplir, pero dicha exigencia puede ser relajada si es necesario y generalmente son utilizadas para entregar un costo a la funcin objetivo la que ser optimizada. El desafo en la construccin de estos horarios radica en proponer una planificacin que cumpla con todas las restricciones impuestas y obtenga una solucin de calidad aceptable en un tiempo razonable. Conseguir este propsito no es fcil, pues, por la cantidad de restricciones impuestas a estos problemas se convierten en difciles de resolver y pueden ser extremadamente consumidores de tiempo. Timetabling pertenece a la categora de problemas NP-Completos, en los cuales existe una proporcin directa entre el tiempo y la calidad de la solucin, lo cual impulsa a utilizar mtodos de bsqueda que entreguen una solucin cercana al ptimo en un tiempo adecuado, ya que, en este tipo de problemas existe la posibilidad de no encontrar la solucin ptima global, aunque se podran encontrar ptimos locales. [31] 3.3.7. Timetabling Educational (TTE) Los problemas de Timetabling Educacional se asocian a la labor de organizar una secuencia de eventos (generalmente asignaturas o exmenes), en un perodo de tiempo determinado satisfaciendo un conjunto de restricciones. Las restricciones comprenden hechos como evitar los choques de horario, capacidad de salas, carga de trabajo y disposicin para estudiantes y profesores, asignacin de recursos o equipos, entre otros.
3.3.7.1. Tipos de Problemas TTE Existen un gran nmero de variaciones de estos problemas, los cuales difieren del tipo de eventos, institucin involucrada (universidad o Escuela), y de sus restricciones. De acuerdo a esto se pueden identificar tres grupos, los cuales se describen a continuacin. a) High-School Timetabling: Tambin conocido como Class Teacher Problem, considera el horario semanal para las sesiones de las asignaturas de una escuela o colegio. Dada las asignaturas, profesores, bloques y una matriz de requerimientos (que establece el nmero de sesiones que cada profesor dicta por asignatura), el problema consiste en asignar las sesiones a los perodos de tiempo, de tal manera que ningn profesor o asignatura tenga ms de una sesin en el mismo perodo y que todas las sesiones de la asignatura estn presentes en el horario. b) University Timetabling: Este problema consiste en organizar un horario para las sesiones de un conjunto de asignaturas, considerando un nmero determinado de salas y bloques de tiempo. La diferencia principal entre un horario escolar y universitario es la forma en la que se considera a los estudiantes. En el mbito escolar estos se pueden considerar como una entidad, debido a que es un grupo de alumnos que toman las mismas asignaturas; en el caso universitario generalmente con rgimen semi-flexible los estudiantes toman distintas asignaturas adems de las asignaturas en comn. Adems, se presenta el problema de la capacidad de las salas, cada asignatura tiene asociada su propio requerimiento, en cambio para el caso de las escuelas se puede destinar la misma sala para el curso. c) Examination Timetabling: Este problema consiste en asignar el horario a los exmenes, determinando la cantidad de salas y tiempo para realizar el examen. La cantidad de exmenes depende de los requerimientos de las instituciones para evaluar los conocimientos de los alumnos que cursan la asignatura.
- 26 CAPITULO II: Marco Terico de Ingeniera
A pesar que este tipo de problema se presenta en el mismo mbito que el problema de la asignacin de asignaturas, posee sus diferencias. Con el fin de destacar las diferencias existentes entre los problemas de High School Timetabling y University Timetabling, sus principales caractersticas se describen en la tabla 3.2. Tabla 3.2. Diferencias entre High School y university timetabling. Caractersticas High School TT University TT Por clases Por estudiante Programacin Pocas Elecciones Muchas Elecciones Posibilidad de Escoger Mallas bien estructuradas Mallas dbilmente estructuradas Ajustado Flexible Disponibilidad (Posee gran carga) (Posee carga liviana) Profesor Pocas salas Muchas salas Salas Mismo Tamao Variedad de tamaos Centralizadas Descentralizadas Satisfaccin de Minimizacin de Criterio de Restricciones restricciones Optimizacin trasngredidas Fuente:[21] Conclusin Las publicaciones recientes sobre la asignacin de horarios, son siempre enfocadas a un caso particular, en cambio coinciden en que no existe un modelo general que pueda ser aplicado a todas las realidades. Sin embargo, existen modelos particulares que pueden ser aplicados con mnimos cambios a otras situaciones. En relacin, a la clasificacin de los tipos de problemas de Timetabling, presentados anteriormente, el problema a resolver se clasifica como un Problema Timetabling Educacional de tipo High School Timetabling, porque las restricciones de nuestro caso de estudio se asemejan a este tipo (como se demuestra en el captulo IV).
3.3.8. Mtodos de Optimizacin El trmino Optimizacin se refiere a un problema complejo de decisin, que incluye la seleccin de valores para cierto nmero de variables interrelacionadas, centrando la atencin en un solo objetivo diseado para cuantificar el rendimiento y medir la calidad de la decisin. Este nico objetivo se maximiza o minimiza segn las restricciones que pueden limitar la seleccin de valores de las variables de seleccin. [29] 3.3.9. Tcnicas heursticas Modernas Bajo el trmino de Tcnicas heursticas Modernas (Reeves, 1993) se engloba a un conjunto de tcnicas de bsqueda de soluciones, cuyo funcionamiento se inspira en procesos naturales. Estas tcnicas se caracterizan por ser mtodos que generan soluciones que, a partir de valores iniciales, emplean un conjunto de mecanismos de bsqueda para mejorar stas. En la figura 3.4 Se muestra una clasificacin de las tcnicas de bsqueda
TCNICAS DE BSQUEDA
ALEATORIAS
GUIADAS
NO GUIADAS
BSQUEDA TAB
RECOCIDO SIMULADO
ALGORITMOS EVOLUTIVOS
REDES NEURONALES
PROGRAMACIN GENTICA
ESTRATEGIAS EVOLUTIVAS
PROGRAMACIN EVOLUTIVA
ALGORITMOS GENTICOS
Para resolver el problema de la generacin de horarios y distribucin de aulas se utiliza los Algoritmos Genticos ya que esta tcnica ha sido muy utilizada en problemas, por el mismo hecho existe documentacin e inclusive algoritmos ya propuestos para este problema. 3.3.9.1. Algoritmos Genticos Los Algoritmos Genticos (AGs) son mtodos adaptativos que pueden usarse para resolver problemas de bsqueda y optimizacin. Estn basados en el proceso gentico de los organismos vivos. A lo largo de las generaciones, las poblaciones evolucionan en la naturaleza de acorde con los principios de la seleccin natural y la supervivencia de los ms fuertes, postulados por Darwin (1859). Por imitacin de este proceso, los algoritmos Genticos son capaces de ir creando soluciones para problemas del mundo real. La evolucin de dichas soluciones hacia valores ptimos del problema depende en buena medida de una adecuada codificacin de las mismas. Los principios bsicos de los Algoritmos Genticos fueron establecidos por Holland (1975), y se encuentran bien descritos en varios textos. Los AG usan una analoga directa con el comportamiento natural. Trabajan con una poblacin de individuos, cada uno de los cuales representa una solucin factible a un problema dado. A cada individuo se le asigna un valor puntuacin, relacionado con la bondad de dicha solucin. En la naturaleza esto equivaldra al grado de efectividad de un organismo para competir por unos determinados recursos. Cuanto mayor sea la adaptacin de un individuo al problema, mayor ser la probabilidad de que el mismo sea seleccionado para reproducirse, cruzando su material gentico con otro individuo seleccionado de igual forma. El poder de los Algoritmos Genticos proviene del hecho de que se trata de una tcnica robusta, y pueden tratar con xito una gran variedad de problemas provenientes de diferentes reas, incluyendo aquellos en los que otros mtodos encuentran dificultades. Si bien no se garantiza que el Algoritmo Gentico encuentre la solucin ptima del problema, existe evidencia emprica de que se encuentran soluciones de nivel aceptable, en un tiempo competitivo con el resto de algoritmos de optimizacin combinatoria. [30]
3.3.9.2. Terminologa de los Algoritmos Genticos Gen: Representa el valor de una variable de decisin (Tambin se podran usar un grupo de genes, para representar una solucin, una variable un poco ms compleja), de manera anloga a como nuestros genes nos indican el color de ojos, de piel, la altura, etc; en modelacin matemtica puede indicar niveles de mano de obra, de inventarios, etc. Si el gen es dominante, perdura en la herencia que se haga dependiendo del filtro de seleccin artificial, si el gen es recesivo, desaparece a lo largo de las generaciones segn la presin del medio ambiente. Cromosoma: Un cromosoma est formado por un grupo de genes. Es el conjunto de la solucin en s. Longitud de la Cadena: Es el nmero de genes que componen el cromosoma. O sea el nmero de variables que tiene el modelo matemtico. Funcin de Aptitud: La funcin de aptitud le da una calificacin sobre que tan bueno es un conjunto de genes para obtener un objetivo dado, y con ello se realiza un filtro de las caractersticas que se propagan entre generaciones, y cules no. Normalmente esta funcin de aptitud ser la misma funcin objetivo del modelo matemtico. Resolucin de un Algoritmo Gentico La resolucin de un algoritmo gentico consta de 5 etapas: 1. Inicializar aleatoriamente una poblacin de soluciones a un problema, representadas por una estructura de datos adecuada.
2. Evaluar cada una de las soluciones, y asignarle una puntuacin segn lo bien que lo hayan hecho. 3. Se Selecciona el individuo con mayor puntacin por medio de la rueda ruleta Los mejores individuos (mas adaptados) tienen: Mas chance de ser elegidos Mas espacio en la ruleta
Mejor
Peor
4. Se cruzan aleatoriamente dos individuos para crear una descendencia, que ser evaluado asignndole puntaje.
Figura 3.6. Cruce de Soluciones Fuente: [31] 5. Se aplican mutaciones, cambios al azar, dentro de su estructura o cdigo. Posteriormente se evala y se asigna un puntaje.
6. Al llegar la poblacin a un tamao determinado se eligen aquellos con una puntuacin ms alta, se eliminan el resto y se repite, un nmero determinado de veces, o hasta que se haya encontrado la solucin deseada, estas etapas desde el nmero 3.
Figura 3.8. Seleccin de la Poblacin Fuente: [31] Esquema Bsico de un algoritmo Gentico [30] Algoritmo gentico principio t:=0; inicializa P(t); evala P(t); mq not termina hacer t:=t+1; P(t):=selecciona P(t-1); cruzar P(t); mutar P(t); evalar P(t) fmq; fin Actualmente, esta tcnica de bsqueda ha alcanzado un impresionante xito debido a que su aplicacin en problemas de optimizacin no requiere de conocimiento auxiliar sobre el problema a resolver. [31]. A continuacin se mencionan algunos de los diseos de Algoritmos Genticos (AG) propuestos que ms se asemejan a nuestro proyecto para resolver el problema de los horarios y aulas en entidades acadmicas.
3.3.9.3. Modelo 1: Modelo General ACA (Asignacin de Carga Acadmica) [32] Este diseo presenta los siguientes datos: a) Un conjunto finito de grupos-materias que incluye la combinacin de todas las materias que se impartirn en un perodo escolar determinado as como los grupos de alumnos que cursarn dichas materias y se representan mediante claves alfanumricas. b) Un conjunto finito de profesores identificados por claves numricas enteras. c) Un conjunto de horas que contiene la codificacin con claves numricas enteras de la jornada de clases del perodo escolar. Tabla 3.3. Codificacin de la jornada de clases Clave Horario de Clase 1 7:00 8:00 2 8:00 9:00 . . . . . . 12 19:00 20:00 Fuente. Modelo General ACA [32] Del modelo ACA surge la relacin [Grupo_Materia, Profesor, Hora] que representa un Gen del Cromosoma, la tabla 3.4 muestra la representacin no binaria de un gene para el modelo de ACA que asigna la materia AM5 (Qumica) del grupo A que ser impartida por el (la) profesor(a) 15, de lunes a viernes en la hora 2 (8:00 - 9:00). Tabla 3.4. Representacin no binaria de un gene AM5A 15 2 2 2 2 2 Fuente Modelo General ACA [32] Sin embargo, cada perodo de clases tiene varios grupos-materia y para indicar la distribucin completa de ACA, es necesario, concatenar un gene por cada grupo-materia requerido en ese perodo, formando un cromosoma (Figura 3.9.). En esta figura, las lneas punteadas separan los genes de cada perodo escolar, mientras que las lneas dobles delimitan los perodos escolares. Al final del cromosoma se anexa un campo para determinar la aptitud total del cromosoma.
Figura 3.9. Representacin no binaria de un cromosoma Fuente: [32] La primera etapa de un AG es la generacin de la poblacin inicial, en la cual se generan aleatoriamente N cromosomas, donde N representa el tamao de la poblacin, es decir, la cantidad de soluciones que se generan en cada etapa. A cada grupo-materia se le asigna aleatoriamente un profesor de los disponibles para impartirla. Una vez escogido el maestro, tambin se asigna, en forma aleatoria, una hora de clase al grupo-materia dentro del horario de disponibilidad del profesor. 3.3.9.4. Modelo 2: Modelo de Distribucin ptima de Horarios de Clases utilizando la tcnica de AG propuesto en la Universidad Tecnolgica de Mixteca [23] Este diseo Presenta los Siguientes Datos: a) conjunto de cursos o materias C={C1, C2, C3, C4,......., Cm}, donde cada elemento de C requiere que se le asigne un lugar y un tiempo. b) Las aulas con que cuenta la Universidad pueden ser vistas como un conjunto de casillas que estn disponibles las 7 horas al da (de las 08:00 a las 13:00 hrs y de las 16:00 a las 18:00 hrs) de Lunes a Viernes, esto da como resultado un total de 7n_aulas (donde n_aulas representa el nmero total de aulas) espacios disponibles para asignarles los cursos correspondientes, en este caso particular el curso que se imparte el da Lunes a una determinada hora ser el mismo que en los dems das de la semana. De esta manera la calendarizacin de los m cursos es una funcin que mapea a cada curso con un espacio disponible.
Inicialmente se crea al azar cierto nmero de funciones. Cada una de estas funciones asigna al conjunto {C1, C2, C3,.., Cm} al codominio de espacios disponibles denominado {E0,, ..., E7n_aulas}. A estas funciones las llamaremos F1,..., Fk , donde k es un nmero entero positivo. Esto se puede ver mejor en la Figura 3.10.
Figura 3.10. Correspondencia entre los cursos a impartir y los espacios disponibles Determinada por la funcin Fio para algn io {1,,k}. Fuente: [23] Despus de que se han creado las funciones se determina la aptitud de cada funcin, es decir, qu tan buena es la calendarizacin que cada funcin representa. Esto se hace de la siguiente forma: para cada funcin debemos de determinar cuntos choques les causa la calendarizacin a los estudiantes. Puesto que sabemos cules son los cursos que cada estudiante debe recibir, entonces tomamos los cursos que debe llevar cada estudiante y (digamos que estamos buscando la aptitud de la funcin F1) determinamos si ese estudiante tiene algn conflicto de horario en relacin con la calendarizacin especificada por F1. Por cada choque le restamos cierta cantidad a la aptitud de F1. Cuando se ha calculado la aptitud de todas las funciones que se crearon al azar, entonces tenemos la primera poblacin. (Los elementos de esta poblacin, o entidades, son las funciones, y "estarn ms adaptadas al ambiente" cuanto ms alta sea su aptitud). De esta poblacin se hace el cruce y posteriormente se realiza la reproduccin sexual, esto se lleva a cabo tomando pares de funciones del cruce y recombinndolas. Esto con el objetivo de crear dos nuevas funciones que se agregarn "en la prxima generacin" de la poblacin. Cuando ya se han creado suficientes funciones para la nueva generacin, se les calcula sus aptitudes y se desecha la generacin anterior. La nueva generacin se convierte en la generacin actual la
cual se usa para crear un nuevo cruce y la historia se repite. El proceso termina hasta que por medio de reproduccin sexual se obtiene alguna funcin con una aptitud suficientemente alta para satisfacer nuestras necesidades. 3.3.9.5. Modelo 3: Modelo Matemtico para un problema de tipo Time Tabling [22] Modelo particular En el siguiente planteamiento, se establecen los recursos necesarios para describir el modelo matemtico. Parmetros m = cantidad de salas. n = cantidad de asignaturas. p = cantidad de profesores. q = cantidad total de perodos semanales. m; n; p; q Z
[a , b] = intervalo de asignaturas correspondientes a un semestre. [c , d] = intervalo de perodos correspondientes a un da de la semana. Ki = capacidad de la sala i en trminos de alumnos. Cj = cantidad de alumnos en la asignatura j. j i {1,,m}
{1,,n}
Restricciones del Problema 1. Toda Sala i puede tener a lo ms una asignacin en un perodo
4. Todo profesor k debe tener asignado a lo ms una asignatura j y una sala i en un perodo l.
5. Los horarios de las asignaturas de un mismo semestre no deben coincidir en un mismo perodo.
En donde, las variables chsl y chpl representa los choques de salas y profesores en un mismo ao, respectivamente, mientras que chsg y chpg representan los choques de salas y profesores entre aos.
Conclusin Para resolver el problema de Timetabling en la Universidad Pedaggica Nacional Mariscal Sucre se eligi el modelo 1 descrito anteriormente; este modelo a diferencia de los otros dos anteriores describe un modelo que es posible adaptar a las caractersticas particulares de nuestro problema con algunas variantes, por lo que resulta muy adecuado para su aplicacin. 3.3.10. Plataforma de Desarrollo del Software 3.3.10.1. Lenguaje de programacin java Java es un lenguaje de programacin con el que se puede realizar cualquier tipo de programa. En la actualidad es un lenguaje muy extendido y cada vez cobra ms importancia tanto en el mbito de Internet como en la informtica en general. Est desarrollado por la compaa Sun Microsystems enfocado a cubrir las necesidades tecnolgicas actuales. Una de las principales caractersticas por las que Java se ha hecho muy famoso es que es un lenguaje independiente de la plataforma. Eso quiere decir que si se realiza un programa en Java podr funcionar en cualquier ordenador del mercado. Es una ventaja significativa para los desarrolladores de software, pues antes tenan que hacer un programa para cada sistema operativo, por ejemplo Windows, Linux, Apple, etc. Esto lo consigue porque se ha creado una Mquina de Java para cada sistema que hace de puente entre el sistema operativo y el programa de Java y posibilita que este ltimo se entienda perfectamente. 3.3.10.2. Arquitectura Modelo Vista Controlador El Modelo Vista Controlador (MVC) es un patrn de arquitectura de software que separa los datos de una aplicacin, la interfaz de usuario, y la lgica de control en tres componentes distintos.
Modelo: datos y reglas de negocio. Vista: muestra la informacin del modelo al usuario. Controlador: gestiona las entradas del usuario
Figura 3.11 Esquema Modelo Vista Controlador Fuente: [34] Un modelo puede tener diversas vistas, cada una con su correspondiente controlador. Un ejemplo clsico es el de la informacin de una base de datos, que se puede presentar de diversas formas: diagrama de tarta, de barras, tabular, etc. Veamos cada componente: El modelo es el responsable de:
o o o
Acceder a la capa de almacenamiento de datos. Define las reglas de negocio (la funcionalidad del sistema). Lleva un registro de las vistas y controladores del sistema.
Recibe los eventos de entrada (un clic, un cambio en un campo de texto, etc.). Contiene reglas de gestin de eventos, del tipo "SI Evento Z, entonces Accin W". Estas acciones pueden suponer peticiones al modelo o a las vistas. Una de estas peticiones a las vistas puede ser una llamada al mtodo "Actualizar()". Una peticin al modelo puede ser "Obtener_tiempo_de_entrega ( nueva_orden_de_venta )".
Recibir datos del modelo y los muestra al usuario. Tienen un registro de su controlador asociado (normalmente porque adems lo instancia).
Pueden dar el servicio de "Actualizacin()", para que sea invocado por el controlador o por el modelo (cuando es un modelo activo que informa de los cambios en los datos producidos por otros agentes).
3.3.10.4. Entorno de Programacin Un IDE (Entorno de Desarrollo integrado) es un entorno de programacin que ha sido empaquetado como un programa de aplicacin, es decir, consiste en un editor de cdigo, un compilador, un depurador y un constructor de interfaz grfica GUI. Los IDEs pueden ser aplicaciones por s solas o pueden ser parte de aplicaciones existentes. Entre las ms representativas de acuerdo al lenguaje elegido podemos mencionar: JBuilder, Eclipse, Visual Studio.Net 2008 y Netbeans. Tabla 3.5. Comparativa de Entornos de Desarrollo
Caractersticas Lenguajes Soportados Visual Studio 2008 C/C++,C#,VB.Net, XAML, HTML/CSS, javascript, LINQ, ASP.net, XML/XSLT Windows y las diversas, versiones de Windows Autocompletado rpido, pero menos opciones a la vez Netbeans 6.0 C/C++, java, Ruby, PHP, Javascript, HTML/CSS,ISP, JavaFX, XSL, WSDL, UML. Windows, Linux, Unix, Solaris (sparc, X86/X64) Mac OX(Intel Power) Autocompletado de cdigo pero muestra todos los mtodos y variables al mismo tiempo. Edicin de cdigo es simple y fcil, proporciona diferentes eventos para cada componente, y puede ser editable para cada evento especfico. Netbeans Matisse, componentes FSF, base de datos de aplicacin, Beans binding, excelente herramienta de diseo UML, mobile Designer, BPEL algunas de las herramientas que no se encuentran en VS2008 Ms reciente lexer hace la compilacin en tiempo de ejecucin ms rpido, Javascript depurador con JBuilder 2008 Java
Plataforma
Windows y las diversas versiones de Windows. Auto complementado rpido y uso de shortcuts.
Autocompletar Cdigo
La edicin es simple y fcil. Cambio entre diseador y el cdigo de pantalla es doble clic en el control
Edicin de cdigo es simple y fcil, proporciona diferentes eventos para cada componente.
Winforms, ASP form designer, es grande, SZML diseador visual, adeministrador de base de datos, XML VB-enlaces, administrador de vista UAC, que es la mejora en VS2008. Compilacin en paralelo los sistemas multincleo, biblioteca de plantas estndar (STL) para C++,
desconocido
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS el apoyo y Phobos JMaki. paralelo.
Pruebas y Maintainance
Framework NET, Web service de WCF acogida basada en aplicaciones La unidad de pruebs han mejorado ligeramente, sistema de control de cdigo fuente se aade al equipo de desarrollo
Fuente: [35] NetBeans La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados mdulos. Un mdulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como mdulo. Las aplicaciones construidas a partir de mdulos pueden ser extendidas agregndole nuevos mdulos. Debido a que los mdulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fcilmente por otros desarrolladores de software. [10] Como ventaja se destaca que, pese a que java ha sido escrito en C/C++, su sintaxis es infinitamente ms clara e intuitiva; adems, desaparecen tanto los punteros (con los problemas asociados que causan) como la basura que generan los objetos y que hay que recojer a mano en C++ (de ello se encarga un recolector de basura especifico que se encuentra en la maquina virtual). Conclusin El entorno de desarrollo elegido para el proyecto es Netbeans 6.1 debido principalmente a la estabilidad, evolucin y superacin, adems que tiene caractersticas que permiten el rpido desarrollo de una aplicacin, por otro lado tiene el soporte de Sun Microsystems y es una comunidad bastante organizada en comparacin de los otros entornos mencionados, aunque ms pequea que la comunidad Eclipse. 3.3.11. Generador de Reportes 3.3.11.1. iReport El iReport e un constructor/diseador de informe visual poderoso, intuitivo y fcil de usar para JasperReports escrito en java pura del 100%. Este instrumento permite que usuarios corrijan
- 41 CAPITULO II: Marco Terico de Ingeniera
visualmente informes complejos con cartas, imgenes, subinformes, iReport es integrado con JFreeChart, una de la biblioteca de carta OpenSource ms difundida para Java. Los datos para imprimir pueden ser recuperados por varios caminos incluso mltiples uniones JDBC, TableModels, JavaBeans, XML, etc. Esto apoya la salida en PDF, XML, XLS, CSV, HTML, Java2D. Adems es un software libre.[37] El motivo principal por la seleccin de esta herramienta para el desarrollo de resultados y estadsticas es por tener compatibilidad exclusiva con java. 3.3.12. Gestor de Bases de Datos 3.3.12.1. PostGreSQL PostGreSQL es un sistema objeto-relacional, ya que incluye caractersticas de la orientacin a objetos, como puede ser la herencia, tipos de datos, funciones, restricciones, disparadores, reglas e integridad transaccional. A pesar de esto, PostGreSQL no es un sistema de gestin de bases de datos puramente orientado a objetos.[34] Las caractersticas positivas que posee este gestor segn las opiniones ms comunes en Internet, son: 1. Posee una gran escalabilidad. Es capaz de ajustarse al nmero de CPUs y a la cantidad de memoria que posee el sistema de forma ptima, hacindole capaz de soportar una mayor cantidad de peticiones simultneas de manera correcta (en algunos benchmarks se dice que ha llegado a soportar el triple de carga de lo que soporta MySQL). 2. Implementa el uso de rollback's, subconsultas y transacciones, haciendo su funcionamiento mucho ms eficaz, y ofreciendo soluciones en campos en las que MySQL no podra. 3. Tiene la capacidad de comprobar la integridad referencial, as como tambin la de almacenar procedimientos en la propia base de datos, equiparndolo con los gestores de bases de datos de alto nivel, como puede ser Oracle. Por contra, los mayores inconvenientes que se pueden encontrar a este gestor son: 1. Consume gran cantidad de recursos. 2. Tiene un lmite de 8K por fila, aunque se puede aumentar a 32K, con una disminucin considerable del rendimiento.
- 42 CAPITULO II: Marco Terico de Ingeniera
3. Es de 2 a 3 veces ms lento que MySQL. 3.3.12.2 MySQL MySQL es un sistema de gestin de bases de datos relacional, licenciado bajo la GPL de la GNU. Su diseo multihilo le permite soportar una gran carga de forma muy eficiente. MySQL fue creada por la empresa sueca MySQL AB, que mantiene el copyright del cdigo fuente del servidor SQL, as como tambin de la marca.[34] Caractersticas postivas de MySQL: 1. Lo mejor de MySQL es su velocidad a la hora de realizar las operaciones, lo que le hace uno de los gestores que ofrecen mayor rendimiento. 2. Su bajo consumo lo hacen apto para ser ejecutado en una mquina con escasos recursos sin ningn problema. 3. Las utilidades de administracin de este gestor son envidiables para muchos de los gestores comerciales existentes, debido a su gran facilidad de configuracin e instalacin. 4. Tiene una probabilidad muy reducida de corromper los datos, incluso en los casos en los que los errores no se produzcan en el propio gestor, sino en el sistema en el que est. 5. El conjunto de aplicaciones Apache-PHP-MySQL es uno de los ms utilizados en Internet en servicios de foro (Barrapunto.com) y de buscadores de aplicaciones (Freshmeat.net). Debido a esta mayor aceptacin en Internet, gran parte de los inconvenientes se exponen a continuacin, han sido extrados de comparativas con otras bases de datos: 1. Carece de soporte para transacciones, rollback's y subconsultas. 2. No es viable para su uso con grandes bases de datos, a las que se acceda continuamente, ya que no implementa una buena escalabilidad. Conclusin Se ha elegido el gestor de bases de datos MySql, porque es el ms usado en el mundo del software libre, debido a su gran rapidez y facilidad de uso, adems que existen infinidad de
- 43 CAPITULO II: Marco Terico de Ingeniera
libreras y otras herramientas que permiten su uso a travs de gran cantidad de lenguajes de programacin y su fcil instalacin y configuracin. 3.3.14. JPA: Java Persistence API Es usual trabajar con programacin orientada a objetos y utilizar bases de datos relacionales. Resulta obvio que se trata de dos paradigmas diferentes. El modelo relacional trata con relaciones, tuplas y conjuntos. El Orientado a Objetos, sin embargo, trata con objetos, sus atributos y relaciones entre objetos. Cuando se quiere hacer que los objetos sean persistentes utilizando para ello una base de datos relacional, existe una contradiccin entre estos dos paradigmas. Lo que necesitamos es una herramienta ORM (Object Relational Mapping). Bsicamente una ORM intenta hacer todas estas tareas pesadas por nosotros. Java Persistence API (JPA) proporciona un estndar para gestionar datos relacionales en aplicaciones Java Standar Edition (SE) o Java Enterprise Edition (EE), de forma que adems se simplifique el desarrollo de la persistencia de datos. Aunque ha sido definida como parte de la especificacin EJB 3.0 (Java EE 5), que supone una simplificacin sobre versiones anteriores, ya no requiere de un contenedor EJB ni un servidor de aplicaciones Java EE. Es una API de persistencia de POJOs (Plain Old Java Object). Es decir, objetos simples que no heredan ni implementan otras clases (como los EJBs). En su definicin, ha combinado ideas y conceptos de los principales frameworks de persistencia, como Hibernate, Toplink y JDO, y de las versiones anteriores de EJB. Todos estos cuentan actualmente con una implementacin JPA. El mapeo objeto-relacional (es decir, la relacin entre entidades Java y tablas de la base de datos) se realiza mediante anotaciones en las propias clases de entidad. No se requieren ficheros descriptores XML. Tambin pueden definirse transacciones como anotaciones JPA.[14]
3.3.15. Implementacion JPA. 3.3.15.1.Toplink Essentials Oracle TopLink, industria que conduce arquitectura Objeto Relacional de la persistencia de Java, proporciona un mecanismo altamente flexible y productivo para almacenar los objetos de Java en bases de datos relacionales. Toplink Essentials es un subconjunto gratuito del software java de acceso a datos de Oracle. Dicha empresa le aadi varias capas de abstraccin para hacerlo compatible con JPA, pero la base contina siendo la original, estando por tanto bastante maduro. Adems ofrece a desarrolladores funcionamiento excelente y opcin, trabajando con cualquier base de datos, cualquier servidor del uso, cualquier conjunto de herramientas y proceso de desarrollo, y cualquier arquitectura Java. El comportamiento de Toplink se acerca mucho al de Hibernate. La diferencia en memoria ocupada es poco apreciable. Si tenemos en cuenta la enorme diferencia con Eclipselink y OpenJPA, se puede decir que el rendimiento es muy similar al de Hibernate, y es desde luego una alternativa viable para su uso en produccin. [36] Conclusin La implementacin para JPA que se utiliza en el desarrollo del proyecto es el Toplink Essentials que adems de estar incluido por defecto en Netbeans 6.1 tiene un buen rendimiento y sobre todo se puede encontrar una variedad de documentacin y tutoriales para su aplicacin en el proyecto.
4.1.2. Obtencin de Requerimientos Los requerimientos fueron obtenidos mediante entrevistas a los Directores de Carrera, Coordinador de Nivel (Inicial, Primario y Secundario), Director Acadmico, Jefe de Recursos Humanos; tambin se utiliz el mtodo de la observacin, la revisin bibliogrfica. De las entrevistas se obtuvo la forma de trabajo actual, las necesidades actuales y las dificultades por las que atraviesan. Mediante la observacin y anlisis de documentos se pudo identificar el flujo de informacin, la distribucin que se tiene, la estructura de reportes y entender mejor el objeto de automatizacin. La revisin bibliogrfica permiti seleccionar el mtodo ms apropiado para la generacin de horarios (Algoritmos Genticos) y sobre todo el diseo del algoritmo y la codificacin del gen.
Experiencia laboral Situacin Laboral Obtener reportes a partir de los datos del personal Registro de turnos de trabajo tomando en cuenta los horarios de clase. Asignar turnos al personal docente. Registro de especialidades, carreras y asignaturas. Registrar un calendario acadmico que incluya das hbiles y no hbiles para su consideracin posterior. Control de Asistencia al Personal Docente de acuerdo a turnos asignados a cada docente y con el uso de un lector biomtrico. Generar reportes personalizados diarios y mensuales de asistencia, atrasos, faltas y licencias por docente. Registrar asignaturas y carga horaria a docentes. Construir Horarios y distribuir aulas para cada carrera de la Universidad Pedaggica. Permitir la modificacin de los parmetros para la generacin de horarios. Permitir consultar e imprimir los horarios por semestre. Permitir consultar e imprimir los horarios por aula. Permitir consultar e imprimir los horarios por profesor. Exportar los horarios generados a una hoja de clculo. El sistema debe proveer seguridad respecto a la informacin mediante la realizacin de copias de seguridad (backups). 4.1.4. Requerimientos no Funcionales Los requerimientos no funcionales que deben lograrse durante el desarrollo del software son los siguientes: El sistema debe funcionar con los ordenadores existentes en la institucin.
Debe existir facilidad de uso del uso del sistema, adems la interfaz debe ser amigable al usuario final, otorgando confianza para el manejo y desempeo del mismo.
El software debe ser robusto, es decir que no se vea afectado por manipulaciones inadecuadas del usuario.
El software debe contar con la ayuda necesaria accesible desde el sistema. El software debe contar con toda la documentacin necesaria de respaldo.
4.1.5. Requerimientos del Usuario Automatizacin de los procesos. Cambiar el trabajo manual y moroso por uno automatizado y sencillo. Reportes oportunos y confiables. Disponibilidad y seguridad de la informacin.
4.1.6. Identificacin de actores Los actores que intervienen en el sistema son: Jefe de Recursos Humanos: Es la persona encargada de gestionar toda la informacin de registro correspondiente al personal en el sistema, as como la asignacin de turnos y horarios correspondientes a cada uno de ellos y posteriormente emitir informes relacionados al kardex y control de asistencia. Encargado de Horarios: Es la persona encargada de gestionar toda la informacin correspondiente a los horarios, carreras, asignaturas y aulas; por otro lado emite reportes de los horarios por semestre, por docente y por aula. Personal: Es la persona que registra su huella digital que se utiliza para el control de asistencia. Administrador: Es la Persona que se encarga de introducir los datos generales del sistema y de darle mantenimiento.
4.1.7. Diagramas de Casos de Uso A continuacin se analizan los casos de uso para poder alcanzar los objetivos propuestos y a partir de stos se realizar el anlisis para poder determinar las calases e instancias del sistema. Diagrama de Casos de Uso Principal del Sistema
Gestin de Usuarios
Registrar Situacion Laboral Buscar Personal <<include>> Registrar Experiencia Laboral <<include>> <<include>>
Consultas
Reportes
Administrador
Encargado RRHH
Figura 4.2. Diagrama de Casos de Uso Gestionar Kardex de Personal Fuente: Elaboracin Propia Caso de Uso Gestionar Asistencia
Permisos
Registrar Turnos
Consultas
Calendario Academico
Reportes
Encargado RRHH
Figura 4.3. Diagrama de Casos de Uso Gestionar Asistencia Fuente: Elaboracin Propia
Registrar Huella
Personal
Encargado RRHH
Figura 4.4. Diagrama de Casos de Uso Controlar Asistencia Fuente: Elaboracin Propia Caso de Uso Generar Horarios
Generar Horarios
Reportes
Registrar Asignaturas
Consultas
Exportar Horarios
Figura 4.5. Diagrama de Casos de Uso Generar Horarios Fuente: Elaboracin Propia
4.1.8. Personas involucradas en el desarrollo y operacin En cuanto al desarrollo del sistema, el mismo estuvo a cargo del proyectista, en cuanto a la operacin del mismo todos los aspectos tcnicos estarn a cargo de la Unidad de Sistemas de la Institucin, los dems usuarios son los funcionarios encargados de Recursos Humanos, Direccin acadmica y personal docente. 4.1.9. Interfaces que requieren los usuarios Interfaces de entrada Las interfaces de entrada ms importantes que necesitan los usuarios para cumplir sus funciones son las siguientes: Para la gestin de personal y control de asistencia Interfaz para registrar datos del personal. Interfaz para registrar experiencia laboral Interfaz para registrar situacin laboral Interfaz para buscar personal. Interfaz para registrar Profesiones. Interfaz para registrar Turnos. Interfaz para asignar turnos al personal. Interfaz para registrar huella y fotografa del personal. Interfaz para configurar control de asistencia. Interfaz para capturar huella digital. Interfaz para el control y gestin de Asistencia al personal. Interfaz para registrar el calendario acadmico. Interfaz para asignar permisos al personal.
Interfaz para registrar asignaturas y carga horaria. Interfaz para asignar docentes a las diferentes asignaturas. Interfaz para registrar Aulas Interfaz para introducir parmetros para la generacin de horarios. Interfaz para la construccin de horarios y asignacin de aulas.
Para la administracin de usuarios del sistema y manejo de sesiones Interfaz para registrar usuario. Interfaz para asignar niveles de acceso al sistema
Interfaces de Salida Interfaz de reporte de Personal. Interfaz de reporte de carreras y asignaturas. Interfaz de reporte de turnos asignados al personal. Interfaz de reporte de control de asistencia. Interfaz de reporte de estadsticas de asistencia. Interfaz de reporte de horarios generados por Semestre. Interfaz de reporte de horarios generados por docente. Interfaz de reporte de horarios generados por aula.
4.1.10. Correspondencia entre elementos funcionales e interfaces Caso de uso: Gestionar Kardex Personal Interfaces: Ventana Registrar Personal Ventana Experiencia Laboral Ventana Situacin Laboral Ventana Buscar Personal
Caso de uso Gestionar Asistencia Interfaces: Ventana Registrar Turnos Ventana Asignar Turnos Personal Ventana Asignar Permisos Ventana Registrar Calendario Acadmico Ventana Administrar Huellas y Pin Ventana Consultas
Caso de Uso Controlar Asistencia Interfaces: Ventana capturar Huella y visualizar datos Ventana introducir Huella y Fotografa
Caso de Uso Generar Horarios Interfaces: Ventana Registrar Carreras Ventana Registrar Asignaturas Ventana Asignar Asignaturas a Docentes Ventana Introducir parmetros para horarios Ventana Registrar Perodos de clases Ventana Registrar Aulas Ventana Consultas Ventana Exportar Horarios
- 55 -
Cambios de requisitos que Establecer cuidadosamente los Posponer la entrega precisan modificaciones en el diseo y en la programacin. El tamao del sistema no ha sido bien determinado. Establecer bien la funcionalidad del sistema para poder tener una idea clara del tamao del producto y su alcance. Posponer la entrega como ltimo recurso si el apresurar el proceso de programacin no abastece para mitigar los efectos de riesgo. La complejidad del producto no ha sido correctamente evaluada. Establecer la complejidad del producto desde la captura de requerimientos. Reevaluar los requerimientos e implementar los cambios necesarios apresurando el proceso de desarrollo. El cliente no tiene una idea clara de lo que precisa. Consensuar entrevistas continuas con el cliente con el fin de aclarar sus ideas. Presentar propuestas que de alguna manera ayuden al cliente a precisar sus requerimientos. No se comprende las necesidades del cliente. Interactuar con el cliente con el objeto de tener bien claras las necesidades del mismo. Los clientes no Aumentar el tiempo destinado a la captura de requerimientos. requerimientos.
Explicar a los clientes al inicio Aclarar los problemas de cambiar los requerimientos.
comprenden el impacto de del proyecto sobre los los cambios en los requerimientos. inconvenientes que puede traer el hecho de incluir cambios en los requerimientos
- 56 -
El tiempo requerido para el proceso de desarrollo e implementacin est subestimado Que el producto no satisfaga las necesidades de los usuarios.
Tomar en cuenta la participacin del cliente en la captura de requerimientos y establecer revisiones constantes para ver su conformidad.
Tener presente la compatibilidad futura del proyecto a fin de que se adapte al entorno en el cual ser puesto en marcha.
Adecuar el sistema realizando los cambios necesarios para subsanar dicha incompatibilidad. Revisar el modelo de requerimientos e informacin necesaria.
No se cuenta con los conocimientos necesarios para enfrentar la complejidad de los requisitos. No se est disponible en momentos crticos.
Adentrarse lo necesario en las necesidades del proyecto a fin de tener clara la complejidad del sistema.
Adecuar las actividades a las necesidades del proyecto. Incrementar el tiempo de desarrollo en la medida de lo posible. Establecer un poco ms de tiempo para familiarizarse con el uso de las herramientas a usar o buscar
El tamao del proyecto es mucho mayor al tamao previsto. No se conoce el uso de las herramientas necesarias para el desarrollo del proyecto.
Determinar la funcionalidad del sistema al inicio del desarrollo. Escoger herramientas cuyo manejo sea conocido.
- 57 -
herramientas alternativas cuyo manejo si sea conocido. Fuente: elaboracin propia 4.2.2. Arquitectura del Sistema En cuanto a la arquitectura usada en el diseo y desarrollo del sistema se utiliz la arquitectura MVC, porque la misma describe una forma de separar los datos de la aplicacin de la interfaz de usuario y la lgica de control en tres componentes distintos, separacin que facilita la realizacin de cambios en la aplicacin, se hizo esta eleccin considerando la posibilidad de realizar cambios de bases de datos, programacin o interfaz de usuario, slo se tocara uno de los componentes y no todos.
kardex de Personal
Utilidades
Entidades
Control de Asistencia
Control DAO
Generar Horarios
- 58 -
4.2.3. Estructura Esttica del Sistema 4.2.3.1. Estructura de Datos La estructura de datos planteada es el diagrama de clases, en el mismo se define la estructura esttica del sistema, presentando las clases y las relaciones estructurales entre ellas. Una clase contiene atributos y operaciones. Los atributos contienen la informacin que debe ser almacenada de forma persistente y las operaciones nos permiten manipular los datos contenidos en los atributos. El diagrama de clases, presentado en la figura 4.7. Fue desarrollado a partir de la realizacin de los casos de uso, donde se establecieron los datos de relevancia que deban ser almacenados en las clases entidad.
- 59 -
- 60 -
Descripcin de las clases con mayor relevancia Nombre de Clase: Personal Descripcin: Almacena los datos personales de todos los docentes, sean estos con tem con contrato, para registrar la informacin completa a cada docente se utiliza las clases Experiencia Laboral y Situacin Laboral. Atributos: Ci aPaterno aMaterno nombres sexo fechaNacimiento LugarNacimiento nivelEstudio aniosServicio rda numHijos direccin telfono fotografa tipoMarca huella pin Profesion Operaciones String String String String char Date String String String String String String String Blob char Blob integer Profesiones
- 61 -
Guardar(): esta operacin se utiliza para registrar los datos de un nuevo personal, los datos se guardan en la tabla personal, SituacionLaboral y ExperienciaLaboral.
Consultar(); esta funcin se utiliza para verificar que el ci del personal no est duplicado en la tabla personal.
Editar(): devuelve los datos de algn personal especfico y permite actualizar los mismos.
Buscar(): mediante esta operacin se puede realizar la bsqueda de un determinado personal a partir de criterios de bsqueda como ci o apellido.
Nombre de Clase: TurnosPersonal Descripcin: En esta clase se almacenan los turnos asignados a cada personal, ci del personal a quien corresponde dicho turno, se en cuenta las fechas de inicio y conclusin de la gestin acadmica, as mismo cada turno tiene registrado la hora de ingreso y salida adems se considera el tiempo de tolerancia para cada turno. Atributos: ci idTurno desde hasta entrada salida Operaciones: Guardar() : esta operacin guarda los turnos asignados al personal previamente seleccionado, tomando en cuenta su horario acadmico Eliminar(): esta operacin elimina un turno que no hayan sido correctamente asignado o cuando su horario sea modificado. String integer Date Date time time
- 62 -
Nombre de Clase: Asistencia Descripcin: Esta clase almacena los datos relacionados a la asistencia, como ser: ci del personal, fecha, hora de ingreso y salida en el momento en que un docente coloca su huella digital en el lector de huellas, adems registra el tiempo de atraso si un docente marca fuera de horario pero dentro del lmite establecido o falta si es que no registro su huella. Atributos: idAsis Ci fecha nombreTurno entr sali Atraso Observaciones horasTrabajadas Operaciones: Consultar(): permite consultar el detalle de asistencia de cada personal por da y por mes. Nombre de Clase: Horarios Descripcin: almacena los horarios generados, tomando en cuenta todas las restricciones formuladas en el modelo matemtico Atributos: idHorario dia turno carrera integer String String String integer String Date String time time time String time
- 63 -
Consultar(): esta operacin permite realizar consulta de acuerdo a criterios establecidos como ser : por Semestre, por docente y por aula
Exportar(): permite exportar los horarios generados a una hoja de clculo (Excel).
4.2.4. Estructura Dinmica del Sistema Descripcin de la funcionalidad del Sistema Como se puede apreciar el sistema tiene como objetivo gestionar la informacin relacionada con el personal docente, kardex, asignar turnos, controlar asistencia, generar horarios relacionados a todas las carreras de la institucin, considerando lo mencionado se realizar la descripcin de la funcionalidad del sistema. Kardex de Personal: Este mdulo es el encargado de gestionar los datos del personal docente, adems de registrar la experiencia laboral de cada uno y su situacin actual en la institucin. Control de Asistencia: La funcin de este mdulo es la de registrar la asistencia del personal por medio de la captura y posterior validacin de la huella digital de cada personal, adems este mdulo permite registrar turnos, asignar turnos a docentes, gestionar permisos, registrar calendario acadmico, generar reportes de asistencia del personal. Generar Horarios: Este mdulo es el encargado de la creacin de horarios y asignacin de aulas, permite la configuracin de los parmetros para generar los horarios, generar reportes por Semestre, Docente y Aula.
- 64 -
: Encargado RRHH
: Principal
: Gestionar Personal
: Buscar
: PersonalDao
: Persona
8: mostrar() 9: parametros( )
10: Buscar Personal( )
- 65 -
1: abrir()
2: abrir()
: Encargado RRHH
20: salir()
: Principal
8: mostrar()
: Gestionar Personal
: Buscar
6: ok()
11: retornarPersonal()
: Persona
: PersonalDao
- 66 -
4.2.5. Mapeamiento para la implementacin del Sistema 4.2.5.1. Mapeamiento a Tablas El sistema est desarrollado con la metodologa orientada a objetos, pero trabaja con un gestor de base de datos relacional, por lo tanto existe una dificultad al momento de realizar el Mapeamiento de clases al modelo relacional, el cual es resuelto mediante el uso de JPA ToplinkEssentials que permite el Mapeamiento automtico de clases a tablas del modelo relacional segn estndares de JAVA. Este Mapeamiento permite implementar la base de datos en el gestor de base de datos seleccionado, el mismo se presenta en la Figura 4.10. Experiencia_Laboral
m
Profesiones
1 m
Permisos
Personal_permiso s
1 1
Situacion_Laboral
Personal
1 1
Turnos
Personal_turnos
m Personal_licencia s 1 1
Asignaturas
m m
Asistencia
Licencias
1
Carreras
- 67 -
4.2.5.2. Diseo de la Base de Datos La base de datos que registra la informacin general tiene la siguiente estructura:
Prof esiones cod_prof nombre_prof
Personal
ci
paterno
materno nombres
sexo
niv elEstudio
anioServ icio
rda
numHijos direccion
telef ono
f otograf ia
huella
pin
codProf
Situacion laboral
idSL
cargo
desde
hasta
codEmpleado
item
observ aciones
tipoEmpleado
situacionActual
ci
Experiencia laboral
idEL
lugarTrab
institucion
cargo
f echa_Ing reso
f echa_Retiro
ci
Asignaturas
ci
Turnos
idTurno
dia
entrada_min
entrada_max
salida_min
salida_max
Personal_Turnos c i
id-Turno
desde
hasta
entrada
salida
Licencias
id_licen cia
ci
desde
hasta
motiv o
Personal_Licencias id_licencia
ci
Permisos
id_per
ci
f echa
dia
turno
Personal_Permiso id_Permiso
ci
Asistencia id_asis
ci
f echa
nombre_Turno
entro
salio
atraso
observ
horas_Trab
Carreras
cod_carrera
nombre_carre ra
niv el
- 68 -
4.2.6. Elaboracin del algoritmo gentico para la distribucin de los horarios en la Universidad Pedaggica Mariscal Sucre. 4.2.6.1. Caractersticas Particulares de la Institucin Cada carrera cuenta con un bloque de aulas asignado. Las aulas de cada bloque tienen las mismas caractersticas. Cada carrera elabora su horario independientemente de las dems. No se toma en cuenta la disponibilidad de horario de los docentes. Cada docente tiene asignado la asignatura que debe impartir. No se toma en cuenta la cantidad de alumnos inscritos en cada asignatura.
Se toma como referencia el modelo 1 descrito en el captulo II con algunas variaciones de acuerdo a las caractersticas del problema a resolver. 4.2.6.2. Factores involucrados en la generacin de horarios Restricciones del problema Los das de clases son de Lunes a Viernes Los periodos de clases mximo son de dos horas en cada asignatura. Las asignaturas ya tienen asignados los docentes que deben impartirlas. Una asignatura puede ser asignado solo una vez en un da. Un profesor no puede estar en el mismo perodo de clases ms de una vez. Las asignaturas del mismo semestre no deben tener el mismo perodo de clases Se debe evitar las horas libres entre asignaturas del mismo semestre.
- 69 -
Datos de entrada Lista de Asignaturas a las que hay que asignar horarios; estos datos son recuperados de la base de datos del sistema. Tabla 4.2. Asignaturas
Cdigo Asignatura Nombre Asignatura Carga horari a
Semestre
LA EDUCACION EN EL DESARROLLO HISTORICO TALLER DE LENGUAJE ALGEBRA I GEOMETRIA GEOMETRIA ANALITICA PRACTICA PROFESIONAL I
2 2 4 4 4 3
Fuente: Elaboracin Propia Nota: En caso de existir grupos en determinadas asignaturas, estas se toman como asignaturas diferentes aadiendo una letra al cdigo de la asignatura que indique el grupo (B,C,D,,etc.). Lista de periodos : Tabla 4.3. Tabla Periodos Cdigo Da Periodo Periodo T1 Lunes 1 T2 Martes 2 T3 Mircoles 3 T4 Jueves 1 T5 Lunes 2 T6 Martes 3 Fuente: Elaboracin Propia
- 70 -
Lista de Aulas: Tabla 4.4. Tabla Aulas Cdigo Aula Bloque Descripcin A1 A Sector Primaria A2 A Sector Primaria A3 A Sector Primaria A4 A Sector Primaria F1 F Sector Secundaria F2 F Sector Secundaria Fuente: Elaboracin Propia
4.2.6.3. Diseo del Algoritmo Representacin del problema Para trabajar con un modelo gentico se debe definir aspectos que estn relacionados con la implementacin: el gen, el Cromosoma (conjunto de genes), que representa a los individuos de una poblacin, los operadores de cruce y mutacin y la funcin de aptitud, que mide qu tan bueno es un individuo como solucin del problema. Representacin del Gen El gen representa a una asignatura, el docente que la imparte, y la posicin de la asignatura en la lista Asignatura, y el semestre al que pertenece la asignatura. 1 asignatura docente posAsig Semestre estado
Las variables asignatura, docente y posAsig tomarn sus valores correspondientes, es decir la variable Docente tendr el cdigo del docente que imparta la asignatura, la variable posAsig hace referencia a la lista de asignaturas que deben asignarse un perodo en la que se impartir la asignatura y la variable semestre lleva la informacin del semestre de la asignatura, la variable estado se utiliza en el momento de hacer la evaluacin, en esta se almacena el numero de choques que tiene en todo el individuo.
- 71 -
Estructura de datos (clase) para representar el Gen: class Gene{ String asi, pro, pos, sem; //variables que almacenan asignatura, profesor, posicin y semestre respectivamente float adapt; float puntua //variable que almacena la adaptacin de un individuo //variable que almacena la puntuacin de un individuo
float punt_acum // variable que almacena la puntuacin acumulada de un Indiv. // Constructor para el gen que contiene informacin para evaluar el individuo public Gene(int ada,float punt,float pacum) { this.adapt = ada; this.puntua =punt; this.punt_acu=pacum; } // Constructor para los genes que contienen informacin de asignaturas, docente, // turnos y semestres para la generacin de horarios public Gene(String as, String pr, String pos, String se, int est) { this.asi=as; this.pro=pr; this.pos=pos; this.sem=se; this.est= es; } // mtodos setters y getters } class Gen { int tamAsig, tamPer; List listaAsignaturas; List listaAulaPeriodos; // Constructor de la Clase Gen
- 72 -
public Gen(List<Asignaturas> lAs,List<AulaPeriodos>lAp) { this.tamAsig = lAs.size(); this.tamPer = lAp.size(); //tamao de la lista asignaturas //tamao de la lista periodos
this.listaAsignaturas = lAs; //lista de asignaturas this.listaAulaPeriodos=lAp; //lista de aulaPeriodos } // mtodos Gene[ ]indivAlea(); // Devuelve un vector de genes (individuo), con genes aleatorios } Funcin indivAlea() // funcin que devuelve un vector(individuo) de Tipo Gene public Gene [ ] genAlea(){ Gene[] genes = new Gene[tamPer+1]; Asignaturas[] vectorAsignaturas= new Asignaturas[tamPer]; // se llena el vector con las asignaturas tomando en cuenta su carga horaria for (i = 0; i<tamAsig;i++){ // obtiene un objeto de la listaAsignatura Asignaturas objAsignatura=(Asignaturas) listaAsignaturas.get(i); // carga horaria de la asignatura ch= objAsignatura.getCargaHoraria( )/2; int cont=0; while (cont < ch){ vectorAsignaturas[pos]=obAsignatura; pos++; cont++; } // Selecciona una asignatura del vector sin repetir y // Asigna a un periodo aleatorio boolean vecA[] = new boolean[pos]; boolean vecP[] = new boolean[tamPer]; int ra=0,rp =0;
- 73 -
for(int j=0;j<pos;j++){ do{ //Nos da un n? si repetir ra = (int) ((pos) * Math.random()); }while ( vecA[ ra ] ); //Si ya estaba nos da otro vecA[ ra ] = true; //Se marca
// Selecciona una gen aleatorio del vector sin repetir //Para colocar la asignatura seleccionada do{ //Nos da un n? si repetir rp = (int) ((tamPer) * Math.random()); }while ( vecP[ rp ] ); //Si ya estaba nos da otro vecP[ rp ] = true; //Se marca
Asignaturas objAsignatura = (Asignaturas)vectorAsignaturas[ra]; String codAsig = objAsignatura.getCodAsig(); String docente = objAsignatura.getDocente(); String semestre = objAsignatura.getSemestre(); //String dia = aulaPer.getPeriodos().getDia(); int posListaA=ra; System.out.println(pos -1); Gene g =new Gene(codAsig,docente,posListaA,semestre); genes[rp]=g; }
return genes; } } 4.2.6.4. Representacin del Cromosoma (Individuo) Los individuos representan una asignacin de horarios para cada una de las asignaturas a considerar para una determinada carrera, por tanto, un individuo se representa como una lista de genes.
- 74 -
asignatura
docente
posAsignat
semestre
estado
Figura 4.12. Representacin del Individuo Inicial Fuente: Elaboracin Propia Donde: n: nmero de genes que componen el individuo (longitud del individuo), se calcula como la suma de las cargas horarias de las asignaturas que participan en la generacin de los horarios. Cada Gen (posicin) del individuo hace referencia a la lista de aulaPeriodos que contiene la informacin del da, periodo, aula. Estructura de datos (clase) para representar un individuo class Gene[ ] Cromosoma{ List As; List Ap; //Lista de objetos Asignaturas //Lista de Aula periodos
float adaptacin, puntuacin, punt_acum; Gen lisGenes= new Gen(As, Ap); Gene [] cadenaGenes =lisGenes.indivAlea(); return cadenaGenes; // retorna un vector (individuo) de tipo Gene } Luego del llenado del cromosoma, se aade un nuevo objeto de tipo Gene en la posicin n+1 que almacena la informacin de la adaptacin, puntuacin y la puntuacin acumulada. n+1: almacena un vector de tipo Gene cuyos datos son utilizados para la evaluacin del individuo, estos datos son: adaptacin, puntuacin y puntuacin acumulada.
- 75 -
n+1
Adaptacin
Puntuacin
Puntuacin Acumulada
Figura 4.13. Representacin del Individuo Final Fuente: Elaboracin Propia 4.2.6.5. Representacin de la poblacin La poblacin es un conjunto de individuos de tamao tp dado como parmetro (tamao de la poblacin). 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 n n n n+1 n+1 n+1 1 2 3 . . . tp
n+1
Figura 4.14. Representacin de la poblacin Fuente: Elaboracin Propia Al completar el llenado de la poblacin inicial, se evala la poblacin y se aade la informacin usual que necesita un algoritmo gentico, como ser: adaptacin, puntuacin, puntacin acumulada; en el gen de la posicin n+1. Adaptacin: Es una variable real que, que en este proyecto es un valor a minimizar. Cada vez que una restriccin es violada, la variable adapt se incrementa en uno, de tal manera que cuando la variable adapt se aleja de cero, quiere decir que tiene muchos choques. La principal caracterstica de la adaptacin es que tiende a cero cuando se satisfacen las restricciones, pero toma un valor grande cuando estas son violadas.
- 76 -
Estructura de datos para la funcin de adaptacin Pseudocdigo // funcin que recibe como parmetro un vector de genes(individuo) // devuelve la adaptacin de ese individuo Public int adaptacion(Gene[] indi){ int adapt = 0, npmpp =0, int namsp =0; for(int k =0;k<indi.length-1;k++){ if(indi[k]!=null ){ String a = indi[k].getAsi(); String p = indi[k].getPro(); int po = indi[k].getPos(); String s = indi[k].getSem(); List listP = auPerDao.listaAulaPeriodos(); AulaPeriodos pe = (AulaPeriodos) listP.get(k); String per= pe.getPeriodos().getPeriodo(); String d= pe.getPeriodos().getDia(); // Se verifica las restricciones violadas for(int j =0;j<indi.length-1;j++){ if(indi[j]!=null){ AulaPeriodos peri = (AulaPeriodos) listP.get(j); String perio= peri.getPeriodos().getPeriodo(); String dia= peri.getPeriodos().getDia(); //Un profesor no puede estar en ms de un periodo a la vez if((indi[j].getPro().equals(p))&& (perio.equals(per))){ adapt ++;/Nmero de mismo profesor mismo periodo } //Asignaturas del mismo semestre no pueden estar en el mismo periodo if(indi[j].getSem().equals(s)&& perio.equals(per)){ adapt ++;//Nmero de mismo semestre mismo periodo }
- 77 -
// Misma asignatura no puede estar en el mismo dia mas de una vez if(indi[j].getPro().equals(p) && indi[j].getDia().equals(d)){ adapt ++;//Nmero de mismo asignatura mismo dia } } } } }
que almacena
Esta frmula es utilizada para trabajar con problemas de maximizacin. Como la funcin de adaptacin devuelve la cantidad de restricciones que han sido violadas, significa que los individuos que tengan mayor cantidad de choques tendran mayor puntuacin y por lo tanto tendran mayor probabilidad de ser seleccionados, por lo que es necesario realizar una transformacin para calcular la puntuacin de cada individuo y de esta manera lograr que los individuos que poseen menor cantidad de choques tengan una mayor puntuacin. Puntuacin Acumulada: Es una variable real que almacena la suma acumulada de las puntuaciones de cada individuo: 4.2.6.6. Evaluacin de la poblacin La funcin de evaluacin evala cada individuo de la poblacin asignndole valores de adaptacin, puntuacin y puntuacin acumulada, necesarios para la ejecucin del algoritmo gentico.
- 78 -
Pseudocdigo funcin de evaluacin: public List<Gene[]> evaluarPoblacion(List<Gene[]> pobla){ int ad, ada; float pun; int tamIndiv =0; int sumTotalAdapta=0; float acum=0; List<Gene[]> poblacion = new ArrayList<Gene[]>();
DESDE j=0 HASTA pobla.size() HACER { Gene[] indiv = this.poblacionInicial.get(j); //obtiene el individuo j ad =(adaptacion(indiv)); sumTotalAdapta = ad + sumTotalAdapta; tamIndiv= indiv.length; Gene g =new Gene(ad,0,0); indiv[tamIndiv]= g; //agrega un nuevo gen al individuo j //con su valor de adaptacin poblacion.add(indiv); //agrega el individuo evaluado a //una poblacin temporal } //ciclo para invertir la funcin de maximizar a minimizar float suma2=0; DESDE m=0 HASTA poblacion.size() HACER { Gene[] indiv1 = poblacion.get(m); ada= adaptacion(indiv1); suma2 =suma2 + sumaTotalAdapta/ada; } DESDE k=0 HASTA poblacion.size() HACER { Gene[] individuo= poblacion.get(k); int ti= individuo.length; //obtiene el individuo k de la poblacin //obtiene el tamao del individuo //obtiene el individuo m de la poblacin //obtiene el tamao del individuo //adaptacin del individuo j
- 79 -
ad = individuo[ti].getAdapt(); //puntuacion invertida para minimizar pun =sumTotalAdapta/ad/suma2; acum= acum + pun; Gene ge = new Gene(ad,pun,acum); individuo[ti]= ge; }
// Retorna la poblacin evaluada con su adaptacin, puntuacin y acumulada return poblacion; } 4.2.6.7. Operadores Genticos Durante la etapa de alteracin del algoritmo, se usan dos clsicos operadores genticos: Mutacin que consiste en la modificacin del cdigo gentico del cromosoma, y cruce que es el intercambio de material gentico entre dos cromosomas. Estos operadores se seleccionarn, cada uno de los cuales tiene asociado una cierta probabilidad de ocurrencia, la cual se representa en nuestro algoritmo a travs de un nmero aleatorio, una vez seleccionado uno de estos operadores se aplica a la poblacin inicial. Si la seleccin nos da que se debe aplicar el operador de mutacin, lo que hace este operador, en primera instancia es obtener un nmero aleatorio, y con este valor, se revisa la puntuacin acumulada en la poblacin inicial, se selecciona el individuo; se obtienen dos nuevos nmeros aleatorios para intercambiar los genes a travs del operador de mutacin por intercambio. Una vez aplicado el operador, se guarda el nuevo individuo en una poblacin temporal y se obtiene nuevamente un nmero aleatorio con el fin de seleccionar otro operador gentico, el cual se aplica a la poblacin inicial, este proceso se realiza hasta llenar la poblacin temporal. Cuando el valor aleatorio da que se debe aplicar el operador de cruce, lo que hace este operador, es entregar un nmero aleatorio, y con este valor, se selecciona el individuo de forma similar al caso de mutacin, una vez seleccionado el primer individuo y el segundo individuo, se obtiene dos nuevos nmeros aleatorios y se aplica el operador de cruce por orden.
- 80 -
Pseudocdigo del operador gentico cruzar //Se aplica el operador de cruce por orden public Gene[] cruze(Gene[]in1,Gene[]in2){ int nAlea1 =0,nAlea2 =0,may=0,men=0; int li=in1.length; do{ nAlea1 = (int)((li-1)*Math.random()); nAlea2 = (int)((li-1)*Math.random()); }while (nAlea1!=nAlea2); if(nAlea1>nAlea2){ may =nAlea1; men =nAlea2; }else{ may = nAlea2; men = nAlea1; } Gene[]hijo= trozos(in1,in2,men,may); return hijo; } //Crea los nuevos hijos con el operador cruce por orden public Gene[] trozos(Gene[]padre1,Gene[]padre2,int p1,int p2){ int longitudIndividuo= padre2.length-1; Gene[] genes= new Gene[longitudIndividuo]; int i; //posicion de insercin for(i=p1;i<p2;i++){ genes[i]= padre2[i]; } int pos =p2%longitudIndividuo; for(i%=longitudIndividuo;i!=p1;i=(i+1)%longitudIndividuo-1){ //boolean existe=false; while(existe(genes,padre1[pos])==false){
- 81 -
pos=(pos+1)%longitudIndividuo; } genes[i]=padre1[pos]; } return genes; } public boolean existe(Gene[]genes,Gene ge){ boolean exis =false; int elemAs =ge.getPos(); for(int i=0;i<genes.length-1;i++){ if(genes[i]!=null){ if(genes[i].getPos()== elemAs){ exis=true; } } } return exis; } Pseudocdigo operador de mutacin // Operador de mutacion por intercambio public Gene[] mutacion(Gene[]in3){ int nAlea1 =0; int nAlea2 =0; int li=in3.length; Gene aux=null; do{ nAlea1 = (int)((li-1)*Math.random()); nAlea2 = (int)((li-1)*Math.random()); }while (nAlea1!=nAlea2); aux= in3[nAlea1]; in3[nAlea1]=in3[nAlea2]; in3[nAlea2]=aux; return in3; break;
- 82 -
} 4.2.6.8. Seleccin La seleccin implantada en el trabajo se denomina como seleccin a travs del mtodo de la ruleta. Este mtodo usa una distribucin de probabilidad, en donde la probabilidad de seleccionar un cromosoma (conjunto de genes que forman la solucin) es directamente proporcional a su puntuacin. Posteriormente se realiza una eleccin al azar, garantizando que sobrevivan los cromosomas con mejor adaptacin gentica. El cromosoma que resulte mejor en la evaluacin posee mayores posibilidades de salir seleccionado y formar parte de la nueva generacin. 4.2.6.9. Generacin de la poblacin inicial La primera etapa de un Algoritmo Gentico es la generacin de la poblacin inicial, en la cual se generan aleatoriamente tp cromosomas (tamao de poblacin), donde tp representa el tamao de la poblacin, es decir, la cantidad de individuos donde cada individuo representa una posible solucin al problema. A cada gen del individuo se le asigna aleatoriamente y sin repetir las asignaturas de la listaAsignaturas, Pseudocdigo para inicializar la poblacin public AGenetico(int numGeneraciones, int tamPoblacion,float pCruce, float pMutacion, List<Asignaturas> asignatur,List<AulaPeriodos> aulaPer,String carr ) { this.nGeneraciones = numGeneraciones; this.tPoblacion = tamPoblacion; this.probCruce = pCruce; this.probMutacion = pMutacion; this.lAsig = asignatur; this.lAuPerio = aulaPer; this.carrera = carr; } public List<Gene[]>inicializar() throws Exception{ for(int i=0;i<this.tPoblacion;i++){ Cromosoma cr=new Cromosoma(this.lAsig); Gene[] individuo= cr.llenarIndividuo(this.lAsig.size(),this.lAuPerio.size());
- 83 -
poblacionInicial.add(individuo); } Esquema propuesto para la ejecucin de un algoritmo gentico con los parmetros obtenidos desde una interfaz grfica. AGenetico AG = new AGenetico (numeroGeneraciones, tamaPoblacion, pCruce, pMutar,lisAsignatura, lisAulaPeriodos,carrera); poblacionInicial = AG.inicializar(); //inicializa la poblacin
poblacion =AG.evaluarPoblacion(poblacionInicial); //evala la poblacin while (numgen <= numeroGeneraciones){ List<Gene[]> poblacionTemporal=new ArrayList<Gene[]>(); //llenar poblacin temporal do{c= cruzar; o = AG.operadores( );//elige que operador usar a partir de una probabilidad if(o.equals(c)){ // si el operador es cruzar se seleccionan dos individuos aleatoriamente Gene[]ind1= AG.seleccionar(poblacion); Gene[]ind2= AG.seleccionar(poblacion); //se cruzan los dos individuos Gene[]newInc= AG.cruze(ind1,ind2); //se aade a la poblacin temporal poblacionTemporal.add(newInc); }else{// si el operador es mutar se selecciona un solo individuo Gene[]ind3= AG.seleccionar(poblacion); // se muta un gen del individuo Gene[] newInm = AG.mutacion(ind3); //Se aade a la poblacin temporal poblacionTemporal.add(ind3); } } // se realiza hasta que la poblacin temporal se llene }while(poblacionTemporal.size()== tamaPoblacion);
- 84 -
poblacion = AG.evaluarPoblacion(poblacionTemporal); numgen ++; } Este procedimiento se inicia con la funcin inicializar poblacin, con la cual se realiza el llenado de la poblacin inicial, cada individuo de esta poblacin se llena con la informacin de las asignaturas y los docentes que dictan estas asignaturas, la carrera a la que pertenece la asignatura, y el da asignado. Este procedimiento de inicializacin de la poblacin se realiza hasta que se llene por completo la poblacin. Una vez finalizada esta etapa, se procede a evaluar la poblacin, con lo cual se calculan los choques para cada individuo y se almacenan en la variable adaptacin, teniendo este dato se procede a calcular la puntuacin y la acumulada de cada individuo. Una vez realizada esta etapa, se procede a Ejecutar la rueda de ruleta, la cual obtiene un nmero al azar y selecciona, dependiendo del nmero, el operador gentico que se aplicar. El ciclo do while se realiza hasta llenar la poblacin temporal, que es donde se guardan todos los individuos a los que se les ha aplicado los operadores genticos. Una vez llenada la poblacin temporal, se procede a evaluar sta. A continuacin la poblacin temporal pasa a ser la nueva poblacin, mientras que la poblacin temporal queda vaca. El procedimiento principal se ejecuta hasta llegar a una solucin factible, o hasta completar el nmero de iteraciones definidas para la generacin. En cuanto a la modificacin que se realiz a la rueda ruleta, originalmente sta trabaja con funciones de maximizar, por lo que al calcular el porcentaje acumulado, la rueda de ruleta daba una mayor fraccin a los individuos que tenan ms choques, ya que, estos poseen una puntuacin mayor, y entregaba una fraccin menor a los que tienen menos choques. Es por esto que la funcin se modific, y as trabajar con las funciones minimizar. A continuacin, se presenta el cdigo utilizado para calcular el porcentaje acumulado: Nota: La mejor solucin es aquel individuo que tiene una puntuacin mnima o cero si es ptima.
- 85 -
4.3.2. Preparacin de la plataforma La plataforma es un vehculo par la tecnologa y debe estar correctamente configurada para el desarrollo de la implementacin del sistema. La ventaja del sistema es que al estar desarrollando la aplicacin en JAVA, se garantiza la portabilidad del sistema, que permitir su funcionamiento sin importar la plataforma en la cual sea implementada. 4.3.3. Preparacin del Hardware Incluye la infraestructura de servidores y equipos de redes para aplicaciones (arquitectura de la aplicacin) ver Figura Diagrama de Despliegue. 4.3.4. Preparacin del Software Incluye la preparacin y configuracin de las aplicaciones de software que interactan con la aplicacin incluyendo a la misma aplicacin. Entre estas encontramos: Sistema Operativo. Ambiente de la aplicacin, que permite la ejecucin del sistema, Sistema Gestor de Base de Datos y Maquina Virtual de Java.
- 86 -
4.3.5. Diagrama de Componentes Mediante los siguientes diagramas se ver la organizacin de los componentes (interfaces, mdulos, paquetes, archivos, cdigo fuente, etc.) del sistema y su dependencia con diferentes partes del mismo. Autenticar.java: Archivo responsable de permitir el acceso al sistema, mediante usuarios registrados con nombre y contrasea. Interfaz: Contenedor utilizado para el agrupamiento de todas las ventanas (interfaz) del sistema. ControlDao: Contenedor utilizado para almacenar los archivos encargados de manipulacin de datos y peticiones realizados por las interfaces de usuarios. Iconos: Contenedor de todas las imgenes utilizados en el sistema. Reportes: Contenedor que contiene todos los archivos compilados .jasper de los reportes del sistema. Procedimientos: Contenedor que contiene todos los archivos auxiliares utilizados por el sistema para el formateo de fechas, validaciones, manejo del lector biomtrico y archivos para la implementacin del algoritmo gentico para la construccin de horarios. Jasper.jar: librera de manipulacin de reportes para java. Jdbc.jar: Api que permite la ejecucin de operaciones sobre base de datos. ToplinkEssentials.jar: librera utilizada para la persistencia de objetos en la base de datos. Swing: Librera de componentes que ayuda a la esttica y funcionalidad en el desarrollo de interfaces de usuario. Entidades: Contenedor que contiene todas las clases entidad.
- 87 -
Princip al
Administrar Asistencia
Report es
ireport.jar
kardex personal
jarperReport
Construir Horarios
ControlDao
toplinkEssenti als
Entidades
- 88 -
Figura 4.17. Diagrama de Despliegue Fuente: Elaboracin propia 4.3.6. Estructura de Directorios y Archivos Los directorios y archivos del proyecto estn estructurados de la siguiente manera: La carpeta SISAACA contiene el archivo Autenticar.java que es el encargado de iniciar la aplicacin, esta carpeta a su vez se subdivide en: ControlDao: Paquete que contiene a las siguientes clases control encargadas del acceso a la Base de Datos Entidades: Paquete que contiene a las clases entidad. Iconos: Carpeta que contiene las imgenes utilizadas en el Sistema. Interfaz: Paquete que contiene los archivos de acuerdo a cada mdulo en los siguientes paquetes. ControlAsistencias Horarios Kardex Seguridad interfaz del sistema, agrupados de
- 89 -
META INF: Carpeta que contiene el archivo de configuracin y conexin a la Base de Datos (Persistence.xml). Procedimientos: Paquete que contiene archivos auxiliares utilizados por el sistema para el formateo de fechas, validaciones, manejo del lector biomtrico y archivos para la implementacin del algoritmo gentico para la construccin de horarios.
Reportes: Carpeta donde se almacenan los archivos compilados y archivos fuentes (.jasper y .jrxml) de todos los Reportes que son generados por el sistema. Lib: Esta carpeta contiene todas las libreras utilizadas por el sistema.
- 90 -
4.3.7. Implementacin de las clases en lenguaje de programacin La estructura de las clases que contiene el cdigo estn agrupados de acuerdo a cada mdulo, ya que se busca que el cdigo sea fcil de entender y modificar. A continuacin se detalla la implementacin de una Clase package Entidades; import java.io.Serializable; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; /** * * @author EDWIN */ @Entity @Table(name = "asistencia") @NamedQueries({@NamedQuery(name = "Asistencia.findByIdAsis", query = "SELECT a FROM Asistencia a WHERE a.idAsis = :idAsis"), @NamedQuery(name = "Asistencia.findByFecha", query = "SELECT a FROM Asistencia a WHERE a.fecha = :fecha"), @NamedQuery(name = "Asistencia.findByIdTurno", query = "SELECT a FROM Asistencia a WHERE a.idTurno = :idTurno"), @NamedQuery(name = "Asistencia.findByNombreTurno", query = "SELECT a FROM Asistencia a WHERE a.nombreTurno = :nombreTurno"), @NamedQuery(name = "Asistencia.findByEntrada", query = "SELECT a FROM Asistencia a WHERE a.entrada = :entrada"), @NamedQuery(name = "Asistencia.findByAtraso", query = "SELECT a FROM Asistencia a WHERE a.atraso = :atraso"), @NamedQuery(name = "Asistencia.findBySalida", query = "SELECT a FROM Asistencia a WHERE a.salida = :salida"), @NamedQuery(name = "Asistencia.findByObservaciones", query = "SELECT a FROM Asistencia a WHERE a.observaciones = :observaciones"), @NamedQuery(name = "Asistencia.findByHorasTrab", query = "SELECT a FROM Asistencia a WHERE a.horasTrab = :horasTrab")})
- 91 -
public class Asistencia implements Serializable { private static final long serialVersionUID = 1L; @Id @Column(name = "id_asis", nullable = false) private Integer idAsis; @Column(name = "fecha") @Temporal(TemporalType.DATE) private Date fecha; @Column(name = "id_turno") private Integer idTurno; @Column(name = "nombre_turno") private String nombreTurno; @Column(name = "entrada") @Temporal(TemporalType.TIME) private Date entrada; @Column(name = "atraso") @Temporal(TemporalType.TIME) private Date atraso; @Column(name = "salida") @Temporal(TemporalType.TIME) private Date salida; @Column(name = "observaciones") private String observaciones; @Column(name = "horas_trab") @Temporal(TemporalType.TIME) private Date horasTrab; @JoinColumn(name = "ci", referencedColumnName = "ci") @ManyToOne private Personal ci; public Asistencia() { } public Asistencia(Integer idAsis) { this.idAsis = idAsis; } public Integer getIdAsis() { return idAsis; } public void setIdAsis(Integer idAsis) { this.idAsis = idAsis; } public Date getFecha() { return fecha; } public void setFecha(Date fecha) { this.fecha = fecha; }
- 92 -
public Integer getIdTurno() { return idTurno; } public void setIdTurno(Integer idTurno) { this.idTurno = idTurno; } public String getNombreTurno() { return nombreTurno; } public void setNombreTurno(String nombreTurno) { this.nombreTurno = nombreTurno; } public Date getEntrada() { return entrada; } public void setEntrada(Date entrada) { this.entrada = entrada; } public Date getAtraso() { return atraso; } public void setAtraso(Date atraso) { this.atraso = atraso; } public Date getSalida() { return salida; } public void setSalida(Date salida) { this.salida = salida; } public String getObservaciones() { return observaciones; } public void setObservaciones(String observaciones) { this.observaciones = observaciones; } public Date getHorasTrab() { return horasTrab; } public void setHorasTrab(Date horasTrab) { this.horasTrab = horasTrab; } public Personal getCi() { return ci; } public void setCi(Personal ci) { this.ci = ci;
- 93 -
} @Override public int hashCode() { int hash = 0; hash += (idAsis != null ? idAsis.hashCode() : 0); return hash; } @Override public boolean equals(Object object) { // TODO: Warning - this method won't work in the case the id fields are not set if (!(object instanceof Asistencia)) { return false; } Asistencia other = (Asistencia) object; if ((this.idAsis == null && other.idAsis != null) || (this.idAsis != null && !this.idAsis.equals(other.idAsis))) { return false; } return true; } @Override public String toString() { return "Entidades.Asistencia[idAsis=" + idAsis + "]"; } } 4.3.8. Implementacin de la Base de Datos El gestor de base de datos elegido para gestionar la informacin generada por el sistema es MySQL 5.1. En la siguiente figura se puede observar la interfaz que presenta SQL Maestro for MySQL, la cual presenta todas las tablas utilizadas en el sistema.
- 94 -
Figura 4.19. Implementacin de la base de datos (Interfaz SQL Maestro for MySQL) Fuente: Elaboracin Propia
- 95 -
En la tabla 4.5 se muestra los niveles de acceso para los diferentes usuarios Tabla 4.5. Niveles de Acceso de Usuarios Kardex Control de Administrar Construir Seguridad Personal Asistencia Asistencia Horarios Si Si No Si Si No Si Si No Si No Si Si No No
Usuario
Nivel de Acceso 1 2 3
- 96 -
La prueba es un proceso que se enfoca sobre la lgica interna del software y las funciones externas. La prueba es un proceso de ejecucin de un programa con la intencin de descubrir un error. Un buen caso de prueba es aquel que tiene alta probabilidad de mostrar un error no descubierto hasta entonces. Una prueba tiene xito si descubre un error no detectado hasta entonces. Tcnicas de Prueba Una vez generado el cdigo fuente, es necesario probar el software para descubrir y corregir la mayor cantidad de errores posible antes de entregarlo al cliente. Su objetivo es disear una serie de casos de prueba que tengan una alta probabilidad de encontrar errores. Estas tcnicas proporcionan directrices sistemticas para pruebas de diseo que 1) comprueben la lgica interna y las interfaces de todo componente del software y 2) comprueben los dominios de entrada y salida del programa para descubrir errores en su funcin, comportamiento y desempeo. Prueba de caja Blanca: Permiten examinar la estructura interna del programa. Se disean casos de prueba para examinar la lgica del programa. Es un mtodo de diseo de casos de prueba que usa la estructura de control del diseo procedimental para derivar casos de prueba que garanticen que: Se ejercitan todos los caminos independientes de cada mdulo. Se ejercitan todas las decisiones lgicas. Se ejecutan todos los bucles. Se ejecutan las estructuras de datos internas
Prueba de caja negra: Las pruebas se llevan a cabo sobre la interfaz del software, y es completamente indiferente el comportamiento interno y la estructura del programa. Los casos de prueba de caja negra pretende demostrar que: Las funciones del software son operativas. La entrada se acepta de forma adecuada. Se produce una salida correcta. La integridad de la informacin externa se mantiene.
- 97 -
Funciones incorrectas o ausentes. Errores de interfaz. Errores en estructuras de datos o en accesos a bases de datos externas. Errores de rendimiento. Errores de inicializacin y terminacin.
4.5.3. Diseo y ejecucin de las pruebas. Las caractersticas del software hacen difcil la tarea de probarlo. Es ms, estas caractersticas hacen imposible la realizacin de una prueba exhaustiva al software. Por lo tanto se debe tomar una actitud o filosofa para realizar esta labor. Si con las pruebas no se detectan errores se llega a la conclusin de que el software parece funcionar de acuerdo a las especificaciones alcanzando los requisitos de rendimiento, sin embargo, esto no garantiza la ausencia de errores. Las pruebas que se han considerado para el sistema, dentro del plan de pruebas, son las siguientes: o Pruebas de unidad o Pruebas de integracin o Pruebas del sistema En cuanto a las tcnicas de prueba utilizadas, es decir, aquellas que ayudan a definir conjuntos de casos de prueba aplicando un cierto criterio, se utilizaron las tcnicas de caja blanca basados en el contenido de los mdulos y las tcnicas de caja negra basados en las interfaces y las especificaciones de los mdulos. Los resultados obtenidos de la aplicacin de este proceso de prueba fueron satisfactorios, en cuanto a las pruebas de caja blanca se corrigieron todos los errores encontrados y en cuanto a las pruebas de caja negra el nivel de aceptacin fue el esperado. 4.5.3.1. Pruebas de Unidad Las pruebas de unidad tienen por objeto testear una funcin, un mdulo, una porcin de cdigo, en realidad como su nombre lo indica una unidad, la tcnica utilizada para estas pruebas es la tcnica de caja blanca por interactuar con el cdigo analizando directamente su estructura y funcionalidad.
- 98 -
Los casos de prueba realizados se encuentran detallados en el documento de referencia tcnica, a continuacin se presenta el desarrollo de uno de los casos de prueba de unidad. Prueba Gestionar Kardex Tabla 4.6. Prueba Gestionar Kardex Titulo: Gestionar Kardex de Personal Tipo de prueba: Prueba de unidad Datos de prueba Tcnica de prueba: Caja Blanca Responsable: Proyectista Objetivo de la prueba Comprobar el funcionamiento y desempeo de la gestin de kardex de personal. Datos personales del empleado Datos de entrada Procedimiento de prueba: - Ingresar nuevo personal: Elegir la opcin Aadir personal Ingresar todos los datos en los campos del formulario Elegir la opcin guardar - Actualizar personal El personal debe estar seleccionado Clic en el botn Editar Modificar los datos necesarios Clic en el botn Guardar. - Eliminar personal El personal debe estar seleccionado Clic en el botn Eliminar - El campo C.I. de personal y email no estn validados. Problemas Implementar un mtodo de validacin para los campos CI y email Solucin Fuente: [Elaboracin Propia] 3.5.3.2. Pruebas de Integracin Prueba Gestin de usuarios Tabla 4.7. Prueba Gestin de Usuarios Titulo: Mdulo de gestin de usuarios Tipo de prueba: Prueba de integracin Datos de prueba Tcnica de prueba: Caja Blanca y de caja negra Responsable: Proyectista Objetivo de la Verificar si la creacin de usuarios, y la asignacin de tareas a los usuarios en funcin a sus niveles de acceso es correcta, prueba comprobndose tal hecho iniciando sesiones con diferentes cuentas de usuarios Nombre de usuario y contrasea Datos de entrada Procedimiento de prueba: - Ingresar Nombre de Usuario
- 99 -
Ingresar Contrasea Verificar que el men asignado corresponda a las tareas asignados a dicho usuario. Ningn problema identificado Al haberse hecho las revisiones y correcciones necesarias al cdigo durante las pruebas de unidad no se tuvieron inconvenientes en esta etapa de pruebas. Fuente: [Elaboracin Propia]
Problemas Conclusin
Para la ejecucin del algoritmo gentico es necesario tener los parmetros adecuados, para esto se realizaron pruebas experimentales. La informacin detallada se encuentra en el Anexo B.
- 100 -
Tabla 4.8. Planificacin de Actividades (Investigacin de las Herramientas) INVESTIGACIN DE LAS HERRAMIENTAS 140 das Investigacin Actividades Duracin 15 dias
Mtodo biomtricos por medio de Estudio de Sistemas Biomtricos huella dactilar Mtodos y tcnicas para por medio de la huella dactilar la Estudio de tcnicas de bsqueda y mtodos de optimizacin
15 das
y Integracin del lector de huella con el lenguaje de programacin Persistencia de huellas digitales en Base de datos
10 das
10 das
Construccin
del
algoritmo
20 das
Genticos para el caso de estudio Codificacin del cromosoma Netbeans MySQL Netbeans MySQL JPA Estudio Interfaz Grfica Estudio Interfaz Grfica y Consola Estudio Integracin MySQL JPA Fuente: Elaboracin Propia Netbeans 20 das 20 das 10 das 20 das
Tabla 4.9. Planificacin de Actividades (Desarrollo del proyecto) DESARROLLO DEL PROYECTO 200 das TIEMPO ACTIVIDAD PRODUCTO
(Das)
ITERACIN I Concepcin Recopilacin de la informacin (entrevistas y documentos) Determinar la visin del proyecto en reunin con las autoridades administrativas de la Universidad Pedaggica Determinacin de requerimientos funcionales y no funcionales Realizar el modelo del casos de uso del Negocio (contexto del sistema) Elaboracin Elaborar el modelo general de casos de uso del proyecto
14
Modelo de Requerimientos del Sistema Documento con la informacin relacionada al proyecto Documento con la visin del proyecto y restricciones principales Documento con requerimientos no funcionales Documento de casos de uso inicial de negocios Diagramas de casos de uso
1 1
1 1
- 101 -
Elaborar el diagrama de paquetes del proyecto (Arquitectura del Sistema) Clasificar los casos de uso por riesgo, prioridad y funcionalidad Anlisis de clases, identificacin de atributos, relaciones y responsabilidades Estimacin de tiempo y costo, prioridades y riesgos Probar la aceptacin del modelo de requerimientos a travs de un prototipo ITERACIN II Construccin Elaborar el modelo detallado de requerimientos del subsistema para adecuarse a la arquitectura planteada Elaborar el modelo detallado de clases del subsistema Elaborar los diagramas de interaccin del subsistema Elaborar el modelo de estados del subsistema Codificar los casos de uso Probar los casos de uso a travs de prototipos Elaborar Manual preliminar del usuario ITERACIN III Construccin Elaborar el modelo detallado de requerimientos del subsistema para adecuarse a la arquitectura planteada Elaborar el modelo detallado de clases del subsistema Elaborar los diagramas de interaccin del subsistema Elaborar el modelo de estados del subsistema Codificar los casos de uso Probar los casos de uso Aadir contenido al Manual preliminar del usuario ITERACIN IV Construccin Elaborar el modelo detallado de requerimientos
1 1 2 2 2 21
Diagrama de paquetes Casos de uso clasificados Diagrama de clases Documentacin de la estimacin de tiempo y costo Prototipo no funcional del sistema Subsistema Kardex del Personal Docente Diagramas de casos de uso y descripcin detallada de los casos de uso Diagramas detallados de clases Diagramas de colaboracin Diagramas de estados Subsistema codificado Subsistema probado y validado por los clientes Documento incrementado manual del usuario Subsistema Control de Asistencia Diagramas de casos de uso y descripcin detallada de los casos de uso Diagramas detallados de clases Diagramas de colaboracin Diagramas de estados Subsistema codificado Subsistema probado y validado por los clientes Documento incrementado manual del usuario Subsistema Construccin de Horarios Diagramas de casos de uso y
2 1 1 11 3 1 28
2 1 1 16 3 2 46
21
- 102 -
del subsistema para adecuarse a la arquitectura planteada Elaborar el modelo detallado de clases del subsistema Elaborar los diagramas de interaccin del subsistema Elaborar el modelo de estados del subsistema Codificar los casos de uso Probar los casos de uso Aadir contenido al Manual del usuario ITERACIN V Construccin Elaborar el modelo detallado de requerimientos del subsistema para adecuarse a la arquitectura planteada Elaborar el modelo detallado de clases del subsistema Elaborar los diagramas de interaccin del subsistema Elaborar el modelo de estados del subsistema Probar los casos de uso ITERACIN VI Construccin Elaborar el modelo detallado de requerimientos del subsistema para adecuarse a la arquitectura planteada Elaborar el modelo detallado de clases del subsistema Elaborar los diagramas de interaccin del subsistema Elaborar el modelo de estados del subsistema Codificar los casos de uso Probar los casos de uso Incrementar contenido al manual de Manual del usuario ITERACIN VII Transicin Elaborar un plan de pruebas Pruebas de mdulos y de sistema con usuarios no involucrados directamente en el proyecto
4 2 1 14 2 2 7 2
descripcin detallada de los casos de uso Diagramas detallados de clases Diagramas de colaboracin Diagramas de estados Subsistema codificado Subsistema probado y validado por los clientes Documento incrementado manual del usuario Subsistema de Reportes y mdulo de Seguridad Diagramas de casos de uso y descripcin detallada de los casos de uso Diagramas detallados de clases Diagramas de colaboracin Diagramas de estados Subsistema probado y validado por los clientes Subsistema de Ayuda en lnea Diagramas de casos de uso y descripcin detallada de los casos de uso Diagramas detallados de clases Diagramas de colaboracin Diagramas de estados Subsistema codificado Subsistema probado y validado por los clientes Documento incrementado manual del usuario Sistema implementado y probado Documentacin detallada del plan de pruebas Documentacin de las pruebas (casos de prueba)
1 1 1 2 28 2
2 2 1 10 2 1 56
5 3
- 103 -
Sistema validado por los usuarios Capacitacin a los usuarios 3 Usuarios capacitados para manejo del sistema Puesta a prueba del sistema implementado 35 Documentacin de las pruebas Correccin de errores detectados durante la 7 Sistema probado y validado por prueba del sistema los usuarios Fuente: Elaboracin propia
- 104 -
- 105 -
Figura 4.22. Diagrama de Gant del Proyecto (Continuacin) Fuente: Elaboracin Propia
- 106 -
Figura 4.23. Diagrama de Gant del proyecto (Continuacin) Fuente: Elaboracin Propia
- 107 -
Figura 5.1. Men Principal del Sistema Fuente: Elaboracin Propia Interfaz: Registro de Personal
Figura 5.2. Registro de Personal Fuente: Elaboracin Propia Interfaz: Registro Situacin Laboral
Figura 5.3. Registro Situacin Laboral Fuente: Elaboracin Propia Interfaz: Bsqueda personal
Figura 5.5. Reporte de personal Fuente: Elaboracin Propia Interfaz: Registro de Turnos
Figura 5.7. Asignacin de Turnos Fuente: Elaboracin Propia Interfaz: Registro de Permisos
Figura 5.9. Administrador de pin y huella Fuente: Elaboracin Propia Interfaz: Registrar Asignaturas
Figura 5.11. Configuracin Datos Horario Fuente: Elaboracin Propia Interfaz: Horarios Construidos
Software Tabla 5.3. Especificacin tcnica de software Herramienta Nombre Versin Plataforma de programacin (PC cliente) Servidor Base de datos (PC Servidor) Generador de reportes (PC cliente) JPA Java Development Kit MySQL iReport 6 5.1 3.5.1 2
5.2.2. Instalacin del Sistema Para ver detalles de la instalacin del sistema consultar manual de instalacin. Anexo C. 5.2.3. Capacitacin a Usuarios Jefe de Recursos Humanos: Este usuario ser capacitado para: Gestionar Kardex de Personal, aadir, eliminar, modificar los datos del personal de la institucin. Gestionar Situacin Actual Gestionar Experiencia Laboral Registrar turnos para el control de asistencia al personal. Asignar Turnos al personal. Controlar permisos y licencias al personal. Registrar Das no laborables Gestionar el tipo de marcado de asistencia (huella digital o pin) Obtener consultas de personal Obtener consultas de control de asistencia.
Encargado de Horarios: Este usuario ser capacitado para: Gestionar Carreras, aadir, eliminar, modificar los datos de las carreras de la Institucin. Gestionar Asignaturas, aadir, eliminar, modificar los datos de las asignaturas de cada una de las carreras de la Institucin.
- 115 CAPITULO V: Puesta en Marcha
Registrar Aulas de la institucin. Construir horarios. Editar un horario construido. Generar Reportes de los horarios generados por Semestre, Docente y Aula
Personal: (La capacitacin ser grupal a todo el personal) Este usuario ser capacitado para: Registrar su Asistencia para registrar su asistencia ya sea de entrada o salida por huella digital o con un pin asignado. Administrador: Este usuario ser capacitado para: Gestionar Usuarios del sistema. Manejo completo del sistema.
5.2.2. Estimacin del costo y Esfuerzo del Producto Costo del Producto Los gatos de materiales, equipos, fueron financiados por la Institucin, los costos de licencias de software fueron nulos ya que se utilizaron herramientas libres, en tanto que los costos por concepto de obtencin de informacin y los referidos a los costos auxiliares como ser papelera y otros corrieron por cuenta propia, segn se detalla a continuacin. Tabla 5.4. Costos de obtencin de informacin, papelera y otros Item Cantidad Precio/Unidad(Bs) Total Fotocopias 200 0,20 40 Servicio de Internet 9 meses 2Bs(c/h) 2000 Papel Bond Tamao Carta 3 25 75 Tinta negra para impresora HP 2 20 40 Tinta a color para impresora HP 2 60 120 Libro Algoritmos Evolutivos 1 560 560 Libro Mysql 1 280 280 3115 Total (Bs.) Total ($us) 420 Fuente: [Elaboracin Propia] Tabla 5.5. Costos de licencias de software Item Costo Licencia NetBeans 6.0.1 Licencia libre MySQL Licencia libre IReport 3.5.1. Licencia libre Total ($us.)
La estimacin del costo y esfuerzo del proyecto se las realizo mediante el uso de la mtrica de Puntos Funcin es una tcnica para medir el tamao del software, que pretende medir la funcionalidad entregada al usuario independiente de la tecnologa utilizada para la
construccin y explotacin del software, despus de hacer uso de la tcnica ya mencionad se gener los siguientes resultados: tamao en lneas cdigo 11808 SLOC, una vez obtenido este resultado se uso el Modelo de estimacin Cocomo II para obtener el esfuerzo final de 4 personas mes durante un periodo de 10 Meses y un costo del producto de 6660.56 $us. Esta estimacin se ve reflejada en el Anexo A.
CONCLUSIONES
Con la implementacin del Sistema de Control de Asistencia y Apoyo a la Construccin de Horarios, se logr mejorar el rendimiento del proceso de control de asistencia hacindolo ms efectivo y minimizando el tiempo de emisin de reportes de control de personal. La solucin planteada disminuye el tiempo y esfuerzo que eran dedicados al proceso de la gestin de horarios y de asignacin de aulas, debido a que controla de forma automtica los cruces de horas, pero sobre todo porque el sistema permite modificar horarios vigentes sin tener que volver a generar uno nuevo, con lo que los encargados podrn organizar los horarios de manera ms eficiente y en menor tiempo. El uso de Mtodos de Anlisis y Diseo Orientado a Objetos ayudo a realizar el proyecto de forma ms ordenada y entendible, cumpliendo con los objetivos planteados para el presente proyecto. El campo de la biometra con huellas digitales puede ser trabajado en muchas reas de la sociedad, optimizando procesos que involucren tiempo y espacios. As mismo los desarrolladores cuentan en la actualidad con novedosas y tiles herramientas libres para la creacin, codificacin y depuracin de los programas que realicen. Por las anteriores razones es un campo que ofrece muchas posibilidades y est siendo acogido por la sociedad. El sistema desarrollado sirve solo para instituciones educativas que tengan un modelo escolar y no as para un modelo universitario, ya que no toma en cuenta la cantidad de alumnos en un determinado curso ni tampoco el tamao del aula.
RECOMENDACIONES
El sistema con las caractersticas que presenta puede ser implantado en cualquier Unidad Educativa que tenga un modelo escolar, por otra parte es necesario desarrollar un mdulo para la parte contable para que el sistema pueda operar en un colegio privado donde es necesario tener la informacin de pago de sueldos a los profesores. Para que el sistema sea adaptable a un modelo universitario se podra hacer un anlisis particular que asigne aulas sin la intervencin de personas, teniendo el sistema alguna forma de inteligencia propia.
REFERENCIA BIBLIOGRFICA
[1] TECNOBOLS, Sistema de Informacin Administrativa SIA, [CD ROM] Versin 5.3.29.2 Sucre 2001, Programa Computacional. [2] CABABIE Pablo, CANCELO Facundo, LPEZ DE LUISE Daniela, Sistema Automtico para Asignacin de aulas y distribucin de espacios [en lnea]. Palermo, Espaa: Universidad de Palermo. Disponible en:
www.palermo.edu/ingenieria/downloads/2008_wicc_gdarim_v3.pdf. [Consulta: 9 abril 2009]. [3] ASC, Time Tables [en lnea] versin 2008, Disponible en:
http://www.asctimetables.com/timetables_es.html. [Consulta 25 abril 2008]. [4] Visual Scheduling System Visual Classroom Schduler [en lnea] Versin demo V3.53 Australia. Disponible en: http://www.vss.com.au/index.asp. [Consulta: 24 abril 2009]. [5] SOFTAULA, [en lnea] Versin demo 2006. Disponible en:
http://www.softaula.com/es/down/downlodad.asp. [fecha de consulta: 24 abril 2009]. [6] Adossis Kronowin, [en lnea] versin M-8.04. Valladolid, Espaa. Disponible en: http://www.adossis.es/REFUGHM8.htm#REFUINI. [Consulta: 15 abril 2009]. [7] BERTRAND, Meyer. Construccin de Software Orientado a Objetos. Joyanes Aguilar, Luis (Trad.). Segunda Edicin. Santa Barbara California: Prentice Hall, 1998. 1046 p. ISBN: 84-8322040-7. [8] DE LA CRUZ, Daniel; ZUMBADO, Carlos. El Proceso Unificado en el Desarrollo de Sistemas. Primera Edicin. Madrid: Ediciones Anaya Multimedia, 2008. 384 p. ISBN: 978-84415-2398-2. [9] HERRERA, Randall; CALDERA, Roderick; MARTINEZ, Manuel. Anlisis y Diseo de Sistemas con el Lenguaje de Modelaje Unificado (UML). Universidad Catlica Redemptoris Mater, Escuela de Ingeniera en sistemas de Informacin, Managua, 1999 [10] NETBEANS, Join & Contribute to the NetBeans Community, [en lnea] Disponible en: www.netbeans.org.
REFERENCIA BIBLIOGRAFICA
[11] DEITEL, Harvey; DEITEL, Paul. Como Programar en Java. Romero, Alfonzo(Trad.). Quinta Edicin. Mexico: Pearson Educacin, 2004. 1268 p. ISBN: 970-26-0518-0. [12] CORONEL, Erick ; Desarrollando Soluciones con Java y MySQL. Primera Edicin. Lima: Macro E.I.R.L., 2009. 428p. ISBN: 978-612-4034-05-3. [13] CANCHUCAJA, Jose del Carmen; Diseo de Bases de Datos. Universidad Nacional de la Plata, Maestra Ingeniera de software, Caracas. 2007. [14] PERSISTENCIA JPA, [en lnea], Disponible en:
http://www.elholgazan.com/2007/08/jpa-java-persistence-api.html [consulta 15 de mayo de 2009] [15] HERNANDEZ SAMPIERI Roberto, Carlos Fernndez Collado, Pilar Baptista Lucio. Metodologa de la Investigacin, 3ra. Ed. Mxico, DF Ultra; 2002, [libro], p. 47-48 [17] GMEZ Adriana, LPEZ Mara del C., MIGNAI Silvina, OTAZ Alejandra, Un Modelo de Estimacin de Proyectos de Software. [18] LPEZ TAKEYAS Bruno, JOHNSTON BARRIENTOS Jaime David, Modelo De Asignacin de Carga Acadmica Usando Algoritmos Genticos, Mxico 2007 Instituto Tecnolgico de Nuevo. Disponible en: http://www.itnuevolaredo.edu.mx/takeyas [Consulta 12 de octubre de 2009]. [19] ALMEIDA SAENZ Orlando., Administracin de Recursos Humanos, 1ra. edicin La Paz Bolivia Universidad Mayor de San Andrs; 2002. [20] FLORES Pedro, BRAU Ernesto, MONTEVERDE Jazmn A, SALAZAR Norman F., FIGUEROA Jos, Experimentos con algoritmos genticos para resolver un problema real de programacin Maestros Horarios Cursos. Departamento de Matemticas Universidad de Sonora, Hermosillo Sonora CP 83000 Mxico. [21] TOLA FLORES Egberto, Sistema Biomtrico de control de asistencia y planillas de pago, La Paz 2008 Universidad Mayor de San Andrs, Facultad de Ciencias Puras y Naturales Carrera de Informtica.
REFERENCIA BIBLIOGRAFICA
[22] MOLINA, JUAN ENRIQUE; Algoritmos Geneticos para la resolucin de un problema de tipo timetabling, Universidad de Valparaiso, Chile Facultad de Ciencias, Departamento De Computacin Ingeniera Aplicada Valparaso 2007. [23] PACHECO AGERO Carla Leninca, Distribucin ptima de Horarios de Clases utilizando la tcnica de Algoritmos Genticos; Acatlima, Huajuapan de Len, Oaxaca Agosto, 2000 disponible en http://jupiter.utm.mx/~tesis_dig/6557.pdf [24] VEGA BRISEO, Edgar Armando. Introduccin a sistemas y Tecnologas de informacin, Disponible en: http://www.monografias.com/trabajos24/tics-empresas.shtml [consulta 15 de octubre de 2009]. [25] ZHANG, David D. Automated Biometrics Technologies and Systems. Pringer Edit. 2000. 344p [26] Revista Empresarial disponible en: http://www.revista-
ays.com/DocsNum02/PersEmpresarial/Huidobro.pdf, [Consulta 20 de octubre de 2009] [27] Identificacin Biomtrica con huellas digitales, [en lnea], disponible en:
http://ciberhabitat.gob.mx/hospital/huellas/textos/identificacion.htm. [consulta 20 de octubre de 2009] [28] TECNOLOGIA FINGERPRINT Disponible en: http://www.betasoft-
srl.com.ar/pages/biometric/RS-120S.htm, [consulta 25 de noviembre de 2009] [29] LUENBERGER,David; Programacin Lineal y no Lineal, Addison-Wesley Publishing, Pp. 3-6. 2000 [30] Coello, Coello Carlos A., Introduccin a los Algoritmos Genticos, Soluciones Avanzadas, Tecnologas de Informacin y Estrategias de Negocios, [Enero 1995] , Nmero 17, Pp. 5-11. [31] MEJIA CABALLERO, Jos; Asignacin de Horarios de Clases Universitarias Mediante Algoritmos Evolutivos, Colombia 2008, Universidad De La Guajira / Universidad Del Norte.
REFERENCIA BIBLIOGRAFICA
[32] LOPEZ, TAKEYAS BRUNO; BARRIENTOS, JOHNSTON DAVID; Modelo de Asignacin de Carga Acadmica Usando Algoritmos Genticos, Instituto Tecnolgico de Nuevo Laredo. Reforma Sur 2007, C.P. 88250, Nuevo Laredo, Tamps. Mxico. Disponible en: http://www.itnuevolaredo.edu.mx/takeyas [33] ARAUJO, Lourdes; CERVIGON, Carlos; Algoritmos Evolutivos un Enfoque Practico, 1ra. Edicin. Barcelona: RA-MA EDITORIAL, 2009. 330P. ISBN: 978-84-7897-911-0. [34] Patrones de Diseo de Software, [en lnea], disponible en: http://www.proactivacalidad.com/java/patrones/mvc.html, [Consulta 12 febrero de 2010]. [35] Comparacin de Gestores de Bases de Datos, [en lnea], disponible en: http://www.netpecos.org/docs/mysql_postgres/x57.html, [Consulta 29 de octubre de 2009]. [36]Terraza de Aravaca Comparativa De Implementaciones De Jpa Toplink, EclipseLink, hibrnate y OpenJPA disponible en:
http://terrazadearavaca.blogspot.com/2008/12/comparativa-de-implementaciones-de-jpa.html [consulta 20 de octubre de 2009]. [37] Mundo Byte, [en Lnea] disponible en: [Consulta
REFERENCIA BIBLIOGRAFICA
BIBLIOGRAFA
1. PRESSMAN, Roger S.; Ingeniera del Software un Enfoque Prctico, 5ta. Edicin. Madrid: McGRAW-HILL/INTERAMERICANA DE ESPAA, S.A.U., 2003. 600p. ISBN : 84-481-3214-9. 2. KENDALL, Kenneth E; KENDALL, Julie E., Anlisis y Diseo de Sistemas, 6ta. Edicin. Mxico: PEARSON EDUCACION, 2005. 752 p. ISBN: 970-26-0577-6. 3. GILFILLAN, Ian, La Biblia de MySQL, 3ra Edicin, MULTIMEDIA, 2006. 880 p. 4. DEITEL, Harvey; DEITEL, Paul. Como Programar en Java. Romero, Alfonzo(Trad.). Quinta Edicin. Mexico: Pearson Educacin, 2004. 1268 p. ISBN: 970-26-0518-0. 5. CORONEL, Erick ; Desarrollando Soluciones con Java y MySQL. Primera Edicin. Lima: Macro E.I.R.L., 2009. 428p. ISBN: 978-612-4034-05-3 6. HERNANDEZ SAMPIERI Roberto, Carlos Fernndez Collado, Pilar Baptista Lucio. Metodologa de la Investigacin, 3ra. Ed. Mxico, DF Ultra; 2002, [libro], p. 47-48 7. ARAUJO, Lourdes; CERVIGON, Carlos; Algoritmos Evolutivos un Enfoque Practico, 1ra. Edicin. Barcelona: RA-MA EDITORIAL, 2009. 330p. ISBN: 978-84-7897-911-0. Barcelona: ANAYA
BIBLIOGRAFIA
GLOSARIO DE TRMINOS
Algoritmo Gentico: Un algoritmo gentico es una tcnica de programacin que imita a la evolucin biolgica como estrategia para resolver problemas. Los algoritmos genticos pertenecen a la clase de mtodos de bsqueda aleatoria. Su diferencia fundamental con los procedimientos clsicos es que los algoritmos genticos se basan en la evolucin de una familia de soluciones en lugar de ir mejorando una sola solucin. API: (Aplicattion Programming Interface) Es un conjunto de llamadas a funciones de software los cuales les permiten a otras aplicaciones acceder a las funciones de un programa. Biometra: La biometra es una tecnologa de seguridad basada en el reconocimiento de una caracterstica de seguridad y en el reconocimiento de una caracterstica fsica e intransferible de las personas, como por ejemplo la huella digital. Compelijad P: P es la clase de complejidad que contiene problemas de decisin que se pueden resolver en un tiempo polinomial. Complejidad NP: clase de complejidad que contiene problemas que no pueden resolverse en un tiempo polinmico. Cromosoma: Un cromosoma est formado por un grupo de genes. Es el conjunto de la solucin en s. CU: (Caso de Uso) Es una secuencia de pasos a seguir para la realizacin de un fin o propsito. DAO: (Data Access Objects) Objeto que permite la conexin para la transferencia de datos. Frameworks: Plantillas predefinidas, que facilitan la programacin. Funcin de Aptitud: La funcin de aptitud le da una calificacin sobre que tan bueno es un conjunto e genes para obtener el objetivo dado. Huella Dactilar: Es la representacin de la morfologa superficial de la epidermis de un dedo, estas huellas son diferentes en cada persona. JPA: (Java Persistence API) Estndar Java para el mapeo objeto relacional, proporciona un modelo de persistencia basado en POJOs para mapear bases de datos relacionales en Java.
GLOSARIO DE TERMINOS
JMF: (Java Media FrameWork) Es una extensin de trabajo que permite la programacin de tareas multimedia en lenguaje de programacin java. Se traduce como Entorno de trabajo multimedia de java. Longitud de la Cadena: Es el nmero de genes que componen el cromosoma. O sea el nmero de variables que tiene el modelo a resolver. Mtodos Heursticos: Algoritmos que mejoran las posibles soluciones hasta encontrar una que posiblemente est cerca del ptimo, no existe forma de garantizar la calidad de la respuesta. ORM: (Object Relational Mapping) define una forma de transformar un modelo orientado a objetos en un modelo relacional. Sistemas biomtricos: Sistema automatizado que realiza labores de biometra. Es decir, un sistema que fundamenta sus decisiones de reconocimiento mediante una caracterstica personal que puede ser reconocida o verificada de manera automatizada. Marcar asistencia: Registrar la hora de entrada o salida. TTE (Time Tabling Educacional): Los problemas de Time Tabling Educacional se asocian a la labor de organizar una secuencia de eventos (generalmente asignaturas o exmenes), en un perodo de tiempo determinado, satisfaciendo un conjunto de restricciones.
GLOSARIO DE TERMINOS
ANEXOS
No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Complejidad Alta Media Media Baja Media Baja Media Media Media Baja Alta Baja Media Baja Media Media Alta Alta Alta Alta
ANEXO A
Flujo de Salida / Reportes FS Flujo de Salida / Reportes FS Pantalla Cantidad de Datos Lista de Personal 5 Lista de Personal por carreras 5 Lista de Personal por nivel 5 Lista Personal Administrativo 5 Lista Personal Servicio 5 Lista Detalle Asistencia Diario 7 (por persona) Lista Detalle Asistencia 9 Mensual Lista Pensum Acadmico (por 5 Carreras) Ver Horario Construido Ver Horario Docente Ver Horario Construido -
No. 1 2 3 4 5 6 7 8 9 10 11
Complejidad Media Media Media Media Media Media Media Media Alta Alta Alta
Consultas Q Consultas Q No. 1 2 3 4 5 6 7 Consulta Autenticar Usuario Bsqueda de personal Bsqueda detalle asistencia diaria Bsqueda detalle asistencia mensual Bsqueda Licencias/Permisos Registro de Asistencia Bsqueda Horario Construido No. De criterios 2 3 2 3 2 2 1 Complejidad Media Media Media Media Media Media Media
Archivos Lgicos Internos ALI Archivos Lgicos Internos ALI Archivo Tipo de Registro Personal 2 Experiencia_Laboral 2 Situacin_Laboral 2 Profesiones 2 Turnos 2 Calendario_Laboral 2 Turnos_Asignados 2
No 1 2 3 4 5 6 7
ANEXO A
8 9 10 11 12 13 14 15 16 17 18
Licencias Permisos Asistencia Carrera Asignatura Aula Usuario Horario GenerarReporte Actualizar BD Exportar horario a Excel
2 2 3 2 2 1 2 6 4 4 6
Media Media Alta Baja Media Media Baja Alta Media Alta Media
Archivos Lgicos Externos ALE Archivos Lgicos Externos ALE Archivo No de campos Ayuda 3 Backup Base de Datos 2
No 1 2 3
Flujo o Baja Archivo 3*5 4*9 FE 4*0 5*8 FS 3*0 4*7 Q 7*4 10 * 11 ALI 5*2 7*0 ALE Total de puntos funcin no ajustados
Clculo de KSLOC Convirtiendo los puntos Funcin para un lenguaje de Tercera Generacin: 369 * 32 = 11808 SLOC
ANEXO A
Sueldo mensual por programador 150 $us Costo del Producto Costo = 6660.56 $us Clculo del Tiempo T = [ 3.0 * E (0.33+0.2(b-1.01))]* SCED/100 DONDE: E= 44.4 Lneasb= 1 Cdigo T = 10.41 T = 10 meses Clculo de Personas Personas = E/T = 44.4/ 10 Personas = 4 Personas mes SCED Esfuerzo= 100%
Costo
ANEXO A
ANEXO B
PRUEBAS PARA LA CONSTRUCCIN DE HORARIOS UNIVERSIDAD PEDAGOGICA NACIONAL MARISCAL SUCRE La principal tcnica utilizada en la construccin de los horarios es el algoritmo gentico simple. Una vez implementado los algoritmos genticos, se procedi a evaluar el comportamiento mediante la modificacin de ciertas variables que influyen en el mismo, como ser el nmero de generaciones y el nmero de individuos que forman la poblacin. Existen investigaciones en las cuales se han modificado la variable Nmero de Generaciones, con el objetivo de conocer el comportamiento de las soluciones a travs de un nmero de generaciones dado; segn Araujo Lourdes[33] el nmero de generaciones puede variar de 10 a 500 y el tamao de la poblacin de 10 a 100. Los valores de los operadores genticos, son extrados de la literatura por ser los ms utilizados. El Operador de combinacin tendr una probabilidad de ocurrencia de 80 por ciento, mientras que el operador de de mutacin tendr una probabilidad de ocurrencia del 20 por ciento restante. Para obtener el tamao de la generacin ms aceptable se realizarn pruebas cambiando este parmetro desde un valor de 10 hasta 500. Entonces, para efectuar la prueba el programa trabajar con las siguientes generaciones: 10, 15, 20, 30, 40, 50, 100, 200, 300, 400 y 500. La informacin empleada en las pruebas, ser obtenida de la direccin acadmica de la Universidad Pedaggica para el primer semestre de la gestin 2010. Los datos de las pruebas son los siguientes. 1. Se cuenta con 5 carreras del nivel secundario. 2. Se cuenta con un total de 271 asignaturas (semestrales) 3. Se cuenta con un total de profesores 4. Cada semestre cuenta con un aula asignada.
ANEXO B
5. Los horarios son por turnos (maanas o tardes) Anlisis de Resultados La variable adaptacin, mide la cantidad de choques que tienen las soluciones obtenidas. Para cada fila de la tabla se realizo 5 corridas y se muestra el que tiene menor adaptacin. Tabla A.B.1. Resultados Pruebas Parmetros A. G. Tamao Nmero de Probabilidad Probabilid Adaptacin de Generaciones de cruce ad de o nmero Poblacin mutacin de Choques 10 10 10 15 15 15 20 20 20 30 30 30 40 40 40 50 50 50 100 100 100 200 200 10 50 100 10 50 100 10 50 100 10 50 100 10 50 100 10 50 100 10 50 100 10 50 80% 80% 80% 80% 80% 80% 80% 80% 80% 80% 80% 80% 80% 80% 80% 80% 80% 80% 80% 80% 80% 80% 80% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 25 21 23 25 18 20 25 18 22 23 19 21 23 20 17 21 14 17 21 22 19 24 18
Tiempo de Ejec. 00:00:50 00:01:26 00.04:03 00:01:07 00:03:20 00:06:03 00:02:05 00:04:15 00:07:58 00:01:35 00:06:10 00:11:55 00:02:05 00:0820 00:15:49 00:02:20 00:09:52 00:19:50 00:04:22 00:15:05 00:23:15 00:07:28 00:15:05
ANEXO B
200 300 300 300 400 400 400 500 500 500
80% 80% 80% 80% 80% 80% 80% 80% 80% 80%
20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
15 17 23 22 19 25 19 21 19 18
00:28:10 00:06:25 00:15:46 00:27:28 00:07:10 00:16:24 00:32:40 00:10:50 00:18:14 00:37:30
Fuente: Elaboracin Propia Conclusin: Al finalizar las pruebas de Nmero de Generaciones y tamao de poblacin, aplicaremos el algoritmo construido al problema para determinar la solucin factible, este algoritmo creado presentar los porcentajes 20 de ocurrencia en mutacin y 80 en cruce, 15 de tamao de poblacin y 50 de nmero de generaciones. En la tabla de arriba se puede observar que mientras ms grande es el nmero de generacin mayor es el tiempo de ejecucin y la adaptacin no tiene una gran diferencia con respecto a los resultados con otros parmetros, es por eso que los datos elegidos son 15 tamao de poblacin y 50 numero de generaciones. Los parmetros, tamao de poblacin y el nmero de generaciones fueron elegidos debido a que la solucin es obtenida en un tiempo considerable y las diferencias con las otras soluciones no son significativas ya que la solucin es obtenida a partir de una solucin aleatoria. Con estos datos es posible encontrar una solucin factible, adems el sistema permite la modificacin manual del cromosoma (Solucin), hecho que permite la manipulacin del horario de forma visual y amigable para el usuario.
ANEXO B
Perifricos Dispositivo Lector de Huellas Digitales, cualquier tipo y modelo de Lectores Biomtricos del mercado Camara Web de cualquier tipo y modelo.
Instalacin Antes de empezar con la instalacin del sistema se requiere lo siguiente: JRE: Instalar la mquina virtual de java en el ordenador para que la instalacin del sistema SISCAACH sea posible. Gestor de Bases de Datos MySQL. Driver de lector de huella de cualquier marca y modelo.
ANEXO C
JMF (Java Media Framework). Framework necesario para la manipulacin de la cmara web.
Todos los archivos necesarios se encuentran en el CD de instalacin, el cliente solo tiene que introducir el CD, entrar dentro de l y ejecutar con un doble clic los archivos necesarios. Instalacin del JRE Para instalar la Maquina Virtual de Java hacer doble click en el archivo y seguir las instrucciones hasta finalizar.
Figura C.1. Instalacin del JRE Fuente: [Elaboracin Propia] Instalacin del driver del Lector de Huella Doble clic sobre el archivo llamado FingerprintSDKJava2009Installer.jar, aparecer una ventana que nos pide elegir el idioma, selecciona el que desees.
ANEXO C
Posteriormente aparece la pantalla de bienvenida y se da clic en Siguiente, aparecen los trminos de la licencia, los cuales se debe aceptar para poder continuar. Nota: Es importante tener desconectado el lector de huella.
Figura C.2. Instalacin del lector de huella Continuacin Fuente: [Elaboracin Propia] Una vez hecho lo anterior se selecciona la ruta donde se instalar, aqu se dejan los valores por defecto. Despus de la ruta de instalacin se debe elegir los elementos que se instalarn, de igual manera se deja todo marcado y se da clic en siguiente.
Figura C.3. Instalacin del lector de huella Continuacin Fuente: [Elaboracin Propia]
ANEXO C
Figura C.4. Instalacin del lector de huella Continuacin Fuente: [Elaboracin Propia]
Instalacin del JMF (Java Media Framework) Hacer doble click en el archivo y seguir las instrucciones hasta finalizar.
ANEXO C
Instalacin del Gestor de BD MySQL Hacer doble click en el archivo y seguir las instrucciones hasta finalizar
Instalacin del Sistema SISCAACH Hacer doble click en el archivo y seguir las instrucciones hasta finalizar
ANEXO C
ANEXO C
REFERENCIA TCNICA
MODELO DE REQUERIMIENTOS Administracin de Requerimientos El propsito de la administracin de requerimientos es organizar y documentar la funcionalidad y restricciones requeridas por el sistema, adems de registrar posibles modificaciones del modelo de requerimientos y decisiones que se tomarn a lo largo del desarrollo del proyecto. Organizacin y responsabilidades La responsabilidad de un buen anlisis de requerimientos depende totalmente del desarrollador del proyecto, el que se encarga de definir los diferentes roles y responsabilidades en el desarrollo del proyecto, del cual detallaremos a continuacin cada una de de sus labores: Efectuar el papel de analista de sistemas siendo responsable del conjunto de
requerimientos que se vayan adquiriendo, para luego ser modelados en Casos de Uso. Delimitar el tema encontrando actores, asegurar que el modelo de casos de uso es completo y consistente. Realizar el trabajo de especificador de casos de uso de esta manera poder identificar y detallar cada uno de ellos. Realizar el papel de arquitecto que se encarga de describir la vista de la arquitectura del Modelo de casos de uso. Realizar la tarea de diseador de interfaz de usuario: dar forma visual (Prototipo) a las interfaces de usuario de los actores. Herramientas Las herramientas que se utilizan son: UML (lenguaje Unificado de Modelado) para todo el Anlisis y Diseo en esta primera fase del ciclo del producto. Rational Rose para la elaboracin del Modelo de Casos de Uso. Netbeans 6.1 como entorno de desarrollo iReport como generador de reportes.
REFERENCIA TCNICA
MySql 5.1 como gestor de datos. Microsoft Word para el desarrollo del documento del proyecto.
La estructura de las actividades a realizar en el Modelo de Requerimientos consiste en lo siguiente: Elaboracin del plan de requerimientos. Elaboracin de la visin de requerimientos. Captura de las solicitudes de usuario Especificacin de casos de uso Especificacin de software Descripcin de requerimientos no funcionales
Descripcin de Actores Actores Subsistema Descripcin de Es el que interacta con de el subsistema kardex de personal y Control de de Asistencia. Responsabilidad Registrar toda la informacin correspondiente al personal, asignar turnos, emitir informes relacionados al kardex de personal y control de asistencia
Encargado de horarios
Generar Horarios
Es el que interacta con Gestionar toda la el subsistema Generar informacin Horarios. relacionada con la construccin de horarios, emitir reportes de horarios por semestre, por docente. Es quien interacta con Registrar su huella
Personal
Control de
REFERENCIA TCNICA
Asistencia
el subsistema control de digital en el lector Asistencia por medio del biomtrico para el lector biomtrico control de asistencia.
Captura de requerimientos Requerimientos funcionales Permitir la creacin, modificacin y eliminacin de usuarios del sistema. Registro y almacenamiento de los datos del Personal Docente, incluyendo la informacin relevante, permitiendo la edicin de manera rpida y contemplando las siguientes subdivisiones: Datos Personales Experiencia laboral Situacin Laboral Obtener reportes a partir de los datos del personal Registro de turnos de trabajo tomando en cuenta los horarios de clase. Asignar turnos al personal docente. Registro de especialidades, carreras y asignaturas. Registrar un calendario acadmico que incluya das hbiles y no hbiles para su consideracin posterior. Control de Asistencia al Personal Docente de acuerdo a turnos asignados a cada docente y con el uso de un lector biomtrico. Generar reportes personalizados diarios y mensuales de asistencia, atrasos, faltas y licencias por docente. Registrar asignaturas y carga horaria a docentes. Generar Horarios y distribuir aulas Automticamente para cada carrera de la universidad. Permitir la modificacin de los parmetros para la generacin de horarios.
REFERENCIA TCNICA
Permitir consultar e imprimir los horarios por semestre. Permitir consultar e imprimir los horarios por aula. Permitir consultar e imprimir los horarios por profesor. Exportar los horarios generados a una hoja de clculo. El sistema debe proveer seguridad respecto a la informacin mediante la realizacin de copias de seguridad (backups).
Requerimientos no funcionales El sistema debe funcionar con los ordenadores existentes en la institucin. Debe existir facilidad de uso del uso del sistema, adems la interfaz debe ser amigable al usuario final, otorgando confianza para el manejo y desempeo del mismo. Se debe implementar un sistema de seguridad permisos especficos de operacin a cada usuario El software debe ser robusto, es decir que no se vea afectado por manipulaciones inadecuadas del usuario. El software debe contar con la ayuda necesaria accesible desde el sistema. El software debe contar con toda la documentacin necesaria de respaldo. de manejo del sistema, mediante
REFERENCIA TCNICA
Gestin de Usuarios
<<include>>
Administrador
Gestionar Usuario
Validar Datos
Gestionar Usuarios
Descripcin General: Permite crear, eliminar, modificar usuarios que utilizan el sistema, adems valida los datos que se ingresen del usuario. Actor: Administrador Precondiciones: Tener privilegios para gestionar usuarios. Postcondiciones: Los usuarios quedan registrados y estos tendrn acceso al sistema segn su perfil asignado.
REFERENCIA TCNICA
No.
1 2 3 Flujo Alternativo: 3 2 5
Actor
Llena los campos requeridos y asigna un perfil al nuevo usuario. Elige la opcin Guardar.
Sistema
Valida los datos ingresados y si existe un error despliega un mensaje. Almacena los datos. Despliega un mensaje de error, si los datos estn duplicados o errneos.
No.
1 2 3 4 5 Flujo Alternativo: 2 4 5
Actor
Ingresa Criterio de bsqueda
Sistema
Presenta la informacin del Usuario
Despliega una pantalla de confirmacin del proceso de eliminacin Elimina el registro correspondiente al personal No encuentra al personal no muestra nada
No.
1 2 3 4 5
Actor
Ingresa Criterio de bsqueda
Sistema
Presenta la informacin del Personal
Selecciona al usuario y modifica Valida los datos ingresados y si existe un la informacin en los campos error despliega un mensaje necesarios Elige la opcin Editar Almacena los datos modificados
REFERENCIA TCNICA
Sale de la pantalla Si no encuentra el personal presenta un mensaje de usuario no encontrado. Despliega un mensaje de error, si los datos estn duplicados o errneos.
Buscar Personal
<<include>>
Consultas
Reportes
Gestionar Prof esiones Gestionar Personal
Encargado RRHH
Diagrama de Casos de Uso: Gestionar Kardex Personal Fuente: [Elaboracin propia] Detalle de los Casos de Uso Caso de Uso: Gestionar Personal
Gestionar Personal
Descripcin General: Permite crear, eliminar, modificar el personal de la Institucin. Actor: Encargado de Recursos Humanos Precondiciones: El usuario debe haberse logeado en el Sistema. Postcondiciones: El personal queda registrado, los datos son almacenados en la Base de Datos
REFERENCIA TCNICA
No.
1 2 3 4 5 6
Actor
Elige la opcin aadir Personal
Sistema
Despliega el formulario con los campos de informacin necesaria del personal
Valida los datos ingresados y si existe un error despliega un mensaje Almacena los datos
Sale de la pantalla Despliega un mensaje de error, si los datos estn duplicados o errneos.
Flujo Alternativo: 5 4 5 4 5 Flujo: Eliminar Personal Elige la opcin cancelar No almacena al personal y Vuelve al flujo 1 Ingresa datos correctos, elige la opcin guardar Almacena los datos
No.
1 2 3 4 5 Flujo Alternativo: 2 4 5
Actor
Ingresa Criterio de bsqueda
Sistema
Presenta la informacin del Personal
Despliega una pantalla de confirmacin del proceso de eliminacin Elimina el registro correspondiente al personal No encuentra al personal no muestra nada
REFERENCIA TCNICA
No.
1 2 3 4 5 6
Actor
Ingresa Criterio de bsqueda
Sistema
Presenta la informacin del Personal
Modifica la informacin en los Valida los datos ingresados y si existe un campos necesarios error despliega un mensaje Elige la opcin Editar Almacena los datos modificados Elige la opcin cerrar Sale de la pantalla Si no encuentra el personal no muestra nada Despliega un mensaje de error, si los datos estn duplicados o errneos. Elige la opcin NO No modifica los datos del personal
Flujo Alternativo: 2 5 4
No.
1 2 3 4
Actor
Elige la opcin aadir
Sistema
Despliega el formulario con los campos de informacin necesaria.
REFERENCIA TCNICA
5 6 Elige la opcin cerrar Flujo Alternativo: 5 4 5 4 5 Flujo: Eliminar Datos Experiencia Laboral Elige la opcin cancelar Ingresa datos correctos, elige la opcin guardar
Almacena los datos Sale de la pantalla Despliega un mensaje de error, si los datos estn duplicados o errneos.
No.
1 2 3 4 Flujo Alternativo: 3 4 Selecciona eliminado.
Actor
registro a
Sistema
ser Habilita los botones eliminar, editar, y cancelar Despliega una pantalla de confirmacin del proceso de eliminacin Elimina el registro seleccionado
No.
1 2 3 4 5 6
Actor
Sistema
Selecciona un registro a ser Habilita los botones eliminar, editar, y eliminado. cancelar Elige la opcin editar Habilita los campos para ser editados Habilita la opcin guardar y cancelar Modifica la informacin en los Valida los datos ingresados y si existe un campos necesarios error despliega un mensaje Elige la opcin Guardar Almacena los datos modificados Elige la opcin cancelar Vuelve al flujo 1
REFERENCIA TCNICA
Flujo Alternativo: 3 4 5 Elige la opcin NO No modifica los datos del personal Despliega un mensaje de error, si los datos estn duplicados o errneos.
No.
1 2 3 4 5 6 7
Actor
Elige la opcin aadir
Sistema
Despliega el formulario con los campos de informacin necesaria.
Llena los campos Valida los datos ingresados y si existe un error despliega un mensaje Elige la opcin guardar Almacena los datos Elige la opcin cerrar Ingresa datos correctos, elige la opcin guardar Despliega un mensaje de error, si los datos estn duplicados o errneos. Sale de la pantalla
REFERENCIA TCNICA
No.
1 2 3 4 Flujo Alternativo: 3 4
Actor
Sistema
Selecciona un registro a ser Habilita los botones eliminar, editar, y eliminado. cancelar Elige la opcin eliminar Elige la opcin SI Elimina el registro seleccionado Elige la opcin NO Regresa al formulario anterior No elimina el registro Despliega una pantalla de confirmacin del proceso de eliminacin
No.
1 2 3 4 5 6 7
Actor
Sistema
Selecciona un registro a ser Habilita los botones eliminar, editar, y eliminado. cancelar Elige la opcin editar Habilita los campos para ser editados Habilita la opcin guardar y cancelar Modifica la informacin en los Valida los datos ingresados y si existe un campos necesarios error despliega un mensaje Elige la opcin Guardar Elige la opcin SI Almacena los datos modificados Elige la opcin cancelar Vuelve al flujo 1 Despliega un mensaje de error, si los datos estn duplicados o errneos. Elige la opcin NO No modifica los datos del personal Despliega una pantalla de confirmacin del proceso de edicin
Flujo Alternativo: 3 5 6
REFERENCIA TCNICA
Gestionar Profesiones
Descripcin General: Permite crear y eliminar profesiones Actor: encargado de RRHH Precondiciones: El personal debe estar registrado previamente Postcondiciones: Los datos de profesiones son almacenados en la Base de Datos y pueden utilizarse en el registro de personal. Flujo: Aadir Profesin
No.
1 2 3 4
Actor
El usuario elige la opcin aadir
Sistema
Habilita los campos para insertar nueva profesin en la pantalla profesiones.
No.
1 2 3 4 5 3 4 Selecciona tabla
Actor
Sistema
un registro de la Habilita la opcin eliminar registro Despliega una pantalla de confirmacin del proceso de eliminacin Elimina el registro seleccionado
Elige la opcin eliminar Elige la opcin SI Elige la opcin cerrar Elige la opcin NO
Sale de la pantalla
REFERENCIA TCNICA
<<include>> Administrar Huellas Pin Asignar Turnos Gestionar Licencias Buscar Personal
Gestionar Turnos
Consultas
Reportes
Encargado RRHH
Diagrama de Casos de Uso: Gestionar Asistencia Fuente: [Elaboracin propia] Detalle de los Casos de Uso Caso de uso: Gestionar Turnos
Gestionar Turno
Descripcin General: Permite crear, eliminar y modificar turnos de trabajo para el personal de la Institucin. Actor: Encargado de RRHH Precondiciones: El usuario debe haberse logeado en el Sistema. El usuario debe tener privilegios para gestionar Turno. Postcondiciones: Los Turnos de trabajo son guardados en la Base de Datos y podrn usarse en la asignacin de turnos al personal. Flujo: Aadir Turno
No.
1 2 3 4
Actor
Elige la opcin aadir Turno
Sistema
Habilita los campos de informacin necesaria para ingresar un nuevo turno.
REFERENCIA TCNICA
Almacena los datos Sale de la pantalla Despliega un mensaje de error, si los datos estn duplicados o errneos.
No.
1 2 3 4 5 6 4
Actor
Selecciona un registro de la tabla turnos
Sistema
Habilita la opcin eliminar registro Elige la opcin eliminar Elige la opcin SI Elimina el registro correspondiente al personal Elige la opcin cerrar Elige la opcin NO Sale de la pantalla No elimina el registro Despliega una pantalla de confirmacin del proceso de eliminacin
No.
1 2 3 4 5 6
Actor
Selecciona un registro de la tabla turnos
Sistema
Habilita la opcin editar registro Elige la opcin editar Elige la opcin guardar Almacena los datos Elige la opcin cerrar Sale de la pantalla Despliega un mensaje de error, si los datos estn duplicados o errneos. Habilita los campos con la informacin a ser editada
Flujo Alternativo: 5
REFERENCIA TCNICA
Asignar Turno
Descripcin General: Permite asignar turnos de trabajo al personal de la Institucin. Actor: Encargado de RRHH Precondiciones: El usuario debe haberse logeado en el Sistema. Debe existir personal registrado. Deben existir turnos de trabajo registrados para ser asignados. El usuario debe tener privilegios para asignar turnos. Postcondiciones: Los Turnos asignados al personal son guardados en la Base de Datos y podrn usarse en el control de asistencia. Flujo: Asignar Turno
No.
1 2 3 4 5 6 7
Actor
Elige la opcin Asignar Turno
Sistema
Despliega una pantalla con la lista de personal registrado y turnos disponibles.
Selecciona Personal. Elige la opcin Turnos para asignar. Selecciona Turno Elige la Asignados opcin Almacena turno asignado para el personal seleccionado Turnos Despliega una pantalla con la lista de turnos asignados a personal seleccionado Sale de la pantalla
Flujo Alternativo:
No.
1 2 3 Elige la Asignados
Actor
Selecciona Personal opcin
Sistema
Turnos Despliega una pantalla con la lista de turnos asignados a personal seleccionado.
REFERENCIA TCNICA
que desea eliminar. 4 5 6 7 5 6 Flujo : Editar Turnos Elige la opcin cerrar Elige la opcin NO No elimina el registro Elige la opcin eliminar turno Elige la opcin SI Elimina el registro correspondiente al personal Sale de la pantalla Despliega una pantalla de confirmacin del proceso de eliminacin
Flujo Alternativo:
No.
1 2 3 4 5 6
Actor
Selecciona un registro de la tabla turnos
Sistema
Habilita la opcin editar registro Elige la opcin editar Elige la opcin guardar Almacena los datos Elige la opcin cerrar Sale de la pantalla Despliega un mensaje de error, si los datos estn duplicados o errneos. Habilita los campos con la informacin a ser editada
Flujo Alternativo: 5
REFERENCIA TCNICA
Datos y pueden ser utilizados en el registro de control de asistencia. Flujo: Aadir das no hbiles
No.
1
Actor
Sistema
Elige la opcin aadir das no Despliega el formulario con los campos hbiles. de informacin necesaria para el registro de das no hbiles. Llena los campos Elige la opcin guardar Almacena los datos Elige la opcin cerrar Sale de la pantalla Despliega un mensaje de error, si los datos estn duplicados o errneos. Valida los datos ingresados y si existe un error despliega un mensaje
2 3 4 5
No.
1 2 3 4 5 3 4 Selecciona eliminado.
Actor
registro a
Sistema
ser Habilita los botones eliminar y cancelar Despliega una pantalla de confirmacin del proceso de eliminacin Elimina los datos
Elige la opcin eliminar Elige la opcin SI Elige la opcin cerrar Elige la opcin NO
Sale de la pantalla
Gestionar Licencias
Descripcin General: Permite al encargado asignar licencias al personal de la institucin. Actor: Encargado RRHH Precondiciones:
REFERENCIA TCNICA
El usuario debe haberse logeado en el Sistema. El usuario debe tener privilegios para gestionar licencias Postcondiciones: Los datos de la licencia son almacenados en la Base de Datos y pueden ser utilizados en el registro de control de asistencia. Flujo: Aadir licencia
No.
1 2 3 4 5 6 7 Elige la licencia.
Actor
opcin
Sistema
gestionar Despliega una pantalla con la lista de personal registrado y turnos disponibles. Habilita los campos con la informacin necesaria para el tratamiento de licencias. Valida los datos ingresados y si existe un error despliega un mensaje. Almacena los datos de licencia al personal.
Selecciona el personal Elige la opcin licencias Llena los campos Elige la opcin asignar licencia
Sale de la pantalla Despliega un mensaje de error, si los datos estn duplicados o errneos.
Flujo Alternativo: 6
No.
1 2 3 4 5 3 4 Selecciona eliminado.
Actor
registro a
Sistema
ser Habilita los botones eliminar y cancelar Despliega una pantalla de confirmacin del proceso de eliminacin Elimina los datos
Elige la opcin eliminar Elige la opcin SI Elige la opcin cerrar Elige la opcin NO
Sale de la pantalla
REFERENCIA TCNICA
Registrar Huella
Personal
Encargado RRHH
Diagrama de Casos de Uso: Control de Asistencia Fuente: [Elaboracin propia] Detalle de Casos de Uso Caso de Uso: Registrar Huella
REFERENCIA TCNICA
No.
1 2
Actor
Sistema
El encargado de RRHH habilita Indica que esta en modo insercin la opcin insertar datos. El Personal imprime su huella Visualiza la plantilla de la huella digital digital en el lector biomtrico. del personal. El sistema pide el nmero de CI del personal al que corresponde la Huella Digital Si el CI introducido existe visualiza la fotografa de la persona
Si no encuentra el CI despliega un mensaje de Personal no encontrado verifique sus datos Elige la opcin guardar huella El encargado de RRHH elige la opcin aceptar Guarda la huella en la Base de datos. Deshabilita registrar la opcin modo Coloca la ventana en modo controlar asistencia.
5 6 7 8
Flujo Alternativo: 6 El encargado de RRHH elige la opcin cancelar. Despliega un mensaje de erro en caso de no encontrar el CI introducido permitiendo modificar el mismo No guarda la huella y fotografa
Capturar Huella
Descripcin General: El sistema captura los datos generados por el lector de huellas cuando el personal imprime su huella digital en el lector biomtrico. Actor: Personal Precondiciones:
REFERENCIA TCNICA
Debe estar conectado el dispositivo lector de huella. El dedo del personal debe estar en condiciones ptimas para evitar errores de captura de la huella digital. Postcondiciones: Los datos de huella digital y fotografa quedan almacenados en la Base de Datos. Flujo: imprimir huella digital
No.
1
Actor
Sistema
El personal imprime su huella Visualiza la plantilla de la huella digital digital en el lector biomtrico. del personal.
Flujo Alternativo:
Marcar Asistencia
Descripcin General: Permite al personal registrar su hora de entrada y salida Actor: Personal Precondiciones: El personal debe estar registrado previamente El personal debe tener turnos asignados El personal debe tener su registro de huella digital almacenado Postcondiciones: Los datos de asistencia del personal son almacenados en la Base de Datos. Flujo: Marcar Asistencia
No.
1
Actor
El usuario imprime su huella digital en el lector biomtrico.
Sistema
Visualiza la fotografa, la imagen de la huella digital, nombre, la fecha y hora del registro de asistencia. Verifica si tiene turnos asignados en esa fecha. Verifica que sea da hbil, si tiene licencias, etc.
3 4
REFERENCIA TCNICA
5 Flujo Alternativo: 2
Guarda los datos relacionados a la asistencia del personal. Visualiza un mensaje de personal no encontrado en caso de no identificar la huella digital Visualiza mensaje en caso de no tener turnos asignados, no guarda datos. Visualiza mensaje de da no hbil, no guardo los datos. No guarda los datos de asistencia.
3 4 5
Gestionar Asignaturas
Reportes
Exportar Horarios
Diagrama de Casos de Uso: Construir Horarios Fuente: [Elaboracin propia] Detalle de Casos de Uso Caso de Uso: Gestionar Carreras
Gestionar Carreras
Descripcin General: Permite crear y eliminar Carreras Actor: Encargado de Horarios Precondiciones:
REFERENCIA TCNICA
El usuario debe haberse logeado en el Sistema. El usuario debe tener privilegios para registrar carrera. Postcondiciones: Los datos de las carreras son almacenados en la Base de Datos y pueden utilizarse en la generacin de horarios Flujo: Aadir Carrera
No.
1 2 3 4
Actor
El usuario elige la opcin aadir
Sistema
Habilita los campos para insertar nueva carrera en la pantalla carreras.
No.
1 2 3 4 5 3 4 Selecciona tabla
Actor
Sistema
un registro de la Habilita la opcin eliminar registro Despliega una pantalla de confirmacin del proceso de eliminacin Elimina el registro seleccionado
Elige la opcin eliminar Elige la opcin SI Elige la opcin cerrar Elige la opcin NO
Sale de la pantalla
Gestionar Asignaturas
Descripcin General: Permite crear y eliminar Asignaturas Actor: Encargado de Horarios Precondiciones: El usuario debe haberse logeado en el Sistema.
REFERENCIA TCNICA
El usuario debe tener privilegios para registrar asignaturas. Postcondiciones: Los datos de las asignaturas son almacenados en la Base de Datos y pueden utilizarse en la generacin de horarios Flujo: Aadir Asignaturas
No.
1 2 3 4
Actor
El usuario elige la opcin aadir
Sistema
Habilita los campos para insertar nueva asignatura en la pantalla asignaturas.
No.
1 2 3 4 5 3 4 Selecciona tabla
Actor
Sistema
un registro de la Habilita la opcin eliminar registro Despliega una pantalla de confirmacin del proceso de eliminacin Elimina el registro seleccionado
Elige la opcin eliminar Elige la opcin SI Elige la opcin cerrar Elige la opcin NO
Sale de la pantalla
Gestionar Periodos
Descripcin General: Permite crear y eliminar Periodos Actor: Encargado de Horarios Precondiciones: El usuario debe haberse logeado en el Sistema. El usuario debe tener privilegios para registrar periodos.
REFERENCIA TCNICA
Postcondiciones: Los datos de los periodos son almacenados en la Base de Datos y pueden utilizarse en la generacin de horarios. Flujo: Aadir Periodos
No.
1 2 3 4
Actor
El usuario elige la opcin aadir
Sistema
Habilita los campos para insertar nueva asignatura en la pantalla asignaturas.
No.
1 2 3 4 5 3 4 Selecciona tabla
Actor
Sistema
un registro de la Habilita la opcin eliminar registro Despliega una pantalla de confirmacin del proceso de eliminacin Elimina el registro seleccionado
Elige la opcin eliminar Elige la opcin SI Elige la opcin cerrar Elige la opcin NO
Sale de la pantalla
Gestionar Aula
Descripcin General: Permite crear y eliminar Aulas Actor: Encargado de Horarios Precondiciones: El usuario debe haberse logeado en el Sistema. El usuario debe tener privilegios para registrar Aulas
REFERENCIA TCNICA
Postcondiciones: Los datos de las Aulas son almacenados en la Base de Datos y pueden utilizarse en la generacin de horarios. Flujo: Aadir Aulas
No.
1 2 3 4
Actor
El usuario elige la opcin aadir
Sistema
Habilita los campos para insertar nueva asignatura en la pantalla asignaturas.
No.
1 2 3 4 5 3 4 Selecciona tabla
Actor
Sistema
un registro de la Habilita la opcin eliminar registro Despliega una pantalla de confirmacin del proceso de eliminacin Elimina el registro seleccionado
Elige la opcin eliminar Elige la opcin SI Elige la opcin cerrar Elige la opcin NO
Sale de la pantalla
Configurar Horario
Descripcin General: Permite configurar los datos para la generacin de horarios para una determinada carrera. Actor: Encargado de Horarios Precondiciones: El usuario debe haberse logeado en el Sistema. El usuario debe tener privilegios para configurar datos de horarios
REFERENCIA TCNICA
Postcondiciones: Los datos configurados sern utilizados en la generacin de horarios. Flujo: Datos Carrera
No.
1
Actor
El usuario elige la opcin datos Carrera
Sistema
2 Selecciona la carrera par la cual se quiere generar el horario Selecciona el Turno en el que se dicta la carrera. Elige la opcin Aceptar
Despliega una pantalla con los campos habilitados para configurar los datos del horario a generar .
3 4 5 6
Despliega una lista con todas las asignaturas correspondientes a la carrera seleccionada. Elige la opcin paralelos Despliega una lista con todas las asignaturas para poder elegir cuales de ellas tienen paralelos
7 Selecciona la asignatura que tiene paralelo Selecciona el docente para esa asignatura Elige la opcin adicionar Elige la opcin Aulas Selecciona las aulas que participaran en la generacin de aulas
8 9 10 11
Adiciona a la lista que contiene las asignaturas para generar horarios Despliega una lista con todas las aulas disponibles.
12
13
Elige la opcin Parmetros del Despliega una ventana con los campos y Algoritmo la informacin necesaria para ejecutar el algoritmo generador de horarios Introduce los parmetros para el algoritmo Elige la opcin generar horarios Ejecuta el algoritmo gentico para la generacin de horarios
14 15
REFERENCIA TCNICA
16 17 18 19 20
Elige la generados
opcin
horarios Visualiza una ventana con las opciones para mostrar los horarios generados Visualiza una ventana con los horarios generados por semestre Despliega una lista de docentes Visualiza una ventana con los horarios del docente Sale de la ventana
Elige la opcin por semestre Elige la opcin por docente Selecciona docente Elige la opcin cerrar
Flujo Alternativo:
REFERENCIA TCNICA
: Administrador
: VUsuarios
: UsuariosDao
: Usuario
6: guardarUsuario()
7: retornarProceso()
REFERENCIA TCNICA
: Encargado RRHH
: Principal
: Gestionar Personal
: Buscar
: PersonalDao
: Persona
8: mostrar() 9: parametros( )
10: Buscar Personal( )
REFERENCIA TCNICA
Experiencia Laboral
: Encargado RRHH
: Kardex
: Buscar
: PersonalDao
: VExperienciaLab
: ExperienciaLaboralDao
: ExperienciaLabora
1: abrir()
2: buscar()
3: buscarPersonal() 4: retornaPersonal()
5: insertarExpLab()
6: insertarDatos()
7: validar()
REFERENCIA TCNICA
Situacin Laboral
: Encargado RRHH
: Kardex 1. abrir()
: Buscar
: PersonalDao
: VSituacionLab
: SituacionLaboralDao
: Situacionlaboral
2: buscar()
3:buscarPersonal
4: retornaPersonal()
5: insertarSitLab()
6: insertarDatos()
7: validar()
8: guardarDatos() 9: confirmarProceso 10: eliminarSitLab() 11: seleccionar() 12: eliminar() 13: confirmarEliminar() 14: actualizarSitLab()
15: seleccionarSitLab()
REFERENCIA TCNICA
: Encargado RRHH
: Principal
: AdministrarAsistencia
: VTurnos
: TurnosDao
: Turnoss
1: ingresar()
2: abrir() 4: registrarNuevoTurno()
3: abrir()
5: llenarDatos()
6: validar()
7: guardarTurno() 8: confirmarProceso
9: eliminarTurno()
13: salir()
REFERENCIA TCNICA
Asignar turnos
: Encargado RRHH
: Principal
: AdministrarAsi stencia
: VPersonal
: VTurnos
: VTurnosAsi gnados
: PersonalTurnosDao : Personalturnos
4: seleccionarPersonal()
5. selecci onarTurnos()
6: asignarTurnos()
7: asignar()
9: salir()
8:turnosAsignados()
REFERENCIA TCNICA
Gestionar Licencias
: Encargado RRHH
: Principal
: AdministrarAsistencia
: VLicencias
: LicenciaDao
: Licencia
1. ingresar()
2:abrir() 3: abrir()
4: introducirIDPersonal() 5: idPersonal()
6: verificar() 7: mostrarDatosPersonales()
8: registrarLicencia()
9: registrar()
10: mostrarLicencia()
11: seleccionarLicencia()
12: eliminarLicencia(id lic)
15: salir()
REFERENCIA TCNICA
Registrar Huella
: Encargado RRHH
: VControlAsistenci a
: PersonalDao
: Persona
8: registrar() 9: confirmarProceso()
10: desactivarModoInsercion()
REFERENCIA TCNICA
Marcar Asistencia
: Perssonal
: VControlAsistencia
: AsistenciaDao
: Asisstencia
1: registrarHuella() 2. enviarDatos()
3: validar()
4: registrarAsistencia()
5: visualizarDatosAsistencia
REFERENCIA TCNICA
: Encargado Horarios
: Principal
: VGestionarHorarios
: VAsignaturas
: AsignaturasDao
: Asignatura
4: registrarNuevaAsig()
5: llenarDatos()
6: valirdar()
7: guardarDatos 8: eliminarAsignaturas()
15. actualizarAsignatura()
REFERENCIA TCNICA
Construir horarios
: Encargado Horarios
: Principal
: VConstruirHorarios
: VParametrosHorario
: VParametrosAlgoritmo
: AlgoritmoGenetico
: VHorarios
1. ingresar()
2: abrir()
3: parametrosHorario() 4: parametrosAlgoritmo()
5: ejecutarAlgoritmo()
6: validar()
7: mostrarHorariosConstruir()
8: salir()
REFERENCIA TCNICA
1: ingresar()
: Administrador
: Principal
2: abrir()
4: introducirDatos() 9: seleccionarDatos()
: UsuariosDao
: Usuario
REFERENCIA TCNICA
1: abrir()
2: abrir()
: Encargado RRHH
20: salir()
: Principal
8: mostrar()
: Gestionar Personal
: Buscar
6: ok()
11: retornarPersonal()
: Persona
: PersonalDao
REFERENCIA TCNICA
Experiencia Laboral
1: abrir()
2: buscar()
3: buscarPersonal()
: Encargado RRHH
: Kardex
: Buscar
7: validar() 4: retornarPersoanl()
18: salir()
: VExperienciaLab
: ExperienciaLabora
REFERENCIA TCNICA
Situacin Laboral
1: abrir()
2: buscar()
3: buscarPersonal()
: Encargado RRHH
: Kardex
: Buscar
4: retornarPersonal()
7: validar()
18: salir()
: PersonalDao
: SituacionLaboralDao
: VSituacionLab
: Situacionlaboral
REFERENCIA TCNICA
1: ingresar()
2: abrir()
: Encargado RRHH
4: registrarNuevoTurno() 9: eliminarTurno()
: Principal
: GestionarAsistencia
13: salir()
3: abrir()
: VTurnos
6: validar()
: Turnoss
: TurnosDao
REFERENCIA TCNICA
Asignar Turnos
1: ingresar()
2: abrir()
: Encargado RRHH
: Principal
: GestionarAsistencia
9: salir()
4: seleccionarPersonal()
3: abrir()
5: seleccionarTurnos()
: VTurnosAsignados : VPersonal
: VTurnos
6: asignarTurnos() 8: turnosAsignados()
REFERENCIA TCNICA
Gestionar Licencias
1: ingresar()
2: abrir()
: Encargado RRHH
: Principal
: GestionarAsistencia
3: abrir()
5: idPersonal() 8: registrarLicencia() 12: eliminarLicencia(id lic)
: Licencia
REFERENCIA TCNICA
Registrar Huella
1: ingresar()
: Encargado RRHH
: Principal
2: abrir()
7: validar()
6: registrarHF()
: VControlAsistencia
: PersonalDao
9: confirmarProceso()
8: registrar()
: Persona
REFERENCIA TCNICA
Marcar Asistencia
3: validar()
1: registrarHuella()
2: enivarDatos()
: Perssonal
: VControlAsistencia
: AsistenciaDao
5: visualizarDatosAsistencia() 4: registrarAsistencia()
: Asisstencia
REFERENCIA TCNICA
1: ingresar()
2: abrir()
: Encargado Horarios
: Principal
: VGestionarHorarios
: AsignaturasDao
: Asignatura
REFERENCIA TCNICA
Construir Horarios
1: ingresar()
2: abrir()
: Encargado Horarios
: Principal
: VConstruirHorarios
3: parametrosHorario()
4: parametrosAlgoritmo()
: VParametrosHorario
8: salir()
6: validar()
7: mostrarHorariosConstruidos() 5: ejecutarAlgoritmo()
: VParametrosAlgoritmo
: AlgoritmoGenetico
: VHorarios
REFERENCIA TCNICA
Proceso de pruebas Pruebas de Unidad Prueba Ingresar al Sistema Titulo: Ingresar al Sistema Tipo de prueba: Prueba de unidad Tcnica de prueba: Caja Blanca Responsable: Proyectista la Verificar el ingreso al sistema con usuarios registrados
Datos de prueba
Objetivo de prueba Nombre de usuario y contrasea Datos de entrada Procedimiento de prueba: Introducir el nombre de usuario en el campo Usuario Introducir la contrasea en el campo contrasea Clic en el botn aceptar Ninguno. Problemas
REFERENCIA TCNICA
Prueba Gestionar Kardex Titulo: Kardex de Personal Tipo de prueba: Prueba de unidad Datos de prueba Tcnica de prueba: Caja Blanca Responsable: Proyectista Objetivo de la Comprobar el funcionamiento y desempeo de la gestin de kardex de personal. prueba Datos personales del empleado Datos de entrada Procedimiento de prueba: - Ingresar nuevo personal: Elegir la opcin Aadir personal Ingresar todos los datos en los campos del formulario Elegir la opcin guardar - Actualizar personal El personal debe estar seleccionado Clic en el botn Editar Modificar los datos necesarios Clic en el botn Guardar. - Eliminar personal El personal debe estar seleccionado Clic en el botn Eliminar El campo C.I. de personal y email no estn validados. Problemas Los campos de tipo Date no se guardan en la base de datos Solucin Implementar un mtodo de validacin para los campos CI y email Dar formato a todos los campos de tipo Date al formato requerido
Prueba Control de Asistencia Titulo: Control de Asistencia Tipo de prueba: Prueba de unidad Datos de prueba Tcnica de prueba: Caja Blanca Responsable: Proyectista Objetivo de la Comprobar el funcionamiento del mdulo control de asistencia del personal. prueba Huella Digital del personal Datos de entrada Procedimiento de prueba: Imprimir huella digital: Problemas 1. Al colocar el dedo en el lector de huella digital no se conecta con la base de datos 2. No marca la hora de registro entrada en el turno asignado
REFERENCIA TCNICA
3. No controla el tiempo de atraso y abandonos Solucin 1. Revisar la conexin a la base de datos a travs de la Unidad de Persistencia. 2. Implementar un mdulo que permita tratar fechas y horas 3. El entity manager que llama a la unidad de persistencia y realize la conexin a la base de datos es un mtodo esttico y el mtodo que lo invoca tambin debe ser esttico
Conclusiones
Prueba Gestionar Turnos Titulo: Gestionar Turnos Tipo de prueba: Prueba de unidad Datos de prueba Tcnica de prueba: Caja Blanca Responsable: Proyectista Objetivo de la Comprobar el funcionamiento de la gestin de turnos prueba Datos relacionados a los turnos Datos de entrada Procedimiento de prueba: - Aadir nuevo turno: Elegir la opcin Aadir turnos Ingresar todos los datos en los campos del formulario Elegir la opcin guardar - Eliminar turno El turno debe estar seleccionado Clic en el botn Eliminar Los campos que requieren formato de hora no estn Problemas validados y al procesar no guarda en la base de datos. Implementar un mtodo de validacin para campos Time Solucin
Prueba Gestionar Asignar Turnos Titulo: Asignar Turnos Tipo de prueba: Prueba de unidad Datos de prueba Tcnica de prueba: Caja Blanca Responsable: Proyectista Objetivo de la Comprobar el funcionamiento de la asignacin de turnos prueba Seleccionar turnos registrados Datos de entrada Procedimiento de prueba: - Seleccionar Personal: Clic en la Tabla para seleccionar personal - Seleccionar turno a asignar
REFERENCIA TCNICA
Clic en el turno a asignar Clic en el botn Asignar turno - Ver turnos asignados a personal Clic en la pestaa turnos asignados al personal Ninguna Problemas Ninguna Solucin
Prueba Gestin de Licencias Titulo: Gestin de Licencias Tipo de prueba: Prueba de unidad Datos de prueba Tcnica de prueba: Caja Blanca Responsable: Proyectista Objetivo de la Comprobar el funcionamiento de la Gestin de Licencias prueba Segn criterio de bsqueda (Ci o Apellido) Datos de entrada Procedimiento de prueba: - Buscar personal Clic en criterio de busca para seleccionar personal Introducir dato de bsqueda (CI o Apellido paterno) - Aadir permiso Clic en el botn nuevo Llenar datos en todos los campos del formulario Clic en el botn guardar permiso - Eliminar permiso Clic en el permiso a eliminar Clic en el botn eliminar permiso - Aadir licencia Clic en el botn nuevo Llenar datos en todos los campos del formulario Clic en el botn guardar licencia - Eliminar licencia Clic en la licencia a eliminar Clic en el botn eliminar licencia Problemas Solucin No verifica que el personal seleccionado tenga licencia y permiso la misma fecha Revisar cdigo y restringir la asignacin de permisos y licencias en la misma fecha
REFERENCIA TCNICA
Prueba Generar Horarios Titulo: Generar Horarios Tipo de prueba: Prueba de unidad Datos de prueba Tcnica de prueba: Caja Blanca Responsable: Proyectista Objetivo de la Comprobar el funcionamiento de la Construccin de horarios prueba Datos para la construccin de horarios Datos de entrada Procedimiento de prueba: - Datos Generales Seleccionar carrera para la cual se quiere construir el horario Seleccionar aulas que participarn en la construccin del horario Seleccionar los turnos que requiere el horario para su construccin - Datos parmetros Algoritmos Genticos Introducir tamao de poblacin Introducir nmero de generaciones Introducir probabilidad de cruce Introducir probabilidad de mutacin - Construir horario Clic en el botn Generar Horarios - Ajustar horario construido Seleccionar asignatura de la lista de asignaturas en conflicto Seleccionar aula, da y periodo disponible. Problemas Error al construir los horarios por que le falta parmetros o cuando no es posible construir el horario debido a la falta de aulas o el nmero de asignaturas con carga horaria es mayor que el nmero de periodos seleccionados Implementar un mtodo que permita verificar los datos para la construccin de horarios y los parmetros del algoritmo gentico.
Solucin
Pruebas de Integracin Pruebas encargadas de testear el funcionamiento y la estructura de los mdulos o subsistemas en su conjunto. Prueba Gestin de usuarios Titulo: Mdulo de gestin de usuarios Tipo de prueba: Prueba de integracin Tcnica de prueba: Caja Blanca y de caja negra
Datos de prueba
REFERENCIA TCNICA
Responsable: Proyectista Objetivo de la Verificar si la creacin de usuarios, y la asignacin de tareas a los usuarios en funcin a sus niveles de acceso es correcta, prueba comprobndose tal hecho iniciando sesiones con diferentes cuentas de usuarios Nombre de usuario y contrasea Datos de entrada Procedimiento de prueba: - Ingresar Nombre de Usuario - Ingresar Contrasea - Verificar que el men asignado corresponda a las tareas asignados a dicho usuario. Problemas Conclusin Ningn problema identificado Al haberse hecho las revisiones y correcciones necesarias al cdigo durante las pruebas de unidad no se tuvieron inconvenientes en esta etapa de pruebas.
Prueba de Integracin: Gestin Kardex de Personal Titulo: Mdulo Gestin Kardex de Personal Tipo de prueba: Prueba de integracin Datos de prueba Tcnica de prueba: Caja Blanca y de caja negra Responsable: Proyectista Objetivo de la Verificar si los datos del personal registrado son accesibles desde otros formularios que tienen relacin con el personal prueba y son persistidos en la Base de datos de manera correcta. Datos del personal Datos de entrada Procedimiento de prueba: - Ingresar nuevo personal - Registrar Experiencia Laboral - Registrar Situacin Laboral Problemas Conclusin Ningn problema identificado Al haberse hecho las revisiones y correcciones necesarias al cdigo durante las pruebas de unidad no se tuvieron inconvenientes en esta etapa de pruebas.
Prueba de Integracin: Construir Horarios Titulo: Mdulo Construir Horarios Tipo de prueba: Prueba de integracin Datos de prueba Tcnica de prueba: Caja Blanca y de caja negra Responsable: Proyectista Objetivo de la Verificar que todas las asignaturas que participarn en la
REFERENCIA TCNICA
construccin de horarios estn presentes en el Horario Construido Datos para la construccin de los Horarios (Asignaturas, Datos de entrada periodos, aulas Procedimiento de prueba: - Seleccionar Carrera para construir el horario. - Seleccionar Aulas que participarn en el horario - Elegir los perodos disponibles para construir el horario - Introducir los parmetros del algoritmo gentico - Clic en Construir horarios prueba Problemas No todas las asignaturas aparecen en el horario construido Error cuando el nmero de aulas por el numero de periodos es menos al nmero de asignaturas Revisar el cdigo del Algoritmo Gentico Implementar un mtodo para revisar los parmetros de ejecucin del algoritmo gentico
Solucin
REFERENCIA TCNICA
DICCIONARIO DE DATOS
Diccionario de Datos Un diccionario de datos es una descripcin detallada de todos los datos utilizados en la Base de Datos. Tabla Asignaturas Atributos id_asig cod_asig nombre_asig semestre carga_horaria carrera docente nivel Tipo de Dato Integer NOT NULL String String String String String String String
Tabla Asistencia Atributos id_asis ci fecha id_turno nombre_turno entrada salida atraso observaciones Tipo de Dato Integer NOT NULL String Date Integer String Time Time Time String
Tabla Aula Atributos id_aula bloque descripcin Tipo de Dato String NOT NULL String String
REFERENCIA TCNICA
Tabla AulaAsignada Atributos idAulaAsig nivel carrera Semestre Tipo de Dato INT NOT NULL String String String
Tabla Calendario Atributos fecha descripcion Tipo de Dato Date NOT NULL String
Tabla Carrera Atributos id_carrera nombre_carrera Nivel Tipo de Dato Integer NOT NULL String String
Tabla ExperienciaLaboral Atributos idel lugarTrabajo institucion cargo fecha_ingreso fecha_retiro ci Tipo de Dato Integer NOT NULL String String String Date Date String
Tabla Licencia Atributos id_licencia ci desde hasta motivo_licencia Tipo de Dato Integer NOT NULL String Date Date String
REFERENCIA TCNICA
Tabla Permisos Atributos id_permisos ci fecha nombre_turno Motivo Tipo de Dato Integer NOT NULL String Date String String
Tabla Personal Atributos ci paterno materno nombres sexo fechaNacimiento grupoSanguineo lugarNacimiento nivelEstudio estadoCivil aniosServicio categora rda numeroHijos direccion telefono email fotografia tipoMarca huella pin Profesiones Tipo de Dato String NOT NULL String String String String Date String String String String Integer String String Integer String String String Blob Boolean Blob String String
Tabla Profesiones Atributos cod_prof nombre_profesion Tipo de Dato Integer NOT NULL String
REFERENCIA TCNICA
Tabla situacionLaboral Atributos idsl ci cargo desde hasta item observaciones tipoContrato situacionLab cargodocente Tipo de Dato Integer NOT NULL String String Date Date String String String String String
Tabla Turnos Atributos id_turno dia nombre_turno hora_entrada hora_salida entrada_minima entrada_max salida_min Salida_max Tipo de Dato Integer NOT NULL String String Time Time Time Time Time Time
Tabla usuarios Atributos idusuario ci_usuario apellido_nombre nombre_usuario contrasena tipo_usuario nivel_acceso Tipo de Dato Integer NOT NULL String String String String String Integer
Tabla horario Atributos Id Nombre Tipo de Dato Integer NOT NULL String
REFERENCIA TCNICA
REFERENCIA TCNICA