Android code smells: From introduction to refactoring

被引:14
|
作者
Habchi, Sarra [1 ]
Moha, Naouel [2 ]
Rouvoy, Romain [3 ]
机构
[1] Univ Luxembourg, Luxembourg, Luxembourg
[2] Ecole Technol Super, Montreal, PQ, Canada
[3] Univ Lille, IUF, INRIA, Lille, France
关键词
Android (operating system);
D O I
10.1016/j.jss.2021.110964
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Object-oriented code smells are well-known concepts in software engineering that refer to bad design and development practices commonly observed in software systems. With the emergence of mobile apps, new classes of code smells have been identified by the research community as mobile-specific code smells. These code smells are presented as symptoms of important performance issues or bottlenecks. Despite the multiple empirical studies about these new code smells, their diffuseness and evolution along change histories remains unclear. We present in this article a large-scale empirical study that inspects the introduction, evolution, and removal of Android code smells. This study relies on data extracted from 324 apps, a manual analysis of 561 smell-removing commits, and discussions with 25 Android developers. Our findings reveal that the high diffuseness of mobile-specific code smells is not a result of releasing pressure. We also found that the removal of these code smells is generally a side effect of maintenance activities as developers do not refactor smell instances even when they are aware of them. (C) 2021 Elsevier Inc. All rights reserved.
引用
收藏
页数:16
相关论文
共 50 条
  • [21] A Systematic Literature Survey of Software Metrics, Code Smells and Refactoring Techniques
    Agnihotri, Mansi
    Chug, Anuradha
    JOURNAL OF INFORMATION PROCESSING SYSTEMS, 2020, 16 (04): : 915 - 934
  • [22] An empirical study of Android behavioural code smells detection
    Dimitri Prestat
    Naouel Moha
    Roger Villemaire
    Empirical Software Engineering, 2022, 27
  • [23] A systematic literature review: Refactoring for disclosing code smells in object oriented software
    Singh, Satwinder
    Kaur, Sharanpreet
    AIN SHAMS ENGINEERING JOURNAL, 2018, 9 (04) : 2129 - 2151
  • [24] An empirical catalog of code smells for the presentation layer of Android apps
    Suelen Goularte Carvalho
    Maurício Aniche
    Júlio Veríssimo
    Rafael S. Durelli
    Marco Aurélio Gerosa
    Empirical Software Engineering, 2019, 24 : 3546 - 3586
  • [25] An empirical catalog of code smells for the presentation layer of Android apps
    Carvalho, Suelen Goularte
    Aniche, Mauricio
    Verissimo, Julio
    Durelli, Rafael S.
    Gerosa, Marco Aurelio
    EMPIRICAL SOFTWARE ENGINEERING, 2019, 24 (06) : 3546 - 3586
  • [26] Do We Have a Chance to Fix Bugs When Refactoring Code Smells?
    Ma, Wanwangying
    Chen, Lin
    Zhou, Yuming
    Xu, Baowen
    2016 INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, TESTING AND EVOLUTION (SATE 2016), 2016, : 24 - 29
  • [27] A probabilistic-based approach for automatic identification and refactoring of software code smells
    Saheb-Nassagh, Raana
    Ashtiani, Mehrdad
    Minaei-Bidgoli, Behrouz
    APPLIED SOFT COMPUTING, 2022, 130
  • [28] Recovering Android Bad Smells from Android Applications
    Rasool, Ghulam
    Ali, Azhar
    ARABIAN JOURNAL FOR SCIENCE AND ENGINEERING, 2020, 45 (04) : 3289 - 3315
  • [29] Recovering Android Bad Smells from Android Applications
    Ghulam Rasool
    Azhar Ali
    Arabian Journal for Science and Engineering, 2020, 45 : 3289 - 3315
  • [30] Incorporating Android Code Smells into Java']Java Static Code Metrics for Security Risk Prediction of Android Applications
    Gong, Ai
    Zhong, Yi
    Zou, Weiqin
    Shi, Yangyang
    Fang, Chunrong
    2020 IEEE 20TH INTERNATIONAL CONFERENCE ON SOFTWARE QUALITY, RELIABILITY, AND SECURITY (QRS 2020), 2020, : 30 - 40