Android-specific Code Smells; Detection Tool; Empirical Study
Abstract :
[en] Code smells are symptoms of poor design solutions applied by programmers during the development of software systems. While the research community devoted a lot of effort to studying and devising approaches for detecting the traditional code smells defined by Fowler, little knowledge and support is available for an emerging category of Mobile app code smells. Recently, Reimann etal proposed a new catalogue of Android-specific code smells that may be a threat for the maintainability and the efficiency of Android applications. However, current tools working in the context of Mobile apps provide limited support and, more importantly, are not available for developers interested in monitoring the quality of their apps. To overcome these limitations, we propose a fully automated tool, coined aDoctor, able to identify 15 Android-specific code smells from the catalogue by Reimann et al. An empirical study conducted on the source code of 18 Android applications reveals that the proposed tool reaches, on average, 98% of precision and 98% of recall. We made aDoctor publicly available.
Disciplines :
Computer science
Author, co-author :
Palomba, Fabio; University of Salerno > Computer Science
Di Nucci, Dario; University of Salerno > Computer Science
PANICHELLA, Annibale ; University of Luxembourg > Interdisciplinary Centre for Security, Reliability and Trust (SNT)
Zaidman, Andy; Delft University of Technology > EWI
De Lucia, Andre; University of Salerno > Computer Science
External co-authors :
yes
Language :
English
Title :
Lightweight Detection of Android-specific Code Smells: the aDoctor Project
Publication date :
21 February 2017
Event name :
International Conference on Software Analysis, Evolution, and Reengineering
Event date :
from 21-02-2017 to 24-02-2016
Audience :
International
Main work title :
Proceedings of the 24th IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER 2017)
M. M. Lehman and L. A. Belady, Software Evolution-Processes of Software Change. Academic Press London, 1985
W. Cunningham, "The WyCash portfolio management system," OOPS Messenger, vol. 4, no. 2, pp. 29-30, 1993
M. Fowler, Refactoring: improving the design of existing code. Addison-Wesley, 1999
F. Khomh, M. Di Penta, and Y.-G. Gueheneuc, "An exploratory study of the impact of code smells on software change-proneness," in Proceedings of the Working Conference on Reverse Engineering (WCRE). IEEE, 2009, pp. 75-84
F. Khomh, M. D. Penta, Y.-G. Gu'eh'eneuc, and G. Antoniol, "An exploratory study of the impact of antipatterns on class change-and fault-proneness," Empirical Software Engineering, vol. 17, no. 3, pp. 243-275, 2012
F. Palomba, G. Bavota, M. Di Penta, R. Oliveto, and A. De Lucia, "Do they really smell bad? a study on developers' perception of bad code smells," in Proceedings of the International Conference on Software Maintenance and Evolution (ICSME). IEEE, 2014, pp. 101-110
M. Tufano, F. Palomba, G. Bavota, R. Oliveto, M. Penta, A. Lucia, and D. Poshyvanyk, "When and why your code starts to smell bad," in Proceedings of the International Conference on Software Engineering (ICSE)-Volume 1. IEEE, 2015, pp. 403-414
D. Sjoberg, A. Yamashita, B. Anda, A. Mockus, and T. Dyba, "Quantifying the effect of code smells on maintenance effort," Software Engineering, IEEE Transactions on, vol. 39, no. 8, pp. 1144-1156, Aug 2013
R. Moser, P. Abrahamsson, W. Pedrycz, A. Sillitti, and G. Succi, "Balancing agility and formalism in software engineering," B. Meyer, J. R. Nawrocki, and B.Walter, Eds. Berlin, Heidelberg: Springer-Verlag, 2008, A Case Study on the Impact of Refactoring on Quality and Productivity in an Agile Team, pp. 252-266
M. Abbes, F. Khomh, Y.-G. Gu'eh'eneuc, and G. Antoniol, "An empirical study of the impact of two antipatterns, Blob and Spaghetti Code, on program comprehension," in 15th European Conference on Software Maintenance and Reengineering, CSMR. IEEE, 2011, pp. 181-190
A. Yamashita and L. Moonen, "Exploring the impact of inter-smell relations on software maintainability: An empirical study," in Proceedings of the International Conference on Software Engineering (ICSE). IEEE, 2013, pp. 682-691
N. Moha, Y.-G. Gu'eh'eneuc, L. Duchien, and A.-F. L. Meur, "Decor: A method for the specification and detection of code and design smells," IEEE Transactions on Software Engineering, vol. 36, no. 1, pp. 20-36, 2010
N. Tsantalis and A. Chatzigeorgiou, "Identification of move method refactoring opportunities," IEEE Transactions on Software Engineering, vol. 35, no. 3, pp. 347-367, 2009
F. Palomba, G. Bavota, M. Di Penta, R. Oliveto, D. Poshyvanyk, and A. De Lucia, "Mining version histories for detecting code smells," IEEE Transactions on Software Engineering, vol. 41, no. 5, pp. 462-489, May 2015
F. Palomba, A. Panichella, A. De Lucia, R. Oliveto, and A. Zaidman, "A textual-based technique for smell detection," in 2016 IEEE 24th International Conference on Program Comprehension (ICPC), May 2016, pp. 1-10
F. Palomba, M. Zanoni, F. A. Fontana, A. De Lucia, and R. Oliveto, "Smells like teen spirit: Improving bug prediction performance using the intensity of code smells," in Proceedings of the 32nd International Conference on Software Maintenance and Evolution (ICSME 2016). Raleigh, USA: IEEE, 2016, p. to appear
W. Martin, F. Sarro, Y. Jia, Y. Zhang, and M. Harman, "A survey of app store analysis for software engineering," Transactions on Software Engineering, p. to appear., 2017
J. Reimann, M. Brylski, and U. Amann, "A tool-supported quality smell catalogue for android developers," 2014
G. Hecht, N. Moha, and R. Rouvoy, "An empirical study of the performance impacts of android code smells," in Proceedings of the International Conference on Mobile Software Engineering and Systems, ser. MOBILESoft '16. ACM, 2016, pp. 59-69
G. Hecht, R. Rouvoy, N. Moha, and L. Duchien, "Detecting antipatterns in android apps," in Mobile Software Engineering and Systems (MOBILESoft), 2015 2nd ACM International Conference on, May 2015, pp. 148-149
F. Palomba, D. Nucci, A. Panichella, A. Zaidman, and A. Lucia, "On the impact of code smells on the energy consumption of mobile applications," in Submitted to the Journal of Empirical Software Engineering, ser. EMSE, 2017