On the Use of Static Analysis to Engage Students with Software Quality Improvement: An Experience with PMD
Eman Abdullah AlOmar, Salma Abdullah AlOmar, Mohamed Wiem Mkaouer

TL;DR
This study explores the use of static analysis tools, specifically PMD, in a classroom setting over three semesters to assess their effectiveness in improving students' software quality awareness and coding skills.
Contribution
The paper provides empirical evidence on how static analysis tools influence student code review behavior and highlights their potential as educational scaffolding tools.
Findings
Students recognize the value of static analysis in code review.
Longer-resolved issues tend to influence student decisions more.
Static analysis tools can be integrated into educational strategies for software quality improvement.
Abstract
Static analysis tools are frequently used to scan the source code and detect deviations from the project coding guidelines. Given their importance, linters are often introduced to classrooms to educate students on how to detect and potentially avoid these code anti-patterns. However, little is known about their effectiveness in raising students awareness, given that these linters tend to generate a large number of false positives. To increase the awareness of potential coding issues that violate coding standards, in this paper, we aim to reflect on our experience with teaching the use of static analysis for the purpose of evaluating its effectiveness in helping students with respect to improving software quality. This paper discusses the results of an experiment in the classroom over a period of 3 academic semesters, involving 65 submissions that carried out code review activity of 690…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Reliability and Analysis Research · Software Engineering Techniques and Practices
