ISSN 1000-1239 CN 11-1777/TP

计算机研究与发展 ›› 2021, Vol. 58 ›› Issue (1): 208-223.doi: 10.7544/issn1000-1239.2021.20190459

• 软件技术 • 上一篇    下一篇

基于边际贡献的需求变更技术债务量化评估

张云洁1, 张璇1,2, 王旭3, 任峻民1, 唐子淇1   

  1. 1(云南大学软件学院 昆明 650091);2(云南省软件工程重点实验室(云南大学) 昆明 650091);3(云南大学经济学院 昆明 650091) (932145749@qq.com)
  • 出版日期: 2021-01-01
  • 基金资助: 
    国家自然科学基金项目(61862063,61502413,61262025);国家社会科学基金项目(18BJL104);云南省自然科学基金项目(2016FB106);云南省软件工程重点实验室自然科学基金项目(2015SE202);云南大学数据驱动的软件工程省科技创新团队项目(2017HC012)

A Qualitative Evaluation Approach for Requirement Change Technical Debt Based on Marginal Contribution

Zhang Yunjie1, Zhang Xuan1,2, Wang Xu3, Ren Junmin1, Tang Ziqi1   

  1. 1(School of Software, Yunnan University, Kunming 650091);2(Key Laboratory of Software Engineering of Yunnan Province (Yunnan University), Kunming 650091);3(School of Economics, Yunnan University, Kunming 650091)
  • Online: 2021-01-01
  • Supported by: 
    This work was supported by the National Natural Science Foundation of China (61862063, 61502413, 61262025), the National Social Science Foundation of China (18BJL104), the Natural Science Foundation of Yunnan Province (2016FB106), the Natural Science Foundation of Key Laboratory of Software Engineering of Yunnan Province (2015SE202), and the Data Driven Software Engineering Innovative Research Team Funding of Yunnan Province (2017HC012).

摘要: 软件技术债务运用了经济学中“债务”的概念来描述软件开发中为了实现项目短期利益而实施的技术折中,但从长期目标来看,技术债务会影响软件的质量、成本和开发效率,因此,有必要对其进行系统有效的管理.面向软件生命周期中因持续不断出现的需求变更而引起的技术债务,提出需求变更技术债务的定义,对需求变更的技术债务进行量化,借助经济学中“边际贡献”的思想分析需求变更的边际贡献,为需求变更的实施优先级提供依据,再利用边际贡献分析法为需求变更的实现价值提供参考.在实验与案例研究部分,以大型开源项目Hadoop为例,验证需求变更边际贡献概念的可用性和技术的可行性.运用梯度提升决策树算法对Spring Framework中的需求变更历史报告进行研究,提出需求变更边际贡献能力分析方法,对变更报告各个字段取值对其边际贡献影响的重要度进行排序.结果表明,该分析方法可以为需求工程师衡量其工作量和风险提供有价值的参考建议.

关键词: 边际贡献, 技术债务, 需求变更, 梯度提升决策树, 关联关系

Abstract: Software technical debt uses the concept of “debt” in economics to describe the technical compromise implemented in software development for the short-term benefits. However, for the long-term goal, technical debt will affect the quality, cost and development efficiency, so it is necessary to manage it systematically and effectively. Aiming at the technical debt caused by the changing requirements in the software life cycle, the requirement change technical debt is defined and quantified firstly. Then, the idea of “marginal contribution” in economics is used to obtain the marginal contributions of the changing requirements. They are the basis of the priority for the requirement changes. Then, marginal contribution analytical method provides a reference for the implementation value of requirement changes. In the experiment and case study, taking Hadoop as an example, the feasibility of the marginal benefit for requirement changes is verified. Finally, gradient boosting decision tree is used to study the history reports of requirement changes in Spring Framework. A method for analyzing the requirement changes’ marginal contribution abilities is proposed. The priority of each field in change reports to its marginal contribution is ranked. The results show that the analysis method can provide valuable results for requirement engineers to measure their workload and risks.

Key words: marginal contribution, technical debt, requirement change, gradient boosting decision tree, association relationship

中图分类号: