An empirical study of Android behavioural code smells detection

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-orie...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Empirical software engineering : an international journal 2022-12, Vol.27 (7), Article 179
Hauptverfasser: Prestat, Dimitri, Moha, Naouel, Villemaire, Roger
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page
container_issue 7
container_start_page
container_title Empirical software engineering : an international journal
container_volume 27
creator Prestat, Dimitri
Moha, Naouel
Villemaire, Roger
description 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.
doi_str_mv 10.1007/s10664-022-10212-8
format Article
fullrecord <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_journals_2715906710</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2715906710</sourcerecordid><originalsourceid>FETCH-LOGICAL-c249t-b6ee1aaeb974d463bd2b6669f193cd2d7fd1ab07396f8a52673beb58a8ce64c33</originalsourceid><addsrcrecordid>eNp9kMlKBDEQhoMoOI6-gKeA52iW7kr3SYbBDQa86DlkqdYeehmTHmHe3mgL3jxVQf1L8RFyKfi14FzfJMEBCsalZIJLIVl1RBai1IppEHCcd1VJpmQJp-QspS3nvNZFuSC3q4Fiv2tj621H07QPBzo2dDWEOLaBOny3n-24j_nox4A09dh1iQac0E_tOJyTk8Z2CS9-55K83t-9rB_Z5vnhab3aMC-LemIOEIW16HJrKEC5IB0A1I2olQ8y6CYI67hWNTSVLSVo5dCVla08QuGVWpKrOXcXx489psls81dDrjRSi7LmoAXPKjmrfBxTitiYXWx7Gw9GcPMNysygTAZlfkCZKpvUbEpZPLxh_Iv-x_UFyWxrQw</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2715906710</pqid></control><display><type>article</type><title>An empirical study of Android behavioural code smells detection</title><source>SpringerLink Journals</source><creator>Prestat, Dimitri ; Moha, Naouel ; Villemaire, Roger</creator><creatorcontrib>Prestat, Dimitri ; Moha, Naouel ; Villemaire, Roger</creatorcontrib><description>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.</description><identifier>ISSN: 1382-3256</identifier><identifier>EISSN: 1573-7616</identifier><identifier>DOI: 10.1007/s10664-022-10212-8</identifier><language>eng</language><publisher>New York: Springer US</publisher><subject>Applications programs ; Compilers ; Computer Science ; Empirical analysis ; Energy consumption ; Interpreters ; Mobile computing ; Programming Languages ; Software ; Software Engineering/Programming and Operating Systems ; Software Performance ; Software quality ; Source code</subject><ispartof>Empirical software engineering : an international journal, 2022-12, Vol.27 (7), Article 179</ispartof><rights>The Author(s), under exclusive licence to Springer Science+Business Media, LLC, part of Springer Nature 2022. Springer Nature or its licensor holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c249t-b6ee1aaeb974d463bd2b6669f193cd2d7fd1ab07396f8a52673beb58a8ce64c33</citedby><cites>FETCH-LOGICAL-c249t-b6ee1aaeb974d463bd2b6669f193cd2d7fd1ab07396f8a52673beb58a8ce64c33</cites><orcidid>0000-0002-2914-9066</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://link.springer.com/content/pdf/10.1007/s10664-022-10212-8$$EPDF$$P50$$Gspringer$$H</linktopdf><linktohtml>$$Uhttps://link.springer.com/10.1007/s10664-022-10212-8$$EHTML$$P50$$Gspringer$$H</linktohtml><link.rule.ids>314,777,781,27905,27906,41469,42538,51300</link.rule.ids></links><search><creatorcontrib>Prestat, Dimitri</creatorcontrib><creatorcontrib>Moha, Naouel</creatorcontrib><creatorcontrib>Villemaire, Roger</creatorcontrib><title>An empirical study of Android behavioural code smells detection</title><title>Empirical software engineering : an international journal</title><addtitle>Empir Software Eng</addtitle><description>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.</description><subject>Applications programs</subject><subject>Compilers</subject><subject>Computer Science</subject><subject>Empirical analysis</subject><subject>Energy consumption</subject><subject>Interpreters</subject><subject>Mobile computing</subject><subject>Programming Languages</subject><subject>Software</subject><subject>Software Engineering/Programming and Operating Systems</subject><subject>Software Performance</subject><subject>Software quality</subject><subject>Source code</subject><issn>1382-3256</issn><issn>1573-7616</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2022</creationdate><recordtype>article</recordtype><sourceid>AFKRA</sourceid><sourceid>BENPR</sourceid><sourceid>CCPQU</sourceid><sourceid>DWQXO</sourceid><recordid>eNp9kMlKBDEQhoMoOI6-gKeA52iW7kr3SYbBDQa86DlkqdYeehmTHmHe3mgL3jxVQf1L8RFyKfi14FzfJMEBCsalZIJLIVl1RBai1IppEHCcd1VJpmQJp-QspS3nvNZFuSC3q4Fiv2tj621H07QPBzo2dDWEOLaBOny3n-24j_nox4A09dh1iQac0E_tOJyTk8Z2CS9-55K83t-9rB_Z5vnhab3aMC-LemIOEIW16HJrKEC5IB0A1I2olQ8y6CYI67hWNTSVLSVo5dCVla08QuGVWpKrOXcXx489psls81dDrjRSi7LmoAXPKjmrfBxTitiYXWx7Gw9GcPMNysygTAZlfkCZKpvUbEpZPLxh_Iv-x_UFyWxrQw</recordid><startdate>20221201</startdate><enddate>20221201</enddate><creator>Prestat, Dimitri</creator><creator>Moha, Naouel</creator><creator>Villemaire, Roger</creator><general>Springer US</general><general>Springer Nature B.V</general><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>8FD</scope><scope>8FE</scope><scope>8FG</scope><scope>ABJCF</scope><scope>AFKRA</scope><scope>ARAPS</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>HCIFZ</scope><scope>JQ2</scope><scope>L6V</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><scope>M7S</scope><scope>P5Z</scope><scope>P62</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope><scope>S0W</scope><orcidid>https://orcid.org/0000-0002-2914-9066</orcidid></search><sort><creationdate>20221201</creationdate><title>An empirical study of Android behavioural code smells detection</title><author>Prestat, Dimitri ; Moha, Naouel ; Villemaire, Roger</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c249t-b6ee1aaeb974d463bd2b6669f193cd2d7fd1ab07396f8a52673beb58a8ce64c33</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2022</creationdate><topic>Applications programs</topic><topic>Compilers</topic><topic>Computer Science</topic><topic>Empirical analysis</topic><topic>Energy consumption</topic><topic>Interpreters</topic><topic>Mobile computing</topic><topic>Programming Languages</topic><topic>Software</topic><topic>Software Engineering/Programming and Operating Systems</topic><topic>Software Performance</topic><topic>Software quality</topic><topic>Source code</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Prestat, Dimitri</creatorcontrib><creatorcontrib>Moha, Naouel</creatorcontrib><creatorcontrib>Villemaire, Roger</creatorcontrib><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Materials Science &amp; Engineering Collection</collection><collection>ProQuest Central UK/Ireland</collection><collection>Advanced Technologies &amp; Aerospace Collection</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Computer Science Collection</collection><collection>ProQuest Engineering Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><collection>Engineering Database</collection><collection>Advanced Technologies &amp; Aerospace Database</collection><collection>ProQuest Advanced Technologies &amp; Aerospace Collection</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering Collection</collection><collection>DELNET Engineering &amp; Technology Collection</collection><jtitle>Empirical software engineering : an international journal</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Prestat, Dimitri</au><au>Moha, Naouel</au><au>Villemaire, Roger</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>An empirical study of Android behavioural code smells detection</atitle><jtitle>Empirical software engineering : an international journal</jtitle><stitle>Empir Software Eng</stitle><date>2022-12-01</date><risdate>2022</risdate><volume>27</volume><issue>7</issue><artnum>179</artnum><issn>1382-3256</issn><eissn>1573-7616</eissn><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.</abstract><cop>New York</cop><pub>Springer US</pub><doi>10.1007/s10664-022-10212-8</doi><orcidid>https://orcid.org/0000-0002-2914-9066</orcidid></addata></record>
fulltext fulltext
identifier ISSN: 1382-3256
ispartof Empirical software engineering : an international journal, 2022-12, Vol.27 (7), Article 179
issn 1382-3256
1573-7616
language eng
recordid cdi_proquest_journals_2715906710
source SpringerLink Journals
subjects Applications programs
Compilers
Computer Science
Empirical analysis
Energy consumption
Interpreters
Mobile computing
Programming Languages
Software
Software Engineering/Programming and Operating Systems
Software Performance
Software quality
Source code
title An empirical study of Android behavioural code smells detection
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-19T14%3A28%3A40IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=An%20empirical%20study%20of%20Android%20behavioural%20code%20smells%20detection&rft.jtitle=Empirical%20software%20engineering%20:%20an%20international%20journal&rft.au=Prestat,%20Dimitri&rft.date=2022-12-01&rft.volume=27&rft.issue=7&rft.artnum=179&rft.issn=1382-3256&rft.eissn=1573-7616&rft_id=info:doi/10.1007/s10664-022-10212-8&rft_dat=%3Cproquest_cross%3E2715906710%3C/proquest_cross%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=2715906710&rft_id=info:pmid/&rfr_iscdi=true