R. Plösch, C. Neumüller: Does Static Analysis Help Software Engineering Students?, 9th International Conference on Educational and Information Technology (ICEIT 2020), Oxford, United Kingdom, February 11-13, 2020. Doi: 10.1145/3383923.3383957

Research on the impact of static analysis tools on software quality is often targeted towards practitioners or open source projects in general. Research in the field of software education concentrates on the usefulness of static analysis in introductory courses to programming. Contrary, we want to find out, whether students doing their first larger programming project (projects of 3000 to 5000 LOC) can benefit from applying static analysis tools. We therefore prepared a SonarQube based quality profile with 448 coding best practices and set up an environment that helped us to analyze code submitted by the students throughout a semester. Students were asked to frequently have a look at the provided data (using the SonarQube dashboard) and to fix those violations of best practices where they thought it makes sense. There were no incentives or penalties for fixing or not fixing these violations of best practices. The case study shows that there are substantially different kinds of violations of best practices depending on the experience level of the student teams. Additionally, while high experience and moderate experience student teams learn quickly and substantially during a semester, students with low experience have difficulties in understanding the underlying problems of the reported violations of best practices.

Does Static Analysis Help Software Engineering Students?