论文标题

FIXME:与数据库同步数据访问自我拥护的技术债务的实证研究

FIXME: Synchronize with Database An Empirical Study of Data Access Self-Admitted Technical Debt

论文作者

Muse, Biruk Asmare, Nagy, Csaba, Cleve, Anthony, Khomh, Foutse, Antoniol, Giuliano

论文摘要

由于释放时间表的压力,开发人员有时会选择设计和实施快捷方式。但是,快捷方式引入了随着软件发展而增加的技术债务。需要尽快偿还债务,以最大程度地减少其对软件开发和软件质量的影响。有时,开发人员会在评论中承认技术债务并提交消息。这种债务被称为自我吸引的技术债务(SATD)。在数据密集型系统中,数据操作是关键功能,数据访问逻辑中的SATD存在可能会严重损害性能和可维护性。了解跨软件系统的SATD的组成和分布及其演变可以提供有效管理技术债务的见解。我们提出了一项关于数据密集型系统中SATD的患病率,组成和演变的大规模实证研究。我们分析了依靠关系数据库以及依赖NOSQL数据库的19个系统的83个开源系统。我们检测到从主题系统的不同快照中获得的源代码注释中的SATD。为了了解SATD的演化动力学,我们进行了生存分析。接下来,我们对361个样本数据访问SATD进行了手动分析,研究了数据访问SATD的组成以及其引入和删除的原因。我们确定了15个新的SATD类别,其中11个特定于数据库访问操作。我们发现,大多数数据访问SATD是在变化历史的后期阶段引入的,而不是在开始时引入。我们还观察到错误修复和重构是引入数据访问SATD的主要原因。

Developers sometimes choose design and implementation shortcuts due to the pressure from tight release schedules. However, shortcuts introduce technical debt that increases as the software evolves. The debt needs to be repaid as fast as possible to minimize its impact on software development and software quality. Sometimes, technical debt is admitted by developers in comments and commit messages. Such debt is known as self-admitted technical debt (SATD). In data-intensive systems, where data manipulation is a critical functionality, the presence of SATD in the data access logic could seriously harm performance and maintainability. Understanding the composition and distribution of the SATDs across software systems and their evolution could provide insights into managing technical debt efficiently. We present a large-scale empirical study on the prevalence, composition, and evolution of SATD in data-intensive systems. We analyzed 83 open-source systems relying on relational databases as well as 19 systems relying on NoSQL databases. We detected SATD in source code comments obtained from different snapshots of the subject systems. To understand the evolution dynamics of SATDs, we conducted a survival analysis. Next, we performed a manual analysis of 361 sample data-access SATDs, investigating the composition of data-access SATDs and the reasons behind their introduction and removal. We identified 15 new SATD categories, out of which 11 are specific to database access operations. We found that most of the data-access SATDs are introduced in the later stages of change history rather than at the beginning. We also observed that bug fixing and refactoring are the main reasons behind the introduction of data-access SATDs.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源