Cargando…

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

Descripción completa

Detalles Bibliográficos
Autores principales: Callan, James, Krauss, Oliver, Petke, Justyna, Sarro, Federica
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Springer US 2022
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9156520/
https://www.ncbi.nlm.nih.gov/pubmed/35663289
http://dx.doi.org/10.1007/s10664-022-10137-2
_version_ 1784718469179113472
author Callan, James
Krauss, Oliver
Petke, Justyna
Sarro, Federica
author_facet Callan, James
Krauss, Oliver
Petke, Justyna
Sarro, Federica
author_sort Callan, James
collection PubMed
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.
format Online
Article
Text
id pubmed-9156520
institution National Center for Biotechnology Information
language English
publishDate 2022
publisher Springer US
record_format MEDLINE/PubMed
spelling pubmed-91565202022-06-02 How do Android developers improve non-functional properties of software? Callan, James Krauss, Oliver Petke, Justyna Sarro, Federica Empir Softw Eng Article 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. Springer US 2022-05-30 2022 /pmc/articles/PMC9156520/ /pubmed/35663289 http://dx.doi.org/10.1007/s10664-022-10137-2 Text en © The Author(s) 2022 https://creativecommons.org/licenses/by/4.0/Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/ (https://creativecommons.org/licenses/by/4.0/) .
spellingShingle Article
Callan, James
Krauss, Oliver
Petke, Justyna
Sarro, Federica
How do Android developers improve non-functional properties of software?
title How do Android developers improve non-functional properties of software?
title_full How do Android developers improve non-functional properties of software?
title_fullStr How do Android developers improve non-functional properties of software?
title_full_unstemmed How do Android developers improve non-functional properties of software?
title_short How do Android developers improve non-functional properties of software?
title_sort how do android developers improve non-functional properties of software?
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9156520/
https://www.ncbi.nlm.nih.gov/pubmed/35663289
http://dx.doi.org/10.1007/s10664-022-10137-2
work_keys_str_mv AT callanjames howdoandroiddevelopersimprovenonfunctionalpropertiesofsoftware
AT kraussoliver howdoandroiddevelopersimprovenonfunctionalpropertiesofsoftware
AT petkejustyna howdoandroiddevelopersimprovenonfunctionalpropertiesofsoftware
AT sarrofederica howdoandroiddevelopersimprovenonfunctionalpropertiesofsoftware