How do Android developers improve non-functional properties of software?

Nowadays there is an increased pressure on mobile app developers to take non-functional properties into account. An app that is too slow or uses much bandwidth will decrease user satisfaction, and thus can lead to users simply abandoning the app. Although automated software improvement techniques ex...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Empirical software engineering : an international journal 2022, Vol.27 (5), p.113-113, Article 113
Hauptverfasser: Callan, James, Krauss, Oliver, Petke, Justyna, Sarro, Federica
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 113
container_issue 5
container_start_page 113
container_title Empirical software engineering : an international journal
container_volume 27
creator Callan, James
Krauss, Oliver
Petke, Justyna
Sarro, Federica
description Nowadays there is an increased pressure on mobile app developers to take non-functional properties into account. An app that is too slow or uses much bandwidth will decrease user satisfaction, and thus can lead to users simply abandoning the app. Although automated software improvement techniques exist for traditional software, these are not as prevalent in the mobile domain. Moreover, it is yet unknown if the same software changes would be as effective. With that in mind, we mined overall 100 Android repositories to find out how developers improve execution time, memory consumption, bandwidth usage and frame rate of mobile apps. We categorised non-functional property (NFP) improving commits related to performance to see how existing automated software improvement techniques can be improved. Our results show that although NFP improving commits related to performance are rare, such improvements appear throughout the development lifecycle. We found altogether 560 NFP commits out of a total of 74,408 commits analysed. Memory consumption is sacrificed most often when improving execution time or bandwidth usage, although similar types of changes can improve multiple non-functional properties at once. Code deletion is the most frequently utilised strategy except for frame rate, where increase in concurrency is the dominant strategy. We find that automated software improvement techniques for mobile domain can benefit from addition of SQL query improvement, caching and asset manipulation. Moreover, we provide a classifier which can drastically reduce manual effort to analyse NFP improving commits.
doi_str_mv 10.1007/s10664-022-10137-2
format Article
fullrecord <record><control><sourceid>proquest_pubme</sourceid><recordid>TN_cdi_pubmedcentral_primary_oai_pubmedcentral_nih_gov_9156520</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2673600494</sourcerecordid><originalsourceid>FETCH-LOGICAL-c474t-86296955bd51f586b7b3eabfdedc34f52fce9647095c88261610735073471af13</originalsourceid><addsrcrecordid>eNp9kUtPAyEUhYnRaH38ARdmEjduUN7MbDRNo9akiRtdE2YG6pgpVJhp478X21ofCxcEwvnuuVwOAKcYXWKE5FXESAgGESEQI0wlJDtggLmkUAosdtOZ5gRSwsUBOIzxFSFUSMb3wQHlQlCSFwMwHvtlVvts6OrgmzqrzcK0fm5CzJrZPPiFyZx30Pau6hrvdJulyyR3jYmZt1n0tlvqYG6OwZ7VbTQnm_0IPN_dPo3GcPJ4_zAaTmDFJOtgLkghCs7LmmPLc1HKkhpd2trUFWWWE1uZQjCJCl7lOUlzYCQpT4tJrC2mR-B67Tvvy1kqMq4LulXz0Mx0eFdeN-q34poXNfULVWAuOEHJ4GJjEPxbb2KnZk2sTNtqZ3wfFRGSCoRYwRJ6_gd99X1In7CicI4YJzJRZE1VwccYjN0-BiP1GZRaB6VSUGoVlCKp6OznGNuSr2QSQNdATJKbmvDd-x_bD167nj0</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2671804527</pqid></control><display><type>article</type><title>How do Android developers improve non-functional properties of software?</title><source>SpringerLink Journals - AutoHoldings</source><creator>Callan, James ; Krauss, Oliver ; Petke, Justyna ; Sarro, Federica</creator><creatorcontrib>Callan, James ; Krauss, Oliver ; Petke, Justyna ; Sarro, Federica</creatorcontrib><description>Nowadays there is an increased pressure on mobile app developers to take non-functional properties into account. An app that is too slow or uses much bandwidth will decrease user satisfaction, and thus can lead to users simply abandoning the app. Although automated software improvement techniques exist for traditional software, these are not as prevalent in the mobile domain. Moreover, it is yet unknown if the same software changes would be as effective. With that in mind, we mined overall 100 Android repositories to find out how developers improve execution time, memory consumption, bandwidth usage and frame rate of mobile apps. We categorised non-functional property (NFP) improving commits related to performance to see how existing automated software improvement techniques can be improved. Our results show that although NFP improving commits related to performance are rare, such improvements appear throughout the development lifecycle. We found altogether 560 NFP commits out of a total of 74,408 commits analysed. Memory consumption is sacrificed most often when improving execution time or bandwidth usage, although similar types of changes can improve multiple non-functional properties at once. Code deletion is the most frequently utilised strategy except for frame rate, where increase in concurrency is the dominant strategy. We find that automated software improvement techniques for mobile domain can benefit from addition of SQL query improvement, caching and asset manipulation. Moreover, we provide a classifier which can drastically reduce manual effort to analyse NFP improving commits.</description><identifier>ISSN: 1382-3256</identifier><identifier>EISSN: 1573-7616</identifier><identifier>DOI: 10.1007/s10664-022-10137-2</identifier><identifier>PMID: 35663289</identifier><language>eng</language><publisher>New York: Springer US</publisher><subject>Applications programs ; Automation ; Bandwidths ; Compilers ; Computer Science ; Consumption ; Domains ; Interpreters ; Mobile computing ; Programming Languages ; Software ; Software Engineering/Programming and Operating Systems ; Software Performance ; User satisfaction</subject><ispartof>Empirical software engineering : an international journal, 2022, Vol.27 (5), p.113-113, Article 113</ispartof><rights>The Author(s) 2022</rights><rights>The Author(s) 2022.</rights><rights>The Author(s) 2022. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c474t-86296955bd51f586b7b3eabfdedc34f52fce9647095c88261610735073471af13</citedby><cites>FETCH-LOGICAL-c474t-86296955bd51f586b7b3eabfdedc34f52fce9647095c88261610735073471af13</cites><orcidid>0000-0002-5692-6203</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-10137-2$$EPDF$$P50$$Gspringer$$Hfree_for_read</linktopdf><linktohtml>$$Uhttps://link.springer.com/10.1007/s10664-022-10137-2$$EHTML$$P50$$Gspringer$$Hfree_for_read</linktohtml><link.rule.ids>230,314,780,784,885,27923,27924,41487,42556,51318</link.rule.ids><backlink>$$Uhttps://www.ncbi.nlm.nih.gov/pubmed/35663289$$D View this record in MEDLINE/PubMed$$Hfree_for_read</backlink></links><search><creatorcontrib>Callan, James</creatorcontrib><creatorcontrib>Krauss, Oliver</creatorcontrib><creatorcontrib>Petke, Justyna</creatorcontrib><creatorcontrib>Sarro, Federica</creatorcontrib><title>How do Android developers improve non-functional properties of software?</title><title>Empirical software engineering : an international journal</title><addtitle>Empir Software Eng</addtitle><addtitle>Empir Softw Eng</addtitle><description>Nowadays there is an increased pressure on mobile app developers to take non-functional properties into account. An app that is too slow or uses much bandwidth will decrease user satisfaction, and thus can lead to users simply abandoning the app. Although automated software improvement techniques exist for traditional software, these are not as prevalent in the mobile domain. Moreover, it is yet unknown if the same software changes would be as effective. With that in mind, we mined overall 100 Android repositories to find out how developers improve execution time, memory consumption, bandwidth usage and frame rate of mobile apps. We categorised non-functional property (NFP) improving commits related to performance to see how existing automated software improvement techniques can be improved. Our results show that although NFP improving commits related to performance are rare, such improvements appear throughout the development lifecycle. We found altogether 560 NFP commits out of a total of 74,408 commits analysed. Memory consumption is sacrificed most often when improving execution time or bandwidth usage, although similar types of changes can improve multiple non-functional properties at once. Code deletion is the most frequently utilised strategy except for frame rate, where increase in concurrency is the dominant strategy. We find that automated software improvement techniques for mobile domain can benefit from addition of SQL query improvement, caching and asset manipulation. Moreover, we provide a classifier which can drastically reduce manual effort to analyse NFP improving commits.</description><subject>Applications programs</subject><subject>Automation</subject><subject>Bandwidths</subject><subject>Compilers</subject><subject>Computer Science</subject><subject>Consumption</subject><subject>Domains</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>User satisfaction</subject><issn>1382-3256</issn><issn>1573-7616</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2022</creationdate><recordtype>article</recordtype><sourceid>C6C</sourceid><sourceid>AFKRA</sourceid><sourceid>BENPR</sourceid><sourceid>CCPQU</sourceid><sourceid>DWQXO</sourceid><recordid>eNp9kUtPAyEUhYnRaH38ARdmEjduUN7MbDRNo9akiRtdE2YG6pgpVJhp478X21ofCxcEwvnuuVwOAKcYXWKE5FXESAgGESEQI0wlJDtggLmkUAosdtOZ5gRSwsUBOIzxFSFUSMb3wQHlQlCSFwMwHvtlVvts6OrgmzqrzcK0fm5CzJrZPPiFyZx30Pau6hrvdJulyyR3jYmZt1n0tlvqYG6OwZ7VbTQnm_0IPN_dPo3GcPJ4_zAaTmDFJOtgLkghCs7LmmPLc1HKkhpd2trUFWWWE1uZQjCJCl7lOUlzYCQpT4tJrC2mR-B67Tvvy1kqMq4LulXz0Mx0eFdeN-q34poXNfULVWAuOEHJ4GJjEPxbb2KnZk2sTNtqZ3wfFRGSCoRYwRJ6_gd99X1In7CicI4YJzJRZE1VwccYjN0-BiP1GZRaB6VSUGoVlCKp6OznGNuSr2QSQNdATJKbmvDd-x_bD167nj0</recordid><startdate>2022</startdate><enddate>2022</enddate><creator>Callan, James</creator><creator>Krauss, Oliver</creator><creator>Petke, Justyna</creator><creator>Sarro, Federica</creator><general>Springer US</general><general>Springer Nature B.V</general><scope>C6C</scope><scope>NPM</scope><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><scope>7X8</scope><scope>5PM</scope><orcidid>https://orcid.org/0000-0002-5692-6203</orcidid></search><sort><creationdate>2022</creationdate><title>How do Android developers improve non-functional properties of software?</title><author>Callan, James ; Krauss, Oliver ; Petke, Justyna ; Sarro, Federica</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c474t-86296955bd51f586b7b3eabfdedc34f52fce9647095c88261610735073471af13</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2022</creationdate><topic>Applications programs</topic><topic>Automation</topic><topic>Bandwidths</topic><topic>Compilers</topic><topic>Computer Science</topic><topic>Consumption</topic><topic>Domains</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>User satisfaction</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Callan, James</creatorcontrib><creatorcontrib>Krauss, Oliver</creatorcontrib><creatorcontrib>Petke, Justyna</creatorcontrib><creatorcontrib>Sarro, Federica</creatorcontrib><collection>Springer Nature OA Free Journals</collection><collection>PubMed</collection><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><collection>MEDLINE - Academic</collection><collection>PubMed Central (Full Participant titles)</collection><jtitle>Empirical software engineering : an international journal</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Callan, James</au><au>Krauss, Oliver</au><au>Petke, Justyna</au><au>Sarro, Federica</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>How do Android developers improve non-functional properties of software?</atitle><jtitle>Empirical software engineering : an international journal</jtitle><stitle>Empir Software Eng</stitle><addtitle>Empir Softw Eng</addtitle><date>2022</date><risdate>2022</risdate><volume>27</volume><issue>5</issue><spage>113</spage><epage>113</epage><pages>113-113</pages><artnum>113</artnum><issn>1382-3256</issn><eissn>1573-7616</eissn><abstract>Nowadays there is an increased pressure on mobile app developers to take non-functional properties into account. An app that is too slow or uses much bandwidth will decrease user satisfaction, and thus can lead to users simply abandoning the app. Although automated software improvement techniques exist for traditional software, these are not as prevalent in the mobile domain. Moreover, it is yet unknown if the same software changes would be as effective. With that in mind, we mined overall 100 Android repositories to find out how developers improve execution time, memory consumption, bandwidth usage and frame rate of mobile apps. We categorised non-functional property (NFP) improving commits related to performance to see how existing automated software improvement techniques can be improved. Our results show that although NFP improving commits related to performance are rare, such improvements appear throughout the development lifecycle. We found altogether 560 NFP commits out of a total of 74,408 commits analysed. Memory consumption is sacrificed most often when improving execution time or bandwidth usage, although similar types of changes can improve multiple non-functional properties at once. Code deletion is the most frequently utilised strategy except for frame rate, where increase in concurrency is the dominant strategy. We find that automated software improvement techniques for mobile domain can benefit from addition of SQL query improvement, caching and asset manipulation. Moreover, we provide a classifier which can drastically reduce manual effort to analyse NFP improving commits.</abstract><cop>New York</cop><pub>Springer US</pub><pmid>35663289</pmid><doi>10.1007/s10664-022-10137-2</doi><tpages>1</tpages><orcidid>https://orcid.org/0000-0002-5692-6203</orcidid><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 1382-3256
ispartof Empirical software engineering : an international journal, 2022, Vol.27 (5), p.113-113, Article 113
issn 1382-3256
1573-7616
language eng
recordid cdi_pubmedcentral_primary_oai_pubmedcentral_nih_gov_9156520
source SpringerLink Journals - AutoHoldings
subjects Applications programs
Automation
Bandwidths
Compilers
Computer Science
Consumption
Domains
Interpreters
Mobile computing
Programming Languages
Software
Software Engineering/Programming and Operating Systems
Software Performance
User satisfaction
title How do Android developers improve non-functional properties of software?
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-08T08%3A59%3A16IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_pubme&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=How%20do%20Android%20developers%20improve%20non-functional%20properties%20of%20software?&rft.jtitle=Empirical%20software%20engineering%20:%20an%20international%20journal&rft.au=Callan,%20James&rft.date=2022&rft.volume=27&rft.issue=5&rft.spage=113&rft.epage=113&rft.pages=113-113&rft.artnum=113&rft.issn=1382-3256&rft.eissn=1573-7616&rft_id=info:doi/10.1007/s10664-022-10137-2&rft_dat=%3Cproquest_pubme%3E2673600494%3C/proquest_pubme%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=2671804527&rft_id=info:pmid/35663289&rfr_iscdi=true