Title
Learning a classifier for prediction of maintainability based on static analysis tools
Abstract
Static Code Analysis Tools are a popular aid to monitor and control the quality of software systems. Still, these tools only provide a large number of measurements that have to be interpreted by the developers in order to obtain insights about the actual quality of the software. In cooperation with professional quality analysts, we manually inspected source code from three different projects and evaluated its maintainability. We then trained machine learning algorithms to predict the human maintainability evaluation of program classes based on code metrics. The code metrics include structural metrics such as nesting depth, cloning information and abstractions like the number of code smells. We evaluated this approach on a dataset of more than 115,000 Lines of Code. Our model is able to predict up to 81% of the threefold labels correctly and achieves a precision of 80%. Thus, we believe this is a promising contribution towards automated maintainability prediction. In addition, we analyzed the attributes in our created dataset and identified the features with the highest predictive power, i.e. code clones, method length, and the number of alerts raised by the tool Teamscale. This insight provides valuable help for users needing to prioritize tool measurements.
Year
DOI
Venue
2019
10.1109/ICPC.2019.00043
Proceedings of the 27th International Conference on Program Comprehension
Keywords
Field
DocType
code comprehension, maintenance tools, software maintenance, software quality, static code analysis
Data mining,Static program analysis,Source code,Computer science,Software system,Software maintenance,Software quality,Code smell,Maintainability,Source lines of code
Conference
ISSN
ISBN
Citations 
2643-7147
978-1-7281-1520-7
0
PageRank 
References 
Authors
0.34
18
4
Name
Order
Citations
PageRank
Markus Schnappinger132.41
Mohd Hafeez Osman271.55
Alexander Pretschner3269.69
Arnaud Fietzke431.40