• No se han encontrado resultados

Desarrollo de Plataforma Web para la Publicación de Sucesos Internos de Entidades Públicas Basado En Tecnología JSF

N/A
N/A
Protected

Academic year: 2020

Share "Desarrollo de Plataforma Web para la Publicación de Sucesos Internos de Entidades Públicas Basado En Tecnología JSF"

Copied!
123
0
0

Texto completo

(1)DESARROLLO DE PLATAFORMA WEB PARA LA PUBLICACIÓN DE SUCESOS INTERNOS DE ENTIDADES PÚBLICAS BASADO EN TECNOLOGÍA JSF. HAROLL ALEXANDER MORA GARZÓN OSCAR RICARDO LÓPEZ LÓPEZ. UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA TECNOLOGÍA EN SISTEMATIZACIÓN DE DATOS BOGOTÁ D. C. 2017 1.

(2) DESARROLLO DE PLATAFORMA WEB PARA LA PUBLICACIÓN DE SUCESOS INTERNOS DE ENTIDADES PÚBLICAS BASADO EN TECNOLOGÍA JSF. HAROLL ALEXANDER MORA GARZÓN OSCAR RICARDO LÓPEZ LÓPEZ. TRABAJO DE PASANTIA PARA OPTAR POR EL TÍTULO DE TECNÓLOGOS EN SISTEMATIZACIÓN DE DATOS. TUTOR ING. JOSÉ VICENTE REYES MOZO. UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA TECNOLOGÍA EN SISTEMATIZACIÓN DE DATOS BOGOTÁ D. C. 2017 2.

(3) NOTAS DE ACEPTACIÓN. ______________________________________ ______________________________________ ______________________________________ ______________________________________. TUTOR. ______________________________________. JURADO. ______________________________________. 3.

(4) 4.

(5) 5.

(6) TABLA DE CONTENIDO. 1.. 2.. RESUMEN. 14. ABSTRACT. 15. INTRODUCCIÓN. 16. PLANEACIÓN. 17. 1.1. TITULO. 17. 1.2. TEMA. 17. 1.3. PLATEAMIENTO DEL PROBLEMA. 17. 1.4. FORMULACIÓN DEL PROBLEMA. 18. 1.5. ALCANCES Y DELIMITACIONES. 18. 1.5.1. Alcances. 18. 1.5.2. Delimitaciones. 18. OBJETIVOS. 19. 2.1. Objetivo General. 19. 2.2. Objetivo especifico. 19. 3.. JUSTIFICACIÓN. 20. 4.. MARCO HISTORICO. 21. 5.. 4.1. Blogger. 21. 4.2. Taringa!. 21. MARCO TEORICO 5.1. SCRUM FRAMEWORK. 22 22. 5.1.1. El proceso. 23. 5.1.2. Planificación de la iteración. 24. 5.1.3. Ejecución de la iteración. 24. 6.

(7) 5.1.4. Inspección y adaptación 5.2. JAVA EE. 25. 5.3. JAVASERVER FACES. 26. 5.4. PRIMEFACES. 27. 5.5. JPA. 28. 5.5.1. Unidad de persistencia. 30. 5.5.2. EntityManagerFactory. 31. 5.5.3. Contexto de persistencia. 31. 5.5.4. EntityManager. 31. 5.5.5. Objetos de entidad. 31. 5.6. JPQL. 7.. 32. 5.6.1. Estructura de consulta. 32. 5.6.2. Funciones escalares y agregadas. 33. 5.7. HIBERNATE 6.. 25. MARCO CONCEPTUAL. 33 34. 6.1. Plataforma web. 34. 6.2. Entidad. 34. 6.3. Información. 34. 6.4. Publicación. 35. 6.5. Sucesos. 35. 6.6. Obscenidades. 35. 6.7. Integración. 35. FACTIBILIDAD. 37. 7.1. Factibilidad técnica. 37. 7.

(8) 7.1.1. Recurso humano. 37. 7.2. Hardware y software. 37. 7.2.1. Hardware. 37. 7.2.2. Software. 37. 7.3. Factibilidad operativa. 38. 7.4. Factibilidad económica. 38. 7.5. Factibilidad Legal. 38. 8.. FASE DE INICIO. 39. 8.1. Incertidumbre. 39. 8.2. Requerimientos informales. 39. 8.2.1. Descripción de las funcionalidades 8.3. HISTORIAS DE USUARIO 9.. DEFINICIÓN Y PRIORIZACIÓN DE PRODUCT BACKLOG. 39 40 44. 9.2. CREACIÓN DEL PRODUCT BACKLOG. 44. 9.3. PRIORIZACIÓN DEL PRODUCT BACKLOG. 44. 9.3.1. PILA DEL PRODUCTO 10.. SPRINT PLANNING. 10.1.. SPRINT 1. 44 47 48. 10.1.1.. Objetivos. 48. 10.1.2.. Reunión Revisión del Sprint. 48. 10.1.3.. Cierre y entrega. 49. 10.2.. SPRINT 2. 54. 10.2.1.. Objetivos. 54. 10.2.2.. Reunión Revisión del Sprint. 54. 8.

(9) 10.2.3. 10.3.. SPRINT 3. 55 59. 10.3.1.. Objetivos. 59. 10.3.2.. Reunión Revisión del Sprint. 59. 10.3.3.. Cierre y entrega. 60. 10.4.. SPRINT 4. 62. 10.4.1.. Objetivos. 62. 10.4.2.. Reunión Revisión del Sprint. 62. 10.4.3.. Cierre y entrega. 62. 10.4.4.. 11.. Cierre y entrega. SPRINT 5. 65. 10.4.5.. Objetivos. 65. 10.4.6.. Reunión Revisión del Sprint. 65. 10.4.7.. Cierre y entrega. 66. FASE FINAL. 11.1.. ARCHIVO EJB. 70 70. 11.1.1.. Entities. 70. 11.1.2.. Session. 71. 11.1.3.. Mail. 72. 11.2.. ARCHIVO WAR. 73. 11.2.1.. Basicas. 73. 11.2.2.. Tickets. 73. 11.2.3.. Util. 74. 12.. CONCLUCIONES. 75. 13.. RECOMENDACIONES. 76. 9.

(10) 14.. BIBLIOGRAFÍA. 77. 10.

(11) TABLA DE ILUSTRACIONES Imagen 1. Diagrama de proceso de Scrum. .......................................................... 23 Imagen 2. Arquitectura de Java Enterprise Edition ................................................ 26 Imagen 3. Arquitectura de JavaServer Faces ........................................................ 27 Imagen 4. Arquitectura de JPA .............................................................................. 29 Imagen 5. Estructura de Consulta en JPQL ........................................................... 32 Imagen 6. Estructura de actualización y borrado en JPQL .................................... 32 Imagen 7. Historias de usuario - Primera parte .................................................... 41 Imagen 8. Historias de usuario - Segunda parte .................................................... 42 Imagen 9. Historias de usuario – Tercera Parte .................................................... 43 Imagen 10. Formato Product BackLog .................................................................. 45 Imagen 11. Priorización del Product Backlog. ....................................................... 46 Imagen 12. Historias de usuario a trabajar en el Spring 1 ..................................... 48 Imagen 13. Diagrama de secuencia del product Backlog No. 7 ............................ 49 Imagen 14. Inicio de sesión de SunOne para la aplicación Hermes. ..................... 50 Imagen 15. Diagrama de flujo del product Backlog No. 8 Parte 1.......................... 51 Imagen 16. Diagrama de flujo del product Backlog No. 8 Parte 2.......................... 52 Imagen 18. Vista de cambio de contraseña ........................................................... 53 Imagen 17. Vista de recuperación de contraseña .................................................. 53 Imagen 19. Historias de usuario a trabajar en el Spring 2 ..................................... 54 Imagen 20. Vista listado de publicaciones realizadas por la entidad ..................... 55 Imagen 21. Diagrama de secuencia del product Backlog No. 10........................... 56 Imagen 22. Vista creación de Publicación ............................................................. 57 Imagen 23. Vista edición de publicación. ............................................................... 57 Imagen 24. Diagrama de secuencia del product Backlog No. 9 ............................ 58 Imagen 25. Historias de usuario a trabajar en el Spring 3 ..................................... 59 Imagen 26. Diagrama de secuencia del product Backlog No. 1 ............................ 60 Imagen 28. Visualización a detalle de una publicación .......................................... 61 Imagen 27. Vista visualización publicación ............................................................ 61. 11.

(12) Imagen 29. Historias de usuario a trabajar en el Spring 4 ..................................... 62 Imagen 30. Diagrama de secuencia de los product Backlog No. 2 y 3 .................. 63 Imagen 32. Vista archivo descargado .................................................................... 64 Imagen 31. Vista listado de archivos adjuntos de la publicación ........................... 64 Imagen 33. Historias de usuario a trabajar en el Spring 5. .................................... 65 Imagen 34. Vista aviso de censura de lenguaje .................................................... 66 Imagen 35. Diagrama de secuencia del product Backlog No. 4 ............................ 67 Imagen 36. Diagrama de secuencia del product Backlog No. 5 ............................ 68 Imagen 37. Vista comentario censurado ................................................................ 69 Imagen 38. Diagrama de clases del paquete Entity ............................................... 70 Imagen 39. Diagrama de clases del paquete Sessión ........................................... 71 Imagen 40. Diagrama de clases del paquete Mail ................................................. 72 Imagen 41. Diagrama de clases del diagrama Básicas ......................................... 73 Imagen 42. Diagrama de clases del paquete Tickets ............................................ 73 Imagen 43. Diagrama de clases del paquete Util................................................... 74. 12.

(13) TABLA DE TABLAS Tabla 1.Presupuesto total del proyecto. Elaboración propia .................................. 38. 13.

(14) RESUMEN En el siguiente trabajo se encuentra el proceso de desarrollo para un módulo de divulgación de sucesos internos en entidades públicas, su definición y los elementos que lo conforman, así mismo con una metodología ágil para el desarrollo de este módulo en conjunto con la supervisión de la empresa con la cual se presentó esta pasantía, de esta manera cubrir la problemática de publicar noticias de interés, actualizaciones, y sucesos internos de cualquier entidad para que la comunidad interesada pueda discutir y dar aportes sobre dicha novedad, fomentando un ambiente sano y constructivo. En este documento se explica a fondo la metodología utilizada donde se podrá revisar las historias de usuario, luego se avanzará mediante el paso a seguir de la metodología, se verá las iteraciones realizadas y así cumplir con el producto esperado.. 14.

(15) ABSTRACT In the following work is the development process for a module of disclosure of internal events in public entities, its definition and the elements that comprise it, as well as an agile methodology for the development of this module in conjunction with the supervision of the company with which this internship was presented, in this way cover the problem of publishing news of interest, updates, and internal events of any entity so that the interested community can discuss and give input on this novelty, promoting a healthy and constructive environment. This document explains in depth the methodology used where users' stories can be reviewed, then the methodology step will be followed, the iterations will be seen and the expected product will be fulfilled.. 15.

(16) INTRODUCCIÓN La finalidad de este proyecto es suplir la necesidad de mantener informada a la comunidad involucrada sobre las diferentes actualizaciones, noticias informativas, entre otros, que se encuentren dentro de la suite de plataformas y de las empresas que estén utilizando dichas aplicaciones y así, permitir que la empresa, pueda cumplir con lo que demanda la ley No. 1712 de 2014 que es la ley de transparencia y acceso de la información. Gracias a esto se podrá abrir una discusión entre las comunidades, para así tener en cuenta la opinión de las personas que no están dentro de las entidades pero que son participes de estas.. 16.

(17) 1. PLANEACIÓN 1.1.. TITULO. Desarrollo de plataforma web para la publicación de sucesos internos de entidades públicas basado en tecnología JSF 1.2.. TEMA. Para el desarrollo de este proyecto se tiene en cuenta distintos temas como sociopolíticos, ambientales, entre otros dependiendo la entidad donde se encuentre el software, implementando herramientas como Java Server Faces, PrimeFaces, XHTML, CSS e Hibernate. 1.3.. PLATEAMIENTO DEL PROBLEMA. Según la ley No. 1712 de 2014 (Ley de transparencia y acceso a la información), las entidades públicas deben informar a la ciudadanía, sucesos recientes dentro de sus dependencias, no obstante, muchas entidades no cuentan con la plataforma específica para poder darle cumplimiento a la normatividad aplicable, lo cual podrían ser sancionadas según lo describe la ley. Por esta razón, este proyecto de grado se enfoca en crear lineamientos y directrices que les permita a todas las organizaciones, sin importar su naturaleza, cumplir a cabalidad con esta ley, diseñando e implementando una plataforma en la cual los administrativos con acceso a esta aplicación, puedan publicar y dar a conocer noticias referentes a la entidad, permitiendo que además de que los usuarios, conozcan dichos sucesos y así mismo, puedan participar en un ambiente de discusión acerca de un tema de su elección dentro de la plataforma; sin llegar a vulnerar algún derecho civil, por lo tanto, se plantea implementar en la plataforma, un algoritmo en específico el cual permita la censura de comentarios mal intencionados que incluyan palabras ofensivas hacia otro usuario, fomentando así una discusión sana y constructiva. Este proyecto de grado, aplicado a la organización Soluciones en Redes y Sistemas S.A.S – SOLREDES S.A.S. –, dedicada a proveer aplicaciones para múltiples. 17.

(18) entidades del estado, permite a los estudiantes del proyecto curricular “Tecnología en Sistematización de Datos” aplicar sus conocimientos, habilidades y disciplina, durante su estadía en la universidad, para así poder contribuir a la comunidad con su quehacer laboral. 1.4.. FORMULACIÓN DEL PROBLEMA. ¿Es posible realizar una plataforma web que permita la publicación de sucesos internos de una entidad? 1.5.. ALCANCES Y DELIMITACIONES. 1.5.1. Alcances ● Elaborar una plataforma web la cual se incluirá en la suite de aplicaciones SunOne®. ● La información publicada se podra compartir por medio de redes sociales para incluir a personas que desconozcan la aplicación y puedan acceder a ella, informarse y opinar. ● Mantener un control sobre el uso de palabras obscenas en el registro de comentarios realizados por los usuarios 1.5.2. Delimitaciones ● La puesta en marcha de la aplicación estará a cargo de la empresa. ● El software será desarrollado para que se ejecute desde una plataforma web, por lo tanto, el equipo deberá contar con conexión a internet. ● El software garantiza una divulgación de novedades internas de las entidades, sin embargo, la participación de este, dependerá exclusivamente del usuario.. 18.

(19) 2. OBJETIVOS 2.1.. Objetivo General. Desarrollar una plataforma web para la divulgación de sucesos generales en entidades públicas, para el conocimiento de la comunidad interesada. 2.2.. Objetivo especifico. ● Desarrollar el módulo para la creación, modificación y eliminación de una publicación de interés social. ● Poner en funcionamiento un componente de divulgación en diferentes redes sociales como lo son Facebook y Twitter. ● Incluir un módulo de comentarios, para la participación de comunidad interesada. ● Implementar componentes para la generación de censura de lenguaje ofensivo. ● Complementar el desarrollo de la plataforma mediante una fase de pruebas del mismo para su posterior uso.. 19.

(20) 3. JUSTIFICACIÓN Ya que la ley 1712 Marzo 6 de 2014, ley de Transparencia y del Derecho de Acceso a la Información Pública Nacional, nos dice que “Toda información en posesión, bajo control o custodia de un sujeto obligado es pública y no podrá ser reservada o limitada sino por disposición constitucional o legal, de conformidad con la presente ley.”1, por lo tanto, la empresa Soluciones en Redes y Sistemas – SOLREDES S.A.S. – desarrolló una la plataforma de divulgación de sucesos internos de entidades tanto públicas como privadas, debido a que, Solredes es una empresa enfocada a producir software, generalmente para el sector público, donde carecen de dichas plataformas de divulgación. Por esta razón la empresa, cree conveniente que además de prestar uno de sus muchos servicios de la Suite SunOne®, debe integrar un software para suplir la obligación de compartir la información relacionada con ciertos procesos internos y así mismo mantener informada a la comunidad, con veracidad y evitando falsa información, donde hoy en día, es implícita en cualquier lugar.. 1. LEY 1712 DE 2014. [En Linea] <http://www.alcaldiabogota.gov co/sisjur/normas/Norma1.jsp?i=56882>. [Citado el 11 de Noviembre de 2017]. 20.

(21) 4. MARCO HISTORICO Actualmente existen miles de páginas web que nos permiten divulgar opiniones, sugerencias y comentarios siempre y cuando no afecten la integridad de los demás usuarios, muchas de estas páginas eliminan o clausuran manualmente este tipo de comentarios, otros los realizan automáticamente, a continuación, se presentan dos páginas reconocidas por permitir comentar y clausurar lenguajes ofensivos para los usuarios: 4.1.. Blogger. Autor: Google Blogger es un servicio que suministra Google el cual busca que los cibernautas puedan crear y administrar sus propios Blogs sin tener grandes conocimientos en creación de páginas web ni de programación. 4.2.. Taringa!. Autor: Fernando Sanz En Taringa!, los usuarios pueden compartir todo tipo de información por medio de Posts, Micro contenido y Comunidades a través de un sistema colaborativo de interacción. Su lema es "Inteligencia Colectiva" y se propone como una plataforma abierta donde las personas puedan compartir de manera democrática sus opiniones, intereses y experiencias y descubrir nuevas ideas, información y conocimiento.2. 2. Taringa!. [En linea] <https://es.wikipedia.org/wiki/Taringa!> [Citado el 15 de Noviembre de 2017]. 21.

(22) 5. MARCO TEORICO Para realizar el desarrollo del software previamente se deben tener conocimientos teóricos y prácticos de las tecnologías que usa la empresa, para llevar un lineamiento con las decisiones tomadas por el jefe de desarrollo quien ha escogido las tecnologías más favorables para la empresa, además de la metodología que es la estructura para llevar un control y seguimiento de cómo se está desarrollando y cuánto tiempo está tomando en cada una de las fases planteadas al inicio. 5.1.. SCRUM FRAMEWORK. Scrum es un proceso en el que se aplican de manera regular un conjunto de buenas prácticas para trabajar colaborativamente, en equipo, y obtener el mejor resultado posible de un proyecto. Estas prácticas se apoyan unas a otras y su selección tiene origen en un estudio de la manera de trabajar de equipos altamente productivos. En Scrum se realizan entregas parciales y regulares del producto final, priorizadas por el beneficio que aportan al receptor del proyecto. Por ello, Scrum está especialmente indicado para proyectos en entornos complejos, donde se necesita obtener resultados pronto, donde los requisitos son cambiantes o poco definidos, donde la innovación, la competitividad, la flexibilidad y la productividad son fundamentales. Scrum también se utiliza para resolver situaciones en que no se está entregando al cliente lo que necesita, cuando las entregas se alargan demasiado, los costes se disparan o la calidad no es aceptable, cuando se necesita capacidad de reacción ante la competencia, cuando la moral de los equipos es baja y la rotación alta, cuando es necesario identificar y solucionar ineficiencias sistemáticamente o cuando se quiere trabajar utilizando un proceso especializado en el desarrollo de producto.. 22.

(23) 5.1.1. El proceso En Scrum un proyecto se ejecuta en bloques temporales cortos y fijos (iteraciones que normalmente son de 2 semanas, aunque en algunos equipos son de 3 y hasta 4 semanas, límite máximo de feedback y reflexión). Cada iteración tiene que proporcionar un resultado completo, un incremento de producto final que sea susceptible de ser entregado con el mínimo esfuerzo al cliente cuando lo solicite.. Imagen 1. Diagrama de proceso de Scrum. Recuperado de Qué es <https://proyectosagiles.org/que-es-scrum/> [Citado el 11 de noviembre de 2017]. SCRUM.. [En. Línea]. El proceso parte de la lista de objetivos/requisitos priorizada del producto, que actúa como plan del proyecto. En esta lista el cliente prioriza los objetivos balanceando el valor que le aportan respecto a su coste y quedan repartidos en iteraciones y entregas. Las actividades que se llevan a cabo en Scrum son las siguientes:. 23.

(24) 5.1.2. Planificación de la iteración El primer día de la iteración se realiza la reunión de planificación de la iteración. Tiene dos partes: ● Selección de requisitos (4 horas máximo). El cliente presenta al equipo la lista de requisitos priorizada del producto o proyecto. El equipo pregunta al cliente las dudas que surgen y selecciona los requisitos más prioritarios que se compromete a completar en la iteración, de manera que puedan ser entregados si el cliente lo solicita. ● Planificación de la iteración (4 horas máximo). El equipo elabora la lista de tareas de la iteración necesarias para desarrollar los requisitos a que se ha comprometido. La estimación de esfuerzo se hace de manera conjunta y los miembros del equipo se auto asignan las tareas.. 5.1.3. Ejecución de la iteración Cada día el equipo realiza una reunión de sincronización (15 minutos máximo). Cada miembro del equipo inspecciona el trabajo que el resto está realizando (dependencias entre tareas, progreso hacia el objetivo de la iteración, obstáculos que pueden impedir este objetivo) para poder hacer las adaptaciones necesarias que permitan cumplir con el compromiso adquirido. En la reunión cada miembro del equipo responde a tres preguntas: ● ¿Qué he hecho desde la última reunión de sincronización? ● ¿Qué voy a hacer a partir de este momento? ● ¿Qué impedimentos tengo o voy a tener? Durante la iteración el Facilitador (Scrum Master) se encarga de que el equipo pueda cumplir con su compromiso y de que no se merme su productividad. ● Elimina los obstáculos que el equipo no puede resolver por sí mismo. ● Protege al equipo de interrupciones externas que puedan afectar su compromiso o su productividad. 24.

(25) Durante la iteración, el cliente junto con el equipo refina la lista de requisitos (para prepararlos para las siguientes iteraciones) y, si es necesario, cambian o re planifican los objetivos del proyecto para maximizar la utilidad de lo que se desarrolla y el retorno de inversión. 5.1.4. Inspección y adaptación El último día de la iteración se realiza la reunión de revisión de la iteración. Tiene dos partes: ● Demostración (4 horas máximo). El equipo presenta al cliente los requisitos completados en la iteración, en forma de incremento de producto preparado para ser entregado con el mínimo esfuerzo. En función de los resultados mostrados y de los cambios que haya habido en el contexto del proyecto, el cliente realiza las adaptaciones necesarias de manera objetiva, ya desde la primera iteración, re planificando el proyecto. ● Retrospectiva (4 horas máximo). El equipo analiza cómo ha sido su manera de trabajar y cuáles son los problemas que podrían impedirle progresar adecuadamente, mejorando de manera continua su productividad. El Facilitador se encargará de ir eliminando los obstáculos identificados 3.. 5.2.. JAVA EE. Java Enterprise Edition es el estándar para desarrollar aplicaciones Java robustas del lado del servidor. Una de las ventajas de Java EE proporciona APIS para los servicios web, modelos de componentes, gestión y comunicación que hacen que lo convierten en el estándar de la industria para implementar aplicaciones Web y Web 2.0 y aplicaciones con arquitectura orientada a servicios (SOA).. 3Qué es. SCRUM.[En Linea] <https://proyectosagiles.org/que-es-scrum/> [Citado el 11 de Noviembre de 2017]. 25.

(26) Imagen 2. Arquitectura de Java Enterprise Edition. Recuperado de Entra al mundo de Java Enterprise. [En Línea] <http://www.jtech.ua.es/j2ee/2006-2007/jee.html> [Citado el 11 de Noviembre de 2017]. Java EE proporciona una arquitectura multi-capa. La capa cliente puede estar constituida por aplicaciones Java de escritorio o navegadores HTML. Las capas proporcionadas por Java EE propiamente dicha son las capas Web (mediante las tecnologías Servlets, JSP y JSF) y las capas de Negocio (mediante tecnologías como EJB, JMS o Web Services). Por último, estas capas se comunican con una capa de datos (base de datos o aplicaciones y sistemas legacy) 4. 5.3.. JAVASERVER FACES. JavaServer Faces (JSF) es un framework basado en el patrón MVC (Modelo Vista Controlador) para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. Típicamente suelen incluir soporte de programas, bibliotecas y un lenguaje interpretado entre otros para ayudar a desarrollar y unir los diferentes componentes de un proyecto.. 4. Entra al mundo de Java Enterprise. [En 2007/jee.html>[Citado el 11 de Noviembre de 2017]. Linea]. <http://www.jtech.ua.es/j2ee/2006-. 26.

(27) Imagen 3. Arquitectura de JavaServer Faces. Recuperado de Taruelo, Sandra - Miguel, Barcenilla. Java Server Faces (JSF). [En Línea] <http://www.it.uc3m.es/spickin/docencia/comsoft/presentations/spanish/0708/JSF.pdf > [Citado el 12 de noviembre de 2017]. JSF pretende normalizar y estandarizar el desarrollo de aplicaciones web. Ofrece una clara separación entre el comportamiento y la presentación, lo que permite a cada miembro del equipo de desarrollo de una aplicación Web enfocarse en su parte del proceso de desarrollo, y proporciona un sencillo modelo de programación para enlazar todas las piezas5. 5.4.. PRIMEFACES. PrimeFaces es una librería de componentes visuales open source desarrollada y mantenida por Prime Technology, una compañía turca de IT especializada en consultoría ágil, JSF, Java EE y Outsourcing. El proyecto es liderado por Çağatay Çivici, un miembro del “JSF Expert Group” (y forofo del Barça). Las principales características de Primefaces son: ● soporte nativo de Ajax, incluyendo Push/Comet. ● kit para crear aplicaciones web para móviles. ● es compatible con otras librerías de componentes, como JBoss RichFaces.. 5Taruelo,. Sandra - Miguel, Barcenilla. Java Server Faces (JSF). [En Línea] <http://www.it.uc3m.es/spickin/docencia/comsoft/presentations/spanish/07-08/JSF.pdf > [Citado el 12 de Noviembre de 2017]. 27.

(28) ● uso de javascript no intrusivo (no aparece en línea dentro de los elementos, sino dentro de un bloque <script>). ● es un proyecto open source, activo y bastante estable entre versiones. Algunos inconvenientes podrían ser: ● para utilizar el soporte de Ajax tenemos que indicarlo explícitamente, por medio de atributos específicos de cada componente. ● no podemos utilizar el soporte de Ajax de JSF 2 (mediante <f:ajax>) con los componentes de Primefaces6. 5.5.. JPA. La persistencia de datos es un medio mediante el cual una aplicación puede recuperar información desde un sistema de almacenamiento no volátil y hacer que esta persista. La persistencia de datos es vital en las aplicaciones empresariales debido al acceso necesario a las bases de datos relacionales. Las aplicaciones desarrolladas para este entorno deben gestionar por su cuenta la persistencia o utilizar soluciones de terceros para manejar las actualizaciones y recuperaciones de las bases de datos con persistencia. JPA (Java™ Persistence API) proporciona un mecanismo para gestionar la persistencia y la correlación relacional de objetos y funciona desde las especificaciones EJB 3.0.. 6. Lerma, Enrique. Introducción a Primefaces. 2010 [En Línea] <https://www.adictosaltrabajo.com/tutoriales/introduccion-primefaces/> [Citado el 16 de Noviembre de 2017]. 28.

(29) Imagen 4. Arquitectura de JPA. Recuperado de JPA – Introducción [En <https://www.tutorialspoint.com/es/jpa/jpa_introduction.htm> [Citado el 14 de diciembre de 2017]. Línea]. La especificación JPA define la correlación relacional de objetos internamente, en lugar de basarse en implementaciones de correlación específicas del proveedor. JPA se basa en el modelo de programación Java que se aplica a los entornos Java EE (Java Enterprise Edition) pero JPA puede funcionar en un entorno Java SE para probar las funciones de las aplicaciones. JPA representa una simplificación del modelo de programación de persistencia. La especificación JPA define explícitamente la correlación relacional de objetos, en lugar de basarse en implementaciones de correlación específicas del proveedor. JPA crea un estándar para la importante tarea de la correlación relacional de objetos mediante la utilización de anotaciones o XML para correlacionar objetos con una o más tablas de una base de datos. Para simplificar aún más el modelo de programación de persistencia: La API EntityManager puede actualizar, recuperar, eliminar o aplicar la persistencia de objetos de una base de datos.. 29.

(30) La API EntityManager y los metadatos de correlación relacional de objetos manejan la mayor parte de las operaciones de base de datos sin que sea necesario escribir código JDBC o SQL para mantener la persistencia. JPA proporciona un lenguaje de consulta, que amplía el lenguaje de consulta EJB independiente, conocido también como JPQL, el cual puede utilizar para recuperar objetos sin grabar consultas SQL específicas en la base de datos con la que está trabajando. JPA está diseñado para funcionar dentro y fuera de un contenedor Java Enterprise Edition (Java EE). Cuando se ejecuta JPA dentro de un contenedor, las aplicaciones pueden utilizar el contenedor para gestionar el contexto de persistencia. Si no hay ningún contenedor para gestionar JPA, la aplicación debe manejar ella misma la gestión del contexto de persistencia. Las aplicaciones diseñadas para la persistencia gestionada por contenedor no requieren tanta implementación de código para manejar la persistencia, pero estas aplicaciones no se pueden utilizar fuera de un contenedor. Las aplicaciones que gestionan su propia persistencia pueden funcionar en un entorno de contenedor o en un entorno Java SE. Los contenedores Java EE que dan soporte al modelo de programación de EJB 3.x deben dar soporte a la implementación de JPA, denominada también proveedor de persistencia. Un proveedor de persistencia JPA utiliza los elementos siguientes para habilitar una gestión de persistencia más fácil en un entorno EJB 3.x: 5.5.1. Unidad de persistencia Define un modelo relacional de objeto que correlaciona las clases Java (entidades + estructuras de soporte) con una base de datos relacional. EntityManagerFactory utiliza estos datos para crear un contexto de persistencia al que se puede acceder mediante EntityManager.. 30.

(31) 5.5.2. EntityManagerFactory Se utiliza para crear un EntityManager para las interacciones de base de datos. Los contenedores del servidor de aplicaciones normalmente proporcionan esta función, pero es necesario EntityManagerFactory si se utiliza la persistencia gestionada por las aplicaciones JPA. Una instancia de EntityManagerFactory representa un contexto de persistencia. 5.5.3. Contexto de persistencia Define el conjunto de las instancias activas que la aplicación está manipulando actualmente. Puede crear el contexto de persistencia manualmente o mediante inyección. 5.5.4. EntityManager Gestor de recursos que mantiene la colección activa de objetos de entidad que está utilizando la aplicación. EntityManager maneja la interacción y metadatos de bases de datos para las correlaciones relacionales de objetos. Una instancia de EntityManager representa un contexto de persistencia. Una aplicación en un contenedor puede obtener el EntityManager mediante inyección en la aplicación o buscándolo en el espacio de nombres del componente Java. Si la aplicación gestiona su persistencia, el EntityManager se obtiene desde EntityManagerFactory. 5.5.5. Objetos de entidad Clase Java simple que representa una fila en una tabla de base de datos con su formato más sencillo. Los objetos de entidades pueden ser clases concretas o clases abstractas. Mantienen estados mediante la utilización de propiedades o campos7.. 7. JPA (Java Persistence API) [En Línea] <https://www.ibm.com/support/knowledgecenter/es/SSAW57_8.5.5/com.ibm.websphere.wlp.nd.doc /ae/cwlp_jpa.html> [Citado el 14 de Noviembre de 2017]. 31.

(32) 5.6.. JPQL. JPQL está parado para el lenguaje de consulta de persistencia de Java. Se utiliza para crear consultas contra entidades para almacenar en una base de datos relacional. JPQL está desarrollado en base a la sintaxis SQL. Pero no afectará directamente a la base de datos. JPQL puede recuperar datos mediante la cláusula SELECT, puede hacer a granel actualizaciones con cláusula UPDATE y DELETE cláusula. 5.6.1. Estructura de consulta Sintaxis JPQL es muy similar a la sintaxis de SQL. Tener SQL como sintaxis es una ventaja porque SQL es simple y siendo ampliamente utilizado. SQL trabaja directamente contra la base de datos relacional tablas, registros y campos, mientras que JPQL trabaja con Java clases e instancias. Por ejemplo, una consulta JPQL puede recuperar una entidad objeto en lugar de campo conjunto de resultados de una base de datos, al igual que con SQL. El JPQL consulta estructura como sigue.. Imagen. 5. Estructura de Consulta en JPQL. Recuperado de JPA – JPQL [En <https://www.tutorialspoint.com/es/jpa/jpa_jpql.htm> [Citado el 11 de noviembre de 2017]. Línea]. La estructura de JPQL borrar y consultas de actualización son las siguientes.. Imagen 6. Estructura de actualización y borrado en JPQL. Recuperado de JPA – JPQL [En Línea] <https://www.tutorialspoint.com/es/jpa/jpa_jpql.htm> [Citado el 11 de noviembre de 2017]. 32.

(33) 5.6.2. Funciones escalares y agregadas Las funciones escalares devuelven valores resultantes basados en los valores de entrada. Funciones de agregado de devuelvan los valores resultantes mediante el cálculo de los valores de entrada8. 5.7.. HIBERNATE. Hibernate es una herramienta de Mapeo objeto-relacional (ORM) para la plataforma Java (y disponible también para .Net con el nombre de NHibernate) que facilita el mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de una aplicación, mediante archivos declarativos (XML) o anotaciones en los beans de las entidades que permiten establecer estas relaciones. Hibernate es software libre, distribuido bajo los términos de la licencia GNU LGPL. En otras palabras, Hibernate es un Framework que agiliza la relación entre la aplicación y la base de datos. Para poder aprender a utilizarlo es necesario contar con los conocimientos básicos de base de datos y SQL así como manejar el lenguaje Java9.. 8. JPA – JPQL. [En Línea]. <https://www.tutorialspoint.com/es/jpa/jpa_jpql.htm> [Citado el 11 de noviembre de 2017] 9. 2013. ¿Qué es Java Hibernate? [En Línea] <http://blog.educacionit.com/2013/02/07/que-es-javahibernate/> [Citado el 15 de Noviembre de 2017]. 33.

(34) 6. MARCO CONCEPTUAL Para poder realizar una correcta ejecución del desarrollo y de esta documentación se deben conocer algunos conceptos a nivel técnico y de negocio, por lo cual se investigó sobre algunos significados que permitirán una mejor comprensión de lo que se buscó con el desarrollo de la plataforma web. 6.1.. Plataforma web. Una aplicación Web es una aplicación informática que se ejecuta en un entorno Web. La arquitectura Web permite a múltiples clientes o usuarios establecer una comunicación a través de Internet con un servidor Web. Los clientes mediante un navegador emiten peticiones vía HTTP a un servidor web que responde a cada una de las solicitudes.10 6.2.. Entidad. Del latín medieval entitas, entidad es toda colectividad que puede considerarse como una unidad. El concepto suele utilizarse para nombrar a una corporación o compañía que se toma como persona jurídica.11 6.3.. Información. La información está constituida por un grupo de datos ya supervisados y ordenados, que sirven para construir un mensaje basado en un cierto fenómeno o ente. La información permite resolver problemas y tomar decisiones, ya que su aprovechamiento racional es la base del conocimiento.12. 10Valero,. Brayan – Clavijo Andres. Sistema de información integral estudiantil. 2016. [En Línea] <http://hdl.handle.net/11349/4751> [Citado el 17 de Noviembre de 2017] 11 Porto, Julian Gardey, Ana. Definición de entidad. 2010. [En Línea] <https://definicion.de/entidad/> [Citado el 17 de Noviembre de 2017] 12 Porto, Julian Gardey, Ana. Definición de Información. 2008. [En Línea] <https://definicion.de/informacion/> [Citado el 17 de Noviembre de 2017]. 34.

(35) 6.4.. Publicación. El término publicación se utiliza para hacer referencia al acto mediante el cual se hace público o se da a conocer determinada información, acto, dato, etc. La publicación puede ser en diferentes tipos de soportes que han variado en disponibilidad y en importancia a lo largo de la historia, siendo los más comunes los escritos, impresos o, actualmente, los digitales.13 6.5.. Sucesos. Se define como suceso a una cuestión que ocurre. El término tiene su origen en el vocablo latino successus y se emplea en especial cuando aquello que ocurre o se desencadena posee una cierta trascendencia.14 6.6.. Obscenidades. La palabra obscenidad proviene del latín obscenus, el cual se define como repulsivo o algo detestable. Dicho término se usa mucho en el contexto legal para describir ciertas expresiones como: palabras, acciones e imágenes que puedan ofender la moral o sexualmente a alguien. La obscenidad va a depender en algunos casos de la cultura, dado que hay países que han promulgado leyes con respecto a lo que consideran obsceno y censuran todo aquello relacionado con este término. Por ejemplo, lo más común y conocido es la pornografía.15 6.7.. Integración. La integración es la acción y efecto de integrar o integrarse a algo, proviene del latín integration y constituye completar un todo con las partes que hacían falta ya sea. 13. Definición de Publicación. [En Línea] <https://www.definicionabc.com/general/publicacion.php> [Citado el 17 de Noviembre de 2017] 14 Porto, Julián – Merino, María. Definición de suceso. 2010. [En Línea] <https://definicion.de/suceso/> [Citado el 17 de Noviembre de 2017] 15 Definición de Obscenidad. [En Línea] <http://conceptodefinicion.de/obscenidad/> [Citado el 17 de Noviembre de 2017]. 35.

(36) objeto o persona. Es un fenómeno que sucede cuando un grupo de individuo unen a alguien que se encuentra por fuera sin importar sus características y diferencias.16. 16. Definición de Integración. [En Línea] <http://conceptodefinicion.de/integracion/> [Citado el 17 de Noviembre de 2017]. 36.

(37) 7. FACTIBILIDAD 7.1.. Factibilidad técnica. 7.1.1. Recurso humano Los desarrolladores deben tener conocimiento teórico y práctico sobre manejo de bases de datos con sentencias DDL y DML, Java, PrimeFaces, JavaScript, Java Server Faces, Pretty Faces, Hibernate y JPQL. Esto con el fin de dar solución el problema planteado además de contar con el tiempo requerido por la empresa para llevar a cabo un progreso considerable en el desarrollo del proyecto. 7.2.. Hardware y software. Posteriormente se hará una descripción en cuanto a las herramientas en software y hardware que se requieren para el desarrollo e implementación del proyecto. 7.2.1. Hardware . Procesador Intel Core i3 de Cuarta generación o superior. . Memoria RAM de 4Gb o superior. . Disco Duro 500Gb o superior. . Conexión estable a la red interna de la empresa con conexión a internet. 7.2.2. Software . Sistema operativo Windows 7. . Toad para Oracle 12. . NetBeans 8.1. . Notepad++ (Editor de Texto). . Explorador Web (Chrome, Mozilla, Edge). 37.

(38) 7.3.. Factibilidad operativa. Se espera que, al implementar la aplicación, esta genere una aceptación positiva por parte de los usuarios, debido a que: Siendo una aplicación enfocada a salvaguardar el derecho a la veracidad y transparencia de la información, ayudará a las comunidades a estar informadas sobre procesos de mayor interés sobre la entidad y generar así, conocimiento y seguir con la normativa que dicta la ley 1712 marzo 6 de 2014. 7.4.. Factibilidad económica. En la tabla 1, se reflejan los costos que acarrea el desarrollo de la aplicación, teniendo en cuenta el recurso humano, hardware, software y costos adicionales para realizar la pasantía propuesta. TIPO DE RECURSO. RESPONSABLE. DESCRIPCIÓN. CANTIDAD. VALOR UNITARIO. VALOR TOTAL. Humano. Empresa. Computadores. 2. $1.500.000. $3.000.000. Humano. Empresa. Horas Desarrollador. 2*(4 meses). $737.717. $5.901.736. Infraestructura. Empresa. Internet. $240.000. $960.000. Infraestructura. Empresa. Luz. $180.000. $720.000. Transporte. Desarrollador. Transporte. $100.000. $800.000. Humano. Universidad. Horas Tutor. 80. $45.000. $ 3.600.000. Papelería. Desarrollador. Papel, Imprevistos. 2. $40.000. $80.000. 4 meses 4 meses 2*(4 meses). Presupuesto Total:. $15.061.736. Tabla 1.Presupuesto total del proyecto. Elaboración propia. 7.5.. Factibilidad Legal. Para el desarrollo de este proyecto se utilizará software de código abierto, libre o bajo licencia educativa.. 38.

(39) 8. FASE DE INICIO Durante esta fase, se inicia el levantamiento de requerimientos y la estructuración de las historias de usuario, para así dar comienzo con el proceso de product BackLog, donde se verá reflejada la implementación de la metodología Scrum, como se describe en el ítem 5.1 de este documento. A continuación, se explicarán los procesos de la fase de inicio a detalle. 8.1.. Incertidumbre. En la primera reunión con el jefe de departamento de desarrollo se reúnen los requerimientos iniciales, con el fin de tener una visión del producto y entrar a priorizar sobre algunos aspectos. 8.2.. Requerimientos informales. Se necesita una plataforma web que se asocie con la suite de SunOne® en la cual se puedan hacer publicaciones acerca de sucesos de la entidad, además que conserve el tema de SunOne®. ● Que en cada publicación se pueda hacer comentarios ● ¿? Las publicaciones se puedan compartir en redes sociales ● Para poder crear una publicación debe tener una cuenta de usuario dentro de la suite ● Al crear las publicaciones se le puedan añadir archivos adjuntos ● Se puedan eliminar las publicaciones ● Al realizar comentarios no me muestre palabras obscenas que incomoden a otros participantes dentro de la aplicación 8.2.1. Descripción de las funcionalidades Según los requerimientos obtenidos se buscó profundizar más en cada aspecto, tanto como el equipo como el Jefe de departamento de desarrollo, obteniendo una mejor descripción de las funcionalidades, con el fin de tener las Historias de usuario.. 39.

(40) 8.3.. HISTORIAS DE USUARIO. En esta parte del proyecto se decide usar un solo formato para realizar las historias de usuario, que tuvieron en cuenta los requerimientos de la empresa y el grupo de trabajo.. 40.

(41) Imagen 7. Historias de usuario - Primera parte. Elaboración propia. 41.

(42) Imagen 8. Historias de usuario - Segunda parte. Elaboración propia. 42.

(43) Imagen 9. Historias de usuario – Tercera Parte. Elaboración propia. 43.

(44) 9. DEFINICIÓN Y PRIORIZACIÓN DE PRODUCT BACKLOG 9.2.. CREACIÓN DEL PRODUCT BACKLOG. En esta parte del proyecto se toma cada historia de usuario y se le asigna un alias y se ingresan en el Product Backlog para el cual se usa el formato de la imagen 10. 9.3.. PRIORIZACIÓN DEL PRODUCT BACKLOG. Como se puede apreciar, en esta parte solo se ingresaron las historias de usuario al Product BackLog, pero estas se deben priorizar según: ● Su funcionalidad. ● Que sean independientes de otras historias. ● Que sean necesarias para la creación para un entregable para la empresa. 9.3.1. PILA DEL PRODUCTO En la imagen 11, se puede apreciar la priorización de las historias de usuario dentro del product Backlog.. 44.

(45) Imagen 10. Formato Product BackLog. Elaboración propia. 45.

(46) Imagen 11. Priorización del Product Backlog. Elaboración propia.. 46.

(47) 10. SPRINT PLANNING En esta parte se buscar organizar y estimar cuantas historias deben ir por sprint, cuanto se demoran y su prioridad. Según la reunión del sprint Planning se acordó que serían 5 Sprint para desarrollar el producto y que historias irían en cada uno, además, a cada historia se le dio una prioridad y un tiempo estimado de desarrollo, con el cual podemos calcular el tiempo estimado de cada Sprint. Se da por “terminada” una tarea cuando se encuentre completamente funcional y no depende de otros pendientes para que trabaje al 100%. En primera instancia se mostrará de que trata cada sprint antes de entrar a detalle, como se desarrolla cada uno de los Sprints que se mencionan a continuación. Sprint 1 ● Historias Asignadas: Inicio de sesión y recuperar contraseña (Integración con la suite de aplicaciones) ● Tiempo Estimado: 32 días, lunes a viernes Sprint 2 ● Historias Asignadas: Crear publicación y editar publicación. ● Tiempo Estimado: 20 días, lunes a viernes Sprint 3 ● Historias Asignadas: Seleccionar publicación y compartir ● Tiempo Estimado: 30 días, lunes a viernes Sprint 4 ● Historias Asignadas: Ver adjuntos y descargar adjuntos ● Tiempo Estimado: 10 días, lunes a viernes. 47.

(48) Sprint 5 ● Historias Asignadas: Ver comentarios y realizar comentarios ● Tiempo Estimado: 50 días, lunes a viernes 10.1. SPRINT 1 En la reunión inicial se estableció trabajar con las historias de usuario 7 y 8, con esto se definió la pila de sprint que se incluirá en la entrega al final de la iteración.. Imagen 12. Historias de usuario a trabajar en el Spring 1. Elaboración propia. 10.1.1.. Objetivos. Los objetivos que se deben cumplir para este sprint son: ● Integrar la aplicación con la suite ● Permitir iniciar sesión desde SunOne para usar con el nuevo desarrollo ● Permitir restablecer la contraseña por medio de SunOne Durante las reuniones diarias se aclararon dudas respecto a cómo debería realizarse la integración con la suite. 10.1.2.. Reunión Revisión del Sprint. Se presenta el software completo acuerdo el sprint backlog inicial donde se obtienen los siguientes comentarios: ● El logo de SunOne debe ser cambiado por el de Hermes. ● El tema de Hermes debe coincidir con el tema de la Suite. 48.

(49) 10.1.3.. Cierre y entrega. Para el product Backlog No. 7 (Inicio sesión) se debía vincular la plataforma Hermes (Entiéndase Hermes como el proyecto que se está desarrollando) dentro de la suite SunOne®, para ello se debió usar las características de JSF se hereda la sesión del usuario de la aplicación principal que genera el login (SunOne) para así validar los permisos de acceso a las aplicaciones y navegar entre las distintas aplicaciones que dicha suite contiene, en este caso Hermes.. Imagen 13. Diagrama de secuencia del product Backlog No. 7. Elaboración propia. 49.

(50) Imagen 14. Inicio de sesión de SunOne para la aplicación Hermes. Elaboración propia.. Para el product Backlog No. 8 (Recuperar Password), al igual que el product Backlog No. 7 se necesita recursos de sesión que maneja la aplicación principal, en este caso SunOne, para poder realizar el cambio de contraseña y la recuperación de esta.. 50.

(51) Imagen 15. Diagrama de flujo del product Backlog No. 8 Parte 1. Elaboración propia. 51.

(52) Imagen 16. Diagrama de flujo del product Backlog No. 8 Parte 2. Elaboración propia. 52.

(53) Imagen 187. Vista de recuperación de contraseña. Elaboración propia. Imagen 178. Vista de cambio de contraseña. Elaboración propia. Habiendo cumplido con los objetivos iniciales del sprint se obtiene respuesta satisfactoria por parte del director externo, respecto a la primera versión entregada, 53.

(54) se toman en cuenta tanto comentarios, como modificaciones y se da por finalizado el sprint 1 para dar paso al siguiente incremento. 10.2. SPRINT 2 En la reunión inicial se estableció trabajar con las historias de usuario 10 y 9, con esto se definió la pila de sprint que se incluirá en la entrega al final de la iteración.. Imagen 19. Historias de usuario a trabajar en el Spring 2. Elaboración propia. 10.2.1.. Objetivos. Los objetivos que se deben cumplir para este sprint son: ● Permitir la creación de publicaciones ● Permitir al guardado de archivos ● Permitir la edición de publicaciones ● Permitir la inserción y eliminación de archivos Durante las reuniones diarias se aclararon dudas respecto a cómo se podía ocultar una publicación, como se debía guardar el contenido de la publicación y el correcto almacenamiento de los adjuntos. 10.2.2.. Reunión Revisión del Sprint. Se presenta el software completo acuerdo el sprint backlog inicial donde se obtienen los siguientes comentarios: ● Ajustar el largo de algunos campos ● Cambiar el modo en el que se adjunta el archivo ● Revisar el tamaño máximo de los archivos a adjuntar. 54.

(55) ● Delimitar el tamaño de la publicación (debe tener un máximo de caracteres en la publicación) ● Debe permitir todo tipo de archivos 10.2.3.. Cierre y entrega. Para el product Backlog No. 10, se realiza el listado de las publicaciones y la opción de poder crearlas a partir de las características que nos ofrece PrimeFaces en conjunto con Java, esto nos permite estructurar la vista deseada junto con las funciones de redactar la publicación, inserción y eliminación de adjuntos a esta y posteriormente, su publicación.. Imagen 20. Vista listado de publicaciones realizadas por la entidad. Elaboración propia.. 55.

(56) Imagen 21. Diagrama de secuencia del product Backlog No. 10.Elaboración Propia. 56.

(57) Imagen 22. Vista creación de Publicación. Elaboración propia. Para el product Backlog No. 9 (Edición de publicaciones), se aprovecha lo desarrollado en el product Backlog No. 10 para poder consultar la información y así poder editar el contenido de la publicación seleccionada de las vistas previamente creadas.. Imagen 23. Vista edición de publicación. Elaboración propia.. 57.

(58) Imagen 24. Diagrama de secuencia del product Backlog No. 9. Elaboración propia. 58.

(59) Habiendo cumplido con los objetivos iniciales del sprint se obtiene respuesta satisfactoria por parte de nuestro jefe respecto a la primera versión entregada, se toman en cuenta comentarios y modificaciones y se da por finalizado el sprint 2 para dar paso al siguiente incremento. 10.3. SPRINT 3 En la reunión inicial se estableció trabajar con las historias de usuario 1 y 6, con esto se definió la pila de sprint que se incluirá en la entrega al final de la iteración.. Imagen 25. Historias de usuario a trabajar en el Spring 3. Elaboración propia. 10.3.1.. Objetivos. Los objetivos que se deben cumplir para este sprint son: ● Mostrar una vista que contenga todas las publicaciones ● Permitir el acceso a la vista sin necesidad de un login ● Permitir que cada publicación pueda ser compartida en Facebook o Twitter ● Permitir que la publicación nos redirija a la noticia compartida Durante las reuniones diarias se aclararon dudas respecto a cómo se debería compartir la publicación y como debería visualizarse al acceder al link, también de cómo debería distribuirse la publicación con sus respectivos adjuntos. 10.3.2.. Reunión Revisión del Sprint. Se presenta el software completo acuerdo el sprint backlog inicial donde se obtienen los siguientes comentarios: ● Cambiar los logos para compartir en redes sociales. 59.

(60) 10.3.3.. Cierre y entrega. Para este Spring se diseña las respectivas vistas, para que en el momento que ingrese a la plataforma no me realice una petición en la sesión de la plataforma SunOne, así cualquier usuario que no posea permisos para entrar a la aplicación pueda visualizar las publicaciones emitidas en la plataforma. Además de esto se agrega un filtro para realizar la búsqueda personalizada de las publicaciones. En el product Backlog No.1 (Selección de publicación) se realiza dos vistas, una donde se visualiza todas las publicaciones realizadas en la plataforma y la segunda donde se visualiza todo el contenido de una sola aplicación. El usuario puede acceder desde la primera vista a la segunda a través de un hipervínculo que se encuentra en cada una de las publicaciones que se listan en esta vista.. Imagen 26. Diagrama de secuencia del product Backlog No. 1. Elaboración propia.. En el product Backlog No.6 (Compartir en redes sociales) se implementan las API’s de las redes sociales más usadas en el mundo (Facebook y Twitter) para realizar una publicación en dichas redes de nuestra publicación.. 60.

(61) Imagen 287. Vista visualización publicación. Elaboración propia. Imagen 278. Visualización a detalle de una publicación. Elaboración propia. 61.

(62) Habiendo cumplido con los objetivos iniciales del sprint se obtiene respuesta satisfactoria por parte de nuestro jefe respecto a la primera versión entregada, se toman en cuenta comentarios y modificaciones y se da por finalizado el sprint 3 para dar paso al siguiente incremento. 10.4. SPRINT 4 En la reunión inicial se estableció trabajar con las historias de usuario 2 y 3, con esto se definió la pila de sprint que se incluirá en la entrega al final de la iteración.. Imagen 29. Historias de usuario a trabajar en el Spring 4. Elaboración propia. 10.4.1.. Objetivos. Los objetivos que se deben cumplir para este sprint son: ● Mostrar el listado de adjuntos pertenecientes a la publicación ● Permitir descargar cada uno de los adjuntos de cada publicación Durante las reuniones diarias se aclararon dudas respecto a cómo se deberían mostrar lo adjuntos, como debería listarse y como deberían descargarse. 10.4.2.. Reunión Revisión del Sprint. Se presenta el software completo acuerdo el sprint backlog inicial donde no se obtuvieron comentarios. 10.4.3.. Cierre y entrega. Para el product Backlog No. 2 y 3, con ayuda de los componentes de Primefaces se realiza la visualización de archivos que se cargaron en dicha publicación en la aplicación, así mismo, con ayuda del mismo componente se realiza un hipervínculo el cual permite descargar el adjunto seleccionado.. 62.

(63) Imagen 30. Diagrama de secuencia de los product Backlog No. 2 y 3. Elaboración Propia. 63.

(64) Imagen 321. Vista listado de archivos adjuntos de la publicación. Elaboración propia. Imagen 312. Vista archivo descargado. Elaboración Propia. Habiendo cumplido con los objetivos iniciales del sprint se obtiene respuesta satisfactoria por parte de nuestro jefe respecto a la primera versión entregada, se 64.

(65) toman en cuenta comentarios y modificaciones y se da por finalizado el sprint 4 para dar paso al último incremento. 10.4.4.. SPRINT 5. En la reunión inicial se estableció trabajar con las historias de usuario 4 y 5, con esto se definió la pila de sprint que se incluirá en la entrega al final de la iteración.. Imagen 33. Historias de usuario a trabajar en el Spring 5. Elaboración propia. 10.4.5.. Objetivos. Los objetivos que se deben cumplir para este sprint son: ● Mostrar un listado de comentarios por cada publicación ● Permitir realizar comentarios ● Validar cada comentario y censurar las palabras obscenas ● Permitir los comentarios obscenos ya censurados ● Mostrar el nombre de la persona que comento si esta estaba logeada Durante las reuniones diarias se aclararon dudas respecto a cómo se debería censurar las obscenidades de un comentario. 10.4.6.. Reunión Revisión del Sprint. Se presenta el software completo acuerdo el sprint backlog inicial donde se obtienen los siguientes comentarios: ● Cambiar el campo de realizar comentario para la parte superior de los comentarios ● Mostrar un mensaje cuando un comentario contenga lenguaje ofensivo que permita al usuario publicar o no el mensaje 65.

(66) 10.4.7.. Cierre y entrega. Para los product Backlog 4 y 5, fue necesario utilizar la herramienta Primefaces como, por ejemplo, el componente DataScroller, para visualizar los datos y no sobrecargar la página con todos los comentarios. A parte, se presenta un algoritmo para detección de lenguaje vulgar resistente a transliteración ASCII17, el cual nos permitirá a partir de algoritmos de detección de caracteres especiales y comparación de este a una letra del alfabeto para así comparar y detectar similitudes de palabras obscenas en cadena de caracteres insertadas por el usuario dentro de un comentario.. Imagen 34. Vista aviso de censura de lenguaje. Elaboración propia. 17. Diseño e Implementación de un filtro de censura en foros web resistente a transliteración ASCII. [En Linea] <http://repository.udistrital.edu.co/handle/11349/2377>. Citado el 28 de diciembre de 2017. 66.

(67) Imagen 35. Diagrama de secuencia del product Backlog No. 4. Elaboración propia. 67.

(68) Imagen 36. Diagrama de secuencia del product Backlog No. 5. Elaboración propia. 68.

(69) Imagen 37. Vista comentario censurado. Elaboración propia. Habiendo cumplido con los objetivos iniciales del sprint se obtiene respuesta satisfactoria por parte de nuestro jefe respecto a la primera versión entregada, se toman en cuenta comentarios y modificaciones y se da por finalizado el sprint 5 por lo tanto se da un entregable del producto final y es aceptado.. 69.

(70) 11. FASE FINAL El producto se desarrolló en su totalidad de acuerdo a lo establecido entre las dos partes (Solredes S.A.S. y la Universidad Distrital Francisco José de Caldas), se realizaron las pruebas internas de operatividad respectivas y correcciones necesarias. Quedó a disposición de la empresa Solredes S.A.S. y la Universidad Distrital Francisco José de Caldas, para que sea implementado a futuros desarrollos y despliegues con el fin de suplir las necesidades mencionadas anteriormente en este documento. De dicho desarrollo se ha generado las siguientes clases: 11.1. ARCHIVO EJB 11.1.1.. Entities. Imagen 38. Diagrama de clases del paquete Entity. Elabración propia. 70.

(71) 11.1.2.. Session. Imagen 39. Diagrama de clases del paquete Sessión. Elaboración propia. 71.

(72) 11.1.3.. Mail. Imagen 40. Diagrama de clases del paquete Mail. Elaboración propia. 72.

(73) 11.2. ARCHIVO WAR 11.2.1.. Basicas. 11.2.2.. Tickets. Imagen 41. Diagrama de clases del diagrama Básicas. Elaboración propia Imagen 42. Diagrama de clases del paquete Tickets. Elaboración propia. 73.

(74) 11.2.3.. Util. Imagen 43. Diagrama de clases del paquete Util. Elaboración propia. 74.

(75) 12. CONCLUCIONES Para concluir, se logra conocer la importancia de la persistencia de datos dentro de la misma aplicación y lo sencillo que se hace el desarrollo mediante los diferentes frameworks que los lenguajes de programación nos ofrecen. Java Enterprise Edition es una herramienta vital para este tipo de investigaciones gracias a su robustez y flexibilidad para este tipo de investigaciones debido a su gran capacidad de integración con otras tecnologías y librerías, además Hibernate nos permite realizar el mapeo objeto relacional de nuestra base de datos, de tal forma que podemos usar las tablas como objetos y las columnas como atributos, así poder manejar una persistencia optima en nuestra aplicación. Por otro lado, PrimeFaces, permite el manejo de componentes visuales de la aplicación que hacen de una experiencia agradable tanto para el usuario como para el desarrollador. Gracias a esto, se logró obtener el desarrollo de una aplicación robusta, de forma rápida y segura. Se espera que esta aplicación en un futuro sea complementada para el crecimiento intelectual tanto de nosotros como de la empresa a la cual va destinada este trabajo.. 75.

(76) 13. RECOMENDACIONES Las siguientes recomendaciones son para el correcto funcionamiento del software denominado Hermes: ● Debe ser desplegado en el servidor de aplicaciones Widlfly10.0.0 Final ● Debe realizarse la configuración adecuada en el servidor de aplicaciones (Esto se encuentra en el manual de despliegue) ● Se debe tener acceso a las bases de datos de la suite SunOne® y Hermes ● Se debe vincular la aplicación Hermes en la suite SunOne® ● Se debe contar con conexión a internet. 76.

(77) 14. BIBLIOGRAFÍA LEY. 1712. DE. 2014.. [En. Linea]. <http://www.alcaldiabogota.gov. co/sisjur/normas/Norma1.jsp?i=56882>. [Citado el 11 de Noviembre de 2017] Taringa!. [En linea] <https://es.wikipedia.org/wiki/Taringa!> [Citado el 15 de Noviembre de 2017] Qué es SCRUM.[En Linea] <https://proyectosagiles.org/que-es-scrum/> [Citado el 11 de Noviembre de 2017] Entra al mundo de Java Enterprise. [En Línea] <http://www.jtech.ua.es/j2ee/20062007/jee.html>[Citado el 11 de Noviembre de 2017] Taruelo, Sandra - Miguel, Barcenilla. Java Server Faces (JSF). [En Linea] <http://www.it.uc3m.es/spickin/docencia/comsoft/presentations/spanish/0708/JSF.pdf > [Citado el 12 de Noviembre de 2017] Lerma,. Enrique.. Introducción. a. Primefaces.. 2010. [En. Línea]. <https://www.adictosaltrabajo.com/tutoriales/introduccion-primefaces/> [Citado el 16 de Noviembre de 2017] JPA. –. Introducción. [En. https://www.tutorialspoint.com/es/jpa/jpa_introduction.htm>. Linea] [Citado. < el. 14. de. Diciembre de 2017] JPA. (Java. Persistence. API). [En. Linea]. <https://www.ibm.com/support/knowledgecenter/es/SSAW57_8.5.5/com.ibm.webs phere.wlp.nd.doc/ae/cwlp_jpa.html> [Citado el 14 de Noviembre de 2017] JPA – JPQL. [En Linea]. <https://www.tutorialspoint.com/es/jpa/jpa_jpql.htm> [Citado el 11 de noviembre de 2017] 2013.. ¿Qué. es. Java. Hibernate?.. [En. Liena]. <http://blog.educacionit.com/2013/02/07/que-es-java-hibernate/> [Citado el 15 de Noviembre de 2017] 77.

(78) Valero, Brayan – Clavijo Andres. Sistema de información integral estudiantil. 2016. [En Línea] <http://hdl.handle.net/11349/4751> [Citado el 17 de Noviembre de 2017] Porto, Julian -. Gardey, Ana. Definición de entidad. 2010. [En Línea]. <https://definicion.de/entidad/> [Citado el 17 de Noviembre de 2017] Porto, Julian -. Gardey, Ana. Definición de Información. 2008. [En Línea]. <https://definicion.de/informacion/> [Citado el 17 de Noviembre de 2017] Definición. de. Publicación.. [En. <https://www.definicionabc.com/general/publicacion.php>. [Citado. Línea] el. 17. de. Noviembre de 2017] Porto, Julián – Merino, María. Definición de suceso. 2010. [En Línea] <https://definicion.de/suceso/> [Citado el 17 de Noviembre de 2017] Definición de Obscenidad. [En Línea] <http://conceptodefinicion.de/obscenidad/> [Citado el 17 de Noviembre de 2017] Definición de Integración. [En Línea] <http://conceptodefinicion.de/integracion/> [Citado el 17 de Noviembre de 2017] Diseño e Implementación de un filtro de censura en foros web resistente a transliteración. ASCII.. [En. Linea]. <http://repository.udistrital.edu.co/handle/11349/2377>. Citado el 28 de diciembre de 2017. 78.

(79) ANEXO 1: MANUAL DE DESPLIEGUE. 79.

(80) MANUAL DE DESPLIEGUE DESARROLLO DE PLATAFORMA WEB PARA LA PUBLICACIÓN DE SUCESOS INTERNOS DE ENTIDADES PÚBLICAS BASADO EN TECNOLOGÍA JSF. Universidad Distrital Francisco José de Caldas Soluciones en redes y sistemas – SOLREDES S.A.S.. Haroll Alexander Mora Garzón – Oscar Ricardo López López 2018. 80.

(81) Requerimientos del sistema. Para poder ejecutar la aplicación, se es necesario las siguientes características: . Hardware Se debe tener un servidor que posea:  Procesador Quadcore de 2.5 Ghz o superior  4Gb de memoria RAM (Recomendable 8Gb)  500Gb de memoria principal  Software  Windows server 2008 en adelante o cualquier distribución de Linux de su preferencia.  Servidor de aplicaciones WildFly 10.0.0 Final.  Gestor de base de datos Oracle 10g en adelante. Servidor de Aplicaciones El servidor de aplicaciones que se debe usar para el correcto despliegue de la aplicación es Wildfly 10, lo podemos descargar de la siguiente url http://wildfly.org/downloads/.. Aquí aparece el listado de versiones libres disponibles, en este caso buscamos la versión 10.0.0. Final (JavaEE Full & Web Distribution) con la cual se realizó el desarrollo y posteriormente las pruebas.. 81.

(82) Seleccionamos el link de descarga, y esperamos a que se descargue el archivo comprimido con extensión .zip, luego de finalizar la descarga debemos contar con un programa que permita la descompresión de archivos, en este caso usamos Winrar.. 82.

(83) Luego de que finalice la descompresión aparecerá una carpeta con el mismo nombre del archivo comprimido en este caso es “wildlfy-10.0.0. Final”, dentro de esta carpeta seleccionamos la carpeta “standalone” y luego seleccionamos la carpeta “configuration”.. En esta carpeta con clic derecho seleccionamos el archivo “standalone.xml” y buscamos la opcion abrir con, alli seleccionamos un editor de texto, en este caso usaremos Notepad++.. 83.

(84) Abierto el archivo, buscamos en las líneas de configuración el subsistema “subsystem xmlns="urn:jboss:domain:datasources:4.0"”. Allí dentro de la sección “datasources” debajo del primer “datasoruce” agregamos las siguientes líneas de configuración: <datasource jta="true" jndi-name="java:/DS_SUNONE" pool-name="DS_SUNONE" use-javacontext="true" use-ccm="true"> <connection-url>”CONEXIÓN JDBC”</connection-url> <driver>” CONTROLADOR DE BASE DATOS”</driver> <pool> <min-pool-size>1</min-pool-size> <max-pool-size>5</max-pool-size> <prefill>true</prefill> </pool> <security> <user-name>”USUARIO BASE DE DATOS”</user-name> <password>”CONTRASEÑA BASE DE DATOS”</password> </security> <statement> <prepared-statement-cache-size>16</prepared-statement-cache-size>. 84.

(85) <share-prepared-statements>true</share-prepared-statements> </statement> </datasource>. En este caso se deben cambiar los siguientes parámetros por la configuración establecida en el motor de base de datos a utilizar, en este ejemplo se reemplazó la información así:    . CONEXIÓN JDBC = jdbc:oracle:thin:@//192.168.5.4:1521/DBMASTER CONTROLADOR DE BASE DATOS = Oracle USUARIO BASE DE DATOS = C##SDIS2017_SUNONE CONTRASEÑA BASE DE DATOS = SDIS2017_SUNONE. Después de insertar las líneas de configuración del datasoruce de “SunOne” debajo debemos insertar la configuración del datasource de “Hermes” con las siguientes líneas:. 85.

(86) <datasource jta="true" jndi-name="java:/DS_HERMES" pool-name="DS_HERMES" use-javacontext="true" use-ccm="true"> <connection-url>”CONEXIÓN JDBC”</connection-url> <driver>” CONTROLADOR DE BASE DATOS”</driver> <pool> <min-pool-size>1</min-pool-size> <max-pool-size>5</max-pool-size> <prefill>true</prefill> </pool> <security> <user-name>”USUARIO BASE DE DATOS”</user-name> <password>”CONTRASEÑA BASE DE DATOS”</password> </security> <statement> <prepared-statement-cache-size>16</prepared-statement-cache-size> <share-prepared-statements>true</share-prepared-statements> </statement> </datasource>. En este caso se deben cambiar los siguientes parámetros por la configuración establecida en el motor de base de datos a utilizar, en este ejemplo se reemplazó la información así:. 86.

(87)    . CONEXIÓN JDBC = jdbc:oracle:thin:@//192.168.5.4:1521/DBMASTER CONTROLADOR DE BASE DATOS = Oracle USUARIO BASE DE DATOS = C##SDIS2017_HERMES CONTRASEÑA BASE DE DATOS = SDIS2017_HERMES. Después de esta configuración debemos descargar el JDBC de acuerdo al motor de bases de datos que se va a implementar, en este caso usaremos el JDBC de oracle. “ojdbc6”. el. cual. lo. descargaremos. del. siguiente. vínculo:. https://mvnrepository.com/artifact/com.oracle/ojdbc6/11.2.0.4.0-atlassian-hosted.. Después de descargar el JDBC procedemos a ubicar el archivo, buscamos la documentación de este en la página del fabricante, para así determinar la ubicación de nuestro JDBC dentro de los módulos del servidor de aplicaciones. En este caso, el motor de bases de datos usado ha determinado que la dirección es “com.oracle.ojdbc6”. Ya teniendo la ruta en la cual debe ir almacenado el JDBC, procederemos a crear las carpetas que usaremos para añadir el módulo, las cuales deben estar almacenadas dentro de “modules\system\layers\base” que se encuentra en la carpeta de Wildfly, una vez estando dentro de la ruta mencionada anteriormente se crean las carpetas “com/oracle/ojdbc6/main” esto en caso de. 87.

(88) que dichas carpetas no se encuentren creadas con anterioridad, finalmente, dentro de esta ruta se añade el archivo JDBC descargado y se crea un archivo llamado “modules.xml” el cual debe incluir lo siguiente:. <?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.3" name="com.oracle.ojdbc6"> <resources> <resource-root path="ojdbc6.jar"/> </resources> <dependencies> <module name="javax.api"/> </dependencies> </module>. Para esta ocasión en “name” se agrega la ruta determinada por el fabricante de la ubicación del JDBC dentro de los módulos en el servidor de aplicaciones. En la línea “resource-root path” se debe agregar el nombre del archivo JDBC incluyendo el formato del archivo (generalmente .jar). Después de esto, al final de la configuración realizada con el “datasource” veremos otra sección “drivers” dentro de esta sección agregaremos el siguiente código:. 88.

Figure

Tabla 1.Presupuesto total del proyecto. Elaboración propia

Referencias

Documento similar

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

Y tendiendo ellos la vista vieron cuanto en el mundo había y dieron las gracias al Criador diciendo: Repetidas gracias os damos porque nos habéis criado hombres, nos

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

Sanz (Universidad Carlos III-IUNE): &#34;El papel de las fuentes de datos en los ranking nacionales de universidades&#34;.. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y