A systematic literature review on Android-specific smells

Journal of Systems and Software - Tập 201 - Trang 111677 - 2023
Zhiqiang Wu1, Xin Chen1, Scott Uk-Jin Lee1
1Department of Computer Science & Engineering, Hanyang University, South Korea

Tài liệu tham khảo

Allix, 2016, Androzoo: Collecting millions of android apps for the research community, 468 Android, 2012 Android, 2017 Anon, 2022 Anon, 2022 Anwar, 2020, Towards greener android application development, 170 Anwar, 2019, Evaluating the impact of code smell refactoring on the energy consumption of android applications, 82 Ardito, 2020, Effectiveness of Kotlin vs. Java in android app development tasks, Inf. Softw. Technol., 127, 10.1016/j.infsof.2020.106374 Banerjee, 2017, Energypatch: Repairing resource leaks to improve energy-efficiency of android apps, IEEE Trans. Softw. Eng., 44, 470, 10.1109/TSE.2017.2689012 Banerjee, A., Chong, L.K., Chattopadhyay, S., Roychoudhury, A., 2014. Detecting energy bugs and hotspots in mobile apps. In: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering. pp. 588–598. Banerjee, 2016, Automated re-factoring of android apps to enhance energy-efficiency, 139 Bartel, 2012, Dexpler: converting android dalvik bytecode to jimple for static analysis with soot, 27 Bavota, 2015, An experimental investigation on the innate relationship between quality and refactoring, J. Syst. Softw., 107, 10.1016/j.jss.2015.05.024 Boutaib, 2021, Code smell detection and identification in imbalanced environments, Expert Syst. Appl., 166, 10.1016/j.eswa.2020.114076 Brown, 2010, Managing technical debt in software-reliant systems, 47 Campbell, 2013 Carette, 2017, Investigating the energy impact of android smells, 115 Carvalho, 2019, An empirical catalog of code smells for the presentation layer of android apps, Empir. Softw. Eng., 24, 3546, 10.1007/s10664-019-09768-9 Chan-Jong-Chu, 2020, Investigating the correlation between performance scores and energy consumption of mobile web apps, 190 Chen, 2020, Unblind your apps: Predicting natural-language labels for mobile gui components by deep learning, 322 Chester, 2017, M-perm: A lightweight detector for android permission gaps, 217 Couto, 2020, Energy refactorings for android in the large and in the wild, 217 Cruz, 2017, Performance-based guidelines for energy efficient mobile applications, 46 Cruz, 2019, Improving energy efficiency through automatic refactoring, J. Softw. Eng. Res. Dev., 7, 10.5753/jserd.2019.17 Cruz, 2017, Leafactor: Improving energy efficiency of android apps via automatic refactoring, 205 Das, 2016, A quantitative and qualitative investigation of performance-related commits in android apps, 443 Das, 2020, Characterizing the evolution of statically-detectable performance issues of android apps, Empir. Softw. Eng., 25, 2748, 10.1007/s10664-019-09798-3 De Stefano, 2020, cASpER: A plug-in for automated code smell detection and refactoring, 1 Dennis, 2017, P-lint: A permission smell detector for android applications, 219 Desnos, 2012, Android: Static analysis using similarity distance, 5394 Di Nucci, 2017, Petra: a software-based tool for estimating the energy profile of android applications, 3 Di Nucci, 2017, Software-based energy profiling of android apps: Simple, efficient and reliable?, 103 Fang, 2020, Functional code clone detection with syntax and semantics fusion learning, 516 Fatima, I., Anwar, H., Pfahl, D., Qamar, U., 2020. Detection and Correction of Android-specific Code Smells and Energy Bugs: An Android Lint Extension. In: QuASoQ@ APSEC. pp. 71–78. Flauzino, 2018, Are you still smelling it? A comparative study between Java and Kotlin language, 23 Fowler, 1999 Gadient, 2019, Security code smells in android ICC, Empir. Softw. Eng., 24, 3046, 10.1007/s10664-018-9673-y Gadient, 2020, Web apis in android through the lens of security, 13 Gao, 2019, Teccd: A tree embedding approach for code clone detection, 145 Gattal, 2021, Exploiting the progress of OO refactoring tools with Android code smells: RAndroid, a plugin for Android studio, 1580 Ghafari, 2017, Security smells in android, 121 Ghari, S., Hadian, M., Rasolroveicy, M., Fokaefs, M., 2019. A multi-dimensional quality analysis of Android applications. In: Proceedings of the 29th Annual International Conference on Computer Science and Software Engineering. pp. 34–43. Goaër, 2020, Enforcing green code with android lint, 85 Góis Mateus, 2019, An empirical study on quality of Android applications written in Kotlin language, Empir. Softw. Eng., 24, 3356, 10.1007/s10664-019-09727-4 Grano, G., Di Sorbo, A., Mercaldo, F., Visaggio, C.A., Canfora, G., Panichella, S., 2017. Android apps and user feedback: a dataset for software evolution and quality improvement. In: Proceedings of the 2nd ACM SIGSOFT International Workshop on App Market Analytics. pp. 8–11. Gupta, 2019, Android smells detection using ML algorithms with static code metrics, 64 Habchi, 2019 Habchi, 2019, The rise of android code smells: Who is to blame?, 445 Habchi, 2021, Android code smells: From introduction to refactoring, J. Syst. Softw., 177, 10.1016/j.jss.2021.110964 Habchi, 2019, On the survival of android code smells in the wild, 87 Hamdi, 2021, A longitudinal study of the impact of refactoring in android applications, Inf. Softw. Technol., 140, 10.1016/j.infsof.2021.106699 Hecht, 2015, An approach to detect android antipatterns, 766 Hecht, 2015, Tracking the software quality of android applications along their evolution (t), 236 Hecht, 2016, An empirical study of the performance impacts of android code smells, 59 Hecht, 2015, Detecting antipatterns in android apps, 148 Iannone, 2020, Refactoring android-specific energy smells: A plugin for android studio, 451 Ignatov, A., Timofte, R., Chou, W., Wang, M.W.K., Hartley, T., Gool, L.V., 2018. AI Benchmark: Running Deep Neural Networks on Android Smartphones. In: Proceedings of the European Conference on Computer Vision, Vol. 11133. ECCV. Jiang, 2014, Distance metric based divergent change bad smell detection and refactoring scheme analysis, Int. J. Innovative Comput. Inf. Control, 10 Kaur, 2019, How does object-oriented code refactoring influence software quality? Research landscape and challenges, J. Syst. Softw., 157, 10.1016/j.jss.2019.110394 Kessentini, 2017, Detecting android smells using multi-objective genetic programming, 122 Khan, 2021, Measuring power consumption in mobile devices for energy sustainable app development: A comparative study and challenges, Sustain. Comput.: Inform. Syst., 31 Khan, 2021, Wake lock leak detection in android apps using multi-layer perceptron, Electronics, 10, 2211, 10.3390/electronics10182211 Khomh, 2009, An exploratory study of the impact of code smells on software change-proneness, 75 Kitchenham, 2007 Kuutila, 2021, What do we know about time pressure in software development?, IEEE Softw., 38, 10.1109/MS.2020.3020784 Lacerda, 2020, Code smells and refactoring: A tertiary systematic review of challenges and observations, J. Syst. Softw., 167, 10.1016/j.jss.2020.110610 Lam, P., Bodden, E., Lhoták, O., Hendren, L., 2011. The Soot framework for Java program analysis: a retrospective. In: Cetus Users and Compiler Infastructure Workshop. CETUS 2011, pp. 1–43. Lei, 2022, Deep learning application on code clone detection: A review of current knowledge, J. Syst. Softw., 184, 10.1016/j.jss.2021.111141 Li, 2017, Static analysis of android apps: A systematic literature review, Inf. Softw. Technol., 88, 67, 10.1016/j.infsof.2017.04.001 Li, D., Halfond, W.G., 2014. An investigation into energy-saving programming practices for android smartphone app development. In: Proceedings of the 3rd International Workshop on Green and Sustainable Software. pp. 46–53. Lin, 2015, Study and refactoring of android asynchronous programming (t), 224 Lin, 2014, Retrofitting concurrency for android applications through refactoring, 341 Liu, 2017, NavyDroid: detecting energy inefficiency problems for smartphone applications, 1 Liu, 2014, Characterizing and detecting performance bugs for smartphone applications, 1013 Liu, 2014, Greendroid: Automated diagnosis of energy inefficiency for smartphone applications, IEEE Trans. Softw. Eng., 40, 911, 10.1109/TSE.2014.2323982 Lyu, 2019, Quantifying the performance impact of SQL antipatterns on mobile applications, 53 Lyu, 2018, Remove rats from your code: automated optimization of resource inefficient database writes for mobile applications, 310 Maia, 2020, E-debitum: managing software energy debt, 170 Maiga, 2012, Smurf: A svm-based incremental anti-pattern detection approach, 466 Mao, 2020, Droidlens: Robust and fine-grained detection for android code smells, 161 Marimuthu, 2021, Energy diagnosis of android applications: A thematic taxonomy and survey, ACM Comput. Surv., 53, 1 Marinescu, 2004, Detection strategies: Metrics-based rules for detecting design flaws, 350 Martin, 2018 Martins, J., Bezerra, C., Uchôa, A., Garcia, A., 2021. How do Code Smell Co-occurrences Removal Impact Internal Quality Attributes? A Developers’ Perspective. In: Brazilian Symposium on Software Engineering. pp. 54–63. Mazuera-Rozo, 2020, Investigating types and survivability of performance bugs in mobile apps, Empir. Softw. Eng., 25, 10.1007/s10664-019-09795-6 Morales, 2018, Efficient refactoring scheduling based on partial order reduction, J. Syst. Softw., 145, 10.1016/j.jss.2018.07.076 Morales, 2017, Earmo: An energy-aware refactoring approach for mobile apps, IEEE Trans. Softw. Eng., 44, 1176, 10.1109/TSE.2017.2757486 Oliveira, 2020, On the adoption of Kotlin on android development: A triangulation study, 206 Oliveira, 2018, An empirical study on the impact of android code smells on resource usage., 313 Opdyke, 1992 Ouni, 2015, Improving multi-objective code-smells correction using development history, J. Syst. Softw., 105, 10.1016/j.jss.2015.03.040 Palomba, 2013, Detecting bad smells in source code using change history information, 268 Palomba, 2014, Mining version histories for detecting code smells, IEEE Trans. Softw. Eng., 41, 462, 10.1109/TSE.2014.2372760 Palomba, 2017, Lightweight detection of android-specific code smells: The adoctor project, 487 Palomba, 2019, On the impact of code smells on the energy consumption of mobile applications, Inf. Softw. Technol., 105, 10.1016/j.infsof.2018.08.004 Pawlak, 2016, Spoon: A library for implementing analyses and transformations of java source code, Softw. - Pract. Exp., 46, 1155, 10.1002/spe.2346 Peruma, 2019, A preliminary study of android refactorings, 148 Prestat, 2022, An empirical study of android behavioural code smells detection, Empir. Softw. Eng., 27, 1, 10.1007/s10664-022-10212-8 Rahman, 2019, The seven sins: Security smells in infrastructure as code scripts, 164 Rahman, 2021, Security smells in ansible and chef scripts: A replication study, ACM Trans. Softw. Eng. Methodol., 30, 1, 10.1145/3408897 Rahman, 2021, Different kind of smells: Security smells in infrastructure as code scripts, IEEE Secur. Priv., 19, 33, 10.1109/MSEC.2021.3065190 Rasool, 2020, Recovering android bad smells from android applications, Arab. J. Sci. Eng., 45, 3289, 10.1007/s13369-020-04365-1 Reimann, J., 2014. A Tool-Supported Quality Smell Catalogue For Android Developers. In: Proc. of the Conference …. Reimann, 2013, Quality-aware refactoring for early detection and resolution of energy deficiencies, 321 Rubin, 2019, Sniffing android code smells: an association rules mining-based approach, 123 Salehie, 2006, A metric-based heuristic framework to detect object-oriented design flaws, 159 Scoccia, 2019, An empirical history of permission requests and mistakes in open source android apps, 597 Sharma, 2021, Code smell detection by deep direct-learning and transfer-learning, J. Syst. Softw., 176, 10.1016/j.jss.2021.110936 Sharma, 2016, Designite: A software design quality assessment tool, 1 Sharma, 2018, A survey on software smells, J. Syst. Softw., 138, 10.1016/j.jss.2017.12.034 Shoenberger, 2017, On the use of smelly examples to detect code smells in JavaScript, 20 Silva, 2020, KNN applied to PDG for source code similarity classification, 471 Sobrinho, 2021, A systematic literature review on bad smells-5 W’s: Which, when, what, who, where, IEEE Trans. Softw. Eng., 47, 10.1109/TSE.2018.2880977 Soh, 2016, Do code smells impact the effort of different maintenance programming activities?, 393 Suryanarayana, 2014 Visser, 2004, Test input generation with Java PathFinder, 97 Wang, 2016, E-greenDroid: effective energy inefficiency analysis for android applications, 71 Wang, 2017, CCSharp: An efficient three-phase code clone detector using modified PDGs, 100 Wohlin, C., 2014. Guidelines for snowballing in systematic literature studies and a replication in software engineering. In: Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering. pp. 1–10. Wu, 2021, Enhancing fidelity of description in android apps with category-based common permissions, IEEE Access, 9, 105493, 10.1109/ACCESS.2021.3100118 Wu, 2020, FCDP: Fidelity calculation for description-to-permissions in android apps, IEEE Access, 9, 1062, 10.1109/ACCESS.2020.3047019 Xu, 2018, State-taint analysis for detecting resource bugs, Sci. Comput. Program., 162, 93, 10.1016/j.scico.2017.06.010 Yamashita, 2013, To what extent can maintenance problems be predicted by code smell detection? -An empirical study, Inf. Softw. Technol., 55, 10.1016/j.infsof.2013.08.002 Yang, 2021, Don’t do that! hunting down visual design smells in complex uis against design guidelines, 761 Yu, 2021, A novel tree-based neural network for android code smells detection, 738 Zhang, 2019, A novel neural source code representation based on abstract syntax tree, 783