Improving the search for refactoring opportunities on object-oriented and aspect-oriented software

Detalhes bibliográficos
Autor(a) principal: Piveta, Eduardo Kessler
Data de Publicação: 2009
Tipo de documento: Tese
Idioma: eng
Título da fonte: Biblioteca Digital de Teses e Dissertações da UFRGS
Texto Completo: http://hdl.handle.net/10183/15651
Resumo: Refatoração é o processo de melhorar o projeto de sistemas de software sem modificar seu comportamento externamente observável. O processo de refatoração pode auxiliar a incrementalmente melhorar a qualidade de software de um sistema através da aplicação de transformações que preservam comportamento chamadas de padrões de refatoração. O principal objetivo da pesquisa que esta tese descreve é prover um processo detalhado para refatoração, incluindo mecanismos para (i) seleção e criação de modelos de qualidade, padrões de refatoração e funções heurísticas, (ii) a busca e priorização de oportunidades de refatoração, (iii) a avaliação dos efeitos da refatoração na qualidade de software e (iv) a análise de vantagens e desvantagens e a aplicação de padrões de refatoração. Para exemplificar como os mecanismos propostos funcionam e como o processo pode ser usado, diferentes estudos de caso são usados ao longo da tese. A seleção dos padrões de refatoração, dos modelos de qualidade e das funções heurísticas são exemplificados para software orientado a objetos, bem como os mecanismos de busca e priorização. A avaliação dos efeitos da refatoração na qualidade de software, a análise de vantagens e desvantagens e a aplicação de padrões de refatoração são discutidos no contexto de programação orientada a aspectos. Além da definição de um processo de refatoração, um conjunto adicional de contribuições desta tese são: (i) a definição de uma abordagem para a seleção e ranking de padrões de refatoração baseada no AHP (Analytic Hierarchy Process), (ii) uma abordagem para reduzir o espaço de busca para oportunidades de refatoração ao manipular refatorações sucessivas, (iii) a definição de mecanismos de busca para oportunidades de refatoração, (iv) uma abordagem para avaliar os efeitos de refatoração na qualidade de software, (v) um catálogo de problemas encontrados em software orientado a aspectos e seus padrões de refatoração associados, e também um conjunto de recomendações para evitar estes problemas e (vi) um estudo de métricas orientadas a aspectos, incluindo a sua definição formal, avaliação analítica e interpretação de dados.
id URGS_935d899ca2e77ce22b8391d9d199f6d7
oai_identifier_str oai:www.lume.ufrgs.br:10183/15651
network_acronym_str URGS
network_name_str Biblioteca Digital de Teses e Dissertações da UFRGS
repository_id_str 1853
spelling Piveta, Eduardo KesslerPrice, Roberto TomPimenta, Marcelo Soares2009-04-25T04:12:49Z2009http://hdl.handle.net/10183/15651000688448Refatoração é o processo de melhorar o projeto de sistemas de software sem modificar seu comportamento externamente observável. O processo de refatoração pode auxiliar a incrementalmente melhorar a qualidade de software de um sistema através da aplicação de transformações que preservam comportamento chamadas de padrões de refatoração. O principal objetivo da pesquisa que esta tese descreve é prover um processo detalhado para refatoração, incluindo mecanismos para (i) seleção e criação de modelos de qualidade, padrões de refatoração e funções heurísticas, (ii) a busca e priorização de oportunidades de refatoração, (iii) a avaliação dos efeitos da refatoração na qualidade de software e (iv) a análise de vantagens e desvantagens e a aplicação de padrões de refatoração. Para exemplificar como os mecanismos propostos funcionam e como o processo pode ser usado, diferentes estudos de caso são usados ao longo da tese. A seleção dos padrões de refatoração, dos modelos de qualidade e das funções heurísticas são exemplificados para software orientado a objetos, bem como os mecanismos de busca e priorização. A avaliação dos efeitos da refatoração na qualidade de software, a análise de vantagens e desvantagens e a aplicação de padrões de refatoração são discutidos no contexto de programação orientada a aspectos. Além da definição de um processo de refatoração, um conjunto adicional de contribuições desta tese são: (i) a definição de uma abordagem para a seleção e ranking de padrões de refatoração baseada no AHP (Analytic Hierarchy Process), (ii) uma abordagem para reduzir o espaço de busca para oportunidades de refatoração ao manipular refatorações sucessivas, (iii) a definição de mecanismos de busca para oportunidades de refatoração, (iv) uma abordagem para avaliar os efeitos de refatoração na qualidade de software, (v) um catálogo de problemas encontrados em software orientado a aspectos e seus padrões de refatoração associados, e também um conjunto de recomendações para evitar estes problemas e (vi) um estudo de métricas orientadas a aspectos, incluindo a sua definição formal, avaliação analítica e interpretação de dados.Refactoring is the process of improving the design of software systems without changing their externally observable behaviour. Refactoring can help to incrementally improve the quality of a software system through the application of behavioural preserving transformations called refactoring patterns. The main goal of the research this thesis reports is to provide a detailed process for refactoring, including mechanism for (i) the selection and creation of quality models, the selection of refactoring patterns, and the creation and use of heuristic rules, (ii) the search for refactoring opportunities and prioritisation, (iii) the assessment of the effects of refactoring on software quality, and (iv) the trade-off analysis and the application of refactoring patterns. To exemplify how the approach works and how the process can be used, different case studies are being used throughout the thesis. The selection of refactoring patterns, quality models and heuristic rules, and the search and prioritisation mechanisms are exemplified for object-oriented software. The assessment of refactoring effects on software quality, the trade-off analysis and the application of refactoring patterns are discussed in the context of aspect-oriented programming. Besides the definition of a refactoring process, a set of additional contributions of this thesis are (i) the definition of an approach for the selection and ranking of refactoring patterns, (ii) an approach for reducing the search space for refactoring opportunities when dealing with successive refactoring, (iii) the definition of search mechanisms for refactoring opportunities, (iv) an approach to evaluate the effects of refactoring on software quality, (v) a catalogue of shortcomings in aspect-oriented software and their related refactoring patterns, and (vi) an study of metrics for aspect-oriented software, including their formal definition, analytical evaluation and data interpretation.application/pdfengDesenvolvimento : SoftwareRefatoraçãoSoftware orientado : ObjetosRefatoraçãoDesenvolvimento de software orientado a aspectosEvolução de software refactoringAspect-oriented software developmentSoftware evolutionImproving the search for refactoring opportunities on object-oriented and aspect-oriented softwareMelhorando a busca por oportunidades de refatoração em software orientado a objetos e orientado a aspectos info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisUniversidade Federal do Rio Grande do SulInstituto de InformáticaPrograma de Pós-Graduação em ComputaçãoPorto Alegre, BR-RS2009doutoradoinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFRGSinstname:Universidade Federal do Rio Grande do Sul (UFRGS)instacron:UFRGSORIGINAL000688448.pdf000688448.pdfTexto completo (inglês)application/pdf1977835http://www.lume.ufrgs.br/bitstream/10183/15651/1/000688448.pdf3f48bf6115ae8464d3f68760944a975cMD51TEXT000688448.pdf.txt000688448.pdf.txtExtracted Texttext/plain557762http://www.lume.ufrgs.br/bitstream/10183/15651/2/000688448.pdf.txtf9316c3cec563509a57aefde1bdbb6d6MD52THUMBNAIL000688448.pdf.jpg000688448.pdf.jpgGenerated Thumbnailimage/jpeg1062http://www.lume.ufrgs.br/bitstream/10183/15651/3/000688448.pdf.jpg4cfd285fdeec72d56724f20bfe0714cbMD5310183/156512021-05-07 04:57:09.450275oai:www.lume.ufrgs.br:10183/15651Biblioteca Digital de Teses e Dissertaçõeshttps://lume.ufrgs.br/handle/10183/2PUBhttps://lume.ufrgs.br/oai/requestlume@ufrgs.br||lume@ufrgs.bropendoar:18532021-05-07T07:57:09Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)false
dc.title.pt_BR.fl_str_mv Improving the search for refactoring opportunities on object-oriented and aspect-oriented software
dc.title.alternative.pt.fl_str_mv Melhorando a busca por oportunidades de refatoração em software orientado a objetos e orientado a aspectos
title Improving the search for refactoring opportunities on object-oriented and aspect-oriented software
spellingShingle Improving the search for refactoring opportunities on object-oriented and aspect-oriented software
Piveta, Eduardo Kessler
Desenvolvimento : Software
Refatoração
Software orientado : Objetos
Refatoração
Desenvolvimento de software orientado a aspectos
Evolução de software refactoring
Aspect-oriented software development
Software evolution
title_short Improving the search for refactoring opportunities on object-oriented and aspect-oriented software
title_full Improving the search for refactoring opportunities on object-oriented and aspect-oriented software
title_fullStr Improving the search for refactoring opportunities on object-oriented and aspect-oriented software
title_full_unstemmed Improving the search for refactoring opportunities on object-oriented and aspect-oriented software
title_sort Improving the search for refactoring opportunities on object-oriented and aspect-oriented software
author Piveta, Eduardo Kessler
author_facet Piveta, Eduardo Kessler
author_role author
dc.contributor.author.fl_str_mv Piveta, Eduardo Kessler
dc.contributor.advisor1.fl_str_mv Price, Roberto Tom
dc.contributor.advisor-co1.fl_str_mv Pimenta, Marcelo Soares
contributor_str_mv Price, Roberto Tom
Pimenta, Marcelo Soares
dc.subject.por.fl_str_mv Desenvolvimento : Software
Refatoração
Software orientado : Objetos
topic Desenvolvimento : Software
Refatoração
Software orientado : Objetos
Refatoração
Desenvolvimento de software orientado a aspectos
Evolução de software refactoring
Aspect-oriented software development
Software evolution
dc.subject.eng.fl_str_mv Refatoração
Desenvolvimento de software orientado a aspectos
Evolução de software refactoring
Aspect-oriented software development
Software evolution
description Refatoração é o processo de melhorar o projeto de sistemas de software sem modificar seu comportamento externamente observável. O processo de refatoração pode auxiliar a incrementalmente melhorar a qualidade de software de um sistema através da aplicação de transformações que preservam comportamento chamadas de padrões de refatoração. O principal objetivo da pesquisa que esta tese descreve é prover um processo detalhado para refatoração, incluindo mecanismos para (i) seleção e criação de modelos de qualidade, padrões de refatoração e funções heurísticas, (ii) a busca e priorização de oportunidades de refatoração, (iii) a avaliação dos efeitos da refatoração na qualidade de software e (iv) a análise de vantagens e desvantagens e a aplicação de padrões de refatoração. Para exemplificar como os mecanismos propostos funcionam e como o processo pode ser usado, diferentes estudos de caso são usados ao longo da tese. A seleção dos padrões de refatoração, dos modelos de qualidade e das funções heurísticas são exemplificados para software orientado a objetos, bem como os mecanismos de busca e priorização. A avaliação dos efeitos da refatoração na qualidade de software, a análise de vantagens e desvantagens e a aplicação de padrões de refatoração são discutidos no contexto de programação orientada a aspectos. Além da definição de um processo de refatoração, um conjunto adicional de contribuições desta tese são: (i) a definição de uma abordagem para a seleção e ranking de padrões de refatoração baseada no AHP (Analytic Hierarchy Process), (ii) uma abordagem para reduzir o espaço de busca para oportunidades de refatoração ao manipular refatorações sucessivas, (iii) a definição de mecanismos de busca para oportunidades de refatoração, (iv) uma abordagem para avaliar os efeitos de refatoração na qualidade de software, (v) um catálogo de problemas encontrados em software orientado a aspectos e seus padrões de refatoração associados, e também um conjunto de recomendações para evitar estes problemas e (vi) um estudo de métricas orientadas a aspectos, incluindo a sua definição formal, avaliação analítica e interpretação de dados.
publishDate 2009
dc.date.accessioned.fl_str_mv 2009-04-25T04:12:49Z
dc.date.issued.fl_str_mv 2009
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10183/15651
dc.identifier.nrb.pt_BR.fl_str_mv 000688448
url http://hdl.handle.net/10183/15651
identifier_str_mv 000688448
dc.language.iso.fl_str_mv eng
language eng
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.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações da UFRGS
instname:Universidade Federal do Rio Grande do Sul (UFRGS)
instacron:UFRGS
instname_str Universidade Federal do Rio Grande do Sul (UFRGS)
instacron_str UFRGS
institution UFRGS
reponame_str Biblioteca Digital de Teses e Dissertações da UFRGS
collection Biblioteca Digital de Teses e Dissertações da UFRGS
bitstream.url.fl_str_mv http://www.lume.ufrgs.br/bitstream/10183/15651/1/000688448.pdf
http://www.lume.ufrgs.br/bitstream/10183/15651/2/000688448.pdf.txt
http://www.lume.ufrgs.br/bitstream/10183/15651/3/000688448.pdf.jpg
bitstream.checksum.fl_str_mv 3f48bf6115ae8464d3f68760944a975c
f9316c3cec563509a57aefde1bdbb6d6
4cfd285fdeec72d56724f20bfe0714cb
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da UFRGS - Universidade Federal do Rio Grande do Sul (UFRGS)
repository.mail.fl_str_mv lume@ufrgs.br||lume@ufrgs.br
_version_ 1810085143563468800