Pesquisa

Events Events

Back

Ciência da Computação promove defesa de dissertação nesta quarta-feira (2)

A defesa acontece no auditório do CIn, às 11h

O Programa de Pós-Graduação em Ciência da Computação da UFPE promove, nesta quarta-feira (2), às 11h, no auditório do Centro de Informática (CIn), a defesa da tese “Should We Replace Our Merge Tools?”. Desenvolvida pelo pesquisador Guilherme José de Carvalho Cavalcanti, o trabalho foi orientado pelo professor Paulo Henrique Monteiro Borba. 

A banca examinadora será composta pelos professores Marcelo Bezerra d'Amorim (UFPE/CIn), Leopoldo Motta Teixeira (UFPE/CIn), Breno Alexandro Ferreira de Miranda (UFPE/CIn), Leonardo Gresta Paulino Murta (UFF/Instituto de Computação) e Sven Apel (Saarland University/Saarland Informatics Campus). 

Resumo

Conflitos de integração frequentemente ocorrem quando os desenvolvedores alteram simultaneamente os mesmos artefatos de código. Enquanto que as ferramentas de integração não estruturadas, que representam o estado da prática (por exemplo, git merge), tentam resolver conflitos automaticamente baseadas em semelhança textual, as ferramentas de integração semiestruturada e estruturada tentam ir além explorando a estrutura sintática e a semântica dos artefatos envolvidos. Estudos anteriores comparam as estratégias semiestruturada e estruturada com a não estruturada em relação ao número de conflitos reportados, mostrando, para a maioria dos projetos e situações de integração, uma redução a favor das estratégias semiestruturada e estruturada. Essa evidência, no entanto, pode não ser suficiente para justificar a adoção industrial de estratégias de integração avançadas, como a semiestruturada e a estruturada. O problema é que os estudos anteriores não investigam se a redução observada no número de conflitos realmente leva à redução do esforço de integração (Produtividade) sem impacto negativo na corretude do processo de integração (Qualidade). Além disso, não se sabe como a estratégia semiestruturada se compara com a estruturada. Para ajudar os desenvolvedores a decidir que tipo de ferramenta usar e entender melhor como as ferramentas de integração poderiam ser melhoradas, nós conduzimos dois estudos empíricos. No primeiro estudo, comparamos a integração não estruturada e a semiestruturada, identificando falsos positivos (conflitos incorretamente reportados por uma, mas não pela outra), e falsos negativos (conflitos reportados corretamente por uma, mas não reportados pela outra). Nossos resultados e análises complementares indicam que, em uma amostra de mais de 30.000 cenários de integração de 50 projetos de código aberto, o número de falsos positivos é significativamente reduzido ao usar a estratégia semiestruturada quando comparado à não estruturada. Também encontramos evidências de que seus falsos positivos são mais fáceis de analisar e resolver do que aqueles reportados pela não estruturada. No entanto, nós não encontramos evidências de que a integração semiestruturada leva a menos falsos negativos, e argumentamos que eles são mais difíceis de detectar e resolver dos que os falsos negativos da não estruturada. Motivados por essas descobertas, implementamos uma ferramenta de integração semiestruturada que combina ainda mais as duas abordagens para reduzir os falsos positivos e os falsos negativos da integração semiestruturada. Encontramos evidências de que a ferramenta aprimorada, quando comparada à não estruturada em nossa amostra, reduz o número de conflitos reportados pela metade, não tem falsos positivos adicionais, tem pelo menos 8% de falsos negativos a menos e não é proibitivamente mais lenta. No segundo estudo, comparamos as integrações semiestruturada e estruturada reproduzindo mais de 40.000 cenários de integração de mais de 500 projetos. Em particular, avaliamos com que frequência as duas estratégias reportam resultados diferentes, e, novamente, identificamos falsos positivos e falsos negativos. Nossos resultados mostram que as integrações semiestruturada e estruturada diferem em 24% dos cenários com conflitos. A estratégia semiestruturada reporta mais falsos positivos, enquanto a estruturada tem mais falsos negativos. Finalmente, observamos que adaptar uma ferramenta semiestruturada para resolver um determinado tipo de conflito torna-a ainda mais próxima à integração estruturada. No geral, nossas descobertas sugerem que a estratégia semiestruturada é uma melhor alternativa à não estruturada para desenvolvedores conservadores, possuindo ganhos significativos com um comportamento mais próximo a ferramentas não estruturadas do que ferramentas estruturadas. Além disso, os usuários podem relutar em adotar a estratégia estruturada por causa do seu impacto no desempenho e sua tendência a falsos negativos. Dessa forma, ao escolher entre uma ferramenta semiestruturada e estruturada, a semiestruturada seria mais apropriada para desenvolvedores que não são muito preocupados com seus falsos positivos extras. Finalmente, melhorias em ferramentas semiestruturadas, ou até mesmo uma combinação com a estratégia estruturada, pode ser o caminho para um ponto ideal na relação entre estrutura e precisão em ferramentas de integração não semânticas.

Mais informações
Programa de Pós-Graduação em Ciência da Computação 
(81) 2126.8430

Date of last modification: 30/09/2019, 14:50