Diagnosis of Teaching Non-Functional Software Requirements and User Experience in Undergraduate Computer Science Courses in Brazil

Authors

DOI:

https://doi.org/10.5753/rbie.2025.5435

Keywords:

Non-Functional Software Requirements, User Experience, Software Engineering, Human-Computer Interaction, Computer Science Curricula, Computer Education

Abstract

This article presents a diagnosis of the teaching of Non-Functional Requirements (NFRs) and User Experience (UX) in undergraduate Computer Science courses in Brazil. The research considers the 2020 ACM/IEEE curriculum, the 2017 Brazilian Computer Society (SBC) Training References, and the Software Engineering Body of Knowledge (SWEBOK – 3.0) Guide, the main references for Computer Science curricula in Brazil. Pedagogical Course Projects (PPCs), teaching plans, and program contents of 44 courses were analyzed, covering 62 disciplines distributed among 24 institutions, considered the best Brazilian universities in Computer Science according to the 2024 Folha University Ranking (RUF). The results show that NFRs are mainly addressed in Software Engineering disciplines, with a focus on Security, Usability, and Performance. Subtopics such as Emergent Properties, Error Handling, Fault Tolerance and Emergent System Properties are absent. The UX is covered in Human-Computer Interaction courses, addressing Interface Design, Accessibility and Usability Heuristics. Subtopics such as Localization, Internationalization and Software Robustness receive little attention. The predominant workload is 60 hours, adequate for introductory content, but may be insufficient for specialized topics of NFRs and UX from SWEBOK, which are absent in the analyzed curricula. Practical and extension activities carried out by some universities are valuable for applying knowledge. The conformity of curricula related to NFRs and UX, compared to the ACM/IEEE and SBC references, is limited, evidencing a gap to be addressed. The study shows that curricula do not integrate NFRs and UX, restricting a holistic view for the development of robust and user-friendly systems. It is concluded that there are opportunities to improve curricula, recommending an interdisciplinary approach aligned with the ACM/IEEE, SBC and SWEBOK Guide guidelines, strengthening the technical training of students and increasing the quality of the systems developed.

Downloads

Download data is not yet available.

References

Association for Computing Machinery & IEEE Computer Society. (2020). Computing Curricula 2020: Paradigms for Global Computing Education. [Link]. [GS Search]

Barbosa, S., & Silva, B. (2010). Interação humano-computador. Elsevier Brasil. [GS Search]

Bourque, P., & Fairley, R. (2014). SWEBOK: Guide to the software engineering body of knowledge (3ª ed.). Los Alamitos, CA: IEEE Computer Society. [Link]. [GS Search]

Castro, V. D. S., & Oliveira, S. R. B. (2023). A diagnosis on the teaching of software design in a sample of undergraduate courses in computer science in Brazil. In 2023 IEEE Frontiers in Education Conference (FIE), 1–9. IEEE. https://doi.org/10.1109/FIE58773.2023.10343311. [GS Search]

Diniz, L. M. F., Pereira, M. V., Paula, L. J. D., & Melo Silva, E. C. (2020). Aprendizado baseado em projetos em IHC (presencial e remoto): Prototipação segundo as heurísticas de Nielsen. In Anais Estendidos do XIX Simpósio Brasileiro de Fatores Humanos em Sistemas Computacionais, 13–18. SBC. https://doi.org/10.5753/ihc.2020.14048. [GS Search]

Elgrably, I. S., & Oliveira, S. R. B. (2021). A diagnosis on software testing education in the Brazilian universities. In 2021 IEEE Frontiers in Education Conference (FIE), 1–8. IEEE. https://doi.org/10.1109/FIE49875.2021.9637305. [GS Search]

Ferreira, T., Viana, D., Fernandes, J. C., & Santos, R. (2018). Identifying emerging topics and difficulties in software engineering education in Brazil. In Proceedings of the XXXII Brazilian Symposium on Software Engineering (SBES ’18), 230–239. ACM. https://doi.org/10.1145/3266237.3266247. [GS Search]

Ferreira, V., Souza, M., & Parreira Júnior, P. (2024). Caracterização do nível de adequação das matrizes curriculares dos cursos de computação no Brasil ao modelo de competências da SBC. In Anais do XXXII Workshop sobre Educação em Computação, 443-454. Porto Alegre: SBC. https://doi.org/10.5753/wei.2024.1966. [GS Search]

Folha de São Paulo. (2024). Ranking de cursos de graduação: Computação. Recuperado em 5 de novembro de 2024. [Link].

Instituto Nacional de Estudos e Pesquisas Educacionais Anísio Teixeira. (2017). Instrumento de avaliação de cursos de graduação: presencial e a distância: reconhecimento, renovação de reconhecimento. Inep. [Link].

Krause, R., & Rosala, M. (2019). User experience careers: What a career in UX looks like today (2ª ed.). Recuperado em 13 de novembro de 2024. [Link].

Leite, F. T., Coutinho, J. C. S., & Sousa, R. R. (2020). An experience report about challenges of software engineering as a second cycle course. In Proceedings of the XXXIV Brazilian Symposium on Software Engineering (SBES ’20), 824–833. ACM. https://doi.org/10.1145/3422392.3422487. [GS Search]

Li, Y., Keung, J., Ma, X., Zhang, J., Yang, Z., & Liu, S. (2023). Learning gaps in project-based requirements engineering education: A case study of student projects. In 2023 International Symposium on Educational Technology (ISET), 239–243. IEEE. https://doi.org/10.1109/ISET58841.2023.00054. [GS Search]

Lima, I. F. G., Melo, M. C., da Silva, W. E., & Falcão, T. P. (2019). Interdisciplinaridade e IHC: Possibilidades no contexto da licenciatura em computação. In Anais Estendidos do XVIII Simpósio Brasileiro sobre Fatores Humanos em Sistemas Computacionais, 82–87. SBC. https://doi.org/10.5753/ihc.2019.8405. [GS Search]

Ministério da Educação (MEC). (2016). Resolução nº 05, de 16 de novembro de 2016: Diretrizes curriculares nacionais para os cursos de graduação em computação. Ministério da Educação – Brasil. [Link].

Ministério da Educação. (2025). Cadastro Nacional de Cursos e Instituições de Educação Superior – Cadastro e-MEC. [Link].

Moreno, A. M., Sanchez-Segura, M. I., Medina-Dominguez, F., & Carvajal, L. (2012). Balancing software engineering education and industrial needs. Journal of Systems and Software, 85(7), 1607–1620. https://doi.org/10.1016/j.jss.2012.01.060. [GS Search]

Oliveira, A., Correia, J., Assunção, W. K. G., Pereira, J. A., Mello, R., Coutinho, D., Barbosa, C., Libório, P., & Garcia, A. (2024). Understanding developers’ discussions and perceptions on non-functional requirements: The case of the Spring ecosystem. Proceedings of the ACM on Software Engineering, 1(FSE), 517-538. https://doi.org/10.1145/3643750. [GS Search]

Pressman, R., & Maxim, B. (2016). Engenharia de software: Uma abordagem profissional. McGraw Hill Educação. [GS Search]

Ramos, F. B. A., Pedro, A., Cesar, M., Costa, A. A. M., Perkusich, M. B., Almeida, H. O., & Perkusich, A. (2019). Evaluating software developers' acceptance of a tool for supporting agile non-functional requirement elicitation. In Proceedings of the International Conference on Software Engineering and Knowledge Engineering (SEKE), 26–42. KSI Research. [GS Search]

Runeson, P., & Höst, M. (2009). Guidelines for conducting and reporting case study research in software engineering. Empirical Software Engineering, 14(2), 131–164. https://doi.org/10.1007/s10664-008-9102-8. [GS Search]

Sommerville, I. (2011). Software engineering (9ª ed.). Pearson Education Brasil.

Stewart, D. W., & Kamins, M. A. (1993). Secondary research: Information sources and methods (Vol. 4). Sage. [GS Search]

Tebes, G., Peppino, D., Becker, P., Matturro, G., Solari, M., & Olsina, L. (2020). Analyzing and documenting the systematic review results of software testing ontologies. Information and Software Technology, 123. https://doi.org/10.1016/j.infsof.2020.106298. [GS Search]

Valle, P. H. D., Barbosa, E. F., & Maldonado, J. C. (2015). CS curricula of the most relevant universities in Brazil and abroad: Perspective of software testing education. In 2015 International Symposium on Computers in Education (SIIE) 62–68. IEEE. https://doi.org/10.1109/SIIE.2015.7451649. [GS Search]

Werner, C. (2022). Towards a theory of shared understanding of non-functional requirements in continuous software engineering. In Proceedings of the ACM/IEEE 44th International Conference on Software Engineering: Companion Proceedings, 300–304. ACM/IEEE. https://doi.org/10.1145/3510454.3517069. [GS Search]

Werner, C., Li, Z. S., Ernst, N., & Damian, D. (2020). The lack of shared understanding of non-functional requirements in continuous software engineering: Accidental or essential? In 2020 IEEE 28th International Requirements Engineering Conference (RE), 90–101. IEEE. https://doi.org/10.1109/RE48521.2020.00021. [GS Search]

Yadav, A., Gretter, S., Hambrusch, S., & Sands, P. (2016). Expanding computer science education in schools: understanding teacher experiences and challenges. Computer Science Education, 26(4), 235–254. https://doi.org/10.1080/08993408.2016.1257418. [GS Search]

Zorzo, A. F., Nunes, D., Matos, E., Steinmacher, I., Leite, J., Araújo, R. M., Correia, R., & Martins, S. (2017). Referenciais de formação para os cursos de graduação em computação. Sociedade Brasileira de Computação (SBC). Link. [GS Search]

Published

2025-07-04

How to Cite

FERREIRA, J. V.; OLIVEIRA, S. R. B.; PORTELA, C. do S. Diagnosis of Teaching Non-Functional Software Requirements and User Experience in Undergraduate Computer Science Courses in Brazil. Brazilian Journal of Computers in Education, [S. l.], v. 33, p. 643–671, 2025. DOI: 10.5753/rbie.2025.5435. Disponível em: https://journals-sol.sbc.org.br/index.php/rbie/article/view/5435. Acesso em: 30 jan. 2026.

Issue

Section

Articles