每日一博 | 复用性风控:软件复用成本的量化管理
复用性(Reusability)是软件工程中一个被频频使用的术语,它一般作为产品的卖点被宣传,或者出现在技术设计文档之中。大部分看到这个概念的的受众只是将其作为一个积极的软件非功能属性去理解,但却忽略了其背后隐藏的风险。本文从另一个角度出发,去分析「复用性」这一概念背后的风险及成因,借助笔者在业务安全和基础安全的一点经验,提出了一个在软件研发流程中,管理「复用性成本风险」的风险管理模型。从模型出发,我们可以认识到实现复用时面临的各项挑战、开发认知谬误、复用成本的形式化定义方法等,希望这些输入能为读者在后续的技术决策和软件研发流程提供些许帮助。 本文主要分为三个部分:第一部分介绍复用性的定义以及不合理复用引入的主要技术债,第二部分分析复用性失效的原因;第三部分为复用性软件资产的构建方和使用方提供一个形式化的度量工具,该工具将奠定后续风险管理模型评估阶段定量分析的基础;第四部分提出一个用于管理「复用性风险」的模型,覆盖软件研发生命周期的全流程,通过事前评估、事中缓释和事后迭代三个环节最大程度地降低由于软件复用带来的软件开发和维护成本。 一、复用性的理想与现实 1.1 复用定义:从代码到系统...