Resumo:
A integração de arquivos fontes desempenha um papel fundamental em várias tarefas de desenvolvimento de software como, por exemplo, durante a acomodação de novas funcionalidades desenvolvidas, ou mesmo na reconciliação de trechos de código conflitantes alterados em paralelo por times distribuídos de desenvolvimento de software. Os conflitos surgem quando trechos de código recebem modificações divergentes implementadas em paralelo por diferentes desenvolvedores, afetando a estrutura e/ou semântica do código. Tais modificações podem afetar um mesmo trecho de código (conflito direto) ou trechos diferentes (conflito indireto). Embora a temática de integração de arquivos fontes tenham sido amplamente investigada e explorada na indústria e academia nas últimas décadas, a detecção e a resolução de conflitos são ainda consideradas tarefas altamente propensas a erros e que exigem um alto esforço de desenvolvedores. Essa pesquisa, portanto, propõe a ProMerge, a qual é uma abordagem para auxiliar desenvolvedores na detecção e resolução proativa de conflitos diretos e indiretos gerados à medida que trechos de código são modificados em paralelo. A ProMerge introduz o conceito de histórico de contexto de conflitos entre trechos de código, detecta conflitos em branches diferentes (ou não), auxilia desenvolvedores na avaliação da severidade de conflitos, bem como suporta o conceito de committing time. A ProMerge foi projetada a partir dos resultados obtidos de um mapeamento sistemático da literatura, o qual investigou duas décadas de trabalhos publicados sobre o tema de integração de software e explorou nove questões de pesquisa. A ProMerge foi implementada como um plug-in da plataforma Eclipse. A abordagem proposta foi avaliada através de um experimento controlado com trinta e dois profissionais da indústria, as quais executaram dez tarefas experimentais dividida em dois cenários para avaliar o esforço de integração, a corretude das integrações, bem como a taxa de erro ao realizar as integrações, gerando trezentos e vinte cenários de avaliação. Os resultados, suportados por testes estatísticos, indicam que a taxa de corretude encontrada foi superior em relação à abordagem tradicional e por fim, a taxa de erro encontrada na avaliação de todas as tarefas que integravam o experimento foi superior a abordagem tradicional. Além disso, uma avaliação qualitativa foi realizada, aplicando o questionário
TAM, para entender o grau de aceitação da abordagem proposta. No total, trinta e um participantes são profissionais da indústria e responderam ao questionário. Os resultados indicam que a utilização da ProMerge reduziu de maneira significativa o esforço (tempo) para a resolução das tarefas, as informações de contexto geradas a partir da execução dos experimentos auxiliaram no melhor entendimento da taxa de erro e corretude. Por fim, a utilização da ProMerge contribuiu para a melhoria de desempenho dos desenvolvedores e na compreensão e aplicação dos novos conceitos implementados bem como para a geração de indicadores de desempenho e produtividade.