Ir al contenido

Documat


Resumen de Modelos metaheurísticos para el soporte a la decisión en el proceso de construcción de software

Aurora Ramírez Quesada

  • 1. introducción o motivación de la tesis Bajo las directrices de la ingeniería del software, los profesionales informáticos deben tomar múltiples decisiones con el fin de diseñar sistemas software complejos que no solo sean capaces de proporcionar la funcionalidad requerida, sino que también cumplan requisitos de eficiencia, seguridad, etc. Para ello, deben analizar las necesidades del sistema a desarrollar, concebir la mejor estructura del sistema y evaluar las alternativas tecnológicas existentes. Las decisiones tomadas a nivel arquitectónico son especialmente relevantes, pues van a condicionar la construcción del sistema y su facilidad de mantenimiento en el futuro [1]. Tradicionalmente, este proceso lo realizan guiados por sus habilidades y experiencia, por lo que dotarles de métodos de apoyo a la decisión supone una ventaja competitiva en el área [2].

    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 áreas surge la denominada ingeniería del software basada en búsqueda (Search-based Software Engineering, SBSE) [3]. En ella, las actividades de ingeniería software que realizan los ingenieros son reformuladas como problemas de optimización, de forma que pueden ser luego resueltos mediante técnicas inteligentes de búsqueda como, por ejemplo, las metaheurísticas bioinspiradas [4]. Así, ya es posible encontrar propuestas para automatizar una gran variedad de tareas a lo largo 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.

    Sin embargo, el alto grado de abstracción y la inherente creatividad que requieren las tareas relacionadas con el diseño del software hacen que estas hayan sido poco estudiadas desde la perspectiva SBSE [5]. En concreto, no existen propuestas en el ámbito de la optimización de arquitecturas software [6] que permitan identificar los bloques funcionales de un sistema software a fin de comprender su arquitectura actual. Por ello, el objetivo de esta tesis doctoral es proponer modelos de decisión basados en técnicas metaheurísticas que permitan asistir al ingeniero en el análisis y mejora de diseños arquitectónicos durante las etapas tempranas del desarrollo.

    2.contenido de la investigación Durante el desarrollo de esta tesis doctoral se ha explorado el uso de una gran variedad de técnicas de búsqueda para abordar el descubrimiento de arquitecturas software basadas en componentes. Esta tarea consiste en abstraer los bloques funcionales que mejor definen la estructura actual del software, así como sus interacciones, con el fin de facilitar al ingeniero su posterior análisis y mejora. Para su resolución de forma semi-automática se ha planteado su formulación como problema de optimización, diseñando una representación comprensible de los artefactos software que deben ser modelados y definiendo el conjunto de medidas software que permitan evaluar la calidad de las soluciones generadas durante el proceso de búsqueda. Como primera aproximación, se ha propuesto un modelo metaheurístico basado en algoritmos evolutivos mono-objetivo, el cual ha sido validado experimentalmente con sistemas software reales.

    A continuación, el problema ha sido abordado desde una perspectiva multi-objetivo [7], donde se han considerado un número mayor de medidas software a optimizar simultáneamente. En este caso, se han adaptado y comparado algoritmos evolutivos del estado del arte, algunos de ellos especializados en la optimización de muchos objetivos [8]. El extenso estudio experimental realizado se centra en el análisis de la influencia del número y combinación de medidas software utilizadas como objetivos. Además de evaluar el rendimiento de los algoritmos siguiendo las prácticas habituales del área, los resultados son también analizados desde la perspectiva de los sistemas de soporte a la decisión.

    Finalmente, se ha propuesto un modelo de búsqueda interactivo, el cual permite incorporar la opinión del ingeniero en el proceso de búsqueda [9]. La característica principal del modelo propuesto es que permite combinar aspectos cuantitativos, como son las medidas software, con criterios más cualitativos, esto es, el criterio subjetivo del experto. Otra de las aportaciones novedosas del mecanismo de interacción es el hecho de que estos criterios cualitativos pueden expresarse mediante preferencias positivas y negativas, las cuales reflejan las características deseables o que deben evitarse en las soluciones arquitectónicas, respectivamente. La validación de este modelo se ha realizado con la participación de ingenieros con distinta experiencia en desarrollo software, permitiendo así demostrar la idoneidad y utilidad de la propuesta.

    3.conclusión Los tres trabajos principales que componen esta tesis doctoral, así como otros estudios experimentales complementarios, constituyen una contribución significativa al área de la ingeniería del software basada en búsqueda. En primer lugar, se ha definido y estudiado un nuevo problema de optimización arquitectónica, el cual no había sido abordado de forma automática hasta la fecha. Por otro lado, se han aportado algoritmos evolutivos de diversa naturaleza para su resolución, siempre orientados a la visión del ingeniero a fin de facilitar su uso como métodos de soporte a la decisión. En especial, cabe destacar la aplicación de técnicas de optimización avanzadas, como son los algoritmos de optimización de muchos objetivos y las técnicas de optimización interactivas. Ambos enfoques han demostrado ser especialmente idóneos en el ámbito de SBSE, pero apenas habían sido utilizados hasta el momento.

    4. bibliografía [1] D. Garlan. Software architecture: a roadmap. In Proceedings of the Conference on The Future of Software Engineering, pp. 91-101, 2000.

    [2] D. Falessi, G. Cantone, R. Kazman, and P. Kruchten. Decision-making techniques for software architecture design. ACM Computing Surveys, vol. 43(4), article 33, pp. 1-28, 2011.

    [3] M. Harman, S. Afshin Mansouri, and Y. Zhang. Search Based Software Engineering: Trends, Techniques and Applications. ACM Computing Surveys, vol. 45(1), article 11, pp. 1-64, 2012.

    [4] I. Boussaïd, J. Lepagnot, and P. Siarry. A survey on optimization metaheuristics. Information Sciences, vol. 237, pp. 82-117, 2013.

    [5] O. Räihä. A survey on search-based software design. Computer Science Review, vol. 4(4), pp. 203-249, 2010.

    [6] A. Aleti, B. Buhnova, L. Grunske, A. Koziolek, and I. Meedeniya. Software Architecture Optimization Methods: A Systematic Literature Review. IEEE Transactions on Software Engineering, vol. 39(5), pp.658-683, 2013.

    [7] A. Zhou, B.-Y. Qu, H. Li, S.-Z. Zhao, P. N. Suganthan, and Q. Zhang. Multiobjective evolutionary algorithms: A survey of the state of the art. Swarm and Evolutionary Computation, vol. 1(1), pp. 32-49, 2011.

    [8] B. Li, J. Li, K. Tang, and X. Yao. Many-Objective Evolutionary Algorithms. ACM Computing Surveys, vol. 48(1), article 13, pp. 1-35, 2015.

    [9] D. Meignan, S. Knust, J.-M. Frayret, G. Pesant, and N. Gaud. A Review and Taxonomy of Interactive Optimization Methods in Operations Research. ACM Transactions on Interactive Intelligent Systems, vol. 5(3), article 17, 1-43, 2015.


Fundación Dialnet

Mi Documat