442 resultados para agile
Resumo:
En el departamento de Ocio Digital de bq se desarrollan multitud de proyectos con diferentes modelos de negocio y diferentes stack tecnológicos. Para llevar a cabo todos estos proyectos, es necesario tener un ecosistema de desarrollo lo más unificado y centralizado posible. Por eso, en el departamento existe una plataforma genérica de servicios REST sobre la que se apoyan todos los aplicativos desarrollados. Para agilizar y facilitar la integración de los aplicativos con la plataforma de servicios,se desarrolla este SDK (Software Development Kit) basado en JavaScript llamado corbel-js. Este SDK ha de funcionar tanto en aplicaciones web, como en un middleware basado en node.js desarrollado también en la organización, por lo que el SDK se ha desarrollado de forma híbrida, siendo capaz de ejecutarse tanto en en el lado del cliente, como en el lado del servidor. Además, como parte de la filosofía del departamento, el desarrollo del SDK está basado en tecnologías Open Source, usando metodologías ágiles de desarrollo y un sistema de integración continua y revisión de código, garantizando la calidad del mismo. ABSTRACT A lot of different kinds of software projects are developed in the digital department of bq. To easily develop all of these projects, each one with its own business model and technology stack, it is necessary to have an unique software ecosystem. Because of that, in the software department a generic service REST platform has been developed. To support an easy integration of the applications with the service platform of the organization, this SDK(Software Development Kit) has been developed in JavaScript. As the SDK has to run under a web application and under a software middleware based in node.js, also developed in the organization, the SDK is hybrid, being capable of run inside a web client application or inside a node.js application server. As a part of the software philosophy of the department, the development of the SDK is made with a whole open source software stack, using agile software methodologies.
Resumo:
En este Proyecto Fin de Grado se construirá una herramienta de gestión integral de centros hortícolas donde una serie de huertos cuidados por personas en situación de discapacidad son alquilados a terceros. Esta iniciativa se lleva a cabo gracias a la iniciativa “La Huerta de Montecarmelo” de la Fundación Carmen Pardo-Valcarce de Madrid. Este proyecto es el resultado de la colaboración entre la Escuela Técnica Superior de Ingeniería de Sistemas Informáticos y la Fundación, a través de un programa de Prácticas Externas que duró doce meses. Por una parte, tras años de trabajo en esta Obra Social, se encontró que muchos de los clientes, pasado el verano, se desvinculaban de las tareas y del medio. A fin de solucionar esos problemas, se propuso construir una aplicación web, comunicada con otros dispositivos, como Smartphones, permitiendo un flujo de trabajo más ágil y notificando a los arrendatarios de cada cambio en sus huertos, por ejemplo: fotos recientes, notificaciones de recolecta o futuros cursos. El proyecto se llevó a cabo con éxito a lo largo de 2012 y 2013. Abstract In this Final Degree Project we build a complete horticulture center management tool where a set of gardens, which are kept by people with disabilities, are leased to third parties. This project is carried out within the La Huerta Montecarmelo initiative of the Carmen Pardo-Valcarce Foundation in Madrid. The project was the result of collaboration between the School of Computer Systems Engineering of the Technical University of Madrid and that Foundation through an External Practices program that lasted twelve months. By one hand, over the years of Social Work in this initiative, it was found that some clients after spring were easily disconnected from the tasks involved to the garden. By the other, all the management of more than two hundred of gardens becomes a very complex task due to lots of paperwork. To solve these problems and more, we proposed to build a web application, relying on other devices, such as Smartphones, allowing a more agile workflow and notifying customers of any change related to its garden, for example: recent photographs, notifications of harvest or future courses. The project was successfully carried out throughout 2012 and 2013.
Resumo:
La presente tesis doctoral contribuye al problema del diagnóstico autonómico de fallos en redes de telecomunicación. En las redes de telecomunicación actuales, las operadoras realizan tareas de diagnóstico de forma manual. Dichas operaciones deben ser llevadas a cabo por ingenieros altamente cualificados que cada vez tienen más dificultades a la hora de gestionar debidamente el crecimiento exponencial de la red tanto en tamaño, complejidad y heterogeneidad. Además, el advenimiento del Internet del Futuro hace que la demanda de sistemas que simplifiquen y automaticen la gestión de las redes de telecomunicación se haya incrementado en los últimos años. Para extraer el conocimiento necesario para desarrollar las soluciones propuestas y facilitar su adopción por los operadores de red, se propone una metodología de pruebas de aceptación para sistemas multi-agente enfocada en simplificar la comunicación entre los diferentes grupos de trabajo involucrados en todo proyecto de desarrollo software: clientes y desarrolladores. Para contribuir a la solución del problema del diagnóstico autonómico de fallos, se propone una arquitectura de agente capaz de diagnosticar fallos en redes de telecomunicación de manera autónoma. Dicha arquitectura extiende el modelo de agente Belief-Desire- Intention (BDI) con diferentes modelos de diagnóstico que gestionan las diferentes sub-tareas del proceso. La arquitectura propuesta combina diferentes técnicas de razonamiento para alcanzar su propósito gracias a un modelo estructural de la red, que usa razonamiento basado en ontologías, y un modelo causal de fallos, que usa razonamiento Bayesiano para gestionar debidamente la incertidumbre del proceso de diagnóstico. Para asegurar la adecuación de la arquitectura propuesta en situaciones de gran complejidad y heterogeneidad, se propone un marco de argumentación que permite diagnosticar a agentes que estén ejecutando en dominios federados. Para la aplicación de este marco en un sistema multi-agente, se propone un protocolo de coordinación en el que los agentes dialogan hasta alcanzar una conclusión para un caso de diagnóstico concreto. Como trabajos futuros, se consideran la extensión de la arquitectura para abordar otros problemas de gestión como el auto-descubrimiento o la auto-optimización, el uso de técnicas de reputación dentro del marco de argumentación para mejorar la extensibilidad del sistema de diagnóstico en entornos federados y la aplicación de las arquitecturas propuestas en las arquitecturas de red emergentes, como SDN, que ofrecen mayor capacidad de interacción con la red. ABSTRACT This PhD thesis contributes to the problem of autonomic fault diagnosis of telecommunication networks. Nowadays, in telecommunication networks, operators perform manual diagnosis tasks. Those operations must be carried out by high skilled network engineers which have increasing difficulties to properly manage the growing of those networks, both in size, complexity and heterogeneity. Moreover, the advent of the Future Internet makes the demand of solutions which simplifies and automates the telecommunication network management has been increased in recent years. To collect the domain knowledge required to developed the proposed solutions and to simplify its adoption by the operators, an agile testing methodology is defined for multiagent systems. This methodology is focused on the communication gap between the different work groups involved in any software development project, stakeholders and developers. To contribute to overcoming the problem of autonomic fault diagnosis, an agent architecture for fault diagnosis of telecommunication networks is defined. That architecture extends the Belief-Desire-Intention (BDI) agent model with different diagnostic models which handle the different subtasks of the process. The proposed architecture combines different reasoning techniques to achieve its objective using a structural model of the network, which uses ontology-based reasoning, and a causal model, which uses Bayesian reasoning to properly handle the uncertainty of the diagnosis process. To ensure the suitability of the proposed architecture in complex and heterogeneous environments, an argumentation framework is defined. This framework allows agents to perform fault diagnosis in federated domains. To apply this framework in a multi-agent system, a coordination protocol is defined. This protocol is used by agents to dialogue until a reliable conclusion for a specific diagnosis case is reached. Future work comprises the further extension of the agent architecture to approach other managements problems, such as self-discovery or self-optimisation; the application of reputation techniques in the argumentation framework to improve the extensibility of the diagnostic system in federated domains; and the application of the proposed agent architecture in emergent networking architectures, such as SDN, which offers new capabilities of control for the network.
Resumo:
Contexto: La adopción y adaptación de las metodologías ágiles ha sido objeto de estudio en la comunidad y diversas aproximaciones han sido propuestas como solución al problema. La mayoría de las organizaciones comienzan introduciendo prácticas ágiles de manera progresiva, las cuales, junto a las buenas prácticas ya existentes, conforman una nueva metodología ágil adaptada. El problema más importante con el que se enfrentan las organizaciones al adaptar una metodología ágil, son las necesidades específicas del contexto de cada proyecto, porque a pesar de haber definido la adaptación de la metodología en base a las buenas prácticas y procesos existentes en la organización, las condiciones particulares del proyecto y del equipo que lo va a desarrollar, exigen adaptaciones específicas. Otro aspecto importante a resolver es el poder implantar esta adopción y adaptación en toda la organización. Las metodologías ágiles no incluyen actividades que asistan a las organizaciones a solucionar este problema, porque su esfuerzo lo centran en el equipo y el proyecto. Objetivo: El objetivo principal de este trabajo de investigación consiste en “definir un marco de trabajo de adaptación de metodologías ágiles orientado a contextos que permita su implantación en toda la organización a través de ciclos de mejora basados en la reutilización de experiencias adquiridas”. Este marco de trabajo permitirá organizar, gestionar y validar la adaptación de las metodologías ágiles, desplegando en toda la organización las experiencias adquiridas, incorporando pequeñas mejoras en el proceso, y facilitando su reutilización. Todo esto, con el apoyo de la alta dirección. Método: Este trabajo se inició con una investigación exploratoria acompañada de una revisión sistemática para conocer el estado del arte del objeto de estudio, detectando las principales carencias y necesidades de resolución, a partir de las cuales, se delimitó el alcance del problema. Posteriormente, se definieron las hipótesis de investigación y se planteó una solución al problema a través de la definición del marco de trabajo, cuyos resultados fueron evaluados y validados a través de la realización de un caso de estudio. Finalmente, se obtuvieron las conclusiones y se establecieron las líneas futuras de investigación. Resolución: El marco de trabajo presenta una alternativa de adaptación de las metodologías ágiles orientada a contextos, y facilita su implantación en toda la organización. El marco de trabajo idéntica los contextos en los que se desarrollan los proyectos y analiza la causa de los problemas que afectan a la consecución de los objetivos de negocio en cada contexto. Posteriormente, identifica las acciones de adaptación requeridas para reducir o eliminar estas causas y las incorpora en la definición de la metodología ágil, creando de esta manera, una metodología adaptada para cada contexto manteniendo un nivel de agilidad aceptable. Cuando se inicia un nuevo proyecto, se identifica su contexto y se aplica la metodología ágil adaptada definida para dicho contexto. Al final de cada iteración, se analizan las medidas obtenidas y se las compara con la media aplicando una técnica para la evaluación de la consecución de los objetivos. En base a esta comparativa, y a la experiencia adquirida por el equipo, se realizan ajustes en las acciones de adaptación para intentar conseguir una mejora en la siguiente iteración. Una vez finalizado el proyecto, se conoce el impacto de los resultados conseguidos y se puede determinar si se ha alcanzado una mejora en el contexto del proyecto. De ser así, la metodología adaptada es almacenada en un repositorio de experiencias para poder ser reutilizada por otros equipos de desarrollo de la organización. Resultados: El trabajo de investigación fue evaluado y validado satisfactoriamente a través de su experimentación en un caso de estudio, aprobando las hipótesis establecidas. Los aportes y principales resultados de esta investigación son: Definición de un marco de trabajo integral de adaptación de metodologías ágiles, con capacidad de facilitar su implantación en toda la organización. Procedimiento para identificar contextos o escenarios de adaptación. Procedimiento para definir unidades de adaptación a partir de los inhibidores de los objetivos de negocio de la organización. Técnica para analizar la consecución de objetivos en propuestas de mejora de procesos. Conclusiones: Son tres las ventajas principales que han quedado evidenciadas durante la realización del trabajo de investigación: El marco de trabajo proporciona un mecanismo capaz de optimizar el rendimiento de la metodología ágil adaptada al orientar el proceso a las necesidades específicas del contexto del proyecto. El marco de trabajo permite conservar el conocimiento empírico adquirido por el equipo de desarrollo al registrarlo como experiencia adquirida para la organización. El marco de trabajo optimiza y reduce los tiempos del proceso de implantación de la metodología ágil adaptada en otros equipos de la organización. ABSTRACT Context: The adoption and tailoring of agile methods has been studied in the community and various approaches have been proposed as a solution. Most organizations start introducing agile practices gradually, which ones, together with existing good practices, make a new agile method tailored. When an organization starts to adapt an agile method, the context-specific needs of each project are the main trouble, because even though the agile method tailored has been defined based on best practices and processes in the organization, the specific conditions of the project and its team, require specific adaptations. Another important aspect to be solved is to implement this adoption and adaptation throughout all the organization. Agile methods do not include specific activities for helping organizations to solve this problem, because their effort is focused on the team and the project. Objective: The main objective of this research is to “define a tailoring framework for agile methods oriented to contexts that allows its deployment throughout all the organization using improvement cycles based on the reuse of lessons learned”. This framework will allow organize, manage and validate the tailoring of agile methods, adding small improvements in the process, and facilitating reuse. All this, with the support of senior management. Method: This work began with an exploratory investigation accompanied by a systematic review to determine the state of the art about the object of study, after major gaps and needs resolution were identified, and the scope of the problem was delimited. Subsequently, the research hypotheses were defined and the framework was developed for solving the research problem. The results were evaluated and validated through a case study. Finally, conclusions were drawn and future research were established. Resolution The framework presents an alternative for tailoring agile methodologies and facilitates its implementation throughout all the organization. The framework identifies the contexts or scenarios in which software development projects are developed and analyses the causes of the problems affecting the achievement of business goals in each context. Then the adaptation actions required to reduce or eliminate these causes are defined and incorporated into the definition of agile method. Thus, a method tailored for each context is created. When a new project is started, the context in which it will be developed is identified and the tailored agile method to that context is applied. At the end of each iteration of the project, the measurements obtained are analysed and compared with the historical average of context to analyse the improvement in business goals. Based on this comparison, and the experience gained by the project team, adjustments are made in adaptation actions to try to achieve an improvement in the next iteration. Once the project is completed, the impact of the achieved results are known and it can determine if it has reached an improvement in the context of the project. If so, the tailored agile method is stored in a repository of experiences to be reused by other development teams in the organization. Results The goal of this research was successfully evaluated and validated through experimentation in a case study, so the research hypotheses were approved. The contributions and main results of this research are: A framework for tailoring agile methods, that allows its deployment throughout all the organization. A procedure for identifying adaptation scenarios or contexts. A procedure for defining adaptation units from inhibitors of the business goals of the organization. A technique for analysing the achievement of goals in process improvement proposals. Conclusions: There are three main advantages that have been highlighted during the research: The framework provides a mechanism to optimize the performance of agile methods because it guides the process based on the specific needs of the project context. The framework preserves the empirical knowledge acquired by the development team because it registers this empirical knowledge as experience for the organization. The framework streamlines and shortens the process of deploying the tailored agile method to other teams in your organization.
Resumo:
Las metodologías de desarrollo ágiles han sufrido un gran auge en entornos industriales durante los últimos años debido a la rapidez y fiabilidad de los procesos de desarrollo que proponen. La filosofía DevOps y específicamente las metodologías derivadas de ella como Continuous Delivery o Continuous Deployment promueven la gestión completamente automatizada del ciclo de vida de las aplicaciones, desde el código fuente a las aplicaciones ejecutándose en entornos de producción. La automatización se ve como un medio para producir procesos repetibles, fiables y rápidos. Sin embargo, no todas las partes de las metodologías Continuous están completamente automatizadas. En particular, la gestión de la configuración de los parámetros de ejecución es un problema que ha sido acrecentado por la elasticidad y escalabilidad que proporcionan las tecnologías de computación en la nube. La mayoría de las herramientas de despliegue actuales pueden automatizar el despliegue de la configuración de parámetros de ejecución, pero no ofrecen soporte a la hora de fijar esos parámetros o de validar los ficheros que despliegan, principalmente debido al gran abanico de opciones de configuración y el hecho de que el valor de muchos de esos parámetros es fijado en base a preferencias expresadas por el usuario. Esto hecho hace que pueda parecer que cualquier solución al problema debe estar ajustada a una aplicación específica en lugar de ofrecer una solución general. Con el objetivo de solucionar este problema, propongo un modelo de configuración que puede ser inferido a partir de instancias de configuración existentes y que puede reflejar las preferencias de los usuarios para ser usado para facilitar los procesos de configuración. El modelo de configuración puede ser usado como la base de un proceso de configuración interactivo capaz de guiar a un operador humano a través de la configuración de una aplicación para su despliegue en un entorno determinado o para detectar cambios de configuración automáticamente y producir una configuración válida que se ajuste a esos cambios. Además, el modelo de configuración debería ser gestionado como si se tratase de cualquier otro artefacto software y debería ser incorporado a las prácticas de gestión habituales. Por eso también propongo un modelo de gestión de servicios que incluya información relativa a la configuración de parámetros de ejecución y que además es capaz de describir y gestionar propuestas arquitectónicas actuales tales como los arquitecturas de microservicios. ABSTRACT Agile development methodologies have risen in popularity within the industry in recent years due to the speed and reliability of the processes they propose. The DevOps philosophy and specifically the methodologies derived from it such as Continuous Delivery and Continuous Deployment push for a totally automated management of the application lifecycle, from the source code to the software running in production environment. Automation in this regard is used as a means to produce repeatable, reliable and fast processes. However, not all parts of the Continuous methodologies are completely automatized. In particular, management of runtime parameter configuration is a problem that has increased its impact in deployment process due to the scalability and elasticity provided by cloud technologies. Most deployment tools nowadays can automate the deployment of runtime parameter configuration, but they offer no support for parameter setting o configuration validation, as the range of different configuration options and the fact that the value of many of those parameters is based on user preference seems to imply that any solution to the problem will have to be tailored to a specific application. With the aim to solve this problem I propose a configuration model that can be inferred from existing configurations and reflect user preferences in order to ease the configuration process. The configuration model can be used as the base of an interactive configuration process capable of guiding a human operator through the configuration of an application for its deployment in a specific environment or to automatically detect configuration changes and produce valid runtime parameter configurations that take into account those changes. Additionally, the configuration model should be managed as any other software artefact and should be incorporated into current management practices. I also propose a service management model that includes the configuration information and that is able to describe and manage current architectural practices such as the microservices architecture.
Resumo:
En este proyecto se propone un entorno de producción para televisión en alta definición donde las cintas magnéticas para la captura, modificación, gestión y transferencia de los contenidos audiovisuales, quedan sustituidas por servidores informáticos y sistemas de almacenamiento basados en las tecnologías de la información. Dicho entorno sin cintas tiene como misión la realización de la fase de la producción de los contenidos televisivos. Se trata de un centra independiente, en una ubicación remota respecto a las instalaciones centrales de la empresa emisora de televisión. La conexión del entorno sin cinta con los servicios centrales de la cadena se realiza por medio de redes de datos de alta velocidad y por enlace de radiofrecuencia. Por estos medios los sistemas de redacción comunican datos y escaletas, se reciben las señales de contribución que intervienen en los programas, se envía la serial realizada para emisión y se transfieren los materiales grabados al área de Postproducción para su elaboración final. Se plantean dos estudios de televisión dotados de servidores de video y de un almacenamiento compartido para una gestión ágil, unificada y flexible de las demandas de los programas. Además de la eliminación del lento y pesado trabajo de manipulación de las cintas, la producción resulta mucho mas ágil porque se eliminan tiempos de espera por la posibilidad de acceso simultaneo de varios usuarios a un mismo contenido. También se suprimen los tiempos de digitalización y descarga del material grabado, porque los sistemas implementados permiten la ingesta directa de las señales recibidas. Los contenidos de varias jornadas de grabación, en calidad HD, se conservan en el sistema de almacenamiento para la elaboración de materiales en el propio centra y para su transferencia al departamento central correspondiente. Mediante aplicaciones software se busca la integración del trabajo de la redacción de los programas con los procesos de producción de los estudios. El diseño que se propone para los diferentes subsistemas técnicos de los estudios esta orientado a lograr una alta fiabilidad, operatividad y adaptabilidad a las demandas técnicas de la producción audiovisual de los diferentes tipos de programas. Al tratarse de una propuesta conceptual, de manera general no se basa en equipos de marcas o fabricantes concretos sino mas bien en las metodologías concretas de trabajo. Cuando se ejemplifica algún dispositivo en particular es debido a que el concepto tecnológico del mismo es novedoso destaca de manera especial sobre la generalidad de los equipos existentes para esa funcionalidad. ABSTRACT. This project hopes to propose a television production platform that uses computers, servers and storage systems based on information technologies, rather than video tape recorders for ingesting, editing and making TV programs. This tapeless system has as its mission the production of all kind of television contents, employing IT systems, without the use of magnetic tapes. We envision an independent TV production center located in a remote location, in relation to the main broadcaster facilities, where all communications between this broadcasting center and the remote independent tapeless center would occur via high speed internet and a radiofrequency link as a back up. In this way, the Newsroom systems communicate data and rundowns; contribution feeds are received; PGM signal are codified and transmitted; and stored media are transferred to the post production area for final editing, playout and archive. Two TV studios are proposed, equipped with video servers and sharing media storage for agile, unified and flexible management of the production requirements. Apart from completely eliminating the slow and hard work resulting from handling a lot of traditional magnetic tapes, the production ends up being much quicker due to the fact that there is no waiting time between recording and viewing. This also enables several users to access and view the same material at the same time. The digitalization and downloading time is also greatly reduced due to the direct ingestion of contribution feeds to the system. The HD content of various days of recording, are stored for future use for whichever department needs the footage in the future. Through software applications, there will be complete integration between the Newsroom work and the production process of the studios. The proposed design for the various technical subsystems in the recording studio is directed towards achieving optimum reliability and operational capability: they are easily adaptable to the technical demands of the audiovisual production of the different programs. Because we are dealing with a conceptual proposal, in general terms, we are not defining the brands or manufacturers of the technical equipment, but rather we are specifying the methods which we plan to implement. When some equipment is highlighted, it's only because that specific brand exemplifies a higher performance than any other equipment in the range.
Resumo:
Hoy en día, existen numerosos sistemas (financieros, fabricación industrial, infraestructura de servicios básicos, etc.) que son dependientes del software. Según la definición de Ingeniería del Software realizada por I. Sommerville, “la Ingeniería del Software es una disciplina de la ingeniería que comprende todos los aspectos de la producción de software desde las etapas iniciales de la especificación del sistema, hasta el mantenimiento de éste después de que se utiliza.” “La ingeniería del software no sólo comprende los procesos técnicos del desarrollo de software, sino también actividades tales como la gestión de proyectos de software y el desarrollo de herramientas, métodos y teorías de apoyo a la producción de software.” Los modelos de proceso de desarrollo software determinan una serie de pautas para poder desarrollar con éxito un proyecto de desarrollo software. Desde que surgieran estos modelos de proceso, se investigado en nuevas maneras de poder gestionar un proyecto y producir software de calidad. En primer lugar surgieron las metodologías pesadas o tradicionales, pero con el avance del tiempo y la tecnología, surgieron unas nuevas llamadas metodologías ágiles. En el marco de las metodologías ágiles cabe destacar una determinada práctica, la integración continua. Esta práctica surgió de la mano de Martin Fowler, con el objetivo de facilitar el trabajo en grupo y automatizar las tareas de integración. La integración continua se basa en la construcción automática de proyectos con una frecuencia alta, promoviendo la detección de errores en un momento temprano para poder dar prioridad a corregir dichos errores. Sin embargo, una de las claves del éxito en el desarrollo de cualquier proyecto software consiste en utilizar un entorno de trabajo que facilite, sistematice y ayude a aplicar un proceso de desarrollo de una forma eficiente. Este Proyecto Fin de Grado (PFG) tiene por objetivo el análisis de distintas herramientas para configurar un entorno de trabajo que permita desarrollar proyectos aplicando metodologías ágiles e integración continua de una forma fácil y eficiente. Una vez analizadas dichas herramientas, se ha propuesto y configurado un entorno de trabajo para su puesta en marcha y uso. Una característica a destacar de este PFG es que las herramientas analizadas comparten una cualidad común y de alto valor, son herramientas open-source. El entorno de trabajo propuesto en este PFG presenta una arquitectura cliente-servidor, dado que la mayoría de proyectos software se desarrollan en equipo, de tal forma que el servidor proporciona a los distintos clientes/desarrolladores acceso al conjunto de herramientas que constituyen el entorno de trabajo. La parte servidora del entorno propuesto proporciona soporte a la integración continua mediante herramientas de control de versiones, de gestión de historias de usuario, de análisis de métricas de software, y de automatización de la construcción de software. La configuración del cliente únicamente requiere de un entorno de desarrollo integrado (IDE) que soporte el lenguaje de programación Java y conexión con el servidor. ABSTRACT Nowadays, numerous systems (financial, industrial production, basic services infrastructure, etc.) depend on software. According to the Software Engineering definition made by I.Sommerville, “Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use.” “Software engineering is not just concerned with the technical processes of software development. It also includes activities such as software project management and the development of tools, methods, and theories to support software production.” Software development process models determine a set of guidelines to successfully develop a software development project. Since these process models emerged, new ways of managing a project and producing software with quality have been investigated. First, the so-called heavy or traditional methodologies appeared, but with the time and the technological improvements, new methodologies emerged: the so-called agile methodologies. Agile methodologies promote, among other practices, continuous integration. This practice was coined by Martin Fowler and aims to make teamwork easier as well as automate integration tasks. Nevertheless, one of the keys to success in software projects is to use a framework that facilitates, systematize, and help to deploy a development process in an efficient way. This Final Degree Project (FDP) aims to analyze different tools to configure a framework that enables to develop projects by applying agile methodologies and continuous integration in an easy and efficient way. Once tools are analyzed, a framework has been proposed and configured. One of the main features of this FDP is that the tools under analysis share a common and high-valued characteristic: they are open-source. The proposed framework presents a client-server architecture, as most of the projects are developed by a team. In this way, the server provides access the clients/developers to the tools that comprise the framework. The server provides continuous integration through a set of tools for control management, user stories management, software quality management, and software construction automatization. The client configuration only requires a Java integrated development environment and network connection to the server.
Resumo:
Este proyecto ha sido estructurado en tres bloques diferenciados que tiene como objetivo analizar el presente, pasado y futuro de la gestión de proyectos con una orientación clara a ofrecer apoyo a aquellas empresas que planeen realizar un giro en sus estructura de organización de trabajo hacia filosofías ágiles. La gestión de proyectos a acompañado al hombre desde el inicio de los tiempos, pero sin embargo no fue hasta nuestra historia más cercana cuando se comienza a tener conciencia de la necesidad de establecer aplicar métodos generales a la hora de afrontar proyectos de ingeniería. Pioneros fueron en este sentido personajes como Taylor, Fayol o Gantt, cuyas aportaciones iniciales posibilitaron el nacimiento de la gestión de proyectos a mediados del siglo XX. En las década sucesivas hasta nuestros días han aparecido un número considerable de metodologías, perfeccionando elementos anteriormente asimilados y adaptándose a la realidad tecnológica y social del momento. Este recorrido histórico se aborda en el primer bloque de este proyecto. Los puntos revisados en la introducción histórica proporcionan las bases de conocimiento para entender las principales características entre las grandes familias de metodologías que actualmente son implantadas en el mundo empresarial. Es precisamente este punto, el de la exposición y análisis de las metodologías más extendidas y contemporáneas a la elaboración de este proyecto, lo que se aborda en el segundo bloque. En él se desarrolla con intenso detalle dos metodologías de la familia de filosofías ágiles, elegidas entre las más extendidas en la industria: Scrum, eXtreme Programming (XP) y un híbrido de ambas. Para entender la dimensión del cambio filosófico en cuanto a la gestión de proyectos que emprenden estas metodologías, se hace necesario repasar cuales son las metodologías no ágiles más extendidas actualmente. Para ello se introducen metodologías como la llamada tradicional o PRINCE2, principalmente, ya que también se realiza un repaso más superficial por otras aproximaciones notables. El último bloque que construye el desenlace del proyecto, intenta responder a las cuestiones futuras relacionadas con la adopción de metodologías ágiles. Para ello se revisa los puntos más conflictivos a señalar en este proceso y se ofrecerán soluciones teóricas y prácticas para ayudar a las empresas en su fase de migración hacia filosofías de organización ágiles. Ya que toda empresa hoy en día debería tener un soporte tecnológico que ofrezca apoyo a su desarrollo empresarial, gran parte de la elaboración de este proyecto se ha dedicado a hacer un estudio comparativo de las actuales herramientas Open Source. Se han instalado y probado 25 herramientas para posteriormente seleccionar 3 que han sido analizadas en profundidad. Así mismo, se enumeran pros y contras de estas herramientas, aportando ideas de mejoras y trazando cuál debería ser su evolución para ofrecer una alternativa real a las herramientas comerciales orientadas a esta labor. Las empresas pueden utilizar este índice de herramientas de software para decidir si pueden sustentar su proceso de migración en una herramienta Open Source o si deben orientarse a herramientas comerciales o de creación propias. ABSTRACT. This project has been divided into three different blocks that aims to analyze the past, present and future of project management with a clear focus on providing support to those companies that are planning to make a shift in its organizational structure working towards agile philosophies . The project management has walked together with the humanity since the beginning of time , but it was on our recent history when it begins to become aware of the need to establish general methods to apply to engineering projects. There was pioneers like Taylor , Fayol or Gantt, whose contributions made possible the birth of project management in the mid- twentieth century. In the following decades, there was a considerable number of new methodologies, improving concepts and adapting then to the technological and social reality of the moment . This historical journey is addressed in the first block of this project. The different facts reviewed at the first block provide the knowledge to understand the key features among the most important families of methodologies that nowadays are implemented in the business world. It is precisely this point, the presentation and analysis of the most widespread methodologies what is addressed in the second block. Two of the most widespread agile methodologies are detailed: Scrum , eXtreme Programming ( XP ) and a hybrid of both . In order to understand the philosophical shift in terms of project management performed by these methodologies , it is necessary to review what are the most widespread no agile methodologies currently. For this purpose, methodologies like Waterfall or PRINCE2 are explained. Other no agile methodologies are explained as well, but not so deeply in comparison with them. The last section of this project is the conclusion, it tries to answer future questions related to the adoption of agile methodologies. For that reason, the most important milestones are reviewed to provide theoretical and practical solutions and answers to help companies in this migration process toward agile methodologies. Since every company should has a solid technical support for its business development, a considerably part of the time has been applied to make a comparative study of the existing Open Source tools. 25 tools have been installed and tested. Then, 3 tools has been selected to be analyzed deeply. Also, pros and cons of these tools have been exposed in order to suggest a roadmap to offer a real alternative to the existing commercial tools in this business area. The companies that are involved in a migration progress toward a agile methodology can used this study about the available Open Source tools to decide if they can afford the migration process based on one of them or if they should use a commercial tool or a tailor-made software.
Resumo:
Hoy en día existe una preocupación creciente por la calidad del software entregado en los proyectos que se realizan a lo largo del mundo. El trabajo de fin de grado que va a ser desarrollado en estas páginas pretende demostrar la importancia de la realización de tests funcionales durante el proceso de desarrollo de software para que el proyecto alcance la calidad requerida tan demandada en estos días. Para ello, después de una pequeña introducción a la historia del software, se presentarán y compararán diversos tipos de metodologías de desarrollo de software, tanto pesadas (cascada, espiral, etc.) como ágiles (Extreme Programming y Scrum), se enfatizará en dichas metodologías ágiles y cómo el proceso de testing y control de calidad encaja perfectamente con la filosofía de las citadas metodologías ágiles. Se desarrollará una explicación del papel de QA en el desarrollo de software, asi como una explicación de los tipos de test existentes, y las herramientas, tecnologías y patrones que existen a disposición de aquellos que quieran desempeñar el papel de QA. Para complementar el punto de vista teórico de este trabajo se presentará un caso práctico real realizado en la empresa bq bajo una metodología Scrum. Dicho caso práctico muestra el uso de ciertas herramientas y su aporte para el control de calidad del proyecto bajo desarrollo, demostrando su importancia. Se realizará énfasis en el proceso de automatización de ciertas baterías de test (llamadas test suites), mostrando desde el planteamiento inicial de las diferentes historias de usuario y la batería de test, pasando por la elección de las tecnologías más adecuadas para la elaboración de los test hasta llegar al lanzamiento de dicha batería de pruebas y la comprobación de éstas. El punto de vista práctico quedará complementado por una explicación del framework nightwatch.js, framework utilizado en el desarrollo del proyecto en bq para la automatización de test funcionales. Esta explicación comprenderá tanto la configuración y uso del framework como el uso de patrones y la estructura de las pruebas. ABSTRACT Nowadays there is a growing concern about the Quality of the software delivered in the projects that are made all around the world. This final project will try to prove the importance of performing functional tests during the Software Development Process in order to be able to reach the demanded Quality. To fulfill this objective, different types of Software Development methodologies will be presented and compared. Heavy methodologies (waterfall, spiral methodologies, etc.) as well as agile methodologies (Extreme Programming and Scrum). There will be an emphasis in the second kind (agile methodologies) and how the testing and quality assurance process fits perfectly in their philosophy. A deep explanation of the role that Quality Assurance holds on software development will be presented, as well as an explanation on the current types of testing and an explanation of the different tools; technologies and patrons that exist to help anyone who wants to perform the role of QA. To complement the theoretical perspective of this work a real case study, performed at the company bq under a Scrum methodology, will be presented. The mentioned study covers the use of certain tools and their input for the quality assurance of the project under development, proving its relevance. Emphasis will be made in the process of conducting a set of tests (called test suite), showing from the initial approach of the different users stories and the set of tests, going through the choosing of the most suitable technologies for the tests development, and ending with the performance of this battery of tests and their checkout. The practical point of view will be complemented by a deep explanation of the creation process using the nightwatch.js automated test framework, used in the project in bq. This explanation will cover both the configuration and use of the framework as the use of patterns and structure of the tests.
Resumo:
Este proyecto se centra en la construcción de una herramienta para la gestión de contenidos de muy diversos tipos, siendo fácilmente adaptable a cada uno de los contextos. Permite guardar los contenidos necesarios gracias a un formulario previamente personalizado, de este modo hay un editor que se dedica solamente a la introducción de los contenidos y un administrador que personaliza los campos del formulario según los contenidos. En esencia la herramienta sirve de apoyo a dos tipos de usuario, desarrolladores (administrador) y redactores (editor), a los primeros les simplifica las tareas de conceptualización de las estructuras de datos de las que se desea tener persistencia y sirve como base para construir los editores que usan los redactores, por otro lado proporciona un API sencillo, potente y ágil para recuperar los datos introducidos por los redactores. La herramienta a su vez está pensada para ser interoperable, es decir, no obliga a usar un tipo de almacenamiento persistente concreto. Puede utilizar desde los sencillos archivos de texto, con lo que puede desplegarse en servidores treméndamente básicos. Por otro lado, si se necesita potencia en las búsquedas, nada debe impedir el uso de bases de datos relacionales como MySql. O incluso si se quiere dar un paso más y se quiere aprovechar la flexibilidad, potencia y maleabilidad de las bases de datos NoSql (como MongoDB) no es costoso, lo que hay que hacer es implementar una nueva clase de tipo PersistentManager y desarrollar los tipos de búsqueda y recuperación de contenidos que se necesiten. En la versión inicial de la herramienta se han implementado estos tres tipos de almacenes, nada impide usar sólo alguno de ellos y desechar el resto o implementar uno nuevo. Desde el punto de vista de los redactores, les ofrece un entorno sencillo y potente para poder realizar las tareas típicas denominadas CRUD (Create Read Update Delete, Crear Leer Actualizar y Borrar), un redactor podrá crear, buscar, re-aprovechar e incluso planificar publicación de contenidos en el tiempo. ABSTRACT This project focuses on building a tool for content management of many types, being easily adaptable to each context. Saves the necessary content through a previously designed form, thus there will be an editor working only on the introduction of the contents and there will be an administrator to customize the form fields as contents. Essentially the tool provides support for two types of users, developers (administrator) and editors, the first will have simplified the tasks of conceptualization of data structures which are desired to be persistent and serve as the basis for building the structures that will be used by editors, on the other hand provides a simple, powerful and agile API to retrieve the data entered by the editors. The tool must also be designed to be interoperable, which means not to be bound by the use of a particular type of persistent storage. You can use simple text files, which can be deployed in extremely basic servers. On the other hand, if power is needed in searches, nothing should prevent the use of relational databases such as MySQL. Or even if you want to go a step further and want to take advantage of the flexibility, power and malleability of NoSQL databases (such as MongoDB) it will not be difficult, you will only need to implement a new class of PersistentManager type and develop the type of search and query of content as needed. In the initial version of the tool these three types of storage have been implemented, it will be entitled to use only one of them and discard the rest or implement a new one. From the point of view of the editors, it offers a simple and powerful environment to perform the typical tasks called CRUD (Create Read Update Delete), an editor can create, search, re-use and even plan publishing content in time.
Resumo:
Este trabalho dedica-se a examinar as principais mudanças que ocorrem no processo de construção da notícia nos telejornais regionais paulistas na última década. Objetivamos o estudo das tecnologias digitais conectadas e as consequentes alterações no trabalho dos profissionais envolvidos jornalistas, técnicos e engenheiros, a fim de entender os novos formatos aplicados na transmissão de conteúdo contando com o auxílio da internet. Para tanto, realizamos um estudo comparativo com duas emissoras da Região Metropolitana do Vale do Paraíba: TV Vanguarda, afiliada a Rede Globo, e a Tv Band Vale filiada ao Grupo Bandeirantes, que passaram por transformações em todas as dimensões da difusão de notícias com a digitalização dos seus processos tecnológicos e investimentos no ambiente virtual. Por meio da técnica de pesquisa observação participante chegou-se a conclusão de que a tecnologia é uma realidade adotada nas emissoras contribuindo para agilizar os trabalhos nas redações e aproximar o público dos telejornais.
Resumo:
Este trabalho dedica-se a examinar as principais mudanças que ocorrem no processo de construção da notícia nos telejornais regionais paulistas na última década. Objetivamos o estudo das tecnologias digitais conectadas e as consequentes alterações no trabalho dos profissionais envolvidos jornalistas, técnicos e engenheiros, a fim de entender os novos formatos aplicados na transmissão de conteúdo contando com o auxílio da internet. Para tanto, realizamos um estudo comparativo com duas emissoras da Região Metropolitana do Vale do Paraíba: TV Vanguarda, afiliada a Rede Globo, e a Tv Band Vale filiada ao Grupo Bandeirantes, que passaram por transformações em todas as dimensões da difusão de notícias com a digitalização dos seus processos tecnológicos e investimentos no ambiente virtual. Por meio da técnica de pesquisa observação participante chegou-se a conclusão de que a tecnologia é uma realidade adotada nas emissoras contribuindo para agilizar os trabalhos nas redações e aproximar o público dos telejornais.
Resumo:
No Brasil, a construção bem como as mudanças nos mais de vinte anos do Sistema Único de Saúde (SUS) tem demandado um crescente interesse em estratégias que valorizem o uso da informação em saúde. Cada vez mais as incertezas entre a complexidade deste sistema e as intervenções necessárias para atender os seus preceitos e as necessidades da população precisam de respostas ágeis e efetivas. A efetividade dos serviços e a equidade em sua prestação são cruciais na atenção à saúde e mostram-se como desafio frente à dificuldade de avaliação dos resultados das ações pela demora no impacto nos indicadores epidemiológicos clássicos. O monitoramento é uma prática que pode ser destacada pela agilidade nas respostas, porém é nítido o quanto a discussão sobre o assunto é pouco estabelecida na literatura disponível. Se apresenta como uma prática interativa e proativa que utiliza informações disponíveis com o potencial de organizar e divulgar rapidamente as descobertas feitas, gerar um aprendizado organizacional e apoiar o processo decisório. A proposta deste estudo considerou o Painel de Monitoramento da Secretaria Municipal da Saúde de São Paulo como ponto de partida para pesquisar sobre as potencialidades do monitoramento na gestão. Uma pesquisa de métodos mistos foi a opção metodológica para este trabalho que buscou aprofundar o marco referencial teórico sobre monitoramento, descrever e analisar criticamente as referências técnicas utilizadas para a construção da proposta e realizar um estudo de caso único em território descentralizado do município de São Paulo sobre a rotina local na sua utilização e com isso analisar as potencialidades e os alcances desta experiência na gestão municipal. Concluiu-se que o monitoramento por meio de indicadores selecionados a partir de dados secundários é uma estratégia oportuna de acompanhar a tendência de determinadas ações possibilitando assim a emissão de juízo de valor e tomada de decisão com rapidez. O aplicativo propicia aos gestores e técnicos informações relevantes que apoiam o processo decisório, além de possibilitar a sua utilização em diferentes contextos da gestão e portes territoriais. Por outro lado, a prática cotidiana é pautada por prioridades normativas, onde a precisão do registro, a coerência das fontes e a quantidade apontada sobrepõem-se à informação em si, o seu significado e as ações necessárias para o enfrentamento dos problemas. O uso da informação é cultura em construção e o Painel de Monitoramento traz a possibilidade de organizar, qualificar e difundir dados secundários dos diferentes sistemas de informação do Sistema Único de Saúde (SUS). Além disso, tem contribuído também no papel de fomentar as discussões sobre os diferentes temas que envolvem as prioridades de uma gestão em todos os níveis do sistema de saúde do município de São Paulo.
Resumo:
Esta investigação teve por objetivo analisar a participação de idosos em direção à promoção da saúde considerando a articulação com oito aspectos da vida urbana do projeto cidade amiga do idoso (espaços abertos e prédios, transporte, moradia, participação social, respeito e inclusão social, participação cívica e emprego, comunicação e informação, e apoio comunitário e serviços de saúde) do bairro Vila Tibério, município de Ribeirão Preto, estado de São Paulo, Brasil. Trata-se de pesquisa descritiva de abordagem qualitativa sustentada pelos conceitos e princípios da promoção da saúde, a partir da perspectiva da participação social e do estabelecimento de ambientes saudáveis, motivo do alinhamento com os aspectos da vida urbana do Projeto Cidade Amiga do Idoso. A pesquisa atendeu aos preceitos éticos, sendo sua realização aprovada por Comitê de Ética em Pesquisa. A captação do empírico se deu por meio da realização de grupos focais com base no Protocolo de Vancouver, desenvolvido pelo Government of British Columbia, somando 32 idosos e 6 representantes de prestadores de serviços em 5 grupos focais. Adicionalmente, foi aplicado instrumento de avaliação funcional para verificar condição de independência ou dependência dos 32 idosos, sendo feita avaliação qualitativa da capacidade autorreferida pelos idosos, segundo a escala utilizada. Realizou-se análise de conteúdo na vertente temática para o material dos grupos, com a identificação de três temas: território: lugar de vida e cidadania, formação de redes de suporte social ao idoso e participação dos idosos na vida do bairro. A violência, o abandono presentes no território, em especial nos espaços coletivos, trazem preocupação e medo aos idosos, pois dificultam a livre circulação no território. Por outro lado, há no bairro certa tradição e possibilidade de serem construídas relações de amizade e apoio, que permitem ao idoso sentir-se acolhido, sendo enfatizado que as relações de amizade e mesmo as institucionalizadas, como por exemplo, o trabalho dos agentes comunitários de saúde, são necessárias às relações de convivência e sustentação na vida dos idosos. É trazida a importância dos jornais do bairro e de seu papel como elemento constitutivo da rede apoio na área de comunicação e informação dentro do território. A vinculação ao mundo do trabalho, com atividades remuneradas, ainda é uma forma que os idosos encontram de se manterem próximos aos amigos e participantes da vida em comunidade. Há dificuldade em ampliar a participação dos idosos por diferentes motivos que vão desde a dificuldade de mobilidade dentro do bairro, acesso à informação sobre as atividades disponíveis, ausência de canais mais ágeis de comunicação, baixa adesão aos processos de participação social no campo da saúde e assistência social, trabalho dos idosos como cuidadores de outros idosos familiares ou de netos. Situações que dificultam maior adesão aos processos de participação social, embora seja assinalada a importância destes processos para a melhoria do bairro. O conjunto dos resultados aponta que os idosos apresentam muitas dificuldades para ampliar sua participação nos processos coletivos no bairro, que por vezes se mostra hostil em suas condições a este grupo. Por outro lado se fazem presentes potencialidades, nas brechas e sugestões que indicam a possibilidade para se situarem no processo de construção da Promoção da Saúde no território em que estão inseridos, utilizando de suas características, perfis de vida e atuação para agir com autonomia e constituírem-se como protagonistas dos processos e de ações no território. Com a ciência dos limites, credita-se a esta investigação a possibilidade de que os elementos aqui discutidos possam oferecer subsídios para que as políticas voltadas ao envelhecimento saudável nos âmbitos da saúde, segurança, educação, assistência social, dentre outras possam se repensadas ou reestruturadas
Resumo:
Este trabalho analisa os principais métodos ágeis utilizados em empresas startup, como scrum, extreme programming, kanban e lean, isolando suas práticas e mapeando-as no Kernel do SEMAT para escolher os elementos essenciais da engenharia de software que estão relacionados a cada prática de forma independente. Foram identificadas 34 práticas que foram reduzidas a um conjunto de 26 pelas similaridades. Um questionário foi desenvolvido e aplicado no ambiente de startups de software para a avaliação do grau de utilização de cada determinada prática. Através das respostas obtidas foi possível a identificação de um subconjunto de práticas com utilização acima de 60% onde todos os elementos essenciais da engenharia de software são atendidos, formando um conjunto mínimo de práticas capazes de sustentar este tipo específico de ambiente.