Investigando a refatoração automática de software baseada em algoritmos de otimização multiobjetivos

Detalhes bibliográficos
Ano de defesa: 2014
Autor(a) principal: Silva Júnior, Leonardo Bezerra lattes
Orientador(a): Silva, Leila Maciel de Almeida e lattes
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: Universidade Federal de Sergipe
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: BR
Palavras-chave em Português:
Palavras-chave em Inglês:
Área do conhecimento CNPq:
Link de acesso: https://ri.ufs.br/handle/riufs/3335
Resumo: Refactoring is a process that aims to change the code without changing the visible behavior and is used to correct structural problems in software, arising from unplanned maintenance or an unstructured development process. The mechanisms behind the refactoring process, however, are relatively complex and dangerous if done manually (for each refactoring is necessary to evaluate a number of pre and post-conditions to ensure that the behavior is not changed). Many current development tools facilitate the refactorings usage, but in a semiautomatic way, so that the programmer must detect the need for a specific refactoring. New techniques have emerged in an effort to approximate the software engineering to other engineerings with respect to process automation. In this context, the application of search algorithms arises as a means to provide support to software maintenance by automatically applying refactorings. This work fits in this context, Search-Based Software Refactoring, and investigates in detail the topic, including the proposition of a specific algorithm for the area, entitled MultiObjective Particle Swarm Optimization with Path Relinking (MOPSOPR). An open source framework which enables the search and automatic application of refactoring sequences has also been proposed. This framework allows exploration of the problem of automatic refactoring through various optimization algorithms. In particular, in this msc dissertation, the framework is used to enable comparative analysis of the proposed algorithm with the most used algorithm in the literature of this subject, the Non-Dominated Sorting Genetic Algorithm-II (NSGA-II). Several experiments were conducted, which included real-world softwares. Despite showing some positive results, the overall assessment does not indicate a unanimous superiority of the proposed algorithm compared to the NSGA-II in several experiments. However, the study revealed interesting research frontiers to be explored in future work.
id UFS-2_4d29887afbb5520d69b2b56ba89a0826
oai_identifier_str oai:ufs.br:riufs/3335
network_acronym_str UFS-2
network_name_str Repositório Institucional da UFS
repository_id_str
spelling Silva Júnior, Leonardo Bezerrahttp://lattes.cnpq.br/4711374324516507Silva, Leila Maciel de Almeida ehttp://lattes.cnpq.br/09283958594378222017-09-26T11:34:17Z2017-09-26T11:34:17Z2014-09-19SILVA JÚNIOR, Leonardo Bezerra. Investigando a refatoração automática de software baseada em algoritmos de otimização multiobjetivos. 2014. 118 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Sergipe, São Cristóvão, 2014.https://ri.ufs.br/handle/riufs/3335Refactoring is a process that aims to change the code without changing the visible behavior and is used to correct structural problems in software, arising from unplanned maintenance or an unstructured development process. The mechanisms behind the refactoring process, however, are relatively complex and dangerous if done manually (for each refactoring is necessary to evaluate a number of pre and post-conditions to ensure that the behavior is not changed). Many current development tools facilitate the refactorings usage, but in a semiautomatic way, so that the programmer must detect the need for a specific refactoring. New techniques have emerged in an effort to approximate the software engineering to other engineerings with respect to process automation. In this context, the application of search algorithms arises as a means to provide support to software maintenance by automatically applying refactorings. This work fits in this context, Search-Based Software Refactoring, and investigates in detail the topic, including the proposition of a specific algorithm for the area, entitled MultiObjective Particle Swarm Optimization with Path Relinking (MOPSOPR). An open source framework which enables the search and automatic application of refactoring sequences has also been proposed. This framework allows exploration of the problem of automatic refactoring through various optimization algorithms. In particular, in this msc dissertation, the framework is used to enable comparative analysis of the proposed algorithm with the most used algorithm in the literature of this subject, the Non-Dominated Sorting Genetic Algorithm-II (NSGA-II). Several experiments were conducted, which included real-world softwares. Despite showing some positive results, the overall assessment does not indicate a unanimous superiority of the proposed algorithm compared to the NSGA-II in several experiments. However, the study revealed interesting research frontiers to be explored in future work.Refatoração é um processo que objetiva a mudança de código sem a mudança de comportamento visível e é utilizada para corrigir problemas estruturais no software, advindos de manutenções sem planejamento ou de um processo de desenvolvimento desestruturado. Os mecanismos por trás do processo de refatoração, entretanto, são relativamente complexos e perigosos se feitos manualmente (para cada refatoração é preciso avaliar uma série de pré e pós-condições para garantir que o comportamento não seja alterado). Muitas ferramentas de desenvolvimento atuais facilitam as refatorações, mas de forma semiautomatizada, de maneira que o programador deve perceber a necessidade de uma refatoração específica. Novas técnicas tem surgido em um esforço para aproximar a engenharia de software das outras engenharias no que diz respeito à automatização de processos. Neste contexto, a aplicação de algoritmos de busca surge como uma proposta para prover suporte à manutenção de software através da aplicação automática de refatorações. Este trabalho se insere neste contexto, o de Refatoração de Software Baseada em Buscas (do inglês Search-Based Software Refactoring), e investiga detalhadamente o tema, propondo inclusive um algoritmo específico para a área, intitulado MultiObjective Particle Swarm Optimization with Path Relinking (MOPSOPR). Um framework open-source que possibilita a busca e aplicação automática de sequências de refatorações foi também proposto. Este framework permite a exploração do problema de refatoração automática através de vários algoritmos de otimização. Em particular, neste trabalho o framework foi utilizado para viabilizar análises comparativas do algoritmo proposto com o algoritmo mais utilizado na literatura deste tema, o Non-Dominated Sorting Genetic Algorithm- II (NSGA-II). Vários experimentos foram conduzidos, inclusive considerando-se softwares reais. Apesar de apresentar alguns resultados positivos, a avaliação geral não indica uma superioridade unânime do algoritmo proposto em relação ao NSGA-II nos diversos experimentos realizados. Entretanto, o estudo realizado revelou interessantes fronteiras de investigação a serem exploradas em trabalhos futuros.application/pdfporUniversidade Federal de SergipePós-Graduação em Ciência da ComputaçãoUFSBRComputaçãoEngenharia de softwareSoftwareRefatoraçãoAlgoritmos de computadorFrameworkEngenharia de software baseada em buscaNSGA-IIMOPSOSoftware EnginneringSearch-Based Software EngineeringRefactoringParticleSwarm OptimizationCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOInvestigando a refatoração automática de software baseada em algoritmos de otimização multiobjetivosinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFSinstname:Universidade Federal de Sergipe (UFS)instacron:UFSTEXTLEONARDO_BEZERRA_SILVA_JUNIOR.pdf.txtLEONARDO_BEZERRA_SILVA_JUNIOR.pdf.txtExtracted texttext/plain198023https://ri.ufs.br/jspui/bitstream/riufs/3335/2/LEONARDO_BEZERRA_SILVA_JUNIOR.pdf.txt4fad23369006832665596681544f38c3MD52THUMBNAILLEONARDO_BEZERRA_SILVA_JUNIOR.pdf.jpgLEONARDO_BEZERRA_SILVA_JUNIOR.pdf.jpgGenerated Thumbnailimage/jpeg1308https://ri.ufs.br/jspui/bitstream/riufs/3335/3/LEONARDO_BEZERRA_SILVA_JUNIOR.pdf.jpga79f8cc6c5fd3d993ecb92cac80252ddMD53ORIGINALLEONARDO_BEZERRA_SILVA_JUNIOR.pdfapplication/pdf2204448https://ri.ufs.br/jspui/bitstream/riufs/3335/1/LEONARDO_BEZERRA_SILVA_JUNIOR.pdfd3f54ec490156f7e95ad05b5f9b5d0f9MD51riufs/33352017-11-24 21:39:27.508oai:ufs.br:riufs/3335Repositório InstitucionalPUBhttps://ri.ufs.br/oai/requestrepositorio@academico.ufs.bropendoar:2017-11-25T00:39:27Repositório Institucional da UFS - Universidade Federal de Sergipe (UFS)false
dc.title.por.fl_str_mv Investigando a refatoração automática de software baseada em algoritmos de otimização multiobjetivos
title Investigando a refatoração automática de software baseada em algoritmos de otimização multiobjetivos
spellingShingle Investigando a refatoração automática de software baseada em algoritmos de otimização multiobjetivos
Silva Júnior, Leonardo Bezerra
Computação
Engenharia de software
Software
Refatoração
Algoritmos de computador
Framework
Engenharia de software baseada em busca
NSGA-II
MOPSO
Software Enginnering
Search-Based Software Engineering
Refactoring
Particle
Swarm Optimization
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
title_short Investigando a refatoração automática de software baseada em algoritmos de otimização multiobjetivos
title_full Investigando a refatoração automática de software baseada em algoritmos de otimização multiobjetivos
title_fullStr Investigando a refatoração automática de software baseada em algoritmos de otimização multiobjetivos
title_full_unstemmed Investigando a refatoração automática de software baseada em algoritmos de otimização multiobjetivos
title_sort Investigando a refatoração automática de software baseada em algoritmos de otimização multiobjetivos
author Silva Júnior, Leonardo Bezerra
author_facet Silva Júnior, Leonardo Bezerra
author_role author
dc.contributor.author.fl_str_mv Silva Júnior, Leonardo Bezerra
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/4711374324516507
dc.contributor.advisor1.fl_str_mv Silva, Leila Maciel de Almeida e
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/0928395859437822
contributor_str_mv Silva, Leila Maciel de Almeida e
dc.subject.por.fl_str_mv Computação
Engenharia de software
Software
Refatoração
Algoritmos de computador
Framework
Engenharia de software baseada em busca
NSGA-II
MOPSO
topic Computação
Engenharia de software
Software
Refatoração
Algoritmos de computador
Framework
Engenharia de software baseada em busca
NSGA-II
MOPSO
Software Enginnering
Search-Based Software Engineering
Refactoring
Particle
Swarm Optimization
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
dc.subject.eng.fl_str_mv Software Enginnering
Search-Based Software Engineering
Refactoring
Particle
Swarm Optimization
dc.subject.cnpq.fl_str_mv CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
description Refactoring is a process that aims to change the code without changing the visible behavior and is used to correct structural problems in software, arising from unplanned maintenance or an unstructured development process. The mechanisms behind the refactoring process, however, are relatively complex and dangerous if done manually (for each refactoring is necessary to evaluate a number of pre and post-conditions to ensure that the behavior is not changed). Many current development tools facilitate the refactorings usage, but in a semiautomatic way, so that the programmer must detect the need for a specific refactoring. New techniques have emerged in an effort to approximate the software engineering to other engineerings with respect to process automation. In this context, the application of search algorithms arises as a means to provide support to software maintenance by automatically applying refactorings. This work fits in this context, Search-Based Software Refactoring, and investigates in detail the topic, including the proposition of a specific algorithm for the area, entitled MultiObjective Particle Swarm Optimization with Path Relinking (MOPSOPR). An open source framework which enables the search and automatic application of refactoring sequences has also been proposed. This framework allows exploration of the problem of automatic refactoring through various optimization algorithms. In particular, in this msc dissertation, the framework is used to enable comparative analysis of the proposed algorithm with the most used algorithm in the literature of this subject, the Non-Dominated Sorting Genetic Algorithm-II (NSGA-II). Several experiments were conducted, which included real-world softwares. Despite showing some positive results, the overall assessment does not indicate a unanimous superiority of the proposed algorithm compared to the NSGA-II in several experiments. However, the study revealed interesting research frontiers to be explored in future work.
publishDate 2014
dc.date.issued.fl_str_mv 2014-09-19
dc.date.accessioned.fl_str_mv 2017-09-26T11:34:17Z
dc.date.available.fl_str_mv 2017-09-26T11:34:17Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv SILVA JÚNIOR, Leonardo Bezerra. Investigando a refatoração automática de software baseada em algoritmos de otimização multiobjetivos. 2014. 118 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Sergipe, São Cristóvão, 2014.
dc.identifier.uri.fl_str_mv https://ri.ufs.br/handle/riufs/3335
identifier_str_mv SILVA JÚNIOR, Leonardo Bezerra. Investigando a refatoração automática de software baseada em algoritmos de otimização multiobjetivos. 2014. 118 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Sergipe, São Cristóvão, 2014.
url https://ri.ufs.br/handle/riufs/3335
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Federal de Sergipe
dc.publisher.program.fl_str_mv Pós-Graduação em Ciência da Computação
dc.publisher.initials.fl_str_mv UFS
dc.publisher.country.fl_str_mv BR
publisher.none.fl_str_mv Universidade Federal de Sergipe
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFS
instname:Universidade Federal de Sergipe (UFS)
instacron:UFS
instname_str Universidade Federal de Sergipe (UFS)
instacron_str UFS
institution UFS
reponame_str Repositório Institucional da UFS
collection Repositório Institucional da UFS
bitstream.url.fl_str_mv https://ri.ufs.br/jspui/bitstream/riufs/3335/2/LEONARDO_BEZERRA_SILVA_JUNIOR.pdf.txt
https://ri.ufs.br/jspui/bitstream/riufs/3335/3/LEONARDO_BEZERRA_SILVA_JUNIOR.pdf.jpg
https://ri.ufs.br/jspui/bitstream/riufs/3335/1/LEONARDO_BEZERRA_SILVA_JUNIOR.pdf
bitstream.checksum.fl_str_mv 4fad23369006832665596681544f38c3
a79f8cc6c5fd3d993ecb92cac80252dd
d3f54ec490156f7e95ad05b5f9b5d0f9
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFS - Universidade Federal de Sergipe (UFS)
repository.mail.fl_str_mv repositorio@academico.ufs.br
_version_ 1793351131722678272