Skip to main content
Top
Published in: Empirical Software Engineering 7/2022

01-12-2022

An empirical study of Android behavioural code smells detection

Authors: Dimitri Prestat, Naouel Moha, Roger Villemaire

Published in: Empirical Software Engineering | Issue 7/2022

Log in

Activate our intelligent search to find suitable subject content or patents.

search-config
loading …

Abstract

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.

Dont have a licence yet? Then find out more about our products and how to get one now:

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Literature
go back to reference Almalki K (2018) Bad droid! An in-depth empirical study on the occurrence and impact of android specific code smells. Ph.D. thesis, Rochester Institute of Technology Almalki K (2018) Bad droid! An in-depth empirical study on the occurrence and impact of android specific code smells. Ph.D. thesis, Rochester Institute of Technology
go back to reference 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 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
go back to reference Dennis C, Krutz D E, Mkaouer M W (2017) P-lint: a permission smell detector for android applications. In: 2017 IEEE/ACM 4th international conference on mobile software engineering and systems (MOBILESoft), pp 219–220 Dennis C, Krutz D E, Mkaouer M W (2017) P-lint: a permission smell detector for android applications. In: 2017 IEEE/ACM 4th international conference on mobile software engineering and systems (MOBILESoft), pp 219–220
go back to reference Elsayed E K, ElDahshan K A, El-Sharawy E E, Ghannam N E (2019) Reverse engineering approach for improving the quality of mobile applications. PeerJ Comput Sci 5 Elsayed E K, ElDahshan K A, El-Sharawy E E, Ghannam N E (2019) Reverse engineering approach for improving the quality of mobile applications. PeerJ Comput Sci 5
go back to reference Emden E V, Moonen L (2002) Java quality assurance by detecting code smells. In: Ninth working conference on reverse engineering. Proceedings, pp 97–106 Emden E V, Moonen L (2002) Java quality assurance by detecting code smells. In: Ninth working conference on reverse engineering. Proceedings, pp 97–106
go back to reference Fard A M, Mesbah A (2013) Jsnose: detecting javascript code smells. In: 2013 IEEE 13th international working conference on source code analysis and manipulation (SCAM), pp 116–125 Fard A M, Mesbah A (2013) Jsnose: detecting javascript code smells. In: 2013 IEEE 13th international working conference on source code analysis and manipulation (SCAM), pp 116–125
go back to reference Fowler M (1999) Refactoring—improving the design of existing code, 1 edn. Addison-Wesley Fowler M (1999) Refactoring—improving the design of existing code, 1 edn. Addison-Wesley
go back to reference Gadient P, Ghafari M, Frischknecht P, Nierstrasz O (2018) Security code smells in android icc. Empir Softw Eng 1–31 Gadient P, Ghafari M, Frischknecht P, Nierstrasz O (2018) Security code smells in android icc. Empir Softw Eng 1–31
go back to reference Ghafari M, Gadient P, Nierstrasz O (2017) Security smells in android. In: 2017 IEEE 17th international working conference on source code analysis and manipulation (SCAM), pp 121–130 Ghafari M, Gadient P, Nierstrasz O (2017) Security smells in android. In: 2017 IEEE 17th international working conference on source code analysis and manipulation (SCAM), pp 121–130
go back to reference Gottschalk M, Josefiok M, Jelschen J, Winter A (2012) Removing energy code smells with reengineering services. In: GI-Jahrestagung Gottschalk M, Josefiok M, Jelschen J, Winter A (2012) Removing energy code smells with reengineering services. In: GI-Jahrestagung
go back to reference Habchi S, Hecht G, Rouvoy R, Moha N (2017) Code smells in ios apps: how do they compare to android?. In: 2017 IEEE/ACM 4th international conference on mobile software engineering and systems (MOBILESoft), pp 110–121 Habchi S, Hecht G, Rouvoy R, Moha N (2017) Code smells in ios apps: how do they compare to android?. In: 2017 IEEE/ACM 4th international conference on mobile software engineering and systems (MOBILESoft), pp 110–121
go back to reference Habchi S, Blanc X, Rouvoy R (2018) On adopting linters to deal with performance concerns in android apps. In: 2018 33rd IEEE/ACM international conference on automated software engineering (ASE), pp 6–16 Habchi S, Blanc X, Rouvoy R (2018) On adopting linters to deal with performance concerns in android apps. In: 2018 33rd IEEE/ACM international conference on automated software engineering (ASE), pp 6–16
go back to reference Habchi S, Moha N, Rouvoy R (2019a) The rise of android code smells: Who is to blame?. In: 2019 IEEE/ACM 16th international conference on mining software repositories (MSR), pp 445–456 Habchi S, Moha N, Rouvoy R (2019a) The rise of android code smells: Who is to blame?. In: 2019 IEEE/ACM 16th international conference on mining software repositories (MSR), pp 445–456
go back to reference Habchi S, Rouvoy R, Moha N (2019b) On the survival of android code smells in the wild. In: 2019 IEEE/ACM 6th international conference on mobile software engineering and systems (MOBILESoft), pp 87–98 Habchi S, Rouvoy R, Moha N (2019b) On the survival of android code smells in the wild. In: 2019 IEEE/ACM 6th international conference on mobile software engineering and systems (MOBILESoft), pp 87–98
go back to reference Hecht G (2016) Détection et analyse de l’impact des défauts de code dans les applications mobiles. (detection and analysis of impact of code smells in mobile applications). Ph.D. thesis, Université du Québec à Montréal Hecht G (2016) Détection et analyse de l’impact des défauts de code dans les applications mobiles. (detection and analysis of impact of code smells in mobile applications). Ph.D. thesis, Université du Québec à Montréal
go back to reference Hecht G, Rouvoy R, Moha N, Duchien L (2015) Detecting antipatterns in android apps. In: 2015 2nd ACM international conference on mobile software engineering and systems, pp 148–149 Hecht G, Rouvoy R, Moha N, Duchien L (2015) Detecting antipatterns in android apps. In: 2015 2nd ACM international conference on mobile software engineering and systems, pp 148–149
go back to reference Iannone E, Pecorelli F, Nucci D D, Palomba F, Lucia A (2020) Refactoring android-specific energy smells: a plugin for android studio. In: Proceedings of the 28th international conference on program comprehension Iannone E, Pecorelli F, Nucci D D, Palomba F, Lucia A (2020) Refactoring android-specific energy smells: a plugin for android studio. In: Proceedings of the 28th international conference on program comprehension
go back to reference Ibrahim R, Ahmed M, Nayak R, Jamel S (2020) Reducing redundancy of test cases generation using code smell detection and refactoring. J King Saud Univ—Comput Inf Sci 32(3):367–374 Ibrahim R, Ahmed M, Nayak R, Jamel S (2020) Reducing redundancy of test cases generation using code smell detection and refactoring. J King Saud Univ—Comput Inf Sci 32(3):367–374
go back to reference Johnson B, Song Y, Murphy-Hill E R, Bowdidge R W (2013) Why don’t software developers use static analysis tools to find bugs?. In: 2013 35th International conference on software engineering (ICSE), pp 672–681 Johnson B, Song Y, Murphy-Hill E R, Bowdidge R W (2013) Why don’t software developers use static analysis tools to find bugs?. In: 2013 35th International conference on software engineering (ICSE), pp 672–681
go back to reference Kessentini M, Ouni A (2017) Detecting android smells using multi-objective genetic programming. In: 2017 IEEE/ACM 4th international conference on mobile software engineering and systems (MOBILESoft), pp 122–132 Kessentini M, Ouni A (2017) Detecting android smells using multi-objective genetic programming. In: 2017 IEEE/ACM 4th international conference on mobile software engineering and systems (MOBILESoft), pp 122–132
go back to reference Kumar S, Chhabra J K (2014) Two level dynamic approach for feature envy detection. In: 2014 International conference on computer and communication technology (ICCCT), pp 41–46 Kumar S, Chhabra J K (2014) Two level dynamic approach for feature envy detection. In: 2014 International conference on computer and communication technology (ICCCT), pp 41–46
go back to reference Lim D (2018) Detecting code smells in android applications. Master’s thesis, TU Delft Lim D (2018) Detecting code smells in android applications. Master’s thesis, TU Delft
go back to reference Lin Y, Okur S (2015) Study and refactoring of android asynchronous programming Lin Y, Okur S (2015) Study and refactoring of android asynchronous programming
go back to reference Malavolta I, Verdecchia R, Filipovic B, Bruntink M, Lago P (2018) How maintainability issues of android apps evolve. In: 2018 IEEE International conference on software maintenance and evolution (ICSME), pp 334–344 Malavolta I, Verdecchia R, Filipovic B, Bruntink M, Lago P (2018) How maintainability issues of android apps evolve. In: 2018 IEEE International conference on software maintenance and evolution (ICSME), pp 334–344
go back to reference Mannan U A, Ahmed I, Almurshed R A M, Dig D, Jensen C (2016) Understanding code smells in android applications. In: 2016 IEEE/ACM International conference on mobile software engineering and systems (MOBILESoft), pp 225–236 Mannan U A, Ahmed I, Almurshed R A M, Dig D, Jensen C (2016) Understanding code smells in android applications. In: 2016 IEEE/ACM International conference on mobile software engineering and systems (MOBILESoft), pp 225–236
go back to reference Marinescu C, Marinescu R, Mihancea P F, Ratiu D, Wettel R (2005) iplasma: an integrated platform for quality assessment of object-oriented design. In: ICSM Marinescu C, Marinescu R, Mihancea P F, Ratiu D, Wettel R (2005) iplasma: an integrated platform for quality assessment of object-oriented design. In: ICSM
go back to reference Moha N, Guéhéneuc Y G, Duchien L, Meur A F L (2010) Decor: a method for the specification and detection of code and design smells. IEEE Trans Softw Eng 36:20–36CrossRefMATH Moha N, Guéhéneuc Y G, Duchien L, Meur A F L (2010) Decor: a method for the specification and detection of code and design smells. IEEE Trans Softw Eng 36:20–36CrossRefMATH
go back to reference Morales R, Saborido R, Khomh F, Chicano F, Antoniol G (2018) [journal first] earmo: an energy-aware refactoring approach for mobile apps. In: 2018 IEEE/ACM 40th international conference on software engineering (ICSE), pp 59–59 Morales R, Saborido R, Khomh F, Chicano F, Antoniol G (2018) [journal first] earmo: an energy-aware refactoring approach for mobile apps. In: 2018 IEEE/ACM 40th international conference on software engineering (ICSE), pp 59–59
go back to reference Palomba F, Nucci D D, Panichella A, Zaidman A, Lucia A D (2017) Lightweight detection of android-specific code smells: The adoctor project. In: 2017 IEEE 24th international conference on software analysis, evolution and reengineering (SANER), pp 487–491 Palomba F, Nucci D D, Panichella A, Zaidman A, Lucia A D (2017) Lightweight detection of android-specific code smells: The adoctor project. In: 2017 IEEE 24th international conference on software analysis, evolution and reengineering (SANER), pp 487–491
go back to reference Paternò F, Schiavone A G, Conte A (2017) Customizable automatic detection of bad usability smells in mobile accessed web applications. In: Proceedings of the 19th international conference on human-computer interaction with mobile devices and services Paternò F, Schiavone A G, Conte A (2017) Customizable automatic detection of bad usability smells in mobile accessed web applications. In: Proceedings of the 19th international conference on human-computer interaction with mobile devices and services
go back to reference Peruma A S (2018) What the smell? An empirical investigation on the distribution and severity of test smells in open source android applications Peruma A S (2018) What the smell? An empirical investigation on the distribution and severity of test smells in open source android applications
go back to reference Reimann J, Brylski M, Aßmann U (2014) A tool-supported quality smell catalogue for android developers. Softwaretechnik-Trends 34 Reimann J, Brylski M, Aßmann U (2014) A tool-supported quality smell catalogue for android developers. Softwaretechnik-Trends 34
go back to reference Rubin J, Henniche A N, Moha N, Bouguessa M, Bousbia N (2019) Sniffing android code smells: an association rules mining-based approach. In: 2019 IEEE/ACM 6th international conference on mobile software engineering and systems (MOBILESoft), pp 123–127 Rubin J, Henniche A N, Moha N, Bouguessa M, Bousbia N (2019) Sniffing android code smells: an association rules mining-based approach. In: 2019 IEEE/ACM 6th international conference on mobile software engineering and systems (MOBILESoft), pp 123–127
go back to reference Wohlin C, Runeson P, Höst M, Ohlsson M C, Regnell B (2000) Experimentation in software engineering. In: The Kluwer international series in software engineering Wohlin C, Runeson P, Höst M, Ohlsson M C, Regnell B (2000) Experimentation in software engineering. In: The Kluwer international series in software engineering
Metadata
Title
An empirical study of Android behavioural code smells detection
Authors
Dimitri Prestat
Naouel Moha
Roger Villemaire
Publication date
01-12-2022
Publisher
Springer US
Published in
Empirical Software Engineering / Issue 7/2022
Print ISSN: 1382-3256
Electronic ISSN: 1573-7616
DOI
https://doi.org/10.1007/s10664-022-10212-8

Other articles of this Issue 7/2022

Empirical Software Engineering 7/2022 Go to the issue

Premium Partner