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