I. Introduction
Software Engineering (SE) deals with the application of systematic, disciplined, and quantifiable approaches to develop, operate, maintain, and evolve software [1], [2]. Currently, SE subjects are present in several undergraduate courses, although there is no consensus on what methods should be used to teach them [3], [4]. Balancing theory and practice is a recurring challenge in Software Engineering Education. A key objective in a SE program is to provide students with the necessary tools to begin professional engineering practice [5]. Additionally, SE students are expected to be able to choose and implement the development process best suited to the reality of a software development company or sector.