Está en la página 1de 189

UNIVERSIDAD DE GUAYAQUIL

Facultad de Ciencias Matemticas y Fsicas


Carrera de Ingeniera en Sistemas
Computacionales

PROGRAMACION DE SOFTWARE DE ACCESO


BIOMETRICO

PROYECTO DE TESIS DE GRADO


CURSO DE GRADUACIN
Previo a la Obtencin del Ttulo de:

INGENIERO EN SISTEMAS COMPUTACIONALES

Autores:

MARIUXI YOLANDA DOMNGUEZ AQUINO


CARLOS ENRIQUE VILLALTA HERRERA
OSCAR ANTONIO VINCES JARA

GUAYAQUIL-ECUADOR
Ao: 2007

TRIBUNAL DE GRADUACIN

DECLARACIN EXPRESA
La autora de la tesis de grado corresponde exclusivamente al suscrito(s),
perteneciendo a la Universidad de Guayaquil los derechos que generen la
aplicacin de la misma

(Reglamento de Graduacin de la Carrera de Ingeniera en Sistemas


Computacionales, Art. 26).

INDICE GENERAL

TRIBUNAL DE GRADUACIN

DECLARACION EXPRESA

II

NDICE GENERAL

III

INDICE DE CUADROS

IV

INDICE DE DIAGRAMAS

INDICE DE IMAGENES

VI

RESUMEN

CAPTULO I
INTRODUCCIN
1.1. Anlisis de la Problemtica

1.2. Solucin de la Problemtica

1.3. Misin

1.4. Visin

1.5. Objetivos Generales

1.6. Objetivos Especficos

1.7. Riesgos

1.7.1.- Cuadro de Probabilidad e Impacto de los Riesgos

1.7.2.- Reduccin de la Probabilidad

1.7.3.- Reduccin del Impacto

1.7.4.- Evaluacin de Riesgos

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.

22

Metodologa

1.12.1. Levantamiento de la Informacin

24

1.12.2. Restricciones del Proyecto

32

1.12.3. Estudio de Factibilidad

34

1.12.3.1.- Elementos Fsicos

34

1.12.3.2.- Elementos Lgicos

34

1.12.3.3.- Elementos Humanos

35

1.12.3.4.- Administrativos

35

1.12.4. Anlisis 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) Dispositivo


Dactilar -- Proceso de Asistencias
1.12.5.4.- Diagrama Flujo de Datos (Nivel 2)
Proceso de Autentificacin
1.12.5.5.- Diagrama Flujo de Datos
(Nivel 2)
Modulo de Marcaciones
1.12.6.- Diagrama de Eventos

41
42
43
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.4 Diagramas de Componentes

63

2.5 Diagrama de Interfaz

64

2.6 Diagramas de Interaccin 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.

Asignacin de reas

73

2.6.1.5.

Asignacin de Horarios

74

2.6.1.6.

Horas Extras

75

2.6.1.7.

Reportes

76

2.6.2. Diagrama de Colaboracin

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
DISEO ORIENTADO A OBJETO
3.1 Diagrama de Clases

83

3.2 Diagrama General

84

3.2.1. Descripcin 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 Infraccin

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 Das

90

3.2.1.19. Clase Horas_Extras

91

3.3 Definicin de la Estructura de Datos

91

3.4 MODELO ENTIDAD RELACION

108

3.5.- COMPORTAMIENTO FUNCIONAL

110

3.5.1.- DESCRIPCION FUNCIONAL DE LA APLICACIN

110

3.5.1.1.- Modulo de Mantenimiento

110

3.5.1.2.- Modulo de Administracin

112

3.5.1.3.- Modulo de Reportes

112

3.6.- DISEO DE PANTALLAS

116

3.6.1.- Mantenimiento

114

3.6.2.- Administracin

120

3.6.3. Reportes

123

CAPITULO 4
DESARROLLO Y PRUEBAS
4.1 El ciclo de vida del Sistema Biomtrico BioSystem

130

Prueba de base de datos

130

Prueba de clases

130

Prueba de integracin de clases

130

Prueba de integracin del sistema

130

Demostrar funcionamiento con el cdigo

131

Prueba de cambios

131

Prueba de stress

131

Revisin tcnica

131

Prueba de programas con datos de prueba

132

Prueba completa del sistema con datos de prueba.

132

Prueba de interfaz de usuario

133

Cdigos de la Creacin de la base

133

Cdigos de Conexin

133

CAPITULO 5
IMPLEMENTACION
5.1 Instalacin

135

CAPITULO 6
CONCLUSIONES

140

RECOMENDACIONES

142

BIBLIOGRAFIA
ANEXO: CRONOGRAMA

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

RESUMEN
La aplicacin BioSystem

fue desarrollada para tener un control de la

asistencia de los empleados en una empresa, esta aplicacin fue diseada


usando una arquitectura cliente servidor a travs de un servidor de base de
datos postgreSQL, un servidor de aplicacin Web como el Apache, mediante
el uso de Java como lenguaje de programacin y de un gestor de reportes
como el JasperReports.
Para acceder a la informacin es necesario ingresar el cdigo del empleado
con su respectiva clave, a travs de un Web Browser
Gracias a la asignacin de perfiles a los usuarios se puede controlar el tipo
de accesibilidad a las secciones de la aplicacin, dndole as control sobre el
trato y procesamiento de la informacin.
Posibilitando la capacidad de enviar reportes en formato PDF o mediante un
documento Excel, les damos disponibilidad de la informacin de los
empleados a las personas que requieran de tal.
El propsito principal de esta aplicacin 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.

Introduccin

1.1. Anlisis de la Problemtica

La importancia significativa que representa el cumplimiento por parte


del personal respecto a la puntualidad y al respeto por las polticas o
normativas establecidas por parte de la organizacin sobre este tema,
implica poseer una metodologa que regule de manera precisa, veraz
y por sobretodo eficiente y eficaz este tpico.
El control de asistencia que una organizacin 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 organizacin 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 predisposicin
a corresponder a las bases administrativas de la organizacin, y no a

imponer primero la amistad o inherencias personales para realizar


registro de eventos correspondientes al control de asistencia y control
de acceso. Este tipo de situacin significara para la organizacin
improductividad, irrespeto por parte de sus empleados a las
reglamentaciones impuestas, y por ende representara un problema de
carcter financiero al no poder calcular de manera correcta las horas
trabajadas, multas, descuentos y horas extras.

1.2. Solucin de la Problemtica


Desarrollar un sistema informtico 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 utilizacin de la tecnologa biomtrica, la cual proporciona altos
ndices de seguridad, se lograr registrar de manera exacta el
momento en que se efecta una validacin de ingreso o salida al
recinto laboral o a un rea especfica de la misma.
La tecnologa biomtrica 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

reas especficas. Cada empleado ser asignado adicionalmente con


un cdigo, 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
informacin, bajo carcter de consulta, por va Web dndole a conocer
tanto a personal administrativo (informacin general bajo parmetros)
como al personal laboral (informacin personal de sus actividades).

1.3. Misin
Proporcionar a las organizaciones la capacidad de mantener un eficaz
registro de asistencias de su personal, en diferentes aspectos o
eventos a considerar, dndole as la facilidad de establecer clculos
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, permitindole
encontrar soluciones que conlleven a mejorar la actitud de sus
miembros

1.4. Visin
Proporcionar a las organizaciones el mejor servicio de control de
asistencias de personal y de acceso.

1.5. Objetivos Generales


Proporcionar a la Administracin de la organizacin, informacin 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 especficos 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 Especficos


La capacidad de almacenar la informacin de todo acceso del
empleado mediante el uso del aplicativo.
Proporcionar la seguridad mediante control biomtrico, a travs de
la identificacin de huellas dactilares.
Brindar una solucin eficiente, segura y accesible al problema de la
identificacin de las personas que ingresan a un determinado
lugar.

Brindar reportes en base a la informacin recolectada en la base


de datos, que representen con veracidad, eficiencia y eficacia las
necesidades de la Administracin.

1.7. Riesgos
El riesgo que corremos con la biometra actual es que se olvida que
los procesos de identificacin o autenticacin son complejos y
delicados, y que por mucho que mejore la tecnologa, no se puede
hacer reposar sobre ella la carga probatoria, y menos an 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 suspensin
de fuente elctrica, muertes, accidentes.
Falla del programa en el momento de la ejecucin
Riesgo de contraer enfermedades en la piel (herpes, grietas,
callos, psoriasis)
Riesgos que el dispositivo biomtrico se dae (deje de funcionar).
Riesgo de que uno de los integrantes del grupo se retire
Riesgo de que no se termine el proyecto a tiempo

1.7.1.- Cuadro de Probabilidad e Impacto de los Riesgos

RIESGOS

PROBABILIDAD
1 - 100 (%)

IMPACTO
(1-5)

Retraso en la entrega del


proyecto

10

Falta de capacidad del


personal

10

20

Falla del programa en el


momento de la ejecucin

30

Riesgo
de
contraer
enfermedades en la piel

15

Riesgos que el dispositivo


biomtrico se dae

10

30

Factores externos

De que uno de los


integrantes del grupo se
retire
Que el proyecto se dae

Cuadro 1.A.

Para cada peligro detectado debe estimarse el riesgo, determinando la


potencial severidad del dao y la probabilidad de que ocurra el hecho,
as como su impacto.

1.7.2.- REDUCCIN 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 tambin 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 fenmenos naturales y ambientales.
El cuarto riesgo lo reducimos controlando y verificando todos los
posibles errores y fallos, para que el programa pueda ejecutarse
sin ningn inconveniente.
El quinto riesgo se puede reducir estableciendo polticas de
higiene.
El sexto riesgo se puede reducir estableciendo normas y un buen
funcionamiento del uso dispositivo biomtrico.
El sptimo riesgo, es un riesgo de grupo y se puede reducir
mediante la comunicacin, evitando las discrepancias entres los
miembros del grupo.
El octavo riesgo, se reducir llevando varias copias de todos los
cambios que se estn efectuando en el transcurso de la realizacin
del proyecto

1.7.3.- REDUCCION DEL IMPACTO:


El riesgo se reducira 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 reducira si se establece un cronograma de
capacitacin 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 dems miembros del grupo, en el caso de algn desastre
natural tener algn mecanismo de contingencias
En caso de presentar errores, se justificara y corregir de forma
inmediata, de modo que se pida una prorroga para otra
presentacin.
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 biomtrico), 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 presentacin del funcionamiento del
sistema, al cliente o a las personas encargadas.

1.7.4.- EVALUACION DE RIESGOS

La evaluacin de los riesgos es el proceso dirigido a estimar la


magnitud de aquellos riesgos que no hayan podido evitarse,
obteniendo la informacin necesaria para que la persona encargada
est en condiciones de tomar una decisin apropiada sobre la
necesidad de adoptar medidas preventivas, y en tal caso, sobre el tipo
de medidas que deben adoptarse.

Niveles de Riesgo

Consecuencias
Ligeramente
Daino
LD
Baja
B

Probabilidad

Riesgo trivial
T

Media
M Riesgo tolerable
TO
Alta
A

Riesgo
moderado
MO

Daino
D

Extremadamente
Daino
ED

Riesgo
tolerable
TO

Riesgo moderado
MO

Riesgo
moderado
MO

Riesgo importante
I

Riesgo
importante
I

Riesgo intolerable
IN

Cuadro 1.B.

10

Nomenclatura de Riesgos
Riesgo

Accin y temporizacin

Trivial (T)

No se requiere accin especfica.

Tolerable
(TO)

No se necesita mejorar la accin preventiva. Sin embargo se deben considerar soluciones


ms rentables o mejoras que no supongan una carga econmica importante.
Se requieren comprobaciones peridicas para asegurar que se mantiene la eficacia de las
medidas 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 perodo determinado.
Cuando el riesgo moderado esta asociado con consecuencias extremadamente dainas,
se precisar una accin posterior para establecer, con ms precisin, la probabilidad de
dao 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 se
precisen recursos considerables para controlar el riesgo. Cuando el riesgo corresponda a
un trabajo que se est realizando, debe remediarse el problema en un tiempo inferior al
de los riesgos moderados.

Intolerable
(IN)

No debe comenzar ni continuar el trabajo hasta que se reduzca el riesgo. Si no es posible


reducir el riesgo, incluso con recursos ilimitados, debe prohibirse el trabajo.

Cuadro 1.C.

11

Tabla de Riesgos
RIESGOS
PROBABILIDAD CONSECUENCIAS
BM-A
LD D - ED

TIPO/RIIESGO
T TO MO
I - IN

Retraso en la entrega
del proyecto

TO

Falta de capacidad del


personal

ED

LD

ED

IN

LD

TO

LD

TO

MO

Factores externos
Falla del programa en
el momento de la
ejecucin

Riesgo de contraer
enfermedades en la piel
Riesgos
que
el
dispositivo biomtrico
se dae
De que uno de los
integrantes del grupo
se retire
Que el proyecto se
dae

Cuadro 1.D.

12

1.8. Alcances
El software a implementar podr administrar un mdulo de control de
acceso, para lo cual se considerar:

La realizacin del respectivo mdulo de ingreso de informacin de


los empleados, del cual nos encargaremos de su introduccin a la
base de datos.
Se podr configurar horarios de asistencias por empleado
(entradas, salidas).
Se podr configurar el tipo de ejecucin de su trabajo: por turno o
rotativo.
Registro de usuarios mediante un control de acceso al aplicativo ya
sea por niveles de autorizacin (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

Cuadro 1.E.

La arquitectura cliente/servidor es un modelo para el desarrollo de sistemas


de informacin en el que las transacciones se dividen en procesos
independientes que cooperan entre s para intercambiar informacin,
servicios o recursos. Se denomina cliente al proceso que inicia el dilogo 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 slo lo particular de cada usuario.
Los clientes realizan generalmente funciones como:

Manejo de la interfaz de usuario.


Captura y validacin de los datos de entrada.
Generacin de consultas e informes sobre las bases de datos.

15

Siempre que un cliente requiere un servicio lo solicita al servidor


correspondiente y ste le responde proporcionndolo.
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 presentacin

Al abrir un formulario Web de reportes o consultas de asistencias se usara la


capa de presentacin.
Al procesar una transaccin (insert update- delete) esta es verifica por la
capa de negocios
Al grabar la informacin en una base datos se aplica la capa de datos

16

1.10.

Cronograma

TAREA
1
2
3
4
5
6
7
8
9
10
11
12
13

NOMBRE DE LA TAREA
CRONOGRAMA DE ACTIVIDADES BIOSYSTEM
CONCEPTUALIZACION DEL PROYECTO
ANALISIS
Levantamiento de de la Informacin
Plan de Trabajo
Anlisis Econmico
Anlisis Funcional
Anlisis de los Casos de Usos
Anlisis de Comportamiento
DISEO
Estructura de los Objetos
Comportamiento Funcional
Avance de Entregables

DIAS
98 das
23 das
67 das
9 das
5 das
7 das
13 das
6 das
27 das
19 das
10 das
7 das
4 das
Cuadro 1.F.

Ver en ANEXO A.- CRONOGRAMA DE ACTIVIDADES COMPLETO

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 continuacin:
Servidor APACHE TOMCAT
DEFINICION: Tomcat es un servidor web con soporte de servlets y
JSPs.

Incluye

el

compilador

Jasper,

que

compila

JSPs

convirtindolas en servlets. El motor de servlets de Tomcat a


menudo se presenta en combinacin con el servidor web Apache.

Tomcat puede funcionar como servidor web por s mismo. En sus


inicios, existi la percepcin de que el uso de Tomcat de forma
autnoma era slo recomendable para entornos de desarrollo y
entornos con requisitos mnimos de velocidad y gestin de
transacciones. Hoy en da ya no existe esa percepcin, y Tomcat
es usado como servidor web autnomo en entornos con alto nivel
de trfico y alta disponibilidad. Dado que Tomcat fue escrito en
Java, funciona en cualquier sistema operativo que disponga de la
mquina virtual.

18

Java Developer Kit JDK 1.5

DEFINICION: Java (Sun), es una tecnologa desarrollada por Sun


Microsystems para aplicaciones software independiente de la
plataforma, que engloba:

Lenguaje de programacin Java, un lenguaje de programacin 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

Mquina Virtual de Java (JVM), la mquina virtual que ejecuta


bytecode de Java. Tambin se refiere a la parte de la plataforma
Java que se ejecuta en el PC, el entorno en tiempo de ejecucin 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 programacin Java slo para


ejecucin. El usuario final normalmente utiliza JRE en paquetes y
aadidos.

Plataforma Java, la mquina virtual de Java, junto con las APIs

19

Sistema Operativos:
DEFINICION (LINUX FEDORA CORE 5):
Es la denominacin de un sistema operativo y el nombre de un
ncleo. Es uno de los paradigmas del desarrollo de software libre
(cdigo

abierto),

pblicamente

donde
cualquier

el

cdigo

persona,

fuente
con

est

los

disponible

conocimientos

informticos adecuados, puede libremente estudiarlo, usarlo,


modificarlo y redistribuirlo.
Software libre (en ingls free software) es el software que, una
vez obtenido, puede ser usado, copiado, estudiado, modificado y
redistribuido libremente.

DEFINICION (WINDOWS XP):


Es una lnea de sistemas operativos desarrollado por Microsoft,
esta orientado a cualquier entorno informtico,

incluyendo

computadoras domesticas o negocios, computadoras porttiles 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 ncleo 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 cdigo 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 comparacin con otras como la GPL estando muy
cercana al dominio pblico. La licencia BSD al contrario que la GPL
permite el uso del cdigo fuente en software no libre.
La licencia GPL (General Public License o licencia pblica
general) es una licencia creada por la Free Software Foundation a
mediados de los 80, y est orientada principalmente a proteger la
libre distribucin, modificacin y uso de software. Su propsito es
declarar que el software cubierto por esta licencia es software libre
y protegerlo de intentos de apropiacin 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, tambin posee un
lector de huellas dactilar (Dispositivo biomtrico Dactilar BIOPOD
APC).

1.11.4.- Recursos Humano:


El personal que se requiere para la elaboracin del

proyecto:

(Sistema Biomtrico de Control de Asistencias del Personal


BIOSYSTEM) son los mismos que actuaran como analistas y
desarrolladores del sistema, cuyos nombres son:
Mariuxi Domnguez Aquino.
Carlos Villalta Herrera.
Oscar Vinces Jara.
1.12.

Metodologa

Anlisis
Diseo
Desarrollo
Pruebas y correccin de errores
Implementacin

22

Documentacin
Nuestra metodologa se basa en el Lenguaje Modelado Unificado
Usaremos diagramas de casos de uso, pues para ello se definirn los
actores para saber quienes ingresan y reciben informacin al sistema
en este diagrama podemos encontrar:
Determinacin de Requerimientos: Por lo general nuevos
requerimientos de sistema generan nuevos usos-casos,
conforme es analizado y diseado el sistema.
Comunicacin con el Cliente: Debido a la sencillez de este tipo
de diagramas, son fciles de emplear para comunicarse con el
cliente final del proyecto.
Generacin de pruebas de Sistemas: A travs de los diagramas
uso-caso se pueden generar una serie de pruebas de sistema.
Identificaremos si un usuarios actuarn con diferentes roles
Comprensin detallada de la funcionalidad del sistema
Gestin de riesgo ms eficiente para gobernar la complejidad
Mayor control para mantener las sucesivas revisiones de los
programas
Documentacin 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 interaccin que consta de diagramas de
secuencia

diagramas

de

colaboracin.

Los

diagramas

de

colaboracin representarn una posible interaccin de los objetos


ordenados a partir de la topologa que muestra el envo de sus
mensajes
Usaremos diagramas de clases que sern utilizadas dentro del
sistema y las relaciones que existen entre ellas.
Los diagramas de Clases por definicin son estticos, y poseen
caractersticas como:
Las mismas propiedades (Atributos)
El mismo comportamiento (Mtodos)
Las mismas relaciones con otros objetos (Mensajes)
La misma semntica dentro del sistema

1.12.1 Levantamiento de la Informacin


Investigacin Preliminar
Paso previo antes de la implementacin, es la investigacin
preliminar la cual es primordial dentro del anlisis de los requisitos,
para conocer los mtodos necesarios y tcnicas que determinen la
buena funcionabilidad del sistema ha implementar .

24

Dentro de la investigacin se analiz los diferentes medios que las


empresas mantienen para el control de asistencia de sus
empleados tales como:

A travs de registros diarios (mtodos manuales), La cual


consiste en ingresar la firma del empleado, lo cual conlleva a
determinar la asistencia de los mismos.
Uso de dispositivos magnticos que controlan la asistencia de
los empleados a travs de tarjetas magnticas que registran la
puntualidad o retraso a la jornada laboral
Ingreso a travs de la intranet, en la cual el empleado digita un
cdigo y reporta su asistencia diaria.

Los datos obtenidos durante la recoleccin de informacin se baso


para determinar las caractersticas que tendr el sistema de control
de

asistencias,

la

investigacin

ayudo

comprender

los

mecanismo esenciales del sistema que mantienen las empresas


necesarias para determinar la productividad de las actividades que
desempean las mismas.
Se evalu la informacin necesaria para el control de los
empleados:

25

1. Ingreso y verificacin de datos personales


2. Cumplimiento de asistencias
3. Estimacin de reas visitadas.
4. Determinacin de estndares de control

1.- Ingreso y verificacin de datos personales


Tener compresin de los datos del empleado, necesarios para
tener un control de las actividades diarias, informacin 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
(segn polticas 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 algn 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.- Determinacin de estndares de control
Previa a la investigacin 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 estndares de control
Vigilancia en el acceso a las reas restringidas
Verificacin del cumplimento en la jornada laboral
Faltas consecutivas del personal
Informe incorrectos de entradas o salidas.
Mtodos empleados
Para disponer de un control ms exhaustivo de los procesos se
investigo en ciertas
asistencias.

empresas sus mecanismos de control de

27

Los mtodos ha emplearse fueron:


A. La entrevista
B. La encuesta
C. La observacin

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 relacin 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 anomalas


tales como:
El empleador puede falsear la informacin 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 solucin 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 asistencia
Si [ ]
No [ ]
Si la respuesta es Si mencione 2 medios
--------------------------------------------------------------------------3.- Cree usted que el servicio biomtrico podra mejora el control de
asistencias
Si [ ]
No [ ]
Si la respuesta es Si mencione 2 ventajas
-------------------------------------- ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- -----------------------------------------3.- Utiliza algn sistema de control de asistencia para verificar atrasos
Si [ ]
No [ ]
Si la respuesta es si responda las siguientes alternativas
3.1.- Con que sistema trabaja.
3.2.- El sistema falla.
Normalmente [ ]

Casi siempre [ ]

Nunca [ ]

3.3.- Cuales son los problemas ms frecuentes al utilizar el sistema.

4.- Con que frecuencia dispone de la informacin de asistencias de sus


empleados.
Diaria [ ]
Mensual [ ]
Trimestral [ ]
Otros
[ ]
Especifique si es Otros

5.- Como lleva el control de asistencias


Manual [ ]
Automatizada [ ]

30

Del cuestionario expuesto se obtuvo el siguiente muestreo

Encuesta General
Preguntas
Nmero 1

Alternativas
Si
No

Cuantificacin
20
10

Nmero 2

Si
No

14
16

Nmero 3

Si
No

25
5

Nmero 4

Diaria
Mensual
Trimestral
Otros
Manual
Automatizada

4
15
5
6
19
11

Nmero 5

Cuadro 1.G.

Por medio de este muestreo se llego a la conclusin 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. OBSERVACIN
Se llevo una observacin del proceso de seguridad y de asistencia
de personal.

31

1.12.2 Restricciones del Proyecto

1. Unas de las primeras restricciones del proyecto es no poder


contar con un Dispositivo Biomtrico Dactilar (Completo); ya
que por factores econmicos este proyecto se realizara con un
Dispositivo Dactilar Bsico (Lector de Huella).
2. Se reservara el derecho de hacer la lectura del dispositivo
dactilar en lnea (ON LINE), ya que como es un dispositivo
dactilar bsico y econmico no se cuenta con todos los
permisos del fabricante de dicho dispositivo, para poder ser
alterado su cdigo fuente.
3. Se reserva todos los derechos del Dispositivo Biomtrico
Biopod APC.
4. La presentacin del proyecto se la realizara en un PC
(computador personal), con un software virtual que poseer el
servidor LINUX y esta simulara otra maquina fsica conectada
con la PC
5. Tendrn 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 restriccin
alguna

32

7. Al empleado se le guardara informacin de 4 huellas dactilares,


dos (2) por cada mano como minimo; en caso de corte o
desmembracin.
8. Se necesitara 2 lectores biomtricos; pero por factores
econmicos 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 creacin, consultas y de actualizacin del men
del sistema
10. El Administrador y los Usuarios con Privilegios solo podrn
asignarle a cada empleado Perfiles con sus respectivos Roles.
11. Los usuarios con privilegios de actualizacin, creacin y
consulta sern definidos previamente por el administrador.
12. Los empleados o usuarios solo tendrn 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 Fsicos
Hardware
Para el desarrollo del sitio Web se requiri el uso de 2 mquinas
durante la duracin de nuestro proyecto, en la cual una mquina
cumplir con las funciones de Servidor de aplicaciones y de
Servidor de Base de Datos.
Cantidad Detalle
1
Pentium IV, 512 RAM, HD 80 Gb
1
Pentium IV, 256 RAM, 120 Gb
Dispositivo Biomtrico Dactilar
1
FINGERPRINT READER
Total
1.11.3.2.- Elementos Lgicos

Valor
550,00
400,00
150,00
1100,00

Software
Se necesita de software para desarrollo de las pginas,
herramientas grficas y de creacin de animaciones, herramientas
de programacin, base de datos
Uso de herramientas OpenSource tales como.

Cantidad
1
1
1
1
1

Detalle
Eclipse
LINUX FEDORA CORE 5
JDK (JAVA)
J2EE 4
POSTGRE
Total

V.
total
0,00
0,00
0,00
0,00
0,00
00,00
Cuadro 1.I.

34

Y uso de otras herramientas tales como:

Cantidad
1
1
1

Detalle
Dreamweaver
PhotoShop
Visio 2000
Total

V.
total
35,00
20,00
20,00
75,00
Cuadro 1.J.

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 costara el recurso humano estara
compuesto de:
Cantidad
1
1
2
1
1
1
1

Detalle
Lder de Proyecto
Diseador Grfico
Analista programador
Administrador de Red
DBA
Digitador
Especialista en Marketing y Publicidad
Total

1.11.3.4.- Administrativos

V. total
400,00
200,00
300,00
300,00
300,00
200,00
300,00
2000,00
Cuadro 1.K.

Valores por concepto de alquiler del dominio y por concepto de


marketing y publicidad.
Cantidad Detalle
1
Dominio
1
Marketing y publicidad
Total

Valor
180,00
300,00
480,00
Cuadro 1.L.

PRESUPUESTO: Proyecto que estara valorado en $3580,00.

35

1.12.4 Anlisis Funcional


ANALISIS DE LA APLICACIN
En esta seccin se hace referencia a analizar los requisitos del
sistema ha implementar,

a travs de la comprensin de los

procesos.
Se detalla los escenarios que presentara la aplicacin de control de
asistencias:
El sistema de control de asistencia procesara la informacin de las
entradas, salidas, hora de almuerzos de un empleados mediante el
uso de un dispositivo biomtrico 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 travs del
ingreso a cada uno plasmando la huella dactilar en el sensor
biomtrico.

36

La informacin procesada por el dispositivo dactilar se almacenara


en una base de datos en la cual se registrara los ingresos errneos
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 opcin de ingreso de reas correspondientes a la empresa.

El sistema contara con la opcin de ingreso y modificacin de


horarios laborales de sus empleados clasificados por:

Horario Vespertino
Horario Nocturno
Horario Diurno
Horario por turno

El sistema permitir realizar Consulta y Actualizacin rpida 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 continuacin:

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 errneas 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,

determinado periodo.

justificaciones

vacaciones

en

un

1.12.5.- DIAGRAMAS DE FLUJO DE DATOS


1.12.5.1.- PROCESO DE INGRESO DE PERSONAL (NIVEL 0)

Datos
Persona
Natural

Informacin
Registrar
Datos
Personales

Usuarios

Diagrama 1

39

1.12.5.2.- DIAGRAMA GENERAL (NIVEL 0) ---- DISPOSITIVO DACTILAR ----

Presiona
Empleado

Informes

Informacin
Dactilar
Asistencia

Departamento
de Recursos
Humanos

Toma
Decisiones

Dispositivo Dactilar

Diagrama 2

40

1.12.5.3.- DIAGRAMA FLUJO DE DATOS (NIVEL 1)

---- DISPOSITIVO DACTILAR ---

--- PROCESO DE ASISTENCIAS ---

Presiona
Empleado

Informacin
Dactilar

Autentificacin
de la
Informacin

Informacin
Real
Asistencias

Dispositivo Dactilar
Informacin
Errnea

Mdulos de
Marcaciones

Historial _ erradas

Diagrama 3

41

1.12.5.4.- DIAGRAMA FLUJO DE DATOS (NIVEL 2)


--- PROCESO DE AUTENTIFICACION ---

usuarios
Reloj

Solicita

Datos
Personales
Verificacin
de la
existencia de
la Huella

Hora del Sistema

Modulo de
Marcacin
Huella Identificada

Genera
Reportes

Toma
Decisiones
Departamento
de Recurso
Humano

Huella no encontrada
Historial _ errados

Diagrama 4

42

1.12.5.5.- DIAGRAMA FLUJO DE DATOS (NIVEL 2)


--- MODULO DE MARCACIONES ---

feriados

Modulo de
Marcacin

obtiene
informacin

obtiene
informacin

Procesa informacin

Permisos x reas

horarios

usuario

control de acceso
infracciones

detalles asistencias

Diagrama 5

43

1.12.6.- DIAGRAMA DE EVENTOS

USUARIO

Nuevo
Actualizar
Eliminar
Consulta
Activo
Inactivo
Diagrama 6

ROLES

Nuevo
Actualizar
Eliminar
Consultar
Diagrama 7

FERIADOS

Nuevo
Actualizar
Eliminar
Consultar
Diagrama 8

44

HORARIOS

Nuevo
Actualizar
Eliminar
Consultar
Diagrama 9

CAPITULO 2
2

Anlisis Orientado a Objetos


Los diagramas de Casos de Uso sirven para especificar la
funcionalidad y el Comportamiento de un sistema mediante su
interaccin, con los usuarios y/o otros sistemas.
Elementos:
Identificamos a los actores que interactan con el sistema

2.1.

Actores que intervienen

Empleado

SISTEMA DE CONTROL DE
ASISTENCIA

Administrador

Usuario con Privilegios

Cuadro 2.A.

46

2.1.1.- IDENTIFICAR ACTORES

Administrador

Empleado

Usuario con privilegios

Cuadro 2.B.

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
Impresin de reportes.

Usuario con Privilegios


Depender de que privilegios el administrador le otorgue.

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
informacin:

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 adems poder
cambiar:

a. Informacin de los datos de un empleado


b. Restringir reas que dispona de acceso
c. Modificacin de horarios de trabajo
d. Justificacin de horas extras

48

e. Ingreso de permisos
f. Justificacin de permisos

El

usuario

podr

consultar

sus

asistencias,

inconsistencias de horarios, informacin personal.

2.2. Diagramas de Casos de Uso.

2.2.1.

Registro de Personal

<<extends>>
Administrador
Registrar Asistencia
<<extends>>

Empleado

<<extends>>

Usuario con privilegios

Diagrama 10

retrasos,

49

2.2.2.

Ingreso al Sistema

Mantenimiento
Administrador
<<extends>>

<<extends>>

<<extends>>

<<extends>>

Administracion
<<extends>>

Usuario con privilegios


<<extends>>

<<extends>>

Reportes

Empleado

Diagrama 11

2.2.3.

Empleado

Sistema Biosystem

Ingresar al Sistema
Consutas de informacin Personal
<<use>>
<<extends>>

<<extends>>

<<use>>

Reportes

Verificacin de asistencias

Empleado
<<extends>>
Generar reportes

Diagrama 12

50

2.2.4.

Modulo de Reportes

Generar reportes

<<uses>>

<<uses>>

Imprimir

Mail

Diagrama 13

51

2.2.5.

Administrador

Sistema Biosystem

<<extends> Registrar empleados


Ingresar al Sistema
<<extends>
Registrar Horarios

<<extends>

Otorgar Privilegios a los usuarios


Mantenimiento

<<extends>
Registrar Areas
<<extends>
Registrar departamentos

Administrador

<<extends>
<<extends>

Modificar datos del personal

Administracion

<<extends>

Reportes

Registrar tipos de Permisos

Registrar Justificaciones

Diagrama 14

52

2.2.6.

Usuario con Privilegios

Sistema Biosystem

<<extends> Registrar empleados


Ingresar al Sistema
<<extends>
Registrar Horarios

<<extends>

Registrar Areas

Mantenimiento
<<extends>
Registrar departamentos

<<extends>
Usuario con
Privelegios

Modificar datos del personal


<<extends>
Administracion
Registrar tipos de Permisos
<<extends>

Reportes

Registrar Justificaciones

Diagrama 15

53

2.3.- TARJETAS CRC


Las tarjetas CRC (Class Responsibility Collaborator), son una
metodologa para el diseo de software orientado por objetos creada
por Kent Beck y Ward Cunningham.

Como una extensin informal a UML, la tcnica de las tarjetas CRC se


puede usar para guiar el sistema a travs de anlisis 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

responsabilidades.

2.3.1.- CRC DE EMPLEADO

EMPLEADO
-Id_empleado String
-nombres String
-apellidos String
-clave String
-roles String
-TipoUsuario TipoUsuario
-Horario horario

HORARIOS
TIPOUSUARIO

Cuadro 2.C.

sus

54

2.3.2.- CRC DE TIPOUSUARIO

TIPOUSUARIO
-idTipoUsuario int
-descripcion String
-rol Rol

Cuadro 2.D.

2.3.3.- CRC DE AREAS

AREAS
-Id_areas String
-descripcion String
-estado String

DEPARTAMENTOS
PERMISOAREA

Cuadro 2.E.

55

2.3.4.- CRC DE DEPARTAMENTOS

DEPARTAMENTOS
-Id_departamento String
-Id_areas String
-descripcion String
-estado String

AREAS

Cuadro 2.F.

2.3.5.- CRC DE PERMISOAREA

PERMISOAREA
--idPermisoArea String
- Area area
- Empleado IdEmpleado

EMPLEADO

Cuadro 2.G.

56

2.3.6.- CRC DE PERMISOUSUARIO

PERMISOUSUARIO
--idPermisoUsuarioint
- permiso Permiso
- empleado Empleado
-fechaInicio Calendar
-fechaFin Calendar

EMPLEADOS
PERMISO

Cuadro 2.H.

2.3.7.- CRC DE PERMISO

PERMISO
--idPermiso int
- descripcion String

Cuadro 2.I.

57

2.3.8.- CRC DE DETALLE_HORARIOS

DETALLE_HORARIOS
--idDetalleHorario int
- id_dia_horario int
- idHorario Horarios
- empleado Empleado
- Hora time
- evento Eventos
- orden int

HORARIOS

Cuadro 2.J.

2.3.9.- CRC DE HORARIO

HORARIOS
--idHorario String
- Descripcion String

EMPLEADOS

Cuadro 2.K.

58

2.3.10.- CRC DE EVENTO


EVENTOS
--idEvento int
- descripcion String
- segundosPermitidos int

TIPOINFRACCION

Cuadro 2.L.

2.3.11.- CRC DE ASISTENCIAS

ASISTENCIA
--idAsistencia int
- empleado Empleado
-fecha Calendar

Cuadro 2.M.

59

2.3.12.- CRC DE DETALLEASISTENCIA


DETALLEASISTENCIA
--idDetalleAsistencia int
- evento Evento
-asistencia Asistencia
-fecha Calendar

EVENTOS

Cuadro 2.N.

2.3.13.- CRC DE TIPOINFRACCION

TIPOINFRACCION
--idTipoInfraccion int
- descripcion String

Cuadro 2.O.

60

2.3.14.- CRC DE INFRACCION


INFRACCION
--idFraccion int
- tipoInfraccion TipoInfraccion
- empleado Empleado
-fecha Calendar
- duracion int
- estado String
- justificador Empleado
- descripcionJustificacion
String
-asistencia Asistencia

TIPOINFRACCION

Cuadro 2.P.

2.3.15.- CRC DE ROLUSUARIO

ROLUSUARIO
-IdRolUsuario String
-idRol String
-Id_empleado Empleado

EMPLEADO

Cuadro 2.Q.

61

2.3.16.- CRC DE ROL


ROL
-idRol String
-descripcion String
-rol Rol
-estado String

ROLUSUARIO

Cuadro 2.R.

2.3.17.- CRC DE DIAS


DIAS
--idDia int
- estadoString

Cuadro 2.S.

62

2.3.18.- CRC DE FERIADO

FERIADOS
--idFeriado int
- descripcion String
- estado String

Cuadro 2.T.

2.3.19.- CRC DE HORAS_EXTRAS

HORAS_EXTRAS
-id_h_extras int
-emp Empleado
-id_horario Horarios
-id_tipo_usuario
TipoUsuario
-id_rol Rol

EMPLEADO

Cuadro 2.U.

63

2.4.

Diagramas de Componentes

Servidor BD
<<database>>Postgres

Postmaster

TCP/IP

Servidor WEB

Java JDBC

Acceso a BD

Logica de Negocio

Interface Grfica

TCP/IP

Cliente
JVM

JVM - Java Virtual Machine

Browser

Servidor Web

Paginas JSP

Responde

Peticion

Procesar

Diagrama 16

64

SERVIDOR WEB
Un servidor Web es un programa que implementa el protocolo
HTTP (hypertext transfer protocol). Este protocolo est diseado
para transferir lo que llamamos hipertextos, pginas web o pginas
HTML (hypertext markup language): textos complejos con enlaces,
figuras,

formularios,

botones

objetos

incrustados

como

animaciones o reproductores de sonidos.


PAGINAS JSP
JSP es un acrnimo de Java Server Pages, que en castellano
vendra a decir algo como Pginas de Servidor Java.
Con JSP podemos crear aplicaciones web que se ejecuten en
variados servidores web, de mltiples plataformas, ya que Java es
en esencia un lenguaje multiplataforma.

65

2.5.

DIAGRAMAS DE INTERFAZ

2.5.1 Diagrama de Introduccin

Diagrama 17

Este esquema mostrado a continuacin representa la Introduccin al


Sistema desarrollada a travs de una animacin Flash, adicional se observa
un link que permite saltarse esta introduccin e irse a una pantalla con la
siguiente interfaz.

66

2.5.2. Diagrama de Logueo

Diagrama 18

En este esquema podemos observar la existencia de una cabecera donde


constara el nombre y logotipo de la aplicacin, una seccin donde se
realizara el ingreso de Usuario y Password para acceder al sistema.

La identificacin exitosa proceder a mostrar otra u otras pantallas con


caractersticas similares a las siguientes.

67

2.5.3. Diagrama de Interfaz de Usuario (sin informacin desglosable)

Diagrama 19

En esta representacin se observa una cabecera

donde se muestra el

logotipo de la aplicacin, una seccin donde se contara con el men de


opciones (ADMINISTRACION, MANTENIMIENTO, REPORTE, SOPORTE),
un rea que proporcionar los datos del usuario que inicio la sesin (nombre,
hora de inicio sesin), una seccin de botones con funciones especificas
(bloquear programa, cambiar clave, cerrar sesin).

Se muestra una seccin de procesamiento de informacin que es donde se


realizara la gestin (ingreso, modificacin, eliminacin) o consulta de datos
que no requiera informacin adicional en el registro.

68

Dependiendo de la opcin 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 informacin desglosable)

Diagrama 20

En esta representacin se observa una cabecera

donde se muestra el

logotipo de la aplicacin, una seccin donde se contara con el men de


opciones (ADMINISTRACION, MANTENIMIENTO, REPORTE, SOPORTE),
un rea que proporcionar los datos del usuario que inicio la sesin (nombre,

69

hora de inicio sesin), una seccin de botones con funciones especificas


(bloquear programa, cambiar clave, cerrar sesin).

Se muestra una seccin de procesamiento de informacin de Datos


Principales que es donde se realizara la gestin (ingreso, modificacin,
eliminacin) o consulta de datos de nivel primario.

El rea de procesamiento de informacin de Datos Secundarios, es decir


dependientes de los Datos Principales, esta se desglosar una vez
presionada la correspondiente accin que permita mostrarla ubicada dentro
de la seccin de procesamiento de Datos Primarios.

Dependiendo de la opcin 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

2.6.

Diagramas de Interaccin de Objetos

2.6.1. Diagrama de Secuencias


2.6.1.1.

Registrar Empleado

:Empleado :Administrador
:Base de Datos Registro
:InterfaceLogeo

:InterfaceEmpleado

ManejadorRegistro
Empleado

:ManejadorPrincipal

:InterfaceBaseDatos
Registro

2: desplegarPantalla(PantallaPrincipal)
1:Peticin
4: manejarEvento(Logeo)
10: OK
3:Logeo(log,pass))

5: validarRegistroAdministrador(.log.pass)

7: ExecuteQuery
(SQL)
6: validarRegistro(RegistroAdministrador.log.pass)
8: OK

9: OK

11: Registrar
PODRA
12: manejarEvento(Registrar)
13: crearRegistro(registroEmpleado)
14: ExecuteInsert
(SQL)
15: OK
16: OK
17: desplegarPantalla(pantallaRegistroEmpleado)

Diagrama 21

71

2.6.1.2.

Actualizar Registro de Empleado


:Base de Datos Registro

:Empleado :Administrador

:InterfaceLogeo

:InterfaceEmpleado

ManejadorRegistro
Empleado

:ManejadorPrincipal

::Manejador
Consultas

:InterfaceBaseDatos
Registro

2: desplegarPantalla(PantallaPrincipal)

4: manejarEvento(Logeo)

1:Peticin

10: OK

7: ExecuteQuery
(SQL)
11: ofrecerConsulta()

3:Logeo(log,pass))
8: OK
5: validarRegistroAdministrador(.log.pass)

6: validarRegistro(RegistroAdministrador.log.pass)

9: OK

12: desplegarPantalla(PantallaConsuta)
13:ObtenerRegistro(int id_usuario)
14: manejarEvento(ObtenerRegistro)

15: obtenerRegistroEmpleado()
16: desplegarPantalla(PantallaObtenerRegistroEmpleado)

19: actualizarRegistro(RegistroEmpleado)
17:Actualizar

20: ExecuteUpdate
(SQL)

18: manejarEvento(Actualizar)
21: OK
22: OK
23: desplegarPantalla(PantallaObtenerRegistroEmpleado)

Diagrama 22

72

2.6.1.3.

Eliminar Registro de Empleado


:Base de Datos Registro

:Empleado :Administrador

:InterfaceLogeo

:InterfaceEmpleado

ManejadorRegistro
Empleado

:ManejadorPrincipal

::Manejador
Consultas

:InterfaceBaseDatos
Registro

2: desplegarPantalla(PantallaPrincipal)

4: manejarEvento(Logeo)

1:Peticin

10: OK

7: ExecuteQuery
(SQL)
11: ofrecerConsulta()

3:Logeo(log,pass))
8: OK
5: validarRegistroAdministrador(.log.pass)

6: validarRegistro(RegistroAdministrador.log.pass)

9: OK

12: desplegarPantalla(PantallaConsuta)
13:ObtenerRegistro(int id_usuario)
14: manejarEvento(ObtenerRegistro)

15: obtenerRegistroEmpleado()
16: desplegarPantalla(PantallaObtenerRegistroEmpleado)

19: ElimininarRegistro(RegistroEmpleado)
17Eliminar

20: ExecuteUpdate
(SQL)

18: manejarEvento(Eliminar)
21: OK
22: OK
23: desplegarPantalla(PantallaObtenerRegistroEmpleado)

Diagrama 23

73

2.6.1.4.

:Empleado

Asignacin de reas

:Administrador
:Base de Datos Registro
:InterfaceEmpleado

ManejadorRegistro
Empleado

:InterfaceBaseDatos
Registro

:ManejadorPrincipal

:InterfaceArea

ManejadorRegistro
Area

18: AsignacionArea
19: manejarEvento(AsignacionArea)

20: crearRegistroAreas(AsignacionArea)

21: ExecuteUpdate
(SQL)

22: OK

23: OK

24: DesplegarPantallaAreas
25: OK

Diagrama 24

74

2.6.1.5.
:Empleado

Asignacin de Horarios

:Administrador
:Base de Datos Registro
:InterfaceEmpleado

ManejadorRegistro
Empleado

:InterfaceBaseDatos
Registro

:ManejadorPrincipal

:InterfaceHorario

ManejadorRegistro
Horario

26: AsignacionHorario
27: manejarEvento(AsignacionHorario)

28: crearRegistroAreas(AsignacionHorario)

29: ExecuteInsert
(SQL)

30: OK

31: OK

32: DesplegarPantallaHorario
33: OK

Diagrama 25

75

2.6.1.6.
:Empleado

Horas Extras
:Base de Datos Registro

:Administrador
ManejadorRegistro
Empleado

:InterfaceLogeo

:ManejadorPrincipal

2: desplegarPantalla(PantallaPrincipal)

:InterfaceBaseDatos
Registro

:InterfaceHoraExtra

ManejadorRegistro
HoraExtra

11: RegistrarHoraExtra()

4: manejarEvento(Logeo)
1:Peticin

12: manejarEvento(RegistrarHoraExtra)
10: OK
7: ExecuteQuery
(SQL)
3:Logeo(log,pass))
8: OK
5: validarRegistroAdministrador(.log.pass)
13. Crea_RegistroHorasExtra(RegistrarHoraExtra)
14: ExecuteInsert
(SQL)
6: validarRegistro(RegistroAdministrador.log.pass)
15: OK
9: OK

16:OK

17: DesplegarPantallaHoraExtra

Diagrama 26

76

2.6.1.7.

:Empleado

Reportes

:Base de Datos Registro

:Administrador
ManejadorRegistro
Empleado

:InterfaceLogeo

:ManejadorPrincipal

2: desplegarPantalla(PantallaPrincipal)

:InterfaceBaseDatos
Registro

:InterfaceReportes

ManejadorRegistro
Reportes

11: ConsultarReportes()

4: manejarEvento(Logeo)
1:Peticin

12: manejarEvento(ConsultarReportes)
10: OK
7: ExecuteQuery
(SQL)
3:Logeo(log,pass))
8: OK
5: validarRegistroAdministrador(.log.pass)
13.crearRegistroReportes(ConsultarReportes)
14: ExecuteIQuery
(SQL)
6: validarRegistro(RegistroAdministrador.log.pass)
15: OK
9: OK

16:OK

17:DesplegarPantallaReportes

Diagrama 27

69

77

2.5.2. Diagrama de Colaboracin


2.5.2.1.

Ingreso de Empleados

2: Valida(usuario)
3: Valida(contrasea)

1: Logueo

Administrador

Ventana de Identificacin

Identificacin Validada
4: Generar Opciones

8: IngresarEmpleado
5: Ingresar datos Personales
6: Ingresar Perfiles
7: Ingresar Roles

Men de Mantenimiento

9: Grabar
10: Asignar Area

Empleado Ingresado

11: Asignar Area

14: Asignar Turnos y Horarios

12: Grabar
13: Asignar Turnos y Horarios

Area Asignada

Horario Asignado

15: Grabar
16: Registrar Huellas Dactilares

18: Grabar
19: Seleccionar Opcion

Menu de Opciones

Huellas Dactilares Registradas

Diagrama 28

78

2.5.2.2.
Asistencia,
y Atrasos General
epo te de Reporte
s ste c a , de
a tas
y t asos Ge eFaltas
a

2: Valida(usuario)
3: Valida(contrasea)

1: Logueo

Administrador

Ventana de Identificacin

Identificacin Validada
4: Generar Opciones

7: Seleccionar Empleado

5: Opcin Reporte de Asistencia


6: Selecionar Empleado

Men de Reportes

8: Ingresar Rango de Fechas


9: Seleccionar Fecha del Calendario

Empleado Seleccionado

12: Genarar Reporte

10: Selecionar Rango Fechas

11: Generar el Reporte

Fechas Ingresadas

13: Seleccionar Envo por e-mail

Reporte de Asistencia
Generado

Enviado por e-mail


13: Seleccionar Exportar a Excel

Exportado a Excel

Diagrama 29

79

2.5.2.3.
eg st o de

Registros de Horas Extras


o as

t as

2: Valida(usuario)
3: Valida(contrasea)

1: Logueo

Administrador

Ventana de Identificacin

Identificacin Validada
4: Generar Opciones

6: Seleccionar Empleado

5: Realizar Busqueda de Empleado

7: Ingresar Motivo
8: Selecionar Horas de Inicio y Fin
9: Seleccionar fecha de Inicio y Fin

Empleado Seleccionado

Men de Administracin

10: Asignar Horas Extras

Horas Extras Asignadas

Diagrama 30

80

2.5.3. Diagrama de Actividades


2.5.3.1.

Registro de Empleados

Registro de Empleados

Label
Time

Accesa al
sistema

Ingresar Usuario y
Password

Comprobar Usuario y
Password

no
si
Ingresar un
empleado

Procesar datos
personales

Asignar Areas de acceso

Asignar Turno Laboral

Registrar Horarios

Procesar Huellas Dactilar

no

si

Empleado
Registrado

Diagrama 31

81

2.5.3.2.

Horas Extras

Horas extras

Accesa al
sistema

Ingresar Usuario y
Password

Comprobar Usuario y
Password

no
si
Asignar empleado

Procesar horas
extras

Diagrama 32

82

2.5.3.3.

Reporte de Asistencias

Reporte de Asistencias

Accesa al
sistema

Ingresar Usuario y
Password

Comprobar Usuario y
Password

no
si
Consultar
empleados

Consultar
asistencias

Generar el Reporte

Enviar por mail

Diagrama 33

CAPITULO 3
3 Diseo Orientado a Objetos
3.1. Diagrama de Clases

Departamentos

Empleados

Areas

-Id_empleado String
-nombres String
-apellidos String
-clave String
-roles String
-TipoUsuario TipoUsuario
-Horario horario

-Id_areas String
-descripcion String
-estado String
+setId_areas() : void
+setDescripcion() : void
+setEstado() :void
+getId_areas() :String
+getDescripcion() : String
+getEstado() : String

+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

1..*

1..*
1

1..*

1
1..*
1

-idTipoUsuario int
-descripcion String
-rol Rol
+setDescripcion() : void
+setIdTipoUsuario() : void
+setUsuarios() :void
+getRol(): Rol
+getIdTipoUsuario() : int
+getDescripcion(): String

Permiso

--idPermisoArea String
- Area area
- Empleado IdEmpleado

--idPermiso int
- descripcion String

--idEvento int
- descripcion String
- segundosPermitidos int
+setDescripcion() : void
+setIdEvento() : void
+setSegundosPermitidos() :void
+getIdEvento(): int
+getDescripcion(): String
+getSegundosPermitidos(): int

1..*

+setid_horas_extras() : void
+setIdTipoUsuario() : void
+setUsuarios() :void
+getRol(): Rol
+getIdTipoUsuario() : int
+getId_horas_extras(): String

--idAsistencia int
- empleado Empleado
-fecha Calendar
+setIdAsistencia() : void

1..* +setEmpleado() :void

+setFecha():void
+getIdAsistencia(): int
+getEmpleado() : Empleado
+getFecha() : Calendar

+setIdFeriado() : void
+setDescripcion() : void
+setEstado() :void
+getIdFeriado(): int
+getDescripcion(): String
+getEstado(): String

+setEvento() : void
+setFecha() :void
+setIdDetalleAsistencia():void
+setAsistencia(): void
+getIdDetalleAsistencia() : int
+getFecha() : Calendar
+getAsistencia():Asistencia

Rol

1..*

-idRol String
-descripcion String
-rol Rol
-estado String

+setDescripcion() : void
+setEstado(): void()
+setIdRol() :void
+getIdRol(): String
+getDescripcion() : String
+getEstado() : String

--idTipoInfraccion int
- descripcion String
+setDescripcion() : void
+setIdTipoInfraccion() : void
+getIdTipoInfraccion() :int
+getDescripcion(): String

Infraccion
--idFraccion int
- tipoInfraccion TipoInfraccion
- empleado Empleado
-fecha Calendar
- duracion int
- estado String
- justificador Empleado
- descripcionJustificacion String
-asistencia Asistencia

+setRolEmpleado() : void
+getIdRol(): String
+getdEmpleado() : String
+getdRolempleado() : String

TipoInfraccion
1

--idFeriado int
- descripcion String
- estado String

+setIdHorario() : void
+setDescripcion() : void
+getIdHorario() :String
+getDescripcion(): String

-IdRolUsuario String
-idRol String
-Id_empleado Empleado

--idDetalleAsistencia int
- evento Evento
-asistencia Asistencia
-fecha Calendar

1..*

Asistencia

Feriado

1..* RolUsuarios

1..*
1

+setEstado() : void
+setIdDia() : void
+getIdDia() :int
+getEstado(): String

1..*

--idHorario String
- Descripcion String

DetalleAsistencia

Eventos

Horarios

+setDescripcion() : void
+setIdPermiso() : void
+setIdPermiso() :int
+getDescripcion(): String

+setIdPermisoArea() : void
+setArea() : void
+getid_empleado():String
+getArea(): String
+getPermisoArea(): String

--idDia int
- estadoString

+setEvento() : void
+setHora() : void
+setIdDetalleHorario() :void
+setDiaHorario(): void
+setEmpleado(): void
+setIdHorario(): void
+setOrden: void
+getEvento() : Evento
+getHora(): Time
+getIdDetalleHorario(): int
+getOrden(): int
+getIdHorario(): String

PermisoArea

Horas_Extras
-id_h_extras int
-emp Empleado
-id_horario Horarios
-id_tipo_usuario TipoUsuario
-id_rol Rol

+setIdPermisoUsuario() : void
+setPermiso() : void
+setEmpleado() :void
+setFechaInicio():void
+setFechaFin(): void
+getIdPermisoUsuario(): int
+getPermiso(): Permiso
+getEmpleado() : Empleado
+getFechaInicio() : Calendar
+getFechaFin() : Calendar

1..*

1..*

TipoUsuario

+setId_departamento():void
+setId_areas() : void
+setDescripcion() : void
+setEstado() :void
+gettId_departamento():String
+getId_areas() :String
+getDescripcion() : String
+getEstado() : String

Dias

--idDetalleHorario int
- id_dia_horario int
- idHorario Horarios
- empleado Empleado
- Hora time
- evento Eventos
- orden int

--idPermisoUsuarioint
- permiso Permiso
- empleado Empleado
-fechaInicio Calendar
-fechaFin Calendar

1
1..*
1

detalle_horarios

PermisoUsuario

-Id_departamento String
-Id_areas String
-descripcion String
-estado String

1
1..*

+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

Diagrama 34

84

3.2. Diagrama General


3.2.1.

Descripcin de clases

3.2.1.1.

Clase Empleados

Empleados
-Id_empleado String
-nombres String
-apellidos String
-clave String
-roles String
-TipoUsuario TipoUsuario
-Horario horario
+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

Diagrama 35

3.2.1.2.

Clase Departamentos

Departamentos
-Id_departamento String
-Id_areas String
-descripcion String
-estado String
+setId_departamento():void
+setId_areas() : void
+setDescripcion() : void
+setEstado() :void
+gettId_departamento():String
+getId_areas() :String
+getDescripcion() : String
+getEstado() : String

Diagrama 36

85

3.2.1.3.

Clase Tipo/Usuario

TipoUsuario
-idTipoUsuario int
-descripcion String
-rol Rol
+setDescripcion() : void
+setIdTipoUsuario() : void
+setUsuarios() :void
+getRol(): Rol
+getIdTipoUsuario() : int
+getDescripcion(): String

Diagrama 37

3.2.1.4.

Clase Eventos

Eventos
--idEvento int
- descripcion String
- segundosPermitidos int
+setDescripcion() : void
+setIdEvento() : void
+setSegundosPermitidos() :void
+getIdEvento(): int
+getDescripcion(): String
+getSegundosPermitidos(): int

Diagrama 38

86

3.2.1.5.

Clase Horarios

Horarios
--idHorario String
- Descripcion String
+setIdHorario() : void
+setDescripcion() : void
+getIdHorario() :String
+getDescripcion(): String

Diagrama 39

3.2.1.6.

Clase Permiso

Permiso
--idPermiso int
- descripcion String
+setDescripcion() : void
+setIdPermiso() : void
+setIdPermiso() :int
+getDescripcion(): String

Diagrama 40

3.2.1.7.

Clase detalle _ horarios

detalle_horarios
--idDetalleHorario int
- id_dia_horario int
- idHorario Horarios
- empleado Empleado
- Hora time
- evento Eventos
- orden int

+setEvento() : void
+setHora() : void
+setIdDetalleHorario() :void
+setDiaHorario(): void
+setEmpleado(): void
+setIdHorario(): void
+setOrden: void
+getEvento() : Evento
+getHora(): Time
+getIdDetalleHorario(): int
+getOrden(): int
+getIdHorario(): String

Diagrama 41

87

3.2.1.8.

Clase Feriado

Feriado
--idFeriado int
- descripcion String
- estado String
+setIdFeriado() : void
+setDescripcion() : void
+setEstado() :void
+getIdFeriado(): int
+getDescripcion(): String
+getEstado(): String

Diagrama 42

3.2.1.9.

Clase PermisoUsuario

PermisoUsuario
--idPermisoUsuarioint
- permiso Permiso
- empleado Empleado
-fechaInicio Calendar
-fechaFin Calendar
+setIdPermisoUsuario() : void
+setPermiso() : void
+setEmpleado() :void
+setFechaInicio():void
+setFechaFin(): void
+getIdPermisoUsuario(): int
+getPermiso(): Permiso
+getEmpleado() : Empleado
+getFechaInicio() : Calendar
+getFechaFin() : Calendar

Diagrama 43

3.2.1.10.

Clase Asistencia

Asistencia
--idAsistencia int
- empleado Empleado
-fecha Calendar
+setIdAsistencia() : void
+setEmpleado() :void
+setFecha():void
+getIdAsistencia(): int
+getEmpleado() : Empleado
+getFecha() : Calendar

Diagrama 44

88

3.2.1.11.

Clase DetalleAsistencia

DetalleAsistencia
--idDetalleAsistencia int
- evento Evento
-asistencia Asistencia
-fecha Calendar
+setEvento() : void
+setFecha() :void
+setIdDetalleAsistencia():void
+setAsistencia(): void
+getIdDetalleAsistencia() : int
+getFecha() : Calendar
+getAsistencia():Asistencia

Diagrama 45

3.2.1.12.

Clase Infraccin

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

Diagrama 46

89

3.2.1.13.

Clase TipoInfraccion

TipoInfraccion
--idTipoInfraccion int
- descripcion String
+setDescripcion() : void
+setIdTipoInfraccion() : void
+getIdTipoInfraccion() :int
+getDescripcion(): String

Diagrama 47

3.2.1.14.

Clase PermisoArea

PermisoArea
--idPermisoArea String
- Area area
- Empleado IdEmpleado
+setIdPermisoArea() : void
+setArea() : void
+getid_empleado():String
+getArea(): String
+getPermisoArea(): String

Diagrama 48

3.2.1.15.

Clase RolUsuarios

RolUsuarios
-IdRolUsuario String
-idRol String
-Id_empleado Empleado
+setRolEmpleado() : void
+getIdRol(): String
+getdEmpleado() : String
+getdRolempleado() : String

Diagrama 49

90

3.2.1.16.

Clase Areas

Areas
-Id_areas String
-descripcion String
-estado String
+setId_areas() : void
+setDescripcion() : void
+setEstado() :void
+getId_areas() :String
+getDescripcion() : String
+getEstado() : String

Diagrama 50

3.2.1.17.

Clase Rol

Rol
-idRol String
-descripcion String
-rol Rol
-estado String
+setDescripcion() : void
+setEstado(): void()
+setIdRol() :void
+getIdRol(): String
+getDescripcion() : String
+getEstado() : String

Diagrama 51

3.2.1.18.

Clase Das

Dias
--idDia int
- estadoString
+setEstado() : void
+setIdDia() : void
+getIdDia() :int
+getEstado(): String

Diagrama 52

91

3.2.1.19.

Clase Horas_Extras

Horas_Extras
-id_h_extras int
-emp Empleado
-id_horario Horarios
-id_tipo_usuario TipoUsuario
-id_rol Rol
+setid_horas_extras() : void
+setIdTipoUsuario() : void
+setUsuarios() :void
+getRol(): Rol
+getIdTipoUsuario() : int
+getId_horas_extras(): String

Diagrama 53

3.3 DEFINICION DE LA ESTRUCTURA DE DATOS


Base de Datos: DB_CTRASISTENCIA
Nombre de la tabla: EMPLEADOS
Descripcin: Tabla que registra la informacin de los empleados de
la empresa al cual se le aplicar el control de asistencias

CAMPO

TIPO DE DATO

CONSTRAINT

Id_usuario

Varchar (20)

Clave primaria

Id_tipo_usuario

Int (11)

Clave fornea

DESCRIPCION

Cdula del
usuario
Cdigo de tipo de
usuario

Id_horario

Int (11)

Clave fornea
Cdigo de horario

Nombres

Varchar (50)

Campo
obligatorio

Nombres del

92

usuario
Apellidos

Varchar (50)
Campo
obligatorio

Identificacin

Varchar (20)

Clave

Varchar (180)

Campo
obligatorio

Apellidos del
usuario
Cdigo del
usuario
Clave de acceso

Campo
obligatorio

Cuadro 3.A.

Nombre de la tabla: TIPOS DE USUARIOS


Descripcin: Tabla que registra la informacin de los tipos de
empleados de la empresa con su respectivo rol.

CAMPO

TIPO DE DATO

CONSTRAINT

DESCRIPCION

Id_tipo_usuario

Int (11)

Clave primaria

Cdigo de tipo de
usuario

Descripcin

Varchar (30)

Campo
obligatorio

Descripcin del
tipo de usuario

Id_Rol

Varchar (20)
Campo
obligatorio

Cdigo del Rol


del usuario

Cuadro 3.B.

93

Nombre de la tabla: USUARIOS_OBJETOS_APLICACION


Descripcin: Tabla que almacena la informacin de los diferentes
objetos que posee la aplicacin, otorgando el permiso al usuario
para acceder a los mismos

CAMPO

TIPO DE DATO

CONSTRAINT

Id_usuario

Varchar (20)

Clave fornea

Id_objeto

Varchar (50)

Clave fornea

Id_tipo_usuario

Int (11)

Clave fornea

DESCRIPCION

Cdula del
usuario
Cdigo del Objeto
Cdigo de tipo de
usuario

Id_horario

Int (11)

Clave fornea
Cdigo de horario
Cuadro 3.C.

Nombre de la tabla: OBJETOS_APLICACION


Descripcin: Tabla que almacena la informacin de las diferentes
opciones del men que posee el aplicativo.

CAMPO

TIPO DE DATO

CONSTRAINT

DESCRIPCION

Id_objeto

Varchar (50)

Clave primaria

Cdigo del Objeto

Descripcin

Varchar (255)

Campo
obligatorio

Descripcin del
objeto

Libre_acceso

Char (1)
Campo
obligatorio

El Acceso del
usuario a una
aplicacin.

Cuadro 3.D.

94

Nombre de la tabla: ROLES_USUARIOS


Descripcin: Tabla que almacena la informacin de los diferentes
roles correspondiente a cada empleado.

CAMPO

TIPO DE DATO

CONSTRAINT

DESCRIPCION

Id_rol

Varchar (20)

Clave fornea

Cdigo del rol

Id_usuarios

Varchar (20)

Clave fornea

Cdula del
usuario

Id_tipo_usuario

Int (11)

Clave fornea
Cdigo del tipo
de usuario

Id_horario

Int (11)

Clave fornea
Cdigo de horario
Cuadro 3.E.

Nombre de la tabla: ROLES


Descripcin: Tabla que almacena la informacin de los diferentes
roles que administra el aplicativo

CAMPO

TIPO DE DATO

CONSTRAINT

DESCRIPCION

Id_rol

Varchar (20)

Clave primaria

Cdigo del rol

Descripcin

Varchar (255)

Campo
obligatorio

Descripcin del
rol
Cuadro 3.F.

95

Nombre de la tabla: ROLES_OBJETOS_APLICACION


Descripcin: Tabla que almacena la informacin de los diferentes
objetos que posee la aplicacin, otorgando el permiso a travs de
roles de usuarios para acceder a los mismos

CAMPO

TIPO DE DATO

CONSTRAINT

DESCRIPCION

Id_rol

Varchar (20)

Clave fornea

Cdigo del rol

Id_objeto

Varchar (50)

Clave fornea

Cdigo del objeto


Cuadro 3.G.

Nombre de la tabla: MENUS


Descripcin: Tabla que posee las diferentes opciones que posee el
aplicativo

CAMPO

TIPO DE DATO

CONSTRAINT

DESCRIPCION

Id_objeto

Varchar (50)

Clave fornea

Cdigo del objeto

Id_menu_padre

Varchar (20)

Campo
obligatorio

Cdigo del men


padre

Mensaje

Varchar (255)

Mnemonic

Varchar (255)

URL_cargar

Varchar (255)

Posicin

Int (11)

Campo
obligatorio
Campo
obligatorio

Mensaje a
mostrar

Direccin URL

96

Campo
obligatorio
Campo
obligatorio
Cuadro 3.H.

Nombre de la tabla: INFRACCIONES


Descripcin: Tabla que almacena la informacin de los diferentes
tipos de infracciones referente a las asistencias que registra cada
empleado o usuarios del aplicativo.

CAMPO

TIPO DE
DATO

CONSTRAINT

DESCRIPCION

Id_infraccin

Int (11)

Clave primaria

Cdigo de
infraccin

Id_usuario

Varchar (20)

Clave fornea

Cdula
usuario

Id_tipo_usuario

Int (11)

Clave fornea

la

del

Cdigo del tipo


de usuario
Id_horario

Int (11)

Clave fornea

Id_tipo_infraccin

Int (11)

Clave fornea

Cdigo
horario

Id_asistencia

Int (11)

Clave fornea

Cdigo del tipo


de infraccin

Campo
obligatorio

Cdigo
detalle
asistencia

Campo

Fecha de
infraccin

Fecha

date

Duracin

int (11)

del

de
de

la

97

obligatorio
Estado

char (1)

Id_justificador

Varchar (20)

Descripcin_justificacin Varchar
(255)

Duracin de la
infraccin
Campo
obligatorio

Campo
obligatorio

Campo
obligatorio

Estado actual de
la infraccin
Cdula de la
persona
que
justifica
la
infraccin
Detalle de la
justificacin de
la infraccin
Cuadro 3.I.

Nombre de la tabla: TIPOS_INFRACIONES


Descripcin: Tabla que almacena la informacin 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

Int (11)

Clave primaria

Cdigo del tipo


de infraccin

Descripcin

Varchar (50)

Campo
obligatorio

Detalle de la
infraccin

Cuadro 3.J.

98

Nombre de la tabla: PERMISOS


Descripcin: Tabla que almacena la informacin de los diferentes
permisos que se le otorga aun empleado.

CAMPO

TIPO DE DATO

CONSTRAINT

Id_permiso

Int (11)

Clave Primaria

Descripcin

Varchar (50)

Campo
Obligatorio

DESCRIPCION

Cdigo del
permiso
Descripcin del
permiso
concedido
Cuadro 3.K.

Nombre de la tabla: PERMISOS _ USUARIOS


Descripcin: Tabla que registra la informacin de los diferentes
permisos otorgados a un empleado

CAMPO

TIPO DE DATO

CONSTRAINT

Id_permiso_usuario Int (11)

Clave primaria

Id_permiso

Clave fornea

Int (11)

Id_usuario

Varchar (20)

Clave fornea

Id_tipo_usuario

Int (11)

Clave fornea

DESCRIPCION

Cdigo del
permiso al
usuario
Cdigo del
permiso
Cdula del
usuario

99

Id_horario

Int (11)

Clave fornea

Fecha_inicio

Date

Campo
obligatorio

Fecha_fin

Date
Campo
obligatorio

Cdigo del tipo


de usuario
Cdigo del
horario
Fecha de inicio
del permiso
Fecha de
finalizacin del
permiso
Cuadro 3.L.

Nombre de la tabla: ASISTENCIA


Descripcin: Tabla que almacena la informacin de las asistencias
de los empleados en su jornada laboral

CAMPO

TIPO DE DATO

CONSTRAINT

DESCRIPCION

Id_asistencia

Int (11)

Clave primaria

Cdigo de la
asistencia

Id_usuario

Varchar (20)

Clave fornea

Cdula del
usuario

Id_tipo_usuario

Int (11)

Clave fornea
Cdigo del tipo
de usuario

Id_horario
Fecha

Int (11)
Date

Clave fornea
Campo
obligatorio

Cdigo del
horario
Fecha del registro
de asistencia
Cuadro 3.M.

Nombre de la tabla: DETALLES _ PERMISOS

100

Descripcin: Tabla que registra la informacin de los diferentes


justificaciones de los permisos que se le asigna a un empleado

CAMPO

TIPO DE
DATO

CONSTRAINT

Id_permiso

Int (11)

Clave fornea

Id_evento

Int (11)

Clave fornea

Id_detalle_asistencia Int (11)

Clave fornea

DESCRIPCION

Cdigo del
permiso
Cdigo del
evento
Cdigo del
detalle de la
asistencia

Id_asistencia

Int (11)

Clave fornea

Id_tipo_infraccion

Int (11)

Clave fornea

Cdigo de la
asistencia

Id_usuario

Varchar (20)

Clave fornea

Cdigo del tipo


de infraccin

Id_tipo_usuario

Int (11)

Clave fornea
Cdula del
usuario

Id_horario

Int (11)

Clave fornea
Cdigo del tipo
de usuario
Cdigo del
horario
Cuadro 3.N.

101

Nombre de la tabla: DETALLES _ ASISTENCIA


Descripcin: Tabla que almacena la informacin detallada de cada
una de las asistencias que registra los empleados

CAMPO

TIPO DE
DATO

CONSTRAINT

Id_detalles_asistencia Int (11)

Clave primaria

Id_asistencia

Clave fornea

Int (11)

DESCRIPCION

Cdigo del
detalle de
asistencia
Cdigo del
registro de
asistencia

Id_usuario

Varchar (20)

Clave fornea

Id_tipo_usuario

Int (11)

Clave fornea

Cdula del
usuario

Id_horario

Int (11)

Clave fornea

Cdigo del tipo


de usuario

Id_evento

Int (11)

Campo
obligatorio

Fecha

Date
Campo
obligatorio

Cdigo del
horario
Cdigo del
evento
Fecha del
registro
Cuadro 3.O.

102

Nombre de la tabla: PERMISOS_X_AREA


Descripcin: Tabla que registra la informacin de los diferentes
reas de acceso que posee cada empleado

CAMPO

TIPO DE DATO

CONSTRAINT

Id_usuario

Varchar (20)

Clave fornea

Id_tipo_usuario

Int (11)

Clave fornea

DESCRIPCION

Cdula del
usuario
Cdigo del tipo
de usuario

Id_horario
Id_area

Int (11)
Int (11)

Clave fornea
Clave fornea

Cdigo del
horario
Cdigo del rea
Cuadro 3.P.

Nombre de la tabla: AREAS


Descripcin: Tabla que registra la informacin de los diferentes
reas de la empresa.

CAMPO

TIPO DE DATO

CONSTRAINT

DESCRIPCION

Id_area

Int (11)

Clave primaria

Cdigo del rea

Descripcion

Varchar (50)

Campo
obligatorio

Nombre del rea

Cuadro 3.Q.

103

Nombre de la tabla: TURNOS


Descripcin: Tabla que almacena la informacin de los diferentes
turnos de horarios laborales que se le asigna a los empleados o
usuario del aplicativo

CAMPO

TIPO DE DATO

CONSTRAINT

Id_horario

Int (11)

Clave primaria

Descripcion

Varchar (50)

Campo
obligatorio

DESCRIPCION

Cdigo del
horario
Detalle del
horario
Cuadro 3.R.

Nombre de la tabla: DETALLES _ HORARIOS


Descripcin: Tabla que almacena la informacin de los diferentes
horarios que presenta un empleado, necesario para el control de
asistencias

CAMPO

TIPO DE
DATO

CONSTRAINT

DESCRIPCION

Id_detalle_dia

Int (11)

Clave primaria

Cdigo del
detalle del da

Id_dia_horario

Int (11)

Clave fornea

Cdigo del
horario del da

104

Id_horario

Int (11)

Clave fornea

Id_evento

Int (11)

Clave fornea

Id_detalle_asistencia Int (11)

Clave fornea

Id_asistencia

Int (11)

Clave fornea

Id_tipo_infraccion

Int (11)

Clave fornea

Id_usuario

Varchar (20)

Clave fornea

Id_tipo_usuario

Int (11)

Clave fornea

Hora

Time

Orden

Int (11)

Campo
obligatorio
Campo
obligatorio

Cdigo del
horario
Cdigo del
evento
Cdigo del
detalle de
asistencia
Cdigo del
registro de
asistencia
Cdigo del tipo
de infraccin
Cdula del
usuario
Cdigo del tipo
de usuario
Hora del registro
Orden del
registro
Cuadro 3.S.

105

Nombre de la tabla: EVENTOS


Descripcin: Tabla que almacena la informacin de los diferentes
eventos que registra la empresa, necesarios para el control del
asistencias.

CAMPO

TIPO DE
DATO

CONSTRAINT

Id_evento

Int (11)

Clave primaria

Id_detalle_asistencia

Int (11)

Clave fornea

Id_asistencia

Int (11)

Clave fornea

Id_tipo_infraccion

Int (11)

Clave fornea

Id_usuario

Varchar (20)

Clave fornea

Id_tipo_usuario

Int (11)

Clave fornea

DESCRIPCION

Cdigo del
evento
Cdigo del
detalle de
asistencia
Cdigo del
registro de
asistencia
Cdigo del tipo
de infraccin
Cdula del
usuario

Id_horario
Descripcin

Int (11)
Varchar (30)

Clave fornea
Campo
obligatorio

Segundos_permitidos Int (11)


Campo
obligatorio
Evaluacin

Int (11)

Cdigo del
horario
Detalle del
evento

Varchar (10)
Campo
obligatorio

Id_tipo_atraso

Cdigo del tipo


de usuario

Tiempo de gracia
para el evento

106

Id_tipo_infraccin_
incumplimiento

Int (11)

Campo
obligatorio

Estado de la
accin del
evento: antes o
despues

Campo
obligatorio

Cdigo del tipo


de atraso

Cuadro 3.T.

Nombre de la tabla: FERIADOS


Descripcin: Tabla que almacena la informacin de los das festivos
que se puede suscitar en un ao laboral.

CAMPO

TIPO DE DATO

CONSTRAINT

Id_dia

Int (11)

Clave primaria

Estado

Varchar (10)

Campo
Obligatorio

DESCRIPCION

Cdigo del
feriado
Estado del
feriado: activo,
inactivo

Cuadro 3.U.

107

Nombre de la tabla: HORAS_EXTRAS


Descripcin: Tabla que almacena la informacin referente a la hora
extra otorgables a un empleado o usuario del aplicativo.

CAMPO

TIPO DE DATO

CONSTRAINT

DESCRIPCION

Id_h_extras

Int (11)

Clave primaria

Cdigo de horas
extras

Id_usuario

Varchar (20)

Clave fornea

Cdigo del
usuario

Id_tipo_usuario

Int (11)

Clave fornea
Cdigo del tipo
de usuario

Id_horario

Int (11)

Clave fornea

H_extras_entrad

Varchar (5)

Campo
Obligatorio

H_extras_salid

Varchar (5)
Campo
Obligatorio

Total

Int (11)

Cdigo del
horario
Numero de horas
extras a la
entrada
Numero de horas
extras a la salida

Campo
Obligatorio

Total de horas
extras asignadas
Cuadro 3.V.

108

3.4 MODELO ENTIDAD RELACION (Sin Campos)

Diagrama 54

109

MODELO ENTIDAD RELACION (Con Campos)

Diagrama 55

110

3.5 .- COMPORTAMIENTO FUNCIONAL


3.5.1.- DESCRIPCION FUNCIONAL DE LA APLICACIN

El sistema de control de asistencias esta compuesto por 3


mdulos

Modulo de Mantenimiento

Modulo de Administracin

Modulo de Reportes

3.5.1.1.- Modulo de Mantenimiento


3.5.1.1.1.- Creacin de Empleados, asignacin 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 gestin de mantenimiento del
empleado con opciones de modificaciones en la cual se podr
adems 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 informacin correspondiente a
cada uno de los empleados.
Adems contara con la opcin de enviar dicha informacin 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 informacin 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 descripcin de los permisos, ya sea por
vacaciones, das festivos, etc.

112

3.5.1.2.- Modulo de Administracin


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.
Asignacin 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


algn 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 debern 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 informacin personal de un
empleado en particular o propia, de ser el caso, dispondr de
una pantalla para obtener un reporte que podr ser emitido
va 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 electrnico

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 informacin de asistencias,
faltas y atrasos solo de si mismo. Podr emitirlo va e-mail o
importarlo a un documento Excel.

3.5.1.3.3.- Reporte de Das Feriados


El usuario tendr un reporte de los das feriados que maneja
la empresa dentro de su calendario laboral, a fin de que
conozca sobre la suspensin de actividades.
La informacin podr ser exportada a Excel o enviada va email.

114

3.6.- DISEO DE PANTALLAS


3.6.1.- MANTENIMIENTO
3.6.1.1.- EMPLEADOS
3.6.1.1.1.- Gestin

Imagen 3.A

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

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

Imagen 3.B

Rotativo: Permitir el ingreso de las horas entrantes de cada uno


de los eventos del trabajador, en la cual se podr marcar sus
das laborables

116

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 das en los cuales se tendr un
turno fijo de trabajo.
En esta pantalla se contara con la opcin de modificar los horarios
laborables

Imagen 3.C

Dispositivo: El usuario administrador podr disponer de la opcin de


ingreso de la huella dactilar de cada empleado, se podr ingresar

117

hasta 10 huellas

de cada uno los dedos de la mano por cada

trabajador.
Esta opcin podra ser un enlace a otra aplicacin dependiendo de las
herramientas disponibles para la conexin del dispositivo
3.6.1.1.2.- Consulta
Esta pantalla contar con la opcin de consultar los datos de un
empleado especifico a travs del ingreso de su cedula, cdigo laboral
o nombre respectivo, la cual mostrara la informacin del mismo, las
reas en la cual pertenece y sus horarios laborables

Imagen 3.D

118

3.6.1.2.- FERIADOS

Imagen 3.E

En esta pantalla el usuario administrador o usuario con privilegios


podr ingresar las descripciones de fechas festivas, la fecha de inicio
y finalizacin de las mismas, adems se mostrarn los das 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

3.6.2.- ADMINISTRACION
3.6.2.1.- PERFILES DE EMPLEADOS

Imagen 3.G

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 tambin se podr aadir ROL con sus
respectivos privilegios.

121

Administracin 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

Imagen 3.H

122

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 cdigo del
empleado, el administrador deber ingresar el motivo de su hora extra as
como tambin 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.

Imagen 3.I

123

3.6.3. REPORTES
3.6.3.1.- REPORTES DE EMPLEADOS

Imagen 3.J

En esta opcin de reporte se proporciona el informe de datos


personales y operativos del empleado de la organizacin.
Para tener acceso a este informe se deber ingresar o ubicar el
nombre del empleado cuyos datos se desea obtener a travs del
combo de opciones que se proporciona.
El listado estar disponible para ser exportado a un documento Excel
o enviado va e-mail.

124

3.6.3.2.- REPORTES DE ASISTENCIA


3.6.3.2.1.- REPORTES DE ASISTENCIA/ FALTAS/ ATRASOS

Imagen 3.K

Diseada 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 informacin, adems
ingresar el rango de fechas del cual se requiera el informe.
Una vez establecidos estos parmetros la informacin 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 informacin del evento que se produjo


de la actividad del empleado, estos pueden dependiendo el caso:
ASISTENCIA: Entrada Diaria, Salida Diaria
ATRASOS: Entrada Tarda
FALTAS: No Asistencia, Salida Temprana

Podr ser consultada la informacin de tantos empleados como el


usuario requiera.
La informacin podr ser exportada a un documento Excel o enviada
va e-mail, de acuerdo a la opcin que escoja el usuario a travs de
las opciones ubicadas al final de la pgina.

126

3.6.3.2.2.-

REPORTES

DE

ASISTENCIA/

FALTAS/

ATRASOS

DIARIOS

Imagen 3.L

Diseada 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 parmetros la informacin 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 informacin del evento que se produjo


de la actividad del empleado, estos pueden dependiendo el caso:
ASISTENCIA: Entrada Diaria, Salida Diaria
ATRASOS: Entrada Tarda
FALTAS: No Asistencia, Salida Temprana

La informacin a la que se tendr acceso solo ser del usuario que se


identifique en el sistema, es decir sus actividades personales.

La informacin podr ser exportada a un documento Excel o enviada


va e-mail, de acuerdo a la opcin que escoja el usuario a travs de
las opciones ubicadas al final de la pgina.

128

3.6.3.2.3.- REPORTE DE DAS FERIADOS

Imagen 3.M

En esta pgina se podr conocer los das feriados que dispondr la


empresa para la suspensin de actividades.

Se deber seleccionar en el listado de empleados que se proporciona


el nombre de quien se desea conocer su informacin, adems
ingresar el rango de fechas del cual se requiera el informe.
Una vez establecidos estos parmetros la informacin a mostrar ser
presentada de la siguiente manera:

129

Se establecen 3 columnas: la fecha de inicio del feriado, la


fecha de culminacin, y la descripcin del feriado.

En cada fila se presenta la informacin de los feriados dentro


del rango de fechas especificado, dando el motivo del feriado y
su perodo de duracin.

La informacin podr ser exportada a

un documento Excel o

enviada va e-mail, de acuerdo a la opcin que escoja el usuario a


travs de las opciones ubicadas al final de la pgina.

CAPTULO 4
DESARROLLO Y PRUEBAS
Pruebas
4.

El ciclo de vida del Sistema Biomtrico 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-Relacin), 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 estn
bien depuradas y sin ningn margen de error
Prueba de integracin de clases
Nos aseguramos que las clases, y sus instancias, conforman un
software que cumpla con el comportamiento definido.

131

Prueba de integracin 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 mdulos
independientes.
Demostrar funcionamiento con el cdigo
Si un modelo realmente refleja lo que se necesita, o lo que se debe
construir, es la forma que reflejara buen funcionamiento del cdigo.
Prueba de cambios
Despus de realizar algn cambio en la aplicacin, nos
aseguramos que la aplicacin funcione de forma normal.
Prueba de stress
Nos aseguramos que el sistema funcione como se espera y sin
ningn problema, al cerciorarnos que soporta gran manejo de
informacin.
Revisin tcnica
Cada

integrante

del

grupo,

reviso

de

forma

exhaustiva,

independientemente con el objetivo de mostrar un sistema que se


enfoque en la precisin, 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 correccin

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 anlisis de sistemas para el
propsito especfico de probar los objetivos del sistema.

Factores que consideramos cuando se probamos el sistema con


datos de prueba:

1. Examinamos que los operadores debern tener documentacin


adecuada en los manuales de procedimientos para lograr la
operacin 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
estndares y requerimientos definidos, y establecidos en los
alcances.

Desarrollo
Cdigos de la Creacin de la base
Scripts de base de datos
Script para la creacin de la base de datos:
CREATE DATABASE "BIOMETRIC"
WITH OWNER = postgres
ENCODING = 'UNICODE'
TABLESPACE = pg_default;

134

Cdigos de Conexion
Script de conexin
hibernate-configuration:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration3.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.

Instalacin

Adems de instalar las respectivas herramientas es importante tenerlas bien


configuradas.

Dirjase al sitio de Java en Java.sun.com y proceda a descargar el


paquete autoextrable 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 trminos de la misma. Una


vez hecho lo anterior, se extraer el paquete RPM jre-1_5_0_06-linuxi586.rpm.

Como root instale jre-1_5_0_06-linux-i586.rpm:

136

su
rpm -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

lnea

que

aadir

la

ruta

de

binarios

de

Java

(/usr/java/jre1.5.0_06/bin, o lo que corresponda segn la versin del


paquete RPM) siempre antes de las rutas predeterminadas de
ejecutables del sistema.

export PATH=/usr/java/jre1.5.0_06/bin:$PATH
JAVA_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 extensin (Plug-in) Java para Mozilla del siguiente modo:

Si utiliza una versin 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 versin de Mozilla o Netscape compilada con GCC 2.96 (Red
Hat 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 omisin
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 aada un ";"


al final de la lnea Categories=Application;Settings, de modo tal que el
contenido quede del siguiente modo:

[Desktop Entry]
Name=Java
Comment=Java Control Panel
Exec=/usr/java/jre1.5.0_06/bin/ControlPanel
Icon=/usr/java/jre1.5.0_06/plugin/desktop/sun_java.png
Terminal=0
Type=Application
Categories=Application;Settings;
Si el fichero no existe, puede generarlo con el contenido anteriormente
mostrado.

Cierre todas las sesiones grficas y de consola que estn abiertas y


vuelva a ingresar como usuario.

Instalamos servidor de Aplicaciones Web Apache Tomcat/5.5.20 en


directorio

C:\Archivos

de

programa\Apache

Foundation\apache-tomcat-5.5.20 en Windows,

y en

Software
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-tomcat5.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 aadimos 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.0b1.jar en C:\java\tomcat\webapps\control_rrhh\WEB-INF\lib

Copiamos el archivo comprimido de Libreras de etiquetas java para


servidor jstl.jar en C:\java\tomcat\webapps\control_rrhh\WEB-INF\lib

Editamos archivo WEB.xml para declarar ruta lgica de archivo de


definicin de librera de etiqueta /WEB-INF/struts-template.tld

Editamos archivo WEB.xml para darle ruta lgica al archivo de


definicin de librerias de etiqueta /WEB-INF/displaytag.tld

Editamos archivo WEB.xml para darle ruta lgica al archivo de


definicin de librerias de etiqueta /WEB-INF/c.tld

Editamos archivo WEB.xml para darle ruta lgica al archivo de


definicin de librerias de etiqueta /WEB-INF/tag.tld que es propia de
nuestro proyecto

139

<!-- Struts Tag Library Descriptors -->


<taglib>
<taglib-uri>/tags/tags</taglib-uri>
<taglib-location>/WEB-INF/tags.tld</taglib-location>
</taglib>

Instalamos como IDE DreamWeaver 8 para desarrollo de archivos con


extensiones JSP, HTML, JS, que corresponde a la vista de la
aplicacin y TLD que corresponde a la definicin de etiquetas, XML
.que corresponden a la configuracin de la aplicacin, 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 aplicacin.

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 Biomtrico 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 antitico dado que prohibir compartir entre seres
humanos va en contra las leyes naturales.
La biometra est entrando con fuerza en sectores vinculados a la relojera
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 gestin de los recursos humanos en una
empresa. Una empresa que desee hacer una gestin 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 creacin 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
polticas de entrada y salida que una empresa dispuso.
Tiene como objetivo mantener el registro e informacin sobre el personal
Mantener actualizado la documentacin y registros con todo lo
antecedente y la informacin del personal.
Controlar la asistencia de horarios de trabajos llevando un control
obligatorio.
Las empresas estn gradualmente reconociendo la necesidad de

mantener

controles de asistencia de forma automtica mediante el uso de sistemas


biomtricos, haciendo uso de los mismos, sin embargo se requiere de una
visin que determine que tipo de tecnologa biomtrica es la ms adecuado
para la empresa.
La implementacin 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
organizacin, aunque no sea una garanta de administrar la seguridad.

142

RECOMENDACIONES
El aplicativo desarrollado se limita a proveer la informacin de las asistencias
de los empleados de una entidad, proporcionando un soporte de toma de
decisin a la empresa con el fin de evaluar la productividad de los mismos.

El aplicativo implementado diseado para funcionar dentro de una intranet


corporativa.

Para mantener un respaldo de la informacin es necesario realizar los


backup correspondiente a fin de proveer informacin actualizable en caso de
algn percance que motive la perdida de la data.

Realizar el mantenimiento de los dispositivos biomtricos, con el propsito de


precautelar su correcto desempeo y obtener resultados veraces en la
identificacin.

4.1 Cdigos de las Clases


Scripts de base de datos
Script para la creacin de la base de datos:
CREATE DATABASE "BIOMETRIC"
WITH OWNER = postgres
ENCODING = 'UNICODE'
TABLESPACE = pg_default;

Script para la creacin 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 creacin 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 SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE asistencias OWNER TO postgres;

Script para la creacin 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 SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT movimientos_fk FOREIGN KEY (id_evento)
REFERENCES eventos (id_evento) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE detalles_asistencias OWNER TO postgres;

Script para la creacin 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 SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT detalles_horarios_fk1 FOREIGN KEY (id_evento)
REFERENCES eventos (id_evento) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE detalles_dias OWNER TO postgres;

Script para la creacin 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 SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT permisos_eventos_fk1 FOREIGN KEY (id_permiso)
REFERENCES permisos (id_permiso) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE detalles_permisos OWNER TO postgres;

Script para la creacin 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 SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE dias_horarios OWNER TO postgres;

Script para la creacin 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 SIMPLE
ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT id_horario_fk FOREIGN KEY (id_horario)
REFERENCES horarios (id_horario) MATCH SIMPLE
ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT usuarios_fk FOREIGN KEY (id_tipo_usuario)
REFERENCES tipos_usuario (id_tipo_usuario) MATCH SIMPLE
ON UPDATE RESTRICT ON DELETE RESTRICT
)
WITHOUT OIDS;
ALTER TABLE empleado OWNER TO postgres;

Script para la creacin 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 creacin 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) MATCH
SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT eventos_fkl FOREIGN KEY
(id_tipo_infraccion_incumplimiento)
REFERENCES tipos_infracciones (id_tipo_infraccion) MATCH
SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE eventos OWNER TO postgres;

Script para la creacin 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 creacin 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 creacin 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 creacin 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 SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE horas_extras OWNER TO postgres;

Script para la creacin 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 creacin 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 SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT infracciones_fk FOREIGN KEY (id_tipo_infraccion)
REFERENCES tipos_infracciones (id_tipo_infraccion) MATCH
SIMPLE
WITHOUT OIDS;
ALTER TABLE infracciones OWNER TO postgres;

Script para la creacin 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 SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT menus_fk1 FOREIGN KEY (id_menu_padre)
REFERENCES menus (id_objeto) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE menus OWNER TO postgres;

Script para la creacin 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 creacin 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 creacin 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 creacin 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 SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT permisos_usuarios_fk1 FOREIGN KEY (id_permiso)
REFERENCES permisos (id_permiso) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE permisos_usuarios OWNER TO postgres;

Script para la creacin 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 creacin 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 SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT roles_objetos_aplicacion_ibfk_2 FOREIGN KEY (id_objeto)
REFERENCES objetos_aplicacion (id_objeto) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE roles_objetos_aplicacion OWNER TO postgres;

Script para la creacin 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 SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT roles_usuarios_fk1 FOREIGN KEY (id_usuario)
REFERENCES empleado (id_usuario) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE roles_usuarios OWNER TO postgres;

Script para la creacin 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 creacin 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 creacin 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 SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT permisos_usuarios_fk1 FOREIGN KEY (id_permiso)
REFERENCES permisos (id_permiso) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE permisos_usuarios OWNER TO postgres;

Script para la creacin 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 SIMPLE
ON UPDATE RESTRICT ON DELETE RESTRICT,
CONSTRAINT descripcion UNIQUE (descripcion)
)
WITHOUT OIDS;
ALTER TABLE tipos_usuario OWNER TO postgres;

Script para la creacin 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 SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT usuarios_objetos_aplicacion_fk1 FOREIGN KEY (id_objeto)
REFERENCES objetos_aplicacion (id_objeto) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITHOUT OIDS;
ALTER TABLE usuarios_objetos_aplicacion OWNER TO postgres;

Script de conexin
Script para la creacin de la conexin hibernate-configuration:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration3.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 creacin 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="saveupdate">
<key column="ID_AREA" />
<one-to-many class="clasesPersistentes.Usuario" />
</set>
</class>
</hibernate-mapping>

Script para la creacin 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 creacin 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" notnull="true" />
</class>
</hibernate-mapping>

Script para la creacin 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" notnull="true" />
<property name="orden" type="integer" column="ORDEN" notnull="false" />
<many-to-one name="diaHorario" column="ID_DIA_HORARIO" notnull="true" />
<many-to-one name="evento" column="ID_EVENTO" notnull="true" />
</class>
</hibernate-mapping>

Script para la creacin 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 creacin 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 creacin 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 creacin 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 creacin 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 creacin 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" notnull="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 creacin 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="saveupdate">
<key column="ID_HORARIO" />
<one-to-many class="clasesPersistentes.Usuario" />
</set>
</class>
</hibernate-mapping>

Script para la creacin 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" notnull="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 creacin 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 creacin 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 creacin 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" notnull="true" />
<many-to-one name="usuario" column="ID_USUARIO" notnull="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 creacin 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 creacin 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 creacin 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 creacin 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" notnull="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(Set
infraccionesJustificadas) {
this.infraccionesJustificadas = infraccionesJustificadas;
}
public Set getAsistencias() {
return asistencias;
}
public void setAsistencias(Set movimientos) {
this.asistencias = movimientos;
}
}

INDICE DE CUADROS

CAPTULO I
Cuadro 1.A.

Cuadro de Probabilidad e Impacto de los Riesgos


Cuadro 1.B

Niveles de Riesgo
Cuadro 1.C.

Nomenclatura de Riesgos
Cuadro 1.D.

Tabla de Riesgos
Cuadro 1.E.

Arquitectura
Cuadro 1.F.

Cronograma
Cuadro 1.G.

Encuesta
Cuadro 1.H.

Anlisis Econmico - Elementos Fsicos (Hardware)


Cuadro 1.I.

Anlisis Econmico - Elementos Fsicos (Software)


Cuadro 1.J.

Anlisis Econmico Otras Herramientas


Cuadro 1.K.

Anlisis Econmico Elementos Humanos


Cuadro 1.L.

Anlisis Econmico Elementos Administrativos


CAPTULO 2
Cuadro 2.A.

Actores que intervienen


Cuadro 2.B.

Identificar actores
Cuadro 2.C.

CRC DE EMPLEADO
Cuadro 2.D.

CRC DE TIPOUSUARIO
Cuadro 2.E.

CRC DE AREAS
Cuadro 2.F.

CRC DE DEPARTAMENTOS

6
9
10
11
14
16
30
33
33
34
34
34

45
46
53
54
54
55

Cuadro 2.G.

CRC DE PERMISOAREA
Cuadro 2.H.

CRC DE PERMISOUSUARIO
Cuadro 2.I.

CRC DE PERMISO
Cuadro 2.J.

CRC DE DETALLE _ HORARIOS


Cuadro 2.K.

CRC DE HORARIO
Cuadro 2.L.

CRC DE EVENTO
Cuadro 2.M.

CRC DE ASISTENCIAS
Cuadro 2.N.

CRC DE DETALLEASISTENCIA
Cuadro 2.O.

CRC DE TIPOINFRACCION
Cuadro 2.P.

CRC DE INFRACCION
Cuadro 2.Q.

CRC DE ROLUSUARIO
Cuadro 2.R.

CRC DE ROL
Cuadro 2.S.

CRC DE DIAS
Cuadro 2.T.

CRC DE FERIADO
Cuadro 2.U.

CRC DE HORAS _ EXTRAS


CAPTULO 3
Cuadro 3.A.

Nombre de la tabla: EMPLEADOS


Cuadro 3.B.

Nombre de la tabla: TIPOS DE USUARIOS


Cuadro 3.C.

Nombre de la tabla: USUARIOS_OBJETOS_APLICACION


Cuadro 3.D.

Nombre de la tabla: OBJETOS_APLICACION


Cuadro 3.E.

Nombre de la tabla: ROLES _ USUARIOS


Cuadro 3.F.

Nombre de la tabla: ROLES


Cuadro 3.G.

Nombre de la tabla: ROLES_OBJETOS_APLICACION


Cuadro 3.H.

Nombre de la tabla: MENUS

55
56
56
57
57
58
58
59
59
60
60
61
61
62
62

92
93
94
94
95
96
96
97

Cuadro 3.I.

Nombre de la tabla: INFRACCIONES


Cuadro 3.J.

Nombre de la tabla: TIPOS_INFRACIONES


Cuadro 3.K.

Nombre de la tabla: PERMISOS


Cuadro 3.L.

Nombre de la tabla: PERMISOS _ USUARIOS


Cuadro 3.M.

Nombre de la tabla: ASISTENCIA


Cuadro 3.N.

Nombre de la tabla: DETALLES _ PERMISOS


Cuadro 3.O.

Nombre de la tabla: DETALLES _ ASISTENCIA


Cuadro 3.P.

Nombre de la tabla: PERMISOS_X_AREA


Cuadro 3.Q.

Nombre de la tabla: AREAS


Cuadro 3.R.

Nombre de la tabla: TURNOS


Cuadro 3.S.

Nombre de la tabla: DETALLES _ HORARIOS


Cuadro 3.T.

Nombre de la tabla: EVENTOS


Cuadro 3.U.

Nombre de la tabla: FERIADOS


Cuadro 3.V.

Nombre de la tabla: HORAS _ EXTRAS

97
98
99
99
100
101
102
103
103
104
104
106
107
108

INDICE DE DIAGRAMAS

CAPTULO I

DIAGRAMA DE FLUJO DE DATOS


Diagrama 1

PROCESO DE INGRESO DE PERSONAL--- (NIVEL 0)


Diagrama 2

DISPOSITIVO DACTILAR --- (NIVEL 0)


Diagrama 3

DISPOSITIVO DACTILAR --- (NIVEL 1)


Diagrama 4

PROCESO DE AUTENTIFICACION --- (NIVEL 2)


Diagrama 5

MODULO DE MARCACIONES --- (NIVEL 2)

38
39
40
41
42

DIAGRAMA DE EVENTOS
Diagrama 6

USUARIO
Diagrama 7

AREAS
Diagrama 8

FERIADOS
Diagrama 9

HORARIOS

43
43
43
44

CAPTULO 2
DIAGRAMAS DE CASOS DE USO
Diagrama 10

Registro de Personal
Diagrama 11

Ingreso al Sistema
Diagrama 12

Empleado

48
49
49

Diagrama 13

Modulo de Reportes
Diagrama 14

Administrador
Diagrama 15

Usuario con Privilegios


Diagrama 16

Diagramas de Componentes
DIAGRAMAS DE INTERFAZ
Diagrama 17

Diagrama de Introduccin
Diagrama 18

Diagrama de Logueo
Diagrama 19

Diagrama de Interfaz de Usuario (sin informacin desglosable)


Diagrama 20

Diagrama de Interfaz de Usuario (con informacin desglosable)


DIAGRAMA DE SECUENCIAS
Diagrama 21

Registrar Empleado
Diagrama 22

Actualizar Registro de Empleado


Diagrama 23

Eliminar Registro de Empleado


Diagrama 24

Asignacin de reas
Diagrama 25

Asignacin de Horarios
Diagrama 26

Horas Extras
Diagrama 27

Reportes
DIAGRAMA DE COLABORACIN
Diagrama 28

Ingreso de Empleados
Diagrama 29

Reporte de Asistencia, Faltas y Atrasos General


Diagrama 30

Registros de Horas Extras


DIAGRAMA DE ACTIVIDADES
Diagrama 31

Registro de Empleados
Diagrama 32

Horas Extras
Diagrama 33

Reporte de Asistencias

50
51
52
63

65
66
67
68

70
71
72
73
74
75
76

77
78
79

80
81
82

CAPTULO 3
Diagrama 34

DIAGRAMA DE CLASES
DIAGRAMA GENERAL --- DESCRIPCIN DE CLASES
Diagrama 35

Clase Empleados
Diagrama 36

Clase Departamentos
Diagrama 37

Clase Tipo/Usuario
Diagrama 38

Clase Eventos
Diagrama 39

Clase Horarios
Diagrama 40

Clase Permiso
Diagrama 41

Clase detalle _ horarios


Diagrama 42

Clase Feriado
Diagrama 43

Clase PermisoUsuario
Diagrama 44

Clase Asistencia
Diagrama 45

Clase DetalleAsistencia
Diagrama 46

Clase Infraccin
Diagrama 47

Clase TipoInfraccion
Diagrama 48

Clase PermisoArea
Diagrama 49

Clase RolUsuarios
Diagrama 50

Clase reas
Diagrama 51

Clase Rol
Diagrama 52

Clase Das
Diagrama 53

Clase Horas _ extras


Diagrama 54

MODELO ENTIDAD RELACION (sin campos)


Diagrama 55

MODELO ENTIDAD RELACION (con campos)

83

84
84
85
85
86
86
86
87
87
87
88
88
89
89
89
90
90
90
91
108
109

INDICE DE IMAGENES
CAPTULO 3
DISEO DE PANTALLAS
MANTENIMIENTO
Imagen 3.A

Empleados Gestin Ingreso


Imagen 3.B

Horarios Gestin/Consulta
Imagen 3.C

Horarios Actualizacin
Imagen 3.D

Empleados Actualizar
Imagen 3.E

Feriados
Imagen 3.F

Permisos

114
115
116
117
118
119

ADMINISTRACION
Imagen 3.G

Perfiles de Empleados
Imagen 3.H

Pantalla de Roles
Imagen 3.I

Horas Extras

120
121
122

REPORTES
Imagen 3.J

Reportes de Empleados
Imagen 3.K

Reportes de Asistencia/ Faltas/ Atrasos


Imagen 3.L

Reportes de Asistencia/ Faltas/ Atrasos Diarios


Imagen 3.M

Reporte de Das Feriados

123
124
126
128

También podría gustarte