An Empirical Study on Code Smells Co-occurrences in Android Applications

被引:3
作者
Hamdi, Oumayma [1 ]
Ouni, Ali [1 ]
AlOmar, Eman Abdullah [2 ]
Mkaouer, Mohamed Wiem [2 ]
机构
[1] Univ Quebec, ETS Montreal, Montreal, PQ, Canada
[2] Rochester Inst Technol, Rochester, NY 14623 USA
来源
2021 36TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING WORKSHOPS (ASEW 2021) | 2021年
基金
加拿大自然科学与工程研究理事会;
关键词
Android apps; Code smells; Android smells; Association rule mining; Co-occurence; MAINTAINABILITY; IMPACT;
D O I
10.1109/ASEW52652.2021.00018
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Android applications (apps) evolve quickly to meet users requirements, fix bugs or adapt to technological changes. Such changes can lead to the presence of code smells - symptoms of poor design and/or implementation choices that may hinder the project maintenance and evolution. Previous research studied the characteristics of traditional object-oriented (OO) code smells affecting source code files in desktop software systems, and advocated that the interaction and co-presence of code smells reduce the ability of developers to understand and maintain source code. However, little knowledge is available on emerging categories of Android-specific code smells and their interactions, i.e., co-occurences, with traditional OO smells, in the context of Android apps. To provide a broader understanding of this phenomenon, we conduct an empirical study on 1,923 open source Android apps taking into account 15 types of Android-specific and 10 types of traditional OO code smells. Our results show that the co-occurrence phenomenon is indeed prevalent in Android apps and several smell types have strong associations. Developers need to be aware of this phenomenon and consider detecting and eliminating both traditional and Android smells separately, using dedicated tools.
引用
收藏
页码:26 / 33
页数:8
相关论文
共 41 条
[1]   An Empirical Study of the Impact of Two Antipatterns, Blob and Spaghetti Code, On Program Comprehension [J].
Abbes, Marwen ;
Khomh, Foutse ;
Gueheneuc, Yann-Gael ;
Antoniol, Giuliano .
2011 15TH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING (CSMR), 2011, :181-190
[2]  
Agrawal R., 1993, SIGMOD Record, V22, P207, DOI 10.1145/170036.170072
[3]   An experimental investigation on the innate relationship between quality and refactoring [J].
Bavota, Gabriele ;
De Lucia, Andrea ;
Di Penta, Massimiliano ;
Oliveto, Rocco ;
Palomba, Fabio .
JOURNAL OF SYSTEMS AND SOFTWARE, 2015, 107 :1-14
[4]  
Brin S., 1997, SIGMOD Record, V26, P255, DOI [10.1145/253262.253327, 10.1145/253262.253325]
[5]  
Brown W. H., 1998, ANTIPATTERNS REFACTO, V1st
[6]  
Carette A, 2017, 2017 IEEE 24TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), P115, DOI 10.1109/SANER.2017.7884614
[7]   Understanding the Impact of Refactoring on Smells: A Longitudinal Study of 23 Software Projects [J].
Cedrim, Diego ;
Garcia, Alessandro ;
Mongiovi, Melina ;
Gheyi, Rohit ;
Sousa, Leonardo ;
de Mello, Rafael ;
Fonseca, Baldoino ;
Ribeiro, Marcio ;
Chavez, Alexander .
ESEC/FSE 2017: PROCEEDINGS OF THE 2017 11TH JOINT MEETING ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2017, :465-475
[8]  
Crame H., 1999, MATH METHODS STAT, V43
[9]  
D'Ambros Marco, 2010, Proceedings of the Tenth International Conference on Quality Software (QSIC 2010), P23, DOI 10.1109/QSIC.2010.58
[10]   A Quantitative and Qualitative Investigation of Performance-Related Commits in Android Apps [J].
Das, Teerath ;
Di Penta, Massimiliano ;
Malavolta, Ivano .
32ND IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2016), 2016, :443-447