Abordagem para seleção de exemplos trabalhados para engenharia de software do domínio de sistemas distribuídos

  • Breno Farias da Silva Universidade Tecnológica Federal do Paraná
  • Igor Scaliante Wiese Universidade Tecnológica Federal do Paraná
  • Rodrigo Campiolo Universidade Tecnológica Federal do Paraná
  • Marco Aurélio Graciotto Silva Universidade Tecnológica Federal do Paraná https://orcid.org/0000-0002-1737-8240

Resumo


Este estudo aborda a seleção de exemplos trabalhados para Engenharia de Software, com foco na melhoria da qualidade de código no contexto de Sistemas Distribuídos. Propõe-se uma abordagem, que emprega uma heurística baseada em métricas para selecionar exemplos de código que demonstrem melhorias significativas em aspectos como coesão e acoplamento. A análise é realizada em projetos de software livre amplamente reconhecidos, como Apache Kafka e ZooKeeper, utilizando as ferramentas CK, PyDriller e RefactoringMiner. Nossos resultados preliminares sugerem que tal abordagem pode auxiliar na seleção de códigos para a criação de exemplos trabalhados, fornecendo recursos práticos aos educadores, aplicados a domínios complexos como Sistemas Distribuídos. Dessa forma, espera-se contribuir para um aprendizado mais efetivo de Engenharia de Software aplicada naquele domínio.

Palavras-chave: worked examples, métricas software, evolução de código, engenharia de software, sistemas distribuídos

Referências

Maurício Aniche et al. 2015. Java code metrics calculator (CK). Programa de computador. [link]

Apache Software Foundation. 2008. Zookeeper. Programa de computador. [link]

Apache Software Foundation. 2011. Kafka. Programa de computador. [link]

Robert K. Atkinson, Sharon J. Derry, Alexander Renkl, and Donald Wortham. 2000. Learning from Examples: Instructional Principles from the Worked Examples Research. Review of Educational Research 70, 2 (June 2000), 181–214.

Tiago Piperno Bonetti, Matheus Molina Dias, Williamson Silva, and Thelma Elita Colanzi. 2023. Students’ Perception of Example-Based Learning in Software Modeling Education. In XXXVII Brazilian Symposium on Software Engineering (SBES 2023) (37 ed.) (Campo Grande, MS, Brasil). ACM, New York, NY, EUA, 67–76.

Breno Farias da Silva. 2023. Worked Example Miner. Programa de computador. [link]

Kasia Muldner, Jay Jennings, and Veronica Chiarelli. 2023. A Review of Worked Examples in Programming Activities. Transactions on Computing Education 23, 1 (March 2023), 13:1–13:35.

Sushil K. Prasad, T. Estrada, S. Ghafoor, A. Gupta, K. Kant, C. Stunkel, A. Sussman, R. Vaidyanathan, C. Weems, K. Agrawal, M. Barnas, D. W. Brown, R. Bryant, D. P. Bunde, C. Busch, D. Deb, E. Freudenthal, J. Jaja, M. Parashar, C. Phillips, B. Robey, A. Rosenberg, E. Saule, and Chi Shen. 2020. NSF/IEEE-TCPP Curriculum Initiative on Parallel and Distributed Computing – Core Topics for Undergraduates. Technical Report. NSF/IEEE-TCPP. 53 pages. [link] v. 2.0 beta.

Rajendra K. Raj and Amruth N. Kumar. 2022. Toward Computer Science Curricular Guidelines 2023 (CS2023). ACM Inroads 13, 4 (nov 2022), 22–25.

Ben Skudder and Andrew Luxton-Reilly. 2014. Worked Examples in Computer Science. In Proceedings of the Sixteenth Australasian Computing Education Conference (6 ed.) (Auckland, Nova Zelandia), Vol. 148. Australian Computer Society, Darlinghurst, Austrália, 59–64.

Davide Spadini, Maurício Aniche, and Alberto Bacchelli. 2018. PyDriller. Programa de computador. [link]

Davide Spadini, Maurício Aniche, and Alberto Bacchelli. 2018. PyDriller: Python framework for mining software repositories. In 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (26 ed.) (Lake Buena Vista, FL, EUA). ACM, New York, NY, EUA, 908–911.

Simone Tonhão, Thelma Colanzi, and Igor Steinmacher. 2021. Using Real Worked Examples to Aid Software Engineering Teaching. In 35th Brazilian Symposium onSoftware Engineering (SBES 2021) (35 ed.) (Joinville, SC, Brasil), Márcio Ribeiro, Marco Túlio Valente, Christina von Flach G. Chavez, Elisa Yumi Nakagawa, Kiev Santos da Gama, Simone do Rocio Senger de Souza, Ingrid Nunes, and Rohit Gheyi (Eds.). ACM, New York, NY, EUA, 133–142.

Simone Tonhão, Williamson Silva, Thelma Colanzi, and Igor Steinmacher. 2022. Uma plataforma gamificada de desafios baseados em worked examples extraídos de projetos de Software Livre para o ensino de Engenharia de Software. In XVII Simpósio Brasileiro de Sistemas Colaborativos (17 ed.) (Rio de Janeiro, RJ, Brasil). SBC, Porto Alegre, RS, Brasil, 33–38.

Nikolaos Tsantalis et al. 2014. RefactoringMiner. Programa de computador. [link]

Nikolaos Tsantalis, Ameya Ketkar, and Danny Dig. 2022. RefactoringMiner 2.0. Transactions on Software Engineering 48, 3 (March 2022), 930–950.

Nikolaos Tsantalis, Matin Mansouri, Laleh M. Eshkevari, Davood Mazinanian, and Danny Dig. 2018. Accurate and Efficient Refactoring Detection in Commit History. In 40th International Conference on Software Engineering (40 ed.) (Gothenburg, Suécia). ACM, New York, NY, EUA, 483–494.
Publicado
22/04/2024
SILVA, Breno Farias da; WIESE, Igor Scaliante; CAMPIOLO, Rodrigo; GRACIOTTO SILVA, Marco Aurélio. Abordagem para seleção de exemplos trabalhados para engenharia de software do domínio de sistemas distribuídos. In: LABORATÓRIO DE IDEIAS - SIMPÓSIO BRASILEIRO DE EDUCAÇÃO EM COMPUTAÇÃO (EDUCOMP), 4. , 2024, Evento Online. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024 . p. 17-18. DOI: https://doi.org/10.5753/educomp_estendido.2024.238807.