Learning a classifier for prediction of maintainability based on static analysis tools

Markus Schnappinger, Mohd Hafeez Osman, Alexander Pretschner, Arnaud Fietzke

Publikation: Beitrag in Buch/Bericht/KonferenzbandKonferenzbeitragBegutachtung

20 Zitate (Scopus)

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.

OriginalspracheEnglisch
TitelProceedings - 2019 IEEE/ACM 27th International Conference on Program Comprehension, ICPC 2019
Herausgeber (Verlag)IEEE Computer Society
Seiten243-248
Seitenumfang6
ISBN (elektronisch)9781728115191
DOIs
PublikationsstatusVeröffentlicht - Mai 2019
Veranstaltung27th IEEE/ACM International Conference on Program Comprehension, ICPC 2019 - Montreal, Kanada
Dauer: 25 Mai 2019 → …

Publikationsreihe

NameIEEE International Conference on Program Comprehension
Band2019-May

Konferenz

Konferenz27th IEEE/ACM International Conference on Program Comprehension, ICPC 2019
Land/GebietKanada
OrtMontreal
Zeitraum25/05/19 → …

Fingerprint

Untersuchen Sie die Forschungsthemen von „Learning a classifier for prediction of maintainability based on static analysis tools“. Zusammen bilden sie einen einzigartigen Fingerprint.

Dieses zitieren