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...
Gespeichert in:
Veröffentlicht in: | Empirical software engineering : an international journal 2022-12, Vol.27 (7), Article 179 |
---|---|
Hauptverfasser: | , , |
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 & Engineering Collection</collection><collection>ProQuest Central UK/Ireland</collection><collection>Advanced Technologies & 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 & Aerospace Database</collection><collection>ProQuest Advanced Technologies & 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 & 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 |