An empirical study of Android behavioural code smells detection

被引:0
作者
Dimitri Prestat
Naouel Moha
Roger Villemaire
机构
[1] Université du Québec à Montréal,
[2] École de Technologie Supérieure,undefined
来源
Empirical Software Engineering | 2022年 / 27卷
关键词
Android; Code smells; Detection; Empirical study; Mobile apps; Behavioural;
D O I
暂无
中图分类号
学科分类号
摘要
Mobile applications (apps) are developed quickly and evolve continuously. Each development iteration may introduce poor design choices, and therefore produce code smells. Code smells complexify source code and may impede the evolution and performance of mobile apps. In addition to common object-oriented code smells, mobile apps have their own code smells because of their limitations and constraints on resources like memory, performance and energy consumption. Some of these mobile-specific smells are behavioural because they describe an inappropriate behaviour that may negatively impact software quality. Many tools exist to detect code smells in mobile apps, based specifically on static analysis techniques. In this paper, we are especially interested in two tools: Paprika and aDoctor. Both tools use representative techniques from the literature and contain behavioural code smells. We analyse the effectiveness of behavioural code smells detection in practice within the tools of concern by performing an empirical study of code smells detected in apps. This empirical study aims to answer two research questions. First, are the detection tools effective in detecting behavioural code smells? Second, are the behavioural code smells detected by the tools consistent with their original literal definition? We emphasise the limitations of detection using only static techniques and the lessons learned from our empirical study. This study shows that established static analysis methods deemed to be effective for code smells detection are inadequate for behavioural mobile code smells detection.
引用
收藏
相关论文
共 50 条
[31]   DECOR: A Method for the Specification and Detection of Code and Design Smells [J].
Moha, Naouel ;
Gueheneuc, Yann-Gael ;
Duchien, Laurence ;
Le Meur, Anne-Francoise .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2010, 36 (01) :20-36
[32]   A Lightweight Approach for Detection of Code Smells [J].
Ghulam Rasool ;
Zeeshan Arshad .
Arabian Journal for Science and Engineering, 2017, 42 :483-506
[33]   A Lightweight Approach for Detection of Code Smells [J].
Rasool, Ghulam ;
Arshad, Zeeshan .
ARABIAN JOURNAL FOR SCIENCE AND ENGINEERING, 2017, 42 (02) :483-506
[34]   An Analytical Study of Code Smells [J].
Bamizadeh, Lida ;
Kumar, Binod ;
Kumar, Ajay ;
Shirwaikar, Shailaja .
TEHNICKI GLASNIK-TECHNICAL JOURNAL, 2021, 15 (01) :121-126
[35]   Code smells detection via modern code review: a study of the OpenStack and Qt communities [J].
Xiaofeng Han ;
Amjed Tahir ;
Peng Liang ;
Steve Counsell ;
Kelly Blincoe ;
Bing Li ;
Yajing Luo .
Empirical Software Engineering, 2022, 27
[36]   Code smells detection via modern code review: a study of the OpenStack and Qt communities [J].
Han, Xiaofeng ;
Tahir, Amjed ;
Liang, Peng ;
Counsell, Steve ;
Blincoe, Kelly ;
Li, Bing ;
Luo, Yajing .
EMPIRICAL SOFTWARE ENGINEERING, 2022, 27 (06)
[37]   Crowdsmelling: A preliminary study on using collective knowledge in code smells detection [J].
José Pereira dos Reis ;
Fernando Brito e Abreu ;
Glauco de Figueiredo Carneiro .
Empirical Software Engineering, 2022, 27
[38]   Crowdsmelling: A preliminary study on using collective knowledge in code smells detection [J].
dos Reis, Jose Pereira ;
Brito e Abreu, Fernando ;
Carneiro, Glauco de Figueiredo .
EMPIRICAL SOFTWARE ENGINEERING, 2022, 27 (03)
[39]   From a domain analysis to the specification and detection of code and design smells [J].
Moha, Naouel ;
Gueheneuc, Yann-Gael ;
Le Meur, Anne-Francoise ;
Duchien, Laurence ;
Tiberghien, Alban .
FORMAL ASPECTS OF COMPUTING, 2010, 22 (3-4) :345-361
[40]   Machine Learning Techniques for Code Smells Detection: A Systematic Mapping Study [J].
Caram, Frederico Luiz ;
De Oliveira Rodrigues, Bruno Rafael ;
Campanelli, Amadeu Silveira ;
Parreiras, Fernando Silva .
INTERNATIONAL JOURNAL OF SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING, 2019, 29 (02) :285-316