PACCS uma ferramenta para detecção proativa e resolução colaborativa de conflitos de código fonte
Arquivos
Data de defesa
Autor(a)
Orientador(a)
Coorientador(a)
Título do periódico
ISSN
Título do volume
Nome da instituição
Departamento
Programa
Agência de fomento
Em desenvolvimento de software colaborativo, desenvolvedores compartilham código fonte e modificam partes deste código em paralelo, visando aumentar a produtividade. Para isso, times de desenvolvimento, tipicamente globalmente distribuídos, fazem uso de sistemas de controle de versão (SCV), os quais são responsáveis por versionar o código fonte e reconciliar as alterações conflitantes realizadas pelos desenvolvedores em paralelo. Em geral, cada desenvolvedor possui uma cópia local dos arquivos do código fonte do repositório, podendo realizar qualquer tipo modificação e tendo que posteriormente integrar a sua versão local do código fonte com as alteradas pelos outros membros do time de desenvolvimento. O problema é que usualmente os sistemas de controle de versão (por exemplo, GIT e SVN) não dão suporte a detecção antecipada dos conflitos, nem auxiliam os desenvolvedores na resolução dos mesmos. Na prática, um conflito trata-se de alterações divergentes realizadas em um mesmo trecho de código em paralelo por diferentes desenvolvedores. Consequentemente, detectar e resolver conflitos passam a ser duas atividades altamente propensa a erros e que exige bastante esforço do desenvolvedor. Para explorar esta problemática, este trabalho propõe o PACCS, uma ferramenta capaz de: (1) detectar proativamente conflitos; (2) analisar a propagação de conflitos; (3) identificar conflitos sintáticos e semânticos; (4) resolver automaticamente conflitos detectados; (5) apoiar os desenvolvedores na resolução colaborativa dos conflitos; e (6) checar as integrações realizadas e submetidas ao repositório de acordo um conjunto de regras. A ferramenta desenvolvida abordará os requisitos citados anteriormente e possui duas partes: o lado cliente (plugin para o eclipse) e o lado server (gerenciador de alterações entre workspaces). Após a construção da ferramenta será efetuado um comparativo entre desenvolvedores que utilizam a ferramenta versus os que não utilizaram, objetivando aferir as vantagens ou desvantagens da ferramenta. Os resultados demonstraram que (1) ao contrário do que a literatura prega, VCS centralizados tendem produzir um código fonte mais próximo do desejado e (2) a abordagem colaborativa pode ser mais eficiente e necessitar de menos esforço na resolução de conflitos.
