




























































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Cómo obtener información de commits realizados en GeneXus Server, parsear los comentarios y pasar la información a Slack y JIRA. Se incluyen pasos para obtener la información del usuario, fecha y hora del commit, lista de objetos modificados y identificador del commit. Además, se explica cómo enviar mensajes a Slack y actualizar issues en JIRA.
Tipo: Esquemas y mapas conceptuales
1 / 288
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





























































































Entregado como requisito para la obtención del título de Licenciado en Sistemas Ignacio Eirale - 201742 Maximiliano García - 146323 Rodrigo Méndez - 205138 Gonzalo Wagner - 187413 Tutor: Rafael Bentancur
Declaración de autoría Nosotros, Ignacio Eirale, Maximiliano García, Rodrigo Méndez y Gonzalo Wagner, declaramos que el trabajo que se presenta en esa obra es de nuestra propia mano. Podemos asegurar que: ● La obra fue producida en su totalidad mientras realizábamos el Proyecto de Fin de Carrera de Licenciatura en Sistemas; ● Cuando hemos consultado el trabajo publicado por otros, lo hemos atribuido con claridad; ● Cuando hemos citado obras de otros, hemos indicado las fuentes. Con excepción de estas citas, la obra es enteramente nuestra; ● En la obra, hemos acusado recibo de las ayudas recibidas; ● Cuando la obra se basa en trabajo realizado conjuntamente con otros, hemos explicado claramente qué fue contribuido por otros, y qué fue contribuido por nosotros; ● Ninguna parte de este trabajo ha sido publicada previamente a su entrega, excepto donde se han realizado las aclaraciones correspondientes. Ignacio Eirale Maximiliano García Rodrigo Méndez Gonzalo Wagner 12/09/
Abstract El objetivo de este proyecto es realizar una prueba de concepto que permita automatizar la integración de herramientas de apoyo al ciclo de desarrollo de software en GeneXus [1], y así realizar de manera automática ciertos flujos de trabajo. Esto responde a la necesidad de que Genexus tenga las mismas prestaciones que otros entornos de desarrollo de software de clase mundial. Se considera como caso de uso principal, que cuando un desarrollador GeneXus realice commits de un proyecto al repositorio utilizado (GxServer ), se disparen múltiples flujos de trabajo en herramientas de terceros a través de reglas definidas para cada proyecto. En particular nuestra implementación apoya la automatización del proceso de compilación de un proyecto con una herramienta de entrega continua (Jenkins [2]), una herramienta de ticketing (Jira [3]) para que asocie el cambio realizado a un issue , y una herramienta de comunicación interna del equipo (para este caso se seleccionó Slack [4]). Se implementó una interfaz genérica para definir las reglas de integración, que es extensible a nuevas herramientas debido a un diseño desacoplado y mantenible. La solución se desarrolló en C# [5], ya que es el lenguaje utilizado por el cliente para sus aplicaciones. Se utilizaron webhooks para poder subscribirse a los eventos de las herramientas GeneXus y a partir de la ejecución de dicho evento poder hacer alguna acción sobre las herramientas integradas. Dada la falta de experiencia de los integrantes del equipo y por las características del proyecto, se eligió un ciclo de vida evolutivo, permitiendo así incorporar cambios a lo largo del proyecto y gestionar de manera más efectiva la incertidumbre.
Para la gestión del proyecto se optó por una metodología híbrida, considerando que el proyecto es compatible con metodologías ágiles dado que el tiempo es fijo y el alcance es flexible. Para ello se optó por Scrum [6], [7]. Por otro lado, para gestionar los riesgos y el alcance se incorporan elementos de una metodología tradicional.
Glosario AfterCommit - Evento ejecutado luego de que se realiza la acción de commit de una KB en GXServer. AfterPublish - Evento ejecutado luego de que se realiza la acción de publish de una KB en GXServer. API - Interfaz de programación de aplicaciones (del inglés API: Application Programming Interface ). Es un conjunto de rutinas que provee acceso a funciones de un determinado software. Backend - Es la parte del software que procesa la entrada desde el frontend. Branch - Comando Git [8] usado para crear una nueva rama de versionado. Build - Instrucción en Jenkins que se encarga de realizar el armado y compilado de un programa. Burndown Chart - Gráfica que representa el trabajo restante en consideración del tiempo transcurrido, utilizado en el marco de scrum para efectuar un seguimiento del progreso del equipo. C# - Lenguaje de programación orientado a objetos. Lenguaje usado para la codificación de GeneXus. Channel - Denominación para un canal de comunicación en Slack. CI/CD - Sigla del inglés para Integración continua y Entrega continua. Método para distribuir aplicaciones de forma frecuente a los clientes mediante el uso de la automatización en las etapas del desarrollo de las aplicaciones.
Commit - Acción de confirmar un conjunto de cambios provisionales de forma permanente en un repositorio. Criterio de aceptación - Conjunto de características con la que una user story debe cumplir para ser considerada como terminada. Daily Scrum - Ceremonia de scrum que consiste es una reunión diaria (o de carácter frecuente) donde cada miembro del equipo se informa y compromete con el resto respecto a el estado de las tareas a realizar. Development Team - En scrum , es el equipo auto organizado que lleva el proyecto a cabo. DevOps - Práctica de ingeniería de software que tiene como objetivo unificar el desarrollo de software (Dev) y la operación del software (Ops). Mediante la automatización y el monitoreo en todos los pasos de la construcción del software , desde la integración, las pruebas, la liberación hasta la implementación y la administración de la infraestructura DevOps apunta a ciclos de desarrollo más cortos, mayor frecuencia de implementación, lanzamientos más confiables, en estrecha alineación con los objetivos comerciales. Entorno de desarrollo integrado IDE - Es una aplicación informática que proporciona servicios integrales para facilitarle al desarrollador o programador el desarrollo de software. Epic / Epica - Es una user story que, por su gran tamaño, se descompone en historias con un tamaño más adecuado para ser gestionada con los principios y técnicas ágiles. Factory - Patrón de diseño que consiste en utilizar una clase constructora abstracta con métodos definidos y métodos abstractos.
Issue - Unidad de trabajo para realizar una mejora en un sistema informático. Un issue puede ser el arreglo de un fallo, una característica pedida, una tarea, un pedido de documentación específico y todo tipo de solicitud al equipo de desarrollo. Issue tracking / Ticketing System - Un sistema de seguimiento de incidentes, es un paquete de software que administra y mantiene listas de incidentes. Jira - Herramienta en línea para la administración de tareas de un proyecto, el seguimiento de errores e incidencias y para la gestión operativa de proyectos. Job - Denominación en Jenkins de un conjunto de instrucciones a realizar secuencialmente. JSON [12] - Notación de objeto de JavaScript, utilizada para el intercambio de datos. Knowledge Base / Base de conocimiento/ KB - El nombre que reciben los proyectos de software en el ecosistema de GeneXus. Merge - Comando Git usado para fusionar dos ramas de versionado. Parse - Acción de leer una cadena de caracteres y convertir la información a un formato utilizable para la codificación del software. Planning Poker - Técnica para estimar en base al consenso del equipo, el esfuerzo necesario para completar una user story. Plugin - Aplicación informática que se relaciona con otra para agregarle una función nueva y generalmente muy específica. Postman - Entorno de desarrollo de APIs que nos permite diseñar, probar y monitorear servicios REST.
Product Backlog - Lista de user stories , ordenadas que intenta cubrir todas las funcionalidades necesarias del producto. Product Owner - En scrum , es el individuo responsable de maximizar el valor del producto resultante del trabajo del Development Team. Prueba de concepto/ Proof of concept / POC - Es una implementación, a menudo resumida o incompleta, de un método o de una idea, realizada con el propósito de verificar que el concepto o teoría en cuestión es susceptible de ser explotada de una manera útil. Reflection - Proceso por el cual un programa de software puede observar y modificar la estructura y comportamiento de un objeto de forma dinámica. Release - Versiones del producto que se ponen a disposición de los usuarios. Repository /Repositorio - Espacio centralizado donde se almacena, organiza, mantiene y difunde información digital, habitualmente archivos informáticos, conjuntos de datos o software. REST - Protocolo de intercambio y manipulación de datos en los servicios de internet , usa HTTP para obtener datos o generar operaciones sobre esos datos en todos los formatos posibles, como XML y JSON. Scrum - Marco de trabajo para desarrollo ágil de software. Adopta una estrategia de desarrollo incremental, en lugar de la planificación y ejecución completa del producto. Scrum Master - En s crum , es el rol del facilitador del proyecto en el equipo, individuo responsable de que los equipos alcancen sus objetivos, eliminando las dificultades con las que se puedan encontrar. Slack - Herramienta de comunicación en equipos de trabajo.
Uniform Resource Locator / URL - Dirección específica que se asigna a cada uno de los recursos disponibles en la red con la finalidad de que estos puedan ser localizados o identificados Update - Acción de actualizar localmente los cambios realizados en el repositorio. User Story / Historia de usuario - Representación de un requisito escrito en lenguaje de usuario. Whatsapp - Aplicación de mensajería. Webhooks - Es un método de alteración del funcionamiento de una página o aplicación web , con callbacks personalizados.
Resumen de los productos resultantes en función de los objetivos trazados