A Framework to Support the Selection of Software Technologies by Search-Based Strategy Aurélio da Silva Grande Federal University of Amazonas Institute of Computing Manaus, AM, Brazil aurelio.grande@icomp.ufam.edu.br Rosiane de Freitas Rodrigues Federal University of Amazonas Institute of Computing Manaus, AM, Brazil rosiane@icomp.ufam.edu.br Arilo Claudio Dias-Neto Federal University of Amazonas Institute of Computing Manaus, AM, Brazil arilo@icomp.ufam.edu.br Abstract. This paper presents a framework to instantiate software technologies selection approaches by using search techniques. The software technologies selection problem (STSP) is modeled as a Combinatorial Optimization problem aiming attending different real scenarios in Software Engineering. The proposed framework works as a top-level layer over generic optimization frameworks that implement a high number of metaheuristics proposed in the technical literature, such as JMetal and OPT4J. It aims supporting software engineers that are not able to use optimization frameworks during a software project due to short deadlines and limited resources or skills. The framework was evaluated in a case study of a complex real-world software engineering scenario. This scenario was modeled as the STSP and some experiments were executed with different metaheuristics using the proposed framework. The results indicate its feasibility as support to the selection of software technologies. Keywords: Search Based Software Engineering, Software Technology Selection, Recommendation System. I. INTRODUCTION The selection of software technologies to be applied in software projects consists in an important task that may affect directly the quality of the final software product. In some cases, there are many technologies able to be applied in different software development activities, such as: project management [1][2], requirements elicitation [3], architectural design, quality assurance [4][5][6][7][8], among others. This can make hard the analysis of all possible options by a software engineer, mainly when there are other restrictions, such as time, cost, and resources, in a software project. In another perspective, in the last ten years it is growing the adoption of search-based techniques as mechanism to support decision making in software engineering scenarios in which the number of options (possible solutions) available is too large and hard to be manually analyzed considering the software project restrictions. This field was entitled as Search-Based Software Engineering (SBSE) [9]. In order to perform experiments to evaluate SBSE approaches, the technical literature provides some frameworks (e.g.: JMetal [10], Opt4J [11], EvA2 [12], amongst others) to support the modeling of different optimization problems and algorithms, and results representation ways that support the conduction of experiments using search-based techniques. However, the adoption of these frameworks for a real scenario of software engineering requires a high effort that usually cannot be spent in a software project due the short deadlines and limited resources. These difficulties are more evident when these decision making tasks are performed by project managers, such as the selection of software technologies, because the skills required by these professionals do not include knowledge on search-based algorithms and metaheuristics. To close this gap, the software technologies selection problem (STSP) was modeled as a combinatorial optimization problem [7]. Based on that, we propose a framework tailored to the STSP that instantiates recommendation systems by the application of SBSE techniques. The proposed framework works as a top-level layer that provides the input data for other optimization frameworks available in the technical literature. As a proof of concept, a real-world scenario, the problem of selecting techniques for Architectural Description of Embedded Systems (ADES) is instantiated using the proposed framework. Moreover, we run the experiment using three metaheuristics, very applied to SBSE research: SPEA2, NSGAII, MOCell. The results indicate the feasibility of the proposed framework as support to the selection of software technologies, and indicate which metaheuristics provides trade-off solutions. II. OPTIMIZATION FRAMEWORKS There are several optimization frameworks available in the technical literature, such as JMetal [10], Opt4J [11], EvA2 [12], amongst others. These frameworks provide features to use metaheuristics for different problems implemented in the tool. Analyzing their features regarding the feasibility of integrating them to our proposal, we find that all these optimization frameworks provide support for implementing various types of metaheuristics. These frameworks are also extensible, because they have Java classes that represent problems in which new problems, like STSP, can be implemented by coding. In general, they provide graphic display of results, and each one has other resources more specific for representation of results. However, due to the short deadlines and limited resources in a software project, probably the software engineer responsible by the selection of technologies would not have time to implement new problems in optimization framework. Therefore, all cited frameworks have an important role in the framework proposed in this work. They would be integrated in our framework to run experiments using different metaheuristics for the STSP, as will be described in the next sections. III. SOFTWARE TECHNOLOGIES SELECTION PROBLEM According to Vegas and Basili [4], the selection of software technologies represents a complex task that may influence directly on the process effectiveness and the quality of the final product. The main challenge of this task is to understand and