“PROGRAMACION DE SOFTWARE DE ACCESO...

275
UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales “PROGRAMACION DE SOFTWARE DE ACCESO BIOMETRICO” PROYECTO DE TESIS DE GRADO CURSO 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

Transcript of “PROGRAMACION DE SOFTWARE DE ACCESO...

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

TRIBUNAL DE GRADUACIÓN

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

44

HORARIOS

Nuevo

Actualizar

Eliminar

ConsultarDiagrama 9

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

50

2.2.4. Modulo de Reportes

MailImprimir

Generar reportes

<<uses>> <<uses>>

Diagrama 13

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

69

77

Diagrama 28

2.5.2. Diagrama de Colaboración

2.5.2.1. Ingreso de Empleados

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.

108

Diagrama 54

3.4 MODELO ENTIDAD – RELACION (Sin Campos)

109

Diagrama 55

MODELO ENTIDAD – RELACION (Con Campos)

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

TRIBUNAL DE GRADUACIÓN

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

75

Imagen 73

Imagen 74

Imagen 75

Compilamos e instalamos las fuentes

Instalamos la Base de Datos

DISPOSITIVO BIOMETRICO

Características del Lector Biométrico

Requisitos de Instalación

Funcionamiento