Modelos metaheurísticos para el soporte a la decisión en el proceso de construcción de software
Información general
Contexto
En la actualidad, los ingenieros software no solo tienen la responsabilidad de construir sistemas que desempeñen una determinada funcionalidad, sino que cada vez es más importante que dichos sistemas también cumplan con requisitos no funcionales como alta disponibilidad, efciencia o seguridad, entre otros. Para lograrlo, los ingenieros se enfrentan a un proceso continuo de decisión, pues deben estudiar las necesidades del sistema a desarrollar y las alternativas tecnológicas existentes para implementarlo. Todo este proceso debe estar encaminado a la obtención de sistemas software de gran calidad, reutilizables y que faciliten su mantenimiento y modificación en un escenario tan exigente y competitivo.
La ingeniería del software, como método sistemático para la construcción de software, ha aportado una serie de pautas y tareas que, realizadas de forma disciplinada y adaptadas al contexto de desarrollo, posibilitan la obtención de software de calidad. En concreto, el proceso de análisis y diseño del software ha adquirido una gran importancia, pues en ella se concibe la estructura del sistema, en términos de sus bloques funcionales y las interacciones entre ellos. Es en este momento cuando se toman las decisiones acerca de la arquitectura, incluyendo los componentes que la conforman, que mejor se adapta a los requisitos, tanto funcionales como no funcionales, que presenta el sistema y que claramente repercuten en su posterior desarrollo. Por tanto, es necesario que el ingeniero analice rigurosamente las alternativas existentes, sus implicaciones en los criterios de calidad impuestos y la necesidad de establecer compromisos entre ellos. En este contexto, los ingenieros se guían principalmente por sus habilidades y experiencia, por lo que dotarles de métodos de apoyo a la decisión representaría un avance significativo en el área.
La aplicación de técnicas de inteligencia artificial en este ámbito ha despertado un gran interés en los últimos años. En particular, la inteligencia artificial ha encontrado en la ingeniería del software un ámbito de aplicación complejo, donde diferentes técnicas pueden ayudar a conseguir la semi-automatización de tareas tradicionalmente realizadas de forma manual. De la unión de ambas a´reas surge la denominada ingenieri´a del software basada en búsqueda (SBSE, Search-based Software Engineering), que propone la reformulación de las actividades propias de la ingeniería del software como problemas de optimización. A continuación, estos problemas podrían ser resueltos mediante técnicas de búsqueda como las metaheurísticas. Este tipo de técnicas se caracterizan por explorar el espacio de posibles soluciones de una manera "inteligente", a menudo simulando procesos naturales como es el caso de los algoritmos evolutivos.
A pesar de ser un campo de investigación muy reciente, es posible encontrar propuestas para automatizar una gran variedad de tareas dentro del ciclo de vida del software, como son la priorización de requisitos, la planificación de recursos, la refactorización del código fuente o la generación de casos de prueba. En el ámbito del análisis y diseño de software, cuyas tareas requieren de creatividad y experiencia, conseguir una automatización completa resulta poco realista. Es por ello por lo que la resolución de sus tareas mediante enfoques de búsqueda debe ser tratada desde la perspectiva del ingeniero, promoviendo incluso la interacción con ellos. Además, el alto grado de abstracción de algunas de sus tareas y la dificultad de evaluar cuantitativamente la calidad de un diseño software, suponen grandes retos en la aplicación de técnicas de búsqueda durante las fases tempranas del proceso de construcción de software.
Objetivos
Esta tesis doctoral busca realizar aportaciones significativas al campo de la ingeniería del software basada en búsqueda y, más concretamente, al área de la optimización de arquitecturas software. En concreto,
el objetivo principal de esta tesis doctoral es el desarrollo de modelos de búsqueda basados en algoritmos metaheurísticos para proporcionar soporte semi-automático a los ingenieros software en las etapas tempranas del proceso de desarrollo de software.
Este objetivo general se descompone en los siguientes objetivos específicos:
- Análisis del estado del arte en SBSE, especialmente en las áreas de diseño y optimización de arquitecturas, para identificar problemas abiertos y las técnicas que podrían aplicarse a su resolución.
- Diseño y desarrollo de un modelo metaheurístico, basado en computación evolutiva, para el descubrimiento de arquitecturas software basadas en componentes. Estudio de las características del problema, tales como información de análisis, medidas de calidad, necesidades del experto, etc.
- Diseño y desarrollo de modelos avanzados de búsqueda, incluyendo enfoques multiobjetivo y técnicas híbridas, para estudiar su adecuación al proceso de soporte a la decisión. Estudio de su aplicabilidad a diferentes dominios dentro del diseño software.
- Diseño y desarrollo de un enfoque interactivo que incorpore conocimiento humano en el contexto de la optimización de arquitecturas software. Comparación con enfoques anteriores.
Principales contribuciones
Durante el desarrollo de esta tesis doctoral se ha explorado el uso de una gran variedad de técnicas de búsqueda, estudiando su idoneidad y realizando las adaptaciones necesarias para hacer frente a los retos mencionados anteriormente:
- La primera propuesta se ha centrado en la formulación del descubrimiento de arquitecturas como problema de optimización, abordando la representación computacional de los artefactos software que deben ser modelados y definiendo medidas software para evaluar su calidad durante el proceso de búsqueda.
- A continuación, el descubrimiento de arquitecturas ha sido tratado desde una perspectiva multiobjetivo, donde varias medidas software, a menudo en conflicto, deben ser simultáneamente optimizadas. En este caso, la resolución del problema se ha llevado a cabo mediante ocho algoritmos del estado del arte, incluyendo propuestas recientes del ámbito de la optimización de muchos objetivos.
- La última propuesta en el contexto del descubrimiento de arquitecturas software se centra en la incorporación de la opinión del ingeniero al proceso de búsqueda. Para ello se ha diseñado un mecanismo de interacción que permite al ingeniero indicar tanto las características deseables en las soluciones arquitectónicas (preferencias positivas) como aquellos aspectos que deben evitarse (preferencias negativas).
En el transcurso de la tesis doctoral, los conocimientos adquiridos y las técnicas desarrolladas también han sido extrapolados a otros ámbitos de la ingenieri´a del software basada en búsqueda mediante colaboraciones con investigadores del área. Cabe destacar especialmente la formalización de una nueva disciplina transversal, denominada ingeniería del software basada en búsqueda interactiva, cuyo fin es promover la participación activa del ingeniero durante el proceso de búsqueda. Además, se ha explorado la aplicación de algoritmos de muchos objetivos a un problema clásico de la computación orientada a servicios, como es la composición de servicios web.
Publicaciones asociadas
Los resultados de la tesis doctoral están respaldados por siete artículos publicados en revistas científicas de alto índice de impacto:
- A. Ramírez, J.R. Romero, S. Ventura. An approach for the evolutionary discovery of software architectures. Information Sciences, vol. 305, pp. 234-255. 2015. Elsevier. ISSN: 0020-0255. DOI: 10.1016/j.ins.2015.01.017. IF: 3.364. Categoría: Computer Science, Information Systems. Posición: 8/144 (Q1).
- A. Ramírez, J.R. Romero, S. Ventura. A comparative study of many-objective evolutionary algorithms for the discovery of software architectures. Empirical Software Engineering, vol. 21(6), pp. 2546-2600. 2016. Springer. ISSN: 1382-3256. DOI: 10.1007/s10664-015-9399-z. IF: 3.275. Categoría: Computer Science, Software Engineering. Posición: 7/106 (Q1).
- A. Ramírez, J.R. Romero, S. Ventura. Interactive Multi-Objective Evolutionary Optimization of Software Architectures. Information Sciences, vol. 463-464, pp. 92-109, 2018. Elsevier. ISSN: 0020-0255. DOI: 10.1016/j.ins.2018.06.034. IF: 5.524. Categoría: Computer Science, Information Systems. Posición: 9/155 (Q1).
- A. Ramírez, J.A. Parejo, J.R. Romero, S. Segura, A. Ruiz-Cortés. Evolutionary composition of QoS-aware web services: a many-objective perspective. Expert Systems with Applications, vol. 72, pp. 357-370. 2017. Elsevier. ISSN: 0957-4174. DOI: 10.1016/j.eswa.2016.10.047. IF: 3.768. Categoría: Computer Science, Artifical Intelligence. Posición: 20/132 (Q1).
- A. Ramírez, J.R. Romero, C.L. Simons. A Systematic Review of Interaction in Search-Based Software Engineering. IEEE Transactions on Software Engineering, vol. 45(8), pp. 760-781. 2019. IEEE. ISSN: 0098-5589. DOI: 10.1109/TSE.2018.2803055. IF: 6.112. Categoría: Computer Science, Software Engineering. Posición: 4/108 (Q1).
- A. Ramírez, J.R. Romero, S. Ventura. A survey of many-objective optimization in search-based software engineering. Journal of Systems and Software, vol. 149, pp. 382-395, 2019. Elsevier. ISSN: 0164-1212. DOI: 10.1016/j.jss.2018.12.015. IF: 2.450. Categoría: Computer Science, Software Engineering. Posición: 33/108 (Q2).
- A. Ramírez, J.R. Romero, C. García-Martínez, S. Ventura. JCLEC-MO: a Java suite for solving many-objective optimization engineering problems. Engineering Applications of Artificial Intelligence, vol. 81, pp. 14-28. 2019. Elservier. ISSN: 0952-1976. DOI: 10.1016/j.engappai.2019.02.003. IF: 4.201. Categoría: Computer Science, Artificial Intelligence. Posición: 33/136 (Q1).
Además, se han realizado contribuciones a cuatro congresos internacionales, entre las que destaca el artículo publicado en GECCO'14, elegido mejor artículo del track SBSE. En el ámbito nacional, se han publicado ocho artículos en conferencias tanto del área de la inteligencia artificial (CAEPIA) como de la ingeniería del software (jornadas SISTEDES). Las referencias completas de estas publicaciones pueden encontrarse en la sección de investigación.
Premios y menciones
- Tesis con mención internacional. Estancia de tres meses en la University of the West of England (Bristol, Reino Unido).
- Premio extraordinario de doctorado. Curso 2017/2018. Universidad de Córdoba.
- Premio "Frances Allen" a la mejor tesis doctoral defendida por una mujer en temáticas de inteligencia artificial entre 2017 y 2018. Otorgado por la Sociedad Española para la Inteligencia Artificial (AEPIA). Notas de prensa: UCO (I, II) | Diario Córdoba (I, II)