23 jun 2021
09:00 Defesa de Doutorado Integralmente a distância
Tema
Manutenção de software baseada em predição: uma perspectiva de aprendizado de máquina
Aluno
Luiz Alberto Ferreira Gomes
Orientador / Docente
Orientador: Mário Lucio Côrtes / Coorientador: Ricardo da Silva Torres
Breve resumo
A manutenção de software em Free/Libre Open Source (FLOSS) baseia-se principalmente em informações extraídas de bug reports registrados em Bug Tracking Systems (BTS). Este tipo de sistema é considerado essencial na comunicação e colaboração em ambientes tanto em Closed Source Software (CSS) quanto em FLOSS. Este fato é particularmente verdadeiro para o último, um ambiente caracterizado por muitos usuários e desenvolvedores com diferentes especialidades, espalhados pelo mundo. Tais usuários e desenvolvedores interagem com os BTS através de bug reports, permitindo assim a comunicação com os responsáveis ​​pela manutenção do software. Os usuários devem então preencher um bug report, informando um título, uma descrição e um nível de severidade. Após concluírem o preenchimento, um membro da equipe de manutenção revisará as informações fornecidas, e aprovará ou rejeitará o bug report. Se o bug report for aprovado, o membro da equipe fornecerá mais informações, como a indicação da sua prioridade e a atribuição de um responsável para correção do bug. Neste cenário, a quantidade de bug reports em projetos FLOSS de grande e médio porte é frequentemente alta. A manipulação manual desse volume de bugs reports pode ser totalmente cansativa e sujeita a erros; e uma decisão errada pode afetar seriamente o planejamento das atividades de manutenção daquele projeto. Em razão desta dificuldade e da evidente importância das informações contidas nos bug reports para o planejamento da manutenção de FLOSS, tanto a indústria quanto a comunidade acadêmica vêm demonstrando bastante interesse neste problema, e muitas pesquisas têm sido realizadas nesta área. Esses esforços têm se baseado principalmente em técnicas tradicionais de Aprendizado de Máquina (AM) e Mineração de Texto (MT). Tais técnicas têm sido aplicadas com sucesso na solução de problemas reais em muitas áreas, incluindo aquelas relacionadas a BTS, como a atribuição automática do responsável para a correção do bug. Em um bug report, o nível de severidade é uma das variáveis ​​mais críticas para o planejamento de manutenção. Ele mede o impacto do bug na execução do sistema de software e no tempo necessário para um bug ser resolvido. Por outro lado, muitos estudos apontam que a maioria dos bugs que afetam adversamente a experiência do usuário e o planejamento de manutenção em versões de FLOSS são bugs de longa duração. Uma boa parte desses bugs de longa duração podem aborrecer os usuários por muito tempo e trazer dificuldades para a equipe de gestão planejar suas atividades, mesmo em pequena quantidade. Nesse contexto, nossa pesquisa se concentrou em duas áreas críticas, mencionadas anteriormente, relacionadas aos bug reports, fornecendo as seguintes contribuições: uma revisão dos esforços recentes de pesquisa sobre previsão automática de severidade de bugs que analisou mais de dez aspectos sobre experimentos publicados na literatura; um levantamento e caracterização da população de bugs de longa duração em seis projetos populares de FLOSS; e uma comparação entre cinco algoritmos de AM bem conhecidos na tarefa de previsão de bugs de longa duração nos projetos mencionados anteriormente. Além disso, em nossa última contribuição, propomos o uso do Bidirectional Encoder Representations from Transformers (BERT), uma rede de aprendizagem neural profunda de última geração para Natural Language Processing (NLP), como um extrator de features, em contraste com o método convencional Term Frequency-Inverse Document Frequency (TF-IDF), para fornecer features de entrada para os algoritmos de AM pré-selecionados na previsão de bugs de longa duração. Nossos esforços de pesquisa produziram uma visão detalhada e abrangente do estado-da-arte das abordagens existentes de previsão de nível de severidade, indicando que as tradicionais de AM e MT aplicadas em atributos textuais não estruturados dos bugs reports desempenharam um papel central nas abordagens apresentadas. Além disso, demonstramos que é possível prever bugs de longa duração com boa precisão, apesar da aplicação de algoritmos de AM e métodos de MT simples, como Rede Neural e TF-IDF, em atributos textuais não estruturados de um bug report. Finalmente, nossos resultados indicaram que a acurácia dos algoritmos de ML na previsão de bugs de longa duração usando extração de features em BERT foi sistematicamente melhor do que quando eles usaram extração de features baseada em TF-IDF.
Banca examinadora
Titulares:
Mário Lucio Côrtes IC/UNICAMP
Hélio Pedrini IC/UNICAMP
Islene Calciolari Garcia IC/UNICAMP
Rosana Teresinha Vaccare Braga ICMC/USP
Maria Adriana Vidigal de Lima FACOM/UFU
Suplentes:
Eliane Martins IC/UNICAMP
Adler Diniz de Souza IMC/UNIFEI
Alexandre Mello Ferreira EEP