um podcast de divulgação científica
47: Reparo Automático de Programas, com Fernanda Madeiral (Vrije Universiteit Amsterdam)
19/06/2024
Spotify for Podcasters
YouTube
[https://youtu.be/aOahtRBAgpc]{.underline}
+———————————————————————–+ | Resumo: | | | | Neste episódio do podcast Fronteiras da Engenharia de Software, os | | apresentadores, Professor Adolfo Neto e Professora Maria Cláudia | | Emer, entrevistam Fernanda Madeiral, professora assistente na Vrije | | Universiteit Amsterdam, sobre o tema de reparo automático de | | programas. | | | | Fernanda Madeiral começa explicando o conceito de reparo de | | programas, focando inicialmente na correção de bugs. Ela detalha o | | processo em três etapas: localização do bug no código (fault | | localization), modificação do código para gerar um patch e validação | | do patch através de testes. Fernanda menciona que, embora esses | | patches possam passar nos testes, eles nem sempre são soluções | | corretas, dando origem ao conceito de patches plausíveis. | | | | Além dos bugs, Fernanda aborda outros problemas de qualidade de | | software, como code smells e violações de linters, que também podem | | ser considerados no contexto de reparo automático. Ela explica que os | | linters são ferramentas de análise estática que identificam violações | | de regras de codificação sem precisar executar o código, tornando o | | processo de reparo mais leve comparado ao uso de testes. | | | | O episódio também explora a evolução das técnicas de reparo de | | programas, desde as tradicionais, baseadas em templates predefinidos | | e mineração de templates, até as mais modernas, que utilizam | | aprendizado de máquina e modelos de linguagem avançados (large | | language models) como o ChatGPT para gerar patches. | | | | Fernanda destaca a importância dessas novas abordagens e como elas | | têm potencial para melhorar a eficiência e a eficácia do reparo | | automático de programas, beneficiando tanto desenvolvedores quanto | | usuários ao agilizar a correção de bugs e outros problemas de | | qualidade no código. | | | | O episódio conclui com uma discussão sobre o futuro da pesquisa em | | reparo automático de programas e o impacto das novas tecnologias na | | área. | | | | Site de Fernanda: | | [https:/ | | /fermadeiral.github.io/]{.underline} | | | | Perfil de Fernanda no X/Twitter: | | [https://x.com/fermadeiral]{.underline} | | | | Artigos | | | | - Styler: learning formatting conventions to repair Checkstyle | | violations (2022) | | [https://arx | | iv.org/abs/1904.01754]{.underline} | | | | - Sorald: Automatic Patch Suggestions for SonarQube Static Analysis | | Violations (2022) | | [https://arx | | iv.org/abs/2103.12033]{.underline} | | | | - Empirical review of Java program repair tools: A large-scale | | experiment on 2,141 bugs and 23,551 repair attempts (2019) | | [https://arx | | iv.org/abs/1905.11973]{.underline} | | | | - Bears: An Extensible Java Bug Benchmark for Automatic Program | | Repair Studies (2019) | | [https://arx | | iv.org/abs/1901.06024]{.underline} | | | | Links: | | | | Episódio do Fronteiras com Marcelo Maia (em duas partes) | | | | [https://podcasters.spotify.com/pod/show/ | | fronteirases/episodes/4--Code-smells-com-Marcelo-Maia-UFU---Parte- | | 1-ejkpqr]{.underline} | | | | [https://podcasters.spotify.com/pod/show/ | | fronteirases/episodes/4--Code-smells-com-Marcelo-Maia-UFU---Parte- | | 2-ekctv0]{.underline} | | | | Seminário com Fernanda Madeiral: Reparo automatizado de violações | | encontradas por Checkstyle | | | | [https://www.youtube.com/live/42st94i1nDI]{.unde | | rline} | | | | Episódio do Fronteiras com Fernando Castor | | | | [https://podcasters.spotify.com/pod/show/fro | | nteirases/episodes/13-Compreenso-de-Cdigo-com-Fernando-Castor-UFPE-e1 | | 2ssjs]{.underline} | | | | Mais informações em | | [https://fronteirases.github.io/episodios/paginas/ | | 47]{.underline} | | | | Entrevistadores: Adolfo Neto (PPGCA UTFPR) https://adolfont.github.io | | e Maria Claudia Emer | | | | Nosso site é: | | [https:/ | | /fronteirases.github.io]{.underline} | | | | | | Extreme Energy (Music Today 80). Composed & Produced by: Anwar Amr. | | Link: | | [https://www.youtube.com/watch?v=8ZZbAkKNx7s]{.underline} | | | | Data de publicação: 19 de junho de 2024. | | | | Como citar este episódio | | | | FRONTEIRAS DA ENGENHARIA DE SOFTWARE EP. 47: Reparo Automático de | | Programas, com Fernanda Madeiral (Vrije Universiteit Amsterdam). | | [Locução de]: Adolfo Neto e Maria Claudia Emer. Entrevistada: | | Fernanda Madeiral. S. l.: Fronteiras da Engenharia de Software, 19 | | jun. 2024. Podcast. Disponível em: | | [https://fronteirases.github.io/episodios/paginas/4 | | 7]{.underline}. | | Acesso em: 19 jun. 2024. | +=======================================================================+ +———————————————————————–+
Assistant professor at the Vrije Universiteit Amsterdam.
Research area: Software Engineering
Broad research goal: to help developers produce and maintain high-quality software systems.
Interested in software bugs and their fixes, linter violations, and source code legibility and readability. I have performed source code analysis and manipulation, used machine learning, and mined software repositories for my research projects.
[https://fermadeiral.github.io/]{.underline}
Tema: Reparo automático de programas
“Artigos que encaixam no tópico são:
- Styler: learning formatting conventions to repair Checkstyle violations (2022) [https://arxiv.org/abs/1904.01754]{.underline}
- Sorald: Automatic Patch Suggestions for SonarQube Static Analysis Violations (2022) [https://arxiv.org/abs/2103.12033]{.underline}
- Empirical review of Java program repair tools: A large-scale experiment on 2,141 bugs and 23,551 repair attempts (2019) [https://arxiv.org/abs/1905.11973]{.underline}
- Bears: An Extensible Java Bug Benchmark for Automatic Program Repair Studies (2019) [https://arxiv.org/abs/1901.06024]{.underline}
(...)
os dois primeiros são focados em reparo automático de violações encontradas por linters, o que é algo mais focado, e os dois últimos (que são sobre bugs) são antigos e já são, de uma certa maneira, irrelevantes porque a área está mudando e muito rápido.”
”- Podemos ter uma história como um todo, onde eu poderia introduzir o assunto como ele surgiu (reparo de bugs), contar como isso mudou para atacar outros problemas, e poderia contar sobre a evolução de técnicas (tradicionais, depois machine learning, agora com LLMs).”
Links:
Episódio com Marcelo Maia
Seminário com Fernanda Madeiral: Reparo automatizado de violações encontradas por Checkstyle
[https://www.youtube.com/live/42st94i1nDI?si=9R23MRJrqtS_REva]{.underline}
SIGSOFT Webinar: Cognitive Driven Development: A Research Agenda
Gustavo Pinto
Fernanda (moderadora)
[https://www.youtube.com/watch?v=I0QJwjoNBkk]{.underline}
Fernando Castor
[(PARTE 1 - APRESENTAÇÃO DOS HOSTS E DA PESSOA ENTREVISTADA)]{.mark}
[(ADOLFO)]{.mark}
Olá,
eu sou Adolfo Neto,
professor da UTFPR Curitiba e do Programa de Pós-Graduação em Computação Aplicada (PPGCA).
Estou aqui com a co-host do Fronteiras, Maria Claudia Emer, também da UTFPR Curitiba e do PPGCA.
Tudo bem, Maria Claudia?
[(MARIA CLAUDIA)]{.mark} Tudo bem. Preparada para mais uma conversa sobre um tema importante da Engenharia de Software com a nossa entrevistada.
[(ADOLFO)]{.mark}
Hoje vamos entrevistar
Fernanda Madeiral
Ela é
Professora Assistente na Vrije Universiteit Amsterdam (Universidade Livre de Amsterdã), na Holanda.
Sua área de pesquisa é Engenharia de Software,
e seu objetivo é auxiliar os desenvolvedores a produzir e manter sistemas de software de alta qualidade.
Ela tem interesse em bugs de software e suas correções, violações de linters, e legibilidade e clareza de código-fonte.
Tudo bem, Fernanda, (agradecer) você tem algo a complementar nesta sua apresentação?
(Fernanda)
[(PARTE 2 - CONCEITOS BÁSICOS)]{.mark}
[(ADOLFO)]{.mark} Hoje vamos falar sobre Reparo automático de programas. Você pode explicar para nossos e nossas ouvintes o que significa o termo "Reparo de programas"?
(Fernanda)
[(MARIA CLAUDIA)]{.mark} E como é possível fazer reparo de programas de forma automática?
(Fernanda)
[(ADOLFO)]{.mark} Você disse no início que o termo de reparo de programas começou a ser utilizado no contexto de reparo de bugs. Em quais outros contextos esse termo passou a ser utilizado?
(Fernanda)
14;23 CORTE
[(PARTE 3 - PESQUISA)]{.mark}
[(ADOLFO)]{.mark}
Nesta parte do episódio nós gostamos de conversar sobre alguns artigos da pessoa entrevistada. Por sermos um podcast de divulgação científica, achamos importante descrever um pouco como a Ciência é feita para nossos ouvintes não-acadêmicos.
Um artigo que você e seus co autores publicaram recentemente foi “Styler: aprendendo convenções de formatação para corrigir violações do Checkstyle” (“Styler: learning formatting conventions to repair Checkstyle violations”). Foi publicado na revista Empirical Software Engineering, uma das melhores de nossa área, em 2022. Neste artigo vocês apresentaram o Styler, uma ferramenta dedicada a corrigir violações de regras de formatação levantadas por verificadores de formato utilizando uma abordagem de aprendizado de máquina. Você pode nos contar um pouco sobre o método e os resultados deste artigo, Fernanda?
(Fernanda)
[(MARIA CLAUDIA)]{.mark} Outro artigo que você e seus co autores publicaram foi “Sorald: Sugestões automáticas de correção para violações de análise estática do SonarQube”. Neste artigo, publicado em 2022 na IEEE Transactions on Dependable and Secure Computing, vocês apresentaram o Sorald, um sistema que elabora modelos de metaprogramação para transformar as árvores de sintaxe abstrata dos programas e sugerir correções para avisos de análise estática. Você pode nos contar um pouco sobre a motivação e os resultados deste artigo, Fernanda?
(Fernanda)
[(ADOLFO)]{.mark} E para terminar eu recomendo que todos assistam a palestra “Reparo automatizado de violações encontradas por Checkstyle: abordagem de aprendizado de máquina vs abordagem baseada em regras” que você, Fernanda, ministrou no CIn UFPE no final de 2023. Se não me engano, você estava em Recife para a defesa de doutorado de Delano Hélio Oliveira, orientado por Fernando Castor (episódio 13 - 843 reproduções), coorientado por você.
Uma das coisas que você menciona na palestra é “a existência de problemas que são melhor resolvidos sem o aprendizado de máquina”. Bastante interessante.
(FERNANDA)
// se quiser falar algo, pode falar. Não é uma pergunta (VOU RESPONDER)
[(PARTE 4 - OUTROS TEMAS)]{.mark}
[(ADOLFO)]{.mark} Você fez graduação e mestrado no interior do estado de São Paulo e foi fazer doutorado no interior de Minas Gerais, orientada por Marcelo Maia, na Universidade Federal de Uberlândia (UFU). Marcelo esteve aqui em nossa primeira temporada, no episódio 4, sobre Code Smells, que foi um grande sucesso, somando as duas partes foram mais de 1500 reproduções. Como você conheceu o professor Marcelo e decidiu fazer doutorado com ele?
(Fernanda)
[(MARIA CLAUDIA)]{.mark} Em 2019 você terminou o doutorado, começou a fazer pós-doutorado na UNESP Presidente Prudente, com Rogério Eduardo Garcia, seu orientador de mestrado. Em fevereiro de 2020 começou pós-doc no KTH Royal Institute of Technology, com Martin Monperrus. Como surgiu esta oportunidade?
(Fernanda)
[(ADOLFO)]{.mark} E como foi o processo para tornar-se professora na Universidade Livre de Amsterdã? E como está sendo?
(Fernanda)
[(MARIA CLAUDIA)]{.mark} Uma pergunta que sempre fazemos em nosso outro podcast, o Emílias Podcast - Mulheres na Computação, que faz parte do nosso Programa de Extensão “Emílias - Armação em Bits” é a seguinte:
Você já enfrentou obstáculos ao longo de sua carreira ou durante sua educação que você identificou como sendo influenciados pelo fato de ser mulher?
(Fernanda)
[(PARTE 5 - PRÓXIMA FRONTEIRA)]{.mark}
[(ADOLFO)]{.mark} Para você, qual é a próxima fronteira da engenharia de software? (pode ser algo que você acha que vai acontecer ou que você gostaria que acontecesse em nossa área)
(Fernanda)
1:13
[(PARTE 6 - FINAL)]{.mark}
[[ADOLFO]]{.mark} Agradece e passa para o(a) entrevistado(a).
(Fernanda)
[(MARIA)]{.mark} Fecha o episódio com algo como “Agradecemos a todos os nossos e nossas ouvintes, e até o próximo episódio do Fronteiras da Engenharia de Software”
(Fernanda)
[FAZER PRINT PARA DIVULGAÇÃO EM REDES SOCIAIS]{.mark}
{width=”6.5in” height=”3.6666666666666665in”}