Suppr超能文献

安卓开发者如何提升软件的非功能性属性?

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

作者信息

Callan James, Krauss Oliver, Petke Justyna, Sarro Federica

机构信息

University College London, London, UK.

University of Applied Sciences Upper Austria, Wels, Austria.

出版信息

Empir Softw Eng. 2022;27(5):113. doi: 10.1007/s10664-022-10137-2. Epub 2022 May 30.

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.

摘要

如今,移动应用开发者面临着越来越大的压力,需要考虑非功能性属性。一个运行速度过慢或占用大量带宽的应用会降低用户满意度,进而可能导致用户直接弃用该应用。尽管传统软件存在自动化软件改进技术,但这些技术在移动领域并不那么普遍。此外,同样的软件更改是否会同样有效尚不清楚。考虑到这一点,我们挖掘了总共100个安卓代码库,以了解开发者如何提高移动应用的执行时间、内存消耗、带宽使用和帧率。我们对与性能相关的非功能性属性(NFP)改进提交进行了分类,以了解如何改进现有的自动化软件改进技术。我们的结果表明,尽管与性能相关的NFP改进提交很少见,但此类改进在整个开发生命周期中都有出现。在总共分析的74408次提交中,我们总共发现了560次NFP提交。在改进执行时间或带宽使用时,内存消耗最常被牺牲,尽管类似类型的更改可以同时改善多个非功能性属性。除了帧率方面,增加并发性是主要策略外,代码删除是最常用的策略。我们发现,移动领域的自动化软件改进技术可以从增加SQL查询改进、缓存和资产操作中受益。此外,我们提供了一个分类器,它可以大幅减少分析NFP改进提交的人工工作量。

https://cdn.ncbi.nlm.nih.gov/pmc/blobs/7e8e/9156520/5d225c7d995c/10664_2022_10137_Fig1_HTML.jpg

文献检索

告别复杂PubMed语法,用中文像聊天一样搜索,搜遍4000万医学文献。AI智能推荐,让科研检索更轻松。

立即免费搜索

文件翻译

保留排版,准确专业,支持PDF/Word/PPT等文件格式,支持 12+语言互译。

免费翻译文档

深度研究

AI帮你快速写综述,25分钟生成高质量综述,智能提取关键信息,辅助科研写作。

立即免费体验