Exploring Complexity Issues in Junior Developer Code Using Static Analysis and FCA
Arthur-Jozsef Molnar, Simona Motogna, Diana Cristea, Diana Şotropa · 2024
We report on an exploratory evaluation that com-bines static analysis with formal concept analysis to investigate complexity issues in source code produced as part of a mandatory course in computer science. Our dataset includes over 500 Python and Java projects that represent student solutions to four semesters worth of programming assignments. We employ the latest version of SonarQube configured to use an extended set of analysis rules and focus on code complexity issues, which are known to impact code readability and maintainability. We study the distribution and composition of these complexity issues and employ formal concept analysis to study the relation between them and other issue types. We present the results of a comparative evaluation regarding the distribution of code complexity issues between Python and Java. Our most important results are synthesized in a series of remarks to help practitioners and educators allay complexity issues in junior developer code, as well as assist the latter in improving their coding skills. Finally, the dataset and SonarQube configuration are available in the form of an open data package that enables replicating or extending our work.