Introduction
Search Based Software Engineering (SBSE) is a research field that concerns the application of search based approaches like metaheuristics to the resolution of Software Engineering (SE) tasks. The term SBSE was coined by Harman and Jones in 2001 and from its beginning, many activities related to different phases of the software conception and its development have been properly formulated as optimization problems, and diverse techniques like evolutionary algorithms, simulated annealing or ant colony optimization have been applied to solve them.
Contributions within SBSE can be organized regarding the stage of the software life cycle where the specific SE activity is addressed:
- Requirements. Selecting the subset of requirements to be included in each update of a software is known as the Next Release Problem (NRP). Here, a trade-off between the interests of the different stakeholders is expected, and dependencies between requirements are usually considered. Other related problems are the assessment and prioritization of the set of requirements.
- Software design. This area encompasses all the activities devoted to conceive and improve the structure of a software system, from architectural modeling to software refactoring. As a result, software engineers deal with many software artefacts, like components, classes, services and design patterns, to specify a system which not only implements the functional requirements, but also satisfies non-functional requirements like reliability, maintainability and cost. Some optimization problems within this area are: class modeling, architectural design, selection and composition of web services, refactoring and modularization.
- Program optimization. Focusing on already implemented systems, techniques for program optimization can be applied to enhance the quality of the code.
- Software testing and verification. The automatic generation of a suite of test cases is one of the first and most studied problems in SBSE. The aim here is to select the set of test cases that best covers all the branches of a program considering the minimal testing efforts. Finding faults or prioritizing test cases are other examples of testing problems than can be addressed from a search perspective.
- Project management. Human and material resources need to be properly organized into a project planning to be adopted along the software life cycle. From the SBSE perspective, tasks are automatically assigned to engineers, considering aspects like the dependencies among them and the total time to execute the resulting plan. Cost-effort estimation problems can be also considered under this category.
Search-based software design
During the analysis and design of software, software engineers have already identified the functionalities of the system. However, many design alternatives should be evaluated in order to decide how to create high-quality solutions that implement these functionalities satisfying the required non-functional requirements. At this stage of the project execution, search-based approaches emerge as an interesting mechanism to provide support during their decision making process.
A great variety of Software Engineering activities can be considered here. Firstly, architectural optimization encompasses those tasks devoted to identify the structure of the system, where highly abstract software artefacts like components and interfaces should be considered. Some approaches start from the requirements specification to derive a proper design, whereas others try to recover the software architecture from source code. In many situations, the software artefacts already exist, and the optimization problems are focused on obtaining the best integration of components or seeking the optimal allocation of these elements into a distributed platform.
Next, both object-oriented and service-oriented design can be tackled from a search perspective. In the former case, some proposals extract analysis information from use cases and generate a possible class diagram. In the latter case, the best orchestration of candidate services, each one providing a specific level of quality (e.g. reliability, response time, cost, etc.), need to be selected to conform to the workflow of a composite service.
Finally, software refactoring and software modularization manage more concrete software artefacts, like source code. Software refactoring deals with the improvement of software structures, so it is closely related to maintenance. Software module clustering looks for the best organization of packages and modules in the code, ensuring high cohesion and low coupling.
Our research
Nowadays, we are experienced in several search approaches to solve the semi-automatic discovery of software architectures, which involves the identification the most fitting architecture of a software system, in terms of components and its interactions, from a prior analysis model, i.e. a class diagram. However, other software engineering activities are also of interest like service-oriented computing, testing, refactoring or requirements.
We have applied multiple techniques and approaches, like metaheuristics, multi-/many-objective optimisation, interactive approaches (human-in-the-loop), novelty search, etc.
We are also interested in the sinergies between SBSE and other fields like mining software repositories (MSR).
Members
- Dr. José Raúl Romero (email: jrromero@uco.es)
- Dr. Aurora Ramírez
- Mr. Rafael Barbudo
- Dr. Sebastián Ventura
Contributions to the area
Journal papers
- P. Delgado-Pérez, A. Ramírez, K. Valle-Gómez, I. Medina-Bulo, J.R. Romero. “A systematic literature review of the SBSE research community in Spain”. IEEE Transactions on Software Engineering, vol. 49(4), pp. 2580-2596. 2023. IEEE. ISNN: 0098-5589. DOI: 10.1109/TSE.2022.3227418.
- R. Barbudo, A. Ramírez, F. Servant, J.R. Romero. “GEML: A grammar-based evolutionary machine learning approach for design-pattern detection”. Journal of Systems and Software, 110919. 2021. Elsevier. ISSN: 0164-1212. DOI: 10.1016/j.jss.2021.110919.
- A. Ramírez, P. Delgado-Pérez, J. Ferrer, J.R. Romero, I. Medina-Bulo, F. Chicano. “A systematic literature review of the SBSE research community in Spain”. Progress in Artificial Intelligence, vol. 9, pp. 113-128. 2020. Springer. ISNN: 2192-6360. DOI: 10.1007/s13748-020-00205-3 .
- 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. Elsevier. ISSN: 0952-1976. DOI: 10.1016/j.engappai.2019.02.003.
- 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.
- 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.
- 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. [Slides].
- 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. [Slides].
- 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.
- 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. [Slides].
International conferences
- A. Ramírez, P. Delgado-Pérez, K. Valle-Gómez, I. Medina-Bulo, J.R. Romero. “Interactivity in the Generation of Test Cases with Evolutionary Computation”. In Proceedings of the IEEE Congress on Evolutionary Computation (CEC’21), pp. 2395-2402. Virtual event (Krakow, Poland). June 2021. IEEE. DOI: 10.1109/CEC45853.2021.9504786. [Slides]
- A. Ramírez, J.R. Romero, S. Ventura. “On the Effect of Local Search in the Multi-objective Evolutionary Discovery of Software Architectures”. In Proceedings of the IEEE Congress on Evolutionary Computation (CEC’17), pp. 2038-2045. San Sebastián (Spain). June 2017. IEEE. DOI: 10.1109/CEC.2017.7969551. [Slides].
- A. Ramírez, R. Barbudo, J.R. Romero, S. Ventura. “Memetic algorithms for the automatic discovery of software architectures”. In Proceedings of the 16th International Conference on Intelligent Systems Design and Applications (ISDA’16), vol. 557 AISC, pp. 437-447. Porto (Portugal). December 2016. Springer. ISBN: 978-3-319-53479-4 DOI: 10.1007/978-3-319-53480-0_43. [Slides]
- A. Ramírez, J.R. Romero, S. Ventura. “On the Performance of Multiple Objective Evolutionary Algorithms for Software Architecture Discovery”. In Proceedings of the 16th Annual Conference on Genetic and Evolutionary Computation (GECCO’14), pp. 1287-1294. Vancouver (BC, Canada). July 2014. ACM. ISBN: 978-1-4503-2662-9. DOI: 10.1145/2576768.2598310. Best SBSE paper. [Slides]
- A. Ramírez, J.R. Romero, S. Ventura. “A Novel Component Identification Approach Using Evolutionary Programming”. In Proceedings of the 15th Annual Conference Companion on Genetic and Evolutionary Computation (GECCO’13 Companion), pp. 209-210. Amsterdam (The Netherlands). July 2013. ACM. ISBN: 978-1-4503-1964-5. DOI: 10.1145/2464576.2464679.
Books and chapters
- A. Ramírez, J.R. Romero. “Synergies between artificial intelligence and software engineering: evolution and trends”.Handbook on artificial intelligence-enhanced software engineering, vol. 1: Novel Methodologies to Engineering Smart Software Systems. 2022.
Spanish conferences
- J.R. Romero, R. Barbudo, A. Ramírez, F. Servant. “Detección de patrones de diseño con GEML: discusión y enfoque práctico”. Actas de las XXV Jornadas en Ingeniería del Software y Bases de Datos (JISBD’21). Málaga (Spain). September 2021. SISTEDES – Universidad de Málaga. Handle: 11705/JISBD/2021/058.
- P. Delgado-Pérez, A. Ramírez, K. Valle-Gómez, I. Medina-Bulo, J.R. Romero. “Mejora de la legibilidad en la generación de casos de prueba mediante búsqueda interactiva”. Actas de las XXV Jornadas en Ingeniería del Software y Bases de Datos (JISBD’21). Málaga (Spain). September 2021. SISTEDES – Universidad de Málaga. Handle: 11705/JISBD/2021/022.
- J.R. Romero, A. Ramírez, C. Simons. “Looking for novelty in SBSE problems”. Actas de las XXIV Jornadas en Ingeniería del Software y Bases de Datos (JISBD’19). Cáceres (Spain). September 2019. SISTEDES – Universidad de Extremadura. Handle: 11705/JISBD/2019/028.
- A. Ramírez, P. Delgado-Pérez, J. Ferrer, J.R. Romero, I. Medina-Bulo, F. Chicano.”Estado y evolución de la comunidad SBSE en España: un análisis bibliométrico”. Actas de las XXIV Jornadas en Ingeniería del Software y Bases de Datos (JISBD’19). Cáceres (Spain). September 2019. SISTEDES – Universidad de Extremadura. Handle: 11705/JISBD/2019/046. [Slides]
- R. Barbudo, J.R. Romero, S. Ventura. “Aprendizaje automático con programación genética gramatical para la detección de patrones de diseño”. Actas de XVIII Conferencia de la Asociación Española para la Inteligencia Artificial (CAEPIA’18). Granada (Spain). October 2018. AEPIA – University of Granada. Best student paper. Proceedings.
- A. Ramírez, J.R. Romero, S. Ventura. “API para el desarrollo de algoritmos interactivos en ingeniería del software basada en búsqueda”. Actas de las XXIII Jornadas en Ingeniería del Software y Bases de Datos (JISBD’18). Sevilla (Spain). September 2018. SISTEDES – Universidad de Sevilla. Handle: 11705/JISBD/2018/073. [Slides]
- A. Ramírez, J.R. Romero, S. Ventura. “Búsqueda coevolutiva interactiva aplicada al diseño de software”. XXII Jornadas en Ingeniería del Software y Bases de Datos (JISBD’17). La Laguna, Tenerife (Spain). July 2017. SISTEDES – Universidad de La Laguna. Handle: 11705/JISBD/2017/034. [Slides]
- R. Barbudo, A. Ramírez, J.R. Romero, S. Ventura. “Descubrimiento de patrones de diseño basado en buenas prácticas: modelo y discusión”. XXII Jornadas en Ingeniería del Software y Bases de Datos (JISBD’17). La Laguna, Tenerife (Spain). July 2017. SISTEDES – Universidad de La Laguna. Handle: 11705/JISBD/2017/035.
- A. Ramírez, R. Barbudo, J.R. Romero, S. Ventura. “Herramienta basada en computación evolutiva interactiva para arquitectos software”. XI Congreso Español de Metaheurísticas, Algoritmos Evolutivos y Bioinspirados (MAEB’16). pp. 387-398. Salamanca (Spain). September 2016. University of Salamanca. ISBN: 978-84-9012-632-5. [Slides]
- A. Ramírez, J.A. Molina, J.R. Romero, S. Ventura. “Estudio de mecanismos de hibridación para el descubrimiento evolutivo de arquitecturas”. XXI Jornadas en Ingeniería del Software y Bases de Datos (JISBD’16), pp. 481-494. Salamanca (Spain). September 2016. University of Salamanca. ISBN: 978-84-9012-627-1. Handle: 11705/JISBD/2016/043. [Slides]
- J.A. Parejo, A. Ramírez, J.R. Romero, S. Segura, A. Ruiz-Cortés. “Configuración guiada por búsqueda de aplicaciones basadas en microservicios en la nube”. XXI Jornadas en Ingeniería del Software y Bases de Datos (JISBD’16), pp. 499-502. Salamanca (Spain). September 2016. SISTEDES – University of Salamanca. ISBN: 978-84-9012-627-1. Handle: 11705/JISBD/2016/045.
- A. Ramírez, J.R. Romero, S. Ventura. “Interactividad en el descubrimiento evolutivo de arquitecturas”. XX Jornadas en Ingeniería del Software y Bases de Datos (JISBD’15). Santander (Spain). September 2015. SISTEDES. Handle: 11705/JISBD/2015/029. [Slides]
- A. Ramírez, J.R. Romero, S. Ventura. “Estudio preliminar del rendimiento de familias de algoritmos multiobjetivo en diseño arquitectónico”. X Congreso Español sobre Metaheurísticas, Algoritmos Evolutivos y Bioinspirados (MAEB’15). pp. 173-180. Mérida (Spain). February 2015. University of Extremadura. ISBN: 978-84-697-2150-6. [Slides]
- A. Ramírez, J.R. Romero, S. Ventura. “Análisis de la aplicabilidad de medidas software para el diseño semi-automático de arquitecturas”. XIX Jornadas en Ingeniería del Software y Bases de Datos (JISBD’14). pp. 307-320. Cádiz (Spain). September 2014. SISTEDES. ISBN: 978-84-697-1152-1. Handle: 11705/JISBD/2014/050. [Slides]
- A. Ramírez, J.R. Romero, S. Ventura. “Algoritmo de programación evolutiva para identificación de arquitecturas software”. IX Congreso Español sobre Metaheurísticas, Algoritmos Evolutivos y Bioinspirados (MAEB’13). pp. 892-901. Madrid (Spain). September 2013. Complutense University. ISBN: 978-84-695-8348-7. Nominated to best paper. [Slides]
- A. Ramírez, J.R. Romero, S. Ventura. “Identificación de Componentes en Arquitecturas Software Mediante Programación Evolutiva”. XVIII Jornadas en Ingeniería del Software y Bases de Datos (JISBD’13). pp. 413-426. Madrid (Spain). September 2013. SISTEDES. ISBN: 978-84-695-8310-4. Handle: 11705/JISBD/2013/053. [Slides]
References and links
Spanish Research Network on SBSE
SEBASENet: Excellence Network on Search-based Software Engineering (12/2015 – 11/2017, 01/2020 – 12/2022)
SBSE Repositories
Repository of publications on SBSE (UCL)
Other repositories on SBSE (UCL)
Events
SBSE and ML track in JISBD 2022
International Summer School on Search- and Machine Learning-based Software Engineering (SMILESENG 2022)
SBSE and ML track in JISBD 2021
Special Section in CEC 2021: Metaheuristics and Machine Learning in Software Engineering
2nd International Summer School on SBSE (SS-SBSE 2017)
1st International Summer School on SBSE (SS-SBSE 2016)