• No se han encontrado resultados

Iteración 2: Modelo de la base de datos y módulos de acceso, importación y

5. Resultados 55

5.4. Iteración 2: Modelo de la base de datos y módulos de acceso, importación y

DiagramaControlIncremento: La misma finalidad que la tabla anterior, solo que para el proceso que genera un diagrama de control teniendo en cuenta el “peso” de los días.

PuntosDiagramaControl: Tabla que almacena la productividad de cada día que será utilizada por unscriptpara generar un diagrama de control.

PuntosDiagramaControlIncremento: Tabla que almacena la productividad diaria pa- ra ser utilizada por unscriptpara generar un diagrama de control. Se diferencia de la anterior tabla en que el proceso que utiliza estos datos tiene en cuenta la configuración del “peso” de los días.

PrediccionSemanas: Contiene toda la información que se mostrará al usuario cuando realice predicciones de futuras semanas de trabajo, como la productividad o el tiempo que invertirá en cada día de la semana.

RecomendacionEstres: Almacena la última recomendación acerca del estrés genera- da por cada usuario.

FestivosYVisperas: En esta tabla se almacenan los días del año que son festivos y vísperas de festivos en el territorio español.

usuarios Nombre varchar(200) Contraseña text

Email text

Telefono text

FechaNacimiento text

Foto blob

Activo int

configuracionPesosDias

Id int

NombreUsuario varchar(200)

L double

M double

X double

J double

V double

S double

D double

Festivos double

VisperasFestivos double

diagramaControl

Id int

MediaTiempoTotal double LimiteSuperior double LimiteInferior double NombreUsuario varchar(200)

diagramaControlIncremento NombreUsuario varchar(200) MediaIncremento double LimiteSuperior double LimiteInferior double

Id int

festivosYVisperas

Día int

Mes int

Descripcion text

Tipo text

Id int

puntosDiagramaControl

Fecha date

Punto double

NombreUsuario varchar(200)

Id int

puntosDiagramaControlIncremento

Fecha date

Punto double

NombreUsuario varchar(200)

Id int

recomendacionEstres NombreUsuario varchar(200) Recomendacion text

Id int

rolesUsuario

Id int

NombreUsuario varchar(200)

Rol text

tareas

Nombre text

Fecha date

Naturaleza text

Fase text

NombreProyecto text NombreUsuario varchar(200)

Inicio time

Fin time

TotalTiempo double

TiempoEfectivo double Interrupciones double Proyecto varchar(200) Cliente varchar(200)

Id int

tareasDias

Fecha date

InicialDia text

NumeroSemana int

Amplitud text

TotalRegistros text Interrupciones double TiempoEfectivo double TareasCompletadas text

Año int

NombreUsuario varchar(200)

Tipo text

M1TotalTareas text M2TotalTareas text T1TotalTareas text T2TotalTareas text NTotalTareas text TiempoTotal double

GestionDias text

Id int

prediccionSemanas NombreUsuario varchar(200)

Tipo text

MediaTiempoTotal double DesvTiempoTotal double MediaTiempoEfectivo double DesvTiempoEfectivo double

MediaL double

DesvL double

MediaM double

DesvM double

MediaX double

DesvX double

MediaJ double

DesvJ double

MediaV double

DesvV double

MediaSD double

DesvSD double

Factor1 text

Factor2 text

Factor3 text

EstadoActualEstres text

Id int

Figura 5.17: Diagrama de la base de datos

Como se ha dicho anteriormente se han desarrollado tres módulos El primero de ellos es el deacceso, que está compuesto por los procesos de registro y acceso a la aplicación. La primera vez que un usuario utiliza la herramienta tiene que registrarse antes de poder acceder a la aplicación, eligiendo un nombre de usuario único. En las figuras 5.18 y 5.19 se puede ver un posible formulario de estos procesos. Tras la realización de estos procesos, se detectó que un usuario podía acceder a páginas de la aplicación sin estar autentificado. Por tanto fue necesario añadir una nueva capa de seguridad adicionando al proyectoSpring Security, que es unframeworkque proporciona identificación de usuarios y autorización al sistema5. En la sección D.0.3 se puede encontrar la configuración más relevante definida para el uso de este framework.

Figura 5.18: Prototipo de formulario de login

Figura 5.19: Prototipo de formulario de registro

5http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/

DispatcherServlet.html

A continuación se diseñó un proceso que integra registros de tareas a la aplicación. Di- chos registros deben ser exportados de herramientas de time tracking, y para este proyecto se han seleccionado tres, que sonToggl,PaymoyPrimaERP. El anexo F contiene un ma- nual para exportar de forma correcta los registros, y que así estos sean compatibles con la aplicación.

Cuando los registros son importados a la herramienta, se realiza un proceso donde éstos son agregados por días y se etiqueta a cada día en función de su productividad. Para el etiquetado de los días se usa un motor de reglas llamadoEasyRules6. Se ha decidido hacer uso de esta librería por su alta flexibilidad y simplicidad de integración, ya que el sistema de razonamiento se construye con el mismo lenguaje que el del sistema, en este casojava. Para conseguir una mayor flexibilidad de la aplicación, las reglas se describen en un ficheroXML

y la caracterización de los patrones en ficherosproperties. De esta manera el usuario puede realizar cambios en las reglas sin tener que modificar el código fuente de la aplicación.

El último módulo creado en esta iteración es el deconfiguración, cuya finalidad es que el usuario puede establecer por defecto elpeso de los días, es decir, el total de horas que emplea en realizar tareas cada día de la semana, distinguiendo también los días que se consideran vísperas de festivo y festivos. Además, se han establecido por defecto algunos de los días que son festivos y vísperas de festivo (ver tabla 5.10).

Día Mes Descripción

01 Enero Año nuevo

06 Enero Día de Reyes 01 Mayo Día del trabajador 12 Octubre Día de la Hispanidad 01 Noviembre Día de todos los Santos 06 Diciembre Día de la Constitución 08 Diciembre La Inmaculada Concepción 25 Diciembre Natividad del Señor

Tabla 5.10: Días marcados como festivos en el territorio español

6http://www.easyrules.org/index.html