Minha trajetória de pesquisa conecta problemas reais de desenvolvimento a evidências e ferramentas que ajudam engenheiros a construir sistemas melhores. Hoje, meu foco está na liderança de engenharia, mas o acervo de trabalhos continua disponível aqui.

Manutenção e evolução de software

Como tornar o código mais fácil de entender, refatorar e evoluir? Minha pesquisa considera o contexto das arquiteturas para identificar os trechos que tornam sistemas web e mobile difíceis de manter.

Artigos científicos 2021

Search-Based Software Re-Modularization: A Case Study at Adyen

Decidir o que constitui um único módulo, quais classes pertencem a qual módulo ou o conjunto certo de módulos para um sistema de software específico sempre foi uma tarefa d...

Ver publicação : Search-Based Software Re-Modularization: A Case Study at Adyen
Artigos científicos 2018

When Testing Meets Code Review: Why and How Developers Review Tests

O teste automatizado é considerado um processo essencial para garantir a qualidade do software. No entanto, escrever e manter código de teste de alta qualidade é desafiador...

Ver publicação : When Testing Meets Code Review: Why and How Developers Review Tests
Artigos científicos 2018

The Adoption of JavaScript Linters in Practice: A Case Study on ESLint

Um linter é uma ferramenta de análise estática que alerta os desenvolvedores de software sobre possíveis erros de código ou violações dos padrões de codificação. Ao usar es...

Ver publicação : The Adoption of JavaScript Linters in Practice: A Case Study on ESLint

Testes de software

Testes também são código. Investiguei como ajudar desenvolvedores a criar casos de teste eficazes e manter grandes suítes de testes automatizados.

Artigos científicos 2018

Mock objects for testing java systems: Why and how developers use them, and how they evolve

Ao testar artefatos de software que possuem diversas dependências, tem-se a possibilidade de instanciar essas dependências ou usar objetos simulados para simular o comporta...

Ver publicação : Mock objects for testing java systems: Why and how developers use them, and how they evolve
Artigos científicos 2018

Search-Based Test Data Generation for SQL Queries

Os sistemas centrados em banco de dados dependem fortemente de consultas SQL para gerenciar e manipular seus dados. Esses comandos SQL podem variar desde seleções muito sim...

Ver publicação : Search-Based Test Data Generation for SQL Queries

Aprendizado de máquina para engenharia de software

Modelos de aprendizado de máquina podem apoiar tarefas de manutenção que são difíceis de modelar manualmente. Essa linha de pesquisa explora como usar esses modelos no trabalho de desenvolvimento.

Artigos científicos 2021

Data-Driven Extract Method Recommendations: A Study at ING

A identificação sólida de oportunidades de refatoração ainda é um problema em aberto na engenharia de software. Estudos recentes têm demonstrado a eficácia dos modelos de a...

Ver publicação : Data-Driven Extract Method Recommendations: A Study at ING
Artigos científicos 2020

The Effectiveness of Supervised Machine Learning Algorithms in Predicting Software Refactoring

Refatoração é o processo de alteração da estrutura interna do software para melhorar sua qualidade sem modificar seu comportamento externo. Antes de realizar atividades de ...

Ver publicação : The Effectiveness of Supervised Machine Learning Algorithms in Predicting Software Refactoring

Monitoramento e análise de logs

Em sistemas complexos, os testes precisam ser complementados pelo monitoramento. Pesquisei ferramentas que ajudam desenvolvedores a entender o comportamento dos sistemas em produção a partir dos logs.

Artigos científicos 2021

An Exploratory Study of Log Placement Recommendation in an Enterprise System

O registro em log é uma prática de desenvolvimento que desempenha um papel importante nas operações e no monitoramento de sistemas complexos. Os desenvolvedores colocam ins...

Ver publicação : An Exploratory Study of Log Placement Recommendation in an Enterprise System
Artigos científicos 2019

Monitoring-Aware IDEs

A engenharia de software moderno em grande escala exige que os desenvolvedores de software não se concentrem apenas em escrever código, mas também examinem continuamente os...

Ver publicação : Monitoring-Aware IDEs
Artigos científicos 2018

An Exploratory Study on Faults in Web API Integration in a Large-Scale Payment Company

As arquiteturas orientadas a serviços são mais populares do que nunca e cada vez mais empresas e organizações dependem de serviços oferecidos por meio de APIs Web. Os recur...

Ver publicação : An Exploratory Study on Faults in Web API Integration in a Large-Scale Payment Company