ABSTRACT
Mobile applications market is facing a stronger demand continuously, due to the growing popularity of mobile phones. A demand that forces developers to rush the implementation process and shorten the conception phase, leading to poor conception and implementation choices known as code smells. These smells have a negative effect on both device and application's performance, and must therefore be corrected to ensure the quality of mobile applications and the smoothness of their users' experience. This task requires the identification of the infected entities and their refactoring. Most existing refactoring approaches and techniques are focused on object-oriented applications' code smells while only a few of them are destined to Android specific code smells.
In this paper, we present a tool, named RAndroid, that handles automatic refactoring for four different Android specific code smells, and gives recommendations on how to manually refactor a fifth one. RAndroid is built as an Android Studio plugin adapting the logic of the well-known oriented-object refactoring tool "JDeodorant" [13] as it's first layer. We evaluated RAndroid on 52 real-world open-source Android applications, developed by both experts and beginners, covering 194 code smell instances.
- F. Arcelli Fontana, Marco Mangiacavalli, Domenico Pochiero, and Marco Zanoni. 2015. On Experimenting Refactoring Tools to Remove Code Smells. In Scientific Workshop Proceedings of the XP2015. Association for Computing Machinery, New York, NY, USA, Article 7, 8 pages. Google ScholarDigital Library
- Martin Fowler, Kent Beck, John Brant, William Opdyke, and Don Roberts. 1999. Refactoring: Improving the Design of Existing Code. Addison Wesley.Google ScholarDigital Library
- Geoffrey Hecht. 2016. Detection and analysis of impact of code smells in mobile applications. Theses. Université Lille 1: Sciences et Technologies; Université du Québec à Montréal. https://tel.archives-ouvertes.fr/tel-01418158Google Scholar
- Geoffrey Hecht, Benomar Omar, Romain Rouvoy, Naouel Moha, and Laurence Duchien. 2015. Tracking the Software Quality of Android Applications along their Evolution. In Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015). Lincoln, Nebraska, United States, 12. https://hal.inria.fr/hal-01178734Google ScholarDigital Library
- Intellij-Team. 2020. Program Structure Interface (PSI)| IntelliJ Platform SDK DevGuide. Retrieved May 15,2020 from https://www.jetbrains.org/intellij/sdk/docs/basics/architectural_overview/psi.htmlGoogle Scholar
- JetBrains-Research. 2020. JetBrains-Research/IntelliJDeodorant: Based on tsantalis/JDeodorant| GitHub. Retrieved January 2,2020 from https://github.com/JetBrains-Research/IntelliJDeodorantGoogle Scholar
- Umme Ayda Mannan, Iftekhar Ahmed, Rana Abdullah M. Almurshed, Danny Dig, and Carlos Jensen. 2016. Understanding Code Smells in Android Applications. In Proceedings of the International Conference on Mobile Software Engineering and Systems (MOBILESoft '16). Association for Computing Machinery, New York, NY, USA, 225--234. Google ScholarDigital Library
- F. Palomba, D. Di Nucci, A. Panichella, A. Zaidman, and A. De Lucia. 2017. Lightweight detection of Android-specific code smells: The aDoctor project. In 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER). 487--491. Google ScholarCross Ref
- J. Reimann, M. Brylski, and U. Assmann. 2014. A Tool-Supported Quality Smell Catalogue For Android Developers. Softwaretechnik-Trends 34 (2014).Google Scholar
- M. Sangeetha and P. Sengottuvelan. 2017. Systematic exhortation of code smell detection using JSmell for java source code. In 2017 International Conference on Inventive Systems and Control (ICISC). 1--5.Google Scholar
- Habchi Sarra. 2019. Understanding Mobile-Specific Code Smells. Theses. Université de Lille. https://tel.archives-ouvertes.fr/tel-02414928Google Scholar
- Statcounter. 2020. Mobile Operating System Market Share Worldwide. Retrieved July 7, 2020 from https://gs.statcounter.com/os-market-share/mobile/worldwideGoogle Scholar
- N. Tsantalis, T. Chaikalis, and A. Chatzigeorgiou. 2018. Ten years of JDeodorant: Lessons learned from the hunt for smells. In 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER). 4--14. Google ScholarCross Ref
Index Terms
- Exploiting the progress of OO refactoring tools with Android code smells: RAndroid, a plugin for Android studio
Recommendations
An empirical study of the performance impacts of Android code smells
MOBILESoft '16: Proceedings of the International Conference on Mobile Software Engineering and SystemsAndroid code smells are bad implementation practices within Android applications (or apps) that may lead to poor software quality, in particular in terms of performance. Yet, performance is a main software quality concern in the development of mobile ...
On experimenting refactoring tools to remove code smells
XP '15 workshops: Scientific Workshop Proceedings of the XP2015When we develop a software project of a certain complexity, source code maintainability could become a problem, in particular if developers do not use a consolidate development process that simplifies the management of the entire project. When source ...
On the survival of Android code smells in the wild
MOBILESoft '19: Proceedings of the 6th International Conference on Mobile Software Engineering and SystemsThe success of smartphones and app stores have contributed to the explosion of the number of mobile apps proposed to end-users. In this very competitive market, developers are rushed to regularly release new versions of their apps in order to retain ...
Comments