Does Static Analysis Help Software Engineering Students?

Reinhold Plösch, Cornelia Neumüller

Research output: Chapter in Book/Report/Conference proceedingConference proceedingspeer-review

Abstract

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.
Original languageEnglish
Title of host publication9th International Conference on Educational and Information Technology (ICEIT 2020), Oxford, United Kingdom, February 11-13, 2020
Pages247-253
Number of pages10
ISBN (Electronic)9781450375085
DOIs
Publication statusPublished - Feb 2020

Fields of science

  • 202005 Computer architecture
  • 202017 Embedded systems
  • 102 Computer Sciences
  • 102002 Augmented reality
  • 102006 Computer supported cooperative work (CSCW)
  • 102015 Information systems
  • 102020 Medical informatics
  • 102022 Software development
  • 102034 Cyber-physical systems
  • 201132 Computational engineering
  • 201305 Traffic engineering
  • 207409 Navigation systems
  • 502032 Quality management
  • 502050 Business informatics

JKU Focus areas

  • Digital Transformation

Cite this