Projetos de Pesquisa

 

Foto de perfil

Alessandro Fabricio Garcia

Ciências Exatas e da Terra

Ciência da Computação
  • restaura - refatoramento sequencial: teoria e apoio automatizado
  • Refatoramento é uma prática adotada por empresas de desenvolvimento para melhorar a qualidade estrutural de seus programas, além de garantir a longevidade de programas. Logo, empresas como Google, IBM e Microsoft têm explorado esta prática com objetivo de reduzir custos de manutenção. Entretanto, identificar quando é necessário refatorar o código e como aplicar o refatoramento são tarefas não triviais. Estudos evidenciam diversos efeitos indesejáveis ocasionados por refatoramentos equivocados, tais como a aceleração da degradação do programa. Portanto, desenvolvedores precisam de suporte não somente para identificar quando se refatorar, mas também para aplicar os refatoramentos. Para se identificar oportunidades de refatomentos, desenvolvedores podem utilizar os sintomas de degradação estrutural. Uma vez identificadas, eles precisam de suporte para refatorá-los a fim de minimizar ou remover esses sintomas. Pois, infelizmente, há evidência de que desenvolvedores refatoram código indisciplinadamente ou equivocadamente, o que pode aumentar a degradação estrutural. Consequentemente, eles se sentem desencorajados a refatorar. Para piorar a situação, eles precisam aplicar vários refatoramentos sequenciais, isto é, uma sequência de refatoramentos aplicados no mesmo elemento de código. Estudos relatam que o desenvolvedor pode refatorar o código de forma incompleta quando este requer um refatoramento sequencial para mitigar ou remover a degradação completamente. Entretanto, alguns refatoramentos são inviáveis de serem aplicados, prejudiciais à qualidade do programa ou insuficientes para garantir a melhoria da sua estrutura. Infelizmente, a literatura técnica não provê conhecimento e nem suporte à esta prática em escala industrial. De fato, pouco se sabe sobre como caracterizar um refatoramento sequencial, como ele ocorre na prática e quais os seus impactos para a qualidade estrutural. Em suma, essas e outras limitações da literatura vêm impedindo pesquisadores de prover suporte para os desenvolvedores aplicarem refatoramento sequencial. Esse cenário nos motivou a investigar como apoiar o desenvolvedor na prática de refatoramento sequencial. Para isso, o projeto ReSTaurA (Refatoramento Sequencial: Teoria e Suporte Automatizado) objetiva : (i) prover um arcabouço conceitual para refatoramentos sequenciais e conceitos relacionados; (ii) desenvolver uma teoria que explique como desenvolvedores realizam refatoramentos sequenciais na prática; (iii) propor heurísticas para identificação automatizada de refatoramentos sequencias existentes e um programa; (iv) avaliar o impacto em qualidade de refatoramentos sequenciais; (v) avaliar e classificar os refatoramentos sequenciais como positivos ou negativos com base no seu impacto em sintomas de degradação estrutural e (vi) propor um sistema de recomendação para a realização de refatoramentos sequenciais. Através dos resultados e, em particular, do uso do sistema recomendador proposto, os desenvolvedores poderão realizar refatoramentos sequenciais utilizando as novas abordagens propostas, melhorando a qualidade de seus programas. Ao manter a pesquisa alinhada com as necessidades da indústria, os resultados devem ser úteis e aplicáveis para empresas brasileiras adotarem tais técnicas no desenvolvimento e manutenção de novos sistemas de software, bem como na evolução de sistemas existentes. Espera-se ainda a publicações de artigos científicos em conferências e periódicos relevantes na área de Engenharia de Software. Adicionalmente, durante o projeto, os membros do projeto estarão envolvidos em parcerias industriais internacionais como Amazon, Microsoft e Google, além de nacionais como Instituto Tecgraf, Petrobras, Minds at Work, IBM, NTI/UFAL, Clip-Meyer, GM5, SEFAZ/AM e FPF, propiciando oportunidades de transferência de conhecimento e tecnologia. A equipe também conta com parceiros acadêmicos nacionais (UFCG, UFAL e UFAM) e internacionais (UCLA e UCI).
  • Pontifícia Universidade Católica do Rio de Janeiro - RJ - Brasil
  • Mon Feb 18 00:00:00 BRT 2019-Tue Feb 28 00:00:00 BRT 2023