Fronteiras da Engenharia de Software

Logo

um podcast de divulgação científica

Fronteiras da Engenharia de Software - Podcast

Host: Adolfo Neto (UTFPR)

[Co-host: Gustavo Pinto (UFPA)]{.mark}

Equipe: Danilo Ribeiro (Zup), Leonardo Fernandes (IFAL), Fabio Petrillo (Univ. Quebec), Marcela dos Santos (Univ. Quebec)

Introdução ao Episódio

[ADOLFO] Olá ouvintes, eu sou Adolfo Neto, professor da Universidade Tecnológica Federal do Paraná.

[[GUSTAVO] Oi pessoal, tudo bem? Eu sou Gustavo Pinto, professor da UFPA, e este é mais um episódio do Fronteiras da Engenharia de Software, um podcast feito para refletir sobre o presente e futuro da engenharia de software]{.mark}

[ADOLFO] Fronteiras da Engenharia de Software é um podcast de divulgação científica que discute mensalmente diversificados temas da Engenharia de Software. Os episódios abordam desde questões fundamentais da engenharia de software até os mais recentes avanços na área.

[[GUSTAVO] Nosso convidado deste décimo primeiro episódio é o prof Eduardo Almeida. Eduardo fez doutorado com Silvio Meira na UFPE, e hoje é professor associado na UFBA. Além de professor, Eduardo já acumulou diversas funções. Foi diretor-presidente da FAPESB (a fundação de amparo e pesquisa da Bahia) durante os anos de 2015 e 2017. Assim como Tayana Conte, com quem conversamos no episódio sobre User experience, Eduardo também foi presidente da CEES (comissão especial de engenharia de software) durante o período de 2016 e 2017. Eduardo já coordenou diversos projetos com empresas e governo, e é autor de mais de 200 artigos científicos publicados no Brasil e exterior, além de ter editado três livros, um dos quais chamado “A CARREIRA DE PESQUISADOR EM ENGENHARIA DE SOFTWARE:”, livro este que eu recomendo para qualquer aluno de pós-graduação na área da engenharia de software. Eduardo é membro afiliado da Academia Brasileira de Ciências e membro titular da Academia de Ciências da Bahia. Além da pesquisa, Eduardo tem também mais recentemente contribuído para o cenário de startups em Salvador.]{.mark}

[ADOLFO] Eduardo tem trabalhado com Arquitetura e Reuso de Software.

Ele faz parte do Laboratório de Engenharia de Software da UFBA e é Líder do RISE Labs.

Nesta entrevista conversamos sobre como o Reuso de Software pode melhorar as vidas dos engenheiros de software. Além disso, Eduardo falou sobre suas iniciativas de interação Academia-Indústria.

Episódio 11: Reuso de Software, com Eduardo Almeida (UFBA)

Parte 1: Apresentação [5 min, estimativa]

[ADOLFO] Olá ouvintes, para este décimo primeiro episódio, contamos com a presença de Eduardo Almeida, que é professor na UFBA (Universidade Federal da Bahia) em Salvador.

Tudo bem, Eduardo? Você pode se apresentar para as pessoas que nos escutam?

Parte 2 - Reuso [20 min, estimativa]

[[GUSTAVO] Eduardo, você editou um livro, junto com Paulo Cesar Masiero, chamado “A Carreira de Pesquisador em Engenharia de Software: Princípios, Conceitos e Direções”, em que no prefácio escrito por Silvio Meira, ele fala: (abre aspas) entendemos que, para escrever melhor e mais software, é preciso começar a escrever menos software, no sentido de evitar a replicação em muitos, inúmeros lugares, dos mesmos sistemas (fecha aspas). Embora Silvio não tenha escrito explicitamente no prefácio que ele estava falando de reuso de software, acho que é fácil entender que precisamos de reuso de para sermos produtivos escrevendo menos software.]{.mark}

[Mas, o que é reuso de software? Fazer uma função que engloba um procedimento que pode ser utilizado em dois lugares é reuso? O que mais pode ser considerado reuso?]{.mark}

[ADOLFO] Além do básico, quais são as técnicas e práticas que nos ajudam a reutilizar código? Existe alguma ferramenta que ajuda nesse sentido? As IDEs avançaram no sentido de apoiar desenvolvedores a fazer reuso de código?

[[GUSTAVO] Reuso é sempre uma coisa boa? Quanto mais melhor? Ou deveríamos ter algum tipo de limite de reuso? Por exemplo, tem um artigo do Emad Shihab e os colegas dele lá do Canadá em que eles estudam reuso de bibliotecas triviais de JavaScript. Bibliotecas com menos de 30 linhas de código. Isso faz sentido? Ou isso na realidade contribui para construir um castelo de cartas?]{.mark}

[ADOLFO] Eduardo, quais são as dificuldades de se fazer reuso hoje, em 2021? Ou o reuso se tornou tão fácil que na realidade temos que começar a tomar cuidado com a quantidade de reuso que fazemos? Como no exemplo do castelo de cartas, como que podemos evitar coisas como o incidente do left-pad, que é um pacote do NPM que por algum motivo ficou indisponível, fazendo que serviços como Facebook, Netflix e Airbnb ficassem indisponíveis (algumas pessoas inclusive mencionaram que esse incidente quase quebrou a internet). Como que podemos evitar cisnes negros assim (parafraseando o Nassim Taleb)?

[[GUSTAVO] Me parece que muito que aprendemos a fazer hoje de reuso (ao menos na parte técnica e não governamental) vem de comunidades de software livre, por exemplo, através da criação de ferramentas de gerenciamento de pacote como Make lá no passado, passando por frameworks e componentes, além dos mecanismos para buscar e instalar esses componentes. As próprias licenças de software livre existem como forma de possibilitar reuso de software. Nesse sentido, são as comunidades de software livre quem ditam o ritmo e as normas e práticas de reuso de software? O que a indústria tem proposto?]{.mark}

[ADOLFO] Como a gente consegue medir a produtividade de um desenvolvedor que escreve pouco código? Temos que pensar em novas métricas para medir produtividade?

Parte 3: Pesquisa sobre reuso [10 min, estimativa]

[[GUSTAVO] A nível de pesquisa, quais são os desafios atuais pra conseguir reuso? Quais são os tópicos de pesquisa nessa área?]{.mark}

[ADOLFO] Você escreveu recentemente um capítulo de livro sobre “Software Reuse and Product Line Engineering”, que foi publicado no “Handbook of Software Engineering”. Você pode falar um pouco sobre esse artigo?

<CORTAR AQUI>

[[GUSTAVO] Qual a relação de reuso de software e linha de produtos de software? Linha de produtos são famílias de sistemas que tiram muito proveito de reuso? Quais são outros bons exemplos?]]{.mark}

<CORTAR ATE AQUI>

Parte 4: Reuso na indústria [5 min, estimativa]

[ADOLFO] Durante os anos de 2010 a 2015 você e seu grupo de pesquisa fizeram vários workshops de reuso de software junto a indústria. Você pode contar um pouco sobre a história desses workshops? Como tudo começou? Quais foram os avanços que esses workshops trouxeram para a comunidade de praticantes? E por que não temos mais workshops assim hoje em dia?

[(CORTE AQUI)]{.mark}

Nova pergunta

Parte 5: Próxima Fronteira da Eng [3 min, estimativa]

[ADOLFO] Para você, qual é a próxima fronteira da engenharia de software?

[(CORTE AQUI ??)]{.mark}

Parte 6: Encerramento

[ADOLFO agradece e passa para Eduardo. Gustavo fecha o episódio.]{.mark}

Texto para divulgação

Conversamos com Eduardo Almeida (UFBA) sobre Reuso de Software e sobre suas diferentes iniciativas na pesquisa e na indústria.

Sites de Eduardo

Links Citados