Sistema de control horario
Full text
1
2
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA (GRADO EN INGENIERÍA DE COMPUTADORES) (SISTEMA DE CONTROL HORARIO) (TIME CONTROL SYSTEM) Realizado por (Juan Carlos Salazar Caballero) Tutorizado por (Francisco Gutierrez Lopez) Departamento (Lenguajes y Ciencias de la Computación) UNIVERSIDAD DE MÁLAGA MÁLAGA, (Julio y 2016) Fecha defensa: El Secretario del Tribunal 3
4
DEDICATORIA Y AGRADECIMIENTOS. Quiero dedicar este trabajo fin de grado a toda mi familia, en especial a mi madre (Luisa), también a mi padre aunque ya no esté conmigo (Diego), a mi hermana (Ana), mis sobrinos (Sandro, Cristina, Margarita y Pedro, sus futuros y actuales hijos/as), también quiero hacer una especial mención y agradecimiento a todos mis compañeros del departamento de informática de la Delegación Provincial de Hacienda y Administración Pública de Málaga (Junta de Andalucía), ellos son Mª José, Celia, Juan Pablo, Rafael, Carlos, Luis y Marco, mi agradecimiento por aguantarme todos los días, por su apoyo así como sus consejos y asesoramiento en la construcción de este TFG, por último, no quiero olvidarme de Francisco Gutierrez Lopez, tutor de este proyecto así como profesor que tuve durante la etapa de la titulación de Ing Técnica en Informática de Sistemas ya hace años, alguien que en el pasado y ahora en el presente, me vuelve a dejar para el futuro bien claro el concepto de lo que es un gran profesor. 5
Resumen: Dentro de una empresa u organización, los empleados tienen que cumplir con una cantidad de horas laborales de trabajo diariamente. Estos intervalos laborales han de llevarse a cabo dentro de una jornada laboral pactada lo que implica que los empleados deben tener sus correspondientes entradas y salidas del trabajo. Por otro lado, se ha de tener en cuenta que los empleados tienen derecho a días de permiso y vacaciones. Para llevar el control de entradas y salidas del trabajo, es necesario un sistema que prevea un método de marcajes de reloj; dichos marcajes de reloj pueden ser de diferente tipo, marcajes de reloj de entrada, marcajes de reloj de salida, marcajes de reloj tanto de entrada/salida para diferentes tipos de permiso que tenga el trabajador. El sistema de control horario tiene como fin dar un servicio que permite a cualquier empleado de la organización llevar el seguimiento de las horas trabajadas en la correspondientes jornadas laborales dentro de la empresa. Este seguimiento permitirá al empleado tener constancia del cumplimiento de las horas trabajadas dentro del correspondiente horario laboral de su trabajo. Además, permitirá al empleado tener en cualquier momento conocimiento de los permisos laborales consumidos así como de los días de vacaciones disfrutados. Dicho de otra manera, es un sistema que, en todo momento, le permite al empleado controlar el correcto cumplimiento de su horario laboral así como conocer los permisos que tenga derecho a disfrutar. Este TFG se desarrolla con una metodología basado en prototipos que dará lugar a un programa de acceso vía web, basado en el paradigma MODELOVISTA-CONTROLADOR, desarrollado en tres capas o niveles en html, css, j2ee, jsp, servlets y sql. Palabras Clave: Control horario, web, jsp, servlet, Tomcat, servidor de aplicaciones, filtros, incidencia, usuarios, MySql, java, j2ee, parámetros de configuración, restricciones, fecha, hora, minutos, cookie, sesión, modelo, vista, controlador, tres capas, base de datos, UML, diagrama de secuencia, clase, instancia, 6
Abstract: Within a company or organization, employees have to meet a number of labor hours daily. These intervals work must be carried out within an agreed working hours which means that employees must have their corresponding inputs and outputs work. On the other hand, it must take into account that employees are entitled to days off and holidays. To take control of inputs and outputs work, you need a system which provides a method of marking clock; clock such labels can be of different type, markings input clock, output clock marking, marking both clock input / output for different types of permit have the worker. The time control system aims to provide a service that allows any employee of the organization keep track of the hours worked in the corresponding working hours within the company. This monitoring will allow the employee to have a record of compliance with the hours worked within the corresponding working hours of their work. It will allow the employee to have at any time knowledge of labor permits consumed and enjoyed the days of vacation. Put another way, it is a system that, at all times, allows the employee to control the proper performance of their working hours and know the permissions entitled to enjoy. The TFG is developed with a methodology based on prototyped will lead to a program of web access, based on the paradigm Model-View-Controller, developed in three layers or levels with html, css, j2ee, jsp, servlets and sql. Keywords: Time control, web, jsp, servlet, tomcat, application server, filters, incidence, users, MySql, Java, J2EE, configuration parameters, restrictions, date, hour, minute, cookie, session, model, view, controler, three layers, data base, UML, sequence diagram, class, instance. 7
Índice de contenido 1 INTRODUCCIÓN.....................................................................................................10 1.1 Descripción de esta Memoria...........................................................................11 1.2 Estado del arte.................................................................................................12 1.2.1 Control mediante tornos giratorios...........................................................12 1.2.2 Sistemas móviles con tecnología NFC.....................................................12 1.2.3 Sistemas de control de presencia y seguimiento horario vía web e Internet................................................................................................................13 1.2.4 Estado del arte en la organización en cuestión........................................13 2 FASES DEL PROYECTO........................................................................................15 2.1 FASE DE ANÁLISIS Y REQUERIMIENTOS....................................................15 2.1.1 Requerimientos Funcionales....................................................................15 2.1.2 Requerimientos o restricciones de seguridad..........................................19 2.1.3 Herramientas de desarrollo y puesta en producción................................20 2.2 FASE DE DISEÑO...........................................................................................21 2.2.1 Modelo de Datos.......................................................................................21 2.2.2 Paradigma Modelo Vista Controlador MVC.............................................25 2.2.3 Diagrama de Casos de Uso......................................................................27 2.2.4 Diagramas UML de Navegación...............................................................28 2.2.5 Diagrama UML de secuencia de implementación de login......................30 2.2.6 Diagrama UML Modelo Vista Controlador (login).....................................31 2.2.7 Diagrama UML de secuencia (Administración parámetros <por defecto>, <update>)............................................................................................................32 2.2.8 2º Diagrama UML de secuencia (Administración parámetros)................33 2.2.9 Diagrama UML Modelo Vista Controlador (Administración parámetros de configuración).....................................................................................................34 2.2.10 1º Diagrama UML de secuencia (gestión usuarios)...............................35 2.2.11 2º Diagrama UML de secuencia (gestión de usuarios)..........................36 2.2.12 Diagrama UML Modelo Vista Controlador (gestión de usuarios)...........37 2.2.13 Diagrama UML Modelo Vista Controlador (marcaje de reloj).................38 2.2.14 Diagrama UML Modelo Vista Controlador (consulta horario).................39 2.3 FASE DE CONSTRUCCIÓN...........................................................................40 2.4 FASE DE VALIDACIÓN FUNCIONAL Y VALIDACIÓN DE LA SEGURIDAD..40 3 MANUAL DE USUARIO..........................................................................................42 3.1 Módulo de Administración y configuración del sistema...................................42 3.1.1 Pantalla de Login......................................................................................42 3.1.2 Pantalla de Administración de parámetros...............................................43 3.1.3 Pantalla de gestión de usuarios...............................................................48 3.2 Módulo de Control y Seguimiento Horario de actor o usuario final.................52 3.2.1 Pantalla de ejecución de marcaje.............................................................52 3.2.2 Pantalla de consulta y seguimiento de marcajes.....................................54 4 CONCLUSIONES....................................................................................................58 5 REFERENCIAS BIBLIOGRÁFICAS........................................................................59 8
9
7.2 Intervalo para realizar marcaje de entrada-mañana : [07:30-09:30]. 7.3 Intervalo para realizar marcaje salida-mañana : [14:00-15:30]. 7.4 Intervalo para realizar marcaje de entrada-tarde : [16:00-20:00]. 7.5 Intervalo para realizar marcaje de salida-tarde : [16:00-20:00]. 7.6 Intervalo para realizar marcaje de entrada-horas extra : [16:00-20:00]. 7.7 Intervalo para realizar marcaje de salida-horas extra : [16:00-20:00]. 7.8 Intervalo para realizar marcaje de salida-horas sindicales : [11:3013:30]. 7.9 Intervalo para realizar marcaje de entrada-horas sindicales : [11:3013:30]. 7.10 Intervalo para realizar marcaje de salida-permiso : [09:30-11:30]. 7.11 Intervalo para realizar marcaje de entrada-permiso : [09:30-11:30]. 8 El sistema tendrá que tener una interfaz de administración de parámetros configurables. Estos parámetros no son muy dinámicos con lo que deberá tener la posibilidad de establecer ciertos valores por defecto, dichos parámetros serán: 8.1 horas jornada laboral diaria a realizar, [07:30] por defecto. 8.2 Inicio jornada mañana, se trata de la hora a partir de la cual se puede realizar marcaje de entrada mañana, [07:30] por defecto. 8.3 Fin Jornada Mañana, se trata de la hora límite para realizar marcaje de salida de mañana [15:30] por defecto. 8.4 Inicio Jornada Tarde, se trata de la hora a partir de la cual se permite realizar marcaje de entrada tarde, [16:00] por defecto. 8.5 Fin Jornada Tarde, se trata del límite máximo que existe para poder realizar el marcaje de salida tarde, [20:00] por defecto. 8.6 Número de horas Tarde anual, se trata del número total de horas que tiene que realizar el usuario final al año, [110] por defecto. 8.7 Número horas anual, se trata del número total de horas a realizar en 16
horario de mañana, [1800] por defecto. 8.8 Inicio Horas Extra, se trata de la hora a partir de la cual se puede realizar horas extraordinarias. En principio la organización establece que dicho período sólo puede ser por la tarde y no se puede solapar con tiempo a realizar de horas de tarde, dicho de otra manera, no puede haber en una fecha determinada tiempo de tarde realizado y tiempo de horas extraordinarias realizado, [16:00] por defecto. 8.9 Fin Horas Extra, hora límite para poder realizar marcaje de salida de horas extraordinarias [20:00] por defecto. 8.10 Inicio tiempo permiso, se trata de la hora en la mañana a partir de la cual el usuario puede ausentarse por diversas razones de permiso del trabajo en horario laboral de mañana, dicho de otra forma, es la hora a partir de la cual el sistema permite hacer marcajes de salida permiso, tanto el marcaje salida permiso como el del punto 7.11 (entrada permiso) dejan registro en base de datos, y es una manera de tener un seguimiento de la ausencia del usuario por algunas de las causas de permiso que el trabajador tiene derecho a disfrutar, por ejemplo salidas a consultas médicas tanto personales como de familiares cercanos, [09:30] por defecto. 8.11 Fin tiempo permiso, se trata del límite máximo en horario de mañana en el cual el usuario puede realizar marcaje de entrada permiso, debido a que el usuario ha decidido salir del trabajo por diferentes razones de permiso, [11:30] por defecto. 8.12 Inicio horas sindicales, es la hora a partir de la cual aquellos usuarios que tienen responsabilidad y representación sindical en la organización pueden realizar marcaje de inicio de labores sindicales. En el horario de período sindical el trabajador realizará tareas sindicales [11:30] por defecto. 8.13 Fin horas sindicales, hora límite para poder realizar marcaje de entrada por fin de tiempo en labores sindicales, [13:30] por defecto. 8.14 Máximo inicio jornada Mañana, parámetro que muestra hasta cuando 17
se permite realizar marcaje de entrada mañana, [09:30] por defecto. 8.15 Mínimo fin jornada Mañana, parámetro que muestra a partir de que hora se permite realizar marcaje salida mañana [14:00] por defecto. 9 El sistema mostrará una interfaz al usuario final que le permita llevar a cabo los diferentes tipos de marcajes dentro de los límites temporales permitidos. 9.1 Entrada Mañana, (07:30-09:30). 9.2 Salida Mañana, (14:00-15:30). 9.3 Entrada Tarde, (16:00-19:45). 9.4 Salida Tarde, (16:00-20:00). 9.5 Entrada permiso, (09:30-11:30). 9.6 Salida permiso, (09:30:11:30). 9.7 Entrada Horas sindicales, (11:3013:30). 9.8 Salida Horas sindicales, (11:30-13:30). 9.9 Entrada Horas extra, (16:00-20:00). 9.10 Salida Horas extra, (16:00-20:00). 10 El sistema no permitirá inserciones de marcajes en base de datos en caso de que ya existan en la misma fecha. Ello implicará el correspondiente mensaje de error en el interfaz. 11 El Sistema permitirá al usuario final la consulta y seguimiento de sus marcajes realizados en un intervalo de fechas dado. Los marcajes se mostrarán numerados por fechas seguidas; se mostrará la fecha del marcaje, la hora de entrada/salida mañana, entrada/salida en horario de tarde, entrada/salida de horas extraordinarias, período de horas laborales realizadas así como el tiempo a realizar diariamente. Así mismo mostrará aquellos días en los que el usuario ha disfrutado de vacaciones, asuntos propios y días de baja laboral. 12 El sistema mostrará el saldo acumulado en el período consultado tanto en horario de mañana, tarde, como de horas extraordinarias. 18
13 El sistema mostrará el saldo acumulado hasta el mes anterior al consultado tanto en horario de mañana, tarde, como de horas extraordinarias. 14 El sistema le mostrará al usuario los días de vacaciones que le quedan. Dicha información será mantenida desde otro sistema de información de administración que se desarrollará en el futuro en otro módulo diferente, es decir no está asociada a cualquier período de tiempo consultado. 15 El sistema mostrará links que permitirán la navegación a las diferentes páginas relacionadas. 16 El sistema mostrará un reloj flash que muestre la hora actual en todo momento. 17 El sistema mostrará un sistema de calendario a la hora de introducir las diferentes fechas de consulta. 2.1.2 Requerimientos o restricciones de seguridad. 1. El sistema habrá de mostrar un sistema de seguridad a la hora de acceder a las diferentes url web de acceso, es decir aquellas url que den acceso a páginas web de administración, en nuestro caso, administración de usuarios y página de parámetros configurables del sistema, serán únicamente accesibles previa autenticación mediante nick de usuario y clave de acceso, datos que se guardarán en base de datos. En caso de que se produzca la autenticación correcta correspondiente o se pretenda acceder sin previa autenticación, el acceso será redirigido a una página de login o autenticación para que la autenticación se lleve acabo. 2. El sistema dejará rastro de acceso del ordenador desde el que se realiza el marcaje, guardando la ip y el hostname desde /etc/hosts del ordenador desde la que se realiza la transacción de inserción de marcaje válido. Visto el análisis y recogida de requerimientos, se llega a la conclusión de que un posible algoritmo solución codificada se puede dar con un desarrollo a medida en html, css, javascript, j2ee, jsp, servlets, html, utilizando ECLIPSE IDE, servidor de aplicaciones TOMCAT, SGBD MYSQL, solución que se adopta para cumplir con el objetivo de la concesión del servicio que se plantea. 19
2.1.3 Herramientas de desarrollo y puesta en producción. Producto Versión Eclipse IDE Juno Service Release 2, build id:20130225-0426 MySql WorkBench 6.2 v.6.2.4.1226, 32bits Tomcat v.7 JAVA JRE 1.8.073 JGIT (control de versiones). v.4.4 Microsoft Windows v.7 Star UML v.2.7.0 LibreOffice v.4.3.4.1 20
2.2 FASE DE DISEÑO 2.2.1 Modelo de Datos. A continuación se muestra el modelo Entidad Relación que describe el modelo de datos utilizado en el sistema de información Sistema de Control Horario: La descripción del anterior modelo entidad relación describe las siguientes tablas: •usuarios: tabla que mantiene los usuarios registrados en el sistema y que se les dará el servicio de control y seguimiento horario. Descripción de los campos: user_nick : nick del usuario, este campo sirve para identificar de forma única a cada usuario dentro del sistema. Nombre_apellidos : campo que describe el nombre y apellidos del usuario. num_dias_vacaciones : campo que describe el número de vacaciones que dispone 21 Fig 1. Modelo Entidad Relación del 'Sistema de Control Horario'.
el usuario para disfrutar en todo momento. num_dias_permiso : campo que describe en cada momento cuántos días de permiso o de asuntos propios le quedan al usuario por disfrutar en cualquier momento que realice una consulta de seguimiento horario. Tfno : campos que describe el tfno corporativo del trabajo asignado al usuario. puesto_desempeñado : campo que describe el tipo de puesto que desempeña el usuario dentro de la organización. •Incidencias: tabla donde se describen los tipos de marcajes que el sistema soportará. Codmarcaje : campo que identifica al tipo de incidencia que soporta el sistema. Descripcion : campo que describe la incidencia. Visible : campo boleano que describe si la incidencia es visible por parte del sistema o no. eninforme : campo añadido en caso de que se quiera utilizar desde informes. •marcajes_reloj: tabla donde se mantendrán todos los marcajes válidos realizados por los usuarios. fecha_marcaje_reloj : fecha del marcaje válido realizado. Descripción : descripción del marcaje. usuarios_user_nick : usuario que ha realizado el marcaje. incidencias_cod_marcaje : código del marcaje realizado. time_marcaje_reloj : hora del marcaje realizado. Hostname : nombre del equipo desde el que se ha realizado el marcaje. Ip : ip del equipo desde donde se ha realizado el marcaje. •Mensajes_error_marcaje_no valido: tabla que mantiene todos los mensajes de error que se mostrarán en caso de marcaje no valido que no cumplan con los requerimientos de intervalos horarios para cada marcaje, o caso de error por marcaje duplicado en fecha por parte del usuario. 22
cod_error : código del error. mensaje_descripcion_error : descripción del mensaje de error. •datos_configuración: tabla que mantiene todos los parámetros de configuración del sistema, sobre todo aquellos en los que se basa el sistema para el correcto cumplimiento de las restricciones de intervalos horarios válidos de marcaje. horas_jornada_laboral_diaria : campo de configuración del sistema que describe el número de horas y minutos que un trabajado tiene que realizar diariamente según la normativa aprobada y convenio. inicio_jornada_mañana : campo de configuración del sistema que describe a partir de que hora se puede comenzar la jornada laboral diaria por la mañana, dicho de otra manera, a partir de que hora en la mañana se puede realizar marcaje de 'entrada-mañana'. fin_jornada_mañana : campo de configuración del sistema que describe la hora en que termina la jornada laboral en la mañana, dicho de otra forma, es el límite para poder realizar marcaje 'salida-mañana'. inicio_jornada_tarde : campo de configuración del sistema que describe la hora a partir de la cual se puede comenzar a realizar horas de tarde, dicho de otra manera, la hora a partir de la cual el sistema permite realizar marcajes del tipo 'entrada-tarde'. fin_jornada_tarde : campo de configuración del sistema que describe el límite en horario de tarde para realizar jornada de tarde, dicho de otra forma, es la hora límite máxima de tarde para poder realizar el marcaje del tipo 'salida-tarde'. num_horas_anual_laborales : campo de configuración del sistema que describe el número de horas anual que un trabajador debe realizar al año. Num : campo de identificación única de cada registro en la tabla. num_horas_tarde : campo de configuración del sistema que describe el número total de horas de tarde que un trabajador debe realizar al año. Adminpassword : campo que almacena la clave o password de administración. Dicha clave permite acceso al área de administración de parámetros del sistema como al área de gestión de usuarios. 23
Adminuser : campo que almacena el usuario de administración. Dicha usuario permite acceso al área de administración de parámetros del sistema como al área de gestión de usuarios. inicio_horas_extra : campo de configuración del sistema que describe el inicio de intervalo permitido para la realización de horas extraordinarias. Dicho de otra forma, es la hora a partir de la cual se puede realizar el marcaje de 'tipo entrada-horas extra'. fin_horas_extra : campo de configuración del sistema que describe el límite máximo del intervalo de tiempo para la realización de hora extraordinarias. Dicho de otra manera, es la hora límite para la llevar a cabo un marcaje del tipo 'salida-horas extra'. inicio_tiempo_permiso : campo de configuración del sistema que describe la hora a partir de la cual se puede realizar salida por razones de permiso en el trabajo. Dicho de otra forma, el la hora a partir de la cual se puede realizar el tipo de marcaje 'salida-permiso'. fin_tiempo_permiso : campo de configuración del sistema que describe la hora límite para llevar a cabo salida por razones de permiso en el trabajo. Dicho de otra manera, es la hora límite para la realización de un marcaje del tipo 'entrada-permiso'. inicio_horas_sindicales : campo de configuración del sistema que describe la hora a partir de la cual se pueden realizar salidas del trabajo por razones de representación y responsabilidad sindical. Dicho de otra manera, es la hora a partir de la cual se puede realizar un marcaje del tipo 'salida-horas sindicales'. fin_horas_sindicales : campo de configuración del sistema que describe la hora límite para poder realizar salidas del trabajo por razones de representación y responsabilidad sindical. Dicho de otra forma, es la hora límite para poder realizar el tipo de marcaje 'entrada-horas sindicales'. inicio_max_jornada_mañana : campo de configuración del sistema que describe la hora límite máxima hasta la cual se puede realizar marcaje del tipo 'entradamañana'. fin_min_jornada_mañana : campo de configuración del sistema que describe la hora a partir de la cual se puede realizar el tipo de marcaje 'salida-mañana'. 24
2.2.2 Paradigma Modelo Vista Controlador MVC. El 'Sistema de Control Horario' se desarrolla bajo el paradigma Modelo Vista Controlador (MVC). A continuación se describe una breve descripción de dicho paradigma: El Modelo : Es la representación de la información con la cual el sistema opera, por lo tanto gestiona todos los accesos a dicha información, tanto consultas como actualizaciones, implementando también los privilegios de acceso que se hayan descrito en las especificaciones de la aplicación (lógica de negocio). Envía a la 'vista' aquella parte de la información que en cada momento se le solicita para que sea mostrada (típicamente a un usuario). Las peticiones de acceso o manipulación de información llegan al 'modelo' a través del 'controlador', en el sistema de información 'Sistema de Control Horario', el Modelo está sustentado mediante java beans. El Controlador : Responde a eventos (usualmente acciones de usuario) e invoca peticiones al 'modelo' cuando se hace alguna solicitud sobre la información (por ejemplo, editar un documento o un registro en una base de datos). También puede enviar comando a su 'vista' asociada si se solicita un cambio en la forma en que se representa el 'modelo' (por ejemplo, desplazamiento o scroll por un documento o por los diferentes registros de una base de datos), por tanto se podría decir que el 'controlador' hace de intermediario entre la 'vista' y el 'modelo. En nuestro sistema de información 'Sistema de Control Horario' la vista está sustentada mediante Servlets y Filtros. La Vista : Presenta el 'modelo' (información y lógica de negocio) en un formato adecuado para interactuar (usualmente la interfaz de usuario) por tanto requiere de dicho 'modelo' la información que debe representar como salida. En nuestro sistema de información 'Sistema de Control Horario' la vista se sustenta en páginas html y sobre todo en jsp's y javascripts. 25
2.2.7 Diagrama UML de secuencia (Administración parámetros <por defecto>, <update>). 32 Fig 11. Diagrama UML de secuencia, implementación de actualización <por defecto> y modificación de parámetros de configuración.
2.2.8 2º Diagrama UML de secuencia (Administración parámetros). 33 Fig 2º Diagrama UML de secuencia (Administración parámetros)
2.2.9 Diagrama UML Modelo Vista Controlador (Administración parámetros de configuración). 34 Fig 11. Diagrama UML Modelo Vista Controlador apartado de administración de parámetros de configuración.
2.2.10 1º Diagrama UML de secuencia (gestión usuarios). 35 Fig 1º Diagrama UML de secuencia (gestión usuarios).
2.2.11 2º Diagrama UML de secuencia (gestión de usuarios). 36 Fig . 2º Diagrama UML de secuencia, implementación de borrado, guardar y actualizar datos.
2.2.12 Diagrama UML Modelo Vista Controlador (gestión de usuarios). 37 Fig 12. Diagrama UML Modelo Vista Controlador que describe la implementación de la gestión de usuarios.
2.2.13 Diagrama UML Modelo Vista Controlador (marcaje de reloj). 38 Fig 13. Diagrama UML implementación MODELO VISTA CONTROLADOR del apartado de marcaje.
2.2.14 Diagrama UML Modelo Vista Controlador (consulta horario). 39
2.3 FASE DE CONSTRUCCIÓN. La fase de construcción consiste en el desarrollo del aplicativo. Puesto que uno de los requerimientos funcionales exigidos en la fase de recogida de requisitos, se exige la máxima portabilidad, el desarrollo se realiza en java j2ee, java beans, servlets, jsp, css, html, javascript. Para el desarrollo se utiliza un Development Environment Interface como ECLIPSE, se utilizará jgit para llevar un control de versiones, se irán desarrollando diferentes versionados de prototipos evolucionando el código que vaya cumpliendo con todos los requisitos tanto funcionales como de seguridad expuestos en la fase de recogida de requerimientos. 2.4 FASE DE VALIDACIÓN FUNCIONAL Y VALIDACIÓN DE LA SEGURIDAD. Al final de cada versionado, se realizan pruebas de validación donde se comprueban que el software cumple funcionalmente con lo exigido, cumpliendo con los condicionantes máximos de usabilidad. En esta fase, se llega a la necesaria carga de datos en la base de datos Mysql, para ello el desarrollador tiene varias posibles técnicas para realizar la carga de datos: introducir 'inserts' en una hoja de cálculo bastaría, pero para poder realizar pruebas de validación con diferentes datos y poder generarlas de forma dinámica, menos tediosas y más cómoda, se plantea una página jsp con un formulario desde 40 Fig 14 Diagrama UML Modelo Vista Controlador, implementación de (consulta horario)
donde introducir los intervalos de carga de marcajes, vacaciones, permisos, bajas, y todo tipo de incidencias que en un principio el sistema necesita para poder validarlo. Está página produce un salida por consola de todos los diferentes tipos de 'inserts', finalmente se introduce desde un cliente mysql todas las instrucciones sql de carga en la base de datos y se realizan las correspondiente pruebas de validación del sistema. Ni que decir tiene que esta página jsp de formulario generador de instrucciones sql de carga de datos en una base de datos no pertenece al proyecto en sí. 41 Fig 15. Formulario de generación de cagar de instrucciones SQL 'INSERTS'
3.1.3 Pantalla de gestión de usuarios. 48 Fig 21. pantalla de gestión de usuarios del sistema.
•Sección Izquierda ◦Campos. ▪Nick de Usuario : campo que tiene el valor de usuario a gestionar. ▪Nombre y Apellidos : campo que tiene el valor de Nombre y apellidos del usuario que se quiera gestionar. ▪Días de Vacaciones : campo que contiene el valor en todo momento 49 Fig 22. Sección Izquierda de la pantalla de gestión de usuarios.
de las vacaciones que el usuario le queda por disfrutar a lo largo del año. ▪Días de permiso : campo que contiene el valor de los días de permiso que el usuario final aún tiene por disfrutar. ▪Tfno : campo que describe el tfno corporativo asociado al usuario en la organización. ▪Puesto : campo que describe el puesto que desempeña el usuario dentro de la organización. •Link al área de administración de parámetros del sistema. ▪Botones ▪Guardar : Inserta dentro de la base de datos un nuevo usuario, debe cumplir la restricción de clave primaria en el campo de usernick, es decir el campo usernick no debe existir a priori en base de datos antes de insertar un usuario. •Actualizar : este botón actualiza los datos cargados en los campos, guardará la información tal y como se muestre en los campos. •Borrar : este botón borrará el usuario que se ponga en el campo usernick. •Cargar : este campo cargará desde base de datos la información correspondiente al valor que se coloque en el campo usernick, la información se cargará en los campos con la intención de poder actualizar de forma más cómoda. 50 Fig 23 , imagen link de acceso al área de administración de parámetros. Fig 24 . Imagen botones en el área de gestión de usuarios.
•Logout : este botón terminará la sesión de administración produciendo el logout. ◦Sección derecha En la sección derecha del área de gestión de usuarios de visualiza la información asociada al los usuarios en base de datos. 51 Fig 25. imagen listado de usuarios involucrados en el sistema.
3.2 Módulo de Control y Seguimiento Horario de actor o usuario final. 3.2.1 Pantalla de ejecución de marcaje. •Sección izquierda ◦Campos ▪Clave : campo con el valor del nick de usuario que realizar el marcaje. ▪Tipo : combo selector de los diferentes tipos de marcaje contemplados en el sistema. 52 Fig 26 . Imagen de pantalla de marcaje. Fig 27. Imagen de combo de selección de tipo de marcaje.
▪Botones •Marcar : boton que lleva acabo la transacción de marcaje en base de datos. •Borrar : botón de reseteo de campos en blanco. ◦Links : enlace a la página de consulta y seguimiento horario. •Sección derecha. En la sección derecha de la pantalla de marcaje se muestran en rojo los mensajes de error, mientras que los mensajes de marcajes correctos se muestran en color verde. 53 Fig 28. imagen pantalla de mensaje de marcaje.
3.2.2 Pantalla de consulta y seguimiento de marcajes. •Sección izquierda. ◦Campos 54 Fig 30. Imagen sección izquierda página de consultas de horario. Fig 29 . Imagen de la pantalla de consulta y seguimiento horario.
▪Clave : campo destinado al nick de usuario que realiza la consulta. ▪Inicio : campo para establecer desde calendario el inicio del intervalo de tiempo a consultar. ▪Fin : campo para establecer desde calendario el fin del intervalo de tiempo a consultar. ◦Botones ▪borrar : reseteo de los campos con valores en blanco. ▪Consulta : botón que activa la transacción de consulta en la base de datos. ◦Link de acceso a la página de marcajes. 55
•Sección derecha •Listado de marcajes. ◦Este listado muestra todos los tipos de marcajes realizados en el intervalo de tiempo consultado. •Saldos de período consultado. ◦Muestra los saldos en el período consultado. ▪Saldo de horas de Mañana. ▪Saldo de horas de tarde. 56 Fig 31. imagen de listado de marcajes, saldos de período consultado, cálculos provisionales, otros datos.
▪Saldo de horas extraordinarias. •Otros datos ◦Vacaciones. ▪muestra en todo momento la cantidad de días de vacaciones que el usuario tiene por disfrutar en el momento de realizar la consulta. ◦Asuntos Propios. ▪Muestra el número de días de asuntos propios o de permiso que el usuario final tiene aún por disfrutar en el momento de realizar la consulta. 57