General information

thesis title page

Context

Nowadays, software engineers have not only the responsibility of building systems that provide a particular functionality, but they also have to guarantee that these systems fulfil demanding non-functional requirements like high availability, efficiency or security. To achieve this, software engineers face a continuous decision process, as they have to evaluate system needs and existing technological alternatives to implement it. All this process should be oriented towards obtaining high-quality and reusable systems, also making future modifications and maintenance easier in such a competitive scenario.

Software engineering, as a systematic method to build software, has provided a number of guidelines and tasks that, when done in a disciplinary manner and properly adapted to the development context, allow the creation of high-quality software. More specifically, software analysis and design has acquired great relevance, being the phase in which the software structure is conceived in terms of its functional blocks and their interactions. In this phase, engineers have to make decisions about the most suitable architecture, including its constituent components. Such decisions are made according to the system requirements, either functional or non-functional, and will have a great impact on its future development. Therefore, the engineer has to rigorously analyse existing alternatives, their implications on the imposed quality criteria and the need of establishing trade-offs among them. In this context, engineers are mostly guided by their own capabilities and experience, so providing them with decision support methods would represent a significant contribution.

The application of artificial intelligent techniques in this area has experienced a growing interest in the last years. Particularly, software engineering represents a complex application domain to artificial intelligence, whose diverse techniques can help in the semi-automation of tasks traditionally performed manually. The union of both fields has led to the appearance of search-based software engineering (SBSE), which proposes reformulating software engineering activities as optimisation problems. For their resolution, search techniques like metaheuristics can be then applied. This type of technique performs an "intelligent" exploration of the space of candidate solutions, often inspired by natural processes as happens with evolutionary algorithms.

Despite the novelty of this research field, there are proposals to automate a great variety of tasks within the software lifecycle, such as requirement prioritisation, resource planning, code refactoring or test case generation. Focusing on analysis and design, whose tasks require creativity and experience, trying to achieve full automation is not realistic. Therefore, solving design tasks by means of search approaches should be oriented towards the engineer's perspective, even promoting their interaction. Furthermore, design tasks are also characterised by a high level of abstraction and the difficulty of quantitatively evaluating design quality. All these aspects represent key challenges for the application of search techniques in early phases of the software construction process.

Objectives

The aim of this Ph.D. Thesis is to make significant contributions in search-based software engineering and, specially, in the area of software architecture optimisation. More specifically,

the objective of this Ph.D. Thesis is the development of search models based on metaheuristic algorithms to provide semi-automatic support to software engineers in early stages of the software development process.

This general objective is was divided into the following subobjectives:

  1. Analysis of the state of the art in SBSE, especially in the areas of search-based software design (SBSD) and architecture optimisation, to identify open problems and the techniques that could be applied to their resolution.
  2. Design and development of a metaheuristic model based on evolutionary computation to support the discovery of component-based software architectures. Study of the problem characteristics, including analysis information, quality metrics, expert's needs, etc.
  3. Design and development of advanced search models, including multi-objective approaches and hybrid techniques, to study their suitability to the decision support process. Study of their applicability to different domains within SBSD.
  4. Design and development of an interactive approach to incorporate human expertise in the context of software architecture optimisation. Comparison with previous approaches.

Main contributions

In this Ph.D. Thesis, the use of a great variety of search techniques has been explored. The suitability of these techniques has been studied, also making the necessary adaptations to cope with the aforementioned challenges:

  • A first proposal has been focused on the formulation of software architecture discovery as an optimisation problem, which consists in the computational representation of its software artefacts and the definition of software metrics to evaluate their quality during the search process.
  • Next, the discovery of software architectures has been tackled from a multi-objective perspective, in which several software metrics, often in conflict, have to be simultaneously optimised. In this case, the problem is solved by applying eight state-of-the-art algorithms, including some recent many-objective approaches.
  • The last proposal is focused on interactively including the engineer's opinion in the search-based architecture discovery process. To do this, an interaction mechanism has been designed, which allows the engineer to express desired characteristics for the solutions (positive preferences), as well as those aspects that should be avoided (negative preferences).

The knowledge acquired along the development of the Thesis, as well as the proposed approaches, have also been transferred to other search-based software engineering areas as a result of research collaborations. In this sense, it is worth noting the formalisation of interactive search-based software engineering as a cross-cutting discipline, which aims at promoting the active participation of the engineer during the search process. Furthermore, the use of many-objective algorithms has been explored in the context of service-oriented computing to address the so-called web service composition problem.

Publications associated to this Ph.D. Thesis

The results of this Ph.D. Thesis are supported by seven articles published in scientific journals of high impact factor:

  1. 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. Category: Computer Science, Information Systems. Position: 8/144 (Q1).
  2. 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. Category: Computer Science, Software Engineering. Position: 7/106 (Q1).
  3. 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).
  4. 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. Categories: Computer Science, Artifical Intelligence / Operations Research and Management Science. Positions: 20/132 (Q1), 8/83 (Q1).
  5. 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).
  6. 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).
  7. 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).

In addition, four works have been presented in international conferences, among which the contribution to GECCO'14 is highlighted as it was awarded the SBSE best paper. Among Spanish events, we have contributed with eight papers presented in conferences related to both artificial intelligence (CAEPIA) and software engineering (SISTEDES). Full references to these publications can be found in the research section.

Awards and recognition

  • Ph.D. Thesis with international mention. Three-month research stay at University of the West of England (Bristol, UK).
  • Best Ph.D. Thesis - Engineering category (academic year 2017/18). Awarded by the University of Córdoba.
  • "Frances Allen" award - best Ph.D. Thesis related to artificial intelligence topics and authored by a woman between 2017 and 2018. Awarded by the Spanish Society of Artificial Intelligence (AEPIA).
  • Press releases (in Spanish): UCO (I, II) | Diario Córdoba (I, II)