UNIVERSIDAD DE GUAYAQUIL
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en SistemasComputacionales
“PROGRAMACION DE SOFTWARE DE ACCESOBIOMETRICO”
PROYECTO DE TESIS DE GRADOCURSO DE GRADUACIÓN
Previo a la Obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
Autores:
MARIUXI YOLANDA DOMÍNGUEZ AQUINO
CARLOS ENRIQUE VILLALTA HERRERA
OSCAR ANTONIO VINCES JARA
GUAYAQUIL-ECUADOR
Año: 2007
DECLARACIÓN EXPRESA
“La autoría de la tesis de grado corresponde exclusivamente al suscrito(s),
perteneciendo a la Universidad de Guayaquil los derechos que generen la
aplicación de la misma”
(Reglamento de Graduación de la Carrera de Ingeniería en Sistemas
Computacionales, Art. 26).
INDICE GENERAL
TRIBUNAL DE GRADUACIÒN I
DECLARACION EXPRESA II
ÌNDICE GENERAL III
INDICE DE CUADROS IV
INDICE DE DIAGRAMAS V
INDICE DE IMAGENES VI
RESUMEN
CAPÌTULO I
INTRODUCCIÒN
1.1. Análisis de la Problemática 1
1.2. Solución de la Problemática 2
1.3. Misión 3
1.4. Visión 4
1.5. Objetivos Generales 4
1.6. Objetivos Específicos 4
1.7. Riesgos 5
1.7.1.- Cuadro de Probabilidad e Impacto de los Riesgos 6
1.7.2.- Reducción de la Probabilidad 7
1.7.3.- Reducción del Impacto 8
1.7.4.- Evaluación de Riesgos 9
1.8. Alcances 12
1.9. Arquitectura 14
1.10. Cronograma 16
1.11. Recursos 17
1.11.1.- Software 17
1.11.2.- Base de Datos 20
1.11.3.- Hardware 21
1.11.4.- Recursos Humano 21
1.12. Metodología 22
1.12.1. Levantamiento de la Información 24
1.12.2. Restricciones del Proyecto 32
1.12.3. Estudio de Factibilidad 34
1.12.3.1.- Elementos Físicos 34
1.12.3.2.- Elementos Lógicos 34
1.12.3.3.- Elementos Humanos 35
1.12.3.4.- Administrativos 35
1.12.4. Análisis Funcional 36
1.12.5.- Diagramas de Flujo de Datos 39
1.12.5.1.- Proceso de Ingreso de Personal (Nivel 0) 39
1.12.5.2.- Diagrama General (Nivel 0) Dispositivo Dactilar 40
1.12.5.3.- Diagrama Flujo de Datos (Nivel 1) DispositivoDactilar -- Proceso de Asistencias
41
1.12.5.4.- Diagrama Flujo de Datos (Nivel 2)Proceso de Autentificación
42
1.12.5.5.- Diagrama Flujo de Datos (Nivel 2)Modulo de Marcaciones
43
1.12.6.- Diagrama de Eventos 43
CAPITULO 2
ANALISIS ORIENTADO A OBJETO
2.1 Actores que intervienen 45
2.1.1.- Identificar Actores 46
2.1.2.- Identificar Casos de Uso 47
2.2 Diagramas de Casos de Uso 48
2.1.1. Registro de Personal 48
2.1.2. Ingreso al Sistema 49
2.1.3. Empleado 49
2.1.4. Modulo de Reportes 50
2.1.5. Administrador 51
2.1.6. Usuario con Privilegios 52
2.3 Tarjetas CRC 53
2.3.1. CRC de EMPLEADO 53
2.3.2. CRC de TIPOUSUARIO 54
2.3.5. CRC de PERMISOAREA 55
2.3.6. CRC de PERMISOUSUARIO 56
2.3.7. CRC de PERMISO 56
2.3.8. CRC de DETALLE _ HORARIOS 57
2.3.9. CRC de HORARIO 57
2.3.10. CRC de EVENTO 58
2.3.11. CRC de ASISTENCIAS 58
2.3.12. CRC de DETALLEASISTENCIA 59
2.3.13. CRC de TIPOINFRACCION 59
2.3.14. CRC de INFRACCION 60
2.3.15. CRC de ROLUSUARIO 60
2.3.16. CRC de ROL 61
2.3.17. CRC de DIAS 61
2.3.18. CRC de FERIADO 62
2.3.19. CRC de HORAS _ EXTRAS 62
2.4Diagramas de Componentes 63
2.5Diagrama de Interfaz 64
2.6Diagramas de Interacción de Objetos 70
2.6.1. Diagrama de Secuencias 70
2.6.1.1. Registrar Empleado 70
2.6.1.2. Actualizar Registro de Empleado 71
2.6.1.3. Eliminar Registro de Empleado 72
2.6.1.4. Asignación de Áreas 73
2.6.1.5. Asignación de Horarios 74
2.6.1.6. Horas Extras 75
2.6.1.7. Reportes 76
2.6.2. Diagrama de Colaboración 77
2.6.2.1. Ingreso de Empleados 77
2.6.2.2. Reporte de Asistencia, Faltas y Atrasos General 78
2.6.2.3. Registros de Horas Extras 79
2.6.3. Diagrama de Actividades 80
2.6.3.1. Registro de Empleados 80
2.6.3.2. Horas Extras 81
2.6.3.3. Reporte de Asistencias 82
CAPITULO 3
DISEÑO ORIENTADO A OBJETO
3.1 Diagrama de Clases 83
3.2 Diagrama General 84
3.2.1. Descripción de Clases 84
3.2.1.1. Clase Empleados 84
3.2.1.2. Clase Departamentos 84
3.2.1.3. Clase Tipo/Usuario 85
3.2.1.4. Clase Eventos 85
3.2.1.5. Clase Horarios 86
3.2.1.6. Clase Permiso 86
3.2.1.7. Clase detalle_horario 86
3.2.1.8. Clase Feriado 87
3.2.1.9. Clase PermisoUsuario 87
3.2.1.10. Clase Asistencia 87
3.2.1.11. Clase DetalleAsistencia 88
3.2.1.12. Clase Infracción 88
3.2.1.13. Clase TipoInfraccion 89
3.2.1.14. Clase PermisoArea 89
3.2.1.15. Clase RolUsuario 89
3.2.1.16. Clase Áreas 90
3.2.1.17. Clase Rol 90
3.2.1.18. Clase Días 90
3.2.1.19. Clase Horas_Extras 91
3.3 Definición de la Estructura de Datos 91
3.4 MODELO ENTIDAD – RELACION 108
3.5.- COMPORTAMIENTO FUNCIONAL 110
3.5.1.- DESCRIPCION FUNCIONAL DE LA APLICACIÓN 110
3.5.1.1.- Modulo de Mantenimiento 110
3.5.1.2.- Modulo de Administración 112
3.5.1.3.- Modulo de Reportes 112
3.6.- DISEÑO DE PANTALLAS 116
3.6.1.- Mantenimiento 114
3.6.2.- Administración 120
3.6.3. Reportes 123
CAPITULO 4
DESARROLLO Y PRUEBAS
4.1 El ciclo de vida del Sistema Biométrico BioSystem 130
Prueba de base de datos 130
Prueba de clases 130
Prueba de integración de clases
5.1.1
130
Prueba de integración del sistema 130
Demostrar funcionamiento con el código 131
Prueba de cambios 131
Prueba de stress 131
Revisión técnica 131
Prueba de programas con datos de prueba 132
Prueba completa del sistema con datos de prueba. 132
Prueba de interfaz de usuario 133
Códigos de la Creación de la base 133
Códigos de Conexión 133
CAPITULO 5
IMPLEMENTACION
5.1 Instalación 135
CAPITULO 6
CONCLUSIONES 140
RECOMENDACIONES 142
BIBLIOGRAFIA
ANEXO: CRONOGRAMA
INDICE DE CUADROS
CAPÌTULO I
Cuadro 1.A.Cuadro de Probabilidad e Impacto de los Riesgos
6
Cuadro 1.BNiveles de Riesgo
9
Cuadro 1.C.Nomenclatura de Riesgos
10
Cuadro 1.D.Tabla de Riesgos
11
Cuadro 1.E.Arquitectura
14
Cuadro 1.F.Cronograma
16
Cuadro 1.G.Encuesta
30
Cuadro 1.H.Análisis Económico - Elementos Físicos (Hardware)
33
Cuadro 1.I.Análisis Económico - Elementos Físicos (Software)
33
Cuadro 1.J.Análisis Económico – Otras Herramientas
34
Cuadro 1.K.Análisis Económico – Elementos Humanos
34
Cuadro 1.L.Análisis Económico – Elementos Administrativos
34
CAPÌTULO 2
Cuadro 2.A.Actores que intervienen
45
Cuadro 2.B.Identificar actores
46
Cuadro 2.C.CRC DE EMPLEADO
53
Cuadro 2.D.CRC DE TIPOUSUARIO
54
Cuadro 2.E.CRC DE AREAS
54
Cuadro 2.F.CRC DE DEPARTAMENTOS
55
Cuadro 2.G.CRC DE PERMISOAREA
55
Cuadro 2.H.CRC DE PERMISOUSUARIO
56
Cuadro 2.I.CRC DE PERMISO
56
Cuadro 2.J.CRC DE DETALLE _ HORARIOS
57
Cuadro 2.K.CRC DE HORARIO
57
Cuadro 2.L.CRC DE EVENTO
58
Cuadro 2.M.CRC DE ASISTENCIAS
58
Cuadro 2.N.CRC DE DETALLEASISTENCIA
59
Cuadro 2.O.CRC DE TIPOINFRACCION
59
Cuadro 2.P.CRC DE INFRACCION
60
Cuadro 2.Q.CRC DE ROLUSUARIO
60
Cuadro 2.R.CRC DE ROL
61
Cuadro 2.S.CRC DE DIAS
61
Cuadro 2.T.CRC DE FERIADO
62
Cuadro 2.U.CRC DE HORAS _ EXTRAS
62
CAPÌTULO 3
Cuadro 3.A.Nombre de la tabla: EMPLEADOS
92
Cuadro 3.B.Nombre de la tabla: TIPOS DE USUARIOS
93
Cuadro 3.C.Nombre de la tabla: USUARIOS_OBJETOS_APLICACION
94
Cuadro 3.D.Nombre de la tabla: OBJETOS_APLICACION
94
Cuadro 3.E.Nombre de la tabla: ROLES _ USUARIOS
95
Cuadro 3.F.Nombre de la tabla: ROLES
96
Cuadro 3.G.Nombre de la tabla: ROLES_OBJETOS_APLICACION
96
Cuadro 3.H.Nombre de la tabla: MENUS
97
Cuadro 3.I.Nombre de la tabla: INFRACCIONES
97
Cuadro 3.J.Nombre de la tabla: TIPOS_INFRACIONES
98
Cuadro 3.K.Nombre de la tabla: PERMISOS
99
Cuadro 3.L.Nombre de la tabla: PERMISOS _ USUARIOS
99
Cuadro 3.M.Nombre de la tabla: ASISTENCIA
100
Cuadro 3.N.Nombre de la tabla: DETALLES _ PERMISOS
101
Cuadro 3.O.Nombre de la tabla: DETALLES _ ASISTENCIA
102
Cuadro 3.P.Nombre de la tabla: PERMISOS_X_AREA
103
Cuadro 3.Q.Nombre de la tabla: AREAS
103
Cuadro 3.R.Nombre de la tabla: TURNOS
104
Cuadro 3.S.Nombre de la tabla: DETALLES _ HORARIOS
104
Cuadro 3.T.Nombre de la tabla: EVENTOS
106
Cuadro 3.U.Nombre de la tabla: FERIADOS
107
Cuadro 3.V.Nombre de la tabla: HORAS _ EXTRAS
108
INDICE DE DIAGRAMAS
CAPÌTULO I
DIAGRAMA DE FLUJO DE DATOS
Diagrama 1PROCESO DE INGRESO DE PERSONAL--- (NIVEL 0)
38
Diagrama 2DISPOSITIVO DACTILAR --- (NIVEL 0)
39
Diagrama 3DISPOSITIVO DACTILAR --- (NIVEL 1)
40
Diagrama 4PROCESO DE AUTENTIFICACION --- (NIVEL 2)
41
Diagrama 5MODULO DE MARCACIONES --- (NIVEL 2)
42
DIAGRAMA DE EVENTOS
Diagrama 6USUARIO
43
Diagrama 7AREAS
43
Diagrama 8FERIADOS
43
Diagrama 9HORARIOS
44
CAPÌTULO 2
DIAGRAMAS DE CASOS DE USO
Diagrama 10Registro de Personal
48
Diagrama 11Ingreso al Sistema
49
Diagrama 12Empleado
49
Diagrama 13Modulo de Reportes
50
Diagrama 14Administrador
51
Diagrama 15Usuario con Privilegios
52
Diagrama 16Diagramas de Componentes
63
DIAGRAMAS DE INTERFAZ
Diagrama 17Diagrama de Introducción
65
Diagrama 18Diagrama de Logueo
66
Diagrama 19Diagrama de Interfaz de Usuario (sin información desglosable)
67
Diagrama 20Diagrama de Interfaz de Usuario (con información desglosable)
68
DIAGRAMA DE SECUENCIAS
Diagrama 21Registrar Empleado
70
Diagrama 22Actualizar Registro de Empleado
71
Diagrama 23Eliminar Registro de Empleado
72
Diagrama 24Asignación de Áreas
73
Diagrama 25Asignación de Horarios
74
Diagrama 26Horas Extras
75
Diagrama 27Reportes
76
DIAGRAMA DE COLABORACIÓNDiagrama 28Ingreso de Empleados
77
Diagrama 29Reporte de Asistencia, Faltas y Atrasos General
78
Diagrama 30Registros de Horas Extras
79
DIAGRAMA DE ACTIVIDADESDiagrama 31Registro de Empleados
80
Diagrama 32Horas Extras
81
Diagrama 33Reporte de Asistencias
82
CAPÌTULO 3Diagrama 34DIAGRAMA DE CLASES
83
DIAGRAMA GENERAL --- DESCRIPCIÓN DE CLASESDiagrama 35Clase Empleados
84
Diagrama 36Clase Departamentos
84
Diagrama 37Clase Tipo/Usuario
85
Diagrama 38Clase Eventos
85
Diagrama 39Clase Horarios
86
Diagrama 40Clase Permiso
86
Diagrama 41Clase detalle _ horarios
86
Diagrama 42Clase Feriado
87
Diagrama 43Clase PermisoUsuario
87
Diagrama 44Clase Asistencia
87
Diagrama 45Clase DetalleAsistencia
88
Diagrama 46Clase Infracción
88
Diagrama 47Clase TipoInfraccion
89
Diagrama 48Clase PermisoArea
89
Diagrama 49Clase RolUsuarios
89
Diagrama 50Clase Áreas
90
Diagrama 51Clase Rol
90
Diagrama 52Clase Días
90
Diagrama 53Clase Horas _ extras
91
Diagrama 54MODELO ENTIDAD – RELACION (sin campos)
108
Diagrama 55MODELO ENTIDAD – RELACION (con campos)
109
INDICE DE IMAGENES
CAPÌTULO 3
DISEÑO DE PANTALLAS
MANTENIMIENTO
Imagen 3.AEmpleados – Gestión – Ingreso
114
Imagen 3.BHorarios – Gestión/Consulta
115
Imagen 3.CHorarios – Actualización
116
Imagen 3.DEmpleados – Actualizar
117
Imagen 3.EFeriados
118
Imagen 3.FPermisos
119
ADMINISTRACION
Imagen 3.GPerfiles de Empleados
120
Imagen 3.HPantalla de Roles
121
Imagen 3.IHoras Extras
122
REPORTES
Imagen 3.JReportes de Empleados
123
Imagen 3.KReportes de Asistencia/ Faltas/ Atrasos
124
Imagen 3.LReportes de Asistencia/ Faltas/ Atrasos Diarios
126
Imagen 3.MReporte de Días Feriados
128
RESUMEN
La aplicación BioSystem fue desarrollada para tener un control de la
asistencia de los empleados en una empresa, esta aplicación fue diseñada
usando una arquitectura cliente servidor a través de un servidor de base de
datos postgreSQL, un servidor de aplicación Web como el Apache, mediante
el uso de Java como lenguaje de programación y de un gestor de reportes
como el JasperReports.
Para acceder a la información es necesario ingresar el código del empleado
con su respectiva clave, a través de un Web Browser
Gracias a la asignación de perfiles a los usuarios se puede controlar el tipo
de accesibilidad a las secciones de la aplicación, dándole así control sobre el
trato y procesamiento de la información.
Posibilitando la capacidad de enviar reportes en formato PDF o mediante un
documento Excel, les damos disponibilidad de la información de los
empleados a las personas que requieran de tal.
El propósito principal de esta aplicación es el de proporcionar a las empresas
la posibilidad de administrar las eventualidades producidas en la asistencias
de sus empleados, así como el control en el acceso a las áreas autorizadas a
estos, y poder tomar correctivos de ser necesario para solucionar estas
situaciones.
CAPITULO 1
1. Introducción
1.1.Análisis de la Problemática
La importancia significativa que representa el cumplimiento por parte
del personal respecto a la puntualidad y al respeto por las políticas o
normativas establecidas por parte de la organización sobre este tema,
implica poseer una metodología que regule de manera precisa, veraz
y por sobretodo eficiente y eficaz este tópico.
El control de asistencia que una organización realice de cada uno de
sus miembros, deberá representar fielmente la verdadera incidencia
del hecho, mostrando el tiempo real de ingreso y salida del lugar de
trabajo.
Otro importante aspecto que una organización debe controlar, es el
acceso de su personal a las áreas a las que ha sido autorizado su
ingreso, y a su vez el monitorear el intento de ingreso a áreas sin
permiso.
Reportar estas incidencias de una manera adecuada, implicara
adicionalmente de personal capacitado y con absoluta predisposición
a corresponder a las bases administrativas de la organización, y no a
2
imponer primero la amistad o inherencias personales para realizar
registro de eventos correspondientes al control de asistencia y control
de acceso. Este tipo de situación significara para la organización
improductividad, irrespeto por parte de sus empleados a las
reglamentaciones impuestas, y por ende representara un problema de
carácter financiero al no poder calcular de manera correcta las horas
trabajadas, multas, descuentos y horas extras.
1.2.Solución de la Problemática
Desarrollar un sistema informático que le permita a las empresas
gestionar la asistencia de sus empleados, controlando el acceso a las
diferentes áreas, es la alternativa que proponemos para resolver este
tipo de falencias mencionadas en el ítem anterior.
Con la utilización de la tecnología biométrica, la cual proporciona altos
índices de seguridad, se logrará registrar de manera exacta el
momento en que se efectúa una validación de ingreso o salida al
recinto laboral o a un área específica de la misma.
La tecnología biométrica a utilizar será de reconocimiento por huella
dactilar.
Se podrá almacenar el registro de los datos personales de los
empleados, descritos con su cargo y sus autorizaciones de ingreso a
3
áreas específicas. Cada empleado será asignado adicionalmente con
un código, el cual le servirá para consultas al sistema.
Este sistema brindará la capacidad de mantener el historial de
actividades de los empleados, bajo diferentes aspectos como: ingreso
y salidas normales, ingresos y salidas a lunch, permisos, horas extras,
ingreso a un área determinada.
El sistema ha desarrollar ofrecerá la capacidad de ingresar a la
información, bajo carácter de consulta, por vía Web dándole a conocer
tanto a personal administrativo (información general bajo parámetros)
como al personal laboral (información personal de sus actividades).
1.3.Misión
Proporcionar a las organizaciones la capacidad de mantener un eficaz
registro de asistencias de su personal, en diferentes aspectos o
eventos a considerar, dándole así la facilidad de establecer cálculos
de horas reales trabajadas, horas extras, e informe de multas e
infracciones de sus empleados; ofreciendo la facilidad de tomar
decisiones certeras sobre el accionar del personal, permitiéndole
encontrar soluciones que conlleven a mejorar la actitud de sus
miembros
4
1.4.Visión
Proporcionar a las organizaciones el mejor servicio de control de
asistencias de personal y de acceso.
1.5.Objetivos Generales
Proporcionar a la Administración de la organización, información sobre
el comportamiento de acceso de sus empleados, manteniendo de esa
forma un control de Asistencias en una empresa, con reportes
definidos, ya sean estos específicos por usuario, o generales de un
área o piso en particular, y de esta forma mantener una mayor
seguridad de la misma.
1.6.Objetivos Específicos
La capacidad de almacenar la información de todo acceso del
empleado mediante el uso del aplicativo.
Proporcionar la seguridad mediante control biométrico, a través de
la identificación de huellas dactilares.
Brindar una solución eficiente, segura y accesible al problema de la
identificación de las personas que ingresan a un determinado
lugar.
5
Brindar reportes en base a la información recolectada en la base
de datos, que representen con veracidad, eficiencia y eficacia las
necesidades de la Administración.
1.7.Riesgos
El riesgo que corremos con la biometría actual es que se olvida que
los procesos de identificación o autenticación son complejos y
delicados, y que por mucho que mejore la tecnología, no se puede
hacer reposar sobre ella la carga probatoria, y menos aún si lo hace
de forma exclusiva.
Entre los riesgos que encontramos durante el desarrollo del proyecto
tenemos:
Retraso en la entrega del proyecto
Falta de capacidad del personal
Factores externos, tales como: desastres naturales y/o suspensión
de fuente eléctrica, muertes, accidentes.
Falla del programa en el momento de la ejecución
Riesgo de contraer enfermedades en la piel (herpes, grietas,
callos, psoriasis)
Riesgos que el dispositivo biométrico se dañe (deje de funcionar).
Riesgo de que uno de los integrantes del grupo se retire
Riesgo de que no se termine el proyecto a tiempo
6
1.7.1.- Cuadro de Probabilidad e Impacto de los Riesgos
RIESGOS PROBABILIDAD1 - 100 (%)
IMPACTO(1-5)
Retraso en la entrega delproyecto 10 5
Falta de capacidad delpersonal 10 3
Factores externos20 5
Falla del programa en elmomento de la ejecución 30 4
Riesgo de contraerenfermedades en la piel 15 3
Riesgos que el dispositivobiométrico se dañe 10 2
De que uno de losintegrantes del grupo seretire
5 2
Que el proyecto se dañe30 4
Para cada peligro detectado debe estimarse el riesgo, determinando la
potencial severidad del daño y la probabilidad de que ocurra el hecho,
así como su impacto.
Cuadro 1.A.
7
1.7.2.- REDUCCIÓN DE LA PROBABILIDAD:
El primer riesgo se puede reducir si se realiza un itinerario de las
actividades que hay que realizar para poder terminar el proyecto a
tiempo y también poder cubrir fallos.
El segundo riesgo se puede reducir buscando personal que este
capacitado para que pueda formar parte del grupo de trabajo, o en
tal caso poder capacitarlo en un corto periodo.
El tercer riesgo es imposible controlarlo, ya que nadie puede
manipular los fenómenos naturales y ambientales.
El cuarto riesgo lo reducimos controlando y verificando todos los
posibles errores y fallos, para que el programa pueda ejecutarse
sin ningún inconveniente.
El quinto riesgo se puede reducir estableciendo políticas de
higiene.
El sexto riesgo se puede reducir estableciendo normas y un buen
funcionamiento del uso dispositivo biométrico.
El séptimo riesgo, es un riesgo de grupo y se puede reducir
mediante la comunicación, evitando las discrepancias entres los
miembros del grupo.
El octavo riesgo, se reducirá llevando varias copias de todos los
cambios que se estén efectuando en el transcurso de la realización
del proyecto
8
1.7.3.- REDUCCION DEL IMPACTO:
El riesgo se reduciría si el cliente o persona encargada permite que
la entrega del proyecto se la realice en un tiempo determinado
fuera del tiempo de entrega.
El riesgo se reduciría si se establece un cronograma de
capacitación para poder evitar así futuros inconvenientes.
En caso de que llegara a suscitarse este riesgo, se deberá cubrir
las actividades de la persona que sufrió el accidente o muerte entre
los demás miembros del grupo, en el caso de algún desastre
natural tener algún mecanismo de contingencias
En caso de presentar errores, se justificara y corregirá de forma
inmediata, de modo que se pida una prorroga para otra
presentación.
La empresa deberá contratar un equipo especializado (doctores)
para controlar la enfermedad de forma inmediata, evitando así
cualquier tipo de cuarentena.
Se debe constar con otro equipo (dispositivo biométrico), para no
tener inconvenientes en las pruebas del sistema.
Constar con un plan de contingencia, a fin de no demorar con la
entrega del proyecto.
Pedir prorrogas para otra presentación del funcionamiento del
sistema, al cliente o a las personas encargadas.
9
1.7.4.- EVALUACION DE RIESGOS
La evaluación de los riesgos es el proceso dirigido a estimar la
magnitud de aquellos riesgos que no hayan podido evitarse,
obteniendo la información necesaria para que la persona encargada
esté en condiciones de tomar una decisión apropiada sobre la
necesidad de adoptar medidas preventivas, y en tal caso, sobre el tipo
de medidas que deben adoptarse.
Niveles de Riesgo
Probabilidad
BajaB
MediaM
AltaA
Consecuencias
LigeramenteDañino
LD
Dañino
D
ExtremadamenteDañino
ED
Riesgo trivialT
Riesgotolerable
TO
Riesgo moderadoMO
Riesgo tolerableTO
Riesgomoderado
MO
Riesgo importanteI
Riesgomoderado
MO
Riesgoimportante
I
Riesgo intolerableIN
Cuadro 1.B.
10
Nomenclatura de Riesgos
Riesgo Acción y temporización
Trivial (T) No se requiere acción específica.
Tolerable(TO)
No se necesita mejorar la acción preventiva. Sin embargo se deben considerar solucionesmás rentables o mejoras que no supongan una carga económica importante.Se requieren comprobaciones periódicas para asegurar que se mantiene la eficacia de lasmedidas de control.
Moderado(MO)
Se deben hacer esfuerzos para reducir el riesgo, determinando las inversiones precisas.Las medidas para reducir el riesgo deben implantarse en un período determinado.Cuando el riesgo moderado esta asociado con consecuencias extremadamente dañinas,se precisará una acción posterior para establecer, con más precisión, la probabilidad dedaño como base para determinar la necesidad de mejora de las medidas de control.
Importante(I)
No debe comenzarse el trabajo hasta que se haya reducido el riesgo. Puede que seprecisen recursos considerables para controlar el riesgo. Cuando el riesgo corresponda aun trabajo que se está realizando, debe remediarse el problema en un tiempo inferior alde los riesgos moderados.
Intolerable(IN)
No debe comenzar ni continuar el trabajo hasta que se reduzca el riesgo. Si no es posiblereducir el riesgo, incluso con recursos ilimitados, debe prohibirse el trabajo.
Cuadro 1.C.
11
Tabla de Riesgos
RIESGOSPROBABILIDAD
B – M - ACONSECUENCIAS
LD – D - EDTIPO/RIIESGOT – TO – MO
– I - INRetraso en la entregadel proyecto B D TO
Falta de capacidad delpersonal M D I
Factores externosA ED I
Falla del programa enel momento de laejecución
M LD T
Riesgo de contraerenfermedades en la piel A ED IN
Riesgos que eldispositivo biométricose dañe
M LD TO
De que uno de losintegrantes del grupose retire
B LD TO
Que el proyecto sedañe B D MO
Cuadro 1.D.
12
1.8.Alcances
El software a implementar podrá administrar un módulo de control de
acceso, para lo cual se considerará:
La realización del respectivo módulo de ingreso de información de
los empleados, del cual nos encargaremos de su introducción a la
base de datos.
Se podrá configurar horarios de asistencias por empleado
(entradas, salidas).
Se podrá configurar el tipo de ejecución de su trabajo: por turno o
rotativo.
Registro de usuarios mediante un control de acceso al aplicativo ya
sea por niveles de autorización (Roles).
Registrar los horarios de entrada y salida que el empleado debe
cumplir permitiendo chequear las diferencias entre lo real y lo
planificado.
Administrar operadores: El operador del sistema podrá crear
perfiles a los diferentes privilegios que posee un empleado,
asignado por la empresa para tener acceso a ciertas opciones del
sistema.
13
Permitir generar informes dando la posibilidad de realizar diversas
consultas, entre ellas un seguimiento de los accesos de un usuario
en particular:
Informes de Entradas/ Salidas
Informes de Faltas / Retrasos
Informes de Horas Extras
Permitir conocer el total de horas trabajadas por empleados, en
base a un rango de fechas.
Todos los reportes son exportables a Excel, y en Adobe Reader
El aplicativo será desarrollado para trabajar en un ambiente WEB.
14
1.9.Arquitectura
La arquitectura cliente/servidor es un modelo para el desarrollo de sistemas
de información en el que las transacciones se dividen en procesos
independientes que cooperan entre sí para intercambiar información,
servicios o recursos. Se denomina cliente al proceso que inicia el diálogo o
solicita los recursos y servidor al proceso que responde a las solicitudes.
En este modelo las aplicaciones se dividen de forma que el servidor contiene
la parte que debe ser compartida por varios usuarios, y en el cliente
permanece sólo lo particular de cada usuario.
Los clientes realizan generalmente funciones como:
Manejo de la interfaz de usuario.
Captura y validación de los datos de entrada.
Generación de consultas e informes sobre las bases de datos.
Cuadro 1.E.
15
Siempre que un cliente requiere un servicio lo solicita al servidor
correspondiente y éste le responde proporcionándolo.
El proyecto de asistencia de personal se basara en el uso de la arquitectura
de 3 capas, en la cual se basa en:
Capa de datos
Capa de negocios
Capa de presentación
Al abrir un formulario Web de reportes o consultas de asistencias se usara la
capa de presentación.
Al procesar una transacción (insert – update- delete) esta es verifica por la
capa de negocios
Al grabar la información en una base datos se aplica la capa de datos
16
1.10. Cronograma
TAREA NOMBRE DE LA TAREA DIAS1 CRONOGRAMA DE ACTIVIDADES BIOSYSTEM 98 días2 CONCEPTUALIZACION DEL PROYECTO 23 días3 ANALISIS 67 días4 Levantamiento de de la Información 9 días5 Plan de Trabajo 5 días6 Análisis Económico 7 días7 Análisis Funcional 13 días8 Análisis de los Casos de Usos 6 días9 Análisis de Comportamiento 27 días
10 DISEÑO 19 días11 Estructura de los Objetos 10 días12 Comportamiento Funcional 7 días13 Avance de Entregables 4 días
Ver en ANEXO A.- CRONOGRAMA DE ACTIVIDADES COMPLETO
Cuadro 1.F.
17
1.11. Recursos
Los recursos que vamos a utilizar son los siguientes:
1.11.1.- Software:
El software con la cual trabajaremos lo detallaremos a continuación:
Servidor APACHE TOMCAT
DEFINICION: Tomcat es un servidor web con soporte de servlets y
JSPs. Incluye el compilador Jasper, que compila JSPs
convirtiéndolas en servlets. El motor de servlets de Tomcat a
menudo se presenta en combinación con el servidor web Apache.
Tomcat puede funcionar como servidor web por sí mismo. En sus
inicios, existió la percepción de que el uso de Tomcat de forma
autónoma era sólo recomendable para entornos de desarrollo y
entornos con requisitos mínimos de velocidad y gestión de
transacciones. Hoy en día ya no existe esa percepción, y Tomcat
es usado como servidor web autónomo en entornos con alto nivel
de tráfico y alta disponibilidad. Dado que Tomcat fue escrito en
Java, funciona en cualquier sistema operativo que disponga de la
máquina virtual.
18
Java Developer Kit JDK 1.5
DEFINICION: Java (Sun), es una tecnología desarrollada por Sun
Microsystems para aplicaciones software independiente de la
plataforma, que engloba:
Lenguaje de programación Java, un lenguaje de programación de
alto nivel, orientado a objetos
API Java provista por los creadores del lenguaje Java, y que da a
los programadores un ambiente de desarrollo completo
Máquina Virtual de Java (JVM), la máquina virtual que ejecuta
bytecode de Java. También se refiere a la parte de la plataforma
Java que se ejecuta en el PC, el entorno en tiempo de ejecución de
Java (JRE, Java Runtime Environment)
Applet Java es un programa usado para editar y/o crear programas
usados en Internet
Java Runtime Environment proporciona únicamente un
subconjunto del lenguaje de programación Java sólo para
ejecución. El usuario final normalmente utiliza JRE en paquetes y
añadidos.
Plataforma Java, la máquina virtual de Java, junto con las APIs
19
Sistema Operativos:
DEFINICION (LINUX FEDORA CORE 5):
Es la denominación de un sistema operativo y el nombre de un
núcleo. Es uno de los paradigmas del desarrollo de software libre
(código abierto), donde el código fuente está disponible
públicamente y cualquier persona, con los conocimientos
informáticos adecuados, puede libremente estudiarlo, usarlo,
modificarlo y redistribuirlo.
Software libre (en inglés free software) es el software que, una
vez obtenido, puede ser usado, copiado, estudiado, modificado y
redistribuido libremente.
DEFINICION (WINDOWS XP):
Es una línea de sistemas operativos desarrollado por Microsoft,
esta orientado a cualquier entorno informático, incluyendo
computadoras domesticas o negocios, computadoras portátiles y
media center. Windows XP es el sucesor de Windows 2000 y
Windows ME, es el primer sistema operativo de Microsoft orientado
al consumidor que se construye con un núcleo y arquitectura de
Windows NT.
20
1.11.2.- Base de Datos:
Servidor de Base de Datos PostgreSQL 8.1
DEFINICION: PostgreSQL es un servidor de base de datos
relacional libre, liberado bajo la licencia BSD. Es una alternativa a
otros sistemas de bases de datos de código abierto (como MySQL,
Firebird y MaxDB), así como sistemas propietarios como Oracle o
DB2.
La licencia BSD es la licencia de software otorgada principalmente
para los sistemas BSD (Berkeley Software Distribution). Pertenece
al grupo de licencias de software Libre. Esta licencia tiene menos
restricciones en comparación con otras como la GPL estando muy
cercana al dominio público. La licencia BSD al contrario que la GPL
permite el uso del código fuente en software no libre.
La licencia GPL (General Public License o licencia pública
general) es una licencia creada por la Free Software Foundation a
mediados de los 80, y está orientada principalmente a proteger la
libre distribución, modificación y uso de software. Su propósito es
declarar que el software cubierto por esta licencia es software libre
y protegerlo de intentos de apropiación que restrinjan esas
libertades a los usuarios.
21
1.11.3.- Hardware:
El sistema que se va a implantar manejara una red de área local en
la que habrá un servidor que administrara y almacenara una base
de datos opensource (POSTGRE), y un terminal donde poseerá el
aplicativo con la interfaz que se va a utilizar, también posee un
lector de huellas dactilar (Dispositivo biométrico Dactilar BIOPOD
APC).
1.11.4.- Recursos Humano:
El personal que se requiere para la elaboración del proyecto:
(Sistema Biométrico de Control de Asistencias del Personal
“BIOSYSTEM”) son los mismos que actuaran como analistas y
desarrolladores del sistema, cuyos nombres son:
Mariuxi Domínguez Aquino.
Carlos Villalta Herrera.
Oscar Vinces Jara.
1.12. Metodología
Análisis
Diseño
Desarrollo
Pruebas y corrección de errores
Implementación
22
Documentación
Nuestra metodología se basa en el Lenguaje Modelado Unificado
Usaremos diagramas de casos de uso, pues para ello se definirán los
actores para saber quienes ingresan y reciben información al sistema
en este diagrama podemos encontrar:
Determinación de Requerimientos: Por lo general nuevos
requerimientos de sistema generan nuevos usos-casos,
conforme es analizado y diseñado el sistema.
Comunicación con el Cliente: Debido a la sencillez de este tipo
de diagramas, son fáciles de emplear para comunicarse con el
cliente final del proyecto.
Generación de pruebas de Sistemas: A través de los diagramas
uso-caso se pueden generar una serie de pruebas de sistema.
Identificaremos si un usuarios actuarán con diferentes roles
Comprensión detallada de la funcionalidad del sistema
Gestión de riesgo más eficiente para gobernar la complejidad
Mayor control para mantener las sucesivas revisiones de los
programas
Documentación orientada al administrador del sistema
Se usará diagrama de actividades, para demostrar todas las series de
actividades que deben ser realizadas en un diagrama de caso de uso,
así como las distintas rutas que pueden irse desencadenando en el
23
diagrama de caso de uso. El diagrama de actividad nos ayudará a
definir en que orden se van a definir distintas tarea.
Se usará diagramas de interacción que consta de diagramas de
secuencia y diagramas de colaboración. Los diagramas de
colaboración representarán una posible interacción de los objetos
ordenados a partir de la topología que muestra el envío de sus
mensajes
Usaremos diagramas de clases que serán utilizadas dentro del
sistema y las relaciones que existen entre ellas.
Los diagramas de Clases por definición son estáticos, y poseen
características como:
Las mismas propiedades (Atributos)
El mismo comportamiento (Métodos)
Las mismas relaciones con otros objetos (Mensajes)
La misma semántica dentro del sistema
1.12.1 Levantamiento de la Información
Investigación Preliminar
Paso previo antes de la implementación, es la investigación
preliminar la cual es primordial dentro del análisis de los requisitos,
para conocer los métodos necesarios y técnicas que determinen la
buena funcionabilidad del sistema ha implementar .
24
Dentro de la investigación se analizó los diferentes medios que las
empresas mantienen para el control de asistencia de sus
empleados tales como:
A través de registros diarios (métodos manuales), La cual
consiste en ingresar la firma del empleado, lo cual conlleva a
determinar la asistencia de los mismos.
Uso de dispositivos magnéticos que controlan la asistencia de
los empleados a través de tarjetas magnéticas que registran la
puntualidad o retraso a la jornada laboral
Ingreso a través de la intranet, en la cual el empleado digita un
código y reporta su asistencia diaria.
Los datos obtenidos durante la recolección de información se baso
para determinar las características que tendrá el sistema de control
de asistencias, la investigación ayudo a comprender los
mecanismo esenciales del sistema que mantienen las empresas
necesarias para determinar la productividad de las actividades que
desempeñan las mismas.
Se evaluó la información necesaria para el control de los
empleados:
25
1. Ingreso y verificación de datos personales
2. Cumplimiento de asistencias
3. Estimación de áreas visitadas.
4. Determinación de estándares de control
1.- Ingreso y verificación de datos personales
Tener compresión de los datos del empleado, necesarios para
tener un control de las actividades diarias, información tal como:
Nombre del empleado
Departamento al que pertenece
Horario a laborar
Tiempo predeterminado de horas ha laborar
Tiempo establecido de hora de almuerzo o merienda
(según políticas establecidas por la empresa)
Y otras informaciones necesarias para mantener un registro de
sus asistencias.
2.- Cumplimiento de asistencias laboral
Para determinar si se cumplió con la asistencia laboral o se
produjo algún incumplimiento en los diferentes eventos de
control tales como:
Entrada Diaria
Salida Diaria
26
Se debe conocer el total de horas que se debe laborar, el
tiempo que se toma para el almuerzo la cual conllevan a
determinar el grado de cumplimiento en la jornada del
empleado.
3.- Determinación de estándares de control
Previa a la investigación de mecanismo de control de asistencia
notamos que las operaciones manuales no mantienen un
control eficiente en los procesos lo cual conlleva ha determinar
ciertos escenarios a considerar:
Uso de estándares de control
Vigilancia en el acceso a las áreas restringidas
Verificación del cumplimento en la jornada laboral
Faltas consecutivas del personal
Informe incorrectos de entradas o salidas.
Métodos empleados
Para disponer de un control más exhaustivo de los procesos se
investigo en ciertas empresas sus mecanismos de control de
asistencias.
27
Los métodos ha emplearse fueron:
A. La entrevista
B. La encuesta
C. La observación
A. ENTREVISTAS
Se realizaron entrevistas con el fin de conocer los procesos de
control de asistencia y de determinar si los mecanismos
implementados cumplen con las disposiciones que impone las
empresas a sus empleadores.
Para ello se realizaron preguntas abiertas con el fin de mantener
una mejor relación con el entrevistado
El resultado obtenido de la entrevista realizada fue el siguiente:
Al llegar el empleado registra su asistencia
Registra la hora de entrada
Registra su hora de lunch
Finalizando la jornada registra hora de salida
28
Dicha secuencia es irregular puesto que encontramos anomalías
tales como:
El empleador puede falsear la información del ingreso o salida
de la jornada de trabajo
No existe un control estricto en el acceso a las áreas
restringidas
En ocasiones existe indisponibilidad de guardias de seguridad
que vigilen dichos procesos
B. ENCUESTA
Se realizaron encuestas basadas en preguntas cerradas al
administrador con el fin de dar a demostrar una mejor solución a
los procedimientos de control de asistencia
29
MODELO DE CUESTIONARIO DE PREGUNTAS
1.- ¿UD. trabaja en alguna empresa de seguridad?
2.- Conoce algunos mecanismos de control de asistenciaSi [ ] No [ ]
Si la respuesta es Si mencione 2 medios----------------------------------------------------------------------------
3.- Cree usted que el servicio biométrico podría mejora el control deasistencias
Si [ ] No [ ]Si la respuesta es Si mencione 2 ventajas
-------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ------------------------------------------
3.- Utiliza algún sistema de control de asistencia para verificar atrasosSi [ ] No [ ]
Si la respuesta es si responda las siguientes alternativas3.1.- Con que sistema trabaja.
3.2.- El sistema falla.Normalmente [ ] Casi siempre [ ] Nunca [ ]
3.3.- Cuales son los problemas más frecuentes al utilizar el sistema.
4.- Con que frecuencia dispone de la información de asistencias de susempleados.Diaria [ ] Mensual [ ] Trimestral [ ] Otros[ ]Especifique si es Otros
5.- Como lleva el control de asistenciasManual [ ] Automatizada [ ]
30
Del cuestionario expuesto se obtuvo el siguiente muestreo
Encuesta General
Preguntas Alternativas CuantificaciónNúmero 1 Si
No2010
Número 2 SiNo
1416
Número 3 SiNo
255
Número 4 DiariaMensualTrimestralOtros
41556
Número 5 ManualAutomatizada
1911
Por medio de este muestreo se llego a la conclusión de que el
personal encargado de la seguridad, y control de asistencias; no
lleva un correcto control de las entradas y salidas de sus
empleados, originando varias falencias en su sistema.
C. OBSERVACIÓN
Se llevo una observación del proceso de seguridad y de asistencia
de personal.
Cuadro 1.G.
31
1.12.2 Restricciones del Proyecto
1. Unas de las primeras restricciones del proyecto es no poder
contar con un Dispositivo Biométrico Dactilar (Completo); ya
que por factores económicos este proyecto se realizara con un
Dispositivo Dactilar Básico (Lector de Huella).
2. Se reservara el derecho de hacer la lectura del dispositivo
dactilar en línea (ON – LINE), ya que como es un dispositivo
dactilar básico y económico no se cuenta con todos los
permisos del fabricante de dicho dispositivo, para poder ser
alterado su código fuente.
3. Se reserva todos los derechos del Dispositivo Biométrico
Biopod APC.
4. La presentación del proyecto se la realizara en un PC
(computador personal), con un software virtual que poseerá el
servidor LINUX y esta simulara otra maquina física conectada
con la PC
5. Tendrán acceso al sistema solo personal autorizado.
6. Al crear un nuevo usuario o empleado se le deberá asignar su
respectiva área así como su respectivo horario sin restricción
alguna
32
7. Al empleado se le guardara información de 4 huellas dactilares,
dos (2) por cada mano como minimo; en caso de corte o
desmembración.
8. Se necesitara 2 lectores biométricos; pero por factores
económicos mencionados anteriormente, el proyecto simulara
que trabajara con dos dispositivos independientes.
9. Solo existirá un administrador, y es aquel que poseerá todos los
privilegios de creación, consultas y de actualización del menú
del sistema
10.El Administrador y los Usuarios con Privilegios solo podrán
asignarle a cada empleado Perfiles con sus respectivos Roles.
11.Los usuarios con privilegios de actualización, creación y
consulta serán definidos previamente por el administrador.
12.Los empleados o usuarios solo tendrán acceso al menú de
REPORTES y al de SOPORTE.
33
1.12.3 Estudio de Factibilidad
ANALISIS ECONOMICO (Estudio realizado para Empresas Grandes)
1.11.3.1.- Elementos Físicos
Hardware
Para el desarrollo del sitio Web se requirió el uso de 2 máquinas
durante la duración de nuestro proyecto, en la cual una máquina
cumplirá con las funciones de Servidor de aplicaciones y de
Servidor de Base de Datos.
1.11.3.2.- Elementos Lógicos
Software
Se necesita de software para desarrollo de las páginas,
herramientas gráficas y de creación de animaciones, herramientas
de programación, base de datos
Uso de herramientas OpenSource tales como.
Cantidad DetalleV.total
1 Eclipse 0,001 LINUX FEDORA CORE 5 0,001 JDK (JAVA) 0,001 J2EE 4 0,001 POSTGRE 0,00
Total 00,00
Cantidad Detalle Valor1 Pentium IV, 512 RAM, HD 80 Gb 550,001 Pentium IV, 256 RAM, 120 Gb 400,00
1Dispositivo Biométrico DactilarFINGERPRINT READER 150,00Total 1100,00
Cuadro 1.H.
Cuadro 1.I.
34
Cuadro 1.J.
Y uso de otras herramientas tales como:
Cantidad DetalleV.total
1 Dreamweaver 35,001 PhotoShop 20,001 Visio 2000 20,00
Total 75,00
Herramientas adicionales en el desarrollo:
1.11.3.3.- Elementos Humanos
Se requiere de personal calificado a largo del desarrollo del mismo.
Un presupuesto de lo que costaría el recurso humano estaría
compuesto de:
1.11.3.4.- Administrativos
Valores por concepto de alquiler del dominio y por concepto de
marketing y publicidad.
Cantidad Detalle Valor1 Dominio 180,001 Marketing y publicidad 300,00
Total 480,00
PRESUPUESTO: Proyecto que estaría valorado en $3580,00.
Cantidad Detalle V. total1 Líder de Proyecto 400,001 Diseñador Gráfico 200,002 Analista – programador 300,001 Administrador de Red 300,001 DBA 300,001 Digitador 200,001 Especialista en Marketing y Publicidad 300,00
Total 2000,00Cuadro 1.K.
Cuadro 1.L.
35
1.12.4 Análisis Funcional
ANALISIS DE LA APLICACIÓN
En esta sección se hace referencia a analizar los requisitos del
sistema ha implementar, a través de la comprensión de los
procesos.
Se detalla los escenarios que presentara la aplicación de control de
asistencias:
El sistema de control de asistencia procesara la información de las
entradas, salidas, hora de almuerzos de un empleados mediante el
uso de un dispositivo biométrico que receptara las lectura dactilares
por cada evento ha registrar.
Los eventos ha registrar son los siguientes:
Entrada Diaria
Salida Diaria
Salida del almuerzo
Entrada del almuerzo
Se controlara los accesos al aplicativo por los usuarios a través del
ingreso a cada uno plasmando la huella dactilar en el sensor
biométrico.
36
La información procesada por el dispositivo dactilar se almacenara
en una base de datos en la cual se registrara los ingresos erróneos
y acertados por los empleados.
Al ingresar los datos del empleado el sistema registrara las áreas en
las cuales el empleador tendrá acceso, para ello el sistema constara
con la opción de ingreso de áreas correspondientes a la empresa.
El sistema contara con la opción de ingreso y modificación de
horarios laborales de sus empleados clasificados por:
Horario Vespertino
Horario Nocturno
Horario Diurno
Horario por turno
El sistema permitirá realizar Consulta y Actualización rápida de las
Asistencias, Faltas, permisos de cada uno de los empleados
Permitirá registrar los permisos, justificaciones de faltas anticipadas
por el usuario.
El sistema determinara el total de las horas extras del trabajador.
El sistema emitirá diferentes tipos de consultas y/o reportes los
cuales detallamos a continuación:
37
Consultas y reportes de los datos personales y laborables de los
empleados.
Consultas y reportes de cada una de las marcaciones que realizó
el empleado, durante un determinado periodo.
Consultas y reportes de las marcaciones erróneas que han
realizado los empleados.
Consultas y reportes de horas laboradas y horas extras durante
un determinado periodo.
Consultas y reportes del valor a cancelar por las horas que ha
laborado el empleado mensualmente.
Consultas y reportes de las diferentes novedades: faltas,
atrasos, permisos, justificaciones y vacaciones en un
determinado periodo.
1.12.5.- DIAGRAMAS DE FLUJO DE DATOS
1.12.5.1.- PROCESO DE INGRESO DE PERSONAL (NIVEL 0)
PersonaNatural
RegistrarDatos
Personales
Datos Información
Usuarios
Diagrama 1
39
1.12.5.2.- DIAGRAMA GENERAL (NIVEL 0) ---- DISPOSITIVO DACTILAR ----
InformaciónDactilar
EmpleadoAsistencia
Departamentode Recursos
Humanos
Dispositivo Dactilar
Presiona Informes TomaDecisiones
Diagrama 2
40
1.12.5.3.- DIAGRAMA FLUJO DE DATOS (NIVEL 1) ---- DISPOSITIVO DACTILAR ---
--- PROCESO DE ASISTENCIAS ---
Historial _ erradas
InformaciónReal
InformaciónDactilar
Empleado Autentificaciónde la
Información
Dispositivo Dactilar
Presiona
InformaciónErrónea
Asistencias
Módulos deMarcaciones
1
Diagrama 3
41
1.12.5.4.- DIAGRAMA FLUJO DE DATOS (NIVEL 2)
--- PROCESO DE AUTENTIFICACION ---
Huella no encontrada
Solicita
1
Verificaciónde la
existencia dela Huella
Modulo deMarcación
Reloj
Hora del Sistema
usuarios
DatosPersonales
Huella Identificada
GeneraReportes
Departamentode Recurso
Humano
TomaDecisiones
Historial _ errados
Diagrama 4
42
1.12.5.5.- DIAGRAMA FLUJO DE DATOS (NIVEL 2)
--- MODULO DE MARCACIONES ---
Procesa información
obtieneinformación
obtieneinformaciónModulo de
Marcación
infracciones detalles_ asistencias
feriados
Permisos x áreas
horarios
usuario
control de acceso
Diagrama 5
43
1.12.6.- DIAGRAMA DE EVENTOS
USUARIO
Nuevo
Actualizar
Eliminar
Consulta
Activo
Inactivo
ROLES
Nuevo
Actualizar
Eliminar
Consultar
FERIADOS
Nuevo
Actualizar
Eliminar
Consultar
Diagrama 6
Diagrama 7
Diagrama 8
CAPITULO 2
2 Análisis Orientado a Objetos
Los diagramas de Casos de Uso sirven para especificar la
funcionalidad y el Comportamiento de un sistema mediante su
interacción, con los usuarios y/o otros sistemas.
Elementos:
Identificamos a los actores que interactúan con el sistema
2.1. Actores que intervienen
Administrador
SISTEMA DE CONTROL DEASISTENCIA
Empleado
Usuario con Privilegios
Cuadro 2.A.
46
2.1.1.- IDENTIFICAR ACTORES
Administrador Empleado Usuario con privilegios
Rol de Administrador
Asignar a los Usuarios cualquiera de los roles creados en el sistema.
Quitar a los usuarios los roles asignados.
Reactivar Usuarios en el sistema
Actualizar roles del sistemas habilitando las opciones del menú.
Empleado
Ingreso a ciertas opciones del sistema
Consultas de reportes
Impresión de reportes.
Usuario con Privilegios
Dependerá de que privilegios el administrador le otorgue.
Cuadro 2.B.
47
2.1.2.- IDENTIFICAR CASOS DE USO
El sistema de control de asistencias debe controlar y/o aceptar:
Permitir el ingreso de usuarios al sistema.
Registrar los datos de un empleado
Asignar las áreas de libre acceso
Registrar los horarios de jornada laboral
Consultar registros de empleados
Imprimir reportes cuando el usuario lo solicita con la siguiente
información:
a. Datos personales
b. Tipos de acceso del Empleado
c. Departamento en la cual pertenece
El usuario administrador podrá asignar perfiles a los usuarios del
sistema
El administrador u usuarios con privilegios debe además poder
cambiar:
a. Información de los datos de un empleado
b. Restringir áreas que disponía de acceso
c. Modificación de horarios de trabajo
d. Justificación de horas extras
48
e. Ingreso de permisos
f. Justificación de permisos
El usuario podrá consultar sus asistencias, retrasos,
inconsistencias de horarios, información personal.
2.2.Diagramas de Casos de Uso.
2.2.1. Registro de Personal
Empleado
Administrador
Usuario con privilegios
Registrar Asistencia
<<extends>>
<<extends>>
<<extends>>
Diagrama 10
49
2.2.2. Ingreso al Sistema
Administrador
Empleado
Usuario con privilegios
Mantenimiento
<<extends>>
<<extends>>
Reportes<<extends>>
Administracion
<<extends>>
<<extends>>
<<extends>>
<<extends>>
2.2.3. Empleado
Empleado
Ingresar al Sistema
<<use>>
Consutas de información Personal
<<use>> Verificación de asistencias
Sistema Biosystem
<<extends>>
Generar reportes
<<extends>>
Reportes
<<extends>>
Diagrama 11
Diagrama 12
51
2.2.5. Administrador
Ingresar al Sistema
Otorgar Privilegios a los usuarios
Registrar empleados<<extends>
Registrar Areas
Administrador
Modificar datos del personal
Registrar departamentos
Registrar Horarios
Registrar tipos de Permisos
Registrar JustificacionesReportes
Sistema Biosystem
Mantenimiento
<<extends>
<<extends>
<<extends>
<<extends>
<<extends>
Administracion
<<extends>
<<extends>
Diagrama 14
52
2.2.6. Usuario con Privilegios
Ingresar al Sistema
Registrar empleados<<extends>
Registrar Areas
Usuario conPrivelegios Modificar datos del personal
Registrar departamentos
Registrar Horarios
Registrar tipos de Permisos
Registrar JustificacionesReportes
Sistema Biosystem
Mantenimiento
<<extends>
<<extends>
<<extends>
<<extends>
Administracion
<<extends>
<<extends>
Diagrama 15
53
2.3.- TARJETAS CRC
Las tarjetas CRC (Class Responsibility Collaborator), son una
metodología para el diseño de software orientado por objetos creada
por Kent Beck y Ward Cunningham.
Como una extensión informal a UML, la técnica de las tarjetas CRC se
puede usar para guiar el sistema a través de análisis guiados por la
responsabilidad. Las clases se examinan, se filtran y se refinan en
base a sus responsabilidades con respecto al sistema, y las clases
con las que necesitan colaborar para completar sus
responsabilidades.
2.3.1.- CRC DE EMPLEADO
HORARIOSTIPOUSUARIO
EMPLEADO
-Id_empleado String-nombres String-apellidos String-clave String-roles String-TipoUsuario TipoUsuario-Horario horario
Cuadro 2.C.
54
2.3.2.- CRC DE TIPOUSUARIO
2.3.3.- CRC DE AREAS
TIPOUSUARIO
-idTipoUsuario int-descripcion String-rol Rol
DEPARTAMENTOSPERMISOAREA
AREAS
-Id_areas String-descripcion String-estado String
Cuadro 2.D.
Cuadro 2.E.
55
2.3.4.- CRC DE DEPARTAMENTOS
2.3.5.- CRC DE PERMISOAREA
EMPLEADO
PERMISOAREA
--idPermisoArea String- Area area- Empleado IdEmpleado
AREAS
DEPARTAMENTOS
-Id_departamento String-Id_areas String-descripcion String-estado String
Cuadro 2.F.
Cuadro 2.G.
56
2.3.6.- CRC DE PERMISOUSUARIO
2.3.7.- CRC DE PERMISO
EMPLEADOSPERMISO
PERMISOUSUARIO
--idPermisoUsuarioint- permiso Permiso- empleado Empleado-fechaInicio Calendar-fechaFin Calendar
PERMISO
--idPermiso int- descripcion String
Cuadro 2.H.
Cuadro 2.I.
57
2.3.8.- CRC DE DETALLE_HORARIOS
2.3.9.- CRC DE HORARIO
HORARIOS
DETALLE_HORARIOS
--idDetalleHorario int- id_dia_horario int- idHorario Horarios- empleado Empleado- Hora time- evento Eventos- orden int
EMPLEADOS
HORARIOS
--idHorario String- Descripcion String
Cuadro 2.J.
Cuadro 2.K.
58
2.3.10.- CRC DE EVENTO
2.3.11.- CRC DE ASISTENCIAS
TIPOINFRACCION
EVENTOS
--idEvento int- descripcion String- segundosPermitidos int
ASISTENCIA
--idAsistencia int- empleado Empleado-fecha Calendar
Cuadro 2.L.
Cuadro 2.M.
59
2.3.12.- CRC DE DETALLEASISTENCIA
2.3.13.- CRC DE TIPOINFRACCION
EVENTOS
DETALLEASISTENCIA
--idDetalleAsistencia int- evento Evento-asistencia Asistencia-fecha Calendar
TIPOINFRACCION
--idTipoInfraccion int- descripcion String
Cuadro 2.N.
Cuadro 2.O.
60
2.3.14.- CRC DE INFRACCION
2.3.15.- CRC DE ROLUSUARIO
TIPOINFRACCION
INFRACCION
--idFraccion int- tipoInfraccion TipoInfraccion- empleado Empleado-fecha Calendar- duracion int- estado String- justificador Empleado- descripcionJustificacionString-asistencia Asistencia
EMPLEADO
ROLUSUARIO
-IdRolUsuario String-idRol String-Id_empleado Empleado
Cuadro 2.P.
Cuadro 2.Q.
61
2.3.16.- CRC DE ROL
2.3.17.- CRC DE DIAS
ROLUSUARIO
ROL
-idRol String-descripcion String-rol Rol-estado String
DIAS
--idDia int- estadoString
Cuadro 2.R.
Cuadro 2.S.
62
2.3.18.- CRC DE FERIADO
2.3.19.- CRC DE HORAS_EXTRAS
FERIADOS
--idFeriado int- descripcion String- estado String
EMPLEADO
HORAS_EXTRAS
-id_h_extras int-emp Empleado-id_horario Horarios-id_tipo_usuarioTipoUsuario-id_rol Rol
Cuadro 2.T.
Cuadro 2.U.
63
2.4. Diagramas de Componentes
S e rv id o r B D
< < d a ta b a s e > > P o s tg re s
P o s tm a s te r
T C P /IP
T C P /IP
J V M - J a v a V irtu a l M a c h in e
S e rv id o r W E B
J a v a J D B C
A c c e s o a B D
L o g ic a d e N e g o c io
In te rfa c e G rá fic a
C lie n te
B ro w s e r
J V M
Servidor Web
PeticionProcesar
Paginas JSP
Responde
Diagrama 16
64
SERVIDOR WEB
Un servidor Web es un programa que implementa el protocolo
HTTP (hypertext transfer protocol). Este protocolo está diseñado
para transferir lo que llamamos hipertextos, páginas web o páginas
HTML (hypertext markup language): textos complejos con enlaces,
figuras, formularios, botones y objetos incrustados como
animaciones o reproductores de sonidos.
PAGINAS JSP
JSP es un acrónimo de Java Server Pages, que en castellano
vendría a decir algo como Páginas de Servidor Java.
Con JSP podemos crear aplicaciones web que se ejecuten en
variados servidores web, de múltiples plataformas, ya que Java es
en esencia un lenguaje multiplataforma.
65
2.5. DIAGRAMAS DE INTERFAZ
2.5.1 Diagrama de Introducción
Introducción Flash alSistema
Link de Saltar Introducción
Este esquema mostrado a continuación representa la “Introducción al
Sistema” desarrollada a través de una animación Flash, adicional se observa
un link que permite saltarse esta introducción e irse a una pantalla con la
siguiente interfaz.
Diagrama 17
66
2.5.2. Diagrama de Logueo
Cabecera de Presentación de la Aplicación
Sección de Ingreso deDatos de Usuario y Password
En este esquema podemos observar la existencia de una cabecera donde
constara el nombre y logotipo de la aplicación, una sección donde se
realizara el ingreso de Usuario y Password para acceder al sistema.
La identificación exitosa procederá a mostrar otra u otras pantallas con
características similares a las siguientes.
Diagrama 18
67
2.5.3. Diagrama de Interfaz de Usuario (sin información desglosable)
Cabecera de Presentación de la Aplicación
Menú deOpciones
Informaciónde la sesión
Botones de Funciones
Procesamiento de la Información
En esta representación se observa una cabecera donde se muestra el
logotipo de la aplicación, una sección donde se contara con el menú de
opciones (ADMINISTRACION, MANTENIMIENTO, REPORTE, SOPORTE),
un área que proporcionará los datos del usuario que inicio la sesión (nombre,
hora de inicio sesión), una sección de botones con funciones especificas
(bloquear programa, cambiar clave, cerrar sesión).
Se muestra una sección de procesamiento de información que es donde se
realizara la gestión (ingreso, modificación, eliminación) o consulta de datos
que no requiera información adicional en el registro.
Diagrama 19
68
Diagrama 20
Dependiendo de la opción seleccionada del menú y del tipo de perfil del
usuario en esta zonas se mostraran botones con opciones para GRABAR,
CONSULTAR, IMPORTAR A EXCEL, o ENVIAR VIA EMAIL.
2.5.4. Diagrama de Interfaz de Usuario (con información desglosable)
Cabecera de Presentación de la Aplicación
Menú deOpciones
Informaciónde la sesión
Botones de Funciones
Procesamiento de la InformaciónDatos Principales
Procesamiento de la InformaciónDatos Secundarios(Zona Desglosable)
En esta representación se observa una cabecera donde se muestra el
logotipo de la aplicación, una sección donde se contara con el menú de
opciones (ADMINISTRACION, MANTENIMIENTO, REPORTE, SOPORTE),
un área que proporcionará los datos del usuario que inicio la sesión (nombre,
69
hora de inicio sesión), una sección de botones con funciones especificas
(bloquear programa, cambiar clave, cerrar sesión).
Se muestra una sección de procesamiento de información de Datos
Principales que es donde se realizara la gestión (ingreso, modificación,
eliminación) o consulta de datos de nivel primario.
El área de procesamiento de información de Datos Secundarios, es decir
dependientes de los Datos Principales, esta se desglosará una vez
presionada la correspondiente acción que permita mostrarla ubicada dentro
de la sección de procesamiento de Datos Primarios.
Dependiendo de la opción seleccionada del menú y del tipo de perfil del
usuario en ambas zonas se presentaran botones con opciones para
GRABAR, CONSULTAR, IMPORTAR A EXCEL, o ENVIAR VIA EMAIL
70
Diagrama 21
2.6. Diagramas de Interacción de Objetos
2.6.1. Diagrama de Secuencias
2.6.1.1. Registrar Empleado
:Administrador
:InterfaceEmpleado ManejadorRegistroEmpleado :ManejadorPrincipal
7: ExecuteQuery(SQL)
:Empleado
:InterfaceBaseDatosRegistro
5: validarRegistroAdministrador(.log.pass)
:Base de Datos Registro
1:Petición
3:Logeo(log,pass))
8: OK
2: desplegarPantalla(PantallaPrincipal)
4: manejarEvento(Logeo)
6: validarRegistro(RegistroAdministrador.log.pass)
9: OK
10: OK
11: Registrar
12: manejarEvento(Registrar)
13: crearRegistro(registroEmpleado)14: ExecuteInsert
(SQL)
15: OK16: OK
17: desplegarPantalla(pantallaRegistroEmpleado)
PODRA
:InterfaceLogeo
71
Diagrama 22
2.6.1.2. Actualizar Registro de Empleado
:Administrador
:InterfaceEmpleado ManejadorRegistroEmpleado
:ManejadorPrincipal
7: ExecuteQuery(SQL)
:Empleado
:InterfaceBaseDatosRegistro
5: validarRegistroAdministrador(.log.pass)
:Base de Datos Registro
1:Petición
8: OK
2: desplegarPantalla(PantallaPrincipal)
4: manejarEvento(Logeo)
6: validarRegistro(RegistroAdministrador.log.pass)
9: OK
10: OK
::ManejadorConsultas
11: ofrecerConsulta()
12: desplegarPantalla(PantallaConsuta)13:ObtenerRegistro(int id_usuario)
14: manejarEvento(ObtenerRegistro)
15: obtenerRegistroEmpleado()
16: desplegarPantalla(PantallaObtenerRegistroEmpleado)
17:Actualizar18: manejarEvento(Actualizar)
19: actualizarRegistro(RegistroEmpleado) 20: ExecuteUpdate(SQL)
21: OK
22: OK23: desplegarPantalla(PantallaObtenerRegistroEmpleado)
:InterfaceLogeo
3:Logeo(log,pass))
72
Diagrama 23
2.6.1.3. Eliminar Registro de Empleado
:Administrador
:InterfaceEmpleado ManejadorRegistroEmpleado
:ManejadorPrincipal
7: ExecuteQuery(SQL)
:Empleado
:InterfaceBaseDatosRegistro
5: validarRegistroAdministrador(.log.pass)
:Base de Datos Registro
1:Petición
8: OK
2: desplegarPantalla(PantallaPrincipal)
4: manejarEvento(Logeo)
6: validarRegistro(RegistroAdministrador.log.pass)
9: OK
10: OK
::ManejadorConsultas
11: ofrecerConsulta()
12: desplegarPantalla(PantallaConsuta)13:ObtenerRegistro(int id_usuario)
14: manejarEvento(ObtenerRegistro)
15: obtenerRegistroEmpleado()
16: desplegarPantalla(PantallaObtenerRegistroEmpleado)
17Eliminar18: manejarEvento(Eliminar)
19: ElimininarRegistro(RegistroEmpleado) 20: ExecuteUpdate(SQL)
21: OK
22: OK23: desplegarPantalla(PantallaObtenerRegistroEmpleado)
:InterfaceLogeo
3:Logeo(log,pass))
73
Diagrama 24
2.6.1.4. Asignación de Áreas
:Administrador
:InterfaceEmpleado ManejadorRegistroEmpleado
:ManejadorPrincipal
:Empleado
:Base de Datos Registro
:InterfaceArea ManejadorRegistroArea
18: AsignacionArea
19: manejarEvento(AsignacionArea)
:InterfaceBaseDatosRegistro
20: crearRegistroAreas(AsignacionArea)
21: ExecuteUpdate(SQL)
22: OK
23: OK
24: DesplegarPantallaAreas25: OK
74
Diagrama 25
2.6.1.5. Asignación de Horarios
:Administrador
:InterfaceEmpleado ManejadorRegistroEmpleado
:ManejadorPrincipal
:Empleado
:Base de Datos Registro
:InterfaceHorario ManejadorRegistroHorario
26: AsignacionHorario
27: manejarEvento(AsignacionHorario)
:InterfaceBaseDatosRegistro
28: crearRegistroAreas(AsignacionHorario)
29: ExecuteInsert(SQL)
30: OK
31: OK
32: DesplegarPantallaHorario33: OK
75
Diagrama 26
2.6.1.6. Horas Extras
:Administrador
ManejadorRegistroEmpleado
:ManejadorPrincipal
7: ExecuteQuery(SQL)
:Empleado
:InterfaceBaseDatosRegistro
5: validarRegistroAdministrador(.log.pass)
:Base de Datos Registro
1:Petición
8: OK
2: desplegarPantalla(PantallaPrincipal)
4: manejarEvento(Logeo)
6: validarRegistro(RegistroAdministrador.log.pass)
9: OK
10: OK
:InterfaceLogeo
3:Logeo(log,pass))
ManejadorRegistroHoraExtra
12: manejarEvento(RegistrarHoraExtra)
17: DesplegarPantallaHoraExtra
:InterfaceHoraExtra
11: RegistrarHoraExtra()
13. Crea_RegistroHorasExtra(RegistrarHoraExtra)
14: ExecuteInsert(SQL)
15: OK
16:OK
76
Diagrama 27
2.6.1.7. Reportes
:Administrador
ManejadorRegistroEmpleado
:ManejadorPrincipal
7: ExecuteQuery(SQL)
:Empleado
:InterfaceBaseDatosRegistro
5: validarRegistroAdministrador(.log.pass)
:Base de Datos Registro
1:Petición
8: OK
2: desplegarPantalla(PantallaPrincipal)
4: manejarEvento(Logeo)
6: validarRegistro(RegistroAdministrador.log.pass)
9: OK
10: OK
:InterfaceLogeo
3:Logeo(log,pass))
ManejadorRegistroReportes
12: manejarEvento(ConsultarReportes)
17:DesplegarPantallaReportes
:InterfaceReportes
11: ConsultarReportes()
13.crearRegistroReportes(ConsultarReportes)
14: ExecuteIQuery(SQL)
15: OK
16:OK
78
Diagrama 29
2.5.2.2. Reporte de Asistencia, Faltas y Atrasos General8:
Ingr
esar
Ran
gode
Fech
as9:
Sel
ecci
onar
Fech
ade
lCal
enda
rio
13:SeleccionarEnvío
pore-mail
4:GenerarO
pciones13:S
eleccionarExportaraE
xcel
79
Diagrama 30
2.5.2.3. Registros de Horas Extras
Administrador Ventana de Identificación1: Logueo
Identificación Validada
2: Valida(usuario)3: Valida(contraseña)
Menú de AdministraciónEmpleado Seleccionado5: Realizar Busqueda de Empleado
Horas Extras Asignadas
10: Asignar Horas Extras
6: Seleccionar Empleado
80
Diagrama 31
2.5.3. Diagrama de Actividades
2.5.3.1. Registro de Empleados
LabelTime
Accesa alsistema
Ingresar Usuario yPassword
Comprobar Usuario yPassword
si
no
Ingresar unempleado
Procesar datospersonales
Asignar Areas de acceso
Asignar Turno Laboral
Registrar Horarios
Procesar Huellas Dactilar
sino EmpleadoRegistrado
Registro de Empleados
81
Diagrama 32
2.5.3.2. Horas Extras
Accesa alsistema
Ingresar Usuario yPassword
Comprobar Usuario yPassword
Horas extras
no
Procesar horasextras
Asignar empleado
si
82
Diagrama 33
2.5.3.3. Reporte de Asistencias
Accesa alsistema
Ingresar Usuario yPassword
Comprobar Usuario yPassword
no
Consultarasistencias
Consultarempleados
si
Reporte de Asistencias
Generar el Reporte
Enviar por mail
Diagrama 34
CAPITULO 3
3 Diseño Orientado a Objetos
3.1.Diagrama de Clases
+setApellidos() : void+setClave() : void+setNombres() :void+setRoles() : void+setHorario(): void+setTipoUsuario() : void+getTipoUsuario() :TipoUsuario+getHorario(): Horario+getIdEmpleado() :String+getRoles() : String+getClave() : String+getApellidos() : String+getNombres() : String
-Id_empleado String-nombres String-apellidos String-clave String-roles String-TipoUsuario TipoUsuario-Horario horario
Empleados
+setId_areas() : void+setDescripcion() : void+setEstado() :void+getId_areas() :String+getDescripcion() : String+getEstado() : String
-Id_areas String-descripcion String-estado String
Areas
+setId_departamento():void+setId_areas() : void+setDescripcion() : void+setEstado() :void+gettId_departamento():String+getId_areas() :String+getDescripcion() : String+getEstado() : String
-Id_departamento String-Id_areas String-descripcion String-estado String
Departamentos
+setDescripcion() : void+setEstado(): void()+setIdRol() :void+getIdRol(): String+getDescripcion() : String+getEstado() : String
-idRol String-descripcion String-rol Rol-estado String
Rol
+setDescripcion() : void+setIdTipoUsuario() : void+setUsuarios() :void+getRol(): Rol+getIdTipoUsuario() : int+getDescripcion(): String
-idTipoUsuario int-descripcion String-rol Rol
TipoUsuario
+setEstado() : void+setIdDia() : void+getIdDia() :int+getEstado(): String
Dias--idDia int- estadoString
+setDescripcion() : void+setIdEvento() : void+setSegundosPermitidos() :void+getIdEvento(): int+getDescripcion(): String+getSegundosPermitidos(): int
--idEvento int- descripcion String- segundosPermitidos int
Eventos
+setEvento() : void+setHora() : void+setIdDetalleHorario() :void+setDiaHorario(): void+setEmpleado(): void+setIdHorario(): void+setOrden: void+getEvento() : Evento+getHora(): Time+getIdDetalleHorario(): int+getOrden(): int+getIdHorario(): String
detalle_horarios--idDetalleHorario int- id_dia_horario int- idHorario Horarios- empleado Empleado- Hora time- evento Eventos- orden int
+setDescripcion() : void+setIdPermiso() : void+setIdPermiso() :int+getDescripcion(): String
--idPermiso int- descripcion String
Permiso+setIdFeriado() : void+setDescripcion() : void+setEstado() :void+getIdFeriado(): int+getDescripcion(): String+getEstado(): String
--idFeriado int- descripcion String- estado String
Feriado
+setIdPermisoUsuario() : void+setPermiso() : void+setEmpleado() :void+setFechaInicio():void+setFechaFin(): void+getIdPermisoUsuario(): int+getPermiso(): Permiso+getEmpleado() : Empleado+getFechaInicio() : Calendar+getFechaFin() : Calendar
--idPermisoUsuarioint- permiso Permiso- empleado Empleado-fechaInicio Calendar-fechaFin Calendar
PermisoUsuario
+setIdAsistencia() : void+setEmpleado() :void+setFecha():void+getIdAsistencia(): int+getEmpleado() : Empleado+getFecha() : Calendar
--idAsistencia int- empleado Empleado-fecha Calendar
Asistencia
+setEvento() : void+setFecha() :void+setIdDetalleAsistencia():void+setAsistencia(): void+getIdDetalleAsistencia() : int+getFecha() : Calendar+getAsistencia():Asistencia
--idDetalleAsistencia int- evento Evento-asistencia Asistencia-fecha Calendar
DetalleAsistencia
+setDescripcion() : void+setIdTipoInfraccion() : void+getIdTipoInfraccion() :int+getDescripcion(): String
--idTipoInfraccion int- descripcion String
TipoInfraccion
--idFraccion int- tipoInfraccion TipoInfraccion- empleado Empleado-fecha Calendar- duracion int- estado String- justificador Empleado- descripcionJustificacion String-asistencia Asistencia
+setDescripcionJustificacion() : void+setDuracion() : void+setEstado() :void+setFecha():void+setIdFraccion(): void+setJustificador(): void+setEmpleado(): void+getTipoInfraccion() : TipoInfraccion+getAsistencia() : Asistencia+getEstado() : String+getFecha(): Calendar+getDescripcionJustificacion(): String+getDuracion(): int+getJustificador() Empleado
Infraccion1
1..*
+setIdPermisoArea() : void+setArea() : void+getid_empleado():String+getArea(): String+getPermisoArea(): String
--idPermisoArea String- Area area- Empleado IdEmpleado
PermisoArea1..*
1
1
1..*
11..*
11..*
1..*
1
1
1..*
1..*1
1
1..*
1..*
1
+setIdHorario() : void+setDescripcion() : void+getIdHorario() :String+getDescripcion(): String
Horarios--idHorario String- Descripcion String
1
1..*
11..*
+setRolEmpleado() : void +getIdRol(): String+getdEmpleado() : String+getdRolempleado() : String
-IdRolUsuario String-idRol String-Id_empleado Empleado
RolUsuarios
1..*1
1..*
1
+setid_horas_extras() : void+setIdTipoUsuario() : void+setUsuarios() :void+getRol(): Rol+getIdTipoUsuario() : int+getId_horas_extras(): String
-id_h_extras int-emp Empleado-id_horario Horarios-id_tipo_usuario TipoUsuario-id_rol Rol
Horas_Extras
1
1..*
84
Diagrama 35
Diagrama 36
3.2.Diagrama General
3.2.1. Descripción de clases
3.2.1.1. Clase Empleados
+setApellidos() : void+setClave() : void+setNombres() :void+setRoles() : void+setHorario(): void+setTipoUsuario() : void+getTipoUsuario() :TipoUsuario+getHorario(): Horario+getIdEmpleado() :String+getRoles() : String+getClave() : String+getApellidos() : String+getNombres() : String
-Id_empleado String-nombres String-apellidos String-clave String-roles String-TipoUsuario TipoUsuario-Horario horario
Empleados
3.2.1.2. Clase Departamentos
+setId_departamento():void+setId_areas() : void+setDescripcion() : void+setEstado() :void+gettId_departamento():String+getId_areas() :String+getDescripcion() : String+getEstado() : String
-Id_departamento String-Id_areas String-descripcion String-estado String
Departamentos
85
Diagrama 38
Diagrama 37
3.2.1.3. Clase Tipo/Usuario
+setDescripcion() : void+setIdTipoUsuario() : void+setUsuarios() :void+getRol(): Rol+getIdTipoUsuario() : int+getDescripcion(): String
-idTipoUsuario int-descripcion String-rol Rol
TipoUsuario
3.2.1.4. Clase Eventos
+setDescripcion() : void+setIdEvento() : void+setSegundosPermitidos() :void+getIdEvento(): int+getDescripcion(): String+getSegundosPermitidos(): int
--idEvento int- descripcion String- segundosPermitidos int
Eventos
86
Diagrama 41
Diagrama 40
Diagrama 39
3.2.1.5. Clase Horarios
+setIdHorario() : void+setDescripcion() : void+getIdHorario() :String+getDescripcion(): String
Horarios--idHorario String- Descripcion String
3.2.1.6. Clase Permiso
+setDescripcion() : void+setIdPermiso() : void+setIdPermiso() :int+getDescripcion(): String
--idPermiso int- descripcion String
Permiso
3.2.1.7. Clase detalle _ horarios
+setEvento() : void+setHora() : void+setIdDetalleHorario() :void+setDiaHorario(): void+setEmpleado(): void+setIdHorario(): void+setOrden: void+getEvento() : Evento+getHora(): Time+getIdDetalleHorario(): int+getOrden(): int+getIdHorario(): String
detalle_horarios--idDetalleHorario int- id_dia_horario int- idHorario Horarios- empleado Empleado- Hora time- evento Eventos- orden int
87
Diagrama 42
Diagrama 43
Diagrama 44
3.2.1.8. Clase Feriado
+setIdFeriado() : void+setDescripcion() : void+setEstado() :void+getIdFeriado(): int+getDescripcion(): String+getEstado(): String
--idFeriado int- descripcion String- estado String
Feriado
3.2.1.9. Clase PermisoUsuario
+setIdPermisoUsuario() : void+setPermiso() : void+setEmpleado() :void+setFechaInicio():void+setFechaFin(): void+getIdPermisoUsuario(): int+getPermiso(): Permiso+getEmpleado() : Empleado+getFechaInicio() : Calendar+getFechaFin() : Calendar
--idPermisoUsuarioint- permiso Permiso- empleado Empleado-fechaInicio Calendar-fechaFin Calendar
PermisoUsuario
3.2.1.10. Clase Asistencia
+setIdAsistencia() : void+setEmpleado() :void+setFecha():void+getIdAsistencia(): int+getEmpleado() : Empleado+getFecha() : Calendar
--idAsistencia int- empleado Empleado-fecha Calendar
Asistencia
88
Diagrama 45
Diagrama 46
3.2.1.11. Clase DetalleAsistencia
+setEvento() : void+setFecha() :void+setIdDetalleAsistencia():void+setAsistencia(): void+getIdDetalleAsistencia() : int+getFecha() : Calendar+getAsistencia():Asistencia
--idDetalleAsistencia int- evento Evento-asistencia Asistencia-fecha Calendar
DetalleAsistencia
3.2.1.12. Clase Infracción
--idFraccion int- tipoInfraccion TipoInfraccion- empleado Empleado-fecha Calendar- duracion int- estado String- justificador Empleado- descripcionJustificacion String-asistencia Asistencia
+setDescripcionJustificacion() : void+setDuracion() : void+setEstado() :void+setFecha():void+setIdFraccion(): void+setJustificador(): void+setEmpleado(): void+getTipoInfraccion() : TipoInfraccion+getAsistencia() : Asistencia+getEstado() : String+getFecha(): Calendar+getDescripcionJustificacion(): String+getDuracion(): int+getJustificador() Empleado
Infraccion
89
Diagrama 47
Diagrama 48
Diagrama 49
3.2.1.13. Clase TipoInfraccion
+setDescripcion() : void+setIdTipoInfraccion() : void+getIdTipoInfraccion() :int+getDescripcion(): String
--idTipoInfraccion int- descripcion String
TipoInfraccion
3.2.1.14. Clase PermisoArea
+setIdPermisoArea() : void+setArea() : void+getid_empleado():String+getArea(): String+getPermisoArea(): String
--idPermisoArea String- Area area- Empleado IdEmpleado
PermisoArea
3.2.1.15. Clase RolUsuarios
+setRolEmpleado() : void +getIdRol(): String+getdEmpleado() : String+getdRolempleado() : String
-IdRolUsuario String-idRol String-Id_empleado Empleado
RolUsuarios
90
Diagrama 50
Diagrama 51
Diagrama 52
3.2.1.16. Clase Areas
+setId_areas() : void+setDescripcion() : void+setEstado() :void+getId_areas() :String+getDescripcion() : String+getEstado() : String
-Id_areas String-descripcion String-estado String
Areas
3.2.1.17. Clase Rol
+setDescripcion() : void+setEstado(): void()+setIdRol() :void+getIdRol(): String+getDescripcion() : String+getEstado() : String
-idRol String-descripcion String-rol Rol-estado String
Rol
3.2.1.18. Clase Días
+setEstado() : void+setIdDia() : void+getIdDia() :int+getEstado(): String
Dias--idDia int- estadoString
91
Diagrama 53
3.2.1.19. Clase Horas_Extras
+setid_horas_extras() : void+setIdTipoUsuario() : void+setUsuarios() :void+getRol(): Rol+getIdTipoUsuario() : int+getId_horas_extras(): String
-id_h_extras int-emp Empleado-id_horario Horarios-id_tipo_usuario TipoUsuario-id_rol Rol
Horas_Extras
3.3 DEFINICION DE LA ESTRUCTURA DE DATOS
Base de Datos: DB_CTRASISTENCIA
Nombre de la tabla: EMPLEADOS
Descripción: Tabla que registra la información de los empleados de
la empresa al cual se le aplicará el control de asistencias
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_usuario
Id_tipo_usuario
Id_horario
Nombres
Varchar (20)
Int (11)
Int (11)
Varchar (50)
Clave primaria
Clave foránea
Clave foránea
Campoobligatorio
Cédula delusuario
Código de tipo deusuario
Código de horario
Nombres del
92
Apellidos
Identificación
Clave
Varchar (50)
Varchar (20)
Varchar (180)
Campoobligatorio
Campoobligatorio
Campoobligatorio
usuario
Apellidos delusuario
Código delusuario
Clave de acceso
Nombre de la tabla: TIPOS DE USUARIOS
Descripción: Tabla que registra la información de los tipos de
empleados de la empresa con su respectivo rol.
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_tipo_usuario
Descripción
Id_Rol
Int (11)
Varchar (30)
Varchar (20)
Clave primaria
Campoobligatorio
Campoobligatorio
Código de tipo deusuario
Descripción deltipo de usuario
Código del Roldel usuario
Cuadro 3.A.
Cuadro 3.B.
93
Nombre de la tabla: USUARIOS_OBJETOS_APLICACION
Descripción: Tabla que almacena la información de los diferentes
objetos que posee la aplicación, otorgando el permiso al usuario
para acceder a los mismos
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_usuario
Id_objeto
Id_tipo_usuario
Id_horario
Varchar (20)
Varchar (50)
Int (11)
Int (11)
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Cédula delusuario
Código del Objeto
Código de tipo deusuario
Código de horario
Nombre de la tabla: OBJETOS_APLICACION
Descripción: Tabla que almacena la información de las diferentes
opciones del menú que posee el aplicativo.
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_objeto
Descripción
Libre_acceso
Varchar (50)
Varchar (255)
Char (1)
Clave primaria
Campoobligatorio
Campoobligatorio
Código del Objeto
Descripción delobjeto
El Acceso delusuario a unaaplicación.
Cuadro 3.C.
Cuadro 3.D.
94
Nombre de la tabla: ROLES_USUARIOS
Descripción: Tabla que almacena la información de los diferentes
roles correspondiente a cada empleado.
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_rol
Id_usuarios
Id_tipo_usuario
Id_horario
Varchar (20)
Varchar (20)
Int (11)
Int (11)
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Código del rol
Cédula delusuario
Código del tipode usuario
Código de horario
Nombre de la tabla: ROLES
Descripción: Tabla que almacena la información de los diferentes
roles que administra el aplicativo
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_rol
Descripción
Varchar (20)
Varchar (255)
Clave primaria
Campoobligatorio
Código del rol
Descripción delrol
Cuadro 3.E.
Cuadro 3.F.
95
Nombre de la tabla: ROLES_OBJETOS_APLICACION
Descripción: Tabla que almacena la información de los diferentes
objetos que posee la aplicación, otorgando el permiso a través de
roles de usuarios para acceder a los mismos
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_rol
Id_objeto
Varchar (20)
Varchar (50)
Clave foránea
Clave foránea
Código del rol
Código del objeto
Nombre de la tabla: MENUS
Descripción: Tabla que posee las diferentes opciones que posee el
aplicativo
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_objeto
Id_menu_padre
Mensaje
Mnemonic
URL_cargar
Posición
Varchar (50)
Varchar (20)
Varchar (255)
Varchar (255)
Varchar (255)
Int (11)
Clave foránea
Campoobligatorio
Campoobligatorio
Campoobligatorio
Código del objeto
Código del menúpadre
Mensaje amostrar
Dirección URL
Cuadro 3.G.
96
Campoobligatorio
Campoobligatorio
Nombre de la tabla: INFRACCIONES
Descripción: Tabla que almacena la información de los diferentes
tipos de infracciones referente a las asistencias que registra cada
empleado o usuarios del aplicativo.
CAMPO TIPO DEDATO
CONSTRAINT DESCRIPCION
Id_infracción
Id_usuario
Id_tipo_usuario
Id_horario
Id_tipo_infracción
Id_asistencia
Fecha
Duración
Int (11)
Varchar (20)
Int (11)
Int (11)
Int (11)
Int (11)
date
int (11)
Clave primaria
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Campoobligatorio
Campo
Código de lainfracción
Cédula delusuario
Código del tipode usuario
Código delhorario
Código del tipode infracción
Código dedetalle deasistencia
Fecha de lainfracción
Cuadro 3.H.
97
Estado
Id_justificador
Descripción_justificación
char (1)
Varchar (20)
Varchar(255)
obligatorio
Campoobligatorio
Campoobligatorio
Campoobligatorio
Duración de lainfracción
Estado actual dela infracción
Cédula de lapersona quejustifica lainfracciónDetalle de lajustificación dela infracción
Nombre de la tabla: TIPOS_INFRACIONES
Descripción: Tabla que almacena la información de los diferentes
tipos de infracciones que se consideran dentro del sistema del
control de asistencias
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_tipo_infraccion
Descripción
Int (11)
Varchar (50)
Clave primaria
Campoobligatorio
Código del tipode infracción
Detalle de lainfracción
Cuadro 3.I.
Cuadro 3.J.
98
Nombre de la tabla: PERMISOS
Descripción: Tabla que almacena la información de los diferentes
permisos que se le otorga aun empleado.
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_permiso
Descripción
Int (11)
Varchar (50)
Clave Primaria
CampoObligatorio
Código delpermiso
Descripción delpermisoconcedido
Nombre de la tabla: PERMISOS _ USUARIOS
Descripción: Tabla que registra la información de los diferentes
permisos otorgados a un empleado
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_permiso_usuario
Id_permiso
Id_usuario
Id_tipo_usuario
Int (11)
Int (11)
Varchar (20)
Int (11)
Clave primaria
Clave foránea
Clave foránea
Clave foránea
Código delpermiso alusuario
Código delpermiso
Cédula delusuario
Cuadro 3.K.
99
Id_horario
Fecha_inicio
Fecha_fin
Int (11)
Date
Date
Clave foránea
Campoobligatorio
Campoobligatorio
Código del tipode usuario
Código delhorario
Fecha de iniciodel permiso
Fecha definalización delpermiso
Nombre de la tabla: ASISTENCIA
Descripción: Tabla que almacena la información de las asistencias
de los empleados en su jornada laboral
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_asistencia
Id_usuario
Id_tipo_usuario
Id_horario
Fecha
Int (11)
Varchar (20)
Int (11)
Int (11)
Date
Clave primaria
Clave foránea
Clave foránea
Clave foránea
Campoobligatorio
Código de laasistencia
Cédula delusuario
Código del tipode usuario
Código delhorario
Fecha del registrode asistencia
Nombre de la tabla: DETALLES _ PERMISOS
Cuadro 3.L.
Cuadro 3.M.
100
Descripción: Tabla que registra la información de los diferentes
justificaciones de los permisos que se le asigna a un empleado
CAMPO TIPO DEDATO
CONSTRAINT DESCRIPCION
Id_permiso
Id_evento
Id_detalle_asistencia
Id_asistencia
Id_tipo_infraccion
Id_usuario
Id_tipo_usuario
Id_horario
Int (11)
Int (11)
Int (11)
Int (11)
Int (11)
Varchar (20)
Int (11)
Int (11)
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Código delpermiso
Código delevento
Código deldetalle de laasistencia
Código de laasistencia
Código del tipode infracción
Cédula delusuario
Código del tipode usuario
Código delhorario
Cuadro 3.N.
101
Nombre de la tabla: DETALLES _ ASISTENCIA
Descripción: Tabla que almacena la información detallada de cada
una de las asistencias que registra los empleados
CAMPO TIPO DEDATO
CONSTRAINT DESCRIPCION
Id_detalles_asistencia
Id_asistencia
Id_usuario
Id_tipo_usuario
Id_horario
Id_evento
Fecha
Int (11)
Int (11)
Varchar (20)
Int (11)
Int (11)
Int (11)
Date
Clave primaria
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Campoobligatorio
Campoobligatorio
Código deldetalle deasistencia
Código delregistro deasistencia
Cédula delusuario
Código del tipode usuario
Código delhorario
Código delevento
Fecha delregistro
Cuadro 3.O.
102
Nombre de la tabla: PERMISOS_X_AREA
Descripción: Tabla que registra la información de los diferentes
áreas de acceso que posee cada empleado
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_usuario
Id_tipo_usuario
Id_horario
Id_area
Varchar (20)
Int (11)
Int (11)
Int (11)
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Cédula delusuario
Código del tipode usuario
Código delhorario
Código del área
Nombre de la tabla: AREAS
Descripción: Tabla que registra la información de los diferentes
áreas de la empresa.
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_area
Descripcion
Int (11)
Varchar (50)
Clave primaria
Campoobligatorio
Código del área
Nombre del área
Cuadro 3.P.
Cuadro 3.Q.
103
Nombre de la tabla: TURNOS
Descripción: Tabla que almacena la información de los diferentes
turnos de horarios laborales que se le asigna a los empleados o
usuario del aplicativo
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_horario
Descripcion
Int (11)
Varchar (50)
Clave primaria
Campoobligatorio
Código delhorario
Detalle delhorario
Nombre de la tabla: DETALLES _ HORARIOS
Descripción: Tabla que almacena la información de los diferentes
horarios que presenta un empleado, necesario para el control de
asistencias
CAMPO TIPO DEDATO
CONSTRAINT DESCRIPCION
Id_detalle_dia
Id_dia_horario
Int (11)
Int (11)
Clave primaria
Clave foránea
Código deldetalle del día
Código delhorario del día
Cuadro 3.R.
104
Id_horario
Id_evento
Id_detalle_asistencia
Id_asistencia
Id_tipo_infraccion
Id_usuario
Id_tipo_usuario
Hora
Orden
Int (11)
Int (11)
Int (11)
Int (11)
Int (11)
Varchar (20)
Int (11)
Time
Int (11)
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Campoobligatorio
Campoobligatorio
Código delhorario
Código delevento
Código deldetalle deasistencia
Código delregistro deasistencia
Código del tipode infracción
Cédula delusuario
Código del tipode usuario
Hora del registro
Orden delregistro
Cuadro 3.S.
105
Nombre de la tabla: EVENTOS
Descripción: Tabla que almacena la información de los diferentes
eventos que registra la empresa, necesarios para el control del
asistencias.
CAMPO TIPO DEDATO
CONSTRAINT DESCRIPCION
Id_evento
Id_detalle_asistencia
Id_asistencia
Id_tipo_infraccion
Id_usuario
Id_tipo_usuario
Id_horario
Descripción
Segundos_permitidos
Evaluación
Id_tipo_atraso
Int (11)
Int (11)
Int (11)
Int (11)
Varchar (20)
Int (11)
Int (11)
Varchar (30)
Int (11)
Varchar (10)
Int (11)
Clave primaria
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Clave foránea
Campoobligatorio
Campoobligatorio
Campoobligatorio
Código delevento
Código deldetalle deasistencia
Código delregistro deasistencia
Código del tipode infracción
Cédula delusuario
Código del tipode usuario
Código delhorario
Detalle delevento
Tiempo de graciapara el evento
106
Id_tipo_infracción_incumplimiento
Int (11) Campoobligatorio
Campoobligatorio
Estado de laacción delevento: antes odespues
Código del tipode atraso
Nombre de la tabla: FERIADOS
Descripción: Tabla que almacena la información de los días festivos
que se puede suscitar en un año laboral.
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_dia
Estado
Int (11)
Varchar (10)
Clave primaria
CampoObligatorio
Código delferiado
Estado delferiado: activo,inactivo
Cuadro 3.T.
Cuadro 3.U.
107
Nombre de la tabla: HORAS_EXTRAS
Descripción: Tabla que almacena la información referente a la hora
extra otorgables a un empleado o usuario del aplicativo.
CAMPO TIPO DE DATO CONSTRAINT DESCRIPCION
Id_h_extras
Id_usuario
Id_tipo_usuario
Id_horario
H_extras_entrad
H_extras_salid
Total
Int (11)
Varchar (20)
Int (11)
Int (11)
Varchar (5)
Varchar (5)
Int (11)
Clave primaria
Clave foránea
Clave foránea
Clave foránea
CampoObligatorio
CampoObligatorio
CampoObligatorio
Código de horasextras
Código delusuario
Código del tipode usuario
Código delhorario
Numero de horasextras a laentrada
Numero de horasextras a la salida
Total de horasextras asignadas
Cuadro 3.V.
110
3.5 .- COMPORTAMIENTO FUNCIONAL
3.5.1.- DESCRIPCION FUNCIONAL DE LA APLICACIÓN
El sistema de control de asistencias esta compuesto por 3
módulos
Modulo de Mantenimiento
Modulo de Administración
Modulo de Reportes
3.5.1.1.- Modulo de Mantenimiento
3.5.1.1.1.- Creación de Empleados, asignación de áreas y
horarios respectivos
Una vez que se contrata a un empleado da comienzo al
ingreso del mismo al sistema, con ello se debe de ingresar
cada uno de los datos personales del trabajador, para esto se
contará con una pantalla de gestión de mantenimiento del
empleado con opciones de modificaciones en la cual se podrá
además seleccionar las áreas en las cuales el empleador
tendrá accesos, los horarios rotativos o por turnos que
corresponden a su jornada laboral
111
3.5.1.1. 2.- Consultas de empleados
El usuario administrador contará con una pantalla de consulta
en la cual podrá visualizar la información correspondiente a
cada uno de los empleados.
Además contara con la opción de enviar dicha información por
correo a la Gerencia y/o usuario solicitante, u omitir un reporte
del mismo.
3.5.1.1.3.- Ingreso de Fechas Festivas
Se contara con una sencilla pantalla de ingreso de fechas
festivas la cual podrá ser controlada por el usuario
administrador o usuario con privilegios, dicha información será
indispensable en el control de asistencia de horas extras.
3.5.1.1.4.- Definiciones de permisos de usuarios
El usuario Administrador contara con una pantalla de ingreso
de tipos de permisos para la empresa, la misma en la cual se
podrá poner la descripción de los permisos, ya sea por
vacaciones, días festivos, etc.
112
3.5.1.2.- Modulo de Administración
3.5.1.2.1.- Definiciones de perfiles de usuarios
EL usuario Administrador contara con una pantalla de ingreso
de perfiles por usuario, la misma en la cual podrá:
Crear, eliminar y/o cambiar los roles de los Usuarios.
Asignación de privilegios a los usuarios
3.5.1.2.2.- Ingreso de Horas Extras
Se contara con una sencilla pantalla de ingreso de horas
extras, la cual podrá ser controlada por el administrador o
algún usuario con privilegios, en la cual podrá ingresar la hora
de inicio y fin del empleado que solicito la hora extra
NOTA: las horas extras deberán ser aprobadas por el
personal de RRHH.; o alguna persona asignada a autorizar
las horas extendidas
3.5.1.3.- Modulo de Reportes
3.5.1.3.1.- Reportes de Empleados
El usuario que desee conocer la información personal de un
empleado en particular o propia, de ser el caso, dispondrá de
una pantalla para obtener un reporte que podrá ser emitido
vía e-mail o importado a un documento Excel.
113
3.5.1.3.2.- Reportes de Asistencia
Reporte de Asistencia, Faltas y Atrasos General
El usuario con un perfil de rango superior tendrá la posibilidad
de obtener un reporte sobre las asistencias, faltas y atrasos
de los empleados, y emitirlo por correo electrónico o
importarlo a un documento Excel.
Reporte de Asistencia, Faltas y Atrasos Individual
El usuario con un perfil de rango inferior tendrá la posibilidad
de obtener un reporte sobre la información de asistencias,
faltas y atrasos solo de si mismo. Podrá emitirlo vía e-mail o
importarlo a un documento Excel.
3.5.1.3.3.- Reporte de Días Feriados
El usuario tendrá un reporte de los días feriados que maneja
la empresa dentro de su calendario laboral, a fin de que
conozca sobre la suspensión de actividades.
La información podrá ser exportada a Excel o enviada vía e-
mail.
114
Imagen 3.A
3.6.- DISEÑO DE PANTALLAS
3.6.1.- MANTENIMIENTO
3.6.1.1.- EMPLEADOS
3.6.1.1.1.- Gestión
Ingresar un nuevo personal para su respectivo control de asistencias
En esta pantalla el usuario deberá ingresar los datos correspondientes
a cada uno de los empleados que conforman la empresa, una vez
ingresados el registro del empleado, se mostraran tres link principales:
Áreas, Horarios, Dispositivo
115
Imagen 3.B
Áreas: Mostrara el detalle de todas áreas que conforman la empresa,
mediante esta pantalla se podrá seleccionar las respectivas áreas a
las cuales el empleado podrá acceder
Horarios: Se podrá crear un horario respectivo por cada empleado,
dependiendo de su jornada laboral, por lo cual el usuario
administrador u usuarios con privilegios, podrá seleccionar dos tipos
de horario: Rotativo y Por turno
Rotativo: Permitir el ingreso de las horas entrantes de cada uno
de los eventos del trabajador, en la cual se podrá marcar sus
días laborables
116
Imagen 3.C
Detalle de eventos:
Entrada Diaria, Salida Almuerzo, Entrada Almuerzo,
Salida Diaria
Por turno: Permitir el ingreso de las horas entrantes de cada
uno de los eventos del trabajador en un turno laboral,
permitiendo seleccionar los días en los cuales se tendrá un
turno fijo de trabajo.
En esta pantalla se contara con la opción de modificar los horarios
laborables
Dispositivo: El usuario administrador podrá disponer de la opción de
ingreso de la huella dactilar de cada empleado, se podrá ingresar
117
Imagen 3.D
hasta 10 huellas de cada uno los dedos de la mano por cada
trabajador.
Esta opción podría ser un enlace a otra aplicación dependiendo de las
herramientas disponibles para la conexión del dispositivo
3.6.1.1.2.- Consulta
Esta pantalla contará con la opción de consultar los datos de un
empleado especifico a través del ingreso de su cedula, código laboral
o nombre respectivo, la cual mostrara la información del mismo, las
áreas en la cual pertenece y sus horarios laborables
118
Imagen 3.E
3.6.1.2.- FERIADOS
En esta pantalla el usuario administrador o usuario con privilegios
podrá ingresar las descripciones de fechas festivas, la fecha de inicio
y finalización de las mismas, además se mostrarán los días festivos
que se encuentran actualmente ingresadas, se contara con las
opciones de actualizar u eliminar una fecha festiva determinada.
119
Imagen 3.F
3.6.1.3.- PERMISOS
Esta pantalla permitirá al usuario administrador o usuario con
privilegios ingresar los registros de permisos de empleados por
motivos tales como: vacaciones, maternidad etc., indicando la
fecha de inicio y fin de permiso otorgado.
120
Imagen 3.G
3.6.2.- ADMINISTRACION
3.6.2.1.- PERFILES DE EMPLEADOS
En esta pantalla el administrador deberá ingresar el perfil indicado y
correspondiente a cada uno de los empleados que conforman la
empresa, en caso de no existir se podrá crear perfiles que satisfaga
las necesidades del usuario y del administrador, cada perfil se deberá
asignar un ROL, en caso de no haber un ROL que satisfaga las
necesidades del administrador también se podrá añadir ROL con sus
respectivos privilegios.
121
Imagen 3.H
Administración de Usuarios
Rol de Administrador.
Asignar a los Usuarios cualquiera de los roles creados en el sistema.
Quitar a los usuarios los roles asignados.
Reactivar Usuarios en el sistema
Actualizar roles del sistemas habilitando las opciones del menú.
PANTALLA DE ROLES
122
Imagen 3.I
3.6.2.2.- HORAS EXTRAS
Esta pantalla permitirá al usuario administrador o usuario con privilegios
ingresar las horas extendidas laborales de un empleado, dicho empleado
se lo puede buscar ya sea por el numero de cedula o por código del
empleado, el administrador deberá ingresar el motivo de su hora extra así
como también la hora de entrada y hora de salida.
NOTA: Dicho permiso de hora extra deberá ser aprobado por el personal
encargado o en su defecto por el departamento de RRHH.
123
Imagen 3.J
3.6.3. REPORTES
3.6.3.1.- REPORTES DE EMPLEADOS
En esta opción de reporte se proporciona el informe de datos
personales y operativos del empleado de la organización.
Para tener acceso a este informe se deberá ingresar o ubicar el
nombre del empleado cuyos datos se desea obtener a través del
combo de opciones que se proporciona.
El listado estará disponible para ser exportado a un documento Excel
o enviado vía e-mail.
124
Imagen 3.K
3.6.3.2.- REPORTES DE ASISTENCIA
3.6.3.2.1.- REPORTES DE ASISTENCIA/ FALTAS/ ATRASOS
Diseñada para ofrecer a usuarios de perfiles de mayor rango un
informe detallado sobre el desenvolvimiento de los empleados en lo
concerniente a la asistencia, sus faltas y sus atrasos.
Se deberá seleccionar en el listado de empleados que se proporciona
el nombre de quien se desea conocer su información, además
ingresar el rango de fechas del cual se requiera el informe.
Una vez establecidos estos parámetros la información a mostrar será
presentada de la siguiente manera:
Se establecen 4 columnas: la fecha en que se origino el evento
(dentro del rango escogido), el evento que se produjo, la hora en
125
que se activo el evento, y en la última columna, se establece el
tiempo de retardo que tuvo el empleado.
En cada fila se presenta la información del evento que se produjo
de la actividad del empleado, estos pueden dependiendo el caso:
ASISTENCIA: Entrada Diaria, Salida Diaria
ATRASOS: Entrada Tardía
FALTAS: No Asistencia, Salida Temprana
Podrá ser consultada la información de tantos empleados como el
usuario requiera.
La información podrá ser exportada a un documento Excel o enviada
vía e-mail, de acuerdo a la opción que escoja el usuario a través de
las opciones ubicadas al final de la página.
126
Imagen 3.L
3.6.3.2.2.- REPORTES DE ASISTENCIA/ FALTAS/ ATRASOS
DIARIOS
Diseñada para ofrecer a usuarios de perfiles de menor rango un
informe detallado sobre sus desenvolvimientos en lo concerniente a la
asistencia, sus faltas y sus atrasos.
Se deberá seleccionar el rango de fecha inicial y fecha final del cual se
requiera conocer el reporte.
Una vez establecidos estos parámetros la información a mostrar será
presentada de la siguiente manera:
127
Se establecen 4 columnas: la fecha en que se origino el evento
(dentro del rango escogido), el evento que se produjo, la hora en
que se activo el evento, y en la última columna, se establece el
tiempo de retardo que tuvo el empleado.
En cada fila se presenta la información del evento que se produjo
de la actividad del empleado, estos pueden dependiendo el caso:
ASISTENCIA: Entrada Diaria, Salida Diaria
ATRASOS: Entrada Tardía
FALTAS: No Asistencia, Salida Temprana
La información a la que se tendrá acceso solo será del usuario que se
identifique en el sistema, es decir sus actividades personales.
La información podrá ser exportada a un documento Excel o enviada
vía e-mail, de acuerdo a la opción que escoja el usuario a través de
las opciones ubicadas al final de la página.
128
Imagen 3.M
3.6.3.2.3.- REPORTE DE DÍAS FERIADOS
En esta página se podrá conocer los días feriados que dispondrá la
empresa para la suspensión de actividades.
Se deberá seleccionar en el listado de empleados que se proporciona
el nombre de quien se desea conocer su información, además
ingresar el rango de fechas del cual se requiera el informe.
Una vez establecidos estos parámetros la información a mostrar será
presentada de la siguiente manera:
129
Se establecen 3 columnas: la fecha de inicio del feriado, la
fecha de culminación, y la descripción del feriado.
En cada fila se presenta la información de los feriados dentro
del rango de fechas especificado, dando el motivo del feriado y
su período de duración.
La información podrá ser exportada a un documento Excel o
enviada vía e-mail, de acuerdo a la opción que escoja el usuario a
través de las opciones ubicadas al final de la página.
CAPÍTULO 4
DESARROLLO Y PRUEBAS
Pruebas
4. El ciclo de vida del Sistema Biométrico BioSystem
En el transcurso del desarrollo del sistema hemos realizado varias
pruebas de funcionamiento y control de todos los procesos contenidos
en el sistema, pruebas como:
Prueba de base de datos
Verificamos que las tablas se encuentren debidamente
relacionadas de acuerdo al DER (Diagrama de Entidad-Relación), y
verificamos que todos los campos que se encuentre en su
respectiva tabla este operativo.
Prueba de clases
Nos aseguramos que las clases que posee nuestro sistema estén
bien depuradas y sin ningún margen de error
Prueba de integración de clases
Nos aseguramos que las clases, y sus instancias, conforman un
software que cumpla con el comportamiento definido.
131
Prueba de integración del sistema
Realizamos pruebas para verificar que las partes del sistema
funcionan juntas, es decir probando las paginas con las conexiones
realizadas, ya que todas las pruebas fueron realizadas por módulos
independientes.
Demostrar funcionamiento con el código
Si un modelo realmente refleja lo que se necesita, o lo que se debe
construir, es la forma que reflejara buen funcionamiento del código.
Prueba de cambios
Después de realizar algún cambio en la aplicación, nos
aseguramos que la aplicación funcione de forma normal.
Prueba de stress
Nos aseguramos que el sistema funcione como se espera y sin
ningún problema, al cerciorarnos que soporta gran manejo de
información.
Revisión técnica
Cada integrante del grupo, reviso de forma exhaustiva,
independientemente con el objetivo de mostrar un sistema que se
enfoque en la precisión, calidad, facilidad de uso.
132
Prueba de programas con datos de prueba
En esta etapa, probamos primero el sistema para verificar la forma
en que el sistema trabajará. En la prueba de escritorio el seguimos
cada paso del sistema en papel para revisar si la rutina trabaja
como fue escrita.
A lo largo de este proceso revisamos las salidas buscando errores,
para su oportuna corrección
Prueba completa del sistema con datos de prueba.
En esta etapa, los operadores y los usuarios finales llegaron a estar
activamente involucrados en la prueba. Utilizamos datos de prueba
creado por nuestro estudio de análisis de sistemas para el
propósito específico de probar los objetivos del sistema.
Factores que consideramos cuando se probamos el sistema con
datos de prueba:
1. Examinamos que los operadores deberán tener documentación
adecuada en los manuales de procedimientos para lograr la
operación correcta y eficiente.
133
2. Revisamos que los manuales de procedimientos sean lo
suficientemente claros para comunicar como deben ser
preparados los datos para su entrada.
3. Aseguramos que el flujo de trabajo que necesita el sistema
nuevo o modificado de hecho fluye.
4. Determinamos si la salida es correcta y si los usuarios
comprenden que esta es, en todos los sentidos, la forma en que
la salida se vera en su forma final.
Prueba de interfaz de usuario
Probamos la interfaz de usuario para garantizar que cumple los
estándares y requerimientos definidos, y establecidos en los
alcances.
Desarrollo
Códigos de la Creación de la base
Scripts de base de datos
Script para la creación de la base de datos:
CREATE DATABASE "BIOMETRIC"WITH OWNER = postgres
ENCODING = 'UNICODE'TABLESPACE = pg_default;
134
Códigos de Conexion
Script de conexión
“hibernate-configuration”:
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-
3.0.dtd">
<hibernate-configuration><session-factory name="asistenciaBD">
<property name="hibernate.connection.driver_class">org.postgresql.Driver
</property><property name="hibernate.connection.url">
jdbc:postgresql://127.0.0.1:5432/biometric</property><property
name="hibernate.connection.username">postgres</property><property
name="hibernate.connection.password">postgres</property><property
name="hibernate.connection.pool_size">0</property><property name="hibernate.dialect">
org.hibernate.dialect.PostgreSQLDialect</property><!--<property name="hibernate.show_sql">true</property>--><mapping resource="clasesPersistentes/Rol.hbm.xml" /><mapping resource="clasesPersistentes/Usuario.hbm.xml" /><mapping resource="clasesPersistentes/HoraExtra.hbm.xml" /><mapping
resource="clasesPersistentes/PermisoUsuario.hbm.xml" /><mapping resource="clasesPersistentes/TipoUsuario.hbm.xml"
/><mapping
resource="clasesPersistentes/ObjetoAplicacion.hbm.xml" /><mapping
resource="clasesPersistentes/TipoInfraccion.hbm.xml" /><mapping resource="clasesPersistentes/Evento.hbm.xml" /><mapping resource="clasesPersistentes/Permiso.hbm.xml" /><mapping resource="clasesPersistentes/Asistencia.hbm.xml"
/><mapping
resource="clasesPersistentes/DetalleAsistencia.hbm.xml" /><mapping resource="clasesPersistentes/Infraccion.hbm.xml"
/><mapping resource="clasesPersistentes/Horario.hbm.xml" /><mapping resource="clasesPersistentes/Areas.hbm.xml" /><mapping resource="clasesPersistentes/DiaHorario.hbm.xml"
/><mapping resource="clasesPersistentes/DetalleDia.hbm.xml"
/><mapping resource="clasesPersistentes/Dia.hbm.xml" />
</session-factory></hibernate-configuration>
CAPITULO 5
IMPLEMENTACION
5.1. Instalación
Además de instalar las respectivas herramientas es importante tenerlas bien
configuradas.
Diríjase al sitio de Java en Java.sun.com y proceda a descargar el
paquete autoextraíble que contiene el RPM de Java™ 2 Runtime
Environment 1.4.2 desde
http://www.java.com/en/download/linux_manual.jsp.
Haga ejecutable jre-1_5_0_06-linux-i586-rpm.bin a fin de poder
extraerlo:
chmod +x jre-1_5_0_06-linux-i586-rpm.bin
Ejecute jre-1_5_0_06-linux-i586-rpm.bin:
./jre-1_5_0_06-linux-i586-rpm.bin
Lea la licencia y confirme que acepta los términos de la misma. Una
vez hecho lo anterior, se extraerá el paquete RPM jre-1_5_0_06-linux-
i586.rpm.
Como root instale jre-1_5_0_06-linux-i586.rpm:
136
surpm -Uvh jre-1_5_0_06-linux-i586.rpm
Proceda a crear el fichero /etc/profile.d/java.sh a fin de incluir en este
una línea que añadirá la ruta de binarios de Java
(/usr/java/jre1.5.0_06/bin, o lo que corresponda según la versión del
paquete RPM) siempre antes de las rutas predeterminadas de
ejecutables del sistema.
export PATH=/usr/java/jre1.5.0_06/bin:$PATHJAVA_HOME="/usr/java/jre1.5.0_06/"export JAVA_HOME
Haga ejecutable /etc/profile.d/java.sh:
chmod 755 /etc/profile.d/java.sh
Instale la extensión (Plug-in) Java™ para Mozilla del siguiente modo:
Si utiliza una versión de Mozilla, Firefox o Netscape compilada con GCC 3.x(Red Hat™ Enterprise Linux 3.0, CentOS 3.0 y versiones posteriores), deberáejecutar:ln -s /usr/java/jre1.5.0_06/plugin/i386/ns7/libjavaplugin_oji.so/usr/lib/mozilla/plugins/Si utiliza una versión de Mozilla o Netscape compilada con GCC 2.96 (RedHat™ Enterprise Linux 2.1 y CentOS 2.1), deberá ejecutar:ln -s /usr/java/jre1.5.0_06/plugin/i386/ns7-gcc29/libjavaplugin_oji.so/usr/lib/mozilla/plugins/
En algunas versiones del paquete RPM se incluye un fichero que
muestra una entrada para el escritorio, pero hay un error de omisión
en dicho fichero. Éste es responsable de que las preferencias de
Java™ aparezcan en el menú de preferencias del escritorio. De existir,
137
edite el fichero /usr/share/applications/sun_java.desktop y añada un ";"
al final de la línea Categories=Application;Settings, de modo tal que el
contenido quede del siguiente modo:
[Desktop Entry]Name=JavaComment=Java Control PanelExec=/usr/java/jre1.5.0_06/bin/ControlPanelIcon=/usr/java/jre1.5.0_06/plugin/desktop/sun_java.pngTerminal=0Type=ApplicationCategories=Application;Settings;
Si el fichero no existe, puede generarlo con el contenido anteriormente
mostrado.
Cierre todas las sesiones gráficas y de consola que estén abiertas y
vuelva a ingresar como usuario.
Instalamos servidor de Aplicaciones Web Apache Tomcat/5.5.20 en
directorio C:\Archivos de programa\Apache Software
Foundation\apache-tomcat-5.5.20 en Windows, y en Linux es
root/usr/local/ apache-tomcat-5.5.20
Seteamos variable CLASSPATH el common que se encuentra en el
tomcat5.20 \common\lib\servle.jar; \tomcat\common\lib\jsp-api.jar;. .
Seteamos variable de ambiente CATALINA_HOME = apache-tomcat-
5.5.20
Instalamos PostgreSQL 8.1 en el directorio \PostgreSQL\8.1 en el raiz
138
Deployamos /struts-blank en el directorio java\tomcat\webapps que es
la ruta de mi servidor de aplicaciones y seteamos el
CLASSPATH=\java\tomcat\common\lib\struts.jar
Deployamos Ant en el directorio \java\ant en la raiz y añadimos al
path java\ant\bin
Copiamos el archivo comprimido jar de postgresql-8.1dev-
403.jdbc3.jar en \Java\jdk1.5.0_07\jre\lib\ext
Copiamos el archivo comprimido jar de display tag displaytag-1.0-
b1.jar en C:\java\tomcat\webapps\control_rrhh\WEB-INF\lib
Copiamos el archivo comprimido de Librerías de etiquetas java para
servidor jstl.jar en C:\java\tomcat\webapps\control_rrhh\WEB-INF\lib
Editamos archivo WEB.xml para declarar ruta lógica de archivo de
definición de librería de etiqueta /WEB-INF/struts-template.tld
Editamos archivo WEB.xml para darle ruta lógica al archivo de
definición de librerias de etiqueta /WEB-INF/displaytag.tld
Editamos archivo WEB.xml para darle ruta lógica al archivo de
definición de librerias de etiqueta /WEB-INF/c.tld
Editamos archivo WEB.xml para darle ruta lógica al archivo de
definición de librerias de etiqueta /WEB-INF/tag.tld que es propia de
nuestro proyecto
139
Instalamos como IDE DreamWeaver 8 para desarrollo de archivos con
extensiones JSP, HTML, JS, que corresponde a la vista de la
aplicación y TLD que corresponde a la definición de etiquetas, XML
.que corresponden a la configuración de la aplicación, y el controlador
de la misma
Deployamos eclipse-SDK-3.1.2-win32. para el desarrollo de archivos
JAVA que corresponde al modelo de nuestra aplicación.
<!-- Struts Tag Library Descriptors -->
<taglib><taglib-uri>/tags/tags</taglib-uri><taglib-location>/WEB-INF/tags.tld</taglib-location>
</taglib>
CAPITULO 6
CONCLUSIONES
El proyecto elaborado ofrece como ventaja la de permitir a las organizaciones
mantener un control de las asistencias de sus empleados, eliminando el uso
de reportes manuales y por ende del tiempo para el procesamiento de
registros.
A lo largo del desarrollo del Sistema Biométrico hemos adquirido
conocimientos muy valiosos acerca de las herramientas Open Source, que
no solo el software Libre funciona bajo un ideal: el software propietario, al no
poder compartirse, es antiético dado que prohibir compartir entre seres
humanos va en contra las leyes naturales.
La biometría está entrando con fuerza en sectores vinculados a la relojería
industrial, y destinados al control de recursos humanos. El control de
presencia, control de puntualidad, control de horario, y control de
productividad, es esencial en la gestión de los recursos humanos en una
empresa. Una empresa que desee hacer una gestión de personal eficiente
debe tener herramientas que arbitren unas reglas de juego objetivas para
todos los trabajadores.
141
Este sistema en el momento de su creación suele ser extenso con los
registros de empleados, ya que se encarga de verificar el cumplimiento de
los empleados en una empresa registrando de esta forma si cumple con las
políticas de entrada y salida que una empresa dispuso.
Tiene como objetivo mantener el registro e información sobre el personal
Mantener actualizado la documentación y registros con todo lo
antecedente y la información del personal.
Controlar la asistencia de horarios de trabajos llevando un control
obligatorio.
Las empresas están gradualmente reconociendo la necesidad de mantener
controles de asistencia de forma automática mediante el uso de sistemas
biométricos, haciendo uso de los mismos, sin embargo se requiere de una
visión que determine que tipo de tecnología biométrica es la más adecuado
para la empresa.
La implementación de sistemas de control de asistencias a prevenir y
controlar problemas habituales referentes al cumplimiento de las jornadas
laborales, control de acceso a ciertos lugares restringidos por la
organización, aunque no sea una garantía de administrar la seguridad.
142
RECOMENDACIONES
El aplicativo desarrollado se limita a proveer la información de las asistencias
de los empleados de una entidad, proporcionando un soporte de toma de
decisión a la empresa con el fin de evaluar la productividad de los mismos.
El aplicativo implementado diseñado para funcionar dentro de una intranet
corporativa.
Para mantener un respaldo de la información es necesario realizar los
backup correspondiente a fin de proveer información actualizable en caso de
algún percance que motive la perdida de la data.
Realizar el mantenimiento de los dispositivos biométricos, con el propósito de
precautelar su correcto desempeño y obtener resultados veraces en la
identificación.
4.1Códigos de las Clases
Scripts de base de datos
Script para la creación de la base de datos:
CREATE DATABASE "BIOMETRIC"WITH OWNER = postgres
ENCODING = 'UNICODE'TABLESPACE = pg_default;
Script para la creación de la tabla “areas”:
CREATE TABLE areas(id_area varchar(20) NOT NULL,descripcion varchar(255) NOT NULL,CONSTRAINT id_area_pk PRIMARY KEY (id_area)
)WITHOUT OIDS;ALTER TABLE areas OWNER TO postgres;
Script para la creación de la tabla “asistencias”:
CREATE TABLE asistencias(id_asistencia numeric(11) NOT NULL,id_usuario varchar(10) NOT NULL DEFAULT ''::character varying,fecha date NOT NULL,CONSTRAINT id_asistencias_pk PRIMARY KEY (id_asistencia),CONSTRAINT asistencias_fk FOREIGN KEY (id_usuario)
REFERENCES empleado (id_usuario) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE asistencias OWNER TO postgres;
Script para la creación de la tabla “detalles_asistencias”:
CREATE TABLE detalles_asistencias(id_detalle_asistencia numeric(11) NOT NULL DEFAULT 0,id_evento numeric(11) NOT NULL DEFAULT 0,id_asistencia numeric(11) NOT NULL DEFAULT 0,fecha timestamp NOT NULL,CONSTRAINT id_detalles_asistencias PRIMARY KEY
(id_detalle_asistencia),CONSTRAINT detalles_asistencia_fk FOREIGN KEY (id_asistencia)
REFERENCES asistencias (id_asistencia) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT movimientos_fk FOREIGN KEY (id_evento)REFERENCES eventos (id_evento) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE detalles_asistencias OWNER TO postgres;
Script para la creación de la tabla “detalles_dias”:
CREATE TABLE detalles_dias(id_detalle_dia numeric(11) NOT NULL,id_dia_horario numeric(11) NOT NULL DEFAULT 0,hora time NOT NULL,id_evento numeric(11) NOT NULL DEFAULT 0,orden numeric(11),CONSTRAINT id_detalles_dias_pk PRIMARY KEY (id_detalle_dia),CONSTRAINT detalles_dias_fk FOREIGN KEY (id_dia_horario)
REFERENCES dias_horarios (id_dia_horario) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT detalles_horarios_fk1 FOREIGN KEY (id_evento)REFERENCES eventos (id_evento) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE detalles_dias OWNER TO postgres;
Script para la creación de la tabla “detalles_permisos”:
(CREATE TABLE detalles_permisos(id_permiso numeric(11) NOT NULL DEFAULT 0,id_evento numeric(11) NOT NULL DEFAULT 0,CONSTRAINT id_permisos_eventos_fk PRIMARY KEY (id_permiso,
id_evento),CONSTRAINT permisos_eventos_fk FOREIGN KEY (id_evento)
REFERENCES eventos (id_evento) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT permisos_eventos_fk1 FOREIGN KEY (id_permiso)REFERENCES permisos (id_permiso) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE detalles_permisos OWNER TO postgres;
Script para la creación de la tabla “dias_horarios”:
CREATE TABLE dias_horarios(id_dia_horario numeric(11) NOT NULL,id_horario numeric(11) NOT NULL DEFAULT 0,dia_semana numeric(11) NOT NULL DEFAULT 0,CONSTRAINT id_dias_horarios_pk PRIMARY KEY (id_dia_horario),CONSTRAINT dias_horarios_fk FOREIGN KEY (id_horario)
REFERENCES horarios (id_horario) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE dias_horarios OWNER TO postgres;
Script para la creación de la tabla “empleado”:
CREATE TABLE empleado(id_usuario varchar(20) NOT NULL DEFAULT ''::character varying,nombres varchar(80) NOT NULL,apellidos varchar(80),identificacion varchar(20) NOT NULL,
clave varchar(10) NOT NULL,huella_der_anular varchar(100),huella_izq_indice varchar(100),id_tipo_usuario numeric(11) DEFAULT 0,id_horario numeric(11),id_area varchar(20) NOT NULL,estado varchar(1) NOT NULL DEFAULT 'A'::character varying,sexo varchar(10),direccion varchar(40),f_ingreso date,email varchar(60),edad numeric(3),telefono varchar(10),celular varchar(10),CONSTRAINT id_usuario PRIMARY KEY (id_usuario),CONSTRAINT area_fd FOREIGN KEY (id_area)
REFERENCES areas (id_area) MATCH SIMPLEON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT id_horario_fk FOREIGN KEY (id_horario)REFERENCES horarios (id_horario) MATCH SIMPLEON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT usuarios_fk FOREIGN KEY (id_tipo_usuario)REFERENCES tipos_usuario (id_tipo_usuario) MATCH SIMPLEON UPDATE RESTRICT ON DELETE RESTRICT
)WITHOUT OIDS;ALTER TABLE empleado OWNER TO postgres;
Script para la creación de la tabla “enroll”:
CREATE TABLE enroll("template" bytea,id int4 NOT NULL DEFAULT nextval('enroll_id_seq'::regclass)
)WITHOUT OIDS;ALTER TABLE enroll OWNER TO postgres;
Script para la creación de la tabla “eventos”:
CREATE TABLE eventos(id_evento numeric(11) NOT NULL,descripcion varchar(30) NOT NULL DEFAULT ''::character varying,segundos_permitidos numeric(11) NOT NULL DEFAULT 0,clase_regla text,evaluacion varchar(10) NOT NULL DEFAULT ''::character varying,id_tipo_infraccion_atrazo numeric(11),id_tipo_infraccion_incumplimiento numeric(11),CONSTRAINT id_eventos_pk PRIMARY KEY (id_evento),CONSTRAINT eventos_fk FOREIGN KEY (id_tipo_infraccion_atrazo)
REFERENCES tipos_infracciones (id_tipo_infraccion) MATCHSIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,CONSTRAINT eventos_fkl FOREIGN KEY
(id_tipo_infraccion_incumplimiento)REFERENCES tipos_infracciones (id_tipo_infraccion) MATCH
SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE eventos OWNER TO postgres;
Script para la creación de la tabla “fechas_registro_incumplimientos”:
CREATE TABLE fechas_registro_incumplimientos(fecha date NOT NULL
)WITH OIDS;ALTER TABLE fechas_registro_incumplimientos OWNER TO postgres;
Script para la creación de la tabla “feriados”:
CREATE TABLE feriados(estado varchar(1) NOT NULL,descripcion varchar(255) NOT NULL,fecha_inicio date,fecha_fin date,id_dia numeric(11) NOT NULL,CONSTRAINT id_dia PRIMARY KEY (id_dia)
)WITHOUT OIDS;ALTER TABLE feriados OWNER TO postgres;
Script para la creación de la tabla “horarios”:
CREATE TABLE horarios(id_horario numeric(11) NOT NULL,descripcion varchar(60) NOT NULL,CONSTRAINT id_horario_pk PRIMARY KEY (id_horario)
)WITHOUT OIDS;ALTER TABLE horarios OWNER TO postgres;ALTER TABLE detalles_asistencias OWNER TO postgres;
Script para la creación de la tabla “horas_extras”:
CREATE TABLE horas_extras(id_horas_extras numeric(11) NOT NULL DEFAULT 0,id_usuario varchar(20) NOT NULL DEFAULT ''::character varying,h_extra_entrada timestamp NOT NULL,h_extra_salida timestamp NOT NULL,motivo varchar(100) NOT NULL DEFAULT ' '::character varying,estado varchar NOT NULL DEFAULT 'A'::character varying,CONSTRAINT id_horas_extras_pk PRIMARY KEY (id_horas_extras),CONSTRAINT usuarios_fk FOREIGN KEY (id_usuario)
REFERENCES empleado (id_usuario) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE horas_extras OWNER TO postgres;
Script para la creación de la tabla “identificador_huella”:
CREATE TABLE identificador_huella(id_usuario varchar(20) NOT NULL DEFAULT ''::character varying,estado varchar(1) NOT NULL DEFAULT 'A'::character varying,id int4 NOT NULL DEFAULT nextval('enroll_id_seq'::regclass),"template" bytea
)WITHOUT OIDS;ALTER TABLE identificador_huella OWNER TO postgres;
Script para la creación de la tabla “infracciones”:
CREATE TABLE infracciones(id_infraccion numeric(11) NOT NULL DEFAULT 0,id_tipo_infraccion numeric(11) NOT NULL DEFAULT 0,id_usuario varchar(20) NOT NULL DEFAULT ''::character varying,fecha timestamp NOT NULL,duracion numeric(11) NOT NULL DEFAULT 0,estado varchar(1) NOT NULL DEFAULT ''::character varying,id_justificador varchar(20),descripcion_justificacion text,id_asistencia numeric(11),CONSTRAINT id_infracciones_pk PRIMARY KEY (id_infraccion),CONSTRAINT infracciones_empleado_fk1 FOREIGN KEY (id_usuario)
REFERENCES empleado (id_usuario) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT infracciones_fk FOREIGN KEY (id_tipo_infraccion)REFERENCES tipos_infracciones (id_tipo_infraccion) MATCH
SIMPLEWITHOUT OIDS;ALTER TABLE infracciones OWNER TO postgres;
Script para la creación de la tabla “menus”:
CREATE TABLE menus(id_objeto varchar(255) NOT NULL DEFAULT ''::character varying,id_menu_padre varchar(255),mensaje varchar(255) NOT NULL DEFAULT ''::character varying,mnemonic varchar(255),url_cargar varchar(255),posicion numeric(11) NOT NULL DEFAULT 0,CONSTRAINT id_menus_pk PRIMARY KEY (id_objeto),CONSTRAINT menus_fk FOREIGN KEY (id_objeto)
REFERENCES objetos_aplicacion (id_objeto) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT menus_fk1 FOREIGN KEY (id_menu_padre)REFERENCES menus (id_objeto) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE menus OWNER TO postgres;
Script para la creación de la tabla “objetos_aplicacion”:
CREATE TABLE objetos_aplicacion(id_objeto varchar(50) NOT NULL DEFAULT '0'::character varying,descripcion varchar(255),libre_acceso char(1) NOT NULL DEFAULT 'N'::bpchar,CONSTRAINT id_objeto_pk PRIMARY KEY (id_objeto)
)WITHOUT OIDS;ALTER TABLE objetos_aplicacion OWNER TO postgres;
Script para la creación de la tabla “permiso_x_area”:
CREATE TABLE permiso_x_area(id_usuario varchar(20) NOT NULL DEFAULT ''::character varying,id_area varchar(20) NOT NULL DEFAULT ''::character varying,CONSTRAINT id_permiso_area_pk PRIMARY KEY (id_usuario, id_area)
)WITHOUT OIDS;ALTER TABLE permiso_x_area OWNER TO postgres;
Script para la creación de la tabla “permisos”:
CREATE TABLE permisos(id_permiso numeric(11) NOT NULL,descripcion varchar(255) NOT NULL DEFAULT ''::character varying,estado varchar(1) NOT NULL DEFAULT 'A'::character varying,CONSTRAINT id_permiso_pk PRIMARY KEY (id_permiso)
)WITHOUT OIDS;ALTER TABLE permisos OWNER TO postgres;
Script para la creación de la tabla “permisos_usuarios”:
CREATE TABLE permisos_usuarios(id_permiso_usuario numeric(11) NOT NULL DEFAULT 0,id_permiso numeric(11) NOT NULL DEFAULT 0,id_usuario varchar(20) NOT NULL DEFAULT ''::character varying,fecha_inicio date NOT NULL,fecha_fin date NOT NULL,CONSTRAINT id_permiso_usuario_pk PRIMARY KEY (id_permiso_usuario),CONSTRAINT permisos_usuarios_fk FOREIGN KEY (id_usuario)
REFERENCES empleado (id_usuario) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT permisos_usuarios_fk1 FOREIGN KEY (id_permiso)REFERENCES permisos (id_permiso) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE permisos_usuarios OWNER TO postgres;
Script para la creación de la tabla “roles”:
CREATE TABLE roles(id_rol varchar(30) NOT NULL,descripcion varchar(255) NOT NULL,
CONSTRAINT id_rol_pk PRIMARY KEY (id_rol))WITHOUT OIDS;ALTER TABLE roles OWNER TO postgres;
Script para la creación de la tabla “roles_objetos_aplicacion”:
CREATE TABLE roles_objetos_aplicacion(id_rol varchar(20) NOT NULL DEFAULT ''::character varying,id_objeto varchar(50) NOT NULL DEFAULT ''::character varying,CONSTRAINT id_rol_obj_pk PRIMARY KEY (id_rol, id_objeto),CONSTRAINT roles_objetos_aplicacion_ibfk_1 FOREIGN KEY (id_rol)
REFERENCES roles (id_rol) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT roles_objetos_aplicacion_ibfk_2 FOREIGN KEY (id_objeto)REFERENCES objetos_aplicacion (id_objeto) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE roles_objetos_aplicacion OWNER TO postgres;
Script para la creación de la tabla “roles_usuarios”:
CREATE TABLE roles_usuarios(id_rol varchar(20) NOT NULL DEFAULT ''::character varying,id_usuario varchar(20) NOT NULL DEFAULT ''::character varying,CONSTRAINT id_rol_usuario_pk PRIMARY KEY (id_rol, id_usuario),CONSTRAINT roles_usuarios_fk FOREIGN KEY (id_rol)
REFERENCES roles (id_rol) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT roles_usuarios_fk1 FOREIGN KEY (id_usuario)REFERENCES empleado (id_usuario) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE roles_usuarios OWNER TO postgres;
Script para la creación de la tabla “sesion”:
CREATE TABLE sesion(id_sesion varchar(20),id_empleado varchar(20) NOT NULL DEFAULT ''::character varying,fecha timestamp NOT NULL
)WITHOUT OIDS;ALTER TABLE sesion OWNER TO postgres;
Script para la creación de la tabla “tipos_infracciones”:
CREATE TABLE tipos_infracciones(id_tipo_infraccion numeric(11) NOT NULL DEFAULT 0,descripcion varchar(50) NOT NULL DEFAULT ''::character varying,CONSTRAINT id_tipo_infracciones_pk PRIMARY KEY
(id_tipo_infraccion))WITHOUT OIDS;ALTER TABLE tipos_infracciones OWNER TO postgres;
Script para la creación de la tabla “permisos_usuarios”:
CREATE TABLE permisos_usuarios(id_permiso_usuario numeric(11) NOT NULL DEFAULT 0,id_permiso numeric(11) NOT NULL DEFAULT 0,id_usuario varchar(20) NOT NULL DEFAULT ''::character varying,fecha_inicio date NOT NULL,fecha_fin date NOT NULL,CONSTRAINT id_permiso_usuario_pk PRIMARY KEY (id_permiso_usuario),CONSTRAINT permisos_usuarios_fk FOREIGN KEY (id_usuario)
REFERENCES empleado (id_usuario) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT permisos_usuarios_fk1 FOREIGN KEY (id_permiso)REFERENCES permisos (id_permiso) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE permisos_usuarios OWNER TO postgres;
Script para la creación de la tabla “tipos_usuario”:
CREATE TABLE tipos_usuario(id_tipo_usuario numeric(11) NOT NULL DEFAULT 0,descripcion varchar(30) NOT NULL,id_rol varchar(20),CONSTRAINT id_tipo_usuario_pk PRIMARY KEY (id_tipo_usuario),CONSTRAINT tipos_usuario_fk FOREIGN KEY (id_rol)
REFERENCES roles (id_rol) MATCH SIMPLEON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT descripcion UNIQUE (descripcion))WITHOUT OIDS;ALTER TABLE tipos_usuario OWNER TO postgres;
Script para la creación de la tabla “usuarios_objetos_aplicacion”:
CREATE TABLE usuarios_objetos_aplicacion(id_usuario varchar(255) NOT NULL DEFAULT ''::character varying,id_objeto varchar(255) NOT NULL DEFAULT ''::character varying,CONSTRAINT id_usuarios_objetos_pk PRIMARY KEY (id_objeto,
id_usuario),CONSTRAINT usuarios_objetos_aplicacion_fk FOREIGN KEY (id_usuario)
REFERENCES empleado (id_usuario) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT usuarios_objetos_aplicacion_fk1 FOREIGN KEY (id_objeto)REFERENCES objetos_aplicacion (id_objeto) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE usuarios_objetos_aplicacion OWNER TO postgres;
Script de conexión
Script para la creación de la conexión “hibernate-configuration”:
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-
3.0.dtd">
<hibernate-configuration><session-factory name="asistenciaBD">
<property name="hibernate.connection.driver_class">org.postgresql.Driver
</property><property name="hibernate.connection.url">
jdbc:postgresql://127.0.0.1:5432/biometric</property><property
name="hibernate.connection.username">postgres</property><property
name="hibernate.connection.password">postgres</property><property
name="hibernate.connection.pool_size">0</property><property name="hibernate.dialect">
org.hibernate.dialect.PostgreSQLDialect</property><!--<property name="hibernate.show_sql">true</property>--><mapping resource="clasesPersistentes/Rol.hbm.xml" /><mapping resource="clasesPersistentes/Usuario.hbm.xml" /><mapping resource="clasesPersistentes/HoraExtra.hbm.xml" /><mapping
resource="clasesPersistentes/PermisoUsuario.hbm.xml" /><mapping resource="clasesPersistentes/TipoUsuario.hbm.xml"
/><mapping
resource="clasesPersistentes/ObjetoAplicacion.hbm.xml" /><mapping
resource="clasesPersistentes/TipoInfraccion.hbm.xml" /><mapping resource="clasesPersistentes/Evento.hbm.xml" /><mapping resource="clasesPersistentes/Permiso.hbm.xml" /><mapping resource="clasesPersistentes/Asistencia.hbm.xml"
/><mapping
resource="clasesPersistentes/DetalleAsistencia.hbm.xml" /><mapping resource="clasesPersistentes/Infraccion.hbm.xml"
/><mapping resource="clasesPersistentes/Horario.hbm.xml" /><mapping resource="clasesPersistentes/Areas.hbm.xml" /><mapping resource="clasesPersistentes/DiaHorario.hbm.xml"
/><mapping resource="clasesPersistentes/DetalleDia.hbm.xml"
/></hibernate-configuration>
Script para la creación del objeto persistente “areas”:
<!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.Areas" table="AREAS">
<id name="idArea" type="string" column="ID_AREA"></id>
<property name="descripcion" type="string"column="DESCRIPCION"
not-null="true" /><set name="usuarios" table="USUARIOS" cascade="save-
update"><key column="ID_AREA" /><one-to-many class="clasesPersistentes.Usuario" />
</set>
</class></hibernate-mapping>
Script para la creación del objeto persistente “asistencias”:
<!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.Asistencia" table="ASISTENCIAS">
<id name="idAsistencia" type="integer"column="ID_ASISTENCIA"
unsaved-value="-1"><generator class="increment" />
</id><many-to-one name="usuario" column="ID_USUARIO"
not-null="true" /><property name="fecha" column="FECHA" type="calendar"
not-null="true" /><set name="detallesAsistencia" table="DETALLES_ASISTENCIAS"
</set></class>
</hibernate-mapping>
Script para la creación del objeto persistente “detalle_asistencias”:
<!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.DetalleAsistencia"
table="DETALLES_ASISTENCIAS"><id name="idDetalleAsistencia" type="integer"
column="ID_DETALLE_ASISTENCIA"unsaved-value="-1"><generator class="increment" />
</id><many-to-one name="evento" column="ID_EVENTO" not-
null="true" /></class>
</hibernate-mapping>
Script para la creación del objeto persistente “detalles_dias”:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.DetalleDia"
table="DETALLES_DIAS"><id name="idDetalleDia" type="integer"
column="ID_DETALLE_DIA" unsaved-value="-1">
<generator class="increment" /></id><property name="hora" type="time" column="HORA" not-
null="true" /><property name="orden" type="integer" column="ORDEN" not-
null="false" /><many-to-one name="diaHorario" column="ID_DIA_HORARIO" not-
null="true" /><many-to-one name="evento" column="ID_EVENTO" not-
null="true" /></class>
</hibernate-mapping>
Script para la creación del objeto persistente “dias”:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.Dia" table="DIAS">
<id name="idDia" type="calendar" column="ID_DIA"unsaved-value="null">
</id><property name="estado" type="string" column="ESTADO"
not-null="true" /></class>
</hibernate-mapping>
Script para la creación del objeto persistente “dia_horario”:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.DiaHorario"
table="DIAS_HORARIOS"><id name="idDiaHorario" type="integer"
column="ID_DIA_HORARIO" unsaved-value="-1"><generator class="increment" />
</id><set name="detallesDia" table="DETALLES_DIAS"
cascade="save-update" order-by="ORDEN asc" ><key column="ID_DIA_HORARIO" /><one-to-many class="clasesPersistentes.DetalleDia"
/></set>
</class></hibernate-mapping>
Script para la creación del objeto persistente “evento”:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.Evento" table="EVENTOS">
<id name="idEvento" type="integer" column="ID_EVENTO"unsaved-value="-1"><generator class="increment" />
</id><property name="descripcion" type="string"
column="DESCRIPCION"not-null="true" />
<property name="segundosPermitidos" type="integer"column="SEGUNDOS_PERMITIDOS" not-null="true" />
<property name="claseRegla" type="string"column="CLASE_REGLA"
not-null="false" /><property name="evaluacion" type="string"
column="EVALUACION"not-null="false" />
<set name="permisos" table="DETALLES_PERMISOS"cascade="save-update"><key column="ID_EVENTO" /><many-to-many column="ID_PERMISO"
class="clasesPersistentes.Permiso" /></set>
</set><many-to-one name="tipoInfraccionAtrazo"
column="ID_TIPO_INFRACCION_ATRAZO"not-null="false" />
<many-to-one name="tipoInfraccionIncumplimiento"column="ID_TIPO_INFRACCION_INCUMPLIMIENTO"
not-null="false" /></class>
</hibernate-mapping>
Script para la creación del objeto persistente
“fecha_registro_incumplimiento”:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.FechaRegistroIncumplimiento"
table="FECHAS_REGISTRO_INCUMPLIMIENTOS"><id name="fecha" type="calendar" column="fecha"></id>
</class></hibernate-mapping>
Script para la creación del objeto persistente “feriado”:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.Feriado" table="feriados">
<id name="idFeriado" type="integer" column="id_dia"unsaved-value="-1">
<generator class="increment" />column="fecha_inicio" /><property name="fechafin" type="calendar"
column="fecha_fin" /><property name="estado" type="string" column="estado"
/>
</class></hibernate-mapping>
Script para la creación del objeto persistente “horaextra”:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.HoraExtra" table="HORAS_EXTRAS">
<id name="hora" type="integer" column="ID_HORAS_EXTRAS"unsaved-value="-1"><generator class="increment" />
</id><many-to-one name="usuario" column="ID_USUARIO" not-
null="true" /><property name="motivo" column="MOTIVO" type="string"
not-null="true" /><property name="fechaInicio" column="H_EXTRA_ENTRADA"
type="calendar"
</class></hibernate-mapping>
Script para la creación del objeto persistente “horario”:
<!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.Horario" table="HORARIOS">
<id name="idHorario" type="integer" column="ID_HORARIO"unsaved-value="-1"><generator class="increment" />
</id><property name="descripcion" type="string"
column="DESCRIPCION"not-null="true" />
<set name="usuarios" table="USUARIOS" cascade="save-update">
<key column="ID_HORARIO" /><one-to-many class="clasesPersistentes.Usuario" />
</set></class>
</hibernate-mapping>
Script para la creación del objeto persistente “infraccion”:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.Infraccion" table="INFRACCIONES">
<id name="idFraccion" type="integer" column="ID_INFRACCION"unsaved-value="-1"><generator class="increment" />
</id><many-to-one name="tipoInfraccion"
column="ID_TIPO_INFRACCION"
not-null="true" /><many-to-one name="usuario" column="ID_USUARIO" not-
null="true" /><property name="fecha" column="FECHA" type="calendar"
not-null="true" /><property name="duracion" column="DURACION" type="integer"
not-null="true" /><property name="estado" column="ESTADO" type="string"
not-null="true" />
</class></hibernate-mapping>
Script para la creación del objeto persistente “objetoAplicacion”:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.ObjetoAplicacion"
table="OBJETOS_APLICACION"><id name="idObjeto" type="string" column="ID_OBJETO"
unsaved-value="null" /><property name="descripcion" column="DESCRIPCION"
type="string"not-null="false" />
<property name="libreAcceso" column="LIBRE_ACCESO"type="string"
not-null="false" /><set name="usuarios" table="USUARIOS_OBJETOS_APLICACION"
cascade="save-update"><key column="ID_OBJETO" /><many-to-many column="ID_USUARIO"
class="clasesPersistentes.Usuario" /></set><set name="roles" table="ROLES_OBJETOS_APLICACION"
cascade="save-update"><key column="ID_OBJETO" /><many-to-many column="ID_ROL"
class="clasesPersistentes.Rol" /></set><joined-subclass name="clasesPersistentes.Menu"
table="MENUS"><</set><property name="mensaje" column="MENSAJE"
type="string"not-null="true" />
<property name="mnemonic" column="MNEMONIC"type="string"
not-null="false" /><property name="urlCargar" column="URL_CARGAR"
type="string"not-null="false" />
<property name="posicion" column="POSICION"type="integer"
not-null="true" /></joined-subclass>
</class></hibernate-mapping>
Script para la creación del objeto persistente “permiso”:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.Permiso" table="PERMISOS">
<id name="idPermiso" type="integer" column="ID_PERMISO"unsaved-value="-1"><generator class="increment" />
</id><property name="descripcion" type="string"
column="DESCRIPCION"not-null="true" />
<property name="estado" type="string" column="ESTADO"not-null="true" />
<set name="permisosUsuarios" table="PERMISOS_USUARIOS"cascade="save-update"><key column="ID_PERMISO" /><one-to-many
class="clasesPersistentes.PermisoUsuario" /></set><set name="eventos" table="DETALLES_PERMISOS"
cascade="save-update"><key column="ID_PERMISO" /><many-to-many column="ID_EVENTO"
class="clasesPersistentes.Evento" /></set>
</class></hibernate-mapping>
Script para la creación del objeto persistente “permisoUsuario”:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.PermisoUsuario"
table="PERMISOS_USUARIOS"><id name="idPermisoUsuario" type="integer"
column="ID_PERMISO_USUARIO" unsaved-value="-1"><generator class="increment" />
</id><many-to-one name="permiso" column="ID_PERMISO" not-
null="true" /><many-to-one name="usuario" column="ID_USUARIO" not-
null="true" /><property name="fechaInicio" column="FECHA_INICIO"
type="calendar"not-null="true" />
<property name="fechaFin" column="FECHA_FIN"type="calendar"
not-null="true" /></class>
</hibernate-mapping>
Script para la creación del objeto persistente “rol”:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.Rol" table="ROLES">
<id name="idRol" type="string" column="ID_ROL"
unsaved-value="null" /><property name="descripcion" type="string"
column="DESCRIPCION"not-null="true" />
</class></hibernate-mapping>
Script para la creación del objeto persistente “tipoEvento”:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.TipoEvento" table="TIPOS_EVENTO">
<id name="idTipoEvento" type="integer"column="ID_TIPO_EVENTO"
column="DESCRIPCION"not-null="true" />
<set name="eventos" table="EVENTOS" cascade="save-update"><key column="ID_TIPO_EVENTO" /><one-to-many class="clasesPersistentes.Evento" />
</set></class>
</hibernate-mapping>
Script para la creación del objeto persistente “tipoInfraccion”:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.TipoInfraccion"
table="TIPOS_INFRACCIONES"><id name="idTipoInfraccion" type="integer"
column="ID_TIPO_INFRACCION"unsaved-value="-1"><generator class="increment" />
</id><property name="descripcion" type="string"
column="DESCRIPCION"not-null="true" />
<set name="infracciones" table="INFRACCIONES"cascade="save-update">
<key column="ID_TIPO_INFRACCION" /><one-to-many class="clasesPersistentes.Infraccion"
/></set>
</class></hibernate-mapping>
Script para la creación del objeto persistente “usuario”:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping><class name="clasesPersistentes.Usuario" table="empleado">
<id name="idUsuario" type="string" column="ID_USUARIO"unsaved-value="null" />
<property name="nombres" type="string" column="NOMBRES"not-null="true" />
<property name="apellidos" type="string" column="APELLIDOS"not-null="true" />
<property name="identificacion" type="string"column="IDENTIFICACION" not-null="true" />
<property name="clave" type="string" column="CLAVE"not-null="true" /><property name="estado" type="string"
column="ESTADO"</set>
<set name="roles" table="ROLES_USUARIOS"cascade="save-update"><key column="ID_USUARIO" /><many-to-many column="ID_ROL"
class="clasesPersistentes.Rol" /></set><many-to-one name="tipoUsuario" column="ID_TIPO_USUARIO"
not-null="true" /><many-to-one name="horario" column="ID_HORARIO" not-
null="true" /><many-to-one name="area" column="ID_AREA" not-null="true"
/>
<set name="asistencias" table="ASISTENCIAS"cascade="save-update"><key column="ID_USUARIO" /><one-to-many class="clasesPersistentes.Asistencia"
/></set>
<set name="infracciones" table="INFRACCIONES"cascade="save-update"><key column="ID_USUARIO" /><one-to-many class="clasesPersistentes.Infraccion"
/></set>
<set name="infraccionesJustificadas" table="INFRACCIONES"cascade="save-update"><key column="ID_JUSTIFICADOR" /><one-to-many class="clasesPersistentes.Infraccion"
/></set></set>
<set name="horasextras" table="HORAS_EXTRAS"cascade="save-update"><key column="ID_USUARIO" /><one-to-many class="clasesPersistentes.HoraExtra" />
</set>
</class></hibernate-mapping>
Entidades
Clase “evento”:
package clasesPersistentes;import java.util.HashSet;
import java.util.Set;public class Evento{
private int idEvento;private String descripcion;private int segundosPermitidos;private String claseRegla;private String evaluacion;private Set detallesAsistencia=new HashSet();private Set infracciones=new HashSet();private Set detallesDia=new HashSet();private Set permisos=new HashSet();private TipoInfraccion tipoInfraccionAtrazo;private TipoInfraccion tipoInfraccionIncumplimiento;public Evento(){}public String getClaseRegla() {
return claseRegla;}public void setClaseRegla(String claseRegla) {
this.claseRegla = claseRegla;}public String getDescripcion() {
return descripcion;}public void setDescripcion(String descripcion) {
this.descripcion = descripcion;}public int getIdEvento() {
return idEvento;}
public void setDetallesDia(Set detallesHorario) {this.detallesDia = detallesHorario;
}public Set getPermisos() {
return permisos;}public void setPermisos(Set permisos) {
this.permisos = permisos;}public String getEvaluacion() {
return evaluacion;}public void setEvaluacion(String evaluacion) {
this.evaluacion = evaluacion;}public TipoInfraccion getTipoInfraccionAtrazo() {
return tipoInfraccionAtrazo;}public void setTipoInfraccionAtrazo(TipoInfraccion
tipoInfraccionAtrazo) {this.tipoInfraccionAtrazo = tipoInfraccionAtrazo;
}public TipoInfraccion getTipoInfraccionIncumplimiento() {
return tipoInfraccionIncumplimiento;}
}
Clase “fechaRegistroIncumplimiento”:
package clasesPersistentes;
import java.util.Calendar;
public class FechaRegistroIncumplimiento{
private Calendar fecha;public FechaRegistroIncumplimiento(){}public Calendar getFecha() {
return fecha;}public void setFecha(Calendar fecha) {
this.fecha = fecha;}
}
Clase “feriado”:
package clasesPersistentes;import java.util.HashSet;import java.util.Set;import java.util.Calendar;public class Feriado{
///////////////PRIVATE//////////////private int idFeriado;private String descripcion;private Calendar fechainicio;private Calendar fechafin ;private String estado ;///////////////PUBLIC///////////////public Feriado(){}public void setFechafin(Calendar fechafin) {
this.fechafin = fechafin;}public void setEstado(String estado) {
this.estado = estado;}public void setFechainicio(Calendar fechainicio) {
this.fechainicio = fechainicio;}public void setDescripcion(String descripcion) {
this.descripcion = descripcion;}
public String getDescripcion() {return descripcion;
}public Calendar getFechafin() {
return fechafin;}
public Calendar getFechainicio() {return fechainicio;
}public int getIdFeriado() {
return idFeriado;}public String getEstado() {
return estado;
}/* public String toString(){}
}
Clase “hora_extra”:
package clasesPersistentes;import java.util.Calendar;
public class HoraExtra{
private int hora;private Usuario usuario;private Calendar fechaInicio;private Calendar fechaFin;private String motivo;private String estado;public HoraExtra(){}public Calendar getFechaFin() {
return fechaFin;}public void setFechaFin(Calendar fechaFin) {
this.fechaFin = fechaFin;}public Calendar getFechaInicio() {
return fechaInicio;}public void setFechaInicio(Calendar fechaInicio) {
this.fechaInicio = fechaInicio;}
public void setMotivo(String motivo) {this.motivo = motivo;
}public void setHora(int hora) {
this.hora = hora;}
public Usuario getUsuario() {return usuario;
}public void setUsuario(Usuario usuario) {
this.usuario = usuario;}
}
Clase “horario”:
package clasesPersistentes;import java.util.HashSet;
import java.util.Set;
public class Horario{
private int idHorario;private String descripcion;private Set usuarios=new HashSet();private Set diasHorario=new HashSet();public Horario(){}public String getDescripcion() {
return descripcion;}public void setDescripcion(String descripcion) {
this.descripcion = descripcion;}public int getIdHorario() {
return idHorario;}public void setIdHorario(int idHorario) {
this.idHorario = idHorario;}}
}
Clase “infraccion”:
package clasesPersistentes;import java.util.Calendar;public class Infraccion{
private int idFraccion;private TipoInfraccion tipoInfraccion;private Usuario usuario;private Calendar fecha;private int duracion;private String estado;private Usuario justificador;private String descripcionJustificacion;private Asistencia asistencia;public Infraccion(){}public String getDescripcionJustificacion() {
return descripcionJustificacion;}public void setDescripcionJustificacion(String
descripcionJustificacion) {this.descripcionJustificacion = descripcionJustificacion;
}public int getDuracion() {
return duracion;public void setEstado(String estado) {
this.estado = estado;}
public Calendar getFecha() {return fecha;
}public void setFecha(Calendar fecha) {
this.fecha = fecha;}public int getIdFraccion() {
return idFraccion;}
public void setIdFraccion(int idFraccion) {this.idFraccion = idFraccion;
}public Usuario getJustificador() {
return justificador;}public void setJustificador(Usuario justificador) {
this.justificador = justificador;}public Usuario getUsuario() {
return usuario;}public void setUsuario(Usuario usuario) {
this.usuario = usuario;}
return asistencia;}public void setAsistencia(Asistencia asistencia) {
this.asistencia = asistencia;}
}
Clase “permisos”:
package clasesPersistentes;
import java.util.HashSet;import java.util.Set;public class Permiso{
private int idPermiso;private String descripcion;private String estado;private Set permisosUsuarios=new HashSet();private Set eventos=new HashSet();public Permiso(){
super();}public String getDescripcion() {
return descripcion;}public void setDescripcion(String descripcion) {
this.descripcion = descripcion;}public String getEstado() {
return estado;}public void setEstado(String estado) {
this.estado = estado;}
public int getIdPermiso() {return idPermiso;
}public void setIdPermiso(int idPermiso) {
this.idPermiso = idPermiso;}
}
Clase “rol”:
package clasesPersistentes;import java.util.HashSet;import java.util.Set;public class Rol{
private String idRol;private String descripcion;private Set objetosAplicacion=new HashSet();private Set usuarios=new HashSet();public String getDescripcion() {
return descripcion;}public void setDescripcion(String descripcion) {
this.descripcion = descripcion;}public String getIdRol() {
return idRol;}public void setIdRol(String idRol) {
this.idRol = idRol;}public Set getObjetosAplicacion() {
return objetosAplicacion;}public void setObjetosAplicacion(Set objetosAplicacion) {
this.objetosAplicacion = objetosAplicacion;}}
}
Clase “tipo_usuario”:
package clasesPersistentes;
import java.util.HashSet;import java.util.Set;
public class TipoUsuario{
private int idTipoUsuario;private String descripcion;private Rol rol;private Set usuarios=new HashSet();public String getDescripcion() {
return descripcion;}public void setDescripcion(String descripcion) {
this.descripcion = descripcion;}public int getIdTipoUsuario() {
return idTipoUsuario;}public Set getUsuarios() {
return usuarios;}public void setUsuarios(Set usuarios) {
this.usuarios = usuarios;}public Rol getRol() {
return rol;}public void setRol(Rol rol) {
this.rol = rol;}
}
Clase “usuario”
package clasesPersistentes;import java.util.HashSet;import java.util.Set;import java.util.Calendar;public class Usuario{
///////////////PRIVATE//////////////private String idUsuario;private String nombres;private String apellidos;private String identificacion;private String clave;private String estado;private int edad;private String telefono;private Set objetosAplicacion=new HashSet();private Set roles=new HashSet();private TipoUsuario tipoUsuario;private Areas area;private Horario horario;private Set asistencias=new HashSet();private Set infracciones=new HashSet();private Set infraccionesJustificadas=new HashSet();private Set permisosUsuarios=new HashSet();private Set horasextras=new HashSet();
///////////////PUBLIC///////////////public Usuario(){}public String getApellidos() {
return apellidos;}public void setApellidos(String apellidos) {
this.apellidos = apellidos;}public String getClave() {
return clave;}public void setClave(String clave) {
this.clave = clave;}public String getEstado() {
return estado;}public void setEstado(String estado) {
this.estado = estado;}public String getIdentificacion() {
return identificacion;}public void setIdentificacion(String identificacion) {
this.identificacion = identificacion;}
public String getIdUsuario() {return idUsuario;
}public void setIdUsuario(String idUsuario) {
this.idUsuario = idUsuario;}public String getNombres() {
return nombres;}public void setNombres(String nombres) {
this.nombres = nombres;}
public String getTelefono() {return telefono;
}public String getSexo() {
return sexo;}public void setSexo(String sexo) {
this.sexo = sexo ;}
public int getEdad() {return edad;
}public void setEdad(int edad) {
this.edad = edad;}
public Calendar getF_ingreso() {return f_ingreso;
}public void setF_ingreso(Calendar f_ingreso) {
this.f_ingreso = f_ingreso;}public void setTipoUsuario(TipoUsuario tipoUsuario) {
this.tipoUsuario = tipoUsuario;}public Set getRoles() {
return roles;}public void setRoles(Set roles) {
this.roles = roles;}public String toString(){
return idUsuario;}public Horario getHorario() {
return horario;}public void setHorario(Horario horario) {
this.horario = horario;}public Set getPermisosUsuarios() {
return permisosUsuarios;}
public Areas getArea(){return area;
}
public void setArea(Areas area){this.area = area;
}
public Set getHorasextras() {return horasextras;
}
public void setHorasextras(Set horasextras) {this.horasextras = horasextras;
}public void setPermisosUsuarios(Set permisosUsuarios) {this.permisosUsuarios = permisosUsuarios;
}
public void setInfraccionesJustificadas(SetinfraccionesJustificadas) {
this.infraccionesJustificadas = infraccionesJustificadas;}public Set getAsistencias() {
return asistencias;}public void setAsistencias(Set movimientos) {
this.asistencias = movimientos;}
}
BIBLIOGRAFIA
http://www.biometriaaplicada.com/
http://es.wikipedia.org/wiki/Biometr%C3%ADa
http://www.biometrika.ec/serv_noticias1.htm
http://www.squarenet.com.ec/lectores.html
http://internetblog.emol.com/archives/2007/04/biometria_la_hu.asp
http://www.inmigracionyvisas.com/a619_biometria.html
http://www.todo-linux.com/modules.php?name=News&file=article&sid=5851
http://softlibre.barrapunto.com/article.pl?sid=07/02/10/1142200
UNIVERSIDAD DE GUAYAQUIL
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en SistemasComputacionales
“PROGRAMACION DE SOFTWARE DE ACCESOBIOMETRICO”
MANUAL DE USUARIO Y TECNICO
PROYECTO DE SEMINARIOCURSO DE GRADUACIÓN
Previo a la Obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
Autores:
Mariuxi Yolanda Domínguez Aquino
Carlos Enrique Villalta Herrera
Oscar Antonio Vinces Jara
GUAYAQUIL-ECUADOR
Año: 2007
DECLARACIÓN EXPRESA
“La autoría de la tesis de grado corresponde exclusivamente al suscrito(s),
perteneciendo a la Universidad de Guayaquil los derechos que generen la
aplicación de la misma”
(Reglamento de Graduación de la Carrera de Ingeniería en Sistemas
Computacionales, Art. 26).
INDICE DE IMAGENES
MANUAL DE USUARIO
INGRESO AL SISTEMA
Imagen 1Ingreso al Sistema
1
Imagen 2Username & Password
1
Imagen 3Mensajes de Alerta
2
Imagen 4Mensajes de Alerta
2
Imagen 5Mensajes de Alerta
2
Imagen 6Mensajes de Alerta
2
MANTENIMIENTO
Imagen 7Empleados(Creación)
4
Imagen 8Mensajes de Alerta (Ingresar MAL el código)
5
Imagen 9Mensajes de Alerta (Ingresar MAL la cédula de identidad)
5
Imagen 10Mensajes de Alerta (Ingresar MAL la edad del empleado)
5
Imagen 11Mensajes de Alerta (Ingresar MAL el formato de fecha de ingreso)
5
Imagen 12Mensajes de Alerta (Ingresar MAL el email del empleado)
6
Imagen 13Empleados (Actualizar)
7
Imagen 14Horarios (Creación)
8
Imagen 15Horarios ( Actualizar)
9
Imagen 16Tipos de Horarios (Rotativo)
10
Imagen 17Tipos de Horarios (Fijo)
10
Imagen 18Detalles de Horarios
11
Imagen 19Tipos de Eventos
11
Imagen 20Hora
11
Imagen 21Feriado (Creación)
12
Imagen 22Feriado (Actualizar)
13
Imagen 23Permisos
14
Imagen 24Descripción de los Permisos
14
ADMINISTRACION
Imagen 25Perfiles
16
Imagen 26Roles ( Ingreso)
17
Imagen 27Roles ( Actualizar)
18
Imagen 28Niveles de Accesos
18
Imagen 29Infracciones
19
Imagen 30Detalles de Infracciones
20
Imagen 31Permisos
21
Imagen 32Permisos (Visualización del Calendario)
22
Imagen 33Horas Extras (Ingresos)
23
Imagen 34Horas Extras (Actualizar)
24
Imagen 35Justificación de Horas Extras
25
REPORTES
Imagen 36Reportes de Empleados
26
Imagen 37Reportes de Empleados (Informe Exportable PDF)
26
Imagen 38Reportes de Empleados (Informe Exportable Excel)
27
Imagen 39Reportes de Asistencia General
28
Imagen 40Reportes de Asistencia Semanal
29
Imagen 41Reportes de Asistencia Diarias
30
Imagen 42Infracciones
31
Imagen 43Permisos
32
Imagen 44Feriados
33
Imagen 45Horarios
34
Imagen 46Horas Extras
35
Imagen 47Botonera del Menú
37
Imagen 48Botonera del Menú (Bloquear Programa)
37
Imagen 49Botonera del Menú (Bloquear Programa - Confirmación)
37
Imagen 50Botonera del Menú (Cambiar Clave)
37
Imagen 52Botonera del Menú (Cambiar Clave - Confirmación)
38
Imagen 53Botonera del Menú (Cambiar Clave - Pantalla)
38
Imagen 54Botonera del Menú (Cerrar Sesión)
39
Imagen 55Botonera del Menú (Cerrar Sesión - Confirmación)
39
Imagen 56Sub - Menú
40
Imagen 57Calendario
40
Imagen 58Aplicación Biométrica
43
Imagen 59Aplicación Biométrica
44
Imagen 60Aplicación Biométrica
44
MANUAL TECNICO
Imagen 61Instalación de Java
64
Imagen 62Instalación de Java
64
Imagen 63Instalación de Java
65
Imagen 64Instalación de Java
65
Imagen 65Instalación de Java
66
Imagen 66Instalación de Tomcat
67
Imagen 67Instalación de Tomcat
68
Imagen 68Instalación de Tomcat
68
Imagen 69Instalación de Tomcat
69
Imagen 70Instalación de Tomcat
69
Imagen 73Instalación de Tomcat
70
Imagen 74Instalación de PostgreSQL
71
Imagen 75Características del Lector Biométrico
75
Imagen 76Requisito de la Instalación
75
Imagen 77Funcionamiento del SDK
75
INDICE GENERAL
ÌNDICE GENERAL I
INDICE DE IMAGENES II
MANUAL DE USUARIO
Ingreso al Sistema 1
Mensajes de Alerta 1
Mantenimiento
Empleados(Creación) 3
Empleados (Actualizar) 6
Horarios (Creación) 7
Horarios ( Actualizar) 8
Tipos de Horarios 10
Detalles de Horarios 11
Feriado (Creación) 12
Feriados (Actualizar) 13
Permisos 14
Administración
Perfiles 15
Roles (Ingreso) 16
Roles (Actualizar) 17
Niveles de Acceso 18
Eventos 19
Infracciones 19
Permisos 20
Horas Extras (Ingreso) 22
Horas Extras (Actualizar) 23
Justificación de Horas Extras 24
REPORTES
Empleados 25
Asistencias 27
General 27
Semanal 28
Diario 29
Eventos 30
Infracciones 30
Permisos 31
Feriados 32
Horarios 33
Horas Extras 34
Soporte 35
Menú 37
Sub – Menú 39
Iconos de Reportes 40
Calendario 40
Funcionalidad del Sistema 41
Aplicación Biométrica Biosystem 43
MANUAL TECNICO
Objetivos Técnicos 45
Definición tecnológica 45
Fedora Core 46
PostgreSQL 46
Java JDK 46
Apache Tomcat 47
iReport 47
Windows XP 48
JCreator PRO 48
Diccionario de Datos 49
Definición de la Base de Datos 49
Java Server Pages (JSP) 51
Funciones y Procedimientos (Generales) 52
Funciones y Procedimientos ( Especificas) 52
Estándares del Sistema 55
Codigos de las Clases 56
Proceso de Instalación en WIN/OS.
Instalación Java 63
Instalación de Tomcat 66
Instalación de PostgreSQL 70
GrFingerJAVA 71
FingerCap USB driver 72
Proceso de Instalación en LINUX.
3.1.1Instalación Java
3.1.2
72
Instalación de Apache Tomcat 74
Instalación de PostgreSQL 74
Características del Lector Biométrico 75
Requisitos de Instalación 75
Funcionamiento 75
Imagen 1
Imagen 2
MANUAL DE USUARIO
Ingreso al Sistema
Para ingresar al sistema, aparecerá una interfaz amigable al usuario,
como inicio del sistema.
Posteriormente para su ingreso se le pedirá que ingrese su respectivo
nombre de usuario con su clave asignada por el ADMINISTRADOR.
2
Imagen 3
Imagen 4
Imagen 5
Imagen 6
Mensajes de Alerta
En el caso de no ingresar su usuario se displaya un mensaje de alerta
para que el usuario o la persona que se encuentra en el sistema
conozca sobre su error de ingreso.
En el caso de no ingresar su clave se displaya un mensaje de alerta
para que el usuario o la persona que se encuentra en el sistema
conozca sobre su error de ingreso.
En el caso de ingresar mal su usuario se displaya un mensaje de
alerta para que el usuario o la persona que se encuentra en el sistema
conozca sobre su error de ingreso.
En el caso de ingresar mal su clave se displaya un mensaje de alerta
para que el usuario o la persona que se encuentra en el sistema
conozca sobre su error de ingreso.
3
Mantenimiento
Empleados(Creación)
La persona encargada de ingresar los datos de los empleados en el
formulario de ingreso de los empleados es el administrador del
sistema, quien con previa autorización del Gerente hace los
respectivos ingresos.
Este ingreso es con la finalidad de obtener toda la información
relevante a los datos del empleado, para así disponer posteriormente
de ellos.
Este documento es de suma importancia para el departamento de
Recursos Humanos (R.R.H.H.), ya que su información será utilizada
por ellos para posteriores transacciones.
En el momento que el administrador de sistema este ingresando los
datos debe de situarse con el puntero y presionar en el menú la opción
de MANTENIMIENTO – EMPLEADOS.
En la pantalla se visualizara una página donde podrá el administrador
ingresar los datos del empleado y también podrá modificarlos.
4
Imagen 7
El sistema guarda los datos ingresado por el administrador en la base
de datos.
Cabe destacar que durante el ingreso de datos de algún empleado, los
datos deberán ser ingresados de forma correcta, en esta ventana de
ingreso existen mensajes de alerta en el caso de haber escrito mal
alguna información del usuario.
5
Imagen 8
Imagen 9
Imagen 10
Imagen 11
Mensajes tales como:
En el caso de NO ingresar el código respectivo del empleado,
se displayara un mensaje de alerta, indicándole su error.
En el caso de ingresar MAL la cedula de identidad del
empleado, se displayara un mensaje de alerta, indicándole su
error (solo valida cédulas de identidad del país de Ecuador).
En el caso de ingresar MAL la edad del empleado, se displayara
un mensaje de alerta, indicándole su error.
En el caso de ingresar MAL la fecha de ingreso en la cual
ingreso el empleado, se displayara un mensaje de alerta,
indicándole su error.
6
Imagen 12
En el caso de ingresar MAL el email del empleado, se
displayara un mensaje de alerta, indicándole su error.
Estos mensajes de alerta son visibles tanto en la Creación de
Empleados como su Modificación del mismo.
Empleados (Actualizar)
Así como el administrador del sistema es la persona encargada de
ingresar los datos del empleado, para que dicha información este
disponible en la empresa, es la persona encargada de modificar o
actualizar la información de los empleados que ya fueron ingresados,
para corregir cualquier falencia en los datos básicos del empleado.
En el momento que el administrador de sistema este ingresando los
datos debe de situarse con el puntero y presionar en el menú la opción
de MANTENIMIENTO – EMPLEADOS.
En la pantalla se visualizara una página donde podrá el administrador
modificar los datos de los empleados.
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
7
Imagen 13
El sistema guarda los datos ingresado por el administrador en la base
de datos.
Horarios (Creación)
El administrador del sistema es el encargado de ingresar los horarios,
respectivos de los empleados de acuerdo al tipo de contrato que haya
realizado con la empresa.
En el momento que el administrador de sistema este ingresando los
horarios establecidos para cada empleado debe de situarse con el
puntero y presionar en el menú la opción de MANTENIMIENTO –
HORARIOS.
8
Imagen 14
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
El sistema guarda los datos ingresado por el administrador en la base
de datos.
Horarios ( Actualizar)
Así como el administrador del sistema es la persona encargada de
ingresar los horarios de los empleados, para que de esta manera llevar
un control de sus entradas y salidas diarias laborales, dicha
información será almacenada en la base da datos para conocer el
horario de cada uno de los empleados contratados por la empresa, el
mismo administrador es la persona de modificar o actualizar los
9
Imagen 15
horarios de los empleados que ya fueron ingresados, para corregir
cualquier falencia.
En el momento que el administrador de sistema este ingresando los
datos debe de situarse con el puntero y presionar en el menú la opción
de MANTENIMIENTO – HORARIOS.
En la pantalla se visualizara una página donde podrá el administrador
modificar los horarios de los empleados.
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
El sistema guarda los datos ingresados por el administrador en la base
de datos.
Tipos de Horarios
10
Imagen 17
Imagen 16
Una vez ya explicado el funcionamiento de las páginas de Creación y
Actualización de Horarios, se explicara los tipos de Horarios que el
sistema administra.
Rotativo
Al escoger este tipo de horario, el administrador tendrá que
escoger día por día el horario del empleado que desea guardar
y almacenar en la base de datos del sistema.
Fijo
Al seleccionar este tipo de horario, el administrador podrá
escoger varios días el mismo horario que se le desee asignar al
empleado, y todo se guarda y almacena en la base de datos del
sistema.
11
Imagen 18
Imagen 20
Imagen 19
Detalles de Horarios
En lo referente al detalle de horarios, el administrador podrá añadir o
quitar los diferentes eventos del horario que se le asignara en el
ingreso o modificación del horario.
Eventos tales como; Entrada diaria, Salida del lunch, Entrada del
Lunch, Salida diaria.
En el ingreso de hora se ingresara de manera manual el horario
(ingresándolo por teclado), ya que de esta forma se podrá crear un
horario ajustable para todos los usuarios de la empresa.
12
Imagen 21
Feriado (Creación)
El administrador del sistema es el encargado de ingresar los días
festivos que tiene el calendario desde el inicio y fin de la fecha, para
que cuando los empleados les toquen laborar en ese día se les
indicara que el día es festivo, y así saber que empleado laboro o no en
un día definido como feriado.
En el momento que el administrador de sistema desee ingresar los
días festivos debe de situarse con el puntero y presionar en el menú la
opción de MANTENIMIENTO – FERIADOS.
13
Imagen 22
Feriados (Actualizar)
El administrador del sistema es la persona encargada de ingresar los
feriados de los empleados y de la empresa, para que de esta manera
llevar un control de todos los días nacionales y festivos, dicha
información será almacenada en la base da datos para conocer los
feriados de la empresa, el mismo administrador es la persona de
modificar o actualizar los feriados que ya fueron ingresados, para
corregir cualquier falencia.
En el momento que el administrador de sistema este ingresando los
feriados debe de situarse con el puntero y presionar en el menú la
opción de MANTENIMIENTO – FERIADOS.
En la pantalla se visualizara una página donde podrá el administrador
modificar los feriados de la empresa.
14
Imagen 23
Imagen 24
Permisos
El administrador del sistema al hacer clic en MANTENIMIENTO -
PERMISOS lo llevara a la siguiente pantalla.
Luego, el administrador del sistema podrá ingresar nuevos permisos
para los empleados, para que en el momento que deseen faltar de
forma justificada, dicho permiso se encontrara disponible en la base de
datos.
15
La columna Descripción se refiere a los nombres de los permisos que
se encuentran almacenados en la base de datos.
De igual forma cada uno de ellos en esta pagina podrá ser eliminado,
en la columna Eliminar donde se encuentra el icono .
Todo esto pasos solo los podrá realizar el administrador del sistema.
El sistema guarda los datos ingresados por el administrador en la base
de datos.
Administración
Perfiles
El administrador del sistema es el encargado de ingresar los perfiles
de cada uno de los empleados contratados por la empresa, cada perfil
ingresado dependerá del rol que desempeñara el empleado.
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
16
Imagen 25
El sistema guarda los datos ingresados por el administrador en la base
de datos.
Roles (Ingreso)
El administrador del sistema es el encargado de ingresar los roles que
se adapte al empleado contratado por la empresa que manipulara la
aplicación, cada rol ingresado dependerá del contrato para el cual fue
contratado dicho empleado.
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
17
Imagen 26
El sistema guarda los datos ingresados por el administrador en la base
de datos.
Roles (Actualizar)
El administrador del sistema es el encargado de modificar los roles en
el caso de añadir mas privilegios que se adapte al empleado
contratado por la empresa que manipulara la aplicación, cada rol
modificado dependerá del contrato para el cual fue contratado dicho
empleado.
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
18
Imagen 27
Imagen 28
El sistema guarda los datos ingresados por el administrador en la base
de datos.
Niveles de Acceso
Para acceder a ingresar en los permisos o privilegios que cada
empleado tendrá en la manipulación del menú del sistema, primero se
deberá asignarle los permisos de accesos que podrá visualizar en el
menú.
19
Como el menú se compone de tres partes principales: Mantenimiento,
Administración y Reportes; cada una de ellas tendrá la opción de
asignarle o no el privilegio, dependiendo del rol que realizara en la
empresa.
Eventos
Infracciones
El administrador del sistema es el encargado de ingresar las
infracciones de los empleados de la empresa, ya que aquí se podrá
visualizar todas y cada una de las infracciones que los empleados han
realizado en su jornada laboral, el administrador podrá justificar si el
caso lo amerita las infracciones como faltas, atrasos, etc.
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
20
Imagen 29
Imagen 30
En la siguiente pantalla se podrá visualizar las infracciones que algún
empleado o usuario haya tenido en su jornada laboral, en un rango de
fechas, de esta forma se podrá saber si esta Justificada o Injustificada,
y si se justificara alguna infracción se procederá a escribir su
respectiva descripción justificando dicha infracción.
El sistema guarda los datos ingresados por el administrador.
21
Imagen 31
Permisos
El administrador del sistema es el encargado de ingresar los permisos
que se les otorga a los empleados para ausentarse en su jornada
laboral.
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
De esta manera el empleado podrá ausentarse de la empresa de
manera justificada, aquí el administrador deberá escoger el id_usuario
o el nombre del mismo para poder asignarle su respectivo permiso en
un rango de fechas
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
22
Imagen 32
El sistema guarda los datos ingresados por el administrador.
Horas Extras (Ingreso)
El empleado superior es el encargado de autorizar o negar las horas
extras.
En esta pantalla se mostrara la fecha de inicio y fecha de fin para
poder calcular el total de horas extras. De igual manera se deberá
ingresar el motivo por la cual el empleado realizara su hora extra con
el fin de poder llevar un control de las actividades que realiza el
personal de la empresa.
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
23
Imagen 33
El sistema guarda los datos ingresados por el administrador.
Horas Extras (Actualizar)
En esta página se podrá revisar las horas extras que los empleados
realizaran en una fecha pre – determinada, seleccionado por un rango
de fechas para realizar la búsqueda requerida. El administrador podrá
actualizar si el caso lo amerita la hora extra ya ingresada en el sistema
haciendo clic en el icono actualizar, la cual le displayara otra ventana
para modificar la fecha en la cual el empleado realizara hora extra.
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
24
Imagen 34
El sistema guarda los datos ingresados por el administrador.
Justificación de Horas Extras
En este icono al presionarlo le desplegara una nueva ventana que
se visualizara encima del sistema activo, en esta nueva pantalla se
podrá modificar la hora extra, información como la fecha de inicio y la
fecha que finaliza la hora así como también el motivo de su cambio, y
podrá activar o no dicha hora extra de algún usuario en particular.
25
Imagen 35
Y después de hacer el respectivo cambio podrá almacenarlo en su
base de datos.
REPORTES
Empleados
Los reportes serán accesibles para todos los empleados que deseen
conocer su desenvolvimiento laboral cotidiano.
Todos los reportes son exportables en ACROBAT, y se podrá
consultar el formulario laboral de cada empleado
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
26
Imagen 36
Imagen 37
Como se puede visualizar posee las opciones de visualizar los
reportes. En la página siguiente nos aparecerá la pantalla del sistema
capturada.
El sistema guarda los datos ingresados por el administrador.
27
Imagen 39
Asistencias
General
Los reportes de asistencias generales serán accesibles para todos los
empleados que deseen conocer su desenvolvimiento laboral cotidiano.
Se deberá situar en la parte del Menú en Reportes – Asistencias –
General.
Todos los reportes son exportables, y se podrá consultar el formulario
laboral de cada empleado
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
El sistema guarda los datos ingresados por el administrador.
28
Imagen 40
Semanal
Los reportes de asistencias semanales serán accesibles para todos los
empleados que deseen conocer su desenvolvimiento laboral cotidiano.
Se deberá situar en la parte del Menú en Reportes – Asistencias –
Semanal.
Todos los reportes son exportables, y se podrá consultar el formulario
laboral de cada empleado
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
El sistema guarda los datos ingresados por el administrador.
29
Imagen 41
Diario
Los reportes de asistencias diarias serán accesibles para todos los
empleados que deseen conocer su desenvolvimiento laboral cotidiano.
Se deberá situar en la parte del Menú en Reportes – Asistencias –
Diario.
Todos los reportes son exportables en EXCEL y ACROBAT, y se
podrá consultar el formulario laboral de cada empleado
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
El sistema guarda los datos ingresados por el administrador.
30
Imagen 42
Eventos
Infracciones
Los reportes de eventos infracciones serán accesibles para todos los
empleados que deseen conocer las infracciones que hayan realizado
en su jornada laboral, para así evitar futuras sanciones.
Se deberá situar en la parte del Menú en Reportes – Eventos –
Infracciones.
Todos los reportes son exportables, y se podrá consultar el formulario
laboral de cada empleado
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
El sistema guarda los datos ingresados por el administrador.
31
Imagen 43
Permisos
Los reportes de eventos permisos serán accesibles para todos los
empleados que deseen conocer los permisos que han realizado en su
laboral cotidiano.
Se deberá situar en la parte del Menú en Reportes – Eventos –
Infracciones.
Todos los reportes son exportables, y se podrá consultar el formulario
laboral de cada empleado
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
El sistema guarda los datos ingresados por el administrador.
32
Imagen 44
Feriados
Los reportes de feriados serán accesibles para todos los empleados
que deseen conocer cuales son las fechas no laborales, con el fin de
no asistir algún feriado estipulado por la empresa.
Se deberá situar en la parte del Menú en Reportes – Feriados.
Todos los reportes son exportables, y se podrá consultar el formulario
laboral de cada empleado
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
El sistema guarda los datos ingresados por el administrador.
33
Imagen 45
Horarios
Los reportes de horarios serán accesibles para todos los empleados
que deseen conocer cuales son los horarios que fueron ingresados de
acuerdo a las exigencias del empleado y de la empresa contratante.
Se deberá situar en la parte del Menú en Reportes – Horarios.
Todos los reportes son exportables, y se podrá consultar el formulario
laboral de cada empleado
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
El sistema guarda los datos ingresados por el administrador.
34
Imagen 46
Horas Extras
Los reportes de horas extras serán accesibles para todos los
empleados que deseen conocer cuales son sus horas extras que
realizaron en su jornada laboral y en que fecha, para conocer cuanto
será el ingreso extra que recibirán o haber algún reclamo respectivo
del mismo. Se deberá situar en la parte del Menú en Reportes – Horas
Extras.
Todos los reportes son exportables, y se podrá consultar el formulario
laboral de cada empleado
En la página siguiente nos aparecerá la pantalla del sistema
capturada.
El sistema guarda los datos ingresados por el administrador
35
Soporte
En la parte de soporte es una ayuda extra visual resumida de todo lo
que posee este manual de usuario.
Podrá acceder a esa opción en Menú Soporte.
En esta opción se le explicara de manera general cual es el contenido
del MENU del proyecto BIOSYSTEM, es decir:
Mantenimiento
Empleados
Horarios
Feriados
Permisos
Administración
Perfiles
Eventos
Infracciones
Permisos
Horas Extras
Reportes
Empleados
Asistencia
General
Semanal
36
Imagen 47
Imagen 48
Imagen 49
Diaria
Infracciones
Permisos
Feriados
Horarios
Horas Extras
Menú
El sistema biométrico consta de una pequeña barra de Menú, como se
detalla en la siguiente figura.
El primer icono consiste en el bloqueo del sistema, esto es muy
importante ya que imposibilita a extraños a acceder a una sesión que no
le corresponda, brindando de esta forma seguridad de acceso.
Al presionarlo el sistema le displayara un mensaje de alerta
preguntándole si desea o no bloquear el sistema.
37
Imagen 51
Imagen 50
Imagen 52
En el momento de aceptar, el sistema quedara totalmente bloqueado, y
se desbloqueara solo con el código de acceso del usuario autorizado.
El segundo icono hace referencia la cambio de password, se le facilitara
al usuario que maneje el aplicativo realizar cambios constantes de su
password (dependiendo de la políticas de la Empresa) con el fin de
mantener buena seguridad en los accesos al sistema.
Al presionarlo el sistema le displayara un mensaje de alerta
preguntándole si desea o no cambiar la clave de acceso al sistema.
En el momento de aceptar, el sistema le permitirá cambiar su password
y le pedirá su nuevo password con su respectiva confirmación de su
nuevo password.
38
Imagen 53
Imagen 54
Imagen 55
El tercer icono, el usuario podrá cerrar su sesión inicializada
anteriormente, volviendo a la pantalla de inicio donde de nuevo se le
pedirá su username y su respectivo password.
Al presionarlo el sistema le displayara un mensaje de alerta
preguntándole si desea o no cerrar la sesión del sistema.
39
Imagen 56
Sub – Menú
Este submenú se visualizara siempre que inicie una sesión, sea el
usuario que sea, con este fin en la base se podrá almacenar quien
inicio la sesión en que día y a que hora, llevando de esta forma un
registro de todos los accesos o inicio de sesiones.
Iconos de Reportes
En el menú en la parte de reportes, se visualizará 3 imágenes o iconos,
Microsoft Excel
Adobe Acrobat
Al hacer click en cualquiera de estos 3 iconos se exportara los reportes
de acuerdo a la imagen que presiono, ya sea de asistencia, empleados,
infracciones, permisos, feriados, horarios y horas extras; y de esta forma
poder tener información de los reportes en otros formatos disponibles y
listos para su impresión.
Se visualizará el username delusuario que realiza o abrió unasesión en el sistema.
Se visualizara la fecha y hora en lacual inicio sesión dicho usuario.
40
Imagen 57
Calendario
El calendario que maneja el sistema, le permitirá al usuario poder
visualizar los días de la semana para poder seleccionarlo de una
manera rápida y de esta forma evitar interactuando con el teclado.
Funcionalidad del Sistema
Los primeros pasos para comenzar a manipular el sistema son los
sgtes:
1.- Debe tomar en cuenta que al ingresar un empleado al sistema, si
dicho empleado no posee un ROL especifico así como también su
respectivo HORARIO, dicho empleado no podrá ser ingresado hasta
que se le asigne lo mencionado con anterioridad.
2.- Los Roles de acceso que posee cada empleado podra ser
manipulado solo por el administrador del sistema o la persona
encargada del mismo.
41
3.- Las Áreas que posee el sistema, se podrá ingresar asi como eliminar
solo desde la base del sistema; dicha persona deberá tener
conocimientos de comandos SQL
4.- Los Perfiles que se creen para cada empleado deberá ser aprobado
por la persona calificada para hacerlo y debe acoplarse a las
características del empleado, ya que ellos son los que manipularan el
sistema.
5.- Las Horas Extras se podrá ingresar para cada empleado tomando en
consideración lo siguiente:
a.- Solo la persona responsable podrá ingresar horas extras
b.- Se podrá ingresar la fecha inicial así como la fecha final que
el empleado realizara su hora extra, solo se podrá modificar la
“hora” desde el Calendario que se visualizara al presionar el
icono.
c.- Se ingresara hora extra solo si el caso lo amerita, es decir; si
se le concede una hora extra en una jornada laboral el sistema
no registrara dicha hora, ya que posee un horario de trabajo
PRE – establecido.
d.- En el caso de asignarle una hora extra en un día no laboral,
el sistema almacenara el registro, sin complicación, excepto
cuando la fecha inicial o final se cruza con alguna hora laboral.
42
e.- En el caso de darle hora extra en algún feriado el sistema no
le almacenara el registro.
6.- Los Permisos asignados a cada Empleado deberá tomar en
consideración lo siguiente:
a.- Solo la persona responsable podrá ingresar permisos.
b.- Se podrá ingresar la fecha inicial así como la fecha final del
permiso del empleado.
7.- Los Feriados asignados deberán ser aprobados, por alguna persona
responsable y se podrá ingresar el nombre del feriado y sus fechas
respectiva, tanto de inicio como de fin.
8.- Los reportes son visuales por 2 medios, por formado PDF o por
formato EXCEL, de esta forma se podrá tener un registro detallado de
acuerdo a la exigencia que se desee, ya sea por empleado, por
asistencia , por horario, por feriado, etc.
43
Imagen 58
APLICACIÓN BIOMETRICA BIOSYSTEM
El sistema de control de asistencias viene acoplado a un software de control
de registros de asistencias de empleados.
Mediante la aplicación se podrán registrar las asistencias de cada uno de los
empleados,
44
Imagen 59
Imagen 60
El usuario podrá plasmar su huella dactilar sobre el dispositivo y seleccionar
la opción de la marcación correspondiente
Para ello se deberá seleccionar el evento especifico y a continuación
presionar el botón grabar, mediante ello se visualizara un mensaje de
acuerdo al evento generado.
El usuario podrá registrar el evento de acuerdo a su entrada laboral.
MANUAL TECNICO
Objetivos técnicos
Este manual esta dirigido a toda persona que tenga conocimiento
de desarrollo de aplicaciones WEB, el acceso a la información del
sitio Web solo será posible para las personas que estén vinculadas
directamente con la empresa, esto es posible mediante la
asignación de usuario y contraseña.
Definición tecnológica
Todas las aplicaciones que utilizamos en la realización del sistema son
software con código de OPEN SOURCE, lo hicimos de esta manera
para cubrir la necesidad de un sistema integrado bajo Web, que facilite
sus actividades empresariales, al menor costo posible.
Utilizando las siguientes herramientas como:
Fedora Core 4.
Base de datos PostgreSQL.
Java J2SDK
Servidor Web Apache Tomcat.
IREport.
Windows XP
JCreator Pro
46
Fedora Core
Es la denominación de un sistema operativo y el nombre de un núcleo.
Es uno de los paradigmas del desarrollo de software libre (código
abierto), donde el código fuente está disponible públicamente y cualquier
persona, con los conocimientos informáticos adecuados, puede
libremente estudiarlo, usarlo, modificarlo y redistribuirlo.
PostgreSQL
PostgreSQL es un servidor de base de datos relacional libre, liberado
bajo la licencia BSD. Es una alternativa a otros sistemas de bases de
datos de código abierto (como MySQL, Firebird y MaxDB), así como
sistemas propietarios como Oracle o DB2.
La licencia BSD es la licencia de software otorgada principalmente para
los sistemas BSD (Berkeley Software Distribution). Pertenece al grupo de
licencias de software Libre. Esta licencia tiene menos restricciones en
comparación con otras como la GPL estando muy cercana al dominio
público. La licencia BSD al contrario que la GPL permite el uso del código
fuente en software no libre.
Java JDK
Java (Sun), es una tecnología desarrollada por Sun Microsystems para
aplicaciones software independiente de la plataforma, que engloba:
Lenguaje de programación Java, un lenguaje de programación de alto
47
nivel, orientado a objetos
API Java provista por los creadores del lenguaje Java, y que da a los
programadores un ambiente de desarrollo completo
Máquina Virtual de Java (JVM), la máquina virtual que ejecuta bytecode
de Java. También se refiere a la parte de la plataforma Java que se
ejecuta en el PC, el entorno en tiempo de ejecución de Java (JRE, Java
Runtime Environment)
Applet Java es un programa usado para editar y/o crear programas
usados en Internet
Java Runtime Environment proporciona únicamente un subconjunto del
lenguaje de programación Java sólo para ejecución. El usuario final
normalmente utiliza JRE en paquetes y añadidos.
Plataforma Java, la máquina virtual de Java, junto con las APIs
Apache Tomcat
Tomcat es un servidor web con soporte de servlets y JSPs. Incluye el
compilador Jasper, que compila JSPs convirtiéndolas en servlets. El
motor de servlets de Tomcat a menudo se presenta en combinación con
el servidor web Apache.
IReport
La herramienta iReport es un constructor / diseñador de informes visual,
poderoso, intuitivo y fácil de usar para JasperReports escrito en Java.
48
Este instrumento permite que los usuarios corrijan visualmente informes
complejos con cartas, imágenes, subinformes, etc. iReport está además
integrado con JFreeChart, una de la biblioteca gráficas OpenSource
más difundida para Java. Las características importantes de iReport
son:
100% escrito en JAVA y además OPENSOURCE y gratuito.
Maneja el 98% de las etiquetas de JasperReports
Permite diseñar con sus propias herramientas: rectángulos, líneas,
elipses, campos de los textfields, cartas, subreports (subreportes).
Windows XP
Es una línea de sistemas operativos desarrollado por Microsoft, esta
orientado a cualquier entorno informático, incluyendo computadoras
domesticas o negocios, computadoras portátiles y media center.
Windows XP es el sucesor de Windows 2000 y Windows ME, es el
primer sistema operativo de Microsoft orientado al consumidor que se
construye con un núcleo y arquitectura de Windows NT.
JCreator Pro
Es un producto comercial de la compañía Xinox Software. Utiliza el
J2SDK de Sun Microsystems para compilar y ejecutar los programas.
Hay dos ediciones, una gratuita, llamada LE y otra de pago llamada Pro,
49
que entre otras cosas añade completamiento de comandos, plantillas,
depuración y soporte de CVS.
Entre sus ventajas destaca la de consumir menos recursos que otros
IDEs, y entre los inconvenientes el ser menos
DICCIONARIO DE DATOS
Definición de la Base de Datos
Base de Datos: BIOMETRIC
Nombre de la tabla: EMPLEADOS
Descripción: Tabla que registra la información de los empleados de la
empresa al cual se le aplicará el control de asistencias
Nombre de la tabla: TIPOS DE USUARIOS
Descripción: Tabla que registra la información de los tipos de
empleados de la empresa con su respectivo rol.
Nombre de la tabla: USUARIOS_OBJETOS_APLICACION
Descripción: Tabla que almacena la información de los diferentes
objetos que posee la aplicación, otorgando el permiso al usuario para
acceder a los mismos
Nombre de la tabla: OBJETOS_APLICACION
Descripción: Tabla que almacena la información de las diferentes
50
opciones del menú que posee el aplicativo.
Nombre de la tabla: ROLES_USUARIOS
Descripción: Tabla que almacena la información de los diferentes roles
correspondiente a cada empleado.
Nombre de la tabla: MENUS
Descripción: Tabla que posee las diferentes opciones que posee el
aplicativo.
Nombre de la tabla: DETALLES _ HORARIOS
Descripción: Tabla que almacena la información de los diferentes
horarios que presenta un empleado, necesario para el control de
asistencias.
Nombre de la tabla: FERIADOS
Descripción: Tabla que almacena la información de los días festivos que
se puede suscitar en un año laboral.
Nombre de la tabla: HORAS_EXTRAS
Descripción: Tabla que almacena la información referente a la hora
extra otorgables a un empleado o usuario del aplicativo.
51
JAVA SERVER PAGES (JSP)
PAGINAS DE FORMATO
Nombre: testWindow()
Origen: Biometria\slidem
Parámetros: string
Definición: Genera el menú de opciones de acuerdo a los privilegios que
posee el usuario.
Valor de Retorno: ***
Nombre: disenioGeneral.css
Origen: Biometria\css
Parámetros: ***
Definición: Se encarga de darle formato como tipo de letra, color,
alineamiento, etc. a los elementos de los formularios.
Valor de Retorno: ***
52
FUNCIONES Y PROCEDIMIENTOS GENERALES
Nombre: validarCampos ()
Origen: *
Parámetros: var
Definición: Valida los campos de ingreso o actualización, a fin de que
estos cumplan con los requisitos y características apropiadas.
Valor de Retorno: boolean
Nombre: validarCampos ()
Origen: *
Parámetros: var
Definición: Valida los campos de ingreso o actualización, a fin de que
estos cumplan con los requisitos y características apropiadas.
Valor de Retorno: boolean
FUNCIONES Y PROCEDIMIENTOS ESPECIFICAS
Nombre: salvar ()
Origen: Biometria\Administracion\Eventos\admiJustificacion.jsp
53
Parámetros: event
Definición: Almacena temporalmente los datos de la infracción para su
procesamiento.
Valor de Retorno: ***
Nombre: validarTabla ()
Origen: Biometria\Administracion\Eventos\admiJustificacion.jsp
Parámetros: ***
Definición: Verifica si la tabla de eventos de infracciones esta vacía,
para luego enviar estos datos a su procesamiento.
Valor de Retorno: object
Nombre: cargarPagina ()
Origen: Biometria\Administracion\HorasExtras\adm_principal.jsp
Parámetros: ***
Definición: Se encarga de crear las pestañas para controlar la
interacción de la página.
Valor de Retorno: ***
54
Nombre: valida ()
Origen: Biometria\Administracion\ HorasExtras\admiHorasExtras.jsp
Parámetros: string, object
Definición: Se encarga de obtener los datos del usuario seleccionado.
Valor de Retorno: ***
Nombre: invocarPopup ()
Origen: Biometria\Mantenimiento\Empleados\mntiPopupEmpleado
Parámetros: ***
Definición: Se encarga de administrar y mostrar el listado de empleados
por nombres y apellidos a fin de seleccionar el que es de interés para el
usuario.
Valor de Retorno: object
Nombre: quitar ()
Origen: Biometria\Mantenimiento\Horarios\CreacionHorarios.jsp
Parámetros: ***
Definición: Se encarga de eliminar registros de Rol de la matriz de datos
55
de almacenamiento temporal.
Valor de Retorno: ***
Nombre: aniadir ()
Origen: Biometria\Mantenimiento\Horarios\CreacionHorarios.jsp
Parámetros: ***
Definición: Se encarga de agregar registros de Rol a la matriz de datos
de almacenamiento temporal.
Valor de Retorno: ***
Nombre: validarInf ()
Origen: Biometria\Mantenimiento\Permisos\ mntiTipoPermiso.jsp
Parámetros: ***
Definición: Se encarga de verificar que la información de permiso sea
correcta y completa.
ESTÁNDARES DEL SISTEMA
Páginas del Sistema: Las carpetas se encuentran ubicadas dentro del
directorio BIOSYSTEM, y fueron diseñadas de la siguiente manera:
Páginas con iníciales “mntf”: Corresponden a las páginas en cuyos
56
frames organizan a las páginas de presentación.
Páginas con iníciales “mnti”: Corresponden a las páginas de
presentación de elementos de interacción con el usuario.
Páginas con iníciales “mntp”: Corresponden a las páginas de
procesamiento de información. Se definen las funciones con las que se
procesaran la información captadas por las páginas de presentación.
Páginas con prefijo “reporte”: Corresponden al tratamiento de los
datos necesarios para la generación de reportes.
Organización de Páginas: Se encuentran agrupadas de acuerdo a la
definición para el menú de opciones, esto es:
Mantenimiento
Administración
Reportes
Códigos de las Clases
Scripts de base de datos
Script para la creación de la base de datos:
CREATE DATABASE "BIOMETRIC"WITH OWNER = postgres
ENCODING = 'UNICODE'TABLESPACE = pg_default;
Script para la creación de la tabla “areas”:
CREATE TABLE areas(
57
id_area varchar(20) NOT NULL,descripcion varchar(255) NOT NULL,CONSTRAINT id_area_pk PRIMARY KEY (id_area)
)WITHOUT OIDS;ALTER TABLE areas OWNER TO postgres;
Script para la creación de la tabla “asistencias”:
CREATE TABLE asistencias(
id_asistencia numeric(11) NOT NULL,id_usuario varchar(10) NOT NULL DEFAULT ''::character varying,fecha date NOT NULL,CONSTRAINT id_asistencias_pk PRIMARY KEY (id_asistencia),CONSTRAINT asistencias_fk FOREIGN KEY (id_usuario)
REFERENCES empleado (id_usuario) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE asistencias OWNER TO postgres;
Script para la creación de la tabla “detalles_asistencias”:
CREATE TABLE detalles_asistencias(
id_detalle_asistencia numeric(11) NOT NULL DEFAULT 0,id_evento numeric(11) NOT NULL DEFAULT 0,id_asistencia numeric(11) NOT NULL DEFAULT 0,fecha timestamp NOT NULL,CONSTRAINT id_detalles_asistencias PRIMARY KEY
(id_detalle_asistencia),CONSTRAINT detalles_asistencia_fk FOREIGN KEY (id_asistencia)
REFERENCES asistencias (id_asistencia) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT movimientos_fk FOREIGN KEY (id_evento)REFERENCES eventos (id_evento) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE detalles_asistencias OWNER TO postgres;
Script para la creación de la tabla “detalles_dias”:
CREATE TABLE detalles_dias(
id_detalle_dia numeric(11) NOT NULL,id_dia_horario numeric(11) NOT NULL DEFAULT 0,hora time NOT NULL,id_evento numeric(11) NOT NULL DEFAULT 0,orden numeric(11),
58
CONSTRAINT id_detalles_dias_pk PRIMARY KEY (id_detalle_dia),CONSTRAINT detalles_dias_fk FOREIGN KEY (id_dia_horario)
REFERENCES dias_horarios (id_dia_horario) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT detalles_horarios_fk1 FOREIGN KEY (id_evento)REFERENCES eventos (id_evento) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE detalles_dias OWNER TO postgres;
Script para la creación de la tabla “detalles_permisos”:
(CREATE TABLE detalles_permisos(
id_permiso numeric(11) NOT NULL DEFAULT 0,id_evento numeric(11) NOT NULL DEFAULT 0,CONSTRAINT id_permisos_eventos_fk PRIMARY KEY (id_permiso,
id_evento),CONSTRAINT permisos_eventos_fk FOREIGN KEY (id_evento)
REFERENCES eventos (id_evento) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT permisos_eventos_fk1 FOREIGN KEY (id_permiso)REFERENCES permisos (id_permiso) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE detalles_permisos OWNER TO postgres;
Script para la creación de la tabla “empleado”:
CREATE TABLE empleado(
id_usuario varchar(20) NOT NULL DEFAULT ''::character varying,nombres varchar(80) NOT NULL,apellidos varchar(80),identificacion varchar(20) NOT NULL,clave varchar(10) NOT NULL,huella_der_anular varchar(100),huella_izq_indice varchar(100),id_tipo_usuario numeric(11) DEFAULT 0,id_horario numeric(11),id_area varchar(20) NOT NULL,estado varchar(1) NOT NULL DEFAULT 'A'::character varying,sexo varchar(10),direccion varchar(40),f_ingreso date,email varchar(60),edad numeric(3),telefono varchar(10),celular varchar(10),CONSTRAINT id_usuario PRIMARY KEY (id_usuario),CONSTRAINT area_fd FOREIGN KEY (id_area)
59
REFERENCES areas (id_area) MATCH SIMPLEON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT id_horario_fk FOREIGN KEY (id_horario)REFERENCES horarios (id_horario) MATCH SIMPLEON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT usuarios_fk FOREIGN KEY (id_tipo_usuario)REFERENCES tipos_usuario (id_tipo_usuario) MATCH SIMPLEON UPDATE RESTRICT ON DELETE RESTRICT
)WITHOUT OIDS;ALTER TABLE empleado OWNER TO postgres;
Script para la creación de la tabla “horas_extras”:
CREATE TABLE horas_extras(
id_horas_extras numeric(11) NOT NULL DEFAULT 0,id_usuario varchar(20) NOT NULL DEFAULT ''::character varying,h_extra_entrada timestamp NOT NULL,h_extra_salida timestamp NOT NULL,motivo varchar(100) NOT NULL DEFAULT ' '::character varying,estado varchar NOT NULL DEFAULT 'A'::character varying,CONSTRAINT id_horas_extras_pk PRIMARY KEY (id_horas_extras),CONSTRAINT usuarios_fk FOREIGN KEY (id_usuario)
REFERENCES empleado (id_usuario) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE horas_extras OWNER TO postgres;
Script para la creación de la tabla “identificador_huella”:
CREATE TABLE identificador_huella(
id_usuario varchar(20) NOT NULL DEFAULT ''::character varying,estado varchar(1) NOT NULL DEFAULT 'A'::character varying,id int4 NOT NULL DEFAULT nextval('enroll_id_seq'::regclass),"template" bytea
)WITHOUT OIDS;ALTER TABLE identificador_huella OWNER TO postgres;
Script para la creación de la tabla “menus”:
CREATE TABLE menus(
id_objeto varchar(255) NOT NULL DEFAULT ''::character varying,id_menu_padre varchar(255),mensaje varchar(255) NOT NULL DEFAULT ''::character varying,mnemonic varchar(255),
60
url_cargar varchar(255),posicion numeric(11) NOT NULL DEFAULT 0,CONSTRAINT id_menus_pk PRIMARY KEY (id_objeto),CONSTRAINT menus_fk FOREIGN KEY (id_objeto)
REFERENCES objetos_aplicacion (id_objeto) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT menus_fk1 FOREIGN KEY (id_menu_padre)REFERENCES menus (id_objeto) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE menus OWNER TO postgres;
Script para la creación de la tabla “objetos_aplicacion”:
CREATE TABLE objetos_aplicacion(
id_objeto varchar(50) NOT NULL DEFAULT '0'::character varying,descripcion varchar(255),libre_acceso char(1) NOT NULL DEFAULT 'N'::bpchar,CONSTRAINT id_objeto_pk PRIMARY KEY (id_objeto)
)WITHOUT OIDS;ALTER TABLE objetos_aplicacion OWNER TO postgres;
Script para la creación de la tabla “permisos”:
CREATE TABLE permisos(
id_permiso numeric(11) NOT NULL,descripcion varchar(255) NOT NULL DEFAULT ''::character varying,estado varchar(1) NOT NULL DEFAULT 'A'::character varying,CONSTRAINT id_permiso_pk PRIMARY KEY (id_permiso)
)WITHOUT OIDS;ALTER TABLE permisos OWNER TO postgres;
Script para la creación de la tabla “permisos_usuarios”:
CREATE TABLE permisos_usuarios(
id_permiso_usuario numeric(11) NOT NULL DEFAULT 0,id_permiso numeric(11) NOT NULL DEFAULT 0,id_usuario varchar(20) NOT NULL DEFAULT ''::character varying,fecha_inicio date NOT NULL,fecha_fin date NOT NULL,CONSTRAINT id_permiso_usuario_pk PRIMARY KEY
(id_permiso_usuario),CONSTRAINT permisos_usuarios_fk FOREIGN KEY (id_usuario)
61
REFERENCES empleado (id_usuario) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT permisos_usuarios_fk1 FOREIGN KEY (id_permiso)REFERENCES permisos (id_permiso) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE permisos_usuarios OWNER TO postgres;
Script para la creación de la tabla “roles”:
CREATE TABLE roles(
id_rol varchar(30) NOT NULL,descripcion varchar(255) NOT NULL,CONSTRAINT id_rol_pk PRIMARY KEY (id_rol)
)WITHOUT OIDS;ALTER TABLE roles OWNER TO postgres;
Script para la creación de la tabla “roles_usuarios”:
CREATE TABLE roles_usuarios(
id_rol varchar(20) NOT NULL DEFAULT ''::character varying,id_usuario varchar(20) NOT NULL DEFAULT ''::character varying,CONSTRAINT id_rol_usuario_pk PRIMARY KEY (id_rol, id_usuario),CONSTRAINT roles_usuarios_fk FOREIGN KEY (id_rol)
REFERENCES roles (id_rol) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT roles_usuarios_fk1 FOREIGN KEY (id_usuario)REFERENCES empleado (id_usuario) MATCH SIMPLEON UPDATE NO ACTION ON DELETE NO ACTION
)WITHOUT OIDS;ALTER TABLE roles_usuarios OWNER TO postgres;
Script de conexión
Script para la creación de la conexión “hibernate-configuration”:
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration><session-factory name="asistenciaBD">
<property name="hibernate.connection.driver_class">org.postgresql.Driver
62
</property><property name="hibernate.connection.url">
jdbc:postgresql://127.0.0.1:5432/biometric</property><property
name="hibernate.connection.username">postgres</property><property
name="hibernate.connection.password">postgres</property><property name="hibernate.connection.pool_size">0</property><property name="hibernate.dialect">
org.hibernate.dialect.PostgreSQLDialect</property><!--<property name="hibernate.show_sql">true</property>--><mapping resource="clasesPersistentes/Rol.hbm.xml" /><mapping resource="clasesPersistentes/Usuario.hbm.xml" /><mapping resource="clasesPersistentes/HoraExtra.hbm.xml" /><mapping
resource="clasesPersistentes/PermisoUsuario.hbm.xml" /><mapping resource="clasesPersistentes/TipoUsuario.hbm.xml"
/><mapping
resource="clasesPersistentes/ObjetoAplicacion.hbm.xml" /><mapping
resource="clasesPersistentes/TipoInfraccion.hbm.xml" /><mapping resource="clasesPersistentes/Evento.hbm.xml" /><mapping resource="clasesPersistentes/Permiso.hbm.xml" /><mapping resource="clasesPersistentes/Asistencia.hbm.xml" /><mapping
resource="clasesPersistentes/DetalleAsistencia.hbm.xml" /><mapping resource="clasesPersistentes/Infraccion.hbm.xml" /><mapping resource="clasesPersistentes/Horario.hbm.xml" /><mapping resource="clasesPersistentes/Areas.hbm.xml" /><mapping resource="clasesPersistentes/DiaHorario.hbm.xml" /><mapping resource="clasesPersistentes/DetalleDia.hbm.xml" />
</hibernate-configuration>
Script para la creación del objeto persistente “usuario”:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="clasesPersistentes.Usuario" table="empleado">
<id name="idUsuario" type="string" column="ID_USUARIO"unsaved-value="null" />
<property name="nombres" type="string" column="NOMBRES"not-null="true" />
<property name="apellidos" type="string" column="APELLIDOS"not-null="true" />
<property name="identificacion" type="string"column="IDENTIFICACION" not-null="true" />
<property name="clave" type="string" column="CLAVE"not-null="true" /><property name="estado" type="string" column="ESTADO"</set>
63
<set name="roles" table="ROLES_USUARIOS"cascade="save-update"><key column="ID_USUARIO" /><many-to-many column="ID_ROL"
class="clasesPersistentes.Rol" /></set><many-to-one name="tipoUsuario" column="ID_TIPO_USUARIO"
not-null="true" /><many-to-one name="horario" column="ID_HORARIO" not-
null="true" /><many-to-one name="area" column="ID_AREA" not-null="true" />
<set name="asistencias" table="ASISTENCIAS"cascade="save-update"><key column="ID_USUARIO" /><one-to-many class="clasesPersistentes.Asistencia" />
</set>
<set name="infracciones" table="INFRACCIONES"cascade="save-update"><key column="ID_USUARIO" /><one-to-many class="clasesPersistentes.Infraccion" />
</set>
<set name="infraccionesJustificadas" table="INFRACCIONES"cascade="save-update"><key column="ID_JUSTIFICADOR" /><one-to-many class="clasesPersistentes.Infraccion" />
</set></set>
<set name="horasextras" table="HORAS_EXTRAS"cascade="save-update"><key column="ID_USUARIO" /><one-to-many class="clasesPersistentes.HoraExtra" />
</set>
</class></hibernate-mapping>
MANUAL DE INSTALACIÓN
Proceso de Instalación en el Sistema Operativo Windows.
Instalación de Java
El primer paso es descargar el JDK desde “java.sun.com”,
seleccionando la versión 1.5 o una superior.
64
Imagen 62
Imagen 61
Ejecutamos el instalador. Una vez que el instalador se ha auto-
desempaquetado, presenta la licencia para que digamos que la
aceptamos.
A continuación se nos piden detalles de la instalación. Por defecto es:
65
Imagen 63
Imagen 64
Durante un rato se descomprimen y copian ficheros. En cierto momento,
dentro de la instalación del JDK se inicia la instalación del JRE.
Nuevamente hay que tomar nota del directorio donde se instala porque
vamos a necesitarlo más tarde para instalar otros programas. El que
viene por defecto es: C:\Archivos de programa\Java\jre1.5.0_06\
La instalación del JRE pregunta si queremos asociarlo con los
navegadores que tenemos instalados para poder ejecutar en ellos
applets.
66
Imagen 65
A partir de aquí, simplemente termina de desempaquetar ficheros y
finalmente nos informa de que la instalación ha terminado.
Instalación de Tomcat
Antes de instalar, es muy importante configurar la variable de entorno
JAVA_HOME. Tomcat la necesita para funcionar. Hay que ir al Panel de
Control, dar click en el icono de Sistema y allí, en la pestaña "Opciones
avanzadas", pulsar el botón de "variables de entorno". Aparecerá el
diálogo de variables de entorno. La mitad superior está dedicada a las
variables de entorno del usuario actual y la inferior a las variables del
sistema. Tenemos que escoger crear una nueva variable del sistema:
67
Imagen 66
La nueva variable debe llamarse JAVA_HOME y le pondremos el valor
que anotamos antes para el JDK 1.5. En nuestro caso:
"C:\Archivos de programa\Java\jdk1.5.0_06"
Las comillas son necesarias debido al espacio en blanco en el nombre
del directorio.
echo %JAVA_HOME%
Se trata de un fichero pequeño (4 ó 5 megas) que descargamos y
ejecutamos. Tendremos que aceptar la Apache License.
68
Imagen 68
Imagen 67
Es conveniente elegir la opción "Full" que nos instala todos los
componentes disponibles.
La opción de directorio por defecto es muy incómoda. Es mejor ponerlo
en un directorio al que se llegue más rápido desde la raíz, por ejemplo
69
Imagen 70
Imagen 69
aquí hemos escogido "C:\Tomcat 5.5".
Ahora necesitaríamos el otro directorio que apuntamos antes durante la
instalación de Java, el del JDK. Aunque el instalador suele detectarlo y
ponerlo él solito, en ocasiones selecciona la versión predeterminada en
la instalación del sistema operativo:
Recogidos todos los datos necesarios, el instalador procede a copiar
ficheros. Y termina la instalación.
70
Imagen 71
Podemos ahora acceder a Tomcat dirigiendo un navegador a
http://localhost:8080/
En esta página nos va a interesar sobre todo el enlace al Tomcat
Manager, que es la administración de aplicaciones.
Instalación de PostgreSQL
Se debe descargar la versión 8.1 o superior de la Base de Datos
PostgreSQL de la página www.postgresql.org, debe ser el instalador
StandAlone para Windows.
Se ejecuta el archivo instalador, se deberá aceptar la licencia, para
posteriormente seleccionar las opciones que se desean instalar.
71
Imagen 72
En esta parte se recomienda seleccionar las opciones de las interfaces
de usuario: psql (interfaz de consola) y pgAdmin III (interfaz gráfica).
Posterior de la selección se pedirá escoger si se escoge el puerto 5432,
que viene por defecto, para que trabaje la base de datos o si se lo
modificara para su uso, recomendamos trabajar con el puerto por
defecto, puesto que la aplicación se configuro con este puerto, pero eso
no implica que no se pueda modificar.
GrFinger Java
Esta aplicación esta disponible en una versión gratuita en la página
www.griaule.com, esta es el software que nos permitirá operar el
dispositivo Lector de Huellas (en este caso, el Microsoft FingerPrint
Reader).
Este archivo simplemente instalara los datos necesarios para trabajar
con el dispositivo.
72
FingerCap USB Driver
Este es el controlador del dispositivo biométrico Microsoft FingerPrint
Reader para el sistema operativo Windows XP.
Proceso de Instalación en el Sistema Operativo Linux.
Instalación de Java
El primer paso es descargar el JDK desde “java.sun.com”, seleccionando
la versión 1.5 o una superior, para la plataforma Linux.
Nos Colocamos en el directorio /usr/local/, y realizamos los siguientes
pasos para la instalación:
Para el archivo "Self-Extracting-Binary"
Cambiar los permisos del archivo con el siguiente comando
: chmod a+x j2sdk-1_4_2_<numero_version>-linux-i586.bin .
Ejecutar del directorio local:
./j2sdk-1_4_2_<numero_version>-linux-i586.bin .
Aceptar la Licencia de Usuario. .
Una vez terminada la instalación se recomienda cambiar el nombre del
directorio a jdk; quedando instalado en una ruta absoluta: /usr/local/jdk .
Para la Documentación:
Cambiar los permisos del archivo con el siguiente comando:
73
chmod a+x j2sdk-1_4_2_doc.zip .
Descomprimir archivo con el siguiente comando:
unzip ./j2sdk-1_4_2_doc.zip .
Configuración:
El JDK requiere configurarse con diversas variables ambientales para su
correcta operación:
JAVA_HOME : Indica el directorio raíz de instalación del JDK, de acuerdo
a las instrucciones anteriores esta ruta sería : /usr/local/jdk
PATH: Define la ruta de acceso para los binarios del sistema; la
modificación de esta variable permite accesar los ejecutables Java
(javac,javadoc,java) proporcionadas con el JDK de cualquier directorio.
CLASSPATH : Define las rutas de acceso para las diversas librerías
empleadas en ambientes Java
JAVA_HOME="/usr/local/jdk"
CLASSPATH="/usr/local/mislibrerias"
PATH="$PATH:/usr/local/jdk/bin"
export JAVA_HOME
export CLASSPATH
export PATH
74
Instalación de Apache Tomcat
Colocarse en el directorio /usr/local/, realizar los siguientes pasos:
Descomprimir el archivo con el siguiente comando:
tar -xzvf jakarta-tomcat-5.x.x.tar.gz .
Una vez terminada la instalación se recomienda cambiar el nombre del
directorio jakarta-tomcat-5.x.x a simplemente tomcat; quedando instalado
en una ruta absoluta: /usr/local/tomcat.
Configuración
Tomcat requiere configurarse con diversas variables ambientales para su
correcta operación:
CATALINA_HOME: Indica el directorio raíz de instalación de Tomcat
(Catalina), de acuerdo a las instrucciones anteriores esta ruta sería :
/usr/local/tomcat
Instalación de PostgreSQL
En este pequeño taller voy a dar unas pequeñas pautas para instalarPostgreSQL.
Nos ponemos como root para empezar a trabajar.
Creamos el grupo y usuario postgres
Descargamos las fuentes de PostgreSQL y las descomprimimos
Preparamos las fuentes para ser compiladas
Top Related