Fronteiras da Engenharia de Software

Logo

um podcast de divulgação científica

38: Anotações de Código (e frameworks que as usam), com Eduardo Guerra (UniBZ)

Neste episódio, Adolfo Neto e Maria Claudia Emer, professores da UTFPR Curitiba, entrevistam Eduardo Guerra, pesquisador da Universidade Livre de Bozen-Bolzano, sobre anotações de código e frameworks baseados em metadados. A discussão abrange conceitos fundamentais, desafios na construção de frameworks, resultados de pesquisas anteriores de Eduardo, validação de anotações em software orientado a objetos e comparações com a validação tradicional. A trajetória profissional de Eduardo, incluindo sua mudança do INPE para a Universidade Livre de Bozen-Bolzano, é explorada, assim como suas atividades no mercado. O episódio termina com uma visão das próximas fronteiras da Engenharia de Software, abordando arquitetura evolutiva e integração de IA no desenvolvimento.

Data de publicação: 16 de agosto de 2023.

Vídeo no YouTube

Episódio do podcast

Todas as plataformas

Anotações de Código (e frameworks que as usam), com Eduardo Guerra (UniBZ)

Spotify

Spotify para Podcasters

Artigos

Padrões e Práticas

Guerra, E., Alves, F., Kulesza, U., & Fernandes, C. (2013). A reference architecture for organizing the internal structure of metadata-based frameworks.e of metadata-based frameworks. Journal of Systems and Software, 86(5), 1239-1256. https://www.sciencedirect.com/science/article/pii/S0164121212003366

Guerra, E., de Souza, J., & Fernandes, C. (2013). Pattern language for the internal structure of metadata-based frameworks. In Transactions on Pattern Languages of Programming III (pp. 55-110). Springer Berlin Heidelberg. https://link.springer.com/chapter/10.1007/978-3-642-38676-3_3

Guerra, E., Fernandes, C., & Silveira, F. F. (2010, October). Architectural patterns for metadata-based frameworks usage. In Proceedings of the 17th Conference on Pattern Languages of Programs (pp. 1-25). https://dl.acm.org/doi/abs/10.1145/2493288.2493292

Soluções Específicas (trabalhos sobre frameworks específicos)

(Access Control) Silva, J. O., Guerra, E. M., & Fernandes, C. T. (2013). An extensible and decoupled architectural model for authorization frameworks. In Computational Science and Its Applications–ICCSA 2013: 13th International Conference, Ho Chi Minh City, Vietnam, June 24-27, 2013, Proceedings, Part IV 13 (pp. 614-628). Springer Berlin Heidelberg. https://link.springer.com/chapter/10.1007/978-3-642-39649-6_44

(Persistence) Guerra, E. (2014). Designing a framework with test-driven development: A journey. IEEE software, 31(1), 9-14.
https://ieeexplore.ieee.org/abstract/document/6750460

(Gamification) Guerra, E. M., Fornari, G., Costa, W. S., Porto, S. M., Candia, M. P., & da Silva, T. S. (2017). An approach for modularizing gamification concerns. In Computational Science and Its Applications–ICCSA 2017: 17th International Conference, Trieste, Italy, July 3-6, 2017, Proceedings, Part V 17 (pp. 635-651). Springer International Publishing. https://link.springer.com/chapter/10.1007/978-3-319-62404-4_47

(Continuus experimentation - A/B testing) De Souza, W. S., Pereira, F. O., Albuquerque, V. G., Melegati, J., & Guerra, E. (2022, June). A Framework Model to Support A/B Tests at the Class and Component Level. In 2022 IEEE 46th Annual Computers, Software, and Applications Conference (COMPSAC) (pp. 860-865). IEEE.
https://ieeexplore.ieee.org/abstract/document/9842657

Metricas e Visualização

Lima, P., Guerra, E., Meirelles, P., Kanashiro, L., Silva, H., & Silveira, F. F. (2018). A metrics suite for code annotation assessment. Journal of Systems and Software, 137, 163-18 https://www.sciencedirect.com/science/article/pii/S016412121730273X

Lima, P., Melegati, J., Gomes, E., Pereira, N. S., Guerra, E., & Meirelles, P. (2023). CADV: A software visualization approach for code annotations distribution. Information and Software Technology, 154, 107089. https://www.sciencedirect.com/science/article/pii/S0950584922001987

Unpublished: Guerra, E., Gomes, E., Ferreira, J., Wiese, I., Lima, P., Gerosa, M., & Meirelles, P. (2022). How does annotations affect Java code readability? https://www.researchsquare.com/article/rs-2256326/v1

Esfinge Metadata - Proposal of new API for consume annotations

de Siqueira, J. L., Silveira, F. F., & Guerra, E. M. (2016). An approach for code annotation validation with metadata location transparency. In Computational Science and Its Applications–ICCSA 2016: 16th International Conference, Beijing, China, July 4-7, 2016, Proceedings, Part IV 16 (pp. 422-438). Springer International Publishing. https://link.springer.com/chapter/10.1007/978-3-319-42089-9_30

Guerra, E., Lima, P., Choma, J., Nardes, M., Silva, T., Lanza, M., & Meirelles, P. (2020, October). A metadata handling api for framework development: A comparative study. In Proceedings of the XXXIV Brazilian Symposium on Software Engineering (pp. 499-508). https://dl.acm.org/doi/abs/10.1145/3422392.3422428

Unpublished: Gomes, E., Guerra, E., Lima, P., & Meirelles, P. (2023). An Approach Based on Metadata to Implement Convention over Configuration Decoupled from Framework Logic. https://www.authorea.com/doi/full/10.22541/au.168067455.55373151

Roteiro

PARTE 1 - APRESENTAÇÃO DOS HOSTS E DA PESSOA ENTREVISTADA

(ADOLFO) 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) Tudo bem. Preparada para mais uma conversa sobre um tema importante da Engenharia de Software com o nosso entrevistado.

(ADOLFO) Hoje vamos entrevistar Eduardo Guerra Ele é pesquisador na Universidade Livre de Bozen-Bolzano, onde ministra aulas de Técnicas Avançadas de Design de Software e Arquitetura de Sistemas de Software. Além disso, faz pesquisa nos seguintes temas:

Métodos Ágeis, Desenvolvimento de Frameworks, Padrões de Software, Arquiteturas Dinâmicas e Software Startups.

O tema principal desta entrevista é Anotações de código (e frameworks que as usam).

Tudo bem, Eduardo, você tem algo a complementar nesta sua apresentação?

(EDUARDO)

PARTE 2 - CONCEITOS BÁSICOS

(ADOLFO) Vamos começar falando sobre o tema principal de nossa entrevista: o que são anotações de código?

(EDUARDO)

(MARIA CLAUDIA) E o que são e para que são usados os frameworks baseados em metadados?

(EDUARDO)

(ADOLFO) Quais são alguns dos problemas encontrados na construção de frameworks baseados em metadados?

(EDUARDO)

PARTE 3 - PESQUISA

(ADOLFO) Ao longo do tempo, você publicou alguns artigos relacionados ao tema de frameworks baseados em metadados. Vamos deixar o link de três deles na descrição do episódio. Quais foram os principais resultados destes trabalhos?

(EDUARDO) (a) suíte de métricas e abusos das anotações; (b) ferramenta de visualização e conexão das anotações com arquitetura; (c)

(MARIA CLAUDIA) Existe uma forma de garantir que as anotações sejam colocadas apenas em elementos válidos? E como testar se as anotações geraram o comportamento esperado? Como a validação das anotações de código em software orientado a objetos com transparência de localização difere da validação tradicional? (EDUARDO)

(ADOLFO) O que é o projeto Esfinge?

(EDUARDO)

(ADOLFO) Quais são as vantagens e diferenças de usar a API Esfinge Metadata em comparação com a API Java Reflection para consumir e processar anotações no desenvolvimento de frameworks baseados em metadados e aplicações baseadas em anotações personalizadas?

(EDUARDO)

(MARIA CLAUDIA) Você também tem trabalhado com a visualização da distribuição das anotações de código (por exemplo, na ferramenta Annotation Visualizer). Como esta visualização pode ajudar as pessoas desenvolvedoras?

(EDUARDO)

(ADOLFO) E você e alguns coautores (entre eles, Igor Wiese, que foi entrevistado por nós aqui) têm um preprint sobre “Como as anotações afetam a legibilidade do código Java?”. Como foi feito este trabalho e quais são os resultados até agora?

(EDUARDO)

PARTE 4 - OUTROS TEMAS

(ADOLFO) Agora vou listar algumas de suas atividades ao longo da sua carreira: Você foi editor-chefe, por mais de 7 anos, da revista MundoJ, uma revista da comunidade da linguagem Java. Você foi professor do Instituto Tecnológico de Aeronáutica (ITA) por 6 anos, sendo um dos responsáveis por diversos cursos na plataforma Coursera. Achamos 5 cursos seus lá, sobre temas como TDD, Padrões e Agilidade. Você escreveu ou co-escreveu 2 livros voltados para um público de pessoas desenvolvedoras. E você tem um canal no YouTube com vídeos de palestras sobre seus artigos e tutoriais, entre outros vídeos, além de participar de podcasts (como sua entrevista para o podcast HiDev, do Bruno Cartaxo). Entre outras coisas… Qual é sua motivação para esta aproximação com o mercado?

(EDUARDO)

(MARIA CLAUDIA)
Você trabalhou de 2013 a 2020 no INPE, Instituto Nacional de Pesquisas Espaciais, como pesquisador. Desde 2020 você está como pesquisador na Universidade Livre de Bozen-Bolzano, na Itália. Você pode nos contar um pouco sobre as motivações desta mudança?

(EDUARDO)

PARTE 5 - PRÓXIMA FRONTEIRA

(ADOLFO) 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)

(EDUARDO) (a) Uma técnica efetiva para arquitetura de software evolutiva; (b) Integração efetiva de ferramentas baseadas em IA nos times.

PARTE 6 - FINAL

(ADOLFO) Agradece e passa para o(a) entrevistado(a).

(EDUARDO)

(MARIA) 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”

(EDUARDO)