Universidad De Castilla-La Mancha Escuela Superior De Informática
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSIDAD DE CASTILLA-LA MANCHA ESCUELA SUPERIOR DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA INGENIERÍA DEL SOFTWARE TRABAJO FIN DE GRADO Núcleo de Repositorio de Formularios DocPath Francisco Javier Mendoza Madroñal Septiembre 2016 UNIVERSIDAD DE CASTILLA-LA MANCHA ESCUELA SUPERIOR DE INFORMÁTICA Depto. de Tecnologías y Sistemas de la Información INGENIERÍA DEL SOFTWARE TRABAJO FIN DE GRADO Núcleo de Repositorio de Formularios DocPath Autor: Francisco Javier Mendoza Madroñal Director: José Antonio Cruz Lemus Director: Arturo Peralta Martín-Palomino Septiembre 2016 Núcleo de Repositorio de Formularios DocPath © Francisco Javier Mendoza Madroñal, 2016 La copia y distribución no esta permitida. Propiedad de DocPath SL. Documento generado con LATEX. TRIBUNAL: Presidente: Vocal: Secretario: FECHA DE DEFENSA: CALIFICACIÓN: PRESIDENTE VOCAL SECRETARIO Fdo.: Fdo.: Fdo.: A todo aquel que le dedique un rato a leerse este TFG Resumen En la actualidad la evolución de las herramientas y tecnologías en el ámbito de la infor- mática es muy rápida por lo que cada día surgen nuevas herramientas que hacen más fáciles, rápidas y eficientes las funciones que desarrollan. Por este motivo cualquier empresa que desee estar en la vanguardia de este negocio necesita estar en constante actualización. De un tiempo a esta parte están apareciendo nuevas herramientas, o versiones de éstas, para gestionar el negocio de las empresas que son mucho más potentes que las clásicas. No se trata solo de la utilización de las nuevas tecnologías sino de la correcta forma de hacerlo para que las aplicaciones puedan evolucionar fácilmente. De lo anteriormente expuesto DocPath, una empresa líder en el desarrollo de software cuya filosofía es impulsar a las empresas con su gestión documental, desea mejorar su gama de productos; concretamente su herramienta de almacenamiento y gestión de formularios. Esta mejora se conseguirá usando entre otras herramientas la arquitectura REST, que aparte de mejorar la interfaz de comunicación entre las aplicaciones, se transforma en una solución multiplataforma. El propósito principal de este trabajo fin de grado es realizar un núcleo de repositorio de formularios basado en la arquitectura REST. ix Abstract Nowadays the evolution of computer technology and tools is so fast that every day we may found new tools that make posible to develop their funtions more quick, fast and efficcient. Therfore any company that wish to be in the top of this business has to be updated always. Actually in present days new tools or new versions of these tools are developed to manage enterprises more poswerfull tha classic computer tolos done. The idea is not only to use new technologies, the idea is to use new technologies in the best way in order to allow new computer tools grow easilly. According to this, DocPath, a company leader in software development which philosofy is to promote companies with their documents managment software wants to improve their products; specially their tool for storage and management of forms. The company wants to reach this objetive using REST architecture because apart from make a better interface of comunication between aplications may be a multplatform solution. Main objetive of this thesis is to do a repository of forms based on REST architecture. xi AGRADECIMIENTOS Se lo quiero agradecer a toda mi familia en general y a mi madre en particular, los quiero mucho a todos. A todas las personas que considero y me consideran más que un amigo, las quiero mucho también. A DocPath por darme la oportunidad de realizar este proyecto con ellos. Y para terminar a la Escuela Superior de Informática. Francisco Javier Mendoza Madroñal xiii ÍNDICE GENERAL 1 Introducción 1 1.1 Estructura del Documento . .2 2 Objetivos 5 2.1 Objetivo principal . .5 2.1.1 Objetivos Secundarios . .5 2.1.2 Objetivos Académicos . .6 2.2 Análisis de Costes y Riesgos . .7 2.2.1 Análisis de Costes . .7 2.2.2 Análisis de Riesgos . .7 3 Antecedentes 9 3.1 Principios de la arquitectura Rest . .9 3.2 El protocolo HTTP . 11 3.2.1 Las URIs . 11 3.2.2 Los Tipos MIME . 12 3.2.3 Los Métodos de petición HTTP . 13 3.2.4 Códigos de estado . 13 3.3 Operaciones CRUD . 14 3.3.1 Read, Leer . 14 3.3.2 Update, Modificar . 16 3.3.3 Delete, Borrar . 17 3.3.4 Create, Crear . 17 xv xvi ÍNDICE GENERAL 3.4 Marco Actual de Trabajo . 19 3.4.1 DocPath Designer 4.1 . 19 3.4.2 DocPath XF Repository Management Tool . 19 3.4.3 Ejemplo de uso: DocPath Designer 4.1 y DocPath XF Repository Management Tool . 21 4 Metodología 29 4.1 SCRUM como marco de desarrollo . 29 4.1.1 Fases de desarrollo . 30 4.2 Marco Tecnológico . 31 4.2.1 Herramientas para la Gestión del proyecto . 31 4.2.2 Herramientas para el modelado . 32 4.2.3 Herramientas y tecnologías para el desarrollo . 33 4.2.4 Herramientas y tecnologías para la gestión de las base de datos . 38 4.2.5 Herramientas y tecnologías para la generación de la documentación 39 4.2.6 Herramientas para la realización de pruebas . 40 5 Resultados 41 5.1 Sprint 0 . 41 5.1.1 Análisis del sistema . 41 5.1.2 Análisis del documento de especificación de requisitos . 41 5.1.3 Uso de Servlets . 49 5.1.4 Uso de JPA . 50 5.2 SPRINT 1 . 55 5.2.1 Modelo Relacional de Base de datos . 55 5.2.2 Crear Esqueleto de XF Repository . 57 5.2.3 Creación y Actualización de la base de datos . 60 5.2.4 Gestión de la Persistencia . 66 5.2.5 Gestión de Usuarios . 66 5.2.6 Pruebas . 69 ÍNDICE GENERAL xvii 5.2.7 Conclusión del Sprint 1 . 70 5.3 SPRINT 2 . 72 5.3.1 Añadir Jetty embebido para realizar debug . 72 5.3.2 Gestión de Categorías de Formularios y Categorías de Objetos . 73 5.3.3 Gestión de Revisiones de Formularios y Objetos . 78 5.3.4 Gestión de Formularios y Objetos . 82 5.3.5 Pruebas . 83 5.3.6 Conclusión del Sprint 2 . 85 5.4 SPRINT 3 . 87 5.4.1 Implementación de un sistema de log . 87 5.4.2 Gestión de Categorías y Revisiones de Recursos . 89 5.4.3 Gestión de Roles y Operaciones . 91 5.4.4 Pruebas . 96 5.4.5 Conclusión del Sprint 3 . 98 5.5 SPRINT 4 . 100 5.5.1 Gestión de Trazas . 100 5.5.2 Operaciones avanzadas sobre el repositorio . 103 5.5.3 Creación de un proyecto externo con jetty embebido . 105 5.5.4 Pruebas . 107 5.5.5 Conclusión del Sprint 4 . 108 5.6 SPRINT 5 . 110 5.6.1 Crear Esqueleto de XF Repository Web . 110 5.6.2 Interfaz de Autentificación . 111 5.6.3 Interfaz de Gestión de Formularios . 112 5.6.4 Interfaz de Gestión de Objetos . 112 5.6.5 Interfaz de Gestión de Recursos . 113 5.6.6 Interfaz de Añadir Revisiones de Objeto a una Revisión de Formulario114 5.6.7 Interfaz de Reemplazo de Objetos . 115 5.6.8 Interfaz de Gestión de Trazas . 116 5.6.9 Conclusión del Sprint 5 . 116 xviii ÍNDICE GENERAL 6 Conclusiones 119 6.1 Conclusión . 119 6.1.1 Trabajo Futuro . 120 6.2 Valoración Personal . 122 Bibliografía 123 A Listado de Acrónimos 125 B Glosario 127 C Product Backlog 129 D Subrequisitos Funcionales del RF1 133 ÍNDICE DE FIGURAS 1.1 Gráfico Sistema XFRepository . .2 2.1 Elementos que forman el objetivo principal del desarrollo . .6 3.1 Clientes web y servidores . 11 3.2 DocPath XF Tool, Conexión al repositorio . 21 3.3 DocPath XF Tool, Pestaña de formulario . 22 3.4 DocPath Designer, Formularios contenidos en el repositorio . 22 3.5 DocPath Designer, Añadir objeto al repositorio . 23 3.6 DocPath Designer, Añadir objeto al repositorio . 23 3.7 DocPath Designer, Almacenar formulario en el repositorio . 24 3.8 DocPath XF, Promocionar a estado de Testing ................ 24 3.9 DocPath Designer, Crear una nueva versión del Formulario . 25 3.10 DocPath Designer, Versión creada del Formulario . 25 3.11 DocPath XF, Formulario en estado de Released ............... 26 3.12 DocPath XF, Seleccionar un objeto a reemplazar . 27 3.13 DocPath XF, Selección del nuevo Objeto . 27 5.1 Arquitectura global de la Solución. 42 5.2 Esquema Inicial UML . 42 5.3 Elementos del Repositorio . 43 5.4 Interfaces de JPA . 51 5.5 Ciclo de vida de una Entidad . 53 5.6 Esquema Entidad Relación de XF Repository . 56 xix xx ÍNDICE DE FIGURAS 5.7 Organización de Paquetes del Proyecto . 57 5.8 Diagrama de Clases, Inicialización del Servicio . 59 5.9 Exportar Script . 60 5.10 Selección de Tablas a persistir . 61 5.11 Diagrama de Clases, Creación de la base de datos . 65 5.12 Diagrama de Clases, Control de Usuarios . 68 5.13 Diagrama de Secuencia, Creación de usuarios . 69 5.14 Modelo ER, Parte a realizar en el Sprint 2 . 73 5.15 Diagrama de Clases, Gestión de Categorías de Objetos y Formularios . 75 5.16 Diagrama de Secuencia, Borrar Categorías . ..