Identifying and Characterizing Silently-Evolved Methods in the Android API

Identifying and Characterizing Silently-Evolved Methods in the Android API
复制标题

DOI:
10.1109/icse-seip52600.2021.00040
复制
发表时间:
2021-05
期刊:
2021 IEEE/ACM 43rd International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP)
影响因子:
--
通讯作者:
Pei Liu;Li Li-Li;Yichun Yan;M. Fazzini;J. Grundy
Pei Liu;Li Li-Li;Yichun Yan;M. Fazzini;J. Grundy
中科院分区:
其他
文献类型:
--
作者:
Pei Liu;Li Li-Li;Yichun Yan;M. Fazzini;J. Grundy

文献摘要

被引文献

相似文献

Android平台无疑是最大的工业规模软件项目之一,拥有超过500,000名的投入和700多名贡献者。该项目提供了广为人知的Android API,可促进Android应用程序的开发。不幸的是,由于Android平台及其API以极快的速度发展,因此应用程序开发人员需要不断监视API更改,以避免其应用程序中的兼容性问题(即,在使用新版本的API的新版本时,其应用程序无法正常工作) 。尽管有关Android API中兼容性问题的大量研究,研究界尚未研究与默默发展方法(SEM)有关的问题。这些方法是其行为可能已经改变的函数,但相应的文档没有相应地改变。由于应用程序开发人员依靠提供的文档来发展其应用程序,因此对未正确记录的方法的更改可能会导致使用这些方法在应用程序中出乎意料的运行时问题。为了填补这一空白,我们进行了一项大规模的经验研究,在该研究中,我们识别并表征了10个Android API版本的SEMS。在研究中,我们确定了SEMS,表征了变化的性质,并分析了SEMS对1,000个现实世界Android应用程序的影响。我们的实验结果表明,SEMS确实存在于Android框架中,并且我们认为使用至少一个SEM的应用程序中确实存在957个应用程序。基于这些结果,我们认为Android平台开发人员应采取行动避免引入默默发展的方法,尤其是涉及语义变化的方法。这种情况强调了对自动化技术和工具的需求,以帮助Android从业人员执行此任务。
With over 500,000 commits and more than 700 contributors, the Android platform is undoubtedly one of the largest industrial-scale software projects. This project provides the widely known Android API, which facilitates the development of Android apps. Unfortunately, because the Android platform and its API evolve at an extremely rapid pace, app developers need to continually monitor API changes to avoid compatibility issues in their apps (i.e their apps do not work as expected when running on the new version of the API). Despite a large number of studies on compatibility issues in the Android API, the research community has not yet investigated issues related to silently-evolved methods (SEMs). These methods are functions whose behavior might have changed but the corresponding documentation did not change accordingly. Because app developers rely on the provided documentation to evolve their apps, changes to methods that are not suitably documented may lead to unexpected runtime issues in the apps using these methods. To fill this gap, we conducted a large-scale empirical study in which we identified and characterized SEMs across 10 versions of the Android API. In the study, we identified SEMs, characterized the nature of the changes, and analyzed the impact of SEMs on a set of 1,000 real-world Android apps. Our experimental results show that SEMs do exist in the Android framework, and that 957 of the apps we considered use at least one SEM. Based on these results, we argue that the Android platform developers should take actions to avoid introducing silently-evolved methods, especially those involving semantic changes. This situation highlights the need for automated techniques and tools to help Android practitioners in this task.