Banca de DEFESA: MATHEUS BARBOSA DE OLIVEIRA

Uma banca de DEFESA de MESTRADO foi cadastrada pelo programa.
DISCENTE : MATHEUS BARBOSA DE OLIVEIRA
DATA : 23/02/2022
HORA: 09:00
LOCAL: Virtual
TÍTULO:

Detecção de conflitos semânticos via análise estática de 
subistituição de atribuição


PALAVRAS-CHAVES:

Substituir atribuição, conflitos de integração de código, 
desenvolvimento colaborativo.


PÁGINAS: 86
RESUMO:

O processo de desenvolvimento de software atual, exceto em casos especiais, 
é feito de forma colaborativa. Na medida que novos requisitos são 
levantados, novas tarefas são definidas e alocadas a desenvolvedores 
diferentes. Os desenvolvedores, no que lhes concerne, adicionam suas 
modificações em repositórios ou versões separadas e isoladas do código, e 
posteriormente essas modificações precisam ser integradas em um repositório 
ou versão central. Esse processo de integração de código é propenso a 
erros, especialmente se as alterações em diferentes ramos entrarem em 
conflito.
Alguns desses conflitos são mais simples e podem ser detectados pelas 
ferramentas atuais de controle de versão como o Git, no entanto, ainda 
necessitam de intervenção humana para resolvê-los, o que afeta a 
produtividade da equipe. Mas esse não é o único problema, existem também os 
conflitos semânticos que requerem a compreensão do comportamento do 
software, que está além dos recursos da maioria das ferramentas de 
mesclagem existentes. Isso faz com que esses conflitos dificilmente sejam 
percebidos por revisões ou detectados em testes e chegam até o usuário 
final como defeito no software.
Esse tipo de conflito ocorre quando, no código integrado, as mudanças 
introduzidas pela versão de um dos desenvolvedores interferem de forma 
inesperada com as mudanças introduzidas pela versão de outro 
desenvolvedor,  fazendo  com  o  que  um  contrato  pretendido  por  uma   
das versões deixe de ser cumprido. Sendo assim, se fazem necessárias 
ferramentas que possam detectar conflitos desse tipo no processo de 
integração, de modo a evitar bugs e facilitar a resolução dos mesmos.
Nesse sentido, esse trabalho propõe uma análise de substituição de 
atribuição (Override an Assignment (OA)), que visa detectar interferências 
entre as alterações introduzidas por dois desenvolvedores diferentes, onde 
caminhos de gravação, sem atribuições intermediárias, para um alvo comum 
indicam interferência. Também foi realizada a implementação e avaliação de 
duas abordagens (interprocedural e intraprocedural) para a análise proposta.
Para avaliar as implementações da análise proposta foi usado um conjunto de 
72 cenários de integração de código, em que ambas versões integradas 
modificaram o mesmo método. Esses cenários foram extraídos de projetos 
open-source Java, minerados por uma ferramenta de mineração de cenários de 
integração do Github.


MEMBROS DA BANCA:
Externo à Instituição - EDUARDO FIGUEIREDO - UFMG
Externo à Instituição - MARCIO DE MEDEIROS RIBEIRO
Presidente - 1274550 - PAULO HENRIQUE MONTEIRO BORBA
Notícia cadastrada em: 10/02/2022 14:16
SIGAA | Superintendência de Tecnologia da Informação (STI-UFPE) - (81) 2126-7777 | Copyright © 2006-2024 - UFRN - sigaa09.ufpe.br.sigaa09