control asistencia y construccion horarios.docx

312
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

Upload: edwinmoralesvargas3

Post on 20-Jan-2016

87 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 2: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 3: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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,

Page 4: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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.

Page 5: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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.

Page 6: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

Í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 -

Page 7: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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 -

Page 8: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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 -

Page 9: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx
Page 10: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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 -

Page 11: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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 -

Page 12: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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 -

Page 13: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

CAPITULO I

INTRODUCCIÓN Y OBJETIVOS

Page 14: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 15: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 16: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 17: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 18: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 19: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 20: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 21: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 22: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 23: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

CAPITULO II

MARCO CONTEXTUAL

Page 24: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 25: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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.

-

Page 26: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 27: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 28: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 29: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

CAPITULO III

MARCO TEÓRICO

CONCEPTUAL

Page 30: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 31: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 32: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 33: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 34: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 35: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 36: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 37: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 38: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 39: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 40: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 41: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 42: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 43: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 44: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 45: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 46: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 47: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 48: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 49: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 50: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 51: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 52: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 53: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 54: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 55: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 56: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 57: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 58: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 59: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 60: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 61: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

CAPITULO IV

DESARROLLO DEL

PROYECTO

Page 62: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 63: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 64: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 65: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 66: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 67: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 68: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 69: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 70: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 71: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 72: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 73: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 74: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 75: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 76: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 77: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 78: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 79: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 80: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 81: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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()

Page 82: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 83: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 84: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 85: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 86: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 87: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 88: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 89: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 90: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 91: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 92: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 93: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 94: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 95: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 96: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 97: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 98: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 99: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 100: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 101: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 102: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 103: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 104: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 105: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 106: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 107: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 108: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 109: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 110: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 111: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 112: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 113: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 114: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 115: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 116: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 117: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 118: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 119: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 120: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 121: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 122: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 123: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 124: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 125: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

CAPITULO V

DISCUSIÓN DE

RESULTADOS

Page 126: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 127: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 128: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 129: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 130: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 131: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 132: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 133: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 134: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 135: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 136: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 137: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 138: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 139: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 140: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 141: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 142: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS

REFERENCIA BIBLIOGRAFICA

Page 143: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 144: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 145: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 146: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

ANEXOS

Page 147: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 148: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 149: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 150: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 151: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 152: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 153: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 154: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 155: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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]

Page 156: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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]

Page 157: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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]

Page 158: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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]

Page 159: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS

ANEXO C

Page 160: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 161: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 162: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 163: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 164: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 165: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 166: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 167: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 168: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 169: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 170: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 171: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 172: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 173: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 174: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 175: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 176: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 177: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 178: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 179: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 180: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 181: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 182: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 183: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 184: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 185: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 186: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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()

Page 187: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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()

Page 188: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 189: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 190: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 191: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 192: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 193: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 194: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 195: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 196: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 197: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 198: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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()

Page 199: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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()

Page 200: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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()

Page 201: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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()

Page 202: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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()

Page 203: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS

Registrar Huella

REFERENCIA TÉCNICA

Page 204: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 205: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 206: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 207: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 208: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 209: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 210: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 211: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 212: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 213: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 214: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 215: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 216: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 217: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

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

Page 218: CONTROL ASISTENCIA Y CONSTRUCCION HORARIOS.docx

INGENIERÍA DE SISTEMAS SISTEMA DE CONTROL DE ASISTENCIA YUMRPSFXCH APOYO A LA CONSTRUCCION DE HORARIOS DE LA UPNMS

REFERENCIA TÉCNICA