TY - GEN
T1 - Threshold-Based Analysis of the Code Quality of High-Performance Computing Software Packages
AU - Ndemeye, Bosco
AU - Hussain, Shahid
AU - Norris, Boyana
N1 - Publisher Copyright:
© 2021 IEEE.
PY - 2021
Y1 - 2021
N2 - Many popular metrics used for the quantification of the quality or complexity of a codebase (e.g. cyclomatic complexity) were developed in the 1970s or 1980s when source code sizes were significantly smaller than they are today, and before a number of modern programming language features were introduced in different languages. Thus, the many thresholds that were suggested by researchers for deciding whether a given function is lacking in a given quality dimension need to be updated. In the pursuit of this goal, we study a number of open-source high-performance codes, each of which has been in development for more than 15 years - a characteristic which we take to imply good design to score them in terms of their source codes' quality and to relax the above-mentioned thresholds. First, we employ the LLVM/Clang compiler infrastructure and introduce a Clang AST tool to gather AST-based metrics, as well as an LLVM IR pass for those based on a source code's static call graph. Second, we perform statistical analysis to identify the reference thresholds of 22 code quality and callgraph-related metrics at a fine grained level.
AB - Many popular metrics used for the quantification of the quality or complexity of a codebase (e.g. cyclomatic complexity) were developed in the 1970s or 1980s when source code sizes were significantly smaller than they are today, and before a number of modern programming language features were introduced in different languages. Thus, the many thresholds that were suggested by researchers for deciding whether a given function is lacking in a given quality dimension need to be updated. In the pursuit of this goal, we study a number of open-source high-performance codes, each of which has been in development for more than 15 years - a characteristic which we take to imply good design to score them in terms of their source codes' quality and to relax the above-mentioned thresholds. First, we employ the LLVM/Clang compiler infrastructure and introduce a Clang AST tool to gather AST-based metrics, as well as an LLVM IR pass for those based on a source code's static call graph. Second, we perform statistical analysis to identify the reference thresholds of 22 code quality and callgraph-related metrics at a fine grained level.
UR - http://www.scopus.com/inward/record.url?scp=85140914067&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85140914067&partnerID=8YFLogxK
U2 - 10.1109/QRS-C55045.2021.00041
DO - 10.1109/QRS-C55045.2021.00041
M3 - Conference contribution
AN - SCOPUS:85140914067
T3 - Proceedings - 2021 21st International Conference on Software Quality, Reliability and Security Companion, QRS-C 2021
SP - 222
EP - 228
BT - Proceedings - 2021 21st International Conference on Software Quality, Reliability and Security Companion, QRS-C 2021
PB - Institute of Electrical and Electronics Engineers Inc.
T2 - 21st International Conference on Software Quality, Reliability and Security Companion, QRS-C 2021
Y2 - 6 December 2021 through 10 December 2021
ER -