Título
[pt] EXPLORANDO AGENTES CONVERSACIONAIS PARA ORIENTAR DESENVOLVEDORES SOBRE QUESTÕES DE CONFIABILIDADE DE SOFTWARE
Título
[en] EXPLORING CONVERSATIONAL AGENTS FOR DEVELOPER GUIDANCE ON SOFTWARE DEPENDABILITY ISSUES
Autor
[pt] JOAO LUCAS MARQUES CORREIA
Vocabulário
[pt] AGENTE CONVERSACIONAL
Vocabulário
[pt] ASSISTENCIA AO DESENVOLVEDOR
Vocabulário
[pt] CONFIABILIDADE DE SOFTWARE
Vocabulário
[pt] MODELO DE LINGUAGEM DE GRANDE ESCALA
Vocabulário
[en] CONVERSATIONAL AGENT
Vocabulário
[en] DEVELOPER ASSISTANCE
Vocabulário
[en] SOFTWARE DEPENDABILITY
Vocabulário
[en] LARGE LANGUAGE MODEL
Resumo
[pt] A confiabilidade de software é um requisito não funcional (RNF) crítico que abrange a capacidade de um sistema se manter disponível, confiável, manutenível e resiliente na presença de falhas. O tratamento de exceções desempenha um papel central na operacionalização desses atributos, sendo o ponto em que falhas são detectadas, relatadas e recuperadas. Apesar de sua importância, o tratamento de exceções é frequentemente negligenciado por ferramentas e pouco priorizado nas práticas dos desenvolvedores. Esta tese investiga como agentes conversacionais, especialmente aqueles baseados em grandes modelos de linguagem (LLMs), podem apoiar o desenvolvimento de software confiável, utilizando o tratamento de exceções como ponto de entrada prático. A pesquisa aborda três lacunas principais: (i) a falta de entendimento empírico sobre como contribuições relacionadas a exceções são feitas e revisadas em contextos colaborativos; (ii) a escassez de avaliações de agentes baseados em LLMs em cenários reais de suporte a desenvolvedores; e (iii) a necessidade de ir além de respostas passivas, explorando agentes capazes de gerar mudanças de código para revisão. Para isso, foram conduzidos quatro estudos complementares. Primeiramente, caracterizamos pull requests (PRs) relacionados a exceções em projetos Java da Apache, revelando que essas mudanças são proativas e multifacetadas. Em seguida, propomos o agente conversacional DevMentorAI, baseado em geração de recuperação aumentada (RAG), foi avaliado no projeto Mozilla PDF.js e demonstrou igualar ou superar respostas humanas para questões técnicas. Posteriormente, uma comparação no ecossistema do Mozilla Firefox mostrou que modelos RAG fornecem respostas mais úteis e completas do que LLMs genéricos e humanos, embora mais verbosas. Por fim, uma arquitetura multiagente foi proposta e validada em sistemas industriais, demonstrando que agentes baseados em LLMs podem detectar e corrigir problemas de confiabilidade de maneira eficaz e alinhada às expectativas dos desenvolvedores. Os resultados dão indícios que agentes conversacionais, quando fundamentados no contexto do projeto, podem apoiar significativamente os desenvolvedores na identificação e resolução de problemas de confiabilidade.
Resumo
[en] Software dependability is a critical non-functional requirement (NFR)
that encompasses a system s ability to remain available, reliable, maintainable, and resilient in the presence of faults. Exception handling plays a
central role in operationalizing these attributes, serving as the point where
failures are detected, reported, and recovered. Despite its importance, exception handling is often under-supported by tools and under-emphasized
in developer workflows. This thesis investigates how conversational agents,
particularly those powered by Large Language Models (LLMs), can support
dependable software development, using exception handling as a practical
entry point. The thesis addresses three core research gaps: (i) the lack of
empirical understanding of how exception-handling contributions are made
and reviewed in collaborative settings; (ii) the limited evaluation of LLM
based assistants in real-world developer support scenarios; and (iii) the need
to move beyond passive question answering toward agents capable of generating actionable and reviewable code changes. To this end, four complementary studies were conducted across open-source and industrial systems.
First, exception-related pull requests (PRs) were characterized in Apache
Java projects, revealing that these changes are proactive, multifaceted, and
socially integrated. Second, DevMentorAI, a retrieval-augmented conversational agent, was evaluated in the Mozilla PDF.js project and shown to
match or surpass human answers in many cases. Third, a comparison in
Mozilla Firefox demonstrated that RAG-based models provide more helpful
and comprehensive answers than generic LLMs and humans, albeit at the
cost of verbosity. Finally, a multi-agent pipeline was introduced and valida
ted in closed-source systems, showing that LLM-driven agents can detect
and repair dependability issues in a way that is effective, explainable, and
aligned with developer expectations. These results demonstrate that con
versational agents, when grounded in project-specific context and combined
with human-in-the-loop workflows, can meaningfully assist developers in
identifying and resolving software dependability issues.
Orientador(es)
ALESSANDRO FABRICIO GARCIA
Coorientador(es)
RAFAEL MAIANI DE MELLO
Banca
ALESSANDRO FABRICIO GARCIA
Banca
MARCO AURELIO GEROSA
Banca
BALDOINO FONSECA DOS SANTOS NETO
Banca
ANDERSON GONCALVES UCHOA
Banca
RAFAEL MAIANI DE MELLO
Banca
JULIANA ARRIEL
Catalogação
2025-12-04
Apresentação
2025-09-30
Tipo
[pt] TEXTO
Formato
application/pdf
Idioma(s)
INGLÊS
Referência [pt]
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=74447@1
Referência [en]
https://www.maxwell.vrac.puc-rio.br/colecao.php?strSecao=resultado&nrSeq=74447@2
Referência DOI
https://doi.org/10.17771/PUCRio.acad.74447
Arquivos do conteúdo
NA ÍNTEGRA PDF