软件集成开发环境的技术债务管理研究

上传人:小** 文档编号:34098834 上传时间:2018-02-20 格式:DOC 页数:16 大小:119KB
返回 下载 相关 举报
软件集成开发环境的技术债务管理研究_第1页
第1页 / 共16页
软件集成开发环境的技术债务管理研究_第2页
第2页 / 共16页
软件集成开发环境的技术债务管理研究_第3页
第3页 / 共16页
软件集成开发环境的技术债务管理研究_第4页
第4页 / 共16页
软件集成开发环境的技术债务管理研究_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《软件集成开发环境的技术债务管理研究》由会员分享,可在线阅读,更多相关《软件集成开发环境的技术债务管理研究(16页珍藏版)》请在金锄头文库上搜索。

1、软件集成开发环境的技术债务管理研究 刘亚珺 李兵 李增扬 梁鹏 吴闽泉 武汉大学国际软件学院 武汉大学复杂网络研究中心 武汉大学计算机学院软件工程国家重点实验室 摘 要: 软件技术债务是运用经济学中“债务”的概念来描述软件开发中因项目短期利益而实施的技术折中。但从长期来看, 技术债务会影响软件的质量、成本和开发效率, 因此有必要对其进行有效管理。现有的技术债务管理工具数量少且存在各种局限性, 难以实现有效的管理。主流的软件集成开发环境功能强大且应用广泛, 可以为技术债务管理服务。以具有代表性的集成开发环境 Visual Studio 2015 企业版为研究对象, 通过 C#实例发现其管理 4

2、类与代码直接相关的技术债务的能力, 并将其与 4 种专门的技术债务管理工具进行对比, 为开发团队的日常实践提供技术债务管理支持。结果表明, Visual Studio 能够提供更好的技术债务管理功能, 并能应用多种方法对项目中存在的各类技术债务进行不同程度的管理。关键词: 技术债务; 技术债务类型; 技术债务管理活动; 技术债务管理工具; Visual Studio; 作者简介:刘亚珺 (1992-) , 女, 硕士生, 主要研究方向为技术债务与软件架构;E-mail:;作者简介:李兵 (1969-) , 男, 博士, 教授, 主要研究方向为网络化软件、面向服务的软件工程、复杂系统与复杂网络、

3、人工智能、云计算与大数据;作者简介:李增扬 (1982-) , 男, 博士后, 讲师, 主要研究方向为技术债务、软件架构、复杂系统与复杂网络;作者简介:梁鹏 (1978-) , 男, 博士, 教授, 主要研究方向为软件体系结构、需求工程;作者简介:吴闽泉 (1966-) , 男, 硕士, 高级工程师, 主要研究方向为计算机应用, E-mail: (通信作者) 。收稿日期:2016-10-21基金:国家重点研发计划 (2016YFB0800405) Study on Technical Debt Management of Integrated Development EnvironmentLI

4、U Ya-jun LI Bing LI Zeng-yang LIANG Peng WU Min-quan International School of Software, Wuhan University; State Key Laboratory of Software Engineering, School of Computer Science, Wuhan University; Abstract: Technical debt (TD) , a metaphor to financial debt, refers to technical compromises which are

5、 made to gain short-term benefits at the cost of long-term software quality.However, in the long run TD will negatively affect software quality as well as cost and productivity of software development.Thus, TD should be effectively managed.Existing dedicated TD management tools are rather limited an

6、d have various limitations.Hence, it is difficult to effectively manage TD using such tools.Mainstream integrated development environments (IDEs) are powerful and widely used, can serve to manage TD.In this study, we investigated Microsoft Visual Studio 2015 Enterprise Edition, a representative main

7、stream IDE, to explore its ability for managing four types of TD directly related to source code using a C# project.Then we compared Visual Studio with four dedicated TD management tools with respect to their capabilities in managing TD and their support for TD management of development teams in the

8、ir daily practices.The results show that Visual Studio provides better support for managing TD in terms of diversity of TD types and the range of TD management activities.In addition, with Visual Studio, specific TD instances can be managed to different extents in a variety of ways.Keyword: Technica

9、l debt; Technical debt type; Technical debt management activity; Technical debt management tool; Visual Studio; Received: 2016-10-211 引言技术债务 (Technical Debt, TD) 是一种反映技术折中的隐喻说法, 为了短期的利益而采取欠佳的技术决策, 可能会对软件系统的长期质量产生不良影响。该隐喻最早主要关注软件实现, 即软件的代码层, 现已逐渐扩展到软件架构、详细设计以及文档、需求和测试等方面1。早在 1992 年, Ward Cunningham就在

10、 OOPSLA 报告2中提出了技术债务的概念并指出了其对软件开发的影响, 但直至近几年, 技术债务才受到工业界和学术界的重点关注。在对技术债务的描述中, 同样使用了金融债务中的一些概念来进行类比, 如本金、利息、效益、风险等。本金即消除技术债务的成本;利息是在不解决技术债务的情况下对软件系统进行维护与扩展所需的额外成本;效益指引入技术债务后可获得的短期收益;技术债务也是软件项目风险的一类, 因为如果技术债务持续累积, 将影响系统的质量3。技术债务的产生有多种原因:可能是项目利益相关者为了获得短期利益而有意引入的, 比如项目团队为了尽可能获得更高的商业价值, 加快产品新特性的开发, 尽早将产品投

11、入市场2, 以帮助公司在竞争中取得领先;或者是由于产品开发受到预算的限制等, 只能相应地做出技术上的妥协。尽管在未来可能需要付出比当前更高的代价来解决这些技术债务, 但如果这种有意引入的技术债务的成本、利息及对系统的影响是已知的、可控的, 这样的妥协是可以接受的4。另一方面, 技术债务的引入可能是无意的, 项目经理和开发团队没有意识到它在项目中的存在和影响5, 如使用了旧的技术、工具或者标准;开发人员缺乏一定的专业知识6。如果技术债务是未知的, 且未得到解决, 将会不断累积, 进而给软件系统的后期维护和演化带来巨大挑战。为了改善软件系统的可维护性、可重用性、可理解性, 同时防止累积的技术债务对

12、软件质量造成难以逆转的损害, 无论是有意还是无意产生的技术债务, 对其进行相应的控制和管理是非常必要的7。试想如果在项目的某个组件中引入了技术债务, 之后又基于这个组件对项目不断地进行扩展, 若不能及时且有效地对技术债务进行纠正, 这样不断累积的技术债务将会使软件的维护和演化变得越来越困难, 从而增加更多的技术债务, 这种恶性循环在极端情况下可能会导致软件产品的“破产”和项目的终止。对技术债务的管理主要包括两个方面:1) 预防潜在技术债务 (有意的和无意的) 的产生;2) 对现有技术债务的处理 (识别、偿还等) , 使其变得可见和可控, 防止其在软件项目中的过度累积, 同时平衡软件项目的成本和

13、价值8。为了能有效地管理技术债务, 开发团队必须对技术债务的类型 (如代码 TD、设计 TD、架构 TD、测试 TD 等) 、产生原因以及影响等方面有足够的认识, 并了解技术债务管理的现状, 包括已被提出、开发、使用的技术债务管理方法和工具等。软件技术债务作为一个较新的研究领域, 在工业界和学术界的相关研究和应用正逐步兴起, 但能用于技术债务管理的工具十分有限。根据我们之前所做的技术债务管理方面的映射研究 (Systematic Mapping Study) 5发现, 现有的技术债务管理工具有 4 个方面的局限性:1) 仅针对一种或两种技术债务实例, 如Software maps tool9和

14、 SonarQube10等工具仅适用于管理代码技术债务;2) 仅支持特定技术债务管理活动, 大部分工具适用于识别技术债务, 如SonarQube 和 NDepend, 少数可用于度量技术债务, 如 Software maps tool;3) 支持的编程语言单一, 如 DebtFlag11仅支持 Java 语言;4) 工具需额外部署使用, 不能集成到主流开发环境中, 不利于开发人员的日常使用。考虑到与代码相关的技术债务 (如代码 TD、设计 TD) 会随着项目代码的演化而频繁地变更, 技术债务管理工具应尽可能促进开发团队的日常开发活动。现有集成开发环境没有提供专门管理技术债务的功能, 但集成开发

15、环境的某些功能可以为管理技术债务提供支持。因此, 探究目前使用广泛、功能强大的集成开发环境是否同样具有技术债务管理能力对于项目开发十分重要, 有利于开发者在开发功能的同时时刻关注并提升代码质量。Microsoft Visual Studio (VS) 作为目前最流行的集成开发环境之一, 被大量开发团队用于实现诸多类型和不同规模的软件项目, 能够支持 C#, C+, JavaScript, F#, Visual Basic, Python 等多种编程语言, 有较强的实用性。不同版本的 VS 产品中, VS 2015 企业版功能最为强大, 适用于具有高质量要求和扩展需求的各种规模的开发团队, 在测

16、试 (代码覆盖率、自动化单元测试等) 、体系结构与建模、代码分析等方面的功能完备性是其他版本不能比拟的。因此, 本文选择 VS 2015 企业版作为开发环境, 力求充分探究其作为主流集成开发环境对技术债务管理的支持程度。本文首先介绍技术债务按照软件生命周期的不同阶段进行的分类及每种技术债务的成因, 并概述技术债务管理过程所包含的各项管理活动 (如识别、度量、偿还) ;然后通过一个 C#项目实例, 具体分析 VS 可管理的与代码直接相关的技术债务类型及其实例, 以及支持的管理活动及具体实现方法, 并将 VS 与 4 种专门的技术债务管理工具进行比较分析。结果表明, 尽管 VS 不能对项目中具体技术债务实例实现完整的管理过程, 但是相比已有的技术债务管理工具, VS 能够采取多种方法对项目中与代码直接相关的技术债务进行不同程度的有效管理, 从而更好地改善软件质量。本文第 2 节结合我们之前所做的技术债务映射研究5, 介绍按照软件开

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号