TechRxiv
Towards a systematic approach to manual annotation of code smells Preprint.pdf (598.46 kB)
Download file

Towards a systematic approach to manual annotation of code smells

Download (598.46 kB)
preprint
posted on 09.03.2021, 02:33 by Nikola LuburićNikola Luburić, Simona Prokić, Katarina-Glorija Grujić, Jelena Slivka, Aleksandar Kovačević, Goran Sladić, Dragan Vidaković
Code smells are structures in code that indicate the presence of maintainability issues. A significant problem with code smells is their ambiguity. They are challenging to define, and software engineers have a different understanding of what a code smell is and which code suffers from code smells.
A solution to this problem could be an AI digital assistant that understands code smells and can detect (and perhaps resolve) them. However, it is challenging to develop such an assistant as there are few usable datasets of code smells on which to train and evaluate it. Furthermore, the existing datasets suffer from issues that mostly arise from an unsystematic approach used for their construction.
Through this work, we address this issue by developing a procedure for the systematic manual annotation of code smells. We use this procedure to build a dataset of code smells. During this process, we refine the procedure and identify recommendations and pitfalls for its use. The primary contribution is the proposed annotation model and procedure and the annotators’ experience report. The dataset and supporting tool are secondary contributions of our study. Notably, our dataset includes open-source projects written in the C# programming language, while almost all manually annotated datasets contain projects written in Java.

Funding

Science Fund of the Republic of Serbia, Grant No 6521051, AI-Clean CaDET

History

Email Address of Submitting Author

slivkaje@uns.ac.rs

ORCID of Submitting Author

0000-0002-2436-7881

Submitting Author's Institution

Faculty of Technical Sciences, University of Novi Sad

Submitting Author's Country

Serbia

Usage metrics

Licence

Exports