Pós-Graduação em Ciência da Computação – UFPE
Defesa de Dissertação de Mestrado Nº 2.098
Aluno: Vinícius de Oliveira Andrade
Orientadora: Profa. Flávia de Almeida Barros
Título: Sistema de Recomendação de Desenvolvedores Especialistas para
Projetos de Engenharia de Software: um Estudo de Caso
Data: 22/08/2023
Hora/Local: 14h às 16h – Virtual – Interessados em assistir entrar em contato com o aluno
Banca Examinadora:
Prof. Alexandre Cabral Mota (UFPE / Centro de Informática)
Prof. André Câmara Alves do Nascimento (UFRPE / Departamento de Computação)
Profa. Flavia de Almeida Barros (UFPE / Centro de Informática)
RESUMO:
Em projetos de desenvolvimento de software, a alocação eficiente de
desenvolvedores a tarefas específicas é de extrema importância, uma vez que
essa distribuição pode impactar diretamente o tempo de desenvolvimento e a
qualidade do produto final. Objetivando auxiliar os gestores, propomos aqui
um processo de recomendação de desenvolvedores para projetos e tarefas com
base no conhecimento acumulado por cada especialista (modelo orientado a
tópico). Nossa proposta adota uma estratégia personalizada de recomendação.
Aqui, o usuário do sistema é o gerente responsável pela alocação e os
desenvolvedores são vistos como os “itens” que serão recomendados. Assim, o
perfil (efêmero) do usuário será representado pela descrição da tarefa a
ser realizada no momento, e os desenvolvedores (“itens”) são representados
pela descrição dos trabalhos e atividades que cada um já realizou (dados históricos). Por fim,
adotamos a técnica de recomendação baseada em filtragem de conteúdo, que
analisa a similaridade entre tarefas a realizar (“perfil” do usuário) e os
dados históricos dos desenvolvedores. Essa configuração de estratégia e
técnica apresentou os melhores resultados nos testes exploratórios
realizados com diferentes abordagens. Foi implementado um sistema protótipo
para recomendação de especialistas no contexto de uma empresa de
desenvolvimento de software. Esse sistema, implementado em Python, conta
com três módulos: (1) Coleta de Informações, que recupera e pré-processa as
informações necessárias disponíveis na ferramenta de gerenciamento de
tarefas da empresa parceira; (2) Módulo de Recomendação, que analisa as
informações coletadas e recomenda os desenvolvedores mais adequados para
cada tarefa e projeto; e (3) Módulo de Gerenciamento de Alocação,
responsável por gerenciar os cadastros do sistema, registrando e mantendo o
controle das alocações de desenvolvedores a tarefas e projetos. As
tecnologias utilizadas são: Django, Jira, NLTK, Pandas e Scikit-learn. A
validação do protótipo foi realizada durante um período de dois meses de
uso, considerando um total de 191 recomendações de atividades. Os
resultados foram analisados observando-se quais desenvolvedores
recomendados pelo sistema foram de fato alocados pelo gerente para as
tarefas de entrada. O protótipo alcançou uma precisão de 65,13%, o que
indica que os resultados não são aleatórios, e que o sistema tem potencial
para melhorar o processo de alocação de desenvolvedores a tarefas,
facilitando a busca pelo profissional mais adequado para cada atividade.
Palavras-chave: Alocação de especialistas. Sistema de recomendação.
Engenharia de software.
Comentários desativados