Suporte para refatorização automática de lógica de negócio baseada em modelos
Autor(a) principal: | |
---|---|
Data de Publicação: | 2017 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
Texto Completo: | https://hdl.handle.net/1822/79855 |
Resumo: | Dissertação de mestrado em Engenharia Informática |
id |
RCAP_3ce8f64906f308bca58e13d0518208b5 |
---|---|
oai_identifier_str |
oai:repositorium.sdum.uminho.pt:1822/79855 |
network_acronym_str |
RCAP |
network_name_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository_id_str |
7160 |
spelling |
Suporte para refatorização automática de lógica de negócio baseada em modelosRefactoringProgram slicingCode complexity metricsLow-codeOutSystemsGraph theoryRefatorizaçãoProgram slicingMétricas de complexidadeLow-codeOutSystemsTeoria de GrafosEngenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaDissertação de mestrado em Engenharia InformáticaSoftware’s structure profoundly affects its development and maintenance costs. Poor software’s structure may lead to well-known design flaws, such as large modules or long methods. A possible approach to reduce a module’s complexity is the Extract Method refactoring technique. This technique allows the decomposition of a large and complex method into smaller and simpler ones, while reducing the original method’s size and improving its readability and comprehension. Nowadays, it’s almost mandatory that Integrated Development Environments (IDEs) support this and other refactoring techniques. Despite the wide availability of the extract method operation on IDEs, the identification of portions of code that are worthwhile to refactor still relies mostly on developer knowledge and expertise. Thus, the purpose of this dissertation is to empower the OutSystems platform with a system that is able to analyse modules complexity and automatically suggest Extract Method refactoring opportunities.A estrutura das aplicações de software afeta significativamente os seus custos de desenvolvimento e de manutenção. Uma fraca estruturação do código pode levar a problemas de design, como é o exemplo de módulos de grande dimensão, ou Long Methods. Uma das abordagens para reduzir a complexidade de módulos é a aplicação da técnica de refatorização Extract Method. Esta técnica permite extrair comportamento de um método complexo em métodos mais simples, reduzindo o tamanho do método original e aprimorando a sua leitura e compreensão. Hoje em dia, é quase imperativo que os IDEs suportem esta e outras técnicas de refatorização. Apesar dos IDEs disponibilizarem a operação de extração de métodos, a identificação de secções do código potencialmente úteis para refatorizar continua a ser uma operação que depende do conhecimento e experiência do programador. Assim, o objetivo desta dissertação é prover a plataforma OutSystems de um sistema capaz de analisar a complexidade de módulos e automaticamente sugerir oportunidades de refatorização Extract Method.Ribeiro, António NestorNunes, David VarelaUniversidade do MinhoFernandes, Tiago Fernando Santos Braga2017-12-282017-12-28T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://hdl.handle.net/1822/79855por202312488info:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-12-09T01:19:46Zoai:repositorium.sdum.uminho.pt:1822/79855Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T18:55:15.397689Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse |
dc.title.none.fl_str_mv |
Suporte para refatorização automática de lógica de negócio baseada em modelos |
title |
Suporte para refatorização automática de lógica de negócio baseada em modelos |
spellingShingle |
Suporte para refatorização automática de lógica de negócio baseada em modelos Fernandes, Tiago Fernando Santos Braga Refactoring Program slicing Code complexity metrics Low-code OutSystems Graph theory Refatorização Program slicing Métricas de complexidade Low-code OutSystems Teoria de Grafos Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
title_short |
Suporte para refatorização automática de lógica de negócio baseada em modelos |
title_full |
Suporte para refatorização automática de lógica de negócio baseada em modelos |
title_fullStr |
Suporte para refatorização automática de lógica de negócio baseada em modelos |
title_full_unstemmed |
Suporte para refatorização automática de lógica de negócio baseada em modelos |
title_sort |
Suporte para refatorização automática de lógica de negócio baseada em modelos |
author |
Fernandes, Tiago Fernando Santos Braga |
author_facet |
Fernandes, Tiago Fernando Santos Braga |
author_role |
author |
dc.contributor.none.fl_str_mv |
Ribeiro, António Nestor Nunes, David Varela Universidade do Minho |
dc.contributor.author.fl_str_mv |
Fernandes, Tiago Fernando Santos Braga |
dc.subject.por.fl_str_mv |
Refactoring Program slicing Code complexity metrics Low-code OutSystems Graph theory Refatorização Program slicing Métricas de complexidade Low-code OutSystems Teoria de Grafos Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
topic |
Refactoring Program slicing Code complexity metrics Low-code OutSystems Graph theory Refatorização Program slicing Métricas de complexidade Low-code OutSystems Teoria de Grafos Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática |
description |
Dissertação de mestrado em Engenharia Informática |
publishDate |
2017 |
dc.date.none.fl_str_mv |
2017-12-28 2017-12-28T00:00:00Z |
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.uri.fl_str_mv |
https://hdl.handle.net/1822/79855 |
url |
https://hdl.handle.net/1822/79855 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.relation.none.fl_str_mv |
202312488 |
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:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação instacron:RCAAP |
instname_str |
Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
instacron_str |
RCAAP |
institution |
RCAAP |
reponame_str |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
collection |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) |
repository.name.fl_str_mv |
Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação |
repository.mail.fl_str_mv |
|
_version_ |
1799132337624055808 |