Navegación

Búsqueda

Búsqueda avanzada

Estado y evolución de la comunidad SBSE en España: un análisis bibliométrico

Dada la creciente complejidad de los sistemas software, disponer de métodos y técnicas eficientes para apoyar la realización de las diferentes actividades que se llevan a cabo en el ciclo de vida de un proyecto software ha despertado un gran interés. Así, el concepto de Ingeniería del Software basada en búsqueda (SBSE, search-based software engineering) ha permitido a ingenieros del software la aplicación de técnicas de optimización para automatizar tareas relativas a la gestión e implementación de un proyecto software. La comunidad científica en España no ha sido ajena a estos avances, contribuyendo desde la aparición de la disciplina en 2001. Este trabajo representa el primer estudio bibliométrico que resume y analiza el esfuerzo investigador realizado por la comunidad SBSE en España, así como su evolución en los últimos 18 años. Tras efectuar un riguroso proceso de búsqueda donde se han considerado más de 3700 artículos, se han identificado 232 publicaciones relevantes, donde participan hasta 145 autores de 19 instituciones diferentes. Entre los resultados más relevantes cabe destacar que casi la mitad de publicaciones se han llevado a cabo entre investigadores de distintas instituciones, la mayoría de ellas internacionales. No obstante, el nacimiento en 2015 del track sobre ingeniería del software guiada por búsqueda en las jornadas SISTEDES ha fomentado el contacto entre investigadores de instituciones españolas, mejorando el ratio de colaboraciones nacionales, así como la financiación dedicada a este campo en España.

Search-based mutant selection for efficient test suite improvement: Evaluation and results

Las técnicas basadas en búsqueda se han aplicado a casi todas las áreas de la Ingeniería del Software, especialmente a la prueba de software, con el fin de abordar problemas de difícil resolución. Sin embargo, el problema de la selección de mutantes con el objetivo de mejorar el conjunto de pruebas no ha sido explorado tanto como otros problemas del mismo área, como puede ser la generación de datos de prueba. En este artículo aplicamos selección de mutantes basada en búsqueda para la mejora eficiente de la calidad de las pruebas. Concretamente, usamos la técnica conocida como prueba de mutación evolutiva (PME), la cual permite reducir el número de mutantes pero sin pérdida significativa de efectividad. A pesar de los beneficios que su aplicación ha reportado, los resultados empíricos hasta el momento han sido derivados de un número limitado de casos de estudio, un único conjunto de operadores de mutación así como una métrica poco representativa del rendimiento real de la técnica. Este artículo trata de aliviar estos defectos definiendo una nueva metodología para la evaluación de PME basada en la mejora real que se logra en el conjunto de pruebas al usar la estrategia evolutiva. Después, aplicamos esta metodología en nuevos experimentos con un conjunto de programas en C++ reales. Los resultados muestran que PME proporciona un buen rendimiento para la mayoría de casos y niveles de exigencia de mejora de las pruebas (en torno al 45% mejor que la selección aleatoria en el mejor caso). Los resultados revelan que incluso un conjunto reducido de mutantes seleccionado con PME es útil para incrementar la calidad de las pruebas, especialmente en los programas con un número mayor de mutantes. En definitiva, estos resultados apoyan el uso de técnicas basadas en búsqueda para resolver el problema de la selección de mutantes para la mejora eficiente de las pruebas. Adicionalmente, identificamos ciertos aspectos que previsiblemente podrían ayudar a mejorar la técnica PME.

API para el desarrollo de algoritmos interactivos en ingeniería del software basada en búsqueda

La experiencia y la intuición son factores clave a la hora de dar solución a los complejos problemas que plantea la ingeniería del software. Sin embargo, este tipo de criterios no suelen ser considerados cuando su resolución se aborda por medio de técnicas de búsqueda automática. La ingeniería del software basada en búsqueda (SBSE) no puede ni debe obviar la opinión del ingeniero, razón por la que cada vez es más frecuente encontrar propuestas que le invitan a participar en el proceso. Diseñar e implementar un mecanismo de interacción efectivo, a la par que atractivo para el ingeniero, puede resultar complejo. Por ello, este trabajo presenta una API para dar soporte al desarrollo de algoritmos interactivos en SBSE. En base a los enfoques interactivos actuales en SBSE, esta API expone cuáles son los requisitos propios de la interactividad que deben programarse como, por ejemplo, la forma de evaluar las soluciones y las acciones que el ingeniero puede realizar sobre ellas.

Búsqueda coevolutiva interactiva aplicada al diseño de software

La resolución de tareas de diseño software mediante técnicas de búsqueda plantea dificultades como la exploración efectiva de un gran conjunto de alternativas, cuya calidad no puede ser evaluada sólo en base a medidas software. Con el fin de solventarlas, es necesario considerar técnicas más avanzadas que se aproximen más a cómo los ingenieros diseñan en la realidad. Los modelos coevolutivos permiten descomponer el problema original en varias partes diferenciadas que se resuelven simultáneamente, mientras que la optimización interactiva permite incorporar el conocimiento del ingeniero. Este trabajo propone un modelo que combina ambas técnicas y plantea los retos que conlleva su desarrollo.

Análisis de la aplicabilidad de medidas software para el diseño semi-automático de arquitecturas

Dar soporte semi-automático al ingeniero software durante la fase de diseño arquitectónico es una tarea compleja, pues se deben manejar múltiples alternativas de diseño que satisfagan criterios de calidad de interés para el ingeniero. Cuando en el contexto de los sistemas de soporte a la decisíon se emplean técnicas metaheurísticas, estos criterios deben ser trasladados a medidas precisas que sean computacionalmente evaluables sobre las soluciones generadas automáticamente. Este trabajo analiza la problemática asociada a la utilizacíon de medidas software en el ámbito del diseño de arquitecturas basadas en componentes mediante técnicas de optimizacíon y búsqueda. Para ello se han analizado medidas relacionadas con los dos atributos de calidad más relevantes para este tipo de arquitecturas: la adecuacíon funcional y la mantenibilidad. El estudio realizado muestra que, si bien existe una gran variedad de medidas software, aún quedan diferentes aspectos que pueden limitar su aplicabilidad en el diseño semi-automático de arquitecturas.

Interactividad en el descubrimiento evolutivo de arquitecturas

Resolver tareas propias del dise˜no arquitectónico de manera automática es un reto complejo, puesto que los arquitectos cuentan con habilidades que difícilmente pueden simularse y son capaces, además, de mantener una visión global de la actividad que realizan. Por su parte, la ingeniería del software basada en búsqueda está demostrando que las técnicas metaheurísticas son útiles cuando se desea prestar apoyo al ingeniero, especialmente cuando éste puede intervenir activamente en el proceso. Este trabajo analiza los retos que plantea esta colaboración a la hora de desarrollar modelos metaheurísticos para resolver tareas en una fase temprana del software como es el dise˜no arquitectónico. Se estudian aspectos como el papel del ingeniero y los criterios que van a guiar su intervención durante la búsqueda, sirviendo como paso previo para la propuesta de un modelo inicial con el que abordar el descubrimiento de arquitecturas software mediante un algoritmo evolutivo interactivo.