Acciones
Icono requisitos.png Requirements Engineering. The Next Release Problem (NRP) is a well-known SBSE problem that aims at selecting the optimal set of requirements to be implemented in the next project iteration, subject to diverse constraints (Pitanguera et al., 2015). One challenge here is to address the multi-objective version of the problem, where the costs associated to the requirements should be minimized while maximizing the expected benefit (Del Sagrado et al., 2015). Other challenges include the application of exact algorithms and the study of influence of estimation errors (Harman et al., 2014). NRP can be also extended to consider incoming releases, to integrate resource allocation, etc., leading to complex scenarios but with great applicability in practice.
Icono diseño.png Automatic software design. Tasks belonging to the analysis and design phases are clearly related to human decisions, so their success strongly depends on the engineer's expertise and abilities. Despite the related difficulties, SBSE has started to face the automatic design of software in an automatic way (Räihä, 2010). Great efforts are made to address tasks like reverse engineering for software product lines (Lopez-Herrejon et al., 2015), web services design (Parejo et al., 2014) or software architecture optimization (Ramírez et al., 2015b). In this scenario, metaheuristic models should be viewed as a support to software engineers, instead of their replacement. Therefore, the objective is to assist them during the conception, modification and enhancement of software since its very early development.
Icono interactividad.png Interactive algorithms (human-in-the-loop). Software Engineering tasks can be complex to simulate, especially those when the automatic evaluation of the quality of solutions is not possible. The system analysis phase might be an example. In this scenario, the active participation of the expert in the optimization process is a must, implying the consideration of the human-in-the-loop. This kind of approaches allows integrating expert's abilities with the search process in order to obtain more satisfactory results. Although there are some proposals in areas like software design (Simons and Parmee, 2012; Simons et al., 2014) and testing (Marculescu et al., 2015), interactive mechanisms still require an in-depth analysis. Factors usually involved in interactive approaches are the role of the expert in the search process, the specific requirements of the problem under study or the user fatigue (Ramírez et al., 2015a).
Icono pruebas.png Software testing. Search Based Software Testing (SBST) represents one of the most studied and fruitful areas of SBSE (Domínguez-Jiménez et al., 2011; Lopez-Herrejon et al., 2014; Ferrer et al., 2015). Recently, three promising research lines have been identified (Harman et al., 2015): the automation of non-functional test cases, putting especial attention into energy consumption; the search of testing strategies in constrast to the generation of test cases; or the joint optimization of several objectives (multi-objective optimization), such as test coverage, execution time or required memory. Harman et al. already announced a promising future for those search-based tools capable of finding bugs, solving them and verifying solutions in a fully automatic way (FiFiVerify tools).
Icono costes.png Software cost estimation. Software cost estimation is a key aspect throughout the software life cycle that can be also addressed from a SBSE perspective (Dolado, 2001). Within this field, there are several proposals using metaheuristic models, though their effectiveness has not been demonstrated to be higher than classic methods. Some participants of the SEBASENet consortium have performed evaluations of estimation models using equivalence analysis techniques (Dolado et al., 2014). It would be desirable to count with a greater number of models in order to complete a more comprehensive assessment.