IEEE Access (Jan 2024)

Emerging Trends in Code Quality: Introducing Kotlin-Specific Bad Smell Detection Tool for Android Apps

  • Radinal Dwiki Novendra,
  • Wikan Danar Sunindyo

DOI
https://doi.org/10.1109/ACCESS.2024.3397055
Journal volume & issue
Vol. 12
pp. 63895 – 63903

Abstract

Read online

The increasing demand for Android applications in line with technological evolution and the development of new features often leads to frequent updates and releases of applications. However, in this update cycle, developers sometimes make hasty changes that result in poor design choices, leading to the emergence of bad smell code. The impact of smells involves a decrease in quality, performance, and understanding, and impedes the software maintenance process. Some previously developed smell detection tools rely on JavaParser to parse source code into an Abstract Syntax Tree representation, meaning the extracted information is limited to Java programming language source code. Meanwhile, Google recommends Kotlin as the language for developing Android applications, and over 60% of professional Android developers use Kotlin. This research is using Program Structure Interface representation and applies a software metric-based approach as a method of smell detection and implements it into a Kotlin Android bad smell code detection tool. This approach was chosen because the characteristics of each smell can be represented with software metrics. The tool’s evaluation results on five Kotlin Android projects showed an F-measure of 100% for Brain Class detection, 93.77% for God Class, and 85.71% for Brain Method. Comparing the tool’s detection results with the iPlasma tool on the Quran project showed that the developed tool detected more smell occurrences. Usability testing results indicated that seven participants strongly agreed with the easy-to-understand detection results, easy-to-find presented functionality, clearly presented information, and the tool helped to perform metric calculation and smell detection more quickly and efficiently. The average rating given for each question was between 4.29 – 4.71.

Keywords