Technical debt describes situations where developers write less-than-optimal code to meet project milestones. However, this debt accumulation often results in future developer effort to live with or fix these quality issues. To better manage this debt, developers may document their sub-optimal code as comments in the code (i.e., self-admitted technical debt or SATD). While prior research has investigated the occurrence and characteristics of SATD, this research has primarily focused on non-mobile systems. With millions of mobile applications (apps) in multiple genres available for end-users, there is a lack of research on sub-optimal code developers intentionally implement in mobile apps. In this study, we examine the occurrence and characteristics of SATD in 15,614 open-source Android apps. Our findings show that even though such apps contain occurrences of SATD, the volume per app (a median of 4) is lower than in non-mobile systems, with most debt categorized as Code Debt. Additionally, we identify typical elements in an app that are prone to intentional sub-optimal implementations. We envision our findings supporting researchers and tool vendors with building tools and techniques to support app developers with app maintenance.
翻译:技术债务描述了开发者为达成项目里程碑而编写非最优代码的情况,但这种债务积累往往导致未来需要投入额外开发精力来容忍或修复这些质量问题。为更好管理此类债务,开发者可能通过代码注释记录其非最优实现(即自我承认技术债务,SATD)。现有研究虽已探讨SATD的发生特征,但主要聚焦于非移动系统。尽管当前面向终端用户的移动应用(简称"应用")数量已达数百万级且涵盖多种类别,针对移动应用中开发者有意编写的非最优代码的研究仍存在空白。本研究通过分析15,614个开源Android应用中SATD的发生规律与特征发现:尽管此类应用存在SATD现象,但单应用债务量(中位数4项)低于非移动系统,且多数债务属于代码债务范畴。此外,我们识别出应用中易出现有意非最优实现的典型组件。研究结果有望支持研究人员与工具开发者构建辅助应用维护的工具与技术。