UNIVERSIDAD MAYOR REAL Y PONTIFICIA DE SAN FRANCISCO XAVIER DE CHUQUISACA FACULTAD DE TECNOLOGÍA INGENIERÍA DE SISTEMAS
Proyecto de Grado “SISTEMA
DE CONTROL DE ASISTENCIA Y APOYO A LA
CONSTRUCCION DE HORARIOS DE LA UNIVERSIDAD PEDAGOGICA MARISCAL SUCRE” Proyecto de grado para obtener el título de Licenciatura en Ingeniería de Sistemas
Universitario
:
Morales Vargas Edwin Javier
Asesora
:
Lic. Viktoria Beliansk Belianskaya aya
Sucre, noviembre de 2010
DECLARACION DE DERECHOS DE AUTOR Al presentar este trabajo como uno de los requisitos para la obtención del Grado Académico de Licenciatura en Ingeniería de Sistemas de la Universidad Mayor Real y Pontificia de san Francisco Xavier de Chuquisaca, autorizo a la Dirección de Carrera de Ingeniería de Sistemas o a la Biblioteca de la Facultad de Tecnología de la Universidad, para que sea un documento disponible de lectura según las normas de la Universidad Asimismo, manifiesto mi acuerdo en que se utilice como “material producto”, dentro del
Reglamento de Ciencia y Tecnología vigente, siempre y cuando esta utilización no suponga ganancia económica ni potencial. También cedo a la Universidad de San Francisco Xavier de Chuquisaca el derecho de publicación total o parte de ella, respetando el derecho de autor, por un periodo de treinta meses después de su aprobación.
Edwin Javier Morales Vargas
Sucre, noviembre de 2010
DEDICATORIA Dedico este trabajo a mis amados padres; Vicente y Venancia, quienes me han brindado su apoyo incondicional en todo momento, enseñándome a levantarme en los momentos difíciles, 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
comprensión y por supuesto, a todas las personas que de una u otra manera hicieron posible la ejecución de este proyecto,
AGRADECIMIENTOS A la licenciada Victoria Velianskaya por su asesoría, consejos y su crítica constructiva que me llevó a alcanzar un mejor resultado. Al Ing. Juan Carlos Galeán Romero, por su paciencia y por las valiosas sugerencias que me guiaron a lo largo del desarrollo del proyecto. A mis padres políticos Andrés y Favia por creer y confiar en mí, demostrándome siempre su preocupación y cariño. A
Hivoneth mi cuñada, quien desde la
distancia y sin condiciones me facilitó herramientas importantes para desarrollar el proyecto. A la Universidad Pedagógica “Mariscal Sucre”,
por el apoyo recibido para la realización de este proyecto.
RESUMEN La construcción de horarios en una institución 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 institución, exige implementar una serie de métodos para optimizar el control de personal. Hoy en día, el más utilizado es el método biométrico que utiliza dispositivos electrónicos 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, además de apoyar en la construcción de horarios académicos para la Universidad Pedagógica “Mariscal S ucre”.
Para la construcción de horarios se eligió eligió el modelo de TTE (Time Tabling Educacional) el High-School Timetabling y los algoritmos genéticos, debido a las características y restricciones propias de la Institución. El proyecto ha sido desarrollado con conceptos de programación Orientada a Objetos, utilizando el lenguaje de Modelado Unificado (UML) para modelar el sistema. La implementación 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 implementación del sistema brinda a la Universidad Pedagógica “Mariscal Sucre” un mejor manejo de la información información relacionada al control de asistencia del personal y la posibilidad de generar alternativas de horarios académicos.
ÍNDICE DE CONTENIDO CAPITULO I CAPITULO I .................................................... ........................................................................................................... ...................................................................... ............... - 1 INTRODUCCIÓN Y OBJETIVOS........................................................................................ - 1 1.1. Introducción o antecedentes del proyecto.................................................... ................................................................. ............. - 1 1.2. Identificación del problema central del proyecto ....................................................... ................................ ....................... - 4 1.3. Abordaje de solución del problema ................................................... .......................................................................... ....................... - 4 1.4. Objetivos del proyecto pro yecto ...................................................... ................................................................................................ .......................................... - 7 1.4.1. Objetivo general ........................................................ .......................................................................................................... .................................................. - 7 1.4.2. Objetivos específicos .............................................................................................. .... - 7 1.4.3. Delimitaciones .......................................................... ............................................................................................................ .................................................. - 8 1.5. Justificación del proyecto ........................................................................................... - 9 1.5.1. Justificación Tecnológica ........................................................................................... - 9 1.5.2. Justificación Operativa ............................................................................................... - 9 MARCO CONTEXTUAL................................................. ................................................................................................... .................................................. - 10 2.1. Análisis de la Situación Actual ....................................................... ...................................................................................... ............................... - 10 2.1.1. Asignación de Horarios .............................................................................................. ...................................................... ........................................ - 10 2.1.2. Control de Asistencia al Personal Docente................................................................. - 12 2.2. Análisis del Dominio del Problema ................................................ ............................................................................... ............................... - 12 MARCO TEORICO CONCEPTUAL ................................................. ................................................................................ ............................... - 15 3.1. Marco Teórico del Dominio del Problema ......................................................... .................................................................... ........... - 15 3.1.2. Gestión de Recursos Recurso s Humanos .................................................... ................................................................................... ............................... - 16 3.1.3. Asignación de Horarios .............................................................................................. ...................................................... ........................................ - 16 3.2. Referencia a Proyectos Pro yectos Similares .................................................................................. - 16 3.3. Marco Teórico de Ingeniería ......................................................................................... - 18 3.3.1. Sistemas de Información ............................................................................................ - 19 3.3.2. Biometría ................................................ ....................................................................................................... .................................................................... ............. - 19 3.3.3. Sistemas Biométricos. ................................................................................................ - 19 3.3.4. Huella Digital ............................................................................................................. ............................................................. ................................................ - 21 3.3.5. Tecnologías 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. Métodos de Optimización ................................................... ........................................................................................... ........................................ - 28 3.3.9. Técnicas heurísticas h eurísticas Modernas .................................................... ................................................................................... ............................... - 28 3.3.9.1. Algoritmos Genéticos ..................................................... ............................................................................................. ........................................ - 29 3.3.9.2. Terminología de d e los Algoritmos Genéticos ................................................ ............................................................. ............. - 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 programación java............................................................................. - 38 3.3.10.2. Arquitectura Modelo M odelo Vista Controlador ..................................................... ................................................................ ........... - 38 3.3.10.4. Entorno de Programación ...................................................................................... - 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 Pos tGreSQL................................................. ....................................................................................................... .......................................................... .... - 42 3.3.12.2 MySQL ................................................................................................................... - 43 3.3.14. JPA: Java J ava Persistence API AP I ................................................ ........................................................................................ ........................................ - 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. Obtención de Requerimientos .................................................................................... - 46 4.1.4. Requerimientos no Funcionales.................................................................................. - 47 4.1.5. Requerimientos del Usuario Usuar io ....................................................................................... - 48 4.1.6. Identificación de actores ..................................................... ............................................................................................. ........................................ - 48 4.1.7. Diagramas de Casos de Uso ....................................................................................... - 49 4.1.8. Personas involucradas involucrad as en el desarrollo y operación ............................................... ................................................... .... - 52 4.1.9. Interfaces que requieren los usuarios......................................................................... usuarios......................... ................................................ - 52 4.1.10. Correspondencia entre elementos funcionales e interfaces ...................................... - 53 4.2. Proceso de Análisis An álisis y Diseño ........................................................................................ ................................................................. ....................... - 55 4.2.1. Riesgos del Proyecto .................................................................................................. - 55 4.2.2. Arquitectura del Sistema ............................................................................................ - 58 4.2.3. Estructura Estática del Sistema .................................................................................. - 59 4.2.3.1. Estructura de Datos.................................................................................................. - 59 4.2.4. Estructura Dinámica del Sistema ................................................. ................................................................................ ............................... - 64 4.2.4.1. Diagrama de secuencia ............................................................................................ - 65 4.2.4.2. Diagrama de colaboración ....................................................................................... - 66 4.2.5. Mapeamiento para la implementación del Sistema .................................................... - 67 4.2.5.1. Mapeamiento a Tablas ..................................................... ............................................................................................. ........................................ - 67 4.2.5.2. Diseño de la Base de Datos ..................................................................................... - 68 4.2.6. Elaboración del algoritmo genético para la distribución de los horarios en la .............................................................. ........... - 69 Universidad Pedagógica “Mariscal Sucre”.................................................... 4.2.6.1. Características Particulares de la Institución ....................................................... ........................................................... .... - 69 4.2.6.2. Factores involucrados en la generación de horarios ................................................ - 69 4.2.6.3. Diseño del Algoritmo .............................................................................................. - 71 4.2.6.4. Representación del Cromosoma (Individuo) ....................................................... ........................................................... .... - 74 4.2.6.5. Representación de la población ................................................ ............................................................................... ............................... - 76 4.2.6.6. Evaluación de la población ....................................................... ...................................................................................... ............................... - 78 4.2.6.7. Operadores Genéticos ...................................................... .............................................................................................. ........................................ - 80 4.2.6.8. Selección.................................................................................................................. - 83 4.2.6.9. Generación de la población inicial .......................................................................... - 83 4.3. Proceso de Implementación ................................................... ........................................................................................... ........................................ - 86 4.3.1. Fases y plazos de implementación............................................................................. - 86 4.3.2. Preparación de la plataforma ...................................................... ..................................................................................... ............................... - 86 4.3.4. Preparación del Software .................................................... ............................................................................................ ........................................ - 86 4.3.5. Diagrama de Componentes ................................................. ......................................................................................... ........................................ - 87 4.3.5.1. Módulos del Sistema ............................................................................................... - 88 4.3.5.2. Diagrama de Despliegue .................................................. .......................................................................................... ........................................ - 89 4.3.6. Estructura de Directorios Director ios y Archivos ......................................................................... .................................................... ..................... - 89 -
4.3.7. Implementación de las clases en lenguaje de programación ...................................... - 91 4.3.8. Implementación 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. Diseño y ejecución de d e las pruebas. ........................................................ ............................................................................. ..................... - 98 4.5.3.1. Pruebas de Unidad ................................................. ................................................................................................... .................................................. - 98 3.5.3.2. Pruebas de Integración ............................................................................................ - 99 4.6. Cronograma de ejecución ejec ución ...................................................... ............................................................................................ ...................................... - 100 4.6.1. Plan de desarrollo desar rollo del Proyecto ................................................................................ .............................................................................. .. - 100 4.6.2. Cronograma de Actividades ..................................................................................... ................................................................................... .. - 105 DISCUSIÓN DE RESULTADOS...................................................................................... - 108 5.1. Resultados .................................................. ......................................................................................................... .................................................................. ........... - 108 5.1.1. Interfaces de Usuario ................................................ ................................................................................................ ................................................ - 108 Se debe recalcar que RUP no define un diseño de interfaces y pantallas en ninguna de las fases; a continuación se muestra algunas de las interfaces más relevantes del sistema. . 108 5.2. Puesta en Marcha ................................................. ....................................................................................................... .......................................................... - 114 5.2.1. Especificación técnica de hardware y software ...................................................... .......................................................... - 114 5.2.2. Instalación del Sistema ............................................................................................. - 115 5.2.3. Capacitación a Usuarios ......................................................................................... ................................. ............................................................ - 115 5.2.2. Estimación del costo y Esfuerzo del Producto Produ cto ......................................................... - 116 CONCLUSIONES ...................................................... ............................................................................................................ .......................................................... - 118 RECOMENDACIONES .................................................................................................... - 119 REFERENCIA BIBLIOGRÁFICA ....................................................... .................................................................................... ............................. - 120 BIBLIOGRAFÍA ........................................................ .............................................................................................................. .......................................................... - 124 GLOSARIO DE TÉRMINOS ............................................................................................ ......................................................................... ................... - 125 ANEXOS ................................................. ......................................................................................................... ........................................................................... ................... - 127 REFERENCIA TÉCNICA ........................................................................................ ......... - 141 -
INDICE DE TABLAS Tabla 3.1. Comparación de Métodos Biométricos ................................................... .............................................................. ........... - 20 Tabla 3.2. Diferencias entre High School y university timetabling. ................................... - 27 Tabla 3.3. Codificación de la jornada de clases ................................................................... - 33 Tabla 3.4. Representación no binaria de un gene ...................................................... ................................................................. ........... - 33 Tabla 3.5. Comparativa de Entornos de Desarrollo.............................................................. - 40 Tabla 4.1. Prevención y mitigación 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 Gestión de Usuarios................................................................................. - 99 Tabla 4.8. Planificación de Actividades (Investigación de las Herramientas) ................... - 101 Tabla 4.9. Planificación de Actividades (Desarrollo (Desa rrollo del proyecto) pro yecto) .................................... - 101 Tabla 5.1. Especificación técnica de hardware hardwar e (servidor) ................................................ .................................................... - 114 Tabla 5.2. Especificación técnica de d e hardware (cliente) .................................................... .................................................. .. - 114 Tabla 5.3. Especificación técnica de software ................................................. .................................................................... ................... - 115 Tabla 5.4. Costos de obtención de información, papelería p apelería y otros ..................................... - 116 Tabla 5.5. Costos de licencias de software ...................................................... ......................................................................... ................... - 116 -
INDICE DE FIGURAS Figura 1.1. Abordaje de solución del problema .................................................................... - 6 Figura 2.1. Proceso de construcción de horarios en la UPNMS .......................................... - 11 Figura 3.1. Lector de huella RS- 120 ................................................................................... - 21 Figura 3.2. Lector de huella hu ella Hamster ................................................................................... - 23 Figura 3.3. Lector de huella DigitalPersona ......................................................................... - 23 Figura 3.4. Técnicas de Búsqueda ................................................ ........................................................................................ ........................................ - 28 Figura 3.5. Inicializar aleatoriamente una población ........................................................... .................................... ....................... - 30 Figura 3.6. Cruce de Soluciones .................................................. .......................................................................................... ........................................ - 31 Figura 3.7 Mutación de Soluciones ..................................................... .................................................................................... ............................... - 31 Figura 3.8. Selección de la Población................................................................................... - 32 Figura 3.9. Representación no binaria de un cromosoma .................................................... - 34 Figura 3.10. Correspondencia Corr espondencia entre los cursos a impartir y los espacios disponibles .......... - 35 Figura 3.11 Esquema Esqu ema Modelo Vista Controlador ...................................................... ................................................................. ........... - 39 Figura 4.1. Diagrama de Casos de Uso Principal P rincipal ...................................................... ................................................................. ........... - 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 Colaboración: Datos Personales ................................................... - 66 Figura 4.10. Diagrama Entidad Relación Re lación ............................................................................. - 67 Figura 4.11. Modelo Lógico Global de Datos ................................................. ...................................................................... ..................... - 68 Figura 4.12. Representación del Individuo Inicial ............................................................... - 75 Figura 4.13. Representación del Individuo Final ................................................................. - 76 Figura 4.14. Representación Repr esentación de la población ................................................... ........................................................................ ..................... - 76 Figura 4.15. Módulos del Sistema ................................................ ........................................................................................ ........................................ - 88 Figura 4.16. Diagrama de Componentes .............................................................................. - 88 Figura 4.17. Diagrama de Despliegue .................................................................................. - 89 Figura 4.18. Estructura Estru ctura de Directorios y Archivos .................................................... ............................................................... ........... - 90 Figura 4.19. Implementación de la base de datos (Interfaz SQL Maestro for MySQL) ...... - 95 Figura 4.20. Interfaz Inter faz ingreso al sistema ................................................. ................................................................................ ............................... - 96 Figura 4.21. Diagrama de Gant del proyecto...................................................................... - 105 Figura 4.22. Diagrama de Gant del Proyecto (Continuación) ............................................ - 106 Figura 4.23. Diagrama de Gant del proyecto (Continuación) ............................................ - 107 Figura 5.1. Menú Principal del Sistema ............................................................................. - 108 Figura 5.2. Registro de Personal ................................................... ......................................................................................... ...................................... - 109 Figura 5.3. Registro Situación Laboral .................................................. ............................................................................... ............................. - 109 Figura 5.4. Búsqueda de Personal ...................................................................................... - 109 Figura 5.5. Reporte Repor te de personal perso nal .................................................... .......................................................................................... ...................................... - 110 Figura 5.6. Registro de Turnos ........................................................................................... - 110 Figura 5.7. Asignación 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. Configuración Confi guración Datos Horario Hora rio ...................................................... ......................................................................... ................... - 113 Figura 5.12. Horarios Construidos ..................................................................................... - 113 -
CAPITULO I INTRODUCCIÓN Y OBJETIVOS
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
CAPITULO I INTRODUCCIÓN Y OBJETIVOS 1.1. Introducción o antecedentes del proyecto La “Escuela Nacional de Maestros Maestros de Sucre”, se creó el 6 de junio de 1909 con el nombre de “Escuela de Preceptores de la República”, luego “Escuela Normal de Maestros Mariscal Sucre”, posteriormente “Instituto Normal Superior”, hoy Universidad Pedagógica Nacional “Mariscal Sucre”; cuyo objetivo principal es la formación de profesionales de la educación en
todos los grados, modalidades y especialidades capaces de contribuir en la solución de problemas de la educación nacional, desarrollando investigación educativa en el proceso pedagógico de formación, a través de procesos de interacción social y cultural, permitiendo la aplicación práctica de las capacidades y competencias adquiridas en la formación profesional. La Universidad Pedagógica Nacional “Mariscal Sucre” es una Institución de Educación
Superior dependiente del Ministerio de Educación, cuyos ambientes se encuentran ubicados en la ciudad de Sucre Capital de la República de Bolivia, en la Avenida del Maestro No. 331. La Universidad Pedagógica 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 Información Administrativa) [1]. El proyecto a desarrollarse beneficia al personal docente y alumnado de la institución. La Universidad Pedagógica Nacional “Mariscal Sucre” cuenta
con recursos informáticos 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 están distribuidos de la siguiente manera: 40 computadoras para el área administrativa (Rectorado 2, Unidad de Registro e Inscripciones 5, Almacenes 2, Recursos Humanos 2, Administración 2, oficinas dependientes de Primaria 8, oficinas dependientes de Secundaria 5, Biblioteca 12, Bienestar Universitario 1, Portería 1) y 52 computadoras en Laboratorios de Primaria y Secundaria; también cuenta con el servicio de
-1CAPITULO I: Introducción o Antecedentes del Proyecto
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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, página 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.
Todos estos recursos informáticos han sido proporcionados por el
Ministerio de Educación. Actualmente el Centro de Cómputo de la Universidad se encuentra en la Unidad de Registro e Inscripciones que es encargada del Seguimiento y Control Académico (admisiones, inscripciones, registro de notas, matrículas, entre otras), kardex de personal docente y administrativo a través del Sistema de Formación Docente (SIFD), desarrollado con la herramienta de programación Delphi, este sistema ha sido implementado el año 2004 otorgado por el Ministerio de Educación. Otro sistema con el que cuenta la institución es el Sistema SINCON otorgado por el Ministerio de Hacienda Hacienda y a cargo de la Unidad de Contabilidad. La Universidad cuenta con un Sistema de Control de Asistencia SIA [1] (Sistema de Información Administrativa) desarrollado con la herramienta de programación Delphi que fue adquirido e implementado el año 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 institución, 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 electrónicas independientes (Excel) en la Unidad de Recursos Humanos, estos reportes (días trabajados, atrasos, faltas, licencias, etc.), pasan manualmente a la Unidad de Contabilidad para la elaboración de planillas. El problema de la asignación de horarios y distribución de aulas radica en que normalmente se requiere varios días de trabajo para su elaboración porque se debe tomar en cuenta varios parámetros 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: Introducción o Antecedentes del Proyecto
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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 publicación. En la elaboración de los horarios y la distribución de aulas se toma como parámetro 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. etc. Según una investigación hecha en la Universidad de Palermo “Las versiones de software comercial, libre libre y/o gratuito que existen en el 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 distribución”[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-higiénicas asignaciones de grupos, inclusive es posible realizar cambios manuales, la dificultad radica en que existen muchas condiciones y restricciones que varían en comparación al objeto de estudio en cuestión y están en idioma inglés. 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 gráfico, intuitivo y amigable. Las alternativas mencionadas aportan un avance considerable en el proceso de asignación de aulas sin embargo, son productos diseñados para su uso general y aunque proclaman ser
-3CAPITULO I: Introducción o Antecedentes del Proyecto
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
ideales, no toman en cuenta factores importantes que son requeridos para su uso en la Universidad Pedagógica “Mariscal Sucre”, como por ejemplo que existen carreras por turnos y
que cada bloque ya está asignado a una determinada carrera.
1.2. Identificación del problema central del proyecto El
problema identificado en la Universidad Universidad Pedagógica Nacional “Mariscal Sucre” es la la
dificultad de generar horarios, asignar aulas y controlar la asistencia al personal docente por medio de un proceso manual.
1.3. Abordaje de solución del problema Para resolver el problema identificado se propone desarrollar una aplicación cliente servidor centralizado que permita asignar aulas, generar horarios y controlar la asistencia al personal docente; utilizando el lenguaje de programación Java SE, siguiendo el paradigma de programación orientado a objetos [7], la metodología RUP (Rational Unified Process)[8], ciclo de vida iterativo incremental, lenguaje de modelado UML[9], Interfaz de usuario empleando la herramienta de programación Netbeans6.1[10], lenguaje de programación Java[11]; la administración y tratamiento de la información 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 almacén de datos más común 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 implementación Java Persistence Api (JPA) que proporciona un estándar para gestionar datos relacionales en aplicaciones Java, de forma que además se simplifique el desarrollo de la persistencia de datos[14], el MOR es una técnica que mapea representaciones de datos de un modelo de objetos a un modelo de datos relacional con un esquema basado en SQL. Además, para la búsqueda de una solución óptima en la distribución de aulas y generación de horarios se utilizará métodos matemáticos de optimización multiobjetivos como son los algoritmos genéticos que forma parte de los algoritmos evolutivos. En cuanto a la metodología utilizada en la elaboración del proyecto se considera principalmente el método científico, métodos empíricos y teóricos. -4CAPITULO I: Identificación del problema central del proyecto
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Los métodos y Medios de Investigación utilizados son: La Revisión Bibliográfica para realizar la revisión de toda la documentación de investigaciones existentes sobre el tema y recolectar la información correspondiente a la aplicación de la informática en la búsqueda de soluciones optimas. [15] Las Entrevistas al personal involucrado con el proceso de control de asistencia y elaboración de horarios en la Universidad Pedagógica. La Recopilación de la Información 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 Análisis y Síntesis 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 implementación de un sistema con estas características.
-5CAPITULO I: Identificación del problema central del proyecto
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
ABORDAJE DE SOLUCIÓN DEL PROBLEMA AL ELABORAR
SE EMPLEA
TÉCNICAS METAHEURÍSTIC AS
SE EMPLEA
SISTEMA CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS
TECNICAS DE BIOMETRIA
SE ELIGE PARADIGMA O. O. O. METODOLOGÍA
PROCESO UNIFICADO
HERRAMIENTAS
CICLO DE VIDA
BD
ITERATIVO INCREMENTAL
MY SQL 5.1.31
MAPEO OBJETO RELACIONAL
LENGUAJES
(Modelado) UML
S. O.
(Programación)
JAVA
CON
WINDOWS XP
DOC.
MICROSOFT WORD
JPA
ENT. DE PROG
NETBEANS 6.0.1
HERR. CASE
RATIONAL ROSE
Figura 1.1. Abordaje de solución del problema Fuente : Elaboración propia
-6CAPITULO I: Abordaje de solución del problema
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
1.4. Objetivos del proyecto 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 institución en función a la información provista y ajustándose a las políticas de la misma.
1.4.2. Objetivos específicos
Desarrollar un subsistema kardex del Personal Docente de la Institución, que gestione la situación laboral, formación académica, datos personales, documentación, etc., con las interfaces claras y entendibles, ajustándose a lo establecido en las normas ISO 9000.
Desarrollar un subsistema para el control de asistencia del personal docente utilizando tecnología biométrica y que se ajuste a las políticas y normas de la institución.
Diseñar e implementar un subsistema para una distribución óptima de recursos (Aulas, Horarios).
Desarrollar un Subsistema de Reportes que permita obtener la información clara, concreta y confiable, además de permitir la impresión 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 información clara y concreta con relación a todas las funcionalidades y recursos, permitiendo una navegabilidad fluida entre sus diferentes temas.
Implementar y poner a prueba el Sistema durante un mínimo 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 Institución, documentando todo el proceso. -7-
CAPITULO I: Objetivos del proyecto
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
1.4.3. Delimitaciones La delimitación del proyecto identifica que las siguientes actividades quedan fuera del alcance del proyecto:
Diseño e instalación de redes de computadoras, ya que la institución 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 emisión de planillas y sueldos.
-8CAPITULO I: Objetivos del proyecto
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
1.5. Justificación del proyecto 1.5.1. Justificación Tecnológica En la elaboración del proyecto se utilizan métodos matemáticos de distribución de espacios, de tal manera que puedan optimizar la asignación de recursos. Los métodos matemáticos de optimización como los algoritmos genéticos, multiobjetivos y evolutivos no han sido utilizados en nuestro medio y la utilización en este proyecto puede servir para resolver otros problemas similares de distribución como ser asignación de canales en comunicación móvil, asignación de carga académica, distribución de redes de computadoras etc.
1.5.2. Justificación Operativa La elaboración del proyecto beneficia al personal encargado de la administración de la Institución por cuanto ahorra tiempo y esfuerzo ya que el sistema distribuye aulas y asigna horarios automáticamente, pero sobre todo los estudiantes no tienen que andar buscando aulas adecuadas para el desarrollo normal de sus actividades académicas, además la automatización del control de asistencia a docentes facilita el manejo de la información a la hora de generar reportes, etc., necesarios para el envío a planillas, además de garantizar, la seguridad e integridad de la información.
-9CAPITULO I: Justifica J ustificación ción del Proyecto
CAPITULO II MARCO CONTEXTUAL
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
MARCO CONTEXTUAL 2.1. Análisis de la Situación Actual La Universidad Pedagógica Nacional “Mariscal Sucre” es una Institución de Educación
Superior que involucra una numerosa cantidad de Recursos Humanos (Docentes, Administrativos, Estudiantes, Personal de Servicio), e Infraestructura (Aulas, laboratorios, Oficinas). Entre los procesos que realiza la Universidad Pedagógica para el desarrollo normal de las actividades académicas, están principalmente la asignación de horarios académicos y el control de asistencia al Personal Docente. En ambos casos el proceso es manual considerando ciertas restricciones obligatorias.
2.1.1. Asignación de Horarios Para la asignación de horarios la institución emplea el modelo de horarios por turnos, esto quiere decir, que el nivel primario realiza sus actividades académicas en el turno de la mañana y el nivel secundario en el turno de la tarde, esta asignación es flexible para casos especiales (falta de aulas en turno asignado, asignaturas que requieren laboratorios), además que cada carrera cuenta con un determinado bloque de aulas asignado. Por otro lado se debe tomar en cuenta que los docentes ya tienen asignado las asignaturas que deben impartir. Para evitar mayores complicaciones los horarios son elaborados tomando en cuenta los horarios de la anterior gestión. Las restricciones obligatorias para la generación de horarios son: 1. Un Docente no puede impartir dos o más asignaturas en el mismo horario. 2. Una sala de clases no puede ser utilizada por dos o más asignaturas al mismo tiempo 3. Una asignatura debe cumplir con la cantidad de horas semanales requeridas 4. No deben coincidir los horarios de las asignaturas que corresponden a un mismo semestre en la malla curricular. El proceso de construcción de los horarios es el siguiente: - 10 CAPITULO II: Análisis de la Situación Actual
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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 Dirección Académica para su revisión y aprobación en caso de existir alguna observación vuelve a ser revisado por el coordinador y directores de carrera este proceso se repite hasta que sea aprobado por dirección académica. Este proceso de asignación y distribución de aulas se muestra en la siguiente figura: Inicio
Criterios de Evaluación de horarios - Un Docente no puede impartir dos o más asignaturas en el mismo horario. - Un Aula no puede ser utilizada por dos o más 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. -
Construcción de horarios por Directores de Carrera y Coordinador de Nivel n
Horarios aceptables
si Revisión y aprobación de los horarios por Dirección Académica
Horarios Aprobados
n
si Imprimir
Fin Figura 2.1. Proceso de construcción de horarios en la UPNMS Fuente: Elaboración propia fundamentada en los procedimientos de la Universidad Pedagógica
- 11 CAPITULO II: Análisis de la Situación Actual
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
2.1.2. Control de Asistencia al Personal Docente El control de asistencia al al personal docente se realiza a través 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 día. La planilla de asistencia se encuentra en las puertas de ingreso a la institución 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 mañana.
-
Hora de salida turno de la mañana.
-
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 mañana y tarde.
2.2. Análisis del Dominio del Problema A continuación se realiza un detalle de los factores que causan inconvenientes en el proceso de construcción de horarios y el control de asistencia, estos problemas fueron obtenidos después de aplicar entrevistas a los encargados del proceso (Director Académico, Coordinador de nivel, Directores de Carrera, Jefe de Recursos Humanos).
- 12 CAPITULO III Análisis del del Dominio del Problema Problema
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Director Académico : es el encargado de la publicación del horario final previa evaluación del
mismo. Coordinador de Nivel: es el encargado de enviar los horarios propuestos al Director
Académico, previa revisión y análisis con los directores de Carrera del nivel correspondiente (Inicial, Primario y Secundario). Directores de Carrera: son los encargados de elaborar los horarios académicos 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 periódicamente 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 generación de horarios
Una de las dificultades que se presentan en la Universidad Pedagógica al inicio de una gestión académica y durante el desarrollo de la misma es la construcción de horarios ya que la institución no cuenta con un software que elabora automáticamente los horarios de clases, tarea que normalmente requiere varios días de trabajo manual. El problema de la construcción de horarios radica en la gran cantidad de combinaciones posibles que se provocan al intentar asignar horarios a los profesores. Esta situación provoca regularmente molestias personales, problemas de funcionamiento, conflictos de asignación de tiempos y choques de horarios, los cuales se solucionan en un proceso posterior ajustándose a la disponibilidad de tiempo de los profesores lo cual implica gran pérdida 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, planilla, buscar su turno asignado para ese día, lo que muchas veces genera colas de espera y esto pérdida de tiempo, - 13 CAPITULO III Análisis del del Dominio del Problema Problema
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
además 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 los problemas identificados se ha determinado que existe la siguiente necesidad: Implementar un sistema que permita: -
Registrar datos del Personal Docente de forma legible rápida y que almacene los mismos de manera permanente.
-
Obtener datos del personal de forma automática e inmediata par su actualización o para la elaboración de reportes según criterios establecidos.
-
Registrar turnos de trabajo de acuerdo a los períodos académicos establecidos por la institución.
-
Asignar turnos al personal docente, de acuerdo a los horarios académicos asignados al mismo.
-
Registrar las carreras disponibles en la institución.
-
Registrar las asignaturas por carrera y con el docente asignado a la misma
-
Construir horarios académicos 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.
- 14 CAPITULO III Análisis del del Dominio del Problema Problema
CAPITULO III MARCO TEÓRICO CONCEPTUAL
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
MARCO TEORICO CONCEPTUAL 3.1. Marco Teórico del Dominio del Problema El uso de la computadora es un elemento indispensable en todos los ámbitos de nuestra sociedad, proporciona además de eficiencia un considerable ahorro en el tiempo. Las instituciones educativas superiores de hoy en día, se han visto en la necesidad de implementar Sistemas Informáticos para un adecuado manejo y control de sus recursos, en la mayoría de los casos estos sistemas están 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 aún amplia utilización de sistemas tradicionales, como ser: los "Sistemas Manuales" de control basados en los antiguos relojes mecánicos que utilizan tarjetas de cartón, o únicamente con "partes de asistencia" que no son otra cosa que hojas de papel con líneas numeradas en las que los empleados firman e indican (ellos mismos) la hora en la cual ingresan o salen de la Institución. Al mismo tiempo otro de los principales problemas para la modernización de las instituciones educativas superiores es la elaboración y asignación 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 están en la incorporación de sistemas biométricos, porque permiten establecer mecanismos de control y seguridad confiables; por otro lado para resolver el problema de la generación de horarios y distribución de aulas se han realizado muchas investigaciones con Técnicas Heurísticas Modernas conocidas también como Técnicas de Búsqueda de Soluciones como ser: Algoritmos Evolutivos, Algoritmo Tabú, Teoría de Grafos, Algoritmos Genéticos, etc. Según el Instituto Tecnológico de Nuevo Laredo “La técnica más eficaz para generación de horarios
son los Algoritmos Genéticos ya que esta técnica ha sido muy utilizada en problemas similares y cuyo funcionamiento se inspira en procesos naturales combinando rapidez y eficiencia”.[18]
- 15 CAPITULO II: Marco Teórico del Dominio del Problema
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
3.1.2. Gestión de Recursos Humanos La gestión de recursos humanos es una actividad indispensable indispensable en toda entidad entidad donde el control de asistencia del personal se convierte en un elemento de vital importancia, más aún si se trata de una entidad entidad académica, donde la inasistencia o los permanentes atrasos del personal afectan negativa y directamente a los objetivos académicos propuestos en el plan curricular de la institución. Una buena gestión en el control de personal permite alcanzar los objetivos definidos de la manera más eficaz y eficiente posible. [19]
3.1.3. Asignación de Horarios El problema de programación docentes, horarios y cursos consiste en elaborar una programación de cursos que logra cumplir, lo mejor posible, los compromisos laborales y académicos de la institución, tomando en cuenta la disponibilidad de horario de los docentes, los posibles cursos que estos pueden impartir, la disponibilidad de espacios físicos, etc. Es conocido que el problema de Programación docentes, horarios y cursos es NP- Hard y debido al grado de dificultad involucrado en resolver este tipo de problemas, es un área de investigación muy activa. Una prueba de esta última afirmación es la Conferencia Internacional de Practice and Theory of Automated Timetabling realizada el año 2007. Además 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 información actualizada acerca de este tema en la web. [20]
3.2. Referencia a Proyectos Similares En el departamento de Chuquisaca, Sucre, existen varias instituciones educativas e instituciones gubernamentales que implementaron Sistemas de Control de Asistencia al Personal que van desde el empleo de tarjetas magnéticas hasta lectores de huellas digitales. Por otro lado, se puede afirmar que en nuestro medio no existen Instituciones Educativas Superiores sean estas estatales o privadas que hayan implementado un sistema automatizado que administre los horarios, aulas y docentes; sin embargo existen investigaciones realizadas
- 16 CAPITULO II Referencia a Proyectos Similares
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
en otros países y publicadas a través de internet. A continuación 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 programación es DELPHI 5, en el diseño de base
de datos SQL Server 2000 y la tecnología biométrica a través 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, además no se cuenta con el código fuente, por lo que no se puede adaptar a los requerimientos de nuestro problema. -
Sistema Biométrico de control de asistencia y planillas de pago
Este trabajo de proyecto de grado fue presentado en la Universidad Mayor de San Andrés el año 2008. Para optar el titulo de Licenciatura en informática mención Ingeniería de Sistemas informáticos. El objetivo principal de este proyecto de grado es controlar la asistencia del personal de la alcaldía de El Alto, haciendo uso de tecnología biométrica, utilizando la metodología RUP, entorno de programación Visual Basic.Net, gestor de Base de Datos SQL Server.[21] - Algoritmos Genéticos par la resolución de un problema de tipo Timetabling Este trabajo de tesis fue presentado en la universidad de Valparaiso Chile el año 2007 y se centra en encontrar una solución al problema de asignación de horarios que existe en la carrera de Ingeniería en Informática Aplicada. Para resolver este problema se utilizó Algoritmos Genéticos, que pertenecen al grupo de Técnicas Metaheurísticas y Algoritmos Evolutivos. El contenido del proyecto brinda un resumen sobre cómo resolver el problema de la construcción de horarios universitarios a través de la aplicación de algoritmos genéticos. La importancia de este trabajo de tesis es que muestra en detalle un modelo
- 17 CAPITULO II Referencia a Proyectos Similares
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
matemático general para su resolución, este modelo puede ser adaptado a los requerimientos de nuestro proyecto.[22] - Distribución Óptima de Horarios de Clases utilizando la técnica de Algoritmos genéticos
Trabajo de tesis implementado en la Universidad Tecnológica de Mixteca (UTM) México. El Algoritmo Genético implementado en este trabajo de Tesis, reduce eficazmente el tiempo que toma elaborar una correcta asignación de horarios, otra ventaja de utilizar el AG para la asignación de horarios, es que no se limita a un determinado número de aulas si no que proporciona una opción abierta para que dicho algoritmo se adapte al crecimiento de la infraestructura de dicha institución. [23]
3.3. Marco Teórico de Ingeniería La seguridad es el tema del momento y el reconocimiento de la identidad de las personas es uno de sus aspectos más fundamentales. Se ha demostrado la necesidad urgente de establecer métodos mejorados para verificar la identidad de las personas. Los sistemas biométricos surgen como una solución real a las demandas de identificación del mundo moderno. Estos sistemas, con la capacidad de verificar automáticamente la identidad de las personas basándose en características individuales, son una de las muchas tecnologías que serán utilizadas para reforzar la seguridad en lugares con acceso controlado como oficinas de gobierno, aeropuertos; o para control de asistencia al personal numeroso que trabaja en turnos diferentes. Recientemente en nuestro país Bolivia se ha implementado el padrón electoral biométrico para las elecciones generales. Según Marcelo Villegas responsable de informática de la CNE “En el
caso del reconocimiento de la huella digital, se ha de tener en cuenta que en ningún caso se extrae la imagen de la huella, sino una secuencia de números que la representan; esto, además, sirve para que nadie que opere con estos sistemas guarde un registro fotográfico de las huellas digitales con la posibilidad de reproducirlas para otros usos”.
- 18 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
3.3.1. Sistemas de Información Un sistema de información es un conjunto de procedimientos ordenados que, al ser ejecutados, proporcionan información para apoyar la toma de decisiones y el control de la Institución. La información se define como una entidad tangible o intangible que permite reducir la incertidumbre acerca de algún estado o suceso. Los sistemas de información administrativa están volviéndose indispensables, a gran velocidad, para la planificación, la toma de decisiones y el control. La velocidad y exactitud con que los directivos pueden recibir información sobre lo que está funcionando bien o lo que está funcionando mal determinarán, en gran medida, la eficacia que tendrán los sistemas de control. Dado que los sistemas de información desempeñan un papel tan importante en la administración de instituciones educativas, ahora es fundamental que los directivos entiendan cómo deben diseñar aplicar y manejar tales sistemas. [24]
3.3.2. Biometría Para David Zhang la biometría es: “La biometría es la ciencia que se dedica a la identificación
de individuos a partir de una característica anatómica o un rasgo de su comportamiento. Una característica anatómica 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 Biométricos. Son métodos automatizados de reconocimiento de personas basados en características fisiológicas o conductistas. Algunas de las características son cara, huellas digitales, geometría de la mano, escritura a mano, el iris, de retina, la vena, y la voz. Las tecnologías biométricas se están volviendo el principio básico de un conjunto imponente de identificación altamente seguro y soluciones de verificación personal. Los sistemas biométricos incluyen un dispositivo de captación y un software que interpreta la muestra física y la transforma en una secuencia numérica única. En el caso del reconocimiento de la huella digital, se ha de tener en cuenta que en ningún caso se extrae la imagen de la huella, sino una secuencia de números que la representan; esto, además, sirve para que nadie que opere con estos sistemas guarde un registro “fotográfico” de las
huellas digitales con la
posibilidad de reproducirlas para otros usos. - 19 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
A partir de los planteamientos de la asociación internacional de biometría se deduce que, las aplicaciones de autenticación biométrica incluyen desde acceso seguro a computadoras, redes, la protección de datos, el acceso remoto a recursos, la seguridad en transacción y la seguridad de Web, hasta el control horario y control de acceso físico a una sala de acceso restringido. Utilizar sistemas biométricos para la autenticación personal se está volviendo conveniente y considerablemente más preciso que los métodos actuales (como la utilización de contraseñas), esto es porque es particular (una contraseña o señal puede ser usada por alguien aparte del usuario autorizado), conveniente (nada a llevar o recordar), preciso (tiene prevista autenticación positiva), pueden proveer una pista para auditoria y son socialmente aceptables.[25] Tabla 3.1. Comparación de Métodos Biométricos Biométricos
Muy alta
Ojo – Retina Muy alta
Media
Baja
Alta
Alta
Alta
Alta
Muy alta
Muy alta
Alta
Alta
Media
Media
Aceptación
Media
Media
Alta
Alta
Muy alta
Alta
Estabilidad
Alta
Alta
Alta
Media
Media
Media
Ambas
Ambas
Ambas
Autenticación
Ambas
Autentica ción
-
-
ANSI/NI ST
-
-
SVAPI
Artritis, Reumatismo
Firmas fáciles o cambiantes
Ruido, resfriados
Ojo – Iris Fiabilidad Facilidad uso
de
Prevención de ataques
Identificación y Autenticación Estándares Interferencias
Gafas Utilización
Huellas Geometría de dactilares la Mano Alta Alta
Suciedad, Irritaciones heridas, Asperezas
Instalacion Instalaciones es nucleares, nucleares, servicios servicios médicos, médicos, centros centros penitenciario penitenciari s os
Policía, Industria, Control de personal
….
General
Escritura Firma Alta
Alta
Industrial
Voz
…..
Accesos remotos en bancos o bases de datos
Fuente: Revista Empresarial [26]
- 20 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
3.3.4. Huella Digital Las huellas digitales son características exclusivas de los primates. En la especie humana se forman a partir de la sexta semana de vida intrauterina y no varían en sus características a lo largo de toda la vida del individuo. “Son las formas
caprichosas que adopta la piel que cubre
las yemas de los dedos. Están 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 glándulas sudoríparas. 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 facsímil o negativo de la huella”
[27] Para que un sistema biométrico sea eficiente, los indicadores o rasgos personales deben reunir las siguientes cualidades. -
Permanencia: No cambian sus características con el tiempo.
-
Unicidad: Siempre difieren, son únicas e irrepetibles aún en gemelos.
-
Universalidad: Todas las personas tienen huellas digitales.
-
Cuantificación: la característica puede ser medida en forma cuantitativa.
3.3.5. Tecnologías de huellas digitales Lector de Huellas RS-120S [28]
Figura 3.1. Lector de huella RS- 120
Fuente [28]
Es un producto ADEL que permite la captura, procesamiento y verificación de huellas digitales utilizando el mismo como un periférico de entrada más en un equipo que opera bajo los sistemas operativos Windows. El mismo realiza un barrido óptico de alta resolución y a - 21 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
partir de la imagen así obtenida por medio de sofisticados algoritmos matemáticos 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 también tiene por medio de su capacidad de procesamiento integrada, la posibilidad de realizar la comparación de dos huellas y determinar con alto grado de seguridad si las mismas pertenecen o no la misma persona. Funcionalidades
Instalación 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 definición de las imágenes capturadas
Durabilidad del lente dado que el mismo está protegido por una película especial de PVD a tal efecto
Sistema monolítico (lente, sistema óptico, sensor y electrónica en una sola pieza)
Moderado consumo y sin necesidad de fuentes de alimentación adicionales (el dispositivo se alimenta del mismo puerto USB)
SDK opcional para la integración a otras aplicaciones del usuario.
Especificaciones
Tiempo de captura menor a 2 segundos (enrolamiento)
Tiempo de verificación menor a 1 segundo
FAR Menor a 1 en un millón
FRR menor a 1%
Comunicación con el PC(provistos por la interface USB)
Ángulo de captura 360º
Sistemas operativos soportados: Windows 2000, Windows XP
- 22 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Lector de Huella Digital Nitgen Mod. Hamster 1
Figura 3.2. Lector de huella Hamster Fuente [27]
Nitgen es líder mundial en tecnología y aplicaciones biométricas, focalizado en soluciones de reconocimiento de huella dactilar. El sensor biométrico desarrollado por Nitgen, consta de un diseño óptico único, con una distorsión de imagen casi cero. Especificaciones Técnicas
Tipo de interfaces USB o Paralelo
Resolución 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 informática.
Comercio electrónico.
Seguridad para la banca, instituciones financieras.
Medio de pago por huella digital.
Otras muchas aplicaciones que requiera la autenticación del usuario.
Lector de huellasDigital Persona Modelo Modelo U.are.U 4000B Reader USB Fingerprint Fingerprint Reader [29]
Figura 3.3. Lector de huella DigitalPersona Fuente: [28]
- 23 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
El lector U.are. U4000B es un lector de huella digital diseñado por la empresa DigitalPersona, tiene la habilidad incomparable de reconocer incluso las huellas digitales más difíciles. Tipo
:
Óptico
Resolución
:
512 DPI
Tamaño de imagen: 355 x 390 pixeles Color
:
256 Levels grayscale
Conexión
:
USB 1.0., 1.1, 2.0
SO Soportados
Windows Vista/XP/2003/2000 y Linux
Los desarrolladores de software biométrico 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 biometría a un amplio y variado espectro de aplicaciones; este paquete es ofrecido en dos variantes: Fingerprint SDK para Windows que permite la programación en varios lenguajes sobre Windows a través 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. Conclusión
Para dar solución al problema del control de asistencia al personal docente de la Universidad Pedagógica Nacional “Mariscal Sucre” se eligió la tecnología Biométrica por medio de
reconocimientos de huellas digitales, por ser la más 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, Linux, pero sobre todo porque la institución cuenta con los lectores de huellas DigitalPersona.
3.3.6. Timetabling Araujo Lourdes [33] define el problema de Timetabling como “la asignación, sujeta a
restricciones, de los recursos otorgados con el propósito de ser establecidos en un espacio de - 24 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
tiempo, de tal manera que satisfaga lo más cercanamente posible el conjunto de objetivos deseados”.
Una definición general para un problema de Timetabling es aquella donde se asignan un conjunto de eventos (regiones, encuentros, exámenes, asignaturas, entre otros) dentro de un número 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 función objetivo la que será optimizada. El desafío en la construcción de estos horarios radica en proponer una planificación que cumpla con todas las restricciones impuestas y obtenga una solución de calidad aceptable en un tiempo razonable. Conseguir este propósito no es fácil, pues, por la cantidad de restricciones impuestas a estos problemas se convierten en difíciles de resolver y pueden ser extremadamente consumidores de tiempo. Timetabling pertenece a la categoría de problemas NP-Completos, en los cuales existe una proporción directa entre el tiempo y la calidad de la solución, lo cual impulsa a utilizar métodos de búsqueda que entreguen una solución cercana al óptimo en un tiempo adecuado, ya que, en este tipo de problemas existe la posibilidad de no encontrar la solución óptima global, aunque se podrían 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 exámenes), en un período 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 disposición para estudiantes y profesores, asignación de recursos o equipos, entre otros.
- 25 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
3.3.7.1. Tipos de Problemas TTE
Existen un gran número de variaciones de estos problemas, los cuales difieren del tipo de eventos, institución involucrada (universidad o Escuela), y de sus restricciones. De acuerdo a esto se pueden identificar tres grupos, los cuales se describen a continuación.
a) High-School Timetabling: También 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 número de sesiones que cada profesor dicta por asignatura), el problema consiste en asignar las sesiones a los períodos de tiempo, de tal manera que ningún profesor o asignatura tenga más de una sesión en el mismo período y que todas las sesiones de la asignatura estén presentes en el horario.
b) University Timetabling: Este problema consiste en organizar un horario para las sesiones de un conjunto de asignaturas, considerando un número 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 régimen semi-flexible los estudiantes toman distintas asignaturas además de las asignaturas en común. Además, 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 exámenes, determinando la cantidad de salas y tiempo para realizar el examen. La cantidad de exámenes depende de los requerimientos de las instituciones para evaluar los conocimientos de los alumnos que cursan la asignatura. - 26 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
A pesar que este tipo de problema se presenta en el mismo ámbito que el problema de la asignación 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 características se describen en la tabla 3.2. Tabla 3.2. Diferencias entre High High School y university university timetabling.
Características Programación Posibilidad de Escoger
High School TT Por clases Pocas Elecciones Mallas bien estructuradas
Disponibilidad Profesor Salas
Ajustado (Posee gran carga) Pocas salas Mismo Tamaño Centralizadas Satisfacción de Restricciones
Criterio de Optimización
University TT Por estudiante Muchas Elecciones Mallas débilmente estructuradas Flexible (Posee carga liviana) Muchas salas Variedad de tamaños Descentralizadas Minimización de restricciones trasngredidas
Fuente:[21]
Conclusión
Las publicaciones recientes sobre la asignación 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 mínimos cambios a otras situaciones. En relación, a la clasificación 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 capítulo IV).
- 27 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
3.3.8. Métodos de Optimización El término “Optimización” se refiere a un
problema complejo de decisión, que incluye la
selección de valores para cierto número de variables interrelacionadas, centrando la atención en un solo objetivo diseñado para cuantificar el rendimiento y medir la calidad de la decisión. Este único objetivo se maximiza o minimiza según las restricciones que pueden limitar la selección de valores de las variables de selección. [29]
3.3.9. Técnicas heurísticas Modernas Bajo el término de Técnicas heurísticas Modernas (Reeves, 1993) se engloba a un conjunto de técnicas de búsqueda de soluciones, cuyo funcionamiento se inspira en procesos naturales. Estas técnicas se caracterizan por ser métodos que generan soluciones que, a partir de valores iniciales, emplean un conjunto de mecanismos de búsqueda para mejorar éstas. En la figura 3.4 Se muestra una clasificación de las técnicas de búsqueda TÉCNICAS DE BÚSQUEDA
ALEATORIAS
NO GUIADAS
GUIADAS
BÚSQUEDA TABÚ
RECOCIDO SIMULADO
PROGRAMACIÓN GENÉTICA
ALGORITMOS EVOLUTIVOS
ESTRATEGIAS EVOLUTIVAS
REDES NEURONALES
PROGRAMACIÓN EVOLUTIVA
ALGORITMOS GENÉTICOS
Figura 3.4. Técnicas de Búsqueda Fuente: Elaboración Propia
- 28 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Para resolver el problema de la generación de horarios y distribución de aulas se utiliza los Algoritmos Genéticos ya que esta técnica ha sido muy utilizada en problemas, por el mismo hecho existe documentación e inclusive algoritmos ya propuestos para este problema. 3.3.9.1. Algoritmos Genéticos
Los Algoritmos Genéticos (AGs) son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. Están basados en el proceso genético de los organismos vivos. A lo largo de las generaciones, las poblaciones evolucionan en la naturaleza de acorde con los principios de la selección natural y la supervivencia de los más fuertes, postulados por Darwin (1859). Por imitación de este proceso, los algoritmos Genéticos son capaces de ir creando soluciones para problemas del mundo real. La evolución de dichas soluciones hacia valores óptimos del problema depende en buena medida de una adecuada codificación de las mismas. Los principios básicos de los Algoritmos Genéticos fueron establecidos por Holland (1975), y se encuentran bien descritos en varios textos. Los AG usan una analogía directa con el comportamiento natural. Trabajan con una población de individuos, cada uno de los cuales representa una solución factible a un problema dado. A cada individuo se le asigna un valor ó puntuación, relacionado con la bondad de dicha solución. En la naturaleza esto equivaldría al grado de efectividad de un organismo para competir por unos determinados recursos. Cuanto mayor sea la adaptación de un individuo al problema, mayor será la probabilidad de que el mismo sea seleccionado para reproducirse, cruzando su material genético con otro individuo seleccionado de igual forma. El poder de los Algoritmos Genéticos proviene del hecho de que se trata de una técnica robusta, y pueden tratar con éxito una gran variedad de problemas provenientes de diferentes áreas, incluyendo aquellos en los que otros métodos encuentran dificultades. Si bien no se garantiza que el Algoritmo Genético encuentre la solución óptima del problema, existe evidencia empírica de que se encuentran soluciones de nivel aceptable, en un tiempo competitivo con el resto de algoritmos de optimización combinatoria. [30]
- 29 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
3.3.9.2. Terminología de los Algoritmos Genéticos
Gen: Representa el valor de una variable de decisión (También se podrían usar un grupo de genes, para representar una solución, una variable un poco más compleja), de manera análoga a como nuestros genes nos indican el color de ojos, de piel, la altura, etc; en modelación matemática 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 selección artificial, si el gen es recesivo, desaparece a lo largo de las generaciones según la presión del medio ambiente.
Cromosoma: Un cromosoma está formado por un grupo de genes. Es el conjunto de la solución en sí.
Longitud de la Cadena: Es el número de genes que componen el cromosoma. O sea el número de variables que tiene el modelo matemático.
Función de Aptitud: La función de aptitud le da una calificación sobre que tan bueno es un conjunto de genes para obtener un objetivo dado, y con ello se realiza un filtro de las características que se propagan entre generaciones, y cuáles no. Normalmente esta función de aptitud será la misma función objetivo del modelo matemático. Resolución de un Algoritmo Genético
La resolución de un algoritmo genético consta de 5 etapas: 1. Inicializar aleatoriamente una población de soluciones a un problema, representadas por una estructura de datos adecuada.
Figura 3.5. Inicializar aleatoriamente una población Fuente:[31]
- 30 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
2. Evaluar cada una de las soluciones, y asignarle una puntuación según lo bien que lo hayan hecho. 3. Se Selecciona el individuo con mayor puntación 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 asignándole puntaje.
Figura 3.6. Cruce de Soluciones Fuente: [31]
5. Se aplican mutaciones, cambios al azar, dentro de su estructura o código. Posteriormente se evalúa y se asigna un puntaje.
Figura 3.7 Mutación de Soluciones Fuente: [31]
- 31 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
6. Al llegar la población a un tamaño determinado se eligen aquellos con una puntuación más alta, se eliminan el resto y se repite, un número determinado de veces, o hasta que se haya encontrado la solución deseada, estas etapas desde el número 3.
Figura 3.8. Selección de la Población Fuente: [31]
Esquema Básico de un algoritmo Genético [30]
Algoritmo genético principio t:=0; inicializa P(t); evalúa P(t); mq not termina hacer t:=t+1; P(t):=selecciona P(t-1); cruzar P(t); mutar P(t); evalúar P(t) fmq; fin Actualmente, esta técnica de búsqueda ha alcanzado un impresionante éxito debido a que su aplicación en problemas de optimización no requiere de conocimiento auxiliar sobre el problema a resolver. [31]. A continuación se mencionan algunos de los diseños de Algoritmos Genéticos (AG) propuestos que más se asemejan a nuestro proyecto para resolver el problema de los horarios y aulas en entidades académicas.
- 32 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
3.3.9.3. Modelo 1: Modelo General ACA (Asignación de Carga Académica) [32]
Este diseño presenta los siguientes datos: a) Un conjunto finito de grupos-materias que incluye la combinación de todas las materias que se impartirán en un período escolar determinado así como los grupos de alumnos que cursarán dichas materias y se representan mediante claves alfanuméricas. b) Un conjunto finito de profesores identificados por claves numéricas enteras. c) Un conjunto de horas que contiene la codificación con claves numéricas enteras de la jornada de clases del período escolar. Tabla 3.3. Codificación de la jornada de clases
Clave 1 2 . . . 12
Horario de Clase 7:00 – 8:00 8:00 – 9:00 . . . 19:00 – 20:00
Fuente. Modelo General ACA [32]
Del modelo ACA surge la relación [Grupo_Materia, Profesor, Hora] que representa un Gen del Cromosoma, la tabla 3.4 muestra la representación no binaria de un gene para el modelo de ACA que asigna la materia AM5 (Química) 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. Representación no binaria de un gene
AM5A
15
2
2
2
2
2
Fuente Modelo General ACA [32]
Sin embargo, cada período de clases tiene varios grupos-materia y para indicar la distribución completa de ACA, es necesario, concatenar un gene por cada grupo-materia requerido en ese período, formando un cromosoma (Figura 3.9.). En esta figura, las líneas punteadas separan los genes de cada período escolar, mientras que las líneas dobles delimitan los períodos escolares. Al final del cromosoma se anexa un campo para determinar la aptitud total del cromosoma.
- 33 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Figura 3.9. Representación no binaria de un cromosoma Fuente: [32]
La primera etapa de un AG es la generación de la población inicial, en la cual se generan aleatoriamente N cromosomas, donde N representa el tamaño de la población, 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, también 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 Distribución Óptima de Horarios de Clases utilizando la técnica de AG propuesto en la Universidad Tecnológica de Mixteca [23]
Este diseño Presenta los Siguientes Datos: a) conjunto de cursos o materias C={C1, C 2, C3, C 4,......., 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 están disponibles las 7 horas al día (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 número total de aulas) espacios disponibles para asignarles los cursos correspondientes, en este caso particular el curso que se imparte el día Lunes a una determinada hora será el mismo que en los demás días de la semana. De esta manera la calendarización de los m cursos es una función que mapea a cada curso con un espacio disponible.
- 34 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Inicialmente se crea al azar cierto número de funciones. Cada una de estas funciones asigna al conjunto {C1, C2, C3,.., Cm} al codominio de espacios disponibles denominado {E 0,, ..., E7n_aulas}. A estas funciones las llamaremos F1,..., Fk , donde k es un número 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 función Fio para algún i o {1,…,k}. Fuente: [23]
Después de que se han creado las funciones se determina la aptitud de cada función, es decir, qué tan buena es la calendarización que cada función representa. Esto se hace de la siguiente forma: para cada función debemos de determinar cuántos choques les causa la calendarización a los estudiantes. Puesto que sabemos cuáles 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 función F1) determinamos si ese estudiante tiene algún conflicto de horario en relación con la calendarización 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 población. (Los elementos de esta población, o entidades, son las funciones, y "estarán más adaptadas al ambiente" cuanto más alta sea su aptitud). De esta población se hace el cruce y posteriormente se realiza la reproducción sexual, esto se lleva a cabo tomando pares de funciones del cruce y recombinándolas. Esto con el objetivo de crear dos nuevas funciones que se agregarán "en la próxima generación" de la población. Cuando ya se han creado suficientes funciones para la nueva generación, se les calcula sus aptitudes y se desecha la generación anterior. La nueva generación se convierte en la generación actual la - 35 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
cual se usa para crear un nuevo cruce y la historia se repite. El proceso termina hasta que por medio de reproducción sexual se obtiene alguna función con una aptitud suficientemente alta para satisfacer nuestras necesidades. 3.3.9.5. Modelo 3: Modelo Matemático para un problema de tipo Time Tabling [22]
Modelo particular En el siguiente planteamiento, se establecen los recursos necesarios para describir el modelo matemático.
Parámetros m = cantidad de salas. n = cantidad de asignaturas. p = cantidad de profesores. q = cantidad total de períodos semanales.
m; n; p; q
Z
[a , b] = intervalo de asignaturas correspondientes a un semestre. [c , d ] = intervalo de períodos correspondientes a un día de la semana. Ki = capacidad de la sala i en términos 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 más una asignación en un período
2. Toda asignatura j tiene P j períodos semanales
- 36 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
3. Toda asignatura j debe tener asignado a lo más un profesor k y una sala i en un período l.
4. Todo profesor k debe tener asignado a lo más una asignatura j y una sala i en un período l.
5. Los horarios de las asignaturas de un mismo semestre no deben coincidir en un mismo período.
6. La cantidad de alumnos de la asignatura j debe ser menor o igual a la capacidad de la sala i.
Función Objetivo fog) Función Objetivo Global ( fog
fol ) Función Objetivo Local ( fol
En donde, las variables chsl y chpl representa los choques de salas y profesores en un mismo año, respectivamente, mientras que chsg y chpg representan los choques de salas y profesores entre años.
- 37 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Criterio de Optimización Función Objetivo Max Z = W Donde W es una constante cualquiera
Conclusión
Para resolver el problema de Timetabling en la Universidad Pedagógica Nacional 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 características particulares de nuestro problema con algunas variantes, por lo que resulta muy adecuado para su aplicación.
3.3.10. Plataforma de Desarrollo del Software 3.3.10.1. Lenguaje de programación java
Java es un lenguaje de programación con el que se puede realizar cualquier tipo de programa. En la actualidad es un lenguaje muy extendido y cada vez cobra más importancia tanto en el ámbito de Internet como en la informática en general. Está desarrollado por la compañía Sun Microsystems enfocado a cubrir las necesidades tecnológicas actuales. Una de las principales características 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 tenían que hacer un programa para cada sistema operativo, por ejemplo Windows, Linux, Apple, etc. Esto lo consigue porque se ha creado una Máquina 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 patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos. - 38 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Modelo: datos y reglas de negocio. Vista: muestra la información 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 clásico es el de la información 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
Acceder a la capa de almacenamiento de datos.
o
Define las reglas de negocio (la funcionalidad del sistema).
o
Lleva un registro de las vistas y controladores del sistema.
El controlador es responsable de: o
Recibe los eventos de entrada (un clic, un cambio en un campo de texto, etc.).
o
Contiene reglas de gestión de eventos, del tipo "SI Evento Z, entonces Acción W". Estas acciones pueden suponer peticiones al modelo o a las vistas. Una de estas peticiones a las vistas puede ser una llamada al método "Actualizar()". Una petición al modelo puede ser "Obtener_tiempo_de_entrega ( nueva_orden_de_venta )".
Las vistas son responsables de: o
Recibir datos del modelo y los muestra al usuario.
o
Tienen un registro de su controlador asociado (normalmente porque además lo instancia).
- 39 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
o
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Pueden dar el servicio de "Actualización()", 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 Programación
Un IDE (Entorno de Desarrollo integrado) es un entorno de programación que ha sido empaquetado como un programa de aplicación, es decir, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica GUI. Los IDEs pueden ser aplicaciones por sí solas o pueden ser parte de aplicaciones existentes. Entre las más representativas de acuerdo al lenguaje elegido podemos mencionar: JBuilder, Eclipse, Visual Studio.Net 2008 y Netbeans. Tabla 3.5. Comparativa de Entornos de Desarrollo Visual Studio 2008 Netbeans 6.0 JBuilder 2008 C/C++,C#,VB.Net, C/C++, java, Ruby, PHP, Java XAML, HTML/CSS, Javascript, javascript, LINQ, HTML/CSS,ISP, JavaFX, ASP.net, XML/XSLT XSL, WSDL, UML. Windows y las diversas, Windows, Linux, Unix, Windows y las diversas Plataforma versiones de Windows Solaris (sparc, X86/X64) versiones de Windows. Mac OX(Intel Power) de Auto complementado Autocompletar Código Autocompletado rápido, Autocompletado pero menos opciones a la código pero muestra rápido y uso de shortcuts. vez todos los métodos y variables al mismo tiempo. La edición es simple y Edición de código es Edición de código es Editor de Código fácil. Cambio entre simple y fácil, simple y fácil, Fuente diseñador y el código de proporciona diferentes proporciona diferentes pantalla es doble clic en eventos para cada eventos para cada el control componente, y puede ser componente. editable para cada evento específico. Winforms, ASP form Netbeans Matisse, desconocido GUI y herramientas designer, es grande, componentes FSF, base RAD SZML diseñador visual, de datos de aplicación, adeministrador de base de Beans binding, excelente datos, XML VB-enlaces, herramienta de diseño administrador de vista UML, mobile Designer, UAC, que es la mejora en BPEL algunas de las VS2008. herramientas que no se encuentran en VS2008 Compilación en paralelo Más reciente lexer hace la Revisa la sintaxis en los sistemas multinúcleo, compilación en tiempo de tiempo real, sugiriendo biblioteca de plantas ejecución más rápido, casting de datos, la Compilador, loader, estándar (STL) para C++, Javascript depurador con compilación es en debuger
Características Lenguajes Soportados
- 40 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
Pruebas y Maintainance
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Framework NET, Web el apoyo y Phobos JMaki. service de WCF acogida basada en aplicaciones La unidad de pruebs han CVS y Subversión están mejorado ligeramente, integrados. sistema de control de código fuente fuente se se añade al equipo de desarrollo Fuente: [35]
paralelo. Tiene una unidad de Testeo de Código fuente,
NetBeans La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados módulos. Un módulo 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 módulo. Las aplicaciones construidas a partir de módulos pueden ser extendidas agregándole nuevos módulos. Debido a que los módulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fácilmente 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 más clara e intuitiva; además, 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). Conclusión
El entorno de desarrollo elegido para el proyecto es Netbeans 6.1 debido principalmente a la estabilidad, evolución y superación, además que tiene características que permiten el rápido desarrollo de una aplicación, por otro lado tiene el soporte de Sun Microsystems y es una comunidad bastante organizada en comparación de los otros entornos mencionados, aunque más pequeña que la comunidad Eclipse.
3.3.11. Generador de Reportes 3.3.11.1. iReport
El iReport e un constructor/diseñador de informe visual poderoso, intuitivo y fácil de usar para JasperReports escrito en java pura del 100%. Este instrumento permite que usuarios corrijan - 41 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
visualmente informes complejos con cartas, imágenes, subinformes, iReport es integrado con JFreeChart, una de la biblioteca de carta OpenSource más difundida para Java. Los datos para imprimir pueden ser recuperados por varios caminos incluso múltiples uniones JDBC, TableModels, JavaBeans, XML, etc. Esto apoya la salida en PDF, XML, XLS, CSV, HTML, Java2D. Además es un software libre.[37] El motivo principal por la selección de esta herramienta para el desarrollo de resultados y estadísticas 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 características de la orientación 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 gestión de bases de datos puramente orientado a objetos.[34] Las características positivas que posee este gestor según las opiniones más comunes en Internet, son: 1. Posee una gran escalabilidad. Es capaz de ajustarse al número de CPUs y a la cantidad de memoria que posee el sistema de forma óptima, haciéndole capaz de soportar una mayor cantidad de peticiones simultáneas 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 más eficaz, y ofreciendo soluciones en campos en las que MySQL no podría. 3. Tiene la capacidad de comprobar la integridad referencial, así como también la de almacenar procedimientos en la propia base de datos, equiparándolo 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 límite de 8K por fila, aunque se puede aumentar a 32K, con una disminución considerable del rendimiento. - 42 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
3. Es de 2 a 3 veces más lento que MySQL. 3.3.12.2 MySQL
MySQL es un sistema de gestión de bases de datos relacional, licenciado bajo la GPL de la GNU. Su diseño 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 código fuente del servidor SQL, así como también de la marca.[34] Características 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 máquina con escasos recursos sin ningún problema. 3. Las utilidades de administración de este gestor son envidiables para muchos de los gestores comerciales existentes, debido a su gran facilidad de configuración e instalación. 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 más utilizados en Internet en servicios de foro (Barrapunto.com) y de buscadores de aplicaciones (Freshmeat.net). Debido a esta mayor aceptación en Internet, gran parte de los inconvenientes se exponen a continuación, han sido extraídos 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. Conclusión
Se ha elegido el gestor de bases de datos MySql, porque es el más usado en el mundo del software libre, debido a su gran rapidez y facilidad de uso, además que existen infinidad de - 43 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
librerías y otras herramientas que permiten su uso a través de gran cantidad de lenguajes de programación y su fácil instalación y configuración.
3.3.14. JPA: Java Persistence API Es usual trabajar con programación orientada a objetos y utilizar bases de datos relacionales. Resulta obvio que se trata de dos paradigmas diferentes. El modelo 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 contradicción entre estos dos paradigmas. Lo que necesitamos es una herramienta ORM (Object Relational Mapping). Básicamente una ORM intenta hacer todas estas tareas pesadas por nosotros. Java Persistence API (JPA) proporciona un estándar para gestionar datos relacionales en aplicaciones Java Standar Edition (SE) o Java Enterprise Edition (EE), de forma que además se simplifique el desarrollo de la persistencia de datos. Aunque ha sido definida como parte de la especificación EJB 3.0 (Java EE 5), que supone una simplificación 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 definición, 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 implementación JPA. El mapeo objeto-relacional (es decir, la relación 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. También pueden definirse transacciones como anotaciones JPA.[14]
- 44 CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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 añadió varias capas de abstracción para hacerlo compatible con JPA, pero la base continúa siendo la original, estando por tanto bastante maduro. Además ofrece a desarrolladores funcionamiento excelente y opción, trabajando con cualquier base de datos, 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 producción. [36] Conclusión
La implementación para JPA que se utiliza en el desarrollo del proyecto es el Toplink Essentials que además de estar incluido por defecto en Netbeans 6.1 tiene un buen rendimiento y sobre todo se puede encontrar una variedad de documentación y tutoriales para su aplicación en el proyecto.
- 45 CAPITULO II: Marco Teórico de Ingeniería
CAPITULO IV DESARROLLO DEL PROYECTO
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
DESARROLLO DEL PROYECTO 4.1. Proceso de Requerimientos Los pasos que se siguieron para la construcción del modelo de requerimientos son: -
Obtención de requerimientos funcionales y no funcionales.
-
Análisis y verificación de requerimientos.
-
Definición de actores y casos de uso.
-
Priorización de casos de uso.
-
Detalle de casos de uso.
-
Estructuración del modelo de casos de uso.
4.1.2. Obtención de Requerimientos Los requerimientos fueron obtenidos mediante entrevistas a los Directores de Carrera, Coordinador de Nivel (Inicial, Primario y Secundario), Director Académico, Jefe de Recursos Humanos; también se utilizó el método de la observación, la revisión bibliográfica. De las entrevistas se obtuvo la forma de trabajo actual, las necesidades actuales y las dificultades por las que atraviesan. Mediante la observación y análisis de documentos se pudo identificar el flujo de información, la distribución que se tiene, la estructura de reportes y entender mejor el objeto de automatización. La revisión bibliográfica permitió seleccionar el método más apropiado para la generación de horarios (Algoritmos Genéticos) y sobre todo el diseño del algoritmo y la codificación del gen.
3.1.3. Requerimientos Funcionales El sistema debe cumplir con los siguientes requerimientos funcionales: -
Permitir la creación, modificación y eliminación de usuarios del sistema.
-
Registro y almacenamiento de los datos del Personal Docente, incluyendo la información relevante, permitiendo la edición de manera rápida y contemplando las siguientes subdivisiones:
Datos Personales - 46 -
CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS UMRPSFXCH
Experiencia laboral
Situación Laboral
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
-
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 académico que incluya días hábiles y no hábiles para su consideración posterior.
-
Control de Asistencia al Personal Docente de acuerdo a turnos asignados a cada docente y con el uso de un lector biométrico.
-
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 Pedagógica.
-
Permitir la modificación de los parámetros para la generación 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 cálculo.
-
El sistema debe proveer seguridad respecto a la información mediante la realización 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 institución.
- 47 CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS UMRPSFXCH
-
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Debe existir facilidad de uso del uso del sistema, además la interfaz debe ser amigable al usuario final, otorgando confianza para el manejo y desempeño del mismo.
-
Se debe implementar un sistema de seguridad de manejo del sistema, mediante permisos específicos de operación 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 documentación necesaria de respaldo.
4.1.5. Requerimientos del Usuario -
Automatización de los procesos.
-
Cambiar el trabajo manual y moroso por uno automatizado y sencillo.
-
Reportes oportunos y confiables.
-
Disponibilidad y seguridad de la información.
4.1.6. Identificación de actores Los actores que intervienen en el sistema son: Jefe de Recursos Humanos:
Es la persona encargada de gestionar toda la información de
registro correspondiente al personal en el sistema, así como la asignación 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 información
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.
- 48 CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.1.7. Diagramas de Casos de Uso A continuación se analizan los casos de uso para poder alcanzar los objetivos propuestos y a partir de éstos se realizará el análisis para poder determinar las calases e instancias del sistema.
Diagrama de Casos de Uso Principal del Sistema
Gestionar Kardex Personal
Encargado RRHH Gestionar Asistencia
Registrar H uella uella Adminis trador
personal Control Asistencia
Construir Horarios Encargado Horarios
Gestión de Usuarios
Figura 4.1. Diagrama de Casos de Uso Principal Fuente: Elaboración Propia
- 49 CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Caso de Uso: Gestionar Kardex de Personal
Registrar Situacion Laboral Buscar Personal <
>
Registrar Experiencia Laboral
<> <>
<> <>
Consultas
Registrar Personal
Reportes
Registrar Prof esiones esiones
Administrador
Encargado RRHH
Figura 4.2. Diagrama de Casos de Uso Gestionar Kardex de Personal Fuente: Elaboración Propia
Caso de Uso Gestionar Asistencia
<> Adminis trar H uellas Pin Asignar Turnos
Buscar Personal
Permisos
Registrar Turnos
Consultas
Calendario Calendario Academic o
Reportes Encargado Encargado RR HH
Figura 4.3. Diagrama de Casos de Uso Gestionar Asistencia Fuente: Elaboración Propia
- 50 CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Caso de Uso Controlar Asistencia
Registrar Huella
Visualizar Datos personal
<> <> Marcar Asistencia <> <>
Capturar Datos H uella Digital
Personal
Encargado Encargado RRH H
Figura 4.4. Diagrama de Casos de Uso Controlar Asistencia Fuente: Elaboración Propia
Caso de Uso Generar Horarios
Asignar D ocent es a Asignat uras
Introducir Parametros para Horarios
Generar Horarios
Reportes Registrar As ignaturas ignaturas
Consultas
Exportar H orarios orarios
Registrar C arreras arreras Encargado Horarios
Figura 4.5. Diagrama de Casos de Uso Generar Horarios Fuente: Elaboración Propia
- 51 CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.1.8. Personas involucradas en el desarrollo y operación En cuanto al desarrollo del sistema, el mismo estuvo a cargo del proyectista, en cuanto a la operación del mismo todos los aspectos técnicos estarán a cargo de la Unidad de Sistemas de la Institución, los demás usuarios son los funcionarios encargados de Recursos Humanos, Dirección académica y personal docente.
4.1.9. Interfaces que requieren los usuarios Interfaces de entrada
Las interfaces de entrada más importantes que necesitan los usuarios para cumplir sus funciones son las siguientes: Para la gestión de personal y control de asistencia
-
Interfaz para registrar datos del personal.
-
Interfaz para registrar experiencia laboral
-
Interfaz para registrar situación laboral
-
Interfaz para buscar personal.
-
Interfaz para registrar Profesiones.
-
Interfaz para registrar Turnos.
-
Interfaz para asignar turnos al personal.
-
Interfaz para registrar huella y fotografía del personal.
-
Interfaz para configurar control de asistencia.
-
Interfaz para capturar huella digital.
-
Interfaz para el control y gestión de Asistencia al personal.
-
Interfaz para registrar el calendario académico.
-
Interfaz para asignar permisos al personal.
Para el manejo de horarios académicos
-
Interfaz para registrar Carreras. - 52 -
CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
-
Interfaz para registrar asignaturas y carga horaria.
-
Interfaz para asignar docentes a las diferentes asignaturas.
-
Interfaz para registrar Aulas
-
Interfaz para introducir parámetros para la generación de horarios.
-
Interfaz para la construcción de horarios y asignación de aulas.
Para la administración 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 estadísticas 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 Situación Laboral
-
Ventana Buscar Personal
- 53 CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS UMRPSFXCH
-
Ventana Registrar Profesiones
-
Ventana Consultas
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Caso de uso Gestionar Asistencia Interfaces: -
Ventana Registrar Turnos
-
Ventana Asignar Turnos Personal
-
Ventana Asignar Permisos
-
Ventana Registrar Calendario Académico
-
Ventana Administrar Huellas y Pin
-
Ventana Consultas
Caso de Uso Controlar Asistencia Interfaces: -
Ventana capturar Huella y visualizar datos
-
Ventana introducir Huella y Fotografía
Caso de Uso Generar Horarios Interfaces: -
Ventana Registrar Carreras
-
Ventana Registrar Asignaturas
-
Ventana Asignar Asignaturas a Docentes
-
Ventana Introducir parámetros para horarios
-
Ventana Registrar Períodos de clases
-
Ventana Registrar Aulas
-
Ventana Consultas
-
Ventana Exportar Horarios
- 54 CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.2. Proceso de Análisis y Diseño 4.2.1. Riesgos del Proyecto Controlar todas las variables y circunstancias en el desarrollo de un proyecto no es factible, siempre existe la posibilidad de que algo no salga como se ha previsto o se espera, de ahí que se hace necesario elaborar un análisis de riesgos de manera anticipada a la ocurrencia de los mismos con el fin de evitar que estos afecten el normal curso del proceso y por ente el logro del objetivo del proyecto. Tabla 4.1. Prevención y mitigación de riesgos identificados identificados
Riesgo
Prevención
Mitigación
El cliente no puede
Explicar al cliente la
Buscar al cliente y
participar en las
importancia de su
concertar reuniones
entrevistas que se
participación en la realización
explicándole la urgencia
requieren realizar para la
del proyecto y proyectar
de su participación.
captura de requerimientos
reuniones para la realización de las entrevistas
Cambio de requerimientos Establecer bien los
Postergar la entrega
en la etapa de
hasta introducir los
requerimientos revisarlos y
implementación o pruebas validarlos con el objeto de
cambios necesarios.
evitar la ocurrencia de este riesgo. El cliente no puede
Establecer fechas de manera
Explicar al cliente la
participar en las
consensual y clara con el
necesidad de su
revisiones.
cliente.
participación en las revisiones y los efectos negativos que trae la situación opuesta.
Las herramientas
Seleccionar cuidadosamente
Buscar alternativas que
determinadas para el
las herramientas a utilizar en
sin significar gastos no
desarrollo del proyecto no el desarrollo del proyecto
previstos tengan la
satisfacen todas las
funcionalidad requerida.
considerando sus prestaciones
CAPITULO IV: Proceso de Análisis y Diseño
- 55 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
necesidades del proceso
en relación a las necesidades
de producción.
de uso en el proyecto.
Cambios de requisitos que Establecer cuidadosamente los Posponer la entrega precisan modificaciones
requerimientos.
en el diseño y en la programación. El tamaño del sistema no
Establecer bien la
Posponer la entrega
ha sido bien determinado.
funcionalidad del sistema para como último recurso si poder tener una idea clara del
el apresurar el proceso
tamaño del producto y su
de programación no
alcance.
abastece para mitigar los efectos de riesgo.
La complejidad del
Establecer la complejidad del
Reevaluar los
producto no ha sido
producto desde la captura de
requerimientos e
correctamente evaluada.
requerimientos.
implementar los cambios necesarios apresurando el proceso de desarrollo.
El cliente no tiene una
Consensuar entrevistas
Presentar propuestas
idea clara de lo que
continuas con el cliente con el
que de alguna manera
precisa.
fin de aclarar sus ideas.
ayuden al cliente a precisar sus requerimientos.
No se comprende las
Interactuar con el cliente con
Aumentar el tiempo
necesidades del cliente.
el objeto de tener bien claras
destinado a la captura
las necesidades del mismo.
de requerimientos.
Los clientes no
Explicar a los clientes al inicio Aclarar los problemas
comprenden el impacto de del proyecto sobre los
de cambiar los
los cambios en los
inconvenientes que puede
requerimientos.
requerimientos.
traer el hecho de incluir cambios en los requerimientos
CAPITULO IV: Proceso de Análisis y Diseño
- 56 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
El tiempo requerido para
Establecer un tiempo extra
Posponer la fecha de
el proceso de desarrollo e
dentro de la planificación.
entrega.
Que el producto no
Tomar en cuenta la
Realizar las
satisfaga las necesidades
participación del cliente en la
modificaciones
de los usuarios.
captura de requerimientos y
necesarias.
implementación está subestimado
establecer revisiones constantes para ver su conformidad. Que el producto presente
Tener presente la
Adecuar el sistema
incompatibilidad con el
compatibilidad futura del
realizando los cambios
entorno.
proyecto a fin de que se
necesarios para
adapte al entorno en el cual
subsanar dicha
será puesto en marcha.
incompatibilidad.
No se cuenta con los
Adentrarse lo necesario en las
Revisar el modelo de
conocimientos necesarios
necesidades del proyecto a fin
requerimientos e
para enfrentar la
de tener clara la complejidad
información necesaria.
complejidad de los
del sistema.
requisitos. No se está disponible en
Prever la disponibilidad de
Adecuar las actividades
momentos críticos.
tiempo y el tiempo necesario
a las necesidades del
para el desarrollo.
proyecto.
El tamaño del proyecto es
Determinar la funcionalidad
Incrementar el tiempo
mucho mayor al tamaño
del sistema al inicio del
de desarrollo en la
previsto.
desarrollo.
medida de lo posible.
No se conoce el uso de las Escoger herramientas cuyo
Establecer un poco más
herramientas necesarias
de tiempo para
manejo sea conocido.
para el desarrollo del
familiarizarse con el uso
proyecto.
de las herramientas a usar o buscar
CAPITULO IV: Proceso de Análisis y Diseño
- 57 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
herramientas alternativas cuyo manejo si sea conocido. Fuente: elaboración propia
4.2.2. Arquitectura del Sistema En cuanto a la arquitectura usada en el diseño y desarrollo del sistema se utilizó la arquitectura MVC, porque la misma describe una forma de separar los datos de la aplicación de la interfaz de usuario y la lógica de control en tres componentes distintos, separación que facilita la realización de cambios en la aplicación, se hizo esta elección considerando la posibilidad de realizar cambios de bases de datos, programación o interfaz de usuario, sólo se tocaría uno de los componentes y no todos.
Sistema de Control de Asistencia Asistencia Generación de Horarios Horarios Interfaz del Sistema
Utilidades
Entidades
Control D AO
kardex de Personal
Control de Asistencia
Generar Horarios
Figura 4.6. Diagrama de Paquetes de SISCAACH Fuente: Elaboración propia
CAPITULO IV: Proceso de Análisis y Diseño
- 58 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.2.3. Estructura Estática 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 estática del sistema, presentando las clases y las relaciones estructurales entre ellas. Una clase contiene atributos y operaciones. Los atributos contienen la información 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 realización de los casos de uso, donde se establecieron los datos de relevancia que debían ser almacenados en las clases entidad.
CAPITULO IV: Proceso de Análisis y Diseño
- 59 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Diagrama de Clases.
Diagrama General de Clases
Figura 4.7. Diagrama de Clases Fuente: Elaboración Propia
CAPITULO IV: Proceso de Análisis y Diseño
- 60 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Descripción de las clases con mayor relevancia
Nombre de Clase: Personal Descripción: Almacena los datos personales de todos los docentes, sean estos con ítem con contrato, para registrar la información completa a cada docente se utiliza las clases Experiencia Laboral y Situación Laboral. Atributos: Ci
String
aPaterno
String
aMaterno
String
nombres
String
sexo
char
fechaNacimiento
Date
LugarNacimiento
String
nivelEstudio
String
aniosServicio
String
rda
String
numHijos
String
dirección
String
teléfono
String
fotografía
Blob
tipoMarca
char
huella
Blob
pin
integer
Profesion
Profesiones
Operaciones
CAPITULO IV: Proceso de Análisis y Diseño
- 61 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
-
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Guardar(): esta operación se utiliza para registrar los datos de un nuevo personal, los datos se guardan en la tabla personal, SituacionLaboral y ExperienciaLaboral.
-
Consultar(); esta función se utiliza para verificar que el ci del personal no esté duplicado en la tabla personal.
-
Editar(): devuelve los datos de algún personal específico y permite actualizar los mismos.
-
Buscar(): mediante esta operación se puede realizar la búsqueda de un determinado personal a partir de criterios de búsqueda como ci o apellido.
Nombre de Clase: TurnosPersonal Descripción: 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 conclusión de la gestión académica, así mismo cada turno tiene registrado la hora de ingreso y salida además se considera el tiempo de tolerancia para cada turno. Atributos: ci
String
idTurno
integer
desde
Date
hasta
Date
entrada
time
salida
time
Operaciones: -
Guardar() : esta operación guarda los turnos asignados al personal previamente seleccionado, tomando en cuenta su horario académico
-
Eliminar(): esta operación elimina un turno que no hayan sido correctamente asignado o cuando su horario sea modificado.
CAPITULO IV: Proceso de Análisis y Diseño
- 62 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Nombre de Clase: Asistencia Descripción: 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, además registra el tiempo de atraso si un docente marca fuera de horario pero dentro del límite establecido o falta si es que no registro su huella. Atributos: idAsis
integer
Ci
String
fecha
Date
nombreTurno
String
entró
time
salió
time
Atraso
time
Observaciones
String
horasTrabajadas
time
Operaciones: -
Consultar(): permite consultar el detalle de asistencia de cada personal por día y por mes.
Nombre de Clase: Horarios Descripción: almacena los horarios generados, tomando en cuenta todas las restricciones formuladas en el modelo matemático Atributos: idHorario
integer
dia
String
turno
String
carrera
String
CAPITULO IV: Proceso de Análisis y Diseño
- 63 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
semester
String
asignatura
String
aula
char
operaciones: -
Consultar(): esta operación 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 cálculo (Excel).
4.2.4. Estructura Dinámica del Sistema Descripción de la funcionalidad del Sistema Como se puede apreciar el sistema tiene como objetivo gestionar la información relacionada con el personal docente, kardex, asignar turnos, controlar asistencia, generar horarios relacionados a todas las carreras de la institución, considerando lo mencionado se realizará la descripción de la funcionalidad del sistema. Kardex de Personal : Este módulo es el encargado de gestionar los datos del personal docente,
además de registrar la experiencia laboral de cada uno y su situación actual en la institución. Control de Asistencia:
La función de este módulo es la de registrar la asistencia del personal
por medio de la la captura y posterior validación de la huella digital de cada personal, además este módulo permite registrar turnos, asignar turnos a docentes, gestionar permisos, registrar calendario académico, generar reportes de asistencia del personal.
Generar Horarios: Este módulo es el encargado de la creación de horarios y asignación de aulas, permite la configuración de los parámetros para generar los horarios, generar reportes por Semestre, Docente y Aula.
CAPITULO IV: Proceso de Análisis y Diseño
- 64 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.2.4.1. Diagrama de secuencia
Subsistema Gestionar Kardex Datos Personales
: Encargado RRHH
: Principal
: Gestionar Personal
: Buscar
: PersonalDao
: Persona
1: abrir() 2: abrir( ) 3: Añadir Personal( P ersonal( ) 4: Verificar Datos( )
5: Añadir Personal( ) 6: ok( ) 7: Confirmar Proceso( )
8: mostrar() mostrar() 9: parametros( )
12: Mostrar Personal( )
10: Buscar Personal( )
11: retornar Personal( )
13: eliminar() 14: eliminaPersonal() 15: confirmarEliminar
16: actualiza r() r() 17: validarDatos()
18: actualizarPersonal actualizarPersonal 19: confirmarActualizar() confirmarActualizar() 20: salir()
Figura 4.8. Diagrama de Secuencia: Datos Personales Fuente: [Elaboración propia]
CAPITULO IV: Proceso de Análisis y Diseño
- 65 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.2.4.2. Diagrama de colaboración
Subsistema Gestionar kardex Datos Personales
1: abrir()
3: añadirPersonal()
2: abrir()
13: eliminar() 16: actualizar() actu alizar()
: Encargado RRHH
20: salir()
: Principal
: Gestionar Personal
8: mostrar() mostrar() 7: confirmarProceso() 12: mostrarPersonal() 9: param etros() etros()
: Buscar
4: verificarDatos() 17: validarDatos()
15: confirmarElimin ar() ar() 19: confirmarActualizar() confirmarActualizar()
6: ok() 11: retornarPersonal()
5: añañadirPersona añañadirPersona : Persona
: PersonalDao
10: buscarPersonal() 14: eli minarPersona() minarPersona() 18: actualizarPersonal() actualizarPersonal()
Figura 4.9. Diagrama de Colaboración: Datos Personales Fuente: [Elaboración propia]
CAPITULO IV: Proceso de Análisis y Diseño
- 66 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.2.5. Mapeamiento para la implementación del Sistema 4.2.5.1. Mapeamiento a Tablas
El sistema está desarrollado con la metodología 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 automático de clases a tablas del modelo relacional según estándares 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. Profesiones
Experiencia_Laboral
Permisos m
1
m
Personal_permiso m
1
Situacion_Laboral
Personal
m
m
Turnos
Personal_turnos m Personal_licencia
Asi Asi nat naturas uras m
m
m
Asistencia
Licencias Carreras
Figura 4.10. Diagrama Entidad Relación Fuente: elaboración Propia
CAPITULO IV: Proceso de Análisis y Diseño
- 67 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.2.5.2. Diseño de la Base de Datos
La base de datos que registra la información general tiene la siguiente estructura: P ro ro f es es io ion es es
Pe rs rs on onal
ci
pa te ter no no
c od od_ pr pro f
m at at er erno nom br br es es
Situacion laboral
idSL
n om om br br e_ e_ pr pr of of
s ex ex o
f ec ec ha haN ac ac im im ient o l ug uga rN rN ac ac im im ie ien to to l ug ug ar ar Na Nac im im ie ie nt nt o
cargo
des de
hast a
ni v el el Es Es tu tu di di o
c odEmpleado
a ni ni oS oSe rv rv i ci ci o
it em
r da da
n um um Hi Hi jo s di re re cc cc io ion
observ ac iones
idEL
Asignaturas Asignaturas
cod_asignatura cod_asignatura nombre_asigna nombre_asignatura tura semestre carga_horaria c od_c arrera
Turnos
idTurno
dia
Personal_Turnos c i
Licencias
inst it uc ion
nombre_Turn hora_sali hora_entrada o da
id-Turno
id_licen cia
desde
ci
Personal_Licencias id_lic encia
Permis os
id_per
cargo
hast a
ent rada
has t a
mot iv o
f ec ha
dia
t urno
ci
Asistencia id_asis
nombre_Tur nombre_Turno no
f echa
cod_ca cod_carr rre era
ent rada_max
des de
Pers on onal_Perm is is o id_Permiso
Carre Carrera ras s
f ec ha_Ret iro
h ue uel la
p in
sit uacionAct ual
c od odP ro ro f
ci
ci
ci
salida_min
salida_max
salida
ci
ci
ci
ent rada_min
f o to to gr gr af af i a
t ipoEmpleado
Experiencia laboral
lugarTrab
f echa_Ing echa_Ing reso
t el el ef ef o no no
nombre_carre ra
entro
salio
atraso
obs er erv
horas _T _Trab
nivel
Figura 4.11. Modelo Lógico Global de Datos Fuente: elaboración Propia
CAPITULO IV: Proceso de Análisis y Diseño
- 68 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.2.6. Elaboración del algoritmo genético para la distribución de los horarios en la Universidad Pedagógica “Mariscal Sucre”.
4.2.6.1. Características Particulares de la Institución
-
Cada carrera cuenta con un bloque de aulas asignado.
-
Las aulas de cada bloque tienen las mismas características.
-
Cada carrera elabora su horario independientemente de las demás.
-
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 capítulo II con algunas variaciones de acuerdo a las características del problema a resolver. 4.2.6.2. Factores involucrados en la generación de horarios
Restricciones del problema -
Los días de clases son de Lunes a Viernes
-
Los periodos de clases máximo 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 día.
-
Un profesor no puede estar en el mismo período de clases más de una vez.
-
Las asignaturas del mismo semestre no deben tener el mismo período de clases
-
Se debe evitar las horas libres entre asignaturas del mismo semestre.
CAPITULO IV: Proceso de Análisis y Diseño
- 69 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Datos de entrada
Lista de Asignaturas a las que hay que asignar horarios; estos datos son recuperados de la base de datos del sistema.
Código Asignatura
ESO-701 LDI-731 MAT-701 MAT-713 MAT-714 PDI-701 …
Tabla 4.2. Asignaturas Carga Nombre Asignatura Semestre horari a
LA EDUCACION EN EL DESARROLLO HISTORICO TALLER DE LENGUAJE ALGEBRA I GEOMETRIA GEOMETRIA ANALITICA PRACTICA PROFESIONAL I …
Carrera
Docente
Primero
2
MATEMATICA
1226945
Primero
2
MATEMATICA
1023114
Primero Primero
4 4
MATEMATICA MATEMATICA
1034579 1267202
Primero
4
MATEMATICA
1000409
Primero
3
MATEMATICA
1061014
…
…
…
…
Fuente: Elaboración Propia
Nota: En caso de existir grupos en determinadas asignaturas, estas se toman como asignaturas diferentes añadiendo una letra al código de la asignatura que indique el grupo (B,C,D,…,etc.).
Lista de periodos : Tabla 4.3. Tabla Periodos
Código Periodo T1 T2 T3 T4 T5 T6
Día
Periodo
Lunes Martes Miércoles Jueves Lunes Martes
1 2 3 1 2 3
… … … Fuente: Elaboración Propia
CAPITULO IV: Proceso de Análisis y Diseño
- 70 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Lista de Aulas: Tabla 4.4. Tabla Aulas
Código Aula A1 A2 A3 A4 F1 F2 …
Bloque A A A A F F
Descripción Sector Primaria Sector Primaria Sector Primaria Sector Primaria Sector Secundaria Sector Secundaria
… … Fuente: Elaboración Propia
4.2.6.3. Diseño del Algoritmo
Representación del problema Para trabajar con un modelo genético se debe definir aspectos que están relacionados con la implementación: el gen, el Cromosoma (conjunto de genes), que representa a los individuos de una población, los operadores de cruce y mutación y la función de aptitud, que mide qué tan bueno es un individuo como solución del problema.
Representación del Gen El gen representa a una asignatura, el docente que la imparte, y la posición de la asignatura en la lista Asignatura, y el semestre al que pertenece la asignatura.
1
asignatura
docente
posAsig
Semestre
estado
Figura 4.1. Representación del Gen Fuente: Elaboración Propia
Las variables asignatura, docente y posAsig tomarán sus valores correspondientes, es decir la variable Docente tendrá el código del docente que imparta la asignatura, la variable posAsig hace referencia a la lista de asignaturas que deben asignarse un período en la que se impartirá la asignatura y la variable semestre lleva la información del semestre de la asignatura, la variable estado se utiliza en el momento de hacer la evaluación, en esta se almacena el numero de choques que tiene en todo el individuo.
CAPITULO IV: Proceso de Análisis y Diseño
- 71 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Estructura de datos (clase) para representar el Gen:
class Gene{ String asi, pro, pos, sem; //variables que almacenan asignatura, profesor, posición y semestre respectivamente float adapt;
//variable que almacena la adaptación de un individuo
float puntua //variable que almacena la puntuación de un individuo float punt_acum // variable que almacena la puntuación acumulada de un Indiv. // Constructor para el gen que contiene información para par a 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 información de a signaturas, docente, // turnos y semestres para la generación de horarios hor arios
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; } // métodos setters y getters … …
}
class Gen { int tamAsig, tamPer; List listaAsignaturas; List listaAulaPeriodos; // Constructor de la Clase Gen
CAPITULO IV: Proceso de Análisis y Diseño
- 72 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
public Gen(List lAs,ListlAp) { this.tamAsig = lAs.size();
//tamaño de la lista asignaturas
this.tamPer = lAp.size();
//tamaño de la lista periodos
this.listaAsignaturas = lAs; //lista de asignaturas this.listaAulaPeriodos=lAp; //lista de aulaPeriodos } // métodos Gene[ ]indivAlea(); // Devuelve un vector de genes (individuo), con genes aleatorios
} Función indivAlea() // función 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 carg a horaria
for (i = 0; i
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;
CAPITULO IV: Proceso de Análisis y Diseño
- 73 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
for(int j=0;j
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. Representación del Cromosoma (Individuo)
Los individuos representan una asignación 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.
CAPITULO IV: Proceso de Análisis y Diseño
- 74 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
El conjunto de genes representa un individuo.
1
2
asignatura
3
4
docente
5
6
7
posAsignat
8
…
semestre
n
estado
Figura 4.12. Representación del Individuo Inicial Fuente: Elaboración Propia
Donde:
n: número 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 generación de los los horarios. Cada Gen (posición) del individuo hace referencia a la lista de aulaPeriodos que contiene la información del día, periodo, aula. Estructura de datos (clase) para representar un individuo class Gene[ ] Cromosoma{ List As;
//Lista de objetos Asignaturas
List Ap;
//Lista de Aula periodos
float adaptación, puntuación, 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 añade un nuevo objeto de tipo Gene en la posición n+1 que almacena la información de la adaptación, puntuación y la puntuación acumulada. Gene cuyos datos son utilizados para la evaluación del n+1: almacena un vector de tipo Gene individuo, estos datos son: adaptación, puntuación y puntuación acumulada.
CAPITULO IV: Proceso de Análisis y Diseño
- 75 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
1
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
2
3
4
5
6
7
Adaptación
8
n
…
Puntuación
n+1
Puntuación Acumulada
Figura 4.13. Representación del Individuo Final Fuente: Elaboración Propia
4.2.6.5. Representación de la población
La población es un conjunto de individuos de tamaño tp dado como parámetro (tamaño de la población).
1
2
3
4
5
6
7
8
…
n
n+1
1
1
2
3
4
5
6
7
8
…
n
n+1
2
1
2
3
4
5
6
7
8
…
n
n+1
3
…
…
…
…
…
…
…
…
…
…
1
2
3
4
5
6
7
8
…
n
n+1
. . . tp
Figura 4.14. Representación de la población Fuente: Elaboración Propia
Al completar el llenado de la población inicial, se evalúa la población y se añade la información usual que necesita un algoritmo genético, como ser: adaptación, puntuación, puntación acumulada; en el gen de la posición n+1. -
Adaptación: Es una variable real que, que en este proyecto es un valor a minimizar. Cada vez que una restricción 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 característica de la adaptación es que tiende a cero cuando se satisfacen las restricciones, pero toma un valor grande cuando estas son violadas.
CAPITULO IV: Proceso de Análisis y Diseño
- 76 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Estructura de datos para la función de adaptación Pseudocódigo // función que recibe como parámetro un vector de genes (individuo) // devuelve la adaptación de ese individuo
Public int adaptacion(Gene[] indi){ int adapt = 0, npmpp =0, int namsp =0;
for(int k =0;k
for(int j =0;j
if((indi[j].getPro().equals(p))&& (perio.equals(per))){ adapt ++; /Número /Número 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 ++; //Número //Número de mismo semestre mismo periodo }
CAPITULO IV: Proceso de Análisis y Diseño
- 77 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
// 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 ++; //Número //Número de mismo asignatura mismo dia } } } } } -
Puntuación: Es una variable real que almacena la puntuación obtenida por cada individuo luego de una evaluación. La puntuación viene dada por la fórmula:
∑
Esta fórmula es utilizada para trabajar con problemas de maximización. Como la función de adaptación devuelve la cantidad de restricciones que han sido violadas, significa que los individuos que tengan mayor cantidad de choques tendrían mayor puntuación y por lo tanto tendrían mayor probabilidad de ser seleccionados, por lo que es necesario realizar una transformación para calcular la puntuación de cada individuo y de esta manera lograr que los individuos que poseen menor cantidad de choques tengan una mayor puntuación. -
Puntuación Acumulada: Es una variable real que almacena la suma acumulada de las puntuaciones de cada individuo:
4.2.6.6. Evaluación de la población
La función de evaluación evalúa cada individuo de la población asignándole valores de adaptación, puntuación y puntuación acumulada, necesarios para la ejecución del algoritmo genético.
CAPITULO IV: Proceso de Análisis y Diseño
- 78 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Pseudocódigo función de evaluación:
public List evaluarPoblacion(List pobla){ int ad, ada; float pun; int tamIndiv =0; int sumTotalAdapta=0; float acum=0; List poblacion = new ArrayList();
DESDE j=0 HASTA pobla.size() HACER { Gene[] indiv = this.poblacionInicial.get(j); //obtiene el individuo j ad =(adaptacion(indiv));
//adaptación del individuo j
sumTotalAdapta = ad + sumTotalAdapta; tamIndiv= indiv.length;
//obtiene el tamaño del individuo
Gene g =new Gene(ad,0,0); indiv[tamIndiv]= g;
//agrega un nuevo gen al individuo j //con su valor de adaptación
poblacion.add(indiv);
//agrega el individuo evaluado a //una población temporal
} //ciclo para invertir la función de maximizar a minimizar
float suma2=0;
DESDE m=0 HASTA poblacion.size() HACER { Gene[] indiv1 = poblacion.get(m);
//obtiene el individuo m de la población
ada= adaptacion(indiv1); suma2 =suma2 + sumaTotalAdapta/ada; }
DESDE k=0 HASTA poblacion.size() HACER { Gene[] individuo= poblacion.get(k);
//obtiene el individuo k de la población
int ti= individuo.length;
//obtiene el tamaño del individuo
CAPITULO IV: Proceso de Análisis y Diseño
- 79 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
ad = individuo[ti].getAdapt();
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
//obtiene la adaptación del individuo k
//puntuacion invertida para minimizar
pun =sumTotalAdapta/ad/suma2;
//puntuación válida
acum= acum + pun;
//puntuación acumulada
Gene ge = new Gene(ad,pun,acum); individuo[ti]= ge;
//guarda la adaptación,puntuación y acum
} // Retorna la población evaluada con su adaptación, puntuación y a cumulada
return poblacion; } 4.2.6.7. Operadores Genéticos
Durante la etapa de alteración del algoritmo, se usan dos clásicos operadores genéticos: Mutación que consiste en la modificación del código genético del cromosoma, y cruce que es el intercambio de material genético entre dos cromosomas. Estos operadores se seleccionarán, cada uno de los cuales tiene asociado una cierta probabilidad de ocurrencia, la cual se representa en nuestro algoritmo a través de un número aleatorio, una vez seleccionado uno de estos operadores se aplica a la población inicial. Si la selección nos da que se debe aplicar el operador de mutación, lo que hace este operador, en primera instancia es obtener un número aleatorio, y con este valor, se revisa la puntuación acumulada en la población inicial, se selecciona el individuo; se obtienen dos nuevos números aleatorios para intercambiar los genes a través del operador de mutación por intercambio. Una vez aplicado el operador, se guarda el nuevo individuo en una población temporal y se obtiene nuevamente un número aleatorio con el fin de seleccionar otro operador genético, el cual se aplica a la población inicial, este proceso se realiza hasta llenar la población temporal. Cuando el valor aleatorio da que se debe aplicar el operador de cruce, lo que hace este operador, es entregar un número aleatorio, y con este valor, se selecciona el individuo de forma similar al caso de mutación, una vez seleccionado el primer individuo y el segundo individuo, se obtiene dos nuevos números aleatorios y se aplica el operador de cruce por orden.
CAPITULO IV: Proceso de Análisis y Diseño
- 80 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Pseudocódigo del operador genético 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 po r 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 inserción for(i=p1;i
- 81 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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
break;
} } } return exis; } Pseudocódigo operador de mutación // 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;
CAPITULO IV: Proceso de Análisis y Diseño
- 82 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
} 4.2.6.8. Selección
La selección implantada en el trabajo se denomina como selección a través del método de la la ruleta. Este método usa una distribución de probabilidad, en donde la probabilidad de seleccionar un cromosoma (conjunto de genes que forman la solución) es directamente proporcional a su puntuación. Posteriormente se realiza una elección al azar, garantizando que sobrevivan los cromosomas con mejor adaptación genética. El cromosoma que resulte mejor en la evaluación posee mayores posibilidades de salir seleccionado y formar parte de la nueva generación. 4.2.6.9. Generación de la población inicial
La primera etapa de un Algoritmo Genético es la generación de la población inicial, en la cual se generan aleatoriamente tp cromosomas (tamaño de población), donde tp representa el tamaño de la población, es decir, la cantidad de individuos donde cada individuo representa una posible solución al problema. A cada gen del individuo se le asigna aleatoriamente y sin repetir las asignaturas de la listaAsignaturas, Pseudocódigo para inicializar inicializar la población
public AGenetico(int numGeneraciones, int tamPoblacion,float pCruce, float pMutacion, List asignatur,List 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 Listinicializar() throws Exception{ for(int i=0;i
CAPITULO IV: Proceso de Análisis y Diseño
- 83 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
poblacionInicial.add(individuo); } Esquema propuesto para la ejecución de un algoritmo genético con los parámetros obtenidos desde una interfaz gráfica. AGenetico AG = new AGenetico
(numeroGeneraciones, tamaPoblacion, pCruce, pMutar,lisAsignatura, lisAulaPeriodos,carrera);
poblacionInicial = AG.inicializar();
//inicializa la población
poblacion =AG.evaluarPoblacion(poblacionInicial); //evalúa la población
while (numgen <= numeroGeneraciones){ List poblacionTemporal=new ArrayList(); //llenar población temporal
do{c= cruzar; o = AG.operadores( ); //elige //elige que operador usar a partir de una probabilidad pro babilidad 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 añade a la población temporal
poblacionTemporal.add(newInc); }else{// si el operador es mutar se selecciona un solo s olo individuo
Gene[]ind3= AG.seleccionar(poblacion); // se muta un gen del individuo
Gene[] newInm = AG.mutacion(ind3); //Se añade a la población temporal
poblacionTemporal.add(ind3); } } // se realiza hasta que la población temporal se llene
}while(poblacionTemporal.size()== tamaPoblacion);
CAPITULO IV: Proceso de Análisis y Diseño
- 84 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
poblacion = AG.evaluarPoblacion(poblacionTemporal); numgen ++;
} Este procedimiento se inicia con la función inicializar población, con la cual se realiza el llenado de la población inicial, cada individuo de esta población se llena con la información de las asignaturas y los docentes que dictan estas asignaturas, la carrera a la que pertenece la asignatura, y el día asignado. Este procedimiento de inicialización de la población se realiza hasta que se llene por completo la población. Una vez finalizada esta etapa, se procede a evaluar la población, con lo cual se calculan los choques para cada individuo y se almacenan en la variable adaptación, teniendo este dato se procede a calcular la puntuación y la acumulada de cada individuo. Una vez realizada esta etapa, se procede a Ejecutar la rueda de ruleta, la cual obtiene un número al azar y selecciona, dependiendo del número, el operador genético que se aplicará. El ciclo do – while se realiza hasta llenar la población temporal, que es donde se guardan todos los individuos a los que se les ha aplicado los operadores genéticos. Una vez llenada la población temporal, se procede a evaluar ésta. A continuación la población temporal pasa a ser la nueva población, mientras que la población temporal queda vacía. El procedimiento principal se ejecuta hasta llegar a una solución factible, o hasta completar el número de iteraciones definidas para la generación. En cuanto a la modificación 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 fracción a los individuos que tenían más choques, ya que, estos poseen una puntuación mayor, y entregaba una fracción menor a los que tienen menos choques. Es por esto que la función se modificó, y así trabajar con las funciones minimizar. A continuación, se presenta el código utilizado para calcular el porcentaje acumulado: Nota: La mejor solución es aquel individuo que tiene una puntuación mínima o cero si es óptima.
CAPITULO IV: Proceso de Análisis y Diseño
- 85 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.3. Proceso de Implementación 4.3.1. Fases y plazos de implementación Los plazos y las etapas de implementación están vinculados al tipo de institución en la que se aplicará el sistema y a los actores que participarán en su manejo para garantizar su continua intervención y motivación en el desarrollo. Las fases que se siguieron para la implementación son las siguientes:
Preparación de la plataforma
Preparación del software
Preparación de soporte
Infraestructura de soporte
4.3.2. Preparación Preparación de la plataforma La plataforma es un vehículo par la tecnología y debe estar correctamente configurada para el desarrollo de la implementación del sistema. La ventaja del sistema es que al estar desarrollando la aplicación en JAVA, se garantiza la portabilidad del sistema, que permitirá su funcionamiento sin importar la plataforma en la cual sea implementada.
4.3.3. Preparación del Hardware Incluye la infraestructura de servidores y equipos de redes para aplicaciones (arquitectura de la aplicación) ver Figura Diagrama de Despliegue.
4.3.4. Preparación del Software Incluye la preparación y configuración de las aplicaciones de software que interactúan con la aplicación incluyendo a la misma aplicación. Entre estas encontramos:
Sistema Operativo.
Ambiente de la aplicación, que permite la ejecución del sistema, Sistema Gestor de Base de Datos y Maquina Virtual de Java.
CAPITULO IV: Cronograma de Ejecución
- 86 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.3.5. Diagrama de Componentes Mediante los siguientes diagramas se verá la organización de los componentes (interfaces, módulos, paquetes, archivos, código fuente, etc.) del sistema y su dependencia con diferentes partes del mismo.
Autenticar java .java: Archivo responsable de permitir el acceso al sistema, mediante
usuarios registrados con nombre y contraseña.
Interfaz: Contenedor utilizado para el agrupamiento de todas las ventanas (interfaz)
del sistema.
ControlDao: Contenedor utilizado para almacenar los archivos encargados de
manipulación de datos y peticiones realizados por las interfaces de usuarios.
Iconos: Contenedor de todas las imágenes 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 biométrico y archivos para la implementación del algoritmo genético para la construcción de horarios.
jar: librería de manipulación de reportes para java. Jasper. jar:
jar: Api que permite la ejecución de operaciones sobre sobr e base de datos. Jdbc. jar:
jar: librería utilizada para la persistencia de objetos en la base de ToplinkEssentials. jar: datos.
Swing: Librería de componentes que ayuda a la estética y funcionalidad en el
desarrollo de interfaces de usuario.
Entidades: Contenedor que contiene todas las clases entidad.
CAPITULO IV: Cronograma de Ejecución
- 87 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.3.5.1. Módulos del Sistema
Módulo Control Control de A sistencia
Módulo Kardex de Pers onal
Módulo Construir Construir Horarios
Figura 4.15. Módulos del Sistema Fuente: Elaboración propia
Main.java
Swing
Interfaz Autenti Autenti car
Princip al
Control Asistencia
Administrar Asistencia
Report es
kardex personal
ireport.jar
jarperRep ort
Construir Horarios
ControlDao
toplinkEssenti als
Entidades
Figura 4.16. Diagrama de Componentes Fuente: Elaboración propia
CAPITULO IV: Cronograma de Ejecución
- 88 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.3.5.2. Diagrama de Despliegue
Cliente SISTEMA SISCAACH
Servidor BASE DE DATOS
Acceso JPA TOPLINK
Figura 4.17. Diagrama de Despliegue Fuente: Elaboración propia
4.3.6. Estructura de Directorios y Archivos Los directorios y archivos del proyecto están estructurados de la siguiente manera: La carpeta SISAACA contiene el archivo Autenticar.java que es el encargado de iniciar la aplicación, 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 imágenes utilizadas en el Sistema.
Interfaz: Paquete que contiene los archivos de interfaz del sistema, agrupados de acuerdo a cada módulo en los siguientes paquetes. -
ControlAsistencias
-
Horarios
-
Kardex
-
Seguridad
CAPITULO IV: Cronograma de Ejecución
- 89 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
META – INF: Carpeta que contiene el archivo de configuración y conexión 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 biométrico y archivos para la implementación del algoritmo genético para la construcción 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 librerías utilizadas por el sistema.
Lo anteriormente descrito se puede apreciar en la siguiente figura:
Figura 4.18. Estructura de Directorios y Archivos Fuente: Elaboración propia
CAPITULO IV: Cronograma de Ejecución
- 90 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.3.7. Implementación de las clases en lenguaje de programación La estructura de las clases que contiene el código están agrupados de acuerdo a cada módulo, ya que se busca que el código sea fácil de entender y modificar. A continuación se detalla la implementación 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")})
CAPITULO IV: Cronograma de Ejecución
- 91 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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; }
CAPITULO IV: Cronograma de Ejecución
- 92 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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;
CAPITULO IV: Cronograma de Ejecución
- 93 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
} @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. Implementación de la Base de Datos El gestor de base de datos elegido para gestionar la información 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.
CAPITULO IV: Cronograma de Ejecución
- 94 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Figura 4.19. Implementación de la base de datos (Interfaz SQL Maestro for MySQL) Fuente: Elaboración Propia
4.4. Seguridad del Sistema Para la seguridad de la información se consideró los siguientes aspectos
Confidencialidad: el sistema posee autentificación de Usuarios lo que permite acceder solamente a la información correspondiente a cada usuario de acuerdo a sus permisos.
Integridad: el usuario al no tener acceso a módulos que no le correspondan, no tiene la posibilidad de modificar o eliminar información importante.
Resguardos: el sistema permite sacar resguardos de la información para que de esta forma se reduzca la posibilidad de pérdida de información.
CAPITULO IV: Cronograma de Ejecución
- 95 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
En la tabla 4.5 se muestra los niveles de acceso para los diferentes usuarios Tabla 4.5. Niveles de Acceso de Usuarios
Usuario Administrador Encargado RRHH Encargado de horarios
Nivel de Acceso 1 2
Kardex Personal
Control de Administrar Construir Seguridad Asistencia Asistencia Horarios
Si Si
Si Si
Si Si
Si No
Si No
3
No
No
No
Si
No
Fuente: Elaboración Propia
Figura 4.20. Interfaz ingreso al sistema Fuente: Elaboración Propia
4.5. Proceso de Prueba 4.5.1. Pruebas de Software La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además, esta etapa implica:
Verificar la interacción de componentes.
Verificar la integración adecuada de los componentes.
Verificar que todos los requisitos se han implementado correctamente.
Identificar y asegurar que los defectos encontrados se han corregido antes de entregar el software al cliente.
Diseñar pruebas que sistemáticamente saquen a la luz diferentes clases de errores, haciéndolo con la menor cantidad de tiempo y esfuerzo.
CAPITULO IV: Cronograma de Ejecución
- 96 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
La prueba es un proceso que se enfoca sobre la lógica interna del software y las funciones externas. La prueba es un proceso de ejecución de un programa con la intención 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.
Técnicas de Prueba Una vez generado el código fuente, es necesario probar el software para descubrir y corregir la mayor cantidad de errores posible antes de entregarlo al cliente. Su objetivo es diseñar una serie de casos de prueba que tengan una alta probabilidad de encontrar errores. Estas técnicas proporcionan directrices sistemáticas para pruebas de diseño que 1) comprueben la lógica 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 función, comportamiento y desempeño.
Prueba de caja Blanca: Permiten examinar la estructura interna del programa. Se diseñan casos de prueba para examinar la lógica del programa. Es un método de diseño de casos de prueba que usa la estructura de control del diseño procedimental para derivar casos de prueba que garanticen que:
-
Se ejercitan todos los caminos independientes de cada módulo.
-
Se ejercitan todas las decisiones lógicas.
-
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 información externa se mantiene.
La prueba de caja negra intenta encontrar errores de las siguientes categorías:
CAPITULO IV: Cronograma de Ejecución
- 97 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
-
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 inicialización y terminación.
4.5.3. Diseño y ejecución de las pruebas. Las características del software hacen difícil la tarea de probarlo. Es más, estas características hacen imposible la realización de una prueba exhaustiva al software. Por lo tanto se debe tomar una actitud o filosofía para realizar esta labor. Si con las pruebas no se detectan errores se llega a la conclusión 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 integración
o
Pruebas del sistema
En cuanto a las técnicas de prueba utilizadas, es decir, aquellas que ayudan a definir conjuntos de casos de prueba aplicando un cierto criterio, se utilizaron las técnicas de caja blanca basados en el contenido de los módulos y las técnicas de caja negra basados en las interfaces y las especificaciones de los módulos. Los resultados obtenidos de la aplicación 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 aceptación fue el esperado. 4.5.3.1. Pruebas de Unidad
Las pruebas de unidad tienen por objeto testear una función, un módulo, una porción de código, en realidad como su nombre lo indica una unidad, la técnica utilizada para estas pruebas es la técnica de caja blanca por interactuar con el código analizando directamente su estructura y funcionalidad.
CAPITULO IV: Cronograma de Ejecución
- 98 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Los casos de prueba realizados se encuentran detallados en el documento de referencia técnica, a continuación se presenta el desarrollo de uno de los casos de prueba de unidad.
Prueba Gestionar Kardex Tabla 4.6. Prueba Gestionar Gestionar Kardex
Titulo: Gestionar Kardex de Personal Tipo de prueba: Prueba de unidad Datos de prueba Técnica de prueba: Caja Blanca Responsable: Proyectista Objetivo de la prueba Comprobar el funcionamiento y desempeño de la gestión de kardex de personal. Datos personales del empleado Datos de entrada Procedimiento de prueba: - Ingresar nuevo personal: Elegir la opción Añadir personal Ingresar todos los datos en los campos del formulario Elegir la opción guardar - Actualizar personal El personal debe estar seleccionado Clic en el botón Editar Modificar los datos necesarios Clic en el botón Guardar. - Eliminar personal El personal debe estar seleccionado Clic en el botón Eliminar - El campo C.I. de personal y email no están validados. Problemas Implementar un método de validación para los campos CI y email Solución
Fuente: [Elaboración Propia]
3.5.3.2. Pruebas de Integración
Prueba Gestión de usuarios Tabla 4.7. Prueba Gestión de Usuarios
Titulo: Módulo de gestión de usuarios Tipo de prueba: Prueba de integración Datos de prueba Técnica de prueba: Caja Blanca y de caja negra Responsable: Proyectista Objetivo de la Verificar si la creación de usuarios, y la asignación de tareas a los usuarios en función a sus niveles de acceso es correcta, prueba comprobándose tal hecho iniciando sesiones con diferentes cuentas de usuarios Nombre de usuario y contraseña Datos de entrada Procedimiento de prueba: - Ingresar Nombre de Usuario
CAPITULO IV: Cronograma de Ejecución
- 99 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
-
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Ingresar Contraseña Verificar que el menú asignado corresponda a las tareas asignados a dicho usuario.
Problemas Conclusión
Ningún problema identificado Al haberse hecho las revisiones y correcciones necesarias al código durante las pruebas de unidad no se tuvieron inconvenientes en esta etapa de pruebas. Fuente: [Elaboración Propia]
Para la ejecución del algoritmo genético es necesario tener los parámetros adecuados, para esto se realizaron pruebas experimentales. La información detallada se encuentra en el Anexo B.
4.6. Cronograma de ejecución El esfuerzo necesario para concretar un proyecto de desarrollo de software, cualquiera sea el modelo, se expresa en meses/persona (PM) y representa los meses de trabajo de una persona a tiempo completo requeridos para desarrollar el proyecto. [17] La estimación del costo y esfuerzo del proyecto se las realizó mediante el uso de la métrica de “Puntos Función” y el uso de la herramienta USC COCOMO II. (Ver
Anexo A.)
4.6.1. Plan de desarrollo del Proyecto La planificación del proyecto se divide en dos etapas que son:
Estudio e investigación de las herramientas y técnicas a utilizar para el desarrollo del sistema.
Desarrollo del proyecto, tomando en cuenta el ciclo de vida elegido, el iterativo incremental.
CAPITULO IV: Cronograma de Ejecución
- 100 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Tabla 4.8. Planificación de Actividades (Investigación de las Herramientas)
INVESTI INV ESTIGAC GACII N DE LAS HER HERRAM RAMIENT IENTAS AS Investigación
140 día díass Actividades
Duración
Método biométricos por medio de Estudio de Sistemas Biométricos huella dactilar Métodos
y
por medio de la huella dactilar técnicas
para
la Estudio de técnicas de búsqueda y
construcción de horarios académicos Instalación,
15 dias
reconocimiento
programación del lector de huella.
15 días
métodos de optimización
y Integración del lector de huella con
10 días
el lenguaje de programación Persistencia de huellas digitales en
10 días
Base de datos Análisis de los Algoritmos Genéticos Construcción
del
algoritmo
20 días
Genéticos para el caso de estudio Codificación del cromosoma
20 días
Netbeans
Estudio Interfaz Gráfica
20 días
MySQL
Estudio Interfaz Gráfica y Consola
10 días
Netbeans MySQL JPA
Estudio Integración MySQL – JPA
20 días
Netbeans
Fuente: Elaboración Propia Tabla 4.9. Planificación de Actividades (Desarrollo del proyecto)
DESARROLLO DEL PROYECTO TIEMPO ACTIVIDAD (Días)
ITERACI ITERACI N I Concepción Recopilación de la información (entrevistas y documentos) Determinar la visión del proyecto en reunión con las autoridades administrativas de la Universidad Pedagógica Determinación de requerimientos funcionales y no funcionales Realizar el modelo del casos de uso del Negocio (contexto del sistema) Elaboración Elaborar el modelo general de casos de uso del proyecto
CAPITULO IV: Cronograma de Ejecución
200 días PRODUCTO
14
Modelo Modelo de Requer Requerimi imiento entoss del Sistema
1
Documento con la información relacionada al proyecto Documento con la visión del proyecto y restricciones principales Documento con requerimientos no funcionales Documento de casos de uso inicial de negocios
1 1 1 2
Diagramas de casos de uso
- 101 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
Elaborar el diagrama de paquetes del proyecto (Arquitectura del Sistema) Clasificar los casos de uso por riesgo, prioridad y funcionalidad Análisis de clases, identificación de atributos, relaciones y responsabilidades Estimación de tiempo y costo, prioridades y riesgos Probar la aceptación del modelo de requerimientos a través de un prototipo ITERACI ITERACI N II
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
1
Diagrama de paquetes
1
Casos de uso clasificados
2
Diagrama de clases
2
Documentación de la estimación de tiempo y costo Prototipo no funcional del sistema Subsist Subsistema ema Kardex Kardex del Personal Docente
2
21
Construcción 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 interacción del subsistema Elaborar el modelo de estados del subsistema Codificar los casos de uso Probar los casos de uso a través de prototipos Elaborar Manual preliminar del usuario
1
ITERACI ITERACI N III
28
Construcción 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 interacción del subsistema Elaborar el modelo de estados del subsistema Codificar los casos de uso Probar los casos de uso
2 2
Diagramas de casos de uso y descripción detallada de los casos de uso Diagramas detallados de clases
1
Diagramas de colaboración
1 11 3
Diagramas de estados Subsistema codificado Subsistema probado y validado por los clientes Documento incrementado manual del usuario Subsist Subsistema ema Control Control de Asistencia
3 2
Diagramas de casos de uso y descripción detallada de los casos de uso Diagramas detallados de clases
1
Diagramas de colaboración
1 16 3
Diagramas de estados Subsistema codificado Subsistema probado y validado por los clientes Documento incrementado manual del usuario Subsist Subsistema ema Constru Construcció cciónn de Horarios
Añadir contenido al Manual preliminar del usuario ITERACI ITERACI N IV
46
Construcción Elaborar el modelo detallado de requerimientos
21
CAPITULO IV: Cronograma de Ejecución
2
Diagramas de casos de uso y
- 102 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
del subsistema para adecuarse a la arquitectura planteada Elaborar el modelo detallado de clases del subsistema Elaborar los diagramas de interacción del subsistema Elaborar el modelo de estados del subsistema Codificar los casos de uso Probar los casos de uso Añadir contenido al Manual del usuario
2
ITERACI N V Construcción 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 interacción del subsistema Elaborar el modelo de estados del subsistema Probar los casos de uso
7
ITERACI ITERACI N VI Construcción 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 interacción del subsistema Elaborar el modelo de estados del subsistema Codificar los casos de uso Probar los casos de uso
28
Incrementar contenido al manual de Manual del usuario ITERACI ITERACI N VII
1
56
Transición Elaborar un plan de pruebas
5
Pruebas de módulos y de sistema con usuarios no involucrados directamente en el proyecto
CAPITULO IV: Cronograma de Ejecución
4
descripción detallada de los casos de uso Diagramas detallados de clases
2
Diagramas de colaboración
1 14 2
1
Diagramas de estados Subsistema codificado Subsistema probado y validado por los clientes Documento incrementado manual del usuario Subsistema de Reportes y módulo de Seguridad Diagramas de casos de uso y descripción detallada de los casos de uso Diagramas detallados de clases
1
Diagramas de colaboración
1 2
Diagramas de estados Subsistema probado y validado por los clientes Subsist Subsistema ema de Ayuda Ayuda en lín línea ea
2
2 2
Diagramas de casos de uso y descripción detallada de los casos de uso Diagramas detallados de clases
2
Diagramas de colaboración
1 10 2
Diagramas de estados Subsistema codificado Subsistema probado y validado por los clientes Documento incrementado manual del usuario Sistem Sistemaa implem implementa entado do y probado
3
Documentación detallada del plan de pruebas Documentación de las pruebas (casos de prueba)
- 103 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Corregir y extender la funcionalidad
3
Capacitación a los usuarios
3
Puesta a prueba del sistema implementado Corrección de errores detectados durante la prueba del sistema
35 7
Sistema validado por los usuarios Usuarios capacitados para manejo del sistema Documentación de las pruebas Sistema probado y validado por los usuarios
Fuente: Elaboración propia
CAPITULO IV: Cronograma de Ejecución
- 104 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.6.2. Cronograma de Actividades
Figura 4.21. Diagrama Diagrama de Gant del proyecto proyecto Fuente: Elaboración Elaboración Propia
CAPITULO IV: Cronograma de Ejecución
- 105 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Figura 4.22. Diagrama Diagrama de Gant Gant del Proyecto Proyecto (Continuación) Fuente: Elaboración Elaboración Propia
CAPITULO IV: Cronograma de Ejecución
- 106 -
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Figura 4.23. Diagrama Diagrama de Gant Gant del proyecto proyecto (Continuación) Fuente: Elaboración Elaboración Propia
CAPITULO IV: Cronograma de Ejecución
- 107 -
CAPITULO V DISCUSIÓN DE RESULTADOS
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
DISCUSIÓN DE RESULTADOS 5.1. Resultados 5.1.1. Interfaces de Usuario Se debe recalcar que RUP no define un diseño de interfaces y pantallas en ninguna de las fases; a continuación se muestra algunas de las interfaces más relevantes del sistema.
Interfaz: Menú Principal del sistema
Figura 5.1. Menú Principal del Sistema Fuente: Elaboración Propia
Interfaz: Registro de Personal
- 108 CAPITULO V: Discusión de Resultados
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS Figura 5.2. Registro de Personal Fuente: Elaboración Propia
Interfaz: Registro Situación Laboral
Figura 5.3. Registro Situación Laboral Fuente: Elaboración Propia
Interfaz: Búsqueda personal
Figura 5.4. Búsqueda de Personal Fuente: Elaboración Propia
- 109 CAPITULO V: Discusión de Resultados
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Interfaz: Reporte Personal Docente
Figura 5.5. Reporte de personal Fuente: Elaboración Propia
Interfaz: Registro de Turnos
Figura 5.6. Registro de Turnos Fuente: Elaboración Propia
- 110 CAPITULO V: Discusión de Resultados
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Interfaz: Asignación de Turnos al Personal
Figura 5.7. Asignación de Turnos Fuente: Elaboración Propia
Interfaz: Registro de Permisos
Figura 5.8. Registro de Permisos Fuente: Elaboración Propia
- 111 CAPITULO V: Discusión de Resultados
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Interfaz: Administrador de pin y huella
Figura 5.9. Administrador de pin y huella Fuente: Elaboración Propia
Interfaz: Registrar Asignaturas
Figura 5.10. Registrar Asignaturas Fuente: Elaboración Propia
- 112 CAPITULO V: Discusión de Resultados
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Interfaz: Configuración Datos Horario
Figura 5.11. Configuración Datos Horario Fuente: Elaboración Propia
Interfaz: Horarios Construidos
Figura 5.12. Horarios Construidos Fuente: Elaboración Propia
- 113 CAPITULO V: Discusión de Resultados
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
5.2. Puesta en Marcha En esta fase el proyecto fue presentado al cliente y a los usuarios finales, con la seguridad de que su funcionamiento era el correcto y que el mismo responde a los requerimientos solicitados. La Institución cuenta con la infraestructura necesaria para operación del sistema, todos los datos para su funcionamiento fueron introducidos a partir de documentos en los cuales estaba registrada dicha información, se realizó la capacitación a los usuarios mediante varias presentaciones del sistema que se fueron realizando, la primera presentación fue de los primeros módulo terminados, las siguientes fueron del sistema en su conjunto.
5.2.1. Especificación técnica de hardware y software
Hardware Tabla 5.1. Especificación técnica de hardware (servidor)
Dispositivo
Características
T. Madre
Intel GC35EC
Procesador
IBM procesador XEON
Memoria RAM
2GB DDR2
Disco Duro
250 GB
Tarjeta de Red
Ethernet 100/1000 mbps base – T
Tarjeta de Video
Nvidia G-Force 256Mb
Monitor
Samsung Fuente: Elaboración propia
Tabla 5.2. Especificación técnica de hardware (cliente)
Dispositivo
Características
T. Madre
ASRock WofGate
Procesador
Intel Dual Core 2.0 GHz.
Memoria RAM
1GB DDR2
Disco Duro
80 GB SATA
Tarjeta de Red
Ethernet 100/1000 mbps base – T
Monitor
LG 15 “ Fuente: Elaboración propia
- 114 CAPITULO V: Puesta en Marcha
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Software Tabla 5.3. Especificación técnica de software software
Herramienta
Nombre
Plataforma de programación (PC cliente) Servidor Base de datos (PC Servidor) Generador de reportes (PC cliente) JPA
Versión
Java Development Kit
6
MySQL
5.1
iReport
3.5.1
ToplinkEssentials (PC cliente)
2
Fuente: [Elaboración Propia]
5.2.2. Instalación del Sistema Para ver detalles de la instalación del sistema consultar manual de instalación. Anexo C.
5.2.3. Capacitación a Usuarios Jefe de Recursos Humanos: Este usuario será capacitado para:
Gestionar Kardex de Personal, añadir, eliminar, modificar los datos del personal de la institución.
Gestionar Situación Actual
Gestionar Experiencia Laboral
Registrar turnos para el control de asistencia al personal.
Asignar Turnos al personal.
Controlar permisos y licencias al personal.
Registrar Días 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, añadir, eliminar, modificar los datos de las carreras de la Institución.
Gestionar Asignaturas, añadir, eliminar, modificar los datos de las asignaturas de cada una de las carreras de la Institución. - 115 -
CAPITULO V: Puesta en Marcha
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Registrar Aulas de la institución.
Construir horarios.
Editar un horario construido.
Generar Reportes de los horarios generados por Semestre, Docente y Aula
Personal: (La capacitación 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. Estimación del costo y Esfuerzo del Producto Costo del Producto Los gatos de materiales, equipos, fueron financiados por la Institución, los costos de licencias de software fueron nulos ya que se utilizaron herramientas libres, en tanto que los costos por concepto de obtención de información y los referidos a los costos auxiliares como ser papelería y otros corrieron por cuenta propia, según se detalla a continuación. Tabla 5.4. Costos de obtención obtención de información, papelería y otros
Item Fotocopias Fotocopias Servicio de Internet Papel Bond Tamaño Carta Tinta negra para impresora HP Tinta a color para impresora HP Libro Algoritmos Evolutivos Libro Mysql Total (Bs.) Total ($us)
Cantidad 200 9 meses 3 2 2 1 1
Precio/Unidad(Bs) 0,20 2Bs(c/h) 25 20 60 560 280
Total 40 2000 75 40 120 560 280 3115 420
Fuente: [Elaboración Propia] Tabla 5.5. Costos de licencias de software
Item NetBeans 6.0.1 MySQL IReport 3.5.1. Total ($us.)
Costo Licencia Licencia libre Licencia libre Licencia libre
Fuente: [Elaboración Propia]
- 116 CAPITULO V: Puesta en Marcha
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
La estimación del costo y esfuerzo del proyecto se las realizo mediante el uso de la métrica métrica de “Puntos Función” es una técnica para medir el tamaño del software, que pretende medir la
funcionalidad entregada al usuario independiente independiente de la
tecnología utilizada para la
construcción y explotación del software, después de hacer uso de la técnica ya mencionad se generó los siguientes resultados: tamaño en líneas código 11808 SLOC, una vez obtenido este resultado se uso el Modelo de estimación 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 estimación se ve reflejada en el Anexo A.
- 117 CAPITULO V: Puesta en Marcha
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
CONCLUSIONES Con la implementación del Sistema de Control de Asistencia y Apoyo a la Construcción de Horarios, se logró mejorar el rendimiento del proceso de control de asistencia haciéndolo más efectivo y minimizando el tiempo de emisión de reportes de control de personal. La solución planteada disminuye el tiempo y esfuerzo que eran dedicados al proceso de la gestión de horarios y de asignación de aulas, debido a que controla de forma automática 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 podrán organizar los horarios de manera más eficiente y en menor tiempo. El uso de Métodos de Análisis y Diseño Orientado a Objetos ayudo a realizar el proyecto de forma más ordenada y entendible, cumpliendo con los objetivos planteados para el presente proyecto. El campo de la biometría 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 creación, codificación y depuración 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 tamaño del aula.
- 118 CAPITULO V: Conclusiones
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
RECOMENDACIONES El sistema con las características que presenta puede ser implantado en cualquier Unidad Educativa que tenga un modelo escolar, por otra parte es necesario desarrollar un módulo para la parte contable para que el sistema pueda operar en un colegio privado donde es necesario tener la información de pago de sueldos a los profesores. Para que el sistema sea adaptable a un modelo universitario se podría hacer un análisis particular que asigne aulas sin la intervención de personas, teniendo el sistema alguna forma de inteligencia propia.
- 119 CAPITULO V: Conclusiones
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
REFERENCIA BIBLIOGRÁFICA [1] TECNOBOLS, Sistema de Información Administrativa SIA, [CD ROM] Versión 5.3.29.2 Sucre 2001, Programa Computacional. [2] CABABIE Pablo, CANCELO Facundo, LÓPEZ DE LUISE Daniela, Sistema Automático para Asignación de aulas y distribución de espacios [en línea]. Palermo, España: Universidad
de
Palermo.
Disponible
en:
www.palermo.edu/ingenieria/downloads/2008_wicc_gdarim_v3.pdf. [Consulta: 9 abril 2009]. [3]
ASC,
Time
Tables
[en
línea]
versión
2008,
Disponible
en:
http://www.asctimetables.com/timetables_es.html. [Consulta 25 abril 2008]. [4] Visual Scheduling System Visual Classroom Schduler [en línea] Versión demo V3.53 Australia. Disponible en: http://www.vss.com.au/index.asp. [Consulta: 24 abril 2009]. [5]
SOFTAULA,
[en
línea]
Versión
demo
2006.
Disponible
en:
http://www.softaula.com/es/down/downlodad.asp. [fecha de consulta: 24 abril 2009]. [6] Adossis Kronowin, [en línea] versión M-8.04. Valladolid, España. Disponible en: http://www.adossis.es/REFUGHM8.htm#REFUINI. [Consulta: 15 abril 2009]. [7] BERTRAND, Meyer. Construcción de Software Orientado a Objetos . Joyanes Aguilar, Luis (Trad.). Segunda Edición. 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 Edición. Madrid: Ediciones Anaya Multimedia, 2008. 384 p. ISBN: 978-84-
415-2398-2. [9] HERRERA, Randall; CALDERA, Roderick; MARTINEZ, Manuel . “ Análisis y Diseño de Sistemas con el Lenguaje de Modelaje Unificado (UML)”. Universidad Católica “Redemptoris Mater”, Escuela de Ingeniería en sistemas de Información, Managua, 1999
[10] NETBEANS, Join & Contribute to the NetBeans Community, [en línea] Disponible en: www.netbeans.org. REFERENCIA BIBLIOGRAFICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
[11] DEITEL, Harvey; DEITEL, Paul. Como Programar en Java. Romero, Alfonzo(Trad.). Quinta Edición. Mexico: Pearson Educación, 2004. 1268 p. ISBN: 970-26-0518-0. [12] CORONEL, Erick ; Desarrollando Soluciones con Java y MySQL. Primera Edición. Lima: Macro E.I.R.L., 2009. 428p. ISBN: 978-612-4034-05-3. [13] CANCHUCAJA, Jose del Carmen; Diseño de Bases de Datos. Universidad Nacional de la Plata, Maestría Ingeniería de software, Caracas. 2007. [14]
PERSISTENCIA
JPA,
[en
línea],
Disponible
en:
http://www.elholgazan.com/2007/08/jpa-java-persistence-api.html [consulta 15 de mayo de 2009] [15] HERNANDEZ SAMPIERI Roberto, Carlos Fernández Collado, Pilar Baptista Lucio. Metodología de la Investigación, 3ra. Ed. México, DF Ultra; 2002, [libro], p. 47-48
[17] GÓMEZ Adriana, LÓPEZ María del C., MIGNAI Silvina, OTAZÚ Alejandra, Un Modelo de Estimación de Proyectos de Software .
[18] LÓPEZ TAKEYAS Bruno, JOHNSTON BARRIENTOS Jaime David, “ Modelo De Asignación de Carga Académica Usando Algoritmos Genéticos”, México 2007 Instituto
Tecnológico de Nuevo. Disponible en: http://www.itnuevolaredo.edu.mx/takeyas [Consulta 12 de octubre de 2009].
[19] ALMEIDA SAENZ Orlando., Administración de Recursos Humanos, 1ra. edición La Paz Bolivia Universidad Mayor de San Andrés; 2002. [20] FLORES Pedro, BRAU Ernesto, MONTEVERDE Jazmín A, SALAZAR Norman F., FIGUEROA José, “Experimentos con algoritmos genéticos para resolver un problema real de programación Maestros – Horarios – Cursos”. Departamento de Matemáticas Universidad
de Sonora, Hermosillo Sonora CP 83000 México. [21] TOLA FLORES Egberto, “Sistema Biométrico de control de asistencia y planillas de pago” ,
La Paz 2008 Universidad Mayor de San Andrés, Facultad de Ciencias Puras y
Naturales Carrera de Informática.
REFERENCIA BIBLIOGRAFICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
[22] MOLINA, JUAN ENRIQUE; Algoritmos Geneticos para la resolución de un problema de tipo timetabling, Universidad de Valparaiso, Chile Facultad de Ciencias, Departamento De
Computación Ingeniería Aplicada Valparaíso 2007. [23] PACHECO AGÜERO Carla Leninca, Distribución Óptima de Horarios de Clases utilizando la técnica de Algoritmos Genéticos; Acatlima, Huajuapan de León, Oaxaca Agosto,
2000 disponible en http://jupiter.utm.mx/~tesis_dig/6557.pdf [24] VEGA BRISEÑO, Edgar Armando. Introducción a sistemas y Tecnologías de información, Disponible en: http://www.monografias.com/trabajos24/tics-empresas.shtml 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] Identificación Biométrica con huellas digitales, [en línea], 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; Programación Lineal y no Lineal, Addison-Wesley Publishing, Pp. 3-6. 2000 [30] Coello, Coello Carlos A., Introducción a los Algoritmos Genéticos, Soluciones Avanzadas, Tecnologías de Información y Estrategias de Negocios, [Enero 1995] , Número 17, Pp. 5-11. [31] MEJIA CABALLERO, José; Asignación de Horarios de d e Clases Universitarias Mediante Algoritmos Evolutivos, Colombia 2008, Universidad De La Guajira / Universidad Del Norte.
REFERENCIA BIBLIOGRAFICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
[32] LOPEZ, TAKEYAS BRUNO; BARRIENTOS, JOHNSTON DAVID; Modelo de Asignación de Carga Académica Usando Algoritmos Genéticos, Instituto Tecnológico de
Nuevo Laredo. Reforma Sur 2007, C.P. 88250, Nuevo Laredo, Tamps. México. Disponible en: http://www.itnuevolaredo.edu.mx/takeyas [33] ARAUJO, Lourdes; CERVIGON, Carlos; Algoritmos Evolutivos un Enfoque Practico, 1ra. Edición. Barcelona: RA-MA EDITORIAL, 2009. 330P. ISBN: 978-84-7897-911-0. [34] Patrones de Diseño de Software, [en línea], disponible en: http://www.proactivacalidad.com/java/patrones/mvc.html, [Consulta 12 febrero de 2010]. [35] Comparación de Gestores de Bases de Datos, [en línea], 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, hibérnate
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
Línea]
disponible
http://mundobyte.wordpress.com/2008/01/05/creacion-de-reportes-en-java-parte-i 20 de Marzo de 2010].
REFERENCIA BIBLIOGRAFICA
en: [Consulta
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
BIBLIOGRAFÍA 1. PRESSMAN, Roger S.; Ingeniería del Software un Enfoque Práctico, 5ta. Edición. Madrid: McGRAW-HILL/INTERAMERICANA DE ESPAÑA, S.A.U., 2003. 600p. ISBN : 84-481-3214-9. 2. KENDALL, Kenneth E; KENDALL, Julie E., Análisis y Diseño de Sistemas, 6ta. Edición. México: PEARSON EDUCACION, 2005. 752 p. ISBN: 970-26-0577-6. 3. GILFILLAN, Ian, La Biblia de MySQL, 3ra Edición, Barcelona: ANAYA MULTIMEDIA, 2006. 880 p. 4. DEITEL, Harvey; DEITEL, Paul. Como Programar en Java. Romero, Alfonzo(Trad.). Quinta Edición. Mexico: Pearson Educación, 2004. 1268 p. ISBN: 970-26-0518-0. 5. CORONEL, Erick ; Desarrollando Soluciones con Java y MySQL. Primera Edición. Lima: Macro E.I.R.L., 2009. 428p. ISBN: 978-612-4034-05-3
6. HERNANDEZ SAMPIERI Roberto, Carlos Fernández Collado, Pilar Baptista Lucio. Metodología de la Investigación, 3ra. Ed. México, DF Ultra; 2002, [libro], p. 47-48
7. ARAUJO, Lourdes; CERVIGON, Carlos; Algoritmos Evolutivos un Enfoque Practico, 1ra. Edición. Barcelona: RA-MA EDITORIAL, 2009. 330p. ISBN: 978-84-7897-911-0.
BIBLIOGRAFIA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
GLOSARIO DE TÉRMINOS Algoritmo Genético: Un algoritmo genético es una técnica de programación que imita a la evolución biológica como estrategia para resolver problemas. Los algoritmos genéticos pertenecen a la clase de métodos de búsqueda aleatoria. Su diferencia fundamental con los procedimientos clásicos es que los algoritmos genéticos se basan en la evolución de una familia de soluciones en lugar de ir mejorando una sola solución.
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.
Biometría: La biometría es una tecnología de seguridad basada en el reconocimiento de una característica de seguridad y en el reconocimiento de una característica física e intransferible de las personas, como por ejemplo la huella digital.
Compelijad P: P es la clase de complejidad que contiene problemas de decisión que se pueden resolver en un tiempo polinomial.
Complejidad NP: clase de complejidad que contiene problemas que no pueden resolverse en un tiempo polinómico.
Cromosoma: Un cromosoma está formado por un grupo de genes. Es el conjunto de la solución en sí.
CU: (Caso de Uso) Es una secuencia de pasos a seguir para la realización de un fin o propósito.
DAO: (Data Access Objects) Objeto que permite la conexión para la transferencia de datos. Frameworks: Plantillas predefinidas, que facilitan la programación. Función de Aptitud: La función de aptitud le da una calificación sobre que tan bueno es un conjunto e genes para obtener el objetivo dado.
Huella Dactilar: Es la representación de la morfología superficial de la epidermis de un dedo, estas huellas son diferentes en cada persona.
JPA: (Java Persistence API) Estándar Java para el mapeo objeto relacional, proporciona un modelo de persistencia basado en POJO’s para mapear bases de datos relacionales en Java.
GLOSARIO DE TERMINOS
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
JMF: (Java Media FrameWork) Es una extensión de trabajo que permite la programación de tareas multimedia en lenguaje de programación java. Se traduce como “Entorno de trabajo multimedia de java”.
Longitud de la Cadena: Es el número de genes que componen el cromosoma. O sea el número de variables que tiene el modelo a resolver.
Métodos Heurísticos: 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 biométricos: Sistema automatizado que realiza labores de biometría. Es decir, un sistema que fundamenta sus decisiones de reconocimiento mediante una característica 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 exámenes), en un período de tiempo determinado, satisfaciendo un conjunto de restricciones.
GLOSARIO DE TERMINOS
ANEXOS
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
ANEXO A GESTIÓN DEL PROYECTO A.1. Estimación de costo/esfuerzo del proyecto Para la estimación del costo del sistema se utilizó el modelo constructivo de costos Cocomo II y dentro del mismo el modelo Post-Arquitectura. La estimación de costo, esfuerzo y tiempo se realizó aplicando la herramienta USC COCOMO II, para ello se partió de los casos de uso del sistema. Los resultados de la la estimación se detalla a continuación.
A.1.1. Cálculo de Puntos Función Identificación de los flujos de entrada y salida, consultas Q, archivos lógicos internos y externos.
Flujo de Entrada / pantalla FE No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ANEXO A
Flujo de Entrada / Pantalla FE Pantalla Cantidad de Datos Registrar personal 20 Experiencia Laboral 5 Situación Laboral 8 Profesiones 2 Registrar Turnos 8 Calendario Laboral 2 Asignar Turnos 3 Registrar Licencias 3 Registrar Permisos 3 Administrar Pin 2 Control Asistencia 9 Registrar Carrera 2 Registrar Asignatura 6 Registrar Aula 3 Asignar Aula 4 Registrar Usuario 7 Cambiar Contraseña 4 Construir Horario 9 Guardar Horario Construido 4 Editar Horario 1
Complejidad Alta Media Media Baja Media Baja Media Media Media Baja Alta Baja Media Baja Media Media Alta Alta Alta Alta
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Flujo de Salida / Reportes FS No. 1 2 3 4 5 6 7 8 9 10 11
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 Académico (por 5 Carreras) Ver Horario Construido Ver Horario Docente Ver Horario Construido -
Complejidad Media Media Media Media Media Media Media Media Alta Alta Alta
Consultas Q Consultas Q No.
Consulta
1 2 3 4 5 6 7
Autenticar Usuario Búsqueda de personal Búsqueda detalle asistencia diaria Búsqueda detalle asistencia mensual Búsqueda Licencias/Permisos Registro de Asistencia Búsqueda Horario Construido
No. De criterios 2 3 2 3 2 2 1
Complejidad Media Media Media Media Media Media Media
Archivos Lógicos Internos ALI No 1 2 3 4 5 6 7 ANEXO A
Archivos Lógicos Internos ALI Archivo Tipo de Registro Personal 2 Experiencia_Laboral 2 Situación_Laboral 2 Profesiones 2 Turnos 2 Calendario_Laboral 2 Turnos_Asignados 2
Complejidad Media Media Media Baja Media Baja Media
INGENIERÍA DE SISTEMAS UMRPSFXCH
8 9 10 11 12 13 14 15 16 17 18
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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 Lógicos Externos ALE No 1 2 3
Archivos Lógicos Externos ALE Archivo No de campos Ayuda 3 Backup Base de Datos 2
Complejidad Baja Baja
Pesos Según la complejidad Pesos Específicos Media
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 función no ajustados
Alta
Total
6*6 7*3 6*0 15 * 3 10 * 0
87 61 28 183 10 369
Cálculo de KSLOC Convirtiendo los puntos Función para un lenguaje de Tercera Generación: 369 * 32 = 11808 SLOC
ANEXO A
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
A.1.2. Estimación de Costo / Esfuerzo mediante mediante COCOMO II
Sueldo mensual por programador 150 $us
Costo del Producto Costo = 6660.56 $us Cálculo del Tiempo T = [ 3.0 * E (0.33+0.2(b-1.01))]* SCED/100 DONDE: E= 44.4 Líneasb= 1 Código
SCED = 100% Esfuerzo
Costo
T = 10.41 T = 10 meses Cálculo de Personas Personas = E/T = 44.4/ 10
ANEXO A
Personas =
4 Personas mes
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
ANEXO B PRUEBAS PARA LA CONSTRUCCIÓN DE HORARIOS UNIVERSIDAD PEDAGOGICA NACIONAL “MARISCAL SUCRE”
La principal técnica utilizada en la construcción de los horarios es el algoritmo genético simple. Una vez implementado los algoritmos genéticos, se procedió a evaluar el comportamiento mediante la modificación de ciertas variables que influyen en el mismo, como ser el número de generaciones y el número de individuos que forman la población. Existen investigaciones en las cuales se han modificado la variable Número de Generaciones, con el objetivo de conocer el comportamiento de las soluciones a través de un número de generaciones dado; según Araujo Lourdes[33] el número de generaciones puede variar de 10 a 500 y el tamaño de la población de 10 a 100. Los valores de los operadores genéticos, son extraídos de la literatura por ser los más utilizados. El Operador de combinación tendrá una probabilidad de ocurrencia de 80 por ciento, mientras que el operador de de mutación tendrá una probabilidad de ocurrencia del 20 por ciento restante. Para obtener el tamaño de la generación más aceptable se realizarán pruebas cambiando este parámetro 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 información empleada en las pruebas, será obtenida de la dirección académica de la Universidad Pedagógica para el primer semestre de la gestión 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
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
5. Los horarios son por turnos (mañanas o tardes)
Análisis de Resultados La variable adaptación, 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 adaptación. Tabla A.B.1. Resultados Pruebas Parámetros A. G.
Tamaño Número de Probabilidad Probabilid Adaptación de Generaciones de cruce ad de o número Población mutación de Choques 10 10 80% 20% 25 10 50 80% 20% 21 10 100 80% 20% 23 15 10 80% 20% 25
Tiempo de Ejec. 00:00:50 00:01:26 00.04:03 00:01:07
15
50
80%
20%
18
00:03:20
15
100
80%
20%
20
00:06:03
20
10
80%
20%
25
00:02:05
20
50
80%
20%
18
00:04:15
20
100
80%
20%
22
00:07:58
30
10
80%
20%
23
00:01:35
30
50
80%
20%
19
00:06:10
30
100
80%
20%
21
00:11:55
40
10
80%
20%
23
00:02:05
40
50
80%
20%
20
00:0820
40
100
80%
20%
17
00:15:49
50
10
80%
20%
21
00:02:20
50
50
80%
20%
14
00:09:52
50
100
80%
20%
17
00:19:50
100
10
80%
20%
21
00:04:22
100
50
80%
20%
22
00:15:05
100
100
80%
20%
19
00:23:15
200
10
80%
20%
24
00:07:28
200
50
80%
20%
18
00:15:05
ANEXO B
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
200
100
80%
20%
15
00:28:10
300
10
80%
20%
17
00:06:25
300
50
80%
20%
23
00:15:46
300
100
80%
20%
22
00:27:28
400
10
80%
20%
19
00:07:10
400
50
80%
20%
25
00:16:24
400
100
80%
20%
19
00:32:40
500
10
80%
20%
21
00:10:50
500
50
80%
20%
19
00:18:14
500
100
80%
20%
18
00:37:30
Fuente: Elaboración Propia
Conclusión:
Al finalizar las pruebas de Número de Generaciones y tamaño de población, aplicaremos el algoritmo construido al problema para determinar la solución factible, este algoritmo creado presentará los porcentajes 20 de ocurrencia en mutación y 80 en cruce, 15 de tamaño de población y 50 de número de generaciones. En la tabla de arriba se puede observar que mientras más grande es el número de generación mayor es el tiempo de ejecución y la adaptación no tiene una gran diferencia con respecto a los resultados con otros parámetros, es por eso que los datos elegidos son 15 tamaño de población y 50 numero de generaciones. Los parámetros, tamaño de población y el número de generaciones fueron elegidos debido a que la solución es obtenida en un tiempo considerable y las diferencias con las otras soluciones no son significativas ya que la solución es obtenida a partir de una solución aleatoria. Con estos datos es posible encontrar una solución factible, además el sistema permite la modificación manual del cromosoma (Solución), hecho que permite la manipulación del horario de forma visual y amigable para el usuario.
ANEXO B
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
ANEXO C MANUAL DE INSTALACIÓN Introducción El Sistema de Control de Asistencia y Apoyo a la construcción de horarios es un Sistema Informático compuesto por diferentes módulos como como ser: Kárdex de personal, Control de Asistencia, Construcción de Horarios y Seguridad, que mejora el rendimiento del proceso de control de asistencia haciéndolo más efectivo y minimizando el tiempo de emisión de reportes de control de personal, además de construir horarios académicos de acuerdo a las necesidades de la Universidad Pedagógica “Mariscal Sucre”.
Requerimientos del Sistema El sistema requiere ser instalado en un equipo con las siguientes características:
Procesador Pentium IV ó superior
Vídeo que soporte como mínimo 256 colores.
Espacio en disco de 30 Mb.
RAM 64Mb ó superior.
Periféricos
Dispositivo Lector de Huellas Digitales, cualquier tipo y modelo de Lectores Biométricos del mercado
Camara Web de cualquier tipo y modelo.
Instalación Antes de empezar con la instalación del sistema se requiere lo siguiente:
JRE: Instalar la máquina virtual de java en el ordenador para que la instalación del sistema SISCAACH sea posible.
Gestor de Bases de Datos MySQL.
Driver de lector de huella de cualquier marca y modelo.
ANEXO C
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
JMF (Java Media Framework). Framework necesario para la manipulación de la cámara web.
Todos los archivos necesarios se encuentran en en el CD de instalación, el cliente solo tiene que introducir el CD, entrar dentro de él y ejecutar con un doble clic los archivos necesarios.
Instalación del JRE Para instalar la Maquina Virtual de Java hacer doble click en el archivo y seguir las instrucciones hasta finalizar.
Figura C.1. Instalación del JRE Fuente: [Elaboración Propia]
Instalación 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.
Figura C.2. Instalación del lector de huella Fuente: [Elaboración Propia]
ANEXO C
INGENIERÍA DE SISTEMAS UMRPSFXCH
-
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Posteriormente aparece la pantalla de bienvenida y se da clic en Siguiente, aparecen los términos de la licencia, los cuales se debe aceptar para poder continuar.
Nota: Es importante tener desconectado el lector de huella.
Figura C.2. Instalación del lector de huella Continuación Fuente: [Elaboración Propia]
-
Una vez hecho lo anterior se selecciona la ruta donde se instalará, aquí se dejan los valores por defecto.
-
Después de la ruta de instalación se debe elegir los elementos que se instalarán, de igual igual manera se deja todo marcado y se da clic en siguiente.
Figura C.3. Instalación del lector de huella Continuación Fuente: [Elaboración Propia]
ANEXO C
INGENIERÍA DE SISTEMAS UMRPSFXCH
-
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Enchufar el lector de huella digital, seleccionar el idioma y click en ok
Figura C.4. Instalación del lector de huella Continuación Fuente: [Elaboración Propia]
Instalación del JMF (Java Media Framework) Hacer doble click en el archivo y seguir las instrucciones hasta finalizar.
Figura C.5. Instalación del JMF Fuente: [Elaboración Propia]
ANEXO C
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Instalación del Gestor de BD MySQL Hacer doble click en el archivo y seguir las instrucciones hasta finalizar
Instalación del Sistema SISCAACH Hacer doble click en el archivo y seguir las instrucciones hasta finalizar
Figura C.7. Instalación del SISCAACH Fuente: [Elaboración Propia]
ANEXO C
INGENIERÍA DE SISTEMAS UMRPSFXCH
-
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Proceso de instalación finalizada
Figura C.8. Instalación del SISCAACH Continuación Fuente: [Elaboración Propia]
ANEXO C
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
REFERENCIA TÉCNICA MODELO DE REQUERIMIENTOS Administración de Requerimientos El propósito de la administración de requerimientos es organizar y documentar la funcionalidad y restricciones requeridas por el sistema, además de registrar posibles modificaciones del modelo de requerimientos y decisiones que se tomarán a lo largo del desarrollo del proyecto.
Organización y responsabilidades La responsabilidad de un buen análisis 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 continuación cada una de de sus labores:
Efectuar el papel de “analista
de sistemas” 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 diseñador 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 Análisis y Diseño en esta primera fase del ciclo del producto.
Rational Rose para la elaboración del Modelo de Casos de Uso.
Netbeans 6.1 como entorno de desarrollo
iReport como generador de reportes.
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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:
Elaboración del plan de requerimientos.
Elaboración de la visión de requerimientos.
Captura de las solicitudes de usuario
Especificación de casos de uso
Especificación de software
Descripción de requerimientos no funcionales
Identificación de Actores
Encargado de RRHH
Encargado de Horarios
Personal
Descripción de Actores Actores Subsistema Encargado de Gestión de RRHH Kardex de personal. Control de asistencia.
Descripción Es el que interactúa con el subsistema kardex de personal y Control de Asistencia.
Encargado de horarios
Generar Horarios
Es el que interactúa con Gestionar toda la el subsistema Generar información Horarios. relacionada con la construcción de horarios, emitir reportes de horarios por semestre, por docente.
Personal
Control de
Es quien interactúa con Registrar su huella
REFERENCIA TÉCNICA
Responsabilidad Registrar toda la información correspondiente al personal, asignar turnos, emitir informes relacionados al kardex de personal y control de asistencia
INGENIERÍA DE SISTEMAS UMRPSFXCH
Asistencia
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
el subsistema control de digital en el lector Asistencia por medio del biométrico para el lector biométrico control de asistencia.
Captura de requerimientos Requerimientos funcionales -
Permitir la creación, modificación y eliminación de usuarios del sistema.
-
Registro y almacenamiento de los datos del Personal Docente, incluyendo la información relevante, permitiendo la edición de manera rápida y contemplando las siguientes subdivisiones:
Datos Personales
Experiencia laboral
Situación 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 académico que incluya días hábiles y no hábiles para su consideración posterior.
-
Control de Asistencia al Personal Docente de acuerdo a turnos asignados a cada docente y con el uso de un lector biométrico.
-
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 Automáticamente para cada carrera de la universidad.
-
Permitir la modificación de los parámetros para la generación de horarios.
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
-
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 cálculo.
-
El sistema debe proveer seguridad respecto a la información mediante la realización de copias de seguridad (backups).
Requerimientos no funcionales -
El sistema debe funcionar con los ordenadores existentes en la institución.
-
Debe existir facilidad de uso del uso del sistema, además la interfaz debe ser amigable al usuario final, otorgando confianza para el manejo y desempeño del mismo.
-
Se debe implementar un sistema de seguridad de manejo del sistema, mediante permisos específicos de operación 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 documentación necesaria de respaldo.
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Modelo de Casos de Uso Diagrama de Casos de Uso Principal del Sistema
Gestionar Kardex Personal
Encargado RRHH Gestionar Asistencia
Registrar Huella Administrador
personal Control Asistencia
Construir Horarios Encargado Horarios
Gestión de Usuarios
Caso de Uso: Gestionar Usuario
<>
Administ rador
Ges t ionar U s uario
Validar D at os
Gestionar Usuarios Descripción General: Permite crear, eliminar, modificar usuarios que utilizan el sistema, además valida los datos que se ingresen del usuario. Actor: Administrador Precondiciones: Tener privilegios para gestionar usuarios. Postcondiciones: Los usuarios quedan registrados y estos tendrán acceso al sistema según su perfil asignado.
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Flujo: Nuevo Usuario
No.
Actor
1
Llena los campos requeridos y asigna un perfil al nuevo usuario.
2 3
Sistema Valida los datos ingresados y si existe un error despliega un mensaje.
Elige la opción Guardar. Almacena los datos.
Flujo Alternativo: Despliega un mensaje de error, si los datos están duplicados o erróneos.
3 2 Elige la opción Cancelar 5 Flujo: Eliminar Usuario
No. 1 2
Actor
Presenta la información del Usuario Selecciona al usuario y elige la opción eliminar.
4
Elige la opción SI
Despliega una pantalla de confirmación del proceso de eliminación Elimina el registro correspondiente al personal
5 Flujo Alternativo: 2 4 Elige la opción NO 5 Flujo: Editar Usuario 1 2
Sistema
Ingresa Criterio de búsqueda
3
No.
Sale da la pantalla.
Actor
No encuentra al personal no muestra nada No elimina el registro
Sistema
Ingresa Criterio de búsqueda Presenta la información del Personal
3
Selecciona al usuario y modifica Valida los datos ingresados y si existe un la información en los campos error despliega un mensaje necesarios
4
Elige la opción Editar
5
REFERENCIA TÉCNICA
Almacena los datos modificados
INGENIERÍA DE SISTEMAS UMRPSFXCH
6
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Elige la opción cerrar
Sale de la pantalla
Flujo Alternativo: 2
Si no encuentra el personal presenta un mensaje de usuario no encontrado.
5
Despliega un mensaje de error, si los datos están duplicados o erróneos.
4
Elige la opción NO
No modifica los datos del personal
Subsistema Gestionar Kardex
Ges titionar Si Situac io ion Laboral
<> <> Gestionar Ex periencia periencia Laboral Laboral
Bus ca car Pers on onal
<>
Consultas
<>
Reportes Gestionar Profesiones
Gestionar Personal
Encargado Encargado RRH H
Diagrama de Casos de Uso: Gestionar Kardex Personal Fuente: [Elaboración propia] Detalle de los Casos de Uso Caso de Uso: Gestionar Personal
Gestionar Personal Descripción General: Permite crear, eliminar, modificar el personal de la Institución. 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 TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Flujo: Nuevo Personal
No. 1
Actor Elige la opción añadir Personal
Despliega el formulario con los campos de información necesaria del personal
2 3 4 5
Llena los campos
Almacena los datos Sale de la pantalla Despliega un mensaje de error, si los datos están duplicados o erróneos.
5
5 4
Valida los datos ingresados y si existe un error despliega un mensaje
Elige la opción guardar
6 Elige la opción cerrar Flujo Alternativo:
4
Sistema
Ingresa datos correctos, elige la opción guardar Almacena los datos Elige la opción cancelar No almacena al personal y Vuelve al flujo 1
5 Flujo: Eliminar Personal
No. 1 2 3 4
Actor
Sistema
Ingresa Criterio de búsqueda Presenta la información del Personal Elige la opción eliminar
Despliega una pantalla de confirmación del proceso de eliminación
Elige la opción SI
5 Flujo Alternativo: 2 4 Elige la opción NO 5 Flujo: Editar Personal
REFERENCIA TÉCNICA
Elimina el registro correspondiente al personal No encuentra al personal no muestra nada No elimina el registro
INGENIERÍA DE SISTEMAS UMRPSFXCH
No. 1 2
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Actor
Sistema
Ingresa Criterio de búsqueda Presenta la información del Personal
3
Modifica la información en los Valida los datos ingresados y si existe un campos necesarios error despliega un mensaje
4
Elige la opción Editar
5 6
Almacena los datos modificados Elige la opción cerrar
Sale de la pantalla
Flujo Alternativo: 2
Si no encuentra el personal no muestra nada
5
Despliega un mensaje de error, si los datos están duplicados o erróneos.
4
Elige la opción NO
No modifica los datos del personal
Caso de Uso: Gestionar Experiencia Laboral
Gestionar Experiencia Laboral Descripción General: Permite crear, eliminar y modificar los datos de experiencia laboral del personal de la Institución. Actor: Encargado de Recursos Humanos Precondiciones: El usuario debe haberse logeado en el sistema. El usuario debe haber seleccionado un empleado. Postcondiciones: Los datos de experiencia laboral son almacenados en la Base de Datos. Flujo: Añadir datos Experiencia laboral
No. 1
Actor Elige la opción añadir
Despliega el formulario con los campos de información necesaria.
2 3 4
Sistema
Llena los campos Elige la opción guardar
REFERENCIA TÉCNICA
Valida los datos ingresados y si existe un error despliega un mensaje
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
5
Almacena los datos
Elige la opción cerrar 6 Flujo Alternativo:
Sale de la pantalla Despliega un mensaje de error, si los datos están duplicados o erróneos.
5 4
Ingresa datos correctos, elige la opción guardar
Almacena los datos 5 Elige la opción cancelar 4 Vuelve al flujo 1 5 Flujo: Eliminar Datos Experiencia Laboral
No. 1 2 3
Actor Selecciona eliminado.
registro
Sistema a
ser Habilita los botones eliminar, editar, y cancelar
Elige la opción eliminar
Despliega una pantalla de confirmación del proceso de eliminación
Elige la opción SI
4 Flujo Alternativo: Elige la opción NO 3
Elimina el registro seleccionado
Regresa al formulario anterior No elimina el registro
4 Flujo: Editar Datos Experiencia Laboral
No. 1 2
Actor
Sistema
Selecciona un registro a ser Habilita los botones eliminar, editar, y eliminado. cancelar Elige la opción editar
Habilita los campos para ser editados Habilita la opción guardar y cancelar
3
Modifica la información en los Valida los datos ingresados y si existe un campos necesarios error despliega un mensaje
4
Elige la opción Guardar
5 6
Almacena los datos modificados Elige la opción cancelar
REFERENCIA TÉCNICA
Vuelve al flujo 1
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Flujo Alternativo: Despliega un mensaje de error, si los datos están duplicados o erróneos.
3 4 5
Elige la opción NO No modifica los datos del personal
Caso de Uso: Gestionar Situación Laboral
Gestionar Situación Laboral Descripción General: Permite crear, eliminar y modificar los datos de Situación Laboral del personal de la Institución. Actor: Encargado de Recursos Humanos Precondiciones: El usuario debe haberse logeado en el sistema. El usuario debe haber seleccionado un empleado. Postcondiciones: Los datos de experiencia laboral son almacenados en la Base de Datos. Flujo: Añadir datos Situación Laboral
No. 1
Actor Elige la opción añadir
Despliega el formulario con los campos de información necesaria.
2 3
Llena los campos Valida los datos ingresados y si existe un error despliega un mensaje
4 5
Sistema
Elige la opción guardar
Almacena los datos 6 Elige la opción cerrar Sale de la pantalla 7 Flujo Alternativo: Ingresa datos correctos, elige la 5 opción guardar
6 Flujo: Eliminar Datos Situación Laboral
REFERENCIA TÉCNICA
Despliega un mensaje de error, si los datos están duplicados o erróneos.
INGENIERÍA DE SISTEMAS UMRPSFXCH
No. 1 2
Actor
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Sistema
Selecciona un registro a ser Habilita los botones eliminar, editar, y eliminado. cancelar Elige la opción eliminar
Elige la opción SI 3 4 Flujo Alternativo: Elige la opción NO 3
Despliega una pantalla de confirmación del proceso de eliminación Elimina el registro seleccionado
Regresa al formulario anterior No elimina el registro
4 Flujo: Editar Datos Situación Laboral
No. 1 2 3 4 5
Actor
Selecciona un registro a ser Habilita los botones eliminar, editar, y eliminado. cancelar Elige la opción editar
Habilita los campos para ser editados Habilita la opción guardar y cancelar
Modifica la información en los Valida los datos ingresados y si existe un campos necesarios error despliega un mensaje Elige la opción Guardar
Despliega una pantalla de confirmación del proceso de edición
Elige la opción SI
6 Elige la opción cancelar 7 Flujo Alternativo:
Almacena los datos modificados Vuelve al flujo 1 Despliega un mensaje de error, si los datos están duplicados o erróneos.
3 5 6
Sistema
Elige la opción NO
REFERENCIA TÉCNICA
No modifica los datos del personal
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Caso de Uso: Gestionar Profesiones
Gestionar Profesiones Descripción 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: Añadir Profesión
No.
Actor
1
El usuario elige la opción añadir
Sistema Habilita los campos para insertar nueva profesión en la pantalla profesiones.
2 3
Elige la opción guardar
Almacena los datos
4
Elige la opción cerrar
Sale de la pantalla
Flujo Alternativo: Flujo: Eliminar Profesión
No. 1 2 3 4
Actor Selecciona tabla
Sistema
un registro de la Habilita la opción eliminar registro
Elige la opción eliminar
Despliega una pantalla de confirmación del proceso de eliminación
Elige la opción SI
Elige la opción cerrar 5 Flujo Alternativo: Elige la opción NO 3
4
REFERENCIA TÉCNICA
Elimina el registro seleccionado Sale de la pantalla
No elimina el registro
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Subsistema Control de Asistencia
<> Administ rar Huellas Pin Asignar Turnos
Buscar Personal Gestionar Licencias
Gestionar Turnos
Consultas
Gestionar Calendario Academico
Reportes Encargado Encargado RR HH
Diagrama de Casos de Uso: Gestionar Asistencia Fuente: [Elaboración propia] Detalle de los Casos de Uso Caso de uso: Gestionar Turnos
Gestionar Turno Descripción General: Permite crear, eliminar y modificar turnos de trabajo para el personal de la Institución. Actor: Encargado de RRHH Precondiciones: El usuario debe haberse logeado en el Sistema. El usuario debe tener privilegios para gestionar Turno. guardados en la Base de Datos y podrán Postcondiciones: Los Turnos de trabajo son guardados usarse en la asignación de turnos al personal. Flujo: Añadir Turno
No. 1
Actor Elige la opción añadir Turno
Habilita los campos de información necesaria para ingresar un nuevo turno.
2 3 4
Sistema
Llena los campos Elige la opción guardar
REFERENCIA TÉCNICA
Valida los datos ingresados y si existe un error despliega un mensaje
INGENIERÍA DE SISTEMAS UMRPSFXCH
5
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Almacena los datos
Elige la opción cerrar 6 Flujo Alternativo:
Sale de la pantalla Despliega un mensaje de error, si los datos están duplicados o erróneos.
5 Flujo: Eliminar Turno
No.
Actor
1
Selecciona un registro de la tabla turnos
2 3 4
Habilita la opción eliminar registro Elige la opción eliminar
Elimina el registro correspondiente al personal
Elige la opción cerrar 6 Flujo Alternativo: Elige la opción NO 4 Flujo : Editar Turnos
No.
Actor
1
Selecciona un registro de la tabla turnos
2
4
Despliega una pantalla de confirmación del proceso de eliminación
Elige la opción SI
5
3
Sistema
Sale de la pantalla No elimina el registro
Sistema
Habilita la opción editar registro Elige la opción editar
Habilita los campos con la información a ser editada
Elige la opción guardar
5 Elige la opción cerrar 6 Flujo Alternativo: 5
REFERENCIA TÉCNICA
Almacena los datos Sale de la pantalla Despliega un mensaje de error, si los datos están duplicados o erróneos.
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Caso de Uso: Asignar Turno
Asignar Turno Descripción General: Permite asignar turnos de trabajo al personal de la Institución. 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. guardados en la Base de Postcondiciones: Los Turnos asignados al personal son guardados Datos y podrán usarse en el control de asistencia. Flujo: Asignar Turno
No. 1
Actor
Sistema
Elige la opción Asignar Turno Despliega una pantalla con la lista de personal registrado y turnos disponibles.
2 3
Selecciona Personal.
4
Elige la opción Turnos para asignar.
5 6
Selecciona Turno Elige la Asignados
opción
Almacena turno asignado para el personal seleccionado Turnos Despliega una pantalla con la lista de turnos asignados a personal seleccionado
Elige la opción salir 7 Flujo Alternativo:
Sale de la pantalla
Flujo: Eliminar Turnos asignados
No.
Actor
Sistema
1
Selecciona Personal
2
Elige la Asignados
3
Selecciona el Turno Asignado
REFERENCIA TÉCNICA
opción
Turnos Despliega una pantalla con la lista de turnos asignados a personal seleccionado.
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
que desea eliminar.
4 5
Elige la opción eliminar turno Elige la opción SI
Elimina el registro correspondiente al personal
6 7
Elige la opción cerrar
Flujo Alternativo: Elige la opción NO 5 6 Flujo : Editar Turnos
No.
Actor
1
Selecciona un registro de la tabla turnos
2 3 4 5 6
Despliega una pantalla de confirmación del proceso de eliminación
Sale de la pantalla
No elimina el registro
Sistema
Habilita la opción editar registro Elige la opción editar
Habilita los campos con la información a ser editada
Elige la opción guardar Almacena los datos Elige la opción cerrar
Sale de la pantalla
Flujo Alternativo: Despliega un mensaje de error, si los datos están duplicados o erróneos.
5
Caso de Uso: Gestionar Calendario Académico
Gestionar Calendario Académico Descripción General: Permite registrar los días hábiles y no hábiles correspondientes a una gestión académica Actor: Encargado RRHH Precondiciones: El usuario debe haberse logeado en el Sistema. El usuario debe tener privilegios para gestionar calendario académico Postcondiciones: Los datos del calendario académico son almacenados en la Base de
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Datos y pueden ser utilizados en el registro de control de asistencia.
Flujo: Añadir días no hábiles
No. 1 2 3 4 5
Actor
Sistema
Elige la opción añadir días no Despliega el formulario con los campos hábiles. de información necesaria para el registro de días no hábiles. Llena los campos
Valida los datos ingresados y si existe un error despliega un mensaje
Elige la opción guardar Almacena los datos Elige la opción cerrar
Sale de la pantalla
Flujo Alternativo: Despliega un mensaje de error, si los datos están duplicados o erróneos.
4 Flujo: Eliminar días no hábiles
No. 1 2 3
Actor Selecciona eliminado.
Sistema
registro
a
Elige la opción eliminar
ser Habilita los botones eliminar y cancelar Despliega una pantalla de confirmación del proceso de eliminación
Elige la opción SI
4 Elige la opción cerrar 5 Flujo Alternativo: Elige la opción NO 3
Elimina los datos Sale de la pantalla
4
No elimina los datos
Caso de Uso: Gestionar Licencias
Gestionar Licencias Descripción General: Permite al encargado asignar licencias al personal de la institución. Actor: Encargado RRHH Precondiciones:
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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: Añadir licencia
No.
Actor
1
Elige la licencia.
2
Selecciona el personal
3 4 5
opción
Sistema gestionar Despliega una pantalla con la lista de personal registrado y turnos disponibles.
Elige la opción licencias
Habilita los campos con la información necesaria para el tratamiento de licencias.
Llena los campos
Valida los datos ingresados y si existe un error despliega un mensaje.
Elige la opción asignar licencia Almacena los datos de licencia al personal.
6 Elige la opción cerrar 7 Flujo Alternativo:
Sale de la pantalla Despliega un mensaje de error, si los datos están duplicados o erróneos.
6 Flujo: Eliminar licencia
No. 1 2 3 4 5
Actor Selecciona eliminado.
registro
Elige la opción eliminar
Sistema a
ser Habilita los botones eliminar y cancelar Despliega una pantalla de confirmación del proceso de eliminación
Elige la opción SI Elimina los datos Elige la opción cerrar
Flujo Alternativo: Elige la opción NO 3 4
REFERENCIA TÉCNICA
Sale de la pantalla
No elimina los datos
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Registrar Huella
Visualizar Datos personal
<> <> Marcar Asistencia <> <>
Capturar Datos Huella Digital
Personal
Encargado Encargado RR HH
Diagrama de Casos de Uso: Control de Asistencia Fuente: [Elaboración propia] Detalle de Casos de Uso Caso de Uso: Registrar Huella
Registrar Huella y Fotografía Descripción General: Permite registrar la huella del personal de la institución. Actor: Encargado de RRHH Personal Precondiciones: Debe estar conectado el dispositivo lector de huella. Debe estar conectada la cámara web. El personal debe estar registrado en la base de datos El encargado de RRHH debe estar logeado en el sistema. 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 fotografía quedan almacenados en la Base de Datos.
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Flujo: Registrar huella digital y fotografía
No.
Actor
Sistema
1
El encargado de RRHH habilita Indica que esta en modo inserción la opción insertar datos.
2
El Personal imprime su huella Visualiza la plantilla de la huella digital digital en el lector biométrico. del personal.
3
El sistema pide el número de CI del personal al que corresponde la Huella Digital
4
Si el CI introducido existe visualiza la fotografía de la persona Si no encuentra el CI despliega un mensaje de Personal no encontrado verifique sus datos
5
Elige la opción guardar huella
6
El encargado de RRHH elige la opción aceptar
7 8
Guarda la huella en la Base de datos. Deshabilita la opción modo Coloca la ventana en modo controlar registrar asistencia.
Flujo Alternativo: El encargado de RRHH elige la 6 opción cancelar. 7
Despliega un mensaje de erro en caso de no encontrar el CI introducido permitiendo modificar el mismo
7
No guarda la huella y fotografía
Caso de Uso Capturar Huella
Capturar Huella Descripción General: El sistema captura los datos generados por el lector de huellas cuando el personal imprime su huella digital en el lector biométrico. Actor: Personal Precondiciones:
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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 fotografía 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 biométrico. del personal.
Flujo Alternativo:
Caso de uso: Marcar Asistencia
Marcar Asistencia Descripción 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.
Actor
1
El usuario imprime su huella digital en el lector biométrico.
Sistema
2
Visualiza la fotografía, la imagen de la huella digital, nombre, la fecha y hora del registro de asistencia.
3
Verifica si tiene turnos asignados en esa fecha.
4
Verifica que sea día hábil, si tiene licencias, etc.
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Guarda los datos relacionados a la asistencia del personal.
5 Flujo Alternativo: 2
Visualiza un mensaje de personal no encontrado en caso de no identificar la huella digital
3
Visualiza mensaje en caso de no tener turnos asignados, no guarda datos.
4
Visualiza mensaje de día no hábil, no guardo los datos.
5
No guarda los datos de asistencia.
Subsistema Construir Horarios
Gestionar Aulas Gestionar Periodos
Ejecutar Algoritmo
<>
<> <>
<> <>
<> Conf igurar Horarios
parametros algoritmo
Reportes
Gestionar Asignaturas
Exportar Horarios
Gestionar Carreras Encargado Horarios
Diagrama de Casos de Uso: Construir Horarios Fuente: [Elaboración propia] Detalle de Casos de Uso Caso de Uso: Gestionar Carreras
Gestionar Carreras Descripción General: Permite crear y eliminar Carreras Actor: Encargado de Horarios Precondiciones:
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
El usuario debe haberse logeado en el Sistema. El usuario debe tener privilegios para registrar carrera. Datos y Postcondiciones: Los datos de las carreras son almacenados en la Base de Datos pueden utilizarse en la generación de horarios Flujo: Añadir Carrera
No.
Actor
Sistema
1
El usuario elige la opción añadir Habilita los campos para insertar nueva carrera en la pantalla carreras.
2 Elige la opción guardar 3 Elige la opción cerrar 4 Flujo Alternativo:
Almacena los datos Sale de la pantalla
Flujo: Eliminar Carrera
No. 1 2 3
Actor Selecciona tabla
Sistema
un registro de la Habilita la opción eliminar registro
Elige la opción eliminar
Despliega una pantalla de confirmación del proceso de eliminación
Elige la opción SI
4 Elige la opción cerrar 5 Flujo Alternativo: Elige la opción NO 3 4
Elimina el registro seleccionado Sale de la pantalla
No elimina el registro
Caso de Uso: Gestionar Asignaturas
Gestionar Asignaturas Descripción General: Permite crear y eliminar Asignaturas Actor: Encargado de Horarios Precondiciones: El usuario debe haberse logeado en el Sistema.
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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 generación de horarios Flujo: Añadir Asignaturas
No.
Actor
Sistema
1
El usuario elige la opción añadir Habilita los campos para insertar nueva asignatura en la pantalla asignaturas.
2 3
Elige la opción guardar
Elige la opción cerrar 4 Flujo Alternativo:
Almacena los datos Sale de la pantalla
Flujo: Eliminar Asignatura
No. 1 2 3
Actor Selecciona tabla
Sistema
un registro de la Habilita la opción eliminar registro
Elige la opción eliminar
Despliega una pantalla de confirmación del proceso de eliminación
Elige la opción SI
4 Elige la opción cerrar 5 Flujo Alternativo: Elige la opción NO 3
Elimina el registro seleccionado Sale de la pantalla
4
No elimina el registro
Caso de uso: Gestionar Periodos
Gestionar Periodos Descripción 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 TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Postcondiciones: Los datos de los periodos son almacenados en la Base de Datos y pueden utilizarse en la generación de horarios. Flujo: Añadir Periodos
No.
Actor
1
El usuario elige la opción añadir Habilita los campos para insertar nueva asignatura en la pantalla asignaturas.
2 3 4
Sistema
Elige la opción guardar
Almacena los datos
Elige la opción cerrar
Sale de la pantalla
Flujo Alternativo: Flujo: Eliminar Periodos
No. 1 2 3 4
Actor Selecciona tabla
Sistema
un registro de la Habilita la opción eliminar registro
Elige la opción eliminar
Despliega una pantalla de confirmación del proceso de eliminación
Elige la opción SI
Elige la opción cerrar 5 Flujo Alternativo: Elige la opción NO 3
4
Elimina el registro seleccionado Sale de la pantalla
No elimina el registro
Caso de Uso: Gestionar Aula
Gestionar Aula Descripción 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 TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Postcondiciones: Los datos de las Aulas son almacenados en la Base de Datos y pueden utilizarse en la generación de horarios. Flujo: Añadir Aulas
No.
Actor
Sistema
1
El usuario elige la opción añadir Habilita los campos para insertar nueva asignatura en la pantalla asignaturas.
2 3 4
Elige la opción guardar
Almacena los datos
Elige la opción cerrar
Sale de la pantalla
Flujo Alternativo: Flujo: Eliminar Aulas
No. 1 2 3 4
Actor Selecciona tabla
Sistema
un registro de la Habilita la opción eliminar registro
Elige la opción eliminar
Despliega una pantalla de confirmación del proceso de eliminación
Elige la opción SI Elimina el registro seleccionado
Elige la opción cerrar 5 Flujo Alternativo: Elige la opción NO 3
Sale de la pantalla
4
No elimina el registro
Caso de Uso: Configurar Horario
Configurar Horario Descripción General: Permite configurar los datos para la generación 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 TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Postcondiciones: Los datos configurados serán utilizados en la generación de horarios. Flujo: Datos Carrera
No.
Actor
1
El usuario elige la opción datos datos Carrera Despliega una pantalla con los campos habilitados para configurar los datos del horario a generar
2 3
Selecciona la carrera par la cual se quiere generar el horario
4
Selecciona el Turno en el que se dicta la carrera.
5
Elige la opción Aceptar
Elige la opción paralelos
7 8
Selecciona la asignatura que tiene paralelo
9
Selecciona el docente para esa asignatura
11
.
Despliega una lista con todas las asignaturas correspondientes a la carrera seleccionada.
6
10
Sistema
Despliega una lista con todas las asignaturas para poder elegir cuales de ellas tienen paralelos
Elige la opción adicionar
Adiciona a la lista que contiene las asignaturas para generar horarios
Elige la opción Aulas
Despliega una lista con todas las aulas disponibles.
12
Selecciona las aulas que participaran en la generación de aulas
13
Elige la opción Parámetros del Despliega una ventana con los campos y Algoritmo la información necesaria para ejecutar el algoritmo generador de horarios
14
Introduce los parámetros para el algoritmo
15
Elige la opción generar horarios
REFERENCIA TÉCNICA
Ejecuta el algoritmo genético para la generación de horarios
INGENIERÍA DE SISTEMAS UMRPSFXCH
16 17 18 19
Elige la generados
opción
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
horarios Visualiza una ventana con las opciones para mostrar los horarios generados
Elige la opción por semestre
Visualiza una ventana con los horarios generados por semestre
Elige la opción por docente
Despliega una lista de docentes
Selecciona docente
Visualiza una ventana con los horarios del docente
20 Elige la opción cerrar Flujo Alternativo:
REFERENCIA TÉCNICA
Sale de la ventana
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Diagramas de secuencia Gestionar Usuario
: Principal
: Administrador
: V Usuarios Usuarios
: UsuariosDao
: Usuario
1: ingresar() 2. abrir()
3: registrarNuevo registrarNuevo Usuario() 4: introducirDatos() 5: validar()
6: guardarUsuario()
7: retornarProceso()
8: eliminarUsuario() 9: s eleccionarUsuario() eleccionarUsuario()
10: eliminar()
11: confirmarProceso() 12: salir()
Diagrama de Secuencia: Gestionar Usuario Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Subsistema Gestionar Kardex Datos Personales
: Encargado RRHH
: Principal
: Gestionar Personal
: Buscar
: PersonalDao
: Persona
1: abrir() 2: abrir( ) 3: Añadir Personal( P ersonal( ) 4: Verificar Datos( )
5: Añadir Personal( ) 6: ok( ) 7: Confirmar Proceso( )
8: mostrar() mostrar() 9: parametros( )
12: Mostrar Personal( )
10: Buscar Personal( )
11: retornar Personal( )
13: eliminar() 14: eliminaPersonal() 15: confirmarEliminar
16: actualiza r() r() 17: validarDatos()
18: actualizarPersonal actualizarPersonal 19: confirmarActualizar() confirmarActualizar() 20: salir()
Diagrama de Secuencia: Datos Personales Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Experiencia Laboral
: Encargado RRHH
: Kardex
1: abrir()
: Buscar
2: buscar()
: PersonalDao
: V Ex Exp er eri en en ci ci aL aL ab ab
: E xp xp er eri en en ci ci aL aL ab ab or ora lD lDa o
: E xp xp er eri en en ci ci aL aL ab ab or ora
3: buscarPersonal() 4: retornaPersonal()
5: inse rtarExpLab() rtarExpLab()
6: insertarDatos()
7: validar()
8: guardarDatos() 9: confirmarProceso() confirm arProceso() 10: eliminarExpLab() 11: seleccionar()
12: eliminar()
13: confirmarEliminar 14: actualizarExpLab actualizarExpLab 15: seleccionarExpLab
16: actualizar()
17: confirmarActualizar() confirmarActualizar() 18: salir()
Diagrama de Secuencia: Experiencia Laboral Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Situación Laboral
: Encargado RRHH
: Kardex 1. abrir()
: Bus car
2: buscar()
: Pe Pe rsona l Da o
: VS VSi t ua ci on La b
: Si Si t u aci on Labo ral Dao
: Situacionlaboral Situacionlaboral
3:buscarPersonal 4: retornaPersonal() retornaPersonal()
5: insertarSitLab()
6: insertarDatos() 7: validar()
8: guardarDatos() 9: confirmarProceso confirmarProceso 10: eliminarSitLab()
11: seleccionar() 12: eliminar() 13: confirmarEliminar()
14: actuali zarSitLab() zarSitLab()
15: seleccionarSitLab()
16: actualizar() 17: confirmarActualizar() confirmarActualizar() 18: salir()
Diagrama de Secuencia: Situación Laboral Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Subsistema Control Asistencia Gestionar Turnos.-
: Encargado RRHH
: Principal
: Adm inistrarAsistencia inistrarAsistencia
1: ingresar()
2: abrir()
: VTurnos
: Turnoss
: TurnosDao
3: abrir()
4: registrarNuevoTurno() registrarNuevoTurno() 5: llenarDatos() 6: validar()
7: guardarTurno() 8: confirmarProceso
9: eliminarTurno()
10: se leccionarTurno() leccionarTurno() 11: eliminarTurno(id Turno) 12: confirmarProceso()
13: salir()
Diagrama de Secuencia: Gestionar Turnos Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Asignar turnos
: Encargado RRHH
: Principal
: A dm dm in ini strarA si ste n ci a
: VP er erso n a l
: VTurnos
: VTurnosAsignados
: PersonalTurnosDao : Personalturnos
1: ingresar() 2: abrir() 3: abrir()
4: seleccionarPersonal() seleccionarPersonal() 5. seleccionarTurnos()
6: asignarTurnos()
9: salir()
Diagrama de Secuencia: Asignar Turnos Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
7: asignar()
8:turnosAsignados()
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Gestionar Licencias
: Encargado RRHH
: Principal
1. ingresar()
: A dm dm in in is istra rA rA si st st en en ci ci a
: V Li Li ce ce nc nc ia ia s
: LicenciaDao
: Licencia
2:abrir() 3: abrir()
4: introducirIDPersonal() 5: idPersonal() 6: verificar() 7: mostrarDatosPersonales()
8: registrarLicencia()
9: registrar()
10: mos trarLice trarLicencia() ncia()
11: seleccionarLicencia() 12: eliminarLicencia(id lic)
13: eliminar()
14: confirmarProceso()
15: salir()
Diagrama de Secuencia: Gestionar Licencias Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Registrar Huella
: Principal
: Encargado RRHH
: V Co nt ro l A si ste n ci a
: Pe rsona rsona
: P e rson a l Da o
1: ingresar()
2: abrir()
3: activarModoInsercion() activarModoInsercion()
4: capturarHuella() capturarHuella()
5: buscarFotografia() buscarFotografia() 6: registrarHF() 7. validar()
8: registrar()
9: confirmarProceso()
10: desactivarModoInsercion()
Diagrama de Secuencia: Registrar Huella Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Marcar Asistencia
: P e rsso n al
: V Co nt ro l A si ste n ci a
: Asistenci Asistenci aDao
: Asisstencia
1: regis trarHuella() trarHuella() 2. enviarDatos() 3: vali dar() dar()
4: registrarAsistencia()
5: visualizarDatosAsistencia
Diagrama de Secuencia: Marcar Asistencia Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Subsistema Construir Horarios Gestionar Asignaturas
Encargado Horarios
: Principal
: VGest i o narHorari o s
: VAsi gnaturas
: AsignaturasDao
: Asignatura
1: ingresar() 2: abrir()
3: abrir()
4: registrarNuevaAsig()
5: llenarDatos() 6: vali rdar() rdar()
7: guardarDatos 8: eliminarAsignaturas() eliminarAsignaturas()
9: seleccionarAsignatura() 10: eliminarAsignatura() 11: confirmarEliminar()
12: actualizarAsignatura() 13: modificarDatos() modificarDatos() 14. validar()
15. actualizarAsignatura() actualizarAsignatura()
16: confirm arActualizar() arActualizar()
17: salir()
Diagrama de Secuencia: Gestionar Asignaturas Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Construir horarios
: Encargado Horarios
: Principal
1. ingresar()
: VConstruirHorarios
: VParametrosHorario
: VParametrosAlgoritmo VParametrosAlgoritmo
: AlgoritmoGenetico
: VHorarios
2: abrir()
3: parametrosHorario() 4: parametrosAlgoritmo() parame trosAlgoritmo()
5: ejecutarAlgoritmo() 6: validar()
7: mostrarHorariosConstruir()
8: salir()
Diagrama de Secuencia: Construir Horarios Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Diagramas de Colaboración Gestionar Usuario
1: ingresar() ingresar()
: Adm ini strador
3: registrarNuevoUsuario() 8: elim inarUsuario() inarUsuario()
: Principal 12: salir()
2: abrir()
: VUsuario VUsuario s 7: retornarProceso() retornarProceso() 11 : conf irma rProceso() rProceso()
5: vali dar() dar()
4: introducirDatos() 9: sele ccionarDatos() ccionarDatos()
6: guardarUsuario() guardarUsuario() 10: eli minar() minar()
: Usuario
: UsuariosDao
Diagrama de Colaboración: Gestionar Usuarios Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Subsistema Gestionar kardex Datos Personales
1: abrir()
3: añadirPersonal()
2: abrir()
: Encargado RRHH
13: eliminar() 16: actualizar() actu alizar()
20: salir()
: Principal
: Gestionar Personal
8: mostrar() mostrar() 7: confirmarProceso() 12: mostrarPersonal() 9: param etros() etros()
: Buscar
4: verificarDatos() 17: validarDatos()
15: confirmarElimin ar() ar() 19: confirmarActualizar() confirmarActualizar()
6: ok() 11: retornarPersonal()
: Persona
5: añañadirPersona añañadirPersona 10: buscarPersonal() 14: eli minarPersona() minarPersona() 18: actualizarPersonal() actualizarPersonal()
Diagrama de Colaboración: Datos Personales Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
: PersonalDao
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Experiencia Laboral
1: abrir()
3: buscarPersonal()
2: buscar()
: Kardex
: Encargado RRHH
: Bu s car 7: validar() 4: retornarPer soanl()
5: insertarExpLab() insertarExpLab() 10: eli minarExpLab() minarExpLab() 14: actualizarExpLab()
18: sali r() r()
6: insertarDatos() 11: selecciona r() r() 15: seleccionarExpLab( )
: PersonalDao 8: guardarDatos() 12: eliminar() : ExperienciaLaboralDao ExperienciaLaboralDao 16: actualizar()
9: confirmarProceso() confirmarProceso() 13: confirmarElimi confirmarElimi nar() nar() 17: confirmarActualizar()
: VExperienciaLab
Diagrama de Colaboración: Experiencia Laboral Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
: ExperienciaLabora ExperienciaLabora
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Situación Laboral
1: abrir()
3: buscarPersonal()
2: buscar()
: Kardex
: Encargado RRHH
: Bus car 4: retornarPer sonal() sonal()
5: i nsertarSitLab() nsertarSitLab() 10: eli minarSitLab() minarSitLab() 14: actualizarSitLab()
7: validar()
18: salir()
6: insertarDatos() 11: selecciona r() r() 15: seleccionarSitLab()
: VSituacionLab
: Pe rsonalDao rsonalDao
: SituacionLaboralDao SituacionLaboralDao
8: guardarDatos() 12: elim inar() inar() 16: actualizar()
9: confirmarProceso() confirmarProceso() 13: confirmarEliminar() 17: confirmarActualizar()
Diagrama de Colaboración: Situación Laboral Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
: Situacionlaboral
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Subsistema Control de Asistencia Gestionar Turnos
2: abrir()
1: ingresar()
: Encargado RRHH
4: registrarNuevoTurno()
: Principal
: GestionarAsistencia
9: eliminarTurno()
13: salir()
5: llenarDatos() llenarDatos()
8: confirmarProceso() 12: confirmarEliminar()
3: abrir()
: VTurnos
10: seleccionarTurno() seleccionarTurno()
6: validar()
7: guardarTurno() guardarTurno() : Turnoss
11: eliminarTurno(idTurno)
Diagrama de Colaboración: Gestionar Turnos Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
: TurnosDao
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Asignar Turnos
2: abrir()
1: ingresar()
: Principal
: Encargado RRHH
9: sali r() r()
4: seleccion arPersonal() arPersonal()
: Ge stion arAsistencia arAsistencia
3: abri r() r()
5: selecci onarTurnos() onarTurnos()
: VTurnosAsignados
: VTurnos
: VPe rsonal rsonal
6: asignarTurnos() asignarTurnos() 8: turnosAsignados()
7: asignar() : Personalturnos
Diagrama de Colaboración: Asignar Turnos Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
: P ersonalT ersonalT urnosDao urnosDao
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Gestionar Licencias
2: abrir()
1: in gresar() gresar()
: Principal
: Encargado RRHH
: Gestiona rAsistencia rAsistencia
4: intrudicirIDPersonal() 11: seleccionarLicencia() seleccionarLicencia() 6: verificar()
15: salir()
3: abrir() 5: idPersonal() 8: registrarLicencia() 12: eliminarLicencia(id lic)
7: mostrarDatosPersonales() : VLicencias
: LicenciaDao
9: registrar() registrar() 13: eliminarLic() 10: mostrarLicencia() mostrarLicencia() 14: confirmarProceso()
: Licencia
Diagrama de Colaboración: Gestionar Licencias Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Registrar Huella
1: i ngresar() ngresar()
: Principal
: Encargado RRHH
3: activarModoInsercion() 4: capturarHuella( ) 5: buscarFotografia( ) 10: desactivarModoInsercion( )
2: abrir()
7: vali dar() dar()
6: registrarHF()
: VControlAsistencia
: PersonalDao
8: registrar()
9: con firmarProceso() firmarProceso()
: Pe rsona rsona
Diagrama de Colaboración: Registrar Huella Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Marcar Asistencia 3: validar()
1 : re gi st ra rHu e l l a ()
2 : en i va rDa to s()
: VControlAsistencia
: Perssonal
: A sistenciaDao
5: visual visual izarDatosAs izarDatosAsistencia() istencia() 4: registrarAsistencia()
: Asisstencia
Diagrama de Colaboración: Marcar Asistencia Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Subsistema Construir Horarios Gestionar Asignaturas
2: abrir()
1: ingresar()
: Principal
: Encargado Horarios
4: registrarNuevaAs registrarNuevaAsig ig 8: eliminarAsignaturas() 12: actualizarAsignatura()
: VGestionarHorarios
17: salir() 3: abrir()
: VAsignaturas
6: validar() 14: val idar() idar() 5: llenarDatos() 9: seleccionarAsignatura() 13: modificarDatos()
11: confirmarElim confirmarElim inar() inar() 16: confirmarActualizar( ) 7: guardarDatos() 10: elim inarAsignatura( inarAsignatura()) 15: actualizarAsignaturas( )
: Asignatura
: A signaturasDao signaturasDao
Diagrama de Colaboración: Gestionar Asignaturas Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Construir Horarios 2: abrir()
1: ingresar()
: Principal
: Encargado Horarios
: VConstruirHorar VConstruirHorario io s
3: parametrosHorario() parametrosHorario()
4: parametrosAlgoritmo()
: VParametrosHorario VParametrosHorario
8: sali r() r()
6: validar()
7: mostrarHorariosConstruidos() 5: ejecutarAlgoritmo() ejecutarAlgoritmo()
: VParametrosAlgoritmo
: AlgoritmoGenetico
Diagrama de Colaboración: Construir Horarios Fuente: [Elaboración propia]
REFERENCIA TÉCNICA
: VHorarios
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Proceso de pruebas Pruebas de Unidad Prueba Ingresar al Sistema
Datos de prueba
Titulo: Ingresar al Sistema Tipo de prueba: Prueba de unidad Técnica de prueba: Caja Blanca Responsable: Proyectista la Verificar el ingreso al sistema con usuarios registrados
Objetivo de prueba Nombre de usuario y contraseña Datos de entrada Procedimiento de prueba: Introducir el nombre de usuario en el campo Usuario Introducir la contraseña en el campo contraseña Clic en el botón aceptar Ninguno. Problemas
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Prueba Gestionar Kardex Titulo: Kardex de Personal Tipo de prueba: Prueba de unidad Datos de prueba Técnica de prueba: Caja Blanca Responsable: Proyectista Objetivo de la Comprobar el funcionamiento y desempeño de la gestión de kardex de personal. prueba Datos personales del empleado Datos de entrada Procedimiento de prueba: - Ingresar nuevo personal: Elegir la opción Añadir personal Ingresar todos los datos en los campos del formulario Elegir la opción guardar - Actualizar personal El personal debe estar seleccionado Clic en el botón Editar Modificar los datos necesarios Clic en el botón Guardar. - Eliminar personal El personal debe estar seleccionado Clic en el botón Eliminar El campo C.I. de personal y email no están validados. Problemas Los campos de tipo Date no se guardan en la base de datos
Solución
Implementar un método de validación 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 Técnica de prueba: Caja Blanca Responsable: Proyectista Objetivo de la Comprobar el funcionamiento del módulo control de asistencia del personal. prueba Huella Digital del personal Datos de entrada Procedimiento de prueba: Imprimir huella digital: Problemas
REFERENCIA TÉCNICA
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
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
3. No controla el tiempo de atraso y abandonos
Solución
Conclusiones
1. Revisar la conexión a la la base de datos a través de la Unidad de Persistencia. 2. Implementar un módulo que permita tratar fechas y horas 3. El entity manager que llama a la unidad de persistencia y realize la conexión a la base de datos es un método estático y el método que lo invoca también debe ser estático
Prueba Gestionar Turnos Titulo: Gestionar Turnos Tipo de prueba: Prueba de unidad Datos de prueba Técnica de prueba: Caja Blanca Responsable: Proyectista Objetivo de la Comprobar el funcionamiento de la gestión de turnos prueba Datos relacionados a los turnos Datos de entrada Procedimiento de prueba: - Añadir nuevo turno: Elegir la opción Añadir turnos Ingresar todos los datos en los campos del formulario Elegir la opción guardar - Eliminar turno El turno debe estar seleccionado Clic en el botón Eliminar Los campos que requieren formato de hora no están Problemas validados y al procesar no guarda en la base de datos. Implementar un método de validación para campos Time Solución
Prueba Gestionar Asignar Turnos Titulo: Asignar Turnos Tipo de prueba: Prueba de unidad Datos de prueba Técnica de prueba: Caja Blanca Responsable: Proyectista Objetivo de la Comprobar el funcionamiento de la asignación 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 TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Clic en el turno a asignar Clic en el botón Asignar turno - Ver turnos asignados a personal Clic en la pestaña turnos asignados al personal Ninguna Problemas Ninguna Solución
Prueba Gestión de Licencias Titulo: Gestión de Licencias Tipo de prueba: Prueba de unidad Datos de prueba Técnica de prueba: Caja Blanca Responsable: Proyectista Objetivo de la Comprobar el funcionamiento de la Gestión de Licencias prueba Según criterio de búsqueda (Ci o Apellido) Datos de entrada Procedimiento de prueba: - Buscar personal Clic en criterio de busca para seleccionar personal Introducir dato de búsqueda (CI o Apellido paterno) - Añadir permiso Clic en el botón nuevo Llenar datos en todos los campos del formulario Clic en el botón guardar permiso - Eliminar permiso Clic en el permiso a eliminar Clic en el botón eliminar permiso - Añadir licencia Clic en el botón nuevo Llenar datos en todos los campos del formulario Clic en el botón guardar licencia - Eliminar licencia Clic en la licencia a eliminar Clic en el botón eliminar licencia
Problemas Solución
REFERENCIA TÉCNICA
No verifica que el personal seleccionado tenga licencia y permiso la misma fecha Revisar código y restringir la asignación de permisos y licencias en la misma fecha
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Prueba Generar Horarios Titulo: Generar Horarios Tipo de prueba: Prueba de unidad Datos de prueba Técnica de prueba: Caja Blanca Responsable: Proyectista Objetivo de la Comprobar el funcionamiento de la Construcción de horarios prueba Datos para la construcción de horarios Datos de entrada Procedimiento de prueba: - Datos Generales Seleccionar carrera para la cual se quiere construir el horario Seleccionar aulas que participarán en la construcción del horario Seleccionar los turnos que requiere el horario para su construcción - Datos parámetros Algoritmos Genéticos Introducir tamaño de población Introducir número de generaciones Introducir probabilidad de cruce Introducir probabilidad de mutación - Construir horario Clic en el botón Generar Horarios - Ajustar horario construido Seleccionar asignatura de la lista de asignaturas en conflicto Seleccionar aula, día y periodo disponible.
Problemas
Error al construir los horarios por que le falta parámetros o cuando no es posible construir el horario debido a la falta de aulas o el número de asignaturas con carga horaria es mayor que el número de periodos seleccionados
Solución
Implementar un método que permita verificar los datos para la construcción de horarios y los parámetros del algoritmo genético.
Pruebas de Integración Pruebas encargadas de testear el funcionamiento y la estructura de los módulos o subsistemas en su conjunto.
Prueba Gestión de usuarios Datos de prueba
REFERENCIA TÉCNICA
Titulo: Módulo de gestión de usuarios Tipo de prueba: Prueba de integración Técnica de prueba: Caja Blanca y de caja negra
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Responsable: Proyectista Objetivo de la Verificar si la creación de usuarios, y la asignación de tareas a los usuarios en función a sus niveles de acceso es correcta, prueba comprobándose tal hecho iniciando sesiones con diferentes cuentas de usuarios Nombre de usuario y contraseña Datos de entrada Procedimiento de prueba: - Ingresar Nombre de Usuario - Ingresar Contraseña - Verificar que el menú asignado corresponda a las tareas asignados a dicho usuario. Problemas Conclusión
Ningún problema identificado Al haberse hecho las revisiones y correcciones necesarias al código durante las pruebas de unidad no se tuvieron inconvenientes en esta etapa de pruebas.
Prueba de Integración: Gestión Kardex de Personal Titulo: Módulo Gestión Kardex de Personal Tipo de prueba: Prueba de integración Datos de prueba Técnica 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 relación 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 Situación Laboral Problemas Conclusión
Ningún problema identificado Al haberse hecho las revisiones y correcciones necesarias al código durante las pruebas de unidad no se tuvieron inconvenientes en esta etapa de pruebas.
Prueba de Integración: Construir Horarios Titulo: Módulo Construir Horarios Tipo de prueba: Prueba de integración Datos de prueba Técnica de prueba: Caja Blanca y de caja negra Responsable: Proyectista Objetivo de la Verificar que todas las asignaturas que participarán en la
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
prueba
construcción de horarios estén presentes en el Horario Construido Datos para la construcción de los Horarios (Asignaturas, Datos de entrada periodos, aulas Procedimiento de prueba: - Seleccionar Carrera para construir el horario. - Seleccionar Aulas que participarán en el horario - Elegir los períodos disponibles para construir el horario - Introducir los parámetros del algoritmo genético - Clic en Construir horarios
Problemas Solución
REFERENCIA TÉCNICA
No todas las asignaturas aparecen en el horario construido Error cuando el número de aulas por el numero de periodos es menos al número de asignaturas Revisar el código del Algoritmo Genético Implementar un método para revisar los parámetros de ejecución del algoritmo genético
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
DICCIONARIO DE DATOS Diccionario de Datos Un diccionario de datos es una descripción 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 descripción
REFERENCIA TÉCNICA
Tipo de Dato String NOT NULL String String
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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
REFERENCIA TÉCNICA
Tipo de Dato Integer NOT NULL String Date Date String
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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 categoría 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
REFERENCIA TÉCNICA
Tipo de Dato Integer NOT NULL String
INGENIERÍA DE SISTEMAS UMRPSFXCH
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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
REFERENCIA TÉCNICA
Tipo de Dato Integer NOT NULL String
INGENIERÍA DE SISTEMAS UMRPSFXCH
horarioCreado carrera docente nivel
REFERENCIA TÉCNICA
SISTEMA DE CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Blob String String String