On the application of Machine Learning to Model-Driven Engineering

  1. Hernández López, José Antonio
Dirigida por:
  1. Jesús Sánchez Cuadrado Director

Universidad de defensa: Universidad de Murcia

Fecha de defensa: 22 de junio de 2023

Tribunal:
  1. Juan de Lara Jaramillo Presidente/a
  2. Catalina Martínez Costa Secretaria
  3. Artur Boronat Vocal
Departamento:
  1. Informática y Sistemas

Tipo: Tesis

Resumen

La Ingeniería Dirigida por Modelos (MDE; Model-Driven Engineering) es una metodología de Ingeniería del Software que propone el uso activo de modelos durante todas las fases del desarrollo de un sistema software. Así, los modelos no son solo documentación pasiva, sino que se utilizan para describir, simular, probar y generar código. Este paradigma se ha aplicado exitosamente en diversos escenarios complejos que son inabordables por metodologías software tradicionales. No obstante, la calidad y la facilidad de uso de las herramientas de modelado sigue siendo un factor limitante para una adopción más amplia. Por otra parte, el aprendizaje automático (Machine Learning; ML) es un paradigma de la inteligencia artificial que ha sido aplicado con éxito para resolver tareas complejas en diversos dominios. En general, los algoritmos ML aprenden una función matemática que asocia una serie de entradas con una serie de salidas. Esta función se aprende de los datos y, dependiendo de la forma de estos, tenemos los siguientes tipos de aprendizaje: supervisado, no supervisado y por refuerzo. Las técnicas de ML han sido aplicadas exitosamente en varios campos de la Ingeniería del Software. En particular, estas técnicas han sido empleadas para mejorar los entornos de desarrollo integrados (Integrated Development Environments; IDEs) de código: generación automática de documentación, detección automática de defectos en código, o incluso generación automática de tests. A diferencia de los IDEs, las herramientas de modelado todavía no aprovechan los algoritmos de ML para mejorar su funcionalidad. Una razón es la falta de conjuntos de datos (datasets) de modelos. Esto limita la generalización de los modelos ML e imposibilita la aplicación de técnicas de aprendizaje profundo (Deep Learning). Por otro lado, los modelos ML no pueden recibir como entrada un artefacto software en bruto, sino que es necesario transformarlo a una representación adecuada y legible por el modelo ML (p. ej., vectores numéricos). Han habido varias propuestas para tratar este problema. Sin embargo, aún no se ha estudiado sistemáticamente cuál es la mejor codificación de un modelo software para una tarea dada y un modelo ML. Finalmente, la cantidad de tareas MDE cubiertas por trabajos previos con técnicas de ML es pequeña y los enfoques empleados han sido principalmente simplistas. Esta tesis aborda los problemas anteriores e intenta cubrir la brecha actual entre las técnicas de ML y el MDE. El primer resultado de esta tesis es el buscador de modelos MAR. Este buscador recolecta modelos software de diferentes tipos, los analiza y los guarda en una base de datos centralizada. Además, pone a disposición del usuario varios mecanismos de consulta. Desde un punto de vista del ML, este resultado puede ser visto como un gran dataset no etiquetado sobre el que se puede aplicar aprendizaje no supervisado. Además, MAR es actualmente el buscador con más modelos indexados. Para abordar tareas usando aprendizaje supervisado, se etiquetó un subconjunto de modelos UML y Ecore del buscador con su categoría principal y etiquetas secundarias. Como resultado, se obtuvo ModelSet, el dataset etiquetado más grande en el contexto de ML para MDE. Usando dicho dataset, se llevó a cabo un estudio sistemático para comparar varias codificaciones de modelos y algoritmos ML en el contexto de la clasificación de modelos. Se concluyó que las codificaciones simples basadas en texto y modelos simples obtienen los mejores resultados. Además, se observó que vectores semánticos mejoran la generalización en el caso de los modelos UML. Finalmente, se emplearon arquitecturas de aprendizaje profundo para resolver el problema de la generación de modelos realistas. En particular, se ha propuesto un generador realista basado en redes neuronales autorregresivas obteniéndose resultados de vanguardia en realismo de los modelos generados.