Android Smells Detection Using ML Algorithms with Static Code Metrics

Mobile applications development rate is predominantly increasing in comparison with the regular applications. These mobile applications prove to be change frequently according to the user requirements. Moreover, these changes in the code base may introduce some bad design practices that are called as bad smells, which can lead to a higher maintenance cost and degrade quality of the software. A very less attention has been given in the detection of code smells in the mobile applications that are also called as android smells. This research contains the rules in combination of software metrics and their threshold values to detect the bad smells in the android applications. The proposed rules are computed using three different machine learning algorithms. This framework has been applied to 2896 instances of the android applications which are open-sourced on GitHub. The android code smells MIM, LIC, DTWC and SL have been considered for the generation of detection rules and are validated using 10-fold cross validation method. The machine learning algorithm JRip furnished the best result for the android smells up to 90% overall precision, which is quite sufficient to justify the results.

[1]  Dali Zhu,et al.  Permission-Based Feature Scaling Method for Lightweight Android Malware Detection , 2019, KSEM.

[2]  Romain Rouvoy,et al.  Detecting Antipatterns in Android Apps , 2015, 2015 2nd ACM International Conference on Mobile Software Engineering and Systems.

[3]  Francesca Arcelli Fontana,et al.  Automatic detection of bad smells in code: An experimental assessment , 2012, J. Object Technol..

[4]  Andrea De Lucia,et al.  Lightweight detection of Android-specific code smells: The aDoctor project , 2017, 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER).

[5]  Eduardo Figueiredo,et al.  An Empirical Study on the Impact of Android Code Smells on Resource Usage , 2018, SEKE.

[6]  Chanchal K. Roy,et al.  A Survey on Software Clone Detection Research , 2007 .

[7]  Ahmad A. Saifan,et al.  Evaluating maintainability of android applications , 2017, 2017 8th International Conference on Information Technology (ICIT).

[8]  Uwe Aßmann,et al.  A Tool-Supported Quality Smell Catalogue For Android Developers , 2014, Softwaretechnik-Trends.

[9]  Tracy Hall,et al.  Code Bad Smells: a review of current knowledge , 2011, J. Softw. Maintenance Res. Pract..

[10]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[11]  Rui Abreu,et al.  Leafactor: Improving Energy Efficiency of Android Apps via Automatic Refactoring , 2017, 2017 IEEE/ACM 4th International Conference on Mobile Software Engineering and Systems (MOBILESoft).

[12]  Iftekhar Ahmed,et al.  Understanding Code Smells in Android Applications , 2016, 2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft).

[13]  Gabriele Bavota,et al.  When and Why Your Code Starts to Smell Bad (and Whether the Smells Go Away) , 2015, IEEE Transactions on Software Engineering.

[14]  Romain Rouvoy,et al.  The Rise of Android Code Smells: Who is to Blame? , 2019, 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR).

[15]  Horst Lichter,et al.  Towards a Severity and Activity based Assessment of Code Smells , 2017, ICCSCI.

[16]  Robertas Damasevicius,et al.  Software Code Smell Prediction Model Using Shannon, Rényi and Tsallis Entropies , 2018, Entropy.

[17]  Robert L. Nord,et al.  Managing technical debt in software development: report on the 2nd international workshop on managing technical debt, held at ICSE 2011 , 2011, SOEN.

[18]  Ward Cunningham,et al.  The WyCash portfolio management system , 1992, OOPSLA '92.

[19]  Marouane Kessentini,et al.  Detecting Android Smells Using Multi-Objective Genetic Programming , 2017, 2017 IEEE/ACM 4th International Conference on Mobile Software Engineering and Systems (MOBILESoft).

[20]  Robert P Dellavalle,et al.  Growth of mobile applications in dermatology - 2017 update. , 2018, Dermatology online journal.

[21]  Andrea De Lucia,et al.  On the impact of code smells on the energy consumption of mobile applications , 2019, Inf. Softw. Technol..

[22]  R Manjula,et al.  Challenges and Best Practices in Mobile Application Development , 2016 .

[23]  Romain Rouvoy,et al.  Tracking the Software Quality of Android Applications Along Their Evolution (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[24]  Dustin Lim,et al.  Detecting Code Smells in Android Applications , 2018 .