DaDI8K: Herramienta para la gestión del diccionario de datos compatibles con ISO X0

Tamaño: px
Comenzar la demostración a partir de la página:

Download "DaDI8K: Herramienta para la gestión del diccionario de datos compatibles con ISO 8000-1X0"

Transcripción

1 UNIVERSIDAD DE CASTILLA-LA MANCHA ESCUELA SUPERIOR DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA TECNOLOGÍA ESPECÍFICA DE INGENIERÍA DEL SOFTWARE TRABAJO FIN DE GRADO DaDI8K: Herramienta para la gestión del diccionario de datos compatibles con ISO X0 Ana Isabel Gómez Carretero Julio, 2015 I

2

3 UNIVERSIDAD DE CASTILLA-LA MANCHA ESCUELA SUPERIOR DE INFORMÁTICA DEPARTAMENTO DE TECNOLOGÍAS Y SISTEMAS DE INFORMACIÓN TECNOLOGÍA ESPECÍFICA DE INGENIERÍA DEL SOFTWARE TRABAJO FIN DE GRADO DaDI8K: Herramienta para la gestión del diccionario de datos compatibles con ISO X0 Autor: Ana Isabel Gómez Carretero Director: Ismael Caballero Muñoz-Reja Codirector: Mario G. Piattini Velthuis Julio, 2015

4

5 PÁGINA DE CALIFICACIÓN TRIBUNAL: Presidente: Vocal: Secretario: FECHA DE DEFENSA: CALIFICACIÓN: PRESIDENTE VOCAL SECRETARIO Fdo.: Fdo.: Fdo.:

6

7 Resumen Uno de los activos más importantes en las organizaciones hoy en día son los datos, tanto para las personas, en una sociedad cada día más conectada; como para las organizaciones, ya que sus procesos productivos dependen de los datos. En este Trabajo Fin de Grado (TFG), de entre todos los tipos de datos que usan las organizaciones, nos centraremos en los datos maestros. Los datos maestros representan objetos del negocio que se comparten por más de una aplicación transaccional, por lo que son los más críticos para las organizaciones y optimizar su uso dará grandes beneficios. Dentro de las actividades propias de gestión de datos en las organizaciones, este proyecto aborda el intercambio de datos maestros entre departamentos de una organización y con otras organizaciones. Deseablemente, dicho intercambio debería realizarse siguiendo unas buenas prácticas estandarizadas, dado que en cada organización los datos maestros suelen estar definidos de distinta forma, pudiendo surgir el problema de la interoperabilidad semántica de los datos al realizar el intercambio de mensajes de datos maestros entre organizaciones. Para paliar esta situación las organizaciones que participan en el intercambio de datos podrían recurrir a un tercero que gestione los vocabularios específicos de las organizaciones y un mapeo entre ellos, de modo que se haga posible el entendimiento mutuo. Esa es la principal motivación para hacer este Trabajo Fin de Grado: Desarrollar una herramienta basada en ISO que de soporte a las operaciones específicas del ciclo de vida de los vocabularios usando un diccionario de datos para mejorar la eficiencia del intercambio de datos maestros. El proyecto que se va a desarrollar y que se llamará DaDI8K, dará soporte al mapeo de los términos del diccionario para que se conozca la correspondencia de un término con otros. Se desarrollarán por un lado DaDI8K Services, un conjunto de servicios web encargados de la gestión del diccionario de datos y por otro lado, DaDI8K Tool, una aplicación web que utilizará los servicios de DaDI8K Services para comunicarse con el diccionario de datos ofreciendo a usuarios una interfaz amigable y usable. Puede decirse también que este TFG profundiza en los aspectos específicos del diccionario y los mejora con aspectos funcionales que antes no existían. VII

8

9 Abstract Nowadays, data is one of the most important assets, both for people for an increasingly connected society- and also for organizations - because of their production processes feed data. In this project, among all data types used by organizations, we will focus on master data. Master data represents business objects that are shared by more than one transactional application. They are the most critical data for organizations and optimize their use will give great benefits. Within their own data management activities in organizations, this project addresses master data exchange between departments and with other organizations. This exchange should be doing following good standard practices. In each organization, master data usually is defined and implemented in different ways. Problem based on lack of semantic interoperability of data between organizations can arise. In order to remedy this situation, organizations participating in the master data exchange could use a third independent party to manage specific vocabularies describing the master data for a mapping. So, for the success of the exchange, the use of the mapping is paramount to raise a consensus for mutual understanding. That is the main motivation for this project: develop a tool based on ISO that support specific operations of vocabulary lifecycle management using a data dictionary to improve the efficiency of master data exchange. The project to be developed will be called DaDI8K, and it will support the mapping of the dictionary terms for a term correspondence with other known. The project will have two parts: DaDI8K Services that is a set of web services responsible for managing the data dictionary and a second one, DaDI8K Tool, is a web application that use DaDI8K Services to communicate with the data dictionary offering users a friendly and usable interface. It can be also said that DaDI8K will go deeper into the specifics dictionary aspects and improve functional aspects that were not exist. IX

10

11 A mi madre y a mi padre. Por creer siempre en mí y enseñarme tanto. A toda mi familia. Porque siempre me han apoyado para llegar hasta aquí. A Bibi. Por hacerme mejor cada día y ser mi compañero de vida. XI

12

13 Agradecimientos Me gustaría agradecerles especialmente a mis padres todo lo que han hecho por mí, porque siempre han confiado, me han apoyado, han creído en mí y siempre han estado para que nunca me bajase del tren. Nunca me han faltado, y siempre me han enseñado a vivir. Porque nunca les podré agradecer lo que han hecho de mí. A Ismael Caballero y Mario Piattini por darme la oportunidad de trabajar con ellos en este TFG y de permitirme que aprenda de ellos, con sus consejos e ideas. A Ismael por todo el camino que hemos recorrido estos últimos años juntos, por su apoyo, por su gran confianza en mí. Porque siempre hemos compartido una parte de nuestra visión de las cosas y por enseñarme tanto de la vida como del trabajo. A Manuel por confiar en mí y ayudarme en este camino, aconsejándome y enseñándome. A Mario por dejar que trabaje con él y por sus sabias enseñanzas. A todos los profesores porque siempre llevaré algo de ellos. A mis compañeros del Grupo Alarcos que siempre están dispuestos a ayudar y compartir. A CireBits por presentarse como una experiencia única llena de ilusión, trabajo y esfuerzo. A toda esa gente conocí gracias a este viaje y de los que tanto he aprendido. A Elena por ser mi compañera de andanzas en el mundo de las junior empresas. A Natalia, Tamara y Raquel porque formamos un buen equipo. A todas mis compañeras que he tenido en mis dos equipos, porque son un ejemplo de integración, de respeto y de compañerismo. Porque me han enseñado a jugar en equipo. A toda mi familia, que siempre me ha apoyado en mi camino, que me han aconsejado y que siempre han querido lo mejor para mí. A mis abuelos porque me han dado enseñanzas de vida, me han apoyado y han sido referentes para mí. Por último y especialmente a Bibi, porque cada día me hace ser mejor, porque siempre me recuerda quién soy, porque siempre está conmigo, porque empezamos juntos esta aventura y es la primera de las que vendrán. XIII

14

15 Índice General ÍNDICE GENERAL... XV ÍNDICE DE FIGURAS... XIX ÍNDICE DE TABLAS... XXI ÍNDICE DE LISTADOS... XXIII LISTA DE ABREVIATURAS... XXV 1. INTRODUCCIÓN CONTEXTO DEL PROYECTO ESTRUCTURA DEL DOCUMENTO OBJETIVOS DEL TFG DESCRIPCIÓN DEL ENTORNO ESTADO DE LA CUESTIÓN TIPOS DE DATOS GESTIÓN DE DATOS MAESTROS Arquitecturas en sistemas de Gestión de Datos Maestros comerciales ISO Y LA GESTIÓN DEL DICCIONARIO DE DATOS I8K ASPECTOS TECNOLÓGICOS Servicios Web MÉTODO DE TRABAJO SCRUM Artefactos Scrum Historias de Usuario Roles en la aplicación de Scrum APLICACIÓN DE SCRUM MARCO TECNOLÓGICO PARA EL DESARROLLO DEL PROYECTO Herramientas para la gestión de proyectos Herramientas para el modelado de software Herramientas y tecnologías para el desarrollo software Herramientas de virtualización XV

16 4.3.5 Herramientas y tecnologías para servidores Herramientas y tecnologías para bases de datos Herramientas y tecnologías para pruebas Herramientas para la elaboración de la documentación RESULTADOS SPRINT Planificación del Sprint Equipo Scrum Captura de requisitos Roles de la Aplicación Actores del Sistema Pila del Producto Arquitectura Planificación Inicial del Proyecto Revisión del Sprint Retrospectiva del Sprint SPRINT Planificación del Sprint Tareas del Sprint Revisión del Sprint Retrospectiva del Sprint SPRINT Planificación del Sprint Tareas del Sprint Revisión del Sprint Retrospectiva del Sprint SPRINT Planificación del Sprint Tareas del Sprint Revisión del Sprint Retrospectiva del Sprint SPRINT Planificación del Sprint Tareas del Sprint Revisión del Sprint Retrospectiva del Sprint SPRINT

17 5.6.1 Planificación del Sprint Tareas del Sprint Revisión del Sprint Retrospectiva del Sprint SPRINT Planificación del Sprint Tareas del Sprint Revisión del Sprint Retrospectiva del Sprint RESULTADOS Y ANÁLISIS DEL PROYECTO CONCLUSIONES Y PROPUESTAS ANÁLISIS DE CONSECUCIÓN DE LOS OBJETIVOS DEL PROYECTO CONCLUSIONES PROPUESTAS DE TRABAJOS FUTUROS OPINIÓN PERSONAL BIBLIOGRAFÍA ANEXO A ANEXO B ANEXO C ANEXO D ANEXO E ANEXO F ANEXO G ANEXO H ANEXO I ANEXO J XVII

18

19 Índice de Figuras FIGURA 1. ARQUITECTURA DADI8K... 6 FIGURA 2. TIPOS DE DATOS [16]... 8 FIGURA 3. ELEMENTOS DE UN PROGRAMA DE GESTIÓN DE DATOS MAESTROS FIGURA 4. VARIANTES DE ARQUITECTURAS EN SISTEMAS DE GESTIÓN DE DATOS MAESTROS FIGURA 5. ARQUITECTURA I8K FIGURA 6. INTERACCIÓN SERVICIOS WEB Y USUARIOS FIGURA 7. FUNCIONAMIENTO DE SCRUM FIGURA 8. ARQUITECTURA TECNOLÓGICA DE ESTE PROYECTO FIGURA 9. GRÁFICO BURN-UP DE LA REVISIÓN SPRINT FIGURA 10. PAQUETES DE DADI8K TOOL FIGURA 11. PAQUETES DE DADI8K TOOL EN SPRINT TOOL SUITE FIGURA 12. PAQUETES DE DADI8K SERVICES FIGURA 13. PAQUETES DE DADI8K SERVICES EN SPRINT TOOL SUITE FIGURA 14. MODELO DE DATOS DEL DICCIONARIO DE DATOS FIGURA 15. DIAGRAMA DE CLASES DE ANÁLISIS PARA INSERTAR VOCABULARIOS EN DADI8K SERVICES FIGURA 16. DIAGRAMA DE CLASES DE ANÁLISIS PARA INSERTAR VOCABULARIOS EN DADI8K TOOL FIGURA 17. DIAGRAMA DE CLASES DE ANÁLISIS PARA CONSULTAR VOCABULARIOS EN DADI8K SERVICES FIGURA 18. DIAGRAMA DE CLASES DE ANÁLISIS PARA CONSULTAR VOCABULARIOS EN DADI8K TOOL FIGURA 19. DIAGRAMA DE CLASES DE ANÁLISIS PARA ACTUALIZAR VOCABULARIOS EN DADI8K SERVICES FIGURA 20. DIAGRAMA DE CLASES DE ANÁLISIS PARA ACTUALIZAR VOCABULARIOS EN DADI8K TOOL FIGURA 21. DIAGRAMA DE CLASES DE ANÁLISIS PARA ELIMINAR VOCABULARIOS EN DADI8K SERVICES FIGURA 22. DIAGRAMA DE CLASES DE ANÁLISIS PARA ELIMINAR VOCABULARIOS EN DADI8K TOOL FIGURA 23. DIAGRAMA DE CLASES DE ANÁLISIS PARA LISTAR VOCABULARIOS EN DADI8K SERVICES FIGURA 24. DIAGRAMA DE CLASES DE ANÁLISIS PARA LISTAR VOCABULARIOS EN DADI8K TOOL FIGURA 25. GRÁFICO BURN-UP DE LA REVISIÓN DEL SPRINT FIGURA 26. DIAGRAMA DE CLASES DE ANÁLISIS PARA INSERTAR TÉRMINOS EN DADI8K SERVICES FIGURA 27. DIAGRAMA DE CLASES DE ANÁLISIS PARA INSERTAR TÉRMINOS EN DADI8K TOOL FIGURA 28. DIAGRAMA DE CLASES DE ANÁLISIS PARA CONSULTAR TÉRMINOS EN DADI8K SERVICES FIGURA 29. DIAGRAMA DE CLASES DE ANÁLISIS PARA CONSULTAR TÉRMINOS EN DADI8K TOOL FIGURA 30. DIAGRAMA DE CLASES DE ANÁLISIS PARA ACTUALIZAR TÉRMINOS EN DADI8K SERVICES FIGURA 31. DIAGRAMA DE CLASES DE ANÁLISIS PARA ACTUALIZAR TÉRMINOS EN DADI8K TOOL FIGURA 32. DIAGRAMA DE CLASES DE ANÁLISIS PARA ELIMINAR TÉRMINOS EN DADI8K SERVICES FIGURA 33. DIAGRAMA DE CLASES DE ANÁLISIS PARA ELIMINAR TÉRMINOS EN DADI8K TOOL FIGURA 34. DIAGRAMA DE CLASES DE ANÁLISIS PARA LISTAR TÉRMINOS EN DADI8K TOOL FIGURA 35. DIAGRAMA DE CLASES DE ANÁLISIS PARA LISTAR TÉRMINOS EN DADI8K TOOL XIX

20 FIGURA 36. GRÁFICO BURN-UP DE LA REVISIÓN DEL SPRINT FIGURA 37. MODELO DE DATOS PARA USUARIOS FIGURA 38. DIAGRAMA DE CLASES DE ANÁLISIS PARA INSERTAR USUARIOS FIGURA 39. DIAGRAMA DE CLASES DE ANÁLISIS PARA CONSULTAR USUARIOS FIGURA 40. DIAGRAMA DE CLASES DE ANÁLISIS PARA ACTUALIZAR USUARIOS FIGURA 41. DIAGRAMA DE CLASES DE ANÁLISIS PARA ELIMINAR USUARIOS FIGURA 42. DIAGRAMA DE CLASES DE ANÁLISIS PARA LISTAR USUARIOS FIGURA 43. GRÁFICO BURN-UP DE LA REVISIÓN DEL SPRINT FIGURA 44. ESTRUCTURA DEL DISEÑO DE DADI8K TOOL FIGURA 45. MODELO DE DATOS DEL DICCIONARIO DE DATOS I8K FIGURA 46. DIAGRAMA DE CLASES DE ANÁLISIS PARA INSERTAR MAPEOS FIGURA 47. DIAGRAMA DE CLASES DE ANÁLISIS PARA ACTUALIZAR MAPEOS FIGURA 48. DIAGRAMA DE CLASES DE ANÁLISIS PARA ELIMINAR MAPEOS FIGURA 49. DIAGRAMA DE CLASES DE ANÁLISIS PARA CONSULTAR MAPEOS FIGURA 50. GRÁFICO BURN-UP DE LA REVISIÓN DEL SPRINT FIGURA 51. DIAGRAMA DE CLASES DE ANÁLISIS PARA LISTAR DICCIONARIOS EN DADI8K SERVICES FIGURA 52. DIAGRAMA DE CLASES DE ANÁLISIS PARA LISTAR DICCIONARIOS EN DADI8K TOOL FIGURA 53. DIAGRAMA DE CLASES DE ANÁLISIS PARA ELEGIR DICCIONARIOS EN DADI8K SERVICES FIGURA 54. DIAGRAMA DE CLASES DE ANÁLISIS PARA ELEGIR DICCIONARIOS EN DADI8K TOOL FIGURA 55. GRÁFICO BURN-UP DE LA REVISIÓN DEL SPRINT FIGURA 56. GRÁFICO BURN-UP DE LA REVISIÓN DEL SPRINT FIGURA 57. ARQUITECTURA OBTENIDA AL APLICAR EL MÉTODO DE TRABAJO FIGURA 58. MODELO DE CAPAS E INTEGRACIÓN DE TECNOLOGÍAS FIGURA 59 RESULTADO DE LA GESTIÓN DEL TRABAJO EN DADI8K FIGURA 60. INTERFAZ DE USUARIO DE DADI8K TOOL (PÁGINA DE BÚSQUEDA) FIGURA 61.INTERFAZ DE USUARIO DADI8K TOOL (RESULTADOS DE BÚSQUEDA) FIGURA 62. INTEFAZ DE USUARIO DE DADI8K TOOL (MENÚ) FIGURA 63. INTERFAZ DE USUARIO DADI8K TOOL (FORMULARIO AÑADIR TÉRMINO) FIGURA 64. INTERFAZ DE USUARIO DADI8K TOOL (DETALLES DE TÉRMINO) FIGURA 65. DIRECTORIO WEBAPPS TOMCAT FIGURA 66. DIAGRAMA DE CLASES DADI8K SERVICES FIGURA 67. DIAGRAMA DE CLASES DADI8K TOOL

21 Índice de Tablas TABLA 1. OBJETIVOS DEL PROYECTO... 5 TABLA 2. RELACIÓN MÉTODOS HTTP Y OPERACIONES CRUD TABLA 3. SPRINTS TABLA 4. PLANIFICACIÓN DEL SPRINT TABLA 5. RELACIÓN USUARIOS E HISTORIAS DE USUARIO TABLA 6. HISTORIA DE USUARIO TABLA 7. HISTORIA DE USUARIO TABLA 8. HISTORIA DE USUARIO TABLA 9. HISTORIA DE USUARIO TABLA 10. HISTORIA DE USUARIO TABLA 11. PLAN DEL PROYECTO TABLA 12. REVISIÓN DEL SPRINT TABLA 13. AJUSTE DEL PLAN DEL PROYECTO TABLA 14. HISTORIA DE USUARIO DEL SPRINT TABLA 15. TAREAS DEL SPRINT TABLA 16. TRABAJO DEL SPRINT TABLA 17. HISTORIA DE USUARIO DEL SPRINT TABLA 18. TAREAS Y ESTIMACIÓN DEL ESFUERZO DEL SPRINT TABLA 19. TRABAJO DEL SPRINT TABLA 20. HISTORIA DE USUARIO DEL SPRINT TABLA 21. TAREAS Y ESTIMACIÓN DEL ESFUERZO DEL SPRINT TABLA 22. TRABAJO DEL SPRINT TABLA 23. HISTORIA DE USUARIO DEL SPRINT TABLA 24. TAREAS Y ESTIMACIÓN DEL ESFUERZO DEL SPRINT TABLA 25. TRABAJO DEL SPRINT TABLA 26. HISTORIA DE USUARIO DEL SPRINT TABLA 27. TAREAS Y ESTIMACIÓN DEL ESFUERZO DEL SPRINT TABLA 28. TRABAJO DEL SPRINT TABLA 29. TAREAS Y ESTIMACIÓN DEL ESFUERZO DEL SPRINT TABLA 30. TRABAJO DEL SPRINT TABLA 31. CONSECUCIÓN DE OBJETIVOS DEL PROYECTO XXI

22

23 Índice de Listados LISTADO 1. PROPIEDADES PARA LA CONFIGURACIÓN DE HIBERNATE LISTADO 2. CLASE JAVA DE CONFIGURACIÓN DE LA CONEXIÓN AL DICCIONARIO DE DATOS LISTADO 3. CLASE PRINCIPAL DE DADI8K SERVICES LISTADO 4. INTERFAZ DE PRIMITIVAS DE GESTIÓN DE VOCABULARIOS LISTADO 5. MÉTODO DEL CONTROLADOR PARA INSERTAR VOCABULARIOS LISTADO 6. SERVICIO DADI8K TOOL PARA INSERTAR VOCABULARIOS LISTADO 7. MÉTODO DEL CONTROLADOR DADI8K SERVICES PARA CONSULTAR VOCABULARIOS LISTADO 8. MÉTODO DEL CONTROLADOR DADI8K SERVICES PARA ACTUALIZAR UN VOCABULARIO LISTADO 9. MÉTODO DEL CONTROLADOR DADI8K SERVICES PARA ELIMINAR UN VOCABULARIO LISTADO 10. MÉTODO DEL CONTROLADOR DADI8K SERVICES PARA LISTAR VOCABULARIOS LISTADO 11. INTERFAZ DE PRIMITIVAS DE GESTIÓN DE TÉRMINOS LISTADO 12. MÉTODO DEL CONTROLADOR DADI8K SERVICES PARA INSERTAR TÉRMINOS LISTADO 13. MÉTODO DEL CONTROLADOR DADI8K SERVICES PARA CONSULTAR TÉRMINOS LISTADO 14. MÉTODO DEL CONTROLADOR DADI8K SERVICES PARA ACTUALIZAR TÉRMINOS LISTADO 15. MÉTODO DEL CONTROLADOR DADI8K SERVICES PARA ELIMINAR TÉRMINOS LISTADO 16. MÉTODO DEL CONTROLADOR DADI8K SERVICES PARA LISTAR VOCABULARIOS LISTADO 17. INTERFAZ DE PRIMITIVAS DE GESTIÓN DE USUARIOS LISTADO 18. CLASE DE CONFIGURACIÓN SPRING SECURITY LISTADO 19. MÉTODO DEL CONTROLADOR PARA INSERTAR USUARIOS LISTADO 20. MÉTODO DEL CONTROLADOR PARA CONSULTAR USUARIOS LISTADO 21. CONSULTA DE USUARIOS LISTADO 22. MÉTODO DEL CONTROLADOR PARA ACTUALIZAR USUARIOS LISTADO 23. MÉTODO DEL CONTROLADOR PARA ELIMINAR USUARIOS LISTADO 24. MÉTODO DEL CONTROLADOR PARA LISTAR USUARIOS LISTADO 25. DEFINICIONES APACHE TILES LISTADO 26. MÉTODO CONTROLADOR INSERTAR MAPEO LISTADO 27. MÉTODO CONTROLADOR INSERTAR MAPEO LISTADO 28. MÉTODO CONTROLADOR ELIMINAR MAPEO LISTADO 29. MÉTODO CONTROLADOR CONSULTAR MAPEO LISTADO 30. SCRIPT BASE DE DATOS LISTADO 31. LAYOUT TILES LISTADO 32. DEFINICIONES TILES LISTADO 33. CLASE DE INICIALIZACIÓN DADI8K SERVICES LISTADO 34. CLASE DE CONFIGURACIÓN DE DADI8K SERVICES LISTADO 35. CLASE DE CONFIGURACIÓN DE LA PERSISTENCIA DADI8K SERVICES XXIII

24 LISTADO 36. CLASE DE INICIALIZACIÓN DE DADI8K TOOL LISTADO 37. CLASE DE CONFIGURACIÓN DE DADI8K TOOL LISTADO 38. CLASE DE CONFIGURACIÓN DE SEGURIDAD DE DADI8K TOOL

25 Lista de Abreviaturas Abreviatura MDM DaDI8K Tool DaDI8K Services TFG API REST P2P SOA Significado Master Data Management (Gestión de Datos Maestros) Aplicación para la Gestión del Diccionario de Datos Servicios Web para la Gestión del Diccionario de Datos Trabajo Fin de Grado Application Programming Interface (Interfaz de Programación de Aplicaciones) Representational State Transfer (Transferencia de Estado Representacional) Peer-To-Peer (Punto a Punto) Service Oriented Architecture (Arquitectura Orientada a Servicios) XXV

26

27 Capítulo 1 Introducción 1. INTRODUCCIÓN Uno de los activos más importantes hoy en día son los datos, tanto para las personas en una sociedad cada día más conectada [1] como para las organizaciones, ya que sus procesos productivos se basan en los datos [2]. Desde un punto de vista operativo puede considerarse que existen varios tipos de datos: datos transaccionales, datos de referencia, metadatos y datos maestros [3]. Los datos maestros representan objetos del negocio que se comparten por más de una aplicación transaccional [4]. Ejemplo de datos maestros pueden ser clientes, empleados, empresas, etc. Los datos transaccionales representan operaciones de negocio, como ventas, compras, etc. Los datos de referencia son aquellos comúnmente aceptados que difícilmente cambian, como el nombre de las provincias, o el de los códigos de los países (recogido en el estándar internacional ISO 3166 [5], Los metadatos son datos que describen y definen otros datos [6]. Los datos maestros son los más críticos para las organizaciones porque el valor de una organización está en los datos maestros y optimizar su uso dará grandes beneficios a las organizaciones [7]. En este Trabajo Fin de Grado (TFG) nos centraremos en este último tipo de datos, los datos maestros. Dentro de las actividades propias de gestión de datos en las organizaciones este TFG aborda intercambio de datos maestros entre departamentos de una organización y entre otras organizaciones. Deseablemente, dicho intercambio debería realizarse siguiendo unas buenas prácticas estandarizadas, como se propone en IS partes 100 a 140 [8]. Para esto se utilizan mensajes de datos maestros. Pero dado que en cada organización los datos maestros suelen estar definidos de distinta forma, puede surgir el problema de la interoperabilidad semántica de los datos al realizar el intercambio de mensajes de datos maestros entre organizaciones. Por ejemplo, si una organización aeroportuaria A1 desea intercambiar datos de vuelos con otra A2, puede ocurrir que el dato correspondiente a origen de un vuelo en A1 se represente como origen y en A2 como from_location. En estas circunstancias, será muy difícil que las aplicaciones de las organizaciones 1

28 2 entiendan el significado de los datos y acabarán no entendiendo los mensajes de datos maestros que reciben o envían. Esto aún sin considerar la posibilidad de la diferencia de implementación en ambas organizaciones: por ejemplo que A1 lo represente como nvarchar2(30) y en A2 se represente como varchar(50). Para paliar esta situación ambas organizaciones podrían recurrir a un tercero que gestione los vocabularios específicos de las organizaciones y un mapeo entre ellos, de modo que se haga posible el entendimiento mutuo. Para ello, se podría utilizar una herramienta adecuada usando un diccionario de datos para hacer posible a través de ésta, que se hagan entender los mensajes de datos maestros. Además, a fin de fomentar la usabilidad y facilitar la interoperabilidad, sería conveniente que esta herramienta estuviera basado en estándares internacionales, como ISO [9] que recoge la sintaxis, codificación semántica y conformidad con la especificación de datos en el intercambio de datos maestros. Las herramientas que aparecen en el informe Gartner 2014 sobre herramientas de datos maestros [10] no cubren la necesidad que se expone, por lo que se puede afirmar que actualmente no existen herramientas que abarquen todo lo explicado anteriormente. Esa es la principal motivación para hacer este Trabajo Fin de Grado: Desarrollar una herramienta basada en ISO que de soporte a las operaciones específicas del ciclo de vida de los vocabularios usando un diccionario de datos para mejorar la eficiencia del intercambio de datos maestros. El proyecto que se va a desarrollar y que se llamará DaDI8K, además de abarcar las actividades de gestión de datos maestros, debería dar soporte al mapeo de los términos del diccionario para que se conozca la correspondencia de un término con otros. Para ello se van a crear un conjunto de servicios web que proporcionen acceso al diccionario de datos los llamaremos DADI8K Services - para incrementar la interoperabilidad con otras aplicaciones y se va a crear una herramienta DADI8K Tool - con una interfaz de usuario amigable teniendo en cuenta los principios correspondientes de usabilidad que permita gestionar el diccionario de datos. Para desarrollar este TFG se utilizará como punto de partida el trabajo I8K [11] - que es una implementación de ISO , desarrollada por Bermejo et al (2013) [12] y se extenderá con las nuevas funcionalidades propuestas.

29 3 3. INTRODUCCIÓN En este sentido puede decirse que este TFG profundiza en los aspectos específicos del diccionario y los mejora con aspectos funcionales que antes no existían. 1.1 Contexto del proyecto Este TFG se encuentra enmarcado dentro del proyecto IMPACTUM (Ref COB- 5362). Este proyecto está cofinanciado por la Junta de Comunidades de Castilla La Mancha y por el Fondo Europeo de Desarrollo Regional (FEDER). 1.2 Estructura del Documento Este documento se compone de 6 capítulos y 10 anexos. En este primer capítulo se describe cuál es el problema que aborda este TFG y se propone una solución. Además se expone el contexto del proyecto y se detalla la estructura del documento. En el Capítulo 2 se expone el objetivo principal del proyecto y los objetivos parciales en los que se divide. Además se describe el entorno del proyecto que se desea conseguir. En el Capítulo 3 se expone el estado actual de la cuestión. Se destacan todos fundamentos teóricos que han servido como base para el desarrollo de este TFG. En primer lugar se habla de los tipos de datos de forma introductoria para explicar el concepto de Datos Maestros. Otro de los pilares importantes de este proyecto es la gestión de datos maestros. Por último se habla de aspectos tecnológicos utilizados para este TFG. En el Capítulo 4 se presenta y se justifica la elección de la metodología utilizada para el desarrollo del TFG. También se describe la aplicación concreta de esa metodología para la obtención de los objetivos del proyecto. Además se describe el marco tecnológico de trabajo. En el Capítulo 5 se muestran los resultados obtenidos al aplicar la metodología de trabajo. En el Capítulo 6 se analiza la consecución de los objetivos marcados en el Capítulo 2. Se exponen las conclusiones al terminar el TFG, se realizan propuestas para trabajos futuros y por último se incluye la opinión personal de la autora. A continuación, se muestra la Bibliografía consultada para este TFG. Por último, se presentan Anexos a los que se hace referencia en este documento, aportan valor al proyecto, contienen información relevante del desarrollo y no se incluyen en los diferentes capítulos para no hacer difícil su lectura. 3

30 4 Los anexos son: Anexo A. Manual de Usuario de DADI8K Tool. Anexo B. Manual de Instalación. Anexo C. Listado de Servicios Web consumibles de DaDI8K Services. Anexo D. Script de creación de la Base de Datos. Anexo E. Diagrama de Clases de DaDI8K Services. Anexo F. Diagrama de Clases de DaDI8K Tool. Anexo G. Layout Tiles. Anexo H. Definiciones Tiles. Anexo I. Clases de Configuración DaDI8K Services. Anexo J. Clases de Configuración DaDI8K Tool.

31 Capítulo 2 Objetivos del TFG 2. OBJETIVOS DEL TFG Como se comentó anteriormente, el objetivo principal de este TFG es el desarrollo de una herramienta basada en ISO [9] que de soporte a las operaciones específicas del ciclo de vida de los vocabularios usando el diccionario de datos de I8K [11]. Para alcanzar este objetivo principal, se abordarán los siguientes objetivos parciales en la Tabla 1: Objetivos Parciales Identificación de las primitivas necesarias para la gestión de vocabularios en cada una de las 1 etapas del ciclo de vida. Implementación mediante servicios web de las primitivas necesarias para la gestión de 2 vocabularios en cada una de las etapas del ciclo de vida. 3 Adaptación del formato actual del diccionario de datos para dar mejor soporte a las primitivas. 4 Creación de un mapeo para relacionar términos del diccionario de datos. 5 Servitización del acceso al diccionario de datos para su interoperabilidad. Desarrollo de una interfaz de usuario amigable para la herramienta DaDI8K Tool guiada por 6 los principios correspondientes de usabilidad. Tabla 1. Objetivos del Proyecto 2.1 Descripción del Entorno Por una parte se tendrá la interfaz de servicios web para la gestión del diccionario de datos DaDI8K Services y por otra la herramienta DaDi8K Tool, que será la que consumirá estos servicios web y que estará disponible para que sea utilizada por las organizaciones. La arquitectura del proyecto se describe en la siguiente Figura 1. 5

32 6 Figura 1. Arquitectura DaDI8K La separación entre DaDI8K Services y DaDI8K Tool se hace para que sean independientes entre sí, ya que de esta forma, los DaDI8K Services estarán disponible para cualquier herramienta o cualquier software que desee consumirlos independientemente de la tecnología que se utilice. Los DaDI8K Services proporcionan el soporte para toda la gestión del diccionario de datos. Así, a través de estos servicios las aplicaciones pueden utilizar el diccionario de datos, siendo transparente a cualquier tecnología y cualquier sistema. Por tanto, los DaDI8K Services actúan como interfaz de servicios del diccionario de datos para cualquier sistema que desee comunicarse con él. Por otro lado queda DaDI8K Tool, es una aplicación web que sirve para recibir y enviar información al diccionario de datos a través de DaDI8K Services, proporcionando una interfaz gráfica amigable a los usuarios. De esta forma, DaDI8K Tool es una herramienta que utiliza la interfaz ofrecida por DaDI8K Services.

33 Capítulo 3 Estado de la Cuestión 3. ESTADO DE LA CUESTIÓN En este capítulo se describen los conocimientos necesarios para fijar las bases en las que se ha basado el desarrollo de este TFG. En esta base se encuentran los conceptos como el intercambio de datos entre organizaciones, la gestión de datos maestros, el conocimiento de ISO 8000 parte 110, las herramientas existentes y por último las tecnologías utilizadas para el desarrollo del proyecto.tipos de datos Existen varios tipos de datos según un punto de vista operativo: datos transaccionales, datos de referencia, metadatos y datos maestros [3]. A continuación se describen estos 3 tipos: Los datos transaccionales se refieren a las transacciones de la organización e incluye datos que son capturados, por ejemplo, cuando se produce una venta o una compra [7]. Los datos transaccionales son el tiempo, el lugar, el precio, métodos de pago, etc. [13]. Los datos de referencia son aquellos comúnmente aceptados que difícilmente cambian, como el nombre de las provincias, o el de los códigos de los países (recogido en el estándar internacional ISO 3166) [5]. Los metadatos son datos que describen y definen otros datos [6]. También pueden definirse como datos descriptivos sobre otros recursos. Por ejemplo, un sistema de metadatos puede ser un catálogo de biblioteca que contiene un conjunto de registros de metadatos con elementos que describen un libro u otro tipo de publicación. Los datos maestros representan objetos del negocio que se comparten por más de una aplicación transaccional [4], y describen objetos clave del negocio [14]. El estándar ISO los define como los datos de una organización que describen las entidades que son críticas e independientes y que se necesitan referenciar para las transacciones de la organización [6]. Son entidades, 7

34 8 relaciones y atributos críticos para las organizaciones y para los procesos clave de negocio y sistemas de aplicación [15]. Ejemplo de datos maestros pueden ser clientes, empleados, compañías, etc. En la siguiente Figura 2 se muestra la relación entre los diferentes tipos de datos según esta clasificación [16]: Datos Diccionario Metadatos Datos Transaccionales Datos Maestros Figura 2. Tipos de Datos [16] Datos Referencia Por otro lado, en [17] y [13] exponen que hay 6 tipos de datos en las organizaciones: No estructurados. Este tipo de datos son los que se encuentran en correos electrónicos, documentos técnicos como artículos en revistas, portales corporativos, especificaciones de productos, material de marketing o archivos PDF. Transaccionales. Este tipo de datos son los que están relacionados con las ventas, entregas, facturas, tickets de incidencias, reclamaciones y otras interacciones. Metadatos. Como se explica anteriormente, estos datos describen otros datos y pueden estar almacenados en un repositorio o en otras formas como documentos XML, definiciones de informes, descripciones de columna en una base de datos, archivos de registro, etc. Jerárquicos. Los datos jerárquicos guardan relaciones entre otros datos. Pueden almacenarse como parte de un sistema o separado como descripciones de relaciones del mundo real. A veces se consideran como un gran dominio MDM porque son críticos para entender algunas relaciones entre los datos maestros.

35 9 3. ESTADO DE LA CUESTIÓN Analíticos. Este tipo de datos se utiliza para cálculos de rendimiento de la organización y para la ayuda en la toma de decisiones. Suelen estar en almacenes de datos (data warehouses) con diferentes capacidades para su posterior agregación y análisis. Datos Maestros. Aunque este tipo de datos, descrito también anteriormente, no son transaccionales, se utilizan dentro de las transacciones a través de las diferentes aplicaciones de las organizaciones. Este proyecto se centra en este último tipo de datos, los datos maestros, por eso se profundiza más en ellos. En [18] se consideran 4 dimensiones para describir cómo los datos maestros difieren de los otros tipos de datos [19]: Los datos maestros, a diferencia de los datos transaccionales, captan las características de los objetos del mundo real. Las partes del objeto de datos maestros permanecen estáticos a través de su vida. Dicho esto, los atributos adicionales podrían ser añadidos en caso de que sea necesario, pero esto no afectará a los datos de base existentes. Las instancias de un registro de datos maestros (por ejemplo, datos de un cliente en particular) a diferencia de los datos transaccionales, permanecerán constantes con respecto a su volumen. Los datos maestros pueden existir por sí mismos, sin la presencia de datos transaccionales, porque constituyen la referencia a los datos transaccionales. En esencia, utilizar los datos maestros es ayudar a la organización a compartir estos datos en todas las unidades de la organización. Por otra parte, los datos maestros se asocian con la simplificación y uniformidad de los procesos [20]. En los datos maestros se pueden diferenciar tres conceptos importantes [21] : Clase de Datos Maestros Atributos de Datos Maestros Objeto de Datos Maestros Los objetos de Datos Maestros son usados dentro de las transacciones de las organizaciones, pero los conjuntos de objetos subyacentes tienden a ser estáticos en comparación con los sistemas de transacción y no cambian con tanta frecuencia. Un 9

36 10 objeto de datos maestros representa una instancia de una clase de datos maestros. Un atributo de datos maestros representa las características que pueden especificarse de un objeto de datos maestros [21]. Para clarificar estos tres conceptos, un objeto concreto de datos maestros sería un cliente de una empresa en concreto, determinada en un momento en el tiempo determinado. Las características de nombre y apellido pueden especificarse por medio de atributos maestros [22]. 3.2 Gestión de Datos Maestros La Gestión de Datos Maestros (Master Data Management) es una colección de buenas prácticas de gestión de datos que orquestan los principales interesados, participantes y clientes de negocio en la incorporación de las aplicaciones de negocio, la información, métodos de gestión y herramientas de gestión de datos para implementar las políticas, procedimientos, servicios e infraestructuras para la captura, integración y uso compartido posterior de Datos Maestros precisos, oportunos, consistentes y completos [15]. Gartner define la gestión de datos maestros como una disciplina tecnológica en la que el negocio y las tecnologías de la información trabajan juntos para asegurar la uniformidad, precisión, administración, coherencia semántica y responsabilidad de los activos de datos maestros compartidos oficiales de la empresa [23]. El estudio de IBM Institute for Business Value [24] exponía que una de las actividades que mejor permiten la traducción de datos en información significativa y útil es la Gestión de Datos Maestros [25].

37 3. ESTADO DE LA CUESTIÓN 11 Figura 3. Elementos de un programa de Gestión de Datos Maestros La Gestión de Datos Maestros incorpora aplicaciones de negocio, métodos de gestión de información y herramientas de gestión de datos para implementar políticas, procedimientos e infraestructuras que dan soporte a la captura, integración y uso compartido de los datos maestros precisos, oportunos, coherentes y completos. Un programa de Gestión de Datos Maestros se destina a apoyar las necesidades de negocio de una organización ofreciendo acceso a vistas consistentes de las entidades de datos maestros identificables de forma única en la infraestructura operacional de la aplicación. Las intenciones de estos programas son [15]: Creación de un único repositorio de datos maestros de alta calidad. Alimentación de aplicaciones a través de la organización con una visión sincronizada y consistente de los datos de la empresa. Los aspectos más críticos de una buena solución MDM requiere una alta calidad de la integración de las instancias de datos maestros en la empresa. La Gestión de Datos Maestros en las organizaciones puede justificarse por cualquiera de los siguientes beneficios [15]: Amplio conocimiento del cliente Mejora del servicio al cliente Presentación de informes consistente Mejora de la competitividad, la gestión de riesgos, la eficiencia operativa, reducción de costes, productividad del negocio y la toma de decisiones 11

38 12 Mejor análisis de gastos y planificación Cumplimiento de las normativas Mejora de la calidad de la información Resultados más rápidos Desarrollo de aplicaciones simplificado Arquitecturas en sistemas de Gestión de Datos Maestros comerciales Una buena arquitectura proporciona una guía general para el desarrollo de una buena solución. Un buen principio de arquitectura es que el avance de la tecnología no deje la arquitectura obsoleta y además que proporcione razones objetivas que la hagan necesaria en lugar de tener que buscar una nueva alternativa, es decir, ante el avance de la tecnología que la arquitectura no tenga por qué cambiar. Hay cuatro variantes arquitecturales que usualmente se ven implementados comercialmente en los sistemas de Gestión de Datos Maestros [26] y se describen a continuación. La primera variante es una arquitectura centralizada. En esta variante todos los datos maestros de una o más clases se almacenan en un sistema. Este sistema proporciona procesos para realizar cambios en los datos y monitorizarlos. La segunda variante frecuentemente se encuentra en un sistema central. Aquí los datos no están integrados en una base de datos independiente de un sistema MDM, pero sí en uno de los sistemas integrados, el sistema central al que el resto de aplicaciones están conectadas. Otra de las variantes ofrece una forma ligera para integrar datos maestros mediante el uso de un directorio. En este caso, se almacenan las referencias de directorio a ciertos objetos de datos maestros. Los objetos permanecen distribuidos en varios sistemas. Este enfoque es el único que ofrece una integración puramente virtual. La última variante es un sistema P2P (Peer-to-Peer), basado en un enfoque punto a punto. Aquí el sistema de información está compuesto por diferentes puntos. Los puntos trabajan en una estructura en red en el que todos los participantes son iguales. Esta colaboración punto a punto [27] refleja la estructura organizativa de las organizaciones autónomas que

39 13 3. ESTADO DE LA CUESTIÓN directa y equitativamente comparten información y son responsables de la integración con sus respectivos vecinos. En la siguiente Figura 4 se describen gráficamente las 4 variantes expuestas [26]: Figura 4. Variantes de arquitecturas en sistemas de Gestión de Datos Maestros. 3.3 ISO y la gestión del diccionario de datos. ISO establece la codificación de los Mensajes de Datos Maestros. Se indican la codificación semántica, los aspectos sintácticos y los requisitos para que puedan ser intercambiados entre organizaciones y aplicaciones. Establece también que los Datos Maestros pueden ser representados en forma pareja (propiedad, valor) y deben ser accesibles en formato en formato electrónico [9]. La codificación semántica establece que los términos en lenguaje natural de un Mensaje de Datos Maestros deben estar sustituidos por referencias a entradas del diccionario de datos. Cada referencia debe ser un identificador del término. La sintaxis formal expresa que los Mensajes de Datos Maestros tienen que contener en su cabecera una referencia a ella. 13

40 14 Los requisitos que debe cumplir un Mensaje de Datos Maestros son los siguientes: No debe ser ambiguo y debe contener información necesaria para que el remitente determine correctamente el significado. Debe cumplir una sintaxis formal. Debe especificarse usando un lenguaje interpretable. Debe ser verificable la exactitud del mensaje de acuerdo a la sintaxis formal. Deben estar codificados semánticamente. Dentro de un Mensaje de Datos Maestros, las referencias para las entradas del diccionario de datos deben estar en forma de identificadores no ambiguos que sigan un esquema reconocido internacionalmente I8K I8K [11] es una implementación de ISO 8000 partes 100 a 140 [8]. Tiene una arquitectura orientada a servicios, por ello sus componentes corresponden a las diferentes partes del estándar y están disponibles como servicios web. Junto a I8K se desarrolló una API llamada ICS API para facilitar a las aplicaciones de las organizaciones la utilización de I8K. Los componentes de I8K se describen a continuación. La arquitectura de servicio I8K ha sido diseñada para contener los elementos necesarios para cumplimentar los requisitos de varias partes del estándar ISO x0 y además debe ser capaz de crear mensajes de datos maestros de acuerdo al modelo de datos del diccionario de datos y añadir información sobre el nivel de calidad de los datos maestros contenidos en los mensajes. En la Figura 5 está representada la arquitectura I8K [11].

41 3. ESTADO DE LA CUESTIÓN 15 Figura 5. Arquitectura I8K. Los componentes de la arquitectura son los siguientes: I8KManager sirve como fachada para I8K. Es el responsable de recibir y procesar peticiones que las aplicaciones hacen a I8K. Estas peticiones incluyen codificar, decodificar y/o certificar el nivel de la calidad de los datos. I8K.Cert110 es el responsable de gestionar y mantener la parte que especifica ISO del diccionario de datos. Los datos maestros serán codificados y decodificados de acuerdo a los términos que representa el conocimiento organizacional. Cada dominio tiene su propio conjunto de términos representando el dato maestro específico que corresponde. I8K110 es el responsable de codificar y decodificar los mensajes de datos maestros de acuerdo con lo que especifica el estándar en la parte 110 del estándar. I8K.Cert130 es el responsable de añadir la información sobre la certificación del nivel de precisión de os datos contenidos en el mensaje, de acuerdo a los requisitos de la parte 130 del estándar. La información del nivel de precisión se obtiene de la evaluación que realiza el módulo I8K.Ev130. I8K.Cer140 es el responsable de añadir la información sobre la certificación del nivel de completitud de os datos contenidos en el mensaje, de acuerdo a los requisitos de la parte 140 del estándar. La información del nivel de completitud se obtiene de la evaluación que realiza el módulo I8K.Ev140. I8K.Ev130 es el responsable de llevar a cabo la evaluación del nivel de precisión de los datos maestros contenidos en el mensaje de datos maestros. 15

42 16 I8K.Ev140 es el responsable de llevar a cabo la evaluación del nivel de completitud de los datos maestros contenidos en el mensaje de datos maestros. 3.4 Aspectos Tecnológicos Servicios Web Un servicio web es un sistema software diseñado para soportar interoperabilidad en la interacción máquina-a-máquina en red. Suelen ser APIs web que pueden ser accedidas dentro de una red (normalmente internet) y son ejecutados en el sistema que los aloja. También se puede decir que un servicio web es una noción abstracta que debe ser implementada por un agente concreto. El agente es una pieza concreta de software o hardware que envía y recibe mensajes, mientras el servicio es el recurso caracterizado por el conjunto abstracto de funcionalidad que se ofrece. A pesar de que el agente puede cambiar, el servicio web tiene la misma funcionalidad [28]. En la Figura 6 se puede observar la interacción entre usuarios y servicios web. Figura 6. Interacción Servicios Web y Usuarios La definición de servicios web alberga muchos tipos de sistemas, aunque comúnmente se refieren a clientes y servidores que se comunican mediante mensajes. En los últimos años ha surgido un nuevo estilo de arquitectura conocido como REST (Representational State

43 17 3. ESTADO DE LA CUESTIÓN Transfer). Esto ha supuesto una nueva opción de uso de los servicios web. A continuación se listan los tres estilos de usos más comunes [29]: Remote Procedure Calls (RPC, Llamadas a Procedimientos Remotos). Presentan una interfaz de llamada a procedimientos y funciones distribuidas. Normalmente, la unidad básica de este tipo de servicios es la operación WSDL (un descriptor del servicio web). Las primeras herramientas para servicios web estaban centradas en esta visión. Arquitectura Orientada a Servicios (Service-oriented Architecture, SOA). Los servicios web pueden también ser implementados siguiendo los conceptos de la arquitectura SOA, donde la unidad de comunicación básica es el mensaje más que la operación. REST (Representation State Transfer). El término fue introducido en la tesis doctoral de Roy Fielding en 2000, uno de los principales autores de la especificación HTTP. Este hecho es importante, ya que estos servicios intentan emular al protocolo HTTP o similares mediante la restricción de establecer la interfaz a un conjunto conocido de operaciones estándar. Este tipo está más centrado en la interacción con recursos del estado más que con mensajes y operaciones. Éste último estilo de arquitectura es el que se aplica en este TFG. Tiene un concepto central de la web que es un espacio de URIs unificado. Las URIs identifican recursos, los cuales son objetos conceptuales. La representación de tales objetos se distribuye por medio de mensajes a través de la web. Esta característica ha sido fundamental durante este proyecto, ya que hacía sencillo el acceso a los recursos del diccionario de datos [29]. Otra de las características que se han utilizado en este proyecto son los métodos HTTP. Los métodos más importantes son PUT, GET, POST y DELETE. Suelen ser comparados con las operaciones asociadas a la tecnología de bases de datos, operaciones CRUD: CREATE, READ, UPDATE y DELETE. En la Tabla 2 puede verse la relación entre ellos [29]. 17

44 18 Acción HTTP SQL Create PUT Insert Read GET Select Update POST Update Delete DELETE Delete Tabla 2. Relación métodos HTTP y operaciones CRUD.

45 Capítulo 4 Método de Trabajo 4. MÉTODO DE TRABAJO En este capítulo se describirá el método de trabajo para el desarrollo del TFG. La metodología que se aplica en este proyecto es Scrum. Es una metodología ágil de gestión de proyectos basada en un modelo iterativo e incremental. La metodología de trabajo ha sido escogida por su flexibilidad, por su adaptabilidad y por ser una metodología iterativa e incremental ya que al final de cada sprint se puede obtener un resultado visible y determinar si se necesitan cambios o si se obtiene se parece a lo establecido en el plan de trabajo. Además, la filosofía de Scrum es que el equipo de trabajo es auto-organizado, lo que permite más libertad al equipo de desarrollo en cuanto a la gestión en el desarrollo. 4.1 Scrum Un proyecto ágil [30] aplicado al desarrollo del software, se puede definir como una forma de enfocar el desarrollo mediante un ciclo iterativo e incremental, con equipos auto-organizados y que trabajan de forma colaborativa [31]. Como antes se describe, Scrum es una metodología ágil de gestión de proyectos que proporciona un marco de trabajo y permite plantear el desarrollo de sistemas como una colección de incrementos [32]. Cada uno de estos incrementos corresponde a cada una de las fases del proyecto llamadas sprints. Su objetivo es adaptarse a los cambios y necesidades de los clientes y obtener resultados rápidos. Para controlar la evolución del proyecto, Scrum sigue las siguientes prácticas de gestión ágil: Revisión de las Iteraciones. Al final de cada Sprint se reúnen todos los implicados en el proyecto para realizar una revisión de todo lo que se ha llevado a cabo en el sprint. Desarrollo incremental. Después de cada iteración se obtiene una parte del producto que ya está disponible, que se puede inspeccionar y evaluar. Desarrollo evolutivo. Las técnicas de trabajo se adaptan para la evolución del proyecto. 19

46 20 Auto-organización. Los equipos se auto-organizan y pueden tomar sus propias decisiones. Colaboración. La colaboración en equipo es un pilar importante. Un entorno de trabajo ágil facilita la colaboración en equipo. Es importante para que la autoorganización funcione. Además esto contribuye a un control eficaz para que cada miembro del equipo colabore de forma abierta según sus capacidades y no según su rol o su puesto Artefactos Scrum Sprint Como hemos señalado, a cada iteración del proyecto se le denomina sprint y normalmente tienen una duración de entre 1 a 4 semanas. Como resultado de cada sprint se obtiene un prototipo operativo del producto software. En cada sprint se pueden identificar/destacar varios tipos de reuniones: planificación de sprint, reunión diaria y revisión de sprint. Planificación del sprint. Al principio de cada sprint se realiza una reunión para establecer las tareas en función de la pila del sprint. En esta reunión participan el propietario del producto, Scrum Master y el equipo de desarrollo. Reuniones diarias. Estas reuniones se realizan todos los días y no duran más de 15 minutos en la que cada miembro habla sobre los avances y novedades de su trabajo, que se va a llevar a cabo en ese mismo día y si hay problemas o alguien necesita ayuda. En esta reunión participan el Scrum Master y el equipo de desarrollo. Revisión del sprint. Al final de cada sprint se realiza esta reunión con el propósito de revisar los resultados del sprint. Suele durar alrededor de 2 horas y participan en ella el Scrum Master, el propietario del producto y el equipo de desarrollo. Retrospectiva del sprint. Se realiza también al final del sprint. El propietario del producto revisa los objetivos marcados con la pila del producto y el equipo de desarrollo junto con el Scrum Master marcan los aspectos positivos y negativos del sprint.

47 21 4. METODO DE TRABAJO Historias de Usuario Las historias de usuario se utilizan para la especificación de requisitos, son una forma rápida de administrar los requisitos de los usuarios. Son independientes unas de otras y se negocian entre las diferentes partes Pila del Producto Listado de todas las historias de usuario que se incorporarán al producto software en cada aplicación de Scrum y como resultado de la implementación de todas las historias de usuario se obtendrá el producto final Pila del Sprint Selección de las historias de usuario de la pila del producto que se desarrollarán en un Sprint y darán como resultado el incremento correspondiente a ese sprint. En la Figura 7 se puede ver una representación gráfica una descripción del funcionamiento de Scrum [33]. Figura 7. Funcionamiento de Scrum Roles en la aplicación de Scrum En Scrum hay 4 roles diferenciados, cada uno tiene diferentes responsabilidades e intereses, que se describen a continuación Scrum Manager Ayuda a todo el equipo a seguir a la metodología Scrum y es el responsable de que se use adecuadamente en el proyecto. Tiene 3 principales responsabilidades: Ayudar al equipo Hacer que el equipo avance Ayudar a todos a comprender Scrum 21

48 Propietario del producto El propietario del producto tiene la visión del producto y trabaja en estrecha colaboración con las partes interesadas como los usuarios finales y clientes. Facilitan la comunicación entre el equipo y los grupos de interés y asegurarse de que el equipo está construyendo el producto correcto y que se ajusta a las necesidades. Las principales responsabilidades son: Decidir lo que se incluye o no en la pila del producto. Mantener la pila del producto, ordena y prioriza Trabajar con el equipo y el resto de interesados para mejorar continuamente la calidad y el entendimiento de todas las historias de usuario. Financiar el producto. Lanzamiento del producto Equipo de desarrollo El equipo de desarrollo se encarga de implementar cada incremento del producto software. Los miembros del equipo planifican el sprint, y se auto-organizan para hacer el trabajo y decidir entre ellos quién lleva a cabo cada tarea para producir el nuevo incremento del producto. La responsabilidad más importante de este rol es: Desarrollo del producto Stakeholders Son los interesados en el proyecto, asesoran y observan a lo largo de todo el proceso. De alguna forma están involucrados en el proyecto como pueden ser clientes, usuarios, etc. Responsabilidades: Retro-información. Asesoría y sugerencias en el proyecto. Colaboración. 4.2 Aplicación de Scrum Uno de los aspectos más atractivos de aplicar Scrum a un proyecto es que no hay que esperar a la finalización del proyecto para obtener resultados. Tras cada Sprint se obtiene una nueva versión del producto, que puede ir modelándose mejor y pueden corregirse errores en etapas tempranas. Esto también da lugar a un alineamiento entre el cliente y el equipo, los resultados y esfuerzos del proyecto se miden en forma de objetivos y

49 23 4. METODO DE TRABAJO requisitos entregados, además todos los participantes conocen bien los objetivos y el producto se enriquece con las aportaciones de todos, con diferentes puntos de vista. Todas estas ventajas que ofrece Scrum se adaptan muy bien para este proyecto porque los objetivos están muy bien definidos. Además es muy susceptible de poder descomponerse en funcionalidades que pueden ir implementándose en los diferentes sprints quedando disponibles antes de la finalización del proyecto y pudiendo presentarlas ante el propietario del producto. Otro de los motivos por los que se ha escogido esta metodología en el proyecto es porque es evidente que muchas empresas la utilizan en sus proyectos y uno de los objetivos que se pretenden alcanzar tanto con este TFG, como con los estudios cursados antes, es aprender y profundizar en el trabajo diario de las empresas. Una vez decidido que la metodología que se aplica es Scrum, hay que destacar que cuando se utiliza una metodología ágil para la gestión de un proyecto, es necesario o adecuado es adaptar la metodología al caso concreto, para aprovechar al máximo las características de flexibilidad y adaptabilidad que nos brindan este tipo de metodologías [34]. Este TFG no es una excepción y se ha adaptado la metodología a este caso concreto. En este proyecto hay 3 personas implicadas, Ismael Caballero como Scrum Manager, Mario Piattini como Propietario del Producto y Ana Isabel Gómez como desarrolladora. Como sólo hay un único miembro en el equipo de desarrollo en este caso se han eliminado las reuniones diarias, puesto que dejan de tener sentido. Por tanto los sprints se han estructurado en la reunión inicial de planificación del sprint, y dos reuniones finales, la revisión del sprint y la retrospectiva del sprint. Para la estimación de la duración y del valor de cada historia de usuario se ha utilizado la técnica de estimación Planning Poker [32] sobre el conjunto de historias de usuario. Esta técnica de estimación se utiliza en desarrollos ágiles y se basa en la estimación por consenso. Para este TFG se han observado las siguientes historias de usuario que conforman la pila del producto: 23

50 24 HdU1. Como usuario del diccionario de datos quiero poder gestionar términos en un vocabulario específico. (Valor para la organización: 90; Estimación del esfuerzo: 8 unidades de esfuerzo) HdU2. Como usuario del diccionario de datos quiero poder buscar la correspondencia de un término en un vocabulario específico. (Valor para la organización: 95; Estimación del esfuerzo: 20 unidades de esfuerzo) HdU3. Como administrador del diccionario de datos quiero poder gestionar vocabularios. (Valor para la organización: 90; Estimación del esfuerzo: 13 unidades de esfuerzo) HdU4. Como administrador del diccionario de datos quiero poder gestionar usuarios. (Valor para la organización: 85; Estimación del esfuerzo: 8 unidades de esfuerzo) HdU5. Como usuario del diccionario de datos quiero poder usar otros vocabularios de otros diccionarios de datos. (Valor para la organización: 65; Estimación del esfuerzo: 13 unidades de esfuerzo) Las unidades de esfuerzo se tradujeron en semanas de trabajo que más tarde se mostrará en el plan del proyecto. De acuerdo a la precedencia lógica de las funcionalidades y el valor de negocio que aportan al producto final de cada grupo de historias de usuario que conforman la pila del producto se ha establecido el orden de los sprints. El plan del proyecto queda como se describe en la Tabla 3. Sprint HdU Esfuerzo 0 Planificación 5 1 HdU HdU1 8 3 HdU4 8 4 HdU HdU Finalización 5 Tabla 3. Sprints.

51 4. METODO DE TRABAJO Marco tecnológico para el desarrollo del proyecto En esta sección se exponen las tecnologías y herramientas que se han utilizado para la elaboración de este TFG para la gestión de proyectos, modelado del software, desarrollo del software, servidores utilizados, pruebas y documentación Herramientas para la gestión de proyectos Bitbucket Bitbucket [35] es un servicio de alojamiento de distribuido de Atlassian Software, basado en web, para sistemas de control de versiones basados en Mercurial y Git. Ofrece servicios de gestión de versiones, integración con otros servicios como Google, Facebook, Twitter, GitHub, wikis para proyectos, gestor de incidencias y chat. Bitbucket se ha utilizado durante todo el desarrollo de este TFG para el alojamiento del código y el control de versiones del mismo. Se han creado dos repositorios, uno para el conjunto de servicios web de gestión del diccionario de datos y otro para la herramienta DaDI8K Tool. Así se mantenía la separación e independencia desde el momento inicial del proyecto, para el control de versiones se ha utilizado Mercurial, descrito en la siguiente sección. El repositorio donde se puede encontrar el código de DaDI8K Services es El repositorio para DaDI8K Tool es Bitbucket ofrece cuentas gratuitas pero tienen limitaciones, en este caso se ha utilizado una cuenta de usuario con licencia académica, ya que existe la posibilidad de solicitarlas por ser estudiante universitario. Estas licencias académicas, afortunadamente, no tienen limitaciones Mercurial Mercurial [36] es una herramienta de control de versiones, desarrollada por Matt Mackall. Su arquitectura es distribuida. Cada desarrollador tiene una copia local de toda la historia del desarrollo. Así el trabajo de cada uno es independiente del acceso a la red o en un servidor central. Resulta sencillo y rápido crear ramas, unir e integrar código. 25

52 26 Para este TFG se ha utilizado la versión integrada con Spring Tool Suite. Para esta integración se instaló el plugin MercurialEclipse [36, 37]. Mercurial es una herramienta Open Source, con licencia gratuita bajo los términos de licencia GNU General Public License Version Microsoft Outlook 2013 Microsoft Outlook [38] es una aplicación de gestión de correo electrónico, calendario, tareas y agenda personal. Permite organizar la información de contactos, consultar el correo, programar reuniones y responder a invitaciones de reuniones o actividades. Ha sido desarrollado por Microsoft. Esta herramienta ha sido muy útil para la programación de las reuniones. Se ha utilizado la licencia académica del software con la cuenta que proporciona la universidad Microsoft Excel 2013 Microsoft Excel [39] es una herramienta que organiza datos en hojas de cálculo y en libros, desarrollada por Microsoft. Descubre tendencias y patrones en los datos, ayuda a representar gráficamente datos con diferentes tipos de gráficos. También puede utilizarse online convirtiéndose así en una herramienta colaborativa a tiempo real, puesto que un mismo archivo puede compartirse entre varias personas y poder trabajar a la vez sin problemas. Con esta herramienta se ha llevado un control horario de las horas de trabajo que llevaba cada tarea. Se han creado tablas con los diferentes sprints, con la estimación que se realizó mediante Planning Poker. Además se han construido los gráficos de burn-up para monitorizar las horas de trabajo reales frente a las estimadas para este TFG. La versión utilizada es Microsoft Excel 2013 y la licencia es académica Herramientas para el modelado de software Visual Paradigm for UML Visual Paradigm for UML (VP-UML) [40] es una herramienta CASE (Computer Aided Software Engineering o Ingeniería del Software Asistida por Computador) que da soporte al modelado visual con UML. Permite crear diferentes tipos de diagramas y aplicar ingeniería inversa. Ha sido desarrollada por Visual Paradigm International.

53 27 4. METODO DE TRABAJO Se ha utilizado para realizar los diagramas UML necesarios durante el análisis y diseño de las distintas partes del software desarrollado. La versión utilizada es Visual Paradigm for UML 12.0 con licencia académica Herramientas y tecnologías para el desarrollo software Spring Framework Spring [41, 42] es un framework para el desarrollo de aplicaciones. Es modular y permite utilizar los elementos que se necesitan para cada aplicación. Soporta gestión de transacciones declarativas, acceso remoto lógico a través de RMI o servicios web y diferentes opciones para la persistencia de los datos. Spring está diseñado para ser no intrusivo, lo que significa que su código de lógica de dominio general, no tiene dependencias en el propio framework. Spring tiene un conjunto de proyectos con los se especializa y ofrece características específicas para distintos tipos de proyectos. En este TFG se han integrado varios proyectos de Spring. Spring Framework, Spring MVC y Spring Security. Spring Framework es el núcleo de Spring, y a continuación se describen el resto de proyectos: Spring Security Es un proyecto de Spring [43] para manejar la seguridad de las aplicaciones con soporte para la autenticación y la autorización. Sprint MVC Spring MVC [44] está específicamente diseñado para aplicaciones modelo vista controlador. Spring se ha utilizado como framework principal para el desarrollo de DaDI8K Services y DaDI8K Tool. La versión utilizada es Spring RELEASE. La licencia es Apache License Spring Tool Suite Spring Tool Suite [45] es un entorno de desarrollo basado en Eclipse diseñado para desarrollar aplicaciones Spring. Facilita un entorno preparado para trabajar para implementar, ejecutar, probar y desplegar las aplicaciones incluyendo todo tipo de herramientas para ello. Además conoce los dialectos de Spring y hace el desarrollo de aplicaciones más sencillo. 27

54 28 Este entorno de desarrollo se ha utilizado para el desarrollo de DaDI8K Services y DaDI8K Tool. La versión utilizada es Spring RELEASE. La licencia es Apache License Java Java [46] es un lenguaje de programación de propósito general, orientado a objetos. Permite a los desarrolladores de aplicaciones escribir programas y ejecutarlos en cualquier dispositivo en cualquier plataforma. Las anotaciones Java han sido un elemento importante y destacado en el desarrollo de este TFG. Una anotación java es un elemento para añadir metadatos al código fuente que están disponibles para la aplicación en tiempo de ejecución. En muchas ocasiones, las anotaciones Java sustituyen a la tecnología XML. Java se ha utilizado para el desarrollo de DaDI8K Services y DaDI8K Tool. La licencia de Java es GNU GPL / Java Community Process y la versión utilizada es Java Maven Maven [47] es una herramienta de software para la gestión y construcción de proyectos java, ha sido desarrollado por Apache Software Foundation. Utiliza un Project Object Model (POM) para describir el proyecto software a construir, sus dependencias, módulos, componentes externos, y el orden de construcción de los elementos. Maven puede utilizarse dinámicamente para descargar plugins y dependencias de un repositorio. En este proyecto se ha utilizado principalmente para la gestión de dependencias y plugins de DaDI8K services y DaDI8K Tool. La versión utilizada es Maven La licencia de uso es Apache License Versión 2.0. Apache Software Foundation está decidiendo aún si esta licencia es compatible con GPL Bootstrap Bootstrap [48] es un framework para el diseño de la interfaz de usuario de aplicaciones y sitios web. Está basado en HTML5 y CSS3 y ha sido desarrollado por Twitter. Contiene también herramientas en Less y Javascript. Contiene plantillas de diseño con botones, cuadros, formularios, tipografías, menús de navegación y otros elementos de diseño. Bootstrap ha sido utilizado para el diseño de la interfaz de usuario de DaDI8K Tool. En este proyecto se ha utilizado la versión La licencia del código está bajo el MIT, la documentación bajo Creative Commons 3.0.

55 29 4. METODO DE TRABAJO Apache Tiles Apache Tiles es framework de composición de plantillas desarrollado por Apache Software Foundation. Permite definir fragmentos de contenido web que se pueden montar en una página web completa en tiempo de ejecución. Es muy útil para la reducción de código duplicado y la reutilización constante. Estas plantillas agilizan el desarrollo del diseño y del aspecto de sitios y aplicaciones web completas. Tiles se ha utilizado para la construcción de la plantilla para la interfaz gráfica y el diseño de la misma en DaDI8K Tool. La versión utilizada es La licencia es Apache License Versión HTML5 HTML5 [49] (HyperText Markup Language, versión 5) es un lenguaje de etiquetado para el desarrollo de contenido web en el lado del cliente. Es un estándar de referencia de la W3C (World Wide Web Consortium). Su funcionalidad se basa en el uso de etiquetas para la definición de las distintas partes que componen la página web. Se ha utilizado para el desarrollo de la interfaz de usuario de DaDI8K Tool. Como antes se menciona, la versión utilizada es la JSP JSP [50] (Java Servlet Pages) es un lenguaje de programación para el desarrollo de contenido web dinámico basado en HTML o XML entre otros. Ha sido desarrollado por Sun Microsystems. JSP se ha utilizado para el desarrollo de la interfaz de usuario de DaDI8K Tool. La versión de JSP es 2.1. La licencia es GNU General Public License (GPL Version 2) CSS3 CSS3 [51] (Cascading Style Sheets versión 3) o hoja de estilo en cascada, es un lenguaje utilizado para la definición y creación del diseño de un documento estructurado escrito en HTML, XML o XHTML. Es un estándar del W3C. Se ha utilizado para el diseño y definición de estilos de la interfaz de usuario de DaDI8K Tool. La versión es CSS3. 29

56 Herramientas de virtualización Oracle Virtual Box Oracle Virtual Box [52] es un software de virtualización propiedad de Oracle. A través de esta herramienta es posible la virtualización de sistemas operativos (conocidos como sistemas operativos invitados) dentro de otro (llamado anfitrión). Virtual Box se ha utilizado para la virtualización del sistema operativo Oracle OEL 7, donde se encuentra el diccionario de datos, y Ubuntu Server 14.04, donde se encuentran desplegados tanto DaDI8K Services como DaDI8K Tool. El sistema anfitrión es un sistema operativo Windows 8.1. La versión de Virtual Box utilizada es y la licencia es GPLv Herramientas y tecnologías para servidores Oracle OEL 7 Oracle OEL 7 [53] es un sistema operativo de código abierto basado en Linux que ofrece herramientas y características enfocadas a la gestión de bases de datos en cloud. Oracle es la propietaria de este sistema operativo. Se ha utilizado para el despliegue del diccionario de datos a través de Oracle Database 12c. La versión utilizada es Oracle OEL 7. La licencia es GNU General Public License GPLv Ubuntu Server Ubuntu Server [54] es un sistema operativo basado en GNU/Linux que se distribuye como software libre. Está orientado para funcionar como un servidor y por ello ofrece herramientas como DNS Server, LAMP Server, Mail Server u OpenSSH server. Está pensado para que consuma los mínimos recursos posibles. Este sistema operativo está desarrollado por Canonical Ltd. junto con Fundación Ubuntu. Este sistema operativo se ha utilizado para el despliegue de DaDI8K Services y DaDI8K Tool. La versión utilizada es Ubuntu Server LTS. La Licencia es GNU General Public License Tomcat Tomcat [55] es un contenedor de aplicaciones web con soporte de servlets y JSPs. El motor de servlets de Tomcat a menudo se presenta en combinación con el servidor web Apache. Puede funcionar como un servidor web. Está escrito en Java por lo que funciona

57 31 4. METODO DE TRABAJO cualquier sistema operativo que disponga de la máquina virtual Java. El desarrollador de Tomcat es Apache Software Foundation. Tomcat ha sido utilizado tanto para el desarrollo del proyecto, integrado con Spring Tool Suite, como para el despliegue. La versión usada es Tomcat 8.0. La licencia es Apache License Versión Herramientas y tecnologías para bases de datos Oracle Database 12c Oracle Database [56] es un sistema de gestión de base de datos objeto-relacional desarrollado por la empresa Oracle. Este sistema ofrece soporte de transacciones, estabilidad, escalabilidad y soporte multiplataforma entre otras.. En este proyecto se ha utilizado para albergar el diccionario de datos. La versión utilizada es Oracle Database 12c. La licencia es de Oracle y es privativa. Algunas versiones como la Enterprise Edition no son gratuitas Hibernate Hibernate [57] es una herramienta de mapeo objeto-relacional (ORM) desarrollado por Red Hat, que facilita el mapeo de atributos entre una base de datos relacional y el modelo de objetos de una aplicación mediante archivos declarativos XML o anotaciones Java. Hibernate se ha utilizado para manejar la conexión de DaDI8K Services con el diccionario de datos. Hibernate es software libre distribuido bajo los términos de la licencia GNU LGPL y la versión utilizada es la Herramientas y tecnologías para pruebas JUnit JUnit [58] es un framework para el desarrollo de pruebas unitarias de aplicaciones Java desarrollado por Kent Beck, Erich Gamma y David Saff. Permite realizar la ejecución de clases Java de manera controlada para poder evaluar el funcionamiento de los métodos de la clase. JUnit se ha utilizado para la construcción de las pruebas unitarias para el código Java de DaDI8K Services y DaDI8K Tool. La version utilizada es JUnit La licencia es Common Public License. 31

58 Postman REST Client Postman REST Client [59] es un cliente web que sirve para realizar pruebas externas a servicios web. Es una extensión de Google Chrome. Postman ha sido utilizado para realizar pruebas a DaDI8K Services desde el navegador Google Chrome. La version utilizada es la 2.0. La licencia es Apache License Herramientas para la elaboración de la documentación Microsoft Word 2013 Microsoft Word [60] es un procesador de textos desarrollado por Microsoft. Es una herramienta muy potente integrada en la suite ofimática de Microsoft. Ofrece una gran cantidad de herramientas y características para trabajar con documentos. Ofrece la posibilidad de trabajar de forma colaborativa online en un equipo de varias personas a tiempo real. Esta herramienta ha sido utilizada para la elaboración de la documentación de este TFG. La versión utilizada es Microsoft Word La licencia de uso utilizada es una cuenta académica Microsoft Visio 2013 Microsoft Visio 2013 [61] es un software desarrollado por Microsoft para crear diagramas. Ofrece diferentes herramientas diseñadas para crear diagramas de forma intuitiva y sencilla. Con efectos, temas y capacidades colaborativas para facilitar el trabajo en equipo, Visio ofrece la posibilidad de trabajar en el mismo diagrama al mismo tiempo. Además permite de forma muy sencilla la integración de los dibujos o diagramas creados con el resto de herramientas de la suite ofimática de Microsoft. Esta herramienta se ha utilizado para el diseño de diagramas de este TFG. La versión utilizada es Microsoft Visio La licencia de uso utilizada es la académica Dia Dia [62] es un software para el diseño de diagramas desarrollado por GNOME. Contiene diferentes módulos con paquetes de formas disponibles para diferentes necesidades y objetos especiales para dibujar modelos entidad relación, para el modelado UML o diagramas de flujo entre otros. Esta herramienta se ha utilizado para el diseño algunos de los diagramas que se presentan en la memoria de este TFG.

59 33 4. METODO DE TRABAJO La versión utilizada es Dia La licencia de uso es GNU General Public License GPLv EndNote X7 EndNote X7 [63] es un software de gestión de referencias, usado para manejar listas bibliográficas y citas en la escritura de documentos desarrollado por Thomson Reuters. EndNote ha sido utilizado para la gestión de las referencias. La versión utilizada es EndNote X5. La licencia de EndNote es privativa y de pago, pero en este caso se ha utilizado la versión de prueba que ofrece. 33

60

61 Capítulo 5 Resultados 5. RESULTADOS En este capítulo se describen los resultados obtenidos tras la aplicación del método de trabajo. Se detallará el plan de trabajo para alcanzar los objetivos descritos en el capítulo 2. Se describirá cada iteración del proyecto y los artefactos obtenidos. 5.1 Sprint Planificación del Sprint El trabajo estimado para este sprint fue así en la Tabla 4: Sprint Tarea Horas estimadas T1. Identificación de los usuarios del sistema. 1 T2. Obtención de la lista de historias de usuario y obtener su valor. 7 0 T3. Realización de una estimación del esfuerzo para cada una de las historias de usuario mediante Planning Poker. 3 T4. Creación del documento del Anteproyecto Fin de Grado. 24 Tabla 4. Planificación del Sprint Equipo Scrum Como se indica en el capítulo 4 el Equipo Scrum queda formado de la siguiente manera: Ismael Caballero como Scrum Manager. Mario Piattini como Propietario del Producto. Ana Isabel Gómez como desarrolladora Captura de requisitos La elicitación de requisitos del proyecto se ha realizado diferentes entrevistas con el Propietario del Producto, estudio de documentación existente y observación. 35

62 Roles de la Aplicación Habrá dos tipos de usuarios en la herramienta DaDI8K Tool: Usuario. Es un usuario normal que tendrá acceso a todos los recursos que ofrece la aplicación. Normalmente este tipo de usuario será el que puedan adquirir las organizaciones. Administrador. Se encarga de gestionar los usuarios y otros aspectos de administración de la aplicación. En la Tabla 5 se muestran las historias de usuario que cada usuario puede realizar en DaDI8K Tool. Historia de Usuario Usuario Administrador HdU1 HdU2 HdU3 HdU4 HdU5 Tabla 5. Relación Usuarios e Historias de Usuario Actores del Sistema Los actores que podrán utilizar esta herramienta son: Usuario de una organización Administrador del diccionario Pila del Producto En esta etapa inicial del proyecto se obtiene la lista de historias de usuario que tienen los siguientes elementos [64]: Nombre de la historia. Nombre de la historia de usuario. Número. Numero de cada historia que la identifica. Rol. Rol del usuario que realiza la historia. Valor de negocio. Importancia de la historia para la organización fijado por el Propietario del Producto. Esfuerzo. Medido en unidades de esfuerzo y surge como resultado de la estimación Planning Póker. Después esta estimación se transformará en semanas de trabajo.

63 37 5. RESULTADOS Descripción. Descripción de la historia de usuario. Postcondición. Descripción de lo que se consigue con el desarrollo de la historia. Tareas. Tareas que se desempeñarán en la historia de usuario. A continuación, en las Tabla 6 a 10, se describen las historias de usuario detalladas: Historia de Usuario Número: 1 Rol: Usuario Nombre historia: Gestión de términos Valor de negocio: 90 Esfuerzo: 8 Descripción: Como usuario del diccionario de datos quiero poder gestionar términos en un vocabulario específico. Postcondición: Al final de este sprint el usuario podrá crear, eliminar, modificar, consultar y listar términos. Tareas: T1. Diseño de primitivas de gestión de términos. T2. Implementación de la funcionalidad insertar términos. T3. Implementación de la funcionalidad consultar términos. T4. Implementación de la funcionalidad actualizar términos. T5. Implementación de la funcionalidad eliminar términos. T6. Implementación de la funcionalidad listar términos. Tabla 6. Historia de Usuario 1. Historia de Usuario Número: 2 Rol: Usuario Nombre historia: Búsqueda de términos Valor de negocio: 95 Esfuerzo: 20 Descripción: Como usuario del diccionario de datos quiero poder buscar la correspondencia de un término en un vocabulario específico. Postcondición: Con esta funcionalidad el usuario podrá buscar términos en el diccionario de datos, consultarlos y obtener su correspondencia con otros términos. Tareas: T1. Adaptación del diccionario de datos para soportar el mapeo entre vocabularios. T2. Implementación de la funcionalidad insertar un mapeo entre dos términos de dos vocabularios diferentes. 37

64 38 T3. Implementación de la funcionalidad modificar un mapeo entre dos términos de dos vocabularios diferentes. T4. Implementación de la funcionalidad actualizar un mapeo entre dos términos de dos vocabularios diferentes. T5. Implementación de la funcionalidad eliminar un mapeo entre dos términos de dos vocabularios diferentes. T6. Implementación de la funcionalidad consultar un mapeo entre dos términos de dos vocabularios diferentes. Tabla 7. Historia de Usuario 2. Historia de Usuario Número: 3 Rol: Administrador Nombre historia: Gestión de vocabularios Valor de negocio: 90 Esfuerzo: 13 Descripción: Como administrador del diccionario de datos quiero poder gestionar vocabularios. Postcondición: El administrador podrá crear, modificar, eliminar, consultar y listar vocabularios. Tareas: T1. Definición de ciclo de vida del vocabulario. T2. Diseño primitivas de gestión de vocabularios. T3. Implementación de la funcionalidad insertar vocabularios. T4. Implementación de la funcionalidad consultar vocabulario. T5. Implementación de la funcionalidad actualizar vocabulario. T6. Implementación de la funcionalidad eliminar vocabulario. T7. Implementación de la funcionalidad listar vocabulario. Tabla 8. Historia de Usuario 3.

65 5. RESULTADOS 39 Historia de Usuario Número: 4 Rol: Administrador Nombre historia: Gestión de usuarios Valor de negocio: 85 Esfuerzo: 8 Descripción: Como administrador del diccionario de datos quiero poder gestionar usuarios. Postcondición: El administrador podrá crear, modificar, eliminar, consultar y listar usuarios. Tareas: T1. Diseño de primitivas de gestión de usuarios. T2. Implementación de la funcionalidad insertar usuarios. T3. Implementación de la funcionalidad consultar usuarios. T4. Implementación de la funcionalidad actualizar usuarios. T5. Implementación de la funcionalidad eliminar usuarios. T6. Implementación de la funcionalidad listar usuarios. Tabla 9. Historia de Usuario 4. Historia de Usuario Número: 5 Rol: Usuario Nombre historia: Gestión de Diferentes diccionarios Valor de negocio: 65 Esfuerzo: 13 Descripción: Como usuario del diccionario de datos quiero poder usar otros vocabularios de otros diccionarios de datos. Postcondición: El usuario podrá utilizar diferentes diccionarios para consultar términos. Tareas: T1. Definición de los mecanismos de interoperabilidad entre diccionarios mediante servicios web. T2. Implementación de la funcionalidad listar diccionarios. T3. Implementación de la funcionalidad elegir diccionario para el usuario. Tabla 10. Historia de Usuario Arquitectura En este sprint se diseña la arquitectura que se pretende desarrollar con la ejecución de este proyecto representada en la Figura 8 (reproducida para facilitar la lectura): 39

66 40 Figura 8. Arquitectura tecnológica de este proyecto. Por un lado estarán los servicios web de gestión del diccionario de datos, denominados DaDI8K Services, que quedan separados de la herramienta para que sean independientes y puedan ser consumidos por cualquier otro software sin necesidad de que la herramienta esté en marcha. Por otro lado, queda DaDI8K Tool que será la herramienta que consume los servicios web para recibir y enviar información al diccionario de datos. Toda la gestión del diccionario de datos queda delegada en los servicios web Planificación Inicial del Proyecto En este sprint 0 de planificación se ha obtenido el plan del proyecto con todas las historias de usuario y los sprints que se llevarán a cabo. En la Tabla 11 se muestra a continuación, se detalla el plan de iteraciones. Sprint HdU Esfuerzo Tareas T1. Identificación de los usuarios del sistema. T2. Obtención de la lista de historias de usuario y obtener su valor. 0 Planificación 5 T3. Realización de una estimación del esfuerzo para cada una de las historias de usuario mediante Planning Poker. T4. Creación del documento del Anteproyecto Fin de Grado. T1. Definición de ciclo de vida del vocabulario. T2. Diseño primitivas de gestión de vocabularios. T3. Implementación de la funcionalidad insertar vocabularios. 1 HdU3 13 T4. Implementación de la funcionalidad consultar vocabulario. T5. Implementación de la funcionalidad actualizar vocabulario. T6. Implementación de la funcionalidad eliminar vocabulario. T7. Implementación de la funcionalidad listar vocabulario. Duración estimada 1 Semana 3 Semanas

67 5. RESULTADOS 2 HdU1 8 3 HdU4 8 4 HdU HdU Finalización 5 T1. Diseño de primitivas de gestión de términos. T2. Implementación de la funcionalidad insertar términos. T3. Implementación de la funcionalidad consultar términos. T4. Implementación de la funcionalidad actualizar términos. T5. Implementación de la funcionalidad eliminar términos. T6. Implementación de la funcionalidad listar términos. T1. Diseño de primitivas de gestión de usuarios. T2. Implementación de la funcionalidad insertar usuarios. T3. Implementación de la funcionalidad consultar usuarios. T4. Implementación de la funcionalidad actualizar usuarios. T5. Implementación de la funcionalidad eliminar usuarios. T6. Implementación de la funcionalidad listar usuarios. T1. Adaptación del diccionario de datos para soportar el mapeo entre vocabularios. T2. Implementación de la funcionalidad insertar un mapeo entre dos términos de dos vocabularios diferentes. T3. Implementación de la funcionalidad modificar un mapeo entre dos términos de dos vocabularios diferentes. T4. Implementación de la funcionalidad actualizar un mapeo entre dos términos de dos vocabularios diferentes. T5. Implementación de la funcionalidad eliminar un mapeo entre dos términos de dos vocabularios diferentes. T6. Implementación de la funcionalidad consultar un mapeo entre dos términos de dos vocabularios diferentes. T1. Definición de los mecanismos de interoperabilidad entre diccionarios mediante servicios web. T2. Implementación de la funcionalidad listar diccionarios. T3. Implementación de la funcionalidad elegir diccionario para el usuario. T1. Creación un manual de usuario T2. Realización casos de estudios T3. Análisis DAFO de la solución final T4. Elaboración de la memoria final del TFG Tabla 11. Plan del Proyecto Semanas 2 Semanas 4 Semanas 3 Semanas 1 Semana 41

68 Revisión del Sprint Al final el trabajo real fue como se describe en la Tabla 12: Sprint Tarea Horas realizadas T1. Definición del proyecto 20 T2. Definición de Objetivos 16 T3. Identificación de los usuarios del sistema. 1 0 T4. Obtención de la lista de historias de usuario y obtener su valor. 19 T5. Realización de una estimación del esfuerzo para cada una de las historias de usuario mediante Planning Poker. 4 T4. Creación del documento del Anteproyecto Fin de Grado. 16 Tabla 12. Revisión del Sprint 0. Para ver cómo ha ido el trabajo planificado y el trabajo real, en la siguiente Figura 9 se muestra la comparativa mediante un gráfico Burn-up [65]. Se puede observar cómo se ha desarrollado el trabajo realizado en el sprint. Las unidades de los datos representados son horas Sprint T1 T2 T3 T4 T5 T6 Trabajo Real Trabajo Estimado Figura 9. Gráfico Burn-up de la revisión Sprint 0. Como se aprecia en el gráfico se estimó menos trabajo del que se tuvo que llevar a cabo en realidad, por tanto la estimación se hizo por debajo de las horas reales. Esto se debió a que no se comprendió el alcance al inicio.

69 43 5. RESULTADOS Retrospectiva del Sprint Para finalizar el sprint, se reunió el Equipo Scrum para revisar los objetivos marcados con la pila del producto. Como es el sprint de planificación, en esta reunión se habló sobre el plan del proyecto. 5.2 Sprint Planificación del Sprint El hecho de que en el sprint 0 se estimó menos trabajo del que realmente se llevó a cabo, hizo que hubiese que ajustar el plan del proyecto porque se había consumido más tiempo del esperado y quedaba menos tiempo para la fecha final. Este ajuste en el plan quedó como se describe en la Tabla 13. Sprint HdU Esfuerzo Tareas T1. Identificación de los usuarios del sistema. T2. Obtención de la lista de historias de usuario y obtener su valor. 0 Planificación 5 T3. Realización de una estimación del esfuerzo para cada una de las historias de usuario mediante Planning Poker. T4. Creación del documento del Anteproyecto Fin de Grado. T1. Definición de ciclo de vida del vocabulario. T2. Diseño primitivas de gestión de vocabularios. T3. Implementación de la funcionalidad insertar vocabularios. 1 HdU3 13 T4. Implementación de la funcionalidad consultar vocabulario. T5. Implementación de la funcionalidad actualizar vocabulario. T6. Implementación de la funcionalidad eliminar vocabulario. T7. Implementación de la funcionalidad listar vocabulario. T1. Diseño de primitivas de gestión de términos. T2. Implementación de la funcionalidad insertar términos. 2 HdU1 8 T3. Implementación de la funcionalidad consultar términos. T4. Implementación de la funcionalidad actualizar términos. T5. Implementación de la funcionalidad eliminar términos. T6. Implementación de la funcionalidad listar términos. T1. Diseño de primitivas de gestión de usuarios. T2. Implementación de la funcionalidad insertar usuarios. 3 HdU4 8 T3. Implementación de la funcionalidad consultar usuarios. T4. Implementación de la funcionalidad actualizar usuarios. T5. Implementación de la funcionalidad eliminar usuarios. Duración estimada 1 Semana 6 Semanas 2 Semanas 1 Semanas 43

70 44 4 HdU HdU Finalización 5 T6. Implementación de la funcionalidad listar usuarios. T1. Adaptación del diccionario de datos para soportar el mapeo entre vocabularios. T2. Implementación de la funcionalidad insertar un mapeo entre dos términos de dos vocabularios diferentes. T3. Implementación de la funcionalidad modificar un mapeo entre dos términos de dos vocabularios diferentes. T4. Implementación de la funcionalidad actualizar un mapeo entre dos términos de dos vocabularios diferentes. T5. Implementación de la funcionalidad eliminar un mapeo entre dos términos de dos vocabularios diferentes. T6. Implementación de la funcionalidad consultar un mapeo entre dos términos de dos vocabularios diferentes. T1. Definición de los mecanismos de interoperabilidad entre diccionarios mediante servicios web. T2. Implementación de la funcionalidad listar diccionarios. T3. Implementación de la funcionalidad elegir diccionario para el usuario. T1. Creación un manual de usuario T2. Realización casos de estudios T3. Análisis DAFO de la solución final T4. Elaboración de la memoria final del TFG Tabla 13. Ajuste del Plan del Proyecto. 3 Semanas 2 Semanas 1 Semana Con este cambio en el plan del proyecto, la reestimación ya se tuvo en cuenta para la planificación de este sprint. En este caso la pila del sprint está formada únicamente por la historia de usuario 3. Historia de Usuario Número: 3 Rol: Administrador Nombre historia: Gestión de vocabularios Valor de negocio: 90 Esfuerzo: 13 Descripción: Como administrador del diccionario de datos quiero poder gestionar vocabularios. Postcondición: El administrador podrá crear, modificar, eliminar, consultar y listar vocabularios. Tareas: T1. Definición de ciclo de vida del vocabulario.

71 5. RESULTADOS 45 T2. Diseño primitivas de gestión de vocabularios. T3. Implementación de la funcionalidad insertar vocabularios. T4. Implementación de la funcionalidad consultar vocabulario. T5. Implementación de la funcionalidad actualizar vocabulario. T6. Implementación de la funcionalidad eliminar vocabulario. T7. Implementación de la funcionalidad listar vocabulario. Tabla 14. Historia de Usuario del Sprint 1. Se implementó la función gestión de vocabularios. En la Tabla 15, se puede observar la estimación que se realizó para este Sprint 1 de las tareas y cada estimación en horas para cada una de ellas. Como se puede ver en la historia de usuario no se contemplaron algunas tareas que fueron surgiendo en el desarrollo y que fueron estimadas de la misma forma que las que ya se habían descrito, aunque estas tareas complementan a las que había. Sprint Tarea Horas estimadas T1. Definición de ciclo de vida del vocabulario. 22 T2. Diseño primitivas de gestión de vocabularios. 15 T3. Configuración entorno de desarrollo. - T3.1 Instalación máquina virtual de Oracle OEL 7. 6 T3.2 Instalación Oracle 12c. 25 T3.3 Instalación máquina virtual Ubuntu Server T3.4 Instalación Spring Tool Suite. 1 T3.5 Instalación Mercurial. 2 T3.6 Integración Spring Tool Suite Mercurial. 2 T3.7 Creación de un repositorio en Bitbucket. 1 1 T3.8 Conectar repositorio con Spring Tool Suite. 4 T4. Aprendizaje nuevas tecnologías. - T4.1 Aprender Spring. 20 T4.2 Spring WS. 4 T4.3 Spring WS REST. 15 T4.4 Seminario WS Rest Spring. 1 T5. Configuración del entorno existente. 18 T6. Montar entorno completo de producción inicial. 20 T7. Implementación de la funcionalidad insertar vocabularios. 17 T8. Implementación de la funcionalidad consultar vocabulario. 17 T9. Implementación de la funcionalidad actualizar vocabulario. 17 T10. Implementación de la funcionalidad eliminar vocabulario. 17 Tabla 15. Tareas del Sprint 1. 45

72 Tareas del Sprint Creación del proyecto. Para la creación del proyecto, el primer paso fue la configuración del entorno de desarrollo. Se utilizó un equipo con las siguientes características: Fujitsu LifeBook A H531 Procesador Intel Core i3-2350m CPU 2.30GHz 2.30GHz Memoria 4GB RAM 1333 DDR3 Se instaló Java SE Development Kit 8, Apache Tomcat 8 y se integró con Spring Tool Suite. Para la gestión de las dependencias se utilizó Maven. Además se creó un repositorio de datos en Bitbucket que se utiliza con Mercurial para el control de versiones. Se eligió este entorno de desarrollo porque ofrece herramientas de gran utilidad de forma integrada y sencilla de utilizar. Además hay una gran cantidad de información, son muy conocidas y hay grandes comunidades entorno a ellas. En cuanto a la seguridad del entorno, este conjunto de herramientas también ofrecen seguridad en la autenticación, privacidad y ante cualquier pérdida o problema siempre se podrá recuperar el trabajo sin perder nada puesto que está almacenado en un servidor. El proyecto se dividió en dos para seguir la arquitectura fijada. Por un lado los servicios web de gestión del diccionario y la herramienta DaDI8K Tool. Para aprovechar con las ventajas de separar el proyecto en dos partes, también se separó en dos repositorios diferentes. Por un lado, DaDI8K Tool se desarrolló con Spring MVC (Spring Model View Controller) y Spring Security para el tratamiento de la seguridad de la herramienta. El patrón modelo vista controlador proporciona múltiples ventajas, sobre todo una implementación modularizada y a la hora de hacer cambios en funcionalidades o incluso añadir o eliminarlas es muy sencillo, ya que el código está organizado. Además permite dividir la lógica de negocio del diseño, haciendo un proyecto escalable. La estructura de los paquetes de DaDI8K Tool es la mostrada en la Figura 10:

73 5. RESULTADOS 47 Figura 10. Paquetes de DaDI8K Tool. En Spring Tool Suite los paquetes son los mostrados en la Figura 11: Figura 11. Paquetes de DaDI8K Tool en Sprint Tool Suite. Por otro lado, para los servicios web se decidió utilizar el patrón modelo vista controlador para aprovechar todas las ventajas que se exponen anteriormente, pero en este caso sin el paquete de vistas, puesto que únicamente son servicios web que consumirán otras aplicaciones y carece de sentido por el momento que tengan una interfaz gráfica. La estructura de los paquetes de los servicios web es la de la Figura 12: 47

74 48 Figura 12. Paquetes de DaDI8K Services. En Spring Tool Suite la estructura es la representada en la Figura 13: Figura 13. Paquetes de DaDI8K Services en Sprint Tool Suite. También se puso en funcionamiento el diccionario de datos. A continuación se muestra el modelo de datos del diccionario de datos en la Figura 14.

75 5. RESULTADOS 49 Figura 14. Modelo de datos del Diccionario de Datos. Para la comunicación entre los servicios y el diccionario de datos se ha utilizado Hibernate. Para la configuración de Hibernate en el proyecto se han utilizado las anotaciones de Java, código Java y un archivo de propiedades Spring. El archivo de propiedades puede verse en el siguiente Listado 1. #Routing properties root.url="http://localhost:8080/dadi8k/" vocabulary.url="http://localhost:8080/dadi8k/vocabulary" term.url="http://localhost:8080/dadi8k/term" dictionary.url="http://localhost:8080/dadi8k/dictionary" organization.url="http://localhost:8080/dadi8k/organization" language.url="http://localhost:8080/dadi8k/language" status.url="http://localhost:8080/dadi8k/status" #DB properties: db.driver=com.mysql.jdbc.driver db.url=jdbc:mysql://localhost:3306/dadi8k db.username=root db.password= #Hibernate Configuration: hibernate.dialect=org.hibernate.dialect.mysqldialect hibernate.show_sql=true entitymanager.packages.to.scan=com.uclm.dadi8kclient.persistence Listado 1. Propiedades para la configuración de Hibernate. 49

76 50 La clase Java para la configuración de la conexión con el diccionario de datos se muestra en este Listado 2: package com.uclm.dadi8k.config; import java.util.properties; import javax.annotation.resource; import javax.sql.datasource; import org.springframework.context.annotation.bean; import org.springframework.context.annotation.componentscan; import org.springframework.context.annotation.configuration; import org.springframework.context.annotation.propertysource; import org.springframework.core.env.environment; import org.springframework.jdbc.datasource.drivermanagerdatasource; import org.springframework.orm.hibernate4.hibernatetransactionmanager; import org.springframework.orm.hibernate4.localsessionfactorybean; import org.springframework.transaction.annotation.enabletransactionmanageme nt; @PropertySource("classpath:application.properties") public class PersistenceConfig { private static final String PROPERTY_NAME_DATABASE_DRIVER = "db.driver"; private static final String PROPERTY_NAME_DATABASE_PASSWORD = "db.password"; private static final String PROPERTY_NAME_DATABASE_URL = "db.url"; private static final String PROPERTY_NAME_DATABASE_USERNAME = "db.username"; private static final String PROPERTY_NAME_HIBERNATE_DIALECT = "hibernate.dialect"; private static final String PROPERTY_NAME_HIBERNATE_SHOW_SQL = "hibernate.show_sql"; private static final String PROPERTY_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN = private Environment public DataSource datasource() { DriverManagerDataSource datasource = new DriverManagerDataSource();

77 5. RESULTADOS 51 datasource.setdriverclassname(env.getrequiredproperty(property_name_ DATABASE_DRIVER)); datasource.seturl(env.getrequiredproperty(property_name_database_url )); datasource.setusername(env.getrequiredproperty(property_name_databas E_USERNAME)); datasource.setpassword(env.getrequiredproperty(property_name_databas E_PASSWORD)); } return public LocalSessionFactoryBean sessionfactory() { LocalSessionFactoryBean sessionfactorybean = new LocalSessionFactoryBean(); sessionfactorybean.setdatasource(datasource()); sessionfactorybean.setpackagestoscan(env.getrequiredproperty(propert Y_NAME_ENTITYMANAGER_PACKAGES_TO_SCAN)); sessionfactorybean.sethibernateproperties(hibproperties()); return sessionfactorybean; } private Properties hibproperties() { Properties properties = new Properties(); properties.put(property_name_hibernate_dialect, env.getrequiredproperty(property_name_hibernate_dialect)); properties.put(property_name_hibernate_show_sql, env.getrequiredproperty(property_name_hibernate_show_sql)); return properties; public HibernateTransactionManager transactionmanager() { HibernateTransactionManager transactionmanager = new HibernateTransactionManager(); transactionmanager.setsessionfactory(sessionfactory().getobject()); return transactionmanager; } } Listado 2. Clase Java de configuración de la conexión al diccionario de datos. La clase principal de Spring con la que se inicia la aplicación es la mostrada en el Listado 3: 51

78 52 package com.uclm.dadi8k; import javax.servlet.servletcontext; import javax.servlet.servletexception; import javax.servlet.servletregistration.dynamic; import org.springframework.web.webapplicationinitializer; import org.springframework.web.context.support.annotationconfigwebapplicati oncontext; import org.springframework.web.servlet.dispatcherservlet; import com.uclm.dadi8k.config.appconfig; import com.uclm.dadi8k.config.persistenceconfig; public class WebAppInitializer implements WebApplicationInitializer { public void onstartup(servletcontext servletcontext) throws ServletException { AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext(); ctx.register(appconfig.class); ctx.register(persistenceconfig.class); ctx.setservletcontext(servletcontext); Dynamic dynamic = servletcontext.addservlet("dispatcher", new DispatcherServlet(ctx)); dynamic.addmapping("/"); dynamic.setloadonstartup(1); } } Listado 3. Clase principal de DaDI8K Services. En anteriores versiones de Spring la configuración para el arranque de las aplicaciones se hacía mediante un archivo XML llamado root-context.xml y servlet-context.xml. Spring es totalmente configurable íntegramente con código Java. En este TFG se ha decidido optar por esta opción, ya que es más sencillo y no hay necesidad de aprender la estructura de la configuración en XML entre otras ventajas. Por otra parte, se ha configurado una máquina virtual Oracle OEL 7 y Ubuntu Server para el despliegue de los servicios y la puesta en producción T2. Diseño primitivas de gestión de vocabularios En esta tarea se diseñaron las primitivas de gestión de vocabularios y se plasmaron en una interfaz para que más tarde fuesen implementadas como se puede ver en el siguiente Listado 4.

79 5. RESULTADOS public interface IVocabularyService { public void addvocabulary(vocabulary v); public Vocabulary getvocabulary(string id); public List <Vocabulary> listvocabularies(); public void updatevocabulary(vocabulary v); public void deletevocabulary(string id); } Listado 4. Interfaz de primitivas de gestión de vocabularios T3. Implementación de la funcionalidad insertar vocabularios En primer lugar se ha desarrollado el servicio web REST que inserta vocabularios en el diccionario de datos. En la Figura 15 se puede ver el diagrama de clases de análisis para ello: Figura 15. Diagrama de clases de análisis para insertar vocabularios en DaDI8K Services. Este servicio está disponible en la dirección: En el anexo C se pueden consultar todas las direcciones de los servicios web DaDI8K Services (Véase Anexo C). En este caso, la dirección IP es localhost, si se desea acceder desde internet únicamente se sustituirá localhost por la dirección IP de la máquina. Además el código está diseñado de tal forma que si los servicios se cambiaran de servidor simplemente habría que sustituir la nueva anterior dirección por la nueva dirección en el archivo de propiedades de Spring que se ha configurado. Para todos los servicios ocurre lo mismo, por lo que más adelante ya no se comentará. En el Listado 5 se muestra el código del controlador para insertar method = RequestMethod.POST) public void addvocabulary Vocabulary v){ this.vocabularyservice.addvocabulary(v); } Listado 5. Método del controlador para insertar vocabularios. 53

80 54 Ahora en DaDI8K Tool tendrá una estructura muy parecida y será así para todas las operaciones similares. En la Figura 16 se representa ver cómo funcionaría el flujo de la aplicación desde que el usuario realiza la acción: Figura 16. Diagrama de clases de análisis para insertar vocabularios en DaDI8K Tool. El controlador y la interfaz son iguales que en el caso anterior. En este sprint no se llegaron a desarrollar ninguna vista, el desarrollo abarcó todas las clases y paquetes a falta de las vistas. Tiene especial interés conocer la capa de servicios de DaDI8K Tool que a su vez es únicamente cliente de los servicios web de gestión del diccionario. En el Listado 6 se puede ver el código del public void addvocabulary(vocabulary v) { String url=uri+"/create"; ClientConfig clientconfig = new DefaultClientConfig(); clientconfig.getfeatures().put(jsonconfiguration.feature_pojo_mappin G, Boolean.TRUE); Client client = Client.create(clientConfig); WebResource webresource = ClientResponse response = webresource.accept("application/json").type("application/json").post (ClientResponse.class, v); } Listado 6. Servicio DaDI8K Tool para insertar vocabularios T4. Implementación de la funcionalidad consultar vocabulario En primer lugar se ha desarrollado el servicio web REST para consultar vocabularios del diccionario de datos. En la siguiente Figura 17 se modela la estructura de las clases para ello:

81 5. RESULTADOS 55 Figura 17. Diagrama de clases de análisis para consultar vocabularios en DaDI8K Services. En el Listado 7 se puede ver el código del controlador para consultar un public Vocabulary id){ return this.vocabularyservice.getvocabulary(id); } Listado 7. Método del controlador DaDI8K Services para consultar vocabularios. En la siguiente Figura 18 se representa cómo funcionaría el flujo de la aplicación desde que el usuario realiza la acción: Figura 18. Diagrama de clases de análisis para consultar vocabularios en DaDI8K Tool T5. Implementación de la funcionalidad actualizar vocabulario En primer lugar se ha desarrollado el servicio web REST para actualizar vocabularios del diccionario de datos. En la siguiente Figura 19 se puede ver la estructura de las clases para ello: Figura 19. Diagrama de clases de análisis para actualizar vocabularios en DaDI8K Services. En el Listado 8 se puede ver el código del controlador para actualizar un public void updatevocabulary Vocabulary v){ this.vocabularyservice.updatevocabulary(v); } Listado 8. Método del controlador DaDI8K Services para actualizar un vocabulario. 55

82 56 La Figura 20 muestra cómo funcionaría el flujo de la aplicación desde que el usuario realiza la acción: Figura 20. Diagrama de clases de análisis para actualizar vocabularios en DaDI8K Tool T6. Implementación de la funcionalidad eliminar vocabulario En primer lugar se ha desarrollado el servicio web REST para eliminar vocabularios del diccionario de datos. En la Figura 21 se puede ver la estructura de las clases para ello: Figura 21. Diagrama de clases de análisis para eliminar vocabularios en DaDI8K Services. El Listado 9 muestra el código del controlador para eliminar un public void deletevocabulary String id){ this.vocabularyservice.deletevocabulary(id); } Listado 9. Método del controlador DaDI8K Services para eliminar un vocabulario. En la Figura 22 se puede ver cómo funcionaría el flujo de la aplicación desde que el usuario realiza la acción:

83 5. RESULTADOS 57 Figura 22. Diagrama de clases de análisis para eliminar vocabularios en DaDI8K Tool T7. Implementación de la funcionalidad listar vocabulario En primer lugar se ha desarrollado el servicio web REST para listar los vocabularios del diccionario de datos. La Figura 23 muestra la estructura de las clases para ello: Figura 23. Diagrama de clases de análisis para listar vocabularios en DaDI8K Services. En el Listado 10 se incluye el código del controlador para listar los public List <Vocabulary> listvocabularies(){ return this.vocabularyservice.listvocabularies(); } Listado 10. Método del controlador DaDI8K Services para listar vocabularios. En la Figura 24 se puede ver cómo funcionaría el flujo de la aplicación desde que el usuario realiza la acción: Figura 24. Diagrama de clases de análisis para listar vocabularios en DaDI8K Tool. 57

84 Revisión del Sprint Al final del sprint se produjo la revisión del sprint. Por parte de la desarrolladora se destacó la figura de las anotaciones Java. En este sprint fueron de gran utilidad y ciertas tareas que al principio se estimó que conllevarían más trabajo fueron más sencillas y rápidas. Al final el trabajo real en horas que llevó cada tarea se muestra en la Tabla 16. Sprint Tarea Horas de trabajo T1. Definición de ciclo de vida del vocabulario. 4 T2. Diseño primitivas de gestión de vocabularios. 4 T3. Configuración entorno de desarrollo. - 1 T3.1 Instalación máquina virtual de Oracle OEL T3.2 Instalación Oracle 12c. 25 T3.3 Instalación máquina virtual Ubuntu Server T3.4 Instalación Spring Tool Suite. 0,3 T3.5 Instalación Mercurial. 0,3 T3.6 Integración Spring Tool Suite Mercurial. 0,3 T3.7 Creación de un repositorio en Bitbucket. 0,3 T3.8 Conectar repositorio con Spring Tool Suite. 1 T4. Aprendizaje nuevas tecnologías. - T4.1 Aprender Spring. 15,29 T4.2 Spring WS. 1,22 T4.3 Spring WS REST. 7,34 T4.4 Seminario WS Rest Spring. 1,34 T5. Configuración del entorno existente. 9,58 T6. Montar entorno completo de producción inicial. 0,57 T7. Implementación de la funcionalidad insertar vocabularios. 2,33 T8. Implementación de la funcionalidad consultar vocabulario. 6,45 T9. Implementación de la funcionalidad actualizar vocabulario. 6,24 T10. Implementación de la funcionalidad eliminar vocabulario. 3,45 Tabla 16. Trabajo del Sprint 1. La comparativa entre lo estimado y el trabajo real se puede ver en la grafica Burn-Up, representada en la Figura 25.

85 T1 T2 T3 T3.1 T3.2 T3.3 T3.4 T3.5 T3.6 T3.7 T3.8 T4 T4.1 T4.2 T4.3 T4.4 T5 T6 T7 T8 T9 T10 T11 5. RESULTADOS 59 Sprint Trabajo Real Trabajo Estimado Figura 25. Gráfico Burn-up de la revisión del Sprint 1. En este sprint la estimación ha sido mejor que en el sprint 0, aunque en este caso el trabajo estimado ha sido más que el trabajo que en realidad conllevaba hacer estas tareas. Uno de los motivos puede ser el desconocimiento a priori de la tecnología que se iba a utilizar, que al final resultó más sencilla de lo que se esperaba, una buena lección para aplicar en el futuro Retrospectiva del Sprint Para finalizar el sprint, se reunió el Equipo Scrum para revisar los objetivos marcados con la pila del producto. Se vio por primera vez el primer prototipo del producto, con la funcionalidad para insertar, consultar, modificar y eliminar vocabularios. 59

86 Sprint Planificación del Sprint La pila del sprint 2 está formada únicamente por la historia de usuario 1 (Tabla 17). Historia de Usuario Número: 1 Rol: Usuario Nombre historia: Gestión de términos Valor de negocio: 90 Esfuerzo: 8 Descripción: Como usuario del diccionario de datos quiero poder gestionar términos en un vocabulario específico. Postcondición: Al final de este sprint el usuario podrá crear, eliminar, modificar, consultar y listar términos. Tareas: T1. Diseño de primitivas de gestión de términos. T2. Implementación de la funcionalidad insertar términos. T3. Implementación de la funcionalidad consultar términos. T4. Implementación de la funcionalidad actualizar términos. T5. Implementación de la funcionalidad eliminar términos. T6. Implementación de la funcionalidad listar términos. Tabla 17. Historia de Usuario del Sprint 2. Se implementará la función gestión de términos. En la Tabla 18 se puede observar la estimación que se realizó inicialmente para este Sprint 2 de las tareas y cada estimación en horas para cada una de ellas. Dado que aquí la desarrolladora conocía mejor la tecnología, se hizo una reestimación del sprint, que quedó como en la columna reestimación del esfuerzo. En este caso no fue necesario añadir ninguna tarea adicional.

87 5. RESULTADOS 61 Sprint 2 Tarea Horas Horas estimadas reestimadas T1. Diseño de primitivas de gestión de términos. 4 2 T2. Implementación de la funcionalidad insertar términos T3. Implementación de la funcionalidad consultar términos T4. Implementación de la funcionalidad actualizar términos T5. Implementación de la funcionalidad eliminar términos T6. Implementación de la funcionalidad listar términos Tabla 18. Tareas y estimación del esfuerzo del Sprint Tareas del Sprint T1. Diseño de primitivas de gestión de términos En esta tarea se diseñaron las primitivas de gestión de vocabularios y se plasmaron en una interfaz para que más tarde fuesen implementadas como puede verse en el siguiente Listado 11. public interface ITermService { public void addterm(term t); public Term getterm(string id); public List <Term> listterms(); public void updateterm(term t); public void deleteterm(string id); } Listado 11. Interfaz de primitivas de Gestión de Términos T2. Implementación de la funcionalidad insertar términos En primer lugar se ha desarrollado el servicio web REST para insertar términos en el diccionario de datos. En la siguiente Figura 26 se puede ver la estructura de las clases para ello: Figura 26. Diagrama de clases de análisis para insertar términos en DaDI8K Services. En el Listado 12 se puede ver el código del controlador para insertar términos: 61

88 method = RequestMethod.POST) public void addterm Term t){ this.termservice.addterm(t); } Listado 12. Método del controlador DaDI8K Services para insertar términos. En la Figura 27 se puede ver cómo funcionaría el flujo de la aplicación desde que el usuario realiza la acción: Figura 27. Diagrama de clases de análisis para insertar términos en DaDI8K Tool T3. Implementación de la funcionalidad consultar términos En primer lugar se ha desarrollado el servicio web REST para consultar términos del diccionario de datos. En la Figura 28 se muestra la estructura de las clases para ello: Figura 28. Diagrama de clases de análisis para consultar términos en DaDI8K Services. En el Listado 13 se puede ver el código del controlador para consultar public Term String id){ return this.termservice.getterm(id); } Listado 13. Método del controlador DaDI8K Services para consultar términos. En la Figura 29 se representa cómo funcionaría el flujo de la aplicación desde que el usuario realiza la acción:

89 5. RESULTADOS 63 Figura 29. Diagrama de clases de análisis para consultar términos en DaDI8K Tool T4. Implementación de la funcionalidad actualizar términos En primer lugar se ha desarrollado el servicio web REST para actualizar términos del diccionario de datos. En la Figura 30 se puede ver la estructura de las clases para ello: Figura 30. Diagrama de clases de análisis para actualizar términos en DaDI8K Services. En el Listado 14 se muestra el código del controlador para actualizar public void updateterm Term t){ this.termservice.updateterm(t); } Listado 14. Método del controlador DaDI8K Services para actualizar términos. En la Figura 31 representa el flujo de la aplicación desde que el usuario realiza la acción: Figura 31. Diagrama de clases de análisis para actualizar términos en DaDI8K Tool. 63

90 T5. Implementación de la funcionalidad eliminar términos En primer lugar se ha desarrollado el servicio web REST para eliminar términos del diccionario de datos. En la Figura 32 se puede ver la estructura de las clases para ello: Figura 32. Diagrama de clases de análisis para eliminar términos en DaDI8K Services. El Listado 15 muestra el código del controlador para eliminar public void deleteterm String id){ this.termservice.deleteterm(id); } Listado 15. Método del controlador DaDI8K Services para eliminar términos. En la Figura 33 se representa cómo funcionaría el flujo de la aplicación desde que el usuario realiza la acción: Figura 33. Diagrama de clases de análisis para eliminar términos en DaDI8K Tool T6. Implementación de la funcionalidad listar términos En primer lugar se ha desarrollado el servicio web REST para listar los términos del diccionario de datos. En la Figura 34 se puede ver la estructura de las clases para ello:

91 5. RESULTADOS 65 Figura 34. Diagrama de clases de análisis para listar términos en DaDI8K Tool. En el Listado 16 se puede ver el código del controlador para listar los public List <Term> listterms(){ return this.termservice.listterms(); } Listado 16. Método del controlador DaDI8K Services para listar vocabularios. La Figura 35 muestra cómo funcionaría el flujo de la aplicación desde que el usuario realiza la acción: Figura 35. Diagrama de clases de análisis para listar términos en DaDI8K Tool Revisión del Sprint Al final del sprint se reunió el Equipo Scrum para revisar los objetivos con la pila del producto. Se mostró el avance del producto que incluía ciertas mejoras en la ordenación del código. En la Tabla 19 se muestra el trabajo real que llevó cada tarea. Sprint Tarea Horas de trabajo T1. Diseño de primitivas de gestión de términos. 0,25 T2. Implementación de la funcionalidad insertar términos. 1,19 2 T3. Implementación de la funcionalidad consultar términos. 2,23 T4. Implementación de la funcionalidad actualizar términos. 1,01 T5. Implementación de la funcionalidad eliminar términos. 0,45 T6. Implementación de la funcionalidad listar términos. 5,16 Tabla 19. Trabajo del Sprint 2. 65

92 66 Ahora se puede observar en la Figura 36 la comparación entre el trabajo real y el trabajo estimado. Se puede ver que la estimación inicial era mucho peor, pero en la reestimación del sprint al conocer mucho mejor la tecnología la estimación fue mucho más fiel a la realidad. Sprint T1 T2 T3 T4 T5 T6 Trabajo Real Trabajo Estimado Trabajo Reestimación Figura 36. Gráfico Burn-up de la revisión del Sprint 2. En este sprint el trabajo estimado también fue superior al trabajo real. Esto se debió a un mejor conocimiento de la tecnología con la que se trabajaba llegado este punto Retrospectiva del Sprint Para finalizar el sprint, se reunió el Equipo Scrum para revisar los objetivos marcados con la pila del producto. Se vio de nuevo el producto con el trabajo realizado en el sprint 1 y con las funcionalidades para insertar, consultar, modificar y eliminar términos. 5.4 Sprint Planificación del Sprint La pila del sprint está formada únicamente por la historia de usuario 4. Historia de Usuario Número: 4 Rol: Administrador Nombre historia: Gestión de usuarios Valor de negocio: 85 Esfuerzo: 8 Descripción:

93 5. RESULTADOS 67 Como administrador del diccionario de datos quiero poder gestionar usuarios. Postcondición: El administrador podrá crear, modificar, eliminar, consultar y listar usuarios. Tareas: T1. Diseño de primitivas de gestión de usuarios. T2. Implementación de la funcionalidad insertar usuarios. T3. Implementación de la funcionalidad consultar usuarios. T4. Implementación de la funcionalidad actualizar usuarios. T5. Implementación de la funcionalidad eliminar usuarios. T6. Implementación de la funcionalidad listar usuarios. Tabla 20. Historia de Usuario del Sprint 3. En este sprint se tuvo que añadir tareas adicionales porque en la estimación no se habían tenido en cuenta. En la Tabla 21 se encuentra la lista de tareas con las horas estimadas. Sprint Tarea Horas Horas estimadas reestimadas T1. Diseño de primitivas de gestión de usuarios. 5 2 T2. Implementación inicial cliente web. - - T3. Implementación Seguridad Aplicación Web T4. Conectar Aplicación Web con servicios web. - - T5. Implementación de la funcionalidad insertar usuarios T6. Implementación de la funcionalidad consultar usuarios T7. Implementación de la funcionalidad actualizar usuarios T8. Implementación de la funcionalidad eliminar usuarios T9. Implementación de la funcionalidad listar usuarios Tabla 21. Tareas y estimación del esfuerzo del Sprint 3. Al igual que en el sprint 2, la tecnología era bastante más conocida y se reestimaron las tareas de la historia de la pila del sprint. 67

94 Tareas del Sprint T1. Diseño de primitivas de gestión de usuarios En esta tarea se diseñaron las primitivas de gestión de usuarios y se plasmaron en una interfaz para que más tarde fuesen implementadas como se puede ver en el Listado 17Figura 37. public interface IUserService { public void adduser(user u); public Term getuser(string id); public List <User> listusers(); public void updateuser(usert); public void deleteuser(string id); } Listado 17. Interfaz de primitivas de Gestión de Usuarios T2. Implementación inicial cliente web Hasta ahora a la interfaz de usuario de DaDI8K Tool le faltaban bastantes elementos y en esta tarea se construyó una interfaz de usuario. Fue la primera versión. En el siguiente sprint se mostrará el resultado completo T3. Implementación Seguridad Aplicación Web Para la aplicación de la seguridad el primer paso en esta tarea fue crear el modelo usuario y como esta herramienta necesita de diferentes roles se decidió añadir un modelo para los roles. Este diseño tiene varias ventajas, la más significativa es que se pueden añadir nuevos roles a la aplicación de forma sencilla, y permite a los usuarios tener varios roles sin tener que modificar nada de lo existente. En la Figura 37 se muestra la estructura para la autenticación: Figura 37. Modelo de datos para Usuarios.

95 5. RESULTADOS En esta tarea se puso en funcionamiento Spring Security. Únicamente fue necesario añadir una nueva clase de configuración y añadirla a la clase de configuración principal. En el Listado 18 se puede ver la clase Java de configuración para public class SecurityConfig extends WebSecurityConfigurerAdapter DataSource public void configure(websecurity web) throws Exception { web.ignoring().antmatchers("/resources/**"); public void configauthentication(authenticationmanagerbuilder auth) throws Exception { auth.jdbcauthentication().datasource(datasource).usersbyusernamequery( "select username,password, enabled from users where username=?").authoritiesbyusernamequery( "select username, role from user_roles where username=?"); protected void configure(httpsecurity http) throws Exception { http.authorizerequests().antmatchers("/admin/**").access("hasrole('role_admin')").antmatchers("/user/**").access("hasrole('role_admin') or hasrole('role_user')").antmatchers("/dictionary/**").access("hasrole('role_admin') or hasrole('role_user')").and().formlogin().loginpage("/login").failureurl("/login?error").and().logout().logoutsuccessurl("/login?logout").and().csrf().and().exceptionhandling().accessdeniedpage( "/403" ); 69 } public PasswordEncoder passwordencoder(){ PasswordEncoder encoder = new BCryptPasswordEncoder(); return encoder; } Listado 18. Clase de configuración Spring Security. 69

96 70 Como se puede ver, en el método configauthentication se encuentra la configuración para la autenticación mediante base de datos. En el método configure se configuran los permisos de acceso para las diferentes rutas de DaDI8K en función del rol que tenga el usuario una vez pasada la autenticación. Además se indica la página de login personalizada a la que tiene que conducir, así como en el caso en que el usuario o contraseña sean erróneos. Además se indica la ruta a la que debe dirigirse la aplicación cuando un usuario intente acceder a algún recurso al que no esté autorizado T4. Conectar Aplicación Web con servicios web En esta tarea se conectaron algunos servicios web de gestión del diccionario con la herramienta DaDI8K y se añadieron nuevos servicios referentes a las organizaciones, lenguajes, status y definiciones T5. Implementación de la funcionalidad insertar usuarios Aunque las operaciones con usuarios en un principio son iguales que las anteriores, se decidió que no formaran parte del conjunto de servicios web y se implementaría únicamente en DaDI8K. Así los servicios de gestión del diccionario de datos permanecerían aislados del resto de operaciones. En el Listado 19 se muestra el código del controlador para insertar nuevos method = RequestMethod.POST) public String formuser (ModelMap map){ map.addattribute("user",new User()); return "user/add"; } Listado 19. Método del controlador para insertar usuarios. En la Figura 38 se puede ver cómo funcionaría el flujo de la aplicación desde que el usuario realiza la acción: Figura 38. Diagrama de clases de análisis para insertar usuarios.

97 5. RESULTADOS T6. Implementación de la funcionalidad consultar usuarios Al no conectar necesariamente con los servicios de gestión del diccionario, lo más importante en la implementación de esta funcionalidad es el controlador que se muestra en el Listado public String id,modelmap map){ User v=this.userservice.getuser(id); map.put("user", v); return "user/show"; } Listado 20. Método del controlador para consultar usuarios. Otro elemento a destacar es el servicio con el que se hace efectiva la consulta de public UserDetails loaduserbyusername(final String username) throws UsernameNotFoundException { com.uclm.dadi8kclient.persistence.model.user user = userdao.findbyusername(username); List<GrantedAuthority> authorities = builduserauthority(user.getuserrole()); return builduserforauthentication(user, authorities); } private User builduserforauthentication(com.uclm.dadi8kclient.persistence.model.u ser user, List<GrantedAuthority> authorities) { return new User(user.getUsername(), user.getpassword(), user.isenabled(), true, true, true, authorities); } private List<GrantedAuthority> builduserauthority(set<userrole> userroles) { Set<GrantedAuthority> setauths = new HashSet<GrantedAuthority>(); // Build user's authorities for (UserRole userrole : userroles) { setauths.add(new SimpleGrantedAuthority(userRole.getRole())); } List<GrantedAuthority> Result = new ArrayList<GrantedAuthority>(setAuths); return Result; } Listado 21. Consulta de usuarios. 71 En la Figura 39 se muestra el flujo de la aplicación desde que el usuario realiza la acción: 71

98 72 Figura 39. Diagrama de clases de análisis para consultar usuarios T7. Implementación de la funcionalidad actualizar usuarios Al igual que en la anterior tarea, lo más importante en la implementación de esta funcionalidad es el controlador que se puede ver en el Listado public String updateuser User v, ModelMap map){ this.userservice.updateuser(v); return "redirect:user/all"; } Listado 22. Método del controlador para actualizar usuarios. En la siguiente Figura 40 se representa el flujo de la aplicación desde que el usuario realiza la acción: Figura 40. Diagrama de clases de análisis para actualizar usuarios T8. Implementación de la funcionalidad eliminar usuarios Lo más importante en la implementación de esta funcionalidad es el controlador que se presenta en el Listado public String id,modelmap map){ this.userservice.deleteuser(id); return "redirect:user/all"; } Listado 23. Método del controlador para eliminar usuarios.

99 73 5. RESULTADOS En la Figura 41 se puede ver cómo funcionaría el flujo de la aplicación desde que el usuario realiza la acción: Figura 41. Diagrama de clases de análisis para eliminar usuarios T9. Implementación de la funcionalidad listar usuarios Lo más importante en la implementación de esta funcionalidad es el controlador que se puede ver en el Listado public String listvocabularies(modelmap map){ List<User> list=this.userservice.listvocabularies(); map.put("vocabularies", list); return "user"; } Listado 24. Método del controlador para listar usuarios. En la Figura 42 se puede ver cómo funcionaría el flujo de la aplicación desde que el usuario realiza la acción: Figura 42. Diagrama de clases de análisis para listar usuarios Revisión del Sprint Al final del sprint se reunió el Equipo Scrum para revisar los objetivos con la pila del producto. Se mostró el avance del producto que incluía la seguridad de la herramienta implementada. En la Tabla 22 se muestra el trabajo real que llevó cada tarea. Sprint Tarea Horas de trabajo T1. Diseño de primitivas de gestión de usuarios. 0,1 T2. Implementación inicial cliente web 9,25 3 T3. Implementación Seguridad Aplicación Web 5,59 T4. Conectar Aplicación Web con servicios web 5,18 73

100 74 T5. Implementación de la funcionalidad insertar usuarios. 0,2 T6. Implementación de la funcionalidad consultar usuarios. 0,1 T7. Implementación de la funcionalidad actualizar usuarios. 0,1 T8. Implementación de la funcionalidad eliminar usuarios. 0,1 T9. Implementación de la funcionalidad listar usuarios. 0,1 Tabla 22. Trabajo del Sprint 3. Ahora se puede observar en la Figura 43 la comparación entre el trabajo real y el trabajo estimado. El trabajo reestimado fue menos del trabajo real esperado puesto que surgieron nuevas tareas costosas en tiempo durante el desarrollo que no se habían tenido en cuenta. Si se observan las tareas que costaron más trabajo que el estimado y las tareas menos costosas en trabajo, puede verse como las tareas que no se habían hecho antes costaron más trabajo del esperado y las tareas que ya se conocían y que sólo había que aplicarlas para un dominio diferente Sprint 3 0 T1 T2 T3 T4 T5 T6 T7 T8 T9 Trabajo Real Trabajo Estimado Trabajo Reestimado Figura 43. Gráfico Burn-up de la revisión del Sprint Retrospectiva del Sprint Para finalizar el sprint, se reunió el Equipo Scrum para revisar los objetivos marcados con la pila del producto. Se vio el trabajo realizado con la seguridad en funcionamiento.

101 75 5. RESULTADOS 5.5 Sprint Planificación del Sprint La pila del sprint está formada únicamente por la historia de usuario 2 (véase Tabla 23). Historia de Usuario Número: 2 Rol: Usuario Nombre historia: Búsqueda de términos Valor de negocio: 95 Esfuerzo: 20 Descripción: Como usuario del diccionario de datos quiero poder buscar la correspondencia de un término en un vocabulario específico. Postcondición: Con esta funcionalidad el usuario podrá buscar términos en el diccionario de datos, consultarlos y obtener su correspondencia con otros términos. Tareas: T1. Adaptación del diccionario de datos para soportar el mapeo entre vocabularios. T2. Implementación de la funcionalidad insertar un mapeo entre dos términos de dos vocabularios diferentes. T3. Implementación de la funcionalidad actualizar un mapeo entre dos términos de dos vocabularios diferentes. T4. Implementación de la funcionalidad eliminar un mapeo entre dos términos de dos vocabularios diferentes. T5. Implementación de la funcionalidad consultar un mapeo entre dos términos de dos vocabularios diferentes. Tabla 23. Historia de Usuario del Sprint 4. En este sprint se tuvo que añadir tareas adicionales porque en la estimación no se habían tenido en cuenta. En la Tabla 24 se muestran la lista de tareas con las horas estimadas. 75

102 76 Sprint 4 Tarea Horas Horas estimadas reestimadas T1. Diseño Interfaz de Usuario Aplicación. - - T2. Introducción Framework Tiles para páginas web. - - T3. Adaptación del diccionario de datos para soportar el mapeo entre vocabularios T4. Implementación de la funcionalidad insertar un mapeo entre dos términos de dos 20 3 vocabularios diferentes. T5. Implementación de la funcionalidad actualizar un mapeo entre dos términos de dos 20 3 vocabularios diferentes. T6. Implementación de la funcionalidad eliminar un mapeo entre dos términos de dos 20 3 vocabularios diferentes. T7. Implementación de la funcionalidad consultar un mapeo entre dos términos de dos vocabularios diferentes Tabla 24. Tareas y estimación del esfuerzo del Sprint 4. En este sprint también se reestimó el trabajo por los mismos motivos que en los anteriores Tareas del Sprint T1. Diseño Interfaz de Usuario Aplicación En esta tarea se organizaron las vistas por dominio. Se creó una carpeta para cada elemento (vocabulario, término, organización, etc.) Se añadió Bootstrap para mejorar el diseño visual y utilizar los componentes que proporciona. Además utilizando Bootstrap se consigue que DaDI8K Tool sea responsive y por tanto, se pueda utilizar en diferentes dispositivos como tablets, smartphones u ordenadores personales. En definitiva, desde cualquier dispositivo que tenga un navegador web. La estructura quedó como se describe en la siguiente Figura 44:

103 5. RESULTADOS 77 Figura 44. Estructura del diseño de DaDI8K Tool T2. Introducción Framework Tiles para páginas web. Una vez ordenadas y estructuradas las vistas, se introdujo el framework Tiles para definir un estilo único para la herramienta. Esto se consigue con la definición de la estructura visual mediante un archivo JSP, en este caso layout.jsp. El aspecto más importante es que mediante el código se especifican las partes dinámicas que cambiará según la vista. Esto será en su mayor parte contenido. Una vez definida la estructura, se utilizan las definiciones para indicar la vista y los elementos dinámicos para cada llamada de un cliente a una URL de la herramienta. Se utiliza un archivo XML que se especifica en la configuración de las vistas de la aplicación. El resultado es la página web solicitada. En el siguiente Listado 25 se puede ver 77

104 78 definiciones para distintas llamadas. Por simplicidad no se incluyen todas, pero están disponibles en el Anexo H (Véase Anexo H). <definition name="defaulttemplate" template="/web-inf/views/layout/layout.jsp"> <put-attribute name="title" value="dadi8k - Home" /> <put-attribute name="header" value="/web- INF/views/layout/header.jsp" /> <put-attribute name="menu" value="/web- INF/views/layout/menu-user.jsp" /> <put-attribute name="body" value="" /> <put-attribute name="footer" value="/web- INF/views/layout/footer.jsp" /> </definition> <definition name="login" template="/web-inf/views/login-google.jsp"> <put-attribute name="title" value="dadi8k - Login" /> </definition> Listado 25. Definiciones Apache Tiles T3. Adaptación del diccionario de datos para soportar el mapeo entre vocabularios Partiendo del diccionario de datos de I8K, cuyo modelo de datos se describe en la Figura 45: Figura 45. Modelo de Datos del diccionario de datos I8K.

105 79 5. RESULTADOS El diccionario de datos I8K no contemplaba como tal la entidad vocabulario. Se decidió añadir esta entidad para poder añadir información sobre los vocabularios, como descripciones u organizaciones involucradas. Este cambio es el más significativo T4. Implementación de la funcionalidad insertar un mapeo entre dos términos Lo más importante en la implementación de esta funcionalidad es el controlador que se puede ver en el Listado method = RequestMethod.POST) public String formmapeo (ModelMap map){ map.addattribute("mapeos",languageservice.listmapeos()); map.addattribute("mapeo",new Mapeo()); return "mapeo/add"; } Listado 26. Método controlador insertar mapeo. En la Figura 46 se puede ver cómo funcionaría el flujo de la aplicación desde que el usuario realiza la acción: Figura 46. Diagrama de clases de análisis para insertar mapeos T5. Implementación de la funcionalidad actualizar un mapeo entre dos términos Lo más importante en la implementación de esta funcionalidad es el controlador que se puede ver en el Listado public String updatemapeo Mapeo t, ModelMap map){ this.mapeoservice.updatemapeo(t); return "redirect:mapeo/all"; } Listado 27. Método controlador insertar mapeo. 79

106 80 En la siguiente Figura 47 se representa el flujo de la aplicación desde que el usuario realiza la acción: Figura 47. Diagrama de clases de análisis para actualizar mapeos T6. Implementación de la funcionalidad eliminar un mapeo entre dos términos Lo más importante en la implementación de esta funcionalidad es el controlador, cuyo código se muestra en el Listado public String deletemapeo String id,modelmap map){ this.mapeoservice.deletemapeo(id); return "redirect:mapeo/all"; } Listado 28. Método controlador eliminar mapeo. En la Figura 48 se muestra cómo funcionaría el flujo de la aplicación desde que el usuario realiza la acción: Figura 48. Diagrama de clases de análisis para eliminar mapeos T7. Implementación de la funcionalidad consultar un mapeo entre dos términos Lo más importante en la implementación de esta funcionalidad es el controlador que se puede ver en el Listado 29:

107 5. RESULTADOS public String String id, ModelMap map){ Mapeo t=this.mapeoservice.getmapeo(id); map.put("mapeo", t); return "mapeo/show"; } Listado 29. Método controlador consultar mapeo. En la Figura 49 se puede ver cómo funcionaría el flujo de la aplicación desde que el usuario realiza la acción: Figura 49. Diagrama de clases de análisis para consultar mapeos Revisión del Sprint Al final del sprint se reunió el Equipo Scrum para revisar los objetivos con la pila del producto. Se mostró el avance del producto que incluía el mapeo de términos. En la Tabla 25 se muestra el trabajo real que llevó cada tarea. Sprint Tarea Horas de trabajo T1. Diseño Interfaz de Usuario Aplicación. 13,54 T2. Introducción Framework Tiles para páginas web. 16,33 T3. Adaptación del diccionario de datos para soportar el mapeo entre vocabularios. 3 T4. Implementación de la funcionalidad insertar un mapeo entre dos términos de dos vocabularios diferentes. 2 4 T5. Implementación de la funcionalidad modificar un mapeo entre dos términos de dos vocabularios diferentes. 4,1 T6. Implementación de la funcionalidad actualizar un mapeo entre dos términos de dos vocabularios diferentes. 1,21 T7. Implementación de la funcionalidad eliminar un mapeo entre dos términos de dos vocabularios diferentes. 2,29 T8. Implementación de la funcionalidad consultar un mapeo entre dos términos de dos vocabularios diferentes. 3,1 Tabla 25. Trabajo del Sprint 4. 81

108 82 En la Figura 50 se muestra la comparación entre el trabajo real y el trabajo estimado. En este sprint se introdujeron elementos nuevos, como el framework Tiles. En este caso la reestimación fue mucho mejor y bastante acertada. Como se puede observar, el trabajo real al principio fue mayor que el estimado y después en las tareas que se conocían el tiempo necesario se ajustó mucho a la reestimación. La estimación inicial era mucho peor que la reestimación que se hizo en la planificación del sprint Sprint 4 0 T1 T2 T3 T4 T5 T6 T7 T8 Trabajo Real Trabajo Estimado Trabajo Reestimado Figura 50. Gráfico Burn-up de la revisión del Sprint Retrospectiva del Sprint Para finalizar el sprint, se reunió el Equipo Scrum para revisar los objetivos marcados con la pila del producto. Se vio el trabajo realizado con nuevos aspectos visuales incluidos. 5.6 Sprint Planificación del Sprint La pila del sprint está formada únicamente por la historia de usuario 5 tal como se muestra en la Tabla 26. Historia de Usuario del Sprint 5.Tabla 26. Historia de Usuario Número: 5 Rol: Usuario Nombre historia: Diferentes diccionarios Valor de negocio: 65 Esfuerzo: 13 Descripción:

109 5. RESULTADOS 83 Como usuario del diccionario de datos quiero poder usar otros vocabularios de otros diccionarios de datos. Postcondición: El usuario podrá utilizar diferentes diccionarios para consultar términos. Tareas: T1. Definición de los mecanismos de interoperabilidad entre diccionarios mediante servicios web. T2. Implementación de la funcionalidad listar diccionarios. T3. Implementación de la funcionalidad elegir diccionario para el usuario. Tabla 26. Historia de Usuario del Sprint 5. En la Tabla 27 se muestra la estimación inicial que se hizo para las tareas de la pila del producto: Sprint 5 Tarea Horas Horas estimadas reestimadas T1. Definición de los mecanismos de interoperabilidad entre diccionarios mediante servicios web. 5 2 T2 Aprender a programar servicios web (consumibles y para consumir) - - T2.1 Aprender SOAP 20 - T2.2 Aprender WDSL 15 - T3. Implementación de la funcionalidad listar diccionarios T4. Implementación de la funcionalidad elegir diccionario para el usuario Tabla 27. Tareas y estimación del esfuerzo del Sprint 5. Como en anteriores sprints, al tener más experiencia se reestimó mejor el esfuerzo de las tareas Tareas del Sprint T2 Aprender a programar servicios web. Esta tarea no fue necesaria, puesto que en sprints anteriores se abordó esta tarea y al llegar a este punto del proyecto, ya se tenían los conocimientos necesarios para llevarlo a cabo. 83

110 T3. Implementación de la funcionalidad listar diccionarios. En primer lugar se ha desarrollado el servicio web REST para listar los diccionarios de datos disponibles. En la Figura 51 se puede ver la estructura de las clases para ello: Figura 51. Diagrama de clases de análisis para listar diccionarios en DaDI8K Services. En la Figura 52 se muestra el flujo de la aplicación desde que el usuario realiza la acción: Figura 52. Diagrama de clases de análisis para listar diccionarios en DaDI8K Tool T4. Implementación de la funcionalidad elegir diccionario para el usuario. En primer lugar se ha desarrollado el servicio web REST para elegir diccionario de datos. En la siguiente Figura 53 se puede ver la estructura de las clases para ello: Figura 53. Diagrama de clases de análisis para elegir diccionarios en DaDI8K Services. En la Figura 54 se puede ver cómo funcionaría el flujo de la aplicación desde que el usuario realiza la acción: Figura 54. Diagrama de clases de análisis para elegir diccionarios en DaDI8K Tool.

111 5. RESULTADOS Revisión del Sprint Al final del sprint se reunió el Equipo Scrum para revisar los objetivos con la pila del producto. Se mostró el avance del producto que incluía el manejo de diferentes diccionarios de datos. En la Tabla 28 se muestra el trabajo real que llevó cada tarea. Sprint Tarea Horas de trabajo T1. Definición de los mecanismos de interoperabilidad entre diccionarios mediante servicios web. 1,5 T2 Aprender a programar servicios web (consumibles y para consumir) - 5 T2.1 Aprender SOAP - T2.2 Aprender WDSL - T3. Implementación de la funcionalidad listar diccionarios. 6,25 T4. Implementación de la funcionalidad elegir diccionario para el usuario. 8,02 Tabla 28. Trabajo del Sprint 5. En la comparación del trabajo realizado y el estimado, se puede ver que las estimaciones mejoran en cada sprint. Se puede observar en la Figura 55 que la estimación inicial es mucho peor que la reestimación del sprint, y a su vez, la reestimación del sprint se asemeja al trabajo real Sprint T1 T2 T2.1 T2.2 T3 T4 Trabajo Real Trabajo Estimado Trabajo Reestimado Figura 55. Gráfico Burn-up de la revisión del Sprint 5. 85

112 Retrospectiva del Sprint Para finalizar el sprint, se reunió el Equipo Scrum para revisar los objetivos marcados con la pila del producto. Se vio el trabajo realizado que incluía la lista de diccionarios de datos disponibles. 5.7 Sprint Planificación del Sprint En este sprint se aborda la finalización del proyecto. A continuación se muestra la estimación inicial. Sprint 6 Tarea Horas Horas estimadas reestimadas T1. Creación un manual de usuario T2. Elaboración de la memoria final del TFG Tabla 29. Tareas y estimación del esfuerzo del Sprint 6. En este sprint también se realizó una reestimación al inicio del sprint, en este caso estimando mayor esfuerzo para la Tarea Tareas del Sprint En este sprint se abordó las tareas de la creación de un manual de usuario para DaDI8K y la memoria de este TFG. Este documento representa en sí el artefacto obtenido de este sprint Revisión del Sprint El trabajo real de cada tarea del sprint es el siguiente: Sprint Tarea Horas estimadas T1. Creación un manual de usuario 14 6 T2. Elaboración de la memoria final del TFG 86,14 Tabla 30. Trabajo del Sprint 6. En este sprint, el trabajo era más difícil de estimar, puesto que las tareas son únicas y no se repiten en otros sprints, por lo que no se tenía experiencia previa como en los anteriores. Como se puede ver en la Figura 56 el trabajo real fue superior tanto a la estimación inicial como a la reestimación.

113 5. RESULTADOS 87 Sprint T1 T2 Trabajo Real Trabajo Estimado Trabajo Reestimado Figura 56. Gráfico Burn-up de la revisión del Sprint Retrospectiva del Sprint Para finalizar el sprint, se reunió el Equipo Scrum para revisar los objetivos marcados con la pila del producto. Se vio el trabajo realizado en la memoria del TFG. 5.8 Resultados y análisis del proyecto Para finalizar, a continuación se mostrarán los resultados más representativos y relevantes del proyecto. En primer lugar la arquitectura final del proyecto conseguida tras aplicar el método de trabajo. Figura 57. Arquitectura obtenida al aplicar el método de trabajo. 87

114 88 Resulta de especial interés conocer el diagrama de clases completo una vez finalizado el desarrollo al terminar los sprints. Por cuestiones de legibilidad, los diagramas están separados por paquetes. Además por cuestiones de extensión están descritos en la sección de Anexos. El diagrama de clases de DaDI8K Services se encuentra en el anexo E (Véase Anexo E). Además, el diagrama de clases de DaDI8K Tool se encuentra en el anexo F (Véase anexo F). Como resumen de todo lo expuesto anteriormente a cerca de las tecnologías utilizadas en este proyecto y para describir cómo se integra DaDI8K Tool y DaDI8K Services se puede ver gráficamente en la siguiente figura el modelo de capas con la tecnología utilizada. En esta Figura 58 se puede seguir el flujo de información desde que el usuario interactúa con el navegador web, hasta el sistema operativo en el que se encuentra el diccionario de datos pasando por las capas que se gestionan en el servidor. Modelo de Capas Navegador Web (Chrome, Firefox) Capa de Cliente HTML5, CSS3, Javascript (Tiles Framework, Bootstrap) Capa de Aplicación Spring MVC y JSP (Spring Framework 4.1.6, Spring Securtity 3.2.6) Aplicación Servidor Web (Tomcat 8) y JDK 1.8 Capa de Servicios Servicios Web REST Spring (Spring Framework 4.1.6) Capa de Acceso a Datos Hibernate 5 Sistema Operativo Control de Acceso a Repositorio Capa de Datos Sistema Operativo Read library and data acces drivers, search algoritms (Java 1.8) Data Files reposity (Oracle Database 12c) Linux, Solaris, Windows

115 5. RESULTADOS 89 Figura 58. Modelo de Capas e integración de tecnologías. DaDI8K Services ofrece una lista de servicios web que se pueden consultar en el anexo C (Véase Anexo C). Por último, en la Figura 59 se realiza la comparativa del trabajo estimado inicialmente, la reestimación en cada sprint y el trabajo real que se ha llevado a cabo durante todo el proyecto. Como se observa, la estimación inicial se ha sido peor que las reestimaciones en cada sprint, algo lógico puesto que las reestimaciones se realizaban con la experiencia del sprint anterior Trabajo Total DaDI8K Trabajo Real Trabajo Estimado Trabajo Reestimado Figura 59 Resultado de la gestión del trabajo en DaDI8K. 89

116

117 Capítulo 6 Conclusiones y propuestas 6. CONCLUSIONES Y PROPUESTAS En este capítulo se determina la consecución de los objetivos del proyecto fijados en el Capítulo 2, se exponen las conclusiones al finalizar este TFG y se incluyen algunas propuestas de trabajos futuros. Como conclusión final, se proporciona la opinión personal tras la finalización de este TFG. 6.1 Análisis de consecución de los objetivos del proyecto El objetivo principal de este TFG es el desarrollo de una herramienta basada en ISO que de soporte a las operaciones específicas del ciclo de vida de los vocabularios usando el diccionario de datos de I8K. Este objetivo ha sido completado con el diseño y desarrollo de DaDI8K Services y DaDI8K Tool. En la Tabla 31 se exponen los objetivos parciales para la consecución del objetivo principal de este TFG. Como conclusión, se han logrado todos los objetivos propuestos en el Capítulo 2 a lo largo del desarrollo de este proyecto aplicando la metodología de trabajo establecida en el Capítulo Conclusiones El objetivo principal de este TFG se ha satisfecho desarrollando una herramienta basada en ISO que da soporte a las operaciones específicas del ciclo de vida de los vocabularios usando el diccionario de datos I8K. Como elementos principales se de este proyecto se pueden distinguir tres componentes: DaDI8K Services, DaDI8K Tool y el diccionario de datos. Además, con este TFG se satisface la necesidad para las empresas de disponer de estas herramientas para la gestión del ciclo de vida de los vocabularios. Se ha logrado servitizar el acceso al diccionario de datos mediante DaDI8K Services, y pueden ser utilizados por las organizaciones a través de la herramienta DaDI8K Tool, que además ofrece una interfaz que sigue los criterios de usabilidad, es intuitiva y fácil de manejar. 91

118 Objetivos Parciales Spring en el que se ha conseguido Identificación de las primitivas necesarias para la gestión de vocabularios en cada una de las etapas Sprint 1, Sprint 2 del ciclo de vida. Implementación de las primitivas Sprint 1, Sprint 2 necesarias para la gestión de vocabularios en cada una de las etapas del ciclo de vida. Adaptación del formato actual del diccionario de datos para dar mejor Sprint 4 soporte a las primitivas. Creación de un mapper para relacionar términos del diccionario de datos. Sprint 4 Servitización del acceso al diccionario Sprint 1, Sprint 2, Sprint 3, de datos para su interoperabilidad. Sprint 4, Sprint 5 Desarrollo de una interfaz de usuario amigable guiada por los principios Sprint 4 correspondientes de usabilidad. Tabla 31. Consecución de objetivos del proyecto. Consecución 6.3 Propuestas de trabajos futuros En el desarrollo de este TGF han surgido posibles mejoras de DaDI8K. A continuación se indican las más relevantes: Diseñar una metodología para el diseño de diccionarios con técnicas de Data Cataloging. Diseñar una metodología para la gestión del ciclo de vida de los datos maestros. Desarrollar un plan para el control de versiones para los vocabularios dentro del diccionario de datos. Habilitar la comunicación mediante el protocolo HTTPS entre DaDI8K Services y los clientes (como DaDI8K Tool).

119 6. CONCLUSIONES Y PROPUESTAS Opinión personal En este proyecto se ven reflejados muchos de los conocimientos que he ido adquiriendo durante estos años. Con la implementación de este TFG he conseguido ampliar y afianzar muchos de los conocimientos que he ido adquiriendo durante mis estudios y comprender mejor la importancia y la aplicación de la teoría en un trabajo real. Una vez finalizado, cabe destacar en concreto el interés que despierta en mí profundizar en la Gestión de Datos Maestros porque a través de ello puedo trabajar en el diseño de soluciones tecnológicas para las organizaciones, algo que me apasiona, conociendo de primera mano los modelos de datos con los que trabajan. La informática es un campo muy amplio, y con esto, he podido encontrar algo en lo que me gustaría seguir trabajando en el futuro. Si hay algo que ha marcado este proyecto, es la ilusión con la que he trabajado para llegar hasta aquí y con la que lo he desarrollado. Para mí supone el último e importante paso para conseguir algo por lo que me propuse y por lo que he estado luchando durante mucho tiempo, y es la oportunidad de llegar a ser Graduada en Ingeniera Informática. Una vez que he llegado hasta aquí, me gustaría que esto no suponga un punto y final, sino un punto y seguido, que suponga seguir aprendiendo y trabajando en algo por lo que siento pasión, la informática. Ana Isabel Gómez Carretero Ciudad Real a 30 de Junio de

120

121 Bibliografía BIBLIOGRAFÍA [1] P. Woodall, A. K. Parlikad, and L. Lebrun, "Approaches to Information Quality Management: State of the Practice of UK Asset-Intensive Organisations," in Asset Condition, Information Systems and Decision Models, ed: Springer, 2013, pp [2] M. Mosley, M. Brackett, S. Earley, and D. Henderson, Eds., The DAMA Guide to Data Management Body of Knowledge (DAMA-DMBOK Guide)-First Edition. Data Management International, 2009, p.^pp. Pages. [3] D. McGilvray, Executing Data Quality Project: Ten Steps to Quality Data and Trusted Information. Burlington, MA, USA: Morgan Kaufmann, [4] D. Loshin, The Practitioner's Guide to Data Quality Improvement: Morgan Kauffman, [5] ISO, "ISO :2013 Codes for the representation of names of countries and their subdivisions Part 3: Code for formerly used names of countries," [6] ISO, "ISO : Master Data: Exchange of characteristic data: Vocabulary," ed, [7] A. Borek, A. K. Parlikad, J. Webb, and P. Woodall, Total Information Risk Management: Maximizing the Value of Data and Information Assets: Newnes, [8] E. Grantner. (2007) ISO A Standard for Data Quality. Logistics Spectrum. Available: [9] ISO, "ISO : Master Data: Exchange of characteristic data: Syntax, semantic encoding, and conformance to data specification," ed, [10] R. L. Sallam, J. Tapadinhas, J. Parenteau, D. Yuen, and B. Hostmann, "Magic quadrant for business intelligence and analytics platforms," Gartner RAS core research notes. Gartner, Stamford, CT, [11] I. Caballero, I. Bermejo, L. Parody, M. T. Gómez-López, R. M. Gasca, and M. Piattini, "I8K: An Implementation of ISO x0," presented at the 17th International Conference on Information Quality (ICIQ), Little Rock, AR, USA, [12] I. Bermejo, "I8K: Arquitectura de Servicios para la Gestión de la Calidad de los Datos: Una implementación de ISO 8000: ," [13] Oracle, "Master Data Management: An Oracle White Paper. Overview: Oracle Master Data Management," [14] B. Otto and A. Schmidt, "Enterprise Master Data Architecture: Design Decisions and Options," in International Conference on Information Quality, ICIQ, Little Rock, USA., [15] D. Loshin, Master Data Management. Burlington, MA, USA: Morgan Kaufmann, [16] P. R. Benson, "Managing a Data Cleansing Process for Materials or Services Edition II, ECCMA White paper.," [17] R. H. Wolter, K., "The What, Why, and How of Master Data Management.," [18] B. Otto, "Data Governance. Business & Information Systes Engineering," [19] J. Eyob, "Master Data Management: A study of challenges and success factors at NCC," [20] A. White, "MDM 'Primer': How to Define Master Data and Related Data in YourOrganization," [21] B. Otto, Andreas Reichert, and Hubert Österle, "A reference process model for master data management.." [22] B. Otto and A. Reichert, "Organizing master data management: findings from an expert survey. Proceedings of the 2010 ACM Symposium on Applied Computing.,"

122 [23] Gartner, ""Sitio Web Oficial Gartner" [Online] Available: [Accessed: 22-Jun-2015]," [24] I. o. B. V. IBM, "Connect more: Intersecting insights from the IBM Global CEO, CMO and CIO Studies. [Online] Available: [Accessed: 22-Jun- 2015]," [25] IBM, "The MDM advantage: Creating insight from big data," [26] A. W. Jochen Kokemüller, "Master Data Management Products and Research," [27] P. Walter, Werth, D. Loos, P., "Peer-to-Peer-Based Model-Management for Cross- Organizational Business Processes, pp ," [28] H. H. David Booth, Francis McCabe, Eric Newcomer, Michael Champion, Chris Ferris, David Orchard, "Web Services Architecture," [29] R. Navarro, "Modelado, Diseño e Implementación de Servicios Web. ELP-DSIC-UPV," [30] M. Fowler and J. Highsmith, "The agile manifesto," Software Development, vol. 9, pp , [31] S. W. Ambler, "Agile software development at scale. In Balancing Agility and Formalism in Software Engineering (pp. 1-12). Springer Berlin Heidelberg.," [32] J. Garzás, J. Enríquez, and E. Irrazábal, "Gestión Ágil de Proyectos Software," Kybele Consulting, [33] J. Palacio and C. Ruata, "Scrum Manager Gestión de Proyectos," ed: Autoedición, [34] J. Garzás, ""Sitio Web Oficial Javier Garzás" [Online] Available: [Accessed: 22-Jun-2015]," [35] Bitbucket, ""Sitio Web Oficial Bitbucket" [Online] Available: [Accessed: 24-Jun-2015]," [36] Mercurial, ""Sitio Web Oficial Mercurial" [Online] Available: [Accessed: 24-Jun-2015]," [37] Mercurial, ""Sitio Web Oficial Mercurial" [Online] Available: https://mercurial.selenic.com/wiki/mercurialeclipse. [Accessed: 24-Jun-2015]," [38] Microsoft, ""Sitio Web Oficial Microsoft" [Online] Available: https://www.microsoft.com/es-es/outlook-com/. [Accessed: 24-Jun-2015]," [39] Microsoft, ""Sitio Web Oficial Microsoft" [Online] Available: https://products.office.com/es-es/excel. [Accessed: 24-Jun-2015]," [40] V.Paradigm, ""Sitio Web Oficial Visual Paradigm" [Online] Available: [Accessed: 24-Jun-2015]," [41] R. Johnson, J. Hoeller, K. Donald, C. Sampaleanu, R. Harrop, T. Risberg, et al., "The spring framework, reference documentation."," ed, [42] Spring, ""Sitio Web Oficial Spring" [Online] Available: [Accessed: 24- Jun-2015]," [43] Spring, ""Sitio Web Oficial Spring" [Online] Available: [Accessed: 24-Jun-2015]," [44] Spring, ""Sitio Web Oficial Spring" [Online] Available: [Accessed: 24-Jun-2015]," [45] Spring, ""Sitio Web Oficial Spring" [Online] Available: https://spring.io/tools. [Accessed: 25-Jun-2015]," [46] Oracle, ""Sitio Web Oficial Oracle" [Online] Available: [Accessed: 22-Jun-2015]," [47] Apache, ""Sitio Web Oficial Apache" [Online] Available: https://maven.apache.org/. [Accessed: 24-Jun-2015]," [48] Bootstrap, ""Sitio Web Oficial Bootstrap" [Online] Available: [Accessed: 25-Jun-2015]," [49] W3C, ""Sitio Web Oficial W3C" [Online] Available: [Accessed: 25-Jun-2015],"

123 BIBLIOGRAFÍA [50] Oracle, ""Sitio Web Oficial Oracle" [Online] Available: [Accessed: 23-Jun- 2015]," [51] W3C, ""Sitio Web Oficial W3C" [Online] Available: [Accessed: 23-Jun-2015]," [52] Oracle, ""Sitio Web Oficial Virtual Box" [Online] Available: https://www.virtualbox.org/. [Accessed: 22-Jun-2015]," [53] Oracle, ""Sitio Web Oficial Oracle" [Online] Available: [Accessed: 24-Jun- 2015]," [54] Ubuntu, ""Sitio Web Oficial Ubuntu" [Online] Available: [Accessed: 24-Jun-2015]," [55] Apache, ""Sitio Web Oficial Apache" [Online] Available: [Accessed: 23-Jun-2015]," [56] Oracle, ""Sitio Web Oficial Oracle" [Online] Available: [Accessed: 24- Jun-2015]," [57] RedHat, ""Sitio Web Oficial RedHat" [Online] Available: [Accessed: 22-Jun-2015]," [58] JUnit, ""Sitio Web Oficial JUnit" [Online] Available: [Accessed: 23-Jun- 2015]," [59] Postman, ""Sitio Web Oficial Postman" [Online] Available: https://www.getpostman.com/. [Accessed: 22-Jun-2015]," [60] Microsoft, ""Sitio Web Oficial Microsoft" [Online] Available: https://products.office.com/es-es/word. [Accessed: 23-Jun-2015]," [61] Microsoft, ""Sitio Web Oficial Microsoft" [Online] Available: https://products.office.com/es-es/visio/flowchart-software. [Accessed: 22-Jun-2015]," [62] Dia, ""Sitio Web Oficial Dia" [Online] Available: [Accessed: 22- Jun-2015]," [63] EndNote, ""Sitio Web Oficial EndNote" [Online] Available: [Accessed: 22-Jun-2015]," [64] ScrumAlliance, ""Sitio Web Oficial Scrum Alliance" [Online] Available: https://www.scrumalliance.org/why-scrum/core-scrum-values-roles. [Accessed: 24-Jun- 2015]," [65] S. Rivadeneira, G. Vilanova, M. Miranda, and D. Cruz, "El modelado de requerimientos en las metodologías ágiles," in XV Workshop de Investigadores en Ciencias de la Computación,

124

125 Anexo A Manual de Usuario DaDI8K Tool Para simplificar este manual y hacerlo breve, se realizará la búsqueda de términos y la inserción de un nuevo término, ya que el resto de operaciones es muy similar. 1. Iniciar Sesión Hay dos usuarios para utilizar DaDI8K Tool a modo de demo. Como en esta herramienta hay dos tipos de usuario, se pueden utilizar los siguientes usuarios: Usuario Nombre de Usuario: demo Contraseña: demo Administrador Nombre de Usuario: admin Contraseña: admin 2. Página principal En la página principal se encuentra la interfaz para realizar búsquedas incluyendo parámetros de búsqueda que requiera el usuario (veáse Figura 60). Figura 60. Interfaz de usuario de DaDI8K Tool (Página de Búsqueda). 99

126 3. Búsquedas Cuando se realiza una búsqueda, aparece la lista de términos correspondientes a la búsqueda del usuario. Para cada resultado, se puede operar directamente con el término deseado. 4. Insertar término Figura 61.Interfaz de usuario DaDI8K Tool (Resultados de Búsqueda). Para insertar términos es necesario tener privilegios de administrador. En el menú de la izquierda, hacer click en Terms y aparecerá un submenú desplegable. Figura 62. Intefaz de usuario de DaDI8K Tool (Menú).

127 A continuación hacer elegir la opción Add Term. Aparecerá un formulario con todos los atributos necesarios para insertar un nuevo término. Figura 63. Interfaz de usuario DaDI8K Tool (Formulario añadir término). Para terminar y que sea efectiva la operación hacer click en el botón Add Term y por último aparecerá la información del término que se ha insertado. Figura 64. Interfaz de usuario DaDI8K Tool (Detalles de término). 101

128

129 Anexo B Manual de Instalación 1. Instalación Tomcat. Tomcat es un contenedor de aplicaciones web con soporte de servlets y JSPs. Está disponible para los diferentes Sistemas Operativos del mercado. En este caso, este tutorial se ha realizado en Windows 8.1 y Tomcat 8.0. La instalación es muy sencilla, hay que descargar el archivo ejecutable del sitio web oficial de Apache y contiene un programa de instalación guiada con interfaz de usuario. Una vez instalado estará listo para iniciarse. 2. Incluir WAR en el directorio de aplicaciones Tomcat. Para realizar el despliegue de DaDI8K Services y DaDI8K Tool hay que mover los archivos DaDI8K.war y DaDI8KTool.war al directorio {Dirección Instalación Tomcat}/Tomcat8.0/webapps. Figura 65. Directorio webapps Tomcat Iniciar el servidor Tomcat. El último paso es iniciar el servidor y el despliegue estará terminado. Para navegar por DaDI8K Tool iniciar cualquier navegador web e introducir la dirección: Servidor}/DaDI8KTool 103

UNIVERSIDAD DE CASTILLA-LA MANCHA ESCUELA SUPERIOR DE INFORMÁTICA INGENIERÍA PROYECTO FIN DE CARRERA

UNIVERSIDAD DE CASTILLA-LA MANCHA ESCUELA SUPERIOR DE INFORMÁTICA INGENIERÍA PROYECTO FIN DE CARRERA UNIVERSIDAD DE CASTILLA-LA MANCHA ESCUELA SUPERIOR DE INFORMÁTICA INGENIERÍA EN INFORMÁTICA PROYECTO FIN DE CARRERA I8K: Arquitectura de Servicios para la Gestión de la Calidad de los Datos: Una implementación

Más detalles

CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 16 CUALIFICACIÓN SISTEMAS DE GESTIÓN DE INFORMACIÓN PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC304_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

Más detalles

En este capitulo analizaremos los cuatro diferentes métodos para obtener la

En este capitulo analizaremos los cuatro diferentes métodos para obtener la 2. Marco Teórico En este capitulo analizaremos los cuatro diferentes métodos para obtener la información, para que en base a los resultados de este análisis, poder seleccionar la plataforma de diseño adecuada,

Más detalles

Programación en Capas.

Programación en Capas. Programación en Capas. Ricardo J. Vargas Del Valle Universidad de Costa Rica, Ciencias de Computación e Informática, San José, Costa Rica, 506 ricvargas@gmail.com Juan P. Maltés Granados Universidad de

Más detalles

SWITCH TRANSACCIONAL BASADO EN EL PASO DE MENSAJES XML

SWITCH TRANSACCIONAL BASADO EN EL PASO DE MENSAJES XML SWITCH TRANSACCIONAL BASADO EN EL PASO DE MENSAJES XML Diana Béjar Domínguez 1, Elena Luzuriaga Castro 2, Fabricio Echeverría Briones 3 1 Ingeniera en Computación 2006 2 Ingeniera en Computación 2006 4

Más detalles

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA

CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIPLATAFORMA PROGRAMACIÓN DIDACTICA ANUAL Parte específica del módulo: 0485. Programación Departamento de Familia Profesional de Informática Curso: 2014-15

Más detalles

Gestionando Agile/Scrum con Sciforma

Gestionando Agile/Scrum con Sciforma agile Gestionando Agile/Scrum con Sciforma El desarrollo ágil de software son métodos de ingeniería del software basados en el desarrollo iterativo e incremental, donde los requerimientos y soluciones

Más detalles

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio). 1 GLOSARIO A continuación se definen, en orden alfabético, los conceptos básicos que se han abordado a lo largo del desarrollo de la metodología para la gestión de requisitos bajo la Arquitectura Orientada

Más detalles

MEMORIA DE LAS ACTIVIDADES DESARROLLADAS PROYECTOS DE INNOVACIÓN EDUCATIVA CURSO 2014/2015

MEMORIA DE LAS ACTIVIDADES DESARROLLADAS PROYECTOS DE INNOVACIÓN EDUCATIVA CURSO 2014/2015 MEMORIA DE LAS ACTIVIDADES DESARROLLADAS PROYECTOS DE INNOVACIÓN EDUCATIVA CURSO 2014/2015 DATOS IDENTIFICATIVOS: 1. Título del Proyecto Herramienta para el Desarrollo de Aplicaciones Software con Metodologías

Más detalles

Anuncio de software ZP12-0060 de IBM Europe, Middle East, and Africa con fecha 21 de febrero de 2012

Anuncio de software ZP12-0060 de IBM Europe, Middle East, and Africa con fecha 21 de febrero de 2012 con fecha 21 de febrero de 2012 IBM InfoSphere Master Data Management for Healthcare crea vistas fiables de activos de datos de servicios sanitarios y permite mejorar la efectividad de los procesos empresariales

Más detalles

HERRAMIENTA WEB PARA LA ELABORACIÓN DE TEST BAJO LA ESPECIFICACIÓN IMS-QTI

HERRAMIENTA WEB PARA LA ELABORACIÓN DE TEST BAJO LA ESPECIFICACIÓN IMS-QTI HERRAMIENTA WEB PARA LA ELABORACIÓN DE TEST BAJO LA ESPECIFICACIÓN IMS-QTI Muñoz-Bouchard J.P., y Álvarez-González L.A. jp.knap@gmail.com@gmail.com, lalvarez@inf.uach.cl Grupo de Investigación en Tecnologías

Más detalles

Contenidos. Parte I - Introducción Capítulo 1 - Evolución. Capítulo 2 Condiciones de trabajo en el Desarrollo de Software

Contenidos. Parte I - Introducción Capítulo 1 - Evolución. Capítulo 2 Condiciones de trabajo en el Desarrollo de Software IX Contenidos Prólogo... XIX Prefacio... XXI Guía de lectura...xxiii Parte I - Introducción Capítulo 1 - Evolución 1.1 Introducción... 2 1.2 Los hitos en la evolución histórica del desarrollo de software...

Más detalles

WebRatio. Otro camino para el BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8

WebRatio. Otro camino para el BPM. Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 WebRatio Otro camino para el BPM Web Models s.r.l. www.webratio.com contact@webratio.com 1 / 8 El BPM El BPM (Business Process Management) no es solo una tecnología, además a grandes rasgos es una disciplina

Más detalles

Automatización del Módulo Convenio-Seguros del Sistema Administrativo Financiero para el Hospital León Becerra

Automatización del Módulo Convenio-Seguros del Sistema Administrativo Financiero para el Hospital León Becerra Automatización del Módulo Convenio-Seguros del Sistema Administrativo Financiero para el Hospital León Becerra Mariuxi Salazar Piedra (1), Bryan Valencia Ronquillo (2), Lenin Freire Cobo (3) Escuela Superior

Más detalles

UNIVERSIDAD DE CASTILLA-LA MANCHA ESCUELA SUPERIOR DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA TRABAJO FIN DE GRADO

UNIVERSIDAD DE CASTILLA-LA MANCHA ESCUELA SUPERIOR DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA TRABAJO FIN DE GRADO UNIVERSIDAD DE CASTILLA-LA MANCHA ESCUELA SUPERIOR DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA TECNOLOGÍA ESPECÍFICA DE INGENIERÍA DEL SOFTWARE TRABAJO FIN DE GRADO MAMDTool Herramienta de Soporte para

Más detalles

UNIVERSIDAD TECNOLÓGICA PRIVADA DE SANTA CRUZ FACULTAD DE CIENCIAS Y TECNOLOGIA. CARRERA: Ingeniería en Sistemas

UNIVERSIDAD TECNOLÓGICA PRIVADA DE SANTA CRUZ FACULTAD DE CIENCIAS Y TECNOLOGIA. CARRERA: Ingeniería en Sistemas UNIVERSIDAD TECNOLÓGICA PRIVADA DE SANTA CRUZ FACULTAD DE CIENCIAS Y TECNOLOGIA CARRERA: Ingeniería en Sistemas Perfil de Tesis para Proyecto Empresarial Aplicación para mejorar la evaluación del desempeño

Más detalles

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL

DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Página 1 de 21 CUALIFICACIÓN DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC154_3 Versión 5 Situación RD 1087/2005 Actualización

Más detalles

www.microsoft.com/office/sharepointserver www.abd.es Contenido empresarial administrado en una interfaz de usuario basada en Web.

www.microsoft.com/office/sharepointserver www.abd.es Contenido empresarial administrado en una interfaz de usuario basada en Web. Microsoft Office SharePoint Server 2007 es un conjunto integrado de características de servidor que puede contribuir a mejorar la eficacia organizativa al ofrecer completas funciones de administración

Más detalles

Ingeniería de Software

Ingeniería de Software Ingeniería de Software Tabla de Contenidos PARTE I INTRODUCCIÓN Capítulo 1: Evolución Los hitos en la evolución histórica del Desarrollo de Software Problemas y soluciones... Fallas, malas estimaciones

Más detalles

Una puerta abierta al futuro

Una puerta abierta al futuro Una puerta abierta al futuro SOA E ITIL EN LA LEY DE ACCESO ELECTRÓNICO DE LOS CIUDADANOS A LOS SERVICIOS PÚBLICOS (LAECSP) por francisco javier antón Vique La publicación de la Ley de Acceso electrónico

Más detalles

Cómo lograr una implementación exitosa de SOA?

Cómo lograr una implementación exitosa de SOA? Software Huibert Aalbers Certified Executive Software IT Architect BUE Technical Sales, SW Services Manager IBM de Mexico 2007 IBM Corporation Agenda!Interoperabilidad! De dónde viene SOA?!Las distintas

Más detalles

Informe de avance Implementación herramientas de back-end (3-III).

Informe de avance Implementación herramientas de back-end (3-III). Proyecto RG-T1684 Desarrollo e implementación de las soluciones Prueba piloto del Componente III Informe Número 1. Informe de avance Implementación herramientas de back-end (3-III). Lautaro Matas 11/04/2013

Más detalles

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 6. Actualización

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 6. Actualización Página 1 de 19 CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC303_3 Versión 6 Situación Contraste externo Actualización

Más detalles

Máster en Instalación, Gestión y Mantenimiento de CRM: Gestión de Relaciones con Clientes

Máster en Instalación, Gestión y Mantenimiento de CRM: Gestión de Relaciones con Clientes Máster en Instalación, Gestión y Mantenimiento de CRM: Gestión de Relaciones con Clientes Titulación certificada por EUROINNOVA BUSINESS SCHOOL Máster en Instalación, Gestión y Mantenimiento de CRM: Gestión

Más detalles

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL. Nivel 3. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 17 CUALIFICACIÓN PROGRAMACIÓN DE SISTEMAS INFORMÁTICOS PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 3 Código IFC303_3 Versión 5 Situación RD 1201/2007 Actualización Competencia

Más detalles

Gerencia de Procesos de Negocio (Business Process Management, BPM). Lic. Patricia Palacios Zuleta

Gerencia de Procesos de Negocio (Business Process Management, BPM). Lic. Patricia Palacios Zuleta Gerencia de Procesos de Negocio (Business Process Management, BPM). Lic. Patricia Palacios Zuleta (Business Process Management, BPM). La Gerencia de los Procesos del Negocio: Se define como: "integración

Más detalles

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 18 CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 2 Código IFC297_2 Versión 5 Situación RD 1201/2007 Actualización

Más detalles

Programación orientada a

Programación orientada a Programación orientada a objetos con Java Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Presentar los conceptos de la programación

Más detalles

CL_50466 Windows Azure Solutions with Microsoft Visual Studio 2010

CL_50466 Windows Azure Solutions with Microsoft Visual Studio 2010 Windows Azure Solutions with Microsoft Visual Studio 2010 www.ked.com.mx Av. Revolución No. 374 Col. San Pedro de los Pinos, C.P. 03800, México, D.F. Tel/Fax: 52785560 Introducción Este curso es una introducción

Más detalles

UNIVERSIDAD CENTROCCIDENTAL "LISANDRO ALVARADO" DECANATO DE CIENCIAS Y TECNOLOGIA MAESTRIA EN CIENCIAS DE LA COMPUTACION MENCION REDES DE COMPUTADORAS

UNIVERSIDAD CENTROCCIDENTAL LISANDRO ALVARADO DECANATO DE CIENCIAS Y TECNOLOGIA MAESTRIA EN CIENCIAS DE LA COMPUTACION MENCION REDES DE COMPUTADORAS UNIVERSIDAD CENTROCCIDENTAL "LISANDRO ALVARADO" DECANATO DE CIENCIAS Y TECNOLOGIA MAESTRIA EN CIENCIAS DE LA COMPUTACION MENCION REDES DE COMPUTADORAS MODELO DE GESTION WBEM PARA ADMINISTRACION DE REDES

Más detalles

Tema 4: Diseño de flujos interaplicación

Tema 4: Diseño de flujos interaplicación Tema 4: Diseño de flujos interaplicación 4.1 Introducción a los Sistemas EAI Modelo de referencia (1) INTEGRACIÓN B2B INTEGRACIÓN DE APLICACIONES Y PROCESOS INTEGRACIÓN DE DATOS INTEGRACIÓN DE PLATAFORMA

Más detalles

Mª Luisa Gutiérrez Acebrón División de Informática y Tecnologías de la Información Ministerio de Justicia

Mª Luisa Gutiérrez Acebrón División de Informática y Tecnologías de la Información Ministerio de Justicia Implantación de una arquitectura orientada a servicios. Un caso de uso Mª Luisa Gutiérrez Acebrón División de Informática y Tecnologías de la Información Ministerio de Justicia Introducción Los compromisos

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA... 7 Tarea DSI 1.1: Definición de Niveles de Arquitectura... 9 Tarea DSI

Más detalles

Introducción. http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art143.asp - Gráfica tomada del Artículo de José David Parra

Introducción. http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art143.asp - Gráfica tomada del Artículo de José David Parra Si en otros tiempos el factor decisivo de la producción era la tierra y luego lo fue el capital... hoy día el factor decisivo es cada vez más el hombre mismo, es decir, su conocimiento... Juan Pablo II

Más detalles

Gestión de activos con Maximo y Tivoli Service Request Manager

Gestión de activos con Maximo y Tivoli Service Request Manager en colaboración con: Capgemini e IBM Maximo Gestión de activos con Maximo y Tivoli Service Request Manager Capgemini es en la actualidad el único partner global para la implantación de soluciones de gestión

Más detalles

Tema 2. Ingeniería del Software I feliu.trias@urjc.es

Tema 2. Ingeniería del Software I feliu.trias@urjc.es Tema 2 Ciclo de vida del software Ingeniería del Software I feliu.trias@urjc.es Índice Qué es el ciclo de vida del Software? El Estándar 12207 Modelos de proceso Qué es el Ciclo de Vida del SW? Definición

Más detalles

SOFTWARE PROJECT MANAGEMENT PLAN

SOFTWARE PROJECT MANAGEMENT PLAN SOFTWARE PROJECT MANAGEMENT PLAN HERRAMIENTA PARA LA ADMINISTRACIÓN DE REQUERIMIENTOS DE LOS PROYECTOS DE LAS ASIGNATURAS DE INGENIERÍA Y ARQUITECTURA DE SOFTWARE DE LA PONTIFICIA UNIVERSIDAD JAVERIANA.

Más detalles

Búsqueda sobre catálogos basada en ontologías

Búsqueda sobre catálogos basada en ontologías Búsqueda sobre catálogos basada en ontologías Alianis Pérez Sosa, Yuniel Eliades Proenza Arias Universidad de las Ciencias Informáticas. Carretera a San Antonio Km 2 ½, Reparto Torrens, La Lisa, Ciudad

Más detalles

Bases de datos. 1. Introducción

Bases de datos. 1. Introducción Bases de datos 1. Introducción Habitualmente, los programas trabajan con información que está en un fichero. Por ejemplo, nuestro simulador de tráfico aéreo trabaja con una lista de planes de vuelo que

Más detalles

Boletín de Asesoría Gerencial SOA: enfoque técnico orientado a procesos

Boletín de Asesoría Gerencial SOA: enfoque técnico orientado a procesos Espiñeira, Sheldon y Asociados No. 4-2010 Contenido Haga click en los enlaces para navegar a través del documento Haga click en los enlaces para llegar directamente a cada sección 4 Introducción 4 Qué

Más detalles

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA EE 5. Arquitectura, conceptos y ejemplos. JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones

Más detalles

Integración de Metodologías Ágiles en el Desarrollo de un Sistema de Monitoreo Inalámbrico para Medir la Contaminación del Aire en Tiempo Real.

Integración de Metodologías Ágiles en el Desarrollo de un Sistema de Monitoreo Inalámbrico para Medir la Contaminación del Aire en Tiempo Real. Integración de Metodologías Ágiles en el Desarrollo de un Sistema de Monitoreo Inalámbrico para Medir la Contaminación del Aire en Tiempo Real. Walter Fuertes, Diego Carrera, César Villacís, Fernando Galárraga,

Más detalles

Mantenimiento del Software

Mantenimiento del Software Mantenimiento del Software S3 Francisco Ruiz, Macario Polo Grupo Alarcos Dep. de Informática ESCUELA SUPERIOR DE INFORMÁTICA UNIVERSIDAD DE CASTILLA-LA MANCHA http://alarcos.inf-cr.uclm.es/doc/mso/ Ciudad

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS...2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA...7 Tarea DSI 1.1: Definición de Niveles de Arquitectura...9 Tarea DSI 1.2:

Más detalles

Herramientas de Software que posibilitan el BPM

Herramientas de Software que posibilitan el BPM Qué es BPM? BPM (Business Process Management) no es solamente una tecnología, sino en términos generales, una disciplina gerencial que trata a los procesos como bienes tangibles que contribuyen al desempeño

Más detalles

Módulo Profesional 01: Bases de datos (código: 0484).

Módulo Profesional 01: Bases de datos (código: 0484). Módulo Profesional 01: Bases de datos (código: 0484). Actividades de enseñanza-aprendizaje que permiten alcanzar los objetivos del módulo. Interpretar diseños lógicos de bases de datos. Realizar el diseño

Más detalles

Portal Inteligente Medellín Documentación de la Arquitectura de Software

Portal Inteligente Medellín Documentación de la Arquitectura de Software Guías para las API de servicios Portal Inteligente Medellín Documentación de la Arquitectura de Software Juan G. Lalinde-Pulido Claudia M. Zea Luis F. Londoño Nicolás Hock Sergio A. Monsalve Departamento

Más detalles

PLAN DE PRUEBAS SISTEMA DE GESTIÓN HOSPITALARIA. Plan de Pruebas. File: 20130211-QA-INF-V2-PLAN DE PRUEBAS.odt STD-INF-GENERAL Versión: 1.

PLAN DE PRUEBAS SISTEMA DE GESTIÓN HOSPITALARIA. Plan de Pruebas. File: 20130211-QA-INF-V2-PLAN DE PRUEBAS.odt STD-INF-GENERAL Versión: 1. Cliente: FCM-UNA Página 1 de 14 PLAN DE PRUEBAS SISTEMA DE GESTIÓN HOSPITALARIA Cliente: FCM-UNA Página 2 de 14 Tabla de contenido 1. INTRODUCCIÓN 1.1. PROPÓSITO 1.2. ALCANCE 1.3. DEFINICIONES, ACRÓNIMOS

Más detalles

Service Oriented Architecture

Service Oriented Architecture Programación Concurrente y Distribuida Ingeniería en Informática Service Oriented Architecture José Carlos Cortizo Pérez josecarlos.cortizo@uem.es http://www.esp.uem.es/jccortizo D. Sistemas Informáticos

Más detalles

DESARROLLO DE SOFTWARE ORIENTADO. A OBJETOS: Modelo de requerimientos del RUP

DESARROLLO DE SOFTWARE ORIENTADO. A OBJETOS: Modelo de requerimientos del RUP DESARROLLO DE SOFTWARE ORIENTADO A OBJETOS: Modelo de requerimientos del RUP Adesmiro Zelada Escobedo 1*, Miguel Figueroa Martel 2 * 1 Facultad de Ingeniería y Arquitectura, Universidad Peruana Unión *

Más detalles

ARQUITECTURAS ORIENTADAS A SERVICIOS. SOA en la Seguridad Social. 48 boletic

ARQUITECTURAS ORIENTADAS A SERVICIOS. SOA en la Seguridad Social. 48 boletic ARQUITECTURAS ORIENTADAS A SERVICIOS SOA en la Seguridad Social por Mario triguero garrido 48 boletic El deber de ofrecer al ciudadano el mejor servicio ha sido siempre la motivación por la cual la Gerencia

Más detalles

Universidad Autónoma Metropolitana

Universidad Autónoma Metropolitana Universidad Autónoma Metropolitana Unidad Azcapotzalco División de Ciencias Básicas e Ingeniería Licenciatura en Ingeniería en Computación Propuesta de Proyecto Terminal Composición de servicios web para

Más detalles

DESARROLLO WEB EN ENTORNO SERVIDOR

DESARROLLO WEB EN ENTORNO SERVIDOR DESARROLLO WEB EN ENTORNO SERVIDOR CAPÍTULO 7: Programación de servicios Web Marcos López Sanz Juan Manuel Vara Mesa Jenifer Verde Marín Diana Marcela Sánchez Fúquene Jesús Javier Jiménez Hernández Valeria

Más detalles

Programación Orientada a Objetos (Online)

Programación Orientada a Objetos (Online) Titulación certificada por EUROINNOVA BUSINESS SCHOOL Programación Orientada a Objetos (Online) Programación Orientada a Objetos (Online) Duración: 250 horas Precio: 250 * Modalidad: Online * Materiales

Más detalles

Contenido XIII. Capítulo 1. Capítulo 2. Alfaomega. Bases de datos - Reinosa, Maldonado, Muñoz, Damiano, Abrutsky

Contenido XIII. Capítulo 1. Capítulo 2. Alfaomega. Bases de datos - Reinosa, Maldonado, Muñoz, Damiano, Abrutsky XIII Contenido Capítulo 1 Estructura y tipos de bases de datos...1 1.1 Introducción... 2 1.2 Definición de base de datos... 3 1.3 Sistema de Gestión de Bases de Datos... 4 1.4 Usuarios de la base de datos...

Más detalles

TABLA DE CONTENIDOS. Dedicatoria. Agradecimientos. Tabla de Contenidos. Indice de Figuras. Indice de Tablas. Resumen

TABLA DE CONTENIDOS. Dedicatoria. Agradecimientos. Tabla de Contenidos. Indice de Figuras. Indice de Tablas. Resumen TABLA DE CONTENIDOS página Dedicatoria Agradecimientos Tabla de Contenidos Indice de Figuras Indice de Tablas Resumen I II III VII IX X 1. Introducción 11 1.1. Descripción del contexto local......................

Más detalles

Scrum. Juan Palacio Bañeres

Scrum. Juan Palacio Bañeres Scrum Juan Palacio Bañeres La esencia de Scrum Al iniciar cada iteración, el equipo revisa el trabajo pendiente del proyecto y selecciona la parte que terminará como un incremento de funcionalidad incorporado

Más detalles

Sistemas de Información II. Introducción al Proceso Unificado de Desarrollo de Software. Autor: Ing. Silverio Bonilla 1

Sistemas de Información II. Introducción al Proceso Unificado de Desarrollo de Software. Autor: Ing. Silverio Bonilla 1 Introducción al Proceso Unificado de Desarrollo de Software Autor: Ing. Silverio Bonilla 1 James Rumbaugh et al. Concepto de Método Una metodología de ingeniería del software es un proceso para producir

Más detalles

Administración del Tiempo en el Desarrollo de un Sistema de Información

Administración del Tiempo en el Desarrollo de un Sistema de Información Administración del Tiempo en el Desarrollo de un Sistema de Información José Jimmy Camacho Martínez (1) Ramón David Chávez Cevallos (2) Ing. Lennin Freire (3) Facultad de Ingeniería en Electricidad y Computación

Más detalles

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 6. Actualización

CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL. Nivel 2. Versión 6. Actualización Página 1 de 19 CUALIFICACIÓN CONFECCIÓN Y PUBLICACIÓN DE PÁGINAS WEB PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 2 Código IFC297_2 Versión 6 Situación Contraste externo Actualización

Más detalles

Qué ofrece Autentia Real Business Solutions S.L?

Qué ofrece Autentia Real Business Solutions S.L? Avenida de Castilla,1 - Edificio Best Point - Oficina 21B 28830 San Fernando de Henares (Madrid) tel./fax: +34 91 675 33 06 info@autentia.com - www.autentia.com Qué ofrece Autentia Real Business Solutions

Más detalles

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado 1. Introducción Unified Modeling Languaje Fuente: Booch- Jacobson-Rumbauch y diversos sitios Internet, entre otros:

Más detalles

Capítulo III. Análisis y diseño.

Capítulo III. Análisis y diseño. Capítulo III. Análisis y diseño. 3.1 Análisis. El análisis es el intermediario entre los requisitos del sistema y el diseño, esta sección definiremos el análisis con una serie de modelos técnicos del sistema,

Más detalles

CONCEPTOS DE CALIDAD Y CALIDAD DEL SOFTWARE

CONCEPTOS DE CALIDAD Y CALIDAD DEL SOFTWARE CONCEPTOS DE CALIDAD Y CALIDAD DEL SOFTWARE INTRODUCCIÓN El avance informático actual es muy alto comparado con lo se tenía en los años 90, al hablar de desarrollo de software se hace más notable, en el

Más detalles

SCRUM Metodología de trabajo ágil

SCRUM Metodología de trabajo ágil SCRUM Metodología de trabajo ágil UN ENFOQUE PRÁCTICO Página 1 Página 2 Índice Introducción Características Criterios de referencia Fortalezas de Scrum Trazabilidad Definición Tipos Los Sprint Prácticas

Más detalles

2.1 Compuertas para Bases de Datos

2.1 Compuertas para Bases de Datos 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Uno de los aspectos mas importantes en un sistema multibase de datos es la forma en como llevar a cabo la comunicación

Más detalles

Ingeniería de Software en SOA

Ingeniería de Software en SOA Ingeniería de Software en SOA ECSDI LSI-FIB-UPC cbea Curso 2014/2015 ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 1 / 51 Índice 1 Directrices para la IS en SOA 2 Modelo de referencia

Más detalles

Servidores Donantonio

Servidores Donantonio Especificación de requisitos software Tabla de contenidos Juan José Amor David Escorial Ismael Olea 1. Introducción...3 1.1. Propósito...3 1.2. Ámbito del sistema...3 1.3. Definiciones, acrónimos y abreviaturas...3

Más detalles

Introducción al Unified Process. Curso IIC 2143 Ingeniería de Software Rodrigo Sandoval 2010

Introducción al Unified Process. Curso IIC 2143 Ingeniería de Software Rodrigo Sandoval 2010 Introducción al Unified Process Curso IIC 2143 Ingeniería de Software Rodrigo Sandoval 2010 Unified Process - UP Un framework de Proceso de Desarrollo de Software, una de cuyas versiones es el más documentado

Más detalles

Ingeniería de Software

Ingeniería de Software Ingeniería de Software MSDN Ingeniería de Software...1 Ingeniería del Software_/_ Ingeniería y Programación...1 Análisis de Requerimientos...2 Especificación...3 Diseño...4 Desarrollo en Equipo...5 Mantenimiento...6

Más detalles

Confección y publicación de páginas Web

Confección y publicación de páginas Web 2014 Confección y publicación de páginas Web Docente: Manuel Fernández Catalán 0 ÍNDICE 1 Presentación... 2 2 Objetivos... 2 3 Tecnología... 2 4 Metodología y evaluación... 3 5 Material didáctico... 3

Más detalles

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura

Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura Metodología de Ingeniería del Software para el desarrollo y mantenimiento de sistemas de información del Gobierno de Extremadura Página 1 de 23 Índice del Documento 1.- Introducción... Página 4 2.- Propuesta

Más detalles

Componentes de Integración entre Plataformas Información Detallada

Componentes de Integración entre Plataformas Información Detallada Componentes de Integración entre Plataformas Información Detallada Active Directory Integration Integración con el Directorio Activo Active Directory es el servicio de directorio para Windows 2000 Server.

Más detalles

CAPITULO 1. Introducción a los Conceptos Generales de Bases de Datos Distribuidas

CAPITULO 1. Introducción a los Conceptos Generales de Bases de Datos Distribuidas CAPITULO 1 Introducción a los Conceptos Generales de 1.1 Preliminares Las empresas necesitan almacenar información. La información puede ser de todo tipo. Cada elemento informativo es lo que se conoce

Más detalles

Análisis del Sistema de Información

Análisis del Sistema de Información Análisis del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD ASI 1: DEFINICIÓN DEL SISTEMA... 6 Tarea ASI 1.1: Determinación del Alcance del Sistema... 6 Tarea ASI 1.2: Identificación

Más detalles

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea

Clientes Donantonio. Especificación de requisitos software. Juan José Amor David Escorial Ismael Olea Especificación de requisitos software Tabla de contenidos Juan José Amor David Escorial Ismael Olea 1. Introducción...3 1.1. Propósito...3 1.2. Ámbito del sistema...3 1.3. Definiciones, acrónimos y abreviaturas...3

Más detalles

Capítulo I. Marco Teórico

Capítulo I. Marco Teórico 1 Capítulo I. Marco Teórico 1. Justificación Hoy en día existe una gran diversidad de aplicaciones que corren sobre la World Wide Web (WWW o Web), y cada una orientada a un fin en particular, el cuál depende

Más detalles

Ingeniería de Software: Parte 2

Ingeniería de Software: Parte 2 Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de: http://www.dsic.upv.es/~uml http://inst.eecs.berkeley.edu/~cs169/ entre otras fuentes.

Más detalles

UNIVERSIDAD DE OVIEDO

UNIVERSIDAD DE OVIEDO UNIVERSIDAD DE OVIEDO ESCUELA POLITÉCNICA DE INGENIERÍA DE GIJÓN MÁSTER EN INGENIERÍA INFORMÁTICA TRABAJO FIN DE MÁSTER SPRING ROO ADD-ONS PARA PROTOTIPADO RÁPIDO JAVIER MENÉNDEZ ÁLVAREZ JULIO 2014 UNIVERSIDAD

Más detalles

Christian Bolívar Moya Calderón

Christian Bolívar Moya Calderón UNIVERSIDAD SAN FRANCISCO DE QUITO Software Orientado a Sistemas de Control HMI/Scada usando Recursos Libres y de Código Abierto, desarrollado sobre Plataforma Linux Christian Bolívar Moya Calderón Tesis

Más detalles

4.1.1_Reunión de Planificación de Sprint (Sprint Planning Meeting) 4.1.2_Objetivo del Sprint (Sprint Goal) 4.1.4_Revisión de Sprint (Sprint Review)

4.1.1_Reunión de Planificación de Sprint (Sprint Planning Meeting) 4.1.2_Objetivo del Sprint (Sprint Goal) 4.1.4_Revisión de Sprint (Sprint Review) 1_Visión general de SCRUM 2_Teoría de Scrum 3_El Equipo Scrum (Scrum Team) 3.1_El Dueño de Producto (Product Owner) 3.2_El Equipo de Desarrollo (Development Team) 3.3_El Scrum Master 4_Eventos de Scrum

Más detalles

Tema 5. Plataforma Java EE

Tema 5. Plataforma Java EE Tema 5. Plataforma Java EE SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs enero 2009 FJRP, FMBR 2008/09 ccia SCS 5.1 Introducción a Java EE Java EE (Java Enterprise

Más detalles

Catálogo General de Requisitos

Catálogo General de Requisitos I.T. INFORMÁTICA DE GESTIÓN 05BM: Fundamentos de Ingeniería del Software 05BP: Diseño de Bases de Datos Catálogo General de Requisitos Copyleft 2009 Departamento de Informática y Sistemas. Licencia Copyright

Más detalles

PROPUESTA DE PROYECTO DE DESARROLLO DE PÁGINA WEB PARA GESTIÓN DE PROYECTOS CON METODOLOGÍA SCRUM

PROPUESTA DE PROYECTO DE DESARROLLO DE PÁGINA WEB PARA GESTIÓN DE PROYECTOS CON METODOLOGÍA SCRUM Universidad Rafael Landivar Campus Quetzaltenango Facultad de Ingeniería PROPUESTA DE PROYECTO DE DESARROLLO DE PÁGINA WEB PARA GESTIÓN DE PROYECTOS CON METODOLOGÍA SCRUM Linda Estrella Córdova Monterroso

Más detalles

Trabajo Final de Graduación para optar por el título. Bachiller en Ingeniería en Computación

Trabajo Final de Graduación para optar por el título. Bachiller en Ingeniería en Computación Trabajo Final de Graduación para optar por el título Bachiller en Ingeniería en Computación Migración del Módulo de Inventario del Sistema Business Advance Víctor Guzmán Alfaro Carrera Ingeniería en Computación

Más detalles

Primer Taller sobre Aplicaciones Web para la Gestión de Contenidos

Primer Taller sobre Aplicaciones Web para la Gestión de Contenidos Primer Taller sobre Aplicaciones Web para la Gestión de Contenidos Título: Arquitecturas Orientadas a Servicios en los Sistemas de Gestión de Contenidos. Autor: Keilyn Rodríguez Perojo Institución: INFOMED

Más detalles

PRINCE2 & TickIT. Jorge Armando Medina Morales. Código 1700321660. U n i v e r s i d a d D e C a l d a s. F a c u l t a d D e I n g e n i e r í a s

PRINCE2 & TickIT. Jorge Armando Medina Morales. Código 1700321660. U n i v e r s i d a d D e C a l d a s. F a c u l t a d D e I n g e n i e r í a s PRINCE2 & TickIT Jorge Armando Medina Morales Código 1700321660 U n i v e r s i d a d D e C a l d a s F a c u l t a d D e I n g e n i e r í a s I n g e n i e r í a D e S i s t e m a s O c t u b r e 2010

Más detalles

Proyecto de Desarrollo de una Base de Datos para un concesionario

Proyecto de Desarrollo de una Base de Datos para un concesionario Proyecto de Desarrollo de una Base de Datos para un concesionario Etienne Boshoff de Jong Enginyeria en Informàtica Juan Martinez Bolaños 14 enero 2013 Proyecto Final de Carrera: Base de Datos Page 1 1.

Más detalles

Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos ANEXOS

Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos ANEXOS Proyecto Fin de Carrera Ingeniería Informática Diseño e implementación de un sistema de información basado en Servicios Web para la gestión de ofertas de empleo y candidatos ANEXOS Autor: Mariola Valiente

Más detalles

Análisis de Requisitos

Análisis de Requisitos Análisis de Requisitos Los requisitos determinan lo que hará el sistema y definen restricciones sobre su operación e implementación. El análisis de requisitos es el proceso del estudio de las necesidades

Más detalles

Práctica de Integración de Sistemas Aplicación Web.NET: Sitio de Comentarios de Eventos Deportivos

Práctica de Integración de Sistemas Aplicación Web.NET: Sitio de Comentarios de Eventos Deportivos Práctica de Integración de Sistemas Aplicación Web.NET: Sitio de Comentarios de Eventos Deportivos 1. Introducción Curso académico 2009-2010 La práctica de Integración de Sistemas consiste en el diseño

Más detalles

6.1 Introducción a los sistemas EAI

6.1 Introducción a los sistemas EAI 6.1 Introducción a los sistemas EAI Integración de Aplicaciones (1) El problema de la integración de aplicaciones consiste en hacer colaborar entre sí a aplicaciones distribuidas, heterogéneas y posiblemente

Más detalles

INFRAESTRUCTURA TECNOLÓGICA Y SISTEMAS DE APOYO DEL EDN

INFRAESTRUCTURA TECNOLÓGICA Y SISTEMAS DE APOYO DEL EDN INFRAESTRUCTURA TECNOLÓGICA Y SISTEMAS DE APOYO DEL EDN Introducción La conectividad a Internet se ha convertido durante los últimos años en algo común en casi todas las empresas de Europa, incluyendo

Más detalles

HERRAMIENTAS Y METODOLOGÍAS VERSIÓN 3

HERRAMIENTAS Y METODOLOGÍAS VERSIÓN 3 HERRAMIENTAS Y METODOLOGÍAS VERSIÓN 3 RESUMEN EJECUTIVO Herramientas y Metodologías Herramientas de Desarrollo o Desarrollo de aplicaciones Oracle Designer Oracle Software Configuration Manager (SCM) Oracle

Más detalles

F A B R I C I O M U Ñ O Z S. T E N I E N T E T É C N I C O D E A V I A C I Ó N

F A B R I C I O M U Ñ O Z S. T E N I E N T E T É C N I C O D E A V I A C I Ó N PROPUESTA DE IMPLEMENTACIÓN DE UNA METODOLOGÍA PARA EL DESARROLLO DE SISTEMAS ORIENTADOS A SERVICIOS EN EL DEPARTAMENTO DE DESARROLLO DE SISTEMAS DE LA DIRECCIÓN DE SISTEMAS DE INFORMACIÓN Y COMUNICACIONES

Más detalles

ACCIÓN FORMATIVA FINANCIADA POR EL SERVICIO PÚBLICO DE EMPLEO ESTATAL

ACCIÓN FORMATIVA FINANCIADA POR EL SERVICIO PÚBLICO DE EMPLEO ESTATAL MF0491_3: PROGRAMACIÓN WEB EN EL ENTORNO CLIENTE. (IFCD0210: DESARROLLO DE APLICACIONES CON TECNOLOGÍAS WEB) 180 HORAS PRESENCIALES Nº DE EXPEDIENTE: FC/2013/0064 ACCION 141 GRUPO 1 ACCIÓN FORMATIVA FINANCIADA

Más detalles

CAPÍTULO 4 NORMA IEEE 1058.1 PARA LA PLANIFICACIÓN DE PROYECTOS SOFTWARE ESTE DOCUMENTO ES PARTE DEL SIGUIENTE TRABAJO:

CAPÍTULO 4 NORMA IEEE 1058.1 PARA LA PLANIFICACIÓN DE PROYECTOS SOFTWARE ESTE DOCUMENTO ES PARTE DEL SIGUIENTE TRABAJO: ESTE DOCUMENTO ES PARTE DEL SIGUIENTE TRABAJO: La norma IEEE 1058.1: Plan para la Gestión de Proyectos Software realizado por el alumno Ismael Caballero Muñoz-Reja para la asignatura Planificación y Gestión

Más detalles

PLIEGO DE PRESCRIPCIONES TÉCNICAS DEL PROCEDIMIENTO SIMPLIFICADO PARA LA CONTRATACIÓN DE LOS SERVICIOS DE UNA EMPRESA PARA la INTEGRACIÓN DE

PLIEGO DE PRESCRIPCIONES TÉCNICAS DEL PROCEDIMIENTO SIMPLIFICADO PARA LA CONTRATACIÓN DE LOS SERVICIOS DE UNA EMPRESA PARA la INTEGRACIÓN DE PLIEGO DE PRESCRIPCIONES TÉCNICAS DEL PROCEDIMIENTO SIMPLIFICADO PARA LA CONTRATACIÓN DE LOS SERVICIOS DE UNA EMPRESA PARA la INTEGRACIÓN DE CONTENIDOS DE LA WEB DEL INSTITUTO DE CRÉDITO OFICIAL EN UN

Más detalles

BOLETÍN OFICIAL DEL ESTADO

BOLETÍN OFICIAL DEL ESTADO Núm. 300 Miércoles 14 de diciembre de 2011 Sec. I. Pág. 135721 No debe interpretarse que los diversos espacios formativos identificados deban diferenciarse necesariamente mediante cerramientos. Las instalaciones

Más detalles

Una propuesta arquitectónica para integrar una herramienta BPMS y un sistema de gestión de reglas de negocio. Contexto

Una propuesta arquitectónica para integrar una herramienta BPMS y un sistema de gestión de reglas de negocio. Contexto Una propuesta arquitectónica para integrar una herramienta BPMS y un sistema de gestión de reglas de negocio Parra Julián Matias 1, Mg. Patricia Bazán 2, Lic. José Martinez Garro 3 1 3 Facultad de Informática

Más detalles