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...
Gespeichert in:
Veröffentlicht in: | Empirical software engineering : an international journal 2022, Vol.27 (5), p.113-113, Article 113 |
---|---|
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 | 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 & 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><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 |