4.1. Overview of Phases
As a result of executing the search string in the selected databases,
Figure 2 shows the number of studies per year submitted to selection phases I, II and III, as defined in
Table 2.
Upon completion of the study selection phases,
Table 4 presents the number of studies selected in each phase. It is noteworthy that the studies selected in Phase III, used for data extraction in order to obtain answers to the research questions, totaled 51 studies, representing 16.88% of the total studies searched, as can be seen in
Appendix A.
As for the distribution of studies for each year,
Figure 2, there is a similarity, in quantitative terms, of the number of articles searched and articles selected, except for the year 2022, as the execution of the research was held in the first quarter of that year.
As a mechanism for classifying the studies, the evaluation criteria were applied to the selected studies.
Figure 3 presents the percentages of works by point range (0 to 10), as established in
Table 3. Considering that evaluations greater than 7 indicate studies with a higher quality indicator, it is noted that the research included 62.75% of selected studies. Only 11.76% of the studies received an evaluation of less than 5 points. In contrast, only studies PS03, PS10, PS14, PS16 and PS18 received a score of 10, fully meeting all the quality criteria.
In regard to the undergraduate courses with the highest incidence of selected studies, the following 4 courses were found to have the greatest representation among the 15 different courses: Computer Science (CS) with 50.98%, Software Engineering (SE) with 31.37%, Computer Engineering (CE) with 3.92% and Information Systems (IS) with 3.92%. Among the 15 courses found, PS13, PS29, PS34 and PS49 studies were from Postgraduate courses in Software Engineering.
The higher incidence of the Computer Science course is due to the fact the course emphasizes the teaching of Software Design and Construction (SDC), reflected in the areas of Fundamentals of Software Development, Fundamentals of Systems and Software Engineering totaling 40.60% of the course load [
28].
The CS and SE courses predominated in the studies due to their curricular organization and course emphasis on Software Development, Systems Infrastructure and Technological Applications, in contrast to the IS course, which focuses on Systems Organization [
3] (p. 39).
Research evaluation methods were among the data extracted from the selected studies, and
Table 5 presents the evaluation methods, the studies that used the methods and the percentage of use of the methods among the selected studies.
It is noted that the use of a Questionnaire was the method used in 53.85% of the studies, being the main tool to obtain structured data, through multiple-choice questions, and to obtain an evaluation through comments made by the participants of the research using open-ended questions.
Among the methods used, it can also be highlighted that the analysis of data generated by tools and the evaluation of code quality were unique methods used. In PS26, the tool used the data from the commitment made by students to present the evaluation on compiling the source code, executing the unit tests and performing static analyses on the submitted code. As a result of this work, there was a stimulus for the development of the project and the number of activities submitted before the deadline, encouraging students to point out indicators to improve the source code produced.
In PS12, the objective was to submit the source code produced by the students on a website for quality evaluation, with the result generated by the evaluation website being a mandatory item for the delivery of the activity. The results of this work indicated that the execution of code evaluation as an evaluation item enabled the improvement of the students’ code, and 70% of the survey respondents identified benefits in the use of the teaching method.
4.2. Q1—How Do the Computer Courses Approach the Knowledge Area of Software Design and Construction (SDC)?
Research question 1, Q1, sought to identify how the computer courses presented the SDC knowledge area; in short, in which curricular structures SDC content was present. In the data extraction process to answer Q1, it was identified that Teaching Unit or Subjects were related to the teaching of SDC.
The five Teaching Units/Subjects in which the SDC knowledge area was addressed with the highest percentage among the selected studies were:
Software Engineering (SE): PS01, PS03, PS06, PS13, PS14, PS19, PS20, PS21, PS22, PS24, PS26, PS36, PS42, PS43, PS44, PS45 and PS47 studies, with 20.24%,
Software Architecture (SA): PS15, PS39 and PS50 studies, with 3.57%,
Database (DB): PS01 and PS03 studies, with 2.38%,
Data Structure (DS): PS05 and PS26 studies, with 2.38%, and
Software Engineering I (SE-I): PS05 and PS23 studies, with 2.38%.
It is noteworthy that among the selected studies there were 56 different Teaching Units/Subjects. However, only those mentioned in the graph in Figure 5 had more than one occurrence. In addition, 7 studies (PS02, PS28, PS29, PS30, PS32, PS46 and PS49) did not mention the teaching unit/subject, as they were general studies about the course, internships, extension programs or analytical studies about the syllabus.
Based on the results obtained, PS11 stood out. It presented the implementation of the teaching unit called SE-First, with the objective of integrating non-technical skills (soft skills) to Software Engineering before students effectively participated in subjects with technical characteristics. As a result of this study, cited in the work, students who participated in SE-First showed greater learning than students who participated in traditional approaches without using SE-First.
From the results, it is noted that Software Engineering was the main teaching unit to present SDC content.
4.3. Q2 — How Does the Teaching of Software Engineering Present the Content Related to the Knowledge Area of Software Design and Construction?
Research question 2, Q2, sought to identify how SDC teaching is presented, and, for this purpose, the following classification was used:
Theoretical: presentation of the content of the teaching unit/subject in an expositive way, aimed at conceptualization,
Practical: carrying out activities that involve the application of the content in a practical way, through the development of projects, and practice at problem solving in laboratories,
Theoretical and Practical: work that uses both approaches together.
Figure 4 shows 54.90% for teaching SDC in a practical way and 35.29% for theoretical and practical, which reinforces the fact that teaching of SDC is mostly presented in a practical way, compared to a theoretical approach.
In addition, research question Q2 extracted information on the involvement of students in the teaching–learning process, either actively, when the student is the protagonist and autonomous in the teaching–learning process, or passively, when the student is a receiver of information passed on by the teacher without active participation in this process.
In the selected studies, from the perspective of the teaching approach being active or passive, 90.20% of the studies were found to be active, and 9.80% passive. This is mainly due to the use of practical activities, many of them conducted in groups, which encourage students to play a leading role in the teaching–learning process.
Among the studies with exclusively practical teaching approaches, the courses with the highest percentage were CS, with 40.63%, and SE, with 28.13%, and the other courses had 3.13%. It is noted that the CS and SE courses had a higher incidence of practical work due to the curricular structure being focused on Software Development, Systems Fundamentals and Software Engineering activities [
28].
4.4. Q3—What Strategies (Methods, Techniques, Tools, Approaches) Are Used for Teaching Software Design and Construction in the Context of Software Engineering?
Research question 3, Q3, aimed to identify which strategies were used for teaching SDC. The methods, techniques and approaches used to present content, whether in a practical or theoretical way, were considered as strategies for teaching SDC.
Due to the identification of strategies involving group work among the selected studies, this subsection presents the number of members of the groups and the type of stakeholders when an activity involved software project development.
Table 6 presents the identified strategies, as well as which studies employed the strategies and the percentage of occurrence among the selected studies. It is noted that the formation of a group for project development was the most used strategy. In addition, several practices were found, which highlights the diversity of ways of teaching SDC.
Regarding the strategies, presented in
Table 6, the following active learning methods were identified as standing out: Project-Based Learning, Problem-Based Learning and Flipped Classroom.
PS47 was about an athletic teaching approach that was applied in 3 subjects in the Software Engineering course. This practice seeks to develop the student’s skills with a focus on efficiency and performance. The execution of the approach consists of presenting a problem to the students and a video demonstrating an alternative solution in the optimal resolution time. The video allows students to understand the importance of finding a solution to apply to a specific problem within time. Based on the problem, the teacher decides the necessary time interval to solve it, basing the maximum time for the activity on the optimal time. Students develop the solution to the problem presented in a timely way in the classroom, known as Workout. If the student exceeds the maximum time, he or she must review the solution and restart the whole process, resetting the timer to build the solution again.
The results of the work in PS47 indicated that 96% of the research participants preferred the use of an athletic approach, compared to the traditional teaching approach, and, in addition, 82% of the research participants indicated that Workout brought focus to development of a problem.
In addition, another study that represents the diversity of approaches to teaching SDC is the work in PS41, in which the focus was the use of the collaborative learning method in requirements engineering for software diagram evaluation by students. The method consists of dividing students into teams to discuss a topic. The teacher divides the topic into parts and the team decides which student takes notes on each part. After that, students from different teams with the same part of the topic group together to share information about the study. Finally, students return to their original groups to share the results of the discussions and to develop a presentation on the specific topic. As a result, 75% of the students who participated in the survey demonstrated satisfaction with the use of collaborative participation and highlighted a better understanding of software modeling content.
The review also extracted the amount of each strategy, in percentage, used to teach SDC, as shown in Figure 7. It is noted that the use of one strategy accounted for 54.90% and, in the two strategies, it represented 29.41% of the studies. There were studies, representing 15.69%, that used more than two strategies to teach SDC.
PS13, for instance, combined 5 strategies: Problem-Based Learning, Project-Based Learning, Educational Games, Mind Maps and Quizzes. As a result, the research participants indicated that the integration of active methodologies with gamification increased student engagement in the classroom. Unlike PS13, PS16 presented the combination of 4 strategies restricted to the following active methodologies: Problem-Based Learning, Investigation-Based Learning, Peer Learning and Project Development Group. The results of the studies identified that the Problem-Based Learning strategy was the most efficient for learning, compared to the others used in the study. It was identified that students who participated in the study using such strategies obtained better grades than groups that did not use them.
In regard to the studies that presented the development of SDC activities as teamwork, the number of participants in each team was taken into consideration. The grouping carried out to generate
Figure 5 follows: maximum 4 members (2, 2 to 3, 2 to 4 and 3 to 4), maximum 6 members (3 to 5, 3 to 6, 4 to 5, 4 to 6, 5 and 5 to 6) and a maximum of 8 members (6 to 8 and 8).
Regarding team activities, information was extracted about the origin of the project’s stakeholder, and the works were classified as follows:
Not defined: No indications of project stakeholder identity. In some cases, the team itself assumed this role, such as PS04, PS05, PS07, PS10, PS12, PS13, PS14, PS16, PS20, PS23, PS25, PS31, PS37, PS45, PS46 and PS50,
Internal: Subject teacher or monitor characterized as stakeholder, as in PS19, PS24, PS36 and PS40,
External: Person external to the subject characterized as stakeholder. In many cases, this was a representative of a company for which the group was developing a project, as in PS01, PS02, PS03, PS28, PS30, PS32, PS38, PS43 and PS44.
In this regard, 43.13% of the studies did not have strategies that required stakeholders for the projects.
Figure 6 presents the distribution by classification among the works that required a stakeholder role. Analysis of this indicator, and removal of works classified as “Not defined”, exhibited that 69.23% of the works had external stakeholders.
Among the works that made use of external stakeholders, PS02 stood out. In this study, the Project-Based Learning teaching strategy was used in the software engineering course so as to present how the strategy stimulated the collaboration of students with stakeholders, from the perspective of seeking solutions for a given problem. Each student had a specific role within the project and there was a different stakeholder for each group. Despite the projects being developed for application in a real environment, the stakeholders were not interested in the finished product, but rather in ideas to solve the requisite problem. As a result, through interviews, 90% of stakeholders recommended the use of this teaching strategy.
Regarding the way students were selected for the teams, only PS13, PS14, PS34 and PS45 presented the format used. In all, 75% of the studies used automated tools, taking into account answers to a questionnaire, to organize teams.
In PS34 and PS45, the tool chosen to divide the teams was CATME (Available online:
https://info.catme.org/ (accessed on 20 December 2022)). In PS45, personal criteria were included for team formation, such as the following: gender, average grade, available time for the agenda and level of commitment. In addition, the tool was used to carry out peer evaluation among students on the same team for the following items: contribution to the team, interaction with the team, knowledge and skills.
In the case of tools and technologies used in teaching SDC, 50% of the studies did not present tools or technologies, according to
Table 7. This is due to the emphasis of the works on the evaluation of teaching strategy and not of the technology or tool used for teaching SDC.
Another aspect worth highlighting is the use of tools that operate in SDC support processes, such as Project Management and Software Configuration Management. The use of Git as the project’s version control technology (Git, Github and Gitlab) wss present in 10.18% of the studies. Tools directed towards Project Management (Trello, MS Project, Taiga, Zenhub and Agilefant) were in 3.72% of the studies, which demonstrates the possibility of combining other areas of Software Engineering with teaching of SDC.
4.5. Q4—How Were the Strategies, (Obtained as Results to Q3), Used to Teach Software Design and Construction in the Context of Software Engineering Evaluated?
Research Question 4, Q4, aimed to identify how strategies for teaching SDC were evaluated. The forms reflect what types of evaluation teachers use to measure the teaching–learning process in teaching units/subjects.
Table 8 presents a summary of the strategies identified in the studies, as well as the percentage of incidence. It is noted that the highest percentage of works did not present an evaluation strategy, namely, 12.20%.
Question Q4 identified the diversity of forms of evaluation used in teaching SDC, with 49 strategies, among the selected studies.
It is worth mentioning that the evaluation strategies aimed at delivering projects, whether final or partial, obtained 9.76% and 4.88%, respectively. Regarding the diversity of evaluation, PS40 and PS48 stood out with 7 evaluation strategies applied together in the same study. Despite the use of different strategies to evaluate the teaching of SDC, the studies did not explore the impact of number of strategies applied to teaching.
PS40 presented 7 evaluation strategies: Oral presentation, Individual contribution to the project, Final delivery of the Project, Partial delivery of the Project, Laboratory, Test and Quizz. The objective of this work was to carry out the evaluation of the SE subject over 6 semesters of Project-Based Learning. In this study, agile practices, such as the following, were used in the development of projects by students: interactive and incremental development, collective ownership, fixed-size interactions, continuous delivery, periodic meeting, simple project and pair programming. Regarding teaching evaluations, individual project grades were defined for activities assigned in each project interaction in conjunction with the evaluation of the project repository by the professor and monitor. In addition, there were presentations of the projects by the teams, one partial and one final, and both with evaluation weight.
PS48 aimed to apply the constructivist alignment theory in two subjects with the use of formative feedback and late summative evaluation. Regarding the teaching evaluations, each week the students submitted the activities and the teacher performed the evaluation (without assigning a grade) and provided formative feedback. Students were encouraged to incorporate feedback and resubmit the activity. At the end of the teaching unit, the teacher evaluated the portfolio of activities sent by the student. In practice, the student submitted the Activity Portfolio at the end, including all the work products that helped in learning, such as notes, mental maps, reports, source code, etc.
Among the selected studies, only 8 presented the weights of each evaluation item for the final grade, with 6 having project development subjects, according to
Table 9. Among the weights attributed to the project, a maximum percentage of 80% and minimum of 33% were indicated. These percentages contributed to the development of the teaching unit with a focus on practical activities, and, in particular, the development of projects. Regarding the percentage difference of the project’s weight in the final evaluation, the diversity and non-standardization in the evaluation process for the teaching units that involved the development of projects was evident.