Algoritmos baseados em estimadores de distribuição e técnicas da otimização com muitos objetivos aplicados na refatoração automática de software

Detalhes bibliográficos
Ano de defesa: 2017
Autor(a) principal: Botelho, Glauber Andrade
Orientador(a): Carvalho, André Britto de
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Não Informado pela instituição
Programa de Pós-Graduação: Pós-Graduação em Ciência da Computação
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Palavras-chave em Inglês:
Área do conhecimento CNPq:
Link de acesso: http://ri.ufs.br/jspui/handle/riufs/10762
Resumo: Search Based Software Engineering (SBSE) is a research area in which optimization algorithms are applied to solve Software Engineering problems. SBSE area comprises several sub-areas, among them, Search Based Software Refactoring (SBSR), which deals with automatic software refactoring processes. One of the problems investigated in SBSR is the determination of a sequence of refactorings that provides code improvement, according to predetermined criteria. To model this problem as an optimization problem, it is necessary to define objective functions. In this case, the objective functions are quality metrics used in Software Engineering. Since there are many metrics to consider, the problem of determining sequences of refactorings is a Many-Objective Combinatorial Optimization Problem. Many-Objective optimization comprises a set of algorithms and techniques used to solve problems that take into account more than three objectives. In order to solve problems of this nature, new methods are proposed to reduce the deterioration of the search as the number of objectives increases, among them, the multi-objective evolutionary algorithms, which include the Estimation of Distribution Algorithms (EDA). However, despite having good results in combinatorial optimization problems the investigation of EDA in the context of optimization with many objectives are still incipient. The goal of this work is to investigate the use of EDA in the automatic selection of a sequence of refactorings. In order to achieve this goal, a new EDA is proposed, which incorporates many-objective optimization techniques existing in literature. The proposed algorithm was validated and added to a previously implemented automatic software refactoring framework. Furthermore, a set of experiments was conducted to evaluate the proposed algorithm. The results obtained by the proposed algorithm were compared to the results obtained by algorithms existing in the literature.