The impact of the code smells of the presentation layer on the diffuseness of aesthetic defects of Android apps

Recently, the number of Android apps has witnessed an ever-increase that is becoming a ubiquitous presence in our daily lives. These apps are evolving fast by offering new characteristics and functionalities. These ongoing improvements often affect app quality due to bad design practices and poor coding, known as Android code smells. In this context, the recent works highlighted the importance of the design quality of mobile application. To this end, many methods and tools are proposed to assess the quality of graphical user interface (GUI) and source code of Android apps, such as heuristic evaluation and field-testing, etc. In addition, the features and design of these Android apps may introduce bad design practices, that can highly decrease the quality and the performance of these Android applications. In this paper, we empirically study the diffuseness of GUI aesthetic defects and the code smells of the presentation layer of Android apps. Then, we investigate the impact of the appearance of code smells on the aesthetic of Android apps. To this end, we use two evaluation tools. The first one is called PLAIN which consists of detecting aesthetic defects by measuring a set of structural metrics of GUI. The second one is Android UI Detector which aims to identify the presentation layer code smells of Android apps. This analysis study is based on 8480 GUIs of 120 Android apps. The obtained results confirm that code smells of the presentation layer of Android apps have an impact on GUI aesthetic defects.

[1]  Ruchika Malhotra,et al.  Fault Prediction Using Statistical and Machine Learning Methods for Improving Software Quality , 2012, J. Inf. Process. Syst..

[2]  Mohamed Wiem Mkaouer,et al.  PLAIN: PLugin for predicting the usAbility of Mobile User INterface , 2017, VISIGRAPP.

[3]  Marco Aurélio Gerosa,et al.  An empirical catalog of code smells for the presentation layer of Android apps , 2019, Empirical Software Engineering.

[4]  Luis Cruz,et al.  To the attention of mobile software developers: guess what, test your app! , 2019, Empirical Software Engineering.

[5]  K. Flegal,et al.  Trends in Obesity Among Adults in the United States, 2005 to 2014. , 2016, JAMA.

[6]  Aniello Cimitile,et al.  An exploratory study on the evolution of Android malware quality , 2018, J. Softw. Evol. Process..

[7]  Foutse Khomh,et al.  An exploratory study of the impact of antipatterns on class change- and fault-proneness , 2011, Empirical Software Engineering.

[8]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2012, Springer Berlin Heidelberg.

[9]  Audris Mockus,et al.  Quantifying the Effect of Code Smells on Maintenance Effort , 2013, IEEE Transactions on Software Engineering.

[10]  Li Yang,et al.  On Hyperparameter Optimization of Machine Learning Algorithms: Theory and Practice , 2020, Neurocomputing.

[11]  Eduardo Figueiredo,et al.  Understanding the longevity of code smells: preliminary results of an explanatory survey , 2011, WRT '11.

[12]  Soui Makram,et al.  Evaluation of Mobile Interfaces as an Optimization Problem , 2017 .

[13]  Rogério de Lemos,et al.  Testing the robustness of controllers for self-adaptive systems , 2013, Journal of the Brazilian Computer Society.

[14]  Gabriele Bavota,et al.  An experimental investigation on the innate relationship between quality and refactoring , 2015, J. Syst. Softw..

[15]  Raed Shatnawi,et al.  An empirical study of the bad smells and class error probability in the post-release object-oriented system evolution , 2007, J. Syst. Softw..

[16]  Student An Experimental Determination of the Probable Error of Dr Spearman's Correlation Coefficients , 1921 .

[17]  Gabriele Bavota,et al.  Mining Version Histories for Detecting Code Smells , 2015, IEEE Transactions on Software Engineering.

[18]  Mohamed Wiem Mkaouer,et al.  A robust multi-objective approach to balance severity and importance of refactoring opportunities , 2017, Empirical Software Engineering.

[19]  Steve Counsell,et al.  The effect of refactoring on change and fault-proneness in commercial C# software , 2015, Sci. Comput. Program..

[20]  Leo Breiman,et al.  Random Forests , 2001, Machine Learning.

[21]  Mohamed Wiem Mkaouer,et al.  Assessing the quality of mobile graphical user interfaces using multi-objective optimization , 2019, Soft Comput..

[22]  Doyun Park,et al.  Investigating the affective quality of interactivity by motion feedback in mobile touchscreen user interfaces , 2011, Int. J. Hum. Comput. Stud..

[23]  Jacob Cohen Statistical Power Analysis , 1992 .

[24]  Iker Gondra,et al.  Applying machine learning to software fault-proneness prediction , 2008, J. Syst. Softw..

[25]  Jon A. Sanford,et al.  Development of Universal Design Mobile Interface Guidelines (UDMIG) for Aging Population , 2016, HCI.