Arquitecturas adaptativas en tiempo de ejecución mediante técnicas de inteligencia computacional y desarrollo de software dirigido por modelos

  1. Rodríguez Gracia, Diego
Dirigida por:
  1. Luis Fernando Iribarne Martínez Director/a
  2. José Antonio Piedra Fernández Codirector/a

Universidad de defensa: Universidad de Almería

Fecha de defensa: 20 de abril de 2021

Tribunal:
  1. Florentino Fernández Riverola Presidente/a
  2. Julio Gómez López Secretario/a
  3. Juan Boubeta Puig Vocal

Tipo: Tesis

Teseo: 654478 DIALNET lock_openTESEO editor

Resumen

El desarrollo de sistemas informáticos adaptativos en tiempo de ejecución es un objetivo de interés que ha dado como fruto numerosas líneas de investigación. El poder alcanzar una adaptación real de los sistemas informáticos, entendiendo esta adaptación como una evolución del sistema adecuándose en tiempo de ejecución al comportamiento de los usuarios y a las variables del entorno del propio sistema informático, sería un gran avance de aplicación en numerosos dominios como por ejemplo en robótica, interfaces gráficas de usuario, sistemas de control de procesos, domótica, etc. Desde este planteamiento, este comportamiento evolutivo podría ser considerado como un comportamiento inteligente, ya que para conseguir dicho comportamiento evolutivo, al menos al sistema informático se le debe dotar de un sistema de aprendizaje y de un sistema de toma de decisiones. Desde este planteamiento, el hecho de abordar el desarrollo de una arquitectura adaptativa en tiempo de ejecución plantea un primer reto que consiste en conseguir que la arquitectura tenga que ser modificable en tiempo de ejecución y que, como resultado de la interacción con el usuario, esta esté dotada de algún grado de adaptabilidad al comportamiento del usuario y a las variaciones de contexto del entorno del sistema informático. Uno de los ámbitos donde más se ha estado investigando en los últimos años y hoy día se sigue investigando es en el área de las interfaces gráficas de usuario dinámicas (GUI). En ocasiones es necesario contar con interfaces “vivas” cuyo comportamiento no es estático, implementadas con cierto grado de variabilidad no solo en su diseño, sino también en aspectos relativos a su usabilidad, accesibilidad, disponibilidad y otras características de comportamiento. Ejemplo de este tipo de interfaz gráfica son las interfaces de usuario de Mashups. Se tratan de interfaces de usuario cuya arquitectura está basada en componentes. Las interfaces Mashups están siendo un dominio ideal donde investigar con nuevos mecanismos que implementen operaciones de variabilidad a las interfaces, pudiendo adaptar su funcionalidad en tiempo de ejecución, actualizando su estructura mediante la inserción o la eliminación de los componentes o bien modificando las relaciones existentes entre ellos. La domótica es también un dominio emergente para la aplicación de arquitecturas adaptativas, en concreto como metodología de control de los edificios inteligentes, ya que hoy en día se persiguen sistemas basados en sistemas cuyas arquitecturas internas son dinámicas basadas en Internet de las Cosas (conocido en la literatura por su término en inglés Internet of Things, en adelante IoT) dinámicas, sin embargo, la falta de estándares y mecanismos de interoperabilidad está dando lugar a que sea cada vez más emergente la investigación en el desarrollo de propuestas para el control domótico inteligente mediante arquitecturas adaptativas basadas en componentes. Por otro lado, la Ingeniería Dirigida por Modelos (Model Driven Engineering, MDE) suministra una metodología con la cual se puede llegar a conseguir transformaciones en tiempo de ejecución desde un modelo inicial a un modelo final generado tras la ejecución de esas transformaciones mediante la definición de arquitecturas abstractas de software basadas en componentes. Esta disciplina de la Ingeniería del Software está siendo utilizada como solución en la obtención de nuevas arquitecturas dinámicas en el área de las interfaces Mashups [Criado et al., 2018], [Fernandez-Garcia et al., 2019]. Como segundo reto se nos plantea el dotar de adaptabilidad a la propuesta de arquitectura a desarrollar, entendiendo esta adaptabilidad como la capacidad del sistema para evolucionar en el tiempo. Es decir, dotar al sistema con la capacidad de aprender de su interacción con el usuario y de la información del entorno, generando así nuevas reglas de transformación (de adaptación) o modificando las ya existentes (definidas a priori por los expertos en modo diseño) de manera que el sistema informático se adapte al comportamiento del usuario, optimizando y anticipándose a sus posibles demandas. Para abordar este problema podemos utilizar modelos de Inteligencia Computacional, los cuales permiten abordar problemas en sistemas complejos mediante la interacción de distintas técnicas (la imprecisión es tratada mediante lógica difusa, las redes neuronales aportan el aprendizaje, los algoritmos genéticos la optimización de soluciones y el razonamiento probabilístico el tratamiento de la incertidumbre). En esta tesis se ha desarrollado un sistema de toma de decisiones que incluyen algoritmos de aprendizaje con el objetivo de dotar a nuestra propuesta de arquitectura con la capacidad de adaptación del sistema. Como tercer reto a solventar en nuestra propuesta de arquitectura adaptativa en tiempo de ejecución se plantea el alto coste computacional de dicha arquitectura, sobre todo teniendo en cuenta que la solución que se presenta es planteada para dotar de adaptabilidad al sistema informático en tiempo de ejecución. Para tratar este tercer problema podemos hacer uso de la Ingeniería de Sistemas de Servicio (Service Systems Engineering, SSE), mediante la cual el sistema es concebido para proveer de servicio a otro sistema y aprovechar los avances en computación en la nube, así como el incremento en soluciones basadas en microservicios. De esta manera, podríamos distribuir la carga computacional de la arquitectura propuesta mediante un sistema informático abierto haciendo así viable el coste computacional de la propuesta presentada en esta tesis. En esta tesis se ha desarrollado una arquitectura que consigue la adaptación de sistemas informáticos dinámicos, es decir, aquellos que modifican su estructura en el tiempo, mediante el uso de técnicas interdisciplinarias de Ingeniería Dirigida por Modelos (MDE), Ingeniería de Sistemas de Servicio (SSE) e Inteligencia Computacional. Esta propuesta de arquitectura gestiona un sistema de microservicios orquestados para conseguir una arquitectura adaptativa de software en tiempo de ejecución basada en componentes. Este sistema se ha desarrollado como un proceso de transformación adaptativa de tres capas que es compatible con un servicio de toma de decisiones basado en reglas implementado mediante una máquina de aprendizaje. Como desarrollo experimental del sistema propuesto se ha implementado la arquitectura adaptativa en tiempo de ejecución propuesta en el Centro de Investigación de Energía Solar (CIESOL) para el control domótico del mismo. Además, en esta tesis se presenta un análisis bibliométrico que refleja la relación y evolución en los últimos años en los diversos temas de investigación relacionados con los conceptos de desarrollo sostenible y edificios inteligentes que permite detectar los agentes más productivos (autores, instituciones y países) en este campo concreto de investigación y que, como fruto de este análisis bibliométrico, posibilita prever la evolución futura a corto y medio plazo de esta línea de investigación