control asistencia y construccion horarios
TRANSCRIPT
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 Belianskaya
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 ha
llenado de felicidad mi vida, 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 Sucre”.
Para la construcción de horarios se 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 relacionada al control de asistencia del personal y la posibilidad de
generar alternativas de horarios académicos.
ÍNDICE DE CONTENIDO
CAPITULO ICAPITULO 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................................................................................................- 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 Humanos....................................................................................- 16 -3.1.3. Asignación de Horarios...............................................................................................- 16 -3.2. Referencia a Proyectos 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 Modernas...................................................................................- 28 -3.3.9.1. Algoritmos Genéticos..............................................................................................- 29 -3.3.9.2. Terminología de 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 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...........................................................................................................- 42 -3.3.12.2 MySQL....................................................................................................................- 43 -3.3.14. JPA: Java Persistence API........................................................................................- 44 -3.3.15. Implementacion JPA.................................................................................................- 45 -3.3.15.1.Toplink Essentials...................................................................................................- 45 -DESARROLLO DEL PROYECTO.....................................................................................- 46 -4.1. Proceso de Requerimientos............................................................................................- 46 -4.1.2. Obtención de Requerimientos.....................................................................................- 46 -4.1.4. Requerimientos no Funcionales..................................................................................- 47 -4.1.5. Requerimientos del Usuario........................................................................................- 48 -4.1.6. Identificación de actores.............................................................................................- 48 -4.1.7. Diagramas de Casos de Uso........................................................................................- 49 -4.1.8. Personas involucradas en el desarrollo y operación....................................................- 52 -4.1.9. Interfaces que requieren los usuarios.........................................................................- 52 -4.1.10. Correspondencia entre elementos funcionales e interfaces.......................................- 53 -4.2. Proceso de 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
Universidad Pedagógica “Mariscal Sucre”...............................................................- 69 -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 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 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.............................................................................................- 100 -4.6.1. Plan de desarrollo 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..........................................................- 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 del proyecto)....................................- 101 -Tabla 5.1. Especificación técnica de hardware (servidor)..................................................- 114 -Tabla 5.2. Especificación técnica de 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 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 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 entre los cursos a impartir y los espacios disponibles..........- 35 -Figura 3.11 Esquema Modelo Vista Controlador.................................................................- 39 -Figura 4.1. Diagrama de Casos de Uso Principal..................................................................- 49 -Figura 4.2. Diagrama de Casos de Uso Gestionar Kardex de Personal................................- 50 -Figura 4.3. Diagrama de Casos de Uso Gestionar Asistencia...............................................- 50 -Figura 4.4. Diagrama de Casos de Uso Controlar Asistencia...............................................- 51 -Figura 4.5. Diagrama de Casos de Uso Generar Horarios....................................................- 51 -Figura 4.6. Diagrama de Paquetes de SISCAACH...............................................................- 58 -Figura 4.7. Diagrama de Clases............................................................................................- 60 -Figura 4.8. Diagrama de Secuencia: Datos Personales.........................................................- 65 -Figura 4.9. Diagrama de Colaboración: Datos Personales....................................................- 66 -Figura 4.10. Diagrama Entidad Relació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 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 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 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 de personal..........................................................................................- 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 Datos Horario.........................................................................- 113 -Figura 5.12. Horarios Construidos......................................................................................- 113 -
CAPITULO I
INTRODUCCIÓN Y OBJETIVOS
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 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 SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 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 SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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.
Según una investigación hecha en la Universidad de Palermo “Las versiones de software
comercial, libre y/o gratuito que existen en el mercado, generan horarios de clase pero no
asignan aulas o algunas soportan visualmente la tarea de asignar aulas manualmente pero no
suelen implementar inteligencia alguna ni optimizan la 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 SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 Pedagógica Nacional “Mariscal Sucre” es la
dificultad de generar horarios, asignar aulas y controlar la asistencia al personal docente por
medio de un proceso manual.
1.3. 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 SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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
NETBEANS 6.0.1
PARADIGMA O. O. HERRAMIENTAS
RATIONAL ROSE
ABORDAJE DE SOLUCIÓN DEL PROBLEMA
SISTEMA CONTROL DE ASISTENCIA Y APOYO A LA CONSTRUCCION DE
HORARIOS
PROCESO UNIFICADO
(Programación)JAVA
ITERATIVO INCREMENTAL
(Modelado)UML
WINDOWS XP
MAPEO OBJETO RELACIONAL
MY SQL 5.1.31
AL ELABORAR
TÉCNICAS METAHEURÍSTIC
AS
JPA
SE ELIGE
SE EMPLEA
TECNICAS DE BIOMETRIA
SE EMPLEA
CICLO DE VIDAMETODOLOGÍA
LENGUAJES
S. O. ENT. DE PROG
HERR. CASE
BD
MICROSOFT WORD
DOC.
CON
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Figura 1.1. Abordaje de solución del problemaFuente : Elaboración propia
6CAPITULO I: Abordaje de solución del problema
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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.
7CAPITULO I: Objetivos del proyecto
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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: Justificación del Proyecto
CAPITULO II
MARCO CONTEXTUAL
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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:
10CAPITULO II: Análisis de la Situación Actual
Construcción de horarios por Directores de Carrera y
Coordinador de Nivel
Inicio
Fin
Horarios aceptablesaceptablesRevisión y aprobación de los horarios por Dirección
Académica
Horarios Aprobados
Imprimir Horarios
si
no
si
no
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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:
Figura 2.1. Proceso de construcción de horarios en la UPNMSFuente: Elaboración propia fundamentada en los procedimientos de la Universidad
Pedagógica
11CAPITULO II: Análisis de la Situación Actual
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.
-
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
2.1.2. Control de Asistencia al Personal Docente
El control de asistencia 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).
12CAPITULO III Análisis del Dominio del Problema
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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, buscar su turno
asignado para ese día, lo que muchas veces genera colas de espera y esto pérdida de tiempo,
13CAPITULO III Análisis del Dominio del Problema
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 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.
14CAPITULO III Análisis del Dominio del Problema
CAPITULO III
MARCO TEÓRICO
CONCEPTUAL
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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]
15CAPITULO II: Marco Teórico del Dominio del Problema
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 en toda 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 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
16CAPITULO II Referencia a Proyectos Similares
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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
17CAPITULO II Referencia a Proyectos Similares
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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”.
18CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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.
19CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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
Ojo – IrisOjo – Retina
Huellas dactilares
Geometría de la Mano
Escritura Firma
Voz
Fiabilidad Muy alta Muy alta Alta Alta Alta Alta
Facilidad de uso Media Baja Alta Alta Alta Alta
Prevención de ataques Muy alta Muy alta Alta Alta Media Media
Aceptación Media Media Alta Alta Muy alta Alta
Estabilidad Alta Alta Alta Media Media Media
Identificación y Autenticación
Ambas Ambas Ambas Autenticación AmbasAutentica
ción
Estándares- -
ANSI/NIST
- - SVAPI
Interferencias Gafas Irritaciones
Suciedad, heridas,
Asperezas
Artritis, Reumatismo
….
Firmas fáciles o
cambiantes
Ruido, resfriados
…..
Utilización Instalaciones
nucleares, servicios médicos, centros
penitenciarios
Instalaciones
nucleares, servicios médicos, centros
penitenciarios
Policía, Industria, Control
de personal
General Industrial
Accesos remotos
en bancos o bases de
datos
Fuente: Revista Empresarial [26]
20CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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- 120Fuente [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
21CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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
Lector de Huella Digital Nitgen Mod. Hamster 1
22CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Figura 3.2. Lector de huella HamsterFuente [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 U.are.U 4000B Reader USB Fingerprint
Reader [29]
Figura 3.3. Lector de huella DigitalPersonaFuente: [28]
23CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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, 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
24CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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.
25CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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.
26CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 School y university timetabling.Características High School TT University TTProgramación Por clases Por estudiante
Posibilidad de Escoger Pocas EleccionesMallas bien estructuradas
Muchas EleccionesMallas débilmente
estructuradasDisponibilidad
ProfesorAjustado
(Posee gran carga)Flexible
(Posee carga liviana)Salas Pocas salas
Mismo TamañoCentralizadas
Muchas salasVariedad de tamaños
DescentralizadasCriterio de
OptimizaciónSatisfacción deRestricciones
Minimización de restriccionestrasngredidas
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).
27CAPITULO II: Marco Teórico de Ingeniería
GUIADAS NO GUIADAS
ALGORITMOS GENÉTICOS
TÉCNICAS DE BÚSQUEDA
ALEATORIAS
BÚSQUEDA TABÚ
ESTRATEGIAS EVOLUTIVAS
RECOCIDO SIMULADO
PROGRAMACIÓN GENÉTICA
REDES NEURONALES
ALGORITMOS EVOLUTIVOS
PROGRAMACIÓN EVOLUTIVA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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
Figura 3.4. Técnicas de BúsquedaFuente: Elaboración Propia
28CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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]
29CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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ónFuente:[31]
30CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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
fi
∑i=1
n
fi
4. Se cruzan aleatoriamente dos individuos para crear una descendencia, que será
evaluado asignándole puntaje.
Figura 3.6. Cruce de SolucionesFuente: [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 SolucionesFuente: [31]
31CAPITULO II: Marco Teórico de Ingeniería
Mejor Peor
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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ónFuente: [31]
Esquema Básico de un algoritmo Genético [30]
Algoritmo genéticoprincipio
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.
32CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 clasesClave Horario de Clase
12...
12
7:00 – 8:008: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 geneAM5A 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.
33CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Figura 3.9. Representación no binaria de un cromosomaFuente: [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, C2, C3, C4,......., Cm}, donde cada elemento de
C requiere que se le asigne un lugar y un tiempo.
b) Las aulas con que cuenta la Universidad pueden ser vistas como un conjunto de
casillas que 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.
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 {E0,, ...,
34CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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 disponiblesDeterminada por la función Fio para algún io {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
cual se usa para crear un nuevo cruce y la historia se repite. El proceso termina hasta que por
35CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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. i {1,…,m}
Cj = cantidad de alumnos en la asignatura j. j {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 Pj períodos semanales
36CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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
Función Objetivo Global (fog)
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.
Criterio de Optimización
Función Objetivo
37CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Max Z = W
Donde W es una constante cualquiera
Conclusión
Para resolver el problema de Timetabling en la Universidad Pedagógica 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.
Modelo: datos y reglas de negocio.
Vista: muestra la información del modelo al usuario.
38CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Controlador: gestiona las entradas del usuario
Figura 3.11 Esquema Modelo Vista ControladorFuente: [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).
o 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).
39CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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 DesarrolloCaracterísticas Visual Studio 2008 Netbeans 6.0 JBuilder 2008
Lenguajes Soportados C/C++,C#,VB.Net, XAML, HTML/CSS, javascript, LINQ, ASP.net, XML/XSLT
C/C++, java, Ruby, PHP, Javascript, HTML/CSS,ISP, JavaFX, XSL, WSDL, UML.
Java
Plataforma Windows y las diversas, versiones de Windows
Windows, Linux, Unix, Solaris (sparc, X86/X64) Mac OX(Intel Power)
Windows y las diversas versiones de Windows.
Autocompletar Código Autocompletado rápido, pero menos opciones a la vez
Autocompletado de código pero muestra todos los métodos y variables al mismo tiempo.
Auto complementado rápido y uso de shortcuts.
Editor de Código Fuente
La edición es simple y fácil. Cambio entre diseñador y el código de pantalla es doble clic en el control
Edición de código es simple y fácil, proporciona diferentes eventos para cada componente, y puede ser editable para cada evento específico.
Edición de código es simple y fácil, proporciona diferentes eventos para cada componente.
GUI y herramientas RAD
Winforms, ASP form designer, es grande, SZML diseñador visual, adeministrador de base de datos, XML VB-enlaces, administrador de vista UAC, que es la mejora en VS2008.
Netbeans Matisse, componentes FSF, base de datos de aplicación, Beans binding, excelente herramienta de diseño UML, mobile Designer, BPEL algunas de las herramientas que no se encuentran en VS2008
desconocido
Compilador, loader, debuger
Compilación en paralelo los sistemas multinúcleo, biblioteca de plantas estándar (STL) para C++, Framework NET, Web service de WCF acogida basada en aplicaciones
Más reciente lexer hace la compilación en tiempo de ejecución más rápido, Javascript depurador con el apoyo y Phobos JMaki.
Revisa la sintaxis en tiempo real, sugiriendo casting de datos, la compilación es en paralelo.
La unidad de pruebs han mejorado ligeramente,
CVS y Subversión están integrados.
Tiene una unidad de Testeo de Código fuente,
40CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Pruebas y Maintainance sistema de control de código fuente se añade al equipo de desarrollo
Fuente: [35]
NetBeans
La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un
conjunto de componentes de software llamados 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
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.
41CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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.
3. Es de 2 a 3 veces más lento que MySQL.
3.3.12.2 MySQL
42CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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
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.
43CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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 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]
3.3.15. Implementacion JPA.
3.3.15.1.Toplink Essentials
44CAPITULO II: Marco Teórico de Ingeniería
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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,
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.
45CAPITULO II: Marco Teórico de Ingeniería
CAPITULO IV
DESARROLLO DEL
PROYECTO
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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
46CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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.
- 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.
47CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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.
48CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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
Figura 4.1. Diagrama de Casos de Uso PrincipalFuente: Elaboración Propia
49CAPITULO IV: Proceso de Requerimientos
Encargado Horarios
Gestionar Kardex Personal
Gestionar Asistencia
Construir Horarios
Encargado RRHH
personal
Registrar Huella
Control Asistencia
Administrador
Gestión de Usuarios
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Caso de Uso: Gestionar Kardex de Personal
Registrar Experiencia Laboral
Registrar Situacion Laboral
Registrar Prof esiones
Consultas
Encargado RRHH
Reportes
Administrador
Registrar Personal
<<include>>
<<include>>
Buscar Personal
<<include>>
Figura 4.2. Diagrama de Casos de Uso Gestionar Kardex de PersonalFuente: Elaboración Propia
Caso de Uso Gestionar Asistencia
Calendario Academico
Consultas
Reportes
Permisos
Administrar Huellas Pin Buscar Personal
<<include>>
Asignar Turnos
Encargado RRHH
Registrar Turnos
Figura 4.3. Diagrama de Casos de Uso Gestionar AsistenciaFuente: Elaboración Propia
50CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Caso de Uso Controlar Asistencia
Personal
Marcar Asistencia
Visualizar Datos personal
Capturar Datos Huella Digital
<<include>>
<<extend>>
Registrar Huella
<<include>>
Encargado RRHH
Figura 4.4. Diagrama de Casos de Uso Controlar AsistenciaFuente: Elaboración Propia
Caso de Uso Generar Horarios
Registrar Carreras
Asignar Docentes a Asignaturas
Registrar Asignaturas
Introducir Parametrospara Horarios Generar Horarios
Reportes
Exportar Horarios
Encargado Horarios
Consultas
Figura 4.5. Diagrama de Casos de Uso Generar HorariosFuente: Elaboración Propia
51CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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.
52CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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
53CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
- Ventana Registrar Profesiones
- Ventana Consultas
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
54CAPITULO IV: Proceso de Requerimientos
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 identificadosRiesgo Prevención Mitigación
El cliente no puede participar
en las entrevistas que se
requieren realizar para la
captura de requerimientos
Explicar al cliente la importancia de
su participación en la realización del
proyecto y proyectar reuniones para
la realización de las entrevistas
Buscar al cliente y concertar
reuniones explicándole la
urgencia de su participación.
Cambio de requerimientos en la
etapa de implementación o
pruebas
Establecer bien los requerimientos
revisarlos y validarlos con el objeto
de evitar la ocurrencia de este
riesgo.
Postergar la entrega hasta
introducir los cambios
necesarios.
El cliente no puede participar
en las revisiones.
Establecer fechas de manera
consensual y clara con el cliente.
Explicar al cliente la
necesidad de su participación
en las revisiones y los
efectos negativos que trae la
situación opuesta.
Las herramientas determinadas
para el desarrollo del proyecto
no satisfacen todas las
necesidades del proceso de
producción.
Seleccionar cuidadosamente las
herramientas a utilizar en el
desarrollo del proyecto considerando
sus prestaciones en relación a las
necesidades de uso en el proyecto.
Buscar alternativas que sin
significar gastos no previstos
tengan la funcionalidad
requerida.
Cambios de requisitos que
precisan modificaciones en el
diseño y en la programación.
Establecer cuidadosamente los
requerimientos.
Posponer la entrega
El tamaño del sistema no ha
sido bien determinado.
Establecer bien la funcionalidad del
sistema para poder tener una idea
clara del tamaño del producto y su
alcance.
Posponer la entrega como
último recurso si el apresurar
el proceso de programación
no abastece para mitigar los
efectos de riesgo.
CAPITULO IV: Proceso de Análisis y Diseño 55
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
La complejidad del producto no
ha sido correctamente
evaluada.
Establecer la complejidad del
producto desde la captura de
requerimientos.
Reevaluar los requerimientos
e implementar los cambios
necesarios apresurando el
proceso de desarrollo.
El cliente no tiene una idea
clara de lo que precisa.
Consensuar entrevistas continuas
con el cliente con el fin de aclarar
sus ideas.
Presentar propuestas que de
alguna manera ayuden al
cliente a precisar sus
requerimientos.
No se comprende las
necesidades del cliente.
Interactuar con el cliente con el
objeto de tener bien claras las
necesidades del mismo.
Aumentar el tiempo
destinado a la captura de
requerimientos.
Los clientes no comprenden el
impacto de los cambios en los
requerimientos.
Explicar a los clientes al inicio del
proyecto sobre los inconvenientes
que puede traer el hecho de incluir
cambios en los requerimientos
Aclarar los problemas de
cambiar los requerimientos.
El tiempo requerido para el
proceso de desarrollo e
implementación está
subestimado
Establecer un tiempo extra dentro de
la planificación.
Posponer la fecha de entrega.
Que el producto no satisfaga
las necesidades de los usuarios.
Tomar en cuenta la participación del
cliente en la captura de
requerimientos y establecer
revisiones constantes para ver su
conformidad.
Realizar las modificaciones
necesarias.
Que el producto presente
incompatibilidad con el
entorno.
Tener presente la compatibilidad
futura del proyecto a fin de que se
adapte al entorno en el cual será
puesto en marcha.
Adecuar el sistema
realizando los cambios
necesarios para subsanar
dicha incompatibilidad.
No se cuenta con los
conocimientos necesarios para
enfrentar la complejidad de los
requisitos.
Adentrarse lo necesario en las
necesidades del proyecto a fin de
tener clara la complejidad del
sistema.
Revisar el modelo de
requerimientos e información
necesaria.
No se está disponible en
momentos críticos.
Prever la disponibilidad de tiempo y
el tiempo necesario para el
desarrollo.
Adecuar las actividades a las
necesidades del proyecto.
El tamaño del proyecto es
mucho mayor al tamaño
Determinar la funcionalidad del
sistema al inicio del desarrollo.
Incrementar el tiempo de
desarrollo en la medida de lo
CAPITULO IV: Proceso de Análisis y Diseño 56
Sistema de Control de Asistencia y Generación de Horarios
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
previsto. posible.
No se conoce el uso de las
herramientas necesarias para el
desarrollo del proyecto.
Escoger herramientas cuyo manejo
sea conocido.
Establecer un poco más de
tiempo para familiarizarse
con el uso de las
herramientas a usar o buscar
herramientas alternativas
cuyo manejo si sea conocido.
Fuente: elaboración propia4.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.
Figura 4.6. Diagrama de Paquetes de SISCAACHFuente: Elaboración propia
CAPITULO IV: Proceso de Análisis y Diseño 57
kardex de Personal
Entidades
Control DAO
Interfaz del Sistema
Generar Horarios
Control de AsistenciaUtilidades
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 58
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Diagrama de Clases.
Diagrama General de Clases
CAPITULO IV: Proceso de Análisis y Diseño 59
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Turnosid_turno : intdia : Stringnombre_turno : Stringhora_entrada : timehora_salida : timeentrada_min : timeentrada_max : timesal ida_min : timesal ida_max : time
guardar()eliminar()editar()...()
Calendario_Laboral
id_cl : intfecha : DateDetalle : String
guardar()eliminar()editar()
Carrerascod_carrera : Stringnombre_carrera : StringNivel
guardar()eliminar()editar()
Profesionescod_prof : intnombre_prof : String
guardar()eliminar()editar()
ExperienciaLaboralidel : intlugarTrabajo : Stringinstitucion : Stringcargo : Stringfecha_ingreso : Datefecha_retiro : Dateci : String
guardar()eliminar()editar().....()
SituacionLaboralidsl : intci : Stringcargo : stringdesde : Datehasta : DatecodEmpleado : Stringitem : Stringobservaciones : StringtipoEmpleado : StringsituacionActual : String
guardar()eliminar()editar()...()
TurnosPersonal
ci : Stringid_turno : intdesde : DateHasta : Dateentrada : timesalida : time
consultar()
1
*
1
*
Asistenciaid_asis : Intci : Stringfecha : Datenombre_turno : Stringentro : Timesal io : Timeatraso : Timeobservaciones : Stringhoras_trab : Time
consultar()
1
1
1
1
Asignaturascod_asignatura : Stringnombre_asignatura : StringSemestre : StringCarga_Horaria : intcod_carrera : String
guardar()eliminar()editar()....()
1* 1*
Asignaturas_Docenteid_asignDocen : intcarrera : Carrerascod_asignatura : Stringparalelo : charci : StringnombrePersonal : String
insertar()eliminar()editar()....()
1
*
1
*
Permisosid_p : intci_personal : Stringfecha : Datedia : Stringturno : Turnos
insertar)()eliminar()
Personalci : StringaPaterno : StringaMaterno : Stringnombres : Stringsexo : charfechaNacimiento : DatelugarNacimiento : StrignnivelEstudio : stringaniosServicio : stringrda : StrignnumHijos : Stringdireccion : Stringtelefono : Stringfotografia : BlobtipoMarca : charhuel la : Blobpin : Integerprofesion : Profesiones
guardar()eliminar()consultar()editar().....()
1
1
1
1
1..*1
1..*1
1
1
1
1*
1*
1
*
1
*
1
*
1
*
1
*
1
Licenciasid_licencia : intci : Stringdesde : Timehasta : Timemotivo : String
Insertar()eliminar()
*
11
*
1
*
Aulasid_aula : Stringbloque : StringDescripcion : String
insertar()eliminar()
Figura 4.7. Diagrama de ClasesFuente: Elaboración Propia
Descripción de las clases con mayor relevancia
Nombre de Clase: Personal
CAPITULO IV: Proceso de Análisis y Diseño 60
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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
- 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.
CAPITULO IV: Proceso de Análisis y Diseño 61
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
- 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.
Nombre de Clase: Asistencia
CAPITULO IV: Proceso de Análisis y Diseño 62
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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
semester String
CAPITULO IV: Proceso de Análisis y Diseño 63
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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 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.
4.2.4.1. Diagrama de secuencia
CAPITULO IV: Proceso de Análisis y Diseño 64
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Subsistema Gestionar Kardex
Datos Personales
Figura 4.8. Diagrama de Secuencia: Datos PersonalesFuente: [Elaboración propia]
4.2.4.2. Diagrama de colaboración
CAPITULO IV: Proceso de Análisis y Diseño 65
: Encargado RRHH : Principal : Gestionar Personal : Buscar : PersonalDao : Persona
1: abri r()2: abri r( )
3: Añadir Personal( )
4: Verificar Datos( )
5: Añadir Personal( )
6: ok( )7: Confi rmar Proceso( )
8: mostrar()9: parametros( )
10: Buscar Personal( )
11: retornar Personal( )12: Mostrar Personal( )
13: eliminar()14: eliminaPersonal()
15: confirmarEliminar
16: actualizar()
17: validarDatos()
18: actualizarPersonal
19: confirmarActual izar()
20: salir()
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Subsistema Gestionar kardex
Datos Personales
: Encargado RRHH
: Principal : Gestionar Personal
: Buscar
: PersonalDao
: Persona
4: veri ficarDatos()17: validarDatos()
1: abrir() 2: abrir()
20: salir()
8: mostrar()
3: añadirPersonal()13: eliminar()
16: actualizar()
7: confirmarProceso()12: mostrarPersonal()
9: parametros()
5: añañadirPersona10: buscarPersonal()
14: eliminarPersona()18: actualizarPersonal()
6: ok()11: retornarPersonal()
15: confirmarEliminar()19: confirmarActual izar()
Figura 4.9. Diagrama de Colaboración: Datos PersonalesFuente: [Elaboración propia]
4.2.5. Mapeamiento para la implementación del Sistema
CAPITULO IV: Proceso de Análisis y Diseño 66
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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.
Figura 4.10. Diagrama Entidad RelaciónFuente: elaboración Propia
4.2.5.2. Diseño de la Base de Datos
CAPITULO IV: Proceso de Análisis y Diseño 67
Personal_licencias
Personal
Experiencia_Laboral
Situacion_Laboral
Profesiones
Turnos
Personal_turnos
Asistencia
Permisos
Licencias
Asignaturas
Carreras
1
11
m
11
m m
1
1
m
1
1
m
m
m
1m
m
Personal_permisos
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
La base de datos que registra la información general tiene la siguiente estructura:
Figura 4.11. Modelo Lógico Global de DatosFuente: elaboración Propia
CAPITULO IV: Proceso de Análisis y Diseño 68
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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.
Tabla 4.2. Asignaturas
Código Asignatura
Nombre Asignatura SemestreCarga horari
aCarrera Docente
ESO-701LA EDUCACION EN EL DESARROLLO HISTORICO
Primero 2 MATEMATICA 1226945
LDI-731TALLER DE LENGUAJE
Primero 2 MATEMATICA 1023114
MAT-701 ALGEBRA I Primero 4 MATEMATICA 1034579MAT-713 GEOMETRIA Primero 4 MATEMATICA 1267202
MAT-714GEOMETRIA ANALITICA
Primero 4 MATEMATICA 1000409
PDI-701PRACTICA PROFESIONAL I
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 PeriodosCódigo Periodo
Día Periodo
T1 Lunes 1T2 Martes 2T3 Miércoles 3T4 Jueves 1T5 Lunes 2T6 Martes 3… … …Fuente: Elaboración Propia
CAPITULO IV: Proceso de Análisis y Diseño 70
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Lista de Aulas:
Tabla 4.4. Tabla AulasCódigo Aula Bloque Descripción
A1 A Sector PrimariaA2 A Sector PrimariaA3 A Sector PrimariaA4 A Sector PrimariaF1 F Sector SecundariaF2 F 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.
Figura 4.1. Representación del GenFuente: 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
CAPITULO IV: Proceso de Análisis y Diseño 71
1 asignatura docente posAsig Semestre estado
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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.
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 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 asignaturas, docente,
// turnos y semestres para la generación de horarios
public Gene(String as, String pr, String pos, String se, int est) {
this.asi=as;
this.pro=pr;
this.pos=pos;
this.sem=se;
this.est= es;
}
// métodos setters y getters
…
…
}
class Gen {
int tamAsig, tamPer;
List listaAsignaturas;
CAPITULO IV: Proceso de Análisis y Diseño 72
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
List listaAulaPeriodos;
// Constructor de la Clase Gen
public Gen(List<Asignaturas> lAs,List<AulaPeriodos>lAp) {
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 carga horaria
for (i = 0; i<tamAsig;i++){
// obtiene un objeto de la listaAsignatura
Asignaturas objAsignatura=(Asignaturas) listaAsignaturas.get(i);
// carga horaria de la asignatura
ch= objAsignatura.getCargaHoraria( )/2;
int cont=0;
while (cont < ch){
vectorAsignaturas[pos]=obAsignatura;
pos++;
cont++;
}
// Selecciona una asignatura del vector sin repetir y // Asigna a un periodo aleatorio
boolean vecA[] = new boolean[pos];
CAPITULO IV: Proceso de Análisis y Diseño 73
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
boolean vecP[] = new boolean[tamPer];
int ra=0,rp =0;
for(int j=0;j<pos;j++){
do{ //Nos da un n? si repetir
ra = (int) ((pos) * Math.random());
}while ( vecA[ ra ] ); //Si ya estaba nos da otro
vecA[ ra ] = true; //Se marca
// Selecciona una gen aleatorio del vector sin repetir //Para colocar la asignatura seleccionada
do{ //Nos da un n? si repetir
rp = (int) ((tamPer) * Math.random());
}while ( vecP[ rp ] ); //Si ya estaba nos da otro
vecP[ rp ] = true; //Se marca
Asignaturas objAsignatura = (Asignaturas)vectorAsignaturas[ra];
String codAsig = objAsignatura.getCodAsig();
String docente = objAsignatura.getDocente();
String semestre = objAsignatura.getSemestre();
//String dia = aulaPer.getPeriodos().getDia();
int posListaA=ra;
System.out.println(pos -1);
Gene g =new Gene(codAsig,docente,posListaA,semestre);
genes[rp]=g;
}
return genes;
}
}
4.2.6.4. Representación del Cromosoma (Individuo)
CAPITULO IV: Proceso de Análisis y Diseño 74
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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.
El conjunto de genes representa un individuo.
1 2 3 4 5 6 7 8 … n
Figura 4.12. Representación del Individuo InicialFuente: 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 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.
CAPITULO IV: Proceso de Análisis y Diseño 75
asignatura docente posAsignat semestre estado
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
n+1: almacena un vector de tipo Gene cuyos datos son utilizados para la evaluación del
individuo, estos datos son: adaptación, puntuación y puntuación acumulada.
1 2 3 4 5 6 7 8 … n n+1
Figura 4.13. Representación del Individuo FinalFuente: 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ónFuente: 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.
CAPITULO IV: Proceso de Análisis y Diseño 76
Adaptación Puntuación Puntuación Acumulada
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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.
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<indi.length-1;k++){
if(indi[k]!=null ){
String a = indi[k].getAsi();
String p = indi[k].getPro();
int po = indi[k].getPos();
String s = indi[k].getSem();
List listP = auPerDao.listaAulaPeriodos();
AulaPeriodos pe = (AulaPeriodos) listP.get(k);
String per= pe.getPeriodos().getPeriodo();
String d= pe.getPeriodos().getDia();
// Se verifica las restricciones violadas
for(int j =0;j<indi.length-1;j++){
if(indi[j]!=null){
AulaPeriodos peri = (AulaPeriodos) listP.get(j);
String perio= peri.getPeriodos().getPeriodo();
String dia= peri.getPeriodos().getDia();
//Un profesor no puede estar en más de un periodo a la vez
if((indi[j].getPro().equals(p))&& (perio.equals(per))){
adapt ++;/Número de mismo profesor mismo periodo
CAPITULO IV: Proceso de Análisis y Diseño 77
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
}
//Asignaturas del mismo semestre no pueden estar en el mismo periodo
if(indi[j].getSem().equals(s)&& perio.equals(per)){
adapt ++;//Número de mismo semestre mismo periodo
}
// 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 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:
puntuación[ i]=adaptación[ i]
∑j=0
tp
adaptación[ j ]
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:
CAPITULO IV: Proceso de Análisis y Diseño 78
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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.
Pseudocódigo función de evaluación:
public List<Gene[]> evaluarPoblacion(List<Gene[]> pobla){
int ad, ada;
float pun;
int tamIndiv =0;
int sumTotalAdapta=0;
float acum=0;
List<Gene[]> poblacion = new ArrayList<Gene[]>();
DESDE j=0 HASTA pobla.size() HACER {
Gene[] indiv = this.poblacionInicial.get(j); //obtiene el individuo j
ad =(adaptacion(indiv)); //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
CAPITULO IV: Proceso de Análisis y Diseño 79
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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
ad = individuo[ti].getAdapt(); //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 acumulada
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
CAPITULO IV: Proceso de Análisis y Diseño 80
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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.
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 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
CAPITULO IV: Proceso de Análisis y Diseño 81
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
for(i=p1;i<p2;i++){
genes[i]= padre2[i]; } int pos =p2%longitudIndividuo;
for(i%=longitudIndividuo;i!=p1;i=(i+1)%longitudIndividuo-1){
//boolean existe=false;
while(existe(genes,padre1[pos])==false){
pos=(pos+1)%longitudIndividuo;
} genes[i]=padre1[pos]; } return genes; }
public boolean existe(Gene[]genes,Gene ge){
boolean exis =false;
int elemAs =ge.getPos();
for(int i=0;i<genes.length-1;i++){
if(genes[i]!=null){
if(genes[i].getPos()== elemAs){
exis=true; 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());
CAPITULO IV: Proceso de Análisis y Diseño 82
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
nAlea2 = (int)((li-1)*Math.random());
}while (nAlea1!=nAlea2);
aux= in3[nAlea1];
in3[nAlea1]=in3[nAlea2];
in3[nAlea2]=aux;
return in3;
}
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
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 la población
public AGenetico(int numGeneraciones, int tamPoblacion,float pCruce, float pMutacion,
List<Asignaturas> asignatur,List<AulaPeriodos> aulaPer,String carr ) {
this.nGeneraciones = numGeneraciones;
this.tPoblacion = tamPoblacion;
this.probCruce = pCruce;
this.probMutacion = pMutacion;
this.lAsig = asignatur;
this.lAuPerio = aulaPer;
CAPITULO IV: Proceso de Análisis y Diseño 83
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
this.carrera = carr;
}
public List<Gene[]>inicializar() throws Exception{
for(int i=0;i<this.tPoblacion;i++){
Cromosoma cr=new Cromosoma(this.lAsig);
Gene[] individuo= cr.llenarIndividuo(this.lAsig.size(),this.lAuPerio.size());
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<Gene[]> poblacionTemporal=new ArrayList<Gene[]>();
//llenar población temporal
do{c= cruzar;
o = AG.operadores( );//elige que operador usar a partir de una probabilidad
if(o.equals(c)){
// si el operador es cruzar se seleccionan dos individuos aleatoriamente
Gene[]ind1= AG.seleccionar(poblacion);
Gene[]ind2= AG.seleccionar(poblacion);
//se cruzan los dos individuos
Gene[]newInc= AG.cruze(ind1,ind2);
//se añade a la población temporal
poblacionTemporal.add(newInc);
}else{// si el operador es mutar se selecciona un solo individuo
Gene[]ind3= AG.seleccionar(poblacion);
// se muta un gen del individuo
Gene[] newInm = AG.mutacion(ind3);
CAPITULO IV: Proceso de Análisis y Diseño 84
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
//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);
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:
CAPITULO IV: Proceso de Análisis y Diseño 85
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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 86
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 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 87
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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: 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.
Jasper.jar: librería de manipulación de reportes para java.
Jdbc.jar: Api que permite la ejecución de operaciones sobre base de datos.
ToplinkEssentials.jar: librería utilizada para la persistencia de objetos en la base de
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 88
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.3.5.1. Módulos del Sistema
MóduloKardex de Personal
Módulo Control de Asistencia
Módulo Construir Horarios
Figura 4.15. Módulos del SistemaFuente: Elaboración propia
Main.java
ControlDao
Interfaz
Autenticar
Principal
kardex personal
Control Asistencia
Administrar Asistencia
Construir Horarios
Reportes
Swing
ireport.jar
jarperReport
Entidades
toplinkEssentials
Figura 4.16. Diagrama de ComponentesFuente: Elaboración propia
CAPITULO IV: Cronograma de Ejecución 89
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.3.5.2. Diagrama de Despliegue
Figura 4.17. Diagrama de DespliegueFuente: 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 90
ClienteSISTEMA
SISCAACH
Servidor
BASE DE DATOS
AccesoJPA TOPLINK
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 ArchivosFuente: Elaboración propia
CAPITULO IV: Cronograma de Ejecución 91
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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",
CAPITULO IV: Cronograma de Ejecución 92
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
query = "SELECT a FROM Asistencia a WHERE a.horasTrab = :horasTrab")})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 93
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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) {
CAPITULO IV: Cronograma de Ejecución 94
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
this.ci = ci; } @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 95
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 96
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 UsuariosUsuario Nivel
de Acceso
Kardex Personal
Control de Asistencia
Administrar Asistencia
Construir Horarios
Seguridad
Administrador 1 Si Si Si Si SiEncargado RRHH
2 Si Si Si No No
Encargado de horarios
3 No No No Si No
Fuente: Elaboración Propia
Figura 4.20. Interfaz ingreso al sistemaFuente: 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 97
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 98
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 99
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 Kardex
Datos de prueba
Titulo: Gestionar Kardex de PersonalTipo de prueba: Prueba de unidadTécnica de prueba: Caja BlancaResponsable: Proyectista
Objetivo de la prueba Comprobar el funcionamiento y desempeño de la gestión de kardex de personal.
Datos de entrada Datos personales del empleadoProcedimiento 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
Problemas - El campo C.I. de personal y email no están validados.
Solución Implementar un método de validación para los campos CI y email
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
Datos de prueba
Titulo: Módulo de gestión de usuariosTipo de prueba: Prueba de integraciónTécnica de prueba: Caja Blanca y de caja negraResponsable: Proyectista
Objetivo de la prueba 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, comprobándose tal hecho iniciando sesiones con diferentes cuentas de usuarios
Datos de entrada Nombre de usuario y contraseñaProcedimiento de prueba:
- Ingresar Nombre de Usuario- Ingresar Contraseña- Verificar que el menú asignado corresponda a las tareas asignados a dicho
usuario.
CAPITULO IV: Cronograma de Ejecución 100
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Problemas Ningún problema identificadoConclusión 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.
Tabla 4.8. Planificación de Actividades (Investigación de las Herramientas)INVESTIGACIÓN DE LAS HERRAMIENTAS 140 días
CAPITULO IV: Cronograma de Ejecución 101
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Investigación Actividades Duración
Método biométricos por medio de
huella dactilar
Estudio de Sistemas Biométricos
por medio de la huella dactilar
15 dias
Métodos y técnicas para la
construcción de horarios académicos
Estudio de técnicas de búsqueda y
métodos de optimización
15 días
Instalación, reconocimiento y
programación del lector de huella.
Integración del lector de huella con
el lenguaje de programación
10 días
Persistencia de huellas digitales en
Base de datos
10 días
Análisis de los Algoritmos Genéticos Construcción del algoritmo
Genéticos para el caso de estudio
20 días
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 Netbeans MySQL – JPA
20 días
Fuente: Elaboración Propia
Tabla 4.9. Planificación de Actividades (Desarrollo del proyecto)DESARROLLO DEL PROYECTO 200 días
ACTIVIDAD TIEMPO(Días)
PRODUCTO
ITERACIÓN I 14 Modelo de Requerimientos del Sistema
ConcepciónRecopilación de la información (entrevistas y documentos)
1 Documento con la información relacionada al proyecto
Determinar la visión del proyecto en reunión con las autoridades administrativas de la Universidad Pedagógica
1 Documento con la visión del proyecto y restricciones principales
Determinación de requerimientos funcionales y no funcionales
1 Documento con requerimientos no funcionales
Realizar el modelo del casos de uso del Negocio (contexto del sistema)
1 Documento de casos de uso inicial de negocios
ElaboraciónElaborar el modelo general de casos de uso del proyecto
2 Diagramas de casos de uso
Elaborar el diagrama de paquetes del proyecto (Arquitectura del Sistema)
1 Diagrama de paquetes
CAPITULO IV: Cronograma de Ejecución 102
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Clasificar los casos de uso por riesgo, prioridad y funcionalidad
1 Casos de uso clasificados
Análisis de clases, identificación de atributos, relaciones y responsabilidades
2 Diagrama de clases
Estimación de tiempo y costo, prioridades y riesgos
2 Documentación de la estimación de tiempo y costo
Probar la aceptación del modelo de requerimientos a través de un prototipo
2 Prototipo no funcional del sistema
ITERACIÓN II 21 Subsistema Kardex del Personal Docente
ConstrucciónElaborar el modelo detallado de requerimientos del subsistema para adecuarse a la arquitectura planteada
2 Diagramas de casos de uso y descripción detallada de los casos de uso
Elaborar el modelo detallado de clases del subsistema
2 Diagramas detallados de clases
Elaborar los diagramas de interacción del subsistema
1 Diagramas de colaboración
Elaborar el modelo de estados del subsistema 1 Diagramas de estadosCodificar los casos de uso 11 Subsistema codificadoProbar los casos de uso a través de prototipos 3 Subsistema probado y validado
por los clientesElaborar Manual preliminar del usuario 1 Documento incrementado
manual del usuarioITERACIÓN III 28 Subsistema Control de
AsistenciaConstrucciónElaborar el modelo detallado de requerimientos del subsistema para adecuarse a la arquitectura planteada
3 Diagramas de casos de uso y descripción detallada de los casos de uso
Elaborar el modelo detallado de clases del subsistema
2 Diagramas detallados de clases
Elaborar los diagramas de interacción del subsistema
1 Diagramas de colaboración
Elaborar el modelo de estados del subsistema 1 Diagramas de estadosCodificar los casos de uso 16 Subsistema codificadoProbar los casos de uso 3 Subsistema probado y validado
por los clientesAñadir contenido al Manual preliminar del usuario
2 Documento incrementado manual del usuario
ITERACIÓN IV 46 Subsistema Construcción de Horarios
ConstrucciónElaborar el modelo detallado de requerimientos del subsistema para adecuarse a la arquitectura planteada
21 Diagramas de casos de uso y descripción detallada de los casos de uso
CAPITULO IV: Cronograma de Ejecución 103
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Elaborar el modelo detallado de clases del subsistema
4 Diagramas detallados de clases
Elaborar los diagramas de interacción del subsistema
2 Diagramas de colaboración
Elaborar el modelo de estados del subsistema 1 Diagramas de estadosCodificar los casos de uso 14 Subsistema codificadoProbar los casos de uso 2 Subsistema probado y validado
por los clientesAñadir contenido al Manual del usuario 2 Documento incrementado
manual del usuario ITERACIÓN VConstrucción
7 Subsistema de Reportes y módulo de Seguridad
Elaborar el modelo detallado de requerimientos del subsistema para adecuarse a la arquitectura planteada
2 Diagramas de casos de uso y descripción detallada de los casos de uso
Elaborar el modelo detallado de clases del subsistema
1 Diagramas detallados de clases
Elaborar los diagramas de interacción del subsistema
1 Diagramas de colaboración
Elaborar el modelo de estados del subsistema 1 Diagramas de estadosProbar los casos de uso 2 Subsistema probado y validado
por los clientesITERACIÓN VI 28 Subsistema de Ayuda en líneaConstrucciónElaborar el modelo detallado de requerimientos del subsistema para adecuarse a la arquitectura planteada
2 Diagramas de casos de uso y descripción detallada de los casos de uso
Elaborar el modelo detallado de clases del subsistema
2 Diagramas detallados de clases
Elaborar los diagramas de interacción del subsistema
2 Diagramas de colaboración
Elaborar el modelo de estados del subsistema 1 Diagramas de estadosCodificar los casos de uso 10 Subsistema codificadoProbar los casos de uso 2 Subsistema probado y validado
por los clientesIncrementar contenido al manual de Manual del usuario
1 Documento incrementado manual del usuario
ITERACIÓN VII 56 Sistema implementado y probado
TransiciónElaborar un plan de pruebas 5 Documentación detallada del
plan de pruebas Pruebas de módulos y de sistema con usuarios no involucrados directamente en el proyecto
3 Documentación de las pruebas (casos de prueba)
Corregir y extender la funcionalidad 3 Sistema validado por los usuarios
CAPITULO IV: Cronograma de Ejecución 104
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Capacitación a los usuarios 3 Usuarios capacitados para manejo del sistema
Puesta a prueba del sistema implementado 35 Documentación de las pruebasCorrección de errores detectados durante la prueba del sistema
7 Sistema probado y validado por los usuarios
Fuente: Elaboración propia
CAPITULO IV: Cronograma de Ejecución 105
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4.6.2. Cronograma de Actividades
Figura 4.21. Diagrama de Gant del proyectoFuente: Elaboración Propia
CAPITULO IV: Cronograma de Ejecución 106
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Figura 4.22. Diagrama de Gant del Proyecto (Continuación)Fuente: Elaboración Propia
CAPITULO IV: Cronograma de Ejecución 107
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Figura 4.23. Diagrama de Gant del proyecto (Continuación)Fuente: Elaboración Propia
CAPITULO IV: Cronograma de Ejecución 108
CAPITULO V
DISCUSIÓN DE
RESULTADOS
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 SistemaFuente: Elaboración Propia
Interfaz: Registro de Personal
108CAPITULO V: Discusión de Resultados
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Figura 5.2. Registro de PersonalFuente: Elaboración Propia
Interfaz: Registro Situación Laboral
Figura 5.3. Registro Situación LaboralFuente: Elaboración Propia
Interfaz: Búsqueda personal
Figura 5.4. Búsqueda de PersonalFuente: Elaboración Propia
109CAPITULO V: Discusión de Resultados
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Interfaz: Reporte Personal Docente
Figura 5.5. Reporte de personalFuente: Elaboración Propia
Interfaz: Registro de Turnos
Figura 5.6. Registro de TurnosFuente: Elaboración Propia
110CAPITULO V: Discusión de Resultados
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Interfaz: Asignación de Turnos al Personal
Figura 5.7. Asignación de TurnosFuente: Elaboración Propia
Interfaz: Registro de Permisos
Figura 5.8. Registro de PermisosFuente: Elaboración Propia
111CAPITULO V: Discusión de Resultados
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Interfaz: Administrador de pin y huella
Figura 5.9. Administrador de pin y huellaFuente: Elaboración Propia
Interfaz: Registrar Asignaturas
Figura 5.10. Registrar AsignaturasFuente: Elaboración Propia
112CAPITULO V: Discusión de Resultados
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Interfaz: Configuración Datos Horario
Figura 5.11. Configuración Datos HorarioFuente: Elaboración Propia
Interfaz: Horarios Construidos
Figura 5.12. Horarios ConstruidosFuente: Elaboración Propia
113CAPITULO V: Discusión de Resultados
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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
114CAPITULO V: Puesta en Marcha
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Software
Tabla 5.3. Especificación técnica de softwareHerramienta Nombre Versión
Plataforma de programación(PC cliente)
Java Development Kit 6
Servidor Base de datos(PC Servidor)
MySQL 5.1
Generador de reportes(PC cliente)
iReport 3.5.1
JPA 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.
115CAPITULO V: Puesta en Marcha
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 de información, papelería y otrosItem Cantidad Precio/Unidad(Bs) Total
Fotocopias 200 0,20 40Servicio de Internet 9 meses 2Bs(c/h) 2000Papel Bond Tamaño Carta 3 25 75Tinta negra para impresora HP 2 20 40Tinta a color para impresora HP 2 60 120Libro Algoritmos Evolutivos 1 560 560Libro Mysql 1 280 280Total (Bs.) 3115Total ($us) 420
Fuente: [Elaboración Propia]
Tabla 5.5. Costos de licencias de softwareItem Costo Licencia
NetBeans 6.0.1 Licencia libreMySQL Licencia libreIReport 3.5.1. Licencia libreTotal ($us.)
Fuente: [Elaboración Propia]
La estimación del costo y esfuerzo del proyecto se las realizo mediante el uso de la métrica de
“Puntos Función” es una técnica para medir el tamaño del software, que pretende medir la
116CAPITULO V: Puesta en Marcha
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
funcionalidad entregada al usuario 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.
117CAPITULO V: Puesta en Marcha
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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.
118CAPITULO V: Conclusiones
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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.
119CAPITULO V: Conclusiones
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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
[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.
REFERENCIA BIBLIOGRAFICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
[31] MEJIA CABALLERO, José; Asignación de Horarios de Clases Universitarias Mediante
Algoritmos Evolutivos, Colombia 2008, Universidad De La Guajira / Universidad Del Norte.
[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.proactiva-
calidad.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 en:
http://mundobyte.wordpress.com/2008/01/05/creacion-de-reportes-en-java-parte-i [Consulta
20 de Marzo de 2010].
REFERENCIA BIBLIOGRAFICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
REFERENCIA BIBLIOGRAFICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 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
Flujo de Entrada / Pantalla FENo. Pantalla Cantidad de Datos Complejidad1 Registrar personal 20 Alta 2 Experiencia Laboral 5 Media3 Situación Laboral 8 Media4 Profesiones 2 Baja5 Registrar Turnos 8 Media6 Calendario Laboral 2 Baja7 Asignar Turnos 3 Media8 Registrar Licencias 3 Media9 Registrar Permisos 3 Media10 Administrar Pin 2 Baja11 Control Asistencia 9 Alta12 Registrar Carrera 2 Baja13 Registrar Asignatura 6 Media14 Registrar Aula 3 Baja15 Asignar Aula 4 Media16 Registrar Usuario 7 Media17 Cambiar Contraseña 4 Alta18 Construir Horario 9 Alta19 Guardar Horario Construido 4 Alta20 Editar Horario 1 Alta
Flujo de Salida / Reportes FS
Flujo de Salida / Reportes FSNo. Pantalla Cantidad de Datos Complejidad
ANEXO A
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
1 Lista de Personal 5 Media2 Lista de Personal por carreras 5 Media3 Lista de Personal por nivel 5 Media4 Lista Personal Administrativo 5 Media5 Lista Personal Servicio 5 Media6 Lista Detalle Asistencia Diario (por
persona)7 Media
7 Lista Detalle Asistencia Mensual 9 Media8 Lista Pensum Académico (por
Carreras)5 Media
9 Ver Horario Construido - Alta10 Ver Horario Docente - Alta11 Ver Horario Construido - Alta
Consultas Q
Consultas QNo. Consulta No. De criterios Complejidad1 Autenticar Usuario 2 Media2 Búsqueda de personal 3 Media3 Búsqueda detalle asistencia diaria 2 Media4 Búsqueda detalle asistencia mensual 3 Media5 Búsqueda Licencias/Permisos 2 Media6 Registro de Asistencia 2 Media7 Búsqueda Horario Construido 1 Media
Archivos Lógicos Internos ALI
Archivos Lógicos Internos ALINo Archivo Tipo de Registro Complejidad1 Personal 2 Media2 Experiencia_Laboral 2 Media3 Situación_Laboral 2 Media4 Profesiones 2 Baja5 Turnos 2 Media6 Calendario_Laboral 2 Baja7 Turnos_Asignados 2 Media8 Licencias 2 Media9 Permisos 2 Media10 Asistencia 3 Alta11 Carrera 2 Baja12 Asignatura 2 Media13 Aula 1 Media14 Usuario 2 Baja15 Horario 6 Alta16 GenerarReporte 4 Media17 Actualizar BD 4 Alta18 Exportar horario a Excel 6 Media
ANEXO A
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Archivos Lógicos Externos ALE
Archivos Lógicos Externos ALENo Archivo No de campos Complejidad1 Ayuda 3 Baja2 Backup Base de Datos 2 Baja3
Pesos Según la complejidad
Pesos EspecíficosFlujo o Archivo Baja Media Alta Total
FE 3 * 5 4 * 9 6 * 6 87FS 4 * 0 5 * 8 7 * 3 61Q 3 * 0 4 * 7 6 * 0 28
ALI 7 * 4 10 * 11 15 * 3 183ALE 5 * 2 7 * 0 10 * 0 10
Total de puntos función no ajustados 369
Cálculo de KSLOC
Convirtiendo los puntos Función para un lenguaje de Tercera Generación:
369 * 32 = 11808 SLOC
A.1.2. Estimación de Costo / Esfuerzo mediante COCOMO II
ANEXO A
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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 b= 1 SCED = 100%
T = 10.41
T = 10 meses
Cálculo de Personas
Personas = E/T = 44.4/ 10 Personas = 4 Personas mes
ANEXO A
Líneas Código Esfuerzo Costo
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 de Población
Número de Generaciones
Probabilidad de cruce
Probabilidad de
mutación
Adaptación o número de Choques
Tiempo de Ejec.
10 10 80% 20% 25 00:00:50
10 50 80% 20% 21 00:01:26
10 100 80% 20% 23 00.04:03
15 10 80% 20% 25 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
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
ANEXO B
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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 SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 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 SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 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 JREFuente: [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.
ANEXO C
Figura C.2. Instalación del lector de huellaFuente: [Elaboración Propia]
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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.
- 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
manera se deja todo marcado y se da clic en siguiente.
- Enchufar el lector de huella digital, seleccionar el idioma y click en ok
ANEXO C
Figura C.2. Instalación del lector de huella ContinuaciónFuente: [Elaboración Propia]
Figura C.3. Instalación del lector de huella ContinuaciónFuente: [Elaboración Propia]
Figura C.4. Instalación del lector de huella ContinuaciónFuente: [Elaboración Propia]
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Instalación del JMF (Java Media Framework)
Hacer doble click en el archivo y seguir las instrucciones hasta finalizar.
Instalación del Gestor de BD MySQL
Hacer doble click en el archivo y seguir las instrucciones hasta finalizar
ANEXO C
Figura C.5. Instalación del JMFFuente: [Elaboración Propia]
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Instalación del Sistema SISCAACH
Hacer doble click en el archivo y seguir las instrucciones hasta finalizar
- Proceso de instalación finalizada
ANEXO C
Figura C.7. Instalación del SISCAACHFuente: [Elaboración Propia]
Figura C.8. Instalación del SISCAACH ContinuaciónFuente: [Elaboración Propia]
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
ANEXO C
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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” 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 SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 Descripción Responsabilidad
Encargado de RRHH
Gestión de Kardex de personal.
Control de asistencia.
Es el que interactúa con el subsistema kardex de personal y Control de Asistencia.
Registrar toda la información correspondiente al personal, asignar turnos, emitir informes relacionados al kardex de personal y control de asistencia
Encargado de horarios
Generar Horarios Es el que interactúa con el subsistema Generar Horarios.
Gestionar toda la información relacionada con la construcción de horarios, emitir reportes de horarios por semestre, por docente.
Personal Control de Asistencia
Es quien interactúa con el subsistema control de Asistencia por medio del lector biométrico
Registrar su huella digital en el lector biométrico para el control de asistencia.
Captura de requerimientos
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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.
- 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.
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
- 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.
Modelo de Casos de Uso
Diagrama de Casos de Uso Principal del Sistema
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Caso de Uso: Gestionar Usuario
AdministradorGestionar Usuario Validar Datos
<<include>>
Gestionar UsuariosDescripció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.
Flujo: Nuevo Usuario
No. Actor Sistema
1Llena los campos requeridos y asigna un perfil al nuevo usuario.
Valida los datos ingresados y si existe un error despliega un mensaje.
REFERENCIA TÉCNICA
Encargado Horarios
Gestionar Kardex Personal
Gestionar Asistencia
Construir Horarios
Encargado RRHH
personal
Registrar Huella
Control Asistencia
Administrador
Gestión de Usuarios
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
2 Elige la opción Guardar.
3 Almacena los datos.
Flujo Alternativo:
3Despliega un mensaje de error, si los datos están duplicados o erróneos.
2 Elige la opción Cancelar
5 Sale da la pantalla.
Flujo: Eliminar Usuario
No. Actor Sistema1 Ingresa Criterio de búsqueda
2 Presenta la información del Usuario
3Selecciona al usuario y elige la opción eliminar.
Despliega una pantalla de confirmación del proceso de eliminación
4 Elige la opción SI
5 Elimina el registro correspondiente al personal
Flujo Alternativo:
2 No encuentra al personal no muestra nada
4 Elige la opción NO
5 No elimina el registro
Flujo: Editar Usuario
No. Actor Sistema1 Ingresa Criterio de búsqueda
2 Presenta la información del Personal
3Selecciona al usuario y modifica la información en los campos necesarios
Valida los datos ingresados y si existe un error despliega un mensaje
4 Elige la opción Editar
5 Almacena los datos modificados
6 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
2Si no encuentra el personal presenta un mensaje de usuario no encontrado.
5Despliega 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
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Gestionar Prof esiones
ConsultasGestionar Experiencia Laboral
Gestionar Situacion Laboral Buscar Personal
Gestionar Personal
<<include>>
<<include>> <<include>>
Encargado RRHH
Reportes
Diagrama de Casos de Uso: Gestionar Kardex PersonalFuente: [Elaboración propia]
Detalle de los Casos de Uso
Caso de Uso: Gestionar Personal
Gestionar PersonalDescripció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
Flujo: Nuevo Personal
No. Actor Sistema1 Elige la opción añadir Personal
2Despliega el formulario con los campos de información necesaria del personal
3Llena los campos Valida los datos ingresados y si existe un error
despliega un mensaje
4 Elige la opción guardar
5 Almacena los datos
6 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
5 Despliega un mensaje de error, si los datos están
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
duplicados o erróneos.
4Ingresa datos correctos, elige la opción guardar
5 Almacena los datos
4 Elige la opción cancelar
5 No almacena al personal y Vuelve al flujo 1
Flujo: Eliminar Personal
No. Actor Sistema1 Ingresa Criterio de búsqueda
2 Presenta la información del Personal
3Elige la opción eliminar Despliega una pantalla de confirmación del
proceso de eliminación
4 Elige la opción SI
5 Elimina el registro correspondiente al personal
Flujo Alternativo:
2 No encuentra al personal no muestra nada
4 Elige la opción NO
5 No elimina el registro
Flujo: Editar Personal
No. Actor Sistema1 Ingresa Criterio de búsqueda
2 Presenta la información del Personal
3Modifica la información en los campos necesarios
Valida los datos ingresados y si existe un error despliega un mensaje
4 Elige la opción Editar
5 Almacena los datos modificados
6 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
2 Si no encuentra el personal no muestra nada
5Despliega 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 LaboralDescripción General: Permite crear, eliminar y modificar los datos de experiencia laboral del
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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. Actor Sistema1 Elige la opción añadir
2Despliega el formulario con los campos de información necesaria.
3Llena los campos Valida los datos ingresados y si existe un error
despliega un mensaje
4 Elige la opción guardar
5 Almacena los datos
6 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
5Despliega un mensaje de error, si los datos están duplicados o erróneos.
4Ingresa datos correctos, elige la opción guardar
5 Almacena los datos
4 Elige la opción cancelar
5 Vuelve al flujo 1
Flujo: Eliminar Datos Experiencia Laboral
No. Actor Sistema1 Selecciona registro a ser eliminado. Habilita los botones eliminar, editar, y cancelar
2Elige la opción eliminar Despliega una pantalla de confirmación del
proceso de eliminación
3 Elige la opción SI
4 Elimina el registro seleccionado
Flujo Alternativo:
3 Elige la opción NO
4Regresa al formulario anterior
No elimina el registro
Flujo: Editar Datos Experiencia Laboral
No. Actor Sistema
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
1 Selecciona un registro a ser eliminado. Habilita los botones eliminar, editar, y cancelar
2Elige la opción editar Habilita los campos para ser editados
Habilita la opción guardar y cancelar
3Modifica la información en los campos necesarios
Valida los datos ingresados y si existe un error despliega un mensaje
4 Elige la opción Guardar
5 Almacena los datos modificados
6 Elige la opción cancelar Vuelve al flujo 1
Flujo Alternativo:
3Despliega un mensaje de error, si los datos están duplicados o erróneos.
4 Elige la opción NO
5 No modifica los datos del personal
Caso de Uso: Gestionar Situación Laboral
Gestionar Situación LaboralDescripció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. Actor Sistema1 Elige la opción añadir
2Despliega el formulario con los campos de información necesaria.
3 Llena los campos
4Valida los datos ingresados y si existe un error despliega un mensaje
5 Elige la opción guardar
6 Almacena los datos
7 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
5 Ingresa datos correctos, elige la opción
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
guardar
6Despliega un mensaje de error, si los datos están duplicados o erróneos.
Flujo: Eliminar Datos Situación Laboral
No. Actor Sistema1 Selecciona un registro a ser eliminado. Habilita los botones eliminar, editar, y cancelar
2Elige la opción eliminar Despliega una pantalla de confirmación del
proceso de eliminación
3 Elige la opción SI
4 Elimina el registro seleccionado
Flujo Alternativo:
3 Elige la opción NO
4Regresa al formulario anterior
No elimina el registro
Flujo: Editar Datos Situación Laboral
No. Actor Sistema1 Selecciona un registro a ser eliminado. Habilita los botones eliminar, editar, y cancelar
2Elige la opción editar Habilita los campos para ser editados
Habilita la opción guardar y cancelar
3Modifica la información en los campos necesarios
Valida los datos ingresados y si existe un error despliega un mensaje
4Elige la opción Guardar Despliega una pantalla de confirmación del
proceso de edición
5 Elige la opción SI
6 Almacena los datos modificados
7 Elige la opción cancelar Vuelve al flujo 1
Flujo Alternativo:
3Despliega un mensaje de error, si los datos están duplicados o erróneos.
5 Elige la opción NO
6 No modifica los datos del personal
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Caso de Uso: Gestionar Profesiones
Gestionar ProfesionesDescripció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 Sistema1 El usuario elige la opción añadir
2Habilita los campos para insertar nueva profesión en la pantalla profesiones.
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. Actor Sistema1 Selecciona un registro de la tabla Habilita la opción eliminar registro
2Elige la opción eliminar Despliega una pantalla de confirmación del
proceso de eliminación
3 Elige la opción SI
4 Elimina el registro seleccionado
5 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
3 Elige la opción NO
4 No elimina el registro
Subsistema Control de Asistencia
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Buscar Personal
Gestionar Calendario Academico
Asignar Turnos
Administrar Huellas Pin
Gestionar Licencias
<<include>>
Consultas
Reportes
Gestionar Turnos
Encargado RRHH
Diagrama de Casos de Uso: Gestionar AsistenciaFuente: [Elaboración propia]
Detalle de los Casos de Uso
Caso de uso: Gestionar Turnos
Gestionar TurnoDescripció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.
Postcondiciones: Los Turnos de trabajo son guardados en la Base de Datos y podrán usarse en la asignación de turnos al personal.
Flujo: Añadir Turno
No. Actor Sistema1 Elige la opción añadir Turno
2Habilita los campos de información necesaria para ingresar un nuevo turno.
3Llena los campos Valida los datos ingresados y si existe un error
despliega un mensaje
4 Elige la opción guardar
5 Almacena los datos
6 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
5 Despliega un mensaje de error, si los datos están
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
duplicados o erróneos.
Flujo: Eliminar Turno
No. Actor Sistema1 Selecciona un registro de la tabla turnos
2 Habilita la opción eliminar registro
3Elige la opción eliminar Despliega una pantalla de confirmación del
proceso de eliminación
4 Elige la opción SI
5 Elimina el registro correspondiente al personal
6 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
4 Elige la opción NO No elimina el registro
Flujo : Editar Turnos
No. Actor Sistema1 Selecciona un registro de la tabla turnos
2 Habilita la opción editar registro
3Elige la opción editar Habilita los campos con la información a ser
editada
4 Elige la opción guardar
5 Almacena los datos
6 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
5Despliega un mensaje de error, si los datos están duplicados o erróneos.
Caso de Uso: Asignar Turno
Asignar TurnoDescripció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.
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
El usuario debe tener privilegios para asignar turnos.
Postcondiciones: Los Turnos asignados al personal son guardados en la Base de Datos y podrán usarse en el control de asistencia.
Flujo: Asignar Turno
No. Actor Sistema1 Elige la opción Asignar Turno
2Despliega una pantalla con la lista de personal registrado y turnos disponibles.
3 Selecciona Personal.
4 Elige la opción Turnos para asignar.
5Selecciona Turno Almacena turno asignado para el personal
seleccionado
6Elige la opción Turnos Asignados Despliega una pantalla con la lista de turnos
asignados a personal seleccionado
7 Elige la opción salir Sale de la pantalla
Flujo Alternativo:
Flujo: Eliminar Turnos asignados
No. Actor Sistema1 Selecciona Personal
2Elige la opción Turnos Asignados Despliega una pantalla con la lista de turnos
asignados a personal seleccionado.
3Selecciona el Turno Asignado que desea eliminar.
4Elige la opción eliminar turno Despliega una pantalla de confirmación del
proceso de eliminación
5 Elige la opción SI
6 Elimina el registro correspondiente al personal
7 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
5 Elige la opción NO
6 No elimina el registro
Flujo : Editar Turnos
No. Actor Sistema1 Selecciona un registro de la tabla turnos
2 Habilita la opción editar registro
3 Elige la opción editar Habilita los campos con la información a ser
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
editada
4 Elige la opción guardar
5 Almacena los datos
6 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
5Despliega un mensaje de error, si los datos están duplicados o erróneos.
Caso de Uso: Gestionar Calendario Académico
Gestionar Calendario AcadémicoDescripció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 Datos y pueden ser utilizados en el registro de control de asistencia.
Flujo: Añadir días no hábiles
No. Actor Sistema
1Elige la opción añadir días no hábiles. Despliega el formulario con los campos de
información necesaria para el registro de días no hábiles.
2Llena los campos Valida los datos ingresados y si existe un error
despliega un mensaje
3 Elige la opción guardar
4 Almacena los datos
5 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
4Despliega un mensaje de error, si los datos están duplicados o erróneos.
Flujo: Eliminar días no hábiles
No. Actor Sistema1 Selecciona registro a ser eliminado. Habilita los botones eliminar y cancelar
2Elige la opción eliminar Despliega una pantalla de confirmación del
proceso de eliminación
3 Elige la opción SI
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
4 Elimina los datos
5 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
3 Elige la opción NO
4 No elimina los datos
Caso de Uso: Gestionar Licencias
Gestionar LicenciasDescripción General: Permite al encargado asignar licencias al personal de la institución.
Actor: Encargado RRHH
Precondiciones:
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 Sistema
1Elige la opción gestionar licencia. Despliega una pantalla con la lista de personal
registrado y turnos disponibles.
2 Selecciona el personal
3Elige la opción licencias Habilita los campos con la información necesaria
para el tratamiento de licencias.
4Llena los campos Valida los datos ingresados y si existe un error
despliega un mensaje.
5 Elige la opción asignar licencia
6 Almacena los datos de licencia al personal.
7 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
6Despliega un mensaje de error, si los datos están duplicados o erróneos.
Flujo: Eliminar licencia
No. Actor Sistema1 Selecciona registro a ser eliminado. Habilita los botones eliminar y cancelar
2Elige la opción eliminar Despliega una pantalla de confirmación del
proceso de eliminación
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
3 Elige la opción SI
4 Elimina los datos
5 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
3 Elige la opción NO
4 No elimina los datos
Personal
Marcar Asistencia
Visualizar Datos personal
Capturar Datos Huella Digital
<<include>>
<<extend>>
Registrar Huella
<<include>>
Encargado RRHH
Diagrama de Casos de Uso: Control de AsistenciaFuente: [Elaboración propia]
Detalle de Casos de Uso
Caso de Uso: Registrar Huella
Registrar Huella y FotografíaDescripció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.
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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.
Flujo: Registrar huella digital y fotografía
No. Actor Sistema
1El encargado de RRHH habilita la opción insertar datos.
Indica que esta en modo inserción
2El Personal imprime su huella digital en el lector biométrico.
Visualiza la plantilla de la huella digital del personal.
3El 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
6El encargado de RRHH elige la opción aceptar
7 Guarda la huella en la Base de datos.
8 Deshabilita la opción modo registrar Coloca la ventana en modo controlar asistencia.
Flujo Alternativo:
6El encargado de RRHH elige la opción cancelar.
7Despliega 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 HuellaDescripció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:
Debe estar conectado el dispositivo lector de huella.
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
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. Actor Sistema
1El personal imprime su huella digital en el lector biométrico.
Visualiza la plantilla de la huella digital del personal.
Flujo Alternativo:
Caso de uso: Marcar Asistencia
Marcar AsistenciaDescripció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 Sistema
1El usuario imprime su huella digital en el lector biométrico.
2Visualiza 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.
5Guarda los datos relacionados a la asistencia del personal.
Flujo Alternativo:
2Visualiza un mensaje de personal no encontrado en caso de no identificar la huella digital
3Visualiza mensaje en caso de no tener turnos asignados, no guarda datos.
4Visualiza mensaje de día no hábil, no guardo los datos.
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
5 No guarda los datos de asistencia.
Subsistema Construir Horarios
Gestionar Carreras
Gestionar Asignaturas Reportes
Exportar Horarios
Encargado Horarios
Gestionar Periodos
Gestionar Aulas
Conf igurar Horarios
<<include>><<include>>
parametros algoritmo
Ejecutar Algoritmo
<<extend>>
<<include>>
Diagrama de Casos de Uso: Construir HorariosFuente: [Elaboración propia]
Detalle de Casos de Uso
Caso de Uso: Gestionar Carreras
Gestionar CarrerasDescripción General: Permite crear y eliminar Carreras
Actor: Encargado de Horarios
Precondiciones:
El usuario debe haberse logeado en el Sistema.
El usuario debe tener privilegios para registrar carrera.
Postcondiciones: Los datos de las carreras son almacenados en la Base de Datos y pueden utilizarse en la generación de horarios
Flujo: Añadir Carrera
No. Actor Sistema1 El usuario elige la opción añadir
2Habilita los campos para insertar nueva carrera en la pantalla carreras.
3 Elige la opción guardar Almacena los datos
4 Elige la opción cerrar Sale de la pantalla
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Flujo Alternativo:
Flujo: Eliminar Carrera
No. Actor Sistema1 Selecciona un registro de la tabla Habilita la opción eliminar registro
2Elige la opción eliminar Despliega una pantalla de confirmación del
proceso de eliminación
3 Elige la opción SI
4 Elimina el registro seleccionado
5 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
3 Elige la opción NO
4 No elimina el registro
Caso de Uso: Gestionar Asignaturas
Gestionar AsignaturasDescripción General: Permite crear y eliminar Asignaturas
Actor: Encargado de Horarios
Precondiciones:
El usuario debe haberse logeado en el Sistema.
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 Sistema1 El usuario elige la opción añadir
2Habilita los campos para insertar nueva asignatura en la pantalla asignaturas.
3 Elige la opción guardar Almacena los datos
4 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
Flujo: Eliminar Asignatura
No. Actor Sistema1 Selecciona un registro de la tabla Habilita la opción eliminar registro
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
2Elige la opción eliminar Despliega una pantalla de confirmación del
proceso de eliminación
3 Elige la opción SI
4 Elimina el registro seleccionado
5 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
3 Elige la opción NO
4 No elimina el registro
Caso de uso: Gestionar Periodos
Gestionar PeriodosDescripció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.
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 Sistema1 El usuario elige la opción añadir
2Habilita los campos para insertar nueva asignatura en la pantalla asignaturas.
3 Elige la opción guardar Almacena los datos
4 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
Flujo: Eliminar Periodos
No. Actor Sistema1 Selecciona un registro de la tabla Habilita la opción eliminar registro
2Elige la opción eliminar Despliega una pantalla de confirmación del
proceso de eliminación
3 Elige la opción SI
4 Elimina el registro seleccionado
5 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
3 Elige la opción NO
4 No elimina el registro
Caso de Uso: Gestionar Aula
Gestionar AulaDescripció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
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 Sistema1 El usuario elige la opción añadir
2Habilita los campos para insertar nueva asignatura en la pantalla asignaturas.
3 Elige la opción guardar Almacena los datos
4 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
Flujo: Eliminar Aulas
No. Actor Sistema1 Selecciona un registro de la tabla Habilita la opción eliminar registro
2Elige la opción eliminar Despliega una pantalla de confirmación del
proceso de eliminación
3 Elige la opción SI
4 Elimina el registro seleccionado
5 Elige la opción cerrar Sale de la pantalla
Flujo Alternativo:
3 Elige la opción NO
4 No elimina el registro
Caso de Uso: Configurar Horario
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Configurar HorarioDescripció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
Postcondiciones: Los datos configurados serán utilizados en la generación de horarios.
Flujo: Datos Carrera
No. Actor Sistema1 El usuario elige la opción datos Carrera
2Despliega una pantalla con los campos habilitados para configurar los datos del horario a generar
3Selecciona la carrera par la cual se quiere generar el horario
.
4Selecciona el Turno en el que se dicta la carrera.
5 Elige la opción Aceptar
6Despliega una lista con todas las asignaturas correspondientes a la carrera seleccionada.
7Elige la opción paralelos Despliega una lista con todas las asignaturas para
poder elegir cuales de ellas tienen paralelos
8Selecciona la asignatura que tiene paralelo
9Selecciona el docente para esa asignatura
10Elige la opción adicionar Adiciona a la lista que contiene las asignaturas
para generar horarios
11Elige la opción Aulas Despliega una lista con todas las aulas
disponibles.
12Selecciona las aulas que participaran en la generación de aulas
13Elige la opción Parámetros del Algoritmo
Despliega una ventana con los campos y la información necesaria para ejecutar el algoritmo generador de horarios
14Introduce los parámetros para el algoritmo
15Elige la opción generar horarios Ejecuta el algoritmo genético para la generación
de horarios
16Elige la opción horarios generados Visualiza una ventana con las opciones para
mostrar los horarios generados
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
17Elige la opción por semestre Visualiza una ventana con los horarios generados
por semestre
18 Elige la opción por docente Despliega una lista de docentes
19 Selecciona docente Visualiza una ventana con los horarios del docente
20 Elige la opción cerrar Sale de la ventana
Flujo Alternativo:
Diagramas de secuencia
Gestionar Usuario
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Diagrama de Secuencia: Gestionar UsuarioFuente: [Elaboración propia]
Subsistema Gestionar Kardex
Datos Personales
REFERENCIA TÉCNICA
: Encargado RRHH : Principal : Gestionar Personal : Buscar : PersonalDao : Persona
1: abri r()2: abri r( )
3: Añadir Personal( )
4: Verificar Datos( )
5: Añadir Personal( )
6: ok( )7: Confi rmar Proceso( )
8: mostrar()9: parametros( )
10: Buscar Personal( )
11: retornar Personal( )12: Mostrar Personal( )
13: eliminar()14: eliminaPersonal()
15: confirmarEliminar
16: actualizar()
17: validarDatos()
18: actualizarPersonal
19: confirmarActual izar()
20: salir()
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Diagrama de Secuencia: Datos PersonalesFuente: [Elaboración propia]
Experiencia Laboral
Diagrama de Secuencia: Experiencia LaboralFuente: [Elaboración propia]
REFERENCIA TÉCNICA
: Encargado RRHH
: Kardex : PersonalDao : VExperienciaLab : ExperienciaLaboralDao : ExperienciaLabora : Buscar
1: abrir()2: buscar() 3: buscarPersonal()
4: retornaPersonal()
5: insertarExpLab()6: insertarDatos()
7: validar()
8: guardarDatos()
9: confirmarProceso()
10: eliminarExpLab()
11: seleccionar() 12: eliminar()
13: confirmarEliminar
14: actualizarExpLab
15: seleccionarExpLab 16: actualizar()
17: confirmarActualizar()
18: salir()
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Situación Laboral
: Encargado RRHH
: Kardex : Buscar : PersonalDao : VSituacionLab : SituacionLaboralDao : Situacionlaboral
1. abrir()2: buscar() 3:buscarPersonal
4: retornaPersonal()
5: insertarSitLab() 6: insertarDatos()7: validar()
8: guardarDatos()
9: confirmarProceso10: eliminarSitLab() 11: seleccionar()
12: eliminar()
13: confirmarEliminar()
14: actualizarSitLab() 15: seleccionarSitLab()
16: actualizar()
17: confirmarActualizar()
18: salir()
Diagrama de Secuencia: Situación Laboral
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Fuente: [Elaboración propia]
Subsistema Control Asistencia
Gestionar Turnos.-
: Encargado RRHH
: Principal : AdministrarAsistencia : VTurnos : TurnosDao : Turnoss
1: ingresar() 2: abrir() 3: abrir()
4: registrarNuevoTurno()5: llenarDatos()
6: validar()
7: guardarTurno()
8: confirmarProceso
9: eliminarTurno() 10: seleccionarTurno()
11: eliminarTurno(id Turno)
12: confirmarProceso()
13: salir()
Diagrama de Secuencia: Gestionar TurnosFuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Asignar turnos
: Encargado RRHH
: Principal : AdministrarAsistencia : VPersonal : VTurnos : VTurnosAsignados : PersonalTurnosDao : Personalturnos
1: ingresar()
2: abrir()
3: abrir()
4: seleccionarPersonal()
5. seleccionarTurnos()
6: asignarTurnos()7: asignar()
8:turnosAsignados()9: salir()
Diagrama de Secuencia: Asignar TurnosFuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Gestionar Licencias
: Encargado RRHH
: Principal : AdministrarAsistencia : VLicencias : LicenciaDao : Licencia
1. ingresar()2:abrir()
3: abrir()
4: introducirIDPersonal()
5: idPersonal()
6: veri ficar()7: mostrarDatosPersonales()
8: registrarLicencia()9: registrar()
10: mostrarLicencia()
11: seleccionarLicencia()
12: eliminarLicencia(id l ic)13: eliminar()
14: confirmarProceso()
15: salir()
Diagrama de Secuencia: Gestionar Licencias
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Fuente: [Elaboración propia]
Registrar Huella
: Encargado RRHH
: Principal : VControlAsistencia : PersonalDao : Persona
1: ingresar()
2: abrir()
3: activarModoInsercion()
4: capturarHuella()
5: buscarFotografia()
6: registrarHF()
7. validar()
8: registrar()
9: confirmarProceso()
10: desactivarModoInsercion()
Diagrama de Secuencia: Registrar HuellaFuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Marcar Asistencia
: Perssonal : VControlAsistencia : AsistenciaDao : Asisstencia
1: registrarHuella()2. enviarDatos()
3: validar()
4: registrarAsistencia()
5: visualizarDatosAsistencia
Diagrama de Secuencia: Marcar AsistenciaFuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Subsistema Construir Horarios
Gestionar Asignaturas
: Encargado Horarios
: Principal : VGestionarHorarios : VAsignaturas : AsignaturasDao : Asignatura
1: ingresar()2: abrir()
3: abrir()
4: registrarNuevaAsig()5: llenarDatos()
6: vali rdar()
7: guardarDatos
8: eliminarAsignaturas()
9: seleccionarAsignatura()10: eliminarAsignatura()
11: confirmarEliminar()
12: actualizarAsignatura()
13: modificarDatos()14. validar()
15. actualizarAsignatura()
16: confirmarActualizar()
17: salir()
Diagrama de Secuencia: Gestionar AsignaturasFuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Construir horarios
: Encargado Horarios
: Principal : VConstrui rHorarios : VParametrosHorario : VParametrosAlgoritmo : Algori tmoGenetico : VHorarios
1. ingresar()2: abrir()
3: parametrosHorario()
4: parametrosAlgoritmo()5: ejecutarAlgoritmo()
6: validar()
7: mostrarHorariosConstruir()
8: salir()
Diagrama de Secuencia: Construir HorariosFuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Diagramas de Colaboración
Gestionar Usuario
: Administrador : Principal
: VUsuarios
: UsuariosDao : Usuario
1: ingresar()
2: abri r()
3: registrarNuevoUsuario()
4: introducirDatos()
5: validar()
6: guardarUsuario()
7: retornarProceso()
8: el iminarUsuario()
9: seleccionarDatos()10: eliminar()
11: confirmarProceso()
12: salir()
Diagrama de Colaboración: Gestionar UsuariosFuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Subsistema Gestionar kardex
Datos Personales
: Encargado RRHH
: Principal : Gestionar Personal
: Buscar
: PersonalDao
: Persona
4: veri ficarDatos()17: validarDatos()
1: abrir() 2: abrir()
20: salir()
8: mostrar()
3: añadirPersonal()13: eliminar()
16: actualizar()
7: confirmarProceso()12: mostrarPersonal()
9: parametros()
5: añañadirPersona10: buscarPersonal()
14: eliminarPersona()18: actualizarPersonal()
6: ok()11: retornarPersonal()
15: confirmarEliminar()19: confirmarActual izar()
Diagrama de Colaboración: Datos PersonalesFuente: [Elaboración propia]
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Experiencia Laboral
Diagrama de Colaboración: Experiencia LaboralFuente: [Elaboración propia]
REFERENCIA TÉCNICA
: Encargado RRHH
: Kardex : Buscar
: PersonalDao
: VExperienciaLab
: ExperienciaLaboralDao
: ExperienciaLabora
1: abrir() 2: buscar() 3: buscarPersonal()
4: retornarPersoanl()
5: insertarExpLab()
6: insertarDatos()
7: validar()
8: guardarDatos()
9: confirmarProceso()
10: eliminarExpLab()
11: seleccionar() 12: eliminar()
13: confirmarEliminar()
14: actualizarExpLab()
15: seleccionarExpLab( ) 16: actualizar()
17: confirmarActual izar()
18: salir()
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Situación Laboral
Diagrama de Colaboración: Situación LaboralFuente: [Elaboración propia]
REFERENCIA TÉCNICA
: Encargado RRHH
: Kardex : Buscar
: PersonalDao
: VSituacionLab
: SituacionLaboralDao
: Situacionlaboral
1: abrir() 2: buscar() 3: buscarPersonal()
4: retornarPersonal()
5: insertarSitLab()
6: insertarDatos()
7: validar()
8: guardarDatos()
9: confirmarProceso()
10: eliminarSitLab()
11: seleccionar() 12: eliminar()
13: confirmarEliminar()
14: actualizarSitLab()
15: seleccionarSitLab() 16: actualizar()
17: confirmarActual izar()
18: salir()
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Subsistema Control de Asistencia
Gestionar Turnos
Diagrama de Colaboración: Gestionar TurnosFuente: [Elaboración propia]
REFERENCIA TÉCNICA
: Encargado RRHH
: Principal : GestionarAsistencia
: VTurnos
: TurnosDao : Turnoss
1: ingresar() 2: abrir()
3: abri r()
4: registrarNuevoTurno()
5: llenarDatos() 6: validar()
7: guardarTurno()
8: confirmarProceso()
9: el iminarTurno()
10: seleccionarTurno()
11: eliminarTurno(idTurno)
12: confirmarEliminar()
13: salir()
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Asignar Turnos
Diagrama de Colaboración: Asignar TurnosFuente: [Elaboración propia]
REFERENCIA TÉCNICA
: Encargado RRHH
: GestionarAsistencia
: VPersonal : VTurnos : VTurnosAsignados
: PersonalTurnosDao : Personalturnos
: Principal
1: ingresar() 2: abrir()
3: abri r()4: seleccionarPersonal()
5: seleccionarTurnos()
6: asignarTurnos()
7: asignar()
8: turnosAsignados()
9: sali r()
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Gestionar Licencias
Diagrama de Colaboración: Gestionar LicenciasFuente: [Elaboración propia]
REFERENCIA TÉCNICA
: Encargado RRHH
: Principal : GestionarAsistencia
: VLicencias : LicenciaDao
: Licencia
1: ingresar() 2: abrir()
3: abrir()
4: intrudicirIDPersonal()
5: idPersonal()
6: veri ficar()
7: mostrarDatosPersonales()
8: registrarLicencia()
9: registrar()
10: mostrarLicencia()
11: seleccionarLicencia()
12: eliminarLicencia(id l ic)
13: eliminarLic()
14: confirmarProceso()
15: salir()
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Registrar Huella
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
: Encargado RRHH
: Principal
: VControlAsistencia : PersonalDao
: Persona
1: ingresar()
2: abri r()
3: activarModoInsercion()4: capturarHuella( )
5: buscarFotografia( )
6: registrarHF()
7: validar()
8: registrar()9: confirmarProceso()
10: desactivarModoInsercion( )
Diagrama de Colaboración: Registrar HuellaFuente: [Elaboración propia]
Marcar Asistencia
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
: Perssonal : VControlAsistencia : AsistenciaDao
: Asisstencia
1: registrarHuella() 2: enivarDatos()
3: validar()
4: registrarAsistencia()
5: visualizarDatosAsistencia()
Diagrama de Colaboración: Marcar AsistenciaFuente: [Elaboración propia]
Subsistema Construir Horarios
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Gestionar Asignaturas
: Encargado Horarios
: Principal : VGestionarHorarios
: VAsignaturas
: AsignaturasDao : Asignatura
1: ingresar() 2: abrir()
3: abri r()
4: registrarNuevaAsig
5: llenarDatos()
6: validar()
7: guardarDatos()
8: el iminarAsignaturas()
9: seleccionarAsignatura()
10: eliminarAsignatura()
11: confirmarEliminar()
12: actualizarAsignatura()
13: modificarDatos()
14: validar()
15: actualizarAsignaturas( )
16: confirmarActual izar( )
17: salir()
Diagrama de Colaboración: Gestionar AsignaturasFuente: [Elaboración propia]
Construir Horarios
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
: Encargado Horarios
: Principal : VConstruirHorarios
: VParametrosHorario
: VParametrosAlgoritmo : Algori tmoGenetico : VHorarios
1: ingresar() 2: abrir()
3: parametrosHorario()
4: parametrosAlgori tmo()
5: ejecutarAlgoritmo()
6: validar()
7: mostrarHorariosConstruidos()
8: sali r()
Diagrama de Colaboración: Construir HorariosFuente: [Elaboración propia]
Proceso de pruebas
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Pruebas de Unidad
Prueba Ingresar al Sistema
Datos de prueba
Titulo: Ingresar al SistemaTipo de prueba: Prueba de unidadTécnica de prueba: Caja BlancaResponsable: Proyectista
Objetivo de la prueba Verificar el ingreso al sistema con usuarios registradosDatos de entrada Nombre de usuario y contraseñaProcedimiento de prueba:Introducir el nombre de usuario en el campo UsuarioIntroducir la contraseña en el campo contraseñaClic en el botón aceptarProblemas Ninguno.
Prueba Gestionar Kardex
Datos de prueba Titulo: Kardex de PersonalTipo de prueba: Prueba de unidadTécnica de prueba: Caja Blanca
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Responsable: ProyectistaObjetivo de la prueba Comprobar el funcionamiento y desempeño de la gestión de kardex de
personal.Datos de entrada Datos personales del empleadoProcedimiento 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
Problemas El campo C.I. de personal y email no están validados.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 emailDar formato a todos los campos de tipo Date al formato requerido
Prueba Control de Asistencia
Datos de prueba
Titulo: Control de AsistenciaTipo de prueba: Prueba de unidadTécnica de prueba: Caja BlancaResponsable: Proyectista
Objetivo de la prueba Comprobar el funcionamiento del módulo control de asistencia del personal.
Datos de entrada Huella Digital del personal Procedimiento de prueba:Imprimir huella digital:
Problemas 1. Al colocar el dedo en el lector de huella digital no se conecta con la base de datos
2. No marca la hora de registro entrada en el turno asignado3. No controla el tiempo de atraso y abandonos
Solución 1. Revisar la conexión a la base de datos a través de la Unidad de Persistencia.
2. Implementar un módulo que permita tratar fechas y horas3.
Conclusiones 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
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Prueba Gestionar Turnos
Datos de prueba
Titulo: Gestionar TurnosTipo de prueba: Prueba de unidadTécnica de prueba: Caja BlancaResponsable: Proyectista
Objetivo de la prueba Comprobar el funcionamiento de la gestión de turnosDatos de entrada Datos relacionados a los turnosProcedimiento 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
Problemas Los campos que requieren formato de hora no están validados y al procesar no guarda en la base de datos.
Solución Implementar un método de validación para campos Time
Prueba Gestionar Asignar Turnos
Datos de prueba
Titulo: Asignar TurnosTipo de prueba: Prueba de unidadTécnica de prueba: Caja BlancaResponsable: Proyectista
Objetivo de la prueba Comprobar el funcionamiento de la asignación de turnosDatos de entrada Seleccionar turnos registrados Procedimiento de prueba:- Seleccionar Personal:
Clic en la Tabla para seleccionar personal- Seleccionar turno a asignar
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
Problemas NingunaSolución Ninguna
Prueba Gestión de Licencias
Datos de prueba
Titulo: Gestión de LicenciasTipo de prueba: Prueba de unidadTécnica de prueba: Caja BlancaResponsable: Proyectista
Objetivo de la prueba Comprobar el funcionamiento de la Gestión de LicenciasDatos de entrada Según criterio de búsqueda (Ci o Apellido) Procedimiento de prueba:
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
- 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 No verifica que el personal seleccionado tenga licencia y permiso la misma fecha
Solución Revisar código y restringir la asignación de permisos y licencias en la misma fecha
Prueba Generar Horarios
Datos de prueba
Titulo: Generar HorariosTipo de prueba: Prueba de unidadTécnica de prueba: Caja BlancaResponsable: Proyectista
Objetivo de la prueba Comprobar el funcionamiento de la Construcción de horariosDatos de entrada Datos para la construcción de horariosProcedimiento 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
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
- 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
Titulo: Módulo de gestión de usuariosTipo de prueba: Prueba de integraciónTécnica de prueba: Caja Blanca y de caja negraResponsable: Proyectista
Objetivo de la prueba 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, comprobándose tal hecho iniciando sesiones con diferentes cuentas de usuarios
Datos de entrada Nombre de usuario y contraseñaProcedimiento de prueba:
- Ingresar Nombre de Usuario- Ingresar Contraseña- Verificar que el menú asignado corresponda a las tareas asignados a dicho
usuario.
Problemas Ningún problema identificadoConclusión 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
Datos de prueba
Titulo: Módulo Gestión Kardex de PersonalTipo de prueba: Prueba de integraciónTécnica de prueba: Caja Blanca y de caja negraResponsable: Proyectista
Objetivo de la prueba Verificar si los datos del personal registrado son accesibles desde otros formularios que tienen relación con el personal y son persistidos en la Base de datos de manera correcta.
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Datos de entrada Datos del personalProcedimiento de prueba:
- Ingresar nuevo personal- Registrar Experiencia Laboral- Registrar Situación Laboral
Problemas Ningún problema identificadoConclusión 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
Datos de prueba
Titulo: Módulo Construir HorariosTipo de prueba: Prueba de integraciónTécnica de prueba: Caja Blanca y de caja negraResponsable: Proyectista
Objetivo de la prueba Verificar que todas las asignaturas que participarán en la construcción de horarios estén presentes en el Horario Construido
Datos de entrada Datos para la construcción de los Horarios (Asignaturas, periodos, aulasProcedimiento 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 No todas las asignaturas aparecen en el horario construidoError cuando el número de aulas por el numero de periodos es menos al número de asignaturas
Solución Revisar el código del Algoritmo Genético Implementar un método para revisar los parámetros de ejecución del algoritmo genético
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH 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 Tipo de Datoid_asig Integer NOT NULLcod_asig Stringnombre_asig Stringsemestre Stringcarga_horaria Stringcarrera Stringdocente Stringnivel String
Tabla Asistencia
Atributos Tipo de Datoid_asis Integer NOT NULLci Stringfecha Dateid_turno Integernombre_turno Stringentrada Timesalida Timeatraso Timeobservaciones String
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Tabla Aula
Atributos Tipo de Datoid_aula String NOT NULLbloque Stringdescripción String
Tabla AulaAsignada
Atributos Tipo de DatoidAulaAsig INT NOT NULLnivel Stringcarrera StringSemestre String
Tabla Calendario
Atributos Tipo de Datofecha Date NOT NULLdescripcion String
Tabla Carrera
Atributos Tipo de Datoid_carrera Integer NOT NULLnombre_carrera StringNivel String
Tabla ExperienciaLaboral
Atributos Tipo de Datoidel Integer NOT NULLlugarTrabajo Stringinstitucion Stringcargo Stringfecha_ingreso Datefecha_retiro Dateci String
Tabla Licencia
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Atributos Tipo de Datoid_licencia Integer NOT NULLci Stringdesde Datehasta Datemotivo_licencia String
Tabla Permisos
Atributos Tipo de Datoid_permisos Integer NOT NULLci Stringfecha Datenombre_turno StringMotivo String
Tabla Personal
Atributos Tipo de Datoci String NOT NULLpaterno Stringmaterno Stringnombres Stringsexo StringfechaNacimiento DategrupoSanguineo StringlugarNacimiento StringnivelEstudio StringestadoCivil StringaniosServicio Integercategoría Stringrda StringnumeroHijos Integerdireccion String telefono Stringemail Stringfotografia BlobtipoMarca Booleanhuella Blobpin StringProfesiones String
Tabla Profesiones
Atributos Tipo de Datocod_prof Integer NOT NULLnombre_profesion String
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
Tabla situacionLaboral
Atributos Tipo de Datoidsl Integer NOT NULLci Stringcargo Stringdesde Datehasta Dateitem Stringobservaciones StringtipoContrato StringsituacionLab Stringcargodocente String
Tabla Turnos
Atributos Tipo de Datoid_turno Integer NOT NULLdia Stringnombre_turno Stringhora_entrada Timehora_salida Timeentrada_minima Timeentrada_max Time salida_min TimeSalida_max Time
Tabla usuarios
Atributos Tipo de Datoidusuario Integer NOT NULLci_usuario Stringapellido_nombre Stringnombre_usuario Stringcontrasena Stringtipo_usuario Stringnivel_acceso Integer
Tabla horario
Atributos Tipo de DatoId Integer NOT NULLNombre StringhorarioCreado Blobcarrera Stringdocente Stringnivel String
REFERENCIA TÉCNICA
INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS
REFERENCIA TÉCNICA