Uma abordagem para a seleção de desenvolvedores baseada na reputação e esquecimento em projetos de software

Detalhes bibliográficos
Ano de defesa: 2022
Autor(a) principal: Magalhães, Nathan Manera lattes
Orientador(a): David, José Maria Nazar lattes
Banca de defesa: Dantas, Mario Antonio Ribeiro lattes, Sirqueira, Tássio Ferenzini Martins lattes
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Juiz de Fora (UFJF)
Programa de Pós-Graduação: Programa de Pós-graduação em Ciência da Computação
Departamento: ICE – Instituto de Ciências Exatas
País: Brasil
Palavras-chave em Português:
Área do conhecimento CNPq:
Link de acesso: https://doi.org/10.34019/ufjf/di/2022/00081
https://repositorio.ufjf.br/jspui/handle/ufjf/14193
Resumo: Tarefas de manutenção são essenciais para manter o pleno funcionamento de um software durante seu ciclo de vida. Porém, conforme um software evolui, seu código-fonte tende a tornar-se cada vez mais complexo e de difícil manutenção, tornando-se mais propício a apresentar defeitos ao usuário final. Com isso, escolher desenvolvedores apropriados para as tarefas de manutenção de software torna-se uma atividade também complexa, com alto consumo de tempo e suscetível a falhas de decisão quando realizada manualmente. Pois, para que uma escolha de desenvolvedores aptos às tarefas seja adequada, devem-se conhecer bem as expertises de cada candidato. Também é importante conhecer o quanto esses desenvolvedores têm trabalhado nos conhecimentos (expertises) em tecnologia exigidos pelas tarefas, sendo isso averiguado através de suas contribuições em plataformas de apoio ao desenvolvimento de software, tais como o GitHub, StackOverflow e TopCoder. Através dessas contribuições históricas, é possível estabelecer a reputação que os desenvolvedores possuem nas expertises trabalhadas como também verificar se esses conhecimentos não estão em desuso por longo tempo (esquecimento). A solução proposta deste trabalho foi desenvolvida com o intuito de apoiar a seleção de desenvolvedores para tarefas de manutenção de software considerando reputação e esquecimento destes nos conhecimentos de tecnologias em projetos de software. Para cada tarefa de software são listadas sugestões de desenvolvedores considerando reputação e esquecimento nos conhecimentos exigidos pela tarefa. Uma avaliação foi realizada para verificar a equivalência dessas sugestões com as atribuições históricas de desenvolvedores ocorridas em tarefas de projetos de software. Foram encontradas evidências a favor do uso da reputação e do esquecimento para o apoio na seleção de desenvolvedores em tarefas de manutenção de software.