[en] Nowadays, most of the approaches supporting self-adaptive systems (SASs) rely on static feedback control loops, for managing their adaptation process. One of the most popular feedback loops is the MAPE-K loop. In this loop, the Monitor element plays a crucial role since the quality of the monitoring data (e.g., timeliness, freshness, accuracy, availability, etc.) affects directly the performance of the rest of the elements of the loop, and in consequence the quality of the resulting adaptation decisions. Assuming static feedback loops implies that the structure and behavior of the elements of the loop should be determined at design-time and cannot change at runtime, i.e., in the case of the Monitor, systems' owners should know everything to be monitored at design time. If that the case, current self-adaptive systems would not be able to react to unpredictable runtime events such as faults or changing requirements. Motivated by this fact, in this thesis, we address the automatic runtime adaptation of SASs' feedback control loops, particularly the Monitor element, in order to respond to changes in the systems, the environment and the elements of the loop themselves. Concretely, we have presented HAFLoop, an architectural proposal for supporting the adaptation of the MAPE-K loop at runtime. We have identified open research challenges affecting SASs' and feedback loops' adaptation and analyzed whether and how existing approaches address those challenges. We have also studied how state-of-the-art approaches support adaptive monitoring in current monitoring systems. Although great efforts have been done for supporting the adaptation of feedback loops in SASs', none of the state-of-the-art solutions satisfactorily addresses all the open research challenges. HAFLoop, in conjunction with its implementation in the form of a framework named HAFLoop4J, is a generic and reusable solution that easies the design and development of adaptive feedback loops, from higher to lower levels. Our solution enables loops to support different types of adaptation in a variety of settings. HAFLoop has been evaluated in different scenarios and in both simulation and real environments. The evaluations of HAFLoop have been conducted in the domain of smart vehicles with very promising results.

[es] Actualmente, la mayoría de las soluciones que soportan sistemas de software autoadaptativos (SASs) se basan en bucles estáticos de control para administrar el proceso de adaptación. Uno de los bucles más populares es el bucle MAPE-K. En este bucle, el elemento Monitor desempeña un papel crucial ya que la calidad de los datos monitoreados (por ejemplo, su precisión, su disponibilidad, etc.) afecta directamente el rendimiento del resto de los elementos del bucle, y en consecuencia el de la calidad de las decisiones de adaptación resultantes. Asumir que los bucles de los SASs son estáticos, implica que la estructura y comportamiento de sus elementos deben determinarse al momento de su diseño y no pueden cambiarse en tiempo de ejecución. Por ejemplo, en el caso del Monitor, todo lo que se ha de monitorear en tiempo de ejecución y como se ha de obtener, debe conocerse al momento de diseñar el sistema. En este escenario, los sistemas autoadaptativos actuales no serían capaces de reaccionar ante eventos impredecibles en tiempo de ejecución, tales como fallas de sensores o cambios en los requisitos. Motivados por este hecho, en esta tesis, abordamos la adaptación automática en tiempo de ejecución de los bucles de control para los SASs, en particular la adaptación del elemento Monitor, con el fin de responder a cambios en los sistemas, su entorno y cambios en los propios elementos del bucle. Concretamente, presentamos HAFLoop, una propuesta arquitectónica para la adaptación del bucle MAPE-K en tiempo de ejecución. Hemos identificado desafíos de investigación que afectan actualmente la adaptación de los SASs así como de los bucles que conducen su adaptación, también hemos analizado si las propuestas existentes los abordan y como lo hacen. Hemos estudiado también cómo las propuestas actuales abordan el monitoreo adaptativo en los sistemas de monitorización existentes. Si bien se han realizado grandes esfuerzos para habilitar la adaptación de bucles SASs, ninguna de las propuestas que evaluamos aborda satisfactoriamente todos los desafíos que aún afectan este campo de estudio. HAFLoop, junto con su implementación en forma de un marco denominado HAFLoop4J, es una solución genérica y reutilizable que facilita el diseño y el desarrollo de bucles adaptativos para SASs, desde los niveles técnicos más altos, como el diseño de componentes genéricos, a los más bajos, como la implementación de componentes específicos para una aplicación en particular. Nuestra solución permite que los bucles se adapten de diferentes maneras y en una variedad de configuraciones distintas. HAFLoop se ha evaluado en diferentes escenarios y en entornos de simulación así como reales. Las evaluaciones de HAFLoop se han realizado en el dominio de vehículos inteligentes con resultados muy prometedores.