módulo de estadísticas para la aplicación rhobotlink

50
Carolina Ponce Marín Módulo de estadísticas para la aplicación rhobotlink Laureano Lambán Pardo Facultad de Ciencias, Estudios Agroalimentarios e Informática Grado en Ingeniería Informática 2012-2013 Título Autor/es Director/es Facultad Titulación Departamento TRABAJO FIN DE GRADO Curso Académico

Upload: vohanh

Post on 02-Jan-2017

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Módulo de estadísticas para la aplicación rhobotlink

Carolina Ponce Marín

Módulo de estadísticas para la aplicación rhobotlink

Laureano Lambán Pardo

Facultad de Ciencias, Estudios Agroalimentarios e Informática

Grado en Ingeniería Informática

2012-2013

Título

Autor/es

Director/es

Facultad

Titulación

Departamento

TRABAJO FIN DE GRADO

Curso Académico

Page 2: Módulo de estadísticas para la aplicación rhobotlink

© El autor© Universidad de La Rioja, Servicio de Publicaciones, 2013

publicaciones.unirioja.esE-mail: [email protected]

Módulo de estadísticas para la aplicación rhobotlink, trabajo fin de gradode Carolina Ponce Marín, dirigido por Laureano Lambán Pardo (publicado por la

Universidad de La Rioja), se difunde bajo una LicenciaCreative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported.

Permisos que vayan más allá de lo cubierto por esta licencia pueden solicitarse a los titulares del copyright.

Page 3: Módulo de estadísticas para la aplicación rhobotlink

TRABAJO FIN DE GRADO

GRADO EN INGENIERÍA INFORMÁTICA

UNIVERSIDAD DE LA RIOJA

Facultad de Ciencias, Estudios Agroalimentarios e Informática

Módulo de estadísticas para la aplicación Rhobotlink

Alumno: Carolina Ponce Marín

Tutor: Laureano Lamban Pardo

Fecha: Julio 2013

Page 4: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

2

Agradecimientos

Agradezco a toda mi familia, que aun estando lejos me apoyaron y me dieron los

ánimos para seguir mi sueño, especialmente a mi mamá por esforzarse tanto para

poder traerme a este país y darme la oportunidad de estudiar.

A la empresa donde realice el proyecto por confiar en mí para realizar dicho trabajo,

principalmente a mi tutora Elena Esteban por ayudarme a desarrollarlo.

A mi tutor Laureano Lamban por aconsejarme y ayudarme a completar este proyecto.

A mis amigos tanto los que están en Colombia como los de aquí, por ese apoyo

incondicional, sobre todo a Elena, Sheila, Naziha, Nabila, Sergio y Germán por

aguantar mis momentos de tristezas y alegrías en esta etapa de mi vida.

A los profesores tanto de la Formación Profesional como de la Universidad por

compartir sus conocimientos, por la comprensión y por toda la ayuda que me

ofrecieron.

A todas esas personas que me abrieron las puertas de su vida aquí e hicieron que

esta nueva etapa fuera más placentera.

Muchas gracias a todos por hacer parte de este sueño.

Page 5: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

3

Resumen

En el siguiente trabajo fin de grado se trata de añadir una nueva funcionalidad a una

aplicación llamada Rhobotlink, desarrollada por la empresa SCA. El objetivo final del

trabajo es, por tanto, ofrecer un mejor servicio a sus clientes.

La nueva funcionalidad es un módulo de estadísticas, que ofrecerá al usuario la

opción de consultar en qué documentos ha fallado o se ha completado

satisfactoriamente una tarea, según un criterio de búsqueda. Los criterios podrán ser

por usuarios y/o por fecha. Se mostrarán los detalles de los documentos (nombre,

versión, idioma y el tiempo que ha costado hacer la tarea sobre dicho documento).

Además, el usuario podrá ordenar los documentos que resulten de la consulta, y podrá

buscar en el propio listado por nombre de documento. También podrá descargar el

listado de los documentos en un archivo Excel.

Page 6: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

4

Summary

The following Work in comes to add a new functionality to an application called

Rhobotlink, developed by the company SCA, the ultimate goal of the work is, therefore,

provide a better service to their customers.

The new functionality is a statistics module that will offer to the user the option of

consult on what documents has failed or has completed successfully a task, according

to search criteria. These criteria may be by users and / or date. Is shown the details of

the documents (name, version, language and the cost while do the task on the

document). In addition, the user can sort the documents arising from the consultation,

and can search in the list own document name. You can also download the list of

documents in an Excel file.

Page 7: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

5

Contenido

1. Introducción ........................................................................................................... 6

1.1 Objetivos del proyecto .................................................................................... 7

1.2 Participantes del proyecto ............................................................................... 8

1.3 Arquitectura .................................................................................................... 8

2. Desarrollo del proyecto .......................................................................................... 9

2.1 Análisis ........................................................................................................... 9

2.1.1 Especificación de requisitos funcionales .................................................. 9

2.1.2 Casos de Uso ........................................................................................ 10

2.1.3 Tecnologías utilizadas ........................................................................... 13

2.1.4 Modelo conceptual ................................................................................ 13

2.1.5 Modificaciones del análisis .................................................................... 14

2.2 Diseño .......................................................................................................... 15

2.2.1 Diseño de base de datos ....................................................................... 15

2.2.2 Diseño de clases ................................................................................... 17

2.2.3 Arquitectura ........................................................................................... 19

2.3 Implementación ............................................................................................ 23

2.3.1 Desarrollo del módulo ............................................................................ 28

2.3.2 Problemas ............................................................................................. 30

2.3.3 Pruebas ................................................................................................. 31

2.4 Gestión del proyecto ..................................................................................... 32

2.4.1 Planificación .......................................................................................... 32

2.4.2 EDT ....................................................................................................... 35

2.4.3 Seguimiento .......................................................................................... 36

2.5 Imágenes del módulo ................................................................................... 38

3. Conclusiones ....................................................................................................... 42

4. Bibliografía ........................................................................................................... 43

Page 8: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

6

1. Introducción

Este trabajo de fin de grado se dedica a añadir un nuevo módulo a una aplicación

llamada Rhobotlink. La aplicación Rhobotlink realiza tareas repetitivas automáticas,

como convertir documentos CAD a otros formatos, imprimir planos, etc. Dicha

aplicación fue desarrollada por la empresa SCA para aumentar la productividad de los

usuarios CAD ejecutando de manera automática las principales tareas repetitivas que

habitualmente se realizan en las oficinas técnicas.

La empresa SCA (Soluciones Cim Avanzadas) es una consultora que ofrece una

amplia gama de productos (PLM, CAD, CAM, CAE) y servicios; incluyendo formación,

implantación, consultoría e ingeniería. La actividad principal consiste en proveer a las

empresas de soluciones que optimicen el proceso de salida al mercado de nuevos

productos, fundamentalmente a través de la tecnología informática.

Un uso normal de la aplicación Rhobotlink consiste en crear paquetes y a cada

paquete añadir una variedad de documentos de diseño CAD que están almacenados

en una aplicación llamada Windchill. Permite crear tareas a partir de un paquete o de

un conjunto de documentos, tareas que pueden ejecutarse repetitivamente o una sola

vez, con la opción de elegir la fecha y hora de ejecución.

En la aplicación existen tres tipos de roles: administrador, avanzado y básico.

Los usuarios de rol administrador pueden ver las tareas que han realizado todos los

usuarios, en cambio los de rol avanzado y básico solo pueden ver sus propias tareas.

Todos los usuarios pueden crear paquetes y ejecutar tareas (publicar documentos).

Las tareas que se ejecutan en la aplicación consisten principalmente en convertir

documentos Auto CAD (diseño CAD) a varios formatos, por ejemplo: PDF, DXF,

PRINTER, PS, SAT, PLT, PV e IGES.

Además, Rhobotlink permite visualizar el proceso de cómo van las tareas que se están

ejecutando y permite crear marcas de agua personalizadas para añadir a los

documentos cuando se convierten a otro tipo de formato.

El nuevo módulo que se va a añadir a la aplicación se basará en mostrar los datos

estadísticos de los documentos que se han ejecutado en la aplicación según un criterio

de búsqueda, que puede ser por uno o varios usuarios y/o por fecha. Los datos se

mostrarán agrupados por usuario.

Los datos estadísticos se van a calcular por la cantidad de documentos, no por la

cantidad de tareas, ya que cada tarea contiene varios documentos.

Además se mostrará información detallada de los documentos que se han ejecutado

correctamente e incorrectamente. Esta información consiste en el nombre, versión,

idioma, tipo de conversión y tiempo que ha tardado en ejecutarse. Para los

documentos fallidos se mostrará el error que ha ocasionado que el documento no se

haya publicado satisfactoriamente.

Page 9: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

7

Esos documentos se podrán ordenar por nombre, versión, tipo de conversión y por

idioma. También se puede buscar por nombre de documento.

Los porcentajes de las estadísticas se podrán visualizar en un gráfico.

El nuevo módulo ofrecerá además la funcionalidad de descargar en un fichero Excel el

listado de los documentos, agrupados por fallidos y completos.

El módulo estadísticas sólo será accesible para los usuarios de rol administrador y

avanzado.

El usuario avanzado sólo tendrá la opción de buscar en sus propios documentos por

fecha. En cambio el administrador podrá buscar los documentos que han publicado

todos los usuarios y/o por fecha.

El módulo estará disponible en dos idiomas distintos; español e inglés, los mismos en

los que está disponible la aplicación Rhobotlink.

La elección del trabajo de fin de grado fue decisión de la empresa, ya que desean

ampliar la aplicación Rhobotlink para ofrecer un mejor servicio y mejorar sus

funcionalidades.

1.1 Objetivos del proyecto

Mi proyecto se basa en añadir una nueva funcionalidad a una aplicación de

automatización de tareas llamada Rhobotlink creada por la empresa SCA.

Los objetivos son los siguientes:

Crear un apartado de estadísticas que muestre al usuario los porcentajes de

los documentos sobre los que se han ejecutado tareas de forma correcta o

incorrecta.

Los documentos se podrán ver con más detalle, para el caso de los

documentos fallidos se mostrará un mensaje indicando el tipo de error.

Las estadísticas podrán verse según el criterio de búsqueda que elija el

usuario.

La búsqueda puede variar según el tipo de rol de usuario. Si el rol es

avanzado, solo podrá ver las estadísticas de las tareas que haya creado. En

cambio si el rol es administrador, podrá ver las tareas creadas por todos los

usuarios.

Los tipos de búsqueda podrán ser por fecha o por paquetes para el rol

avanzado y para el administrador. Además de estas opciones, podrá buscar

por usuario.

Se mostrarán las estadísticas también de manera gráfica.

Los documentos que se han publicado (correctamente o no) se podrán

descargar en un archivo en formato Excel.

Page 10: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

8

1.2 Participantes del proyecto

Las personas/ entidades involucradas en el proyecto son:

Cliente: La empresa SCA.

Ejecución del proyecto:

La alumna: Carolina Ponce Marín.

La tutora de la empresa: Elena Esteban.

El tutor académico: Laureano Lamban.

1.3 Arquitectura

La arquitectura de partida está compuesta por dos elementos principales para el

funcionamiento de la aplicación Rhobotlink: Windchill y Creo parametric.

Figura 1. Arquitectura aplicación

La aplicación Rhobotlink se encarga de la automatización de tareas, realiza tareas

repetitivas que de otra forma tendrían que ser realizados por un usuario.

Windchill es utilizada por Rhobotlink para acceder a los documentos que este tiene

almacenados para que el usuario pueda convertirlos en un tipo específico. Y por otro

lado está Creo Parametric, que se utiliza para realizar la conversión de los

documentos.

Page 11: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

9

2. Desarrollo del proyecto

Se describe brevemente cada una de las fases en los que está dividido el desarrollo

del proyecto.

2.1 Análisis

2.1.1 Especificación de requisitos funcionales

Los usuarios utilizan la aplicación Rhobotlink para convertir documentos de diseño

CAD a otros formatos. Por ello, era conveniente añadir un nuevo módulo para mostrar

los datos estadísticos sobre las conversiones que se ejecutan de forma correcta e

incorrecta. Con ello informa a los usuarios del porcentaje de los documentos que han

fallado y de la causa que ha producido el error.

El sistema debe ofrecer al usuario las siguientes funcionalidades:

Consultar los datos estadísticos relacionados con las tareas ejecutadas por

cada documento y además visualizarlo de forma gráfica (porcentajes).

Buscar los documentos sobre los que se han ejecutado tareas por usuario y/o

fechas.

Consultar una lista con los detalles de los documentos que se han ejecutado

de forma correcta e incorrecta incluyendo, en este caso, la descripción del

error. Además podrá ordenar estas listas por varios criterios y filtrar por

nombre de documento.

Descargar un archivo en formato Excel con el listado de los documentos

agrupados por fallidos y completos.

Page 12: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

10

2.1.2 Casos de Uso

2. Diagrama de casos de uso

Actores:

Existen dos tipos de actores:

o Usuario administrador

o Usuario avanzado

Los usuarios requieren autenticación en la aplicación para acceder a sus

funcionalidades.

Usuario administrador

El usuario administrador puede ver todas las estadísticas de sus propias tareas y la de

los demás usuarios.

La búsqueda de las estadísticas podrá realizarla por fecha, paquete o por usuario.

Usuario avanzado

El usuario administrador puede ver las estadísticas solamente de sus propias tareas.

La búsqueda de las estadísticas podrá realizarla por fecha y por paquete.

Page 13: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

11

2.1.2.1 Especificaciones de casos de uso

Caso de uso Mostrar estadísticas

Descripción Representa la acción de consultar las

estadísticas de los documentos que se

han ejecutado en la aplicación

correctamente e incorrectamente, según

el criterio de búsqueda que haya elegido

el usuario.

Precondición El usuario debe estar registrado en la

aplicación

Postcondición El usuario podrá ver en porcentajes y

gráficamente los documentos que se han

ejecutado correctamente e

incorrectamente, según el criterio elegido.

Caso de uso Hacer Búsquedas

Descripción El usuario podrá buscar los documentos

que se han realizado correctamente o no,

según un criterio de búsqueda. Ver casos

de uso “búsqueda por fecha”, “búsqueda

por paquete” y “búsqueda por usuario”.

Precondición El usuario debe estar registrado en la

aplicación.

Postcondición El usuario podrá ver la información de las

tareas que se han ejecutado.

Caso de uso Búsqueda por fecha

Descripción El usuario podrá buscar las tareas que se

han ejecutado en una fecha concreta.

Precondición El usuario debe estar registrado en la

aplicación.

Postcondición El usuario elige una fecha y

posteriormente la aplicación muestra los

datos de las tareas ejecutadas en esa

Page 14: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

12

fecha.

Caso de uso Búsqueda por paquete

Descripción El usuario podrá buscar las tareas que se

han realizado correctamente o no por

paquete.

Precondición El usuario debe estar registrado en la

aplicación.

Postcondición El usuario podrá ver la información de las

tareas que se han ejecutado del paquete

elegido.

Caso de uso Búsquedas por usuario

Descripción El usuario podrá buscar las tareas que se

ha realizado un usuario concreto.

Precondición El usuario debe estar registrado en la

aplicación y reconocido como

administrador en el sistema.

Postcondición El usuario podrá ver la información de las

tareas ejecutadas por varios usuarios o

uno en concreto.

Caso de uso Descargar Excel

Descripción El usuario podrá descargar un documento

Excel con los resultados obtenidos.

Precondición El usuario debe estar registrado en la

aplicación.

Postcondición El usuario podrá descarga un documento

en formato Excel con la información que

este ha buscado.

Page 15: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

13

Caso de uso Listar documentos

Descripción El usuario podrá visualizar los

documentos que se han convertido

correctamente y los que han fallado con

su respectivo error. Además podrá

ordenar los listados por un criterio y filtrar

por nombre de documento.

Precondición El usuario debe estar registrado en la

aplicación.

Postcondición El usuario podrá ver la información

detallada de cada documento.

2.1.3 Tecnologías utilizadas

Para el desarrollo del proyecto se van a utilizar las siguientes tecnologías:

MySQL: es un Sistema de gestor de base de datos, necesario para guardar y

acceder a los datos de la aplicación.

AJAX: técnica de desarrollo Web para crear aplicaciones interactivas o

aplicaciones de Internet enriquecidas.

JSP: tecnología Java que permite generar contenido dinámico para web, en

forma de documentos HTML, XML. Necesario para crear el interfaz, para que el

usuario visualice la información.

Hibernate: herramienta de mapeo (ORM) para la plataforma Java, necesaria

para acceder y utilizar los datos almacenados en la base de datos.

Apache: servidor Web HTTP, necesaria para alojar la aplicación.

Todas las tecnologías fueron elegidas por la empresa ya que son las que se utilizan

actualmente en la aplicación.

2.1.4 Modelo conceptual

En la realización de este proyecto se parte de un modelo de datos existente, que

cuenta con diferentes clases desarrolladas. De todas estas clases he utilizado las

siguientes:

Clase CSTask: esta clase representa los atributos y métodos de las tareas

que se ejecutan en la aplicación.

Clase CSUser: contiene los datos relativos a un usuario como el identificador,

el nombre, el tipo de rol, usuario, contraseña y email.

Page 16: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

14

Clase CSPack: esta clase representa los atributos y métodos de los paquetes

que se crean en la aplicación.

Además de estas clases he añadido otras nuevas, que creo necesarias para completar

el modelo de clases para el desarrollo del nuevo módulo.

Clase CSError: esta clase contiene los atributos y los métodos que permiten

consultar la información de los tipos de errores que pueden generarse durante la

conversión de los documentos.

Clase CSQueueLog: esta clase representa los atributos y los métodos de los

documentos convertidos en la aplicación. Un tal documento se identifica por

número de documento, nombre, versión, estado, tipo de conversión y el

identificador del usuario que ejecuta la conversión, entre otros.

Por tanto nos basamos en este el modelo de datos para desarrollar el nuevo

módulo.

2.1.4.1 Diagrama de clases

Figura 3. Diagrama de clases

2.1.5 Modificaciones del análisis

En el transcurso del proyecto se han realizado los siguientes cambios:

Los datos estadísticos sólo se buscarán por uno o varios usuarios y/o

fecha, eliminando la previsión inicial de búsqueda por paquete.

Los datos se agruparán por usuario.

Estos cambios suponen una ligera modificación en el diagrama de casos de uso,

quedando de la siguiente forma:

Page 17: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

15

Figura 4. Diagrama de casos de uso modificado

2.2 Diseño

En este apartado se tratarán los temas relacionados con el diseño de la aplicación:

2.2.1 Diseño de base de datos

Como se ha comentado en apartados anteriores, para la realización de este proyecto

ya se cuenta con una base de datos. Esta base de datos cuenta con varias tablas,

pero las únicas que están relacionadas con mi proyecto son las siguientes:

CSTask.

CSPack.

CSQueue.

CSUser.

Por razones del funcionamiento de la aplicación Rhobotlink, los datos almacenados en

la tabla CSQueue se eliminan cada cierto período. Para evitar perder la información

que almacena esta tabla he decidido añadir una nueva tabla llamada CSQueueLog

que almacena toda la información relacionada con los documentos que se convierten

en esta aplicación.

Page 18: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

16

Al comienzo del análisis de este proyecto se pensó en crear otra tabla CSError, para

mostrar el error de los documentos que se ejecutaron incorrectamente, pero se tomó la

decisión de no crearla, ya que existía otra forma de obtener el error de cada

documento sin necesidad de modificar esencialmente la base de datos.

Tabla CSQueueLog

Recoge la información correspondiente a los documentos que se han convertido en

algún tipo conversión que permite la aplicación como PDF, DXF, PRINTER, PS, SAT,

PV, IGES. Los datos de los documentos son: el identificador (que se genera

automáticamente), el nombre del documento, la versión, el estado, la iteración, la

fecha en la que se ha creado y se ha modificado, el tipo de conversión (el tipo de

formato al que se ha convertido el documento), el idioma en el que se ha publicado,

etc.

Figura 5. Tabla CSQueueLog

Page 19: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

17

2.2.2 Diseño de clases

A continuación se van a explicar las nuevas clases que se diseñan para procesar los

datos de las entidades que se manejan en el nuevo módulo.

Clase CSStadistics

Esta clase representa los atributos y métodos necesarios para representar los datos

estadísticos consultados por el usuario.

Figura 6. Clase CSStadistics

La clase CSStadistics hereda de la clase abstracta CSObject e implementa las

interfaces CSPersistable y CSExportable, que se describen a continuación:

CSObject: clase abstracta que contiene los atributos y métodos de las fechas

de creación, modificación y actualización de un objeto.

CSPersistable: interfaz que contiene los métodos que se deben implementar

en las subclases relacionados con las fechas de creación, modificación y

actualización de un objeto.

CSExportable: interfaz que contiene los métodos a implementar para convertir

los datos en formato XML.

Page 20: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

18

Clase CSQueuelog

Esta clase representa los atributos y métodos necesarios para acceder a la

información de los documentos que se han convertido en la aplicación.

La clase CSQueueLog hereda de la clase abstracta CSObject e implementa las

interfaces CSPersistable y CSExportable, mencionadas anteriormente.

Los métodos más importantes de esta clase son:

CSQueueLog newCSQueueLog(CSQueue csqueue): permite crear un objeto

CSQueuelog a partir de un objeto CSQueue.

String toXML(): genera los datos de un documento en formato XML.

Los demás métodos permiten acceder y modificar las propiedades del objeto

CSQueueLog.

Figura 7. Clase CSQueueLog

Page 21: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

19

2.2.3 Arquitectura

He decidido utilizar una estructura por capas en el desarrollo del proyecto. Dicha

estructura por capas favorece una arquitectura cliente-servidor, en el que el objetivo

principal es la separación de la lógica de negocio de la parte de presentación.

La ventaja principal es que el desarrollo se puede llevar a cabo en varios niveles y, en

caso de que se dé algún cambio, sólo se modifica la capa necesaria sin tener que

revisar todo el código.

La arquitectura contiene 3 capas y son las siguientes:

Figura 8. Arquitectura por Capas

2.2.3.1 Capa Lógica de negocio:

La capa de lógica de negocio es la encargada de implementar cualquier proceso que

se realice en la aplicación. Esta capa se encarga de usar las operaciones definidas en

la capa de persistencia y a través de ellas construir la funcionalidad especificada en la

fase de análisis.

En nuestro caso, esta capa se basa en la clase CSStadisticsBean.

Figura 9. Lógica de negocio

Métodos:

o String roleuser (HttpServletRequest): devuelve el rol del usuario que

se ha conectado en la aplicación.

Page 22: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

20

o String stadisticsdata (HttpServletRequest): devuelve en una cadena

(formato XML) los datos estadísticos que corresponden a la consulta

realizada por el usuario.

o String documentsfailed (HttpServletRequest): devuelve en una

cadena (formato XML) los documentos fallidos correspondientes a los

datos estadísticos consultados por el usuario.

o String documentscorrect (HttpServletRequest): devuelve en una

cadena (formato XML) los documentos correctos correspondientes a la

consulta realizada por el usuario.

o String exportXML (LinkedHashMap, int, int, HttpServletRequest):

devuelve la información de los documentos publicados correctamente

en XML.

o String exportXML2 (List, int, int, HttpServletRequest): devuelve la

información de los documentos que han fallado en XML.

o String getUsuarios(): devuelve en una cadena los usuarios registrados

en la aplicación.

o downloadexcel(HttpServletResponse): genera un archivo en formato

Excel con los documentos agrupados por fallidos y correctos

correspondientes a la búsqueda realizada por el usuario.

2.2.3.2 Capa de Persistencia.

La capa de persistencia se encarga del acceso a los datos guardados en algún

repositorio de información que maneja la aplicación. La implementación de esta capa

se llevará a cabo con la tecnología Hibernate.

En esta aplicación se maneja como repositorio una base de datos en MySQL.

Figura 10. Persistencia

Page 23: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

21

Métodos:

o List stadisticsdata (Hashtable, String[], boolean): devuelve una

lista de objetos CSStadistics de los usuarios pasados por parámetro

correspondiente a la búsqueda realizada por el usuario.

o LinkedHashMap listdocuments (Hashtable, boolean, List):

devuelve una lista de los documentos correctos correspondiente a la

búsqueda que ha realizado el usuario, con su respectivo tiempo

medio de ejecución y número de publicaciones.

o List getPacks(Long): devuelve en una lista los paquetes

correspondientes a un usuario.

o List documentsfailed (Hashtable, boolean, String, String, String,

String, int, int): devuelve una lista con los documentos fallidos

correspondientes a la búsqueda realizada por el usuario.

o Int timeexec(CSSQueueLog): devuelve el tiempo que ha tardado

en convertirse un archivo.

o LinkedHashMap documentscorrect (Hashtable, boolean, String,

String, String, String, int, int): devuelve en un LinkedHashMap los

documentos que se han publicado correctamente.

o List getcompletos(): devuelve una lista con todos los documentos

que se han convertido satisfactoriamente.

o List getfallidos(): devuelve una lista con todos los documentos

fallidos.

2.2.3.3 Capa de presentación

La capa de presentación se encarga de generar el contenido de las pantallas con el

formato adecuado para la aplicación y por tanto, es la que realiza cualquier entrada y

salida de datos desde y hacia el usuario.

Mi proyecto se basa en una aplicación creada. Por tanto, la plantilla del apartado que

debo realizar tiene que seguir el mismo diseño de la interfaz.

Para la realización de dicho interfaz se utilizará la tecnología JSP. De las páginas que

ya existen he modificado la página monitor y el menú publicador, añadiendo un nuevo

item al menú principal para poder acceder al apartado de estadísticas.

Nueva plantilla de la página Monitor: desde la página monitor el usuario puede pulsar

el botón estadísticas para acceder a la página de estadísticas.

Page 24: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

22

Figura 11. Plantilla Monitor

Plantilla del módulo estadísticas: en esta página aparece un formulario donde el

usuario podrá realizar búsquedas por distintos criterios.

En la parte inferior aparece un listado con los porcentajes y tiempo medio de los

documentos publicados por los criterios seleccionados por el usuario.

Además se podrá visualizar en un pequeño gráfico de sectores dichos porcentajes y

se podrá listar para ver con más detalle todos y cada uno de los documentos

correspondientes a la búsqueda agrupados por fallidos y completos. Por otro lado, el

usuario podrá descargar un informe en formato Excel de todos los documentos.

Page 25: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

23

Figura 12. Plantilla Estadísticas

2.3 Implementación

En este apartado se describirá el desarrollo del módulo de estadísticas y los

problemas que surgieron al realizarlo.

Para empezar a realizar este nuevo módulo en la aplicación Rhobotlink tuve que

estudiar primero de qué se trataba la aplicación, qué funciones realizaba y cuáles eran

las herramientas que utilizaba.

Para ello tuve que estudiar otros programas relacionados como Windchill y Creo

Parametric, que son fundamentales para el funcionamiento de Rhobotlink.

Windchill es un almacén fiable de documentos CAD, que permite gestionar de

manera experta todos los datos del producto, incluido datos eléctricos y mecánicos,

Además ofrece acceso sencillo, permite administrar procesos como la gestión de los

cambios, configuración y el envío a fabricación.

Creo Parametric es una aplicación que permite diseñar productos AUTOCAD,

ofreciendo una amplia gama de diseño CAD 3D. Además admite diferentes formatos

de ficheros CAD.

Después de estudiar el funcionamiento de las aplicaciones mencionadas

anteriormente debía saber cómo estaba programada la aplicación Rhobotlink

estudiando las tecnologías utilizadas, qué clases contiene, cómo está organizada la

base de datos, para saber qué tablas eran necesarias para realizar el nuevo módulo

que me habían encargado.

Page 26: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

24

A continuación voy explicar brevemente las tecnologías utilizadas en el desarrollo del

proyecto.

Hibernate

Es una herramienta ORM (Mapeo objeto-relacional) para la plataforma Java que

facilita el mapeo de atributos entre una base de datos relacional y el modelo de objetos

de una aplicación mediante archivos (XML) o anotaciones que permiten establecer

estas relaciones.

Hibernate ofrece también un lenguaje de consulta de datos llamado HQL (Hibernate

Query Language) orientado a objetos, al mismo tiempo que una API para construir las

consultas programáticamente llamada Criteria.

HQL es completamente orientado a objetos y comprende nociones como herencia,

polimorfismo y asociación. HQL permite usar un lenguaje intermedio según la base de

datos que se vaya a usar y el dialecto que se especifique serán traducidos al SQL

dependiendo de cada base de datos de forma automática y transparente.

Ventajas

Permite interactuar con distintas base de datos como SQLServer, MySQL,

Oracle, entre otras.

Independencia con el motor de base de datos.

Genera automáticamente el código SQL usando un Mapeo Objeto-relacional, el

cual se especifica en un documento XML o mediante anotaciones.

Se recuperan objetos de la base de datos, sin tener la necesidad de

construirlos manualmente.

Para la configuración de Hibernate me basé en el archivo que ya usaba la aplicación.

En este fichero se incluyen las propiedades de acceso a la base de datos: el driver

usado para la conexión, la URL de la base de datos, así como el usuario y la

contraseña.

Este fichero es utilizado por Hibernate para crear instancias de sesiones con la base

de datos MySQL y donde se indican los ficheros de mapeo entre las clases y las tablas

de la base de datos.

En los ficheros de mapeo se indica el nombre de la clase, con qué tabla se mapea y

los atributos (especificando su tipo en caso de no ser básico).

Este archivo corresponde al mapeo de la clase CSQueueLog con la tabla

CSQueueLog.

Page 27: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

25

Figura 13. Configuración mapeo clase CSQueueLog

Criteria

Dentro de Hibernate existen distintas APIs, una de ellas es Criteria. Esta API es

necesaria para el desarrollo del proyecto para realizar las consultas, porque es más

segura y recomendada para las consultas dinámicas.

Es una interfaz simplificada para la recuperación de entidades mediante la

composición o la creación de objetos Criteria. Es muy conveniente para

funcionalidades como pantallas de búsqueda, donde hay una gran cantidad de

condiciones que se colocarán en el conjunto de resultados.

Las ventajas de esta API son la clase Restrictions que permite añadir distintos

criterios a una consulta mediante los métodos que ofrece. Y, por otro lado, está la

clase Projections, indicada para agrupaciones y agregaciones de datos con criterios.

Con Criteria hay menos probabilidad de cometer errores a la hora de escribir consultas

SQL o HQL y evita la inyección de código.

Para crear las instancias de Criteria se necesita de la clase Session que se obtiene

del SessionFactory configurado en el fichero XML de Hibernate.

Restrictions

Pertenece al paquete criterion y se puede usar como framework para la creación de

tipos de criterion, Sin embargo, se pretende que la mayoría de aplicaciones sólo

Page 28: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

26

utilicen el incorporado en los tipos de criterion a través de los métodos estáticos de

esta clase. Los métodos que he utilizado de esta clase han sido:

Between(String propertyName,Object first, Object last): para buscar los

documentos que se han ejecutado desde una fecha inicial hasta una fecha

final.

Like(String propertyName, Object value): para encontrar una documento

específico según un criterio determinado.

Isnull(String propertyName): para buscar si la propiedad de un documento

es nula (por ejemplo si el idioma de un determinado documento es nulo).

Projections

Pertenece al paquete criterion. Se puede usar en aplicaciones como framework para

la creación de nuevos tipos Projections. Los métodos que he utilizado de esta clase

son:

Projectionslist(): crea una lista de Projections donde se van añadiendo los

criterios.

groupProperty(String propertyName): lo he utilizado para agrupar

documentos por un criterio específico por ejemplo por nombre, versión, idioma,

etc.

Para realizar el interfaz del módulo debía desarrollarlo con la tecnología JSP,

tecnología conocida ya que la estudiamos en la asignatura de Programación de

Aplicaciones Web.

Para completar el funcionamiento del módulo utilicé otra tecnología, de la que tenía

algún conocimiento previo, aunque no era suficiente para desarrollar completamente

este módulo. Esta tecnología es AJAX.

AJAX

Es una técnica de desarrollo Web para crear aplicaciones interactivas. Estas

aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios

mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De

esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas.

Ajax es una técnica válida para múltiples plataformas y utilizable en muchos sistemas

operativos y navegadores que está basado en estándares abiertos como JavaScript y

DOM (Document Object Model).

He empleado dos librerías que manejan AJAX en el envío y la recepción de datos.

Jquery es una librería rápida y tiene muchas funcionalidades. Las realiza como

documento HTML manipulando el control de eventos, animación y funciones AJAX

Page 29: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

27

con más facilidad de usar en varios navegadores. Con una combinación de flexibilidad

y extensibilidad.

Flexigrid en un plugin de JQuery open source, permite mostrar e interactuar con

contenido proveniente de bases de datos, tiene la facilidad de conectarse a fuentes de

datos XML y permite devolver los datos en JSON para que sean mostrados todo a

través de AJAX.

Flexigrid fue utilizada para mostrar los datos estadísticos y los detalles de los

documentos publicados.

El uso de esta librería permite ordenar los listados según un criterio haciendo clic

sobre la cabecera de una columna, permite realizar filtros y la paginación de los

resultados.

La librería se encarga de realizar las peticiones, pero yo debía encargarme en

controlar los datos en el código.

Con la librería Flexigrid tuve algunos inconvenientes porque necesitaba refrescar los

datos de los documentos cada vez que eligiera el de otro usuario, para ello debía

buscar una opción que buscara cada vez por la primera página y que, si el usuario

había realizado alguna búsqueda dentro de la tabla, al cambiar no se quedara

guardado el criterio de búsqueda. Me costó encontrar la información ya que es una

librería con poca documentación.

Apache POI

Es una librería que sirve para manipular varios formatos de archivos basados en los

estándares de office XML, se puede leer y escribir archivos de MS Excel utilizando

java.

Con esta librería tuve que formarme para poder generar el Excel y así completar el

módulo, ya que el usuario podrá descargar un Excel con la descripción completa de

cada documento agrupados por los completos y los fallidos y que correspondan a la

búsqueda que ha realizado.

Para mostrar los datos en un gráfico utilicé una API de Google llamada Visualization,

para poder realizarlo he utilizado las siguientes clases:

DataTable(opt_data, opt_version): opt_data corresponde a los valores necesarios

para inicializar la tabla, necesaria para representar el gráfico y opt_version es el

número de versión del protocolo de conexión, en este caso no es necesario.

PieChart: clase necesaria para representar el gráfico y se utiliza el método draw(data,

options) para dibujar el gráfico:

data son los datos almacenados en la DataTable.

options son las opciones que desea añadirse al gráfico como el título, etc.

Page 30: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

28

2.3.1 Desarrollo del módulo

Uno de los puntos más importantes del desarrollo de este proyecto es la arquitectura

por capas: presentación, lógica de negocio y persistencia.

Por esta razón voy a explicar una parte del desarrollo del nuevo módulo, detallando

código que considero relevante por cada una de las capas que forman la arquitectura

de esta aplicación.

Empezaré por la capa de presentación donde se muestran los datos estadísticos y los

detalles de los documentos por medio de una tabla usando para ello la librería

Flexigrid. Esta librería se utiliza de la siguiente forma:

Figura 14. Código Flexigrid

Para la configuración de la tabla se tienen las siguientes propiedades:

url: se indica la dirección del archivo que se encarga de obtener los datos.

dataType: indica el formato de los datos, en nuestro caso van a ser devueltos

en formato XML.

colModel: se indica la lista de columnas que debe contener nuestra tabla. Para

cada columna se puede indicar el nombre que visualizará el usuario, nombre

interno de la columna, anchura, entre otras.

searchitems: indica qué columnas de la tabla se pueden filtrar.

sortname: indica el nombre de la columna por la que se va a ordenar los datos

por defecto.

sortorder: indica si la columna se ordenará ascendentemente o

descendentemente.

Page 31: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

29

La librería se encarga de enviar la petición con los parámetros necesarios para

visualizar los datos.

La capa de presentación se encarga de hacer las peticiones a la capa de lógica de

negocio (CSStadisticsBean). Esta capa, a su vez, se encarga de comprobar que los

datos recibidos sean correctos y no sean nulos para obtener los datos por medio de la

clase de persistencia.

Lógica de negocio

En esta capa actúa la clase CSStadisticsBean, que se encarga de comprobar que los

parámetros enviados no sean nulos, y si es el caso, les asigna los datos por defecto.

Posteriormente llama a la capa de persistencia para que se encargue de realizar las

operaciones necesarias contra la base de datos.

Figura 15. Código lógica de negocio

Persistencia

En esta capa actúa la clase PersistenceHelperStadistics que se encarga de obtener

los datos correspondientes a la búsqueda realizada incluyendo el orden del listado, el

total de registros y la paginación que se desea visualizar en la tabla.

El acceso a la base de datos se reliza con Hibernate y las consultas se realizan con el

API Criteria, utilizando las distintas clases Restrictions y Projections. Restrictions es

utilizada a la hora de obtener un dato en concreto según unos criterios y Projections

para agrupar los datos por distintos criterios.

Además, con los métodos de Criteria, puedo ordenar los datos de forma ascendente o

descendente.

En el código se visualiza que al objeto criteria se le añade una restricción indicando el

atributo y el valor que debe corresponder a éste, con el método addOrder(), se indica

como se deben ordenar los valores obtenidos con Restrictions.

Y también se puede obtener desde y hasta donde se quieren coger los registros con

setFirstResult() y setMaxResults().

Page 32: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

30

Figura 16. Código persistencia

2.3.2 Problemas

Para finalizar esta breve descripción de la implementación, comento algunos de los

principales problemas a los que me he tenido que enfrentar, fundamentalmente

referidos a mi desconocimiento de las tecnologías a utilizar.

Con la API Criteria tuve algunos inconvenientes ya que es muy extensa y me costó

entender muy bien cada una de sus clases y métodos para realizar las consultas. Fue

difícil entender los ficheros de configuración de Hibernate, porque contienen mucha

información que era desconocida para mí

Dentro de la clase Projections tuve que utilizar la clase Transformers para poder

transformar los datos agrupados de la clase CSQueueLog, ya que me daba algunos

problemas de identificación de clases.

Una de las clases que me dio más dificultades fue Projections. Tiene funcionalidades

apropiadas para lo que deseaba hacer, pero no eran suficientes, ya que agrupa los

datos según uno o varios criterios, pero no muestra la cantidad de datos que cumplen

las mismas características. Además necesitaba calcular el tiempo de ejecución y

necesitaba acceder a cada uno de los datos para calcularlo.

Respecto a las librerías la que me dio más problemas fue la de Flexigrid porque tiene

poca documentación y necesitaba saber muchos aspectos para completar mi módulo.

Utilizando la librería de Google para el gráfico de estadísticas tuve algunas dificultades

para entender como pasar datos dinámicos para representar el gráfico.

De JavaScript sabía cosas muy básicas y para desarrollar el interfaz del módulo

necesitaba cosas más complejas, por esta razón tuve que buscar más información y

mirar muchos ejemplos.

Page 33: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

31

2.3.3 Pruebas

He realizado pruebas para comprobar que todos los datos estadísticos y el listado de

los documentos se mostraban correctamente y para buscar posibles fallos en la

aplicación.

En la realización de las pruebas me di cuenta de que la utilización del HashMap no era

conveniente en el listado que muestra los documentos correctos, dado que al ordenar

no introduce los datos en el mismo orden de inserción, por esta razón utilicé otra clase

llamada LinkedHashMap.

Para el listado de los documentos correctos el asunto era distinto que en el caso de los

fallidos, porque debía agruparlos y calcular para cada grupo el tiempo medio de

ejecución.

Las pruebas las he realizado con supervisión de la tutora de la empresa y ha quedado

satisfecha con el trabajo realizado.

Page 34: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

32

2.4 Gestión del proyecto

2.4.1 Planificación

2.4.1.1 Diagrama de Gantt

A continuación se describe la planificación del proyecto en un diagrama Gantt, indicando el nombre de las tareas con su respectiva duración en

horas.

Figura 17. Diagrama de Gantt

Page 35: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

33

2.4.1.2 Descripción de las tareas

Gestión del proyecto

En este apartado se agrupan todas las tareas que corresponden a la planificación y

seguimiento.

Objetivos: esta tarea corresponde a la creación del documento de objetivos.

Planificación: consiste en descomponer y describir las tareas, asignándoles el

tiempo que se les va a dedicar y realizar el diagrama de Gantt.

Seguimiento del proyecto: consiste en comparar entre el tiempo planificado

para cada tarea y su duración real.

Análisis

Diagrama de casos de uso: esta tarea consiste en identificar los actores que

interactúan con la aplicación creando el diagrama correspondiente.

Especificación de los casos de uso: descripción de las distintas actividades

definidas en los casos de uso.

Diagrama de clases: consiste en identificar las clases en los que se va

descomponer el diseño del nuevo módulo.

Diseño

Diseño de la base de datos: esta tarea corresponde al diseño de las tablas

necesarias para completar el modelo existente.

Diseño de clases: esta tarea consiste en identificar las clases y métodos

necesarios a partir del análisis de requisitos.

Construcción

Implementación: esta tarea consiste en ampliar la base de datos generando el

diagrama diseñado. Implementar el código necesario para que la aplicación

funcione correctamente cumpliendo los requisitos del cliente.

Documentación: consiste en documentar las clases y métodos que se han

implementado.

Pruebas: realizar las pruebas necesarias para comprobar que el nuevo módulo

funcione correctamente.

Formación

Esta tarea consiste en adquirir los conocimientos necesarios de las tecnologías que se

van a utilizar en el desarrollo del proyecto. Además de lo anterior estudiar el

funcionamiento y el código de la aplicación.

Manuales

Consiste en crear los manuales necesarios para que el usuario pueda utilizar

fácilmente el nuevo módulo.

Page 36: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

34

Memoria

Esta tarea consiste en crear toda la documentación del proyecto, como el análisis,

diseño, planificación e implementación del proyecto.

Defensa

Consiste en crear el material necesario para presentar este proyecto al cliente y al

tribunal evaluador.

Page 37: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

35

2.4.2 EDT

Gestión del proyecto

Objetivos

Planificación

Seguimiento

Módulo

Estadísticas

Análisis Diseño Construcción

Diagrama de

casos de uso

Modelo

Conceptual

Diseño de la

base de datos

Diseño de

clases

Implementación

Documentación

Pruebas

Formación Memoria Manuales Defensa

Proyecto

EDT

Page 38: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

36

2.4.3 Seguimiento

Al comienzo del proyecto estime un tiempo sin saber muy bien cuanto me iba a costar

aprender las nuevas tecnologías necesarias para la realización de dicho proyecto.

Para mí era totalmente nueva la tecnología Hibernate y con Ajax tenía poca

experiencia, ya que sólo sabía lo básico.

Además utilicé librerías que eran nuevas para mí como Jquery, Flexigrid y POI.

En la formación fue lo que me llevo más tiempo, porque, además de que tuve que

formarme en varias tecnologías tuve que entender muy bien el funcionamiento de la

aplicación Rhobotlink, Windchill y Creo. Ya que eran fundamentales para realizar el

nuevo módulo.

Otro de los factores que influyeron en el tiempo fueron los cambios que se han

producido durante el transcurso del proyecto. Por ejemplo: En la búsqueda por usuario

se puede seleccionar varios usuarios, el listado de los documentos correctos se deben

listar agrupados por nombre, versión, estado, tipo de conversión e idioma.

Tarea Horas

Estimadas

Horas

Reales

Desfase

Gestión del proyecto 30 32 0

Objetivos 3 3 0

Planificación 10 12 +2

Seguimiento del proyecto 15 15 0

EDT 2 2 0

Análisis 11 11 0

Diagrama de casos de uso 5 5 0

Modelo conceptual 6 6 0

Diseño 10 10 0

Page 39: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

37

Diseño de la base de datos 5 5 0

Diseño de clases 5 5 0

Construcción 112 122 +10

Implementación 100 110 +10

Documentación 2 2 0

Pruebas 10 10 0

Formación 80 90 +10

Manuales 2 2 0

Memoria 50 50 0

Defensa 5 5 0

Total Horas 300 322 +22

Comparación de tiempos

A continuación se visualizará en un gráfico la comparación del tiempo estimado con el

tiempo real en la realización del proyecto.

La diferencia es más significativa en la implementación y formación, porque como

mencioné anteriormente había muchos factores nuevos para mí.

Page 40: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

38

Figura 18. Comparación de tiempos

2.5 Imágenes del módulo

Buscador rol administrador

El usuario administrador podrá buscar los datos estadísticos por usuarios y/o fecha

Figura 19. Buscador usuario administrador

Page 41: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

39

Datos estádisticos

Los datos se mostrarán agrupados por usuario.

Figura 20. Datos Estadísticos

Gráfico

Los porcentajes también se puede visualizar en un gráfico.

Figura 21. Gráfico

Listado ficheros fallidos

La información que se podrá visualizar de los documentos fallidos es: nombre,versión,

iteración, estado, tipo conversión, tiempo que ha tardado en publicarse y el tipo de

error.

Page 42: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

40

Figura 22. Listado documentos fallidos

Listado ficheros correctos

La información que se podrá visualizar de los documentos correctos es:

nombre,versión, iteración, estado, tipo conversión, idioma, tiempo que ha tardado en

publicarse y el total de publicaciones.

Figura 23. Listado documentos completos

Page 43: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

41

Descarga excel

Se podrá descargar un archivo Excel con el listado de los ficheros agrupados por

fallidos y completos.

Figura 24. Fichero Excel

Buscador rol Avanzado

El usuario avanzado solo podrá ver los documentos que el mismo ha publicado, y solo

podrá buscar por la opción de fecha.

Figura 25. Buscador usuario avanzado

Page 44: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

42

3. Conclusiones

En la realización de este proyecto lo que más me costó fue formarme y familiarizarme

con la aplicación que debía modificar, ya que necesitaba saber muy bien de qué se

trataba, qué realizaba, qué otros programas y tecnologías utilizaba para su

funcionamiento, etc.

Respecto a las tecnologías, la que me dio más problemas fue Hibernate, ya que es

bastante extensa. El API que destaca más es Criteria, que en la aplicación se utiliza

para consultar la base de datos. Otro de los temas complejos fue la utilización de las

librerías Jquey y Flexigrid, ya que también eran desconocidas para mí. No bastó con

mirar el código de la aplicación donde las utilizan, sino que debía buscar más

información porque necesitaba utilizar nuevos métodos de estas librerías.

He aprendido mucho en el tema laboral, ya que he realizado un proyecto real, donde

se han dado cambios, retrasos, problemas reales, etc. Y, además, el hecho de

manejar nuevas tecnologías completó mi formación adquirida en la universidad.

Los conocimientos que he adquirido en la universidad me fueron muy útiles porque los

puse en práctica al desarrollar este proyecto.

En el tema de planificación todavía me falta aprender un poco ya que algunas tareas

se atrasaban por temas académicos o por falta de formación en algunas tecnologías

como mencioné anteriormente, pero cada vez voy mejorando poco a poco en ese

tema.

Al empezar con este proyecto me he dado cuenta de que partir de una aplicación ya

hecha es más complicado que comenzar una desde cero, porque entender el código y

la lógica del modelo de datos de terceros es mucho más complejo de lo que pensaba.

Page 45: Módulo de estadísticas para la aplicación rhobotlink

Trabajo Fin de Grado

43

4. Bibliografía

Apuntes de la asignatura Programación de Aplicaciones Web.

http://flexigrid.info/

http://www.hibernate.org/

http://jquery.com/

http://poi.apache.org/

https://google-developers.appspot.com/chart/interactive/docs/gallery/piechart

http://www.sca.es/index.php/es/

Page 46: Módulo de estadísticas para la aplicación rhobotlink

Manual de Usuario Módulo de estadísticas Rhobotlink

Page 47: Módulo de estadísticas para la aplicación rhobotlink

Manual de Usuario

1

1. Módulo Estadísticas

Ventana en la que se pueden consultar los datos estadísticos de las tareas que se han

ejecutado en la aplicación Rhobotlink, estos datos se podrán buscar por varios

criterios: usuario y/o fecha.

Además, se mostrará un listado con los detalles de los documentos agrupados por

fallidos y completos.

Para acceder a las estadísticas se puede hacer desde el menú Publicador->

Estadísticas.

O desde la página monitor haciendo clic en el botón Estadísticas.

Para un usuario administrador puede hacer la búsqueda por usuario y/o por fecha, si

no se selecciona ningún usuario y se busca solo por fecha buscará por el usuario

conectado en la aplicación.

Para buscar por usuario podrá seleccionar varios con ctrl+clic.

Para los usuarios avanzados solo podrá buscar las publicaciones que ha realizado

este por fecha.

Page 48: Módulo de estadísticas para la aplicación rhobotlink

Manual de Usuario

2

Si el usuario es básico no podrá utilizar esta funcionalidad de la aplicación.

Al realizar la búsqueda se mostrará el número de ficheros que se han publicado

correctamente y cuáles no, el porcentaje y el tiempo medio que ha tardado en

ejecutarse las publicaciones.

Para ver el gráfico se accede desde el botón Gráfico

Los porcentajes se mostrarán de la siguiente forma:

Para ver el listado de los documentos se accede desde el botón listado

Se podrá ver la siguiente información de los documentos fallidos: nombre, versión,

iteración, tipo, estado, tipo de conversión, tiempo de ejecución y el tipo de error que ha

ocasionado que el documento no se publique correctamente.

Page 49: Módulo de estadísticas para la aplicación rhobotlink

Manual de Usuario

3

Para visualizar lo documentos completos se selecciona la pestaña completos

La información que se podrá visualizar de los documentos correctos es la siguiente:

nombre, versión, iteración, estado, tipo de conversión, idioma, tiempo de ejecución y el

número de veces que se ha publicado.

Los documentos están agrupados por nombre, versión, iteración, estado, tipo de

conversión e idioma.

Los documentos se podrán ordenar por nombre, versión, iteración, estado, tipo de

conversión e idioma, dando clic en la cabecera de cada columna.

Page 50: Módulo de estadísticas para la aplicación rhobotlink

Manual de Usuario

4

Además, se puede buscar en la lista por el nombre de documento:

Dando clic en el botón buscar , y luego se escribe el nombre del documento qué

desea buscar.

El listado de los documentos se podrá descargar en un archivo Excel agrupados por

fallidos y completos.

El archivo Excel se descarga haciendo clic desde el botón Descargar Excel.